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 | 1723 +++++++++++++++++++++++++---------------------------------- 1 files changed, 729 insertions(+), 994 deletions(-) diff --git a/src/components/view/laboratoryManagement.vue b/src/components/view/laboratoryManagement.vue index f00b04d..3c94c14 100644 --- a/src/components/view/laboratoryManagement.vue +++ b/src/components/view/laboratoryManagement.vue @@ -1,1021 +1,756 @@ <template> - <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" - 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-row> - <el-col :span="12"> - <el-form-item label="瑙勬牸鍨嬪彿"> - <el-input - placeholder="瑙勬牸鍨嬪彿" - :disabled="true" - style="width: 206px" - v-model="showCodeNameModel.specifications" - > - </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=" + <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-input - class="frame_input" - v-model="search_class" - placeholder="璇疯緭鍏ュ垎绫诲悕绉�" - size="small" - > - <i - slot="suffix" - class="el-icon-search" - style="font-size: 23px; padding: 5px 0;cursor:pointer;" - @click="handlerDeptList" - ></i> - </el-input> --> - <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=" + " 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 - > - <!-- <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=" + "></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="inspectProject" label="妫�娴嬮」鐩�"> - </el-table-column> - <el-table-column prop="testSample" label="妫�楠屾牱鍝�"> - </el-table-column> - <el-table-column prop="user_name" label="妫�娴嬩汉"> </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> + "></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 { - - 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: "", - // treedata:{ - // father:'璁惧缁�1', - // }, - 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(); - // 鍒濆鍖栬皟鐢ㄨ〃鏍兼暟鎹� - // this.tableDataApi(); - // this.selectDevice() - }, - methods: { - handleNodeClick(val) { - this.checkTreeNode = val - console.log(this.checkTreeNode); - this.selectDevice() - }, - - staueValueChange() { - this.selectDevice() - // this.tableData = []; - // let val = 1; - // if (this.radio1 === "false") { - // val = 2; - // } - // this.$axios - // .get(this.$api.url.tableDeviceList, { - // params: { type: val, deviceStatue: this.staue_value } - // }) - // .then(res => { - // this.tableData = res.data; - // }); - }, - // 鍔ㄦ�佹帶鍒跺睍寮�涓庢敹璧峰拰鍒囨崲瀵瑰簲鍥炬爣 - isC() { - this.isCollapse = !this.isCollapse; - }, - productSelect(e) { - let value = e.target.value; // 杈撳叆妗嗗�� - if (value) { - // 浣犺緭鍏ユ墠鏈夎繖涓�� 涓嶄负绌猴紝濡傛灉浣犱笅鎷夋閫夋嫨鐨勮瘽 杩欎釜鍊间负绌� - this.value = value; - } - }, - submitForm() { - // this.$refs.ruleForm.validate(valid => { - // if (valid) { - // this.ruleForm.father = this.value; - // this.$axios - // .post(this.$api.url.addDeviceInstrument, this.ruleForm, { - // headers: { - // "Content-Type": "application/json" - // } - // }) - // .then(res => { - // this.keeperList = res.data; - // // 鎴愬姛鍏抽棴鏂板寮瑰嚭妗� - // this.dialogVisible = false; - // }); - // } else { - // console.log("error submit!!"); - // return false; - // } - // }); - 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 - console.log(this.equip); - }) - }, - RadioChange(val){ - console.log(val); - this.equip = val - this.twoTreeApi() - }, - twoTreeApi() { - this.$axios.get(this.$api.url.towTree,{ - params:{ - type:this.equip, - } - }).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.$nextTick(() => { - this.$refs.tree.setCurrentKey(this.towTree[0].father) // 榛樿閫変腑鑺傜偣绗竴涓� - }) - console.log(this.towTree); - let one=this.towTree[0] - console.log(one); - let name =one.father - console.log(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 =>{ - console.log(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 =>{ - console.log(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.$message.success('鏂板鎴愬姛') - this.ruleForm = {} - this.selectDevice() - }) - }, - // tableDataApi() { - // this.$axios.get(this.$api.url.tableDeviceList).then(res => { - // this.tableData = res.data; - // }); - // }, - reset() { - // this.tableDataApi(); - // this.radio1 = "true"; - // this.codeNameModel = ""; - // this.staue_value = ""; - 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() - // this.tableData = []; - // if (this.radio1 === "false") { - // this.$axios - // .get(this.$api.url.tableDeviceList, { - // params: { type: 1, codeNameModel: this.codeNameModel } - // }) - // .then(res => { - // this.tableData = res.data; - // }); - // } else if (this.radio1 === "true") { - // this.$axios - // .get(this.$api.url.tableDeviceList, { - // params: { type: 2, codeNameModel: this.codeNameModel } - // }) - // .then(res => { - // this.tableData = res.data; - // }); - // } - }, - delDeviceById() { - this.$axios.post(this.$api.url.delDeviceById,{ - id:this.delete.id - }).then(res=>{ - this.$parent.removeAllTab() - }); - }, - handleClick(row) { - console.log(row); - this.delete = row - this.delDeviceById() - this.selectDevice() - // this.$confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ澶�, 鏄惁缁х画?", "鎻愮ず", { - // confirmButtonText: "纭畾", - // cancelButtonText: "鍙栨秷", - // type: "warning" - // }).then(() => { - // this.$axios - // .delete(this.$api.url.deleteDevice, { params: { deviceId: row.id } }) - // .then(res => { - // this.$message({ - // message: res.message, - // type: "success" - // }); - // datas.splice(index, 1); - // }) - // .catch(err => { - // this.$message({ - // message: err.message, - // type: "warning" - // }); - // }); - // }); - }, - remove(node, data) { - this.$confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ澶�, 鏄惁缁х画?", "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - console.log(`output->data`, data); - let val = 1; - if (this.radio1 === "false") { - val = 2; - } - if (data.id === undefined) { - console.log(`output->鎵ц鍔沗, "+++++++++++++++"); - 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) { - console.log(`output->鎵ц鍔沗, "----------------"); - 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; - }); - } - } - }, - // dialogVisible: { - // handler: function(newVal, oldVal) { - // if (newVal) { - // // 鎴愬姛娓呯┖杈撳叆鍐呭 - // this.ruleForm = {}; - // this.value = ""; - // this.showCodeNameModel = {}; - // this.$refs.ruleForm.resetFields(); - // } - // } - // }, - 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; - }); - } - } - } - } -}; + 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> -.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; -} + .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 *{ + .laboratoryMangement .title * { font-size: 14px; } - - .laboratoryMangement .table_top_div *{ + + .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; + 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; + 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