From 32a95699e59c5c65e18c08643266c9cbfa380ee4 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期五, 07 六月 2024 09:56:05 +0800 Subject: [PATCH] 优化设备明细、检验任务附件权限 --- src/components/view/a6-device-management.vue | 288 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 224 insertions(+), 64 deletions(-) diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue index 3485c11..00e1073 100644 --- a/src/components/view/a6-device-management.vue +++ b/src/components/view/a6-device-management.vue @@ -107,14 +107,14 @@ </div> </el-image> <!-- 琛ㄥ崟 --> - <el-form :label-position="labelPosition" :model="formData" label-width="100px"> - <el-form-item label="浠櫒鍚嶇О:"> + <el-form :label-position="labelPosition" :model="formData" label-width="120px"> + <el-form-item label="浠櫒鍚嶇О:" required> <el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input> </el-form-item> - <el-form-item label="浠櫒鍚嶇ОEN:"> + <el-form-item label="浠櫒鍚嶇ОEN:" required> <el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input> </el-form-item> - <el-form-item label="瑙勬牸鍨嬪彿:"> + <el-form-item label="瑙勬牸鍨嬪彿:" required> <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input> </el-form-item> <el-form-item label="鐢熶骇鍘傚:"> @@ -132,7 +132,7 @@ <el-form-item label="鍑哄巶缂栧彿:"> <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input> </el-form-item> - <el-form-item label="绠$悊缂栧彿:"> + <el-form-item label="绠$悊缂栧彿:" required> <el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input> </el-form-item> <el-form-item label="璐疆鏃ユ湡:"> @@ -140,7 +140,7 @@ format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> </el-form-item> - <el-form-item label="鍚敤鏃ユ湡:"> + <el-form-item label="鍚敤鏃ユ湡:" required> <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.activationDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> @@ -185,12 +185,12 @@ filterable clearable></el-cascader> </el-form-item> - <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:"> + <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:" v-if="isUp"> <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" size="small" placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> </el-form-item> - <el-form-item label="涓嬫鏍″噯鏃ユ湡:"> + <el-form-item label="涓嬫鏍″噯鏃ユ湡:" v-if="isUp"> <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" size="small" placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> @@ -205,13 +205,13 @@ <el-form-item label="鍗曚环(涓囧厓):"> <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input> </el-form-item> - <el-form-item label="褰撳墠鐘舵��:"> + <el-form-item label="褰撳墠鐘舵��:" required> <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="璇烽�夋嫨" size="small" style="width:100%"> <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> - <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:"> + <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required> <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> </el-form-item> <el-form-item label="鍥剧墖:"> @@ -258,14 +258,14 @@ </div> </el-image> <!-- 琛ㄥ崟 --> - <el-form :label-position="labelPosition" :model="formData2" label-width="100px"> - <el-form-item label="浠櫒鍚嶇О:"> + <el-form :label-position="labelPosition" :model="formData2" label-width="120px"> + <el-form-item label="浠櫒鍚嶇О:" required> <el-input v-model="formData2.deviceName" size="small"></el-input> </el-form-item> - <el-form-item label="浠櫒鍚嶇ОEN:"> + <el-form-item label="浠櫒鍚嶇ОEN:" required> <el-input v-model="formData2.enDeviceName" size="small"></el-input> </el-form-item> - <el-form-item label="瑙勬牸鍨嬪彿:"> + <el-form-item label="瑙勬牸鍨嬪彿:" required> <el-input v-model="formData2.specificationModel" size="small"></el-input> </el-form-item> <el-form-item label="鐢熶骇鍘傚:"> @@ -286,7 +286,7 @@ <el-form-item label="鍑哄巶缂栧彿:"> <el-input v-model="formData2.factoryNo" size="small"></el-input> </el-form-item> - <el-form-item label="绠$悊缂栧彿:"> + <el-form-item label="绠$悊缂栧彿:" required> <el-input v-model="formData2.managementNumber" size="small"></el-input> </el-form-item> <el-form-item label="璐疆鏃ユ湡:"> @@ -294,7 +294,7 @@ format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> </el-form-item> - <el-form-item label="鍚敤鏃ユ湡:"> + <el-form-item label="鍚敤鏃ユ湡:" required> <el-date-picker style="width:100%" v-model="formData2.activationDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡"> </el-date-picker> @@ -327,7 +327,7 @@ </el-form-item> <el-form-item label="妫�娴嬮」鐩�:"> <el-cascader - v-model="formData.insProductIds" + v-model="formData2.insProductIds" :options="options" :show-all-levels="false" :props="props" @@ -335,18 +335,9 @@ style="width:100%" collapse-tags separator="," + filterable clearable></el-cascader> </el-form-item> - <!-- <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:"> - <el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd" - value-format="yyyy-MM-dd" type="date" size="small" placeholder="閫夋嫨鏃ユ湡"> - </el-date-picker> - </el-form-item> - <el-form-item label="涓嬫鏍″噯鏃ユ湡:"> - <el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd" - value-format="yyyy-MM-dd" type="date" size="small" placeholder="閫夋嫨鏃ユ湡"> - </el-date-picker> - </el-form-item> --> <el-form-item label="璁惧绫诲瀷:"> <el-select v-model="formData2.largeCategory" placeholder="璇烽�夋嫨" size="small" style="width:100%"> <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" @@ -357,13 +348,13 @@ <el-form-item label="鍗曚环(涓囧厓):"> <el-input v-model="formData2.unitPrice" size="small"></el-input> </el-form-item> - <el-form-item label="褰撳墠鐘舵��:"> + <el-form-item label="褰撳墠鐘舵��:" required> <el-select v-model="formData2.deviceStatus" placeholder="璇烽�夋嫨" size="small" style="width:100%"> - <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> + <el-option v-for="item in deviceStatusList" :key="item.id" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> - <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:"> + <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required> <el-input v-model="formData2.calibrationDate" size="small"></el-input> </el-form-item> <el-form-item label="鍥剧墖:"> @@ -387,6 +378,49 @@ </el-row> </span> </el-dialog> + <el-dialog title="鏁伴噰閰嶇疆" :visible.sync="dialogVisible3" width="400px"> + <div class="search_thing" style="margin-bottom: 14px;"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>IP锛�</div> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="configForm.ip"></el-input> + </div> + <div class="search_thing" style="margin-bottom: 14px;"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>閲囬泦鍦板潃锛�</div> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="configForm.collectUrl"></el-input> + </div> + <div class="search_thing" style="margin-bottom: 14px;"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍌ㄥ瓨鍦板潃锛�</div> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="configForm.storageUrl"></el-input> + </div> + <div class="search_thing" style="margin-bottom: 14px;"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍙傜収锛�</div> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="configForm.refer"></el-input> + </div> + <div class="search_thing" style="margin-bottom: 14px;"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>X锛�</div> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="configForm.x"></el-input> + </div> + <div class="search_thing" style="margin-bottom: 14px;"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>Y锛�</div> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="configForm.y"></el-input> + </div> + <div class="search_thing"> + <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍏紡锛�</div> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="configForm.formula"></el-input> + </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="dialogVisible3=false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitForm3" :loading="upLoad3">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> </div> </template> @@ -400,13 +434,14 @@ return { //鏄惁鏄。妗堜慨璁� true涓嶆槸 false鏄� isUp: true, - formData: {}, + formData: { + }, formData2: { imageUpload: '', imageName: '' }, value: '', - props: { multiple: true,emitPath:false,value:'id',label:'name' }, + props: { multiple: true,emitPath:false,value:'id',label:'name' }, options: [], labelPosition: 'right', dialogVisible: false, @@ -436,26 +471,15 @@ font: '妗f淇', type: 'text', method: 'isUpdate' + }, { + id: 'handleConfig', + font: '鏁伴噰閰嶇疆', + type: 'text', + method: 'handleConfig' }], tagField: { deviceStatus: { - select: [{ - value: 0, - type: 'success', - label: '鑹ソ' - }, { - value: 1, - type: 'info', - label: '鎶ュ簾' - }, { - value: 2, - type: 'danger', - label: '鍋滅敤' - }, { - value: 3, - type: 'danger', - label: '瀛樼枒' - }] + select: [] }, equipmentManager: { select: [] @@ -504,6 +528,9 @@ subordinateDepartmentsList: [], upLoad: false, upLoad2: false, + dialogVisible3:false, + upLoad3:false, + configForm:{} } }, computed: { @@ -523,7 +550,7 @@ this.selectEnumByCategory() this.selectDevicePrincipal() this.obtainItemParameterList() - this.getInsProductIds() + this.getInsProductIds() }, methods: { obtainItemParameterList() { @@ -551,6 +578,7 @@ let up = false let del = false let add = false + let config = false for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'upDeviceParameter') { up = true @@ -561,6 +589,12 @@ if (power[i].menuMethod == 'addDeviceParameter') { add = true } + if (power[i].menuMethod == 'numberCollect') { + config = true + } + } + if (!config) { + this.componentData.do.splice(2, 1) } if (!up) { this.componentData.do.splice(1, 1) @@ -576,6 +610,12 @@ category: "璁惧鐘舵��" }).then(res => { this.deviceStatusList = res.data + this.deviceStatusList.forEach(a=>{ + if(!isNaN(a.value)){ + a.value = parseInt(a.value) + } + }) + this.componentData.tagField.deviceStatus.select = res.data }) this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "璁惧鍒嗙被" @@ -604,7 +644,7 @@ this.componentData.tagField.insProductIds.select = [] this.componentData.selectField.insProductIds.select = [] this.options = res.data.map((m,i)=>{ - m.id = i; + m.id = m.name; let children = m.children.map(n=>{ n.label = n.name; n.value = n.id; @@ -617,10 +657,20 @@ }) }, handleClose() { + this.formData = {} + this.formData2 = { + imageUpload: '', + imageName: '' + } this.dialogVisible = false; this.upLoad = false; }, handleClose2() { + this.formData = {} + this.formData2 = { + imageUpload: '', + imageName: '' + } this.dialogVisible2 = false; this.upLoad = false; }, @@ -641,6 +691,9 @@ //row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽�� //澶嶅埗缁檉ormData this.formData = this.HaveJson(row); + if(typeof(row.insProductIds)==='number'){ + row.insProductIds = row.insProductIds+'' + } this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : []; }, beforeUpload(file) { @@ -672,14 +725,40 @@ } }, submitForm() { - this.upLoad = true; - // let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : '' - // delete this.formData.createTime - // delete this.formData.updateTime - // delete this.formData.createUser - // delete this.formData.updateUser - // this.formData.authorizedPerson = authorizedPerson - this.formData.insProductIds = this.formData.insProductIds.join() + if(!this.formData.deviceName){ + this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�') + return + } + if(!this.formData.enDeviceName){ + this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N') + return + } + if(!this.formData.specificationModel){ + this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�') + return + } + if(!this.formData.managementNumber){ + this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�') + return + } + if(!this.formData.activationDate){ + this.$message.error('鏈緭鍏ュ惎鐢ㄦ棩鏈�') + return + } + if(this.formData.deviceStatus==='' || this.formData.deviceStatus===null){ + this.$message.error('鏈�夋嫨褰撳墠鐘舵��') + return + } + if(!this.formData.calibrationDate){ + this.$message.error('鏈緭鍏ユ牎鍑嗗懆鏈燂紙鏈堬級') + return + } + delete this.formData.createTime + delete this.formData.updateTime + delete this.formData.createUser + delete this.formData.updateUser + this.formData.insProductIds = this.formData.insProductIds?this.formData.insProductIds.join():'' + this.upLoad = true; this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, { headers: { 'Content-Type': 'application/json' @@ -700,11 +779,36 @@ }) }, submitForm2() { + if(!this.formData2.deviceName){ + this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�') + return + } + if(!this.formData2.enDeviceName){ + this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N') + return + } + if(!this.formData2.specificationModel){ + this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�') + return + } + if(!this.formData2.managementNumber){ + this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�') + return + } + if(!this.formData2.activationDate){ + this.$message.error('鏈緭鍏ュ惎鐢ㄦ棩鏈�') + return + } + if(!this.formData2.deviceStatus){ + this.$message.error('鏈�夋嫨褰撳墠鐘舵��') + return + } + if(!this.formData2.calibrationDate){ + this.$message.error('杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�') + return + } this.upLoad2 = true; - // let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') : - // '' - // this.formData2.authorizedPerson = authorizedPerson - this.formData.insProductIds = this.formData.insProductIds.join() + this.formData2.insProductIds = this.formData2.insProductIds.join() this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, { headers: { 'Content-Type': 'application/json' @@ -727,7 +831,63 @@ this.dialogVisible2 = false this.upLoad2 = false }) - } + }, + handleConfig(row){ + this.configForm = {} + this.dialogVisible3 = true + this.$axios.post(this.$api.deviceScope.getNumberCollect+'?id='+row.id).then(res => { + this.configForm = res.data + }) + }, + submitForm3(){ + if(!this.configForm.ip){ + this.$message.error('璇峰~鍐橧P'); + return + } + if(!this.configForm.collectUrl){ + this.$message.error('璇峰~鍐欓噰闆嗗湴鍧�'); + return + } + if(!this.configForm.storageUrl){ + this.$message.error('璇峰~鍐欏偍瀛樺湴鍧�'); + return + } + if(!this.configForm.refer){ + this.$message.error('璇峰~鍐欏弬鐓�'); + return + } + if(!this.configForm.x){ + this.$message.error('璇峰~鍐橷'); + return + } + if(!this.configForm.y){ + this.$message.error('璇峰~鍐橸'); + return + } + if(!this.configForm.formula){ + this.$message.error('璇峰~鍐欏叕寮�'); + return + } + + this.upLoad3 = true + this.$axios.post(this.$api.deviceScope.numberCollect, this.configForm, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.upLoad3 = false + if (res.code === 201) { + return + } + this.$message.success('鎿嶄綔鎴愬姛') + this.refreshTable() + this.dialogVisible3 = false + }).catch(e => { + this.$message.error('鎿嶄綔澶辫触') + this.dialogVisible3 = false + this.upLoad3 = false + }) + } } } </script> -- Gitblit v1.9.3