| | |
| | | display: flex; |
| | | align-items: center; |
| | | height: 50px; |
| | | width: 230px; |
| | | } |
| | | |
| | | |
| | | .search_label { |
| | | width: 120px; |
| | | width: 90px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | |
| | | .search_input { |
| | | width: calc(100% - 120px); |
| | | width: calc(100% - 90px); |
| | | } |
| | | |
| | | .table { |
| | |
| | | border-radius: 8px 0 0 8px; |
| | | } |
| | | |
| | | .tab li:nth-child(4) { |
| | | .tab li:nth-child(5) { |
| | | border-radius: 0 8px 8px 0; |
| | | } |
| | | |
| | |
| | | <div class="search_thing"> |
| | | <div class="search_label">样品名称:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable |
| | | v-model="componentData.entity.sample" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | v-model="componentData.entity.sampleType" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">样品型号:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable |
| | | v-model="componentData.entity.sampleModel" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">样品编号:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable |
| | | v-model="componentData.entity.sampleCode" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">下单时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker style="width:100%" v-model="componentData.entity.createTime" |
| | | type="date" |
| | | size="small" |
| | | format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | clearable |
| | | placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | |
| | | <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li> |
| | | </ul> |
| | | <ValueTable ref="ValueTable" :url="$api.insOrder.selectInsOrderParameter" :componentData="componentData" |
| | | :key="upIndex" style="height: calc(100% - 44px)" /> |
| | | :key="'b'+upIndex" style="height: calc(100% - 44px)" /> |
| | | </div> |
| | | <!-- 审核 --> |
| | | <el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose"> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 下发 --> |
| | | <el-dialog title="检验下发" :visible.sync="issuedDialogVisible" width="400px" :before-close="handleClose"> |
| | | <el-dialog title="检验分配" :visible.sync="issuedDialogVisible" width="400px" :before-close="handleClose"> |
| | | <div class="body" style="max-height: 60vh;"> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="22"> |
| | | <el-col class="search_thing" style="width: 95%;"> |
| | | <div class="search_label"><span class="required-span">* </span>约定时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="选择日期" |
| | |
| | | </el-date-picker> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label"><span class="required-span">* </span>指派人员:</div> |
| | | <el-col class="search_thing" style="width: 95%;"> |
| | | <div class="search_label"><span class="required-span" v-show="distributeData.type==2">* </span>指派人员:</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="distributeData.userId" placeholder="请选择" size="small" style="width: 100%;"> |
| | | <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select v-model="distributeData.userId" placeholder="请选择" size="small" style="width: 100%;" clearable> |
| | | <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="70%" :before-close="handleClose2"> |
| | | <div style="height: 70vh;overflow-y: auto;"> |
| | | <ValueTable ref="ValueTableDataLook" :url="$api.deviceScope.selectDeviceParameter" |
| | | :componentData="componentDataDataLook" :key="upIndex" /> |
| | | <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="80%"> |
| | | <div style="height: 70vh;overflow-y: auto;" v-if="dataDialogVisible"> |
| | | <ValueTable ref="ValueTableDataLook" :url="$api.insOrder.selectSampleAndProductByOrderId" |
| | | :componentData="componentDataDataLook"/> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | <div style="width: 100%;height: 100%;" v-if="active == 1"> |
| | | <Add /> |
| | | <div style="width: 100%;height: 100%;" v-if="active >0"> |
| | | <Add :active="active" :currentId="currentId" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | componentData: { |
| | | entity: { |
| | | entrustCode: null, |
| | | sample: null, |
| | | state: 1, |
| | | sampleType: null, |
| | | sampleName: null, |
| | | sampleModel: null, |
| | | sampleCode: null, |
| | | state: 0, |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'asc' |
| | |
| | | type: 'text', |
| | | method: 'handleDataLook', |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 |
| | | return row.state != 1 && row.state != 4 |
| | | } |
| | | }, { |
| | | id: 'download', |
| | |
| | | type: 'text', |
| | | method: 'download', |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 |
| | | return row.state != 4 || row.reportId == null |
| | | } |
| | | }, { |
| | | id: 'verify', |
| | |
| | | id: 'quash', |
| | | font: '撤销', |
| | | type: 'text', |
| | | method: 'handlEquash' |
| | | method: 'handlEquash', |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 && row.state != 0 |
| | | } |
| | | }, { |
| | | font: '下发', |
| | | font: '分配', |
| | | type: 'text', |
| | | method: 'handleIssued', |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 || row.sendTime != null |
| | | } |
| | | }], |
| | | linkEvent:{ |
| | | entrustCode:{ |
| | | method:'selectAllByOne' |
| | | } |
| | | linkEvent: { |
| | | entrustCode: { |
| | | method: 'selectAllByOne' |
| | | } |
| | | }, |
| | | tagField: { |
| | | type: { |
| | |
| | | }, |
| | | createUser: { |
| | | select: [] |
| | | } |
| | | }, |
| | | orderType: { |
| | | select: [] |
| | | }, |
| | | processing: { |
| | | select: [{ |
| | | value: 1, |
| | | label: '实验室处理' |
| | | },{ |
| | | value: 0, |
| | | label: '委托单位取回' |
| | | }] |
| | | }, |
| | | isLeave: { |
| | | select: [{ |
| | | value: 1, |
| | | label: '留样' |
| | | },{ |
| | | value: 0, |
| | | label: '不留样' |
| | | }] |
| | | }, |
| | | send: { |
| | | select: [{ |
| | | value: 1, |
| | | label: '自取' |
| | | },{ |
| | | value: 0, |
| | | label: '其他' |
| | | }] |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | requiredAdd: [], |
| | |
| | | }, |
| | | componentDataDataLook: { |
| | | entity: { |
| | | id: 0, |
| | | orderBy: { |
| | | field: 'id', |
| | | field: 'sampleCode', |
| | | order: 'asc' |
| | | } |
| | | }, |
| | |
| | | select: false, |
| | | do: [], |
| | | tagField: { |
| | | deviceStatus: { |
| | | insState: { |
| | | select: [] |
| | | }, |
| | | insResult: { |
| | | select: [{ |
| | | value: 0, |
| | | type: 'success', |
| | | label: '正常' |
| | | }, { |
| | | value: 1, |
| | | type: 'warning', |
| | | label: '报废' |
| | | }, { |
| | | value: 2, |
| | | type: 'danger', |
| | | label: '保修' |
| | | label: '合格', |
| | | type: 'success' |
| | | },{ |
| | | value: 0, |
| | | label: '不合格', |
| | | type: 'danger' |
| | | }] |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | spanConfig:{ |
| | | rows:[ |
| | | { |
| | | name:'sampleCode', |
| | | index:0 |
| | | }, |
| | | { |
| | | name:'sample', |
| | | index:1 |
| | | }, |
| | | { |
| | | name:'model', |
| | | index:2 |
| | | } |
| | | ] |
| | | }, |
| | | requiredAdd: [], |
| | | requiredUp: [] |
| | | }, |
| | |
| | | addPower: true, |
| | | upLoad: false, |
| | | tabList: [{ |
| | | label: '检验处理', |
| | | label: '待审核', |
| | | value: 0 |
| | | }, { |
| | | label: '待检验', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '待审核', |
| | | value: 0 |
| | | label: '已检验', |
| | | value: 4 |
| | | }, |
| | | { |
| | | label: '退回', |
| | |
| | | }, |
| | | ], |
| | | tabIndex: 0, |
| | | active: 0 |
| | | active: 0, //1:下单,2:查看,3:审核 |
| | | currentId: null |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | this.getPower() |
| | | this.getUserMenu() |
| | | this.getAuthorizedPerson() |
| | | this.getInsStateDicts() |
| | | this.selectEnumByCategoryForOrderType() |
| | | }, |
| | | methods: { |
| | | getAuthorizedPerson() { |
| | |
| | | }, |
| | | // 详情 |
| | | selectAllByOne(row) { |
| | | console.log(row); |
| | | //打开弹框 |
| | | this.dialogVisible = true; |
| | | //row = 点击对应行值 |
| | | //复制给formData |
| | | this.formData = this.HaveJson(row); |
| | | this.active = 2; |
| | | // console.log(row); |
| | | // //打开弹框 |
| | | // this.dialogVisible = true; |
| | | // //row = 点击对应行值 |
| | | // //复制给formData |
| | | // this.formData = this.HaveJson(row); |
| | | this.currentId = row.id |
| | | }, |
| | | // 数据查看 |
| | | handleDataLook(row) { |
| | | this.componentDataDataLook.entity.id = row.id |
| | | this.dataDialogVisible = true; |
| | | }, |
| | | // 下载报告 |
| | | download(row) { |
| | | }, |
| | | let url = row.urlS?row.urlS:row.url; |
| | | if(url){ |
| | | url = url.split('.')[0]+'.pdf' |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi + url; |
| | | link.target = '_blank'; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | } |
| | | }, |
| | | // 审核 |
| | | handleVerify(row) { |
| | | this.verifyDialogVisible = true; |
| | | // this.verifyDialogVisible = true; |
| | | this.active = 3; |
| | | this.currentId = row.id |
| | | }, |
| | | // 撤销 |
| | | handlEquash(row) { |
| | |
| | | // 下发 |
| | | handleIssued(row) { |
| | | this.issuedDialogVisible = true; |
| | | this.$axios.post(this.$api.insOrder.selectOrderManDay,{ |
| | | id: row.sampleId |
| | | }).then(res=>{ |
| | | this.$axios.post(this.$api.insOrder.selectOrderManDay, { |
| | | id: row.id |
| | | }).then(res => { |
| | | this.distributeData.orderId = row.id |
| | | this.distributeData.sampleId = row.sampleId |
| | | this.distributeData.appointed = res.data |
| | | this.distributeData.type = row.type |
| | | }) |
| | | }, |
| | | submitForm2() { |
| | | if(this.distributeData.appointed==null||this.distributeData.appointed==''){ |
| | | if (this.distributeData.appointed == null || this.distributeData.appointed == '') { |
| | | this.$message.error('约定时间未填写') |
| | | return |
| | | } |
| | | if(this.distributeData.type==2&&(this.distributeData.userId==null||this.distributeData.userId=='')){ |
| | | this.$message.error('指派人员未填写') |
| | | return |
| | | } |
| | | this.upLoad = true; |
| | |
| | | }) |
| | | this.componentData.tagField.createUser.select = data |
| | | }) |
| | | } |
| | | }, |
| | | getInsStateDicts() { |
| | | this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | category: "检验任务状态" |
| | | }).then(res => { |
| | | let data = res.data |
| | | this.insStateList = data |
| | | data.forEach(ele => { |
| | | //0:待检验 1:检验中 2:已检验 3:待复核 4:复核未通过 5:复核通过 |
| | | if (['2', '5'].includes(ele.value)) { |
| | | ele.type = 'success' |
| | | } else if (['1', '3'].includes(ele.value)) { |
| | | ele.type = 'warning' |
| | | } else if (['0', '4'].includes(ele.value)) { |
| | | ele.type = 'danger' |
| | | } |
| | | }) |
| | | this.componentDataDataLook.tagField.insState.select = data |
| | | }) |
| | | }, |
| | | selectEnumByCategoryForOrderType() { |
| | | this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | category: "检验类别" |
| | | }).then(res => { |
| | | this.componentData.tagField.orderType.select = res.data |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | </script> |