Kaynağa Gözat

设备档案卡设备状态使用全局配置

luoaoxuan 1 yıl önce
ebeveyn
işleme
ef40ec6e4d

+ 12 - 3
src/views/component/device/deviceDialog.vue

@@ -125,7 +125,7 @@
                                     </el-col>
                                     <el-col :span="8">
                                         <el-form-item label="设备状态:" prop="sheBeiZhuangTa">
-                                            <span>{{ form.sheBeiZhuangTa }}</span>
+                                            <span>{{ showState }}</span>
                                         </el-form-item>
                                     </el-col>
                                 </el-row>
@@ -497,7 +497,7 @@
                                                         </el-form-item>
                                                     </el-col>
                                                 </el-row>
-                                                <el-row>
+                                                <!-- <el-row>
                                                     <el-col>
                                                         <el-form-item label="是否限用:">
                                                             <el-select v-model="form.xiaoZhunWuCha" placeholder="请选择" size="mini" style="width:100%">
@@ -517,7 +517,7 @@
                                                             <el-input v-model="form.caiGouHeTong" size="mini" />
                                                         </el-form-item>
                                                     </el-col>
-                                                </el-row>
+                                                </el-row> -->
                                                 <el-row>
                                                     <!-- todo -->
                                                     <el-col>
@@ -759,6 +759,12 @@ export default {
             default: function () {
                 return {}
             }
+        },
+        stateList: {
+            type: Object,
+            default: function () {
+                return { '停用': '停用', '报废': '报废', '合格': '合格' }
+            }
         }
     },
     data () {
@@ -928,6 +934,9 @@ export default {
                 return photos
             }
             return []
+        },
+        showState () {
+            return this.stateList[this.form.sheBeiZhuangTa] || this.form.sheBeiZhuangTa
         }
     },
     watch: {

+ 39 - 9
src/views/component/device/index.vue

@@ -65,6 +65,13 @@
 
                     </template>
 
+                    <template
+                        slot="deviceStateSlot"
+                        slot-scope="{row}"
+                    >
+                        <span>{{ stateList[row.sheBeiZhuangTa] || row.sheBeiZhuangTa }}</span>
+                    </template>
+
                     <template
                         slot="placeSlot"
                         slot-scope="{row}"
@@ -265,10 +272,10 @@
                     <template slot="deviceStatus">
                         <el-select v-model="search.deviceStatus" placeholder="请选择" size="mini" :clearable="true">
                             <el-option
-                                v-for="item in ['合格','限用','停用','报废']"
-                                :key="item"
-                                :label="item"
-                                :value="item"
+                                v-for="(v,k) in stateList"
+                                :key="k"
+                                :label="v"
+                                :value="k"
                             />
                         </el-select>
                     </template>
@@ -302,7 +309,7 @@
                 </ibps-crud>
             </template>
         </ibps-container>
-        <DeviceDialog v-if="deviceDialogShow" :params="params" @close="close" />
+        <DeviceDialog v-if="deviceDialogShow" :params="params" :state-list="stateList" @close="close" />
         <input id="" ref="file1" type="file" name="" accept=".xlsx,.xls" @change="handleUploadChange1">
         <input id="" ref="file2" type="file" name="" accept=".xlsx,.xls" @change="handleUploadChange2">
 
@@ -319,7 +326,7 @@
             def-id="1120718364969271296"
             @close="visible => npmDialogFormVisible = visible"
         />
-        <DeviceTag :scan-visible="printVisible" :obj="printObj" @scanOff="scanOff" />
+        <DeviceTag :scan-visible="printVisible" :obj="printObj" :state-list="stateList" @scanOff="scanOff" />
         <el-dialog
             :close-on-click-modal="false"
             :close-on-press-escape="false"
@@ -485,7 +492,7 @@ export default {
                     { prop: 'sheBeiMingCheng', label: '设备名称', sortable: true },
                     { prop: 'sheBeiLeiXing', label: '设备类型', sortable: true },
                     { prop: 'guiGeXingHao', label: '规格型号', sortable: true },
-                    { prop: 'sheBeiZhuangTa', label: '设备状态', sortable: true },
+                    { prop: 'sheBeiZhuangTa', label: '设备状态', sortable: true, slotName: 'deviceStateSlot' },
                     { prop: 'guanLiRen', label: '保管人', slotName: 'userSlot', sortable: true },
                     { prop: 'weiHuFangShi', label: '设备分组', slotName: 'deviceSlot', sortable: true },
                     { prop: 'cunFangWeiZhi', label: '放置地点', slotName: 'placeSlot', sortable: true },
@@ -611,13 +618,35 @@ export default {
                 '季度保养': this.generateRule(3, `每季度第`, `个月`),
                 '年保养': this.generateRule(12, `每年第`, `个月`),
                 '按需保养': ['/']
-            }
+            },
+            stateList: { '停用': '停用', '报废': '报废', '合格': '合格' }
         }
     },
-    mounted () {
+    async mounted () {
         this.getDatas()
+        const stateList = await this.getSetting('device', 'stateList')
+        if (stateList) {
+            this.stateList = stateList
+        }
     },
     methods: {
+        // 获取全局配置对象
+        async getSetting (module, key) {
+            try {
+                const org = this.$store.getters.level.first || ''
+                const sql = `select setting from t_ipcc where org_ = '${org}' limit 1`
+                const { variables: { data = [] } = {}} = await this.$common.request('sql', sql)
+                if (data.length > 0 && data[0]?.setting) {
+                    const setting = JSON.parse(data[0].setting)
+                    const res = setting?.[module]?.[key]
+                    console.log(res)
+                    return res
+                }
+                return null
+            } catch (error) {
+                return this.$message.warning('数据库字段配置错误!')
+            }
+        },
         ImageAllUrl (row) {
             if (row && row.buMen) {
                 const imgId = row.buMen.split(',')
@@ -1349,6 +1378,7 @@ export default {
             let importData = this.switchDeviceObj(data, this.deviceColumns)
             importData.forEach(i => {
                 delete i.sheBeiShiBieH // 设备编号需自动生成
+                i.sheBeiZhuangTa = '合格'
             })
             const currentPosition = this.level
             const { userList = [], deptList = [] } = this.$store.getters || {}

+ 8 - 13
src/views/system/jbdScan/goods/deviceTag.vue

@@ -114,6 +114,12 @@ export default {
         scanVisible: {
             type: Boolean,
             default: false
+        },
+        stateList: {
+            type: Object,
+            default: function () {
+                return { '停用': '停用', '报废': '报废', '合格': '合格' }
+            }
         }
     },
     data () {
@@ -214,18 +220,7 @@ export default {
             return value != null && value != undefined
         },
         switchProve (status) {
-            switch (status) {
-                case '合格':
-                    return '合格证'
-                case '停用':
-                    return '停用证'
-                case '限用':
-                    return '限用证'
-                case '报废':
-                    return '报废证'
-                default:
-                    return '测试证'
-            }
+            return `${this.stateList[status] || '测试'}证`
         },
         switchSlogan (status) {
             switch (status) {
@@ -340,7 +335,7 @@ export default {
     position: relative;
     top: -45px;
     left: -50px;
-    font-size: 24px;
+    font-size: 20px;
     font-weight: bold;
     color: #000000;
 }