From 6a64c08591da8dcddc48c7dd3c54db9a77831a22 Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期五, 18 八月 2023 11:54:11 +0800
Subject: [PATCH] 8.18改

---
 src/components/view/sale.vue |  187 +++++++++++++++++++++++++++++++++++-----------
 1 files changed, 141 insertions(+), 46 deletions(-)

diff --git a/src/components/view/sale.vue b/src/components/view/sale.vue
index e46f70c..0df137d 100644
--- a/src/components/view/sale.vue
+++ b/src/components/view/sale.vue
@@ -116,8 +116,8 @@
 				<el-col :span="12" style="line-height: 32px;">閿�鍞鐞�</el-col>
 				<el-col :span="12" style="text-align: right;">
 					<el-button type="primary" icon="el-icon-plus" @click="openAddDia">鏂板</el-button>
-					<el-button icon="el-icon-edit-outline">淇敼</el-button>
-					<el-button icon="el-icon-delete">鍒犻櫎</el-button>
+					<!-- <el-button icon="el-icon-edit-outline">淇敼</el-button> -->
+					<el-button icon="el-icon-delete" @click="delSales">鍒犻櫎</el-button>
 					<el-button icon="el-icon-download">瀵煎嚭</el-button>
 				</el-col>
 			</el-row>
@@ -145,8 +145,9 @@
 			</el-button>
 		</div>
 		<div class="thing">
-			<el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: calc(100% - 50px)"
-				max-height="calc(100% - 50px)" @selection-change="handleSelectionChange" default-expand-all row-key="id">
+			<el-table ref="tableData" :data="tableData" border
+				style="width: 100%;overflow-y: auto;min-height: calc(100% - 50px)" max-height="calc(100% - 50px)"
+				@selection-change="handleSelectionChange" default-expand-all row-key="id">
 				<el-table-column type="selection" width="50">
 				</el-table-column>
 				<el-table-column type="index" label="搴忓彿" width="65">
@@ -171,16 +172,16 @@
 				<el-table-column label="鎿嶄綔" width="220">
 					<template slot-scope="scope">
 						<span class="table_do" @click="changeShowDetail(scope.row)">&nbsp;鏌ョ湅璇︽儏&nbsp;</span>
-						<span class="table_do" v-if="scope.row.type==null">&nbsp;瀹℃牳&nbsp;</span>
+						<span class="table_do" v-if="scope.row.type==null" @click="saleCheck(scope)">&nbsp;瀹℃牳&nbsp;</span>
 						<span class="table_do" v-else>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
-						<span class="table_do">&nbsp;缂栬緫&nbsp;</span>
-						<span class="table_do">&nbsp;鍒犻櫎&nbsp;</span>
+						<span class="table_do" @click="openUpDia(scope.row.id)">&nbsp;缂栬緫&nbsp;</span>
+						<span class="table_do" @click="delSale(scope.$index)">&nbsp;鍒犻櫎&nbsp;</span>
 					</template>
 				</el-table-column>
 			</el-table>
 			<el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
 				<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
-					:page-sizes="[1,10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
+					:page-sizes="[10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
 					:total="countSize">
 				</el-pagination>
 			</el-col>
@@ -208,7 +209,7 @@
 							<el-col :span="3" :offset="2">鐘舵��</el-col>
 							<el-col :span="8">
 								<div class="value" v-if="oneData.type == 1" style="color: #34BD66;">閫氳繃</div>
-								<div class="value" v-else-if="oneData.type == 2" style="color: #E84738;">涓嶉�氳繃</div>
+								<div class="value" v-else-if="oneData.type == 0" style="color: #E84738;">涓嶉�氳繃</div>
 								<div class="value" v-else>&nbsp;</div>
 							</el-col>
 						</el-row>
@@ -238,7 +239,7 @@
 						<el-row style="line-height: 30px;margin: 15px 0;">
 							<el-col :span="3">涓氬姟鍛�</el-col>
 							<el-col :span="8">
-								<div class="value">{{JSON.parse(oneData.saleman)}}</div>
+								<div class="value">{{oneData.saleman}}</div>
 							</el-col>
 							<el-col :span="3" :offset="2">涓嬪崟浜�</el-col>
 							<el-col :span="8">
@@ -252,13 +253,13 @@
 							</el-col>
 							<el-col :span="3" :offset="2">瀹℃牳浜�</el-col>
 							<el-col :span="8">
-								<div class="value">{{JSON.parse(oneData.checkname)}}</div>
+								<div class="value">{{oneData.checkname==null?'&nbsp;': oneData.checkname}}</div>
 							</el-col>
 						</el-row>
 						<el-row style="line-height: 30px;margin: 15px 0;">
 							<el-col :span="3">瀹℃牳鏃ユ湡</el-col>
 							<el-col :span="8">
