Browse Source

Merge branch 'pre-production'

master
pref_mail@163.com 5 months ago
parent
commit
ddc72e7a07
  1. 39
      src/components/ArteryPrintTemplate/ArteryPrintTemplate.vue
  2. 16
      src/components/Tableexportcomponent/Tableexportcomponent.vue
  3. 537
      src/option/aftersales/vueTvemp.js
  4. 174
      src/option/distribution/addVehicleStowage.js
  5. 26
      src/option/distribution/directGoMarketDetails.js
  6. 4
      src/option/distribution/zeroAdditionalRecording.js
  7. 20
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  8. 9
      src/views/aftersales/aftersalesWorkOrderInfo.vue
  9. 174
      src/views/aftersales/aftersalesWorkOrderTemp.vue
  10. 2
      src/views/aftersales/aftersalesWorkOrdermodify.vue
  11. 6
      src/views/basic/material/basicMaterial.vue
  12. 6
      src/views/basicdata/warehouse/warehouse/basicdataWarehouse.vue
  13. 2
      src/views/distribution/artery/VehicleStowage.vue
  14. 18
      src/views/distribution/artery/directGoMarketDetails.vue
  15. 77
      src/views/distribution/inventory/delivery/distributionStockArticle.vue
  16. 141
      src/views/distribution/inventory/delivery/distributionStockArticleDiscuss.vue
  17. 143
      src/views/distribution/inventory/delivery/distributionStockArticleMarket.vue
  18. 158
      src/views/distribution/inventory/delivery/distributionStockArticleSelf.vue
  19. 29
      src/views/distribution/inventory/delivery/distributionStockArticleWhole.vue
  20. 172
      src/views/waybill/orderPackageList.vue
  21. 40
      src/views/waybill/orderPackageListDetails.vue

39
src/components/ArteryPrintTemplate/ArteryPrintTemplate.vue

