From 5ccf3b19b39f00b6e71836238c7c91634cdc23c0 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 06 三月 2024 16:35:27 +0800
Subject: [PATCH] 更新value-table列表点击功能

---
 src/components/tool/value-table.vue          |    8 +
 src/main.js                                  |    2 
 src/components/view/a6-device-overview.vue   |    1 
 static/js/menu.js                            |    2 
 src/components/view/a6-device-management.vue |   14 +-
 src/components/view/b1-inspection-order.vue  |  348 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/view/index.vue                           |    3 
 7 files changed, 366 insertions(+), 12 deletions(-)

diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue
index abc5878..011aa1c 100644
--- a/src/components/tool/value-table.vue
+++ b/src/components/tool/value-table.vue
@@ -63,10 +63,12 @@
 							<el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == scope.row[a.label]"
 								:type="b.type" size="medium">{{b.label}}</el-tag>
 						</div>
+            <!-- 鍙搷浣滆杩涜鐐瑰嚮浜嬩欢 -->
+            <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;" @click="$emit(showLink(a.label, data.linkEvent),scope.row)">{{scope.row[a.label]}}</span>
 						<span v-else>{{scope.row[a.label]}}</span>
 					</template>
 				</el-table-column>
-				<el-table-column fixed="right" align="center" label="鎿嶄綔" :width="60 + data.do.length * 35"
+				<el-table-column fixed="right" align="center" label="鎿嶄綔" :width="60 + data.do.length * 40"
 					v-if="data.do.length > 0">
 					<template slot-scope="scope">
 						<el-button v-for="(a, ai) in data.do" :key="ai" :type="a.type"
@@ -388,6 +390,10 @@
 				var str = ob[val]
 				return str == undefined ? null : ob[val].select
 			},
+      showLink(val, ob){
+        var str = ob[val]
+				return str == undefined ? null : ob[val].method
+      },
 			showAddReq(label) {
 				if (this.data.requiredAdd == undefined) {
 					return
diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
index 9b41352..9793aaf 100644
--- a/src/components/view/a6-device-management.vue
+++ b/src/components/view/a6-device-management.vue
@@ -347,11 +347,6 @@
 					showSelect: false,
 					select: false,
 					do: [{
-						id: 'details',
-						font: '璇︽儏',
-						type: 'text',
-						method: 'selectAllByOne'
-					}, {
 						id: 'delete',
 						font: '鍒犻櫎',
 						type: 'text',
@@ -378,6 +373,11 @@
 								label: '淇濅慨'
 							}]
 						}
+          },
+          linkEvent:{
+            deviceName:{
+              method:'selectAllByOne'
+            }
           },
 					selectField: {},
 					requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
@@ -438,10 +438,10 @@
 						add = true
 					}
 				}
