From c3b8f3f950ca99b011ea8f43b2356ddf0508f3b9 Mon Sep 17 00:00:00 2001 From: gaoaoy <1042166043@qq.com> Date: 星期一, 04 三月 2024 13:42:04 +0800 Subject: [PATCH] 6 设备工具明细 --- src/components/tool/value-table.vue | 1 static/js/menu.js | 4 src/components/view/a5-laboratory-management.vue | 16 +- src/components/view/a6-device-management.vue | 292 ++++++++++++++++++++++++++++++++++++++++++++++++ src/assets/api/controller.js | 8 + 5 files changed, 313 insertions(+), 8 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index e8e599b..49b3074 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -7,6 +7,7 @@ enums, capacityScope, laboratoryScope, + deviceScope, systemLog, standardTree } @@ -92,6 +93,13 @@ obtainItemParameterList: "/laboratoryScope/obtainItemParameterList", //鑾峰彇瀹為獙瀹ゅ悕绉� } +const deviceScope = { + selectDeviceParameter: "/deviceScope/selectDeviceParameter", //鏌ヨ璁惧璇︽儏鍒楄〃 + addDeviceParameter: "/deviceScope/addDeviceParameter", //娣诲姞璁惧璇︽儏鍙傛暟 + delDeviceParameter: "/deviceScope/delDeviceParameter", //鍒犻櫎璁惧璇︽儏鍙傛暟 + upDeviceParameter: "/deviceScope/upDeviceParameter", //淇敼璁惧璇︽儏鍙傛暟 +} + const systemLog = { selectSystemLogList: "/systemLog/selectSystemLogList", //鑾峰彇鏃ュ織 } diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue index 0cef9a8..c9999e0 100644 --- a/src/components/tool/value-table.vue +++ b/src/components/tool/value-table.vue @@ -411,6 +411,7 @@ return false }, main(row, val) { + console.log(val); if (val.method == undefined) return else if (val.method == 'doDiy') { if (val.id == 'update') { diff --git a/src/components/view/a5-laboratory-management.vue b/src/components/view/a5-laboratory-management.vue index c1a056c..7e5a5a4 100644 --- a/src/components/view/a5-laboratory-management.vue +++ b/src/components/view/a5-laboratory-management.vue @@ -40,28 +40,32 @@ <div class="role_manage"> <div> <el-row class="title"> - <el-col :span="12" style="padding-left: 20px;">鍦烘墍鎴栬鏂�</el-col> + <el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏锛�</el-col> <el-col :span="12" style="text-align: right;"> - <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button> </el-col> </el-row> </div> <div class="search"> <div class="search_thing"> - <div class="search_label">瀹為獙瀹ゅ悕绉帮細</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + <div class="search_label">鐘舵�侊細</div> + <div class="search_input"><el-input size="small" placeholder="鍏ㄩ儴" clearable v-model="componentData.entity.laboratoryName" @keyup.enter.native="refreshTable()"></el-input></div> </div> <div class="search_thing"> - <div class="search_label">瀹為獙瀹ょ紪鐮侊細</div> + <div class="search_label">璁惧鍚嶇О锛�</div> <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.laboratoryNumber" @keyup.enter.native="refreshTable()"></el-input></div> </div> <div class="search_thing"> - <div class="search_label">璐熻矗浜猴細</div> + <div class="search_label">瑙勬牸鍨嬪彿锛�</div> <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.head" @keyup.enter.native="refreshTable()"></el-input></div> </div> + <div class="search_thing"> + <div class="search_label">璁惧澶х被锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇烽�夋嫨" clearable + v-model="componentData.entity.head" @keyup.enter.native="refreshTable()"></el-input></div> + </div> <div class="search_thing" style="padding-left: 30px;"> <el-button size="small" @click="refresh()">閲� 缃�</el-button> <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue new file mode 100644 index 0000000..8c9e4a2 --- /dev/null +++ b/src/components/view/a6-device-management.vue @@ -0,0 +1,292 @@ +<style scoped> + .title { + height: 60px; + line-height: 60px; + } + + .search { + background-color: #fff; + height: 80px; + display: flex; + align-items: center; + } + + .search_thing { + width: 350px; + display: flex; + align-items: center; + } + + .search_label { + width: 110px; + + font-size: 14px; + text-align: right; + } + + .search_input { + width: calc(100% - 110px); + } + + .table { + margin-top: 10px; + background-color: #fff; + width: calc(100% - 40px); + height: calc(100% - 60px - 80px - 10px - 40px); + padding: 20px; + } +</style> + +<template> + <div class="role_manage"> + <div> + <el-row class="title"> + <el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏</el-col> + <el-col :span="12" style="text-align: right;"> + </el-col> + </el-row> + </div> + <div class="search"> + <div class="search_thing"> + <div class="search_label">鐘舵�侊細</div> + <el-select v-model="value" placeholder="鍏ㄩ儴"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search_thing"> + <div class="search_label">璁惧鍚嶇О锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="componentData.entity.laboratoryNumber" @keyup.enter.native="refreshTable()"></el-input></div> + </div> + <div class="search_thing"> + <div class="search_label">瑙勬牸鍨嬪彿锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="componentData.entity.head" @keyup.enter.native="refreshTable()"></el-input></div> + </div> + <div class="search_thing"> + <div class="search_label">璁惧澶х被锛�</div> + <el-select v-model="value" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search_thing" style="padding-left: 30px;"> + <el-button size="small" @click="refresh()">閲� 缃�</el-button> + <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> + </div> + </div> + <div class="table"> + <!-- 璇硶 瀛愮粍浠堕�氳繃 this.$emit +浼犲叆鏂规硶鍚� 璋冪敤鐖剁粍浠舵柟娉� 渚嬪 this.$emit锛坰electAllByOne锛� 灏遍渶鍦ㄧ埗缁勪欢澹版槑骞朵紶鍏� @selectAllByOne="selectAllByOne"--> + <ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable" :url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter" :delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex"/> + </div> + <div> + <el-dialog + title="璁惧璇︽儏" + :visible.sync="dialogVisible" + width="70%" + :before-close="handleClose"> + <el-row style="display:flex;justify-content: space-around;"> + <!-- 宸﹁竟甯冨眬 --> + <el-col :span="7" > + <el-col> + <!-- 鍥剧墖 --> + <img src="https://www.baidu.com/img/bd_logo1.png" alt="" style="width:100%;height: 30vh;"> + <!-- 琛ㄥ崟 --> + <el-form :label-position="labelPosition" :model="formData"> + <el-form-item label="澶х被锛�" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input> + </el-form-item> + <el-form-item label="鍑哄巶鏃ユ湡"> + + <el-input style="width:75%" :disabled="isUp" v-model="formData.dateProduction"></el-input> + </el-form-item> + <el-form-item label="璁惧璐熻矗浜�" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.equipmentManager"></el-input> + </el-form-item> + <el-form-item label="琚巿鏉冧汉" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.authorizedPerson"></el-input> + </el-form-item> + <el-form-item v-if="!isUp" label="鍥剧墖" > + <div style="width:75%;border: 1px solid #DCDFE6;border-radius:4px;margin-left: 22%;display:flex;justify-content: space-around;"> + <div>{{formData.largeCategory}}</div> + <div style="width: 40%;"></div> + <div><el-button type="text">棰勮</el-button></div> + </div> + </el-form-item> + </el-form> + </el-col> + </el-col> + <!-- 涓棿甯冨眬 --> + <el-col :span="7"> + <el-form :label-position="labelPosition" :model="formData"> + <el-form-item label="璁惧鍚嶇О" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.deviceName"></el-input> + </el-form-item> + <el-form-item label="鍐呴儴缂栫爜"> + <el-input style="width:75%" :disabled="isUp" v-model="formData.internalCode"></el-input> + </el-form-item> + <el-form-item label="璧勪骇缂栫爜" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.assetCode"></el-input> + </el-form-item> + <el-form-item label="鏍″噯鏃ユ湡锛堟湀锛�" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.calibrationDate"></el-input> + </el-form-item> + </el-form> + </el-col> + <!-- 鍙宠竟甯冨眬 --> + <el-col :span="7"> + <el-form :label-position="labelPosition" :model="formData"> + <el-form-item label="娲诲姩鍖哄煙" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input> + </el-form-item> + <el-form-item label="娲诲姩鍖哄煙"> + <el-input style="width:75%" :disabled="isUp" v-model="formData.latestTraceability"></el-input> + </el-form-item> + <el-form-item label="娲诲姩褰㈠紡" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input> + </el-form-item> + <el-form-item label="娲诲姩褰㈠紡" > + <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input> + </el-form-item> + </el-form> + </el-col> + </el-row> + <span slot="footer" class="dialog-footer"> + <el-row v-if="!isUp"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + </div> + </div> +</template> + +<script> + import ValueTable from '../tool/value-table.vue' + export default { + components: { + ValueTable + }, + data() { + return { + //鏄惁鏄。妗堜慨璁� true涓嶆槸 false鏄� + isUp: true, + formData: {}, + value: '', + options: [], + labelPosition: 'right', + dialogVisible: false, + componentData: { + entity: { + largeCategory: null, + subclass: null, + deviceName: null, + internalCode: null, + specificationModel: null, + manufacturer: null, + orderBy: { + field: 'id', + order: 'asc' + } + }, + isIndex: true, + showSelect: false, + select: false, + do: [{ + id: 'details', + font: '璇︽儏', + type: 'text', + method: 'selectAllByOne' + }, { + id: 'delete', + font: '鍒犻櫎', + type: 'text', + method: 'doDiy' + },{ + id: 'archives', + font: '妗f淇', + type: 'text', + method: 'isUpdate' + }], + tagField: {}, + selectField: {}, + requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'], + requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'] + }, + entityCopy: {}, + upIndex: 0, + addDia: true, + addPower: true + } + }, + mounted() { + this.entityCopy = this.HaveJson(this.componentData.entity) + this.getPower() + }, + methods: { + refreshTable() { + this.$refs['ValueTable'].selectList() + }, + refresh() { + this.componentData.entity = this.HaveJson(this.entityCopy) + this.upIndex++ + }, + + // 鏉冮檺鍒嗛厤 + getPower(radio) { + let power = JSON.parse(sessionStorage.getItem('power')) + let up = false + let del = false + let add = false + for (var i = 0; i < power.length; i++) { + if(power[i].menuMethod=='upDeviceParameter'){ + up = true + } + if(power[i].menuMethod=='delDeviceParameter'){ + del = true + } + if(power[i].menuMethod=='addDeviceParameter'){ + add = true + } + } + if(!del){ + this.componentData.do.splice(1, 1) + } + if(!up){ + this.componentData.do.splice(0, 1) + } + this.addPower = add + }, + handleClose(){ + this.dialogVisible = false; + }, + selectAllByOne(row){ + this.isUp = true + //鎵撳紑寮规 + this.dialogVisible = true; + //row = 鐐瑰嚮瀵瑰簲琛屽�� + //澶嶅埗缁檉ormData + this.formData=row; + }, + isUpdate(row){ + //淇敼 isUp 涓烘。妗堜慨鏀� + this.isUp = false + //鎵撳紑寮规 + this.dialogVisible = true; + //row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽�� + //澶嶅埗缁檉ormData + this.formData=row; + } + } + } +</script> \ No newline at end of file diff --git a/static/js/menu.js b/static/js/menu.js index a34db2b..4f6f1e2 100644 --- a/static/js/menu.js +++ b/static/js/menu.js @@ -405,9 +405,9 @@ }, { v: "璁惧宸ュ叿鏄庣粏", i: "font icon-24gl-clipboardList", - u: "", + u: "a6-device-management", g: "6.4 璁惧", - p: "" + p: "selectDeviceParameter" }, { v: "璧勬簮棰勫畾", i: "font icon-24gl-clipboardList", -- Gitblit v1.9.3