From 861e1c1428046b348f7e963025a454e710792815 Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期四, 17 八月 2023 12:54:15 +0800
Subject: [PATCH] 增加菜单,增加销售管理

---
 src/main.js                  |  125 +++++++++--------
 src/router/index.js          |   13 -
 src/view/index.vue           |  158 ++++++++++++++++++++++
 src/assets/api/controller.js |    3 
 src/components/view/sale.vue |   75 +++++++++-
 5 files changed, 287 insertions(+), 87 deletions(-)

diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index adf82c7..60376ec 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -48,7 +48,8 @@
 	...finishedIns,
 	selectSaleList: "sale/selectSaleList", //鏌ヨ閿�鍞崟鍒楄〃
 	selectSaleDatilById: "sale/selectSaleDatilById", //鏍规嵁閿�鍞崟id鏌ョ湅璇︽儏,
-	addSale: "sale/addSale", //鏂板閿�鍞崟
+	addSale: "sale/addSale", //鏂板閿�鍞崟,
+	seleRepe: "sale/seleRepe", //鏌ヨ鎴愬搧搴撳瓨
 }
 
 
diff --git a/src/components/view/sale.vue b/src/components/view/sale.vue
index c229b1f..e46f70c 100644
--- a/src/components/view/sale.vue
+++ b/src/components/view/sale.vue
@@ -115,7 +115,7 @@
 			<el-row>
 				<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="addDia= true">鏂板</el-button>
+					<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-download">瀵煎嚭</el-button>
@@ -281,7 +281,7 @@
 			</el-dialog>
 		</div>
 		<div class="select-model">
-			<el-dialog title="閿�鍞柊澧�" :visible.sync="addDia" width="750px">
+			<el-dialog title="閿�鍞柊澧�" :visible.sync="addDia" width="800px">
 				<div class="body">
 					<div class="head">鍩烘湰淇℃伅</div>
 					<div class="content">
@@ -346,23 +346,27 @@
 						<el-table :data="addData.saleMaterialList" border style="width: 100%">
 							<el-table-column prop="name" label="浜у搧鍚嶇О" width="180">
 								<template slot-scope="scope">
-									<el-input v-model="scope.row.name" size="small" clearable placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"></el-input>
+									<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>
 								</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" clearable placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"></el-input>
+									<el-input v-model="scope.row.specifications" size="small" readonly></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" clearable placeholder="璇疯緭鍏�"></el-input>
+									<el-input v-model="scope.row.unit" size="small" readonly></el-input>
 								</template>
 							</el-table-column>
 							<el-table-column prop="number" label="鏁伴噺">
 								<template slot-scope="scope">
 									<el-input v-model.number="scope.row.number" size="small"
-										@change="scope.row.number = isNaN(scope.row.number)?0:scope.row.number" clearable placeholder="璇疯緭鍏�"></el-input>
+										@change="scope.row.number = isNaN(scope.row.number)?0:scope.row.number" clearable
+										placeholder="璇疯緭鍏�"></el-input>
 								</template>
 							</el-table-column>
 							<el-table-column prop="price" label="鍗曚环">
@@ -399,10 +403,20 @@
 				pageSize: 10,
 				selectDia: false,
 				oneData: null,
-				addDia: true,
+				addDia: false,
 				addData: {
+					orderNumber: null,
+					code: null,
+					name: null,
+					proname: null,
+					adress: null,
+					username: null,
+					delTime: null,
+					orderName: null,
+					phone: null,
 					saleMaterialList: []
-				}
+				},
+				repeList: []
 			}
 		},
 		mounted() {
@@ -462,6 +476,36 @@
 				this.addData.saleMaterialList.push({})
 			},
 			addSale() {
+				for (var a in this.addData) {
+					if (this.addData[a] == null || this.addData[a] == '') {
+						if (a == 'saleMaterialList') {
+							this.$message.error('浜у搧淇℃伅涓嶈兘涓虹┖')
+						} else {
+							this.$message.error('閿�鍞鍗曟湁蹇呭~椤规湭濉啓')
+						}
+						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'
@@ -469,6 +513,21 @@
 				}).then(res => {
 					console.log(res);
 				})
+			},
+			openAddDia() {
+				this.addDia = !(this.addDia)
+				this.$axios.post(this.$api.url.seleRepe).then(res => {
+					this.repeList = res.data
+				})
+			},
+			upRepe(index, i) {
+				var data = this.repeList[index]
+				if (data == undefined) {
+					this.addData.saleMaterialList[i] = {}
+				} else {
+					this.addData.saleMaterialList[i].unit = data.unit
+					this.addData.saleMaterialList[i].specifications = data.specifications
+				}
 			}
 		}
 	}
diff --git a/src/main.js b/src/main.js
index 3b771af..f5b6bda 100644
--- a/src/main.js
+++ b/src/main.js
@@ -12,6 +12,9 @@
 import swal from 'sweetalert'
 
 Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80/"; //鍓嶇鏈湴绔彛
