From ae4077644fc36dee9b66c85b23321b8e170361d0 Mon Sep 17 00:00:00 2001
From: lzhe <181968431@qq.com>
Date: 星期二, 21 五月 2024 23:48:10 +0800
Subject: [PATCH] 1

---
 src/views/console/bom-list/index.vue        |   94 +++++++++++++
 src/views/console/basic-data/addProduct.vue |   94 ++++++++-----
 src/views/console/basic-data/product.vue    |  180 +++++++++++++++++++------
 3 files changed, 284 insertions(+), 84 deletions(-)

diff --git a/src/views/console/basic-data/addProduct.vue b/src/views/console/basic-data/addProduct.vue
index 7517873..be471ae 100644
--- a/src/views/console/basic-data/addProduct.vue
+++ b/src/views/console/basic-data/addProduct.vue
@@ -5,42 +5,59 @@
 			<el-row>
 				<el-col :span="8">
 					<el-form-item label="涓婄骇浜у搧">
-						<el-input v-model="addDictForm.code" placeholder="涓婄骇浜у搧" clearable></el-input>
+						<el-tree-select
+							@change = "parentIdChange"
+							default-expand-all
+						    v-model="addDictForm.parentId"
+						    clearable
+							node-key="id"
+						    placeholder="涓婄骇浜у搧"
+							ref="parentTree"
+						    :data="parentData"
+						    check-strictly
+						    :props="{ label: 'name' }"
+						    style="width:100%;"
+						    :render-after-expand="false" />
 					</el-form-item>
 				</el-col>
 				<el-col :span="8">
 					<el-form-item label="浜у搧缂栧彿">
-						<el-input v-model="addDictForm.dictValue" placeholder="浜у搧缂栧彿" clearable></el-input>
+						<el-input v-model="addDictForm.code" placeholder="淇濆瓨鏃剁郴缁熻嚜鍔ㄧ敓鎴�" disabled clearable></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="8">
-					<el-form-item label="浜у搧鍚嶇О" prop="sort">
-						<el-input v-model="addDictForm.sort" placeholder="浜у搧鍚嶇О" clearable></el-input>
+					<el-form-item label="浜у搧鍚嶇О" prop="name">
+						<el-input v-model="addDictForm.name" placeholder="浜у搧鍚嶇О" clearable></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="8">
-					<el-form-item label="浜у搧绫诲瀷" prop="sort">
-						<el-input v-model="addDictForm.sort" placeholder="浜у搧绫诲瀷" clearable></el-input>
+					<el-form-item label="浜у搧绫诲瀷" prop="typeId">
+						<el-select v-model="addDictForm.typeId" placeholder="璇烽�夋嫨" style="width: 100%;">
+							<el-option v-for="item in typeIdList" :key="item.id" :label="item.name" :value="item.id" />
+						</el-select>
 					</el-form-item>
 				</el-col>
 				<el-col :span="8">
 					<el-form-item label="璁¢噺鍗曚綅">
-						<el-input v-model="addDictForm.sort" placeholder="璁¢噺鍗曚綅" clearable></el-input>
+						<el-input v-model="addDictForm.unit" placeholder="璁¢噺鍗曚綅" clearable></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="8">
 					<el-form-item label="瑙勬牸鍨嬪彿">
-						<el-input v-model="addDictForm.sort" placeholder="瑙勬牸鍨嬪彿" clearable></el-input>
+						<el-input v-model="addDictForm.standardModel" placeholder="瑙勬牸鍨嬪彿" clearable></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="24">
 					<el-form-item label="浜у搧鎻忚堪">
-						<el-input v-model="addDictForm.remark" placeholder="瀛楀吀澶囨敞" clearable></el-input>
+						<el-input v-model="addDictForm.description" placeholder="瀛楀吀澶囨敞" clearable></el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="8">
 					<el-form-item label="鍚敤鐘舵��">
-						<el-input v-model="addDictForm.sort" placeholder="鍚敤鐘舵��" clearable></el-input>
+						<el-select v-model="addDictForm.status" :prefix-icon="Search" placeholder="璇烽�夋嫨" style="width: 100%;padding-right: 20px;">
+								<el-option key="0" label="鍋滅敤" value="0" />
+								<el-option key="1" label="鍚敤" value="1" />
+							</el-select>
 					</el-form-item>
 				</el-col>
 			</el-row>
