832 lines
30 KiB
Vue
832 lines
30 KiB
Vue
<template>
|
||
<div class="app-container">
|
||
<el-form ref="form" size="mini" :model="form" label-width="80px">
|
||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||
<el-col :span="8">
|
||
<el-form-item label="扫描单号" prop="billCode" label-width="80px">
|
||
<span slot="label">
|
||
<span style="color: red">{{$t('扫描单号')}}</span>
|
||
</span>
|
||
<el-input v-model="form.billCode" clearable="" placeholder="单号输入后按回车" @keyup.enter.native="handleScanInput" >
|
||
<i slot="suffix" class="iconfont"></i>
|
||
</el-input>
|
||
</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-col>
|
||
<el-col :span="8">
|
||
<el-form-item :label="$t('通知网点')" prop="notifySiteCode" label-width="80px">
|
||
<EmisSiteSimplePicker v-model="form.notifySiteCode" @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="问题原因" prop="remark" label-width="80px">
|
||
<span slot="label">
|
||
<span style="color: red">{{$t('问题原因')}}</span>
|
||
</span>
|
||
<el-input
|
||
v-model="form.remark"
|
||
type="textarea"
|
||
rows="3"
|
||
:placeholder="$t('请输入')"
|
||
clearable
|
||
/>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="24">
|
||
<el-form-item label="问题图片" prop="xxx" label-width="80px">
|
||
<ImageUpload v-model="form.picUrl" @input="handleInput" :isShowTip="false" ></ImageUpload>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
<div>
|
||
</div>
|
||
<xd-table v-loading="loading"
|
||
border
|
||
size="small"
|
||
storageName="problemEntry_main"
|
||
:data="emisWaybillList"
|
||
:showSearch.sync="showSearch"
|
||
:total="total"
|
||
:queryParams="queryParams"
|
||
@selection-change="handleSelectionChange"
|
||
>
|
||
<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"
|
||
plain
|
||
size="mini"
|
||
:disabled="multiple"
|
||
@click="handleUpload"
|
||
v-hasPermi="['emis:emisTmsScanRecord:add']"
|
||
>上传</el-button>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="danger"
|
||
plain
|
||
icon="el-icon-delete"
|
||
size="mini"
|
||
:disabled="multiple"
|
||
@click="handleDelete"
|
||
v-hasPermi="['emis:emisTmsScanRecord:remove']"
|
||
>删除</el-button>
|
||
</el-col>
|
||
<!-- <el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
size="mini"
|
||
@click="handleUpload"
|
||
v-hasPermi="['emis:emisTmsScanRecord:add']"
|
||
>下载导入模版</el-button>
|
||
</el-col> -->
|
||
<!-- <el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
size="mini"
|
||
@click="handleUpload"
|
||
v-hasPermi="['emis:emisTmsScanRecord:add']"
|
||
>导入</el-button>
|
||
</el-col> -->
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
size="mini"
|
||
@click="handleBatchRegister"
|
||
>批量登记</el-button>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
size="mini"
|
||
@click="handleBatchModify"
|
||
>批量修改</el-button>
|
||
</el-col>
|
||
</el-row>
|
||
</div>
|
||
<el-table-column type="selection" width="55" align="center" />
|
||
<el-table-column
|
||
:label="$t('序号')"
|
||
align="center"
|
||
type="index"
|
||
:index="indexMethod"
|
||
width="50">
|
||
</el-table-column>
|
||
<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="waybillStatus" width="100" >
|
||
<template slot-scope="scope">
|
||
<dict-tag :options="dict.type.emis_waybill_status" :value="scope.row.waybillStatus"/>
|
||
</template>
|
||
</el-table-column>
|
||
<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>
|
||
<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">
|
||
<ImagePreview height="50px" v-for="pic in (scope.row.picUrl||'').split(',')" :key="pic" :src="pic" ></ImagePreview>
|
||
</template>
|
||
</el-table-column>
|
||
<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="registerManName" min-width="170" />
|
||
<el-table-column :label="$t('业务员编号')" align="center" prop="registerManCode" 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">
|
||
<el-form ref="form" :model="form" size="mini" label-width="80px">
|
||
<!-- <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px"> -->
|
||
<el-col :span="24">
|
||
<el-form-item :label="$t('通知网点')" prop="notifySite" label-width="80px">
|
||
<EmisSiteSimplePicker v-model="form.modifyNotifySite" @onChange="onModifyScanSiteSelect" ></EmisSiteSimplePicker>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-form>
|
||
</el-row>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||
<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>
|
||
<el-col :span="24">
|
||
<el-form-item :label="$t('运单号')" prop="billCode">
|
||
<el-input v-model="formBatch.billCode" type="textarea" :rows="8" placeholder="运单号" />
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
<div slot="footer" class="dialog-footer" style="text-align:center">
|
||
<el-button type="primary" @click="submitFormBatch">确 定</el-button>
|
||
<el-button @click="cancelBatch">取 消</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import { addEmisWaybillProblemInfo,listEmisWaybillProblemInfo } from "@/api/emis/emisWaybillProblemInfo";
|
||
import { doScan } from "@/api/emis/emisTmsScanRecord";
|
||
// import { listEmisWaybill } from "@/api/emis/emisWaybill";
|
||
import { getWaybillDetail} 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';
|
||
import { parseTime } from "@/utils/custom";
|
||
|
||
export default {
|
||
name: "ProblemEntry",
|
||
components: { EmisSiteSimplePicker, ProblemTypePicker },
|
||
dicts: ['emis_question_type', 'emis_waybill_status'],
|
||
data() {
|
||
return {
|
||
// 遮罩层
|
||
loading: false,
|
||
// 选中数组
|
||
ids: [],
|
||
// 非单个禁用
|
||
single: true,
|
||
// 非多个禁用
|
||
multiple: true,
|
||
// 显示搜索条件
|
||
showSearch: true,
|
||
// 创建时间搜索
|
||
dateTimeRange:[],
|
||
// 总条数
|
||
total: 0,
|
||
// 问题件表格数据
|
||
emisWaybillList: [],
|
||
|
||
notifySiteDataSource:[],
|
||
|
||
title: "",
|
||
open: false,
|
||
titleBatch:"",
|
||
openBatch:false,
|
||
|
||
problemId:null,
|
||
problemType:null,
|
||
openForm: false,
|
||
titleForm: "",
|
||
tempRecord:{},
|
||
titleEmisWaybillProblemInfo: "",
|
||
openEmisWaybillProblemInfo: false,
|
||
// 显示编辑框更多
|
||
moreInputVisible: false,
|
||
|
||
// 弹出展示层
|
||
currentId:null,
|
||
id:null,
|
||
titleView:"",
|
||
openView: false,
|
||
// 备注时间范围
|
||
daterangeRegisterDate: [],
|
||
// 备注时间范围
|
||
daterangeCreateTime: [],
|
||
// 备注时间范围
|
||
daterangeUpdateTime: [],
|
||
// 表单参数
|
||
form: {},
|
||
formBatch:{},
|
||
dataMap:[],
|
||
queryParams:{}
|
||
// 表单校验
|
||
// rules: {
|
||
// id: [
|
||
// { required: true, message: "id不能为空", trigger: "blur" }
|
||
// ],
|
||
// }
|
||
};
|
||
},
|
||
created() {
|
||
// this.getList();
|
||
this.form.scanSiteCode=this.$store.getters.ownerSiteCode;
|
||
this.form.scanSite=this.$store.getters.ownerSiteName;
|
||
this.form.scanMan=this.$store.getters.empName;
|
||
this.form.scanManCode=this.$store.getters.empCode;
|
||
this.form.recordMan=this.$store.getters.empName;
|
||
this.form.recordManCode=this.$store.getters.empCode;
|
||
this.form.dispatchOrSendManCode=this.$store.getters.empCode;
|
||
},
|
||
methods: {
|
||
indexMethod(index) {
|
||
// 假设 currentPage 和 pageSize 都是数据属性
|
||
// const start = (this.currentPage - 1) * this.pageSize;
|
||
const start = 0;
|
||
return start + index + 1;
|
||
},
|
||
// 取消按钮
|
||
cancel() {
|
||
this.open = false;
|
||
this.modifyNotifySite=null;
|
||
this.modifyNotifySiteName=null;
|
||
},
|
||
cancelBatch() {
|
||
this.openBatch = false;
|
||
this.formBatch={};
|
||
},
|
||
// 多选框选中数据
|
||
handleSelectionChange(selection) {
|
||
this.ids = selection.map(item => item.id)
|
||
this.single = selection.length!==1
|
||
this.multiple = !selection.length
|
||
},
|
||
onScanSiteSelect(item){
|
||
debugger
|
||
if(!item){
|
||
this.form.notifySiteCode = null;
|
||
this.form.notifySiteName = null;
|
||
return;
|
||
}
|
||
this.form.notifySiteCode=item.siteCode;
|
||
this.form.notifySiteName=item.siteName;
|
||
// this.notifySiteDataSource.forEach(nItem => {
|
||
// if(nItem.notifySiteCode == item){
|
||
// this.form.notifySiteName=nItem.notifySiteName;
|
||
// return;
|
||
// }
|
||
// })
|
||
},
|
||
onproblemTypeSelect(item){
|
||
// debugger;
|
||
if(!item){
|
||
this.form.problemType = null;
|
||
this.form.problemId = null;
|
||
return;
|
||
}
|
||
this.form.problemType = item.typeName;
|
||
this.form.problemId=item.id;
|
||
},
|
||
handleInput(item){
|
||
this.form.picUrl = item;
|
||
},
|
||
onModifyScanSiteSelect(item){
|
||
if(!item){
|
||
this.form.modifyNotifySite = null;
|
||
this.form.modifyNotifySiteName = null;
|
||
return;
|
||
}
|
||
this.form.modifyNotifySite=item && item.siteCode;
|
||
this.form.modifyNotifySiteName=item && item.siteName;
|
||
},
|
||
handleBatchRegister(){
|
||
// if(this.form.notifySite==null || this.form.notifySite==''){
|
||
// this.$modal.msgError("请选择通知网点");
|
||
// return;
|
||
// }
|
||
if(this.form.problemType==null || this.form.problemType==''){
|
||
this.$modal.msgError("请选择问题类型");
|
||
return;
|
||
}
|
||
if(this.form.remark==null || this.form.remark==''){
|
||
this.$modal.msgError("请填写问题原因");
|
||
return;
|
||
}
|
||
this.formBatch = {
|
||
billCode: null,
|
||
}
|
||
this.titleBatch="批量登记";
|
||
this.openBatch=true;
|
||
},
|
||
handleBatchModify(){
|
||
if(this.ids !=null && this.ids.length>0){
|
||
this.open=true;
|
||
this.title="请选择通知网点"
|
||
}else{
|
||
this.$modal.msgError("请先选择数据")
|
||
}
|
||
},
|
||
async handleScanInput(){
|
||
if(this.form.billCode==null || this.form.billCode==''){
|
||
this.$modal.msgError("输入单号后回车");
|
||
return;
|
||
}
|
||
// this.getWaybill(this.form.billCode)
|
||
// this.loading = true;
|
||
|
||
|
||
for(let i = 0; i < this.emisWaybillList.length; i++){
|
||
if(this.emisWaybillList[i].billCode == this.form.billCode && this.emisWaybillList[i].problemId == this.form.problemId){
|
||
this.$modal.msgError("重复扫描");
|
||
this.form.billCode = "";
|
||
return;
|
||
}
|
||
}
|
||
|
||
let res=await getWaybillDetail(this.form.billCode);
|
||
// this.loading = false;
|
||
if(res.code != 200){
|
||
this.$modal.msgError(res.msg);
|
||
return;
|
||
}
|
||
|
||
let scanDate = new Date();
|
||
let rsItem = res.data;
|
||
console.log(rsItem);
|
||
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,
|
||
}
|
||
]
|
||
if(this.tempRecord.sendSiteCode == this.$store.getters.ownerSiteCode){
|
||
this.form.notifySiteCode = this.tempRecord.dispatchUnderlingSiteCode;
|
||
this.form.notifySiteName = this.tempRecord.dispatchUnderlingSiteName;
|
||
}
|
||
else{
|
||
this.form.notifySiteCode = this.tempRecord.sendSiteCode;
|
||
this.form.notifySiteName = this.tempRecord.sendSiteName;
|
||
console.log(this.form.notifySiteCode)
|
||
}
|
||
|
||
this.form = {...this.form};
|
||
|
||
// listEmisWaybill({billCode:this.form.billCode}).then(response => {
|
||
// this.loading = false;
|
||
// let scanDate = new Date();
|
||
// if(response.code != 200){
|
||
// this.$modal.msgError(response.msg);
|
||
// return;
|
||
// }
|
||
// let rows = response.rows;
|
||
// if(!rows || rows.length == 0){
|
||
// this.$modal.msgError("未查到单号");
|
||
// this.form.billCode=null;
|
||
// return;
|
||
// }
|
||
// if(rows.length>0) {
|
||
// let rsItem = rows[0];
|
||
// console.log(rsItem);
|
||
// 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,
|
||
// }
|
||
// ]
|
||
// if(this.tempRecord.sendSiteCode == this.$store.getters.ownerSiteCode){
|
||
// this.form.notifySiteCode = this.tempRecord.dispatchUnderlingSiteCode;
|
||
// this.form.notifySiteName = this.tempRecord.dispatchUnderlingSiteName;
|
||
// }
|
||
// // else if(this.tempRecord.dispatchUnderlingSiteCode == this.$store.getters.ownerSiteCode){
|
||
// // this.form.notifySiteCode = this.tempRecord.sendSiteCode;
|
||
// // this.form.notifySiteName = this.tempRecord.sendSiteName;
|
||
// // }
|
||
// else{
|
||
// this.form.notifySiteCode = this.tempRecord.sendSiteCode;
|
||
// this.form.notifySiteName = this.tempRecord.sendSiteName;
|
||
// }
|
||
// // this.billInputDisabled = true;
|
||
// // this.emisWaybillList.push(tempRecord);
|
||
// // this.dataMap[this.form.billCode]=tempRecord;
|
||
// }
|
||
// // this.form.billCode=null;
|
||
// })
|
||
},
|
||
handleRegister(){
|
||
if(this.form.notifySiteCode==null || this.form.notifySiteCode==''){
|
||
this.$modal.msgError("请选择通知网点");
|
||
return;
|
||
}
|
||
if(this.form.problemType==null || this.form.problemType==''){
|
||
this.$modal.msgError("请选择问题类型");
|
||
return;
|
||
}
|
||
if(this.form.remark==null || this.form.remark==''){
|
||
this.$modal.msgError("请填写问题原因");
|
||
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;
|
||
|
||
// 清除重复的数据
|
||
let newList = [];
|
||
this.emisWaybillList.forEach(item=>{
|
||
if(item.billCode != this.tempRecord.billCode ){
|
||
newList.push(item);
|
||
}
|
||
});
|
||
|
||
newList.push(this.tempRecord);
|
||
this.emisWaybillList=newList;
|
||
// 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.$modal.msgError(response.msg);
|
||
// return;
|
||
// }
|
||
// let rows = response.rows;
|
||
// if(!rows || rows.length == 0){
|
||
// this.$modal.msgError("未查到单号");
|
||
// 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=[];
|
||
this.emisWaybillList.forEach(item=>{
|
||
// item.currentStatus="已上传";
|
||
if(this.ids.indexOf(item.id) > -1){
|
||
scanData.push(
|
||
{
|
||
billCode:item.billCode,
|
||
problemType:item.problemId,
|
||
notifySite:item.notifySiteCode,
|
||
picUrl:item.picUrl,
|
||
remark:item.remark,
|
||
scanWeight:item.scanWeight,
|
||
scanDate:parseTime(item.scanDate || new Date())
|
||
}
|
||
)
|
||
// 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,//????????是否正确
|
||
// })
|
||
}
|
||
});
|
||
|
||
let scanProblemInfo = {
|
||
scanType:"-1",
|
||
opType:2,
|
||
scanData:scanData
|
||
};
|
||
|
||
let newList = [];
|
||
|
||
doScan(scanProblemInfo).then(response => {
|
||
let scanRstItem = response.data.scanResult[0];
|
||
console.log(scanRstItem);
|
||
if(scanRstItem.result != 'success'){
|
||
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);
|
||
// })
|
||
// })
|
||
},
|
||
/** 提交按钮 */
|
||
submitForm() {
|
||
let newList = [];
|
||
for(let i = 0; i< this.emisWaybillList.length;i++){
|
||
let waybill = {...this.emisWaybillList[i]};
|
||
if(this.ids.indexOf(waybill.id) > -1){
|
||
waybill.notifySiteCode=this.form.modifyNotifySite;
|
||
waybill.notifySiteName=this.form.modifyNotifySiteName;
|
||
newList.push(waybill);
|
||
}else{
|
||
newList.push(waybill);
|
||
}
|
||
}
|
||
this.emisWaybillList = newList;
|
||
this.open = false;
|
||
},
|
||
submitFormBatch(){
|
||
if(this.formBatch.billCode==null || this.formBatch.billCode==''){
|
||
this.$modal.msgError("输入单号后回车");
|
||
return;
|
||
}
|
||
let bcList=this.formBatch.billCode.split(/[;\;\,\,\n]/)||[];
|
||
// bcList.forEach(code => {
|
||
// this.getWaybill(code)
|
||
// });
|
||
this.loading = true;
|
||
for(let bc=0;bc<bcList.length;bc++){
|
||
// for(let i = 0; i < this.emisWaybillList.length; i++){
|
||
// if(this.emisWaybillList[i].billCode == this.form.billCode && this.emisWaybillList[i].problemId == this.form.problemId){
|
||
// this.$modal.msgError("重复扫描");
|
||
// this.form.billCode = "";
|
||
// return;
|
||
// }
|
||
// }
|
||
let exitlist = this.emisWaybillList.filter(item => (item.billCode == bcList[bc].trim() && item.problemId == this.form.problemId));
|
||
if(exitlist.length > 0){
|
||
this.$modal.msgError("单号:"+ bcList[bc].trim() + ", 已存在");
|
||
continue;
|
||
}else{
|
||
this.addToList(bcList[bc].trim());
|
||
}
|
||
}
|
||
this.loading = false;
|
||
this.openBatch=false;
|
||
},
|
||
async addToList(billCode){
|
||
debugger;
|
||
if(!billCode){
|
||
return;
|
||
}
|
||
let response = await getWaybillDetail(billCode);
|
||
if(!response || response.code != 200){
|
||
this.$modal.msgError((response && response.msg || '未知错误') + ": " + billCode);
|
||
return;
|
||
}
|
||
let scanDate = new Date();
|
||
|
||
let data = response.data;
|
||
if(!data || data.billCode == ""){
|
||
this.$modal.msgError("未查到单号: " + billCode);
|
||
return;
|
||
}
|
||
// for (let index = 0; index < rows.length; index++) {
|
||
let rsItem = data;//rows[index];
|
||
console.log(rsItem);
|
||
let record =Object.assign({}, rsItem)
|
||
// record.notifySiteCode = record.sendSiteCode;
|
||
// record.notifySiteName = record.sendSiteName;
|
||
|
||
if(record.sendSiteCode == this.$store.getters.ownerSiteCode){
|
||
record.notifySiteCode = record.dispatchUnderlingSiteCode;
|
||
record.notifySiteName = record.dispatchUnderlingSiteName;
|
||
}else{
|
||
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 = [];
|
||
let newList =[];
|
||
this.emisWaybillList.forEach(item=>{
|
||
if(this.ids.indexOf(item.id) == -1){
|
||
newList.push(item);
|
||
ids.push(item.id)
|
||
}else{
|
||
this.dataMap[item.billCode]=null;
|
||
}
|
||
});
|
||
this.ids = ids;
|
||
this.emisWaybillList = newList;
|
||
},
|
||
/** 导出按钮操作 */
|
||
handleExport() {
|
||
const loadingInstance = this.$loading({
|
||
text: '正在导出...'
|
||
})
|
||
var qParam = {};
|
||
qParam.pageNum=1;
|
||
qParam.pageSize=5000;
|
||
|
||
listEmisWaybillProblemInfo(this.addDateRange(qParam, this.dateTimeRange)).then(response => {
|
||
this.downloadLoading = false
|
||
if (response.code === 200) {
|
||
const curList = response.rows
|
||
import('@/vendor/Export2Excel').then(excel => {
|
||
const tHeader = ['id','运单号','问题类型:','问题件标题','问题件原因','发送站点','发送站点代码','登记人代码','登记人所在部门','登记站点代码','登记时间','登记保存时间','数据来源','状态','是否寄件网点发起','是否回复','回复内容','回复人','回复人代码','回复日期','是否检查','是否查看','文件路径','创建站点代码','修改站点代码','删除标志(0代表存在','创建者','创建时间','更新者','更新时间','备注',];
|
||
const filterVal = ['id','billCode','problemType','problemTitle','problemCause','sendSite','sendSiteCode','registerManCode','registerManDept','registerSiteCode','registerDate','registerSaveDate','dataFrom','status','isSendSiteRegister','blReversion','reversionStr','reversionMan','reversionManCode','reversionDate','blCheckok','blSee','filePath','createSiteCode','modifySiteCode','delFlag','createBy','createTime','updateBy','updateTime','remark',];
|
||
const data = this.formatJson(filterVal, curList, response.rows)
|
||
excel.export_json_to_excel({
|
||
header: tHeader,
|
||
data,
|
||
filename: '问题件',
|
||
autoWidth: true
|
||
})
|
||
loadingInstance.close()
|
||
})
|
||
}
|
||
});
|
||
},
|
||
formatJson(filterVal, jsonData, resData) {
|
||
let index = 0
|
||
return jsonData.map(v => filterVal.map(j => {
|
||
if (j === 'index') {
|
||
return ++index
|
||
}
|
||
if (j === 'status') {
|
||
var statusStr='xxx'
|
||
if(v[j] == 10){
|
||
statusStr='xxx'
|
||
}
|
||
return statusStr;
|
||
}
|
||
return v[j]
|
||
}))
|
||
},
|
||
/** 时间搜索响应函数 */
|
||
dateTimeChange(value){
|
||
this.dateTimeRange=value;
|
||
},
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style scoped>
|
||
.el-divider{
|
||
margin-top: 0px;
|
||
background: 0 0;
|
||
border-top: 1px solid #E6EBF5;
|
||
}
|
||
.el-divider__text {
|
||
color: #0955ee;
|
||
cursor: pointer;
|
||
}
|
||
.ellipsis {
|
||
width:200px;
|
||
overflow: hidden; /* 确保超出容器的内容被裁剪 */
|
||
white-space: nowrap; /* 确保文本在一行内显示 */
|
||
text-overflow: ellipsis; /* 超出部分显示省略号 */
|
||
}
|
||
</style>
|