From b9d86ddf9e6bb36736214cd632d69ae83debc754 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 27 九月 2023 18:17:13 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mom-before

---
 src/components/view/laboratoryManagement.vue | 1138 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 748 insertions(+), 390 deletions(-)

diff --git a/src/components/view/laboratoryManagement.vue b/src/components/view/laboratoryManagement.vue
index 80446a7..3c94c14 100644
--- a/src/components/view/laboratoryManagement.vue
+++ b/src/components/view/laboratoryManagement.vue
@@ -1,398 +1,756 @@
 <template>
-  <div>
-    <el-row>
-      <el-col :span="12" class="top_left_name">瀹為獙瀹ょ鐞�</el-col>
-      <el-col :span="12" style="text-align: right;">
-        <el-button @click="testItem()" type="primary" size="mini" icon="el-icon-plus" style="background: #004EA2; ">鏂板浠櫒璁惧</el-button>
-        <el-dialog
-          title="鏂板浠櫒璁惧"
-          :visible.sync="dialogVisible"
-          width="750px"
-          :before-close="handleClose">
-          <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
-            <el-row>
-              <el-col :span="12">
-                <el-form-item label="浠櫒璁惧缂栧彿" prop="name">
-                  <el-input placeholder="璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�" style="width: 206px" clearable v-model="ruleForm.name"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="淇濈浜�" prop="region">
-                  <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨淇濈浜�">
-                    <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-                    <el-option label="鍖哄煙浜�" value="beijing"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="12">
-                <el-form-item label="璁¢噺鎴嚦鏈夋晥鏈�" required>
-                  <el-form-item prop="date1">
-                    <el-date-picker style="width: 206px" type="date" placeholder="璇烽�夋嫨璁¢噺鎴嚦鏈夋晥鏈�" v-model="ruleForm.date1"></el-date-picker>
-                  </el-form-item>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="璁惧鐘舵��" prop="region">
-                  <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨璁惧鐘舵��">
-                    <el-option label="1" value="杩愯"></el-option>
-                    <el-option label="2" value="鎶ュ簾"></el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="12">
-                <el-form-item label="鍘傚" prop="region">
-                  <el-input style="width: 206px" placeholder="璇疯緭鍏ュ巶瀹�" clearable v-model="ruleForm.name"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="妫�娴嬮」鐩�" required>
-                  <el-form-item prop="inspectionList">
-                    <el-select v-model="ruleForm.rawInsProductId" placeholder="璇烽�夋嫨妫�娴嬮」鐩�">
-                      <el-option v-for="item in inspectionList"
-                                 :key="item.index"
-                                 :label="item.name"
-                                 :value="item.id">
-                      </el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="12">
-                <el-form-item label="妫�娴嬫牱鍝�" required>
-                  <el-form-item prop="date1">
-                    <el-input placeholder="璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�" style="width: 206px" clearable v-model="ruleForm.name"></el-input>
-                  </el-form-item>
-                </el-form-item>
-              </el-col>
-              <el-col :span="12">
-                <el-form-item label="瑙勬牸鍨嬪彿" prop="region">
-                  <el-input placeholder="璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�" style="width: 206px" clearable v-model="ruleForm.name"></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="12">
-                <el-form-item label="妫�娴嬩汉" required>
-                  <el-input placeholder="璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�" style="width: 206px" clearable v-model="ruleForm.name"></el-input>
-                </el-form-item>
-              </el-col>
-            </el-row>
-
-          </el-form>
-          <span slot="footer" class="dialog-footer">
-            <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
-            <el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button>
-          </span>
-        </el-dialog>
-
-      </el-col>
-    </el-row>
-    <el-row class="left_row">
-      <div :style="`width: ${isCollapse?300:0}px;transition: 1s;`" class="class_sidebar">
-        <el-radio-group class="ai-tab-change" style="width: 270px; margin-top: 5px" v-model="radio1">
-          <el-radio-button size="small" label="true">
-            <div class="el_radio_button_div">鐢熶骇璁惧</div>
-          </el-radio-button>
-          <el-radio-button size="small" label="false">
-            <div class="el_radio_button_div">妫�娴嬭澶�</div>
-          </el-radio-button>
-        </el-radio-group>
-        <el-input
-          v-model="search"
-          class="frame_input"
-          :style="`opacity: ${isCollapse?1:0};`"
-          suffix-icon="el-icon-search"
-          placeholder="璇疯緭鍏ュ垎绫诲悕绉�"
-          size="small" clearable>
-        </el-input>
-        <el-tree
-          :data="list" ref="tree"
-          :props="{children: 'children',label: 'label'}"
-          node-key="id"
-          default-expand-all
-          :filter-node-method="filterNode"
-          @node-click="handleNodeClick"
-          highlight-current @node-expand="nodeOpen"
-          @node-collapse="nodeClose">
-            <div class="custom-tree-node" slot-scope="{ node, data }">
-              <span><i :class="`node_i ${data.code != '[4]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i>
-                {{data.code}}{{ data.label }}</span>
-              <el-button type="text" size="mini" @click.stop="remove(node, data)">
-                <i class="el-icon-delete"></i>
-              </el-button>
-            </div>
-        </el-tree>
-      </div>
-      <div class="table_div" :style="`width: calc(100vw - ${isCollapse?'475':'170'}px);`">
-        <div :title="isCollapse ? '鐐瑰嚮灞曞紑' : '鐐瑰嚮鏀惰捣'" class="box_bgd" @click="isC">
-          <div class="upper_triangle"></div>
-          <div class="corner">
-            <!-- 鐐瑰嚮灞曞紑鏀惰捣瀵艰埅鍜屽垏鎹㈠搴斿浘鏍� -->
-            <i :class="!isCollapse ? 'el-icon-arrow-left' : 'el-icon-arrow-right'"></i>
-          </div>
-          <div class="under_triangle"></div>
-        </div>
-        <div class="main_table_div">
-          <div class="table_top_div">
-            <el-input
-              class="table_top_input"
-              v-model="searchName"
-              size="small"
-              prefix-icon="el-icon-search"
-              placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸"
-              clearable>
-            </el-input>
-            <el-button size="mini" @click="()=>{searchName='';selectProductTableData()}"><span>閲� 缃�</span></el-button>
-            <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectProductTableData"><span>鏌� 璇�</span></el-button>
-            <el-select v-model="tableType" size="small" placeholder="璇烽�夋嫨" class="table_top">
-              <el-option :value="0" label="宸ヨ壓鏂囦欢"></el-option>
-              <el-option :value="1" label="鎶�鏈寚鏍�"></el-option>
-            </el-select>
-          </div>
-          <el-table
-            :data="tableData"
-            border
-            height="calc(100vh - 220px)"
-            style="padding: 10px;">
-            <el-table-column
-              prop="date"
-              label="鏃ユ湡"
-              width="180">
-            </el-table-column>
-            <el-table-column
-              prop="name"
-              label="濮撳悕"
-              width="180">
-            </el-table-column>
-            <el-table-column
-              prop="address"
-              label="鍦板潃">
-            </el-table-column>
-          </el-table>
-        </div>
-      </div>
-    </el-row>
-  </div>
+	<div class="laboratoryMangement">
+		<el-row>
+			<el-col :span="12" class="top_left_name">璁惧缁存姢</el-col>
+			<el-col :span="12" style="text-align: right;" class="title">
+				<el-button @click="testItem()" type="primary" size="mini" icon="el-icon-plus"
+					style="background: #004EA2; ">鏂板浠櫒璁惧</el-button>
+				<el-dialog title="鏂板浠櫒璁惧" :visible.sync="dialogVisible" width="750px" :before-close="handleClose">
+					<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+						<el-row>
+							<el-col :span="12">
+								<el-form-item label="璁惧鍚嶇О" prop="name">
+									<el-input placeholder="璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�" style="width: 206px" clearable v-model="ruleForm.name"></el-input>
+								</el-form-item>
+							</el-col>
+							<el-col :span="12">
+								<el-form-item label="璁惧鐢ㄩ��" prop="type">
+									<el-select v-model="ruleForm.type" @change="selectinstall" placeholder="璇烽�夋嫨璁惧鐢ㄩ��">
+										<el-option label="鐢熶骇璁惧" value="1"></el-option>
+										<el-option label="妫�娴嬭澶�" value="2"></el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+						</el-row>
+						<el-row>
+							<el-col :span="12">
+								<el-form-item label="璁惧缁�" prop="name">
+									<el-select v-model="ruleForm.equr" allow-create filterable @create="" placeholder="璇烽�夋嫨璁惧缁�">
+										<el-option v-for="list in equaip" :key="list" :label="list" :value="list">
+										</el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+							<el-col :span="12">
+								<el-form-item label="浠櫒璁惧缂栧彿" prop="name">
+									<el-input placeholder="璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�" style="width: 206px" clearable v-model="ruleForm.code"></el-input>
+								</el-form-item>
+							</el-col>
+						</el-row>
+						<el-row>
+							<el-col :span="12">
+								<el-form-item label="淇濈浜�" prop="keeper">
+									<el-select v-model="ruleForm.keeper" placeholder="璇烽�夋嫨淇濈浜�">
+										<el-option v-for="list in keeperList" :key="list.index" :label="list.name" :value="list.id">
+										</el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+							<el-col :span="12">
+								<el-form-item label="璁¢噺鎴嚦鏈夋晥鏈�" prop="endMeasure">
+									<el-date-picker style="width: 206px" type="date" placeholder="璇烽�夋嫨璁¢噺鎴嚦鏈夋晥鏈�"
+										v-model="ruleForm.endMeasure" :picker-options="pickerOptions"></el-date-picker>
+								</el-form-item>
+							</el-col>
+						</el-row>
+						<el-row>
+							<el-col :span="12">
+								<el-form-item label="璁惧鐘舵��" prop="deviceStatus" required>
+									<el-select v-model="ruleForm.deviceStatus" placeholder="璇烽�夋嫨璁惧鐘舵��">
+										<el-option label="杩愯" style="color: #66c03b" value="1"></el-option>
+										<el-option label="鎶ュ簾" style="color: #ac9299" value="2"></el-option>
+										<el-option label="妫�淇�" style="color: #52d6c0" value="3"></el-option>
+										<el-option label="鏁呴殰" style="color: #f36b6c" value="4"></el-option>
+										<el-option label="绌洪棽" style="color: #fcb642" value="5"></el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+							<el-col :span="12">
+								<el-form-item label="鍘傚" prop="factory" required>
+									<el-input style="width: 206px" placeholder="璇疯緭鍏ュ巶瀹�" clearable v-model="ruleForm.factory"></el-input>
+								</el-form-item>
+							</el-col>
+						</el-row>
+					</el-form>
+					<span slot="footer" class="dialog-footer">
+						<el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+						<el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+					</span>
+				</el-dialog>
+			</el-col>
+		</el-row>
+		<el-row class="left_row">
+			<div :style="
+          `width: ${isCollapse ? 300 : 0}px;transition: 1s;opacity: ${
+            isCollapse ? 1 : 0
+          };`
+        " class="class_sidebar">
+				<el-radio-group class="ai-tab-change" style="width: 270px; margin-top: 5px" v-model="equipment"
+					@input="RadioChange">
+					<el-radio-button label="1">鐢熶骇璁惧</el-radio-button>
+					<el-radio-button label="2">妫�楠岃澶�</el-radio-button>
+				</el-radio-group>
+				<el-tree :data="towTree" ref="tree" :props="{ children: 'children', label: 'father' }" node-key="father"
+					default-expand-all highlight-current style="margin-top: 20px;" @node-click="handleNodeClick">
+					<div class="custom-tree-node" slot-scope="{ node, data }">
+						<span><i :class="
+                  `node_i ${
+                    data.code != '[4]'
+                      ? 'el-icon-folder-opened'
+                      : 'el-icon-tickets'
+                  }`
+                "></i>
+							{{ data.father }}</span>
+					</div>
+				</el-tree>
+			</div>
+			<div class="table_div" :style="`width: calc(100vw - ${isCollapse ? '475' : '170'}px);`">
+				<div :title="isCollapse ? '鐐瑰嚮灞曞紑' : '鐐瑰嚮鏀惰捣'" class="box_bgd" @click="isC">
+					<div class="upper_triangle"></div>
+					<div class="corner">
+						<!-- 鐐瑰嚮灞曞紑鏀惰捣瀵艰埅鍜屽垏鎹㈠搴斿浘鏍� -->
+						<i :class="
+                !isCollapse ? 'el-icon-arrow-left' : 'el-icon-arrow-right'
+              "></i>
+					</div>
+					<div class="under_triangle"></div>
+				</div>
+				<div class="main_table_div">
+					<div class="table_top_div">
+						<el-input class="table_top_input" size="small" v-model="codeNameModel" prefix-icon="el-icon-search"
+							placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸" clearable>
+						</el-input>
+						<el-button size="mini" @click="reset"><span>閲� 缃�</span></el-button>
+						<el-button size="mini" type="primary" @click="selectSearch" style="background: #004EA2;"><span>鏌�
+								璇�</span></el-button>
+						<el-select @change="staueValueChange" v-model="staue_value" size="small" placeholder="璇烽�夋嫨璁惧鐘舵��"
+							class="table_top">
+							<el-option label="杩愯" style="color: #66c03b" value="1"></el-option>
+							<el-option label="鎶ュ簾" style="color: #ac9299" value="2"></el-option>
+							<el-option label="妫�淇�" style="color: #52d6c0" value="3"></el-option>
+							<el-option label="鏁呴殰" style="color: #f36b6c" value="4"></el-option>
+							<el-option label="绌洪棽" style="color: #fcb642" value="5"></el-option>
+						</el-select>
+					</div>
+					<el-table :data="tableData" border height="calc(100vh - 220px)" style="padding: 10px;">
+						<el-table-column prop="date" label="搴忓彿" width="60">
+							<template v-slot="scope">
+								{{ scope.$index + 1 }}
+							</template>
+						</el-table-column>
+						<el-table-column prop="code" label="浠櫒璁惧缂栧彿" width="125">
+						</el-table-column>
+						<el-table-column prop="name" label="浠櫒璁惧鍚嶇О" width="125">
+						</el-table-column>
+						<el-table-column prop="userName" label="淇濈浜�"> </el-table-column>
+						<el-table-column prop="DATE_FORMAT(end_measure, '%Y-%m-%d')" label="璁¢噺鎴嚦鏈夋晥鏈�" width="147">
+						</el-table-column>
+						<el-table-column prop="device_status" label="浣跨敤鐘舵��">
+							<template slot-scope="scope">
+								<el-tag v-if="scope.row.device_status == 1" disable-transitions type="success">杩愯</el-tag>
+								<el-tag v-else-if="scope.row.device_status == 2" disable-transitions type="info">鎶ュ簾</el-tag>
+								<el-tag v-else-if="scope.row.device_status == 3" style="color: #52d6c0" disable-transitions
+									type="info">妫�淇�</el-tag>
+								<el-tag v-else-if="scope.row.device_status == 4" disable-transitions type="danger">鏁呴殰</el-tag>
+								<el-tag v-else-if="scope.row.device_status == 5" style="color: #fcb642" disable-transitions
+									type="info">绌洪棽</el-tag>
+							</template>
+						</el-table-column>
+						<el-table-column prop="factory" label="鍘傚" :show-overflow-tooltip="true">
+						</el-table-column>
+						<el-table-column prop="name" label="鎿嶄綔">
+							<template v-slot="scope">
+								<el-button @click="handleClick(scope.row)" type="text" size="small">鍒犻櫎</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+				</div>
+			</div>
+		</el-row>
+	</div>
 </template>
 
 <script>
