| | |
| | | |
| | | <template> |
| | | <div class="ins_order_add"> |
| | | <div> |
| | | <div v-show="!configShow"> |
| | | <el-row class="title"> |
| | | <el-col :span="6" style="padding-left: 20px;">委托单信息</el-col> |
| | | <el-col :span="18" style="text-align: right;"> |
| | |
| | | <el-button size="medium" @click="templateDia=true" v-show="active==1"> |
| | | <span style="color: #3A7BFA;">保存模板</span> |
| | | </el-button> |
| | | <el-button size="medium" type="primary" @click="$parent.playOrder(4)">光纤配置</el-button> |
| | | <el-button size="medium" type="primary" @click="openConfig">光纤配置</el-button> |
| | | <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">提交</el-button> |
| | | <!-- 审核 --> |
| | | <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="search"> |
| | | <div class="search" v-show="!configShow"> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="6"> |
| | | <div class="search_label">委托编号:</div> |
| | |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="6"> |
| | | <div class="search_label">工程名称:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="addObj.engineering" |
| | | :readonly="active>1"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="6"> |
| | | <div class="search_label">工程名称EN:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="addObj.engineeringEn" |
| | | :readonly="active>1"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="6"> |
| | | <div class="search_label"><span class="required-span">* </span>生产单位:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="addObj.production" |
| | | :readonly="active>1"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="6"> |
| | | <div class="search_label"><span class="required-span">* </span>生产单位EN:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="addObj.productionEn" |
| | | :readonly="active>1"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="6"> |
| | | <div class="search_label">是否留样:</div> |
| | | <div class="search_input"> |
| | | <el-radio-group v-model="addObj.isLeave"> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div> |
| | | <div v-show="!configShow"> |
| | | <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="250px" tooltip-effect="dark" |
| | | border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;"> |
| | | <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></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 :filters="filters" |
| | | :filter-method="filterHandler"></el-table-column> |
| | | :filter-method="filterHandler"></el-table-column> |
| | | <el-table-column prop="methodS" label="试验方法" min-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="section" label="区间" width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="ask" label="要求值" min-width="220px"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea" readonly |
| | | :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)" :readonly="active>1"></el-input> |
| | | <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)" |
| | | v-if="active==1&&isAskOnlyRead"></el-input> |
| | | <span v-else>{{ scope.row.ask }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="selectStandardTree = false">取 消</el-button> |
| | | <el-button type="primary" @click="activeStandardTree">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="添加样品" :visible.sync="addSampleDia" width="400px"> |
| | | <div class="body" style="max-height: 60vh;"> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label"><span class="required-span">* </span>样品名称:</div> |
| | | <div class="search_input"> |
| | | <el-input readonly size="small" v-model="sample.sample"> |
| | | <template slot="append"><el-button slot="append" icon="el-icon-search" |
| | | @click="selectStandardTree = true"></el-button></template> |
| | | </el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label"><span class="required-span">* </span>工厂名称:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" clearable disabled v-model="sample.factory"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label"><span class="required-span">* </span>实验室名称:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" clearable disabled v-model="sample.laboratory"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label"><span class="required-span">* </span>样品类型:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" clearable disabled v-model="sample.sampleType"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label"><span class="required-span">* </span>规格型号:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="sample.model"></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label">样品编号:</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="sample.sampleCode" size="small" placeholder="请输入" clearable></el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label">样品数量:</div> |
| | | <div class="search_input"> |
| | | <el-input-number size="small" v-model="sample.sampleNum" :min="1" :max="100" :precision="0" |
| | | style="width: 50%;"></el-input-number> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" :span="22"> |
| | | <div class="search_label">样品留样:</div> |
| | | <div class="search_input"> |
| | | <el-radio-group v-model="sample.isLeave"> |
| | | <el-radio :label="1">留样</el-radio> |
| | | <el-radio :label="0">不留样</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addSampleDia = false">取 消</el-button> |
| | | <el-button type="primary" @click="onSample()" :loading="getProductLoad">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="保存模板" :visible.sync="templateDia" width="400px"> |
| | |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <fiberOpticConfig :currentId="currentId" v-if="configShow" :active="active" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ValueTable from '../../tool/value-table.vue' |
| | | import fiberOpticConfig from './fiberoptic-config.vue' |
| | | export default { |
| | | components: { |
| | | ValueTable |
| | | ValueTable, |
| | | fiberOpticConfig |
| | | }, |
| | | props: { |
| | | active: { |
| | |
| | | isLeave: 0, |
| | | orderType: null, |
| | | send: 1, |
| | | formType: '送检' |
| | | formType: '送检', |
| | | engineering: null, |
| | | engineeringEn: null, |
| | | production: null, |
| | | productionEn: null, |
| | | companyId: null |
| | | }, |
| | | sample: { |
| | | sampleCode: null, |
| | |
| | | noLoading: false, |
| | | orderType: [], |
| | | filters: [], |
| | | formType: [] |
| | | formType: [], |
| | | configShow: false, |
| | | currentMethod: null, |
| | | isAskOnlyRead: false, |
| | | sampleId: null |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | this.addObj.sampleNum = this.sampleList.length |
| | | this.$nextTick(() => { |
| | | this.$refs.sampleTable.doLayout() |
| | | if(this.addObj.sampleNum>0){ |
| | | this.$refs.sampleTable.setCurrentRow(this.sampleList[0],true) |
| | | if (this.addObj.sampleNum > 0) { |
| | | this.$refs.sampleTable.setCurrentRow(this.sampleList[0], true) |
| | | this.rowClick(this.sampleList[0]) |
| | | } |
| | | }) |
| | |
| | | this.$message.error('未选择数据') |
| | | return |
| | | } |
| | | delete selects['orderBy'] |
| | | delete selects['updateUser'] |
| | | delete selects['updateTime'] |
| | | this.addObj.userId = selects.id |
| | | this.addObj.company = selects.company |
| | | this.addObj.custom = selects.name |
| | | this.addObj.code = selects.code |
| | | this.addObj.phone = selects.phone |
| | | this.addObj.companyId = selects.id |
| | | this.selectUserDia = false |
| | | }, |
| | | save() { |
| | | if (!this.addObj.custom) { |
| | | this.$message.error('未选择下单客户') |
| | | if (!this.addObj.companyId) { |
| | | this.$message.error('未选择客户单位') |
| | | return |
| | | } |
| | | if (!this.addObj.type) { |
| | |
| | | this.$message.error('请输入来样方式') |
| | | } else if (!this.addObj.orderType) { |
| | | this.$message.error('请选择检验类别') |
| | | } else if (!this.addObj.production) { |
| | | this.$message.error('请输入生产单位') |
| | | } else if (!this.addObj.productionEn) { |
| | | this.$message.error('请输入生产单位EN') |
| | | } else if (this.sampleList.length < 1) { |
| | | this.$message.error('请添加一个样品') |
| | | } else if (!this.sampleList.every(m => m.sample)) { |
| | |
| | | this.saveLoad = true |
| | | this.$axios.post(this.$api.insOrder.addInsOrder, { |
| | | insOrder: this.addObj, |
| | | list: JSON.stringify(this.sampleList.map(a=>{ |
| | | a.model = a.model + ((a.modelNum==null||a.modelNum==''||a.modelNum=='null')?'':('-'+a.modelNum)) |
| | | list: JSON.stringify(this.sampleList.map(a => { |
| | | a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ( |
| | | '-' + a.modelNum)) |
| | | return a |
| | | })) |
| | | }, { |
| | |
| | | this.distributeData.orderId = this.currentId |
| | | this.distributeData.appointed = ress.data |
| | | }) |
| | | setTimeout(()=>{ |
| | | setTimeout(() => { |
| | | this.issuedDialogVisible = true; |
| | | },1000) |
| | | }, 1000) |
| | | }) |
| | | } else { |
| | | // 不通过 |
| | |
| | | this.addObj.custom = selects.name |
| | | this.addObj.code = selects.code |
| | | this.addObj.phone = selects.phone |
| | | this.addObj.companyId = selects.departId |
| | | }) |
| | | }, |
| | | searchFilter() { |
| | |
| | | this.sampleIds.push(a.id) |
| | | }) |
| | | }, |
| | | onSample() { |
| | | if (this.sample.sample == null || this.sample.sample == '') { |
| | | this.$message.error('请选择样品') |
| | | return |
| | | } |
| | | if (this.sample.model == null || this.sample.model == '') { |
| | | this.$message.error('请输入样品型号') |
| | | return |
| | | } |
| | | // this.getProductLoad = true |
| | | /* this.$axios.post(this.$api.standardTree.selectStandardProductList, { |
| | | factory: this.sample.factory, |
| | | laboratory: this.sample.laboratory, |
| | | sampleType: this.sample.sampleType, |
| | | sample: this.sample.sample, |
| | | model: this.sample.model |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | res.data.forEach(a => { |
| | | a.state = 1 |
| | | }) |
| | | for (var i = 0; i < this.sample.sampleNum; i++) { |
| | | this.sample.joinName = null |
| | | this.sample.joinModel = null |
| | | this.sample.joinNum = 1 |
| | | this.sample.insProduct = res.data |
| | | this.sample.id = this.count |
| | | this.sampleList.push(this.HaveJson(this.sample)) |
| | | this.count++ |
| | | } |
| | | this.$refs.sampleTable.doLayout() |
| | | this.getProductLoad = false |
| | | this.addSampleDia = false |
| | | this.sample = { |
| | | sampleCode: null, |
| | | laboratory: null, |
| | | factory: null, |
| | | sampleType: null, |
| | | sample: null, |
| | | model: null, |
| | | sampleNum: 1, |
| | | isLeave: 0, |
| | | } |
| | | }) */ |
| | | }, |
| | | delSample() { |
| | | this.sampleIds.forEach(a => { |
| | | for (var i = 0; i < this.sampleList.length; i++) { |
| | |
| | | }) |
| | | }, |
| | | rowClick(row, column, event) { |
| | | this.currentMethod = row |
| | | let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) |
| | | if (obj && obj.code == '委托要求') { |
| | | this.isAskOnlyRead = true |
| | | } else { |
| | | this.isAskOnlyRead = false |
| | | } |
| | | this.sampleId = row.id |
| | | if (this.active !== 1) { |
| | | this.sampleIds = [] |
| | | this.sampleIds.push(row.id) |
| | | } |
| | | this.productList = row.insProduct |
| | | setTimeout(() => { |
| | | this.productList.forEach(a => { |
| | |
| | | category: "检验类别" |
| | | }).then(res => { |
| | | this.orderType = res.data |
| | | if(res.data.length > 0){ |
| | | if (res.data.length > 0) { |
| | | this.addObj.orderType = res.data[0].value |
| | | } |
| | | }) |
| | |
| | | category: "来样方式" |
| | | }).then(res => { |
| | | this.formType = res.data |
| | | if(this.formType.length > 0){ |
| | | if (this.formType.length > 0) { |
| | | this.addObj.formType = this.formType[0].value |
| | | } |
| | | }) |
| | | }, |
| | | methodChange(val, row) { |
| | | if(val===null||val==='')return |
| | | if (val === null || val === '') return |
| | | this.currentMethod = row |
| | | let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) |
| | | if (obj && obj.code == '委托要求') { |
| | | this.isAskOnlyRead = true |
| | | } else { |
| | | this.isAskOnlyRead = false |
| | | } |
| | | this.getProductLoad = true |
| | | this.$axios.post(this.$api.standardTree.selectStandardProductList, { |
| | | model: row.model + '-' + row.modelNum, |
| | |
| | | category: "子实验室" |
| | | }).then(res => { |
| | | this.factory = [] |
| | | res.data.forEach(a=>{ |
| | | res.data.forEach(a => { |
| | | this.filters.push({ |
| | | text: a.label, |
| | | value: a.value |
| | |
| | | filterHandler(value, row, column) { |
| | | const property = column['property']; |
| | | return row[property] === value; |
| | | }, |
| | | openConfig() { |
| | | if (this.active === 1) { |
| | | if (this.sampleIds.length === 0) { |
| | | this.$message.error("未选择样品") |
| | | return |
| | | } |
| | | this.configShow = true |
| | | } else { |
| | | if (this.sampleId === null) { |
| | | this.$message.error('未选中样品') |
| | | return |
| | | } |
| | | this.$axios.post(this.$api.insBushing.selectBushingBySampleId, { |
| | | sampleId: this.sampleId |
| | | }).then(res => { |
| | | if (res.data.length === 0) { |
| | | this.$message.error('该样品没有配置光纤') |
| | | return |
| | | } |
| | | for (var i in this.sampleList) { |
| | | if (this.sampleList[i].id = this.sampleId) { |
| | | this.sampleList[i].bushing = res.data |
| | | break |
| | | } |
| | | } |
| | | this.configShow = true |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |