From db2e3c739eef26e186a5342197162778789acbb8 Mon Sep 17 00:00:00 2001 From: 王震 <10952869+daywangzhen@user.noreply.gitee.com> Date: 星期四, 07 九月 2023 17:57:39 +0800 Subject: [PATCH] 设备维护,标准Bom --- src/components/view/standard.vue | 547 ++++++++++++++++----------- src/components/view/laboratoryManagement.vue | 306 +++++++------- src/main.js | 2 src/components/view/technical.vue | 308 ++++++--------- src/assets/api/controller.js | 10 5 files changed, 608 insertions(+), 565 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 7f75ef9..a4df82f 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -2,11 +2,17 @@ const standard = { // 鎶�鏈鐞�-鏍囧噯Bom selectTreeByMaterial: "material/selectTreeByMaterial", //鏌ヨ鐗╂枡鐨勬爲 + selectVersion:"/material/selectVersion",//鍙充晶鐗堟湰 selectProductByMaterial: "product/selectTreeByMaterial", //鏍规嵁鐗╂枡鏌ヨ椤圭洰琛ㄦ牸 selectTechnologyByMaterial: "technology/select", + selectAll:"/material/selectAll",//鍙充晶鏁版嵁 // 鎶�鏈鐞�-鎶�鏈枃浠� selectAllOrder: "/orders/selectAllOrder", //鏌ヨ鎵�鏈夎鍗曞垪琛� selectOrderById: "/orders/selectOrderById", //鏍规嵁璁㈠崟id鏌ヨ璁㈠崟璇︽儏 + + + //璁㈠崟BOM + delDevice:"/device/delDeviceById",//璁㈠崟Bom } // 鍘熸潗鏂欐楠� const raw = { @@ -34,6 +40,10 @@ // QMS瀹為獙瀹ょ鐞� const laboratory = { + delDeviceById:"/device/delDeviceById",//鍒犻櫎 + addApi:"/device/add",//鏂板 + listgroup:"/device/list_group", + selectDevice:"/device/selectDevice",//鍙宠竟灞曠ず addDeviceInspectDownBox: "/device/listInspect", // 鏂板浠櫒璁惧锛氭楠岄」鐩笅鎷夋 selectDeviceInspectMessage: "/device/inspectId", // 鏂板浠櫒璁惧锛氭牴鎹楠岄」鐩甀D鏌ヨ鏁版嵁 addDeviceKeeper: "/device/list_user",// 鏂板浠櫒璁惧锛氫繚绠′汉涓嬫媺妗� diff --git a/src/components/view/laboratoryManagement.vue b/src/components/view/laboratoryManagement.vue index 2f2ac7e..55d2727 100644 --- a/src/components/view/laboratoryManagement.vue +++ b/src/components/view/laboratoryManagement.vue @@ -49,19 +49,16 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="鐖剁骇鍒嗙被"> + <el-form-item label="璁惧缁�" prop="name"> <el-select - v-model="value" - @blur="productSelect" - filterable - allow-create - placeholder="璇烽�夋嫨鐖剁骇鍒嗙被" + v-model="ruleForm.equr" + placeholder="璇烽�夋嫨璁惧缁�" > <el-option - v-for="list in parentClassificationList" - :key="list.index" - :label="list.father" - :value="list.father" + v-for="list in equip" + :key="list" + :label="list" + :value="list" > </el-option> </el-select> @@ -153,38 +150,7 @@ </el-form-item> </el-col> </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="妫�娴嬮」鐩�" prop="rawInsProductId" required> - <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-col> - <el-col :span="12"> - <el-form-item label="妫�娴嬫牱鍝�" required> - <el-form-item> - <el-input - placeholder="妫�娴嬫牱鍝�" - :disabled="true" - style="width: 206px" - v-model="showCodeNameModel.name" - > - </el-input> - </el-form-item> - </el-form-item> - </el-col> - </el-row> - <el-row> + <!-- <el-row> <el-col :span="12"> <el-form-item label="瑙勬牸鍨嬪彿"> <el-input @@ -196,18 +162,8 @@ </el-input> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="妫�娴嬩汉"> - <el-input - placeholder="妫�娴嬩汉" - :disabled="true" - style="width: 206px" - v-model="showCodeNameModel.user_name" - > - </el-input> - </el-form-item> - </el-col> - </el-row> + + </el-row> --> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">鍙� 娑�</el-button> @@ -228,14 +184,11 @@ <el-radio-group class="ai-tab-change" style="width: 270px; margin-top: 5px" - v-model="radio1" + v-model="equipment" + @input="RadioChange" > - <el-radio-button size="small" label="true"> - <div>鐢熶骇璁惧</div> - </el-radio-button> - <el-radio-button size="small" label="false"> - <div>妫�娴嬭澶�</div> - </el-radio-button> + <el-radio-button label="1">鐢熶骇璁惧</el-radio-button> + <el-radio-button label="2">妫�楠岃澶�</el-radio-button> </el-radio-group> <el-input class="frame_input" @@ -269,7 +222,7 @@ }` " ></i> - {{ data.name }}</span + {{ data.father }}</span > <el-button type="text" size="mini" @click.stop="remove(node, data)"> <i class="el-icon-delete"></i> @@ -365,9 +318,9 @@ </el-table-column> <el-table-column prop="name" label="浠櫒璁惧鍚嶇О" width="125"> </el-table-column> - <el-table-column prop="keeper" label="淇濈浜�"> </el-table-column> + <el-table-column prop="userName" label="淇濈浜�"> </el-table-column> <el-table-column - prop="end_measure" + prop="DATE_FORMAT(end_measure, '%Y-%m-%d')" label="璁¢噺鎴嚦鏈夋晥鏈�" width="147" > @@ -414,15 +367,15 @@ :show-overflow-tooltip="true" > </el-table-column> - <el-table-column prop="inspectProject" label="妫�娴嬮」鐩�"> + <!-- <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="user_name" label="妫�娴嬩汉"> </el-table-column> --> <el-table-column prop="name" label="鎿嶄綔"> <template v-slot="scope"> <el-button - @click="handleClick(scope.$index, tableData, scope.row)" + @click="handleClick(scope.row)" type="text" size="small" >鍒犻櫎</el-button @@ -455,6 +408,8 @@ staue_value: "", // 涓婚〉琛ㄦ牸涓婃柟鐨勭姸鎬侀�夋嫨 // BOM鏍戞暟鎹粨鏋� towTree: [], + equipment: '', + equip:'', ruleForm: { // 鏂板浠櫒琛ㄥ崟 code: "", @@ -465,8 +420,14 @@ keeper: "", name: "", rawInsProductId: "", - type: "" + type: "", + treedata:{ + father:'璁惧缁�1', + }, + equr:1, }, + delete:{}, + equip:[], rules: { name: [ { required: true, message: "璇疯緭鍏ヤ华鍣ㄨ澶囩紪鍙�", trigger: "blur" }, @@ -505,6 +466,22 @@ }; }, methods: { + selectDevice() {//鍙宠竟鏁版嵁 + console.log(this.$api.url.selectDevice); + this.$axios.get(this.$api.url.selectDevice,{ + params:{ + father:this.treedata.father, + type:this.equip, + } + }).then(res =>{ + console.log(res); + this.tableData = res.data + }, { + headers: { + "Content-Type": "application/json" + } + }) + }, // 鍔ㄦ�佹帶鍒跺睍寮�涓庢敹璧峰拰鍒囨崲瀵瑰簲鍥炬爣 isC() { this.isCollapse = !this.isCollapse; @@ -517,25 +494,27 @@ } }, 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.$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("纭鍏抽棴锛�") @@ -549,31 +528,52 @@ this.$axios.get(this.$api.url.addDeviceKeeper).then(res => { this.keeperList = res.data; }); - this.$axios.get(this.$api.url.addDeviceInspectDownBox).then(res => { - this.inspectionList = res.data; - }); - this.$axios.get(this.$api.url.addDeviceParentClassification).then(res => { - this.parentClassificationList = res.data; - }); + this.listgroup() + }, + listgroup() { + this.$axios.get(this.$api.url.listgroup).then(res =>{ + this.equip = res.data + }) + }, + RadioChange(val){ + console.log(val); + this.equip = val + this.twoTreeApi() }, twoTreeApi() { - this.$axios.get(this.$api.url.towTree).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.$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; }); }, - tableDataApi() { - this.$axios.get(this.$api.url.tableDeviceList).then(res => { - this.tableData = res.data; - }); + 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"}}) }, + // tableDataApi() { + // this.$axios.get(this.$api.url.tableDeviceList).then(res => { + // this.tableData = res.data; + // }); + // }, reset() { this.tableDataApi(); this.radio1 = "true"; @@ -581,21 +581,9 @@ this.staue_value = ""; }, handleNodeClick(data) { - if (data.id === undefined) { - this.$axios - .get(this.$api.url.tableDeviceList, { - params: { fatherName: data.name } - }) - .then(res => { - this.tableData = res.data; - }); - } else if (data.id !== undefined) { - this.$axios - .get(this.$api.url.tableDeviceList, { params: { deviceId: data.id } }) - .then(res => { - this.tableData = res.data; - }); - } + console.log(data); + this.treedata = data + this.selectDevice() }, handlerDeptList() { this.towTree = []; @@ -631,28 +619,37 @@ }); } }, - handleClick(index, datas, row) { - 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" - }); - }); - }); + delDeviceById() { + this.$axios.post(this.$api.url.delDeviceById,{ + id:this.delete.id + }) + }, + 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("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ澶�, 鏄惁缁х画?", "鎻愮ず", { @@ -728,6 +725,7 @@ this.twoTreeApi(); // 鍒濆鍖栬皟鐢ㄨ〃鏍兼暟鎹� this.tableDataApi(); + this.selectDevice()//鍙宠竟 }, watch: { "ruleForm.rawInsProductId": { @@ -744,17 +742,17 @@ } } }, - dialogVisible: { - handler: function(newVal, oldVal) { - if (newVal) { - // 鎴愬姛娓呯┖杈撳叆鍐呭 - this.ruleForm = {}; - this.value = ""; - this.showCodeNameModel = {}; - this.$refs.ruleForm.resetFields(); - } - } - }, + // dialogVisible: { + // handler: function(newVal, oldVal) { + // if (newVal) { + // // 鎴愬姛娓呯┖杈撳叆鍐呭 + // this.ruleForm = {}; + // this.value = ""; + // this.showCodeNameModel = {}; + // this.$refs.ruleForm.resetFields(); + // } + // } + // }, radio1: { handler: function(newVal, oldVal) { this.towTree = []; diff --git a/src/components/view/standard.vue b/src/components/view/standard.vue index 3a9c15a..731daef 100644 --- a/src/components/view/standard.vue +++ b/src/components/view/standard.vue @@ -1,117 +1,12 @@ -<style scoped> - .standard {} - - .standard .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; - } - - .standard .title { - margin-bottom: 10px; - padding: 0 20px; - } - - .standard .title *{ - font-size: 16px; - } - - .thing { - width: 100%; - height: calc(100% - 48px); - background-color: #fff; - display: flex; - } - - .thing .left { - width: 295px; - height: calc(100% - 32px); - border-right: 3px solid rgb(245, 247, 251); - padding: 16px; - } - - .thing .left .custom-tree-node span { - font-size: 14px; - } - - .thing .left .custom-tree-node { - flex: 1; - display: flex; - align-items: center; - justify-content: space-between; - font-size: 14px; - padding-right: 8px; - } - - .node_i { - color: orange; - } - - .el-icon-delete { - display: none; - color: #004EA2; - } - - .custom-tree-node:hover .el-icon-delete { - display: inline; - } - - .thing .right { - width: calc(100% - 295px); - height: 100%; - overflow: hidden; - } - - .thing .right .choose { - padding: 21px 24px; - display: flex; - align-items: center; - } - - .thing .right .choose * { - font-size: 14px; - } - - .thing .right .choose .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; - } - - .thing .right .table{ - margin-right: 24px; - height: calc(100% - 74px); - } -</style> -<style> - .standard .title .el-button * { - font-size: 14px; - } - - .standard .title .el-button--default{ - color: #004EA2; - } - - .standard .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { - background: rgba(58, 124, 253, 0.3); - color: #004EA2; - } - - .el-tree-node__content { - height: 30px; - border-radius: 2px; - } -</style> - <template> <div class="standard"> <div class="title"> <el-row> <el-col :span="12" style="line-height: 32px;">鏍囧噯BOM</el-col> <el-col :span="12" style="text-align: right;"> - <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="bomAddModelVisible= true">鏂板</el-button> + <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" + @click="bomAddModelVisible = true">鏂板</el-button> + <el-button icon="el-icon-plus">鏂板鐗堟湰</el-button> <el-button icon="el-icon-edit-outline">淇敼</el-button> <el-button icon="el-icon-delete">鍒犻櫎</el-button> </el-col> @@ -120,40 +15,83 @@ <div class="thing"> <div class="left"> <el-input v-model="search" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" clearable></el-input> - <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'name'}" node-key="id" default-expand-all - :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" - @node-collapse="nodeClose"> + + <el-tree :data="list" ref="tree" :default-expand-all="false" :props="{ children: 'children', label: 'name' }" + node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current> <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.name }}</span> + <span><i :class="`node_i ${data.code != '[4]' ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> + {{ data.name }}</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="right"> <div class="choose"> <span>绫诲瀷锛�</span> - <el-select v-model="tableType" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 52px;"> - <el-option :value="0" label="宸ヨ壓鏂囦欢"></el-option> + <el-select v-model="tableType" size="small" placeholder="璇烽�夋嫨" @change="TYPE" + style="width: 224px;margin-right: 52px;"> + <el-option :value="0" label="宸ヨ壓璺嚎"></el-option> <el-option :value="1" label="鎶�鏈寚鏍�"></el-option> + <el-option :value="2" label="鐗╂枡娓呭崟"></el-option> + <el-option :value="3" label="鐢熶骇宸ヨ壓"></el-option> </el-select> - <span>{{tableType==1?'椤圭洰锛�':'宸ヨ壓鍚嶇О锛�'}}</span> - <el-input v-model="searchName" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 24px;" 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> + <span>{{ tableType == 1 ? '椤圭洰锛�' : '宸ヨ壓鍚嶇О锛�' }}</span> + <el-input v-model="searchName" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 24px;" + clearable></el-input> + <span>{{ tableType == 1 ? '鐗堟湰锛�' : '宸ヨ壓鍚嶇О锛�' }}</span> + <el-select v-model="VER" @change="verevent" style="width: 280px;" placeholder="璇烽�夋嫨"> + <el-option v-for="item in version" :key="item" :label="item" :value="item"> + </el-option> + </el-select> + <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> + </div> + + <div> + <el-table :data="tableData" style="width: 100%;margin-bottom: 20px;" row-key="name" border + @selection-change="handleSelectionChange" default-expand-all + :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> + <el-table-column type="selection" width="55"> + </el-table-column> + <el-table-column type="index" width="50" label="搴忓彿"> + </el-table-column> + <el-table-column prop="name" label="宸ュ簭" sortable width="300px"> + <!-- <template slot-scope="scope"> + <el-tag> + <div class="firstDiv" :style="`color: ${scope.row.children? '#16a7ff' : '#58c173'}`"> + {{ scope.row.children ? "01" : "02" }} + </div> + </el-tag> + <span style="color: black">{{ scope.row.name }}</span> + + </template> --> + </el-table-column> + <el-table-column prop="" sortable label="宸ヨ壓鍚嶇О"> + </el-table-column> + <el-table-column prop="" label="鎸囨爣鍚嶇О"> + </el-table-column> + <el-table-column prop="" label="鍗曚綅"> + </el-table-column> + <el-table-column prop="" label="鍐呮帶鍊�"> + </el-table-column> + <el-table-column prop="unit" label="鏍囧噯鍊�"> + </el-table-column> + </el-table> </div> <div class="table"> - <technology v-if="tableData.length!==0" :tableType="tableType" :tableData="tableData"></technology> + <technology v-if="tableData.length !== 0" :tableType="tableType" :tableData="tableData"></technology> </div> </div> </div> + + <div class="bom-add-model"> - <el-dialog - title="BOM鏂板" - :visible.sync="bomAddModelVisible" - width="30%"> + <el-dialog title="BOM鏂板" :visible.sync="bomAddModelVisible" width="30%"> <el-form> </el-form> @@ -167,111 +105,268 @@ </template> <script> - import technology from "./standard-table/technology.vue" - export default { - components: {technology}, - data() { - return { - // BOM鏍戞暟鎹粨鏋� - list: [{ - id: 0, - name: "鍘熸潗鏂�", - code: "[1]", - children: [] - }, { - id: 1, - name: "鎴愬搧", - code: "[1]", - children: [] - }, { - id: 2, - name: "鍗婃垚鍝�", - code: "[1]", - children: [] - }], - search: null, - // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾� - tableType: 1, - // 鏌ヨ鏉′欢-鍚嶇О - searchName: "", - // 鐐瑰嚮閫変腑鏍戣妭鐐� - checkTreeNode: {}, - tableData:[], - // 鎺у埗bom鏂板妯℃�佹鏄惁鏄剧ず - bomAddModelVisible: false - } - }, - watch: { - search(val) { - this.$refs.tree.filter(val); - }, - tableType(val){ - this.selectProductTableData() - } - }, - mounted() { - this.selectMaterialTree() - }, - methods: { - handleNodeClick(data) { - this.checkTreeNode = data - // this.selectMaterialTree() - this.selectProductTableData() - }, - filterNode(value, data) { - if (!value) return true; - return data.label.indexOf(value) !== -1; - }, - remove(node, data) { - this.$confirm("鏄惁鍒犻櫎", "璀﹀憡", { - type: "warning" - }).then(res => { - const parent = node.parent; - const children = parent.data.children || parent.data; - const index = children.findIndex(d => d.id === data.id); - children.splice(index, 1); - }).catch(e => {}) - }, - nodeOpen(data, node, el) { - $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') - }, - nodeClose(data, node, el) { - $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') - }, - selectMaterialTree() { - this.$axios.get(this.$api.url.selectTreeByMaterial).then(res => { - res.data.forEach(a => { - this.list.forEach(b => { - if (a.type == b.id) b.children = [a] - }) - }) - this.$nextTick().then(() => { - const firstNode = document.querySelector('.el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node') - firstNode.click() - }) - }) +import technology from "./standard-table/technology.vue" +export default { + components: { technology }, + data() { + return { + // BOM鏍戞暟鎹粨鏋� + list: [], + search: null, + tableType: 1, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾� + searchName: "",// 鏌ヨ鏉′欢-鍚嶇О + checkTreeNode: {},// 鐐瑰嚮閫変腑鏍戣妭鐐� + tableData: [], + bomAddModelVisible: false,// 鎺у埗bom鏂板妯℃�佹鏄惁鏄剧ず + list: [], + typeselect: {}, + returntree: {}, + version: {}, + VER: {}, + verdata: {}, + character: '', + } + }, + // watch: { + // search(val) { + // this.$refs.tree.filter(val); + // }, + // tableType(val){ + // this.selectProductTableData() + // } + // }, + mounted() { + this.selectMaterialTree() + }, + methods: { + handleSelectionChange() { - }, - async selectProductTableData() { - switch (this.tableType) { - case 0: - const {data:technologyList} = await this.$axios.get(this.$api.url.selectTechnologyByMaterial,{params:{specificationId:this.checkTreeNode.id,technologyName:this.searchName}}) - this.tableData = technologyList - break; - case 1: - const {data:productList} = await this.$axios.get(this.$api.url.selectProductByMaterial,{params:{specifications:this.checkTreeNode.id,project:this.searchName}}) - productList.forEach((item,index)=>{ - item.name = item.father - item.index = index+1 - item.id = item.father - if(item.children.length===1){ - productList[index] = {...item.children[0],index: index+1,name:item.father} - } - }) - this.tableData = productList - break; + }, + TYPE(val) {//绫诲瀷.鏁版嵁 + console.log(val); + this.typeselect = val + console.log(this.typeselect); + this.selectVersion() + }, + handleNodeClick(val) {//鏍戠殑鍊� + console.log(val); + this.returntree = val + }, + selectVersion() { + this.$axios.get(this.$api.url.selectVersion, { + params: { + specificationsId: this.returntree.id, + type: this.typeselect, } + }).then(res => { + this.verdata = res.data + this.version = this.verdata.map(el => { + return el = `v${el}` + }) + console.log(this.verdata); + }) + }, + verevent(val) { + console.log(val); + let cc = val.replace('v', '') + console.log(cc); + this.character = cc + this.selectAll() + // const { v, ...newObj } = val; + // delete newObj.v + // console.log(newObj); + }, + //鍙充晶鏁版嵁 + selectAll() { + console.log(this.$axios.get(this.$api.url.selectAll)); + this.$axios.get(this.$api.url.selectAll, { + params: { + specificationsId: this.returntree.id, + type: this.typeselect, + version: this.character, + } + }).then(res => { + this.tableData = res.data + }) + }, + //浜旂骇鏍� + selectMaterialTree() { + this.$axios.get(this.$api.url.selectTreeByMaterial).then(res => { + this.list = res.data + this.list.forEach((el, idx, arr) => { + if (idx == 0) { + arr[idx].name = '鎴愬搧' + } + if (idx == 1) { + arr[idx].name = '鍗婃垚鍝�' + } + el.children.forEach((newEl, newIdx, newArr) => { + if (newIdx == 0) { + newArr[newIdx].name = '姗¤兌杩炴帴鍣�' + } + if (newIdx == 1) { + newArr[newIdx].name = '閲戝睘杩炴帴鍣�' + } + if (newIdx == 2) { + newArr[newIdx].name = '婀挎彃鎷旂數杩炴帴鍣�' + } + if (newIdx == 3) { + newArr[newIdx].name = '鍒嗘敮缁勪欢' + } + }) + }) + console.log(this.list); + }) + }, + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + remove(node, data) { + this.$confirm("鏄惁鍒犻櫎", "璀﹀憡", { + type: "warning" + }).then(res => { + const parent = node.parent; + const children = parent.data.children || parent.data; + const index = children.findIndex(d => d.id === data.id); + children.splice(index, 1); + }).catch(e => { }) + }, + nodeOpen(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') + }, + nodeClose(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') + }, + async selectProductTableData() { + switch (this.tableType) { + case 0: + const { data: technologyList } = await this.$axios.get(this.$api.url.selectTechnologyByMaterial, { params: { specificationId: this.checkTreeNode.id, technologyName: this.searchName } }) + this.tableData = technologyList + break; + case 1: + const { data: productList } = await this.$axios.get(this.$api.url.selectProductByMaterial, { params: { specifications: this.checkTreeNode.id, project: this.searchName } }) + productList.forEach((item, index) => { + item.name = item.father + item.index = index + 1 + item.id = item.father + if (item.children.length === 1) { + productList[index] = { ...item.children[0], index: index + 1, name: item.father } + } + }) + this.tableData = productList + break; } } } +} </script> + + +<style scoped> +.standard {} + +.standard .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; +} + +.standard .title { + margin-bottom: 10px; + padding: 0 20px; +} + +.standard .title * { + font-size: 16px; +} + +.thing { + width: 100%; + height: calc(100% - 48px); + background-color: #fff; + display: flex; +} + +.thing .left { + width: 295px; + height: calc(100% - 32px); + border-right: 3px solid rgb(245, 247, 251); + padding: 16px; +} + +.thing .left .custom-tree-node span { + font-size: 14px; +} + +.thing .left .custom-tree-node { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + font-size: 14px; + padding-right: 8px; +} + +.node_i { + color: orange; +} + +.el-icon-delete { + display: none; + color: #004EA2; +} + +.custom-tree-node:hover .el-icon-delete { + display: inline; +} + +.thing .right { + width: calc(100% - 295px); + height: 100%; + overflow: hidden; +} + +.thing .right .choose { + padding: 21px 24px; + display: flex; + align-items: center; +} + +.thing .right .choose * { + font-size: 14px; +} + +.thing .right .choose .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; +} + +.thing .right .table { + margin-right: 24px; + height: calc(100% - 74px); +} +</style> +<style> +.standard .title .el-button * { + font-size: 14px; +} + +.standard .title .el-button--default { + color: #004EA2; +} + +.standard .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { + background: rgba(58, 124, 253, 0.3); + color: #004EA2; +} + +.el-tree-node__content { + height: 30px; + border-radius: 2px; +} +</style> + diff --git a/src/components/view/technical.vue b/src/components/view/technical.vue index 66ed8ff..8ec3eb3 100644 --- a/src/components/view/technical.vue +++ b/src/components/view/technical.vue @@ -1,105 +1,3 @@ - -<style scoped> - .technical{ - height: 100%; - width: 100%; - } - .technical .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; - } - - .technical .title { - margin-bottom: 10px; - padding: 0 20px; - } - -/* 鎼滅储澶撮儴鏍峰紡 */ -.search-header{ - background: #fff; - padding: 24px 32px; -} -.search-header .el-form-item{ - margin: 0px; - font-size: 14px; -} -.search-header .el-form-item:nth-child(1){ - margin-right: 48px; -} -.search-header .el-form-item:nth-child(2){ - margin-right: 24px; -} -/* 閲嶇疆鍜屾煡璇袱涓寜閽牱寮� */ -.search-header .el-form-item .el-button{ -width: 65px; -height: 32px; -box-sizing: border-box; -background: rgb(255, 255, 255); -border: 1px solid rgb(217, 217, 217); -border-radius:2px; -padding: 0; -font-size: 14px; -} -.search-header .el-form-item .el-button:nth-child(2){ -/* Rectangle 77 */ -background: rgb(0, 78, 162); -color: #fff; -} -/* 杈撳叆妗嗙殑鏍峰紡 */ -.search-header .el-form-item .el-input >>>.el-input__inner{ -width: 224px; -height: 32px ; -box-sizing: border-box; -background: rgb(255, 255, 255); -border: 1px solid rgb(217, 217, 217); -border-radius:2px; -} - - -/* 鎶�鏈枃浠惰〃鏍兼牱寮� */ -.technical-table{ - margin-top: 11px; - height: calc(100% - 140px); - background: #fff; - padding: 23px 21px ; - font-size: 14px; - box-sizing: border-box; - display: flex; - flex-direction: column; -} -/* .technical-table .el-table{ - overflow-y:scroll; -} */ -.technical-table .table-box { - flex: 1; - overflow-y: scroll; -} -.technical-table .el-pagination{ - margin-top: 23px; - display: flex; - justify-content: end; -} -.formtitle{ - display: block; - margin-bottom: 24px; - font-size: 16px; -} -.detail-model >>>.el-form-item__label{ - color: rgb(51, 51, 51); -} -.detail-model >>>.el-input__inner{ -width: 224px; -height: 32px; -box-sizing: border-box; -background: rgb(238, 238, 238); -border: 1px solid rgb(221, 221, 221); -border-radius:4px; -} -</style> - - <template> <div class="technical"> <div class="title"> @@ -140,65 +38,48 @@ width="78"> </el-table-column> <el-table-column - prop="id" - label="璁㈠崟鍙�" - width="124"> + prop="order_number" + label="璁㈠崟鍙�"> + </el-table-column> + <el-table-column + prop="saleman" + label="涓氬姟鍛�"> </el-table-column> <el-table-column prop="proname" - label="宸ョ▼鍚嶇О" - width="160"> + label="瀹㈡埛鍚嶇О"> </el-table-column> <el-table-column - prop="code" - label="浜у搧缂栫爜" - width="168" - > - </el-table-column> - <el-table-column - prop="type" - label="浜у搧澶х被" - width="128"> + prop="name" + label="浜у搧鍚嶇О"> </el-table-column> <el-table-column prop="specifications" - label="瑙勬牸鍨嬪彿" - width="170"> + label="瑙勬牸鍨嬪彿"> </el-table-column> <el-table-column prop="unit" - label="鍗曚綅" - width="100"> + label="鍗曚綅"> </el-table-column> <el-table-column prop="number" - label="鏁伴噺" - width="118" - > + label="鏁伴噺"> </el-table-column> <el-table-column - prop="username" - label="涓嬪崟浜�" - width="114"> + prop="涓嬪崟鏃ユ湡" + label="涓嬪崟鏃ユ湡"> </el-table-column> <el-table-column - prop="createTime" - label="涓嬪崟鏃ユ湡" - width="153" - > + prop="浜よ揣鏃ユ湡" + label="浜よ揣鏃ユ湡"> </el-table-column> <el-table-column - prop="deliveryTime" - label="浜よ揣鏃ユ湡" - width="137"> - </el-table-column> - <el-table-column - prop="state" + prop="type" label="鐘舵��" width="85" > <template slot-scope="scope"> - {{scope.state==1?'寰呯紪鍒�':'宸茬紪鍒�'}} + {{scope.state==0?'寰呯紪鍒�':'宸茬紪鍒�'}} </template> </el-table-column> <el-table-column @@ -341,52 +222,7 @@ id:'', date:'' }, - technicalTable: [{ - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-01', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - } - ], + technicalTable: [], showDetail: false, selectedRow: {}, pageParams:{ @@ -407,7 +243,10 @@ console.log(this.selectedRow) }, async getTechnicalTableData() { - const res = await this.$axios.get(this.$api.url.selectAllOrder,{params:{pageSize:(this.pageParams.pageNo-1),countSize:this.pageParams.pageSize,...this.searchData}}) + const res = await this.$axios.get(this.$api.url.selectAllOrder,{ + params:{ + pageSize:(this.pageParams.pageNo-1), + countSize:this.pageParams.pageSize,...this.searchData}}) this.technicalTable = res.data.row this.pageParams.total = res.data.total }, @@ -430,3 +269,104 @@ }, } </script> + +<style scoped> + .technical{ + height: 100%; + width: 100%; + } + .technical .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; + } + + .technical .title { + margin-bottom: 10px; + padding: 0 20px; + } + +/* 鎼滅储澶撮儴鏍峰紡 */ +.search-header{ + background: #fff; + padding: 24px 32px; +} +.search-header .el-form-item{ + margin: 0px; + font-size: 14px; +} +.search-header .el-form-item:nth-child(1){ + margin-right: 48px; +} +.search-header .el-form-item:nth-child(2){ + margin-right: 24px; +} +/* 閲嶇疆鍜屾煡璇袱涓寜閽牱寮� */ +.search-header .el-form-item .el-button{ +width: 65px; +height: 32px; +box-sizing: border-box; +background: rgb(255, 255, 255); +border: 1px solid rgb(217, 217, 217); +border-radius:2px; +padding: 0; +font-size: 14px; +} +.search-header .el-form-item .el-button:nth-child(2){ +/* Rectangle 77 */ +background: rgb(0, 78, 162); +color: #fff; +} +/* 杈撳叆妗嗙殑鏍峰紡 */ +.search-header .el-form-item .el-input >>>.el-input__inner{ +width: 224px; +height: 32px ; +box-sizing: border-box; +background: rgb(255, 255, 255); +border: 1px solid rgb(217, 217, 217); +border-radius:2px; +} + + +/* 鎶�鏈枃浠惰〃鏍兼牱寮� */ +.technical-table{ + margin-top: 11px; + height: calc(100% - 140px); + background: #fff; + padding: 23px 21px ; + font-size: 14px; + box-sizing: border-box; + display: flex; + flex-direction: column; +} +/* .technical-table .el-table{ + overflow-y:scroll; +} */ +.technical-table .table-box { + flex: 1; + overflow-y: scroll; +} +.technical-table .el-pagination{ + margin-top: 23px; + display: flex; + justify-content: end; +} +.formtitle{ + display: block; + margin-bottom: 24px; + font-size: 16px; +} +.detail-model >>>.el-form-item__label{ + color: rgb(51, 51, 51); +} +.detail-model >>>.el-input__inner{ +width: 224px; +height: 32px; +box-sizing: border-box; +background: rgb(238, 238, 238); +border: 1px solid rgb(221, 221, 221); +border-radius:4px; +} +</style> + diff --git a/src/main.js b/src/main.js index 41f2bc4..8d31fb2 100644 --- a/src/main.js +++ b/src/main.js @@ -24,7 +24,7 @@ Vue.use(api); // const javaApi = 'http://127.0.0.1:8001/' -const javaApi = 'http://192.168.218.251:8001/' +const javaApi = 'http://192.168.218.249:8001/' -- Gitblit v1.9.3