-				if(!del){
+        if(!up){
 					this.componentData.do.splice(1, 1)
 				}
-				if(!up){
+				if(!del){
 					this.componentData.do.splice(0, 1)
 				}
 				this.addPower = add
diff --git a/src/components/view/a6-device-overview.vue b/src/components/view/a6-device-overview.vue
index d330033..acfeafb 100644
--- a/src/components/view/a6-device-overview.vue
+++ b/src/components/view/a6-device-overview.vue
@@ -42,6 +42,7 @@
     grid-template-columns: repeat(auto-fit, 375px);
     /* justify-content: center; */
     grid-gap: 16px;
+    min-height: 300px;
   }
   .card li{
     width: 375px;
diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue
new file mode 100644
index 0000000..9f1829b
--- /dev/null
+++ b/src/components/view/b1-inspection-order.vue
@@ -0,0 +1,348 @@
+<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;
+	}
+  .tab{
+    list-style-type: none;
+    display: flex;
+    margin-bottom: 12px;
+  }
+  .tab li{
+    line-height: 24px;
+    padding: 6px 14px;
+    font-size: 14px;
+    color: #333333;
+    border: 1px solid #EEEEEE;
+    cursor: pointer;
+  }
+  .tab li:nth-child(1){
+    border-radius: 8px 0 0 8px;
+  }
+  .tab li:nth-child(4){
+    border-radius: 0 8px 8px 0;
+  }
+  .tab li.active{
+    border-color: #3A7BFA;
+    color: #3A7BFA;
+  }
+
+  .el-form-item{
+    margin-bottom: 16px;
+  }
+  .picName{
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    word-break: break-all;
+    width: 120px;
+  }
+</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-button size="medium" type="primary" @click="playOrder">涓嬪崟</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
+						v-model="componentData.entity.deviceName" @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.specificationModel" @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>
+			</div>
+		</div>
+		<div class="table">
+      <ul class="tab">
+        <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
+      </ul>
+			<!-- 璇硶 瀛愮粍浠堕�氳繃 this.$emit +浼犲叆鏂规硶鍚� 璋冪敤鐖剁粍浠舵柟娉� 渚嬪  this.$emit锛坰electAllByOne锛� 灏遍渶鍦ㄧ埗缁勪欢澹版槑骞朵紶鍏�  @selectAllByOne="selectAllByOne"-->
+			<ValueTable
+      ref="ValueTable"
+      :url="$api.deviceScope.selectDeviceParameter"
+      :componentData="componentData"
+      :key="upIndex"
+      style="height: calc(100% - 44px)"
+      @selectAllByOne="selectAllByOne"
+      @handleDataLook="handleDataLook"
+      @download="download"
+      @handleVerify="handleVerify"
+      @handlEquash="handlEquash"
+      @handleIssued="handleIssued" />
+		</div>
+    <!-- 瀹℃牳 -->
+    <el-dialog
+      title="涓嬪崟瀹℃牳"
+      :visible.sync="dialogVisible0"
+      width="30%"
+      :before-close="handleClose">
+      <p style="font-size:16px;color:#333333">濮旀墭缂栧彿<span style="color:#34BD66">ZTMS2023071001</span>鐨勪俊鎭槸鍚﹂�氳繃</p>
+      <span slot="footer" class="dialog-footer">
+        <el-row v-if="!isPass">
+          <el-button @click="handleClose">閫� 鍥�</el-button>
+        <el-button type="primary" @click="submitForm" :loading="upLoad">閫� 杩�</el-button>
+        </el-row>
+        <el-row v-else>
+          <el-button @click="handleClose">杩� 鍥�</el-button>
+        <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
+        </el-row>
+      </span>
+    </el-dialog>
+	</div>
+</template>
+
+<script>
+	import ValueTable from '../tool/value-table.vue'
+	export default {
+		components: {
+			ValueTable
+		},
+		data() {
+			return {
+				//鏄惁閫氳繃  true鏄� false涓嶆槸
+				isPass: true,
+				formData: {},
+				value: '',
+				options: [],
+				labelPosition: 'right',
+				dialogVisible0: false,
+				componentData: {
+					entity: {
+						deviceStatus: null,
+						deviceName: null,
+						specificationModel: null,
+						largeCategory: null,
+						orderBy: {
+							field: 'id',
+							order: 'asc'
+						}
+					},
+					isIndex: true,
+					showSelect: false,
+					select: false,
+					do: [{
+						id: 'details',
+						font: '璇︽儏',
+						type: 'text',
+						method: 'selectAllByOne'
+					}, {
+						id: 'dataLook',
+						font: '鏁版嵁鏌ョ湅',
+						type: 'text',
+						method: 'handleDataLook'
+					},{
+						id: 'download',
+						font: '鎶ュ憡涓嬭浇',
+						type: 'text',
+						method: 'download'
+					},{
+						id: 'verify',
+						font: '瀹℃牳',
+						type: 'text',
+						method: 'handleVerify'
+					},{
+						id: 'quash',
+						font: '鎾ら攢',
+						type: 'text',
+						method: 'handlEquash'
+					},{
+						id: 'issued',
+						font: '涓嬪彂',
+						type: 'text',
+						method: 'handleIssued'
+					}],
+					tagField: {
+            deviceStatus: {
+							select: [{
+								value: 0,
+								type: 'success',
+								label: '姝e父'
+							},{
+								value: 1,
+								type: 'warning',
+								label: '鎶ュ簾'
+							},{
+								value: 2,
+								type: 'danger',
+								label: '淇濅慨'
+							}]
+						}
+          },
+					selectField: {},
+					requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
+					requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
+				},
+				entityCopy: {},
+				upIndex: 0,
+				addDia: true,
+				addPower: true,
+        //璁惧绫诲瀷鍒楄〃
+        equipmentList:[],
+        // 璐熻矗浜哄垪琛�
+        responsiblePersonList:[],
+        // 鎺堟潈浜哄垪琛�
+        authorizerList:[],
+        // 璁惧鐘舵�佸垪琛�
+        deviceStatusList:[],
+        upLoad:false,
+        tabList:[
+          {
+            label:'妫�楠屽鐞�',
+            value:0
+          },
+          {
+            label:'寰呭鏍�',
+            value:1
+          },
+          {
+            label:'閫�鍥�',
+            value:2
+          },
+          {
+            label:'鎾ら攢',
+            value:3
+          },
+        ],
+        tabIndex:0,
+			}
+		},
+		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.dialogVisible0 = false;
+        this.upLoad = false;
+			},
+      // 璇︽儏
+			selectAllByOne(row){
+				//鎵撳紑寮规
+				this.dialogVisible = true;
+				//row = 鐐瑰嚮瀵瑰簲琛屽��
+				//澶嶅埗缁檉ormData
+				this.formData=this.HaveJson(row);
+			},
+      // 鏁版嵁鏌ョ湅
+      handleDataLook(row){},
+      // 涓嬭浇鎶ュ憡
+      download(row){},
+      // 瀹℃牳
+      handleVerify(row){
+        this.dialogVisible0 = true;
+      },
+      // 鎾ら攢
+      handlEquash(row){},
+      // 涓嬪彂
+      handleIssued(row){},
+      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.$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.refreshTable()
+          this.dialogVisible = false
+				}).catch(e => {
+					this.$message.error('淇敼澶辫触')
+					this.dialogVisible = false
+					this.upLoad = false
+				})
+      },
+      // 涓嬪崟
+      playOrder(){},
+      handleTab(m,i){
+        this.tabIndex = i;
+      }
+		}
+	}
+</script>
diff --git a/src/main.js b/src/main.js
index a3e2693..1c3d79a 100644
--- a/src/main.js
+++ b/src/main.js
@@ -13,7 +13,7 @@
 
 //鏈湴
 Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
