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