@ -129,8 +129,8 @@
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">小计</th>
</tr>
<!-- -->
<template v-if="renderInfo.mainList">
<tr v-for="(value, index) in renderInfo.mainList" style="word-break: break-all">
<template v-if="orderList.length > 0">
<tr v-for="(value, index) in orderList" style="word-break: break-all">
<td style="border-bottom: 1px solid #000; border-left: 1px solid #000">
{{ index + 1 }}
</td>
@ -298,13 +298,28 @@ const totalUnLoadNum = ref(0);
/** 计划中暑 */
const totalPlanNum = ref(0);
renderInfo.value = waybillInfo;
const orderList = reactive([]);
/** 是否显示金额统计 */
const isShowTotal = ref(false);
renderInfo.value = waybillInfo;
renderInfo.value.endWarehouseNames = renderInfo.value.endWarehouseNames.split(',');
for (let i = 0; i < renderInfo.value.mainList.length; i++) {
const val = renderInfo.value.mainList[i];
//
let _flag = false;
for (let j = orderList.length - 1; j >= 0; j--) {
const item = orderList[j];
if (item.waybillNo !== val.waybillNo) continue;
orderList.splice(j, 0, val);
_flag = true;
}
!_flag && orderList.push(val);
}
//
let mergeStartIndex = 0;
//
@ -320,8 +335,8 @@ const handleMerge = (startIndex: number, endIndex: number, data: {}) => {
}
};
for (let index = 0; index < renderInfo.value.mainList.length; index++) {
const element = renderInfo.value.mainList[index];
for (let index = 0; index < orderList.length; index++) {
const element = orderList[index];
if (index === 0) {
comparisonValue = element.waybillNo;
@ -334,15 +349,15 @@ for (let index = 0; index < renderInfo.value.mainList.length; index++) {
if (element.waybillNo !== comparisonValue) {
// if (index === 1) mergeStartIndex = 1;
comparisonValue = element.waybillNo;
handleMerge(mergeStartIndex, index, renderInfo.value.mainList);
handleMerge(mergeStartIndex, index, orderList);
mergeStartIndex = index;
if (index === renderInfo.value.mainList.length - 1) {
handleMerge(mergeStartIndex, index + 1, renderInfo.value.mainList);
if (index === orderList.length - 1) {
handleMerge(mergeStartIndex, index + 1, orderList);
}
//
} else if (index === renderInfo.value.mainList.length - 1) {
handleMerge(mergeStartIndex, index + 1, renderInfo.value.mainList);
} else if (index === orderList.length - 1) {
handleMerge(mergeStartIndex, index + 1, orderList);
}
if (element.goodsList && element.goodsList.length > 0) {

16
src/components/Tableexportcomponent/Tableexportcomponent.vue

@ -128,22 +128,6 @@ const exportToExcel = () => {
//
const fillEmptyCells = (data) => {
if (data.length === 0 || data[0].length === 0) return data;
const rowCount = data.length;
const colCount = data[0].length;
for (let col = 0; col < colCount; col++) {
let lastNonEmptyValue = '';
for (let row = 0; row < rowCount; row++) {
if (data[row][col] !== '') {
lastNonEmptyValue = data[row][col];
} else {
data[row][col] = lastNonEmptyValue;
}
}
}
return data;
};

537
src/option/aftersales/vueTvemp.js

@ -1,4 +1,4 @@
import { isShallow } from "vue";
import { isShallow } from 'vue';
/**
*全部列表
@ -41,6 +41,17 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'a',
label: '工单创建仓',
type: 1,
values: '',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'workOrderNumber',
label: '异常工单号',
@ -52,6 +63,28 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'waybillNumber',
label: '运单号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '订单自编号',
type: 2,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'packageCode',
label: '包条码',
@ -64,8 +97,8 @@ export const columnList = [
head: false,
},
{
prop: 'waybillNumber',
label: '运单号',
prop: 'brandName',
label: '品牌',
type: 2,
values: '',
width: '150',
@ -75,11 +108,11 @@ export const columnList = [
head: false,
},
{
prop: 'orderCode',
label: '订单自编号',
prop: 'waybillMall',
label: '运单商场',
type: 2,
values: '',
width: '180',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
@ -107,10 +140,11 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'waybillMall',
label: '运单商场',
type: 2,
prop: 'workOrderStatusNameS', //workOrderStatus
label: '工单状态',
type: 3,
values: '',
width: '150',
checkarr: [],
@ -119,9 +153,9 @@ export const columnList = [
head: false,
},
{
prop: 'workOrderStatusNameS', //workOrderStatus
label: '工单状态',
type: 3,
prop: 'processedBy',
label: '工单处理方',
type: 1,
values: '',
width: '150',
checkarr: [],
@ -130,9 +164,9 @@ export const columnList = [
head: false,
},
{
prop: 'brandName',
label: '品牌',
type: 2,
prop: 'a',
label: '责任方',
type: 1,
values: '',
width: '150',
checkarr: [],
@ -141,9 +175,9 @@ export const columnList = [
head: false,
},
{
prop: 'customerServiceName',
label: '归属客服名称',
type: 2,
prop: 'createTime',
label: '工单创建时间',
type: 1,
values: '',
width: '150',
checkarr: [],
@ -152,8 +186,108 @@ export const columnList = [
head: false,
},
{
prop: 'totalAmount',
label: '赔款金额',
prop: 'a',
label: '工单最晚处理时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '工单最新处理时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '处理结果',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '处理结果—理赔金额',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '营业部处理客服',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '总部处理客服',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'overTime',
label: '完结时间', //审核时间
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '是否申诉',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '申诉状态',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'processNumber',
label: '钉钉号',
type: 1,
values: '',
width: '150',
@ -173,6 +307,40 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'entryTime',
label: '入账月份',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'customerServiceName',
label: '归属客服名称',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalAmount',
label: '赔款金额',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'operator',
label: '操作人',
@ -266,8 +434,8 @@ export const columnList = [
},
{
prop: 'overTime',
label: '完结时间',
prop: 'auditTime',
label: '审核时间', //审核时间
type: 1,
values: '',
width: '150',
@ -298,17 +466,7 @@ export const columnList = [
// sortable: true,
// head: false,
// },
{
prop: 'processNumber',
label: '钉钉流程号',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'reviewedBy',
label: '审核人',
@ -320,28 +478,7 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'auditTime',
label: '审核时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'createTime',
label: '录入时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'ceator',
label: '创建人',
@ -354,17 +491,17 @@ export const columnList = [
head: false,
},
{
prop: 'remarks',
label: '备注',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'remarks',
// label: '备注',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'createUserName',
@ -1641,7 +1778,7 @@ export const columnList4 = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,//开启统计
isshowSummary: true, //开启统计
},
// {
@ -1656,7 +1793,6 @@ export const columnList4 = [
// head: false,
// },
{
prop: 'createUserName',
label: '操作',
@ -1709,6 +1845,18 @@ export const columnList2 = [
sortable: true,
head: false,
},
{
prop: 'a', //discoveryNode
label: '工单创建仓',
type: 1,
values: '',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'workOrderNumber',
label: '异常工单号',
@ -1720,17 +1868,7 @@ export const columnList2 = [
sortable: true,
head: false,
},
// {
// prop: 'packageCode',
// label: '包条码',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'waybillNumber',
label: '运单号',
@ -1753,9 +1891,9 @@ export const columnList2 = [
sortable: true,
head: false,
},
{
prop: 'first',
label: '一级品',
{
prop: 'packageCode',
label: '包条码',
type: 2,
values: '',
width: '150',
@ -1765,8 +1903,8 @@ export const columnList2 = [
head: false,
},
{
prop: 'secondary',
label: '二级品',
prop: 'brandName',
label: '品',
type: 2,
values: '',
width: '150',
@ -1786,6 +1924,29 @@ export const columnList2 = [
sortable: true,
head: false,
},
{
prop: 'first',
label: '一级品',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'secondary',
label: '二级品',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'workOrderStatusNameS', //workOrderStatus
label: '工单状态',
@ -1798,9 +1959,142 @@ export const columnList2 = [
head: false,
},
{
prop: 'brandName',
label: '品牌',
type: 2,
prop: 'processedBy',
label: '工单处理方',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '责任方',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'createTime',
label: '工单创建时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'createTime',
label: '工单提交时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'resultTypes',
label: '处理结果',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalAmountNum',
label: '处理结果—理赔金额',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '营业部处理客服',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '总部处理客服',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '内部责任方',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '责任人',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '责任占比',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '最新回复内容',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'investigationProcess',
label: '调查经过',
type: 1,
values: '',
width: '150',
checkarr: [],
@ -1841,17 +2135,17 @@ export const columnList2 = [
// sortable: true,
// head: false,
// },
{
prop: 'operator',
label: '操作人',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'operator',
// label: '操作人',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'deliverGoodsTime',
label: '送货时间',
@ -1944,17 +2238,7 @@ export const columnList2 = [
// sortable: true,
// head: false,
// },
{
prop: 'investigationProcess',
label: '调查经过',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'personResponsible',
// label: '责任人(库内作业环节)',
@ -1999,29 +2283,18 @@ export const columnList2 = [
// sortable: true,
// head: false,
// },
{
prop: 'createTime',
label: '录入时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'remarks',
label: '备注',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'remarks',
// label: '备注',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'createUserName',
@ -2521,7 +2794,7 @@ export const columnList9 = [
{
prop: 'workOrderStatusNameS', //workOrderStatus
label: '工单状态',
type: 3,
type: 1,
values: '',
width: '150',
checkarr: [],

174
src/option/distribution/addVehicleStowage.js

@ -716,7 +716,7 @@ export const detailsColumnList = [
label: '到站',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
sortable: true,
@ -728,7 +728,7 @@ export const detailsColumnList = [
label: '目的站',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
sortable: true,
@ -740,7 +740,7 @@ export const detailsColumnList = [
label: '发货单位',
type: 2,
values: '',
width: '130',
width: '120',
checkarr: [],
fixed: false,
sortable: true,
@ -752,7 +752,7 @@ export const detailsColumnList = [
label: '收货单位',
type: 2,
values: '',
width: '130',
width: '120',
checkarr: [],
fixed: false,
isColumnMerge: true,
@ -763,7 +763,7 @@ export const detailsColumnList = [
label: '收货人',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
isColumnMerge: true,
@ -822,7 +822,7 @@ export const detailsColumnList = [
label: '运单总重量',
type: 2,
values: '',
width: '130',
width: '120',
checkarr: [],
fixed: false,
isColumnMerge: true,
@ -834,7 +834,7 @@ export const detailsColumnList = [
label: '运单总体积',
type: 2,
values: '',
width: '130',
width: '120',
checkarr: [],
fixed: false,
isColumnMerge: true,
@ -871,7 +871,7 @@ export const detailsColumnList = [
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isshowSummary: false,
sortable: true,
},
{
@ -882,7 +882,7 @@ export const detailsColumnList = [
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isshowSummary: false,
sortable: true,
},
{
@ -890,7 +890,7 @@ export const detailsColumnList = [
label: '件数',
type: 2,
values: '',
width: '130',
width: '80',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -931,7 +931,7 @@ export const detailsColumnList = [
},
{
prop: 'unloadIncome',
label: '卸车收入',
label: '订单配载收入',
type: 2,
values: '',
width: '130',
@ -942,67 +942,20 @@ export const detailsColumnList = [
},
{
prop: 'costPiece',
label: '按件成本',
label: '按件干线成本分摊',
type: 2,
values: '',
width: '130',
width: '150',
checkarr: [],
fixed: false,
// isshowSummary: true,
sortable: true,
},
// {
// prop: 'costPiece',
// label: '开单单价',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isColumnMerge: true,
// // isshowSummary: true,
// sortable: true,
// },
// {
// prop: 'costPiece',
// label: '开单名称',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isColumnMerge: true,
// // isshowSummary: true,
// sortable: true,
// },
// {
// prop: 'costPiece',
// label: '订单开单名称',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// // isshowSummary: true,
// sortable: true,
// },
// {
// prop: 'costPiece',
// label: '品类名称',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// // isshowSummary: true,
// sortable: true,
// },
{
prop: 'costZhang',
label: '按比例成本',
label: '按比例干线成本分摊',
type: 2,
values: '',
width: '130',
width: '170',
checkarr: [],
fixed: false,
// isshowSummary: true,
@ -1018,69 +971,12 @@ export const detailsColumnList = [
fixed: false,
sortable: true,
},
// {
// prop: 'totalNum',
// label: '开单单价',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: true,
// isColumnMerge: true,
// sortable: true,
// },
// {
// prop: 'totalNum',
// label: '开单名称',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: false,
// isColumnMerge: true,
// sortable: true,
// },
// {
// prop: 'totalNum',
// label: '订单开单名称',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: false,
// sortable: true,
// },
// {
// prop: 'productName',
// label: '品类名称',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// sortable: true,
// },
// {
// prop: 'price',
// label: '单价',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// isshowSummary: true,
// sortable: true,
// },
{
prop: 'weight',
label: '重量(KG)',
type: 2,
values: '',
width: '130',
width: '120',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -1091,7 +987,7 @@ export const detailsColumnList = [
label: '体积',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -1099,7 +995,7 @@ export const detailsColumnList = [
},
{
prop: 'totalFreight',
label: '运单费',
label: '运单干线费',
type: 2,
values: '',
width: '130',
@ -1109,23 +1005,23 @@ export const detailsColumnList = [
isColumnMerge: true,
sortable: true,
},
{
prop: 'orderFreight',
label: '订单配载运费',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
// {
// prop: 'orderFreight',
// label: '订单配载运费',
// type: 2,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: true,
// sortable: true,
// },
{
prop: 'deliveryFee',
label: '送货费',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -1137,7 +1033,7 @@ export const detailsColumnList = [
label: '提货费',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -1161,7 +1057,7 @@ export const detailsColumnList = [
label: '仓储费',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -1173,7 +1069,7 @@ export const detailsColumnList = [
label: '装卸费',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -1197,7 +1093,7 @@ export const detailsColumnList = [
label: '保价费',
type: 2,
values: '',
width: '130',
width: '100',
checkarr: [],
fixed: false,
isshowSummary: true,
@ -1206,7 +1102,7 @@ export const detailsColumnList = [
},
{
prop: 'totalFee',
label: '总费用',
label: '运单总费用',
type: 2,
values: '',
width: '130',

26
src/option/distribution/directGoMarketDetails.js

@ -156,10 +156,20 @@ export const detailsColumnList = [
width: 55,
fixed: true,
},
{
prop: 'scanCode',
label: '包条码/产品名称',
type: 2,
values: '',
width: '200',
checkarr: [],
fixed: true,
sortable: true,
},
{
prop: 'carsNo',
label: '车次号',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -170,7 +180,7 @@ export const detailsColumnList = [
{
prop: 'orderCode',
label: '订单号',
type: 1,
type: 2,
values: '',
width: '300',
checkarr: [],
@ -181,7 +191,7 @@ export const detailsColumnList = [
{
prop: 'waybillNo',
label: '运单号',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -189,16 +199,6 @@ export const detailsColumnList = [
sortable: true,
head: false,
},
{
prop: 'scanCode',
label: '包条码/产品名称',
type: 1,
values: '',
width: '200',
checkarr: [],
fixed: true,
sortable: true,
},
{
prop: 'warehouseName',
label: '仓库',

4
src/option/distribution/zeroAdditionalRecording.js

@ -30,7 +30,7 @@ export const oldColumnList = [
label: '合同号',
type: 1,
values: '',
width: '300',
width: '200',
checkarr: [],
fixed: true,
sortable: true,
@ -211,7 +211,7 @@ export const newColumnList = [
label: '合同号',
type: 1,
values: '',
width: '300',
width: '200',
checkarr: [],
fixed: true,
sortable: true,

20
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -670,17 +670,17 @@
:headers="headers"
:on-success="ImgSuccess"
:before-upload="beforeAvatarUpload"
:on-preview="Imgpreview"
drag
multiple
list-type="picture-card"
>
<el-icon><Plus /></el-icon>
<!-- 图片预览 -->
<el-dialog v-model="form.dialogVisible">
<img w-full :src="form.url" />
</el-dialog>
</el-upload>
<!-- 图片预览 -->
<el-dialog v-model="form.dialogVisible">
<img w-full :src="form.url" />
</el-dialog>
</el-tab-pane>
</el-form-item>
</el-tabs>
@ -1182,10 +1182,12 @@ const beforeAvatarUpload = async rawFile => {
return res;
};
// //
// const Imgpreview = value => {
// form.value.dialogVisible = true;
// form.value.url = 'https://www.keaitupian.cn/cjpic/frombd/1/253/4039753288/2920140411.jpg';
// };
const Imgpreview = value => {
console.log(value, '查看图片');
form.value.dialogVisible = true;
form.value.url = value.response.data.link;
};
//
const ImgSuccess = (response, uploadFile) => {
if (response.success === true) {

9
src/views/aftersales/aftersalesWorkOrderInfo.vue

@ -41,6 +41,13 @@
clearable
/>
</el-form-item>
<el-form-item label="创建时间" class="el_inputTop el_Workordernumber">
<el-input
v-model="Indexform.createTime"
disabled
clearable
/>
</el-form-item>
</div>
<el-tabs type="border-card" class="PackageInformation">
<el-tab-pane label="包件信息">
@ -2857,7 +2864,7 @@ const ResultDetermination = () => {
display: flex;
flex-direction: row;
align-items: center;
width: auto;
width: 24%;
}
}

174
src/views/aftersales/aftersalesWorkOrderTemp.vue

@ -53,7 +53,11 @@
<el-button type="primary" icon="Avatar" v-if="ButtonPermissions.defaultassignments"
>默认指派</el-button
>
<el-button type="primary" icon="CloseBold" v-if="ButtonPermissions.batchReject"
<el-button
type="primary"
icon="CloseBold"
v-if="ButtonPermissions.batchReject"
@click="BatchReturnResults"
>结果批量打回</el-button
>
<el-button type="primary" icon="FolderChecked" v-if="ButtonPermissions.ManagerConfirmed"
@ -238,6 +242,53 @@
</div>
</el-form>
</el-dialog>
<!-- 处理结果批量打回弹窗 -->
<el-dialog v-model="BatchReturn.dialogReturn" title="批量打回" width="40%" class="plAllret">
<el-form
v-loading="BatchReturn.repulseloading"
element-loading-text="正在打回中..."
label-position="top"
label-width="100px"
:model="BatchReturn.BatchFrom"
:rules="BatchReturn.rules"
ref="batchReturnForm"
>
<el-form-item label="打回原因" prop="txt">
<el-input
v-model="BatchReturn.BatchFrom.txt"
type="textarea"
:rows="4"
placeholder="请输入打回原因"
/>
</el-form-item>
<el-form-item label="流转营业部" prop="businessDepartment">
<el-select
v-model="BatchReturn.BatchFrom.businessDepartment"
multiple
filterable
default-first-option
:reserve-keyword="false"
placeholder="请选择要打回的营业部"
>
<el-option
v-for="item in warehouseData"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="BatchReturn.BatchReturn.dialogReturn = false">取消</el-button>
<el-button type="primary" @click="ConfirmReturn()" :disabled="BatchReturn.repulseloading">
提交
</el-button>
</span>
</template>
</el-dialog>
</basic-container>
<!-- 列表配置显示 -->
@ -350,6 +401,18 @@ const workOrderStatus = ref(30); //工单状态
const PageLoading = ref(false); //loading
const warehouseData = ref([]); //
const UserInfo = ref({}); //
const batchReturnForm = ref(null);
const BatchReturn = ref({
//
dialogReturn: false,
// loading,
repulseloading: false,
BatchFrom: {},
rules: {
txt: [{ required: true, message: '请输入打回原因', trigger: 'blur' }],
businessDepartment: [{ required: true, message: '请选择至少一个营业部', trigger: 'change' }],
},
});
const appeal = ref({
dialogappeal: false, //
AppealeditorState: false, //()
@ -362,19 +425,6 @@ const appeal = ref({
});
const appealruleFormRef = ref();
const columnListName = ref('columnList');
const columnLists = [
'columnList',
'columnList1',
'columnList2',
'columnList3',
'columnList4',
'columnList5',
'columnList6',
'columnList7',
'columnList8',
'columnList9',
'columnList10',
];
/**
* 人身份
* Warehouse_customer_service 仓库客服
@ -561,7 +611,7 @@ const ButtonPermissions = computed(() => {
assignment: false, //
applyArbitration: false, //
DingTalkNumber: false, //
batchFinish: UserPermissions.value != Useridentity.Warehouse_customer_service, //
batchFinish: false, //
Batchdetermination: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
@ -854,9 +904,9 @@ const timesc = (index, row) => {
delete details.query[row.prop];
}
};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
const selectsc = async (index, row) => {
console.log(index, row);
let _Obj = MatchCurrentMenu(); //
_Obj.request = true; //
_Obj.query = details.query;
@ -1007,7 +1057,7 @@ const Roleverification = () => {
};
if (UserPermissions.value) {
updateTabState('8', UserPermissions.value == Useridentity.Warehouse_customer_service);
updateTabState('9', UserPermissions.value == Useridentity.Headquarters_Manager);
updateTabState('9', UserPermissions.value !== Useridentity.Warehouse_customer_service);
} else {
// ()
updateTabState('9', false);
@ -1032,7 +1082,6 @@ const GetWarehouse = () => {
});
});
};
/**
*页面初始化函数包含字典等必要请求
*/
@ -1141,8 +1190,8 @@ const Processingworkorderstatus = value => {
UserPermissions.value === Useridentity.Warehouse_customer_service ? 1000 : null;
break;
case 1: //
workOrderStatus.value =
UserPermissions.value === Useridentity.Warehouse_customer_service ? 20 : 40;
workOrderStatus.value = 20;
// UserPermissions.value === Useridentity.Warehouse_customer_service ? 20 : 40;
break;
case 2: //
workOrderStatus.value = 30;
@ -1158,7 +1207,7 @@ const Processingworkorderstatus = value => {
break;
case 9: //
workOrderStatus.value =
UserPermissions.value === Useridentity.Headquarters_Manager ? 500 : null;
UserPermissions.value === Useridentity.Headquarters_Manager ? 500 : 40;
break;
default:
workOrderStatus.value = null;
@ -1892,6 +1941,72 @@ const ResultConfirmed = async row => {
} finally {
}
};
/**
* @description: 批量处理结果(打回)
* @return {void} 无返回值
*/
const BatchReturnResults = () => {
if (!details.selectionList.length) {
ElMessage({
message: '请勾选要处理的数据',
type: 'warning',
});
return;
}
BatchReturn.value.dialogReturn = true; //
};
const ConfirmReturn = async () => {
const validateAndProcessReturn = async () => {
try {
const selectedObjs = warehouseData.value.filter(obj =>
BatchReturn.value.BatchFrom.businessDepartment.includes(obj.value)
);
const businessId = selectedObjs.map(item => item.value).join(',');
const businessName = selectedObjs.map(item => item.label).join(',');
const processorList = selectedObjs.map(item => ({ id: item.value, name: item.label }));
const workOrderIds = details.selectionList.map(item => item.id);
const data = {
businessId,
businessName,
processorList,
reasonReturn: BatchReturn.value.BatchFrom.txt,
workOrderIds,
typesOf: '1',
};
console.log(data, '处理好的值');
const _res = await $_batchReturn(data);
const { code, msg } = _res.data;
if (code === 200) {
ElMessage.success(msg);
BatchReturn.value.dialogReturn = false; //
const _Obj = MatchCurrentMenu();
_Obj.request = true;
PublicDataRequest(TabPermissions.value);
}
} catch (e) {
console.error(e);
}
};
batchReturnForm.value.validate(async valid => {
if (valid) {
ElMessageBox.confirm('是否确认批量打回营业部?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
await validateAndProcessReturn();
})
.catch(() => {});
}
});
};
</script>
<style scoped lang="scss">
@ -1944,16 +2059,17 @@ const ResultConfirmed = async row => {
.el-form-item__label {
position: relative;
}
// .el-form-item__label::after {
// position: absolute;
// top: 0;
// left: -8px;
// content: '*';
// width: 10px;
// }
.el-form-item__content {
width: 100% !important;
}
}
}
.plAllret {
:deep(.el-select) {
width: 100%;
}
.el-select {
width: 100%;
}
}
</style>

2
src/views/aftersales/aftersalesWorkOrdermodify.vue

@ -533,7 +533,7 @@
</el-form-item>
<el-button
v-if="!index"
v-if="!index && $route.query.typesOf !=0"
type="primary"
class="el_addPackage"
@click="AddResponsible"

6
src/views/basic/material/basicMaterial.vue

@ -141,6 +141,7 @@
ref="formNodeRef"
:disabled="details.handleMaterialOption.isView"
:model="details.handleMaterialOption.form"
v-loading="details.loadingObj.pageLoading"
>
<el-form-item
style="flex: 1; min-width: 45%; margin: 10px"
@ -241,7 +242,7 @@
</el-button>
<!-- 提交 -->
<el-button type="primary" icon="Position" @click="handleSubmit"> </el-button>
<el-button type="primary" icon="Position" @click="handleSubmit" :disabled="details.loadingObj.pageLoading"> </el-button>
</div>
</el-dialog>
</div>
@ -684,7 +685,7 @@ const handleSubmit = () => {
formNodeRef.value.validate(async (valid, fields) => {
if (valid) {
console.log('submit!');
details.popUpShow.addMaterial = false;
try {
details.loadingObj.pageLoading = true;
@ -695,6 +696,7 @@ const handleSubmit = () => {
const res = await postMaterialSubmit(submitData);
const { code, msg } = res.data;
if (code !== 200) return;
details.popUpShow.addMaterial = false;
ElMessage.success(msg);
onLoad();
} catch (error) {

6
src/views/basicdata/warehouse/warehouse/basicdataWarehouse.vue

@ -1311,13 +1311,14 @@ const newlyaddSubmit = () => {
message: res.data.msg,
type: 'success',
});
newlyaddload.value = false; //
}
})
.catch(error => {
console.log(error);
})
.finally(() => {
newlyaddload.value = false; //
});
} else {
//
@ -1330,13 +1331,14 @@ const newlyaddSubmit = () => {
message: res.data.msg,
type: 'success',
});
newlyaddload.value = false; //
}
})
.catch(error => {
console.log(error);
})
.finally(() => {
newlyaddload.value = false; //
});
}
}

2
src/views/distribution/artery/VehicleStowage.vue

@ -517,7 +517,7 @@
title="配载清单"
v-model="details.popUpShow.listOfLoadedWagons"
width="80%"
:before-close="beforeClose"
destroy-on-close
append-to-body
:fullscreen="details.fullscreenObj.listOfLoadedWagonsPopUp"
:show-close="false"

18
src/views/distribution/artery/directGoMarketDetails.vue

@ -119,9 +119,19 @@
:columnList="details.detailsColumnList"
:tableData="details.detailsInfo.data"
:loading="loadingObj.detailsLoading"
@inputTxt="() => {}"
@inputTxt="
(value, row) => {
handleInputQuery(value, row, details.detailsInfo.query);
onLoadDetails();
}
"
@timeCheck="() => {}"
@selectCheck="() => {}"
@selectCheck="
(value, row) => {
handleSelectQuery(value, row, details.detailsInfo.query);
onLoadDetails();
}
"
@selection="detailsSelectionChange"
:isselectfun="
row => {
@ -481,6 +491,8 @@ import {
setNodeHeight,
handleClearTableQuery,
ChecksWhetherTheWarehouseIsSelected,
handleInputQuery,
handleSelectQuery,
} from '@/utils/util';
import {
columnList,
@ -793,7 +805,7 @@ const onLoadDetails = async (params = {} as any) => {
//
const res = await postFindSignOrderDetailList({
...details.detailsInfo.page,
...details.query,
...details.detailsInfo.query,
signOrderId: details.showDetailsSiginOrder.id,
...params,
});

77
src/views/distribution/inventory/delivery/distributionStockArticle.vue

@ -42,35 +42,50 @@
<div class="flex-c-sb">
<!-- 头部左侧按钮模块 -->
<div>
<el-button type="primary" icon="el-icon-edit" @click="handleStockList" v-if="handler"
>批量转库存品</el-button
>
<!-- 批量转库存品 -->
<el-button type="primary" icon="el-icon-edit" @click="handleStockList" v-if="handler">
批量转库存品
</el-button>
<!-- 修改客户信息 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="handleCallDelivery('3')"
v-if="handler"
>修改客户信息</el-button
>
>修改客户信息
</el-button>
<!-- 修改服务类型 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="handleCallDelivery('2')"
v-if="handler"
>修改服务类型</el-button
>
修改服务类型
</el-button>
<!-- 修改收货单位 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="Modifyreceivingunit"
v-if="permissionList.Modifyreceivingunit"
>修改收货单位</el-button
>
>修改收货单位
</el-button>
<!-- 批量查看二维码 -->
<el-button type="primary" icon="Printer" @click="handleBatchPrinter">批量打印</el-button>
<!-- 导出 -->
<el-button type="danger" icon="Download" @click="handleExport" plain> </el-button>
<el-button type="primary" icon="el-icon-plus" @click="handlebill" v-if="!handler"
>创建提货单</el-button
>
<!-- 创建提货单 -->
<el-button type="primary" icon="el-icon-plus" @click="handlebill" v-if="!handler">
创建提货单
</el-button>
<el-button
type="danger"
icon="el-icon-delete"
@ -142,9 +157,7 @@
</template>
<template v-if="slotProps.scope.column.label === '未入库数量'">
<el-text class="el_textBtn" @click="InformationViewing(slotProps.scope.row)">
{{
slotProps.scope.row.notReceived
}}
{{ slotProps.scope.row.notReceived }}
</el-text>
</template>
<template v-else-if="slotProps.scope.column.label === '是否齐套'">
@ -416,8 +429,8 @@
</avue-form>
</el-dialog>
<MyPrint v-model="popUpShow.printVisited" :html="html" type="titlePrint" :title="'配送单'">
</MyPrint>
<!-- 打印 -->
<MyPrint v-model="popUpShow.printVisited" :html="html" type="titlePrint"> </MyPrint>
</div>
<!-- 零担拆单 -->
<el-dialog
@ -934,8 +947,8 @@ export default {
methods: {
//
InformationViewing(row) {
if(!row.notReceived || Number(row.isZero)) {
return
if (!row.notReceived || Number(row.isZero)) {
return;
}
this.$router.push({
path: '/distribution/inventory/delivery/Unstoreddetails',
@ -2000,6 +2013,34 @@ export default {
this.loadingObj.pageLoading = false;
}
},
/** 批量查看二维码 */
async handleBatchPrinter() {
try {
if (this.selectionList.length === 0) return ElMessage.warning('请勾选需要打印的零担订单');
let _ids = '';
for (let i = 0; i < this.selectionList.length; i++) {
const val = this.selectionList[i];
_ids += i === this.selectionList.length - 1 ? val.id : val.id + ',';
if (Number(val.isZero) === 1) continue;
return ElMessage.warning('仅支持零担订单的批量查看二维码');
}
this.loadingObj.pageLoading = true;
const res = await postShowOrderCode({ ids: _ids });
const { code, data } = res.data;
if (code !== 200) return;
this.html = this.getHtmls(data.dataList, data.templateHtml);
this.popUpShow.printVisited = true;
} catch (error) {
console.log('error :>> ', error);
} finally {
this.loadingObj.pageLoading = false;
}
},
handleGoLogs({ row }) {
this.$router.push({
path: '/distribution/inventory/delivery/orderLogs',

141
src/views/distribution/inventory/delivery/distributionStockArticleDiscuss.vue

@ -39,22 +39,35 @@
<!-- <el-button type="primary" icon="el-icon-plus" @click="handleAdd" v-if="handler"
>创建异常</el-button
> -->
<!-- 修改客户信息 -->
<el-button type="danger" icon="Edit" @click="handleCallDelivery('3')" v-if="handler"
>修改客户信息</el-button
>
>修改客户信息
</el-button>
<!-- 修改运单收货人 -->
<el-button type="danger" icon="Edit" @click="Modifywaybillrecipient"
>修改运单收货人</el-button
>
>修改运单收货人
</el-button>
<!-- 修改收货单位 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="Modifyreceivingunit"
v-if="permissionList.Modifyreceivingunit"
>修改收货单位</el-button
>
<el-button type="danger" icon="Edit" @click="handleCallDelivery('2')" v-if="handler"
>修改服务类型</el-button
>
修改收货单位
</el-button>
<!-- 修改服务类型 -->
<el-button type="danger" icon="Edit" @click="handleCallDelivery('2')" v-if="handler">
修改服务类型
</el-button>
<!-- 批量查看二维码 -->
<el-button type="primary" icon="Printer" @click="handleBatchPrinter">批量打印</el-button>
<el-button type="danger" icon="Download" @click="handleExport" plain> </el-button>
</div>
@ -98,9 +111,7 @@
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '未入库数量'">
<el-text class="el_textBtn" @click="InformationViewing(slotProps.scope.row)">
{{
slotProps.scope.row.notReceived
}}
{{ slotProps.scope.row.notReceived }}
</el-text>
</template>
<template v-if="slotProps.scope.column.label === '货位信息'">
@ -146,24 +157,25 @@
</template>
</template>
</tablecmt>
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
<!-- 通知提货 -->
<el-dialog v-model="dialogFormVisible" title="通知提货">
<el-form :model="formCall">
<el-form-item label="顾客姓名" :label-width="formLabelWidth">
@ -193,6 +205,8 @@
</span>
</template>
</el-dialog>
<!-- 修改服务类型 -->
<el-dialog v-model="dialogFormService" title="修改服务类型">
<el-form :model="formService" :rules="serveRules" ref="formServiceRef">
<el-form-item label="服务类型" :label-width="formLabelWidth" prop="typeService">
@ -227,6 +241,8 @@
</span>
</template>
</el-dialog>
<!-- 修改客户信息 -->
<el-dialog v-model="dialogFormCustomer" title="修改客户信息">
<el-form :model="formCustomer" :rules="rules" ref="formCustomerRef">
<el-form-item label="姓名" :label-width="formLabelWidth" prop="name">
@ -252,6 +268,8 @@
</span>
</template>
</el-dialog>
<!-- 修改运单收货人 -->
<el-dialog v-model="waybillrecipient" title="修改运单收货人">
<el-form
v-loading="loadingwaybillrecipient"
@ -290,6 +308,7 @@
</span>
</template>
</el-dialog>
<!-- 表单模块 -->
<el-dialog
:title="title"
@ -408,8 +427,8 @@
</el-dialog>
</div>
<MyPrint v-model="popUpShow.printVisited" :html="html" type="titlePrint" :title="'配送单'">
</MyPrint>
<!-- 打印 -->
<MyPrint v-model="popUpShow.printVisited" :html="html" type="titlePrint"> </MyPrint>
</basic-container>
<edittablehead
@closce="showdrawer"
@ -441,7 +460,13 @@ import option from '@/option/distribution/distributionStockArticle';
import { mapGetters } from 'vuex';
import { getDictionaryBiz } from '@/api/system/dict';
import dayjs from 'dayjs';
import { downloadXls, setNodeHeight, getObjType, handleClearTableQuery } from '@/utils/util';
import {
downloadXls,
setNodeHeight,
getObjType,
handleClearTableQuery,
handleSelectQuery,
} from '@/utils/util';
import { columnList } from '@/option/distribution/distributionStockArticleSelf';
import { deepClone, hanleTextLineFeed } from '@/utils/util.js';
import { ElMessage, ElMessageBox } from 'element-plus';
@ -630,25 +655,7 @@ export default {
* @param {*} row
*/
selectsc(index, row) {
if (row.prop === 'freezeStatusName') {
this.query['freezeStatus'] = index;
} else if (row.prop === 'completeSetName') {
this.query['completeSet'] = index;
} else if (row.prop === 'reservationStatusName') {
this.query['reservationStatus'] = index;
} else if (row.prop === 'groundingStatusName') {
this.query['groundingStatus'] = index;
} else if (row.prop === 'stockupStatusName') {
this.query['stockupStatus'] = index;
} else if (row.prop === 'orderStatusName') {
this.query['orderStatus'] = index;
} else if (row.prop === 'typeServerName') {
this.query['typeService'] = index;
} else if (row.prop === 'orderReceiveStatusName') {
this.query['orderReceiveStatus'] = index;
} else {
this.query[row.prop] = index;
}
handleSelectQuery(index, row, this.query);
this.onLoad(this.page);
},
timesc(index, row) {
@ -1050,8 +1057,8 @@ export default {
this.onLoad(this.page);
},
InformationViewing(row) {
if(!row.notReceived || Number(row.isZero)) {
return
if (!row.notReceived || Number(row.isZero)) {
return;
}
this.$router.push({
path: '/distribution/inventory/delivery/Unstoreddetails',
@ -1314,6 +1321,34 @@ export default {
this.loadingObj.pageLoading = false;
}
},
/** 批量查看二维码 */
async handleBatchPrinter() {
try {
if (this.selectionList.length === 0) return ElMessage.warning('请勾选需要打印的零担订单');
let _ids = '';
for (let i = 0; i < this.selectionList.length; i++) {
const val = this.selectionList[i];
_ids += i === this.selectionList.length - 1 ? val.id : val.id + ',';
if (Number(val.isZero) === 1) continue;
return ElMessage.warning('仅支持零担订单的批量查看二维码');
}
this.loadingObj.pageLoading = true;
const res = await postShowOrderCode({ ids: _ids });
const { code, data } = res.data;
if (code !== 200) return;
this.html = this.getHtmls(data.dataList, data.templateHtml);
this.popUpShow.printVisited = true;
} catch (error) {
console.log('error :>> ', error);
} finally {
this.loadingObj.pageLoading = false;
}
},
/** 查看日志 */
handleGoLogs({ row }) {
this.$router.push({

143
src/views/distribution/inventory/delivery/distributionStockArticleMarket.vue

@ -40,48 +40,68 @@
<!-- <el-button type="danger" icon="el-icon-edit" @click="handleMoke" v-if="handler"
>转预约单</el-button
> -->
<!-- 批量转库存品 -->
<el-button type="primary" icon="el-icon-edit" @click="handleStockList" v-if="handler"
>批量转库存品</el-button
>
>批量转库存品
</el-button>
<!-- 修改客户信息 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="handleCallDelivery('3')"
v-if="handler"
>修改客户信息</el-button
>
修改客户信息
</el-button>
<!-- 修改收货单位 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="Modifyreceivingunit"
v-if="permissionList.Modifyreceivingunit"
>修改收货单位</el-button
>
修改收货单位
</el-button>
<!-- 修改服务类型 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="handleCallDelivery('2')"
v-if="handler"
>修改服务类型</el-button
>
修改服务类型
</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handlebill" v-if="!handler"
>创建提货单</el-button
>
<!-- 创建提货单 -->
<el-button type="primary" icon="el-icon-plus" @click="handlebill" v-if="!handler">
创建提货单
</el-button>
<!-- 再次通知 -->
<el-button
type="danger"
icon="el-icon-delete"
@click="handleCallDelivery('1')"
v-if="!handler"
>再次通知</el-button
>
>再次通知
</el-button>
<!-- 通知提货 -->
<el-button
type="primary"
icon="el-icon-plus"
@click="handleCallDelivery('1')"
v-if="!handler"
>通知提货</el-button
>
>通知提货
</el-button>
<!-- 批量查看二维码 -->
<el-button type="primary" icon="Printer" @click="handleBatchPrinter">批量打印</el-button>
<!-- 导出 -->
<el-button type="danger" icon="Download" @click="handleExport" plain> </el-button>
<!-- <el-button type="danger" icon="el-icon-plus" v-if = "handler">转配送</el-button>-->
</div>
@ -127,9 +147,7 @@
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '未入库数量'">
<el-text class="el_textBtn" @click="InformationViewing(slotProps.scope.row)">
{{
slotProps.scope.row.notReceived
}}
{{ slotProps.scope.row.notReceived }}
</el-text>
</template>
<template v-if="slotProps.scope.column.label === '货位信息'">
@ -176,24 +194,24 @@
</template>
</tablecmt>
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
<!-- 通知提货 -->
<el-dialog v-model="dialogFormVisible" title="通知提货">
<el-form :model="formCall">
<el-form-item label="顾客姓名" :label-width="formLabelWidth">
@ -223,6 +241,8 @@
</span>
</template>
</el-dialog>
<!-- 修改服务类型 -->
<el-dialog v-model="dialogFormService" title="修改服务类型">
<el-form :model="formService" :rules="serveRules" ref="formServiceRef">
<el-form-item label="服务类型" :label-width="formLabelWidth" prop="typeService">
@ -257,6 +277,8 @@
</span>
</template>
</el-dialog>
<!-- 修改客户信息 -->
<el-dialog v-model="dialogFormCustomer" title="修改客户信息">
<el-form :model="formCustomer" :rules="rules" ref="formCustomerRef">
<el-form-item label="姓名" :label-width="formLabelWidth" prop="name">
@ -282,6 +304,7 @@
</span>
</template>
</el-dialog>
<!-- 表单模块 -->
<el-dialog
:title="title"
@ -400,6 +423,7 @@
</el-dialog>
</div>
<!-- 打印 -->
<MyPrint v-model="popUpShow.printVisited" :html="html" type="titlePrint"> </MyPrint>
</basic-container>
<edittablehead
@ -437,6 +461,7 @@ import {
downloadXls,
getObjType,
handleClearTableQuery,
handleSelectQuery,
} from '@/utils/util.js';
const _newCol = deepClone(columnList);
@ -601,25 +626,7 @@ export default {
console.log(index, row);
},
selectsc(index, row) {
if (row.prop === 'freezeStatusName') {
this.query['freezeStatus'] = index;
} else if (row.prop === 'completeSetName') {
this.query['completeSet'] = index;
} else if (row.prop === 'reservationStatusName') {
this.query['reservationStatus'] = index;
} else if (row.prop === 'groundingStatusName') {
this.query['groundingStatus'] = index;
} else if (row.prop === 'stockupStatusName') {
this.query['stockupStatus'] = index;
} else if (row.prop === 'orderStatusName') {
this.query['orderStatus'] = index;
} else if (row.prop === 'typeServerName') {
this.query['typeService'] = index;
} else if (row.prop === 'orderReceiveStatusName') {
this.query['orderReceiveStatus'] = index;
} else {
this.query[row.prop] = index;
}
handleSelectQuery(index, row, this.query);
this.onLoad(this.page);
},
timesc(index, row) {
@ -922,8 +929,8 @@ export default {
this.dialogFormCustomerOwn = true;
},
InformationViewing(row) {
if(!row.notReceived || Number(row.isZero)) {
return
if (!row.notReceived || Number(row.isZero)) {
return;
}
this.$router.push({
path: '/distribution/inventory/delivery/Unstoreddetails',
@ -1291,6 +1298,34 @@ export default {
this.loadingObj.pageLoading = false;
}
},
/** 批量查看二维码 */
async handleBatchPrinter() {
try {
if (this.selectionList.length === 0) return ElMessage.warning('请勾选需要打印的零担订单');
let _ids = '';
for (let i = 0; i < this.selectionList.length; i++) {
const val = this.selectionList[i];
_ids += i === this.selectionList.length - 1 ? val.id : val.id + ',';
if (Number(val.isZero) === 1) continue;
return ElMessage.warning('仅支持零担订单的批量查看二维码');
}
this.loadingObj.pageLoading = true;
const res = await postShowOrderCode({ ids: _ids });
const { code, data } = res.data;
if (code !== 200) return;
this.html = this.getHtmls(data.dataList, data.templateHtml);
this.popUpShow.printVisited = true;
} catch (error) {
console.log('error :>> ', error);
} finally {
this.loadingObj.pageLoading = false;
}
},
/** 查看日志 */
handleGoLogs({ row }) {
this.$router.push({

158
src/views/distribution/inventory/delivery/distributionStockArticleSelf.vue

@ -38,34 +38,54 @@
<!-- <el-button type="primary" icon="el-icon-plus" @click="handleAdd" v-if="handler"
>创建异常</el-button
> -->
<!-- 创建提货单 -->
<el-button type="primary" icon="el-icon-plus" @click="handlebill" v-if="handler"
>创建提货单</el-button
>
>创建提货单
</el-button>
<!-- 批量转库存品 -->
<el-button type="primary" icon="Position" @click="handleStockList" v-if="handler"
>批量转库存品</el-button
>
>批量转库存品
</el-button>
<!-- 修改客户信息 -->
<el-button type="danger" icon="Edit" @click="handleCallDelivery('3')" v-if="handler"
>修改客户信息</el-button
>
>修改客户信息
</el-button>
<!-- 修改运单收货人 -->
<el-button type="danger" icon="Edit" @click="Modifywaybillrecipient"
>修改运单收货人</el-button
>
>修改运单收货人
</el-button>
<!-- 修改收货单位 -->
<el-button
type="danger"
icon="el-icon-edit"
@click="Modifyreceivingunit"
v-if="permissionList.Modifyreceivingunit"
>修改收货单位</el-button
>
>修改收货单位
</el-button>
<!-- 修改服务类型 -->
<el-button type="danger" icon="Edit" @click="handleCallDelivery('2')" v-if="handler"
>修改服务类型</el-button
>
<el-button type="primary" icon="el-icon-plus" @click="handleCallDelivery('1', '1')"
>通知提货</el-button
>
<el-button type="danger" icon="Plus" @click="handleCallDelivery('1', '2')"
>再次通知</el-button
>
>修改服务类型
</el-button>
<!-- 通知提货 -->
<el-button type="primary" icon="el-icon-plus" @click="handleCallDelivery('1', '1')">
通知提货
</el-button>
<!-- 再次通知 -->
<el-button type="danger" icon="Plus" @click="handleCallDelivery('1', '2')">
再次通知
</el-button>
<!-- 批量查看二维码 -->
<el-button type="primary" icon="Printer" @click="handleBatchPrinter">批量打印</el-button>
<el-button type="danger" icon="Download" @click="handleExport" plain> </el-button>
</div>
@ -110,9 +130,7 @@
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '未入库数量'">
<el-text class="el_textBtn" @click="InformationViewing(slotProps.scope.row)">
{{
slotProps.scope.row.notReceived
}}
{{ slotProps.scope.row.notReceived }}
</el-text>
</template>
<template v-if="slotProps.scope.column.label === '货位信息'">
@ -158,24 +176,24 @@
</template>
</tablecmt>
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
<!-- 通知提货 -->
<el-dialog v-model="dialogFormVisible" title="通知提货">
<el-form :model="formCall">
<el-form-item label="顾客姓名" :label-width="formLabelWidth">
@ -252,6 +270,8 @@
</span>
</template>
</el-dialog>
<!-- 修改服务类型 -->
<el-dialog v-model="dialogFormService" title="修改服务类型">
<el-form :model="formService" :rules="serveRules" ref="formServiceRef">
<el-form-item label="服务类型" :label-width="formLabelWidth" prop="typeService">
@ -286,6 +306,8 @@
</span>
</template>
</el-dialog>
<!-- 修改客户信息 -->
<el-dialog v-model="dialogFormCustomer" title="修改客户信息">
<el-form :model="formCustomer" :rules="rules" ref="formCustomerRef">
<el-form-item label="姓名" :label-width="formLabelWidth" prop="name">
@ -311,6 +333,7 @@
</span>
</template>
</el-dialog>
<!-- 表单模块 -->
<el-dialog
:title="title"
@ -428,6 +451,7 @@
</template>
</el-dialog>
<!-- 修改运单收货人 -->
<el-dialog v-model="waybillrecipient" title="修改运单收货人">
<el-form
v-loading="loadingwaybillrecipient"
@ -537,6 +561,8 @@
</span>
</template>
</el-dialog>-->
<!-- 打印 -->
<MyPrint v-model="popUpShow.printVisited" :html="html" type="titlePrint"> </MyPrint>
</div>
</basic-container>
@ -580,6 +606,7 @@ import {
deepClone,
getObjType,
handleClearTableQuery,
handleSelectQuery,
} from '@/utils/util';
import { columnList } from '@/option/distribution/distributionStockArticleSelf';
import { ElMessage, ElMessageBox } from 'element-plus';
@ -870,26 +897,7 @@ export default {
console.log(index, row);
},
selectsc(index, row) {
console.log(index, row);
if (row.prop === 'freezeStatusName') {
this.query['freezeStatus'] = index;
} else if (row.prop === 'completeSetName') {
this.query['completeSet'] = index;
} else if (row.prop === 'reservationStatusName') {
this.query['reservationStatus'] = index;
} else if (row.prop === 'groundingStatusName') {
this.query['groundingStatus'] = index;
} else if (row.prop === 'stockupStatusName') {
this.query['stockupStatus'] = index;
} else if (row.prop === 'orderStatusName') {
this.query['orderStatus'] = index;
} else if (row.prop === 'typeName') {
this.query['typeService'] = index;
} else if (row.prop === 'orderReceiveStatusName') {
this.query['orderReceiveStatus'] = index;
} else {
this.query[row.prop] = index;
}
handleSelectQuery(index, row, this.query);
this.onLoad(this.page);
},
timesc(index, row) {
@ -909,8 +917,8 @@ export default {
this.onLoad(this.page);
},
InformationViewing(row) {
if(!row.notReceived || Number(row.isZero)) {
return
if (!row.notReceived || Number(row.isZero)) {
return;
}
this.$router.push({
path: '/distribution/inventory/delivery/Unstoreddetails',
@ -1642,6 +1650,34 @@ export default {
this.loadingObj.pageLoading = false;
}
},
/** 批量查看二维码 */
async handleBatchPrinter() {
try {
if (this.selectionList.length === 0) return ElMessage.warning('请勾选需要打印的零担订单');
let _ids = '';
for (let i = 0; i < this.selectionList.length; i++) {
const val = this.selectionList[i];
_ids += i === this.selectionList.length - 1 ? val.id : val.id + ',';
if (Number(val.isZero) === 1) continue;
return ElMessage.warning('仅支持零担订单的批量查看二维码');
}
this.loadingObj.pageLoading = true;
const res = await postShowOrderCode({ ids: _ids });
const { code, data } = res.data;
if (code !== 200) return;
this.html = this.getHtmls(data.dataList, data.templateHtml);
this.popUpShow.printVisited = true;
} catch (error) {
console.log('error :>> ', error);
} finally {
this.loadingObj.pageLoading = false;
}
},
/** 查看日志 */
handleGoLogs({ row }) {
this.$router.push({

29
src/views/distribution/inventory/delivery/distributionStockArticleWhole.vue

@ -170,6 +170,8 @@
</el-pagination>
</div>
</el-row>
<!-- 通知提货 -->
<el-dialog v-model="dialogFormVisible" title="通知提货">
<el-form :model="formCall">
<el-form-item label="顾客姓名" :label-width="formLabelWidth">
@ -199,6 +201,8 @@
</span>
</template>
</el-dialog>
<!-- 修改服务类型 -->
<el-dialog v-model="dialogFormService" title="修改服务类型">
<el-form :model="formService">
<el-form-item label="服务类型" :label-width="formLabelWidth">
@ -233,6 +237,8 @@
</span>
</template>
</el-dialog>
<!-- 修改客户信息 -->
<el-dialog v-model="dialogFormCustomer" title="修改客户信息">
<el-form :model="formCustomer">
<el-form-item label="姓名" :label-width="formLabelWidth">
@ -403,7 +409,7 @@ import { mapGetters } from 'vuex';
import { getDictionaryBiz } from '@/api/system/dict';
import dayjs from 'dayjs';
import { getUser } from '@/api/system/user';
import { handleClearTableQuery } from '@/utils/util';
import { handleClearTableQuery, handleSelectQuery } from '@/utils/util';
export default {
data() {
@ -974,26 +980,7 @@ export default {
console.log(index, row);
},
selectsc(index, row) {
console.log(index, row);
if (row.prop === 'freezeStatusName') {
this.query['freezeStatus'] = index;
} else if (row.prop === 'completeSetName') {
this.query['completeSet'] = index;
} else if (row.prop === 'reservationStatusName') {
this.query['reservationStatus'] = index;
} else if (row.prop === 'groundingStatusName') {
this.query['groundingStatus'] = index;
} else if (row.prop === 'stockupStatusName') {
this.query['stockupStatus'] = index;
} else if (row.prop === 'orderStatusName') {
this.query['orderStatus'] = index;
} else if (row.prop === 'typeServerName') {
this.query['typeService'] = index;
} else if (row.prop === 'orderReceiveStatusName') {
this.query['orderReceiveStatus'] = index;
} else {
this.query[row.prop] = index;
}
handleSelectQuery(index, row, this.query);
this.onLoad(this.page);
},
timesc(index, row) {

172
src/views/waybill/orderPackageList.vue

@ -5,75 +5,33 @@
<div v-h5uShow="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="header_search" label-width="100px">
<el-form-item label="运单号">
<el-input v-model="query.waybillNo" placeholder="请输入运单号" clearable></el-input>
</el-form-item>
<el-form-item label="订单自编号">
<el-input v-model="query.orderCode" placeholder="请输入订单自编号" clearable></el-input>
</el-form-item>
<el-form-item label="一级品类">
<el-input v-model="query.firsts" placeholder="请输入一级品类" clearable></el-input>
</el-form-item>
<el-form-item label="二级品类">
<el-input v-model="query.sencods" placeholder="请输入二级品类" clearable></el-input>
</el-form-item>
<el-form-item label="三级品类">
<el-input v-model="query.thirds" placeholder="请输入三级品类" clearable></el-input>
</el-form-item>
<el-form-item label="包条码">
<el-input
v-model="query.orderPackageCode"
placeholder="请输入包条码"
clearable
></el-input>
</el-form-item>
<el-form-item label="干线车次号">
<el-input
v-model="query.trunklineCarsNo"
placeholder="请输入干线车次号"
clearable
></el-input>
</el-form-item>
<el-form-item label="配送车次号">
<el-input
v-model="query.deliveryTrainNumber"
placeholder="请输入配送车次号"
clearable
></el-input>
</el-form-item>
<el-form-item label="客户车次号">
<el-input
v-model="query.trainNumber"
placeholder="请输入客户车次号"
clearable
></el-input>
</el-form-item>
<el-form-item label="服务号">
<el-input v-model="query.serviceNumber" placeholder="请输入服务号" clearable></el-input>
</el-form-item>
<el-form-item label="入库时间">
<el-date-picker
v-model="query.incomingTimeArr"
type="datetimerange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
value-format="YYYY-MM-DD HH:mm:ss"
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)]"
clearable
/>
<el-form-item
v-for="item in details.titleSearchOption"
:key="item.prop"
:label="item.label"
>
<template v-if="item.type === 'input'">
<el-input
v-model.trim="query[item.prop]"
:placeholder="`请输入${item.label}`"
clearable
></el-input>
</template>
<template v-else-if="item.type === 'time'">
<el-date-picker
v-model="query[item.prop]"
type="datetimerange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
value-format="YYYY-MM-DD HH:mm:ss"
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)]"
clearable
/>
</template>
</el-form-item>
<!-- 查询按钮 -->
@ -392,15 +350,73 @@ const details = reactive<any>({
return [start, end];
},
},
// {
// text: '',
// value: () => {
// const end = new Date();
// const start = new Date();
// start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
// return [start, end];
// },
// },
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
],
/** 头部搜索配置 */
titleSearchOption: [
{
label: '运单号',
prop: 'waybillNo',
type: 'input',
},
{
label: '订单自编号',
prop: 'orderCode',
type: 'input',
},
{
label: '一级品类',
prop: 'firsts',
type: 'input',
},
{
label: '二级品类',
prop: 'sencods',
type: 'input',
},
{
label: '三级品类',
prop: 'thirds',
type: 'input',
},
{
label: '包条码',
prop: 'orderPackageCode',
type: 'input',
},
{
label: '干线车次号',
prop: 'trunklineCarsNo',
type: 'input',
},
{
label: '配送车次号',
prop: 'deliveryTrainNumber',
type: 'input',
},
{
label: '客户车次号',
prop: 'trainNumber',
type: 'input',
},
{
label: '服务号',
prop: 'serviceNumber',
type: 'input',
},
{
label: '入库时间',
prop: 'incomingTimeArr',
type: 'time',
},
],
/** 包明细表头 */
packageListColumnList: deepClone(packageListColumnList),

40
src/views/waybill/orderPackageListDetails.vue

@ -6,43 +6,67 @@
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="header_search" label-width="100px">
<el-form-item label="运单号">
<el-input v-model="query.waybillNo" placeholder="请输入运单号" clearable></el-input>
<el-input
v-model.trim="query.waybillNo"
placeholder="请输入运单号"
clearable
></el-input>
</el-form-item>
<el-form-item label="订单自编号">
<el-input v-model="query.orderCode" placeholder="请输入订单自编号" clearable></el-input>
<el-input
v-model.trim="query.orderCode"
placeholder="请输入订单自编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="一级品类">
<el-input v-model="query.firstPackName" placeholder="请输入运单号" clearable></el-input>
<el-input
v-model.trim="query.firstPackName"
placeholder="请输入运单号"
clearable
></el-input>
</el-form-item>
<el-form-item label="二级品类">
<el-input
v-model="query.secondPackName"
v-model.trim="query.secondPackName"
placeholder="请输入运单号"
clearable
></el-input>
</el-form-item>
<el-form-item label="三级品类">
<el-input v-model="query.thirdPackName" placeholder="请输入运单号" clearable></el-input>
<el-input
v-model.trim="query.thirdPackName"
placeholder="请输入运单号"
clearable
></el-input>
</el-form-item>
<el-form-item label="包条码">
<el-input
v-model="query.orderPackageCode"
v-model.trim="query.orderPackageCode"
placeholder="请输入运单号"
clearable
></el-input>
</el-form-item>
<el-form-item label="客户车次号">
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input>
<el-input
v-model.trim="query.trainNumber"
placeholder="请输入运单号"
clearable
></el-input>
</el-form-item>
<el-form-item label="服务号">
<el-input v-model="query.serviceNum" placeholder="请输入运单号" clearable></el-input>
<el-input
v-model.trim="query.serviceNum"
placeholder="请输入运单号"
clearable
></el-input>
</el-form-item>
<el-form-item label="创建时间">

Loading…
Cancel
Save