From d975fc4756806f5b51f006c19c33571b9b8c0b3b Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期五, 20 十二月 2024 09:30:19 +0800 Subject: [PATCH] 修改下单时要求值输入限制 --- src/components/do/a6-device/files.vue | 441 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 418 insertions(+), 23 deletions(-) diff --git a/src/components/do/a6-device/files.vue b/src/components/do/a6-device/files.vue index 4b05956..247d503 100644 --- a/src/components/do/a6-device/files.vue +++ b/src/components/do/a6-device/files.vue @@ -3,8 +3,20 @@ <div class="page-header"> <h4><span class="line"></span><span>璁惧妗f</span></h4> <div class="btns"> - <el-button type="primary" size="small">淇妗f</el-button> - <el-button type="primary" size="small">娣诲姞闄勪欢</el-button> + <el-button type="primary" size="small" @click="dialogVisible=true" style="margin-right: 16px;">淇妗f</el-button> + <!-- <el-button type="primary" size="small">娣诲姞闄勪欢</el-button> --> + <el-upload + class="upload-demo" + :action="action" + :headers="headers" + :show-file-list="false" + :limit="1" + :before-upload="beforeUpload" + :on-success="handleSuccess" + ref="upload" + :on-error="onError"> + <el-button size="small" type="primary" :loading="inLoading">娣诲姞闄勪欢</el-button> + </el-upload> </div> </div> <el-divider></el-divider> @@ -16,75 +28,117 @@ </div> </el-image> </el-col> - <el-col :span="9"> + <el-col :span="8"> <div class="form-item"> <label>璁惧鍚嶇О</label> - <p>鎵弿鐢甸暅(甯﹁兘璋�)</p> + <p>{{ handleData('鎵弿鐢甸暅(甯﹁兘璋�)') }}</p> </div> <div class="form-item"> <label>澶х被</label> - <p>鍒嗘瀽浠櫒</p> + <p>{{ handleData('鍒嗘瀽浠櫒') }}</p> </div> <div class="form-item"> <label>鍐呴儴缂栧彿</label> - <p>鎵弿鐢甸暅(甯﹁兘璋�)</p> + <p>{{ handleData('鎵弿鐢甸暅(甯﹁兘璋�)') }}</p> </div> <div class="form-item"> <label>鐢熶骇鍘傚</label> - <p>-</p> + <p>{{ handleData('鎵弿鐢甸暅(甯﹁兘璋�)') }}</p> </div> <div class="form-item"> <label>璧勪骇缂栫爜</label> - <p>-</p> + <p>{{ handleData('鎵弿鐢甸暅(甯﹁兘璋�)') }}</p> </div> <div class="form-item"> <label>鍑哄巶鏃ユ湡</label> - <p>2024-7-20</p> + <p>{{ handleData('2024-7-20') }}</p> </div> <div class="form-item"> <label>鍚敤鏃ユ湡</label> - <p>2024-7-20</p> + <p>{{ handleData('2024-7-20') }}</p> </div> <div class="form-item"> <label>鏍稿噯鍛ㄦ湡(鏈�)</label> - <p>12</p> + <p>{{ handleData('12') }}</p> </div> <div class="form-item"> <label>妫�娴嬬被鍨�</label> - <p>12</p> + <p>{{ handleData('12') }}</p> </div> <div class="form-item"> <label>鎶ュ簾鏃堕棿</label> - <p>2024-7-20</p> + <p>{{ handleData('12') }}</p> </div> <div class="form-item"> <label>鍑嗙‘搴﹂噺鍊�</label> - <p>-</p> + <p>{{ handleData('12') }}</p> </div> <div class="form-item"> <label>琚巿鏉冧汉</label> - <p>-</p> + <p>{{ handleData('12') }}</p> </div> <div class="form-item"> <label>缁翠慨璁板綍</label> - <p>-</p> + <p>{{ handleData('12') }}</p> </div> </el-col> - <el-col :span="9"> + <el-col :span="10"> <div class="form-item"> <label>瑙勬牸鍨嬪彿</label> - <p>JSM-6010LA</p> + <p>{{ handleData('JSM-6010LA') }}</p> </div> <div class="form-item"> <label>缁嗙被</label> - <p>鍒嗘瀽浠櫒</p> + <p>{{ handleData('鍒嗘瀽浠櫒') }}</p> </div> <div class="form-item"> <label>璁惧鐘舵��</label> <el-radio-group v-model="form.value1" disabled> - <el-radio :label="0">鍚堟牸</el-radio> - <el-radio :label="1">缁翠慨</el-radio> + <el-radio :label="0" style="width: 40px;">鍚堟牸</el-radio> + <el-radio :label="1" style="width: 40px;">缁翠慨</el-radio> + <el-radio :label="2" style="width: 40px;">鍋滅敤</el-radio> + <el-radio :label="3" style="width: 40px;">鎶ュ簾</el-radio> </el-radio-group> + </div> + <div class="form-item"> + <label>鍑哄巶缂栧彿</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>瀛樻斁鐐�</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>璐疆鏃ユ湡</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>浜у湴</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>鏈�杩戞函婧愭棩鏈�</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>閲囪喘璐圭敤(鍏�)</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>鍋滅敤鏃堕棿</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>璁惧璐熻矗浜�</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>楠屾敹璁板綍</label> + <p>{{ handleData() }}</p> + </div> + <div class="form-item"> + <label>鏍稿噯璇佷功</label> + <p>{{ handleData() }}</p> </div> </el-col> </el-row> @@ -94,6 +148,152 @@ :url="$api.auxiliaryWorkingHoursDay.selectAuxiliaryWorkingHoursDay" :delUrl="$api.auxiliaryWorkingHoursDay.deleteAuxiliaryWorkingHoursDay" :componentData="componentData" :key="upIndex" style="min-height: 400px;"/> </div> + <el-dialog title="妗f淇" :visible.sync="dialogVisible" width="70%" :before-close="handleClose"> + <el-row style="display:flex;justify-content: space-around;"> + <!-- 宸﹁竟甯冨眬 --> + <el-col :span="7"> + <el-col> + <!-- 鍥剧墖 --> + <el-image class="img" style="width:100%;height: 320px;marginBottom:16px" + :src="javaApi+'/img/'+formData.imageUpload"> + <div slot="error" class="image-error" style="width: calc(100% -2px); + height: 318px; + border-radius: 16px; + display: flex; + align-items: center; + justify-content: center; + border: 1px solid #EEEEEE;"> + <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i> + </div> + </el-image> + <!-- 琛ㄥ崟 --> + <el-form :model="formData" label-width="120px"> + <el-form-item label="浠櫒鍚嶇О:" required> + <el-input v-model="formData.deviceName" size="small"></el-input> + </el-form-item> + <el-form-item label="浠櫒鍚嶇ОEN:" required> + <el-input v-model="formData.enDeviceName" size="small"></el-input> + </el-form-item> + <el-form-item label="瑙勬牸鍨嬪彿:" required> + <el-input v-model="formData.specificationModel" size="small"></el-input> + </el-form-item> + <el-form-item label="鐢熶骇鍘傚:"> + <el-input v-model="formData.manufacturer" size="small"></el-input> + </el-form-item> + </el-form> + </el-col> + </el-col> + <!-- 涓棿甯冨眬 --> + <el-col :span="7"> + <el-form :model="formData" label-width="116px"> + <el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:"> + <el-input v-model="formData.calibrationServices" size="small"></el-input> + </el-form-item> + <el-form-item label="鍑哄巶缂栧彿:"> + <el-input v-model="formData.factoryNo" size="small"></el-input> + </el-form-item> + <el-form-item label="绠$悊缂栧彿:" required> + <el-input v-model="formData.managementNumber" size="small"></el-input> + </el-form-item> + <el-form-item label="璐疆鏃ユ湡:"> + <el-date-picker style="width:100%" v-model="formData.acquisitionDate" type="date" + 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="鍚敤鏃ユ湡:" required> + <el-date-picker 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> + </el-form-item> + <el-form-item label="绠$悊浜�:"> + <el-select v-model="formData.equipmentManager" placeholder="璇烽�夋嫨" size="small" style="width:100%"> + <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="瀛樻斁鐐�:"> + <el-input v-model="formData.storagePoint" size="small"></el-input> + </el-form-item> + <el-form-item label="鎶�鏈寚鏍�:"> + <el-input v-model="formData.technicalIndicators" :rows="7" type="textarea" size="small"></el-input> + </el-form-item> + </el-form> + </el-col> + <!-- 鍙宠竟甯冨眬 --> + <el-col :span="7"> + <el-form :model="formData" label-width="140px" ref="ruleForm"> + <!-- 瀹為獙瀹ゅ垪琛� --> + <el-form-item label="鎵�灞為儴闂�:"> + <el-select v-model="formData.subordinateDepartmentsId" placeholder="璇烽�夋嫨" size="small" style="width:100%"> + <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="妫�娴嬮」鐩�:"> + <el-cascader + v-model="formData.insProductIds" + :options="options" + :show-all-levels="false" + :props="props" + placeholder="璇烽�夋嫨" size="small" + style="width:100%;" + :collapse-tags="true" + separator="," + filterable + clearable></el-cascader> + </el-form-item> + <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:"> + <el-date-picker 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-date-picker 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-select v-model="formData.largeCategory" placeholder="璇烽�夋嫨" size="small" style="width:100%"> + <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鍗曚环(涓囧厓):"> + <el-input v-model="formData.unitPrice" size="small"></el-input> + </el-form-item> + <el-form-item label="褰撳墠鐘舵��:" required> + <el-select 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="鏍″噯鍛ㄦ湡锛堟湀锛�:" required> + <el-input v-model="formData.calibrationDate" size="small"></el-input> + </el-form-item> + <el-form-item label="鍥剧墖:"> + <div + style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;"> + <div v-show="formData.imageName" class="picName">{{formData.imageName}}</div> + <el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false" + accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload" + :on-error="onError" ref='upload'> + <el-button type="text" style="height:30px;padding-top:8px">涓婁紶</el-button> + </el-upload> + </div> + </el-form-item> + </el-form> + </el-col> + </el-row> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="handleClose">鍙� 娑�</el-button> + <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> </div> </template> @@ -197,10 +397,201 @@ requiredAdd: [], requiredUp: [] }, - upIndex:0 + upIndex:0, + dialogVisible:false, + inLoading:false, + form: { + value1:'' + }, + upLoad:false, + formData:{}, + responsiblePersonList:[], + subordinateDepartmentsList:[], + options:[], + equipmentList:[], + deviceStatusList:[], + props: { multiple: true,emitPath:false,value:'id',label:'name' }, } + }, + computed: { + headers() { + return { + 'token': sessionStorage.getItem('token') + } + }, + action() { + return this.javaApi + this.$api.deviceScope.uploadFile + } + }, + mounted(){ + this.selectDevicePrincipal() + this.obtainItemParameterList() + this.getInsProductIds() + this.selectEnumByCategory() + }, + methods: { + handleData(m){ + if(m){ + return m + }else{ + return '-' + } + }, + handleClose(){ + this.dialogVisible = false + }, + handleSuccess(response,){ + this.inLoading = false; + if (response.code == 200) { + this.$message.success('涓婁紶鎴愬姛') + // 鏇存柊椤甸潰 + }else{ + this.$message.error(response.message) + } + }, + submitForm(){ + 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' + } + }).then(res => { + if (res.code === 201) { + this.upLoad = false + return + } + this.$message.success('淇敼鎴愬姛') + this.upLoad = false + this.dialogVisible = false + }).catch(e => { + this.$message.error('淇敼澶辫触') + this.dialogVisible = false + this.upLoad = false + }) + }, + handleSuccessUpImg2(response) { + if (response.code == 200) { + this.$nextTick(() => { + this.formData.imageUpload = response.data.url; + this.formData.imageName = response.data.name; + }) + } + }, + beforeUpload(file) { + if (file.size > 1024 * 1024 * 10) { + this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); + this.$refs.upload.clearFiles() + return false; + } else { + return true; + } + }, + onError(err, file, fileList) { + this.$message.error('涓婁紶澶辫触') + this.$refs.upload.clearFiles() + }, + // 鑾峰彇璐熻矗浜哄垪琛� + selectDevicePrincipal() { + this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.name, + value: a.id + }) + }) + this.responsiblePersonList = data + }) + }, + obtainItemParameterList() { + this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { + let data = [] + res.data.forEach(a=>{ + data.push({ + label: a.laboratoryName, + value: a.id + }) + }) + this.subordinateDepartmentsList = data + }) + }, + getInsProductIds(){ + this.$axios.post(this.$api.capacityScope.getInsProduction).then(res => { + this.options = res.data.map((m,i)=>{ + m.id = m.name; + return m + }) + this.options.forEach(item=>{ + if(item.children.length==0){ + item.children = null; + }else{ + item.children.forEach(m=>{ + if(m.children.length==0){ + m.children = null; + }else{ + m.children.forEach(n=>{ + if(n.children&&n.children.length==0){ + n.children = null; + } + }) + } + }) + } + }) + }) + }, + // 鑾峰彇瀛楀吀 + selectEnumByCategory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "璁惧鐘舵��" + }).then(res => { + this.deviceStatusList = res.data + this.deviceStatusList.forEach(a=>{ + if(!isNaN(a.value)){ + a.value = parseInt(a.value) + } + }) + }) + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "璁惧鍒嗙被" + }).then(res => { + this.equipmentList = res.data + }) + }, } - } </script> @@ -251,4 +642,8 @@ margin-right: 20px; color: #999; } +.btns { + display: flex; + align-items: center; +} </style> -- Gitblit v1.9.3