-export default {
-  name: "LaboratoryManagement",
-  data() {
-    return {
-      dialogVisible: false,
-      isCollapse: true, //榛樿涓哄睍寮�
-      radio1: 'true',
-      tableData: [],
-      inspectionList: [], //妫�楠岄」鐩笅鎷夋鍒楄〃
-      // BOM鏍戞暟鎹粨鏋�
-      list: [],
-      ruleForm: {
-        code: '',
-        deviceStatus: '',
-        endMeasure: '',
-        factory: '',
-        keeper: '',
-        name: '',
-        rawInsProductId: '',
-        type: ''
-      },
-      rules: {
-        name: [
-          { required: true, message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�', trigger: 'blur' },
-          { min: 3, max: 5, message: '闀垮害鍦� 3 鍒� 5 涓瓧绗�', trigger: 'blur' }
-        ],
-        region: [
-          { required: true, message: '璇烽�夋嫨娲诲姩鍖哄煙', trigger: 'change' }
-        ],
-        date1: [
-          { type: 'date', required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }
-        ],
-        date2: [
-          { type: 'date', required: true, message: '璇烽�夋嫨鏃堕棿', trigger: 'change' }
-        ],
-        type: [
-          { type: 'array', required: true, message: '璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川', trigger: 'change' }
-        ],
-        resource: [
-          { required: true, message: '璇烽�夋嫨娲诲姩璧勬簮', trigger: 'change' }
-        ],
-        desc: [
-          { required: true, message: '璇峰~鍐欐椿鍔ㄥ舰寮�', trigger: 'blur' }
-        ]
-      }
-    }
-  },
-  methods: {
-    // 鍔ㄦ�佹帶鍒跺睍寮�涓庢敹璧峰拰鍒囨崲瀵瑰簲鍥炬爣
-    isC() {
-      this.isCollapse = !this.isCollapse;
-    },
-    submitForm(formName) {
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          alert('submit!');
-        } else {
-          console.log('error submit!!');
-          return false;
-        }
-      });
-    },
-    resetForm(formName) {
-      this.$refs[formName].resetFields();
-    },
-    handleClose(done) {
-      this.$confirm('纭鍏抽棴锛�')
-        .then(_ => {
-          done();
-        })
-        .catch(_ => {});
-    },
-    testItem() {
-      this.dialogVisible = true
-      this.$axios.get(this.$api.url.addDeviceInspectDownBox).then(res => {
-        this.inspectionList = res.data
-      })
-    }
-  },
-  mounted() {
-  },
-  watch: {
-    'ruleForm.rawInsProductId': { //鐩戝惉banner
-      handler: function (newVal, oldVal) {
-        if (newVal != null && newVal !== ''){
-          console.log("1222222222222")
-        }
-      }
-    }
-  }
-}
+	export default {
+		name: "LaboratoryManagement",
+		data() {
+			return {
+				value: "",
+				dialogVisible: false,
+				checkTreeNode: {},
+				isCollapse: true, //榛樿涓哄睍寮�
+				radio1: "true", // 鍒嗙被鍒囨崲
+				tableData: [], // 涓婚〉琛ㄦ牸鏁版嵁
+				inspectionList: [], //妫�楠岄」鐩笅鎷夋鍒楄〃
+				showCodeNameModel: {}, // 鏂板浠櫒灞曠ず绂佹妗�
+				keeperList: [], // 鏂板璁惧淇濈浜轰笅鎷夋
+				parentClassificationList: [], // 鏂板璁惧鐖剁骇鍒嗙被涓嬫媺妗�
+				search_class: "", // 鍒嗙被鎼滅储妗嗗唴瀹�
+				codeNameModel: "", // 缂栫爜鍚嶇О鍨嬪彿妯$硦鏌ヨ
+				staue_value: "", // 涓婚〉琛ㄦ牸涓婃柟鐨勭姸鎬侀�夋嫨
+				// BOM鏍戞暟鎹粨鏋�
+				towTree: [],
+				equipment: '1',
+				equaip: [],
+				ruleForm: {
+					// 鏂板浠櫒琛ㄥ崟
+					code: "",
+					father: "",
+					deviceStatus: "",
+					endMeasure: "",
+					factory: "",
+					keeper: "",
+					name: "",
+					rawInsProductId: "",
+					type: "",
+					equr: '',
+				},
+				delete: {},
+				equip: 1,
+				rules: {
+					name: [{
+							required: true,
+							message: "璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�",
+							trigger: "blur"
+						},
+						{
+							min: 2,
+							max: 25,
+							message: "闀垮害鍦� 2 鍒� 25 涓瓧绗�",
+							trigger: "blur"
+						}
+					],
+					keeper: [{
+						required: true,
+						message: "璇烽�夋嫨淇濈浜�",
+						trigger: "change"
+					}],
+					endMeasure: [{
+						type: "date",
+						required: true,
+						message: "璇烽�夋嫨璁¢噺鎴嚦鏈夋晥鏈�",
+						trigger: "change"
+					}],
+					deviceStatus: [{
+						required: true,
+						message: "璇烽�夋嫨璁惧鐘舵��",
+						trigger: "change"
+					}],
+					factory: [{
+							required: true,
+							message: "璇疯緭鍏ュ巶瀹�",
+							trigger: "blur"
+						},
+						{
+							min: 2,
+							max: 25,
+							message: "闀垮害鍦� 2 鍒� 50 涓瓧绗�",
+							trigger: "blur"
+						}
+					],
+					rawInsProductId: [{
+						required: true,
+						message: "璇烽�夋嫨妫�娴嬮」鐩�",
+						trigger: "change"
+					}],
+					type: [{
+						required: true,
+						message: "璇烽�夋嫨璁惧鐢ㄩ��",
+						trigger: "change"
+					}]
+				},
+				pickerOptions: {
+					//绂佺敤褰撳墠鏃ユ湡涔嬪墠鐨勬棩鏈�
+					disabledDate(time) {
+						//Date.now()鏄痡avascript涓殑鍐呯疆鍑芥暟锛屽畠杩斿洖鑷�1970骞�1鏈�1鏃�00:00:00 UTC浠ユ潵缁忚繃鐨勬绉掓暟銆�
+						return time.getTime() < Date.now() - 8.64e7;
+					}
+				},
+			};
+		},
+		mounted() {
+			this.twoTreeApi();
+		},
+		methods: {
+			handleNodeClick(val) {
+				this.checkTreeNode = val
+				this.selectDevice()
+			},
+			staueValueChange() {
+				this.selectDevice()
+			},
+			// 鍔ㄦ�佹帶鍒跺睍寮�涓庢敹璧峰拰鍒囨崲瀵瑰簲鍥炬爣
+			isC() {
+				this.isCollapse = !this.isCollapse;
+			},
+			productSelect(e) {
+				let value = e.target.value; // 杈撳叆妗嗗��
+				if (value) {
+					// 浣犺緭鍏ユ墠鏈夎繖涓�� 涓嶄负绌猴紝濡傛灉浣犱笅鎷夋閫夋嫨鐨勮瘽 杩欎釜鍊间负绌�
+					this.value = value;
+				}
+			},
+			submitForm() {
+				this.addApi()
+				this.dialogVisible = false;
+			},
+			handleClose(done) {
+				this.$confirm("纭鍏抽棴锛�")
+					.then(_ => {
+						done();
+					})
+					.catch(_ => {});
+			},
+			testItem() {
+				this.dialogVisible = true;
+				this.$axios.get(this.$api.url.addDeviceKeeper).then(res => {
+					this.keeperList = res.data;
+				});
+			},
+			selectinstall(val) {
+				this.equip = val
+				this.listgroup()
+			},
+			listgroup() {
+				this.$axios.get(this.$api.url.listgroup, {
+						params: {
+							type: this.equip
+						}
+					})
+					.then(res => {
+						this.equaip = res.data
+					})
+			},
+			RadioChange(val) {
+				this.equip = val
+				this.twoTreeApi()
+			},
+			twoTreeApi() {
+				this.$axios.get(this.$api.url.towTree, {
+					params: {
+						type: this.equip,
+					}
+				}).then(res => {
+					this.towTree = res.data;
+					this.$nextTick(() => {
+						this.$refs.tree.setCurrentKey(this.towTree[0].father) // 榛樿閫変腑鑺傜偣绗竴涓�
+					})
+					let one = this.towTree[0]
+					let name = one.father
+					this.checkTreeNode.father = name
+					this.selectDeviceStart(name)
+				});
+			},
+			selectDeviceStart(name, ) { //鍙宠竟鏁版嵁
+				this.$axios.get(this.$api.url.selectDevice, {
+					params: {
+						father: name,
+						type: this.equip,
+						deviceStatus: this.staue_value,
+						message: this.codeNameModel,
+					}
+				}).then(res => {
+					this.tableData = res.data
+				}, {
+					headers: {
+						"Content-Type": "application/json"
+					}
+				})
+			},
+			selectDevice() { //鍙宠竟鏁版嵁
+				this.$axios.get(this.$api.url.selectDevice, {
+					params: {
+						father: this.checkTreeNode.father,
+						type: this.equip,
+						deviceStatus: this.staue_value,
+						message: this.codeNameModel,
+					}
+				}).then(res => {
+					this.tableData = res.data
+				}, {
+					headers: {
+						"Content-Type": "application/json"
+					}
+				})
+			},
+			addApi() {
+				this.$axios.post(this.$api.url.addApi, {
+					code: this.ruleForm.code,
+					deviceStatus: this.ruleForm.deviceStatus,
+					endMeasure: this.ruleForm.endMeasure,
+					factory: this.ruleForm.factory,
+					father: this.ruleForm.equr,
+					keeper: this.ruleForm.keeper,
+					name: this.ruleForm.name,
+					type: this.ruleForm.type,
+				}, {
+					headers: {
+						"Content-Type": "application/json"
+					}
+				}).then(res => {
+					this.twoTreeApi();
+					this.$message.success('鏂板鎴愬姛')
+					this.$refs.ruleForm.resetFields()
+				})
+			},
+			reset() {
+				this.staue_value = ""
+				this.codeNameModel = ""
+				this.selectDevice()
+			},
+			handlerDeptList() {
+				this.towTree = [];
+				let val = 1;
+				if (this.radio1 === "false") {
+					val = 2;
+				}
+				this.$axios
+					.get(this.$api.url.towTree, {
+						params: {
+							type: val,
+							search_class: this.search_class
+						}
+					})
+					.then(res => {
+						this.towTree = res.data;
+					});
+			},
+			selectSearch() {
+				this.selectDevice()
+			},
+			delDeviceById() {
+				this.$axios.post(this.$api.url.delDeviceById, {
+					id: this.delete.id
+				}).then(res => {
+					this.$parent.removeAllTab()
+				});
+			},
+			handleClick(row) {
+				this.delete = row
+				this.delDeviceById()
+				this.selectDevice()
+			},
+			remove(node, data) {
+				this.$confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ澶�, 鏄惁缁х画?", "鎻愮ず", {
+					confirmButtonText: "纭畾",
+					cancelButtonText: "鍙栨秷",
+					type: "warning"
+				}).then(() => {
+					let val = 1;
+					if (this.radio1 === "false") {
+						val = 2;
+					}
+					if (data.id === undefined) {
+						this.$axios
+							.delete(this.$api.url.deleteIdorFather, {
+								params: {
+									deviceFather: data.name,
+									type: val
+								}
+							})
+							.then(res => {
+								if (res.code === 200) {
+									this.$message({
+										message: res.message,
+										type: "success"
+									});
+									this.handlerDeptList();
+									this.selectSearch();
+								} else {
+									this.$message({
+										message: res.message,
+										type: "warning"
+									});
+								}
+							});
+					} else if (data.id !== undefined) {
+						this.$axios
+							.delete(this.$api.url.deleteIdorFather, {
+								params: {
+									id: data.id
+								}
+							})
+							.then(res => {
+								if (res.code === 200) {
+									this.$message({
+										message: res.message,
+										type: "success"
+									});
+									this.handlerDeptList();
+									this.selectSearch();
+								} else {
+									this.$message({
+										message: res.message,
+										type: "warning"
+									});
+								}
+							});
+					}
+				});
+			},
+		},
+		watch: {
+			"ruleForm.rawInsProductId": {
+				//鐩戝惉ruleForm.rawInsProductId
+				handler: function(newVal, oldVal) {
+					if (newVal != null && newVal !== "") {
+						this.$axios
+							.get(this.$api.url.selectDeviceInspectMessage, {
+								params: {
+									inspectId: newVal
+								}
+							})
+							.then(res => {
+								this.showCodeNameModel = res.data;
+							});
+					}
+				}
+			},
+			radio1: {
+				handler: function(newVal, oldVal) {
+					this.towTree = [];
+					this.tableData = [];
+					if (newVal === "true") {
+						this.twoTreeApi();
+						this.tableDataApi();
+					} else if (newVal === "false") {
+						this.$axios
+							.get(this.$api.url.towTree, {
+								params: {
+									type: 2
+								}
+							})
+							.then(res => {
+								let list = res.data;
+								list.forEach(i => {
+									if (i.name === undefined) {
+										i.name = i.children[0].name;
+										i.id = i.children[0].id;
+										i.children = undefined;
+									}
+								});
+								this.towTree = res.data;
+							});
+						this.$axios
+							.get(this.$api.url.tableDeviceList, {
+								params: {
+									type: 2
+								}
+							})
+							.then(res => {
+								this.tableData = res.data;
+							});
+					}
+				}
+			}
+		}
+	};
 </script>
 
 <style scoped>
