From d67b3fe1341e508fc48be3de9bf403d76482d94c Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期五, 14 六月 2024 18:09:14 +0800 Subject: [PATCH] 标准库导入 --- src/components/view/b2-standard.vue | 272 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 157 insertions(+), 115 deletions(-) diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue index 7bce4a9..2d3cc6f 100644 --- a/src/components/view/b2-standard.vue +++ b/src/components/view/b2-standard.vue @@ -147,9 +147,28 @@ color: #bababa; } - .el-table-filter__list{ + .standard .el-table-filter__list { max-height: 400px; overflow-y: auto; + } + + .standard .el-upload { + width: 100%; + } + + .standard .el-upload-dragger { + width: 100%; + } + + .standard .handleBtn.is-disabled .el-upload:focus { + color: #C0C4CC !important; + } + + .standard .avatar-uploader .el-upload { + height: 80px; + display: flex; + align-items: center; + justify-content: center; } </style> @@ -173,9 +192,10 @@ <div class="custom-tree-node" slot-scope="{ node, data }"> <el-row style="width: 100%;"> <el-col :span="21" :class="{sort:node.level>3}" :title="data.label"> - <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> + <span> + <i :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i> + {{ data.label }} + </span> </el-col> <el-col :span="2" style="text-align: right;" v-if="delStandardTree&&node.level==5"> <el-button type="text" size="mini" @click.stop="remove(node, data)"> @@ -189,7 +209,8 @@ <div class="right"> <el-row class="title" style="width: 100%;"> <el-col :span="20" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> - <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 0px;top: 1px;" + <el-button size="small" type="primary" style="position: absolute;right: 100px;top: 1px;" @click="uploadDia = true" v-if="inExcelOfTreePower">瀵煎叆</el-button> + <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 5px;top: 1px;" v-if="upStandardProduct">鎵归噺缂栬緫</el-button> </el-row> <el-row class="standard_table" v-loading="tableLoad"> @@ -203,13 +224,6 @@ </el-table-column> <el-table-column prop="name" label="鏍囧噯鍚嶇О" show-overflow-tooltip></el-table-column> <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip></el-table-column> - <!-- <el-table-column prop="createUserName" label="鍒涘缓浜�"></el-table-column> - <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="250px"></el-table-column> --> - <!-- <el-table-column label="鎿嶄綔" width="100" align="center" v-if="delStandardMethod"> - <template slot-scope="scope"> - <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">鍒犻櫎</el-button> - </template> - </el-table-column> --> </el-table> </el-row> <el-row class="product_table" v-loading="tableLoad2"> @@ -289,7 +303,7 @@ </div> <el-dialog title="鍒嗙被娣诲姞" :visible.sync="addDia" width="400px"> <div class="body"> - <el-row style="line-height: 50px;"> + <!-- <el-row style="line-height: 50px;"> <el-col :span="6" style="text-align: right;">宸ュ巶锛�</el-col> <el-col :span="16" :offset="1"> <el-input size="small" readonly v-model="addOb.factory"></el-input> @@ -312,13 +326,13 @@ <el-col :span="16" :offset="1"> <el-input v-model="addOb.sample" readonly size="small"></el-input> </el-col> - </el-row> + </el-row> --> <el-row style="line-height: 50px;"> <el-col :span="6" style="text-align: right;"> <span class="required-span">* </span>鍨嬪彿锛� </el-col> <el-col :span="16" :offset="1"> - <el-input v-model="addOb.model" placeholder="璇疯緭鍏ュ瀷鍙�" clearable size="small"></el-input> + <el-input v-model="addOb.model" placeholder="璇疯緭鍏ュ瀷鍙�" clearable size="small" @keyup.enter.native="addStandardTree"></el-input> </el-col> </el-row> </div> @@ -399,14 +413,15 @@ <div style="flex: 1;overflow-y: auto;" v-loading="productTableLoading0"> <el-table :data="productList0" ref="productTable0" style="width: 100%;" height="94%" tooltip-effect="dark" stripe :fit="true" border @select-all="handleSelectAll0" @select="handleSelectionChange0" - header-row-class-name="header-class" :row-key="row=>row.id" @filter-change="filterHandler"> + header-row-class-name="header-class" :row-key="row=>row.id" @filter-change="filterHandler" highlight-current-row> <el-table-column type="selection" width="50"> </el-table-column> <el-table-column prop="model" label="鍨嬪彿" min-width="100" show-overflow-tooltip></el-table-column> <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip :filters="filters0" :filter-multiple="false" column-key="inspectionItem" filter-placement="bottom-start"></el-table-column> <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" show-overflow-tooltip - :filters="filters1" :filter-multiple="false" column-key="inspectionItemSubclass" filter-placement="bottom-start"></el-table-column> + :filters="filters1" :filter-multiple="false" column-key="inspectionItemSubclass" + filter-placement="bottom-start"></el-table-column> <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip :filters="filters" :filter-multiple="false" column-key="sonLaboratory" filter-placement="bottom-start"></el-table-column> <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="200px"></el-table-column> @@ -472,6 +487,20 @@ <el-button @click="sectionUpDia = false">鍙� 娑�</el-button> <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad">淇� 瀛�</el-button> <el-button type="primary" @click="sectionList.push({thing: ''})" icon="el-icon-plus"></el-button> + </span> + </el-dialog> + <el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px"> + <div style="margin: 0 auto;"> + <el-upload ref="upload" drag :action="javaApi + $api.standardTree.inExcelOfTree" :headers="token" :file-list="fileList" name="file" + :auto-upload="false" accept=".xlsx" :limit="1" :on-change="beforeUpload" :on-success="onSuccess" + :on-error="onError"> + <i class="el-icon-upload"></i> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + </el-upload> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="uploadDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitUpload()" :loading="uploading">涓� 浼�</el-button> </span> </el-dialog> </div> @@ -577,36 +606,17 @@ }, methodList: [], productTableLoading0: false, - filters0: [{ - text: '娴嬭瘯', - value: 0, - }, - { - text: '娴嬭瘯1', - value: 1, - }, - { - text: '娴嬭瘯2', - value: 2, - } - ], - filters1: [{ - text: '娴嬭瘯', - value: 0, - }, - { - text: '娴嬭瘯1', - value: 1, - }, - { - text: '娴嬭瘯2', - value: 2, - } - ], + filters0: [], + filters1: [], pages: 1, inspectionItem: null, inspectionItemSubclass: null, - sonLaboratory: null + sonLaboratory: null, + uploadDia: false, + token: null, + fileList: [], + inExcelOfTreePower: false, + uploading: false } }, watch: { @@ -643,6 +653,9 @@ this.selectEnumByCategoryForSonLaboratory() this.getStandardTemplate() this.selectStandardMethods() + this.token = { + 'token': sessionStorage.getItem('token') + } }, methods: { filterNode(value, data) { @@ -676,7 +689,11 @@ }, getNodeParent(val) { if (val.parent != null) { - this.selectTree += ' - ' + val.label + if(val.data.children === null){ + this.selectTree += ' - ' + val.label + ' - ' + '' + }else{ + this.selectTree += ' - ' + val.label + } this.getNodeParent(val.parent) } }, @@ -849,8 +866,8 @@ }) }, addStandardTree() { - if (this.addOb.sample == null || this.addOb.sample == '') { - this.$message.error('浜у搧涓嶅瓨鍦�') + if (this.addOb.sampleType == null || this.addOb.sampleType == '') { + this.$message.error('瀵硅薄涓嶅瓨鍦�') return } if (this.addOb.model == null || this.addOb.model == '') { @@ -908,6 +925,7 @@ let delStandardProduct = false let addStandardProduct = false let delStandardTree = false + let inExcelOfTreePower = false for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'addStandardTree') { add = true @@ -930,6 +948,9 @@ if (power[i].menuMethod == 'delStandardTree') { delStandardTree = true } + if (power[i].menuMethod == 'inExcelOfTree') { + inExcelOfTreePower = true + } } this.addPower = add this.addStandardMethod = addStandardMethod @@ -938,15 +959,14 @@ this.delStandardProduct = delStandardProduct this.addStandardProduct = addStandardProduct this.delStandardTree = delStandardTree + this.inExcelOfTreePower = inExcelOfTreePower }, upStandardProductList(value, index) { this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: index, - ask: value - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: index, + ask: value + }) }).then(res => { if (res.code == 201) { this.$message.error('鏈繚瀛�') @@ -957,12 +977,10 @@ }, upStandardProductListOfTell(value, index) { this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: index, - tell: value - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: index, + tell: value + }) }).then(res => { if (res.code == 201) { this.$message.error('鏈繚瀛�') @@ -973,12 +991,10 @@ }, upStandardProductListOfMethodS(value, index) { this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: index, - methodS: value - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: index, + methodS: value + }) }).then(res => { if (res.code == 201) { this.$message.error('鏈繚瀛�') @@ -989,12 +1005,10 @@ }, upStandardProductListOfPrice(value, index) { this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: index, - price: value - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: index, + price: value + }) }).then(res => { if (res.code == 201) { this.$message.error('鏈繚瀛�') @@ -1005,12 +1019,10 @@ }, upStandardProductListOfManHour(value, index) { this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: index, - manHour: value - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: index, + manHour: value + }) }).then(res => { if (res.code == 201) { this.$message.error('鏈繚瀛�') @@ -1021,12 +1033,10 @@ }, upStandardProductListOfTemplate(value, index) { this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: index, - templateId: value - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: index, + templateId: value + }) }).then(res => { if (res.code == 201) { this.$message.error('鏈繚瀛�') @@ -1138,12 +1148,10 @@ upProductSelect(selection, row) { row.state = (row.state == 1 ? 0 : 1) this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: row.id, - state: row.state - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: row.id, + state: row.state + }) }).then(res => { if (res.code == 201) { this.$message.error('鏈繚瀛�') @@ -1154,20 +1162,20 @@ }, filterHandler(value) { for (let column in value) { - if(value[column].length === 0){ - if(column==='inspectionItem'){ + if (value[column].length === 0) { + if (column === 'inspectionItem') { this.inspectionItem = null - }else if(column === 'inspectionItemSubclass'){ + } else if (column === 'inspectionItemSubclass') { this.inspectionItemSubclass = null - }else if(column === 'sonLaboratory'){ + } else if (column === 'sonLaboratory') { this.sonLaboratory = null } - }else{ - if(column==='inspectionItem'){ + } else { + if (column === 'inspectionItem') { this.inspectionItem = value[column][0] - }else if(column === 'inspectionItemSubclass'){ + } else if (column === 'inspectionItemSubclass') { this.inspectionItemSubclass = value[column][0] - }else if(column === 'sonLaboratory'){ + } else if (column === 'sonLaboratory') { this.sonLaboratory = value[column][0] } } @@ -1246,16 +1254,14 @@ this.sectionLoad = true if (this.moreSelects.length === 0) { this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: this.sectionRow.id, - section: this.sectionRow.section, - ask: this.sectionRow.ask, - tell: this.sectionRow.tell, - price: this.sectionRow.price, - manHour: this.sectionRow.manHour - }, { - headers: { - 'Content-Type': 'application/json' - } + str: JSON.stringify({ + id: this.sectionRow.id, + section: this.sectionRow.section, + ask: this.sectionRow.ask, + tell: this.sectionRow.tell, + price: this.sectionRow.price, + manHour: this.sectionRow.manHour + }) }).then(res => { this.sectionLoad = false if (res.code == 201) { @@ -1341,8 +1347,13 @@ return this.$message.error('璇烽�夋嫨妫�楠岄」') } this.moreEditLoad = true + for (let a in this.moreInfo) { + if (this.moreInfo[a] == '') { + delete this.moreInfo[a] + } + } this.$axios.post(this.$api.standardTree.upStandardProducts, { - ids: this.moreSelects.map(a => a.id), + ids: JSON.stringify(this.moreSelects.map(a => a.id)), standardProductList: this.moreInfo }, { headers: { @@ -1418,21 +1429,21 @@ this.currentPage0 = e; this.getList() }, - getItemEnum(){ - this.$axios.post(this.$api.standardTree.selectStandardProductEnumByMethodId,{ + getItemEnum() { + this.$axios.post(this.$api.standardTree.selectStandardProductEnumByMethodId, { id: this.standardId, tree: this.selectTree - }).then(res=>{ + }).then(res => { this.filters0 = [] this.filters1 = [] - res.data.item.forEach(a=>{ + res.data.item.forEach(a => { this.filters0.push({ text: a.inspectionItem, value: a.inspectionItem }) }) - res.data.items.forEach(a=>{ - if(a!=null){ + res.data.items.forEach(a => { + if (a != null) { this.filters1.push({ text: a.inspectionItemSubclass, value: a.inspectionItemSubclass @@ -1440,7 +1451,38 @@ } }) }) - } + }, + beforeUpload(file, fileList) { + if (file.raw.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { + this.$message.error('涓婁紶鏂囦欢鏍煎紡涓嶆纭�'); + this.$refs.upload.clearFiles() + return false; + } + }, + submitUpload() { + if (this.$refs.upload.uploadFiles.length == 0) { + this.$message.error('鏈�夋嫨鏂囦欢') + return + } + this.uploading = true + this.$refs.upload.submit(); + }, + onSuccess(response, file, fileList) { + this.$refs.upload.clearFiles() + this.uploadDia = false + this.uploading = false + if (response.code == 201) { + this.$message.error(response.message) + return + } + this.$message.success('涓婁紶鎴愬姛') + this.selectStandardTreeList() + }, + onError(err, file, fileList) { + this.$message.error('涓婁紶澶辫触') + this.$refs.upload.clearFiles() + this.uploading = false + }, } } </script> -- Gitblit v1.9.3