问题件录入,新增逻辑完善

This commit is contained in:
liuyp 2024-06-05 20:31:20 +08:00
parent 26f9110fcb
commit 0e04da384b

View File

@ -5,9 +5,9 @@
<el-col :span="8">
<el-form-item label="扫描单号" prop="billCode" label-width="80px">
<span slot="label">
<span style="color: red">扫描单号</span>
<span style="color: red">{{$t('扫描单号')}}</span>
</span>
<el-input v-model="form.billCode" clearable="" placeholder="单号输入后按回车" @keyup.enter.native="handleScanInput" >
<el-input v-model="form.billCode" clearable="" placeholder="单号输入后按回车" @keyup.enter.native="handleScanInput" >
<i slot="suffix" class="iconfont">&#xe656;</i>
</el-input>
</el-form-item>
@ -16,16 +16,25 @@
</el-col>
<el-col :span="8">
<el-form-item :label="$t('通知网点')" prop="notifySite" label-width="80px">
<EmisSiteSimplePicker v-model="form.notifySite" @onChange="onScanSiteSelect" ></EmisSiteSimplePicker>
<!-- <EmisSiteSimplePicker v-model="form.notifySite" @onChange="onScanSiteSelect" ></EmisSiteSimplePicker> -->
<el-select v-model="form.notifySiteCode" @change="onScanSiteSelect">
<el-option v-for="item in notifySiteDataSource" :key="item.notifySiteCode" :value="item.notifySiteCode" :label="item.notifySiteName" ></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('问题类型')" prop="problemType" label-width="80px">
<span slot="label">
<span style="color: red">{{$t('问题类型')}}</span>
</span>
<ProblemTypePicker v-model="form.problemId" @onChange="onproblemTypeSelect" ></ProblemTypePicker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="问题原因" prop="remark" label-width="80px">
<span slot="label">
<span style="color: red">{{$t('问题原因')}}</span>
</span>
<el-input
v-model="form.remark"
:placeholder="$t('请输入')"
@ -38,23 +47,10 @@
<ImageUpload v-model="form.picUrl" @input="handleInput" :isShowTip="false" ></ImageUpload>
</el-form-item>
</el-col>
<el-col :span="8">
<el-button
type="primary"
plain
icon=""
size="mini"
@click="handleScanInput"
>登记</el-button>
</el-col>
</el-row>
</el-form>
<div>
</div>
<xd-table v-loading="loading"
border stripe
size="small"
@ -66,6 +62,15 @@
>
<div slot="toolbar">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon=""
size="mini"
@click="handleRegister"
>登记</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
@ -124,28 +129,31 @@
</el-row>
</div>
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('运单号')" align="center" prop="billCode" min-width="100" />
<el-table-column :label="$t('通知网点')" align="center" prop="notifySiteName" min-width="100" />
<el-table-column :label="$t('登记网点')" align="center" prop="scanSite" min-width="100" />
<el-table-column :label="$t('登记日期')" align="center" prop="scanDate" min-width="100">
<el-table-column :label="$t('运单号')" align="center" prop="billCode" min-width="170" />
<el-table-column :label="$t('状态')" align="center" prop="currentStatus" min-width="100" />
<el-table-column :label="$t('通知网点')" align="center" prop="notifySiteName" min-width="170" />
<el-table-column :label="$t('登记网点')" align="center" prop="scanSite" min-width="170" />
<el-table-column :label="$t('登记日期')" align="center" prop="scanDate" min-width="170">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.scanDate) }}</span>
</template>
</el-table-column>
<span>{{ parseTime(scope.row.scanDate) }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('问题件类型')" align="center" prop="problemTypeName" min-width="150" />
<el-table-column :label="$t('登记人')" align="center" prop="scanMan" min-width="100" />
<el-table-column :label="$t('问题件类型')" align="center" prop="problemTypeName" min-width="100" />
<el-table-column :label="$t('登记人')" align="center" prop="scanMan" min-width="150" />
<el-table-column :label="$t('图片路径')" align="center" prop="picUrl" min-width="100">
<template slot-scope="scope">
<span class="ellipsis">{{scope.row.picUrl}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('问题件原因')" align="center" prop="remark" min-width="100" />
<el-table-column :label="$t('问题件原因')" align="center" prop="remark" min-width="170">
<template slot-scope="scope">
<span class="ellipsis">{{scope.row.remark}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('数据来源')" align="center" prop="dataFrom" min-width="100" />
<el-table-column :label="$t('所属业务员')" align="center" prop="marketMan" min-width="100" />
<el-table-column :label="$t('所属业务员')" align="center" prop="marketMan" min-width="170" />
<el-table-column :label="$t('业务员编号')" align="center" prop="marketManCode" min-width="100" />
</xd-table>
<!-- 添加或修改问题件对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" v-dialogDrag :close-on-click-modal="false" append-to-body>
<el-row :gutter="0">
@ -156,7 +164,6 @@
<EmisSiteSimplePicker v-model="form.modifyNotifySite" @onChange="onModifyScanSiteSelect" ></EmisSiteSimplePicker>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div slot="footer" class="dialog-footer">
@ -164,7 +171,6 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog :title="titleBatch" :visible.sync="openBatch" width="50%" v-dialogDrag :close-on-click-modal="false" append-to-body>
<el-form ref="formBatch" :model="formBatch" size="mini" label-width="60px">
<el-row>
@ -188,7 +194,6 @@ import { addEmisWaybillProblemInfo,listEmisWaybillProblemInfo } from "@/api/emis
import { doScan } from "@/api/emis/emisTmsScanRecord";
import { listEmisWaybill } from "@/api/emis/emisWaybill";
// import { getWaybillDetail } from "@/api/emis/emisWaybill";
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
import ProblemTypePicker from '@/views/emis/EmisBaseTools/ProblemTypePicker.vue';
@ -215,6 +220,8 @@ export default {
// 问题件表格数据
emisWaybillList: [],
notifySiteDataSource:[],
title: "",
open: false,
titleBatch:"",
@ -224,10 +231,9 @@ export default {
problemType:null,
openForm: false,
titleForm: "",
tempRecord:{},
titleEmisWaybillProblemInfo: "",
openEmisWaybillProblemInfo: false,
// 显示编辑框更多
moreInputVisible: false,
@ -284,12 +290,17 @@ export default {
},
onScanSiteSelect(item){
if(!item){
this.form.modifyNotifySite = null;
this.form.modifyNotifySiteName = null;
this.form.notifySiteCode = null;
this.form.notifySiteName = null;
return;
}
this.form.notifySite=item && item.siteCode;
this.form.notifySiteName=item && item.siteName;
// this.form.notifySiteCode=item.notifySiteCode;
this.notifySiteDataSource.forEach(nItem => {
if(nItem.notifySiteCode == item){
this.form.notifySiteName=nItem.notifySiteName;
return;
}
})
},
onproblemTypeSelect(item){
// debugger;
@ -314,15 +325,18 @@ export default {
this.form.modifyNotifySiteName=item && item.siteName;
},
handleBatchRegister(){
if(this.form.notifySite==null || this.form.notifySite==''){
this.$message.error("请选择通知网点");
return;
}
// if(this.form.notifySite==null || this.form.notifySite==''){
// this.$message.error("请选择通知网点");
// return;
// }
if(this.form.problemType==null || this.form.problemType==''){
this.$message.error("请选择问题类型");
return;
}
if(this.form.remark==null || this.form.remark==''){
this.$message.error("请填写问题原因");
return;
}
this.formBatch = {
billCode: null,
}
@ -342,26 +356,9 @@ export default {
this.$message.error("输入单号后回车");
return;
}
// if(this.form.notifySite==null || this.form.notifySite==''){
// this.$message.error("请选择通知网点");
// return;
// }
// if(this.form.problemType==null || this.form.problemType==''){
// this.$message.error("请选择问题类型");
// return;
// }
// if(this.dataMap[this.form.billCode]){
// this.$message.error("重复登记");
// this.playNoticeTone(1);
// return;
// }
this.getWaybill(this.form.billCode)
},
getWaybill(billCode){
// this.getWaybill(this.form.billCode)
this.loading = true;
listEmisWaybill({billCode:billCode}).then(response => {
listEmisWaybill({billCode:this.form.billCode}).then(response => {
this.loading = false;
let scanDate = new Date();
if(response.code != 200){
@ -371,73 +368,150 @@ export default {
let rows = response.rows;
if(!rows || rows.length == 0){
this.$message.error("未查到单号");
this.form.billCode=null;
return;
}
for (let index = 0; index < rows.length; index++) {
let rsItem = rows[index];
if(rows.length>0) {
let rsItem = rows[0];
console.log(rsItem);
let record =Object.assign({}, rsItem)
record.notifySite = this.form.notifySite;
record.notifySiteName = this.form.notifySiteName;
record.scanSiteCode=this.form.scanSiteCode;
record.scanSite=this.form.scanSite;
record.scanDate=scanDate;
record.problemType=this.form.problemType;
record.scanMan=this.form.scanMan;
record.scanManCode=this.form.scanManCode;
record.picUrl=this.form.picUrl;
record.remark=this.form.remark;
record.dataFrom="PC";
this.emisWaybillList.push(record);
this.dataMap[this.form.billCode]=record;
this.tempRecord =Object.assign({}, rsItem)
// tempRecord.notifySite = tempRecord.sendSiteCode;
// tempRecord.notifySiteName = tempRecord.sendSiteName;
this.tempRecord.scanSiteCode=this.form.scanSiteCode;
this.tempRecord.scanSite=this.form.scanSite;
this.tempRecord.scanDate=scanDate;
this.tempRecord.scanMan=this.form.scanMan;
this.tempRecord.scanManCode=this.form.scanManCode;
this.tempRecord.dataFrom="PC";
this.notifySiteDataSource=[
{
notifySiteCode:this.tempRecord.sendSiteCode,
notifySiteName:this.tempRecord.sendSiteName,
},
{
notifySiteCode:this.tempRecord.dispatchUnderlingSiteCode,
notifySiteName:this.tempRecord.dispatchUnderlingSiteName,
}
]
// this.billInputDisabled = true;
// this.emisWaybillList.push(tempRecord);
// this.dataMap[this.form.billCode]=tempRecord;
}
this.form.billCode=null;
// this.form.billCode=null;
})
},
handleRegister(){
if(this.form.notifySiteCode==null || this.form.notifySiteCode==''){
this.$message.error("请选择通知网点");
return;
}
if(this.form.problemType==null || this.form.problemType==''){
this.$message.error("请选择问题类型");
return;
}
if(this.form.remark==null || this.form.remark==''){
this.$message.error("请填写问题原因");
return;
}
this.tempRecord.notifySiteCode = this.form.notifySiteCode;
this.tempRecord.notifySiteName = this.form.notifySiteName;
this.tempRecord.problemTypeName=this.form.problemType;
this.tempRecord.problemType = this.form.problemType;
this.tempRecord.problemId = this.form.problemId;
this.tempRecord.remark = this.form.remark;
this.tempRecord.picUrl=this.form.picUrl;
this.emisWaybillList.push(this.tempRecord);
this.dataMap[this.form.billCode]=this.tempRecord;
//清理数据
this.form.notifySiteCode="";
this.form.notifySiteName="";
this.tempRecord=null;
this.form.billCode=null;
this.notifySiteDataSource=[];
console.log(this.emisWaybillList)
},
// getWaybill(billCode){
// this.loading = true;
// listEmisWaybill({billCode:billCode}).then(response => {
// this.loading = false;
// let scanDate = new Date();
// if(response.code != 200){
// this.$message.error(response.msg);
// return;
// }
// let rows = response.rows;
// if(!rows || rows.length == 0){
// this.$message.error("未查到单号");
// return;
// }
// for (let index = 0; index < rows.length; index++) {
// let rsItem = rows[index];
// console.log(rsItem);
// let record =Object.assign({}, rsItem)
// record.notifySiteCode = recs;
// record.notifySiteName = record.sendSiteName;
// record.scanSiteCode=this.form.scanSiteCode;
// record.scanSite=this.form.scanSite;
// record.scanDate=scanDate;
// record.problemType=this.form.problemType;
// record.problemId=this.form.problemId;
// record.scanMan=this.form.scanMan;
// record.scanManCode=this.form.scanManCode;
// record.picUrl=this.form.picUrl;
// record.remark=this.form.remark;
// record.dataFrom="PC";
// this.emisWaybillList.push(record);
// this.dataMap[this.form.billCode]=record;
// }
// this.form.billCode=null;
// })
// },
handleUpload(){
let scanData=[];
let problemInfoList=[];
// let problemInfoList=[];
this.emisWaybillList.forEach(item=>{
// item.currentStatus="已上传";
if(this.ids.indexOf(item.id) > -1){
scanData.push(
{
billCode:item.billCode,
problemType:item.problemType,
notifySite:item.notifySite,
problemType:item.problemId,
notifySite:item.notifySiteCode,
picUrl:item.picUrl,
remark:item.remark,
scanWeight:item.scanWeight,
scanDate:item.scanDate
}
)
problemInfoList.push({
billCode: item.billCode,
problemType: item.problemType,
problemTitle: null,
problemCause: item.remark,
sendSite: item.sendSiteName,
sendSiteCode: item.sendSiteCode,
registerManCode: item.registerManCode,
registerManDept: null,
registerSiteCode: item.registerSiteCode,
registerDate: item.registerDate,
registerSaveDate: null,
dataFrom: item.dataFrom,
status: null,//item.waybillStatus,//????????是否正确
isSendSiteRegister: null,
// blReversion: false,//????????是否正确
blReversion: null,
reversionStr: null,
reversionMan: null,
reversionManCode: null,
reversionDate: null,
blCheckok: null,
blSee: null,
filePath: item.picUrl,
modifySiteCode: null,
delFlag: item.delFlag,//????????是否正确
remark: item.remark,//????????是否正确
})
// problemInfoList.push({
// billCode: item.billCode,
// problemType: item.problemType,
// problemTitle: null,
// problemCause: item.remark,
// sendSite: item.sendSiteName,
// sendSiteCode: item.sendSiteCode,
// registerManCode: item.registerManCode,
// registerManDept: null,
// registerSiteCode: item.registerSiteCode,
// registerDate: item.registerDate,
// registerSaveDate: null,
// dataFrom: item.dataFrom,
// status: null,//item.waybillStatus,//????????是否正确
// isSendSiteRegister: null,
// // blReversion: false,//????????是否正确
// blReversion: null,
// reversionStr: null,
// reversionMan: null,
// reversionManCode: null,
// reversionDate: null,
// blCheckok: null,
// blSee: null,
// filePath: item.picUrl,
// modifySiteCode: null,
// delFlag: item.delFlag,//????????是否正确
// remark: item.remark,//????????是否正确
// })
}
});
@ -447,6 +521,8 @@ export default {
scanData:scanData
};
let newList = [];
doScan(scanProblemInfo).then(response => {
let scanRstItem = response.data.scanResult[0];
console.log(scanRstItem);
@ -454,28 +530,33 @@ export default {
this.$modal.msgError(scanRstItem.message);
return;
}
this.emisWaybillList.forEach(item=>{
if(this.ids.indexOf(item.id) > -1){
item.currentStatus="已上传";
}
newList.push(item);
})
this.emisWaybillList = newList;
this.$modal.msgSuccess(scanRstItem.message);
});
problemInfoList.forEach(item => {
addEmisWaybillProblemInfo(item).then(response => {
// debugger;
if(response.code != "200"){
this.$modal.msgError(response.msg);
return;
}
this.$modal.msgSuccess(response.msg);
})
})
// problemInfoList.forEach(item => {
// addEmisWaybillProblemInfo(item).then(response => {
// // debugger;
// if(response.code != "200"){
// this.$modal.msgError(response.msg);
// return;
// }
// this.$modal.msgSuccess(response.msg);
// })
// })
},
/** 提交按钮 */
submitForm() {
let newList = [];
debugger
for(let i = 0; i< this.emisWaybillList.length;i++){
let waybill = {...this.emisWaybillList[i]};
if(this.ids.indexOf(waybill.id) > -1){
waybill.notifySite=this.form.modifyNotifySite;
waybill.notifySiteCode=this.form.modifyNotifySite;
waybill.notifySiteName=this.form.modifyNotifySiteName;
newList.push(waybill);
}else{
@ -485,22 +566,58 @@ export default {
this.emisWaybillList = newList;
this.open = false;
},
submitFormBatch(){
async submitFormBatch(){
if(this.formBatch.billCode==null || this.formBatch.billCode==''){
this.$message.error("输入单号后回车");
return;
}
let bcList=this.formBatch.billCode.split(/[;\;\,\,\n]/)||[];
bcList.forEach(code => {
// if(this.dataMap[code]){
// this.$message.error("重复登记:"+code);
// this.playNoticeTone(1);
// return;
// }
this.getWaybill(code)
});
// bcList.forEach(code => {
// this.getWaybill(code)
// });
this.loading = true;
for(let bc=0;bc<bcList.length;bc++){
await this.addToList(bcList[bc]);
}
this.loading = false;
this.openBatch=false;
},
async addToList(billCode){
let response = await listEmisWaybill({billCode:billCode})
if(!response || response.code != 200){
this.$message.error(response && response.msg || '未知错误');
}
let scanDate = new Date();
if(response.code != 200){
this.$message.error(response.msg);
return;
}
let rows = response.rows;
if(!rows || rows.length == 0){
this.$message.error("未查到单号: " + billCode);
return;
}
for (let index = 0; index < rows.length; index++) {
let rsItem = rows[index];
console.log(rsItem);
let record =Object.assign({}, rsItem)
record.notifySiteCode = record.sendSiteCode;
record.notifySiteName = record.sendSiteName;
record.scanSiteCode=this.form.scanSiteCode;
record.scanSite=this.form.scanSite;
record.scanDate=scanDate;
record.problemTypeName=this.form.problemType;
record.problemType=this.form.problemType;
record.problemId=this.form.problemId;
record.scanMan=this.form.scanMan;
record.scanManCode=this.form.scanManCode;
record.picUrl=this.form.picUrl;
record.remark=this.form.remark;
record.dataFrom="PC";
this.emisWaybillList.push(record);
this.dataMap[this.form.billCode]=record;
}
},
/** 删除按钮操作 */
handleDelete(row) {
let ids = [];
@ -584,4 +701,4 @@ export default {
white-space: nowrap; /* 确保文本在一行内显示 */
text-overflow: ellipsis; /* 超出部分显示省略号 */
}
</style>
</style>