From e02fa5bedb087519dabee9690c13f1b7f8be0787 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 01 四月 2024 15:31:44 +0800
Subject: [PATCH] 完成交接复核功能

---
 src/components/view/b1-inspect-order-plan.vue |  128 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 119 insertions(+), 9 deletions(-)

diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue
index 2b397b2..f344c46 100644
--- a/src/components/view/b1-inspect-order-plan.vue
+++ b/src/components/view/b1-inspect-order-plan.vue
@@ -72,7 +72,7 @@
 		border-radius: 8px 0 0 8px;
 	}
 
-	.tab li:nth-child(3) {
+	.tab li:nth-last-child(1) {
 		border-radius: 0 8px 8px 0;
 	}
 
@@ -158,13 +158,32 @@
 			鏄惁璁ら濮旀墭缂栧彿<span style="color:#33C130">{{sampleUserForm.entrustCode}}</span>鐨勪换鍔�
 			<span slot="footer" class="dialog-footer">
 				<el-button @click="claimVisible = false">鍙� 娑�</el-button>
-				<el-button type="primary" @click="confirmClaim">纭� 瀹�</el-button>
+				<el-button type="primary" @click="confirmClaim" :loading="loading">纭� 瀹�</el-button>
+			</span>
+		</el-dialog>
+    <el-dialog title="妫�楠屼氦鎺�" :visible.sync="connectVisible" width="400px">
+			<div class="search_thing">
+        <div class="search_label" style="width:90px">浜ゆ帴浜哄憳锛�</div>
+        <div class="search_input">
+          <el-select v-model="connectPerson" placeholder="璇烽�夋嫨" style="width: 100%;">
+            <el-option
+              v-for="item in personList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="connectVisible = false">鍙� 娑�</el-button>
+				<el-button type="primary" @click="confirmConnect" :loading="loading">纭� 瀹�</el-button>
 			</span>
 		</el-dialog>
 		<div style="width: 100%;height: 100%;" v-if="activeFace >0">
 			<Add :active="activeFace" :currentId="currentId"/>
 		</div>
-    <Inspection v-if="state==1" @goback="goback" :orderId="orderId" :sonLaboratory="componentData.entity.sonLaboratory"/>
+    <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :sonLaboratory="componentData.entity.sonLaboratory" :state="state"/>
 	</div>
 </template>
 
@@ -175,7 +194,6 @@
 		getYearAndMonthAndDays
 	} from '../../util/date'
 	import Add from '../do/b1-ins-order/add.vue'
-import { number } from 'echarts'
 	export default {
 		components: {
 			ValueTable,
@@ -217,13 +235,13 @@
 							id: '',
 							font: '浜ゆ帴',
 							type: 'text',
-							method: ''
+							method: 'handleConnect'
 						},
 						{
 							id: '',
 							font: '澶嶆牳',
 							type: 'text',
-							method: ''
+							method: 'handleReview',
 						}, {
 							id: '',
 							font: '璁ら',
@@ -262,6 +280,10 @@
 							}]
 						}
 					},
+          spanConfig:{
+            rows:'entrustCode',//鍚堝苟琛�,閫氬父娑夊強涓�涓瓧娈�
+            cols:[],//鍚堝苟鍒�,閫氬父娑夊強鍑犱釜瀛楁
+          },
 					selectField: {},
 					requiredAdd: [],
 					requiredUp: []
@@ -269,22 +291,62 @@
 				upIndex: 0,
 				planTotal: 0,
 				insStateList: [],
-        state:0,//0:鍙拌处椤碉紝1锛氭楠岄〉闈紝榛樿涓�0
-				activeFace: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍�
+        state:0,//0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0
+				activeFace: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0
 				currentId: null,
 				entityCopy: {},
 				orderId: 0,
+        personList:[],
+        connectVisible:false,
+        connectPerson:'',
+        loading:false,
 			}
 		},
 		created() {
 			this.getLaboratoryDicts()
 			this.getTypeDicts()
 			this.getInsStateDicts()
+      this.getAuthorizedPerson()
 		},
 		mounted() {
 			this.entityCopy = this.HaveJson(this.componentData.entity)
+      this.getPower()
 		},
 		methods: {
+      // 鏉冮檺鍒嗛厤
+			getPower(radio) {
+				let power = JSON.parse(sessionStorage.getItem('power'))
+				let inspection = false
+				let connect = false
+				let review = false
+        let claim = false
+				for (var i = 0; i < power.length; i++) {
+					if (power[i].menuMethod == 'doInsOrder') {
+						inspection = true
+					}
+					if (power[i].menuMethod == 'upPlanUser') {
+						connect = true
+					}
+					if (power[i].menuMethod == 'verifyPlan') {
+						review = true
+					}
+          if (power[i].menuMethod == 'claimInsOrderPlan') {
+						claim = true
+					}
+				}
+				if (!claim) {
+					this.componentData.do.splice(3, 1)
+				}
+				if (!review) {
+					this.componentData.do.splice(2, 1)
+				}
+        if (!connect) {
+					this.componentData.do.splice(1, 1)
+				}
+				if (!inspection) {
+					this.componentData.do.splice(0, 1)
+				}
+			},
 			changeCheckBox(val) {
 				this.componentData.entity.userId = val?0:null
 				this.refreshTable()
@@ -307,18 +369,21 @@
 				}
 			},
 			confirmClaim() {
+        this.loading = true;
 				this.$axios.post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, {
 					headers: {
 						'Content-Type': 'application/json'
 					}
 				}).then(res => {
 					if (res.code === 200 && res.data) {
+            this.loading = false;
 						this.$message.success("璁ら鎴愬姛")
 						this.claimVisible = false
 						this.refreshTable()
 					}
 				}).catch(error => {
 					console.error(error)
+          this.loading = false;
 				})
 			},
 			refreshTable() {
@@ -423,7 +488,52 @@
       handleInspection(row){
         this.state = 1;
 				this.orderId = row.id
-      }
+      },
+      handleConnect(row){
+        this.orderId = row.id
+        this.connectVisible=true;
+      },
+      confirmConnect(){
+        if(this.connectPerson){
+          this.loading = true;
+          this.$axios.post(this.$api.insOrderPlan.upPlanUser, {
+            orderId:this.orderId,
+            userId:this.connectPerson
+          }, {
+					headers: {
+						'Content-Type': 'application/json'
+					}
+				}).then(res => {
+					if (res.code === 200 && res.data) {
+            this.loading = false;
+						this.$message.success("浜ゆ帴鎴愬姛")
+						this.connectVisible = false
+						this.refreshTable()
+					}
+				}).catch(error => {
+					console.error(error)
+          this.loading = false;
+				})
+        }else{
+          this.$message.error('鏈�夋嫨浜ゆ帴浜哄憳')
+        }
+      },
+      handleReview(row){
+        this.state = 2;
+				this.orderId = row.id
+      },
+      getAuthorizedPerson() {
+				this.$axios.get(this.$api.user.getUserMenu).then(res => {
+					let data = []
+					res.data.forEach(a => {
+						data.push({
+							label: a.name,
+							value: a.id
+						})
+					})
+					this.personList = data
+				})
+			},
 		}
 	}
 </script>

--
Gitblit v1.9.3