You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udiwms-vue-frame/src/views/collect/DialogReplaceCode.vue

131 lines
4.0 KiB
Vue

<template>
<div>
<el-card style="margin-top: -20px">
<el-descriptions title="产品信息" :column="2" border style="margin-top: 5px">
<el-descriptions-item label="产品名称">{{ prescribeData.cpmctymc }}</el-descriptions-item>
<el-descriptions-item label="产品标识">{{ prescribeData.nameCode }}</el-descriptions-item>
<el-descriptions-item label="产品规格">{{ prescribeData.ggxh }}</el-descriptions-item>
<el-descriptions-item label="计量单位">{{ prescribeData.measureUnit }}</el-descriptions-item>
<el-descriptions-item label="批次号">{{ prescribeData.batchNo }}</el-descriptions-item>
<el-descriptions-item label="生产日期">{{ prescribeData.productDate }}</el-descriptions-item>
<el-descriptions-item label="失效日期">{{ prescribeData.expireDate }}</el-descriptions-item>
</el-descriptions>
<el-form :model="formData" class="demo-form-inline" style="margin-top: 30px"
ref="formRef">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="原始追溯码" prop="count" label-width="100px">
<el-input v-model="prescribeData.finishUdiCode" placeholder=""
style="width:90%;"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="实际追溯码" label-width="100px">
<el-input
id="inputer"
@focus="getInputFocus($event)"
ref="inputRef"
style="ime-mode: disabled;width:90%;"
type="tel"
placeholder="请扫码或手动录入实际条码,多个条码请 ; 隔开"
v-model="prescribeData.replaceCode"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: center; margin-top: 20px;">
<el-button type="primary" @click="destroyOutOrder" :loading="saveLoading"></el-button>
<el-button @click="closeAddDialog"></el-button>
</div>
</el-card>
</div>
</template>
<script>
import {destroyOut} from '@/api/collect/IoDestroy'
import {updateBiz} from "@/api/collect/collectOrder";
export default {
name: 'DialogReplaceCode',
props: {
prescribeData: {
type: Object,
required: true
},
closeDialog: {
type: Function,
required: true
}
},
data() {
return {
formData: {},
produceDate: null,
expireDate: null,
saveLoading: false,
}
},
methods: {
conversionDate(dateString) {
const parts = dateString.split('');
const year = '20' + parts.slice(0, 2).join('');
const month = parts[2] + parts[3];
const day = parts[4] + parts[5];
return `${year}-${month}-${day}`;
},
validateCount(rule, value, callback) {
if (value > this.prescribeData.reCount) {
callback(new Error('损耗出库数量超出剩余数量'));
} else {
callback();
}
},
checkCount() {
// 这里可以调用表单验证方法
this.$refs.formRef.validateField('count');
},
closeAddDialog() {
this.closeDialog()
},
//损耗出库
destroyOutOrder() {
updateBiz(this.prescribeData).then(res => {
if (res.code == 20000) {
this.closeDialog()
return this.$message.success("替换成功!")
} else {
return this.$message.error(res.message)
}
})
},
getInputFocus(event) {
event.currentTarget.select();
},
},
created() {
if (this.prescribeData.produceDate != null) {
this.produceDate = this.conversionDate(this.prescribeData.produceDate)
}
if (this.prescribeData.expireDate != null) {
this.expireDate = this.conversionDate(this.prescribeData.expireDate)
}
this.$refs.inputRef.focus();
this.$refs.inputRef.select();
}
}
</script>
<style scoped>
</style>