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