Pārlūkot izejas kodu

修改基础表单,表单详情组件。 以应用功能列表页为例: 使用数据项配置,配置基础表单,表单详情页

林倩 3 gadi atpakaļ
vecāks
revīzija
caf012c39c

+ 60 - 55
src/pages/common/form-detail/index.vue

@@ -4,67 +4,72 @@
 @Date: 2021-05-28 09:51
 -->
 <template>
-    <div>
-        <el-form v-if="detailInfo.id" :model="detailInfo" :label-width="labelWidth" label-suffix=":">
-            <el-row>
-                <el-col :span="item.span || 12" v-for="(item, index) in config" :key="index">
-                    <el-form-item :label="item.label">
-                        <template v-if="item.code">
-                            <div class="u-detail__text" v-translate="{ code: item.code }">
-                                {{ detailInfo[item.value] }}
-                            </div>
-                        </template>
-                        <template v-else-if="item.enum">
-                            <div class="u-detail__text" v-translate="{ enum: item.enum }">
-                                {{ detailInfo[item.value] }}
-                            </div>
-                        </template>
-                        <template v-else-if="item.isTime">
-                            <div class="u-detail__text">
-                                {{ detailInfo[item.value] | dateFormatter(item.format) }}
-                            </div>
-                        </template>
-                        <template v-else-if="item.custom">
-                            <div class="u-detail__text">
-                                <slot :name="item.value" :value="detailInfo[item.value]"></slot>
-                            </div>
-                        </template>
-                        <template v-else>
-                            <div class="u-detail__text">
-                                {{ detailInfo[item.value] }}
-                            </div>
-                        </template>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-        </el-form>
-    </div>
+  <div>
+    <el-form v-if="detailInfo.id" :model="detailInfo" :label-width="labelWidth" label-suffix=":">
+      <el-row>
+        <el-col :span="item.span || 12" v-for="(item, index) in config" :key="index">
+          <el-form-item :label="item.label">
+            <template v-if="item.code">
+              <div class="u-detail__text" v-translate="{ code: item.code }">
+                {{ detailInfo[item.prop] }}
+              </div>
+            </template>
+            <template v-else-if="item.enum">
+              <div class="u-detail__text" v-translate="{ enum: item.enum }">
+                {{ detailInfo[item.prop] }}
+              </div>
+            </template>
+            <template v-else-if="item.dateFormat">
+              <div class="u-detail__text">
+                {{ detailInfo[item.prop] | dateFormatter(item.dateFormat) }}
+              </div>
+            </template>
+            <template v-else-if="item.custom">
+              <div class="u-detail__text">
+                <slot :name="item.prop" :value="detailInfo[item.prop]"></slot>
+              </div>
+            </template>
+            <template v-else>
+              <div class="u-detail__text">
+                {{ detailInfo[item.prop] }}
+              </div>
+            </template>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <dg-button v-footer @click="handleClose">关闭</dg-button>
+  </div>
 </template>
 
 <script>
 export default {
-    props: {
-        detailInfo: {
-            type: Object,
-            default: () => {}
-        },
-        config: {
-            type: Array,
-            default: () => []
-        },
-        labelWidth: {
-            type: String,
-            default: "100px"
-        }
+  props: {
+    detailInfo: {
+      type: Object,
+      default: () => {}
     },
-    components: {},
-    data() {
-        return {};
+    config: {
+      type: Array,
+      default: () => []
     },
-    computed: {},
-    methods: {},
-    created() {},
-    mounted() {}
+    labelWidth: {
+      type: String,
+      default: '100px'
+    }
+  },
+  components: {},
+  data() {
+    return {};
+  },
+  computed: {},
+  methods: {
+    handleClose() {
+      this.$emit('close');
+    }
+  },
+  created() {},
+  mounted() {}
 };
 </script>
 

+ 60 - 52
src/pages/common/form/index.vue

@@ -4,67 +4,75 @@
 @Date: 2021-05-28 14:43
 -->
 <template>
-    <div>
-        <dg-row>
-            <el-form :model="form" ref="form" label-suffix=":" :label-width="labelWidth">
-                <dg-col v-for="(item, index) in formConfig" :key="index" :span="item.span || 12">
-                    <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
-                        <component :is="item.component" v-model="form[item.prop]" v-bind="item.attr" clearable />
-                    </el-form-item>
-                </dg-col>
-            </el-form>
-        </dg-row>
+  <div>
+    <dg-row>
+      <el-form :model="form" ref="form" label-suffix=":" :label-width="labelWidth">
+        <dg-col v-for="(item, index) in formConfig" :key="index" :span="item.span || 12">
+          <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+            <component :is="item.component" v-model="form[item.prop]" v-bind="item.attr" clearable />
+          </el-form-item>
+        </dg-col>
+      </el-form>
+    </dg-row>
+    <div v-footer>
+      <dg-button @click="handleClose">取消</dg-button>
+      <dg-button type="primary" @click="handleSave">确定</dg-button>
     </div>
+  </div>
 </template>
 
 <script>
-import _ from "lodash";
+import _ from 'lodash';
 export default {
-    props: {
-        config: {
-            type: Array,
-            default: () => []
-        },
-        labelWidth: {
-            type: String,
-            default: "100px"
-        },
-        // 详情
-        info: {
-            type: Object,
-            default: () => {}
-        }
+  props: {
+    config: {
+      type: Array,
+      default: () => []
     },
-    components: {},
-    data() {
-        return {
-            formConfig: this.config,
-            form: {}
-        };
+    labelWidth: {
+      type: String,
+      default: '100px'
     },
-    computed: {},
-    methods: {
-        saveForm() {
-            const vm = this;
-            this.$refs.form.validate((valid) => {
-                if (valid) {
-                    this.$emit("success", vm.form);
-                }
-            });
-        }
+    // 类型,add || update
+    type: String,
+    // 详情
+    detailInfo: {
+      type: Object,
+      default: () => {}
+    }
+  },
+  components: {},
+  data() {
+    return {
+      formConfig: this.config,
+      form: {}
+    };
+  },
+  computed: {},
+  methods: {
+    handleClose() {
+      this.$emit('close');
     },
-    created() {
-        // 编辑,字段回填
-        if (Object.keys(this.info).length > 0) {
-            this.form = _.cloneDeep(this.info);
-        } else {
-            for (let j = 0; j < this.formConfig.length; j++) {
-                let { prop, value } = this.formConfig[j];
-                this.$set(this.form, prop, value);
-            }
+    handleSave() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.$emit('success', this.form, this.type);
         }
-    },
-    mounted() {}
+      });
+    }
+  },
+  created() {
+    // 编辑,字段回填
+    if (Object.keys(this.detailInfo).length > 0) {
+      this.form = _.cloneDeep(this.detailInfo);
+    } else {
+      for (let j = 0; j < this.formConfig.length; j++) {
+        let { prop, value } = this.formConfig[j];
+        this.$set(this.form, prop, value);
+      }
+    }
+  },
+  mounted() {}
 };
 </script>
 

+ 139 - 0
src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/DataConfig.js

@@ -0,0 +1,139 @@
+/** 功能列表页数据项配置 */
+
+// 搜索栏配置
+const conditionForm = [
+  {
+    label: '应用系统名称',
+    name: 'applyName',
+    op: 'like',
+    value: '',
+    component: 'ElInput',
+    attr: {
+      placeholder: '请输入应用系统名称'
+    }
+  },
+  {
+    label: '应用系统在用标识',
+    name: 'applyStatus',
+    op: '=',
+    value: '',
+    component: 'DgSelect',
+    attr: {
+      placeholder: '请选择应用系统在用标识',
+      code: 'DM_APPLY_STATUS'
+    }
+  }
+]
+
+// 页面操作
+const pageOptList = ['导入', '新增', '同步'];
+
+// 表头操作
+const tableOptList = ['修改', '详情', '删除', '功能配置'];
+
+// 表单配置
+const appForm = [
+  {
+    label: '应用系统名称',
+    prop: 'applyName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入应用系统名称', trigger: 'change' }],
+    attr: {
+      placeholder: ''
+    }
+  },
+  {
+    label: '应用英文名称',
+    prop: 'appEnglishName',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入应用英文名称', trigger: 'change' }],
+    attr: {
+      placeholder: ''
+    }
+  },
+  {
+    label: '上线日期',
+    prop: 'lineTime',
+    component: 'DgDatePicker',
+    value: '',
+    attr: {
+      placeholder: '',
+      type:"date"
+    },
+    dateFormat: 'YYYY-MM-DD'
+  },
+  {
+    label: '应用负责人',
+    prop: 'fzr',
+    component: 'ElInput',
+    value: '',
+    attr: {
+      placeholder: ''
+    }
+  },
+  {
+    label: '应用系统管理单位名称',
+    prop: 'managerOrgName',
+    component: 'ElInput',
+    value: '',
+    attr: {
+      placeholder: ''
+    }
+  },
+  {
+    label: '应用系统编号',
+    prop: 'applyCode',
+    component: 'ElInput',
+    value: '',
+    rules: [{ required: true, message: '请输入应用系统编号', trigger: 'change' }],
+    attr: {
+      placeholder: ''
+    }
+  },
+  {
+    label: '应用系统在用标识',
+    prop: 'applyStatus',
+    component: 'DgSelect',
+    value: '',
+    rules: [{ required: true, message: '请选择应用系统在用标识', trigger: 'change' }],
+    attr: {
+      placeholder: '',
+      code: 'DM_APPLY_STATUS'
+    },
+    code: 'DM_APPLY_STATUS'
+  },
+  {
+    label: '应用系统事权单位代码',
+    prop: 'orgCode',
+    component: 'ElInput',
+    value: '',
+    attr: {
+      placeholder: ''
+    }
+  },
+  {
+    label: '应用系统运维单位名称',
+    prop: 'appOpsDepName',
+    component: 'ElInput',
+    value: '',
+    attr: {
+      placeholder: ''
+    }
+  },
+  {
+    label: '应用系统说明',
+    prop: 'managerDescribe',
+    component: 'ElInput',
+    attr: {
+      type: 'textarea',
+      rows: 3,
+      placeholder: ''
+    },
+    value: '',
+    span: 24
+  }
+];
+
+export { conditionForm, pageOptList, tableOptList, appForm };