@@ -48,7 +65,7 @@
 		<div class="plan-content-title">鎵╁睍瀛楁</div>
 		<template #footer>
 			<el-button @click="visible=false" >鍙� 娑�</el-button>
-			<el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="dictSubmit()">淇� 瀛�</el-button>
+			<el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="productSubmit">淇� 瀛�</el-button>
 		</template>
 	</el-dialog>
 </template>
@@ -58,6 +75,8 @@
 		emits: ['success', 'closed'],
 		data() {
 			return {
+				parentData: {},
+				typeIdList: [],
 				value1: true,
 				mode: "add",
 				titleMap: {
@@ -69,19 +88,19 @@
 				isSaveing: false,
 				//琛ㄥ崟鏁版嵁
 				addDictForm: {
+					parentId: "",
 					code: "",
-					dictValue: "",
-					sort: "",
-					isSealed: false,
-					remark: "",
-					dictKey: "-1",
-					$isSealed: "鍚�"
+					name: "",
+					typeId: "",
+					unit: "",
+					standardModel: "",
+					description: "",
+					status: "1"
 				},
 				//楠岃瘉瑙勫垯
 				addDictRules: {
-					code:[{required: true, message: '璇疯緭鍏ュ瓧鍏哥紪鍙�'}],
-					dictValue:[{required: true, message: '璇疯緭鍏ュ瓧鍏稿悕绉�'}],
-					sort:[{required: true, message: '璇疯緭鍏ュ瓧鍏告帓搴�'}]
+					name:[{required: true, message: '璇疯緭鍏ヤ骇鍝佸悕绉�'}],
+					typeId:[{required: true, message: '璇烽�夋嫨浜у搧绫诲瀷',trigger: 'change'}]
 				},
 				//鎵�闇�鏁版嵁閫夐」
 				groups: [],
@@ -102,9 +121,21 @@
 			// this.getDept()
 		},
 		methods: {
+			showParentData() {
+				this.$HTTP.get("/api/blade-cps/product/tree?status=1").then(res=> {
+					if(res.code == 200) {
+						this.parentData = res.data;
+					}
+				})
+			},
+			parentIdChange(val) {
+				
+			},
 			//鏄剧ず
-			open(mode='add'){
+			open(typeIdList,mode='add'){
+				this.showParentData();  //tree-select
 				this.mode = mode;
+				this.typeIdList = typeIdList;
 				this.visible = true;
 				return this
 			},
@@ -118,20 +149,11 @@
 				this.depts = res.data;
 			},
 			//琛ㄥ崟鎻愪氦鏂规硶
-			dictSubmit(){
+			productSubmit(){
 				var obj = Object.assign({},this.addDictForm);
-				if(obj.isSealed === true) {
-					obj.$isSealed = "鏄�";
-					obj.isSealed = "1";
-				}else {
-					obj.$isSealed = "鍚�";
-					obj.isSealed = "0";
-				}
 				this.$refs.dialogForm.validate(async (valid) => {
 					if (valid) {
-						this.isSaveing = true;
-						this.$HTTP.post("/api/blade-system/dict/submit",obj).then(res=> {
-							this.isSaveing = false;
+						this.$HTTP.post("/api/blade-cps/product/insert",obj).then(res=> {
 							if(res.code == 200) {
 								this.$emit('success', this.addDictForm, this.mode);
 								this.visible = false;
@@ -149,12 +171,10 @@
 			setData(data){
 				console.log(data)
 				//鍙互鍜屼笂闈竴鏍峰崟涓敞鍏ワ紝涔熷彲浠ュ儚涓嬮潰涓�鏍风洿鎺ュ悎骞惰繘鍘�
-				if(data.isSealed == "1") {
-					data.isSealed = true;
-				}else {
-					data.isSealed = false;
-				}
 				Object.assign(this.addDictForm, data);
+				if(data.parentId == 0) {
+					this.addDictForm.parentId = "";
+				}
 			}
 		}
 	}
diff --git a/src/views/console/basic-data/product.vue b/src/views/console/basic-data/product.vue
index e816c93..86bbbb8 100644
--- a/src/views/console/basic-data/product.vue
+++ b/src/views/console/basic-data/product.vue
@@ -47,6 +47,44 @@
 							<el-icon @click="addDrawer" class="searchi-icon"><Setting /></el-icon>
 						</el-col>
 					</el-row>
+					<div class="product-type-table">
+						<el-table ref="multipleTableRef0" :data="productTableData" border style="width: 100%" class="multipleTableRef" @selection-change="handleSelectionChange0" row-key="id" lazy :load="tableLoad" :tree-props="{ hasChildren: 'hasChild' }">
+							<el-table-column type="selection" width="55" />
+							<el-table-column prop="name" label="浜у搧鍚嶇О"></el-table-column>
+							<el-table-column prop="code" label="浜у搧缂栧彿"></el-table-column>
+							<el-table-column prop="typeName" label="浜у搧绫诲瀷"></el-table-column>
+							<el-table-column prop="unit" label="璁¢噺鍗曚綅"></el-table-column>
+							<el-table-column prop="standardModel" label="瑙勬牸鍨嬪彿"></el-table-column>
+							<el-table-column prop="description" label="浜у搧鎻忚堪"></el-table-column>
+							<el-table-column prop="remark" label="宸ヨ壓璺嚎">
+								<template #default="scope">
+					     			<span class="viewDetial">鏌ョ湅璇︽儏</span>
+					     		</template>
+							</el-table-column>
+							<el-table-column prop="remark" label="BOM娓呭崟">
+								<template #default="scope">
+					     			<span class="viewDetial">鏌ョ湅璇︽儏</span>
+					     		</template>
+							</el-table-column>
+							<el-table-column fixed="right" label="鎿嶄綔" width="200px">
+								<template #default="scope">
+									<el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
+									<el-button text type="primary" size="small" @click="refresh_product_type(scope.row, scope.$index)">鍒锋柊</el-button>
+									<el-button text type="primary" size="small" @click="del_product_type(scope.row, scope.$index,0)">鍒犻櫎</el-button>
+								</template>
+							</el-table-column>
+						</el-table>
+						<el-pagination
+							style="margin-top: 12px;"
+							@size-change="handleSizeChange0"
+							@current-change="handleCurrentChange0"
+							:current-page="currentPage4"
+							:page-sizes="[15, 50, 100]"
+							:page-size="15"
+							layout="total, sizes, prev, pager, next, jumper"
+							:total="total0">
+						</el-pagination>
+					</div>
 					<el-drawer title="鏌ヨ璁剧疆" v-model="drawer" :direction="direction" :before-close="handleClose" size="780" class="drawerClass">
 						<div class="drawer-form">
 							<div class="drawer-left">
@@ -92,7 +130,7 @@
 						</el-col>
 					</el-row>
 					<div class="product-type-table">
-						<el-table ref="multipleTableRef" :data="productTypeTableData" border style="width: 100%" class="multipleTableRef" @selection-change="handleSelectionChange">
+						<el-table ref="multipleTableRef1" :data="productTypeTableData" border style="width: 100%" class="multipleTableRef" @selection-change="handleSelectionChange1">
 							<el-table-column type="selection" width="55" />
 							<el-table-column prop="name" label="浜у搧绫诲瀷鍚嶇О"></el-table-column>
 							<el-table-column prop="remark" label="鎻忚堪"></el-table-column>
@@ -103,14 +141,14 @@
 							</el-table-column>
 							<el-table-column fixed="right" label="鎿嶄綔">
 								<template #default="scope">
-									<el-button text type="primary" size="small" @click="del_product_type(scope.row, scope.$index)">鍒犻櫎</el-button>
+									<el-button text type="primary" size="small" @click="del_product_type(scope.row, scope.$index,1)">鍒犻櫎</el-button>
 								</template>
 							</el-table-column>
 						</el-table>
 						<el-pagination
 							style="margin-top: 12px;"
-							@size-change="handleSizeChange"
-							@current-change="handleCurrentChange"
+							@size-change="handleSizeChange1"
+							@current-change="handleCurrentChange1"
 							:current-page="currentPage4"
 							:page-sizes="[15, 50, 100]"
 							:page-size="15"
@@ -150,6 +188,8 @@
 		name: "allocation",
 		data(){
 			return {
+				total0: 0,
+				productTableData: [],
 				checkData: [],
 				checkList: [],
 				id: "",
@@ -167,7 +207,8 @@
 				uploadUrl: "/api/blade-cps/employee/import-employee",
 				exportUrl: "/api/blade-cps/employee/export-template",
 				activeName: 'first',
-				selection: [],
+				selection0: [],
+				selection1: [],
 				total: 0,
 				searchData: {
 					keyWord: "",
@@ -180,14 +221,15 @@
 				dialog: {
 					save: false
 				},
-				tableData: []
+				tableData: [],
+				delTypeNum: ""
 			}
 		},
 		created(){
 			
 		},
 		mounted(){
-			//this.searchBtn();
+			this.searchBtn0();
 			this.getProductType();
 			this.getProductTypeSelect();
 			this.getFields();  //鏌ヨ璁剧疆
@@ -196,6 +238,14 @@
 			...ElementPlusIconsVue,saveDialog,importTable
 		},
 		methods: {
+			tableLoad(row,treeNode,resolve) {
+				this.searchData.parentId= row.id;
+				this.$HTTP.post(`/api/blade-cps/product/lazy/tree?current=1&size=-1&id=${row.id}`).then(res=> {
+					if(res.code == 200) {
+						resolve(res.data.records);
+					}
+				})
+			},
 			delIcon(index) {
 				this.checkData.splice(index,1);
 			},
@@ -210,8 +260,15 @@
 				})
 			},
 			delTypeDataSingle(type) {
+				if(this.delTypeNum == 0) {  //鍒犻櫎浜у搧
+					var url = "/api/blade-cps/product/remove";
+					var stopUrl = "/api/blade-cps/product/change-status";
+				}else if(this.delTypeNum == 1) {  //鍒犻櫎浜у搧绫诲瀷
+					var url = "/api/blade-cps/product-type/remove";
+					var stopUrl = "/api/blade-cps/product-type/change-status";
+				}
 				if(type == 0) {  //鍒犻櫎
-					this.$HTTP.delete(`/api/blade-cps/product-type/remove`,[this.id]).then(res=> {
+					this.$HTTP.delete(url,[this.id]).then(res=> {
 						if(res.code == 200) {
 							this.$message.success("鎿嶄綔鎴愬姛");
 							this.delTypeModel = false;
@@ -224,7 +281,7 @@
 						ids: [this.id],
 						status: 0
 					}
-					this.$HTTP.put(`/api/blade-cps/product-type/change-status`,obj).then(res=> {
+					this.$HTTP.put(stopUrl ,obj).then(res=> {
 						if(res.code == 200) {
 							this.$message.success("鎿嶄綔鎴愬姛");
 							this.delTypeModel = false;
@@ -261,7 +318,8 @@
 					}
 				})
 			},
-			del_product_type(row) {
+			del_product_type(row,index,type) {
+				this.delTypeNum = tyype;
 				this.id = row.id;
 				this.delTypeModel = true;
 			},
@@ -302,7 +360,7 @@
 		        done();
 		    },
 			getExport() {
-				this.$HTTP.get(`/api/blade-cps/employee/export-employee?` + this.$TOOL.qsStringify(this.searchData)).then(res => {
+				this.$HTTP.post(`/api/blade-cps/product/export-product`,this.searchData).then(res => {
 					if (res.code == 200) {
 						window.open(res.data.link);
 					}
@@ -322,23 +380,28 @@
 			},
 			searchClearBtn() {
 				this.searchData = {
-					code: "",
-					ProductValue: "",
+					keyWord: "",
+					standardModel: "",
+					status: "1",
+					typeId: [],
 					current: "1",
 					size: "15"
 				}
-				this.searchBtn();
+				this.searchBtn0();
+			},
+			refresh_product_type() {
+				this.searchClearBtn();
 			},
 			searchclick() {
 				this.searchData.current = "1";
 				this.searchData.size = "15";
-				this.searchBtn();
+				this.searchBtn0();
 			},
-			searchBtn() {
-				this.$HTTP.get("/api/blade-system/Product/parent-list",this.searchData).then(res=> {
+			searchBtn0() {
+				this.$HTTP.post("/api/blade-cps/product/lazy/tree?current=1&size=15&id=0",this.searchData).then(res=> {
 					if(res.code == 200) {
-						this.tableData = res.data.records;
-						this.total = res.data.total;
+						this.productTableData = res.data.records;
+						this.total0 = res.data.total;
 					}
 				})
 			},
@@ -358,7 +421,7 @@
 					this.$HTTP.post("/api/blade-system/Product/remove?ids="+row.id).then(res=> {
 						if(res.code == 200) {
 							that.$message.success("鎿嶄綔鎴愬姛");
-							that.searchBtn();
+							that.searchBtn1();
 						}
 					})
 				}).catch(() => {
@@ -369,16 +432,16 @@
 			addData(){
 				this.dialog.save = true
 				this.$nextTick(() => {
-					this.$refs.saveDialog.open()
+					this.$refs.saveDialog.open(this.typeIdList)
 				})
 			},
 			table_edit(row){
 				this.dialog.save = true
-				this.$HTTP.get("/api/blade-system/Product/detail?id="+row.id).then(res=> {
+				this.$HTTP.get(`/api/blade-cps/product/get/${row.id}`).then(res=> {
 					if(res.code == 200) {
 						this.dialog.save = true;
 						this.$nextTick(() => {
-							this.$refs.saveDialog.open('edit').setData(res.data);
+							this.$refs.saveDialog.open(this.typeIdList,'edit').setData(res.data);
 						})
 					}
 				})
@@ -390,46 +453,66 @@
 					this.$refs.saveDialog.open('show').setData(row)
 				})
 			},
-			handleSelectionChange(selection) {
-				this.selection = selection;
+			handleSelectionChange0(selection) {
+				this.selection0 = selection;
+			},
+			handleSelectionChange1(selection) {
+				this.selection1 = selection;
 			},
 			addTypeData() {
 				this.isAddType = true;
 			},
 			delTypeData() {
-
-			},
-			delData() {
-				if(this.selection.length == 0) {
+				if(this.selection1.length == 0) {
 					this.$message({
 			          message: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�',
 			          type: 'warning'
 			        });
 			        return;
 				}
-				var selStr = "";
-				this.selection.map(item=> {
-					selStr += item.id + ","
-				})
-				selStr = selStr.replace(/,$/, '');
-				var that = this;
-				this.$HTTP.post("/api/blade-system/Product/remove?ids="+selStr).then(res=> {
-					if(res.code == 200) {
-						that.$message.success("鎿嶄綔鎴愬姛");
-						that.searchclick();
-					}
-				})
 			},
-			handleSizeChange(val) {
+			delData() {
+				if(this.selection0.length == 0) {
+					this.$message({
+			          message: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�',
+			          type: 'warning'
+			        });
+			        return;
+				}
+				// var selStr = "";
+				// this.selection1.map(item=> {
+				// 	selStr += item.id + ","
+				// })
+				// selStr = selStr.replace(/,$/, '');
+				// var that = this;
+				// this.$HTTP.post("/api/blade-system/Product/remove?ids="+selStr).then(res=> {
+				// 	if(res.code == 200) {
+				// 		that.$message.success("鎿嶄綔鎴愬姛");
+				// 		that.searchclick();
+				// 	}
+				// })
+			},
+			handleSizeChange0(val) {
 				console.log(`姣忛〉 ${val} 鏉);
 				this.searchData.current = "1";
 				this.searchData.size = val;
-				this.searchBtn();
+				this.searchBtn0();
 			},
-			handleCurrentChange(val) {
+			handleCurrentChange0(val) {
 				console.log(`褰撳墠椤�: ${val}`);
 				this.searchData.current = val;
-				this.searchBtn();
+				this.searchBtn0();
+			},
+			handleSizeChange1(val) {
+				console.log(`姣忛〉 ${val} 鏉);
+				this.searchData.current = "1";
+				this.searchData.size = val;
+				this.searchBtn1();
+			},
+			handleCurrentChange1(val) {
+				console.log(`褰撳墠椤�: ${val}`);
+				this.searchData.current = val;
+				this.searchBtn1();
 			}
 		}
 	}
@@ -446,7 +529,7 @@
 		padding-right: 8px;
 		margin-bottom: 8px;
 	}
-	.multipleTableRef {
+	.multipleTableRef1,.multipleTableRef0 {
 		margin-bottom: 8px;
 	}
 	.search-condition {
@@ -498,7 +581,6 @@
 	.delBtn:nth-child(1) {
 		margin-right: 4px;
 	}
-
 	.delBtn:hover {
 		background-color: #f34d5b;
 		border-color: #f34d5b;
@@ -546,4 +628,8 @@
 		display: inline-block;
 		min-width: 80px;
 	}
+	.viewDetial {
+		color: #337ecc;
+		cursor: pointer;
+	}
 </style>
diff --git a/src/views/console/bom-list/index.vue b/src/views/console/bom-list/index.vue
new file mode 100644
index 0000000..31029aa
--- /dev/null
+++ b/src/views/console/bom-list/index.vue
@@ -0,0 +1,94 @@
+<template>
+	<div class="rolePage">
+		<div class="roleContainer">
+			<div class="roleContainer-title">浜у搧鍒楄〃</div>
+			<el-input v-model="keyword" prefix-icon="el-icon-search" placeholder="杈撳叆鎼滅储鍐呭" clearable @keyup.enter="searchBtn"></el-input>
+			<ul>
+				<li v-for="(item,index) in leftData" @click="changeTabaleLi(item,index)">
+					<span :class="{active: item.active}">{{item.roleName}}</span>
+				</li>
+			</ul>
+		</div>
+		<div class="role-main-tabs">
+			<div class="role-main-header">
+				<div class="roleContainer-title">BOM娓呭崟</div>
+				<div>
+					<div>BOM鐗堟湰</div>
+					<div>
+						<span>浜у搧鍚嶇О</span>
+						<span>浜у搧缂栧彿</span>
+					</div>
+					<div>
+						<span>鏈畾鐗�</span>
+						<span>宸插畾鐗�</span>
+					</div>
+					<div>
+						娣诲姞鏂扮増鏈�
+					</div>
+				</div>
+			</div>
+			<el-tabs tab-position="top">
+				<div>
+					<div>BOM娓呭崟鍒楄〃</div>
+				</div>
+				<div>
+					<ul>
+						<li>鐗╂枡缂栧彿</li>
+						<li>鐗╂枡鍚嶇О</li>
+						<li>瑙勬牸</li>
+						<li>璁¢噺鍗曚綅</li>
+						<li>鐗╂枡绫诲瀷</li>
+						<li>鐗╂枡灞炴��</li>
+						<li>鏄惁蹇呮</li>
+						<li>棰濆畾搴撳瓨</li>
+						<li>瀹夊叏搴撳瓨</li>
+					</ul>
+					<el-table ref="multipleTableRef0" :data="tableData" border style="width: 100%" class="multipleTableRef">
+						<el-table-column prop="name" label="宸ュ簭缂栧彿"></el-table-column>
+						<el-table-column prop="code" label="宸ュ簭鍚嶇О"></el-table-column>
+						<el-table-column prop="typeName" label="鐢ㄩ噺鍒嗗瓙"></el-table-column>
+						<el-table-column prop="unit" label="鐢ㄩ噺鍒嗘瘝"></el-table-column>
+						<el-table-column prop="standardModel" label="鍥哄畾鑰楁崯"></el-table-column>
+						<el-table-column fixed="right" label="鎿嶄綔" width="200px">
+							<template #default="scope">
+								<el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
+								<el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index)">鍒锋柊</el-button>
+								<el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index)">鍒犻櫎</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+				</div>
+			</el-tabs>
+		</div>
+	</div>
+</template>
+
+<script>
+	export default {
+		name: 'BOM',
+		components: {
+			
+		},
+		data() {
+			return {
+				leftData: [],
+				dialog: {
+					save: false,
+					permission: false
+				},
+				tableData: []
+			}
+		},
+		mounted(){
+
+		},
+		methods: {
+			searchBtn() {},
+			
+		}
+	}
+</script>
+
+<style scoped>
+
+</style>

--
Gitblit v1.9.3