From 0851bd8b66a6c57f3f42beac0fd45a81befbde9b Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 24 七月 2024 16:55:01 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before into master --- src/components/tool/value-table.vue | 2 src/components/view/b3-classes.vue | 169 ++++++++++++++++++++++++++++++++++++++++++ src/assets/api/controller.js | 4 + src/components/do/b6-device-management/b6-data-acquisition-config.vue | 21 +++-- 4 files changed, 187 insertions(+), 9 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index e1b97c9..1c342d8 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -317,6 +317,10 @@ update: "/performanceShift/update", //缁╂晥绠$悊-鐝-鐝鐘舵�佷慨鏀� pageYear: "/performanceShift/pageYear", //缁╂晥绠$悊-鐝-骞翠唤鍒嗛〉鏌ヨ export: "/performanceShift/export", //缁╂晥绠$悊-鐝-瀵煎嚭 + shiftAdd: "/shiftTime/add", //缁╂晥绠$悊-鐝-鏃堕棿閰嶇疆-鏂板 + getList: "/shiftTime/list", //缁╂晥绠$悊-鐝-鏃堕棿閰嶇疆-鏌ヨ鏃堕棿閰嶇疆淇℃伅 + shiftRemove: "/shiftTime/remove", //缁╂晥绠$悊-鐝-鏃堕棿閰嶇疆-鍒犻櫎 + shiftUpdate: "/shiftTime/update", //缁╂晥绠$悊-鐝-鏃堕棿閰嶇疆-淇敼 } const auxiliaryWorkingHours = { diff --git a/src/components/do/b6-device-management/b6-data-acquisition-config.vue b/src/components/do/b6-device-management/b6-data-acquisition-config.vue index bb598d9..42964c9 100644 --- a/src/components/do/b6-device-management/b6-data-acquisition-config.vue +++ b/src/components/do/b6-device-management/b6-data-acquisition-config.vue @@ -21,7 +21,7 @@ <el-table-column prop="storageUrl" align="center" min-width="100" show-overflow-tooltip label="瀛樺偍鍦板潃"></el-table-column> <el-table-column prop="ip" align="center" label="IP鍦板潃"></el-table-column> <el-table-column prop="inspectionItem" align="center" label="妫�楠岄」" min-width="100"></el-table-column> - <el-table-column prop="inspectionItemSubClass" align="center" label="妫�楠岄」瀛愰」" min-width="100"></el-table-column> + <el-table-column prop="inspectionItemSubclass" align="center" label="妫�楠岄」瀛愰」" min-width="100"></el-table-column> <el-table-column prop="referx" align="center" label="鍙傜収X"></el-table-column> <el-table-column prop="x" align="center" label="X"></el-table-column> <el-table-column prop="refery" align="center" label="鍙傜収Y"></el-table-column> @@ -185,7 +185,7 @@ specialSpanList: [], spanConfig: { special: { - main: "inspectionItemSubClass", + main: "inspectionItemSubclass", rows:[ { name:'deviceName', @@ -212,15 +212,15 @@ index:6 }, { - name:'inspectionItemSubClass', + name:'inspectionItemSubclass', index:7 }, { - name:'inspectionItemSubClass', + name:'inspectionItemSubclass', index:12 }, { - name:'inspectionItemSubClass', + name:'inspectionItemSubclass', index:13 } ] @@ -361,10 +361,14 @@ dataConfig (row) { this.configForm = { deviceId: row.deviceId, - insProductItem: row.inspectionItemSubClass.trim() + inspectionItem: row.inspectionItem.trim(), + inspectionItemSubclass: row.inspectionItemSubclass } this.dialogVisible3 = true - this.$axios.get(this.$api.deviceScope.queryDataAcquisitionConfiguration + "?deviceId=" + this.deviceId + "&insProductItem=" + row.inspectionItemSubClass.trim() + "&isDevice=" + true).then(res => { + this.$axios.get(this.$api.deviceScope.queryDataAcquisitionConfiguration + "?deviceId=" + this.deviceId + + "&inspectionItem=" + row.inspectionItem.trim() + + "&isDevice=" + true + + "&inspectionItemSubclass=" + row.inspectionItemSubclass.trim()).then(res => { const data = res.data if(data[0]) { this.domains.splice(0, 1) @@ -399,7 +403,8 @@ } i.formula = this.configForm.formula i.deviceId = this.deviceId - i.insProductItem = this.configForm.insProductItem + i.inspectionItem = this.configForm.inspectionItem + i.inspectionItemSubclass = this.configForm.inspectionItemSubclass }) this.$axios.post(this.$api.deviceScope.saveDataAcquisitionConfiguration + "?deviceId=" + this.deviceId, {dataConfigList: this.domains, isDevice: false},{headers: { 'Content-Type': 'application/json' diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue index 21dba9f..3fa5c3c 100644 --- a/src/components/tool/value-table.vue +++ b/src/components/tool/value-table.vue @@ -627,7 +627,7 @@ if (this.isShowZero) { this.tableData.map(item => { Object.keys(item).forEach(val => { - if (item[val] === null && val.includes('Hours')) { + if (item[val] === null && (val.includes('Hours') || val === 'total')) { item[val] = 0 } }) diff --git a/src/components/view/b3-classes.vue b/src/components/view/b3-classes.vue index 7fb7bad..49493b3 100644 --- a/src/components/view/b3-classes.vue +++ b/src/components/view/b3-classes.vue @@ -44,6 +44,7 @@ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> </div> <div class="search_thing btns" style="padding-left: 30px;"> + <el-button size="small" type="primary" v-if="downPower" @click="configTime" :loading="downLoading">鏃堕棿閰嶇疆</el-button> <el-button size="small" type="primary" v-if="downPower" @click="handleDown" :loading="downLoading">瀵� 鍑�</el-button> <el-button size="small" type="primary" @click="schedulingVisible = true" v-if="addPower">鎺� 鐝�</el-button> </div> @@ -146,6 +147,57 @@ </scroll-pagination> <span style="color:#909399;font-size:14px;position: absolute;left:50%;top: 50%;transform: translate(-59%,-50%);" v-if="(query.month&&list.length==0)||(!query.month&&yearList.length==0)">鏆傛棤鏁版嵁</span> </div> + <el-dialog title="鏃堕棿閰嶇疆" :visible.sync="configTimeVisible" width="620px"> + <div v-loading="configTimeVisibleLoading" ></div> + <div v-if="!configTimeVisibleLoading"> + <div v-for="(item, index) in timeQuery"> + <div class="form_title"> + <span>{{`鐝${transFromNumber(index + 1)}`}}</span> + <span style="margin-right: 10px"> + <i class="el-icon-circle-check" v-if="item.isEdit" style="margin-left: 10px; color: #4b79f2" @click="saveEdit(item, index)"></i> + <i class="el-icon-edit" v-if="!item.isEdit" style="margin-left: 10px; color: #4b79f2" @click="item.isEdit = true"></i> + <i class="el-icon-delete" v-if="!item.isEdit && timeQuery.length > 1" style="margin-left: 10px; color: #FF4902" @click="deleteTime(item, index)"></i> + </span> + </div> + <div class="form"> + <div style="margin-bottom: 12px"> + <span class="form_label">鐝锛�</span> + <span v-if="!item.isEdit"> {{item.type}} </span> + <span class="form_input" v-if="item.isEdit"> + <el-select v-model="item.shift" placeholder="璇烽�夋嫨" style="width: 70%;" clearable size="small"> + <el-option v-for="obj in timeTypeList" + :key="obj.value" + :label="obj.label" + :value="obj.value"> + </el-option> + </el-select> + </span> + </div> + <div> + <span class="form_label">鏃堕棿锛�</span> + <span v-if="!item.isEdit"> {{item.time === null ? '' : item.time[0] + '~' + item.time[1]}} </span> + <span class="form_input" v-if="item.isEdit"> + <el-time-picker + style="width: 70%;" + is-range + size="small" + v-model="item.time" + range-separator="~" + format="HH:mm" + value-format="HH:mm" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + placeholder="閫夋嫨鏃堕棿鑼冨洿"> + </el-time-picker> + </span> + </div> + <el-divider></el-divider> + </div> + <div @click="addTimeForm" style="color: #4b79f2" v-if="index === timeQuery.length - 1">娣诲姞鏃堕棿閰嶇疆</div> + </div> + <div @click="addTimeForm" style="color: #4b79f2" v-if="timeQuery.length === 0">娣诲姞鏃堕棿閰嶇疆</div> + </div> + </el-dialog> <el-dialog title="鎺掔彮" :visible.sync="schedulingVisible" width="400px"> <div class="search_thing"> <div class="search_label" style="width:90px"><span style="color: red;margin-right: 4px;">*</span>鍛ㄦ锛�</div> @@ -285,6 +337,10 @@ yearList:[], downLoading:false, keyMap:{}, + configTimeVisible: false, // 鏃堕棿閰嶇疆寮规 + configTimeVisibleLoading: false, // 鏃堕棿閰嶇疆寮规loading + timeTypeList: [], + timeQuery: [], } }, watch: { @@ -355,6 +411,23 @@ this.yearList = [] this.initYear() } + }, + transFromNumber(num){ + let changeNum = ['闆�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�', '涓�', '鍏�', '涔�']; //changeNum[0] = "闆�" + let unit = ["", "鍗�", "鐧�", "鍗�", "涓�"]; + num = parseInt(num); + let getWan = (temp) => { + let strArr = temp.toString().split("").reverse(); + let newNum = ""; + for (var i = 0; i < strArr.length; i++) { + newNum = (i == 0 && strArr[i] == 0 ? "" : (i > 0 && strArr[i] == 0 && strArr[i - 1] == 0 ? "" : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i]))) + newNum; + } + return newNum; + } + let overWan = Math.floor(num / 10000); + let noWan = num % 10000; + if (noWan.toString().length < 4) noWan = "0" + noWan; + return overWan ? getWan(overWan) + "涓�" + getWan(noWan) : getWan(num) }, init(){ const key = `_${this.currentPage}` @@ -534,6 +607,95 @@ this.refresh() }) }, + configTime () { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鐝绫诲瀷" + }).then(res => { + console.log('res---', res) + this.timeTypeList = res.data + }) + this.getTimeList() + this.configTimeVisible = true + }, + getTimeList () { + this.configTimeVisibleLoading = true + this.$axios.post(this.$api.performanceShift.getList).then(res => { + if (res.code == 201) return + if (res.data.length > 0) { + res.data.forEach(item => { + item.isEdit = false + item.time.push(item.startTime) + item.time.push(item.endTime) + const index = this.timeTypeList.findIndex(val => val.value === item.shift) + if (index > -1) { + item.type = this.timeTypeList[index].label + } + }) + this.timeQuery = res.data + } + this.configTimeVisibleLoading = false + }).catch(e => { + this.configTimeVisibleLoading = false + console.log('e--',e) + }) + }, + addTimeForm () { + this.timeQuery.push({ + type: '', + shift: '', + time: null, + isEdit: true + }) + }, + saveEdit (item, index) { + if (item.shift) { + const index = this.timeTypeList.findIndex(val => val.value === item.shift) + if (index > -1) { + item.type = this.timeTypeList[index].label + } + } + const isEmpty = this.isObjectEmpty(item) + if (isEmpty) { + this.$message.error('璇峰~鍐欏畬鏁�') + return + } + let newObj = {} + let url = '' + newObj.shift = item.shift + newObj.startTime = item.time[0] + newObj.endTime = item.time[1] + url = this.$api.performanceShift.shiftAdd + if (item.id) { + // 鏈塱d涓轰慨鏀� + newObj.id = item.id + url = this.$api.performanceShift.shiftUpdate + } + this.$axios.post(url, newObj, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) return + this.$message.success('鎿嶄綔鎴愬姛') + }) + this.getTimeList() + }, + deleteTime (item, index) { + this.$axios.post(this.$api.performanceShift.shiftRemove, { + id: item.id + },{ + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) return + this.$message.success('鎿嶄綔鎴愬姛') + }) + this.getTimeList() + }, + isObjectEmpty(obj) { + return Object.keys(obj).some(key => !obj[key]); + }, handleDown(){ let year = this.query.year.getFullYear() let time = ''; @@ -680,6 +842,13 @@ </script> <style scoped> +.form_title { + height: 36px; + display: flex; + flex-direction: row; + justify-content: space-between; + font-weight: 800; +} .search { height: 50px; display: flex; -- Gitblit v1.9.3