+Vue.prototype.HaveJson = (val) => {
+	return JSON.parse(JSON.stringify(val))
+}
 
 Vue.use(VueAxios, axios)
 Vue.config.productionTip = false
@@ -30,70 +33,70 @@
 Vue.prototype.$axios = axios
 
 import {
-  Message
+	Message
 } from 'element-ui';
 axios.interceptors.request.use(function(config) {
-  let tk = sessionStorage.getItem("token")
-  let token;
-  if (tk != undefined && tk != '') {
-    token = tk
-  }
-  if (token) {
-    config.headers['token'] = "" + token
-    // config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
-    // config.headers['Content-Type'] = 'application/json'
-  }
-  // console.log(config)
-  if (config.method === 'post' || config.method === 'put') {
-    
-    config.data = qs.stringify(config.data)
-  }
-  if(config.headers['Content-Type'] =='application/json'){
-    config.data = qs.parse(config.data)
-    // console.log(config.data)
-  }
-  
-  return config
+	let tk = sessionStorage.getItem("token")
+	let token;
+	if (tk != undefined && tk != '') {
+		token = tk
+	}
+	if (token) {
+		config.headers['token'] = "" + token
+		// config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
+		// config.headers['Content-Type'] = 'application/json'
+	}
+	// console.log(config)
+	if (config.method === 'post' || config.method === 'put') {
+
+		config.data = qs.stringify(config.data)
+	}
+	if (config.headers['Content-Type'] == 'application/json') {
+		config.data = qs.parse(config.data)
+		// console.log(config.data)
+	}
+
+	return config
 }, function(error) {
-  return Promise.reject(error)
+	return Promise.reject(error)
 })
 
 axios.interceptors.response.use(res => {
-  return res.data
+	return res.data
 }, async function(err) {
-  if (JSON.stringify(err).indexOf('timeout of') > -1) {
-    Message.error('璇锋眰瓒呮椂锛岃妫�鏌ョ綉缁滆缃�')
-  } else if (JSON.stringify(err).indexOf('ERR_CONNECTION_RESET') > -1 || JSON.stringify(err).indexOf(
-      'Network Error') > -1) {
-    Message.error('缃戠粶杩炴帴閿欒')
-  } else if (err.response.status == "503") {
-    Message.error('鏈嶅姟鏈搷搴�')
-  } else if (err.response.status == "404") {
-    Message.error('璇锋眰澶辫触锛岄摼鎺ュ湴鍧�涓嶅瓨鍦�')
-  } else if (err.response.status == "403") {
-    Message.error('token涓嶅瓨鍦�')
-  }else if (err.response.status == "402") {
-    Message.error('鏃犳晥绛惧悕锛岃閲嶆柊鐧诲綍')
-    localStorage.removeItem('autoenter')
-    window.location.href = '/enter'
-  }  else if (err.response.status == "401") {
-    await axios.post(javaApi + "user/refresh", {
-      reToken: sessionStorage.getItem('reToken')
-    }).then(res => {
-      if (res.data.code==201) {
-        Message.error('璁よ瘉澶辫触锛岄渶瑕侀噸鏂扮櫥褰�')
-        localStorage.removeItem('autoenter')
-        window.location.href = '/enter'
-        return Promise.reject(err)
-      }
-      sessionStorage.setItem('token', res.data.token)
-      sessionStorage.setItem('reToken', res.data.reToken)
-    })
-    return axios(err.config)
-  } else if (err.response.status == "500") {
-    Message.error('鏈嶅姟绔嚭鐜伴敊璇�')
-  }
-  return Promise.reject(err)
+	if (JSON.stringify(err).indexOf('timeout of') > -1) {
+		Message.error('璇锋眰瓒呮椂锛岃妫�鏌ョ綉缁滆缃�')
+	} else if (JSON.stringify(err).indexOf('ERR_CONNECTION_RESET') > -1 || JSON.stringify(err).indexOf(
+			'Network Error') > -1) {
+		Message.error('缃戠粶杩炴帴閿欒')
+	} else if (err.response.status == "503") {
+		Message.error('鏈嶅姟鏈搷搴�')
+	} else if (err.response.status == "404") {
+		Message.error('璇锋眰澶辫触锛岄摼鎺ュ湴鍧�涓嶅瓨鍦�')
+	} else if (err.response.status == "403") {
+		Message.error('token涓嶅瓨鍦�')
+	} else if (err.response.status == "402") {
+		Message.error('鏃犳晥绛惧悕锛岃閲嶆柊鐧诲綍')
+		localStorage.removeItem('autoenter')
+		window.location.href = '/enter'
+	} else if (err.response.status == "401") {
+		await axios.post(javaApi + "user/refresh", {
+			reToken: sessionStorage.getItem('reToken')
+		}).then(res => {
+			if (res.data.code == 201) {
+				Message.error('璁よ瘉澶辫触锛岄渶瑕侀噸鏂扮櫥褰�')
+				localStorage.removeItem('autoenter')
+				window.location.href = '/enter'
+				return Promise.reject(err)
+			}
+			sessionStorage.setItem('token', res.data.token)
+			sessionStorage.setItem('reToken', res.data.reToken)
+		})
+		return axios(err.config)
+	} else if (err.response.status == "500") {
+		Message.error('鏈嶅姟绔嚭鐜伴敊璇�')
+	}
+	return Promise.reject(err)
 })
 
 // 璺敱鎷︽埅鍣�
