From 7ff62e110f5ebf6f39ac55b275c550f14e335bd2 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期一, 17 二月 2025 11:39:52 +0800 Subject: [PATCH] 标准库屏蔽批量编辑等功能 --- src/components/view/b2-standard.vue | 2815 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 1,688 insertions(+), 1,127 deletions(-) diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue index fcdb692..8657809 100644 --- a/src/components/view/b2-standard.vue +++ b/src/components/view/b2-standard.vue @@ -1,174 +1,177 @@ <style scoped> - .standard { - padding: 10px 0; - display: flex; - } +.standard { + padding: 10px 0; + display: flex; +} - .left { - width: 330px; - height: calc(100% - 40px - 10px); - background-color: white; - padding: 15px; - } +.left { + width: 330px; + height: calc(100% - 40px - 10px); + background-color: white; + padding: 15px; +} - .custom-tree-node { - width: 100%; - line-height: 32px; - } +.custom-tree-node { + width: 100%; + line-height: 32px; +} - .custom-tree-node .el-icon-delete { - color: #3A7BFA; - opacity: 0; - font-size: 18px; - } +.custom-tree-node .el-icon-delete { + color: #3a7bfa; + opacity: 0; + font-size: 18px; +} - .custom-tree-node:hover .el-icon-delete { - opacity: 1; - } +.custom-tree-node:hover .el-icon-delete { + opacity: 1; +} - .node_i { - color: orange; - font-size: 18px; - } +.node_i { + color: orange; + font-size: 18px; +} - .right { - margin-left: 5px; - width: calc(100% - 365px); - height: calc(100% - 40px); - } +.right { + margin-left: 5px; + width: calc(100% - 365px); + height: calc(100% - 40px); +} - .right .title { - height: 34px; - line-height: 34px; - padding: 0 10px; - background-color: white; - } +.right .title { + height: 34px; + line-height: 34px; + padding: 0 10px; + background-color: white; +} - .standard_table { - border-top: 1px solid #ebeef5; - background-color: white; - } +.standard_table { + border-top: 1px solid #ebeef5; + background-color: white; +} - .product_table { - border-top: 1px solid #ebeef5; - height: calc(100% - 235px); - margin-top: 5px; - background-color: white; - user-select: none; - } +.product_table { + border-top: 1px solid #ebeef5; + height: calc(100% - 235px); + margin-top: 5px; + background-color: white; + user-select: none; +} - .product_table .el-table { - height: calc(100% - 35px) !important; - } +.product_table .el-table { + height: calc(100% - 35px) !important; +} - .sort { - width: 80% !important; - overflow: hidden; - } +.sort { + width: 80% !important; + overflow: hidden; +} - >>>.el-table__body-wrapper { - height: calc(100% - 46px) !important; - } +>>> .el-table__body-wrapper { + height: calc(100% - 46px) !important; +} - >>>.header-class { - height: 40px !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; - } +>>> .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; - } +>>> .el-table__row { + height: 35px !important; +} - .search { - border-bottom: 1px solid #ebeef5; - margin-bottom: 16px; - display: flex; - align-items: center; - box-sizing: border-box; - padding-bottom: 10px; - } +.search { + 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 { + display: flex; + align-items: center; + flex-wrap: wrap; +} - .search-item .el-row { - display: flex; - align-items: center; - } +.search-item .el-row { + display: flex; + align-items: center; +} - .search-item .el-col { - margin-left: 0; - } +.search-item .el-col { + margin-left: 0; +} - .more-edit .dialog-footer { - position: absolute; - top: 15px; - right: 70px; - } +.more-edit .dialog-footer { + position: absolute; + top: 15px; + right: 70px; +} - >>>.is-disabled .el-textarea__inner { - background: rgba(0, 0, 0, 0.05) !important; - } +>>> .is-disabled .el-textarea__inner { + background: rgba(0, 0, 0, 0.05) !important; +} </style> <style> - .standard .el-tree-node__content { - height: 32px; - font-size: 14px; - border-radius: 2px; - } +.standard .el-tree-node__content { + height: 32px; + font-size: 14px; + border-radius: 2px; +} - .standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { - color: #3A7BFA; - } +.standard + .el-tree--highlight-current + .el-tree-node.is-current + > .el-tree-node__content { + color: #3a7bfa; +} - .standard .has-gutter .el-table__cell .cell { - line-height: 34px; - background-color: #f8f8f8; - } +.standard .has-gutter .el-table__cell .cell { + line-height: 34px; + background-color: #f8f8f8; +} - .standard .has-gutter .el-table__cell { - background-color: #fafafa !important; - } +.standard .has-gutter .el-table__cell { + background-color: #fafafa !important; +} - .standard .standard_table .el-table__row .cell { - font-size: 14px; - } +.standard .standard_table .el-table__row .cell { + font-size: 14px; +} - .standard .el-table .warning-row .cell { - color: #bababa; - } +.standard .el-table .warning-row .cell { + color: #bababa; +} - .standard .el-table-filter__list { - max-height: 400px; - overflow-y: auto; - } +.standard .el-table-filter__list { + max-height: 400px; + overflow-y: auto; +} - .standard .el-upload { - width: 100%; - } +.standard .el-upload { + width: 100%; +} - .standard .el-upload-dragger { - width: 100%; - } +.standard .el-upload-dragger { + width: 100%; +} - .standard .handleBtn.is-disabled .el-upload:focus { - color: #C0C4CC !important; - } +.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; - } +.standard .avatar-uploader .el-upload { + height: 80px; + display: flex; + align-items: center; + justify-content: center; +} </style> <template> @@ -176,28 +179,83 @@ <div class="left"> <el-row> <el-col :span="20"> - <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small" - style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"></el-input> + <el-input + placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" + suffix-icon="el-icon-search" + v-model="search" + size="small" + style="margin-bottom: 5px;" + clearable + @blur="searchFilter" + @clear="searchFilter" + ></el-input> </el-col> - <el-col :span="4" style="text-align: center;line-height: 30px;" v-if="addPower"> - <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button> + <el-col + :span="4" + style="text-align: center;line-height: 30px;" + v-if="addPower" + > + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + circle + @click="addDia = true" + ></el-button> </el-col> </el-row> - <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" - :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" - @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false" + <el-tree + :data="list" + ref="tree" + :props="{ children: 'children', label: 'label' }" + node-key="label" + :filter-node-method="filterNode" + @node-click="handleNodeClick" + highlight-current + @node-expand="nodeOpen" + @node-collapse="nodeClose" + v-loading="treeLoad" + :expand-on-click-node="false" :default-expanded-keys="expandedKeys" - style="height:calc(100% - 30px);overflow-y: scroll;scrollbar-width: none;"> + 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}" :title="data.label" style="text-align: left;"> + <el-col + :span="21" + :class="{ sort: node.level > 3 }" + :title="data.label" + style="text-align: left;" + > <span> - <i :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i> + <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.data.children===null||node.data.children===undefined)"> - <el-button type="text" size="mini" @click.stop="remove(node, data)"> + <el-col + :span="2" + style="text-align: right;" + v-if=" + delStandardTree && + (node.data.children === null || + node.data.children === undefined) + " + > + <el-button + type="text" + size="mini" + @click.stop="remove(node, data)" + > <i class="el-icon-delete"></i> </el-button> </el-col> @@ -207,100 +265,250 @@ </div> <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" style="position: absolute;right: 170px;top: 1px;" @click="handleDown" v-if="inExcelOfTreePower" :loading="outLoading">瀵煎嚭</el-button> + <el-col :span="20" style="font-size: 14px;color: #999;">{{ + selectTree + }}</el-col> + <!-- <el-button size="small" type="primary" style="position: absolute;right: 170px;top: 1px;" @click="handleDown" v-if="inExcelOfTreePower" :loading="outLoading">瀵煎嚭</el-button> <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> + 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;" 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"> + <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> + <span style="color: red;font-size: 14px;">{{ + scope.row["code"] + }}</span> </template> </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="name" + label="鏍囧噯鍚嶇О" + show-overflow-tooltip + ></el-table-column> + <el-table-column + prop="remark" + label="澶囨敞" + show-overflow-tooltip + ></el-table-column> </el-table> </el-row> <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" class="productTable" header-row-class-name="header-class"> - <el-table-column type="selection" width="50"> - </el-table-column> - <el-table-column prop="sample" label="浜у搧" min-width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="model" label="鍨嬪彿" min-width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="inspectionItemClass" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" show-overflow-tooltip></el-table-column> - <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被(EN)" min-width="140" show-overflow-tooltip></el-table-column> - <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column> + <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" + class="productTable" + header-row-class-name="header-class" + > + <el-table-column type="selection" width="50"> </el-table-column> + <el-table-column + prop="sample" + label="浜у搧" + min-width="100" + show-overflow-tooltip + ></el-table-column> + <el-table-column + prop="model" + label="鍨嬪彿" + min-width="100" + show-overflow-tooltip + ></el-table-column> + <el-table-column + prop="inspectionItemClass" + v-if="PROJECT === '瑁呭鐢电紗'" + label="妫�楠岄」鍒嗙被" + min-width="140" + show-overflow-tooltip + ></el-table-column> + <el-table-column + prop="inspectionItemClassEn" + v-if="PROJECT === '瑁呭鐢电紗'" + label="妫�楠岄」鍒嗙被(EN)" + min-width="140" + 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></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 + ></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 - @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" - :autosize="{ minRows: 1, maxRows: 3}"></el-input> - <span v-else>{{scope.row.ask}}</span> + <el-input + size="small" + placeholder="瑕佹眰鍊�" + v-model="scope.row.ask" + clearable + @change="value => upStandardProductList(value, scope.row.id)" + v-if="upStandardProduct" + type="textarea" + :autosize="{ minRows: 1, maxRows: 3 }" + ></el-input> + <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"> <template slot-scope="scope"> - <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable - @change="(value)=>upStandardProductListOfTell(value,scope.row.id)" v-if="upStandardProduct" - type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input> - <span v-else>{{scope.row.ask}}</span> + <el-input + size="small" + placeholder="瑕佹眰鎻忚堪" + v-model="scope.row.tell" + clearable + @change=" + value => upStandardProductListOfTell(value, scope.row.id) + " + v-if="upStandardProduct" + type="textarea" + :autosize="{ minRows: 1, maxRows: 3 }" + ></el-input> + <span v-else>{{ scope.row.ask }}</span> </template> </el-table-column> <el-table-column prop="method" label="璇曢獙鏂规硶" width="200"> <template slot-scope="scope"> - <el-select v-model="scope.row.methodS" size="small" placeholder="璇曢獙鏂规硶" - @change="(value)=>upStandardProductListOfMethodS(value,scope.row.id)" v-if="upStandardProduct"> - <el-option v-for="(a,i) in JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option> + <el-select + v-model="scope.row.methodS" + size="small" + placeholder="璇曢獙鏂规硶" + @change=" + value => upStandardProductListOfMethodS(value, scope.row.id) + " + v-if="upStandardProduct" + > + <el-option + v-for="(a, i) in JSON.parse(scope.row.method)" + :key="i" + :label="a" + :value="a" + ></el-option> </el-select> - <span v-else>{{scope.row.methodS}}</span> + <span v-else>{{ scope.row.methodS }}</span> </template> </el-table-column> - <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></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"> <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 + 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> + <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 + 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> + <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="manHourGroup" + label="宸ユ椂鍒嗙粍" + width="100" + 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 + 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" + 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> + <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 + 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> @@ -335,939 +543,1252 @@ <span class="required-span">* </span>鍨嬪彿锛� </el-col> <el-col :span="16" :offset="1"> - <el-input v-model="addOb.model" placeholder="璇疯緭鍏ュ瀷鍙�" clearable size="small" @keyup.enter.native="addStandardTree"></el-input> + <el-input + v-model="addOb.model" + placeholder="璇疯緭鍏ュ瀷鍙�" + clearable + size="small" + @keyup.enter.native="addStandardTree" + ></el-input> </el-col> </el-row> </div> <span slot="footer" class="dialog-footer"> <el-button @click="addDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addStandardTree" :loading="addLoad">纭� 瀹�</el-button> + <el-button type="primary" @click="addStandardTree" :loading="addLoad" + >纭� 瀹�</el-button + > </span> </el-dialog> - <el-dialog title="鎵归噺缂栬緫" :visible.sync="moreEdit" width="90%" class="more-edit"> - <div class="body" style="display: flex;flex-direction: column;height: 85vh;"> + <el-dialog + title="鎵归噺缂栬緫" + :visible.sync="moreEdit" + width="90%" + class="more-edit" + > + <div + class="body" + style="display: flex;flex-direction: column;height: 85vh;" + > <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 + > <el-col :span="16"> - <el-input size="small" v-model="moreInfo.ask" clearable :disabled="moreSelects.length==0"></el-input> + <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-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 + > <el-col :span="16"> - <el-select v-model="moreInfo.methodS" size="small" filterable style="width: 100%;" - :disabled="moreSelects.length==0" clearable> - <el-option v-for="(a, ai) in methodList" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-select + v-model="moreInfo.methodS" + size="small" + filterable + style="width: 100%;" + :disabled="moreSelects.length == 0" + clearable + > + <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 + > <el-col :span="16"> - <el-input size="small" v-model="moreInfo.price" clearable :disabled="moreSelects.length==0"></el-input> + <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 + > <el-col :span="16"> - <el-input size="small" v-model="moreInfo.manHour" clearable - :disabled="moreSelects.length==0"></el-input> + <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 + > <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 + 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: 25%;"> - <el-col :span="6" style="text-align: right;"> - 鏄惁鍚敤锛�</el-col> + <el-col :span="6" style="text-align: right;"> 鏄惁鍚敤锛�</el-col> <el-col :span="16"> - <el-select v-model="moreInfo.state" size="small" filterable placeholder="妯℃澘" style="width: 100%;" - :disabled="moreSelects.length==0" clearable> + <el-select + v-model="moreInfo.state" + size="small" + filterable + placeholder="妯℃澘" + style="width: 100%;" + :disabled="moreSelects.length == 0" + clearable + > <el-option label="鍚敤" :value="1"></el-option> <el-option label="涓嶅惎鐢�" :value="0"></el-option> </el-select> </el-col> </el-row> <el-row style="width: 100%;margin-top: 8px;"> - <el-col :span="24" style="display: flex;align-items: center;justify-content: end;"> - <el-button @click="clearProduct(1)" size="small" type="danger">閲嶇疆鍗曚环</el-button> - <el-button @click="clearProduct(2)" size="small" type="danger">閲嶇疆宸ユ椂绯绘暟</el-button> - <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 + :span="24" + style="display: flex;align-items: center;justify-content: end;" + > + <el-button @click="clearProduct(1)" size="small" type="danger" + >閲嶇疆鍗曚环</el-button + > + <el-button @click="clearProduct(2)" size="small" type="danger" + >閲嶇疆宸ユ椂绯绘暟</el-button + > + <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="96%" 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" highlight-current-row> - <el-table-column type="selection" width="50"> - </el-table-column> - <el-table-column prop="sample" label="浜у搧" min-width="100" show-overflow-tooltip></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 + :data="productList0" + ref="productTable0" + style="width: 100%;" + height="96%" + 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" + highlight-current-row + > + <el-table-column type="selection" width="50"> </el-table-column> + <el-table-column + prop="sample" + label="浜у搧" + min-width="100" + show-overflow-tooltip + ></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:'' }} + {{ + 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-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 + 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> </el-dialog> - <el-dialog title="鍖洪棿璁剧疆" :visible.sync="sectionUpDia" width="70%" :close-on-click-modal="false"> + <el-dialog + title="鍖洪棿璁剧疆" + :visible.sync="sectionUpDia" + width="70%" + :close-on-click-modal="false" + > <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> + <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> + <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> + <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> + <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> + <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> + <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="sectionUpDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad">淇� 瀛�</el-button> - <el-button type="primary" @click="sectionList.push({thing: '',price: sectionRow.price,manHour: sectionRow.manHour})" icon="el-icon-plus"></el-button> + <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad" + >淇� 瀛�</el-button + > + <el-button + type="primary" + @click=" + sectionList.push({ + thing: '', + price: sectionRow.price, + manHour: sectionRow.manHour + }) + " + 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 + '/' + isEquipment" :headers="token" :file-list="fileList" name="file" - :auto-upload="false" accept=".xlsx" :limit="1" :on-change="beforeUpload" :on-success="onSuccess" - :on-error="onError"> + <el-upload + ref="upload" + drag + :action=" + javaApi + $api.standardTree.inExcelOfTree + '/' + isEquipment + " + :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> + <el-button type="primary" @click="submitUpload()" :loading="uploading" + >涓� 浼�</el-button + > </span> </el-dialog> </div> </template> <script> - import ValueTable from '../tool/value-table.vue' - export default { - components: { - ValueTable +import ValueTable from "../tool/value-table.vue"; +export default { + components: { + ValueTable + }, + data() { + return { + search: null, + list: [], + selectTree: "", + factory: [], + addDia: false, + addOb: { + factory: null, + laboratory: null, + sampleType: null, + sample: null, + model: null + }, + laboratory: [], + addLoad: false, + sampleType: [], + sample: [], + treeLoad: false, + addPower: false, + standardList: [], + standardEnum: [], + addStandardDia: false, + standardId: null, + addStandardMethod: true, + addLoad2: false, + productList: [], + tableLoad: false, + tableLoad2: false, + upStandardProduct: false, + delStandardMethod: false, + selects: [], + delStandardProduct: false, + addProductDia: false, + productId: null, + addStandardProduct: false, + addLoad3: false, + productEnum: [], + componentData: { + entity: { + orderBy: { + field: "id", + order: "asc" + } + }, + isIndex: true, + showSelect: true, + select: true, + do: [], + tagField: { + inspectionItemType: { + select: [] + }, + valueType: { + select: [] + }, + bsm: { + select: [] + }, + inspectionValueType: { + select: [] + }, + deviceGroup: { + select: [] + } + }, + selectField: {} + }, + expandedKeys: [], + 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: "", + state: null + }, + methodList: [], + productTableLoading0: false, + filters0: [], + filters1: [], + pages: 1, + inspectionItem: null, + inspectionItemSubclass: null, + sonLaboratory: null, + uploadDia: false, + token: null, + fileList: [], + inExcelOfTreePower: false, + uploading: false, + isEquipment: false, + outLoading: false + }; + }, + 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() { + this.getPower(); + this.selectEnumByCategoryForFactory(); + this.selectStandardTreeList(); + this.obtainItemParameterList(); + this.selectTestObjectByName(); + this.selectStandardMethods(); + this.selectEnumByCategoryForDevice(); + this.selectEnumByCategory(); + this.selectEnumByCategoryForValue(); + this.selectEnumByCategoryForSpecial(); + this.selectEnumByCategoryForInspectionValueType(); + this.selectEnumByCategoryForSonLaboratory(); + this.getStandardTemplate(); + this.selectStandardMethods(); + (this.token = { + token: sessionStorage.getItem("token") + }), + (this.isEquipment = this.PROJECT === "瑁呭鐢电紗" ? true : false); + }, + methods: { + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; }, - data() { - return { - search: null, - list: [], - selectTree: '', - factory: [], - addDia: false, - addOb: { - factory: null, - laboratory: null, - sampleType: null, - sample: null, - model: null - }, - laboratory: [], - addLoad: false, - sampleType: [], - sample: [], - treeLoad: false, - addPower: false, - standardList: [], - standardEnum: [], - addStandardDia: false, - standardId: null, - addStandardMethod: true, - addLoad2: false, - productList: [], - tableLoad: false, - tableLoad2: false, - upStandardProduct: false, - delStandardMethod: false, - selects: [], - delStandardProduct: false, - addProductDia: false, - productId: null, - addStandardProduct: false, - addLoad3: false, - productEnum: [], - componentData: { - entity: { - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: true, - showSelect: true, - select: true, - do: [], - tagField: { - inspectionItemType: { - select: [] - }, - valueType: { - select: [] - }, - bsm: { - select: [] - }, - inspectionValueType: { - select: [] - }, - deviceGroup: { - select: [] - } - }, - selectField: {}, - }, - expandedKeys: [], - 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: '', - state: null - }, - methodList: [], - productTableLoading0: false, - filters0: [], - filters1: [], - pages: 1, - inspectionItem: null, - inspectionItemSubclass: null, - sonLaboratory: null, - uploadDia: false, - token: null, - fileList: [], - inExcelOfTreePower: false, - uploading: false, - isEquipment: false, - outLoading:false + searchFilter() { + this.$refs.tree.filter(this.search); + }, + refresh() { + this.upIndex++; + }, + handleNodeClick(val, node, el) { + //鏍戠殑鍊� + this.total = 0; + this.currentPage = 1; + this.selectTree = ""; + this.getNodeParent(node); + this.selectTree = this.selectTree.replace(" - ", ""); + let data = this.selectTree.split(" - "); + let data2 = ""; + for (let index = data.length - 1; index >= 0; index--) { + data2 += " - " + data[index]; + } + this.selectTree = data2.replace(" - ", ""); + this.selectsStandardMethodByFLSSM(); + let trees = this.selectTree.split(" - "); + this.addOb.factory = trees[0]; + this.addOb.laboratory = trees[1]; + this.addOb.sampleType = trees[2]; + this.addOb.sample = trees[3]; + }, + 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); } }, - 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() { - this.getPower() - this.selectEnumByCategoryForFactory() - this.selectStandardTreeList() - this.obtainItemParameterList() - this.selectTestObjectByName() - this.selectStandardMethods() - this.selectEnumByCategoryForDevice() - this.selectEnumByCategory() - this.selectEnumByCategoryForValue() - this.selectEnumByCategoryForSpecial() - this.selectEnumByCategoryForInspectionValueType() - this.selectEnumByCategoryForSonLaboratory() - this.getStandardTemplate() - this.selectStandardMethods() - this.token = { - 'token': sessionStorage.getItem('token') - }, - this.isEquipment = this.PROJECT === '瑁呭鐢电紗' ? true : false - }, - methods: { - filterNode(value, data) { - if (!value) return true; - return data.label.indexOf(value) !== -1; - }, - searchFilter() { - this.$refs.tree.filter(this.search) - }, - refresh() { - this.upIndex++ - }, - handleNodeClick(val, node, el) { //鏍戠殑鍊� - this.total = 0 - this.currentPage = 1 - this.selectTree = '' - this.getNodeParent(node) - this.selectTree = this.selectTree.replace(' - ', '') - let data = this.selectTree.split(' - ') - let data2 = '' - for (let index = data.length - 1; index >= 0; index--) { - data2 += " - " + data[index] - } - this.selectTree = data2.replace(' - ', '') - this.selectsStandardMethodByFLSSM() - let trees = this.selectTree.split(" - ") - this.addOb.factory = trees[0] - this.addOb.laboratory = trees[1] - this.addOb.sampleType = trees[2] - this.addOb.sample = trees[3] - }, - 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) - } - }, - remove(node, data) { - this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", { - type: "error" - }).then(() => { + remove(node, data) { + this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", { + type: "error" + }) + .then(() => { // this.treeLoad = true - this.selectTree = '' - this.getNodeParent(node) - this.selectTree = this.selectTree.replace(' - ', '') - let data = this.selectTree.split(' - ') - let data2 = '' + this.selectTree = ""; + this.getNodeParent(node); + this.selectTree = this.selectTree.replace(" - ", ""); + let data = this.selectTree.split(" - "); + let data2 = ""; for (let index = data.length - 1; index >= 0; index--) { - data2 += " - " + data[index] + data2 += " - " + data[index]; } - this.selectTree = data2.replace(' - ', '') - this.$axios.post(this.$api.standardTree.delStandardTree, { - tree: this.selectTree - }).then(res => { - if (res.code == 201) return - this.$message.success('宸插垹闄�') - let arr = this.selectTree.split(' - '); - this.deleteStandard(this.list, arr[arr.length - 1]) - // this.selectStandardTreeList() - this.selectTree = '' - this.standardList = [] - this.productList = [] - }) - }).catch(e => {}) - }, - deleteStandard(arr, label) { - arr.forEach((item, index) => { - if (item.label == label) { - arr.splice(index, 1); - } else { - item.children && this.deleteStandard(item.children, label); - } + this.selectTree = data2.replace(" - ", ""); + this.$axios + .post(this.$api.standardTree.delStandardTree, { + tree: this.selectTree + }) + .then(res => { + if (res.code == 201) return; + this.$message.success("宸插垹闄�"); + let arr = this.selectTree.split(" - "); + this.deleteStandard(this.list, arr[arr.length - 1]); + // this.selectStandardTreeList() + this.selectTree = ""; + this.standardList = []; + this.productList = []; + }); }) - }, - 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') - }, - selectEnumByCategoryForFactory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { + .catch(e => {}); + }, + deleteStandard(arr, label) { + arr.forEach((item, index) => { + if (item.label == label) { + arr.splice(index, 1); + } else { + item.children && this.deleteStandard(item.children, label); + } + }); + }, + 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"); + }, + selectEnumByCategoryForFactory() { + this.$axios + .post(this.$api.enums.selectEnumByCategory, { category: "宸ュ巶" - }).then(res => { - this.factory = res.data }) - }, - selectEnumByCategoryForSonLaboratory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { + .then(res => { + this.factory = res.data; + }); + }, + selectEnumByCategoryForSonLaboratory() { + this.$axios + .post(this.$api.enums.selectEnumByCategory, { category: "瀛愬疄楠屽" - }).then(res => { - this.factory = [] + }) + .then(res => { + this.factory = []; res.data.forEach(a => { this.filters.push({ text: a.label, value: a.value - }) - }) - }) - }, - selectEnumByCategoryForDevice() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { + }); + }); + }); + }, + selectEnumByCategoryForDevice() { + this.$axios + .post(this.$api.enums.selectEnumByCategory, { category: "璁惧鍒嗙被" - }).then(res => { - this.componentData.tagField.deviceGroup.select = res.data }) - }, - selectEnumByCategory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { + .then(res => { + this.componentData.tagField.deviceGroup.select = res.data; + }); + }, + selectEnumByCategory() { + this.$axios + .post(this.$api.enums.selectEnumByCategory, { category: "妫�楠岄」绫诲瀷" - }).then(res => { - res.data[1].type = 'info' - this.componentData.tagField.inspectionItemType.select = res.data }) - }, - selectEnumByCategoryForValue() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { + .then(res => { + res.data[1].type = "info"; + this.componentData.tagField.inspectionItemType.select = res.data; + }); + }, + selectEnumByCategoryForValue() { + this.$axios + .post(this.$api.enums.selectEnumByCategory, { category: "鍙栧�肩被鍨�" - }).then(res => { - this.componentData.tagField.valueType.select = res.data }) - }, - selectEnumByCategoryForSpecial() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { + .then(res => { + this.componentData.tagField.valueType.select = res.data; + }); + }, + selectEnumByCategoryForSpecial() { + this.$axios + .post(this.$api.enums.selectEnumByCategory, { category: "鏄惁" - }).then(res => { - this.componentData.tagField.bsm.select = res.data }) - }, - selectEnumByCategoryForInspectionValueType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { + .then(res => { + this.componentData.tagField.bsm.select = res.data; + }); + }, + selectEnumByCategoryForInspectionValueType() { + this.$axios + .post(this.$api.enums.selectEnumByCategory, { category: "妫�楠屽�肩被鍨�" - }).then(res => { - this.componentData.tagField.inspectionValueType.select = res.data }) - }, - selectStandardTreeList() { - this.treeLoad = true - this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { - this.list = res.data + .then(res => { + this.componentData.tagField.inspectionValueType.select = res.data; + }); + }, + selectStandardTreeList() { + this.treeLoad = true; + this.$axios + .get(this.$api.standardTree.selectStandardTreeList) + .then(res => { + this.list = res.data; this.list.forEach(a => { - this.expandedKeys.push(a.label) - }) - this.treeLoad = false - }) - }, - obtainItemParameterList() { - this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { - let data = [] + this.expandedKeys.push(a.label); + }); + this.treeLoad = false; + }); + }, + obtainItemParameterList() { + this.$axios + .get(this.$api.laboratoryScope.obtainItemParameterList) + .then(res => { + let data = []; res.data.forEach(a => { data.push({ label: a.laboratoryName, value: a.laboratoryName - }) - }) - this.laboratory = data - }) - }, - selectTestObjectByName() { - this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => { - let data = [] + }); + }); + this.laboratory = data; + }); + }, + selectTestObjectByName() { + this.$axios + .get(this.$api.capacityScope.selectTestObjectByName) + .then(res => { + let data = []; res.data.forEach(a => { data.push({ label: a.specimenName, value: a.specimenName - }) - }) - this.sampleType = data - }) - }, - selectStandardMethods() { - this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { - let data = [] + }); + }); + this.sampleType = data; + }); + }, + selectStandardMethods() { + this.$axios + .get(this.$api.standardMethod.selectStandardMethods) + .then(res => { + let data = []; res.data.forEach(a => { data.push({ label: a.name, value: a.id - }) - }) - this.standardEnum = data - }) - }, - addStandardMethodList() { - if (this.standardId == null || this.standardId == '') { - this.$message.error('鏍囧噯鏂规硶鏈�夋嫨') - return - } - this.addLoad2 = true - this.$axios.post(this.$api.standardTree.addStandardMethodList, { + }); + }); + this.standardEnum = data; + }); + }, + addStandardMethodList() { + if (this.standardId == null || this.standardId == "") { + this.$message.error("鏍囧噯鏂规硶鏈�夋嫨"); + return; + } + this.addLoad2 = true; + this.$axios + .post(this.$api.standardTree.addStandardMethodList, { standardId: this.standardId, tree: this.selectTree - }).then(res => { - this.addLoad2 = false - this.addStandardDia = false - this.$message.success('娣诲姞鎴愬姛') - this.selectsStandardMethodByFLSSM() }) - }, - addStandardTree() { - if (this.addOb.sampleType == null || this.addOb.sampleType == '') { - this.$message.error('瀵硅薄涓嶅瓨鍦�') - return - } - if (this.addOb.model == null || this.addOb.model == '') { - this.$message.error('璇峰~鍐欏瀷鍙�') - return - } - this.addLoad = true - this.$axios.post(this.$api.standardTree.addStandardTree, this.addOb, { + .then(res => { + this.addLoad2 = false; + this.addStandardDia = false; + this.$message.success("娣诲姞鎴愬姛"); + this.selectsStandardMethodByFLSSM(); + }); + }, + addStandardTree() { + if (this.addOb.sampleType == null || this.addOb.sampleType == "") { + this.$message.error("瀵硅薄涓嶅瓨鍦�"); + return; + } + if (this.addOb.model == null || this.addOb.model == "") { + this.$message.error("璇峰~鍐欏瀷鍙�"); + return; + } + this.addLoad = true; + this.$axios + .post(this.$api.standardTree.addStandardTree, this.addOb, { headers: { - 'Content-Type': 'application/json' + "Content-Type": "application/json" } - }).then(res => { - if (res.code === 201) { - this.addLoad = false - return - } - 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, - }) - this.addLoad = false - }).catch(e => { - this.addDia = false - this.addLoad = false }) - }, - selectsStandardMethodByFLSSM() { - this.tableLoad = true - this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { + .then(res => { + if (res.code === 201) { + this.addLoad = false; + return; + } + 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 + }); + this.addLoad = false; + }) + .catch(e => { + this.addDia = false; + this.addLoad = false; + }); + }, + selectsStandardMethodByFLSSM() { + this.tableLoad = true; + this.$axios + .post(this.$api.standardTree.selectsStandardMethodByFLSSM, { tree: this.selectTree - }).then(res => { - this.tableLoad = false - this.standardList = res.data.standardMethodList + }) + .then(res => { + this.tableLoad = false; + this.standardList = res.data.standardMethodList; if (this.standardList && this.standardList.length > 0) { - this.$refs.standard.setCurrentRow(this.standardList[0]) - this.rowClick(this.standardList[0]) + this.$refs.standard.setCurrentRow(this.standardList[0]); + this.rowClick(this.standardList[0]); } else { this.productList = []; } - }) - }, - getPower() { - let power = JSON.parse(sessionStorage.getItem('power')) - let add = false - let addStandardMethod = false - let upStandardProduct = false - let delStandardMethod = false - 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 - } - if (power[i].menuMethod == 'addStandardMethodList') { - addStandardMethod = true - } - if (power[i].menuMethod == 'upStandardProductList') { - upStandardProduct = true - } - if (power[i].menuMethod == 'delStandardMethodByFLSSM') { - delStandardMethod = true - } - if (power[i].menuMethod == 'delStandardProductByIds') { - delStandardProduct = true - } - if (power[i].menuMethod == 'addStandardProduct') { - addStandardProduct = true - } - if (power[i].menuMethod == 'delStandardTree') { - delStandardTree = true - } - if (power[i].menuMethod == 'inExcelOfTree') { - inExcelOfTreePower = true - } + }); + }, + getPower() { + let power = JSON.parse(sessionStorage.getItem("power")); + let add = false; + let addStandardMethod = false; + let upStandardProduct = false; + let delStandardMethod = false; + 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; } - this.addPower = add - this.addStandardMethod = addStandardMethod - this.upStandardProduct = upStandardProduct - this.delStandardMethod = delStandardMethod - this.delStandardProduct = delStandardProduct - this.addStandardProduct = addStandardProduct - this.delStandardTree = delStandardTree - this.inExcelOfTreePower = inExcelOfTreePower - }, - upStandardProductList(value, index) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { + if (power[i].menuMethod == "addStandardMethodList") { + addStandardMethod = true; + } + if (power[i].menuMethod == "upStandardProductList") { + upStandardProduct = true; + } + if (power[i].menuMethod == "delStandardMethodByFLSSM") { + delStandardMethod = true; + } + if (power[i].menuMethod == "delStandardProductByIds") { + delStandardProduct = true; + } + if (power[i].menuMethod == "addStandardProduct") { + addStandardProduct = true; + } + if (power[i].menuMethod == "delStandardTree") { + delStandardTree = true; + } + if (power[i].menuMethod == "inExcelOfTree") { + inExcelOfTreePower = true; + } + } + this.addPower = add; + this.addStandardMethod = addStandardMethod; + this.upStandardProduct = upStandardProduct; + this.delStandardMethod = delStandardMethod; + this.delStandardProduct = delStandardProduct; + this.addStandardProduct = addStandardProduct; + this.delStandardTree = delStandardTree; + this.inExcelOfTreePower = inExcelOfTreePower; + }, + upStandardProductList(value, index) { + this.$axios + .post(this.$api.standardTree.upStandardProductList, { str: JSON.stringify({ id: index, ask: value }) - }).then(res => { - if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return - } - this.$message.success('宸蹭繚瀛�') }) - }, - upStandardProductListOfTell(value, index) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { + .then(res => { + if (res.code == 201) { + this.$message.error("鏈繚瀛�"); + return; + } + this.$message.success("宸蹭繚瀛�"); + }); + }, + upStandardProductListOfTell(value, index) { + this.$axios + .post(this.$api.standardTree.upStandardProductList, { str: JSON.stringify({ id: index, tell: value }) - }).then(res => { - if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return - } - this.$message.success('宸蹭繚瀛�') }) - }, - upStandardProductListOfMethodS(value, index) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { + .then(res => { + if (res.code == 201) { + this.$message.error("鏈繚瀛�"); + return; + } + this.$message.success("宸蹭繚瀛�"); + }); + }, + upStandardProductListOfMethodS(value, index) { + this.$axios + .post(this.$api.standardTree.upStandardProductList, { str: JSON.stringify({ id: index, methodS: value }) - }).then(res => { + }) + .then(res => { if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return + this.$message.error("鏈繚瀛�"); + return; } // this.$message.success('宸蹭繚瀛�') - }) - }, - upStandardProductListOfPrice(value, index) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { + }); + }, + upStandardProductListOfPrice(value, index) { + this.$axios + .post(this.$api.standardTree.upStandardProductList, { str: JSON.stringify({ id: index, price: value }) - }).then(res => { + }) + .then(res => { if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return + this.$message.error("鏈繚瀛�"); + return; } // this.$message.success('宸蹭繚瀛�') - }) - }, - upStandardProductListOfManHour(value, index) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { + }); + }, + upStandardProductListOfManHour(value, index) { + this.$axios + .post(this.$api.standardTree.upStandardProductList, { str: JSON.stringify({ id: index, manHour: value }) - }).then(res => { + }) + .then(res => { if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return + this.$message.error("鏈繚瀛�"); + return; } // this.$message.success('宸蹭繚瀛�') - }) - }, - upStandardProductListOfTemplate(value, index) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { + }); + }, + upStandardProductListOfTemplate(value, index) { + this.$axios + .post(this.$api.standardTree.upStandardProductList, { str: JSON.stringify({ id: index, templateId: value }) - }).then(res => { + }) + .then(res => { if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return + this.$message.error("鏈繚瀛�"); + return; } // this.$message.success('宸蹭繚瀛�') + }); + }, + delStandardMethodByFLSSM(id) { + this.$confirm("鏄惁鍒犻櫎褰撳墠鏁版嵁?", "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + this.tableLoad = true; + this.$axios + .post(this.$api.standardTree.delStandardMethodByFLSSM, { + id: id + }) + .then(res => { + if (res.code == 201) { + return; + } + this.$message.success("宸插垹闄�"); + this.selectsStandardMethodByFLSSM(); + }); }) - }, - delStandardMethodByFLSSM(id) { - this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { + .catch(() => {}); + }, + handleSelectionChange(val) { + this.selects = []; + val.forEach(a => { + this.selects.push(a.id); + }); + }, + delStandardProductByIds() { + if (this.selects.length == 0) { + this.$message.error("鏈�変腑鏁版嵁"); + return; + } + this.$confirm( + "鏄惁鍒犻櫎褰撳墠閫変腑 " + this.selects.length + " 鏉℃暟鎹�?", + "璀﹀憡", + { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" - }).then(() => { - this.tableLoad = true - this.$axios.post(this.$api.standardTree.delStandardMethodByFLSSM, { - id: id - }).then(res => { - if (res.code == 201) { - return - } - this.$message.success('宸插垹闄�') - this.selectsStandardMethodByFLSSM() - }) - }).catch(() => {}) - }, - handleSelectionChange(val) { - this.selects = [] - val.forEach(a => { - this.selects.push(a.id) - }) - }, - delStandardProductByIds() { - if (this.selects.length == 0) { - this.$message.error('鏈�変腑鏁版嵁') - return } - this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 ' + this.selects.length + ' 鏉℃暟鎹�?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - this.tableLoad = true - this.$axios.post(this.$api.standardTree.delStandardProductByIds, { - ids: JSON.stringify(this.selects) - }).then(res => { - if (res.code == 201) { - return - } - this.$message.success('宸插垹闄�') - this.selectsStandardMethodByFLSSM() - }) - }).catch(() => {}) - }, - addStandardProductDo() { - let selects = this.$refs.ValueTable.multipleSelection - if (selects.length == 0) { - this.$message.error('鏈�夋嫨鏁版嵁') - return - } - let select = [] - selects.forEach(a => { - select.push(a.id) + ) + .then(() => { + this.tableLoad = true; + this.$axios + .post(this.$api.standardTree.delStandardProductByIds, { + ids: JSON.stringify(this.selects) + }) + .then(res => { + if (res.code == 201) { + return; + } + this.$message.success("宸插垹闄�"); + this.selectsStandardMethodByFLSSM(); + }); }) - this.tableLoad = true - this.$axios.post(this.$api.standardTree.addStandardProduct, { + .catch(() => {}); + }, + addStandardProductDo() { + let selects = this.$refs.ValueTable.multipleSelection; + if (selects.length == 0) { + this.$message.error("鏈�夋嫨鏁版嵁"); + return; + } + let select = []; + selects.forEach(a => { + select.push(a.id); + }); + this.tableLoad = true; + this.$axios + .post(this.$api.standardTree.addStandardProduct, { ids: JSON.stringify(select), tree: this.selectTree - }).then(res => { - if (res.code == 201) { - return - } - this.$message.success('娣诲姞鎴愬姛') - this.selectsStandardMethodByFLSSM() }) - this.addProductDia = false - }, - rowClick(row, column, event) { - this.currentPage = 1; - this.tableLoad2 = true - this.standardId = row.id - this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { + .then(res => { + if (res.code == 201) { + return; + } + this.$message.success("娣诲姞鎴愬姛"); + this.selectsStandardMethodByFLSSM(); + }); + 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, page: this.currentPage - }).then(res => { - this.productList = res.data.productList - this.total = res.data.total + }) + .then(res => { + this.productList = res.data.productList; + this.total = res.data.total; setTimeout(() => { this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) - }) - }, 300) - this.tableLoad2 = false - }) - }, - toggleSelection(row) { - this.$refs.productTable.toggleRowSelection(row, true); - }, - tableRowClassName({ - row, - rowIndex - }) { - if (row.state === 0) { - return 'warning-row'; - } - return ''; - }, - upProductSelect(selection, row) { - row.state = (row.state == 1 ? 0 : 1) - this.$axios.post(this.$api.standardTree.upStandardProductList, { + if (a.state == 1) this.toggleSelection(a); + }); + }, 300); + this.tableLoad2 = false; + }); + }, + toggleSelection(row) { + this.$refs.productTable.toggleRowSelection(row, true); + }, + tableRowClassName({ row, rowIndex }) { + if (row.state === 0) { + return "warning-row"; + } + return ""; + }, + upProductSelect(selection, row) { + row.state = row.state == 1 ? 0 : 1; + this.$axios + .post(this.$api.standardTree.upStandardProductList, { str: JSON.stringify({ id: row.id, state: row.state }) - }).then(res => { + }) + .then(res => { if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return + this.$message.error("鏈繚瀛�"); + return; } // this.$message.success('宸蹭繚瀛�') - }) - }, - 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] - } + }); + }, + 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; } - 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 - 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) => { - 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] - }) - }) + 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]; } } - }, - 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.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.sectionLoad = true - if (this.moreSelects.length === 0) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { + 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) => { + 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, { str: JSON.stringify({ id: this.sectionRow.id, section: this.sectionRow.section, @@ -1276,115 +1797,137 @@ price: this.sectionRow.price, manHour: this.sectionRow.manHour }) - }).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: JSON.stringify(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 + .then(res => { + this.sectionLoad = false; if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return + this.$message.error("鏈繚瀛�"); + return; } - this.$message.success('宸蹭繚瀛�') - this.sectionUpDia = false + this.$message.success("宸蹭繚瀛�"); + this.sectionUpDia = false; + }); + } else { + this.$axios + .post( + this.$api.standardTree.upStandardProducts, + { + ids: JSON.stringify(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.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, { + }); + }); + } + }, + 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 + }) + .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 = [] + 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.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.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" + } } - } - 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 + ) + .then(res => { + this.moreEditLoad = false; if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return + this.$message.error("鏈繚瀛�"); + return; } - this.$message.success('宸蹭繚瀛�') + this.$message.success("宸蹭繚瀛�"); this.currentPage0 = 1; - this.getList() + this.getList(); this.rowClick({ id: this.standardId - }) + }); // this.moreInfo = { // ask:'', // tell:'', @@ -1393,166 +1936,184 @@ // 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, { + }); + }, + 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 + }) + .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) + this.$refs.productTable0.toggleRowSelection( + this.productList0[i], + true + ); } - }) - }) - }) - }, - handleCurrentChange0(e) { - this.currentPage0 = e; - this.getList() - }, - getItemEnum() { - this.$axios.post(this.$api.standardTree.selectStandardProductEnumByMethodId, { + }); + }); + }); + }, + handleCurrentChange0(e) { + this.currentPage0 = e; + this.getList(); + }, + getItemEnum() { + this.$axios + .post(this.$api.standardTree.selectStandardProductEnumByMethodId, { id: this.standardId, tree: this.selectTree, - item:this.inspectionItem - }).then(res => { - this.filters0 = [] - this.filters1 = [] + item: this.inspectionItem + }) + .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 - }) + }); } - }) - }) - }, - 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.standardList = [] - this.productList = [] - this.selectStandardTreeList() - }, - onError(err, file, fileList) { - this.$message.error('涓婁紶澶辫触') - this.$refs.upload.clearFiles() - this.uploading = false - }, - clearProduct(type){ - this.$confirm('鏄惁娓呯┖?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - if(type === 1){ - this.$axios.post(this.$api.standardTree.resetTreeOfPrice, { - tree: this.selectTree, - standardId: this.standardId - }).then(res => { - if (res.code == 201) { - return - } - this.$message.success('宸叉竻绌�') - this.currentPage0 = 1; - this.getList() - this.rowClick({ - id: this.standardId - }) - }) - }else if(type === 2){ - this.$axios.post(this.$api.standardTree.resetTreeOfHour, { - tree: this.selectTree, - standardId: this.standardId - }).then(res => { - if (res.code == 201) { - return - } - this.$message.success('宸叉竻绌�') - this.currentPage0 = 1; - this.getList() - this.rowClick({ - id: this.standardId - }) - }) - } - }).catch(() => {}) - }, - handleDown(){ - this.outLoading = true - this.$axios.get(this.$api.standardTree.exportStandTree,{responseType: 'blob'}).then(res => { - this.outLoading = false - this.$message.success('瀵煎嚭鎴愬姛') - const blob = new Blob([res],{ type: 'application/force-download' }); - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = '妫�楠屾爣鍑�.xlsx'; - link.click(); - document.body.removeChild(link) - }) + }); + }); + }, + 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.standardList = []; + this.productList = []; + this.selectStandardTreeList(); + }, + onError(err, file, fileList) { + this.$message.error("涓婁紶澶辫触"); + this.$refs.upload.clearFiles(); + this.uploading = false; + }, + clearProduct(type) { + this.$confirm("鏄惁娓呯┖?", "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + if (type === 1) { + this.$axios + .post(this.$api.standardTree.resetTreeOfPrice, { + tree: this.selectTree, + standardId: this.standardId + }) + .then(res => { + if (res.code == 201) { + return; + } + this.$message.success("宸叉竻绌�"); + this.currentPage0 = 1; + this.getList(); + this.rowClick({ + id: this.standardId + }); + }); + } else if (type === 2) { + this.$axios + .post(this.$api.standardTree.resetTreeOfHour, { + tree: this.selectTree, + standardId: this.standardId + }) + .then(res => { + if (res.code == 201) { + return; + } + this.$message.success("宸叉竻绌�"); + this.currentPage0 = 1; + this.getList(); + this.rowClick({ + id: this.standardId + }); + }); + } + }) + .catch(() => {}); + }, + handleDown() { + this.outLoading = true; + this.$axios + .get(this.$api.standardTree.exportStandTree, { responseType: "blob" }) + .then(res => { + this.outLoading = false; + this.$message.success("瀵煎嚭鎴愬姛"); + const blob = new Blob([res], { type: "application/force-download" }); + const url = URL.createObjectURL(blob); + const link = document.createElement("a"); + link.href = url; + link.download = "妫�楠屾爣鍑�.xlsx"; + link.click(); + document.body.removeChild(link); + }); } } +}; </script> -- Gitblit v1.9.3