-								<div class="value">{{oneData.checkTime}}</div>
+								<div class="value">{{oneData.checkTime==null?'&nbsp;': oneData.checkTime}}</div>
 							</el-col>
 						</el-row>
 					</div>
@@ -281,7 +282,7 @@
 			</el-dialog>
 		</div>
 		<div class="select-model">
-			<el-dialog title="閿�鍞柊澧�" :visible.sync="addDia" width="800px">
+			<el-dialog :title="`閿�鍞�${upDia==true?'淇敼':'鏂板'}`" :visible.sync="addDia" width="800px">
 				<div class="body">
 					<div class="head">鍩烘湰淇℃伅</div>
 					<div class="content">
@@ -346,20 +347,18 @@
 						<el-table :data="addData.saleMaterialList" border style="width: 100%">
 							<el-table-column prop="name" label="浜у搧鍚嶇О" width="180">
 								<template slot-scope="scope">
-									<el-select v-model="scope.row.name" size="small" clearable placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"
-										@change="((index)=>{upRepe(index, scope.$index)})">
-										<el-option v-for="(a, ai) in repeList" :key="ai" :label="a.name" :value="ai"></el-option>
-									</el-select>
+									<el-input v-model="scope.row.name" size="small" clearable placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�">
+									</el-input>
 								</template>
 							</el-table-column>
 							<el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" width="200">
 								<template slot-scope="scope">
-									<el-input v-model="scope.row.specifications" size="small" readonly></el-input>
+									<el-input v-model="scope.row.specifications" size="small" clearable placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"></el-input>
 								</template>
 							</el-table-column>
 							<el-table-column prop="unit" label="鍗曚綅">
 								<template slot-scope="scope">
-									<el-input v-model="scope.row.unit" size="small" readonly></el-input>
+									<el-input v-model="scope.row.unit" size="small" clearable placeholder="璇疯緭鍏�"></el-input>
 								</template>
 							</el-table-column>
 							<el-table-column prop="number" label="鏁伴噺">
@@ -374,11 +373,17 @@
 									<el-input v-model="scope.row.price" size="small" clearable placeholder="璇疯緭鍏�"></el-input>
 								</template>
 							</el-table-column>
+							<el-table-column prop="price" label="鎿嶄綔" width="65px">
+								<template slot-scope="scope">
+									<el-button type="text" @click.native.prevent="deleteRow(scope.$index, addData.saleMaterialList)">鍒犻櫎</el-button>
+								</template>
+							</el-table-column>
 						</el-table>
 					</div>
 				</div>
 				<span slot="footer" class="dialog-footer">
-					<el-button type="primary" @click="addSale">纭� 瀹�</el-button>
+					<el-button v-if="upDia==false" type="primary" @click="addSale">纭� 瀹�</el-button>
+					<el-button v-else-if="upDia==true" type="primary" @click="upSale">纭� 瀹�</el-button>
 					<el-button @click="addDia = false">鍙� 娑�</el-button>
 				</span>
 			</el-dialog>
@@ -416,7 +421,8 @@
 					phone: null,
 					saleMaterialList: []
 				},