@@ -111,7 +114,7 @@
 // });
 
 new Vue({
-  el: '#app',
-  router,
-  render: h => h(App)
-});
+	el: '#app',
+	router,
+	render: h => h(App)
+});
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 0bd135d..354b9ff 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -23,18 +23,5 @@
   {
     path: "/enter",
     component: () => import("../view/enter.vue")
-  },
-  // 娣诲姞璁¢噺妯″潡
-  {
-    path: "/measure",
-    components: Index,
-    redirect: "/manage",
-    children: [
-      {
-        path: "/manage",
-        name: "MeasureManage",
-        component: () => import('../components/view/measure/index.vue')
-      }
-    ]
   }]
 })
\ No newline at end of file
diff --git a/src/view/index.vue b/src/view/index.vue
index 3d5a9e8..7da206b 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -67,7 +67,7 @@
   color: #fff;
   width: 68px;
   height: 68px;
-  margin: 20px 0;
+  margin: 8px 0;
   cursor: pointer;
   display: flex;
   align-items: center;
@@ -319,6 +319,74 @@
             }
           ]
         },
+				{
+				  k: 4,
+				  v: "鐢熶骇绠$悊",
+				  i: "font icon-shouye",
+				  c: [
+				    {
+				      k: 12,
+				      v: "鐢熶骇璁㈠崟",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 13,
+				      v: "鐢熶骇璁″垝",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 14,
+				      v: "鐢熶骇鎶ュ伐",
+				      i: "font icon-shouye",
+				      u: ""
+				    }
+				  ]
+				},
+				{
+				  k: 5,
+				  v: "WMS绠$悊",
+				  i: "font icon-shouye",
+				  c: [
+				    {
+				      k: 15,
+				      v: "鍘熸潗鏂欏簱瀛�",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 16,
+				      v: "鍥炲崟绠$悊",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 17,
+				      v: "鍗婃垚鍝佸簱瀛�",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 18,
+				      v: "鎴愬搧搴撳瓨",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 19,
+				      v: "鎴愬搧鍙戣揣",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 20,
+				      v: "鎴愬搧鍏ュ簱",
+				      i: "font icon-shouye",
+				      u: ""
+				    }
+				  ]
+				},
         {
           k: 1,
           v: "鎶�鏈鐞�",
@@ -390,9 +458,83 @@
               v: "璁¢噺绠$悊",
               i: "font icon-shouye",
               u: "measurementManagement"
+            },
+            {
+              k: 10.1,
+              v: "宸℃",
+              i: "font icon-shouye",
+              u: ""
+            },
+            {
+              k: 10.2,
+              v: "涓嶅悎鏍煎搧澶勭疆",
+              i: "font icon-shouye",
+              u: ""
             }
           ]
-        }
+        },
+        {
+          k: 6,
+          v: "鏍哥畻绠$悊",
+          i: "font icon-shouye",
+          c: [
+            {
+              k: 21,
+              v: "浜ч噺宸ヨ祫",
+              i: "font icon-shouye",
+              u: ""
+            },
+            {
+              k: 22,
+              v: "鍛樺伐鍑哄嫟",
+              i: "font icon-shouye",
+              u: ""
+            }
+          ]
+        },
+				{
+				  k: 7,
+				  v: "鍩虹鏁版嵁",
+				  i: "font icon-shouye",
+				  c: [
+				    {
+				      k: 23,
+				      v: "宸ュ簭缁存姢",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 24,
+				      v: "鑷缁存姢",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 25,
+				      v: "鎶�鏈寚鏍囩淮鎶�",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 26,
+				      v: "宸ヨ壓璺嚎缁存姢",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 27,
+				      v: "璁惧缁存姢",
+				      i: "font icon-shouye",
+				      u: ""
+				    },
+				    {
+				      k: 28,
+				      v: "鐗╂枡娓呭崟缁存姢",
+				      i: "font icon-shouye",
+				      u: ""
+				    }
+				  ]
+				}
       ],
       activeBox: 0,
       activeP: 0,
@@ -445,11 +587,19 @@
         this.activeBox = 0;
       } else if (num > 0 && num <= 2) {
         this.activeBox = 1;
-      } else if (num > 2 && num <= 10) {
+      } else if (num > 2 && num < 11) {
         this.activeBox = 2;
       } else if (num == 11) {
         this.activeBox = 3;
-      }
+      } else if (num > 11 && num <=14){
+				this.activeBox = 4;
+			} else if (num>14 && num<=20){
+				this.activeBox = 5
+			} else if (num>20 && num<=22){
+				this.activeBox = 6
+			} else if (num>22 && num<=28){
+				this.activeBox = 7
+			}
     },
     out() {
       sessionStorage.clear();

--
Gitblit v1.9.3