yrik 4 سال پیش
والد
کامیت
fc693b6429

+ 11 - 4
ruoyi-ui/src/api/system/config.js

@@ -5,7 +5,7 @@ export function listConfig(query) {
   return request({
     url: '/system/config/list',
     method: 'get',
-    params: query   
+    params: query
   })
 }
 
@@ -48,23 +48,30 @@ export function addConfig(data) {
     data: data
   })
 }
+export function addConfigindex(data) {
+  return request({
+    url: '/boman-web-core/p/cs/objectSave',
+    method: 'post',
+    data: data
+  })
+}
 export function listIndex(data) {
   return request({
-    url: '/boman-system/p/cs/queryList',
+    url: '/boman-web-core/p/cs/queryList',
     method: 'post',
     data: data
   })
 }
 export function listIndexfou(data) {
   return request({
-    url: '/boman-system/p/cs/getTableQuery',
+    url: '/boman-web-core/p/cs/getTableQuery',
     method: 'post',
     data: data
   })
 }
 export function listIndextanl(data) {
   return request({
-    url: '/boman-system/p/cs/table/getByTableName',
+    url: '/boman-web-core/p/cs/table/getByTableName',
     method: 'post',
     data: data
   })

+ 124 - 56
ruoyi-ui/src/components/DynamicForms/index.vue

@@ -1,54 +1,70 @@
 <template>
-    <el-form-item :label="formConfig.columnComment" style="display: inline-block;" :prop="formConfig.columnName">
-      <!-- 输入框 -->
-      <el-input v-if="formConfig.htmlType == 'input'" v-model="config[formConfig.columnName]" :placeholder="'请输入'+formConfig.columnComment"
-        clearable @keyup.enter.native="handleQuery" />
-      <!-- 多行输入框 -->
-      <el-input v-if="formConfig.htmlType == 'textarea'" type="textarea" v-model="config[formConfig.columnName]" :placeholder="'请输入'+formConfig.columnComment"
-        clearable @keyup.enter.native="handleQuery" />
-      <!-- 下拉框 -->
-      <el-select v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'select'" filterable :placeholder="'请输入'+formConfig.columnComment">
-        <el-option v-for="itemChild in formConfig.sysDictData" :key="itemChild.dictValue" :label="itemChild.dictLabel" :value="itemChild.dictValue">
-        </el-option>
-      </el-select>
-      <!-- 复选框 -->
-      <el-checkbox-group v-model="formConfig.sysDictDatatwo" v-if="formConfig.htmlType == 'checkbox'">
-        <el-checkbox @change="handleCheckedCitiesChange" v-for="itemChild in formConfig.sysDictData" :key="itemChild.dictValue" :label="itemChild.dictLabel"
-        :value="itemChild.dictValue" ></el-checkbox>
-      </el-checkbox-group>
-      <!-- 单选框 -->
-      <el-radio-group v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'radio'">
-        <el-radio v-for="itemChild in formConfig.sysDictData" :key="itemChild.dictValue" :label="itemChild.dictLabel" :value="itemChild.dictValue"></el-radio>
-      </el-radio-group>
-      <!-- 时间控件 -->
-      <el-date-picker v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'datetime'" type="date" :placeholder="'请输入'+formConfig.columnComment">
-      </el-date-picker>
-      <!-- 上传图片 -->
-      <el-upload v-if="formConfig.htmlType == 'imageUpload'" :headers="{Authorization: 'Bearer ' + getToken()}" :action="process + '/boman-file/upload'" list-type="picture-card"
-        :on-preview="handlePictureCardPreview" :on-remove="handleRemove">
-        <i class="el-icon-plus"></i>
-      </el-upload>
-      <el-dialog :visible.sync="dialogVisible" v-if="formConfig.htmlType == 'imageUpload'">
-        <img width="100%" :src="dialogImageUrl" alt="">
-      </el-dialog>
-      <!-- 上传文件 -->
-      <el-upload
-        class="upload-demo"
-        :headers="{Authorization: 'Bearer ' + getToken()}"
-        v-if="formConfig.htmlType == 'fileUpload'"
-        :action="process + '/boman-file/upload'"
-        :on-change="handleChange"
-        :file-list="fileList">
-        <el-button size="small" type="primary">点击上传</el-button>
-        <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
-      </el-upload>
-      <!-- 富文本 -->
-      <editor v-model="config[formConfig.columnName]" v-if="formConfig.htmlType == 'editor'" :min-height="192"/>
-    </el-form-item>
+    <div>
+      <el-form ref="form" :model="form" :rules="rules" label-width="160px" class="from_index">
+        <el-row>
+          <el-col :span="24"  v-for="(item,index) in formConfig.columns" :key="index">
+            <el-form-item :label="item.columnComment" style="display: inline-block;" :prop="item.columnName" v-if="item.isEdit == 1">
+              <!-- 输入框 -->
+              <el-input v-if="item.htmlType == 'input'" v-model="config[item.columnName]" :placeholder="'请输入'+item.columnComment"
+                clearable @keyup.enter.native="submitForm" @change="submitForm"/>
+              <!-- 多行输入框 -->
+              <el-input v-if="item.htmlType == 'textarea'" type="textarea" v-model="config[item.columnName]" :placeholder="'请输入'+item.columnComment"
+                clearable @keyup.enter.native="submitForm" @change="submitForm"/>
+              <!-- 下拉框 -->
+              <el-select v-model="config[item.columnName]" v-if="item.htmlType == 'select'" filterable :placeholder="'请输入'+item.columnComment">
+                <el-option v-for="itemChild in item.sysDictData" :key="itemChild.dictValue" :label="itemChild.dictLabel" :value="itemChild.dictValue" @change="submitForm">
+                </el-option>
+              </el-select>
+              <!-- 复选框 -->
+              <el-checkbox-group v-model="config" v-if="item.htmlType == 'checkbox'">
+                <el-checkbox @change="submitForm" v-for="itemChild in item.sysDictData" :label="itemChild.dictValue" :key="itemChild.dictLabel" >
+                  {{itemChild.dictLabel}}
+                </el-checkbox>
+              </el-checkbox-group>
+              <!-- 单选框 -->
+              <el-radio-group v-model="config[item.columnName]" v-if="item.htmlType == 'radio'">
+                <el-radio v-for="itemChild in item.sysDictData" :key="itemChild.dictValue" :label="itemChild.dictLabel" :value="itemChild.dictValue" @change="submitForm"></el-radio>
+              </el-radio-group>
+              <!-- 时间控件 -->
+              <el-date-picker v-model="config[item.columnName]" v-if="item.htmlType == 'datetime'" type="date" :placeholder="'请输入'+item.columnComment" @change="submitForm">
+              </el-date-picker>
+              <!-- 上传图片 -->
+              <el-upload v-if="item.htmlType == 'imageUpload'" :headers="{Authorization: 'Bearer ' + getToken()}" :action="process + '/boman-file/upload'" list-type="picture-card"
+                :on-preview="handlePictureCardPreview" :on-remove="handleRemove">
+                <i class="el-icon-plus"></i>
+              </el-upload>
+              <el-dialog :visible.sync="dialogVisible" v-if="item.htmlType == 'imageUpload'">
+                <img width="100%" :src="dialogImageUrl" alt="">
+              </el-dialog>
+              <!-- 上传文件 -->
+              <el-upload
+                class="upload-demo"
+                :headers="{Authorization: 'Bearer ' + getToken()}"
+                v-if="item.htmlType == 'fileUpload'"
+                :action="process + '/boman-file/upload'"
+                :on-change="handleChange"
+                :file-list="fileList">
+                <el-button size="small" type="primary">点击上传</el-button>
+                <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
+              </el-upload>
+              <!-- 富文本 -->
+              <editor v-model="config[item.columnName]" v-if="item.htmlType == 'editor'"  :min-height="192"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+
+    </div>
+
 </template>
 
 <script>
   const defaultSettings = require('@/settings.js')
+  import { addConfigindex } from "@/api/system/config";
   import Editor from '@/components/Editor';
   import { getToken } from "@/utils/auth";
   export default {
@@ -61,26 +77,33 @@
         dialogVisible: false,
         disabled: false,
         config: {},
+        form:{},
+        // 表单校验
+        rules: {
+        },
+        open:false
       }
     },
     components: {
       Editor
     },
     props: {
-      formConfig: {
-        type: Object,
-        required: true,
-        'default': {
-          sysDictData: []
-        }
-      },
+      formConfig: {},
+      nummer:0
     },
     created() {
-    console.log(this.formConfig)
+      this.init()
     },
     mounted() {
     },
     methods: {
+      init() {
+        // if(this.formConfig.htmlType == 'checkbox'){
+        //   this.config = []
+        // }
+        console.log(this.config,99888)
+        console.log(this.nummer)
+      },
       handleChange(file, fileList) {
         this.fileList = fileList.slice(-3);
       },
@@ -100,12 +123,57 @@
       handleQuery() {
         this.$emit('btns')
       },
+      submitForm(value){
+        console.log(1243)
+        console.log(this.config,value)
+        this.form.fixedData = this.config
+        this.form.table = 'sys_schedule'
+        this.form.objId = -1
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            // if (this.form.id != undefined) {
+            //   updateNotice(this.form).then(response => {
+            //     this.msgSuccess("修改成功");
+            //     this.open = false;
+            //     this.getList();
+            //   });
+            // } else {
+              addConfigindex(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                // this.open = false;
+                this.cancel();
+              });
+            // }
+          }
+        });
+        // this.$emit('submitForm',this.config)
+      },
+      cancel(){
+       this.$emit('cancel',this.config)
+      },
       handleCheckedCitiesChange(value){
-        console.log(value)
+        console.log(this.config)
       }
     }
   }
 </script>
 
