From 49a5757c36d73524c74bc27fcecf486368d80311 Mon Sep 17 00:00:00 2001 From: 王震 <10952869+daywangzhen@user.noreply.gitee.com> Date: 星期二, 12 九月 2023 09:08:22 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/view/Technicalindex.vue | 517 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 339 insertions(+), 178 deletions(-) diff --git a/src/components/view/Technicalindex.vue b/src/components/view/Technicalindex.vue index 39c1af3..9211f57 100644 --- a/src/components/view/Technicalindex.vue +++ b/src/components/view/Technicalindex.vue @@ -5,7 +5,7 @@ <el-col :span="12" style="line-height: 32px;">鎶�鏈寚鏍囩淮鎶�</el-col> <el-col :span="12" style="text-align: right;"> <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="event">鏂板</el-button> - <el-button icon="el-icon-edit-outline" @click="modify">淇敼</el-button> + <!-- <el-button icon="el-icon-edit-outline" @click="modify">淇敼</el-button> --> <el-button icon="el-icon-delete" @click="dels" >鍒犻櫎</el-button> </el-col> </el-row> @@ -22,7 +22,7 @@ <el-form ref="form" :model="form" label-width="80px"> <el-form-item label="绫诲瀷"> <template> - <el-select v-model="value" placeholder="璇烽�夋嫨绫诲瀷" style="width: 560px;"> + <el-select v-model="value" placeholder="璇烽�夋嫨" style="width: 560px;"> <el-option v-for="item in options" :key="item.value" @@ -47,8 +47,8 @@ <el-row> <el-col :span="11"> - <el-form-item label="涓婄骇"> - <el-input v-model="form.name" placeholder="璇烽�夋嫨涓婄骇"></el-input> + <el-form-item label="椤圭洰缁�"> + <el-input v-model="form.name" placeholder="璇烽�夋嫨"></el-input> </el-form-item> </el-col> <el-col :span="11" :offset="2"> @@ -68,103 +68,6 @@ </span> </el-dialog> </div> - <!-- 鏂板寮圭獥 --> - <div> - <el-dialog - title="鎶�鏈寚鏍囨柊澧�" - :visible.sync="dialogVisible" - width="40%" - :before-close="handleClose"> - <el-form ref="form" :model="form" label-width="80px"> - <el-form-item label="绫诲瀷"> - <template> - <el-select v-model="form.type" size="small" placeholder="璇烽�夋嫨" @change="TYpe" style="width: 224px;margin-right: 30px;"> - <el-option label="姗¤兌杩炴帴鍣�" :value="0"></el-option> - <el-option label="閲戝睘杩炴帴鍣�" :value="1"></el-option> - <el-option label="婀挎彃鎷旂數杩炴帴鍣�" :value="2"></el-option> - <el-option label="鍒嗘敮缁勪欢" :value="3"></el-option> - </el-select> - </template> - </el-form-item> - <el-row> - <el-col :span="11"> - <el-form-item label="宸ュ簭"> - <template> - <el-select v-model="form.work" - placeholder="璇烽�夋嫨绫诲瀷" - allow-create - filterable - @change="workevent" - > - <el-option - v-for="(item,index) in process" - :key="item.name" - :label="item.name" - :value="item.name"> - </el-option> - </el-select> - </template> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="宸ヨ壓"> - <template> - <el-select v-model="form.name" - placeholder="璇烽�夋嫨绫诲瀷" - allow-create - filterable - > - <el-option - v-for="item in craftapi" - :key="item.id" - :label="item.name" - :value="item.id"> - </el-option> - </el-select> - </template> - </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="11"> - <el-form-item label="涓婄骇"> - <template> - <el-select v-model="form.father" - placeholder="璇烽�夋嫨绫诲瀷" - allow-create - filterable - > - <el-option - v-for="item in higherlevel" - :key="item" - :label="item" - :value="item"> - </el-option> - </el-select> - </template> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="椤圭洰"> - <el-input v-model="form.project" placeholder="璇疯緭鍏ラ」鐩�"></el-input> - </el-form-item> - </el-col> - </el-row> - - <el-form-item label="鍗曚綅"> - <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" style="width: 220px;"></el-input> - </el-form-item> - </el-form> - <span slot="footer" class="dialog-footer"> - <el-button @click="dialogVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="add">纭� 瀹�</el-button> - </span> - </el-dialog> - </div> - </div> - - <div class="choose"> <span>绫诲瀷锛�</span> <el-select v-model="search.type" size="small" placeholder="璇烽�夋嫨" @change="TYpe" style="width: 224px;margin-right: 30px;"> @@ -188,15 +91,15 @@ placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" clearable @input="query" ></el-input> - <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'father'}" node-key="id" default-expand-all - @node-click="handleNodeClick" + <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'father'}" node-key="name" default-expand-all + @node-click="handleNodeClick" highlight-current > <div class="custom-tree-node" slot-scope="{ node, data }"> - <span><i :class="`node_i ${data.code != '[3]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i> - {{data.father}} {{ data.name }}</span> - <el-button type="text" size="mini" @click.stop="remove(node, data)"> + <span><i :class="`node_i ${data.code != '[2]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i> + {{data.code}} {{ data.name }}</span> + <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)"> <i class="el-icon-delete"></i> - </el-button> + </el-button> --> </div> </el-tree> </div> @@ -207,7 +110,6 @@ style="width: 100%;margin-bottom: 20px;" row-key="name" border - @selection-change="handleSelectionChange" default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> @@ -223,7 +125,7 @@ prop="name" label="椤圭洰" sortable - width="300px"> + width="400px"> <template slot-scope="scope"> <el-tag> <div class="firstDiv" :style="`color: ${scope.row.children? '#16a7ff' : '#58c173'}`"> @@ -243,66 +145,90 @@ label="鎿嶄綔" width="200px"> <template slot-scope="scope" style="text-align: center;"> - <el-button type="text" size="mini" @click="childrenClick(scope)">缂栬緫</el-button> + <div v-if="!scope.row.children"> + <el-button type="text" size="mini" @click="childrenClick(scope.row)">缂栬緫</el-button> <el-button type="text" size="mini" @click="deleteRow(scope.$index, scope.row)">鍒犻櫎</el-button> + </div> </template> </el-table-column> </el-table> </div> - -<!-- <div> <el-dialog title="缂栬緫鎶�鏈唴瀹�" :visible.sync="upDia" width="500px"> <div class="body"> - <el-row style="line-height: 46px;"> + + <el-row style="line-height: 46px;"> <el-col :span="4" style="font-size: 14px;text-align: right;">绫诲瀷:</el-col> <el-col :span="16" :offset="1"> <template> - <el-select v-model="upData.type" placeholder="璇烽�夋嫨绫诲瀷" style="width: 310px;"> - <el-option label="姗¤兌杩炴帴鍣�" :value="0"></el-option> - <el-option label="閲戝睘杩炴帴鍣�" :value="1"></el-option> - <el-option label="婀挎彃鎷旂數杩炴帴鍣�" :value="2"></el-option> - <el-option label="鍒嗘敮缁勪欢" :value="3"></el-option> + <el-select v-model="edit.type" disabled placeholder="璇烽�夋嫨" @change="TYpe" style="width: 306px;margin-right: 30px;"> + <el-option label="姗¤兌杩炴帴鍣�" :value="0"></el-option> + <el-option label="閲戝睘杩炴帴鍣�" :value="1"></el-option> + <el-option label="婀挎彃鎷旂數杩炴帴鍣�" :value="2"></el-option> + <el-option label="鍒嗘敮缁勪欢" :value="3"></el-option> </el-select> </template> </el-col> </el-row> - <el-row style="line-height: 46px;"> - <el-col :span="4" style="font-size: 14px;text-align: right;">宸ュ簭:</el-col> + <el-row style="line-height: 46px;"> + <el-col :span="4" style="font-size: 14px;text-align: right;">宸ュ簭:</el-col> <el-col :span="16" :offset="1"> - <el-select v-model="upData.father" style="width: 310px;" placeholder="璇烽�夋嫨"> - <el-option - v-for="item in procedure" - :key="item" - :label="item" - :value="item"> - </el-option> - </el-select> + <template> + <el-select v-model="edit.techFather" + placeholder="璇烽�夋嫨" + allow-create + disabled + style="width: 306px;" + filterable + @change="workevent" + > + <el-option + v-for="(item,index) in process" + :key="item.name" + :label="item.name" + :value="item.name"> + </el-option> + </el-select> + </template> + </el-col> + </el-row> + <el-row style="line-height: 46px;"> + <el-col :span="4" style="font-size: 14px;text-align: right;">宸ヨ壓:</el-col> + <el-col :span="16" :offset="1"> + <template> + <el-select v-model="edit.techName" + placeholder="璇烽�夋嫨" + disabled + style="width: 306px;" + allow-create + filterable + > + <el-option + v-for="item in craftapi" + :key="item.id" + :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </template> + </el-col> + </el-row> + <el-row style="line-height: 46px;"> + <el-col :span="4" style="font-size: 14px;text-align: right;">椤圭洰缁�:</el-col> + <el-col :span="16" :offset="1"> + <el-input v-model="edit.father" :disabled="true" size="small" clearable></el-input> </el-col> </el-row> <el-row style="line-height: 46px;"> - <el-col :span="4" style="font-size: 14px;text-align: right;">鍏冧欢:</el-col> + <el-col :span="4" style="font-size: 14px;text-align: right;">椤圭洰鍚嶇О:</el-col> <el-col :span="16" :offset="1"> - <el-select v-model="upData.ele" style="width: 310px;" multiple placeholder="璇烽�夋嫨"> - <el-option - v-for="item in element" - :key="item.index" - :label="item.name" - :value="item.id"> - </el-option> - </el-select> + <el-input v-model="edit.name" size="small" clearable></el-input> </el-col> </el-row> <el-row style="line-height: 46px;"> - <el-col :span="4" style="font-size: 14px;text-align: right;">宸ヨ壓鍚嶇О:</el-col> + <el-col :span="4" style="font-size: 14px;text-align: right;">鍗曚綅:</el-col> <el-col :span="16" :offset="1"> - <el-input v-model="upData.name" size="small" clearable></el-input> - </el-col> - </el-row> - <el-row style="line-height: 46px;"> - <el-col :span="4" style="font-size: 14px;text-align: right;">璁惧缁�:</el-col> - <el-col :span="16" :offset="1"> - <el-input v-model="upData.device_group" size="small" clearable></el-input> + <el-input v-model="edit.unit" size="small" clearable></el-input> </el-col> </el-row> </div> @@ -311,7 +237,122 @@ <el-button @click="upDia = false">鍙� 娑�</el-button> </span> </el-dialog> - </div> --> + </div> + + <!-- 鏂板寮圭獥 --> + <div> + <el-dialog + title="鎶�鏈寚鏍囨柊澧�" + :visible.sync="dialogVisible" + width="40%" + > + <el-form ref="form" :model="form" label-width="80px"> + <el-form-item label="绫诲瀷"> + <template> + <el-select v-model="form.type" size="small" placeholder="璇烽�夋嫨" @change="edittype" style="width: 554px;margin-right: 30px;"> + <el-option label="姗¤兌杩炴帴鍣�" :value="0"></el-option> + <el-option label="閲戝睘杩炴帴鍣�" :value="1"></el-option> + <el-option label="婀挎彃鎷旂數杩炴帴鍣�" :value="2"></el-option> + <el-option label="鍒嗘敮缁勪欢" :value="3"></el-option> + </el-select> + </template> + </el-form-item> + <el-row> + <el-col :span="11"> + <el-form-item label="宸ュ簭"> + <template> + <el-select v-model="form.work" + placeholder="璇烽�夋嫨" + allow-create + filterable + @change="workevent" + > + <el-option + v-for="(item,index) in process" + :key="item.name" + :label="item.name" + :value="item.name"> + </el-option> + </el-select> + </template> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="宸ヨ壓"> + <template> + <el-select v-model="form.name" + placeholder="璇烽�夋嫨" + allow-create + filterable + > + <el-option + v-for="item in craftapi" + :key="item.id" + :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </template> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="11"> + <el-form-item label="椤圭洰缁�" > + <template> + <el-select v-model="form.father" + placeholder="璇烽�夋嫨" + allow-create + filterable + @create="electadd" + > + <el-option + v-for="item in higherlevel" + :key="item" + :label="item" + :value="item"> + </el-option> + </el-select> + <!-- <el-autocomplete + popper-class="my-autocomplete" + v-model="form.father" + :fetch-suggestions="higherlevel" + placeholder="璇疯緭鍏ュ唴瀹�" + @select="electadd"> + <i + class="el-icon-edit el-input__icon" + slot="suffix" + @click="handleIconClick"> + </i> + <template slot-scope="{ item }"> + <div class="name">{{ item }}</div> + <span class="addr">{{ item}}</span> + </template> + </el-autocomplete> --> + + </template> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="椤圭洰"> + <el-input v-model="form.project" style="width: 200px;" placeholder="璇疯緭鍏ラ」鐩�"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-form-item label="鍗曚綅"> + <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" style="width: 200px;"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="add">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> + </div> + </div> </div> </template> @@ -320,11 +361,13 @@ data() { return { search:{ - type:'', - technology:'', + type:0, + technology:null, }, // handleClose:[], - checkTreeNode :[], + checkTreeNode :{ + id:'', + }, higherlevel:[], value:{}, options:[], @@ -343,31 +386,131 @@ dialogVisible:false, tableData: [], typeselect:0, - upDat:{}, + upData:{}, + upDia:false, craftapi:[], + edit:{ + techFather:'', + techName:'', + father:'', + name:'', + unit:'', + id:'', + + } } }, mounted() { this.selectAllleft() + this.selectAllright() }, methods:{ + handleClose(){ + + }, + selectDataList() { + this.list.forEach(a => { + a.code = '[1]' + if (a.children != undefined) { + a.children.forEach(b => { + b.code = '[2]' + if (b.children != undefined) { + b.children.forEach(c => { + c.code = '[3]' + }) + } + }) + } + }) + this.upIndex++ + }, + //缂栬緫 + selecTech() { + this.$axios.get(this.$api.url.selecTech,{ + params:{ + id:this.upData.id + } + }).then(res => { + this.edit = res.data[0] + console.log(this.edit); + }) + }, + childrenClick(val) { + this.upData = val + this.selecTech() + this.upDia = true + }, + writeTechByIdskill() { + // console.log(this.upData.id); + this.$axios.post(this.$api.url.writeTechByIdskill + '?id=' + this.upData.id,{ + name:this.edit.name, + father:this.edit.father, + techTemId:this.edit.id, + unit:this.edit.unit + }, { + headers: { + "Content-Type": "application/json" + } + }).then(res => { + this.selectAllright() + }) + }, + submitUpData() {//纭畾 + this.writeTechByIdskill() + this.upDia = false + }, //鍒犻櫎 - // delTechBy() { - // console.log(this.$api.url.delTechBy,this.upData.id); - // this.$axios.post(this.$api.url.delTechBy,{ - // id:this.upData.id - // }) - // }, - // deleteRow(index, rows) { - // this.tableData.splice(index,1) - // this.upData.id = rows.id - // this.delTechBy() - // }, + delTechBy() { + console.log(this.$api.url.delTechBy,this.upData.id); + this.$axios.post(this.$api.url.delTechBy,{ + id:this.upData.id + }).then(res =>{ + this.selectAllright() + this.$message.success('鍒犻櫎瀹屾垚') + }) + }, + deleteRow(index, rows) { + this.tableData.splice(index,1) + this.upData = rows + this.upData.id = rows.id + this.delTechBy() + }, + //鎵归噺鍒犻櫎 + delAllTechskill() { + this.$axios.post(this.$api.url.delAllTechskill,{ + ids:this.delete + }).then(res =>{ + this.selectAllright() + }) + }, + dels() { + this.selects.forEach(a => { + for (var b = 0; b < this.tableData.length; b++) { + if (this.tableData[b].id == a.id) { + this.tableData.splice(b, 1) + b-- + } + } + }) + let cc = this.selects.map(el => { + return el.id + }) + this.delete = cc.join(',') + console.log(this.delete); + this.delAllTechskill() + this.$message.success('鍒犻櫎瀹屾垚') + }, add() { this.dialogVisible = false this.addTechMode() + this.form = {}; + }, + electadd(value) { + console.log(value); + this.higherlevel.push({}); + this.form.father = value; }, addTechMode() { this.$axios.post(this.$api.url.addTechMode,{ @@ -379,16 +522,21 @@ headers: { "Content-Type": "application/json" } - }) - }, - handleClose() { + }).then(res =>{ + this.$message.success('鏂板瀹屾垚') + this.selectAllright() + }) }, TYpe(val) { this.typeselect = val console.log(this.typeselect); this.selectAllleft() }, + edittype(val) { + this.typeselect = val + this.chooseTechFath() + }, //涓讳綋宸� selectAllleft() { this.$axios.get(this.$api.url.selectAllleft,{ @@ -396,13 +544,34 @@ }).then(res => { this.list = res.data; console.log(this.list); + this.selectDataList() + this.$nextTick(() => { + this.$refs.tree.setCurrentKey(this.list[0].children[0].name) // 榛樿閫変腑鑺傜偣绗竴涓� }) + let one=this.list.filter(item=>{ + return item.children.length>0 + })[0] + console.log(one); + let name=one.children[0].id + console.log(name); + this.selectAllrightStart(name) + this.selectDataList(); + }); + }, + selectAllrightStart(name) { + this.$axios.get(this.$api.url.selectAllright,{ + params:{id:name} + }).then(res => { + this.tableData = res.data; + console.log(this.tableData); + }); }, // //鏌ヨ query(val) { this.selectAllleft() }, + //鍙� selectAllright() { this.$axios.get(this.$api.url.selectAllright,{ params:{id:this.checkTreeNode.id} @@ -443,6 +612,7 @@ let idx = this.process.findIndex(el => el.name === val) this.craftapi = this.process[idx].children }, + handleNodeClick(data){ this.checkTreeNode = data console.log(this.checkTreeNode.id); @@ -456,23 +626,14 @@ modify(){ this.modifyevent = true }, - deleteRow(index, rows) { - rows.splice(index, 1); - }, + // deleteRow(index, rows) { + // console.log(); + // rows.splice(index, 1); + // }, handleSelectionChange(val) { this.selects = val; }, - dels() { - this.selects.forEach(a => { - for (var b = 0; b < this.tableData.length; b++) { - if (this.tableData[b].id == a.id) { - this.tableData.splice(b, 1) - b-- - } - } - }) - this.$message.success('鍒犻櫎瀹屾垚') - }, + //缂栬緫 } } -- Gitblit v1.9.3