+ 129 - 135
src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/add-app-form.vue

@@ -4,146 +4,140 @@
 @Date: 2021-05-17 16:47
 -->
 <template>
-    <dg-row>
-        <el-form ref="form" :model="form" :rules="rules" label-width="180px" v-if="show">
-            <dg-col :span="12">
-                <el-form-item label="应用系统名称:" prop="applyName">
-                    <el-input v-model="form.applyName" placeholder="" v-if="!isDetail"></el-input>
-                    <span v-else>{{ form.applyName }}</span>
-                </el-form-item>
-                <el-form-item label="应用英文名称:" prop="appEnglishName">
-                    <el-input v-model="form.appEnglishName" placeholder="" v-if="!isDetail"></el-input>
-                    <span v-else>{{ form.appEnglishName }}</span>
-                </el-form-item>
-                <el-form-item label="上线日期:" prop="lineTime">
-                    <dg-date-picker type="date" v-model="form.lineTime" v-if="!isDetail"> </dg-date-picker>
-                    <span v-else>{{ form.lineTime | dateFormatter("YYYY-MM-DD") }}</span>
-                </el-form-item>
-                <el-form-item label="应用负责人:" prop="fzr">
-                    <el-input v-model="form.fzr" placeholder="" v-if="!isDetail"></el-input>
-                    <span v-else>{{ form.fzr }}</span>
-                </el-form-item>
-                <el-form-item label="应用系统管理单位名称:" prop="managerOrgName">
-                    <el-input v-model="form.managerOrgName" placeholder="" v-if="!isDetail"></el-input>
-                    <span v-else>{{ form.managerOrgName }}</span>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="12">
-                <el-form-item label="应用系统编号:" prop="applyCode">
-                    <el-input v-model="form.applyCode" placeholder="" v-if="!isDetail"></el-input>
-                    <span v-else>{{ form.applyCode }}</span>
-                </el-form-item>
-                <el-form-item label="应用系统在用标识:" prop="applyStatus">
-                    <dg-select v-model="form.applyStatus" v-if="!isDetail" code="DM_APPLY_STATUS"></dg-select>
-                    <!-- <span v-else>{{ form.applyStatus == "1" ? "禁用" : "启用"}}</span> -->
-                    <div v-else>
-                        <div class="u-detail__text" v-translate="{ code: 'DM_APPLY_STATUS' }">
-                            {{ form.applyStatus }}
-                        </div>
-                    </div>
-                </el-form-item>
-                <el-form-item label="应用系统事权单位代码:" prop="orgCode">
-                    <el-input v-model="form.orgCode" placeholder="" v-if="!isDetail"></el-input>
-                    <span v-else>{{ form.orgCode }}</span>
-                </el-form-item>
-                <el-form-item label="应用系统运维单位名称:" prop="appOpsDepName">
-                    <el-input v-model="form.appOpsDepName" placeholder="" v-if="!isDetail"></el-input>
-                    <span v-else>{{ form.appOpsDepName }}</span>
-                </el-form-item>
-            </dg-col>
-            <dg-col :span="24">
-                <el-form-item label="应用系统说明:" prop="managerDescribe">
-                    <el-input
-                        v-model="form.managerDescribe"
-                        placeholder=""
-                        type="textarea"
-                        :rows="3"
-                        v-if="!isDetail"
-                    ></el-input>
-                    <span v-else>{{ form.managerDescribe }}</span>
-                </el-form-item>
-            </dg-col>
-        </el-form>
-    </dg-row>
+  <dg-row>
+    <el-form ref="form" :model="form" :rules="rules" label-width="180px" v-if="show">
+      <dg-col :span="12">
+        <el-form-item label="应用系统名称:" prop="applyName">
+          <el-input v-model="form.applyName" placeholder="" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.applyName }}</span>
+        </el-form-item>
+        <el-form-item label="应用英文名称:" prop="appEnglishName">
+          <el-input v-model="form.appEnglishName" placeholder="" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.appEnglishName }}</span>
+        </el-form-item>
+        <el-form-item label="上线日期:" prop="lineTime">
+          <dg-date-picker type="date" v-model="form.lineTime" v-if="!isDetail"> </dg-date-picker>
+          <span v-else>{{ form.lineTime | dateFormatter('YYYY-MM-DD') }}</span>
+        </el-form-item>
+        <el-form-item label="应用负责人:" prop="fzr">
+          <el-input v-model="form.fzr" placeholder="" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.fzr }}</span>
+        </el-form-item>
+        <el-form-item label="应用系统管理单位名称:" prop="managerOrgName">
+          <el-input v-model="form.managerOrgName" placeholder="" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.managerOrgName }}</span>
+        </el-form-item>
+      </dg-col>
+      <dg-col :span="12">
+        <el-form-item label="应用系统编号:" prop="applyCode">
+          <el-input v-model="form.applyCode" placeholder="" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.applyCode }}</span>
+        </el-form-item>
+        <el-form-item label="应用系统在用标识:" prop="applyStatus">
+          <dg-select v-model="form.applyStatus" v-if="!isDetail" code="DM_APPLY_STATUS"></dg-select>
+          <!-- <span v-else>{{ form.applyStatus == "1" ? "禁用" : "启用"}}</span> -->
+          <div v-else>
+            <div class="u-detail__text" v-translate="{ code: 'DM_APPLY_STATUS' }">
+              {{ form.applyStatus }}
+            </div>
+          </div>
+        </el-form-item>
+        <el-form-item label="应用系统事权单位代码:" prop="orgCode">
+          <el-input v-model="form.orgCode" placeholder="" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.orgCode }}</span>
+        </el-form-item>
+        <el-form-item label="应用系统运维单位名称:" prop="appOpsDepName">
+          <el-input v-model="form.appOpsDepName" placeholder="" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.appOpsDepName }}</span>
+        </el-form-item>
+      </dg-col>
+      <dg-col :span="24">
+        <el-form-item label="应用系统说明:" prop="managerDescribe">
+          <el-input v-model="form.managerDescribe" placeholder="" type="textarea" :rows="3" v-if="!isDetail"></el-input>
+          <span v-else>{{ form.managerDescribe }}</span>
+        </el-form-item>
+      </dg-col>
+    </el-form>
+  </dg-row>
 </template>
 
 <script>
