| | |
| | | line-height: 1.5em; /* 行高 */ |
| | | height: 3.0em; /* 高度为行高的两倍 */ |
| | | } |
| | | .thermal-table{ |
| | | min-width: calc(100% - 10px); |
| | | margin: 5px 5px 0; |
| | | table-layout: fixed; |
| | | } |
| | | .thermal-table td { |
| | | min-width: 70px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | padding: 5px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="search" :style="`height: ${more?130:80}px;`"> |
| | | <div class="search" :style="`height: ${more?150:80}px;`"> |
| | | <el-row :gutter="10" style="width: 100%;"> |
| | | <el-col :span="20" style="display: flex;flex-wrap: wrap;"> |
| | | <div class="search_thing" style="width: 20%;"> |
| | |
| | | placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%;" v-if="more"> |
| | | <div class="search_label">约定时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker style="width:100%" v-model="componentData.entity.appointed" |
| | | type="date" |
| | | size="small" |
| | | format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd" |
| | | clearable |
| | | placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%;" v-if="more"> |
| | | <div class="search_label" style="width: 130px;">样机完成时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker style="width:100%" v-model="componentData.entity.issueTime" |
| | | type="date" |
| | | size="small" |
| | | format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd" |
| | | clearable |
| | | placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%;" v-if="more"> |
| | | <div class="search_label">电机编号:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable |
| | | v-model="componentData.entity.motorNumber" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%;" v-if="more"> |
| | | <div class="search_label">下单人:</div> |
| | |
| | | <el-row style="margin-top: 1px;font-size: 14px;"> |
| | | <el-col style="font-weight: bold;"><span>样品名称: </span>{{ item.sample }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px;font-size: 14px;"> |
| | | <el-col style="font-weight: bold;"><span>电机编号: </span>{{ item.motorNumber }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px;font-size: 14px;" class="ellipsis-multiline"> |
| | | <el-col style="font-weight: bold;"><span>检测项目: </span>{{ item.item }}</el-col> |
| | | </el-row> |
| | |
| | | <el-row style="font-size: 0.20cm;"> |
| | | <el-col ><span>样品名称: </span>{{ item.sample }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.20cm;"> |
| | | <el-col ><span>电机编号: </span>{{ item.motorNumber }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.20cm;width: 4cm;"> |
| | | <el-col class="ellipsis-multiline"><span>检测项目: </span>{{ item.item }}</el-col> |
| | | </el-row> |
| | |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="样机编号" :visible.sync="BZDialogVisible" width="60%"> |
| | | <div class="body" style="max-height: 60vh;" v-if="BZDialogVisible"> |
| | | </div> |
| | | <table border="1" class="thermal-table" cellpadding="10"> |
| | | <tr> |
| | | <td>委托单号</td> |
| | | <td>样品</td> |
| | | <td>样品编号</td> |
| | | <td>样品型号</td> |
| | | <td>电机编号</td> |
| | | </tr> |
| | | <template v-for="(item,index) in BZinfo"> |
| | | <tr v-for="(m,i) in item.arr" :key="i"> |
| | | <td :rowspan="item.arr.length" v-if="i==0">{{item.name}}</td> |
| | | <td>{{ m.sample }}</td> |
| | | <td>{{ m.sampleCode }}</td> |
| | | <td>{{ m.model }}</td> |
| | | <td> |
| | | <el-input v-model="m.motorNumber" size="small"></el-input> |
| | | </td> |
| | | </tr> |
| | | </template> |
| | | </table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="BZDialogVisible=false">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm3" :loading="upLoad">确 定</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import Add from '../do/b1-ins-order/add.vue' |
| | | import vueQr from 'vue-qr' |
| | | import PrintJS from 'print-js' |
| | | import { Header } from 'iview'; |
| | | export default { |
| | | components: { |
| | | ValueTable, |
| | |
| | | name:null, |
| | | engineering:null, |
| | | production:null, |
| | | appointed:null, |
| | | issueTime:null, |
| | | motorNumber:null, |
| | | // orderBy: { |
| | | // field: '', |
| | | // order: '' |
| | |
| | | type: 'text', |
| | | method: 'handleVerify', |
| | | disabFun: (row, index) => { |
| | | return row.state != 0 |
| | | let state0 = false |
| | | if(this.currentRole=='检测中心主任'){ |
| | | if(row.checkState1||row.checkState1User){ |
| | | state0 = true |
| | | } |
| | | }else if(this.currentRole=='研发部经理'){ |
| | | if(row.checkState2||row.checkState2User){ |
| | | state0 = true |
| | | } |
| | | }else if(this.currentRole=='技术负责人'){ |
| | | if(row.checkState3||row.checkState3User){ |
| | | state0 = true |
| | | } |
| | | } |
| | | return row.state != 0 || state0 ||(this.currentRole!='检测中心主任'&&this.currentRole!='研发部经理'&&this.currentRole!='技术负责人') |
| | | } |
| | | }, { |
| | | id: 'quash', |
| | |
| | | disabFun: (row, index) => { |
| | | return (row.state != 1 && row.state != 0)||(this.tabIndex!=1)||row.isRevocation!=1 |
| | | } |
| | | }, { |
| | | font: '分配', |
| | | type: 'text', |
| | | method: 'handleIssued', |
| | | disabFun: (row, index) => { |
| | | // return row.state != 1 || !!row.assign |
| | | return row.appointed || row.state != 1 |
| | | } |
| | | }], |
| | | }, |
| | | // { |
| | | // font: '分配', |
| | | // type: 'text', |
| | | // method: 'handleIssued', |
| | | // disabFun: (row, index) => { |
| | | // // return row.state != 1 || !!row.assign |
| | | // return row.appointed || row.state != 1 |
| | | // } |
| | | // } |
| | | ], |
| | | linkEvent: { |
| | | sampleName: { |
| | | method: 'selectAllByOne' |
| | |
| | | ], |
| | | qrData:[], |
| | | multipleSelection:[], |
| | | sonLaboratoryList:[] |
| | | sonLaboratoryList:[], |
| | | currentRole:'', |
| | | BZinfo:[], |
| | | BZDialogVisible:false, |
| | | } |
| | | }, |
| | | watch:{ |
| | |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getAuthorizedPersonRole() |
| | | }, |
| | | mounted() { |
| | | this.entityCopy = this.HaveJson(this.componentData.entity) |
| | | this.getPower() |
| | |
| | | methods: { |
| | | selectMethod(val){ |
| | | this.multipleSelection = val |
| | | }, |
| | | async searchPrint(selection){ |
| | | let res = await this.$axios.post(this.$api.insOrder.checkNumber,{ |
| | | ids:selection.map(m=>m.id).join(',') |
| | | }) |
| | | if(res.data){ |
| | | let arr = [] |
| | | for(let i in res.data){ |
| | | let obj = { |
| | | name:i, |
| | | arr:res.data[i], |
| | | motorNumber:null, |
| | | } |
| | | arr.push(obj) |
| | | } |
| | | this.BZinfo = arr |
| | | this.BZDialogVisible = true |
| | | return true |
| | | }else{ |
| | | return false |
| | | } |
| | | }, |
| | | submitForm3(){ |
| | | let arr = [] |
| | | let num = 0; |
| | | this.BZinfo.forEach(m=>{ |
| | | arr = arr.concat(m.arr) |
| | | }) |
| | | arr.forEach(m=>{ |
| | | if(!m.motorNumber){ |
| | | num++ |
| | | } |
| | | }) |
| | | if(num>0){ |
| | | return this.$message.warning("请输入电机编号") |
| | | } |
| | | this.upLoad = true |
| | | this.$axios.post(this.$api.insOrder.addNumber,{ |
| | | insSamples:arr.map(m=>{ |
| | | return { |
| | | id:m.id, |
| | | motorNumber:m.motorNumber |
| | | } |
| | | }) |
| | | },{ |
| | | header: { |
| | | 'Content-Type': 'application/json;charset=UTF-8', |
| | | }, |
| | | noQs:true |
| | | }).then(res => { |
| | | this.upLoad = false; |
| | | if(res.code == 200){ |
| | | this.BZDialogVisible = false |
| | | this.getLabelPrinting(this.multipleSelection) |
| | | this.printDialogVisible = true |
| | | this.refreshTable() |
| | | } |
| | | }) |
| | | }, |
| | | getLabelPrinting(selection){ |
| | | this.loadPint = true; |
| | |
| | | font_size: '0.20cm', |
| | | }); |
| | | }, |
| | | print(){ |
| | | async print(){ |
| | | if(this.multipleSelection.length==0){ |
| | | this.$message.warning('请选择一条数据') |
| | | return |
| | | } |
| | | let selection = this.multipleSelection |
| | | this.getLabelPrinting(selection) |
| | | this.printDialogVisible = true |
| | | let isAdd = await this.searchPrint(selection) |
| | | if(!isAdd){ |
| | | this.getLabelPrinting(selection) |
| | | this.printDialogVisible = true |
| | | } |
| | | }, |
| | | getAuthorizedPerson() { |
| | | this.$axios.get(this.$api.user.getUserMenu).then(res => { |
| | |
| | | }) |
| | | }) |
| | | this.personList = data |
| | | }) |
| | | }, |
| | | getAuthorizedPersonRole() { |
| | | this.$axios.get(this.$api.role.getRole).then(res => { |
| | | this.currentRole = res.message |
| | | }) |
| | | }, |
| | | refreshTable(e) { |
| | |
| | | playOrder(num) { |
| | | this.active = num |
| | | this.examine = 0 |
| | | this.getAuthorizedPersonRole() |
| | | this.refreshTable('page') |
| | | }, |
| | | handleTab(m, i) { |