From f38a516e08b62c5e7350e1146f2c8478be5907d8 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期四, 10 八月 2023 17:53:11 +0800
Subject: [PATCH] Crunchy-08/10下班
---
src/components/view/laboratoryManagement.vue | 389 +++++++++++++++++++++++++++++++++++++++---------------
src/App.vue | 20 ++
src/assets/api/controller.js | 8 +
3 files changed, 301 insertions(+), 116 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index e34819f..67df6d5 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -185,30 +185,40 @@
.el-dialog__header .el-dialog__title{
font-size: 16px !important;
}
-
+
.el-dialog__footer .el-button *{
font-size: 14px !important;
}
-
+
.el-dialog__footer .el-button{
height: 36px;
border: 1px solid rgba(190, 190, 190, 0.44);
box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
padding: 0 14px;
}
-
+
.el-button--primary{
background: #004EA2;
}
-
+
.el-dialog__body{
padding: 15px 20px;
}
-
+
.el-input.is-disabled input{
color: #666 !important;
background-color: rgba(0, 0, 0, 0.05) !important;
}
/* 鍏ㄥ眬杈撳叆妗嗘牱寮� */
/* 鍏ㄥ眬鎸夐挳鏍峰紡 */
+ .el-icon-arrow-left{
+ display: flex;
+ line-height: 60px !important;
+ justify-content: center;
+ }
+ .el-icon-arrow-right{
+ display: flex;
+ line-height: 60px !important;
+ justify-content: center;
+ }
</style>
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index ae95499..434111e 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -27,10 +27,16 @@
projectListByfinishId: "/inspection-item/list_user", //鏍规嵁id鏌ヨ鎵�鏈夐」鐩�
}
+// QMS瀹為獙瀹ょ鐞�
+const laboratory = {
+ addDeviceInspectDownBox: "/device/listInspect", //鏂板浠櫒璁惧锛氭楠岄」鐩笅鎷夋
+}
+
const url = {
enter: "user/enter", //鐧诲綍
...standard,
...raw,
+ ...laboratory,
...finishedIns,
selectSaleList: "sale/selectSaleList", //鏌ヨ閿�鍞崟鍒楄〃
selectSaleDatilById: "sale/selectSaleDatilById", //鏍规嵁閿�鍞崟id鏌ョ湅璇︽儏,
@@ -43,4 +49,4 @@
Vue.prototype.$api = {
url
}
-}
\ No newline at end of file
+}
diff --git a/src/components/view/laboratoryManagement.vue b/src/components/view/laboratoryManagement.vue
index 85ddfc8..80446a7 100644
--- a/src/components/view/laboratoryManagement.vue
+++ b/src/components/view/laboratoryManagement.vue
@@ -1,12 +1,99 @@
<template>
<div>
<el-row>
- <el-col :span="12" style="padding-left: 20px; line-height: 32px;">瀹為獙瀹ょ鐞�</el-col>
+ <el-col :span="12" class="top_left_name">瀹為獙瀹ょ鐞�</el-col>
<el-col :span="12" style="text-align: right;">
- <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus" style="background: #004EA2; ">鏂板浠櫒璁惧</el-button>
+ <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 style="height: calc(100vh - 165px); margin-top: 9px;">
+ <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">
@@ -16,30 +103,54 @@
<div class="el_radio_button_div">妫�娴嬭澶�</div>
</el-radio-button>
</el-radio-group>
- <el-input v-model="search" :style="`width: 90%; margin: 10px 0;opacity: ${isCollapse?1:0};transition: 1.5s;`" 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-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 :style="`width: calc(100vw - ${isCollapse?'475':'170'}px); padding-left: 5px;transition: 1s;float: left;`">
+ <div class="table_div" :style="`width: calc(100vw - ${isCollapse?'475':'170'}px);`">
<div :title="isCollapse ? '鐐瑰嚮灞曞紑' : '鐐瑰嚮鏀惰捣'" class="box_bgd" @click="isC">
- <!-- 鐐瑰嚮灞曞紑鏀惰捣瀵艰埅鍜屽垏鎹㈠搴斿浘鏍� -->
- <i :class="!isCollapse ? 'el-icon-arrow-left' : 'el-icon-arrow-right'"></i>
+ <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 style="background-color: #fbfbfd; height: 100%;">
- <div style="margin-left: 20px; padding-top: 15px; padding-bottom: 15px">
- <el-input v-model="searchName" size="small" prefix-icon="el-icon-search" placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸" style="width: 20%;margin-right: 24px;" clearable></el-input>
+ <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="璇烽�夋嫨" style="float: right; width: 224px;margin-right: 52px;">
+ <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>
@@ -48,7 +159,7 @@
:data="tableData"
border
height="calc(100vh - 220px)"
- style="width: 100%; padding: 10px; position: absolute">
+ style="padding: 10px;">
<el-table-column
prop="date"
label="鏃ユ湡"
@@ -75,90 +186,47 @@
name: "LaboratoryManagement",
data() {
return {
+ dialogVisible: false,
isCollapse: true, //榛樿涓哄睍寮�
radio1: 'true',
- tableData: [{
- date: '2016-05-02',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�'
- }, {
- date: '2016-05-04',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�'
- }, {
- date: '2016-05-01',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }, {
- date: '2016-05-03',
- name: '鐜嬪皬铏�',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
- }],
+ tableData: [],
+ inspectionList: [], //妫�楠岄」鐩笅鎷夋鍒楄〃
// BOM鏍戞暟鎹粨鏋�
- list: [{
- label: '涓�绾� 1',
- children: [{
- label: '浜岀骇 1-1'
- }]
- }, {
- label: '涓�绾� 2',
- children: [{
- label: '浜岀骇 2-1'
- }, {
- label: '浜岀骇 2-2'
- }]
- }, {
- label: '涓�绾� 3',
- children: [{
- label: '浜岀骇 3-1'
- }, {
- label: '浜岀骇 3-2'
- }]
- }],
+ 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: {
@@ -166,11 +234,95 @@
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")
+ }
+ }
+ }
+ }
}
</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;
@@ -199,20 +351,37 @@
}
.class_sidebar {
overflow: hidden;
- height: calc(100vh - 159px);
+ height: calc(100vh - 175px);
text-align: center;
padding: 8px;
float: left;
background-color: #fdfdfe;
}
.box_bgd {
- width: 15px;
- height: 40px;
- position: relative;
+ width: 12px;
+ height: 60px;
+ position: absolute;
float: left;
- top: 50%!important;
- left: -20px;
- background: blue;
+ 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 {
--
Gitblit v1.9.3