-import { appRestApi } from "@/api/application";
+import { appRestApi } from '@/api/application';
 export default {
-    props: {
-        id: String,
-        isDetail: {
-            type: Boolean,
-            default: false
-        }
+  props: {
+    id: String,
+    isDetail: {
+      type: Boolean,
+      default: false
+    }
+  },
+  components: {},
+  data() {
+    return {
+      form: {
+        applyName: '',
+        appEnglishName: '',
+        lineTime: '',
+        fzr: '',
+        managerOrgName: '',
+        applyCode: '',
+        applyStatus: '',
+        orgCode: '',
+        appOpsDepName: '',
+        managerDescribe: ''
+      },
+      rules: {
+        applyName: [{ required: true, message: '请输入应用系统名称', trigger: 'change' }],
+        applyCode: [{ required: true, message: '请输入应用系统编号', trigger: 'change' }],
+        appEnglishName: [{ required: true, message: '请输入应用英文名称', trigger: 'change' }],
+        applyStatus: [{ required: true, message: '请选择系统在用标识', trigger: 'change' }]
+      },
+      show: false
+    };
+  },
+  computed: {},
+  methods: {
+    /**
+     * 保存
+     */
+    saveForm() {
+      return new Promise((resolve) => {
+        this.$refs.form.validate((valid) => {
+          if (valid) {
+            const api = this.id ? 'update' : 'save';
+            appRestApi[api](this.form)
+              .then((res) => {
+                this.$message.success('保存成功!');
+                resolve('成功');
+              })
+              .catch((error) => {
+                this.$message.error(error);
+              });
+          }
+        });
+      });
     },
-    components: {},
-    data() {
-        return {
-            form: {
-                applyName: "",
-                appEnglishName: "",
-                lineTime: "",
-                fzr: "",
-                managerOrgName: "",
-                applyCode: "",
-                applyStatus: "",
-                orgCode: "",
-                appOpsDepName: "",
-                managerDescribe: ""
-            },
-            rules: {
-                applyName: [{ required: true, message: "请输入应用系统名称", trigger: "change" }],
-                applyCode: [{ required: true, message: "请输入应用系统编号", trigger: "change" }],
-                appEnglishName: [{ required: true, message: "请输入应用英文名称", trigger: "change" }],
-                applyStatus: [{ required: true, message: "请选择系统在用标识", trigger: "change" }]
-            },
-            show: false
-        };
-    },
-    computed: {},
-    methods: {
-        /**
-         * 保存
-         */
-        saveForm() {
-            return new Promise((resolve) => {
-                this.$refs.form.validate((valid) => {
-                    if (valid) {
-                        const api = this.id ? "update" : "save";
-                        appRestApi[api](this.form)
-                            .then((res) => {
-                                this.$message.success("保存成功!");
-                                resolve("成功");
-                            })
-                            .catch((error) => {
-                                this.$message.error(error);
-                            });
-                    }
-                });
-            });
-        },
-        /**
-         * 获取详情
-         */
-        getDetail() {
-            appRestApi.detail(this.id).then((res) => {
-                this.form = res;
-                this.show = true;
-            });
-        }
-    },
-    created() {
-        if (this.id) {
-            if (this.isDetail) {
-                this.rules = {};
-            }
-            this.getDetail();
-        }else {
-            this.show = true;
-        }
-    },
-    mounted() {}
+    /**
+     * 获取详情
+     */
+    getDetail() {
+      appRestApi.detail(this.id).then((res) => {
+        this.form = res;
+        this.show = true;
+      });
+    }
+  },
+  created() {
+    if (this.id) {
+      if (this.isDetail) {
+        this.rules = {};
+      }
+      this.getDetail();
+    } else {
+      this.show = true;
+    }
+  },
+  mounted() {}
 };
 </script>
 

+ 65 - 59
src/pages/data-auth-module/auth-object-manage/appfun-resource-manage/app-list.vue

@@ -24,7 +24,6 @@
 
 <script>
 import importFile from '@/pages/common/import';
-import addAppForm from './add-app-form';
 import { appRestApi } from '@/api/application';
 import { appSync } from '@/api/sync';
 import addFuncForm from './add-func-form';
@@ -32,36 +31,18 @@ import { appImportUrl } from '@/api/import';
 import operateBar from '@/components/operate-bar';
 import basicTable from '@/pages/common/new-table';
 import searchBar from '@/components/search-bar';
+import { conditionForm, pageOptList, tableOptList, appForm } from './DataConfig';
+import Form from '@/pages/common/form';
+import FormDetail from '@/pages/common/form-detail';
 
 export default {
   components: { operateBar, basicTable, searchBar },
   data() {
     return {
       condition: {},
-      // 搜索栏配置
-      conditionForm: [
-        {
-          label: '应用系统名称',
-          name: 'applyName',
-          op: 'like',
-          value: '',
-          component: 'ElInput',
-          attr: {
-            placeholder: '请输入应用系统名称'
-          }
-        },
-        {
-          label: '应用系统在用标识',
-          name: 'applyStatus',
-          op: '=',
-          value: '',
-          component: 'DgSelect',
-          attr: {
-            placeholder: '请选择应用系统在用标识',
-            code: 'DM_APPLY_STATUS'
-          }
-        }
-      ],
+      conditionForm,
+      pageOptList,
+      tableOptList,
       // 表格请求路径
       tableUrl: appRestApi.table,
       // 表头
@@ -83,11 +64,7 @@ export default {
           prop: 'applyStatus',
           code: 'DM_APPLY_STATUS'
         }
-      ],
-      // 表头操作
-      tableOptList: ['修改', '详情', '删除', '功能配置'],
-      // 页面操作
-      pageOptList: ['导入', '新增', '同步']
+      ]
     };
   },
   computed: {},
