赵殿龙 1 год назад
Родитель
Сommit
08609d7d3c

+ 18 - 0
src/api/dict.js

@@ -98,3 +98,21 @@ export function add_dict(data) {
     data: data
   })
 }
+
+// 病历目录-列表-修改
+export function edit_field(data) {
+  return request({
+    url: '/quality_rule/edit_field',
+    method: 'post',
+    data: data
+  })
+}
+
+// 病历目录-字典-修改
+export function edit_field_dict(data) {
+  return request({
+    url: '/quality_rule/edit_field_dict',
+    method: 'post',
+    data: data
+  })
+}

+ 11 - 50
src/views/dict/blml/components/CreateDialog.vue

@@ -1,25 +1,25 @@
 <template>
   <el-dialog
-    :title="titleStr"
+    title="新增"
     :visible.sync="data.bSwitch"
     width="30%"
   >
     <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
       <el-form-item label="数据库表" prop="table">
-        <el-select v-model="ruleForm.table" filterable placeholder="请选择" style="width: 100%;" :disabled="data.row.id" @change="handleTableChange">
+        <el-select v-model="ruleForm.table" filterable placeholder="请选择" style="width: 100%;" @change="handleTableChange">
           <el-option v-for="item of table" :key="item.id" :label="item.field" :value="item.id" />
         </el-select>
       </el-form-item>
       <el-form-item v-if="ruleForm.table" label="表字段" prop="table_field">
         <el-select v-model="ruleForm.table_field" filterable placeholder="请选择" style="width: 100%;">
-          <el-option v-for="item of table_field" :key="item.id" :label="item.field_name" :value="item.id" :disabled="data.row.id" />
+          <el-option v-for="item of table_field" :key="item.id" :label="item.field_name" :value="item.id" />
         </el-select>
       </el-form-item>
       <el-form-item label="名称" prop="field_name">
         <el-input v-model="ruleForm.field_name" placeholder="请输入" />
       </el-form-item>
       <el-form-item label="值" prop="field">
-        <el-input v-model="ruleForm.field" :disabled="data.row.id && data.type === 1" placeholder="请输入" />
+        <el-input v-model="ruleForm.field" placeholder="请输入" />
       </el-form-item>
       <el-form-item label="备注" prop="remark">
         <el-input v-model="ruleForm.remark" placeholder="请输入" />
@@ -86,39 +86,8 @@ export default {
       }
     }
   },
