¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog |
| | | :visible.sync="batchCopyDia" |
| | | class="more-edit" |
| | | title="æ¹éç¼è¾" |
| | | width="90%" |
| | | > |
| | | <el-row> |
| | | <el-col :span="6" class="search_thing"> |
| | | <div class="search_label">æ ·ååç§°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="sample" disabled size="small"> |
| | | <template slot="append" |
| | | ><el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="selectStandardTree = true" |
| | | ></el-button |
| | | ></template> |
| | | </el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6" class="search_thing"> |
| | | <div class="search_label">æ£éªæ åï¼</div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | v-model="standardMethodListId" |
| | | :loading="methodLoad" |
| | | clearable |
| | | placeholder="请è¾å
¥" |
| | | size="small" |
| | | @change="changeStandardMethodListId" |
| | | @focus="methodFocus" |
| | | > |
| | | <el-option |
| | | v-for="item in methods" |
| | | :key="item.id" |
| | | :label="item.code" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12" style="text-align: right"> |
| | | <el-button size="small" type="primary" @click="sortCopy" |
| | | >æåºå¤å¶</el-button |
| | | > |
| | | <el-button size="small" type="primary" @click="compareAlone" |
| | | >åç¬å¯¹æ¯</el-button |
| | | > |
| | | <el-button size="small" type="primary" @click="compare" |
| | | >å¤å¶</el-button |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | <div |
| | | class="body" |
| | | style="display: flex; flex-direction: row; height: 80vh" |
| | | > |
| | | <div v-loading="productTableLoading1" style="width: 50%"> |
| | | <div>éè¦å¤å¶çæ£éªé¡¹</div> |
| | | <el-table |
| | | ref="productTable1" |
| | | :data="productList1" |
| | | :fit="true" |
| | | :row-key="(row) => row.id" |
| | | border |
| | | header-row-class-name="header-class" |
| | | height="90%" |
| | | highlight-current-row |
| | | stripe |
| | | style="width: 98%" |
| | | tooltip-effect="dark" |
| | | @select="handleSelectionChange1" |
| | | @select-all="handleSelectAll1" |
| | | > |
| | | <el-table-column type="selection" width="50"> </el-table-column> |
| | | <el-table-column |
| | | label="产å" |
| | | min-width="100" |
| | | prop="sample" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="åå·" |
| | | min-width="100" |
| | | prop="model" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="æ£éªé¡¹åç±»" |
| | | min-width="140" |
| | | prop="inspectionItemClass" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | column-key="inspectionItem" |
| | | label="æ£éªé¡¹" |
| | | min-width="140" |
| | | prop="inspectionItem" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | column-key="inspectionItemSubclass" |
| | | label="æ£éªé¡¹å项" |
| | | min-width="140" |
| | | prop="inspectionItemSubclass" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="è¦æ±å¼" |
| | | min-width="200px" |
| | | prop="ask" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="è¦æ±æè¿°" |
| | | min-width="220px" |
| | | prop="tell" |
| | | ></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div v-loading="productTableLoading0" style="width: 50%"> |
| | | <div>å½åæ£éªé¡¹</div> |
| | | <el-table |
| | | ref="productTable0" |
| | | :data="productList0" |
| | | :fit="true" |
| | | :row-key="(row) => row.id" |
| | | border |
| | | header-row-class-name="header-class" |
| | | height="90%" |
| | | highlight-current-row |
| | | stripe |
| | | style="width: 98%" |
| | | tooltip-effect="dark" |
| | | @select="handleSelectionChange0" |
| | | @select-all="handleSelectAll0" |
| | | > |
| | | <el-table-column type="selection" width="50"> </el-table-column> |
| | | <el-table-column |
| | | label="产å" |
| | | min-width="100" |
| | | prop="sample" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="åå·" |
| | | min-width="100" |
| | | prop="model" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="æ£éªé¡¹åç±»" |
| | | min-width="140" |
| | | prop="inspectionItemClass" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | column-key="inspectionItem" |
| | | label="æ£éªé¡¹" |
| | | min-width="140" |
| | | prop="inspectionItem" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | column-key="inspectionItemSubclass" |
| | | label="æ£éªé¡¹å项" |
| | | min-width="140" |
| | | prop="inspectionItemSubclass" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="è¦æ±å¼" |
| | | min-width="200px" |
| | | prop="ask" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="è¦æ±æè¿°" |
| | | min-width="220px" |
| | | prop="tell" |
| | | ></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | :visible.sync="selectStandardTree" |
| | | title="éæ©æ ·å" |
| | | width="500px" |
| | | > |
| | | <div |
| | | v-if="selectStandardTree" |
| | | v-loading="selectStandardTreeLoading" |
| | | class="body" |
| | | style="height: 60vh; overflow-y: auto; user-select: none" |
| | | > |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-input |
| | | v-model="search" |
| | | clearable |
| | | placeholder="è¾å
¥å
³é®åè¿è¡æç´¢" |
| | | size="small" |
| | | style="margin-bottom: 5px" |
| | | suffix-icon="el-icon-search" |
| | | @blur="searchFilter" |
| | | @clear="searchFilter" |
| | | @keyup.enter.native="searchFilter" |
| | | ></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-tree |
| | | ref="tree" |
| | | :data="list" |
| | | :default-expanded-keys="expandedKeys" |
| | | :filter-node-method="filterNode" |
| | | :props="{ children: 'children', label: 'label' }" |
| | | highlight-current |
| | | node-key="label" |
| | | @node-click="handleNodeClick" |
| | | @node-expand="nodeOpen" |
| | | @node-collapse="nodeClose" |
| | | > |
| | | <div slot-scope="{ node, data }" class="custom-tree-node"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <span |
| | | ><i |
| | | :class="`node_i ${ |
| | | data.children != undefined |
| | | ? data.code === '[1]' |
| | | ? 'el-icon-folder-opened' |
| | | : 'el-icon-folder' |
| | | : 'el-icon-tickets' |
| | | }`" |
| | | ></i> |
| | | {{ data.code }} {{ data.label }}</span |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-tree> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="selectStandardTree = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="activeStandardTree">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="compareDia" title="确认å¤å¶ä¿¡æ¯" width="80%"> |
| | | <div style="width: 100%"> |
| | | <el-table |
| | | ref="compareList" |
| | | :data="compareList" |
| | | :fit="true" |
| | | :row-key="(row) => row.id" |
| | | border |
| | | header-row-class-name="header-class" |
| | | height="90%" |
| | | highlight-current-row |
| | | stripe |
| | | style="width: 98%" |
| | | tooltip-effect="dark" |
| | | > |
| | | <el-table-column |
| | | label="产å" |
| | | min-width="100" |
| | | prop="sample" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="åå·" |
| | | min-width="100" |
| | | prop="model" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | label="æ£éªé¡¹åç±»" |
| | | min-width="140" |
| | | prop="inspectionItemClass" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | column-key="inspectionItem" |
| | | label="æ£éªé¡¹" |
| | | min-width="140" |
| | | prop="inspectionItem" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | column-key="inspectionItemSubclass" |
| | | label="æ£éªé¡¹å项" |
| | | min-width="140" |
| | | prop="inspectionItemSubclass" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column label="è¦æ±å¼" min-width="200px" prop="ask"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.ask" |
| | | :autosize="{ minRows: 1, maxRows: 3 }" |
| | | clearable |
| | | placeholder="è¦æ±å¼" |
| | | size="small" |
| | | type="textarea" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="è¦æ±æè¿°" min-width="220px" prop="tell"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.tell" |
| | | :autosize="{ minRows: 1, maxRows: 3 }" |
| | | clearable |
| | | placeholder="è¦æ±æè¿°" |
| | | size="small" |
| | | type="textarea" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" prop="section" width="160"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="sectionUp(scope.row)" |
| | | >åºé´è®¾ç½®</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="compareDia = false">å æ¶</el-button> |
| | | <el-button |
| | | :loading="handleCompareLoading" |
| | | size="small" |
| | | type="primary" |
| | | @click="handleCompare" |
| | | >ç¡® å®</el-button |
| | | > |
| | | </span> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | :close-on-click-modal="false" |
| | | :visible.sync="sectionUpDia" |
| | | title="åºé´è®¾ç½®" |
| | | width="80%" |
| | | > |
| | | <div class="body" style="padding: 5px 0"> |
| | | <el-table :data="sectionList" border height="350px" style="width: 100%"> |
| | | <el-table-column align="center" label="åºå·" type="index" width="70"> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="åºé´"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.thing" |
| | | clearable |
| | | placeholder="åºé´" |
| | | size="small" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="è¯æ°"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.cores" |
| | | clearable |
| | | placeholder="è¯æ°" |
| | | size="small" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="è¦æ±å¼"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.ask" |
| | | clearable |
| | | placeholder="è¦æ±å¼" |
| | | size="small" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="è¦æ±æè¿°"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.tell" |
| | | :autosize="{ minRows: 1, maxRows: 2 }" |
| | | clearable |
| | | placeholder="è¦æ±æè¿°" |
| | | size="small" |
| | | type="textarea" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="å¯¼ä½æè´¨"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.conductorMaterial" |
| | | clearable |
| | | placeholder="å¯¼ä½æè´¨" |
| | | size="small" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="导ä½ç±»å"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.conductorType" |
| | | clearable |
| | | placeholder="导ä½ç±»å" |
| | | size="small" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="åä»·" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.price" |
| | | clearable |
| | | placeholder="åä»·" |
| | | size="small" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="å·¥æ¶ç³»æ°" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.manHour" |
| | | clearable |
| | | placeholder="å·¥æ¶ç³»æ°" |
| | | size="small" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="æä½" width="70"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | circle |
| | | icon="el-icon-minus" |
| | | size="mini" |
| | | type="danger" |
| | | @click="sectionList.splice(scope.$index, 1)" |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="sectionUpDia = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="sectionLoadAdd">ä¿ å</el-button> |
| | | <el-button |
| | | icon="el-icon-plus" |
| | | type="primary" |
| | | @click="sectionList.push({ thing: '', price: '', manHour: '' })" |
| | | ></el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | selectStandardProductListByMethodId, |
| | | copyStandardProductSort, |
| | | copyStandardProductOne, |
| | | copyStandardProductList, |
| | | updateStandardProductListBatch, |
| | | selectStandardTreeList2, |
| | | selectsStandardMethodByFLSSM, |
| | | } from "@/api/standard/standardLibrary"; |
| | | export default { |
| | | name: "BatchCopy", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | props: { |
| | | selectTree1: { |
| | | type: String, |
| | | default: () => "", |
| | | }, |
| | | standardId: { |
| | | type: Number, |
| | | default: () => null, |
| | | }, |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | batchCopyDia: false, |
| | | productTableLoading0: false, |
| | | productList0: [], |
| | | productList1: [], |
| | | productTableLoading1: false, |
| | | moreSelects: [], |
| | | templateList: [], |
| | | sample: "", // æ ·ååç§° |
| | | selectStandardTree: false, |
| | | selectStandardTreeLoading: false, |
| | | list: [], |
| | | search: null, |
| | | expandedKeys: [], |
| | | selectTree: null, |
| | | standardMethodListId: null, |
| | | methodLoad: false, |
| | | methods: [], |
| | | oldStandardProductList: [], |
| | | newStandardProductList: [], |
| | | compareDia: false, |
| | | compareList: [], |
| | | sectionUpDia: false, |
| | | sectionList: [], |
| | | sectionRow: null, |
| | | handleCompareLoading: false, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.selectStandardTreeList(); |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // è·åå·¦è¾¹è¡¨æ ¼æ°æ® |
| | | getList() { |
| | | this.batchCopyDia = true; |
| | | this.productTableLoading0 = true; |
| | | selectStandardProductListByMethodId({ |
| | | id: this.standardId, |
| | | tree: this.selectTree1, |
| | | page: 1, |
| | | }).then((res) => { |
| | | this.productList0 = res.data.productList; |
| | | this.productTableLoading0 = false; |
| | | }); |
| | | }, |
| | | // æåºå¤å¶ |
| | | sortCopy() { |
| | | const params = { |
| | | oldStandardProductList: this.oldStandardProductList, |
| | | newStandardProductList: this.newStandardProductList, |
| | | }; |
| | | // æåºå¤å¶ |
| | | copyStandardProductSort(params).then((res) => { |
| | | if (res.code === 201) return; |
| | | this.$message.success("å¤å¶æå"); |
| | | this.compareDia = false; |
| | | this.batchCopyDia = false; |
| | | this.$emit("refreshList"); |
| | | }); |
| | | }, |
| | | compareAlone() { |
| | | const params = { |
| | | oldStandardProductList: this.oldStandardProductList, |
| | | newStandardProductList: this.newStandardProductList, |
| | | }; |
| | | // è°ååç¬æ¯è¾å·¦å³è¦æ±å¼çæ¥å£ |
| | | copyStandardProductOne(params).then((res) => { |
| | | if (res.code === 201) return; |
| | | this.compareDia = true; |
| | | this.compareList = res.data; |
| | | }); |
| | | }, |
| | | compare() { |
| | | const params = { |
| | | oldStandardProductList: this.oldStandardProductList, |
| | | newStandardProductList: this.newStandardProductList, |
| | | }; |
| | | // è°åæ¯è¾å·¦å³è¦æ±å¼çæ¥å£ |
| | | copyStandardProductList(params).then((res) => { |
| | | if (res.code === 201) return; |
| | | this.compareDia = true; |
| | | this.compareList = res.data; |
| | | }); |
| | | }, |
| | | // æäº¤å¤å¶ä¿¡æ¯ |
| | | handleCompare() { |
| | | const params = { |
| | | standardProductList: this.compareList, |
| | | }; |
| | | this.handleCompareLoading = true; |
| | | // è°åæ¯è¾å·¦å³è¦æ±å¼çæ¥å£ |
| | | updateStandardProductListBatch(params) |
| | | .then((res) => { |
| | | this.handleCompareLoading = false; |
| | | if (res.code === 201) return; |
| | | this.$message.success("å¤å¶æå"); |
| | | this.compareDia = false; |
| | | this.batchCopyDia = false; |
| | | this.$emit("refreshList"); |
| | | this.compareList = res.data; |
| | | }) |
| | | .catch((res) => { |
| | | this.handleCompareLoading = false; |
| | | }); |
| | | }, |
| | | // åºé´è®¾ç½® |
| | | sectionUp(row) { |
| | | if (Array.isArray(row)) { |
| | | // 弿¯ä¸ä¸ªæ°ç» |
| | | if (row.length === 0) { |
| | | return this.$message.error("è¯·éæ©æ£éªé¡¹"); |
| | | } |
| | | this.sectionRow = {}; |
| | | this.sectionUpDia = true; |
| | | this.sectionList = []; |
| | | } else { |
| | | // 弿¯ä¸ä¸ªå¯¹è±¡ |
| | | this.sectionRow = row; |
| | | this.sectionUpDia = true; |
| | | this.sectionList = []; |
| | | if (this.sectionRow.section != null && this.sectionRow.section != "") { |
| | | JSON.parse(this.sectionRow.section).forEach((a, ai) => { |
| | | if (this.sectionRow.cores !== null) { |
| | | this.sectionList.push({ |
| | | thing: a, |
| | | ask: JSON.parse(this.sectionRow.ask)[ai], |
| | | tell: JSON.parse(this.sectionRow.tell)[ai], |
| | | price: JSON.parse(this.sectionRow.price)[ai], |
| | | manHour: JSON.parse(this.sectionRow.manHour)[ai], |
| | | cores: JSON.parse(this.sectionRow.cores)[ai], |
| | | conductorMaterial: |
| | | this.sectionRow.conductorMaterial && |
| | | JSON.parse(this.sectionRow.conductorMaterial)[ai], |
| | | conductorType: |
| | | this.sectionRow.conductorType && |
| | | JSON.parse(this.sectionRow.conductorType)[ai], |
| | | }); |
| | | } else { |
| | | this.sectionList.push({ |
| | | thing: a, |
| | | ask: JSON.parse(this.sectionRow.ask)[ai], |
| | | tell: JSON.parse(this.sectionRow.tell)[ai], |
| | | price: JSON.parse(this.sectionRow.price)[ai], |
| | | manHour: JSON.parse(this.sectionRow.manHour)[ai], |
| | | conductorMaterial: |
| | | this.sectionRow.conductorMaterial && |
| | | JSON.parse(this.sectionRow.conductorMaterial)[ai], |
| | | conductorType: |
| | | this.sectionRow.conductorType && |
| | | JSON.parse(this.sectionRow.conductorType)[ai], |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | // åºé´ä¿å |
| | | sectionLoadAdd() { |
| | | let sectionList = []; |
| | | let askList = []; |
| | | let tellList = []; |
| | | let priceList = []; |
| | | let manHourList = []; |
| | | let coresList = []; |
| | | let conductorMaterialList = []; |
| | | let conductorTypeList = []; |
| | | this.sectionList.forEach((a) => { |
| | | if (a.thing !== "") { |
| | | sectionList.push(a.thing); |
| | | askList.push(a.ask); |
| | | tellList.push(a.tell); |
| | | priceList.push(a.price); |
| | | manHourList.push(a.manHour); |
| | | coresList.push(a.cores); |
| | | conductorMaterialList.push(a.conductorMaterial); |
| | | conductorTypeList.push(a.conductorType); |
| | | } |
| | | }); |
| | | if (sectionList.length === 0) { |
| | | this.sectionRow.section = null; |
| | | this.sectionRow.ask = null; |
| | | this.sectionRow.tell = null; |
| | | this.sectionRow.price = null; |
| | | this.sectionRow.manHour = null; |
| | | this.sectionRow.cores = null; |
| | | this.sectionRow.conductorMaterial = null; |
| | | this.sectionRow.conductorType = null; |
| | | } else { |
| | | this.sectionRow.section = JSON.stringify(sectionList); |
| | | this.sectionRow.ask = JSON.stringify(askList); |
| | | this.sectionRow.tell = JSON.stringify(tellList); |
| | | this.sectionRow.price = JSON.stringify(priceList); |
| | | this.sectionRow.manHour = JSON.stringify(manHourList); |
| | | this.sectionRow.cores = JSON.stringify(coresList); |
| | | this.sectionRow.conductorMaterial = JSON.stringify( |
| | | conductorMaterialList |
| | | ); |
| | | this.sectionRow.conductorType = JSON.stringify(conductorTypeList); |
| | | } |
| | | this.sectionUpDia = false; |
| | | }, |
| | | // è·åæ ·ååç§°æ |
| | | selectStandardTreeList() { |
| | | this.selectStandardTreeLoading = true; |
| | | selectStandardTreeList2().then((res) => { |
| | | this.list = res.data; |
| | | this.list.forEach((a) => { |
| | | this.expandedKeys.push(a.label); |
| | | }); |
| | | this.selectStandardTreeLoading = false; |
| | | }); |
| | | }, |
| | | // éæ©æ ·ååç§°çåè° |
| | | handleNodeClick(val, node, el) { |
| | | this.selectTree = ""; |
| | | this.getNodeParent(node); |
| | | let flag = false; |
| | | if (node.level == 3) { |
| | | if (node.data.children.length > 0) { |
| | | node.data.children.forEach((a) => { |
| | | let key = Object.keys(a); |
| | | if (!key.includes("level")) { |
| | | flag = true; |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | this.selectTree = this.selectTree.replace(" - ", ""); |
| | | if (flag) { |
| | | this.selectTree = " - - " + this.selectTree; |
| | | } |
| | | let data = this.selectTree.split(" - "); |
| | | let data2 = ""; |
| | | for (let index = data.length - 1; index >= 0; index--) { |
| | | data2 += " - " + data[index]; |
| | | } |
| | | this.selectTree = data2.replace(" - ", ""); |
| | | }, |
| | | getNodeParent(val) { |
| | | if (val.parent != null) { |
| | | if (val.data.children === null) { |
| | | this.selectTree += " - " + val.label + " - " + "null"; |
| | | } else { |
| | | this.selectTree += " - " + val.label; |
| | | } |
| | | this.getNodeParent(val.parent); |
| | | } |
| | | }, |
| | | changeStandardMethodListId() { |
| | | // æ ¹æ®æ£éªæ 忥å³è¾¹tableæ°æ® |
| | | this.getRightList(); |
| | | }, |
| | | getRightList() { |
| | | this.productTableLoading1 = true; |
| | | selectStandardProductListByMethodId({ |
| | | id: this.standardMethodListId, |
| | | tree: this.selectTree, |
| | | page: 1, |
| | | }).then((res) => { |
| | | this.productList1 = res.data.productList; |
| | | this.productTableLoading1 = false; |
| | | }); |
| | | }, |
| | | // èç¦æ¶ï¼æ¥è¯¢æ£éªæ å |
| | | methodFocus() { |
| | | this.selectsStandardMethodByFLSSM(); |
| | | }, |
| | | selectsStandardMethodByFLSSM() { |
| | | this.methodLoad = true; |
| | | selectsStandardMethodByFLSSM({ |
| | | tree: this.selectTree, |
| | | }).then((res) => { |
| | | this.methodLoad = false; |
| | | try { |
| | | if ( |
| | | res.data.standardMethodList.length == 0 && |
| | | this.selectTree.split("-").length == 5 |
| | | ) { |
| | | let arr = this.selectTree.split("-"); |
| | | let arr0 = arr.slice(0, arr.length - 1); |
| | | let selectTree = arr0 |
| | | .join("-") |
| | | .substring(0, arr0.join("-").length - 1); |
| | | selectsStandardMethodByFLSSM({ |
| | | tree: selectTree, |
| | | }).then((ress) => { |
| | | this.methods = ress.data.standardMethodList; |
| | | }); |
| | | } else { |
| | | this.methods = res.data.standardMethodList; |
| | | } |
| | | } catch (e) {} |
| | | }); |
| | | }, |
| | | activeStandardTree() { |
| | | let trees = this.selectTree.split(" - "); |
| | | if (trees.length < 3) { |
| | | this.$message.error("æªéæ©å¯¹è±¡"); |
| | | return; |
| | | } |
| | | if (trees[3] === undefined || trees[3] === "" || trees[3] === "- ") { |
| | | this.sample = trees[2]; |
| | | } else { |
| | | this.sample = trees[3]; |
| | | } |
| | | this.selectStandardTree = false; |
| | | }, |
| | | handleSelectionChange0(val) { |
| | | this.oldStandardProductList = val; |
| | | }, |
| | | handleSelectAll0(val) { |
| | | this.oldStandardProductList = val; |
| | | }, |
| | | handleSelectionChange1(val) { |
| | | this.newStandardProductList = val; |
| | | }, |
| | | handleSelectAll1(val) { |
| | | this.newStandardProductList = val; |
| | | }, |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | searchFilter() { |
| | | this.$refs.tree.filter(this.search); |
| | | }, |
| | | 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"); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .search { |
| | | width: calc(100% - 40px); |
| | | background-color: #fff; |
| | | padding: 5px 40px 5px 0; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 50px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 70px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 80px); |
| | | } |
| | | .node_i { |
| | | color: orange; |
| | | font-size: 18px; |
| | | } |
| | | .dialog-footer { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | margin: 10px; |
| | | } |
| | | </style> |