-<style>
+<style lang="scss">
+  .from_index{
+    .el-form-item{
+      width: 93%;
+    }
+    .el-input{
+      width: 100%;
+    }
+    .el-select{
+      width: 100%;
+    }
+  }
+</style>
+<style scoped lang="scss">
+  .dialog-footer{
+    display: flex;
+    justify-content: flex-end;
+  }
 </style>

+ 49 - 19
ruoyi-ui/src/views/index.vue

@@ -175,7 +175,7 @@
             <div class="index_navTime ">
               <p class="index_navTimep">
                 <span>备忘录</span>
-                <span><i class="el-icon-date"></i>创建备忘录</span>
+                <span @click="memoere"><i class="el-icon-date"></i>创建备忘录</span>
               </p>
               <ul >
                 <li v-for="(item,index) in getmemorandum" :key="index">
@@ -238,17 +238,7 @@
     <!-- <el-divider /> -->
   <!-- 添加或修改公告对话框 -->
   <el-dialog :title="title" :visible.sync="open" width="980px" append-to-body>
-    <el-form ref="form" :model="form" :rules="rules" label-width="160px">
-      <el-row>
-        <el-col :span="24"  >
-            <dynamic-forms :config="form" @inputs = "changeFn" :formConfig="item" v-for="(item,index) in form.columns" :key='index' />
-        </el-col>
-      </el-row>
-    </el-form>
-    <div slot="footer" class="dialog-footer">
-      <el-button type="primary" @click="submitForm">确 定</el-button>
-      <el-button @click="cancel">取 消</el-button>
-    </div>
+            <dynamic-forms :config="form" @inputs = "changeFn" :formConfig="queryData" :open="open" @submitForm="submitForm($event)" @cancel="cancel($event)" :nummer = "nummer" />
   </el-dialog>
   </div>
 </template>