-  computed: {
-    titleStr() {
-      return this.data.row.id ? '编辑' : '新增'
-    }
-  },
   async created() {
     await this.getData(0, null)
-    if (this.data.row.id) {
-      await this.getData2(this.data.row.field, null)
-
-      // 'id': 44,
-      // 'parent_field': 'attending_group',
-      // 'field': 'id',
-      // 'field_name': '',
-      // 'status': 1,
-      // 'type': 0,
-      // 'remark': '',
-      // 'parent_fildname': '病案首页主诊组'
-      const { status, remark, field, parent_field } = this.data.row
-      const tableId = this.table.filter(item => item.field === parent_field)[0].id
-      this.ruleForm = {
-        table: tableId,
-        table_field: field,
-        status,
-        remark
-      }
-      // table: '',
-      // table_field: '',
-      // field: '',
-      // field_name: '',
-      // remark: '',
-      // status: 1
-    }
   },
   methods: {
     getData(field, field_name) {
@@ -131,7 +100,7 @@ export default {
       }
       get_field_detail(params).then(res => {
         const { p } = res
-        this.table = p
+        this.table = Array.isArray(p) ? p : []
       })
     },
     getData2(field, field_name) {
@@ -144,7 +113,7 @@ export default {
       }
       get_field_detail(params).then(res => {
         const { p } = res
-        this.table_field = p
+        this.table_field = Array.isArray(p) ? p : []
       })
     },
     handleTableChange(val) {
@@ -153,19 +122,11 @@ export default {
     submitForm(formName) {
       this.$refs[formName].validate(async(valid) => {
         if (valid) {
-          if (this.ruleForm.id) {
-            add_dict(this.ruleForm).then(res => {
-              this.data.bSwitch = false
-              this.$emit('refresh')
-              this.$message.success(res.m || '操作成功')
-            })
-          } else {
-            add_dict(this.ruleForm).then(res => {
-              this.data.bSwitch = false
-              this.$emit('refresh')
-              this.$message.success(res.m || '操作成功')
-            })
-          }
+          add_dict(this.ruleForm).then(res => {
+            this.data.bSwitch = false
+            this.$emit('refresh')
+            this.$message.success(res.m || '操作成功')
+          })
         } else {
           return false
         }

+ 24 - 5
src/views/dict/blml/components/DictDialog.vue

@@ -52,18 +52,22 @@
         </el-table-column>
       </el-table>
     </el-dialog>
-    <!-- 新增、编辑 -->
+    <!-- 新增 -->
     <CreateDialog v-if="createData.bSwitch" :data="createData" @refresh="handleRefresh" />
+    <!-- 编辑 -->
+    <EditDictDialogVue v-if="editData.bSwitch" :data="editData" @refresh="handleRefresh" />
   </div>
 </template>
 
 <script>
 import CreateDialog from './CreateDialog.vue'
 import { del_dict, get_field_detail } from '@/api/dict'
+import EditDictDialogVue from './EditDictDialog.vue'
 
 export default {
   components: {
-    CreateDialog
+    CreateDialog,
+    EditDictDialogVue
   },
   props: {
     data: {
@@ -82,10 +86,25 @@ export default {
         bSwitch: false,
         row: {}
       },
+      editData: {
+        bSwitch: false,
+        row: {}
+      },
       form: {
         field_name: ''
       },
-      tableData: []
+      tableData: [
+        {
+          'id': 3606,
+          'parent_field': 3,
+          'field': 'ceshi1',
+          'field_name': 'ceshi1',
+          'status': 1,
+          'type': 3,
+          'remark': 'ceshi1',
+          'updated_at': '2023-11-27 07:07:00'
+        }
+      ]
     }
   },
   created() {
@@ -105,8 +124,8 @@ export default {
       this.createData.bSwitch = true
     },
     onEdit(row) {
-      this.createData.row = row
-      this.createData.bSwitch = true
+      this.editData.row = row
+      this.editData.bSwitch = true
     },
     onDel(row) {
       this.$confirm('是否确认删除该数据?', '提示', {

+ 98 - 0
src/views/dict/blml/components/EditDictDialog.vue

@@ -0,0 +1,98 @@
+<template>
+  <el-dialog
+    title="修改字典"
+    :visible.sync="data.bSwitch"
+    width="30%"
+  >
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
+      <el-form-item label="名称" prop="field_name">
+        <el-input v-model="ruleForm.field_name" placeholder="请输入" />
+      </el-form-item>
+      <el-form-item label="值" prop="field">
+        <el-input v-model="ruleForm.field" placeholder="请输入" />
+      </el-form-item>
+      <el-form-item label="备注" prop="remark">
+        <el-input v-model="ruleForm.remark" placeholder="请输入" />
+      </el-form-item>
+      <el-form-item label="状态" prop="status">
+        <el-switch
+          v-model="ruleForm.status"
+          active-color="#13ce66"
+          :active-value="1"
+          :inactive-value="2"
+        />
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="data.bSwitch = false">取 消</el-button>
+      <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import { edit_field_dict } from '@/api/dict'
+
+export default {
+  props: {
+    data: {
+      type: Object,
+      default() {
+        return {
+          bSwitch: false,
+          row: {}
+        }
+      }
+    }
+  },
+  data() {
+    return {
+      ruleForm: {
+        field_name: '',
+        remark: '',
+        field: '',
+        status: 1
+      },
+      rules: {
+        field: [
+          { required: true, message: '请输入', trigger: 'blur' }
+        ],
+        field_name: [
+          { required: true, message: '请输入', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    const { field_name, remark, status, id, field } = JSON.parse(JSON.stringify(this.data.row))
+    this.ruleForm = {
+      field_name,
+      remark,
+      status,
+      id,
+      field
+    }
+  },
+  methods: {
+    submitForm(formName) {
+      this.$refs[formName].validate(async(valid) => {
+        if (valid) {
+          edit_field_dict(this.ruleForm).then(res => {
+            this.data.bSwitch = false
+            this.$emit('refresh')
+            this.$message.success(res.m || '操作成功')
+          })
+        } else {
+          return false
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.demo-ruleForm {
+  width: 80%;
+}
+</style>

+ 93 - 0
src/views/dict/blml/components/EditFieldDialog.vue

@@ -0,0 +1,93 @@
+<template>
+  <el-dialog
+    title="修改字段"
+    :visible.sync="data.bSwitch"
+    width="30%"
+  >
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
+      <el-form-item label="名称" prop="field_name">
+        <el-input v-model="ruleForm.field_name" placeholder="请输入" />
+      </el-form-item>
+      <el-form-item label="备注" prop="remark">
+        <el-input v-model="ruleForm.remark" placeholder="请输入" />
+      </el-form-item>
+      <el-form-item label="状态" prop="status">
+        <el-switch
+          v-model="ruleForm.status"
+          active-color="#13ce66"
+          :active-value="1"
+          :inactive-value="2"
+        />
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="data.bSwitch = false">取 消</el-button>
+      <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import { edit_field } from '@/api/dict'
+
+export default {
+  props: {
+    data: {
+      type: Object,
+      default() {
+        return {
+          bSwitch: false,
+          row: {}
+        }
+      }
+    }
+  },
+  data() {
+    return {
+      ruleForm: {
+        field_name: '',
+        remark: '',
+        status: 1
+      },
+      rules: {
+        field: [
+          { required: true, message: '请输入', trigger: 'blur' }
+        ],
+        field_name: [
+          { required: true, message: '请输入', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    const { field_name, remark, status, id } = JSON.parse(JSON.stringify(this.data.row))
+    this.ruleForm = {
+      field_name,
+      remark,
+      status,
+      id
+    }
+  },
+  methods: {
+    submitForm(formName) {
+      this.$refs[formName].validate(async(valid) => {
+        if (valid) {
+          edit_field(this.ruleForm).then(res => {
+            this.data.bSwitch = false
+            this.$emit('refresh')
+            this.$message.success(res.m || '操作成功')
+          })
+        } else {
+          return false
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.demo-ruleForm {
+  width: 80%;
+}
+</style>

+ 12 - 4
src/views/dict/blml/components/TableBox.vue

@@ -74,8 +74,10 @@
         </template>
       </el-table-column>
     </el-table>
-    <!-- 新增、编辑 -->
+    <!-- 新增 -->
     <CreateDialog v-if="createData.bSwitch" :data="createData" @refresh="handleRefresh" />
+    <!-- 编辑 -->
+    <EditFieldDialogVue v-if="editData.bSwitch" :data="editData" @refresh="handleRefresh" />
     <!-- 查看数据字典 -->
     <DictDialog v-if="dictData.bSwitch" :data="dictData" @refresh="handleRefresh" />
   </div>
@@ -85,11 +87,13 @@
 import CreateDialog from './CreateDialog.vue'
 import DictDialog from './DictDialog.vue'
 import { edit_dict_status, del_dict } from '@/api/dict'
+import EditFieldDialogVue from './EditFieldDialog.vue'
 
 export default {
   components: {
     CreateDialog,
-    DictDialog
+    DictDialog,
+    EditFieldDialogVue
   },
   props: {
     data: {
@@ -119,6 +123,10 @@ export default {
       dictData: {
         bSwitch: false,
         row: {}
+      },
+      editData: {
+        bSwitch: false,
+        row: {}
       }
     }
   },
@@ -128,8 +136,8 @@ export default {
       this.createData.bSwitch = true
     },
     onEdit(row) {
-      this.createData.row = row
-      this.createData.bSwitch = true
+      this.editData.row = row
+      this.editData.bSwitch = true
     },
     onDel(row) {
       this.$confirm('是否确认删除该数据?', '提示', {

+ 11 - 0
src/views/dict/blml/index.vue

@@ -41,6 +41,17 @@ export default {
           'type': 0,
           'remark': '',
           'parent_fildname': '病案首页主诊组'
+        },
+        {
+          'id': 3,
+          'parent_field': 'admin',
+          'field': 'name',
+          'field_name': '昵称',
+          'status': 1,
+          'type': 2,
+          'remark': '',
+          'updated_at': '2023-11-27 07:00:36',
+          'parent_fildname': '后台账号'
         }
       ],
       paginationData: {