-				repeList: []
+				repeList: [],
+				upDia: false
 			}
 		},
 		mounted() {
@@ -424,7 +430,7 @@
 		},
 		methods: {
 			handleSelectionChange(val) {
-				this.selects = val;
+				this.selects = val.id;
 			},
 			handleSizeChange(val) {
 				this.pageSize = val
@@ -476,6 +482,20 @@
 				this.addData.saleMaterialList.push({})
 			},
 			addSale() {
+				for (var b = 0; b < this.addData.saleMaterialList.length; b++) {
+					if (Object.keys(this.addData.saleMaterialList[b]).length == 0) {
+						this.addData.saleMaterialList.splice(b, 1)
+						b--
+					} else {
+						for (var c in this.addData.saleMaterialList[b]) {
+							if (this.addData.saleMaterialList[b][c] == null || this.addData.saleMaterialList[b][c] == '' || Object
+								.keys(this.addData.saleMaterialList[b]).length != 5) {
+								this.$message.error('浜у搧淇℃伅鏈夊繀濉」鏈~鍐�')
+								return
+							}
+						}
+					}
+				}
 				for (var a in this.addData) {
 					if (this.addData[a] == null || this.addData[a] == '') {
 						if (a == 'saleMaterialList') {
@@ -486,39 +506,19 @@
 						return
 					}
 				}
-				for (var b = 0; b < this.addData.saleMaterialList.length; b++) {
-					console.log(this.addData.saleMaterialList[b]);
-					if (Object.getOwnPropertyNames(this.addData.saleMaterialList[b]).length==0) {
-						this.addData.saleMaterialList.splice(b, 1)
-						b--
-						if (b < 0) {
-							this.$message.error('浜у搧淇℃伅涓嶈兘涓虹┖')
-							return
-						}
-					} else {
-						for (var c in this.addData.saleMaterialList[b]) {
-							if (this.addData.saleMaterialList[b][c] == null || this.addData.saleMaterialList[b][c] == {} || Object
-								.getOwnPropertyNames(this.addData.saleMaterialList[b]).length != 5) {
-								this.$message.error('浜у搧淇℃伅鏈夊繀濉」鏈~鍐�')
-								return
-							}
-						}
-					}
-				}
-				console.log(this.addData);
 				this.axios.post(this.$api.url.addSale, this.addData, {
 					headers: {
 						'Content-Type': 'application/json'
 					}
 				}).then(res => {
-					console.log(res);
+					this.$message.success('娣诲姞鎴愬姛')
+					this.addDia = false
+					this.selectRawInspectsList()
 				})
 			},
 			openAddDia() {
 				this.addDia = !(this.addDia)
-				this.$axios.post(this.$api.url.seleRepe).then(res => {
-					this.repeList = res.data
-				})
+				this.upDia = false
 			},
 			upRepe(index, i) {
 				var data = this.repeList[index]
@@ -528,6 +528,101 @@
 					this.addData.saleMaterialList[i].unit = data.unit
 					this.addData.saleMaterialList[i].specifications = data.specifications
 				}
+			},
+			saleCheck(ob) {
+				this.$confirm(`璁㈠崟${ob.row.code}鐨勪俊鎭槸鍚﹂�氳繃`, '閿�鍞鍗曞鏍�', {
+					distinguishCancelAndClose: true,
+					confirmButtonText: '閫氳繃',
+					cancelButtonText: '涓嶉�氳繃'
+				}).then(res => {
+					this.$axios.post(this.$api.url.saleCheck, {
+						id: ob.row.id,
+						type: 1
+					}).then(res => {
+						this.selectRawInspectsList()
+					})
+				}).catch(e => {
+					if (e == 'cancel') {
+						this.$axios.post(this.$api.url.saleCheck, {
+							id: ob.row.id,
+							type: 0
+						}).then(res => {
+							this.selectRawInspectsList()
+						})
+					}
+				})
+			},
+			openUpDia(index) {
+				this.addDia = true
+				this.upDia = true
+				this.axios.get(this.$api.url.selectSaleDatilById, {
+					params: {
+						id: index
+					}
+				}).then(res => {
+					this.addData = res.data
+					this.addData.id = index
+				})
+			},
+			upSale() {
+				console.log(this.addData);
+				for (var b = 0; b < this.addData.saleMaterialList.length; b++) {
+					if (Object.keys(this.addData.saleMaterialList[b]).length == 0) {
+						this.addData.saleMaterialList.splice(b, 1)
+						b--
+					} else {
+						for (var c in this.addData.saleMaterialList[b]) {
+							if (this.addData.saleMaterialList[b][c] == null || this.addData.saleMaterialList[b][c] == '' || Object
+								.keys(this.addData.saleMaterialList[b]).length != 6) {
+								this.$message.error('浜у搧淇℃伅鏈夊繀濉」鏈~鍐�')
+								return
+							}
+						}
+					}
+				}
+				for (var a in this.addData) {
+					if ((this.addData[a] == null || this.addData[a] == '') && a != 'type') {
+						if (a == 'saleMaterialList') {
+							this.$message.error('浜у搧淇℃伅涓嶈兘涓虹┖')
+						} else {
+							this.$message.error('閿�鍞鍗曟湁蹇呭~椤规湭濉啓')
+						}
+						return
+					}
+				}
+				this.axios.post(this.$api.url.updateSaleById, {
+					id: this.addData.id,
+					str: JSON.stringify(this.addData)
+				}).then(res => {
+					this.$message.success('缂栬緫鎴愬姛')
+					this.addDia = false
+					this.upDia = false
+					this.selectRawInspectsList()
+				})
+			},
+			deleteRow(index, rows) {
+				rows.splice(index, 1);
+			},
+			delSale(index){
+				this.axios.post(this.$api.url.delSale, {
+					id: this.tableData[index].id,
+				}).then(res => {
+					this.$message.success('鍒犻櫎鎴愬姛')
+					this.tableData.splice(index, 1)
+				})
+			},
+			delSales(){
+				console.log(this.selects);
+				this.axios.post(this.$api.url.delAllSale,{
+					ids: this.selects
+				}, {
+					headers: {
+						'Content-Type': 'application/json'
+					}
+				}).then(res=>{
+					this.$message.success('鍒犻櫎鎴愬姛')
+					this.selectRawInspectsList()
+				})
 			}
 		}
 	}

--
Gitblit v1.9.3