-.top_left_name{
-  padding-left: 20px;
-  line-height: 32px;
-}
-.left_row{
-  height: calc(100vh - 165px);
-  margin-top: 9px;
-}
-.frame_input{
-  width: 90%;
-  margin: 10px 0;
-  transition: 1.5s;
-}
-.table_top_div{
-  margin-left: 20px;
-  padding-top: 15px;
-  padding-bottom: 15px
-}
-.el-dialog__footer {
-  padding: 0px 20px 20px;
-  text-align: right;
-  -webkit-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.table_top{
-  float: right;
-  width: 224px;
-  margin-right: 52px;
-}
-.main_table_div{
-  background-color: #fbfbfd;
-  height: 100%;
-}
-.dialog-footer{
-  display: block;
-  text-align:center
-}
-.table_div{
-  padding-left: 5px;
-  transition: 1s;
-  float: left;
-  position: relative
-}
-.table_top_input{
-  width: 20%;
-  margin-right: 24px;
-}
-.custom-tree-node {
-  flex: 1;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  font-size: 14px;
-  padding-right: 8px;
-}
-.el-icon-delete {
-  display: none;
-  color: #004EA2;
-}
-.custom-tree-node:hover .el-icon-delete {
-  display: inline;
-}
-.node_i {
-  color: orange;
-}
-::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
-     background: #f2f2f2;
-     border: 0 !important;
-     color: #696969;
-     line-height: 14px;
-     outline: none;
-     box-shadow: none;
-}
-.class_sidebar {
-  overflow: hidden;
-  height: calc(100vh - 175px);
-  text-align: center;
-  padding: 8px;
-  float: left;
-  background-color: #fdfdfe;
-}
-.box_bgd {
-  width: 12px;
-  height: 60px;
-  position: absolute;
-  float: left;
-  top: 40%;
-  left: -10px;
-}
-.corner{
-  height: 60px;
-  background: #ebebec;
-}
-.upper_triangle{
-  width: 0px;                 /*  瀹介珮璁剧疆涓�0锛屽緢閲嶈锛屽惁鍒欒揪涓嶅埌鏁堟灉 */
-  height: 0px;
-  border: 6px solid #ebebec;
-  border-left-color: transparent;
-  border-top-color: transparent;
-}
-.under_triangle{
-  width: 0px;                 /*  瀹介珮璁剧疆涓�0锛屽緢閲嶈锛屽惁鍒欒揪涓嶅埌鏁堟灉 */
-  height: 0px;
-  border: 6px solid #ebebec;
-  border-left-color: transparent;
-  border-bottom-color: transparent;
-}
-.ai-tab-change {
-  .el-radio-button__inner {
-    border: 1px solid #ececed;
-    line-height: 14px;
-  }
-  .el-radio-button__orig-radio:checked + .el-radio-button__inner {
-    background: #fdfdfe;
-    border: 1px solid #004da2;
-    color: #004da2;
-    line-height: 14px;
-  }
-}
+	.el-tag.el-tag {
+		border-color: transparent;
+		background-color: transparent;
+	}
+
+	.el-tag.el-tag:hover {
+		border-color: transparent;
+		background-color: transparent;
+	}
+
+	.el-form-item>>>.el-form-item__error {
+		color: #f56c6c;
+		font-size: 12px;
+		line-height: 1;
+		padding-top: 6px;
+		position: absolute;
+		top: 100%;
+		left: 18px;
+	}
+
+	/deep/ .el-icon-arrow-left {
+		display: flex;
+		line-height: 60px !important;
+		justify-content: center;
+	}
+
+	/deep/ .el-icon-arrow-right {
+		display: flex;
+		line-height: 60px !important;
+		justify-content: center;
+	}
+
+	.top_left_name {
+		padding-left: 20px;
+		line-height: 32px;
+	}
+
+	.left_row {
+		height: calc(100vh - 165px);
+		margin-top: 9px;
+	}
+
+	.frame_input {
+		width: 90%;
+		margin: 10px 0;
+		transition: 1.5s;
+	}
+
+	.table_top_div {
+		margin-left: 20px;
+		padding-top: 15px;
+		padding-bottom: 15px;
+	}
+
+	.el-dialog__footer {
+		padding: 0px 20px 20px;
+		text-align: right;
+		-webkit-box-sizing: border-box;
+		box-sizing: border-box;
+	}
+
+	.table_top {
+		float: right;
+		width: 224px;
+		margin-right: 52px;
+	}
+
+	.main_table_div {
+		background-color: #fbfbfd;
+		height: 100%;
+	}
+
+	.dialog-footer {
+		display: block;
+		text-align: center;
+	}
+
+	.table_div {
+		padding-left: 5px;
+		transition: 1s;
+		float: left;
+		position: relative;
+	}
+
+	.table_top_input {
+		width: 20%;
+		margin-right: 24px;
+	}
+
+	.custom-tree-node {
+		flex: 1;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		font-size: 14px;
+		padding-right: 8px;
+		width: 250px;
+	}
+
+	.el-tree {
+		width: 280px;
+		margin: 0 10px;
+	}
+
+	.custom-tree-node span {
+		font-size: 14px !important;
+	}
+
+	.el-icon-delete {
+		display: none;
+		color: #004ea2;
+	}
+
+	.custom-tree-node:hover .el-icon-delete {
+		display: inline;
+	}
+
+	.node_i {
+		color: orange;
+	}
+
+	::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
+		background: #f2f2f2;
+		border: 0 !important;
+		color: #696969;
+		line-height: 14px;
+		outline: none;
+		box-shadow: none;
+	}
+
+	.class_sidebar {
+		overflow: hidden;
+		height: calc(100vh - 175px);
+		text-align: center;
+		padding: 8px;
+		float: left;
+		background-color: #fdfdfe;
+	}
+
+	.box_bgd {
+		width: 12px;
+		height: 60px;
+		position: absolute;
+		float: left;
+		top: 40%;
+		left: -10px;
+	}
+
+	.corner {
+		height: 60px;
+		background: #ebebec;
+	}
+
+	.upper_triangle {
+		width: 0px;
+		/*  瀹介珮璁剧疆涓�0锛屽緢閲嶈锛屽惁鍒欒揪涓嶅埌鏁堟灉 */
+		height: 0px;
+		border: 6px solid #ebebec;
+		border-left-color: transparent;
+		border-top-color: transparent;
+	}
+
+	.under_triangle {
+		width: 0px;
+		/*  瀹介珮璁剧疆涓�0锛屽緢閲嶈锛屽惁鍒欒揪涓嶅埌鏁堟灉 */
+		height: 0px;
+		border: 6px solid #ebebec;
+		border-left-color: transparent;
+		border-bottom-color: transparent;
+	}
+
+	.el-radio-button__inner {
+		border: 1px solid #ececed;
+		line-height: 14px;
+	}
+
+	.el-radio-button__orig-radio:checked+.el-radio-button__inner {
+		background: #fdfdfe;
+		border: 1px solid #004da2;
+		color: #004da2;
+		line-height: 14px;
+	}
 </style>
+<style>
+	.laboratoryMangement .title * {
+		font-size: 14px;
+	}
+
+	.laboratoryMangement .table_top_div * {
+		font-size: 14px;
+	}
+
+	.laboratoryMangement .title .el-button {
+		height: 32px;
+		border: 1px solid rgba(190, 190, 190, 0.44);
+		box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+		padding: 0 12px;
+	}
+
+	.laboratoryMangement .table_top_div .el-button {
+		height: 32px;
+		border: 1px solid rgba(190, 190, 190, 0.44);
+		box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+		padding: 0 12px;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3