@@ -124,18 +101,6 @@ export default {
         this.$refs.table.handleSearch();
       });
     },
-    /**
-     * 编辑
-     */
-    handleEdit(row) {
-      this.handleOpenForm(row.id, '编辑');
-    },
-    /**
-     * 查看详情
-     */
-    handleViewDetail(row) {
-      this.handleOpenForm(row.id, '详情', true);
-    },
     /**
      * 删除
      */
@@ -151,7 +116,7 @@ export default {
      * 功能配置
      */
     handleSetFunc(app) {
-      const layer = this.$dgLayer({
+      this.$dgLayer({
         title: '功能配置',
         content: addFuncForm,
         props: {
@@ -179,7 +144,7 @@ export default {
             layer.close(layer.dialogIndex);
           }
         },
-        cancel: function (index, layero) {
+        cancel: function (index) {
           // 关闭对应弹窗的ID
           layer.close(index);
           return false;
@@ -191,31 +156,72 @@ export default {
      * 新增
      */
     handleAdd() {
-      this.handleOpenForm(void 0, '新增');
+      this.handleOpenEditForm('新增', 'add');
+    },
+    /**
+     * 编辑
+     */
+    async handleEdit(row) {
+      const content = await this.getDetail(row.id);
+      this.handleOpenEditForm('编辑', 'update', content);
+    },
+    /**
+     * 查看详情
+     */
+    async handleViewDetail(row) {
+      const detailInfo = await this.getDetail(row.id);
+      this.$dgLayer({
+        title: '详情',
+        content: FormDetail,
+        props: {
+          detailInfo,
+          config: appForm,
+          labelWidth: '180px'
+        },
+        area: ['900px', '600px']
+      });
+    },
+    /**
+     * 获取详情
+     */
+    getDetail(id) {
+      return new Promise((resolve) => {
+        appRestApi.detail(id).then((res) => {
+          resolve(res);
+        });
+      });
     },
-    handleOpenForm(id, title, isDetail = false) {
+
+    handleOpenEditForm(title, type, detailInfo = {}) {
       const vm = this;
       const layer = this.$dgLayer({
         title,
-        content: addAppForm,
+        content: Form,
         props: {
-          id,
-          isDetail
+          detailInfo,
+          type,
+          config: appForm,
+          labelWidth: '180px'
         },
-        btn: ['确定', '取消'],
-        btnAlign: 'r',
-        noneBtnField: isDetail,
-        yes: (index) => {
-          let _layer = layer.$children[0];
-          _layer.saveForm().then((res) => {
-            layer.close(index);
-            vm.handleSearch();
-          });
+        on: {
+          success(form, type) {
+            // 此处处理编辑和新增逻辑
+            const api = type == 'update' ? 'update' : 'save';
+            appRestApi[api](form)
+              .then((res) => {
+                vm.$message.success('保存成功!');
+                layer.close(layer.dialogIndex);
+                vm.handleSearch();
+              })
+              .catch((error) => {
+                vm.$message.error(error);
+              });
+          }
         },
-
         area: ['900px', '600px']
       });
     },
+
     /**
      * 同步
      */

+ 2 - 8
src/pages/data-auth-module/auth-object-manage/sort-code-manage/safe-level-code.vue

@@ -128,22 +128,16 @@ export default {
             });
         },
         handleSave() {},
-        handleOpenForm(title, info = {}) {
+        handleOpenForm(title, detailInfo = {}) {
             const vm = this;
             const layer = this.$dgLayer({
                 title,
                 content: Form,
                 props: {
-                    info,
+                    detailInfo,
                     config: safeLevelForm,
                     labelWidth: "120px"
                 },
-                btn: ["确定", "取消"],
-                btnAlign: "r",
-                yes: (index) => {
-                    let _layer = layer.$children[0];
-                    _layer.saveForm();
-                },
                 on: {
                     success(form) {
                         saveDataSecLev(form).then((res) => {

+ 20 - 22
src/pages/log-manage/permiss-log-manage/DataConfig.js

@@ -144,39 +144,38 @@ export const authBehaviorStatisticTableHeader = [
 export const authRiskLogDetail = [
     {
         label: "风险产生方",
-        value: "creater"
+        prop: "creater"
     },
     {
         label: "风险产生方标识",
-        value: "createrId"
+        prop: "createrId"
     },
     {
         label: "风险发生时间",
-        value: "createTime",
-        isTime: true,
-        format: "YYYY-MM-DD HH:mm:ss"
+        prop: "createTime",
+        dateFormat: "YYYY-MM-DD HH:mm:ss"
     },
     {
         label: "风险类型",
-        value: "riskType",
+        prop: "riskType",
         enum: "RiskProgrammeTypeEnum"
     },
     {
         label: "鉴权请求者",
-        value: "requesterName"
+        prop: "requesterName"
     },
     {
         label: "鉴权请求者标识",
-        value: "requesterId"
+        prop: "requesterId"
     },
     {
         label: "风险内容",
-        value: "riskContent",
+        prop: "riskContent",
         span: 24
     },
     {
         label: "处理建议",
-        value: "handleOpinion",
+        prop: "handleOpinion",
         span: 24
     }
 ];
@@ -185,48 +184,47 @@ export const authRiskLogDetail = [
 export const authServiceLogDetail = [
     {
         label: "用户姓名",
-        value: "userName"
+        prop: "userName"
     },
     {
         label: "用户身份证号码",
-        value: "userIdcard"
+        prop: "userIdcard"
     },
     {
         label: "鉴权请求者",
-        value: "requesterName"
+        prop: "requesterName"
     },
     {
         label: "请求者唯一标识",
-        value: "requesterId"
+        prop: "requesterId"
     },
     {
         label: "鉴权时间",
-        value: "createTime",
-        isTime: true,
-        format: "YYYY-MM-DD HH:mm:ss"
+        prop: "createTime",
+        dateFormat: "YYYY-MM-DD HH:mm:ss"
     },
     {
         label: "终端标识",
-        value: "terminalId"
+        prop: "terminalId"
     },
     {
         label: "鉴权令牌",
-        value: "tokens",
+        prop: "tokens",
         span: 24
     },
     {
         label: "鉴权类型",
-        value: "authenticationType",
+        prop: "authenticationType",
         enum: "AuthenticationTypeEnum"
     },
     {
         label: "鉴权结果",
-        value: "state",
+        prop: "state",
         enum: "AuthResultEnum"
     },
     {
         label: "鉴权内容",
-        value: "content",
+        prop: "content",
         span: 24
     }
 ];