| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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, |
| | |
| | | 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:'', |
| | |
| | | // 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> |