From b580f0402ff66d0c5b74460edcb920a516b1ce6e Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 07 九月 2023 18:00:54 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.218.113:9001/r/lims-before

---
 src/views/basicData/index.vue |  984 ++++++++++++++++++++++++++-------------------------------
 1 files changed, 445 insertions(+), 539 deletions(-)

diff --git a/src/views/basicData/index.vue b/src/views/basicData/index.vue
index 4ee318a..3b5b8ac 100644
--- a/src/views/basicData/index.vue
+++ b/src/views/basicData/index.vue
@@ -1,548 +1,454 @@
 <template>
-  <div class="main_div">
-    <div class="top_div">
-      <span>鏍峰搧鍚嶇О锛�</span>
-      <el-select
-        v-model="params.material"
-        size="small"
-        placeholder="璇烽�夋嫨鏍峰搧鍚嶇О"
-      >
-        <el-option
-          v-for="item in productModelSelectmater"
-          :value="item"
-          :key="item.index"
-          :label="item"
-        ></el-option>
-      </el-select>
-      <span class="top_div_span">椤圭洰鍒嗙粍锛�</span>
-      <el-input
-        v-model="params.father"
-        placeholder="璇疯緭鍏ラ」鐩垎缁�"
-        style="width: 10%"
-        size="small "
-      ></el-input>
-      <span class="top_div_span">椤圭洰鍚嶇О锛�</span>
-      <el-input
-        v-model="params.name"
-        placeholder="璇疯緭鍏ラ」鐩悕绉�"
-        style="width: 10%"
-        size="small "
-      ></el-input>
-      <el-button
-        type="primary"
-        class="top_div_button"
-        size="small"
-        @click="selectProductModelTable"
-        >鏌ヨ</el-button
-      >
-      <el-button class="top_div_button" size="small" @click="params = {}"
-        >閲嶇疆</el-button
-      >
-      <div style="float: right">
-        <el-button
-          class="top_div_button"
-          type="primary"
-          size="small"
-          icon="el-icon-folder-add"
-          @click="centerDialogVisible = true"
-          >鏂板</el-button
-        >
-        <el-dialog
-          :visible.sync="centerDialogVisible"
-          width="30%"
-          right
-          :before-close="handleClose"
-        >
-          <template slot="title">
-            <div class="addTop">
-              <span>{{ isUpdate ? "鏇存柊" : "鏂板" }}鍩虹鏁版嵁</span>
-            </div>
-          </template>
-          <el-form :model="form" :rules="rules" ref="ruleForm" class="addForm">
-            <el-form-item prop="material" required>
-              <span>鏍峰搧鍚嶇О锛�</span>
-              <el-select
-                v-model="form.material"
-                style="width: 85%"
-                placeholder="璇烽�夋嫨鏍峰搧鍚嶇О"
-              >
-                <el-option
-                  v-for="(item, index) in productModelSelectmater"
-                  :key="index"
-                  :value="item"
-                  :label="item"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item>
-              <span>椤圭洰鍒嗙粍锛�</span>
-              <el-select
-                v-model="form.father"
-                style="width: 85%"
-                placeholder="璇烽�夋嫨椤圭洰鍒嗙粍"
-              >
-                <el-option
-                  v-for="(item, index) in projectGroupingOptions"
-                  :key="index"
-                  :value="item"
-                  :label="item"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-row :gutter="24">
-              <el-col :span="12"
-                ><el-form-item prop="name" required
-                  ><span>椤圭洰鍚嶇О锛�</span>
-                  <el-input
-                    style="width: 70%"
-                    v-model="form.name"
-                    placeholder="璇疯緭鍏ラ」鐩悕绉�"
-                  ></el-input></el-form-item
-              ></el-col>
-              <el-col :span="12">
-                <el-form-item prop="unit">
-                  <span
-                    v-html="'鍗�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;浣嶏細'"
-                  ></span>
-                  <el-input
-                    style="width: 70%"
-                    v-model="form.unit"
-                    placeholder="璇疯緭鍏ュ崟浣�"
-                  ></el-input></el-form-item
-              ></el-col>
-            </el-row>
-          </el-form>
-
-          <span slot="footer" class="dialog-footer">
-            <el-button @click="centerDialogVisible = false" size="small "
-              >鍙� 娑�</el-button
-            >
-            <el-button type="primary" @click="submitAdd" size="small ">{{
-              isUpdate ? "鏇� 鏂�" : "淇� 瀛�"
-            }}</el-button>
-          </span>
-        </el-dialog>
-        <el-button
-          class="top_div_button"
-          icon="el-icon-delete-solid"
-          size="small"
-          style="color: #00a5ff"
-          @click="deleteListClick"
-          >鍒犻櫎</el-button
-        >
-      </div>
-    </div>
-    <div class="table_div">
-      <el-table
-        :data="tableData"
-        style="width: 100%; margin-bottom: 20px"
-        row-key="name"
-        border
-        height="calc(100vh - 250px)"
-        default-expand-all
-        ref="multipleTable"
-        @select="selectTr"
-        @select-all="selectAll"
-        :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
-      >
-        <el-table-column type="selection" label="搴忓彿"> </el-table-column>
-        <el-table-column
-          type="index"
-          width="50px"
-          label="搴忓彿"
-        ></el-table-column>
-        <el-table-column label="椤圭洰鍚嶇О" sortable>
-          <template scope="scope">
-            <el-tag
-              ><div
-                class="firstDiv"
-                :style="`color: ${
+	<div class="main_div">
+		<div class="top_div">
+			<el-form :inline="true" :model="params" label-position="left">
+				<el-form-item prop="material" label="鏍峰搧鍚嶇О锛�">
+					<el-select v-model="params.material" size="small" placeholder="璇烽�夋嫨鏍峰搧鍚嶇О" @change="selectProductModelTable()">
+						<el-option v-for="item in productModelSelectmater" :value="item" :key="item.index" :label="item"></el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item prop="father" label="椤圭洰鍒嗙粍锛�" width="200">
+					<el-input size="small" v-model="params.father" placeholder="璇疯緭鍏ラ」鐩垎缁�"></el-input>
+				</el-form-item>
+				<el-form-item prop="name" label="椤圭洰鍚嶇О锛�" width="200" >
+					<el-input size="small" v-model="params.name" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
+				</el-form-item>
+				<el-form-item label="">
+					<el-button type="primary" class="top_div_button" size="small" @click="selectProductModelTable">鏌ヨ</el-button>
+					<el-button class="top_div_button" size="small" @click="clean">閲嶇疆</el-button>
+				</el-form-item>
+				<el-form-item style="margin-left: 25%;">
+					<el-button class="top_div_button" type="primary" size="small" icon="el-icon-plus"
+						@click="centerDialogVisible = true">鏂板</el-button>
+					<el-button class="top_div_button" icon="el-icon-delete-solid" size="small" style="color: #00a5ff"
+						@click="deleteListClick">鍒犻櫎</el-button>
+				</el-form-item>
+			</el-form>
+			<el-dialog :visible.sync="centerDialogVisible" width="45%" right :before-close="handleClose"
+				:title="isUpdate ? '鏇存柊' : '鏂板'" :hide-required-asterisk="false">
+				<el-form style="width: 100%;" label-width="100px" :model="form" :rules="rules" ref="ruleForm" class="addForm" label-position="left">
+					<el-form-item label="鏍峰搧鍚嶇О锛�" prop="material" required>
+						<el-autocomplete class="inline-input" v-model="form.material" :fetch-suggestions="querySearch1"
+							placeholder="璇疯緭鍏ユ牱鍝佸悕绉�" style="width: calc(100% - 70px);"></el-autocomplete>
+					</el-form-item>
+					<el-form-item label="椤圭洰鍒嗙粍锛�">
+						<el-autocomplete class="inline-input" v-model="form.father" :fetch-suggestions="querySearch2"
+							placeholder="璇疯緭鍏ラ」鐩垎缁�" style="width: calc(100% - 70px);"></el-autocomplete>
+					</el-form-item>
+					<el-row :gutter="24">
+						<el-col :span="12"><el-form-item label="椤圭洰鍚嶇О锛�" prop="name" required>
+								<el-input style="width: calc(100% - 70px);" v-model="form.name"
+									placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input></el-form-item></el-col>
+						<el-col :span="12">
+							<el-form-item label="鍗曚綅" prop="unit">
+								<el-input style="width: calc(100% - 70px);" v-model="form.unit"
+									placeholder="璇疯緭鍏ュ崟浣�"></el-input></el-form-item></el-col>
+					</el-row>
+				</el-form>
+				<span slot="footer" class="dialog-footer">
+					<el-button @click="centerDialogVisible = false" size="small ">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submitAdd" size="small ">{{
+			isUpdate ? "鏇� 鏂�" : "淇� 瀛�"
+		}}</el-button>
+				</span>
+			</el-dialog>
+		</div>
+		<div class="table_div">
+			<el-table :data="tableData" style="width: 100%; margin-bottom: 20px" row-key="id" border
+				height="calc(100vh - 250px)" default-expand-all ref="multipleTable" @select="selectTr" @select-all="selectAll"
+				@selection-change="handleSelectionChange" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+				<el-table-column type="selection" label="搴忓彿"> </el-table-column>
+				<el-table-column type="index" width="50px" label="搴忓彿"></el-table-column>
+				<el-table-column label="椤圭洰鍚嶇О" sortable>
+					<template scope="scope">
+						<el-tag>
+							<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></el-tag
-            >
-          </template>
-        </el-table-column>
-        <el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column>
-        <el-table-column label="鎿嶄綔">
-          <template slot-scope="scope">
-            <div v-if="scope.row.code == '[2]' || scope.row.edit == true">
-              <el-button type="text" size="mini" @click="childrenClick(scope)"
-                >缂栬緫</el-button
-              >
-              <el-button
-                type="text"
-                size="mini"
-                @click="deleteTreeChildren(scope)"
-                >鍒犻櫎</el-button
-              >
-            </div>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
+                }`">
+								{{ scope.row.code == "[1]" ? "01" : "02" }}
+							</div>
+							<span style="color: black">{{ scope.row.name }}</span>
+						</el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column>
+				<el-table-column label="鎿嶄綔">
+					<template slot-scope="scope">
+						<div v-if="scope.row.code == '[2]' || scope.row.edit == true">
+							<el-button type="text" size="mini" @click="childrenClick(scope)">缂栬緫</el-button>
+							<el-button type="text" size="mini" @click="deleteTreeChildren(scope)">鍒犻櫎</el-button>
+						</div>
+					</template>
+				</el-table-column>
+			</el-table>
+		</div>
+	</div>
 </template>
 
 <script>
-import {
-  addStandardProjectGroupApi,
-  productModelSelectmaterApi,
-  addproductModelApi,
-  selectproductModelApi,
-  deleteProductModelApi,
-  selectproductModelByIdApi,
-  updateProductModelApi,
-  deleteListApi,
-} from "@/api/basicData/index";
-export default {
-  name: "BasicDataMessage",
-  data() {
-    return {
-      isAllSelect: false,
-      projectGroupingOptions: [],
-      productModelSelectmater: [],
-      value: "",
-      isUpdate: false,
-      projectName: "",
-      tableData: [],
-      centerDialogVisible: false,
-      deleteList: [],
-      form: {
-        material: "", // 鏍峰搧鍚嶇О
-        father: "", // 椤圭洰鍒嗙粍
-        name: "", // 椤圭洰鍚嶇О
-        unit: "", // 鍗曚綅
-      },
-      params: {
-        material: "",
-        father: "",
-        name: "",
-      },
-      rules: {
-        material: [
-          { required: true, message: "璇烽�夋嫨鏍峰搧鍚嶇О", trigger: "change" },
-        ],
-        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",
-          },
-        ],
-      },
-    };
-  },
-  methods: {
-    submitAdd() {
-      if (!this.isUpdate) {
-        this.$refs.ruleForm.validate((valid) => {
-          if (valid) {
-            addproductModelApi(this.form).then((res) => {
-              this.centerDialogVisible = false;
-              this.$message({
-                message: res.message,
-                type: "success",
-              });
-              this.selectProductModelTable();
-            });
-          }
-        });
-      } else {
-        this.$refs.ruleForm.validate((valid) => {
-          if (valid) {
-            updateProductModelApi(this.form).then((res) => {
-              this.centerDialogVisible = false;
-              this.$message({
-                message: res.message,
-                type: "success",
-              });
-              this.selectProductModelTable();
-            });
-          }
-        });
-      }
-    },
-    async selectProductMaster() {
-      await productModelSelectmaterApi().then((res) => {
-        this.productModelSelectmater = res.data;
-      });
-    },
-    handleClose(done) {
-      this.$confirm("纭鍏抽棴锛�")
-        .then((_) => {
-          this.centerDialogVisible = false;
-          done();
-        })
-        .catch((_) => {});
-    },
-    selectProductModelTable() {
-      selectproductModelApi(this.params).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.edit = true;
-            delete i.children;
-          }
-        });
-        this.tableData = res.data;
-        this.selectDataList();
-      });
-    },
-    childrenClick(scope) {
-      this.isUpdate = true;
-      let father = "";
-      selectproductModelByIdApi(scope.row.id).then((res) => {
-        let result = res.data;
-        this.form.name = result.name;
-        this.form.material = result.material;
-        this.form.father = result.father;
-        this.form.unit = result.unit;
-        this.form.id = scope.row.id;
-      });
-      this.centerDialogVisible = true;
-    },
-    selectDataList() {
-      this.tableData.forEach((a) => {
-        a.code = "[1]";
-        if (a.children != undefined) {
-          a.children.forEach((b) => {
-            b.code = "[2]";
-          });
-        }
-      });
-    },
-    deleteTreeChildren(scope) {
-      deleteProductModelApi(scope.row.id).then((res) => {
-        this.$message({
-          message: res.message,
-          type: "success",
-        });
-        this.selectProductModelTable();
-      });
-    },
-
-    // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
-    // 鍏ㄩ��/鍙栨秷閫夋搷浣�
-    selectAll(val) {
-      this.isAllSelect = !this.isAllSelect;
-      let data = this.tableData;
-      this.toggleSelect(data, this.isAllSelect, "all");
-      // 鑷畾涔�
-      if (this.isAllSelect) {
-        val.forEach((i) => {
-          if (i.id !== undefined) {
-            this.deleteList.push(i.id);
-          } else {
-            i.children.forEach((c) => {
-              this.deleteList.push(c.id);
-            });
-          }
-        });
-      } else {
-        this.deleteList.splice(0, this.deleteList.length);
-      }
-    },
-    //閫夋嫨鏌愯
-    selectTr(selection, row) {
-      this.$set(row, "isChecked", !row.isChecked);
-      this.$nextTick(() => {
-        this.isAllSelect = row.isChecked;
-        this.toggleSelect(row, row.isChecked, "tr");
-      });
-
-      if (row.isChecked === true) {
-        if (row.children !== undefined) {
-          row.children.forEach((i) => {
-            this.deleteList.push(i.id);
-          });
-        } else {
-          this.deleteList.push(row.id);
-        }
-      } else if (row.isChecked === false) {
-        if (row.children !== undefined) {
-          row.children.forEach((i) => {
-            this.deleteList.findIndex((c, index) => {
-              if (c === i.id) {
-                this.deleteList.splice(index, 1);
-                return;
-              }
-            });
-          });
-        }
-        this.deleteList.findIndex((c, index) => {
-          if (c === row.id) {
-            this.deleteList.splice(index, 1);
-            return;
-          }
-        });
-      }
-    },
-    //閫掑綊瀛愮骇
-    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();
-        }
-      });
-    },
-    // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆  缁撴潫
-    deleteListClick() {
-      deleteListApi(this.deleteList).then((res) => {
-        this.$message({
-          message: res.message,
-          type: "success",
-        });
-        this.selectProductModelTable();
-      });
-    },
-  },
-  mounted() {
-    this.selectProductMaster().then((res) => {
-      this.params.material = this.productModelSelectmater[0];
-      this.selectProductModelTable();
-    });
-  },
-  watch: {
-    centerDialogVisible: {
-      handler(newVal, oldVal) {
-        if (newVal == true) {
-          addStandardProjectGroupApi().then((res) => {
-            this.projectGroupingOptions = res.data;
-          });
-        } else {
-          // 璇锋眰鎴愬姛娓呴櫎鏁版嵁
-          this.form = {};
-          // 鎻愪氦鎴愬姛娓呴櫎妫�楠�
-          this.$refs.ruleForm.resetFields();
-          this.isUpdate = false;
-        }
-      },
-    },
-  },
-};
+	import {
+		addStandardProjectGroupApi,
+		productModelSelectmaterApi,
+		addproductModelApi,
+		selectproductModelApi,
+		deleteProductModelApi,
+		selectproductModelByIdApi,
+		updateProductModelApi,
+		deleteListApi,
+	} from "@/api/basicData/index";
+	export default {
+		name: "BasicDataMessage",
+		data() {
+			return {
+				isAllSelect: false,
+				projectGroupingOptions: [],
+				productModelSelectmater: [],
+				value: "",
+				isUpdate: false,
+				projectName: "",
+				tableData: [],
+				centerDialogVisible: false,
+				deleteList: [],
+				form: {
+					material: "", // 鏍峰搧鍚嶇О
+					father: "", // 椤圭洰鍒嗙粍
+					name: "", // 椤圭洰鍚嶇О
+					unit: "", // 鍗曚綅
+				},
+				params: {
+					material: "",
+					father: "",
+					name: "",
+				},
+				rules: {
+					material: [{
+						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",
+						},
+					],
+				},
+			};
+		},
+		methods: {
+			submitAdd() {
+				if (!this.isUpdate) {
+					this.$refs.ruleForm.validate((valid) => {
+						if (valid) {
+							addproductModelApi(this.form).then((res) => {
+								this.centerDialogVisible = false;
+								this.$message({
+									message: res.message,
+									type: "success",
+								});
+								this.selectProductMaster();
+								this.selectProductModelTable();
+							});
+						}
+					});
+				} else {
+					this.$refs.ruleForm.validate((valid) => {
+						if (valid) {
+							updateProductModelApi(this.form).then((res) => {
+								this.centerDialogVisible = false;
+								this.$message({
+									message: res.message,
+									type: "success",
+								});
+								this.selectProductModelTable();
+							});
+						}
+					});
+				}
+			},
+			async selectProductMaster() {
+				await productModelSelectmaterApi().then((res) => {
+					this.productModelSelectmater = res.data;
+				});
+			},
+			handleClose(done) {
+				this.centerDialogVisible = false;
+				done();
+			},
+			selectProductModelTable() {
+				selectproductModelApi(this.params).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.edit = true;
+							delete i.children;
+						}
+					});
+					this.tableData = res.data;
+					this.selectDataList();
+				});
+			},
+			childrenClick(scope) {
+				this.isUpdate = true;
+				let father = "";
+				this.form = {
+					material: "", // 鏍峰搧鍚嶇О
+					father: "", // 椤圭洰鍒嗙粍
+					name: "", // 椤圭洰鍚嶇О
+					unit: "", // 鍗曚綅
+					id: ""
+				}
+				selectproductModelByIdApi(scope.row.id).then((res) => {
+					let result = res.data;
+					this.form.name = result.name;
+					this.form.material = result.material;
+					this.form.father = result.father;
+					this.form.unit = result.unit;
+					this.form.id = scope.row.id;
+					this.centerDialogVisible = true;
+				});
+			},
+			selectDataList() {
+				this.tableData.forEach((a) => {
+					a.code = "[1]";
+					if (a.children != undefined) {
+						a.children.forEach((b) => {
+							b.code = "[2]";
+						});
+					}
+				});
+			},
+			deleteTreeChildren(scope) {
+				deleteProductModelApi(scope.row.id).then((res) => {
+					this.$message({
+						message: res.message,
+						type: "success",
+					});
+					this.selectProductModelTable();
+				});
+			},
+			// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
+			// 鍏ㄩ��/鍙栨秷閫夋搷浣�
+			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);
+					}
+				});
+				console.log(`output->this.deleteList`, this.deleteList);
+			},
+			// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆  缁撴潫
+			deleteListClick() {
+				deleteListApi(this.deleteList).then((res) => {
+					this.$message({
+						message: res.message,
+						type: "success",
+					});
+					this.selectProductModelTable();
+				});
+			},
+			querySearch1(queryString, cb) {
+				var restaurants = []
+				this.productModelSelectmater.forEach(a => {
+					restaurants.push({
+						value: a
+					})
+				})
+				var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+				// 璋冪敤 callback 杩斿洖寤鸿鍒楄〃鐨勬暟鎹�
+				cb(results);
+			},
+			querySearch2(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);
+				};
+			},
+			clean() {
+				this.params = {
+					material: this.params.material,
+					father: null,
+					name: null
+				}
+				this.selectProductModelTable()
+			},
+			selectList(){
+				this.selectProductMaster().then((res) => {
+					this.params.material = this.productModelSelectmater[0];
+					this.selectProductModelTable();
+				})
+			}
+		},
+		mounted() {
+			this.selectList()
+		},
+		watch: {
+			centerDialogVisible: {
+				handler(newVal, oldVal) {
+					if (newVal == true) {
+						addStandardProjectGroupApi().then((res) => {
+							this.projectGroupingOptions = res.data;
+						});
+					} else {
+						// 璇锋眰鎴愬姛娓呴櫎鏁版嵁
+						this.form = {};
+						// 鎻愪氦鎴愬姛娓呴櫎妫�楠�
+						this.$refs.ruleForm.resetFields();
+						this.isUpdate = false;
+					}
+				},
+			},
+		},
+	};
 </script>
 
 <style>
-.el-tag.el-tag {
-  border-color: transparent;
-  background-color: transparent;
-}
-.el-tag.el-tag:hover {
-  border-color: transparent;
-  background-color: transparent;
-}
-.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;
-}
-.main_div {
-  width: 100%;
-  position: relative;
-  padding: 0 10px 10px 10px;
-}
-.el-dialog__header {
-  padding: 0;
-}
-.el-dialog__headerbtn {
-  top: 0;
-}
-.el-dialog__close {
-  padding: 8px 0;
-  color: #ffffff !important;
-}
-.addForm {
-  padding: 20px 20px 0 20px;
-}
-.addForm .el-form-item__error {
-  left: 66px;
-}
-.el-dialog {
-  border-radius: 10px;
-}
-.el-dialog__body {
-  padding: 30px 20px 0 20px;
-}
-.addTop {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
-  background-color: #00a5ff;
-  color: #ffffff;
-  padding: 8px 20px;
-  float: left;
-  height: 30px;
-  width: 100%;
-}
-.addTop span {
-  font-size: 16px;
-  font-weight: 700;
-}
-.table_div {
-  margin-top: 10px;
-  width: 100%;
-  height: calc(100vh - 230px);
-  background-color: #ffffff;
-  padding: 10px;
-}
+	.el-tag.el-tag {
+		border-color: transparent;
+		background-color: transparent;
+	}
 
-.top_div {
-  height: 120px;
-  width: 100%;
-  padding: 30px 40px;
-  background-color: #ffffff;
-}
-.top_div_span {
-  margin-left: 50px;
-}
-.top_div_button {
-  margin-left: 20px;
-}
-</style>
+	.el-tag.el-tag:hover {
+		border-color: transparent;
+		background-color: transparent;
+	}
+
+	.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;
+	}
+
+	.main_div {
+		width: 100%;
+		position: relative;
+		padding: 0 10px 10px 10px;
+	}
+
+	.el-dialog__close {
+		padding: 8px 0;
+		color: #ffffff !important;
+	}
+
+	.addForm {
+		padding: 20px 20px 0 20px;
+	}
+
+	.addForm .el-form-item__error {
+		left: 66px;
+	}
+
+	.el-dialog {
+		border-radius: 10px;
+	}
+
+	.el-dialog__body {
+		padding: 30px 20px 0 20px;
+	}
+
+	.table_div {
+		margin-top: 10px;
+		width: 100%;
+		height: calc(100vh - 230px);
+		background-color: #ffffff;
+		padding: 10px;
+	}
+
+	.top_div {
+		height: 90px;
+		width: 100%;
+		padding: 30px 40px;
+		background-color: #ffffff;
+	}
+
+	.top_div_span {
+		margin-left: 50px;
+	}
+
+	.top_div_button {
+		margin-left: 20px;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3