From 941fff624eddc4b9f369f1b91f65fdb50309851d Mon Sep 17 00:00:00 2001 From: 王震 <10952869+daywangzhen@user.noreply.gitee.com> Date: 星期日, 24 九月 2023 16:54:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/view/Technicalindex.vue | 1264 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 680 insertions(+), 584 deletions(-) diff --git a/src/components/view/Technicalindex.vue b/src/components/view/Technicalindex.vue index 6117dd3..c363f22 100644 --- a/src/components/view/Technicalindex.vue +++ b/src/components/view/Technicalindex.vue @@ -1,618 +1,713 @@ <template> <div class="record_content"> <div class="title"> - <el-row> + <el-row> <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-delete" @click="dels" >鍒犻櫎</el-button> + <!-- <el-button icon="el-icon-edit-outline" @click="modify">淇敼</el-button> --> + <el-button icon="el-icon-delete" @click="dels">鍒犻櫎</el-button> + <el-button icon="el-icon-download" @click="clickDownload">瀵煎嚭</el-button> + <el-button icon="el-icon-upload2">瀵煎叆</el-button> </el-col> </el-row> </div> - - <div> - <!-- 缂栬緫寮圭獥 --> - <div> - <el-dialog - title="鎶�鏈寚鏍囩紪杈�" - :visible.sync="modifyevent" - width="40%" - :before-close="handleClose"> - <el-form ref="form" :model="form" label-width="80px"> - <el-form-item label="绫诲瀷"> - <template> - <el-select v-model="value" placeholder="璇烽�夋嫨绫诲瀷" style="width: 560px;"> - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </template> - </el-form-item> - <el-row> - <el-col :span="11"> - <el-form-item label="宸ュ簭"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ュ簭"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="宸ヨ壓"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ヨ壓"></el-input> - </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="11"> - <el-form-item label="涓婄骇"> - <el-input v-model="form.name" placeholder="璇烽�夋嫨涓婄骇"></el-input> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="椤圭洰"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ラ」鐩�"></el-input> - </el-form-item> - </el-col> - </el-row> - - <el-form-item label="鍗曚綅"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ュ崟浣�" style="width: 220px;"></el-input> - </el-form-item> - </el-form> - <span slot="footer" class="dialog-footer"> - <el-button @click="modifyevent = false">鍙� 娑�</el-button> - <el-button type="primary" @click="modifyevent = false">纭� 瀹�</el-button> - </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;"> - <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> - <!-- <span>宸ュ簭锛�</span> - <el-select v-model="search.name" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 30px;"> - <el-option v-for="(a, ai) in process" key="ai" :label="a.name" :value="a.id"></el-option> - </el-select> - <el-button size="mini"><span>閲� 缃�</span></el-button> - <el-button size="mini" type="primary" style="background: #004EA2;"><span>鏌ヨ</span></el-button> --> - </div> - <div class="thing"> - <!-- 涓讳綋宸� --> - <div class="left"> - <el-input v-model="search.technology" - suffix-icon="el-icon-search" - 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" - > - <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)"> - <i class="el-icon-delete"></i> - </el-button> - </div> - </el-tree> + <div style="height: calc(100% - 42px);"> + <!-- 缂栬緫寮圭獥 --> + <div> + <el-dialog title="鎶�鏈寚鏍囩紪杈�" :visible.sync="modifyevent" width="40%" :before-close="handleClose"> + <el-form ref="form" :model="form" label-width="80px"> + <el-form-item label="绫诲瀷"> + <template> + <el-select v-model="value" placeholder="璇烽�夋嫨" style="width: 560px;"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </template> + </el-form-item> + <el-row> + <el-col :span="11"> + <el-form-item label="宸ュ簭"> + <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ュ簭"></el-input> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="宸ヨ壓"> + <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ヨ壓"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="11"> + <el-form-item label="椤圭洰缁�"> + <el-input v-model="form.name" placeholder="璇烽�夋嫨"></el-input> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="椤圭洰"> + <el-input v-model="form.name" placeholder="璇疯緭鍏ラ」鐩�"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-form-item label="鍗曚綅"> + <el-input v-model="form.name" placeholder="璇疯緭鍏ュ崟浣�" style="width: 220px;"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="modifyevent = false">鍙� 娑�</el-button> + <el-button type="primary" @click="modifyevent = false">纭� 瀹�</el-button> + </span> + </el-dialog> </div> - <!-- 涓讳綋鍙� --> - <div class="right"> - <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"> - </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="unit" - label="鍗曚綅"> - </el-table-column> - <el-table-column - prop="address" - label="鎿嶄綔" - width="200px"> - <template slot-scope="scope" style="text-align: center;"> - <el-button type="text" size="mini" @click="childrenClick(scope)">缂栬緫</el-button> - <el-button type="text" size="mini" @click="deleteRow(scope.$index, scope.row)">鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> + <div class="choose"> + <span>绫诲瀷锛�</span> + <el-select v-model="search.type" size="small" placeholder="璇烽�夋嫨" @change="TYpe" + style="width: 224px;margin-right: 30px;"> + <el-option v-for="(a, ai) in bigType" :key="ai" :value="a"></el-option> + </el-select> </div> - <div> - <el-dialog title="缂栬緫鎶�鏈唴瀹�" :visible.sync="upDia" width="500px"> - <div class="body"> - - <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="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-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="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-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="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-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.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-col> - </el-row> + <div class="thing"> + <!-- 涓讳綋宸� --> + <div class="left"> + <el-input v-model="search.technology" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" + clearable @input="query"></el-input> + <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 != '[2]' ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> + {{ data.code }} {{ data.name }}</span> + </div> + </el-tree> + </div> + <!-- 涓讳綋鍙� --> + <div class="right"> + <el-table :data="tableData" style="width: 100%;overflow-y: auto;min-height: 100%" max-height="100%" + row-key="name" border @select-all="selectAll" @select="selectTr" ref="multipleTable" + @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"> + </el-table-column> + <el-table-column prop="name" label="椤圭洰" sortable width="400px"> + <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="unit" label="鍗曚綅"> + </el-table-column> + <el-table-column prop="address" label="鎿嶄綔" width="200px"> + <template slot-scope="scope" style="text-align: center;"> + <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-col :span="4" style="font-size: 14px;text-align: right;">绫诲瀷:</el-col> + <el-col :span="16" :offset="1"> + <template> + <el-select v-model="edit.type" disabled placeholder="璇烽�夋嫨" @change="TYpe" + style="width: 306px;margin-right: 30px;"> + <el-option v-for="(a, ai) in bigType" :key="ai" :value="a"></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.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="16" :offset="1"> + <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="16" :offset="1"> + <el-input v-model="edit.unit" size="small" clearable></el-input> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitUpData">纭� 瀹�</el-button> + <el-button @click="upDia = false">鍙� 娑�</el-button> + </span> + </el-dialog> + </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: 98%;margin-right: 30px;"> + <el-option v-for="(a, ai) in bigType" :key="ai" :value="a"></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="璇烽�夋嫨" @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" style="width: 95%;" placeholder="璇烽�夋嫨" + @change="craftrow"> + <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> + </template> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="椤圭洰"> + <el-input v-model="form.project" style="width: 95%;" placeholder="璇疯緭鍏ラ」鐩�"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-form-item label="鍗曚綅"> + <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" style="width: 35.95%;"></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> + <el-dialog title="瀵煎嚭绫诲瀷閫夋嫨" :visible.sync="isDownload" width="30%"> + <el-col> + 璇烽�夋嫨绫诲瀷锛� + </el-col> + <el-select v-model="downloadTypeSelect" style="width: 100%;margin-top: 10px;" placeholder="璇烽�夋嫨"> + <el-option v-for="(a, ai) in typeTable" :key="ai" :value="a"></el-option> + </el-select> + <span slot="footer" class="dialog-footer"> + <el-button @click="isDownload = false">鍙� 娑�</el-button> + <el-button type="primary" @click="downloadSelect">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> </div> - <span slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitUpData">纭� 瀹�</el-button> - <el-button @click="upDia = false">鍙� 娑�</el-button> - </span> - </el-dialog> - </div> </div> </div> </template> <script> export default { - data() { - return { - search:{ - type:'', - technology:'', - }, - // handleClose:[], - checkTreeNode :{ - id:2, - }, - higherlevel:[], - value:{}, - options:[], - process:[], - filterNode:[], - list: [], - form:{ - father:'', - work:'', - name:'', - unit:'', - project:'', - }, - children:[], - modifyevent:false, - dialogVisible:false, - tableData: [], - typeselect:0, - upData:{}, - upDia:false, - craftapi:[], - edit:{ - - } - } - - }, - mounted() { - this.selectAllleft() - this.selectAllright() - + data() { + return { + search: { + type: 0, + technology: null, + }, + checkTreeNode: { + id: '', + }, + higherlevel: [], + value: {}, + options: [], + process: [], + filterNode: [], + list: [], + form: { + father: '', + work: '', + name: '', + unit: '', + project: '', + }, + children: [], + modifyevent: false, + dialogVisible: false, + isDownload: false,//瀵煎嚭鎸夐挳 + downloadTypeSelect: null, + typeTable: [], + tableData: [], + crafval: '', + typeselect: 0, + upData: {}, + upDia: false, + craftapi: [], + edit: { + techFather: '', + techName: '', + father: '', + name: '', + unit: '', + id: '', + }, + isAllSelect: false, + bigType: [] + } + }, + mounted() { + this.chooseType() + }, + methods: { + clickDownload() { + this.isDownload = true + this.typeTable = [] + let data=JSON.parse(JSON.stringify(this.bigType)) + data.unshift("鍏ㄩ儴") + this.typeTable=data }, - methods:{ - //缂栬緫 - 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() { - this.selecTech() - this.upDia = true - }, - submitUpData() {//纭畾 + downloadSelect() { + console.log(this.downloadTypeSelect); + + }, + handleSelectionChange() { - }, - //鍒犻櫎 - 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() - }, - add() { - this.dialogVisible = false - this.addTechMode() - }, - addTechMode() { - this.$axios.post(this.$api.url.addTechMode,{ - father:this.form.father, - name:this.form.project, - techTemId:this.form.name, - unit:this.form.unit, - }, { - headers: { - "Content-Type": "application/json" - } - }).then(res =>{ - this.$message.success('鏂板瀹屾垚') - this.selectAllright() - }) - }, - handleClose() { + }, + chooseType() { + this.$axios.get(this.$api.url.chooseType).then(res => { + this.bigType = res.data + this.typeselect = res.data[0] + this.search.type = res.data[0] + this.selectAllleft() + this.selectAllright() + }) + }, + handleSelectionChange(val) { + this.selects = val; + this.deleteList = []; + val.forEach((v) => { + if (v.id !== undefined) { + this.deleteList.push(v.id); + } + }); + }, + // 鍏ㄩ��/鍙栨秷閫夋搷浣� + selectAll(val) { + this.isAllSelect = !this.isAllSelect; + let data = this.tableData; + this.toggleSelect(data, this.isAllSelect, "all"); + }, + //閫夋嫨鏌愯 + selectTr(selection, row) { + this.$set(row, "isChecked", !row.isChecked); + this.$nextTick(() => { + this.isAllSelect = row.isChecked; + this.toggleSelect(row, row.isChecked, "tr"); + }); + }, + toggleSelection(row, flag) { + this.$set(row, "isChecked", flag); + this.$nextTick(() => { + if (flag) { + this.$refs.multipleTable.toggleRowSelection(row, flag); + } else { + this.$refs.multipleTable.clearSelection(); + } + }); + }, + //閫掑綊瀛愮骇 + toggleSelect(data, flag, type) { + if (type === "all") { + if (data.length > 0) { + data.forEach((item) => { + this.toggleSelection(item, flag); + if (item.children && item.children.length > 0) { + this.toggleSelect(item.children, flag, type); + } + }); + } + } else { + if (data.children && data.children.length > 0) { + data.children.forEach((item) => { + item.isChecked = !item.isChecked; + this.$refs.multipleTable.toggleRowSelection(item, flag); + this.toggleSelect(item, flag, type); + }); + } + } + }, + //--------------------------------------------------------------------------------------------------------------------------------------- + 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] + }) + }, + childrenClick(val) { + this.upData = val + this.selecTech() + this.upDia = true + }, + writeTechByIdskill() { + 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() */ + this.$parent.removeAllTab() + }) + }, + submitUpData() { //纭畾 + this.writeTechByIdskill() + this.upDia = false + }, + //鍒犻櫎 + delTechBy() { + this.$axios.post(this.$api.url.delTechBy, { + id: this.upData.id + }).then(res => { + /* this.selectAllright() */ + this.$message.success('鍒犻櫎瀹屾垚') + this.$parent.removeAllTab() + }) + }, + 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() */ + this.$parent.removeAllTab() + }) + }, + dels() { + let ee = [] + this.selects.forEach(el => { + if (el.children) { + el.children.forEach(ele => { + ee.push(ele.id) + }) + } + }) + // cc.splice(0,1) + this.delete = ee.join(',') + this.delAllTechskill() + this.$message.success('鍒犻櫎瀹屾垚') + }, + add() { + this.dialogVisible = false + this.addTechMode() + this.form = {}; + }, + electadd(value) { + this.higherlevel.push({}); + this.form.father = value; + }, + addTechMode() { + this.$axios.post(this.$api.url.addTechMode, { + father: this.form.father, + name: this.form.project, + techTemId: this.form.name, + unit: this.form.unit, + }, { + headers: { + "Content-Type": "application/json" + } + }).then(res => { + this.$message.success('鏂板瀹屾垚') + this.selectAllright() - }, - TYpe(val) { - this.typeselect = val - console.log(this.typeselect); - this.selectAllleft() - }, - //涓讳綋宸� - selectAllleft() { - this.$axios.get(this.$api.url.selectAllleft,{ - params:{type:this.typeselect,message:this.search.technology} + }) + }, + TYpe(val) { + this.typeselect = val + this.selectAllleft() + }, + edittype(val) { + this.typeselect = val + this.chooseTechFath() + }, + //涓讳綋宸� + selectAllleft() { + this.$axios.get(this.$api.url.selectAllleft, { + params: { + type: this.typeselect, + message: this.search.technology + } }).then(res => { this.list = res.data; - console.log(this.list); - }) - }, - // - //鏌ヨ - query(val) { - this.selectAllleft() - }, - selectAllright() { - this.$axios.get(this.$api.url.selectAllright,{ - params:{id:this.checkTreeNode.id} + 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] + let name = one.children[0].id + this.checkTreeNode.id = 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); }); - }, - //涓婄骇 - chooseProFath() { - console.log(this.checkTreeNode.id); - this.$axios.get(this.$api.url.chooseProFath,{ - params:{techTemId:this.checkTreeNode.id} - }).then(res => { + }, + // + //鏌ヨ + query(val) { + this.selectAllleft() + }, + //鍙� + selectAllright() { + this.$axios.get(this.$api.url.selectAllright, { + params: { + id: this.checkTreeNode.id + } + }).then(res => { + this.tableData = res.data; + }); + }, + craftrow(val) { + this.crafval = val + this.chooseProFath() + }, + //涓婄骇 + chooseProFath() { + this.$axios.get(this.$api.url.chooseProFath, { + params: { + techTemId: this.crafval + } + }).then(res => { this.higherlevel = res.data; - console.log(this.higherlevel); }, { headers: { - "Content-Type": "application/json" - } - }) - }, - //宸ュ簭宸ヨ壓 - chooseTechFath() { - this.$axios.get(this.$api.url.chooseTechFath,{ - params:{type:this.typeselect} - }).then(res => { + "Content-Type": "application/json" + } + }) + }, + //宸ュ簭宸ヨ壓 + chooseTechFath() { + this.$axios.get(this.$api.url.chooseTechFath, { + params: { + type: this.typeselect + } + }).then(res => { this.process = res.data; - console.log(this.process); }, { headers: { - "Content-Type": "application/json" - } - }) - }, - workevent(val){ - console.log(val); - 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); - this.selectAllright() - }, - event(){ - this.dialogVisible = true - this.chooseProFath() - this.chooseTechFath() - }, - modify(){ - this.modifyevent = true - }, - // 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('鍒犻櫎瀹屾垚') - }, - - } - } + "Content-Type": "application/json" + } + }) + }, + workevent(val) { + let idx = this.process.findIndex(el => el.name === val) + this.craftapi = this.process[idx].children + }, + + handleNodeClick(data) { + this.checkTreeNode = data + this.selectAllright() + }, + event() { + this.dialogVisible = true + this.chooseProFath() + this.chooseTechFath() + }, + modify() { + this.modifyevent = true + }, + //缂栬緫 + + } +} </script> <style scoped> - .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; - } +.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; +} - .title { - margin-bottom: 10px; - padding: 0 20px; - } +.title { + margin-bottom: 10px; + padding: 0 20px; +} - .title * { - font-size: 16px; - } +.title * { + font-size: 16px; +} - .choose { - padding: 21px 24px; - display: flex; - align-items: center; - background-color: #fff; - border-bottom: 3px solid rgb(245, 247, 251); - } +.choose { + padding: 21px 24px; + display: flex; + align-items: center; + background-color: #fff; + border-bottom: 3px solid rgb(245, 247, 251); +} - .choose * { - font-size: 14px; - } +.choose * { + font-size: 14px; +} - .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; - } +.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 { - width: 100%; - height: calc(100% - 120px); - background-color: #fff; - display: flex; - } +.thing { + width: 100%; + height: calc(100% - 78px); + background-color: #fff; + display: flex; +} - .thing .left { - width: 295px; - height: calc(100% - 20px); - border-right: 3px solid rgb(245, 247, 251); - padding: 16px; - } +.thing .left { + width: 295px; + height: calc(100% - 20px); + border-right: 3px solid rgb(245, 247, 251); + padding: 16px; + overflow-y: auto; +} - .thing .left .custom-tree-node span { - font-size: 14px; - } +.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; - } +.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; - } +.node_i { + color: orange; +} - .el-icon-delete { - display: none; - color: #004EA2; - } +.el-icon-delete { + display: none; + color: #004EA2; +} - .custom-tree-node:hover .el-icon-delete { - display: inline; - } +.custom-tree-node:hover .el-icon-delete { + display: inline; +} - .thing .right { - width: calc(100% - 305px); - height: calc(100% - 25px); - overflow: hidden; - padding: 10px; - } +.thing .right { + width: calc(100% - 305px); + height: calc(100% - 25px); + overflow: hidden; + padding: 10px; +} - .table_do { - color: #004ea0; - cursor: pointer; - } +.table_do { + color: #004ea0; + cursor: pointer; +} + .firstDiv { - /* float: left; + /* float: left; width: 20px; height: 20px; border-radius: 60px; @@ -622,28 +717,29 @@ display: flex; align-items: center; margin-right: 8px; */ - /* border-radius: 60px; */ + /* border-radius: 60px; */ } -.el-tag{ - border-radius: 50%; + +.el-tag { + border-radius: 50%; } </style> <style> - .record_content .title .el-button * { - font-size: 14px; - } +.record_content .title .el-button * { + font-size: 14px; +} - .record_content .title .el-button--default { - color: #004EA2; - } +.record_content .title .el-button--default { + color: #004EA2; +} - .record_content .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { - background: rgba(58, 124, 253, 0.2); - color: #004EA2; - } +.record_content .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { + background: rgba(58, 124, 253, 0.2); + color: #004EA2; +} - .record_content .el-tree-node__content { - height: 30px; - border-radius: 2px; - } -</style> +.record_content .el-tree-node__content { + height: 30px; + border-radius: 2px; +} +</style> \ No newline at end of file -- Gitblit v1.9.3