@@ -360,6 +350,10 @@ export default {
       calendaradd:{
         table:'sys_schedule'
       },
+      //备忘录弹框
+      calendaraddmer:{
+        table:'sys_memorandum'
+      },
       // input
       inputList:[],
       // 时间
@@ -370,7 +364,9 @@ export default {
       chekbosList:[],
       //下拉框
       selectList:[],
-      editorList:[]
+      editorList:[],
+      queryData: {},
+      nummer:0   //0 是日历  1 是备忘录
     };
   },
 
@@ -534,8 +530,8 @@ export default {
      this.loading = true;
      listIndextanl(this.calendaradd).then(response => {
          if(response.data !== undefined){
-           this.form = response.data
-           this.form.columns.filter(route => {
+           this.queryData = response.data
+           this.queryData.columns.filter(route => {
              // console.log(route)
              if(route.htmlType == "input" || route.htmlType == 'textarea'){
                this.inputList.push(route)
@@ -547,7 +543,32 @@ export default {
                this.editorList.push(route)
              }
          })
-        console.log(this.selectList)
+        // console.log(this.selectList)
+
+         }
+         this.loading = false;
+       }
+     );
+   },
+   //备忘录新增弹框数据
+   getLisalendaradddmer() {
+     this.loading = true;
+     listIndextanl(this.calendaraddmer).then(response => {
+         if(response.data !== undefined){
+           this.queryData = response.data
+           this.queryData.columns.filter(route => {
+             // console.log(route)
+             if(route.htmlType == "input" || route.htmlType == 'textarea'){
+               this.inputList.push(route)
+             }else if(route.htmlType == "select"){
+               this.selectList.push(route)
+             }else if(route.htmlType == "datetime"){
+               this.dataList.push(route)
+             }else if(route.htmlType == "editor"){
+               this.editorList.push(route)
+             }
+         })
+        // console.log(this.selectList)
 
          }
          this.loading = false;
@@ -612,15 +633,16 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
+      this.nummer = 0
       console.log(this.open)
       this.reset();
       this.getLisalendaraddd()
       this.open = true;
-      this.title = "添加日";
+      this.title = "添加日";
     },
     /** 提交按钮 */
-    submitForm: function() {
-      console.log(this.form)
+    submitForm: function(data) {
+      console.log(this.form,data)
       // this.$refs["form"].validate(valid => {
       //   if (valid) {
       //     if (this.form.id != undefined) {
@@ -641,10 +663,18 @@ export default {
     },
     // 弹框
     changeFn(obj) {
+      console.log(obj)
       for(let key in obj){
         this.form[key] = obj[key]
       }
     },
+    // 新增备忘录
+    memoere(){
+     this.nummer = 1
+     this.open = true;
+     this.title = "添加备忘录";
+     this.getLisalendaradddmer()
+    }
   },
 };
 </script>

+ 3 - 2
ruoyi-ui/src/views/system/table/index.vue

@@ -8,7 +8,7 @@
       </div>
 
     </div>
-    <!-- 内容 -->  
+    <!-- 内容 -->
     <div class="table_nav headertable_nav">
       <el-collapse v-model="activeNames" @change="handleChange">
         <el-collapse-item :title="title" :name="index" v-for="(item,index) in 4" :key="index">
@@ -96,7 +96,8 @@
       },
       /** 搜索按钮操作 */
       handleQuery() {
-        this.getList();
+        console.log(this.queryParams)
+        // this.getList();
       },
       getList() {