-const javaApi = 'http://127.0.0.1:8001';
+const javaApi = 'http://192.168.0.133:8003';
 //鑳滀簯鏈嶅姟鍣�
 // Vue.prototype.LOCATIONVUE = "http://syxt.shxiao2.cn";
 // const javaApi = 'http://122.114.52.69:8001';
diff --git a/src/view/index.vue b/src/view/index.vue
index 40bd6df..83766bf 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -345,7 +345,6 @@
 		const componentConfig = requireComponent(fileName);
 		comObj[names] = componentConfig.default || componentConfig;
 	});
-	import menu from '../../static/js/menu.js';
 	import menus from '../../static/js/menu.js'
 	import nullFace from '../view/404.vue'
 	comObj['nullFace'] = nullFace
@@ -486,4 +485,4 @@
 			}
 		}
 	};
-</script>
\ No newline at end of file
+</script>
diff --git a/static/js/menu.js b/static/js/menu.js
index b4e757b..4373533 100644
--- a/static/js/menu.js
+++ b/static/js/menu.js
@@ -17,7 +17,7 @@
 		c: [{
 			v: "妫�楠屼笅鍗�",
 			i: "font icon-24gl-clipboardList",
-			u: "",
+			u: "b1-inspection-order",
 			p: ""
 		}, {
 			v: "妫�楠屼换鍔�",

--
Gitblit v1.9.3