| | |
| | | } |
| | | |
| | | .product_table .el-table { |
| | | height: 100%; |
| | | height: calc(100% - 35px) !important; |
| | | } |
| | | |
| | | .sort { |
| | |
| | | } |
| | | |
| | | .standard .has-gutter .el-table__cell .cell { |
| | | line-height: 38px; |
| | | line-height: 34px; |
| | | background-color: #f8f8f8; |
| | | } |
| | | |
| | |
| | | style="height:calc(100% - 30px);overflow-y: scroll;scrollbar-width: none;"> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row style="width: 100%;"> |
| | | <el-col :span="21" :class="{sort:node.level>3}"> |
| | | <el-col :span="21" :class="{sort:node.level>3}" :title="data.label"> |
| | | <span><i |
| | | :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> |
| | | :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i> |
| | | {{ data.code }} {{ data.label }}</span> |
| | | </el-col> |
| | | <el-col :span="2" style="text-align: right;" v-if="delStandardTree"> |
| | |
| | | <!-- </el-col> --> |
| | | </el-row> |
| | | <el-row class="standard_table" v-loading="tableLoad"> |
| | | <el-table class="el-table" :data="standardList" style="width: 100%;height: 220px !important;overflow-y: auto;" |
| | | tooltip-effect="dark" highlight-current-row @row-click="rowClick" ref="standard"> |
| | | <el-table-column prop="code" label="标准编号" show-overflow-tooltip width="180"> |
| | | <el-table class="el-table" :data="standardList" style="width: 100%;" height="220" tooltip-effect="dark" |
| | | highlight-current-row @row-click="rowClick" ref="standard"> |
| | | <el-table-column prop="code" label="标准编号" show-overflow-tooltip width="200"> |
| | | <template slot-scope="scope"> |
| | | <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span> |
| | | </template> |
| | |
| | | </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" |
| | | <el-table :data="pagedData" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe |
| | | :fit="true" border |
| | | @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" |
| | | @select="upProductSelect" @select-all="handleAll"> |
| | | <el-table-column type="selection" width="65"> |
| | | </el-table-column> |
| | | <el-table-column prop="model" label="型号" min-width="120" 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" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="price" label="单价(元)" width="90" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="manHour" label="工时(H)" width="90" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="price" label="单价(元)" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.price" size="small" placeholder="单价(元)" |
| | | @change="(value)=>upStandardProductListOfPrice(value,scope.row.id)" v-if="upStandardProduct"> |
| | | </el-input> |
| | | <span v-else>{{scope.row.price}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="manHour" label="工时系数" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.manHour" size="small" placeholder="单价(元)" |
| | | @change="(value)=>upStandardProductListOfManHour(value,scope.row.id)" v-if="upStandardProduct"> |
| | | </el-input> |
| | | <span v-else>{{scope.row.manHour}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="manHourGroup" label="工时分组" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="templateId" label="模板" width="200"> |
| | | <template slot-scope="scope"> |
| | | <el-select v-model="scope.row.templateId" size="small" filterable |
| | | @change="(value)=>upStandardProductListOfTemplate(value,scope.row.id)"> |
| | | <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="section" label="操作" width="120"> |
| | | <template slot-scope="scope"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | style="position: absolute;right: 16px;bottom: 1px;" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage" |
| | | :page-size="pageSize" |
| | | layout="total, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </el-row> |
| | | </div> |
| | | <el-dialog title="分类添加" :visible.sync="addDia" width="400px"> |
| | |
| | | <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="区间设置" :visible.sync="sectionUpDia" width="500px"> |
| | | <el-dialog title="区间设置" :visible.sync="sectionUpDia" width="70%"> |
| | | <div class="body" style="padding: 5px 0;"> |
| | | <el-table :data="sectionList" border style="width: 100%" height="350px"> |
| | | <el-table-column type="index" label="序号" width="70" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="区间" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.thing" clearable></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> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="要求描述" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" placeholder="要求描述" v-model="scope.row.tell" clearable type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 2}"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="单价" align="center" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.price" clearable placeholder="单价"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="工时系数" align="center" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.manHour" clearable placeholder="工时系数"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="70" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="danger" icon="el-icon-minus" circle @click="sectionList.splice(scope.$index, 1)"></el-button> |
| | | <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> |
| | |
| | | sectionUpDia: false, |
| | | sectionLoad: false, |
| | | sectionRow: null, |
| | | sectionList: [] |
| | | sectionList: [], |
| | | templateList: [], |
| | | total:0, |
| | | pageSize:100, |
| | | currentPage:1, |
| | | } |
| | | }, |
| | | computed: { |
| | | pagedData() { |
| | | const start = (this.currentPage - 1) * this.pageSize; |
| | | const end = start + this.pageSize; |
| | | return this.productList.slice(start, end); |
| | | }, |
| | | }, |
| | | watch:{ |
| | | pagedData:{ |
| | | deep:true, |
| | | handler(val){ |
| | | setTimeout(() => { |
| | | val.forEach(a => { |
| | | if (a.state == 1) this.toggleSelection(a) |
| | | }) |
| | | }, 300) |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | this.selectEnumByCategoryForSpecial() |
| | | this.selectEnumByCategoryForInspectionValueType() |
| | | this.selectEnumByCategoryForSonLaboratory() |
| | | this.getStandardTemplate() |
| | | }, |
| | | methods: { |
| | | filterNode(value, data) { |
| | |
| | | this.$message.error('未保存') |
| | | return |
| | | } |
| | | this.$message.success('已保存') |
| | | // this.$message.success('已保存') |
| | | }) |
| | | }, |
| | | upStandardProductListOfPrice(value, index) { |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: index, |
| | | price: value |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('未保存') |
| | | return |
| | | } |
| | | // this.$message.success('已保存') |
| | | }) |
| | | }, |
| | | upStandardProductListOfManHour(value, index) { |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: index, |
| | | manHour: value |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('未保存') |
| | | return |
| | | } |
| | | // this.$message.success('已保存') |
| | | }) |
| | | }, |
| | | upStandardProductListOfTemplate(value, index) { |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: index, |
| | | templateId: value |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('未保存') |
| | | return |
| | | } |
| | | // this.$message.success('已保存') |
| | | }) |
| | | }, |
| | | delStandardMethodByFLSSM(id) { |
| | |
| | | tree: this.selectTree |
| | | }).then(res => { |
| | | this.productList = res.data |
| | | setTimeout(() => { |
| | | this.productList.forEach(a => { |
| | | if (a.state == 1) this.toggleSelection(a) |
| | | }) |
| | | }, 300) |
| | | this.total = this.productList.length; |
| | | // setTimeout(() => { |
| | | // this.productList.forEach(a => { |
| | | // if (a.state == 1) this.toggleSelection(a) |
| | | // }) |
| | | // }, 300) |
| | | this.tableLoad2 = false |
| | | }) |
| | | }, |
| | |
| | | return ''; |
| | | }, |
| | | upProductSelect(selection, row) { |
| | | row.state = row.state == 1 ? 0 : 1 |
| | | row.state = (row.state == 1 ? 0 : 1) |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: row.id, |
| | | state: row.state |
| | |
| | | }, |
| | | handleAll(e) { |
| | | if (e.length > 0) { |
| | | this.productList.map(m => { |
| | | this.productList = this.productList.map(m => { |
| | | m.state = 0 |
| | | this.upProductSelect(null, m) |
| | | return m |
| | | }) |
| | | } else { |
| | | this.productList.map(m => { |
| | | this.productList = this.productList.map(m => { |
| | | m.state = 1 |
| | | this.upProductSelect(null, m) |
| | | return m |
| | | }) |
| | |
| | | this.sectionRow = row |
| | | this.sectionUpDia = true |
| | | this.sectionList = [] |
| | | if(this.sectionRow.section!==null){ |
| | | JSON.parse(this.sectionRow.section).forEach(a=>{ |
| | | if (this.sectionRow.section != null && this.sectionRow.section != '') { |
| | | JSON.parse(this.sectionRow.section).forEach((a, ai) => { |
| | | this.sectionList.push({ |
| | | thing: a |
| | | 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 = [] |
| | | this.sectionList.forEach(a=>{ |
| | | if(a.thing!==''){ |
| | | 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) |
| | | } |
| | | }) |
| | | this.sectionRow.section = JSON.stringify(sectionList) |
| | | 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 |
| | | this.$axios.post(this.$api.standardTree.upStandardProductList, { |
| | | id: this.sectionRow.id, |
| | | section: this.sectionRow.section |
| | | 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' |
| | |
| | | this.$message.success('已保存') |
| | | this.sectionUpDia = false |
| | | }) |
| | | } |
| | | }, |
| | | getStandardTemplate() { |
| | | this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => { |
| | | this.templateList = res.data |
| | | }) |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.currentPage = val; |
| | | }, |
| | | } |
| | | } |
| | | </script> |