From bc0956b0fcfb1eb2709d6eb0f94c9e9d11c01eb3 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期四, 07 九月 2023 16:28:38 +0800
Subject: [PATCH] 	modified:   src/router/index.js 	modified:   src/views/laboratory/organizational/index.vue 	modified:   src/views/laboratory/role/index.vue 	modified:   src/views/standardLibrary/index.vue

---
 src/views/standardLibrary/index.vue           | 1257 +++++++++++++++++++++++++++++----------------------------
 src/views/laboratory/role/index.vue           |    1 
 src/views/laboratory/organizational/index.vue |    1 
 src/router/index.js                           |   14 
 4 files changed, 647 insertions(+), 626 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 18015f1..da62bb5 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -48,7 +48,7 @@
           path: 'index',
           name: 'StandardLibrary',
           component: () => import('@/views/standardLibrary/index'),
-          meta: { title: '鏍囧噯搴�', icon: 'el-icon-s-help' }
+          meta: { title: '鏍囧噯搴�', icon: 'el-icon-s-management' }
         },
         // {
         //   path: 'specificationDetails/:id',
@@ -64,7 +64,7 @@
       component: Layout,
       redirect: '/inspectionManagement/commissionInspection',
       name: 'InspectionManagement',
-      meta: { title: '鎶ユ绠$悊', icon: 'el-icon-s-help' },
+      meta: { title: '鎶ユ绠$悊', icon: 'el-icon-s-order' },
       children: [
         {
           path: 'commissionInspection',
@@ -85,7 +85,7 @@
       component: Layout,
       redirect: '/experiment/inspectionApplication',
       name: 'Experiment',
-      meta: { title: '璇曢獙绠$悊', icon: 'el-icon-s-help' },
+      meta: { title: '璇曢獙绠$悊', icon: 'el-icon-s-marketing' },
       children: [
         {
           path: 'inspectionApplication',
@@ -143,7 +143,7 @@
       component: Layout,
       redirect: '/laboratory/ledger',
       name: 'Laboratory',
-      meta: { title: '瀹為獙瀹ょ鐞�', icon: 'el-icon-s-help' },
+      meta: { title: '瀹為獙瀹ょ鐞�', icon: 'el-icon-cpu' },
       children: [
         {
           path: 'ledger',
@@ -221,7 +221,7 @@
       component: Layout,
       redirect: '/chart/center',
       name: 'Chart',
-      meta: { title: '鏅鸿兘鍥捐〃', icon: 'el-icon-s-help' },
+      meta: { title: '鏅鸿兘鍥捐〃', icon: 'el-icon-s-data' },
       children: [
         {
           path: 'center',
@@ -261,7 +261,7 @@
           name: 'ToDo',
           component: () => import('@/views/message/toDo/index'),
           // meta: { title: '娑堟伅寰呭姙', icon: 'tree' }
-          meta: { title: '鎴戠殑寰呭姙', icon: 'el-icon-s-help' },
+          meta: { title: '鎴戠殑寰呭姙', icon: 'el-icon-s-promotion' },
         },
         // {
         //   path: 'message',
@@ -282,7 +282,7 @@
           name: 'MyInformation',
           component: () => import('@/views/personal/myInformation/index'),
           // meta: { title: '涓汉绠$悊', icon: 'el-icon-s-help' }
-          meta: { title: '鎴戠殑淇℃伅', icon: 'el-icon-s-help' }
+          meta: { title: '鎴戠殑淇℃伅', icon: 'el-icon-user-solid' }
         },
         // {
         //   path: 'myBusiness',
diff --git a/src/views/laboratory/organizational/index.vue b/src/views/laboratory/organizational/index.vue
index b8e8d8a..b5cf795 100644
--- a/src/views/laboratory/organizational/index.vue
+++ b/src/views/laboratory/organizational/index.vue
@@ -315,6 +315,7 @@
 }
 .filter-tree {
   margin-top: 6px;
+  // display: inline-block;
 }
 .table_top_div {
   height: 80px;
diff --git a/src/views/laboratory/role/index.vue b/src/views/laboratory/role/index.vue
index 8c13e3a..b1f41c3 100644
--- a/src/views/laboratory/role/index.vue
+++ b/src/views/laboratory/role/index.vue
@@ -440,6 +440,7 @@
       res.data.list.forEach(item => {
         item.roleId = String(item.roleId)
       })
+      console.log(res.data);
       this.roleTable = res.data.list
       this.total = res.data.total
     },
diff --git a/src/views/standardLibrary/index.vue b/src/views/standardLibrary/index.vue
index 2bfd5e1..c515bee 100644
--- a/src/views/standardLibrary/index.vue
+++ b/src/views/standardLibrary/index.vue
@@ -4,10 +4,11 @@
 			<div class="library-bom" style="width: 300px">
 				<el-row :gutter="10">
 					<el-col :span="19">
-					<el-input size="small" clearable v-model="filterText" placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"></el-input>
+						<el-input size="small" clearable v-model="filterText" placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"></el-input>
 					</el-col>
 					<el-col :span="5">
-						<el-button size="small" type="primary" icon="el-icon-plus" @click="addTreeFormVisible = true"></el-button>
+						<el-button size="small" type="primary" icon="el-icon-plus"
+							@click="addTreeFormVisible = true"></el-button>
 					</el-col>
 				</el-row>
 				<el-button size="small" type="text">鍏ㄩ儴</el-button>
@@ -39,9 +40,8 @@
 						<el-table-column label="椤圭洰鍚嶇О" sortable>
 							<template scope="scope">
 								<el-tag>
-									<div class="firstDiv" :style="`color: ${
-                      scope.row.code == '[1]' ? '#16a7ff' : '#58c173'
-                    }`">
+									<div class="firstDiv" :style="`color: ${scope.row.code == '[1]' ? '#16a7ff' : '#58c173'
+										}`">
 										{{ scope.row.code == "[1]" ? "01" : "02" }}
 									</div>
 									<span style="color: black">{{ scope.row.name }}</span>
@@ -51,14 +51,16 @@
 						<el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column>
 						<el-table-column label="鏍囧噯鍊�" sortable>
 							<template scope="scope">
-								<el-input v-if="scope.row.edit === true || scope.row.code === '[2]'" @blur="requiredOnfocus(scope)"
-									v-model="scope.row.required" placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input>
+								<el-input v-if="scope.row.edit === true || scope.row.code === '[2]'"
+									@blur="requiredOnfocus(scope)" v-model="scope.row.required"
+									placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input>
 							</template>
 						</el-table-column>
 						<el-table-column prop="internal" label="鍐呮帶鍊�" sortable>
 							<template scope="scope">
-								<el-input v-if="scope.row.edit === true || scope.row.code === '[2]'" @blur="requiredOnfocus(scope)"
-									v-model="scope.row.internal" placeholder="璇疯緭鍏ュ唴鎺у��"></el-input>
+								<el-input v-if="scope.row.edit === true || scope.row.code === '[2]'"
+									@blur="requiredOnfocus(scope)" v-model="scope.row.internal"
+									placeholder="璇疯緭鍏ュ唴鎺у��"></el-input>
 							</template>
 						</el-table-column>
 					</el-table>
@@ -72,17 +74,17 @@
 		<el-dialog class="addTree" title="娣诲姞鏍囧噯鎸囨爣" width="28%" :visible.sync="addTreeFormVisible">
 			<el-form v-model="addTreeForm" label-position="top">
 				<el-form-item label="鏍囧噯绫诲瀷">
-					<el-cascader  v-model="addTreeForm.addTypeArr" :options="formTypeOptions"
-						:props="{ ...defaultProps, checkStrictly: true }" clearable @change="changeCascader"/>
+					<el-cascader v-model="addTreeForm.addTypeArr" :options="formTypeOptions"
+						:props="{ ...defaultProps, checkStrictly: true }" clearable @change="changeCascader" />
 				</el-form-item>
 				<el-form-item v-show="addTreeForm.addTypeArr.length < 2" label="鐗╂枡鍚嶇О">
 					<el-input @change="changeSample" v-model="addTreeForm.materialName" />
 				</el-form-item>
 				<el-form-item v-show="addTreeForm.addTypeArr.length < 3" label="鎵ц鏍囧噯">
-					<el-input  v-model="addTreeForm.standardName" />
+					<el-input v-model="addTreeForm.standardName" />
 				</el-form-item>
 				<el-form-item v-show="addTreeForm.addTypeArr.length < 4" label="瑙勬牸鍨嬪彿">
-					<el-input  v-model="addTreeForm.specificationsName" />
+					<el-input v-model="addTreeForm.specificationsName" />
 				</el-form-item>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
@@ -101,7 +103,8 @@
 					<el-col :span="12">
 						<el-form-item prop="name">
 							<span>椤圭洰鍚嶇О锛�</span>
-							<el-input style="width: calc(100% - 70px);" v-model="form.name" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
+							<el-input style="width: calc(100% - 70px);" v-model="form.name"
+								placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :span="12">
@@ -121,666 +124,682 @@
 </template>
 
 <script>
-	import {
-		getMaterialList,
-		getProductList,
-		addMaterial,
-		addStandards,
-		addSpecifications,
-		deleteListApi,
-		blurUpdateApi,
-		getVersion,
-		addVersion,
-		addProduct
-	} from "@/api/standardLibrary";
-	import {
-		addStandardProjectGroupApi,
-	} from "@/api/basicData/index";
-	export default {
-		data() {
-			return {
-				projectGroupingOptions:[],
-				form: {
-					father: "", // 椤圭洰鍒嗙粍
-					name: "", // 椤圭洰鍚嶇О
-					unit: "", // 鍗曚綅
-				},
-				rules: {
-					fater:[{required:true,message:"璇烽�夋嫨椤圭洰鍚嶇О",trigger:"blur"}],
-					name: [
-						{required: true,message: "璇疯緭鍏ラ」鐩悕绉�",trigger: "blur"},
-						{min: 2,max: 25,message: "闀垮害鍦� 2 鍒� 25 涓瓧绗�",trigger: "blur",},
-					],
-					unit: [
-						{required: true,message: "璇疯緭鍏ュ崟浣�",trigger: "blur"},
-						{min: 1,max: 25,message: "闀垮害鍦� 1 鍒� 25 涓瓧绗�",trigger: "blur"}
-					],
-				},
-				centerDialogVisible : false,
-				filterNodeData: [],
-				options: [],
-				versionValue: "",
-				deleteList: [],
-				msg: "",
-				isAllSelect: false,
-				addTreeFormVisible: false,
-				filterText: "",
-				// 鏍囧噯搴揵om鏍�
-				standardTree: [],
-				// bom鐨�,榛樿閰嶇疆鍊�
-				defaultProps: {
-					children: "children",
-					label: "name",
-					value: "id",
-				},
-				tableData: [],
-				oldtableData: [],
-				tablespecifications: [],
-				// 閫変腑鐨勮妭鐐规暟鎹�
-				selectData: {},
-				formTypeOptions: [],
-				addTreeForm: {
-					addTypeArr: [],
-					specificationsName: "",
-					materialName: "",
-					standardName: "",
+import {
+	getMaterialList,
+	getProductList,
+	addMaterial,
+	addStandards,
+	addSpecifications,
+	deleteListApi,
+	blurUpdateApi,
+	getVersion,
+	addVersion,
+	addProduct
+} from "@/api/standardLibrary";
+import {
+	addStandardProjectGroupApi,
+} from "@/api/basicData/index";
+export default {
+	data() {
+		return {
+			projectGroupingOptions: [],
+			form: {
+				father: "", // 椤圭洰鍒嗙粍
+				name: "", // 椤圭洰鍚嶇О
+				unit: "", // 鍗曚綅
+			},
+			rules: {
+				fater: [{ required: true, message: "璇烽�夋嫨椤圭洰鍚嶇О", trigger: "blur" }],
+				name: [
+					{ required: true, message: "璇疯緭鍏ラ」鐩悕绉�", trigger: "blur" },
+					{ min: 2, max: 25, message: "闀垮害鍦� 2 鍒� 25 涓瓧绗�", trigger: "blur", },
+				],
+				unit: [
+					{ required: true, message: "璇疯緭鍏ュ崟浣�", trigger: "blur" },
+					{ min: 1, max: 25, message: "闀垮害鍦� 1 鍒� 25 涓瓧绗�", trigger: "blur" }
+				],
+			},
+			centerDialogVisible: false,
+			filterNodeData: [],
+			options: [],
+			versionValue: "",
+			deleteList: [],
+			msg: "",
+			isAllSelect: false,
+			addTreeFormVisible: false,
+			filterText: "",
+			// 鏍囧噯搴揵om鏍�
+			standardTree: [],
+			// bom鐨�,榛樿閰嶇疆鍊�
+			defaultProps: {
+				children: "children",
+				label: "name",
+				value: "id",
+			},
+			tableData: [],
+			oldtableData: [],
+			tablespecifications: [],
+			// 閫変腑鐨勮妭鐐规暟鎹�
+			selectData: {},
+			formTypeOptions: [],
+			addTreeForm: {
+				addTypeArr: [],
+				specificationsName: "",
+				materialName: "",
+				standardName: "",
+			}
+		};
+	},
+	watch: {
+		filterText(val) {
+			this.$refs.tree.filter(val);
+		},
+		addTreeFormVisible(newVal) {
+			if (newVal === false) {
+				this.clear();
+			}
+		},
+		centerDialogVisible: {
+			handler(newVal, oldVal) {
+				if (newVal == true) {
+					addStandardProjectGroupApi().then((res) => {
+						this.projectGroupingOptions = res.data;
+					});
+				} else {
+					// 璇锋眰鎴愬姛娓呴櫎鏁版嵁
+					this.form = {};
+					// 鎻愪氦鎴愬姛娓呴櫎妫�楠�
+					this.$refs.ruleForm.resetFields();
 				}
+			},
+		},
+	},
+	created() {
+		this.getStandardTree();
+	},
+	mounted() {
+
+	},
+	methods: {
+		querySearch(queryString, cb) {
+			var restaurants = []
+			this.projectGroupingOptions.forEach(a => {
+				restaurants.push({
+					value: a
+				})
+			})
+			var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+			// 璋冪敤 callback 杩斿洖寤鸿鍒楄〃鐨勬暟鎹�
+			cb(results);
+		},
+		createFilter(queryString) {
+			return (restaurant) => {
+				return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
 			};
 		},
-		watch: {
-			filterText(val) {
-				this.$refs.tree.filter(val);
-			},
-			addTreeFormVisible(newVal){
-				if(newVal === false){
-					this.clear();
-				}
-			},
-			centerDialogVisible: {
-				handler(newVal, oldVal) {
-					if (newVal == true) {
-						addStandardProjectGroupApi().then((res) => {
-							this.projectGroupingOptions = res.data;
-						});
-					} else {
-						// 璇锋眰鎴愬姛娓呴櫎鏁版嵁
-						this.form = {};
-						// 鎻愪氦鎴愬姛娓呴櫎妫�楠�
-						this.$refs.ruleForm.resetFields();
-					}
-				},
-			},
+		clear() {
+			this.addTreeFormVisible = false;
+			this.addTreeForm.addTypeArr = [];
+			this.addTreeForm.specificationsName = '';
+			this.addTreeForm.materialName = ''
+			this.addTreeForm.standardName = ''
 		},
-		created() {
-			this.getStandardTree();
-		},
-		mounted() {
-
-		},
-		methods: {
-			querySearch(queryString, cb) {
-				var restaurants = []
-				this.projectGroupingOptions.forEach(a => {
-					restaurants.push({
-						value: a
-					})
-				})
-				var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
-				// 璋冪敤 callback 杩斿洖寤鸿鍒楄〃鐨勬暟鎹�
-				cb(results);
-			},
-			createFilter(queryString) {
-				return (restaurant) => {
-					return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
-				};
-			},
-			clear(){
-				this.addTreeFormVisible = false;
-				this.addTreeForm.addTypeArr=[];
-				this.addTreeForm.specificationsName='';
-				this.addTreeForm.materialName=''
-				this.addTreeForm.standardName=''
-			},
-			changeSample(){
-				let selectType=this.standardTree.filter(item=>{
-					return item.id===this.addTreeForm.addTypeArr[0]
-				})[0];
-				if(this.addTreeForm.addTypeArr.length==1){
-					let samples=selectType.children.filter(item=>{
-						return item.name===this.addTreeForm.materialName
-					})[0]
-					if(samples===undefined||samples===[]){
-						this.$message({
-          						message: '璇峰厛鍦ㄥ熀纭�鏁版嵁涓坊鍔犺銆�'+this.addTreeForm.materialName+'銆戞牱鍝�',
-          						type: 'warning'
-       					 });
-						 return false;
-					}
-				}
-				return true
-			},
-			oneSize(){},
-			twoSize(){
-				return true;
-			},
-			threeSize(){
-				return true;
-			},
-			async initSelect() {
-				this.options = [];
-				this.versionValue = "";
-				const response = await getVersion({
-					specificationsId: this.selectData.id,
-				});
-				if (response.code === 200 && response.data.length > 0) {
-					this.getTableByClick(this.selectData, response.data[0]);
-					for (let i = 0; i < response.data.length; i++) {
-						this.options.push({
-							value: response.data[i],
-							label: "V" + response.data[i],
-						});
-						this.versionValue = response.data[0];
-					}
-				}
-			},
-			changeSelect() {
-				this.tableData = [];
-				this.getTableByClick(this.selectData, this.versionValue);
-			},
-			async submitAdd(){
-				await addProduct({
-					father : this.form.father,
-					name : this.form.name,
-					specificationId: this.selectData.id,
-					unit : this.form.unit,
-					version : this.versionValue
-				}).then(res=>{
-					console.log(res);
-					this.$message.success(res.message);
-					this.centerDialogVisible = false;
-					this.getTableByClick(this.selectData, this.versionValue);
-				}).catch(error=>{
-					this.$message.error(error.message);
-				})
-			},
-			async insertVersion() {
-				const resp = await addVersion({
-					specificationsId: this.selectData.id,
-					version: this.versionValue
-				});
-				if (resp.code === 200) {
-					this.initSelect();
+		changeSample() {
+			let selectType = this.standardTree.filter(item => {
+				return item.id === this.addTreeForm.addTypeArr[0]
+			})[0];
+			if (this.addTreeForm.addTypeArr.length == 1) {
+				let samples = selectType.children.filter(item => {
+					return item.name === this.addTreeForm.materialName
+				})[0]
+				if (samples === undefined || samples === []) {
 					this.$message({
-						type: "success",
-						message: resp.message,
+						message: '璇峰厛鍦ㄥ熀纭�鏁版嵁涓坊鍔犺銆�' + this.addTreeForm.materialName + '銆戞牱鍝�',
+						type: 'warning'
 					});
+					return false;
 				}
-			},
-			addVersionFun() {
-				this.$confirm("纭娣诲姞鏂扮殑鐗堟湰鍙峰悧?", "鎻愮ず", {
-						confirmButtonText: "纭畾",
-						cancelButtonText: "鍙栨秷",
-						type: "warning",
-					})
-					.then(() => {
-						this.insertVersion();
-					})
-					.catch(() => {});
-			},
-			filterNode(value, data,node) {
-				if (!value) return true;
-				return data.name.indexOf(value) !== -1;
-			},
-			// 鑾峰彇bom鏍戠殑鏍囧噯鏁版嵁
-			async getStandardTree() {
-				let {
-					data
-				} = await getMaterialList();
-				if (data.length < 2) {
-					if (data.length == 0) {
-						data = [{
-							type: 0
-						}, {
-							type: 1
-						}]
-					} else {
-						data[1] = {
-							type: data[0].type == 1 ? 0 : 1
-						}
-					}
-				}
-				this.standardTree = data.map((item) => {
-					let name = null;
-					switch (item.type) {
-						case 0:
-							name = "鍘熸潗鏂�";
-							break;
-						case 1:
-							name = "鎴愬搧";
-							break;
-					}
-					return {
-						...item,
-						id: item.type,
-						name,
-					};
-				});
-				// formTypeOptions
-				// 榛樿绗竴涓洓绾ц妭鐐规悳绱紝鏂板閰嶇疆椤�
-				const treeOptions = JSON.parse(JSON.stringify(this.standardTree));
-				this.getDefault(treeOptions, 0);
-				this.formTypeOptions = treeOptions;
-				this.$nextTick().then(() => {
-					const firstNode = document.querySelector(
-						".el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node"
-					);
-					try {
-						firstNode.click();
-					} catch (e) {
-						//TODO handle the exception
-					}
-				});
-
-			},
-			getDefault(arr, index) {
-				for (const item of arr) {
-					if (item.children && item.children?.length > 0) {
-						// 鏈夊瓙鑺傜偣
-						this.getDefault(item.children, index + 1);
-						if (index === 2) {
-							item.children = null;
-						}
-					}
-				}
-			},
-			// 鐐瑰嚮bom鏍戣妭鐐规柟娉�
-			async nodeClick(data, node, element) {
-				// 鏄瓙鑺傜偣
-				if (node.level === 4) {
-					this.getParentData(node.parent, node.data.name);
-					// 瀛樹笅閫変腑鑺傜偣
-					this.selectData = data;
-					this.getTableByClick(data, this.versionValue);
-					this.initSelect();
-				}
-				if (!("children" in data)) {
-					return;
-				}
-			},
-			// 鑾峰彇鏍戣矾寰�
-			getParentData(node, name) {
-				if (node !== null) {
-					if (node.data.name !== undefined) {
-						this.msg = node.data.name + " > " + name;
-					}
-					this.getParentData(node.parent, this.msg);
-				}
-			},
-			async getTableByClick(data, versionVal) {
-				await getProductList({
-					specificationsId: data.id,
-					version: versionVal,
-				}).then((res) => {
-					res.data.forEach((i) => {
-						if (i.name === undefined) {
-							i.name = i.children[0].name;
-							i.unit = i.children[0].unit;
-							i.id = i.children[0].id;
-							i.required = i.children[0].required;
-							i.internal = i.children[0].internal;
-							i.edit = true;
-							delete i.children;
-						}
+			}
+			return true
+		},
+		oneSize() { },
+		twoSize() {
+			return true;
+		},
+		threeSize() {
+			return true;
+		},
+		async initSelect() {
+			this.options = [];
+			this.versionValue = "";
+			const response = await getVersion({
+				specificationsId: this.selectData.id,
+			});
+			if (response.code === 200 && response.data.length > 0) {
+				this.getTableByClick(this.selectData, response.data[0]);
+				for (let i = 0; i < response.data.length; i++) {
+					this.options.push({
+						value: response.data[i],
+						label: "V" + response.data[i],
 					});
-					this.tableData = res.data;
-					this.selectDataList();
-				});
-			},
-			specificationDetails(row) {
-				// 璺宠浆浜у搧瑙勬牸璇︽儏椤�
-				this.$router.push(`/standardLibrary/SpecificationDetails/${row.id}`);
-			},
-			renderContent(h, {
-				node,
-				data,
-				store
-			}) {
-				// 鍒ゆ柇鏄惁鏄埗鑺傜偣鎴栨枃浠跺す
-				const isFolder = "children" in data;
-				return ( <span class="tree-node"> {
-						isFolder ? ( <i class = {node.expanded ?"el-icon-folder-opened blue-folder" : "el-icon-folder blue-folder"} ></i>
-						) : ( <i class = "el-icon-document blue-folder" > </i>)
-					} <div class = "tree-lable" > [{node.level}] {data.name} </div> </span>
-				);
-			},
-			async subAddTreeForm() {
-				if(this.addTreeForm.addTypeArr.length==0){
-					this.$message({
-          						message: '璇峰厛閫夋嫨鏍囧噯绫诲瀷锛�',
-          						type: 'warning'
-       					 });
-					return
+					this.versionValue = response.data[0];
 				}
-				let handelerSample=this.changeSample()
-				if(!handelerSample){
-					return;
-				}
-				let res = null;
-				try {
-					switch (this.addTreeForm.addTypeArr.length) {
-						case 1:
-							res = await addMaterial({
-								...this.addTreeForm,
-								type: this.addTreeForm.addTypeArr[0],
-							});
-							break;
-						case 2:
-							res = await addStandards({
-								...this.addTreeForm,
-								materialId: this.addTreeForm.addTypeArr[1],
-							});
-							break;
-						case 3:
-							res = await addSpecifications({
-								...this.addTreeForm,
-								standardId: this.addTreeForm.addTypeArr[2],
-							});
-							break;
-					}
-				} catch (error) {
-					this.$message.error("娣诲姞澶辫触");
-				}
-				this.$message.success("娣诲姞鎴愬姛");
-				this.addTreeFormVisible = false;
-				this.getStandardTree();
+			}
+		},
+		changeSelect() {
+			this.tableData = [];
+			this.getTableByClick(this.selectData, this.versionValue);
+		},
+		async submitAdd() {
+			await addProduct({
+				father: this.form.father,
+				name: this.form.name,
+				specificationId: this.selectData.id,
+				unit: this.form.unit,
+				version: this.versionValue
+			}).then(res => {
+				console.log(res);
+				this.$message.success(res.message);
+				this.centerDialogVisible = false;
 				this.getTableByClick(this.selectData, this.versionValue);
-				this.addTreeForm.addTypeArr=[];
-				this.addTreeForm.specificationsName=''
-				this.addTreeForm.materialName=''
-				this.addTreeForm.standardName=''
-				// console.log(this.addTreeForm);
-			},
-			changeCascader(data) {
-				this.addTreeForm.addTypeArr = data;
-			},
-			selectDataList() {
-				let i=0
-				this.tableData.forEach((a) => {
-					a.id="0"+i
-					a.code = "[1]";
-					i++;
-					if (a.children != undefined) {
-						a.children.forEach((b) => {
-							b.code = "[2]";
-						});
-					}
+			}).catch(error => {
+				this.$message.error(error.message);
+			})
+		},
+		async insertVersion() {
+			const resp = await addVersion({
+				specificationsId: this.selectData.id,
+				version: this.versionValue
+			});
+			if (resp.code === 200) {
+				this.initSelect();
+				this.$message({
+					type: "success",
+					message: resp.message,
 				});
-			},
-			// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
-			// 鍏ㄩ��/鍙栨秷閫夋搷浣�
-			selectAll(val) {
-				this.isAllSelect = !this.isAllSelect;
-				let data = this.tableData;
-				this.toggleSelect(data, this.isAllSelect, "all");
-			},
-			//閫夋嫨鏌愯
-			selectTr(selection, row) {
-				this.$set(row, "isChecked", !row.isChecked);
-				this.$nextTick(() => {
-					this.isAllSelect = row.isChecked;
-					this.toggleSelect(row, row.isChecked, "tr");
-				});
-			},
-			//閫掑綊瀛愮骇
-			toggleSelect(data, flag, type) {
-				if (type === "all") {
-					if (data.length > 0) {
-						data.forEach((item) => {
-							this.toggleSelection(item, flag);
-							if (item.children && item.children.length > 0) {
-								this.toggleSelect(item.children, flag, type);
-							}
-						});
-					}
+			}
+		},
+		addVersionFun() {
+			this.$confirm("纭娣诲姞鏂扮殑鐗堟湰鍙峰悧?", "鎻愮ず", {
+				confirmButtonText: "纭畾",
+				cancelButtonText: "鍙栨秷",
+				type: "warning",
+			})
+				.then(() => {
+					this.insertVersion();
+				})
+				.catch(() => { });
+		},
+		filterNode(value, data, node) {
+			if (!value) return true;
+			return data.name.indexOf(value) !== -1;
+		},
+		// 鑾峰彇bom鏍戠殑鏍囧噯鏁版嵁
+		async getStandardTree() {
+			let {
+				data
+			} = await getMaterialList();
+			if (data.length < 2) {
+				if (data.length == 0) {
+					data = [{
+						type: 0
+					}, {
+						type: 1
+					}]
 				} else {
-					if (data.children && data.children.length > 0) {
-						data.children.forEach((item) => {
-							item.isChecked = !item.isChecked;
-							this.$refs.multipleTable.toggleRowSelection(item, flag);
-							this.toggleSelect(item, flag, type);
-						});
+					data[1] = {
+						type: data[0].type == 1 ? 0 : 1
 					}
 				}
-			},
-			//鏀瑰彉閫変腑
-			toggleSelection(row, flag) {
-				this.$set(row, "isChecked", flag);
-				this.$nextTick(() => {
-					if (flag) {
-						this.$refs.multipleTable.toggleRowSelection(row, flag);
-					} else {
-						this.$refs.multipleTable.clearSelection();
+			}
+			this.standardTree = data.map((item) => {
+				let name = null;
+				switch (item.type) {
+					case 0:
+						name = "鍘熸潗鏂�";
+						break;
+					case 1:
+						name = "鎴愬搧";
+						break;
+				}
+				return {
+					...item,
+					id: item.type,
+					name,
+				};
+			});
+			// formTypeOptions
+			// 榛樿绗竴涓洓绾ц妭鐐规悳绱紝鏂板閰嶇疆椤�
+			const treeOptions = JSON.parse(JSON.stringify(this.standardTree));
+			this.getDefault(treeOptions, 0);
+			this.formTypeOptions = treeOptions;
+			this.$nextTick().then(() => {
+				const firstNode = document.querySelector(
+					".el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node"
+				);
+				try {
+					firstNode.click();
+				} catch (e) {
+					//TODO handle the exception
+				}
+			});
+
+		},
+		getDefault(arr, index) {
+			for (const item of arr) {
+				if (item.children && item.children?.length > 0) {
+					// 鏈夊瓙鑺傜偣
+					this.getDefault(item.children, index + 1);
+					if (index === 2) {
+						item.children = null;
+					}
+				}
+			}
+		},
+		// 鐐瑰嚮bom鏍戣妭鐐规柟娉�
+		async nodeClick(data, node, element) {
+			// 鏄瓙鑺傜偣
+			if (node.level === 4) {
+				this.getParentData(node.parent, node.data.name);
+				// 瀛樹笅閫変腑鑺傜偣
+				this.selectData = data;
+				this.getTableByClick(data, this.versionValue);
+				this.initSelect();
+			}
+			if (!("children" in data)) {
+				return;
+			}
+		},
+		// 鑾峰彇鏍戣矾寰�
+		getParentData(node, name) {
+			if (node !== null) {
+				if (node.data.name !== undefined) {
+					this.msg = node.data.name + " > " + name;
+				}
+				this.getParentData(node.parent, this.msg);
+			}
+		},
+		async getTableByClick(data, versionVal) {
+			await getProductList({
+				specificationsId: data.id,
+				version: versionVal,
+			}).then((res) => {
+				res.data.forEach((i) => {
+					if (i.name === undefined) {
+						i.name = i.children[0].name;
+						i.unit = i.children[0].unit;
+						i.id = i.children[0].id;
+						i.required = i.children[0].required;
+						i.internal = i.children[0].internal;
+						i.edit = true;
+						delete i.children;
 					}
 				});
-			},
-			handleSelectionChange(val) {
-				this.deleteList = [];
-				val.forEach((v) => {
-					if (v.id !== undefined) {
-						this.deleteList.push(v.id);
-					}
+				this.tableData = res.data;
+				this.selectDataList();
+			});
+		},
+		specificationDetails(row) {
+			// 璺宠浆浜у搧瑙勬牸璇︽儏椤�
+			this.$router.push(`/standardLibrary/SpecificationDetails/${row.id}`);
+		},
+		renderContent(h, {
+			node,
+			data,
+			store
+		}) {
+			// 鍒ゆ柇鏄惁鏄埗鑺傜偣鎴栨枃浠跺す
+			const isFolder = "children" in data;
+			return (<span class="tree-node"> {
+				isFolder ? (<i class={node.expanded ? "el-icon-folder-opened blue-folder" : "el-icon-folder blue-folder"} ></i>
+				) : (<i class="el-icon-document blue-folder" > </i>)
+			} <div class="tree-lable" > [{node.level}] {data.name} </div> </span>
+			);
+		},
+		async subAddTreeForm() {
+			if (this.addTreeForm.addTypeArr.length == 0) {
+				this.$message({
+					message: '璇峰厛閫夋嫨鏍囧噯绫诲瀷锛�',
+					type: 'warning'
 				});
-			},
-			// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆  缁撴潫
-			deleteListClick() {
-				if(this.deleteList.length==0){
-					this.$message.error('璇烽�夋嫨瑕佸垹闄ょ殑椤圭洰')
+				return
+			}
+			let handelerSample = this.changeSample()
+			if (!handelerSample) {
+				return;
+			}
+			let res = null;
+			try {
+				switch (this.addTreeForm.addTypeArr.length) {
+					case 1:
+						res = await addMaterial({
+							...this.addTreeForm,
+							type: this.addTreeForm.addTypeArr[0],
+						});
+						break;
+					case 2:
+						res = await addStandards({
+							...this.addTreeForm,
+							materialId: this.addTreeForm.addTypeArr[1],
+						});
+						break;
+					case 3:
+						res = await addSpecifications({
+							...this.addTreeForm,
+							standardId: this.addTreeForm.addTypeArr[2],
+						});
+						break;
+				}
+			} catch (error) {
+				this.$message.error("娣诲姞澶辫触");
+			}
+			this.$message.success("娣诲姞鎴愬姛");
+			this.addTreeFormVisible = false;
+			this.getStandardTree();
+			this.getTableByClick(this.selectData, this.versionValue);
+			this.addTreeForm.addTypeArr = [];
+			this.addTreeForm.specificationsName = ''
+			this.addTreeForm.materialName = ''
+			this.addTreeForm.standardName = ''
+			// console.log(this.addTreeForm);
+		},
+		changeCascader(data) {
+			this.addTreeForm.addTypeArr = data;
+		},
+		selectDataList() {
+			let i = 0
+			this.tableData.forEach((a) => {
+				a.id = "0" + i
+				a.code = "[1]";
+				i++;
+				if (a.children != undefined) {
+					a.children.forEach((b) => {
+						b.code = "[2]";
+					});
+				}
+			});
+		},
+		// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
+		// 鍏ㄩ��/鍙栨秷閫夋搷浣�
+		selectAll(val) {
+			this.isAllSelect = !this.isAllSelect;
+			let data = this.tableData;
+			this.toggleSelect(data, this.isAllSelect, "all");
+		},
+		//閫夋嫨鏌愯
+		selectTr(selection, row) {
+			this.$set(row, "isChecked", !row.isChecked);
+			this.$nextTick(() => {
+				this.isAllSelect = row.isChecked;
+				this.toggleSelect(row, row.isChecked, "tr");
+			});
+		},
+		//閫掑綊瀛愮骇
+		toggleSelect(data, flag, type) {
+			if (type === "all") {
+				if (data.length > 0) {
+					data.forEach((item) => {
+						this.toggleSelection(item, flag);
+						if (item.children && item.children.length > 0) {
+							this.toggleSelect(item.children, flag, type);
+						}
+					});
+				}
+			} else {
+				if (data.children && data.children.length > 0) {
+					data.children.forEach((item) => {
+						item.isChecked = !item.isChecked;
+						this.$refs.multipleTable.toggleRowSelection(item, flag);
+						this.toggleSelect(item, flag, type);
+					});
+				}
+			}
+		},
+		//鏀瑰彉閫変腑
+		toggleSelection(row, flag) {
+			this.$set(row, "isChecked", flag);
+			this.$nextTick(() => {
+				if (flag) {
+					this.$refs.multipleTable.toggleRowSelection(row, flag);
+				} else {
+					this.$refs.multipleTable.clearSelection();
+				}
+			});
+		},
+		handleSelectionChange(val) {
+			this.deleteList = [];
+			val.forEach((v) => {
+				if (v.id !== undefined) {
+					this.deleteList.push(v.id);
+				}
+			});
+		},
+		// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆  缁撴潫
+		deleteListClick() {
+			if (this.deleteList.length == 0) {
+				this.$message.error('璇烽�夋嫨瑕佸垹闄ょ殑椤圭洰')
+				return
+			}
+			deleteListApi(this.deleteList).then((res) => {
+				this.$message({
+					message: res.message,
+					type: "success",
+				});
+				this.getTableByClick(this.selectData, this.versionValue);
+			});
+		},
+		async requiredOnfocus(scope) {
+			console.log(scope);
+			let obj = {
+				id: scope.row.id,
+				required: scope.row.required,
+				internal: scope.row.internal,
+			};
+			let arr = ['>', '<', '='];
+			if (obj.required === null || obj.required === undefined) {
+				this.$message({
+					message: '鏍囧噯鍊间笉鑳戒负绌猴紒',
+					type: 'warning'
+				});
+				return
+			} else {
+				let required = obj.required.charAt(0)
+				if (!arr.includes(required)) {
+					this.$message({
+						message: '鏍囧噯鍊煎弬鏁颁笉绗﹀悎锛�',
+						type: 'warning'
+					});
 					return
 				}
-				deleteListApi(this.deleteList).then((res) => {
-					this.$message({
-						message: res.message,
-						type: "success",
-					});
-					this.getTableByClick(this.selectData, this.versionValue);
+			}
+			if (obj.internal === null || obj.internal === undefined) {
+				this.$message({
+					message: '鍐呮帶鍊间笉鑳戒负绌猴紒',
+					type: 'warning'
 				});
-			},
-			async requiredOnfocus(scope) {
-				console.log(scope);
-				let obj = {
-					id: scope.row.id,
-					required: scope.row.required,
-					internal: scope.row.internal,
-				}; 
-				let internal=obj.internal.charAt(0)
-				let required=obj.required.charAt(0)
-				let arr=['>','<','='];
-				if(!arr.includes(required)){
+				return
+			} else {
+				let internal = obj.internal.charAt(0)
+				if (!arr.includes(internal)) {
 					this.$message({
-						  message: '鏍囧噯鍊煎弬鏁颁笉绗﹀悎锛�',
-						  type: 'warning'
-						});
-					 return
-				}
-				if(!arr.includes(internal)){
-					this.$message({
-          				message: '鍐呮帶鍊煎弬鏁颁笉绗﹀悎锛�',
-          				type: 'warning'
-       				 });
-					 return
-				}
-				await blurUpdateApi(obj).then((res) => {
-					this.$message({
-						message: res.message,
-						type: "success",
+						message: '鍐呮帶鍊煎弬鏁颁笉绗﹀悎锛�',
+						type: 'warning'
 					});
-					this.getTableByClick(this.selectData, this.versionValue);
+					return
+				}
+			}
+			await blurUpdateApi(obj).then((res) => {
+				this.$message({
+					message: res.message,
+					type: "success",
 				});
-			},
+				this.getTableByClick(this.selectData, this.versionValue);
+			});
 		},
-	};
+	},
+};
 </script>
 
 <style lang="scss" scoped>
-	// el-table琛ㄦ牸瀵归綈
-	::v-deep .el-table__row:not([class*="el-table__row--level-"]) {
-		td:nth-child(2) {
-			padding-left: 23px !important;
-		}
+// el-table琛ㄦ牸瀵归綈
+::v-deep .el-table__row:not([class*="el-table__row--level-"]) {
+	td:nth-child(2) {
+		padding-left: 23px !important;
 	}
+}
 
-	.standard-library-main {
-		width: 100vh;
+.standard-library-main {
+	width: 100vh;
+	height: 100%;
+
+	// 椤甸潰涓績鍐呭鍖哄煙
+	.content-main {
+		display: flex;
 		height: 100%;
+		min-height: calc(100vh - 88px);
+		max-height: calc(100vh - 88px);
+		padding: 15px;
 
-		// 椤甸潰涓績鍐呭鍖哄煙
-		.content-main {
-			display: flex;
-			height: 100%;
-			min-height: calc(100vh - 88px);
-			max-height: calc(100vh - 88px);
-			padding: 15px;
+		>div {
+			padding: 20px;
+			background: #fff;
+		}
 
-			>div {
-				padding: 20px;
-				background: #fff;
-			}
+		.library-bom {
+			// padding-right: 10px;
+			width: 300px;
+			overflow-y: auto;
+			// height: 100%;
+			max-height: 100%;
 
-			.library-bom {
-				// padding-right: 10px;
-				width: 300px;
-				overflow-y: auto;
-				// height: 100%;
-				max-height: 100%;
+			// margin-right: 12px;
+			// overflow-y: scroll;
+			.el-tree {
+				// margin-top:
+				width: 100%;
 
-				// margin-right: 12px;
-				// overflow-y: scroll;
-				.el-tree {
-					// margin-top:
-					width: 100%;
+				::v-deep .el-tree-node__content {
+					height: 24px !important;
+					font-size: 18px;
+					// display: inline-block !important;
+					padding: 2px;
 
-					::v-deep .el-tree-node__content {
-						height: 24px !important;
-						font-size: 18px;
-						// display: inline-block !important;
-						padding: 2px;
+					// color: #333;
+					.tree-node {
+						display: flex;
+						align-items: center;
+						height: 20px;
+					}
 
-						// color: #333;
-						.tree-node {
-							display: flex;
-							align-items: center;
-							height: 20px;
-						}
+					.tree-lable {
+						height: 100%;
+						line-height: 23px;
+						font-size: 12px;
+						padding-left: 8px;
+					}
 
-						.tree-lable {
-							height: 100%;
-							line-height: 23px;
-							font-size: 12px;
-							padding-left: 8px;
-						}
-
-						.blue-folder {
-							color: rgb(64, 158, 255);
-						}
+					.blue-folder {
+						color: rgb(64, 158, 255);
 					}
 				}
 			}
+		}
 
-			.library-table {
-				// height: 100%;
-				width: 170vh;
-				max-height: 100%;
-				// flex: 8;
-				margin-left: 12px;
+		.library-table {
+			// height: 100%;
+			width: 170vh;
+			max-height: 100%;
+			// flex: 8;
+			margin-left: 12px;
+			display: flex;
+			flex-direction: column;
+
+			// overflow-y: scroll;
+			.table-header {
+				display: flex;
+				justify-content: space-between;
+				width: 100%;
+
+				.el-form-item {
+					margin-bottom: 30px !important;
+				}
+			}
+
+			.table-box {
+				flex: 1;
+				background: #fff;
+				// padding: 20px 20px 10px 20px;
 				display: flex;
 				flex-direction: column;
+				justify-content: space-between;
 
-				// overflow-y: scroll;
-				.table-header {
+				>div:nth-child(3) {
+					// height: 20px;
 					display: flex;
-					justify-content: space-between;
-					width: 100%;
-
-					.el-form-item {
-						margin-bottom: 30px !important;
-					}
-				}
-
-				.table-box {
-					flex: 1;
-					background: #fff;
-					// padding: 20px 20px 10px 20px;
-					display: flex;
-					flex-direction: column;
-					justify-content: space-between;
-
-					>div:nth-child(3) {
-						// height: 20px;
-						display: flex;
-						justify-content: end;
-						margin: 10px 0;
-					}
+					justify-content: end;
+					margin: 10px 0;
 				}
 			}
 		}
+	}
 
-		.addTree {
-			.el-form-item {
-				margin-bottom: 10px;
-			}
+	.addTree {
+		.el-form-item {
+			margin-bottom: 10px;
+		}
 
-			.el-cascader {
-				width: 100%;
-			}
+		.el-cascader {
+			width: 100%;
 		}
 	}
+}
 
-	.search-bar {
-		.el-input {
-			position: relative;
-			font-size: 0.07292rem;
-			display: inline-block;
-			width: 70%;
-		}
+.search-bar {
+	.el-input {
+		position: relative;
+		font-size: 0.07292rem;
+		display: inline-block;
+		width: 70%;
 	}
+}
 
-	.firstDiv {
-		float: left;
-		width: 20px;
-		height: 20px;
-		border-radius: 50%;
-		background-color: #eff5ff;
-		margin-top: 5px;
-		justify-content: center;
-		display: flex;
-		align-items: center;
-		margin-right: 8px;
+.firstDiv {
+	float: left;
+	width: 20px;
+	height: 20px;
+	border-radius: 50%;
+	background-color: #eff5ff;
+	margin-top: 5px;
+	justify-content: center;
+	display: flex;
+	align-items: center;
+	margin-right: 8px;
+}
+
+.el-tag.el-tag {
+	border-color: transparent;
+	background-color: transparent;
+}
+
+.el-tag.el-tag:hover {
+	border-color: transparent;
+	background-color: transparent;
+}
+
+.serve-btn {
+	width: 100%;
+	padding-bottom: 6px;
+	text-align: right;
+
+	.el-select {
+		margin-right: 10px;
 	}
+}
 
-	.el-tag.el-tag {
-		border-color: transparent;
-		background-color: transparent;
-	}
-
-	.el-tag.el-tag:hover {
-		border-color: transparent;
-		background-color: transparent;
-	}
-
-	.serve-btn {
-		width: 100%;
-		padding-bottom: 6px;
-		text-align: right;
-
-		.el-select {
-			margin-right: 10px;
-		}
-	}
-
-	.tipMsg {
-		float: left;
-		font-size: 16px;
-		font-weight: 500;
-		color: #999999;
-	}
+.tipMsg {
+	float: left;
+	font-size: 16px;
+	font-weight: 500;
+	color: #999999;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3