From 2e9370979f871bf47f6dc145c49d7bf32ffa4b51 Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期一, 03 六月 2024 09:08:02 +0800 Subject: [PATCH] 完成光纤配置进行检验 --- src/components/view/b2-standard.vue | 726 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 654 insertions(+), 72 deletions(-) diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue index 093d106..1dbd59a 100644 --- a/src/components/view/b2-standard.vue +++ b/src/components/view/b2-standard.vue @@ -1,12 +1,12 @@ <style scoped> .standard { - padding: 20px 0; + padding: 10px 0; display: flex; } .left { width: 270px; - height: calc(100% - 40px - 30px); + height: calc(100% - 40px - 10px); background-color: white; padding: 15px; } @@ -38,8 +38,8 @@ } .right .title { - height: 50px; - line-height: 50px; + height: 34px; + line-height: 34px; padding: 0 10px; background-color: white; } @@ -51,19 +51,72 @@ .product_table { border-top: 1px solid #ebeef5; - height: calc(100% - 275px); + height: calc(100% - 235px); margin-top: 5px; background-color: white; user-select: none; } .product_table .el-table { - height: 100%; + height: calc(100% - 35px) !important; } .sort { width: 80% !important; overflow: hidden; + } + + >>>.el-table__body-wrapper { + height: calc(100% - 46px) !important; + } + + >>>.header-class { + height: 40px !important; + } + + >>>.header-class th.el-table__cell>.cell { + line-height: 20px !important; + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + >>>.el-table__row { + height: 35px !important; + } + + .search { + height: 20%; + border-bottom: 1px solid #ebeef5; + margin-bottom: 16px; + display: flex; + align-items: center; + box-sizing: border-box; + padding-bottom: 10px; + } + + .search-item { + display: flex; + align-items: center; + flex-wrap: wrap; + } + + .search-item .el-row { + display: flex; + align-items: center; + } + + .search-item .el-col { + margin-left: 0; + } + + .more-edit .dialog-footer { + position: absolute; + top: 15px; + right: 70px; + } + + >>>.is-disabled .el-textarea__inner { + background: rgba(0, 0, 0, 0.05) !important; } </style> <style> @@ -78,7 +131,7 @@ } .standard .has-gutter .el-table__cell .cell { - line-height: 38px; + line-height: 34px; background-color: #f8f8f8; } @@ -92,6 +145,11 @@ .standard .el-table .warning-row .cell { color: #bababa; + } + + .el-table-filter__list{ + max-height: 400px; + overflow-y: auto; } </style> @@ -114,12 +172,12 @@ style="height:calc(100% - 30px);overflow-y: scroll;scrollbar-width: none;"> <div class="custom-tree-node" slot-scope="{ node, data }"> <el-row style="width: 100%;"> - <el-col :span="21" :class="{sort:node.level>3}"> + <el-col :span="21" :class="{sort:node.level>3}" :title="data.label"> <span><i - :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></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-col :span="2" style="text-align: right;" v-if="delStandardTree"> + <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)"> <i class="el-icon-delete"></i> </el-button> @@ -129,22 +187,16 @@ </el-tree> </div> <div class="right"> - <el-row class="title"> - <el-col :span="24" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> - <!-- <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''"> --> - <!-- <el-button size="small" type="primary" @click="addStandardDia = true" - v-if="addStandardMethod">鏂板鏍囧噯</el-button> - <el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">鏂板椤圭洰</el-button> - <el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct"> - <i class="el-icon-delete" style="color: #3A7BFA;"></i> - <span style="color: #3A7BFA;">鍒犻櫎</span> - </el-button> --> - <!-- </el-col> --> + <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;" + v-if="upStandardProduct">鎵归噺缂栬緫</el-button> </el-row> <el-row class="standard_table" v-loading="tableLoad"> - <el-table class="el-table" :data="standardList" style="width: 100%;height: 220px !important;overflow-y: auto;" tooltip-effect="dark" - highlight-current-row @row-click="rowClick" ref="standard"> - <el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip width="180"> + <el-table class="el-table" :data="standardList" style="width: 100%;height: 220px !important;" height="220" + tooltip-effect="dark" highlight-current-row @row-click="rowClick" ref="standard" + header-row-class-name="header-class"> + <el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip width="200"> <template slot-scope="scope"> <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span> </template> @@ -163,15 +215,15 @@ <el-row class="product_table" v-loading="tableLoad2"> <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" - @select="upProductSelect" @select-all="handleAll"> - <el-table-column type="selection" width="65"> + @select="upProductSelect" @select-all="handleAll" class="productTable" header-row-class-name="header-class"> + <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></el-table-column> <!-- <el-table-column prop="inspectionItemClassify" label="妫�楠岄」绫诲瀷" width="120" show-overflow-tooltip></el-table-column> --> <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" show-overflow-tooltip></el-table-column> - <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip :filters="filters" - :filter-method="filterHandler"></el-table-column> + <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip></el-table-column> <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="200px"> <template slot-scope="scope"> <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable @@ -198,12 +250,41 @@ </template> </el-table-column> <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="price" label="鍗曚环(鍏�)" width="90" show-overflow-tooltip></el-table-column> - <el-table-column prop="manHour" label="宸ユ椂(H)" width="90" show-overflow-tooltip></el-table-column> + <el-table-column prop="price" label="鍗曚环(鍏�)" width="120"> + <template slot-scope="scope"> + <el-input v-model="scope.row.price" size="small" placeholder="鍗曚环(鍏�)" + @change="(value)=>upStandardProductListOfPrice(value,scope.row.id)" v-if="upStandardProduct"> + </el-input> + <span v-else>{{scope.row.price}}</span> + </template> + </el-table-column> + <el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="120"> + <template slot-scope="scope"> + <el-input v-model="scope.row.manHour" size="small" placeholder="鍗曚环(鍏�)" + @change="(value)=>upStandardProductListOfManHour(value,scope.row.id)" v-if="upStandardProduct"> + </el-input> + <span v-else>{{scope.row.manHour}}</span> + </template> + </el-table-column> <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="deviceGroup" label="璁惧缁�" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="templateId" label="妯℃澘" width="200"> + <template slot-scope="scope"> + <el-select v-model="scope.row.templateId" size="small" filterable :disabled="!upStandardProduct" + @change="(value)=>upStandardProductListOfTemplate(value,scope.row.id)"> + <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> + </el-select> + </template> + </el-table-column> <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="section" label="鎿嶄綔" width="120"> + <template slot-scope="scope"> + <el-button type="text" @click="sectionUp(scope.row)">鍖洪棿璁剧疆</el-button> + </template> + </el-table-column> </el-table> + <el-pagination style="position: absolute;right: 16px;bottom: 1px;" @current-change="handleCurrentChange" + :current-page="currentPage" layout="total, prev, pager, next, jumper" :page-size="50" :total="total"> + </el-pagination> </el-row> </div> <el-dialog title="鍒嗙被娣诲姞" :visible.sync="addDia" width="400px"> @@ -246,31 +327,151 @@ <el-button type="primary" @click="addStandardTree" :loading="addLoad">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog title="鏂板鏍囧噯" :visible.sync="addStandardDia" width="400px"> - <div class="body"> - <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-select v-model="standardId" size="small" style="width: 100%;" clearable> - <el-option v-for="(a, ai) in standardEnum" :key="ai" :value="a.value" :label="a.label"></el-option> - </el-select> - </el-col> - </el-row> + <el-dialog title="鎵归噺缂栬緫" :visible.sync="moreEdit" width="90%" class="more-edit"> + <div class="body" style="display: flex;flex-direction: column;height: 80vh;"> + <div class="search"> + <div class="search-item"> + <el-row style="width: 25%;margin-bottom: 16px;"> + <el-col :span="6" style="text-align: right;"> + <!-- <span class="required-span">* </span> --> + 瑕佹眰鍊硷細</el-col> + <el-col :span="16"> + <el-input size="small" v-model="moreInfo.ask" clearable :disabled="moreSelects.length==0"></el-input> + </el-col> + </el-row> + <el-row style="width: 25%;margin-bottom: 16px;"> + <el-col :span="6" style="text-align: right;"> + <!-- <span class="required-span">* </span> --> + 瑕佹眰鎻忚堪锛�</el-col> + <el-col :span="16" style="display: flex;align-items: flex-start;height: 100%;"> + <el-input size="small" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3}" + v-model="moreInfo.tell" :disabled="moreSelects.length==0"></el-input> + </el-col> + </el-row> + <el-row style="width: 25%;margin-bottom: 16px;"> + <el-col :span="6" style="text-align: right;"> + <!-- <span class="required-span">* </span> --> + 璇曢獙鏂规硶锛�</el-col> + <el-col :span="16"> + <el-select v-model="moreInfo.methodS" size="small" filterable style="width: 100%;" + :disabled="moreSelects.length==0"> + <el-option v-for="(a, ai) in methodList" :key="ai" :label="a.label" :value="a.value"></el-option> + </el-select> + </el-col> + </el-row> + <el-row style="width: 25%;margin-bottom: 16px;"> + <el-col :span="6" style="text-align: right;"> + <!-- <span class="required-span">* </span> --> + 鍗曚环(鍏�)锛�</el-col> + <el-col :span="16"> + <el-input size="small" v-model="moreInfo.price" clearable :disabled="moreSelects.length==0"></el-input> + </el-col> + </el-row> + <el-row style="width: 25%;"> + <el-col :span="6" style="text-align: right;"> + <!-- <span class="required-span">* </span> --> + 宸ユ椂绯绘暟锛�</el-col> + <el-col :span="16"> + <el-input size="small" v-model="moreInfo.manHour" clearable + :disabled="moreSelects.length==0"></el-input> + </el-col> + </el-row> + <el-row style="width: 25%;"> + <el-col :span="6" style="text-align: right;"> + <!-- <span class="required-span">* </span> --> + 妯℃澘锛�</el-col> + <el-col :span="16"> + <el-select v-model="moreInfo.templateId" size="small" filterable placeholder="妯℃澘" style="width: 100%;" + :disabled="moreSelects.length==0"> + <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> + </el-select> + </el-col> + </el-row> + <el-row style="width: 50%;"> + <el-col :span="23" style="display: flex;align-items: center;justify-content: end;"> + <el-button type="primary" size="small" @click="sectionUp(moreSelects)">璁剧疆鍖洪棿</el-button> + <el-button @click="moreEdit = false" size="small">鍙� 娑�</el-button> + <el-button type="primary" @click="subMoreEdit" :loading="moreEditLoad" size="small">淇� 瀛�</el-button> + </el-col> + </el-row> + </div> + </div> + <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"> + <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> + <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> + <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"></el-table-column> + <el-table-column prop="methodS" label="璇曢獙鏂规硶" width="200"></el-table-column> + <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="price" label="鍗曚环(鍏�)" width="120"></el-table-column> + <el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="120"></el-table-column> + <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="templateId" label="妯℃澘" width="200"> + <template slot-scope="scope"> + {{ templateList.find(item => item.id == scope.row.templateId)?templateList.find(item => item.id == scope.row.templateId).name:'' }} + </template> + </el-table-column> + <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> + </el-table> + <el-pagination style="position: absolute;right: 16px;bottom: 4px;" @current-change="handleCurrentChange0" + :current-page="currentPage0" layout="total, prev, pager, next, jumper" :page-size="100" :total="total0"> + </el-pagination> + </div> </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="addStandardDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addStandardMethodList" :loading="addLoad2">纭� 瀹�</el-button> - </span> </el-dialog> - <el-dialog title="鏂板椤圭洰" :visible.sync="addProductDia" width="70%"> - <div class="body" style="height: 60vh;" v-if="addProductDia"> - <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData" /> + <el-dialog title="鍖洪棿璁剧疆" :visible.sync="sectionUpDia" width="70%"> + <div class="body" style="padding: 5px 0;"> + <el-table :data="sectionList" border style="width: 100%" height="350px"> + <el-table-column type="index" label="搴忓彿" width="70" align="center"> + </el-table-column> + <el-table-column label="鍖洪棿" align="center"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.thing" clearable placeholder="鍖洪棿"></el-input> + </template> + </el-table-column> + <el-table-column label="瑕佹眰鍊�" align="center"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.ask" clearable placeholder="瑕佹眰鍊�"></el-input> + </template> + </el-table-column> + <el-table-column label="瑕佹眰鎻忚堪" align="center"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable type="textarea" + :autosize="{ minRows: 1, maxRows: 2}"></el-input> + </template> + </el-table-column> + <el-table-column label="鍗曚环" align="center" width="120"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.price" clearable placeholder="鍗曚环"></el-input> + </template> + </el-table-column> + <el-table-column label="宸ユ椂绯绘暟" align="center" width="120"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.manHour" clearable placeholder="宸ユ椂绯绘暟"></el-input> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" width="70" align="center"> + <template slot-scope="scope"> + <el-button size="mini" type="danger" icon="el-icon-minus" circle + @click="sectionList.splice(scope.$index, 1)"></el-button> + </template> + </el-table-column> + </el-table> </div> <span slot="footer" class="dialog-footer"> - <el-button @click="addProductDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">纭� 瀹�</el-button> + <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> </div> @@ -351,7 +552,55 @@ selectField: {}, }, expandedKeys: [], - filters: [] + filters: [], + sectionUpDia: false, + sectionLoad: false, + sectionRow: null, + sectionList: [], + templateList: [], + total: 0, + currentPage: 1, + standardId: 0, + moreEdit: false, + moreEditLoad: false, + moreSelects: [], + total0: 0, + currentPage0: 1, + productList0: [], + moreInfo: { + ask: '', + tell: '', + methodS: '', + price: '', + manHour: '', + templateId: '' + }, + methodList: [], + productTableLoading0: false, + filters0: [], + filters1: [], + pages: 1, + inspectionItem: null, + inspectionItemSubclass: null, + sonLaboratory: null + } + }, + watch: { + moreEdit(val) { + if (!val) { + this.$refs.productTable0.clearSelection() + this.moreSelects = [] + this.currentPage0 = 1; + this.productList0 = [] + this.moreInfo = { + ask: '', + tell: '', + methodS: '', + price: '', + manHour: '', + templateId: '' + } + } } }, mounted() { @@ -368,6 +617,8 @@ this.selectEnumByCategoryForSpecial() this.selectEnumByCategoryForInspectionValueType() this.selectEnumByCategoryForSonLaboratory() + this.getStandardTemplate() + this.selectStandardMethods() }, methods: { filterNode(value, data) { @@ -381,6 +632,8 @@ this.upIndex++ }, handleNodeClick(val, node, el) { //鏍戠殑鍊� + this.total = 0 + this.currentPage = 1 this.selectTree = '' this.getNodeParent(node) this.selectTree = this.selectTree.replace(' - ', '') @@ -433,10 +686,10 @@ }, deleteStandard(arr, label) { arr.forEach((item, index) => { - if(item.label == label){ + if (item.label == label) { arr.splice(index, 1); - }else{ - item.children&&this.deleteStandard(item.children, label); + } else { + item.children && this.deleteStandard(item.children, label); } }) }, @@ -458,7 +711,7 @@ category: "瀛愬疄楠屽" }).then(res => { this.factory = [] - res.data.forEach(a=>{ + res.data.forEach(a => { this.filters.push({ text: a.label, value: a.value @@ -593,14 +846,14 @@ this.$message.success('娣诲姞鎴愬姛') this.addDia = false this.list - .find(a => a.label == this.addOb.factory).children - .find(a => a.label == this.addOb.laboratory).children - .find(a => a.label == this.addOb.sampleType).children - .find(a => a.label == this.addOb.sample).children.push({ - code:'[5]', - label: this.addOb.model, - value: this.addOb.model, - }) + .find(a => a.label == this.addOb.factory).children + .find(a => a.label == this.addOb.laboratory).children + .find(a => a.label == this.addOb.sampleType).children + .find(a => a.label == this.addOb.sample).children.push({ + code: '[5]', + label: this.addOb.model, + value: this.addOb.model, + }) this.addLoad = false }).catch(e => { this.addDia = false @@ -707,7 +960,55 @@ this.$message.error('鏈繚瀛�') return } - this.$message.success('宸蹭繚瀛�') + // this.$message.success('宸蹭繚瀛�') + }) + }, + upStandardProductListOfPrice(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + price: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + // this.$message.success('宸蹭繚瀛�') + }) + }, + upStandardProductListOfManHour(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + manHour: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + // this.$message.success('宸蹭繚瀛�') + }) + }, + upStandardProductListOfTemplate(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + templateId: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + // this.$message.success('宸蹭繚瀛�') }) }, delStandardMethodByFLSSM(id) { @@ -780,12 +1081,16 @@ this.addProductDia = false }, rowClick(row, column, event) { + this.currentPage = 1; this.tableLoad2 = true + this.standardId = row.id this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { id: row.id, - tree: this.selectTree + tree: this.selectTree, + page: this.currentPage }).then(res => { - this.productList = res.data + this.productList = res.data.productList + this.total = res.data.total setTimeout(() => { this.productList.forEach(a => { if (a.state == 1) this.toggleSelection(a) @@ -807,7 +1112,7 @@ return ''; }, upProductSelect(selection, row) { - row.state = row.state == 1 ? 0 : 1 + row.state = (row.state == 1 ? 0 : 1) this.$axios.post(this.$api.standardTree.upStandardProductList, { id: row.id, state: row.state @@ -823,22 +1128,299 @@ // this.$message.success('宸蹭繚瀛�') }) }, - filterHandler(value, row, column) { - const property = column['property']; - return row[property] === value; + filterHandler(value) { + for (let column in value) { + if(value[column].length === 0){ + if(column==='inspectionItem'){ + this.inspectionItem = null + }else if(column === 'inspectionItemSubclass'){ + this.inspectionItemSubclass = null + }else if(column === 'sonLaboratory'){ + this.sonLaboratory = null + } + }else{ + if(column==='inspectionItem'){ + this.inspectionItem = value[column][0] + }else if(column === 'inspectionItemSubclass'){ + this.inspectionItemSubclass = value[column][0] + }else if(column === 'sonLaboratory'){ + this.sonLaboratory = value[column][0] + } + } + this.getList() + } }, handleAll(e) { if (e.length > 0) { this.productList.map(m => { + m.state = 0 this.upProductSelect(null, m) return m }) } else { this.productList.map(m => { + m.state = 1 this.upProductSelect(null, m) return m }) } + }, + sectionUp(row) { + if (Array.isArray(row)) { + // 鍊兼槸涓�涓暟缁� + if (row.length === 0) { + return this.$message.error('璇烽�夋嫨妫�楠岄」') + } + this.sectionRow = {} + this.sectionUpDia = true + } 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) => { + 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] + }) + }) + } + } + }, + sectionLoadAdd() { + let sectionList = [] + let askList = [] + let tellList = [] + let priceList = [] + let manHourList = [] + 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) + } + }) + if (sectionList.length === 0) { + this.sectionRow.section = null + this.sectionRow.ask = null + this.sectionRow.tell = null + this.sectionRow.price = null + this.sectionRow.manHour = 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.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' + } + }).then(res => { + this.sectionLoad = false + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + this.sectionUpDia = false + }) + } else { + this.$axios.post(this.$api.standardTree.upStandardProducts, { + ids: this.moreSelects.map(a => a.id), + standardProductList: { + 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' + } + }).then(res => { + this.sectionLoad = false + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + this.sectionUpDia = false + this.currentPage0 = 1; + this.getList() + this.rowClick({ + id: this.standardId + }) + }) + } + }, + getStandardTemplate() { + this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => { + this.templateList = res.data + }) + }, + handleCurrentChange(val) { + this.currentPage = val; + this.tableLoad2 = true + this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { + id: this.standardId, + tree: this.selectTree, + page: val + }).then(res => { + this.productList = res.data.productList + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 200) + this.tableLoad2 = false + }) + }, + async handleMore() { + if ((!this.standardId && this.standardId != 0) || this.standardList.length == 0) { + return this.$message.error('璇烽�夋嫨瀹為獙瀹ゃ�佹牱鍝�') + } + await this.getList() + this.moreEdit = true + }, + selectStandardMethods() { + this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.code, + value: a.code + }) + }) + this.methodList = data + }) + }, + subMoreEdit() { + if (this.moreSelects.length === 0) { + 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: JSON.stringify(this.moreSelects.map(a => a.id)), + standardProductList: this.moreInfo + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.moreEditLoad = false + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + this.currentPage0 = 1; + this.getList() + this.rowClick({ + id: this.standardId + }) + // this.moreInfo = { + // ask:'', + // tell:'', + // methodS:'', + // price:'', + // manHour:'', + // templateId:'' + // } + }) + }, + handleSelectAll0(rows) { + if (rows.length) { + rows.forEach(a => { + if (!this.moreSelects.find(b => a.id === b.id)) { + this.moreSelects.push(a) + } + }) + } else { + this.productList0.forEach(a => { + this.moreSelects = this.moreSelects.filter(b => b.id != a.id) + }) + } + }, + handleSelectionChange0(val, row) { + if (this.moreSelects.find(a => a.id === row.id)) { + this.moreSelects = this.moreSelects.filter(a => a.id != row.id) + } else { + this.moreSelects.push(row) + } + }, + getList() { + this.productTableLoading0 = true + this.getItemEnum() + this.$axios.post(this.$api.standardTree.selectStandardProductByMethodId, { + id: this.standardId, + tree: this.selectTree, + page: this.currentPage0, + laboratory: this.sonLaboratory, + items: this.inspectionItemSubclass, + item: this.inspectionItem + }).then(res => { + this.productList0 = res.data.records + this.total0 = res.data.total + this.productTableLoading0 = false + this.page = res.data.pages + this.$nextTick(() => { + this.productList0.forEach((a, i) => { + if (this.moreSelects.find(b => a.id == b.id)) { + this.$refs.productTable0.toggleRowSelection(this.productList0[i], true) + } + }) + }) + }) + }, + handleCurrentChange0(e) { + this.currentPage0 = e; + this.getList() + }, + getItemEnum(){ + this.$axios.post(this.$api.standardTree.selectStandardProductEnumByMethodId,{ + id: this.standardId, + tree: this.selectTree + }).then(res=>{ + this.filters0 = [] + this.filters1 = [] + res.data.item.forEach(a=>{ + this.filters0.push({ + text: a.inspectionItem, + value: a.inspectionItem + }) + }) + res.data.items.forEach(a=>{ + if(a!=null){ + this.filters1.push({ + text: a.inspectionItemSubclass, + value: a.inspectionItemSubclass + }) + } + }) + }) } } } -- Gitblit v1.9.3