| | |
| | | background-color: white; |
| | | } |
| | | |
| | | .standard_table{ |
| | | .standard_table { |
| | | border-top: 1px solid #ebeef5; |
| | | background-color: white; |
| | | } |
| | | |
| | | .product_table{ |
| | | .product_table { |
| | | border-top: 1px solid #ebeef5; |
| | | height: calc(100% - 275px); |
| | | margin-top: 5px; |
| | | background-color: white; |
| | | } |
| | | |
| | | .product_table .el-table{ |
| | | .product_table .el-table { |
| | | height: 100%; |
| | | } |
| | | </style> |
| | |
| | | color: #3A7BFA; |
| | | } |
| | | |
| | | .standard .has-gutter .el-table__cell .cell{ |
| | | .standard .has-gutter .el-table__cell .cell { |
| | | line-height: 38px; |
| | | background-color: #fafafa; |
| | | } |
| | | |
| | | .standard .has-gutter .el-table__cell{ |
| | | .standard .has-gutter .el-table__cell { |
| | | background-color: #fafafa !important; |
| | | } |
| | | |
| | | .standard .standard_table .el-table__row .cell{ |
| | | .standard .standard_table .el-table__row .cell { |
| | | font-size: 14px; |
| | | } |
| | | </style> |
| | |
| | | </el-row> |
| | | <el-tree :data="list" ref="tree" default-expand-all :props="{ children: 'children', label: 'label' }" |
| | | node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current |
| | | @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad"> |
| | | @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row> |
| | | <el-col :span="21"> |
| | |
| | | :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> |
| | | {{ data.code }} {{ data.label }}</span> |
| | | </el-col> |
| | | <el-col :span="2" style="text-align: right;"> |
| | | <el-col :span="2" style="text-align: right;" v-if="delStandardTree"> |
| | | <el-button type="text" size="mini" @click.stop="remove(node, data)"> |
| | | <i class="el-icon-delete"></i> |
| | | </el-button> |
| | |
| | | <div class="right"> |
| | | <el-row class="title"> |
| | | <el-col :span="10" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> |
| | | <el-col :span="selectTree==''?24:14" style="text-align: right;"> |
| | | <el-button size="small" type="primary" @click="addStandardDia = true" v-if="addStandardMethod">新增标准</el-button> |
| | | <el-button size="small" type="primary">新增项目</el-button> |
| | | <el-button size="small"> |
| | | <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''"> |
| | | <el-button size="small" type="primary" @click="addStandardDia = true" |
| | | v-if="addStandardMethod">新增标准</el-button> |
| | | <el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">新增项目</el-button> |
| | | <el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct"> |
| | | <i class="el-icon-delete" style="color: #3A7BFA;"></i> |
| | | <span style="color: #3A7BFA;">删除</span> |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="standard_table" v-loading="standardListLoad"> |
| | | <el-row class="standard_table" v-loading="tableLoad"> |
| | | <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark"> |
| | | <el-table-column prop="code" label="标准编号" show-overflow-tooltip> |
| | | <template slot-scope="scope"> |
| | |
| | | <el-table-column prop="remark" label="备注" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="createUserName" label="创建人"></el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间" width="250px"></el-table-column> |
| | | <el-table-column label="操作" width="100" align="center"> |
| | | <el-table-column label="操作" width="100" align="center" v-if="delStandardMethod"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">删除</el-button> |
| | | <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <el-row class="product_table"> |
| | | <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border> |
| | | <el-row class="product_table" v-loading="tableLoad"> |
| | | <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="65"></el-table-column> |
| | | <el-table-column prop="code" 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-column prop="remark" label="实验室" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="计量单位" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="单价" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="工时" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="工时分组" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="设备组" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="区间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="要求值"> |
| | | <el-table-column prop="inspectionItem" label="检验项" 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="检验项小类" width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="laboratory" label="实验室" width="120" 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="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="manHour" label="工时" width="80" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="manHourGroup" label="工时分组" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="deviceGroup" label="设备组" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="ask" label="要求值" width="220px"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" placeholder="要求值" v-model="scope.row.ask"></el-input> |
| | | <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable |
| | | @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct"></el-input> |
| | | <span v-else>{{scope.row.ask}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-button type="primary" @click="addStandardMethodList" :loading="addLoad2">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="新增项目" :visible.sync="addProductDia" width="70%"> |
| | | <div class="body" style="height: 60vh;" v-if="addProductDia"> |
| | | <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData"/> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addProductDia = false">取 消</el-button> |
| | | <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ValueTable from '../tool/value-table.vue' |
| | | export default { |
| | | components: { |
| | | ValueTable |
| | | }, |
| | | data() { |
| | | return { |
| | | search: null, |
| | |
| | | addStandardMethod: true, |
| | | addLoad2: false, |
| | | productList: [], |
| | | standardListLoad: false |
| | | tableLoad: 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: {}, |
| | | selectField: {}, |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | handleNodeClick(val, node, el) { //树的值 |
| | | this.selectTree = '' |
| | | this.getNodeParent(node) |
| | | this.selectTree = this.selectTree.replace(' - ','') |
| | | this.selectTree = this.selectTree.replace(' - ', '') |
| | | let data = this.selectTree.split(' - ') |
| | | let data2 = '' |
| | | for(let index = data.length - 1; index >= 0; index--){ |
| | | for (let index = data.length - 1; index >= 0; index--) { |
| | | data2 += " - " + data[index] |
| | | } |
| | | this.selectTree = data2.replace(' - ','') |
| | | this.selectTree = data2.replace(' - ', '') |
| | | this.selectsStandardMethodByFLSSM() |
| | | }, |
| | | getNodeParent(val){ |
| | | if(val.parent!=null){ |
| | | getNodeParent(val) { |
| | | if (val.parent != null) { |
| | | this.selectTree += ' - ' + val.label |
| | | this.getNodeParent(val.parent) |
| | | } |
| | | }, |
| | | remove(node, data) { |
| | | this.$confirm("是否删除", "提示", { |
| | | type: "warning" |
| | | }).then(res => { |
| | | const parent = node.parent; |
| | | const children = parent.data.children || parent.data; |
| | | const index = children.findIndex(d => d.id === data.id); |
| | | children.splice(index, 1); |
| | | |
| | | 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 = '' |
| | | for (let index = data.length - 1; index >= 0; 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('已删除') |
| | | this.selectStandardTreeList() |
| | | this.selectTree = '' |
| | | this.standardList = [] |
| | | this.productList = [] |
| | | }) |
| | | }).catch(e => {}) |
| | | }, |
| | | nodeOpen(data, node, el) { |
| | |
| | | this.standardEnum = data |
| | | }) |
| | | }, |
| | | addStandardMethodList(){ |
| | | addStandardMethodList() { |
| | | if (this.standardId == null || this.standardId == '') { |
| | | this.$message.error('标准方法未选择') |
| | | return |
| | | } |
| | | this.addLoad2 = true |
| | | this.$axios.post(this.$api.standardTree.addStandardMethodList,{ |
| | | this.$axios.post(this.$api.standardTree.addStandardMethodList, { |
| | | standardId: this.standardId, |
| | | tree: this.selectTree |
| | | }).then(res=>{ |
| | | }).then(res => { |
| | | this.addLoad2 = false |
| | | this.addStandardDia = false |
| | | this.$message.success('添加成功') |
| | |
| | | this.addLoad = false |
| | | }) |
| | | }, |
| | | selectsStandardMethodByFLSSM(){ |
| | | this.standardListLoad = true |
| | | this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM,{ |
| | | selectsStandardMethodByFLSSM() { |
| | | this.tableLoad = true |
| | | this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { |
| | | tree: this.selectTree |
| | | }).then(res=>{ |
| | | this.standardListLoad = false |
| | | this.standardList = res.data |
| | | }).then(res => { |
| | | this.tableLoad = false |
| | | this.standardList = res.data.standardMethodList |
| | | this.productList = res.data.standardProductList |
| | | }) |
| | | }, |
| | | 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 |
| | | 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 |
| | | } |
| | | } |
| | | this.addPower = add |
| | | this.addStandardMethod = addStandardMethod |
| | | this.upStandardProduct = upStandardProduct |
| | | this.delStandardMethod = delStandardMethod |
| | | this.delStandardProduct = delStandardProduct |
| | | this.addStandardProduct = addStandardProduct |
| | | this.delStandardTree = delStandardTree |
| | | }, |
| | | |
| | | upStandardProductList(value, index) { |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: index, |
| | | ask: value |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | 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() |
| | | }) |
| | | }).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) |
| | | }) |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | | </script> |