Browse Source

Merge branch 'dev' into pre-production

fix_bug_pro20231227
pref_mail@163.com 1 year ago
parent
commit
cb365da5f1
  1. 23
      src/api/aftersales/aftersalesWorkOrder.js
  2. 24
      src/api/distribution/VehicleStowageDetails.js
  3. 14
      src/api/distribution/distributionDeliveryList.js
  4. 17
      src/api/distribution/distributionSignfor.js
  5. 49
      src/components/tablecmt/tablecmt.vue
  6. 15
      src/option/aftersales/vueTvemp.js
  7. 245
      src/option/distribution/addVehicleStowage.js
  8. 90
      src/router/views/index.js
  9. 60
      src/views/aftersales/DataSynchronization.vue
  10. 198
      src/views/aftersales/aftersalesWorkOrder.vue
  11. 268
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  12. 18
      src/views/aftersales/aftersalesWorkOrderInfo.vue
  13. 40
      src/views/aftersales/aftersalesWorkOrderend.vue
  14. 671
      src/views/aftersales/aftersalesWorkOrdermodify.vue
  15. 9
      src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue
  16. 11
      src/views/distribution/artery/AddVehicleStowage.vue
  17. 14
      src/views/distribution/artery/VehicleStowage.vue
  18. 283
      src/views/distribution/artery/VehicleStowageDetails.vue
  19. 34
      src/views/distribution/deliverylist/distributionDeliveryList.vue
  20. 379
      src/views/distribution/deliverylist/distributionDeliveryListdis.vue
  21. 298
      src/views/distribution/deliverylist/distributionDeliveryListedt.vue
  22. 2860
      src/views/distribution/deliverylist/distributionDeliveryListmar.vue
  23. 104
      src/views/distribution/inventory/CreateOrder.vue
  24. 11
      src/views/distribution/inventory/delivery/distributionStockArticle.vue
  25. 144
      src/views/distribution/inventory/delivery/distributionStockArticleDiscuss.vue
  26. 11
      src/views/distribution/inventory/delivery/distributionStockArticleMarket.vue
  27. 14
      src/views/distribution/inventory/delivery/distributionStockArticleSelf.vue
  28. 7
      src/views/distribution/inventory/distributionStockListDetails.vue
  29. 227
      src/views/distribution/inventory/distrilbutionBillLadingList.vue
  30. 1
      src/views/distribution/reservation/atlas.vue
  31. 4
      src/views/distribution/reservation/reservation.vue
  32. 439
      src/views/distribution/reservation/reservationAddFrom.vue
  33. 9
      src/views/distribution/signfor/distributionSignforedt.vue
  34. 428
      src/views/distribution/signfor/distributionSignfortreat.vue
  35. 14
      src/views/distribution/turndelivery/deliveryDiscuss.vue
  36. 2964
      src/views/distribution/turndelivery/deliveryMarket.vue
  37. 10
      src/views/warehouse/warehouseWaybill.vue
  38. 1
      src/views/warehouse/warehousingentry/warehouseWarehouseingAddReceipt.vue
  39. 24
      vite.config.js

23
src/api/aftersales/aftersalesWorkOrder.js

@ -245,8 +245,6 @@ export const $_getSurveyRecord = (params) => {
}
// 工单申诉
export const $_appealSubmit = (data) => {
return request({
url: '/api/logpm-aftersales/aftersalesAppeal/submit',
@ -333,4 +331,23 @@ export const $_modifyData = (data) => {
method: 'post',
data
})
}
}
// 查询配送信息
export const $_shippingInformation = (data) => {
return request({
url: '/api/logpm-aftersales/aftersalesWorkOrder/deliveryList/shippingInformation',
method: 'post',
data
})
}
// 数据同步信息
export const $_syncOrder = (data) => {
return request({
url: '/api/logpm-patch/syncOrderInfo/syncOrder',
method: 'post',
data
})
}

24
src/api/distribution/VehicleStowageDetails.js

@ -0,0 +1,24 @@
import request from '@/axios';
/**
* 初始化获取配载信息
*/
export const postloadFindLoadInitData = (data = {}) => {
return request({
url: '/api/logpm-trunkline/carsLoad/findLoadInitData',
method: 'post',
data,
});
};
/**
* 通过名称查询仓库信息
*/
export const postCarsLoadDetailInfo = data => {
return request({
url: '/api/logpm-trunkline/carsLoad/carsLoadDetailInfo',
method: 'post',
data,
});
};

14
src/api/distribution/distributionDeliveryList.js

@ -51,7 +51,19 @@ export const getDetail = id => {
url: '/api/logpm-distribution/deliveryList/detail',
method: 'get',
params: {
id,
id
},
});
};
export const getClientDetail = (current, size, params) => {
return request({
url: '/api/logpm-distribution/deliveryList/clientDetail',
method: 'get',
params: {
...params,
current,
size,
},
});
};

17
src/api/distribution/distributionSignfor.js

@ -50,6 +50,23 @@ export const getSignforExport = row => {
responseType: 'blob',
})
};
/**
* 查看配送数量详情
* @param row
* @returns {AxiosPromise}
*/
export const numberDetail = (signingId,type) => {
return request({
url: '/api/logpm-distribution/signfor/numberDetail',
method: 'get',
params: {
signingId,
type
}
})
};
/**
* 导出
* @param row

49
src/components/tablecmt/tablecmt.vue

@ -170,6 +170,14 @@
</template>
</el-table-column>
</el-table>
<!-- 勾选合计行 -->
<div class="selection-total-row" v-if="shownm && isHaveSelection">
<span>勾选合计:</span>
<span v-for="item in selectCount">
<span style="margin: 0 5px">{{ item.label + ':' }}</span>
<el-text type="success">{{ item.value }}</el-text>
</span>
</div>
</div>
</template>
@ -321,6 +329,11 @@ let props = defineProps({
default: null,
},
});
/** 勾选数据统计 */
const selectCount = ref([]);
/** 是否有复选框 */
const isHaveSelection = ref(false);
// row, column, rowIndex, columnIndex
let selectarr = ref([]);
/** 设置每行颜色 */
@ -465,8 +478,17 @@ function timechange(value, column: TableColumnType) {
emit('timeCheck', value, column);
}
const handleSelectionChange = (param: TableDataType[]) => {
// console.log(param)
//
selectCount.value.forEach(item => {
item.value = 0;
});
selectarr.value = param;
selectarr.value.forEach(val => {
selectCount.value.forEach(
item => (item.value += computeNumber(item.value, '+', val[item.prop]).result)
);
});
emit('selection', param);
};
function inputclear(value, column: TableColumnType) {
@ -480,20 +502,27 @@ function timeclear(value, column: TableColumnType) {
}
function handleDelete(index: number, row: TableDataType) {}
const getSummaries = (param: any) => {
selectCount.value = [];
const { columns, data } = param;
let newarr = [];
let tji = 0;
columns.map((item, index) => {
columns.forEach((item, index) => {
if (item.type === 'selection') isHaveSelection.value = true;
if (index == 0) {
newarr[index] = '总计';
return;
}
tji = 0;
if (props.columnList[index]?.isshowSummary) {
data.map(ite => {
for (let ite of data) {
tji = computeNumber(tji, '+', Number(ite[props.columnList[index]?.prop] || 0)).result;
});
}
newarr[index] = tji;
selectCount.value.push({
label: props.columnList[index]?.label,
value: 0,
prop: props.columnList[index]?.prop,
});
// shownm.value=true
} else {
newarr[index] = null;
@ -592,6 +621,12 @@ defineExpose({ handleCheckSelect });
--el-table-row-hover-bg-color: #d3832a;
}
//
.selection-total-row {
width: 100%;
margin: 10px 0 5px;
font-size: 14px;
}
// .el-table .warning-row {
// --el-table-tr-bg-color: var(--el-color-warning-light-9);
// }
@ -600,10 +635,8 @@ defineExpose({ handleCheckSelect });
// }
.maboxhi {
width: 100%;
// min-height: 950px;
// height: 841px;
// flex:1;
// min-height: 100%;
display: flex;
flex-direction: column;
}
.on {
overflow: hidden;

15
src/option/aftersales/vueTvemp.js

@ -69,6 +69,17 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'brandName',
label: '品牌',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'trainNumber',
label: '车次号',
@ -182,9 +193,9 @@ export const columnList = [
},
{
prop: 'workOrderStatus',
prop: 'workOrderStatusNameS', //workOrderStatus
label: '工单状态',
type: 2,
type: 3,
values: '',
width: '150',
checkarr: [],

245
src/option/distribution/addVehicleStowage.js

@ -583,17 +583,17 @@ export const detailsColumnList = [
fixed: true,
isshowSummary: true,
},
{
prop: 'carsNo',
label: '配载车次号',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: true,
sortable: true,
isshowSummary: false,
},
// {
// prop: 'carsNo',
// label: '配载车次号',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: true,
// sortable: true,
// isshowSummary: false,
// },
{
prop: 'waybillNo',
label: '运单号',
@ -604,6 +604,7 @@ export const detailsColumnList = [
fixed: true,
sortable: true,
isshowSummary: false,
isColumnMerge: true,
},
{
prop: 'orderCode',
@ -624,6 +625,7 @@ export const detailsColumnList = [
checkarr: [],
fixed: false,
sortable: true,
isColumnMerge: true,
head: false,
},
{
@ -635,6 +637,7 @@ export const detailsColumnList = [
checkarr: [],
fixed: false,
sortable: true,
isColumnMerge: true,
isshowSummary: false,
},
{
@ -646,6 +649,7 @@ export const detailsColumnList = [
checkarr: [],
fixed: false,
sortable: true,
isColumnMerge: true,
isshowSummary: false,
},
{
@ -657,6 +661,7 @@ export const detailsColumnList = [
checkarr: [],
fixed: false,
sortable: true,
isColumnMerge: true,
isshowSummary: false,
},
{
@ -667,6 +672,7 @@ export const detailsColumnList = [
width: '130',
checkarr: [],
fixed: false,
isColumnMerge: true,
sortable: true,
},
{
@ -677,21 +683,24 @@ export const detailsColumnList = [
width: '130',
checkarr: [],
fixed: false,
isColumnMerge: true,
sortable: true,
},
{
prop: 'productName',
label: '品类名称',
prop: 'waybillNum',
label: '运单总件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isColumnMerge: true,
isshowSummary: true,
sortable: true,
},
{
prop: 'totalNum',
label: '运单总件数',
prop: 'orderNum',
label: '件数',
type: 1,
values: '',
width: '130',
@ -701,8 +710,8 @@ export const detailsColumnList = [
sortable: true,
},
{
prop: 'totalNum',
label: '件数',
prop: 'planNum',
label: '计划件数',
type: 1,
values: '',
width: '130',
@ -712,8 +721,8 @@ export const detailsColumnList = [
sortable: true,
},
{
prop: 'totalNum',
label: '计划件数',
prop: 'loadingNum',
label: '订单装车件数',
type: 1,
values: '',
width: '130',
@ -723,8 +732,8 @@ export const detailsColumnList = [
sortable: true,
},
{
prop: 'totalNum',
label: '订单装车件数',
prop: 'unloadNum',
label: '车件数',
type: 1,
values: '',
width: '130',
@ -734,28 +743,86 @@ export const detailsColumnList = [
sortable: true,
},
{
prop: 'stockNum',
label: '在库数',
prop: 'unloadIncome',
label: '卸车收入',
type: 1,
values: '',
width: '150',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
prop: 'price',
label: '单价',
prop: 'orderLineCost',
label: '订单干线成本',
type: 1,
values: '',
width: '150',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
// {
// prop: 'totalNum',
// label: '开单单价',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: true,
// isColumnMerge: true,
// sortable: true,
// },
// {
// prop: 'totalNum',
// label: '开单名称',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: false,
// isColumnMerge: true,
// sortable: true,
// },
// {
// prop: 'totalNum',
// label: '订单开单名称',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: false,
// sortable: true,
// },
// {
// prop: 'productName',
// label: '品类名称',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// sortable: true,
// },
// {
// prop: 'price',
// label: '单价',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// isshowSummary: true,
// sortable: true,
// },
{
prop: 'totalWeight',
prop: 'weight',
label: '重量(KG)',
type: 1,
values: '',
@ -766,7 +833,7 @@ export const detailsColumnList = [
sortable: true,
},
{
prop: 'totalVolume',
prop: 'volume',
label: '体积',
type: 1,
values: '',
@ -777,8 +844,8 @@ export const detailsColumnList = [
sortable: true,
},
{
prop: 'freight',
label: '运费',
prop: 'totalFreight',
label: '运单运费',
type: 1,
values: '',
width: '130',
@ -788,24 +855,134 @@ export const detailsColumnList = [
sortable: true,
},
{
prop: 'customerTrain',
label: '客户车次',
prop: 'orderFreight',
label: '订单运费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'deliveryFee',
label: '送货费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'pickupFee',
label: '提货费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'warehouseManagementFee',
label: '仓库管理费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'storageFee',
label: '仓储费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'handlingFee',
label: '装卸费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'otherFee',
label: '其他费用',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'insuranceFee',
label: '保价费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
{
prop: 'totalFee',
label: '总费用',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
isColumnMerge: true,
sortable: true,
},
// {
// prop: 'freight',
// label: '作废运单号',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// isshowSummary: false,
// sortable: true,
// },
{
prop: 'remark',
label: '运单备注',
type: 1,
values: '',
width: '130',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
isColumnMerge: true,
isshowSummary: false,
},
];

90
src/router/views/index.js

@ -2,7 +2,6 @@ import Layout from '@/page/index/index.vue';
import Store from '@/store/';
export default [
{
path: '/wel',
component: Layout,
@ -188,7 +187,7 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/zeroAdditionalRecording.vue'
/* webpackChunkName: "views" */ '@/views/distribution/artery/zeroAdditionalRecording.vue'
),
},
{
@ -199,7 +198,7 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/AddVehicleStowage.vue'
/* webpackChunkName: "views" */ '@/views/distribution/artery/AddVehicleStowage.vue'
),
},
{
@ -210,7 +209,7 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/truckLoadingDetails.vue'
/* webpackChunkName: "views" */ '@/views/distribution/artery/truckLoadingDetails.vue'
),
},
{
@ -221,7 +220,7 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/addTripartiteTransfer.vue'
/* webpackChunkName: "views" */ '@/views/distribution/artery/addTripartiteTransfer.vue'
),
},
{
@ -232,7 +231,18 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/TripartiteTransferDetails.vue'
/* webpackChunkName: "views" */ '@/views/distribution/artery/TripartiteTransferDetails.vue'
),
},
{
path: 'VehicleStowageDetails',
name: '配载详情',
meta: {
i18n: 'data',
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/VehicleStowageDetails.vue'
),
},
],
@ -285,7 +295,7 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/inventory/arteryDistrilbutionBillLadingListDetails.vue'
/* webpackChunkName: "views" */ '@/views/distribution/inventory/arteryDistrilbutionBillLadingListDetails.vue'
),
},
{
@ -356,7 +366,7 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/basic/pdarecords/basicPdarecordslist.vue'
/* webpackChunkName: "views" */ '@/views/basic/pdarecords/basicPdarecordslist.vue'
),
},
],
@ -405,7 +415,7 @@ export default [
props: route => ({ name: route.query.name, id: route.query.id }),
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicHistoricalContract.vue'
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicHistoricalContract.vue'
),
},
],
@ -424,7 +434,7 @@ export default [
props: route => ({ name: route.query.name, id: route.query.id, type: route.query.type }),
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicStorageServices.vue'
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicStorageServices.vue'
),
},
],
@ -485,7 +495,7 @@ export default [
}),
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicdataFreightFrom.vue'
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicdataFreightFrom.vue'
),
},
],
@ -528,7 +538,7 @@ export default [
}),
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicdataCustomerBase.vue'
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicdataCustomerBase.vue'
),
},
],
@ -550,7 +560,7 @@ export default [
}),
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicdataCustomerStore.vue'
/* webpackChunkName: "views" */ '@/views/basicdata/brand/basicdataCustomerStore.vue'
),
},
],
@ -770,7 +780,7 @@ export default [
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/basic/material/basicTripartiteMaterial.vue'
/* webpackChunkName: "views" */ '@/views/basic/material/basicTripartiteMaterial.vue'
),
},
],
@ -785,7 +795,7 @@ export default [
name: '创建提货单',
meta: {
i18n: 'dict',
keepAlive: true
keepAlive: true,
},
props: route => ({
name: route.query.name,
@ -1199,6 +1209,10 @@ export default [
redirect: '/aftersales/aftersalesWorkOrder',
children: [
{
meta: {
i18n: 'dict',
keepAlive:false,
},
path: '/aftersales/aftersalesWorkOrder',
name: '工单',
component: () => import('@/views/aftersales/aftersalesWorkOrder.vue'),
@ -1211,6 +1225,10 @@ export default [
redirect: '/aftersales/aftersalesWorkOrderAdd',
children: [
{
meta: {
i18n: 'dict',
keepAlive: false,
},
path: '/aftersales/aftersalesWorkOrderAdd',
name: '工单新增',
component: () => import('@/views/aftersales/aftersalesWorkOrderAdd.vue'),
@ -1224,6 +1242,10 @@ export default [
redirect: '/aftersales/aftersalesWorkOrderInfo',
children: [
{
meta: {
i18n: 'dict',
keepAlive:false,
},
path: '/aftersales/aftersalesWorkOrderInfo',
name: '工单详情查看',
component: () => import('@/views/aftersales/aftersalesWorkOrderInfo.vue'),
@ -1231,13 +1253,16 @@ export default [
],
},
{
path: '/aftersales/aftersalesWorkOrderend',
component: Layout,
redirect: '/aftersales/aftersalesWorkOrderend',
children: [
{
meta: {
i18n: 'dict',
keepAlive:false,
},
path: '/aftersales/aftersalesWorkOrderend',
name: '工单完结',
component: () => import('@/views/aftersales/aftersalesWorkOrderend.vue'),
@ -1250,6 +1275,10 @@ export default [
redirect: '/aftersales/WorkorderTimeout',
children: [
{
meta: {
i18n: 'dict',
keepAlive:false,
},
path: '/aftersales/WorkorderTimeout',
name: '工单超时罚款',
component: () => import('@/views/aftersales/WorkorderTimeout.vue'),
@ -1262,6 +1291,10 @@ export default [
redirect: '/aftersales/customerService',
children: [
{
meta: {
i18n: 'dict',
keepAlive: false,
},
path: '/aftersales/customerService',
name: '客服回复',
component: () => import('@/views/aftersales/customerService.vue'),
@ -1274,13 +1307,33 @@ export default [
redirect: '/aftersales/aftersalesWorkOrdermodify',
children: [
{
meta: {
i18n: 'dict',
keepAlive: false,
},
path: '/aftersales/aftersalesWorkOrdermodify',
name: '信息编辑',
component: () => import('@/views/aftersales/aftersalesWorkOrdermodify.vue'),
},
],
},
{
path: '/aftersales/DataSynchronization',
component: Layout,
redirect: '/aftersales/DataSynchronization',
children: [
{
meta: {
i18n: 'dict',
keepAlive: false,
},
path: '/aftersales/DataSynchronization',
name: '数据同步',
component: () => import('@/views/aftersales/DataSynchronization.vue'),
},
],
},
// {
// path: '/aftersales/aftersalesWorkOrderSS',
// component: Layout,
@ -1294,7 +1347,6 @@ export default [
// ],
// },
// {
// path: '/distribution/turndelivery/devtmp',
// component: Layout,
@ -1366,6 +1418,4 @@ export default [
// ],
// }
];

60
src/views/aftersales/DataSynchronization.vue

@ -0,0 +1,60 @@
<template>
<el-card class="box-card" v-loading="loading" element-loading-text="正在执行中...">
<div class="el_btn">
<el-input v-model="input" placeholder="请输入">
<template #append>
<el-button type="primary" @click="synchronization">点击同步</el-button>
</template>
</el-input>
</div>
</el-card>
</template>
<script setup>
import { $_syncOrder } from '@/api/aftersales/aftersalesWorkOrder';
import { ref } from 'vue';
import { ElMessage } from 'element-plus';
const loading = ref(false);
const input = ref(''); //
//
function checkInput(input) {
const regex = /,/;
return regex.test(input);
}
//
const synchronization = () => {
const isInput = checkInput(input.value);
console.log(isInput); // false
if (isInput) {
ElMessage({
message: '参数中不可携带中文逗号',
type: 'warning',
});
return;
}
loading.value = true; //
let data = {
orderCodes: input.value,
};
console.log(data, '处理好的参数');
$_syncOrder(data).then(res => {
loading.value = false; //
if (res.data.code) {
ElMessage({
message: res.data.msg,
type: 'success',
});
}
});
};
</script>
<style scoped lang="scss">
.el-card {
height: 100%;
}
.el_btn {
width: 40%;
}
</style>

198
src/views/aftersales/aftersalesWorkOrder.vue

@ -80,44 +80,45 @@
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button
type="primary"
@click="AddInfo"
v-if="ButtonPermissions.add"
>
<!-- v-if="ButtonPermissions.add" -->
<el-button type="primary" @click="AddInfo">
<el-icon><Plus /></el-icon> </el-button
>
<!-- <el-button type="primary" @click="BatchDelete">
<el-icon><Delete /></el-icon></el-button
> -->
<!-- v-if="ButtonPermissions.batchReject" -->
<el-button
type="primary"
@click="BatchReturn"
v-if="ButtonPermissions.batchReject"
>批量打回</el-button
>
<el-button
type="primary"
@click="assign"
v-if="ButtonPermissions.assignment"
<!-- v-if="ButtonPermissions.assignment" -->
<el-button type="primary" @click="assign"
>工单指派</el-button
>
<!-- v-if="ButtonPermissions.applyArbitration" -->
<el-button
type="primary"
@click="arbitrate"
v-if="ButtonPermissions.applyArbitration"
>申请仲裁</el-button
>
<!-- v-if="ButtonPermissions.batchFinish" -->
<el-button
type="primary"
@click="Batchcompletion"
v-if="ButtonPermissions.batchFinish"
>批量完结</el-button
>
<el-button
type="primary"
@click="appeal"
v-if="ButtonPermissions.appeal"
<!-- v-if="ButtonPermissions.appeal" -->
<el-button type="primary" @click="appeal"
>申诉</el-button
>
<!-- v-if="details.query.workOrderStatus == 30" -->
@ -154,11 +155,11 @@
@selection="selectionChange"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '操作'" >
<template v-if="slotProps.scope.column.label === '操作'">
<div class="ElBtnClass">
<div >
<div>
<!-- <el-button @click="addingRecord(slotProps.scope)">新增记录</el-button> -->
<el-button v-if="TabPermissions !='4'" @click="view(slotProps.scope)"
<el-button v-if="TabPermissions != '4'" @click="view(slotProps.scope)"
>查看</el-button
>
<!-- <el-button @click="ViewEvent(slotProps.scope)">编辑</el-button> -->
@ -169,7 +170,9 @@
>申诉</el-button
> -->
</div>
<el-button v-if="TimeoutStatus" @click="BtnModifyAmount(slotProps.scope)"
<el-button
v-if="TabPermissions == 7"
@click="BtnModifyAmount(slotProps.scope)"
>修改金额</el-button
>
</div>
@ -1309,12 +1312,10 @@ const {
// { label: '', value: 7 },
// ];
// //
// // 1. 2. 3. 4. 5. 6.
// //
// //
// // 1.
// // 2.
// // 3.
@ -1337,7 +1338,6 @@ const {
// // value==2
//
// // value==3
// 1.
// 2.
@ -1354,7 +1354,6 @@ const {
// 5.
// 6.
// // value==5
// 1.
// 2.
@ -1362,7 +1361,7 @@ const {
// 4.
// 5.
// 6.
// // value==6
// 1.
// 2.
@ -1371,7 +1370,6 @@ const {
// 5.
// 6.
// // value== 7
// 1.
// 2.
@ -1389,77 +1387,77 @@ const {
const ButtonPermissions = computed(() => {
// TabPermissions
switch (TabPermissions.value) {
case 0://
case 0: //
return {
add: UserPermissions.value == '仓库客服', //
batchReject: UserPermissions.value == '职能客服',//
assignment: UserPermissions.value == '客服经理',//
applyArbitration: UserPermissions.value == '仓库客服',//
batchFinish: UserPermissions.value == '职能客服',//
appeal: false//
batchReject: UserPermissions.value == '职能客服', //
assignment: UserPermissions.value == '客服经理', //
applyArbitration: UserPermissions.value == '仓库客服', //
batchFinish: UserPermissions.value == '职能客服', //
appeal: false, //
};
case 1://
case 1: //
return {
add: false,//
batchReject: UserPermissions.value != '仓库客服',//
assignment: false,//
applyArbitration: UserPermissions.value == '仓库客服',//
batchFinish:UserPermissions.value != '仓库客服',//
appeal: false//
add: false, //
batchReject: UserPermissions.value != '仓库客服', //
assignment: false, //
applyArbitration: UserPermissions.value == '仓库客服', //
batchFinish: UserPermissions.value != '仓库客服', //
appeal: false, //
};
case 2://
case 2: //
return {
add: false,//
batchReject: false,//
assignment: false,//
applyArbitration: false,//
batchFinish:false,//
appeal: UserPermissions.value == '仓库客服' && AppealStatusT.value//
add: false, //
batchReject: false, //
assignment: false, //
applyArbitration: false, //
batchFinish: false, //
appeal: UserPermissions.value == '仓库客服' && AppealStatusT.value, //
};
case 3://
case 3: //
return {
add: false,//
batchReject: UserPermissions.value == '仓库客服',//
assignment:UserPermissions.value == '客服经理',//
applyArbitration: false,//
batchFinish:false,//
appeal: false//
add: false, //
batchReject: UserPermissions.value == '仓库客服', //
assignment: UserPermissions.value == '客服经理', //
applyArbitration: false, //
batchFinish: false, //
appeal: false, //
};
case 4://
case 4: //
return {
add: false,//
batchReject: false,//
assignment:false,//
applyArbitration: false,//
batchFinish:false,//
appeal: UserPermissions.value == '仓库客服'//
add: false, //
batchReject: false, //
assignment: false, //
applyArbitration: false, //
batchFinish: false, //
appeal: UserPermissions.value == '仓库客服', //
};
case 5://
case 5: //
return {
add: false,//
batchReject: false,//
assignment:false,//
applyArbitration: false,//
batchFinish:false,//
appeal:false//
add: false, //
batchReject: false, //
assignment: false, //
applyArbitration: false, //
batchFinish: false, //
appeal: false, //
};
case 6://
case 6: //
return {
add: false,//
batchReject: false,//
assignment:false,//
applyArbitration: false,//
batchFinish:false,//
appeal:false//
add: false, //
batchReject: false, //
assignment: false, //
applyArbitration: false, //
batchFinish: false, //
appeal: false, //
};
case 7://
case 7: //
return {
add: false,//
batchReject: false,//
assignment:false,//
applyArbitration: false,//
batchFinish:false,//
appeal:false//
add: false, //
batchReject: false, //
assignment: false, //
applyArbitration: false, //
batchFinish: false, //
appeal: false, //
};
//
default:
@ -1469,12 +1467,11 @@ const ButtonPermissions = computed(() => {
assignment: false,
applyArbitration: false,
batchFinish: false,
appeal: false
appeal: false,
};
}
});
const ProcessingResults = [
{
value: '0',
@ -1542,6 +1539,7 @@ const IndexTable = val => {
data.size = page.value.pageSize; //
updateDictionary(columnList[2].checkarr, 'pc_work_order'); //
updateDictionary(columnList[3].checkarr, 'pc_discovery_node'); //
updateDictionary(columnList[17].checkarr, 'work_order_status'); //
//
getDictionaryBiz('after_sales_visits').then(res => {
console.log(res, '角色字典');
@ -1561,7 +1559,7 @@ const IndexTable = val => {
page.value.total = res.data.data.total; //
if (res.data.data.records.length) {
res.data.data.records.forEach(item => {
console.log(item,'item');
console.log(item, 'item');
// null
for (const property in item) {
if (item[property] == null) {
@ -1598,6 +1596,25 @@ const IndexTable = val => {
} else if (item.discoveryNode == 8) {
item.discoveryNodeNameS = columnList[3].checkarr[7].label; //
}
if (item.workOrderStatus == 10) {
item.workOrderStatusNameS = columnList[17].checkarr[0].label; //
} else if (item.workOrderStatus == 20) {
item.workOrderStatusNameS = columnList[17].checkarr[1].label; //
} else if (item.workOrderStatus == 30) {
item.workOrderStatusNameS = columnList[17].checkarr[2].label; //
} else if (item.workOrderStatus == 40) {
item.workOrderStatusNameS = columnList[17].checkarr[4].label; //
} else if (item.workOrderStatus == 50) {
item.workOrderStatusNameS = columnList[17].checkarr[5].label; //
} else if (item.workOrderStatus == 60) {
item.workOrderStatusNameS = columnList[17].checkarr[3].label; //
} else if (item.workOrderStatus == 70) {
item.workOrderStatusNameS = columnList[17].checkarr[6].label; //
} else if (item.workOrderStatus == 80) {
item.workOrderStatusNameS = columnList[17].checkarr[7].label; //
} else if (item.workOrderStatus == 90) {
item.workOrderStatusNameS = columnList[17].checkarr[8].label; //
}
});
details.data = res.data.data.records;
} else {
@ -1749,11 +1766,11 @@ const view = val => {
path: '/aftersales/aftersalesWorkOrderInfo',
query: {
id: val.row.id,
name: val.row.id + '-信息查看',
name: val.row.workOrderNumber + '-信息查看',
warehouseId: val.row.warehouseId,
workOrderNumber: val.row.workOrderNumber, //
businessId: val.row.businessId,
ProcessType:TabPermissions.value==2?'2':TabPermissions.value==3?'1':'', // 1 2
ProcessType: TabPermissions.value == 2 ? '2' : TabPermissions.value == 3 ? '1' : '', // 1 2
},
});
return;
@ -1877,13 +1894,14 @@ const appeal = val => {
};
//
const Appealbutton = () => {
console.log(details.selectionList, '当前申诉的东西');
loadingappeal.value = true; //
console.log(Appealselection.value, '当前选择的责任人');
console.log(warehouseData.value, '要循环处理的参数');
let data = {
peopleEntityList: [], //
};
data.workOrderId = details.selectionList[0].id;
data.workOrderId = details.selectionList[0].lawoId;
data.reason = Reasonforappeal.value;
(data.appealPeopleName = warehouseData.value
@ -2307,7 +2325,6 @@ const appealFn = val => {
//
const AppealTab = val => {
if (val == 0) {
AppealStatusT.value = false; //
Tableheaderswitching(columnList); //
@ -2334,10 +2351,11 @@ const AppealTab = val => {
};
//
const BtnModifyAmount = val => {
console.log(val, '超时金额修改');
dialogModifyAmount.value = true; //
fromamount.value.title = val.row.workOrderNumber; //
fromamount.value.ytimeout = val.row.money; //
fromamount.value.id = val.row.id; //id
fromamount.value.id = val.row.lawoId; //id
};
//
const ModifyAmountFn = () => {

268
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -8,7 +8,7 @@
<!-- <el-divider content-position="left">
<span> {{ routerState ? '信息查看' : '工单新增' }}</span>
</el-divider> -->
<el-tabs type="border-card" class="PackageInformation">
<el-tabs type="border-card" class="PackageInformation" v-show="identifying != '2'">
<el-tab-pane label="包件信息">
<div class="ResponsibilityBoxS">
<div><el-button type="primary" @click="AddPackage"> 添加信息 </el-button></div>
@ -34,6 +34,11 @@
<span class="title">运单号:</span>
<el-input v-model="item.waybillNumber" placeholder="请输入运单号" clearable />
</div>
<div class="maxBox">
<span class="title">品牌:</span>
<el-input v-model="item.brandName" placeholder="请输入品牌" clearable />
</div>
</div>
<div class="el-btn">
@ -44,7 +49,7 @@
</div>
</div>
<div class="NumTotal">
<span>总件数:{{ PackageInfo.length }}</span>
<span>总件数:{{ NumberPackages }}</span>
</div>
</div>
</el-tab-pane>
@ -270,14 +275,40 @@
<el-input v-model="Indexform.problemDescription" placeholder="请输入异常问题" clearable />
</el-form-item>
<el-form-item >
<el-form-item label="处理方">
<el-select
v-model="Indexform.processor"
clearable
filterable
multiple
placeholder="请选择处理方"
>
<el-option
v-for="item in warehouseData"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item >
<el-form-item label="调查经过">
<el-input
v-model="Indexform.investigationPocess"
placeholder="请输入调查经过"
clearable
:rows="2"
type="textarea"
/>
</el-form-item>
<el-form-item> </el-form-item>
<el-form-item> </el-form-item>
</el-form>
<!-- 必填 -->
<div class="el_clzr">
<!-- <div class="el_clzr">
<el-form-item class="investigate" label="调查经过">
<el-input
v-model="Indexform.investigationPocess"
@ -304,7 +335,7 @@
/>
</el-select>
</el-form-item>
</div>
</div> -->
<el-tabs type="border-card">
<el-tab-pane label="责任方选择">
@ -334,7 +365,7 @@
<el-select
v-else
v-model="item.businessName"
filterable
filterable
placeholder="请选择责任方"
@change="ResponsiblePartychange(item.businessName, index)"
>
@ -350,6 +381,7 @@
<div class="maxBox">
<span class="title">责任人</span>
<el-select
v-if="groundlineType != 1"
v-model="item.personResponsibleName"
clearable
filterable
@ -362,6 +394,8 @@
:value="item.id"
/>
</el-select>
<el-input v-else v-model="item.personResponsibleName" placeholder="请输入责任人" />
</div>
<div class="maxBox">
<span class="title">占比:</span>
@ -370,6 +404,7 @@
placeholder="请输入占比 "
clearable
:rows="2"
@input="CompanyProportionInput"
/>
</div>
@ -512,22 +547,14 @@ import {
$_remove,
$_getBusinessDepartmentUser,
$_getAbnormalPackage,
$_shippingInformation,
} from '@/api/aftersales/aftersalesWorkOrder';
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import { getToken } from '@/utils/auth';
const $router = useRouter();
const $route = useRoute();
const Indexform = ref({
packList: [
{
name: 'food.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
},
{
name: 'food.jpeg',
url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
},
],
packList: [],
decreaseImageEntityList: [], //
}); //
const IndexException = ref([]); //
@ -553,9 +580,10 @@ const identifying = ref(1); //订单,零担状态
const dialogHistoricalPackage = ref(false); //
const HistoricalPackageList = ref([]); //
const HistorIndex = ref(0); //
const NumberPackages = ref(0); //
const PackageInfo = ref([
//
{ packageCode: '', orderCode: '', waybillNumber: '' },
{ packageCode: '', orderCode: '', waybillNumber: '', brandName: '' },
]);
//
const FangAddList = ref([
@ -563,18 +591,18 @@ const FangAddList = ref([
]);
//
const responsible = ref([
{
value: '1',
label: '工厂',
},
{
value: '2',
label: '外包搬运',
},
{
value: '3',
label: '物流',
},
// {
// value: '1',
// label: '',
// },
// {
// value: '2',
// label: '',
// },
// {
// value: '3',
// label: '',
// },
]);
const DeliveryDriver = ref([
@ -619,10 +647,10 @@ const doubledCount = computed(() => {
const ImgSuccess = (response, uploadFile) => {
if (response.success === true) {
console.log(response);
Indexform.value['packList'].push({
name: response.data.originalName,
url: response.data.link,
});
// Indexform.value['packList'].push({
// name: response.data.originalName,
// url: response.data.link,
// });
console.log(Indexform.value['packList'], '图片列表');
}
};
@ -703,6 +731,16 @@ const DiscoveringNodesChange = val => {
} else {
groundlineSet.value = true; //
}
// if(val==1){
// let data={
// }
// $_shippingInformation(data).then(res=>{
// console.log(res,'');
// })
// }
};
//
@ -717,11 +755,12 @@ const handlePictureCardPreview = uploadFile => {
//
const AddPackage = () => {
PackageInfo.value.push({ packageCode: '', orderCode: '', waybillNumber: '' });
PackageInfo.value.push({ packageCode: '', orderCode: '', waybillNumber: '', brandName: '' });
};
//
const PackagRemoval = val => {
PackageInfo.value.splice(val, 1); //
Statistics();
};
//
const responsibleParty = () => {
@ -735,6 +774,7 @@ const responsibleParty = () => {
//
const ResponsibilityRemoval = val => {
FangAddList.value.splice(val, 1); //
CompanyProportion();
};
//
const TopChange = val => {
@ -745,9 +785,31 @@ const TopChange = val => {
identifying.value = 2;
}
};
//
const CompanyProportion = () => {
let proportion = 0; //
FangAddList.value.forEach(item => {
proportion += item.responsibilityRatio;
});
companyProportion.value = 100 - proportion;
};
//
const CompanyProportionInput = () => {
CompanyProportion();
};
//
const ConfirmForm = () => {
//
console.log(Indexform.value.businessMame, '提货责任方');
let DataSubmit = {
personResponsibleDTO: [],
packageEntityList: [], ////
decreaseImageEntityList: [], //
...Indexform.value,
}; //
// :10,20
// decreaseImageEntityList:[
// {imageType:10,imageName:'',imagePath:''},
@ -758,23 +820,24 @@ const ConfirmForm = () => {
if (SelectType.value == 1 || SelectType.value == 3) {
if (Indexform.value['packList']) {
Indexform.value['packList'].forEach(item => {
Indexform.value['decreaseImageEntityList'].push({
DataSubmit['decreaseImageEntityList'].push({
imageType: SelectType.value == 1 ? 10 : SelectType.value == 3 ? 20 : '',
imageName: item.name,
imagePath: item.url,
imageName: item.response.data.originalName,
imagePath: item.response.data.link,
});
});
}
}
console.log(Indexform.value['decreaseImageEntityList'], '处理好的图片');
console.log(DataSubmit['decreaseImageEntityList'], '处理好的图片');
//
if (Indexform.value.deliveryDriver) {
Indexform.value.deliveryDriver = DeliveryDriver.value.find(
item => item.value == Indexform.value.deliveryDriver
).label;
);
}
Indexform.value.deliveryDriver = Indexform.value.deliveryDriver.label;
console.log(Indexform.value.deliveryDriver); //
let processorEntityList = [];
@ -803,31 +866,28 @@ const ConfirmForm = () => {
// });
// }
// }
//
console.log(Indexform.value.businessMame, '提货责任方');
let DataSubmit = {
personResponsibleDTO: [],
packageEntityList: [], ////
...Indexform.value,
}; //
DataSubmit.processorEntityList = processorEntityList;
DataSubmit.decreaseImageEntityList = JSON.parse(
JSON.stringify(Indexform.value['decreaseImageEntityList'])
);
console.log(Indexform.value.workOrderNumber,'Indexform.workOrderNumber12312312');
console.log(Indexform.value.workOrderNumber, 'Indexform.workOrderNumber12312312');
//
// packageEntityList
PackageInfo.value.forEach(item=>{
DataSubmit['packageEntityList'].push({
number: PackageInfo.value.length, //
packageCode: item.packageCode, //
// warehouseId: '', //ID
waybillNumber:item.waybillNumber, //
orderCode:item.orderCode, //
});
})
//
if (PackageInfo.value.length) {
PackageInfo.value.forEach(item => {
DataSubmit['packageEntityList'].push({
number: PackageInfo.value.length, //
packageCode: item.packageCode, //
// warehouseId: '', //ID
waybillNumber: item.waybillNumber, //
orderCode: item.orderCode, //
brandName: item.brandName, //
});
});
}
// DataSubmit['packageEntityList'].push({
// workOrderId: Indexform.workOrderNumber, //ID
// number: PackageInfo.value.length, //
@ -849,27 +909,51 @@ const ConfirmForm = () => {
console.log(DataSubmit.surveyRecordDTO, '调查经过');
//
// FangAddList.value
//
if (groundlineType.value != 1) {
if (FangAddList.value.length) {
//
FangAddList.value.forEach(item => {
DataSubmit['personResponsibleDTO'].push({
businessName:
warehouseData.value.find(obj => obj.value == item.businessName)?.label || null, //
businessId:
warehouseData.value.find(obj => obj.value == item.businessName)?.value || null,
wordOrderId: Indexform.value.workOrderNumber, //ID
description: item.description,
personResponsibleId:
personResponsibleList.value.find(obj => obj.id == item.personResponsibleName)?.id ||
null, //ID personResponsibleList
personResponsibleName:
personResponsibleList.value.find(obj => obj.id == item.personResponsibleName)?.name ||
null, //
responsibilityRatio: item.responsibilityRatio, //
});
});
}
} else {
//
FangAddList.value.forEach(item => {
DataSubmit['personResponsibleDTO'].push({
businessName:
warehouseData.value.find(obj => obj.value == item.businessName)?.label || null, //
businessId: warehouseData.value.find(obj => obj.value == item.businessName)?.value || null,
wordOrderId: Indexform.value.workOrderNumber, //ID
description: item.description,
personResponsibleId: '',
personResponsibleName: item.personResponsibleName, //
responsibilityRatio: item.responsibilityRatio, //
});
});
}
//
FangAddList.value.forEach(item => {
DataSubmit['personResponsibleDTO'].push({
businessName: warehouseData.value.find(obj => obj.value == item.businessName)?.label || null, //
businessId: warehouseData.value.find(obj => obj.value == item.businessName)?.value || null,
wordOrderId: Indexform.value.workOrderNumber, //ID
description: item.description,
personResponsibleId:
personResponsibleList.value.find(obj => obj.id == item.personResponsibleName)?.id || null, //ID personResponsibleList
personResponsibleName:
personResponsibleList.value.find(obj => obj.id == item.personResponsibleName)?.name || null, //
responsibilityRatio: item.responsibilityRatio, //
});
});
let proportion = 0; //
DataSubmit['personResponsibleDTO'].forEach(item => {
proportion += Number(item.responsibilityRatio);
});
console.log(proportion, '责任比例之和');
companyProportion.value = 100 - proportion;
// let proportion = 0; //
// DataSubmit['personResponsibleDTO'].forEach(item => {
// proportion += Number(item.responsibilityRatio);
// });
// console.log(proportion, '');
// companyProportion.value = 100 - proportion;
DataSubmit.companyProportion = companyProportion.value; //
console.log(DataSubmit.companyProportion, '公司占比');
console.log(DataSubmit['personResponsibleDTO'], '新责任方处理的数据');
@ -909,7 +993,7 @@ const ConfirmForm = () => {
delete DataSubmit.packList; //
delete DataSubmit.processor; //
console.log(DataSubmit, '处理好的数据');
//stringify
// stringify
$_submit(DataSubmit).then(res => {
if (res.data.code == 200) {
ElMessage({
@ -1006,8 +1090,24 @@ const moneyBtnB = () => {
}
fleeingState.value = true; //
};
//
//
const Statistics = () => {
NumberPackages.value = 0;
PackageInfo.value.map(res => {
if (res.packageCode) {
NumberPackages.value++;
}
});
};
//
const ChangePackageInfo = (val, index) => {
PackageInfo.value[index].orderCode = ''; //
PackageInfo.value[index].waybillNumber = ''; //
PackageInfo.value[index].orderId = ''; //
PackageInfo.value[index].brandName = ''; //
Statistics(); //
let data = {
packageCode: val,
};
@ -1019,6 +1119,7 @@ const ChangePackageInfo = (val, index) => {
PackageInfo.value[index].orderCode = packageData.orderCode; //
PackageInfo.value[index].waybillNumber = packageData.waybillNumber; //
PackageInfo.value[index].orderId = packageData.orderId; //
PackageInfo.value[index].brandName = packageData.brandName; //
PackageInfo.value[index].state = false; //
if (res.data.data.length > 1) {
@ -1047,6 +1148,7 @@ const HistoricalPackage = val => {
PackageInfo.value[HistorIndex.value].orderCode = info.orderCode; //
PackageInfo.value[HistorIndex.value].waybillNumber = info.waybillNumber; //
PackageInfo.value[HistorIndex.value].orderId = info.orderId; //
PackageInfo.value[HistorIndex.value].brandName = packageData.brandName; //
dialogHistoricalPackage.value = false; //
PackageInfo.value[HistorIndex.value].relatedWorkOrdersId = info.workOrderId;
@ -1254,6 +1356,7 @@ const ViewPackageDetails = val => {
display: flex;
align-items: center;
width: 30%;
margin-right: 20px;
.title {
width: 140px;
color: #606266;
@ -1318,4 +1421,9 @@ const ViewPackageDetails = val => {
:deep(.el-card__body) {
margin-bottom: 50px;
}
:deep(.el-upload-dragger) {
display: flex;
align-items: center;
justify-content: center;
}
</style>

18
src/views/aftersales/aftersalesWorkOrderInfo.vue

@ -36,6 +36,10 @@
clearable
/>
</div>
<div class="maxBox">
<span class="title">品牌:</span>
<el-input disabled v-model="item.brandName" placeholder="请输入品牌" clearable />
</div>
</div>
</div>
<div class="NumTotal">
@ -226,7 +230,7 @@
<el-form-item label="调查经过">
<el-input
disabled
v-model="Indexform.investigationPocess"
v-model="Indexform.investigationProcess"
placeholder="请输入调查经过"
clearable
:rows="2"
@ -538,7 +542,7 @@ const dialogReturn = ref(false); //打回弹窗
const repulse = ref(false); //
const PackageInfo = ref([
//
{ packageCode: '', orderCode: '', waybillNumber: '' },
{ packageCode: '', orderCode: '', waybillNumber: '',brandName:'' },
]);
//
const FangAddList = ref([
@ -713,7 +717,7 @@ const onLoad = () => {
});
//
PackageInfo.value = res.data.data.abnormalPackageVOList
console.log(res.data.data.abnormalPackageVOList,'包件信息');
//
FangAddList.value = res.data.data.processorVOList
.filter(item => item.typesOf == '1')
@ -989,6 +993,7 @@ const ChangePackageInfo = (val, index) => {
PackageInfo.value[index].orderCode = packageData.orderCode; //
PackageInfo.value[index].waybillNumber = packageData.waybillNumber; //
PackageInfo.value[index].orderId = packageData.orderId; //
PackageInfo.value[index].brandName = packageData.brandName; //
PackageInfo.value[index].state = false; //
if (res.data.data.length > 1) {
@ -1017,6 +1022,7 @@ const HistoricalPackage = val => {
PackageInfo.value[HistorIndex.value].orderCode = info.orderCode; //
PackageInfo.value[HistorIndex.value].waybillNumber = info.waybillNumber; //
PackageInfo.value[HistorIndex.value].orderId = info.orderId; //
PackageInfo.value[HistorIndex.value].brandName = packageData.brandName; //
dialogHistoricalPackage.value = false; //
PackageInfo.value[HistorIndex.value].relatedWorkOrdersId = info.workOrderId;
@ -1081,7 +1087,7 @@ const CustomerServiceCompleted = () => {
businessId: $route.query.businessId,
warehouseId: $route.query.warehouseId,
workOrderNumber: $route.query.workOrderNumber,
RouterState: false,
RouterState: 'Kfend',
},
});
};
@ -1095,7 +1101,7 @@ const EditInformation = () => {
businessId: $route.query.businessId,
warehouseId: $route.query.warehouseId,
workOrderNumber: $route.query.workOrderNumber,
RouterState: true,
RouterState: 'Infoedit',
ProcessType:$route.query.ProcessType, // 1 2
},
});
@ -1287,6 +1293,7 @@ const EndJump = () => {
display: flex;
flex-direction: column;
margin-bottom: 10px;
.leftbox {
width: 80%;
display: flex;
@ -1296,6 +1303,7 @@ const EndJump = () => {
display: flex;
align-items: center;
width: 30%;
margin-right: 20px;
.title {
width: 140px;
color: #606266;

40
src/views/aftersales/aftersalesWorkOrderend.vue

@ -1533,8 +1533,6 @@ const PaymentConfirmation = val => {
//
const submit = () => {
console.log(UserPermissions.value, '当前角色');
if (UserPermissions.value == '职能客服' || UserPermissions.value == '客服经理' ) {
//
//
if (routerState.value == 'end') {
@ -1616,24 +1614,8 @@ const submit = () => {
type: 'success',
});
}
});
}else{
ElMessage({
message: '权限不足',
type: 'warning',
});
console.log(UserPermissions.value);
return;
}
})
} else {
if (UserPermissions.value != '仓库客服') {
ElMessage({
message: '权限不足',
type: 'warning',
});
console.log(UserPermissions.value);
return;
}
//
console.log($route.query.id, '异常ID');
console.log(ProcessingList.value, 'ProcessingList12312');
@ -1719,8 +1701,7 @@ const submit = () => {
}
});
}
};
}
//
const replyMessage = () => {
console.log(MessageContent.value, '当前的聊天记录');
@ -2129,6 +2110,15 @@ const ViewPackageDetails = val => {
font-size: 14px;
color: #606266;
margin-top: 30px;
.title{
border: 1px solid #ccc;
padding: 2px 8px;
display: flex;
align-items: center;
justify-content: center;
width: max-content;
color: #000;
}
}
.el_tool {
span {
@ -2257,9 +2247,17 @@ const ViewPackageDetails = val => {
margin-top: 16px;
display: flex;
align-items: center;
span {
width: 120px;
font-size: 14px;
width: 30%;
margin-top: 4px;
display: flex;
align-items: center;
justify-content: center;
padding: 2px 0;
border: 1px solid #dcdfe6;
}
}
.el_sub {

671
src/views/aftersales/aftersalesWorkOrdermodify.vue

File diff suppressed because it is too large Load Diff

9
src/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue

@ -66,7 +66,7 @@
:class="index == checksele ? 'item xz' : 'item'"
@click="ckindexs(index)"
v-for="(item, index) in arrlist[checkselect]?.warehouseGoodsAreaVOList[checkregionselect]
?.warehouseGoodsShelfEntitieList"
?.warehouseGoodsShelfEntitieList" :key="index"
>
{{ item.goodsShelfName }}
</div>
@ -2603,14 +2603,17 @@ const {
padding: 5px 10px;
box-sizing: border-box;
background-color: skyblue;
border-radius: 30px;
color: #fff;
cursor: pointer;
font-size: 15px;
min-width: 130px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
}
.xz {
width: 120px;
height: 36px;
background: #2f4370;
border-radius: 4px 4px 4px 4px;
opacity: 1;

11
src/views/distribution/artery/AddVehicleStowage.vue

@ -113,7 +113,7 @@
<div class="form_row_item">
<el-form-item inline label="副驾司机">
<el-select
v-model="form.name"
v-model="form.assistantName"
filterable
remote
reserve-keyword
@ -947,7 +947,7 @@ onLoad();
/** 查询仓库 */
const remoteMethod = async val => {
if (!val) return;
// if (!val) return;
const res = await postFindWarehouseListByName({ warehouseName: val });
const { code, data } = res.data;
if (code !== 200) return;
@ -955,6 +955,8 @@ const remoteMethod = async val => {
console.log('res :>> ', res);
};
remoteMethod('');
/** 目的仓选择时给目的仓名称赋值 */
const destinationWarehouseNameChange = (val, index) => {
const _value = details.options.find(value => value.warehouseId === val);
@ -1073,7 +1075,8 @@ const handleNameChange = (type: number) => {
form.value.driverId = _value.driverId;
form.value.driverMobile = _value.driverPhone;
} else {
form.value.name = _value.driverName;
form.value.assistantName = _value.driverName;
form.value.assistantMobile = _value.driverPhone;
form.value.assistantId = _value.driverId;
}
};
@ -1287,7 +1290,7 @@ const remoteMethodCar = async val => {
if (code !== 200) return;
details.carListByName = data;
};
remoteMethodCar('')
remoteMethodCar('');
/** 修改计划数 */
const handleEditplanNum = ({ row }, item) => {

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

@ -165,9 +165,9 @@
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<!-- <el-text @click="handleShowzeroAdditionalRecording(slotProps.scope)">
零担补录
</el-text> -->
<el-button type="text" @click="handleShowzeroAdditionalRecording(slotProps.scope)">
零担补录
</el-button>
<el-button type="text" @click="handleShowTruckLoadingDetails(slotProps.scope)"
>装车明细</el-button
>
@ -842,7 +842,13 @@ const handleShowTruckLoadingDetails = ({ row }) => {
/** 显示零担补录 */
const handleShowzeroAdditionalRecording = ({ row }) => {
//
$router.push('/distribution/artery/zeroAdditionalRecording');
$router.push({
path: '/distribution/artery/zeroAdditionalRecording',
query: {
name: '零担补录',
loadId: row.id,
},
});
};
/**

283
src/views/distribution/artery/VehicleStowageDetails.vue

@ -10,41 +10,25 @@
</div>
</el-divider>
<!-- 表单 -->
<el-form disabled :inline="true" label-width="120px" :model="form" class="el-fr-d">
<el-form :inline="true" label-width="120px" :model="form" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="发车批次" prop="carrierName" style="flex: 1">
<el-select
v-model="form.carrierName"
filterable
:teleported="false"
remote
reserve-keyword
placeholder="发车批次"
@change="val => carrierNameChange()"
:remote-method="remoteMethod"
:loading="details.loadingObj.loading"
>
<el-option
v-for="val in details.carrierNameOptions"
:key="val.carrierName"
:label="val.carrierName"
:value="val.carrierId"
/>
</el-select>
<el-form-item label="发车批次" prop="carsNo" style="flex: 1">
<el-input readonly v-model="form.carsNo" placeholder="发车批次" />
</el-form-item>
<el-form-item label="车线" prop="operator">
<el-input v-model="form.operator" placeholder="车线" />
<el-form-item label="车线" prop="carsLineName">
<el-input readonly v-model="form.carsLineName" placeholder="车线" />
</el-form-item>
<el-form-item label="分摊方式">
<el-select
disabled
:teleported="false"
v-model="form.deliveryType"
v-model="form.chargeType"
class="m-2"
placeholder="分摊方式"
size="default"
>
<el-option
v-for="item in details.pageInfo.deliveryType || []"
v-for="item in details.pageInfo.chargeType || []"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictKey"
@ -53,6 +37,7 @@
</el-form-item>
<el-form-item label="直发商家">
<el-select
disabled
:teleported="false"
v-model="form.payMethod"
class="m-2"
@ -69,14 +54,15 @@
</el-form-item>
<el-form-item label="装车方式">
<el-select
disabled
:teleported="false"
v-model="form.chargeType"
v-model="form.loadingType"
class="m-2"
placeholder="装车方式"
size="default"
>
<el-option
v-for="item in details.pageInfo.chargeType || []"
v-for="item in details.pageInfo.loadType || []"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictKey"
@ -84,81 +70,39 @@
</el-select>
</el-form-item>
<el-form-item label="经办人">
<el-select
v-model="form.driverName"
filterable
:teleported="false"
remote
@change="handleNameChange"
reserve-keyword
placeholder="经办人"
:remote-method="remoteMethodDriver"
:loading="details.loadingObj.loading"
>
<el-option
v-for="val in details.driverListByName"
:key="val.driverName"
:label="val.driverName"
:value="val.driverId"
/>
</el-select>
<el-input readonly v-model="form.userName" />
</el-form-item>
<el-form-item label="合计运输费" prop="customerType">
<el-select
:teleported="false"
v-model="form.customerType"
class="m-2"
placeholder="合计运输费"
size="default"
>
<el-option
v-for="item in details.pageInfo.customerType || []"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictKey"
/>
</el-select>
<el-input readonly v-model="form.countTransportCost" />
</el-form-item>
<el-form-item label="发车时间">
<el-select
:teleported="false"
v-model="form.settlementStatus"
class="m-2"
placeholder="发车时间"
size="default"
>
<el-option
v-for="item in details.pageInfo.settlementStatus || []"
:key="item.dictValue"
:label="item.dictValue"
:value="item.dictKey"
/>
</el-select>
<el-input readonly v-model="form.startTime" />
</el-form-item>
<el-form-item label="车牌号/类型">
<el-input placeholder="车牌号/类型" />
<el-input readonly placeholder="车牌号/类型" />
</el-form-item>
<el-form-item label="主驾司机/电话" prop="carrierOrderCode">
<el-input v-model="form.carrierOrderCode" placeholder="主驾司机/电话" />
<el-form-item label="主驾司机/电话">
<el-input readonly v-model="form.driverNameAndMobile" placeholder="主驾司机/电话" />
</el-form-item>
<el-form-item label="副驾司机/电话" prop="carrierTime">
<el-input v-model="form.carrierOrderCode" placeholder="副驾司机/电话" />
<el-form-item label="副驾司机/电话">
<el-input readonly v-model="form.carrierOrderCode" placeholder="副驾司机/电话" />
</el-form-item>
<el-form-item label="主驾电话" prop="carrierOrderCode">
<el-input v-model="form.carrierOrderCode" placeholder="主驾电话" />
<el-form-item label="主驾电话">
<el-input readonly v-model="form.driverMobile" placeholder="主驾电话" />
</el-form-item>
<div style="flex: 1; padding-right: 0">
<el-form-item style="width: 100%; margin: 0" label="备注" :inline="false">
<el-input type="textarea" v-model="form.remark" placeholder="备注"
<el-input readonly type="textarea" v-model="form.remark" placeholder="备注"
/></el-form-item>
</div>
</div>
</el-form>
<!-- 标题 节点信息 -->
<el-divider content-position="left">
<div class="flex-c-c">
<el-icon class="mr10"><Document /></el-icon>
@ -172,7 +116,9 @@
:loading="loadingObj.stowageLoading"
ref="nodeInfoRef"
>
<template #default="slotProps"> </template>
<template #default="slotProps">
<div>{{ slotProps.scope.row[slotProps.scope.column.property] }}</div>
</template>
</tablecmt>
<!-- 标题 运单信息 -->
@ -234,33 +180,9 @@
@timeCheck="timesc"
@selectCheck="selectsc"
@selection="selectionChange"
:arraySpanMethod="
(row) => {
console.log('row :>> ', row);
if (row.columnIndex === 0) {
if (row.rowIndex === 0) return [2, 1];
else if (row.rowIndex === 1) return [0, 0];
}
}
"
:arraySpanMethod="row => arraySpanMethod(row)"
>
</tablecmt>
<!-- 分页模块 -->
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<el-pagination
style="zoom: 0.9"
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="oldPage.pageNum"
:page-sizes="[30, 50, 80, 120]"
:page-size="oldPage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="oldPage.total"
>
</el-pagination>
</div>
</el-tab-pane>
<el-tab-pane label="日 志 跟 踪" name="tab2">
@ -406,12 +328,24 @@ import {
postFindCarListByName,
postFindDriverListByName,
postFindCarrierByName,
postSelectEditDetailByLoadId,
} from '@/api/distribution/AddVehicleStowage';
import { postSaveNewTripartiteTransfer } from '@/api/distribution/addTripartiteTransfer.js';
import type { FormInstance, FormRules } from 'element-plus';
import { postCarsLoadDetailInfo } from '@/api/distribution/VehicleStowageDetails.js';
import { useRouter, useRoute } from 'vue-router';
import { useStore } from 'vuex';
/** 被合并的列 */
const mergeColumn = [];
//
detailsColumnList.map(val => {
if (val.isColumnMerge) mergeColumn.push(val.prop);
});
console.log('mergeColumn :>> ', mergeColumn);
// ,
const nodeInfokeys = nodeInfoColumnList.slice(1).map(val => val.prop);
// vuex
const $store = useStore();
@ -561,7 +495,10 @@ const details = reactive<any>({
customerType: '',
},
/** 页面数据 */
pageInfo: {},
pageInfo: {
//
startWarehouseInfo: {},
},
/** 承运商 */
carrierNameOptions: [],
/** 客户类型 */
@ -687,50 +624,82 @@ onMounted(() => {
}
});
/** 请求页面数据 */
const onLoad = async () => {
const res = await postloadFindLoadInitData();
const { code, data } = res.data;
if (code !== 200) return;
details.pageInfo = data;
details.customerType = data.customerType;
console.log('data :>> ', data);
details.form.startWarehouseName = data.startWarehouseInfo.warehouseName;
details.form.startWarehouseId = data.startWarehouseInfo.warehouseId;
details.form.endWarehouseName = data.startWarehouseInfo.warehouseName;
details.form.endWarehouseId = data.startWarehouseInfo.warehouseId;
initOriginWarehouseOrder();
};
onLoad();
/** 请求运单数据 */
const initOriginWarehouseOrder = async (params = {}) => {
try {
details.loadingObj.oldListLoading = true;
const submitData = {
...details.page,
loadId: details.pageInfo.startWarehouseInfo.warehouseId,
orderCodes: details.orderCodeList,
loadId: details.loadId,
...details.query,
...params,
};
if (submitData.orderCodes.length === 0) delete submitData.orderCodes;
const res = await postFindAllOrderList(submitData);
const res = await postCarsLoadDetailInfo(submitData);
console.log('res :>> ', res);
const { code, data } = res.data;
if (code !== 200) return;
details.oldData = data.records;
details.nodeInfoData = data.carsLoadLineList;
details.oldData = [];
data.carsLoadWaybillInfoList.forEach(val => {
details.oldData.push(
...val.carsLoadOrderInfoList.map((item, index) => {
item = { ...item, ...val };
delete item.carsLoadOrderInfoList;
if (index === 0) item.mergeColumnIndex = val.carsLoadOrderInfoList.length;
else {
item.mergeColumnIndex = 0;
for (let value of mergeColumn) {
item[value] = '';
}
}
return item;
})
);
});
details.form = data;
details.form.driverNameAndMobile = details.form.driverName + '/' + details.form.driverMobile;
details.form.assistantNameAndMobile =
details.form.assistantName + '/' + details.form.assistantMobile;
details.page.total = data.total;
} catch (error) {
console.log('error :>> ', error);
} finally {
//
await nextTick();
details.loadingObj.oldListLoading = false;
}
};
/** 请求页面数据 */
const onLoad = async () => {
details.loadId = $route.query.loadId;
//
initOriginWarehouseOrder();
//
postSelectEditDetailByLoadId({ loadId: details.loadId }).then(res => {
const { code, data } = res.data;
if (code !== 200) return;
details.pageInfo.loadType = data.loadType;
details.pageInfo.chargeType = data.chargeType;
});
// details.pageInfo.startWarehouseInfo.warehouseId = data.carsLoadEntity.startWarehouseId;
// details.pageInfo.startWarehouseInfo.warehouseName = data.carsLoadEntity.startWarehouseName;
//
//
setTabelHeight();
};
onLoad();
/** 搜索 */
const searchChange = () => {
initOriginWarehouseOrder();
@ -744,12 +713,6 @@ const searchReset = () => {
initOriginWarehouseOrder();
};
//
const clearSelectionList = () => {
details.selectionList = [];
oldColumnListNode.value.handleCheckSelect([]);
};
/** 展开列表控件 */
const showdrawer = (_flag?: boolean, _type?: number) => {
switch (_type) {
@ -769,26 +732,6 @@ const searchHide = async () => {
// setNodeHeight(details.listNode);
};
/** 远程搜索承运商 */
const remoteMethod = value => {
if (!value) return;
const res = debounce(async () => {
const res = await postFindCarrierByName({ carrierName: value });
const { code, data } = res.data;
if (code !== 200) return;
details.carrierNameOptions = data;
}, 500);
};
/** 查询司机信息 */
const remoteMethodDriver = async val => {
const res = await postFindDriverListByName({ driverName: val });
console.log('res :>> ', res);
const { code, data } = res.data;
if (code !== 200) return;
details.driverListByName = data;
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
@ -824,17 +767,6 @@ const selectionChange = (list: any) => {
details.selectionList = list;
};
/** 每页数量改变执行的回调 */
const sizeChange = (pageSize: number) => {
details.page.pageSize = pageSize;
initOriginWarehouseOrder();
};
/** 页码改变执行的回调 */
const currentChange = (pageNum: number) => {
initOriginWarehouseOrder();
};
/**
* 设置列表 -- 固定函数
* 弹窗的勾选回调用于更改头部数组
@ -866,11 +798,12 @@ const handleNameChange = () => {
form.value.driverMobile = _value.driverPhone;
};
const arraySpanMethod = (row, column, rowIndex, columnIndex) => {
console.log('row :>> ', row);
console.log('column :>> ', column);
console.log('rowIndex :>> ', rowIndex);
console.log('columnIndex :>> ', columnIndex);
const arraySpanMethod = (row: any) => {
const { column } = row;
if (mergeColumn.indexOf(column.property) !== -1) {
if (row.row.mergeColumnIndex !== 0) return [row.row.mergeColumnIndex, 1];
else return [0, 0];
}
};
/** 关闭页面 */

34
src/views/distribution/deliverylist/distributionDeliveryList.vue

@ -69,31 +69,6 @@
</el-form>
</el-row>
<!-- <el-row :gutter="24" class="rows">
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span
>配送总车次{{ statistics.vehiclesNub }} /总包件数{{
statistics.deliveriesTotal
}}
/{{ statistics.dinventoryTotal }}
</span>
</el-col>
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span
>商配总车次{{ statistics.commercialNub }}/总包件数{{
statistics.commercialTotal
}}/总库存品数{{ statistics.cinventoryTotal }}
</span>
</el-col>
<el-col :xl="7" :lg="7" :md="8" :sm="24">
<span
>市配总车次{{ statistics.marketNub }}/总包件数{{
statistics.marketTotal
}}/总库存品数{{ statistics.minventoryTotal }}
</span>
</el-col>
</el-row> -->
<!-- 配送总车次 -->
<div class="orderInfos">
<div class="order-info">
<ul>
@ -194,7 +169,7 @@
</template>
</tablecmt>
</el-row>
<el-row class='el-fy '>
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
@ -504,6 +479,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'price',
@ -514,6 +490,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
// {
// prop: 'fee',
@ -533,6 +510,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -543,6 +521,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -553,6 +532,7 @@ export default {
width: '150',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -563,6 +543,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -573,6 +554,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{

379
src/views/distribution/deliverylist/distributionDeliveryListdis.vue

@ -85,29 +85,24 @@
<!-- </el-row> -->
<!-- 商配总车次 -->
<div style="
height: 95%;
">
<div class="order-info">
<ul>
<li>
<img src="../../../../public/img/bg/Delivery.png" /> 商配总车次{{
statistics.commercialNub
}}
</li>
<li>
<img src="../../../../public/img/bg/package.png" />总包件数{{
statistics.commercialTotal
}}
</li>
</ul>
</div>
<div style="height: 95%">
<div class="order-info">
<ul>
<li>
<img src="../../../../public/img/bg/Delivery.png" /> 商配总车次{{
statistics.commercialNub
}}
</li>
<li>
<img src="../../../../public/img/bg/package.png" />总包件数{{
statistics.commercialTotal
}}
</li>
</ul>
</div>
<el-row class="el_tabBK">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-row class="el_tabBK">
<el-tabs v-model="activeName" @tab-click="handleClick">
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left" style="margin-top: 20px">
@ -118,7 +113,7 @@
<el-button type="primary" @click="printBatchOrder">批量打印</el-button>
<el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain
>导出
>导出
</el-button>
</div>
<!-- 头部右侧按钮模块 -->
@ -128,155 +123,152 @@
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
</div>
<el-tab-pane label="全部列表" name="first">
<!-- <tablecmt-->
<!-- :columnList="columnList"-->
<!-- :tableData="data"-->
<!-- :loading="loading"-->
<!-- @inputTxt="inputsc"-->
<!-- @timeCheck="timesc"-->
<!-- @btnCheck="btnsc"-->
<!-- @selectCheck="selectsc"-->
<!-- @selection="selectionsc"-->
<!-- >-->
<!-- <template #default="slotProps">-->
<!-- <el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>-->
<!-- <el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>-->
<!-- <el-text size="small" @click="editmap(slotProps.scope)"> </el-text>-->
<!-- <el-text-->
<!-- size="small"-->
<!-- v-if="-->
<!-- slotProps.scope.row.deliveryStatusName !== '已完成' ||-->
<!-- slotProps.scope.row.deliveryStatus !== '3'-->
<!-- "-->
<!-- @click="handleEdit(slotProps.scope)"-->
<!-- > </el-text-->
<!-- >-->
<!-- &lt;!&ndash; <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>&ndash;&gt;-->
<!-- </template>-->
<!-- </tablecmt>-->
</el-tab-pane>
<el-tab-pane label="待配送" name="second">
<!-- <tablecmt-->
<!-- :columnList="columnList"-->
<!-- :tableData="data"-->
<!-- :loading="loading"-->
<!-- @inputTxt="inputsc"-->
<!-- @timeCheck="timesc"-->
<!-- @btnCheck="btnsc"-->
<!-- @selectCheck="selectsc"-->
<!-- @selection="selectionsc"-->
<!-- >-->
<!-- <template #default="slotProps">-->
<!-- <el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>-->
<!-- <el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>-->
<!-- <el-text size="small" @click="editmap(slotProps.scope)"> </el-text>-->
<!-- <el-text-->
<!-- size="small"-->
<!-- v-if="-->
<!-- slotProps.scope.row.deliveryStatusName !== '已完成' ||-->
<!-- slotProps.scope.row.deliveryStatus !== '3'-->
<!-- "-->
<!-- @click="handleEdit(slotProps.scope)"-->
<!-- > </el-text-->
<!-- >-->
<!-- &lt;!&ndash; <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>&ndash;&gt;-->
<!-- </template>-->
<!-- </tablecmt>-->
</el-tab-pane>
<el-tab-pane label="配送中" name="third">
<!-- <tablecmt-->
<!-- :columnList="columnList"-->
<!-- :tableData="data"-->
<!-- :loading="loading"-->
<!-- @inputTxt="inputsc"-->
<!-- @timeCheck="timesc"-->
<!-- @btnCheck="btnsc"-->
<!-- @selectCheck="selectsc"-->
<!-- @selection="selectionsc"-->
<!-- >-->
<!-- <template #default="slotProps">-->
<!-- <el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>-->
<!-- <el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>-->
<!-- <el-text size="small" @click="editmap(slotProps.scope)"> </el-text>-->
<!-- <el-text-->
<!-- size="small"-->
<!-- v-if="-->
<!-- slotProps.scope.row.deliveryStatusName !== '已完成' ||-->
<!-- slotProps.scope.row.deliveryStatus !== '3'-->
<!-- "-->
<!-- @click="handleEdit(slotProps.scope)"-->
<!-- > </el-text-->
<!-- >-->
<!-- &lt;!&ndash; <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>&ndash;&gt;-->
<!-- </template>-->
<!-- </tablecmt>-->
</el-tab-pane>
<el-tab-pane label="已完成" name="fourth">
</el-tab-pane>
</el-tabs>
<tablecmt
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
<template #default="slotProps">
<el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
<el-text size="small" @click="editmap(slotProps.scope)"> </el-text>
<el-text
size="small"
v-if="
slotProps.scope.row.deliveryStatusName !== '已完成' ||
slotProps.scope.row.deliveryStatus !== '3'
"
@click="handleEdit(slotProps.scope)"
> </el-text
>
<!-- <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>-->
</template>
</tablecmt>
<el-tab-pane label="全部列表" name="first">
<!-- <tablecmt-->
<!-- :columnList="columnList"-->
<!-- :tableData="data"-->
<!-- :loading="loading"-->
<!-- @inputTxt="inputsc"-->
<!-- @timeCheck="timesc"-->
<!-- @btnCheck="btnsc"-->
<!-- @selectCheck="selectsc"-->
<!-- @selection="selectionsc"-->
<!-- >-->
<!-- <template #default="slotProps">-->
<!-- <el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>-->
<!-- <el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>-->
<!-- <el-text size="small" @click="editmap(slotProps.scope)"> </el-text>-->
<!-- <el-text-->
<!-- size="small"-->
<!-- v-if="-->
<!-- slotProps.scope.row.deliveryStatusName !== '已完成' ||-->
<!-- slotProps.scope.row.deliveryStatus !== '3'-->
<!-- "-->
<!-- @click="handleEdit(slotProps.scope)"-->
<!-- > </el-text-->
<!-- >-->
<!-- &lt;!&ndash; <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>&ndash;&gt;-->
<!-- </template>-->
<!-- </tablecmt>-->
</el-tab-pane>
<el-tab-pane label="待配送" name="second">
<!-- <tablecmt-->
<!-- :columnList="columnList"-->
<!-- :tableData="data"-->
<!-- :loading="loading"-->
<!-- @inputTxt="inputsc"-->
<!-- @timeCheck="timesc"-->
<!-- @btnCheck="btnsc"-->
<!-- @selectCheck="selectsc"-->
<!-- @selection="selectionsc"-->
<!-- >-->
<!-- <template #default="slotProps">-->
<!-- <el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>-->
<!-- <el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>-->
<!-- <el-text size="small" @click="editmap(slotProps.scope)"> </el-text>-->
<!-- <el-text-->
<!-- size="small"-->
<!-- v-if="-->
<!-- slotProps.scope.row.deliveryStatusName !== '已完成' ||-->
<!-- slotProps.scope.row.deliveryStatus !== '3'-->
<!-- "-->
<!-- @click="handleEdit(slotProps.scope)"-->
<!-- > </el-text-->
<!-- >-->
<!-- &lt;!&ndash; <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>&ndash;&gt;-->
<!-- </template>-->
<!-- </tablecmt>-->
</el-tab-pane>
<el-tab-pane label="配送中" name="third">
<!-- <tablecmt-->
<!-- :columnList="columnList"-->
<!-- :tableData="data"-->
<!-- :loading="loading"-->
<!-- @inputTxt="inputsc"-->
<!-- @timeCheck="timesc"-->
<!-- @btnCheck="btnsc"-->
<!-- @selectCheck="selectsc"-->
<!-- @selection="selectionsc"-->
<!-- >-->
<!-- <template #default="slotProps">-->
<!-- <el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>-->
<!-- <el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>-->
<!-- <el-text size="small" @click="editmap(slotProps.scope)"> </el-text>-->
<!-- <el-text-->
<!-- size="small"-->
<!-- v-if="-->
<!-- slotProps.scope.row.deliveryStatusName !== '已完成' ||-->
<!-- slotProps.scope.row.deliveryStatus !== '3'-->
<!-- "-->
<!-- @click="handleEdit(slotProps.scope)"-->
<!-- > </el-text-->
<!-- >-->
<!-- &lt;!&ndash; <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>&ndash;&gt;-->
<!-- </template>-->
<!-- </tablecmt>-->
</el-tab-pane>
<el-tab-pane label="已完成" name="fourth"> </el-tab-pane>
</el-tabs>
<tablecmt
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
<template #default="slotProps">
<el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
<el-text size="small" @click="editmap(slotProps.scope)"> </el-text>
<el-text
size="small"
v-if="
slotProps.scope.row.deliveryStatusName !== '已完成' ||
slotProps.scope.row.deliveryStatus !== '3'
"
@click="handleEdit(slotProps.scope)"
> </el-text
>
<!-- <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>-->
</template>
</tablecmt>
<!-- 列表模块 -->
<!-- 列表模块 -->
<!-- <el-table ref="table" v-loading="loading"-->
<!-- @selection-change="selectionChange"-->
<!-- :data="data"-->
<!-- :height="height"-->
<!-- style="width: 100%"-->
<!-- :border="option.border">-->
<!--&lt;!&ndash; <el-table-column type="selection" v-if="option.selection" width="55" align="center"></el-table-column>&ndash;&gt;-->
<!-- <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column>-->
<!--&lt;!&ndash; <el-table-column v-if="option.index" label="#" type="index" width="50" align="center">&ndash;&gt;-->
<!--&lt;!&ndash; </el-table-column>&ndash;&gt;-->
<!-- <template v-for="(item,index) in option.column">-->
<!-- &lt;!&ndash; table字段 &ndash;&gt;-->
<!-- <el-table-column v-if="item.hide!==true"-->
<!-- :prop="item.prop"-->
<!-- :label="item.label"-->
<!-- :width="item.width"-->
<!-- :key="index">-->
<!-- </el-table-column>-->
<!-- </template>-->
<!-- &lt;!&ndash; 操作栏模块 &ndash;&gt;-->
<!-- <el-table-column prop="menu" label="操作" :width="220" align="center">-->
<!-- <template #="{row}">-->
<!--&lt;!&ndash; <el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>&ndash;&gt;-->
<!-- <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看</el-button>-->
<!-- <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看地图</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
</el-row>
<!-- <el-table ref="table" v-loading="loading"-->
<!-- @selection-change="selectionChange"-->
<!-- :data="data"-->
<!-- :height="height"-->
<!-- style="width: 100%"-->
<!-- :border="option.border">-->
<!--&lt;!&ndash; <el-table-column type="selection" v-if="option.selection" width="55" align="center"></el-table-column>&ndash;&gt;-->
<!-- <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column>-->
<!--&lt;!&ndash; <el-table-column v-if="option.index" label="#" type="index" width="50" align="center">&ndash;&gt;-->
<!--&lt;!&ndash; </el-table-column>&ndash;&gt;-->
<!-- <template v-for="(item,index) in option.column">-->
<!-- &lt;!&ndash; table字段 &ndash;&gt;-->
<!-- <el-table-column v-if="item.hide!==true"-->
<!-- :prop="item.prop"-->
<!-- :label="item.label"-->
<!-- :width="item.width"-->
<!-- :key="index">-->
<!-- </el-table-column>-->
<!-- </template>-->
<!-- &lt;!&ndash; 操作栏模块 &ndash;&gt;-->
<!-- <el-table-column prop="menu" label="操作" :width="220" align="center">-->
<!-- <template #="{row}">-->
<!--&lt;!&ndash; <el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>&ndash;&gt;-->
<!-- <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看</el-button>-->
<!-- <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看地图</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
</el-row>
</div>
<el-row class='el-fy'>
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
@ -473,7 +465,7 @@ export default {
form: {},
//
selectionList: [],
activeName:'first',
activeName: 'first',
columnList: [
{
prop: 'serialNumber',
@ -516,17 +508,17 @@ export default {
fixed: false,
sortable: true,
},
// {
// prop: 'kind',
// label: '',
// type: 3,
// values: '',
// width: '180',
// checkarr: [],
// fixed: false,
// sortable: true,
// hide:true,
// },
{
prop: 'clineName',
label: '客户名称',
type: 2,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
hide:true,
},
{
prop: 'kindName',
label: '配送种类',
@ -617,6 +609,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -627,6 +620,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -637,6 +631,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -647,6 +642,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -657,6 +653,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -667,6 +664,7 @@ export default {
width: '150',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -677,6 +675,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -687,6 +686,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -840,7 +840,6 @@ export default {
console.log('tab------------------>', tab.props.name);
this.query = {};
switch (tab.props.name) {
case 'first':
break;
case 'second':
@ -1371,7 +1370,7 @@ export default {
width: fit-content;
justify-content: space-between;
}
:deep(.el-row){
:deep(.el-row) {
flex-direction: column;
flex-wrap: nowrap;
}
@ -1466,13 +1465,13 @@ export default {
.el-fy {
height: 30px;
display: flex;
align-items: flex-end;
align-items: flex-end;
justify-content: flex-end;
}
:deep(.maboxhi){
height:100%!important;
}
.el_tabBK{
height:70%;
}
// :deep(.maboxhi) {
// height: 100% !important;
// }
// .el_tabBK {
// // height: 70%;
// }
</style>

298
src/views/distribution/deliverylist/distributionDeliveryListedt.vue

@ -134,7 +134,7 @@
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@inputTxt="inputscClient"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@ -197,11 +197,7 @@
:columnList="ordoptioncolumn"
:tableData="orddata"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
@inputTxt="inputscOrder"
>
<template #default="slotProps"> </template>
</tablecmt>
@ -212,7 +208,7 @@
:columnList="wrapoptioncolumn"
:tableData="packdata"
:loading="loading"
@inputTxt="inputsc"
@inputTxt="inputscPackage"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@ -272,7 +268,7 @@
:columnList="inventoryoptioncolumn"
:tableData="inventorydata"
:loading="loading"
@inputTxt="inputsc"
@inputTxt="inputscInventory"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@ -624,6 +620,7 @@ import {
getWrapdetail,
getpackdetail,
getinventorydetail,
getClientDetail,
} from '@/api/distribution/distributionDeliveryList';
import { showOrderPackgeCode } from '@/api/distribution/distributionStockArticle';
import { showInventoryPackgeCode } from '@/api/distribution/distributionStockList';
@ -669,6 +666,17 @@ export default {
reservationId: null, //ID
windowHeight: null,
columnList: [
{
prop: 'trainNumber',
label: '配送车次号',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'reservationCode',
label: '预约单号',
@ -681,8 +689,8 @@ export default {
head: false,
},
{
prop: 'trainNumber',
label: '配送车次号',
prop: 'waybillNo',
label: '运单号',
type: 2,
values: '',
width: '150',
@ -725,7 +733,7 @@ export default {
{
prop: 'deliveryAddress',
label: '收货地址',
type: 3,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -767,7 +775,7 @@ export default {
{
prop: 'reservationStockListNum',
label: '计划库存品数',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -1093,8 +1101,8 @@ export default {
],
ordoptioncolumn: [
{
prop: 'orderCode',
label: '订单自编号',
prop: 'waybillNumber',
label: '运单号',
type: 2,
values: '',
width: '150',
@ -1104,8 +1112,19 @@ export default {
head: false,
},
{
prop: 'descriptionGoods',
label: '货物名称',
prop: 'serviceNumber',
label: '服务号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '订单自编号',
type: 2,
values: '',
width: '150',
@ -1114,6 +1133,17 @@ export default {
sortable: true,
head: false,
},
// {
// prop: 'descriptionGoods',
// label: '',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'materialName',
label: '物料名称',
@ -1128,7 +1158,7 @@ export default {
{
prop: 'totalNumber',
label: '包件总数',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1138,7 +1168,7 @@ export default {
{
prop: 'handQuantity',
label: '在库数量',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1148,7 +1178,7 @@ export default {
{
prop: 'deliveryNumber',
label: '计划数量',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1158,7 +1188,7 @@ export default {
{
prop: 'stockupNumber',
label: '已备数量',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1168,7 +1198,7 @@ export default {
{
prop: 'loadingNumber',
label: '装车数量',
type: 3,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -1211,7 +1241,7 @@ export default {
{
prop: 'consigneeUnit',
label: '收货单位',
type: 1,
type: 2,
values: '',
width: '180',
checkarr: [],
@ -1221,7 +1251,7 @@ export default {
{
prop: 'consigneePerson',
label: '运单收货人',
type: 1,
type: 2,
values: '',
width: '180',
checkarr: [],
@ -1231,7 +1261,7 @@ export default {
{
prop: 'consigneeAddress',
label: '运单收货地址',
type: 1,
type: 2,
values: '',
width: '180',
checkarr: [],
@ -1241,7 +1271,7 @@ export default {
{
prop: 'consigneeMobile',
label: '运单收货电话',
type: 1,
type: 2,
values: '',
width: '180',
checkarr: [],
@ -1251,7 +1281,7 @@ export default {
{
prop: 'customerName',
label: '终端收货人',
type: 1,
type: 2,
values: '',
width: '180',
checkarr: [],
@ -1261,7 +1291,7 @@ export default {
{
prop: 'customerAddress',
label: '终端收货地址',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -1271,7 +1301,7 @@ export default {
{
prop: 'customerTelephone',
label: '终端收货电话',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -1359,7 +1389,7 @@ export default {
{
prop: 'sendWarehouseName',
label: '发站仓',
type: 3,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -1377,32 +1407,31 @@ export default {
sortable: true,
head: false,
},
{
prop: 'fahuoTime',
label: '发货时间',
prop: 'trainNumber',
label: '入库车次',
type: 2,
values: '',
width: '150',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'warehouseEntryTimeEnd',
label: '入库时间',
prop: 'firsts',
label: '一级品类',
type: 2,
values: '',
width: '150',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'trainNumber',
label: '入库车次',
type: 1,
prop: 'second',
label: '二级品类',
type: 2,
values: '',
width: '180',
checkarr: [],
@ -1410,9 +1439,9 @@ export default {
sortable: true,
},
{
prop: 'firsts',
label: '级品类',
type: 1,
prop: 'thirdProduct',
label: '级品类',
type: 2,
values: '',
width: '180',
checkarr: [],
@ -1420,24 +1449,26 @@ export default {
sortable: true,
},
{
prop: 'second',
label: '二级品类',
prop: 'fahuoTime',
label: '发货时间',
type: 1,
values: '',
width: '180',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'thirdProduct',
label: '三级品类',
prop: 'warehouseEntryTimeEnd',
label: '入库时间',
type: 1,
values: '',
width: '180',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderPackageStatusName',
@ -1517,7 +1548,7 @@ export default {
{
prop: 'quantity',
label: '包件数量',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1528,7 +1559,7 @@ export default {
{
prop: 'reservationNum',
label: '计划数量',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1538,7 +1569,7 @@ export default {
{
prop: 'loadingNub',
label: '装车数量',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1548,7 +1579,7 @@ export default {
{
prop: 'signingNub',
label: '签收数量',
type: 2,
type: 1,
values: '',
width: '180',
checkarr: [],
@ -1633,17 +1664,17 @@ export default {
sortable: true,
head: false,
},
{
prop: 'serviceNumber',
label: '服务号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'serviceNumber',
// label: '',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'marketName',
label: '商场名称',
@ -1921,6 +1952,10 @@ export default {
dialogFormCustomer: false,
//
query: {},
orderQuery: {},
clientQuery: {},
inventoryQuery: {},
packageQuery: {},
formCustomer: {},
formCustomerRolus: {
consignee: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
@ -2852,17 +2887,31 @@ export default {
let tabName = tab.paneName;
switch (tabName) {
case 'tab1':
//
this.handleClient(this.page);
console.log('ssss');
break;
case 'tab2':
//
this.handleOrder(this.page);
console.log('ssss');
break;
case 'tab3':
//
this.handlePackage(this.page);
console.log('ssss');
break;
case 'tab4':
//
this.handleInventory(this.page);
console.log('ssss');
break;
default:
this.clientQuery = {};
this.orderQuery = {};
this.packageQuery = {};
this.inventoryQuery = {};
break;
}
},
searchHide() {
@ -2878,6 +2927,36 @@ export default {
},
inputsc() {},
inputscOrder(index, row) {
console.log('index', index);
console.log('row', row);
this.orderQuery[row.prop] = index;
if (!index) delete this.orderQuery[row.prop];
this.handleOrder(this.page);
},
inputscPackage(index, row) {
console.log('index', index);
console.log('row', row);
this.packageQuery[row.prop] = index;
if (!index) delete this.packageQuery[row.prop];
this.handlePackage(this.page);
},
inputscClient(index, row) {
console.log('index', index);
console.log('row', row);
this.clientQuery[row.prop] = index;
if (!index) delete this.clientQuery[row.prop];
this.handleClient(this.page);
},
inputscInventory(index, row) {
console.log('index', index);
console.log('row', row);
this.inventoryQuery[row.prop] = index;
if (!index) delete this.inventoryQuery[row.prop];
this.handleInventory(this.page);
},
timesc() {},
btnsc() {},
selectsc() {},
@ -3074,17 +3153,21 @@ export default {
console.log(row, '准备提交的参数');
this.TCloading = true; //
this.signBox = false;
getOneclickq(row).then(res => {
if (res.data.code == 200) {
getOneclickq(row)
.then(res => {
if (res.data.code == 200) {
this.TCloading = false; //
ElMessage({
message: '操作成功',
type: 'success',
});
} else {
ElMessage.error('操作失败');
}
})
.catch(() => {
this.TCloading = false; //
ElMessage({
message: '操作成功',
type: 'success',
});
} else {
ElMessage.error('操作失败');
}
});
});
//
//
@ -3154,23 +3237,40 @@ export default {
this.ord = false;
this.inventory = false;
},
//
handleOrder(page) {
//
handleClient(page) {
let params = {};
console.log();
params.deliveryId = this.deliverydata.id;
getorddetail(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
getClientDetail(
page.currentPage,
page.pageSize,
Object.assign(params, this.clientQuery)
).then(res => {
console.log('查看>>>>>订单>>', res.data.data);
const data = res.data.data;
this.orddata = data.records;
this.data = data.records;
this.ordpage.total = data.total;
});
},
//
handleOrder(page) {
let params = {};
params.deliveryId = this.deliverydata.id;
getorddetail(page.currentPage, page.pageSize, Object.assign(params, this.orderQuery)).then(
res => {
console.log('查看>>>>>订单>>', res.data.data);
const data = res.data.data;
this.orddata = data.records;
this.ordpage.total = data.total;
}
);
},
//
handlePackage(page) {
let params = {};
params.deliveryId = this.deliverydata.id;
getpackdetail(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
getpackdetail(page.currentPage, page.pageSize, Object.assign(params, this.packageQuery)).then(
res => {
console.log('查看>>>>>包间>>', res.data.data);
const data = res.data.data;
@ -3183,14 +3283,16 @@ export default {
handleInventory(page) {
let params = {};
params.deliveryId = this.deliverydata.id;
getinventorydetail(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
res => {
console.log('查看>>>>>库存>>', res.data.data);
const data = res.data.data;
this.inventorydata = data;
// this.inventorypage.total = data.total;
}
);
getinventorydetail(
page.currentPage,
page.pageSize,
Object.assign(params, this.inventoryQuery)
).then(res => {
console.log('查看>>>>>库存>>', res.data.data);
const data = res.data.data;
this.inventorydata = data;
// this.inventorypage.total = data.total;
});
},
handleAdd() {
this.title = '新增';
@ -3421,16 +3523,16 @@ export default {
this.deliverydata.deliveryNumber = packNum;
this.deliverydata.inventoryNub = invenNum;
this.deliverydata.signingNumber = signNum;
console.log('---------------------------->a', a);
console.log('---------------------------->packNum', packNum);
console.log('---------------------------->invenNum', invenNum);
console.log('---------------------------->signNum', signNum);
this.handleOrder(this.packpage);
this.handlePackage(this.packpage);
console.log('--------->deliveryType', this.deliverydata);
if (this.deliverydata.deliveryType !== '商配') {
this.handleInventory(this.packpage);
}
// console.log('---------------------------->a', a);
// console.log('---------------------------->packNum', packNum);
// console.log('---------------------------->invenNum', invenNum);
// console.log('---------------------------->signNum', signNum);
// this.handleOrder(this.packpage);
// this.handlePackage(this.packpage);
// console.log('--------->deliveryType', this.deliverydata);
// if (this.deliverydata.deliveryType !== '') {
// this.handleInventory(this.packpage);
// }
});
this.loading = false;

2860
src/views/distribution/deliverylist/distributionDeliveryListmar.vue

File diff suppressed because it is too large Load Diff

104
src/views/distribution/inventory/CreateOrder.vue

@ -684,7 +684,11 @@
</el-form-item>
<div class="flex-c-c">
<el-button type="primary" icon="Position" @click="handleSubmit(ruleFormRef)"
<el-button
type="primary"
:loading="details.loadingObj.submitLoadingBtn"
icon="Position"
@click="handleSubmit(ruleFormRef)"
>提交</el-button
>
<el-button type="primary" icon="Refresh" @click="handleRefresh">重置</el-button>
@ -1224,6 +1228,8 @@ const details = reactive<any>({
stowageLoading: false,
/** 收货方 */
consignerLoading: false,
/** 提交按钮 */
submitLoadingBtn: false,
},
/** 列表复选框选中的数据 */
selectionList: [],
@ -1648,54 +1654,64 @@ const handleSubmit = (formEl: FormInstance | undefined) => {
if (!formEl) return;
formEl.validate(async valid => {
if (valid) {
//
const _flag = details.goodsList.every(val => {
console.log('val :>> ', val);
if (!val.goodsName || !isNumer(val.num) || val.num === 0) return false;
return true;
});
if (!_flag) {
return ElMessage({
type: 'warning',
message: '请填写正确的货物名称和件数',
try {
// loading
details.loadingObj.submitLoadingBtn = true;
//
const _flag = details.goodsList.every(val => {
console.log('val :>> ', val);
if (!val.goodsName || !isNumer(val.num) || val.num === 0) return false;
return true;
});
}
console.log('submit!');
const submitData = {
...details.query,
waybillDetailList: details.goodsList,
advanceIds: info.value.advanceIds,
...details.totalObj,
huilaiPay: 1,
};
if (!_flag) {
return ElMessage({
type: 'warning',
message: '请填写正确的货物名称和件数',
});
}
const { destination } = submitData;
console.log('submit!');
const submitData = {
...details.query,
waybillDetailList: details.goodsList,
advanceIds: info.value.advanceIds,
...details.totalObj,
huilaiPay: 1,
};
if (destination.length === 1) {
return ElMessage({ message: '请选择正确到站地址', type: 'warning' });
}
//
const _findeLocation = details.regionOptione
.find(val => val.value === destination[0])
.children.find(val => val.value === destination[1]);
if (destination.length === 2) {
submitData.destination = _findeLocation.label;
} else {
submitData.destination = _findeLocation.children.find(
val => val.value === destination[2]
).label;
const { destination } = submitData;
if (destination.length === 1) {
return ElMessage({ message: '请选择正确到站地址', type: 'warning' });
}
//
const _findeLocation = details.regionOptione
.find(val => val.value === destination[0])
.children.find(val => val.value === destination[1]);
if (destination.length === 2) {
submitData.destination = _findeLocation.label;
} else {
submitData.destination = _findeLocation.children.find(
val => val.value === destination[2]
).label;
}
submitData.goodsName = submitData.waybillDetailList.map(val => val.goodsName).join(',');
submitData.waybillType = 1;
if (typeof submitData.receipt === 'object')
submitData.receipt = submitData.receipt.join(',');
console.log('submitData :>> ', submitData);
const res = await postOpenOrderOpenWaybill(submitData);
const { code } = res.data;
if (code !== 200) return;
back();
console.log('res :>> ', res);
} catch (error) {
console.log('error :>> ', error);
} finally {
details.loadingObj.submitLoadingBtn = false;
}
submitData.goodsName = submitData.waybillDetailList.map(val => val.goodsName).join(',');
submitData.waybillType = 1;
if (typeof submitData.receipt === 'object') submitData.receipt = submitData.receipt.join(',');
console.log('submitData :>> ', submitData);
const res = await postOpenOrderOpenWaybill(submitData);
const { code } = res.data;
if (code !== 200) return;
back();
console.log('res :>> ', res);
} else {
console.log('error submit!');
return false;

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

@ -180,7 +180,8 @@
type="primary"
text
icon="el-icon-edit"
@click="handleCallDeliveryOwn(slotProps.scope)">
@click="handleCallDeliveryOwn(slotProps.scope)"
>
修改客户信息
</el-text>
</template>
@ -622,6 +623,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -632,6 +634,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -642,6 +645,7 @@ export default {
width: '200',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -652,6 +656,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -663,6 +668,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'transferQuantity',
@ -672,6 +678,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -682,6 +689,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -1860,7 +1868,6 @@ export default {
flex-direction: column;
}
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
}

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

@ -14,8 +14,16 @@
</el-form-item>
<el-form-item label="入库时间:" class="el-times">
<!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>-->
<el-date-picker v-model="stockupDate" type="datetimerange" unlink-panels range-separator=""
start-placeholder="开始时间" end-placeholder="结束时间" :shortcuts="shortcuts" :default-time="defaultTime2" />
<el-date-picker
v-model="stockupDate"
type="datetimerange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
:default-time="defaultTime2"
/>
</el-form-item>
<!-- <el-form-item label="货物名称:">-->
<!-- <el-input v-model="query.descriptionGoods" placeholder="请输入货物名称"></el-input>-->
@ -67,14 +75,28 @@
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" icon="el-icon-plus" @click="handleAdd" v-if="handler">创建异常</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd" v-if="handler"
>创建异常</el-button
>
<!-- <el-button type="danger" icon="el-icon-delete" @click="handleMoke" v-if = "handler">转预约单</el-button>-->
<!-- <el-button type="primary" icon="el-icon-plus" @click="handleStockList" v-if = "handler">批量加配转库存品</el-button>-->
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('3')"
v-if="handler">修改客户信息</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('2')"
v-if="handler">修改服务类型</el-button>
<el-button type="danger" icon="el-icon-plus" @click="handleExport" plain> </el-button>
<el-button
type="danger"
icon="el-icon-delete"
@click="handleCallDelivery('3')"
v-if="handler"
>修改客户信息</el-button
>
<el-button
type="danger"
icon="el-icon-delete"
@click="handleCallDelivery('2')"
v-if="handler"
>修改服务类型</el-button
>
<el-button type="danger" icon="el-icon-plus" @click="handleExport" plain
> </el-button
>
</div>
<!-- <div class="avue-crud__left">
<el-button type="primary" icon="el-icon-plus" @click="handlebill" v-if = "!handler">创建提货单</el-button>
@ -91,22 +113,45 @@
</el-row>
<el-row>
<!-- 列表模块 -->
<tablecmt :columnList="columnList" :tableData="data" :loading="loading" @inputTxt="inputsc" @timeCheck="timesc"
@btnCheck="btnsc" @selectCheck="selectsc" @selection="selectionChange">
<tablecmt
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<el-text type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-text>
<el-text type="primary" text icon="el-icon-edit"
@click="handleCallDeliveryOwn(slotProps.scope)">修改客户信息</el-text>
<el-text type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)"
>查看</el-text
>
<el-text
type="primary"
text
icon="el-icon-edit"
@click="handleCallDeliveryOwn(slotProps.scope)"
>修改客户信息</el-text
>
</template>
</tablecmt>
</el-row>
<el-row class='el-fy'>
<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
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>
@ -122,7 +167,12 @@
<el-input v-model="formCall.waybill" autocomplete="off" />
</el-form-item>
<el-form-item label="跟进记录" :label-width="formLabelWidth">
<el-input v-model="formCall.followUpRecord" :rows="2" type="textarea" placeholder="请填写内容" />
<el-input
v-model="formCall.followUpRecord"
:rows="2"
type="textarea"
placeholder="请填写内容"
/>
</el-form-item>
<el-form-item label="历史跟进" :label-width="formLabelWidth"> </el-form-item>
</el-form>
@ -139,8 +189,12 @@
<el-form-item label="服务类型" :label-width="formLabelWidth">
<!-- <el-input v-model="formService.typeService" autocomplete="off" />-->
<el-select v-model="formService.typeService" clearable placeholder="请选择服务类型">
<el-option v-for="item in distributionType" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey">
<el-option
v-for="item in distributionType"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
>
</el-option>
</el-select>
</el-form-item>
@ -148,7 +202,12 @@
<el-input v-model="formService.cost" autocomplete="off" />
</el-form-item>
<el-form-item label="原因" :label-width="formLabelWidth">
<el-input v-model="formService.cause" :rows="2" type="textarea" placeholder="请填写原因" />
<el-input
v-model="formService.cause"
:rows="2"
type="textarea"
placeholder="请填写原因"
/>
</el-form-item>
</el-form>
<template #footer>
@ -168,7 +227,12 @@
<el-input v-model="formCustomer.phone" autocomplete="off" />
</el-form-item>
<el-form-item label="地址" :label-width="formLabelWidth">
<el-input v-model="formCustomer.address" :rows="2" type="textarea" placeholder="请填写地址" />
<el-input
v-model="formCustomer.address"
:rows="2"
type="textarea"
placeholder="请填写地址"
/>
</el-form-item>
</el-form>
<template #footer>
@ -180,7 +244,13 @@
</template>
</el-dialog>
<!-- 表单模块 -->
<el-dialog :title="title" v-model="box" width="50%" :before-close="beforeClose" append-to-body>
<el-dialog
:title="title"
v-model="box"
width="50%"
:before-close="beforeClose"
append-to-body
>
<el-form :disabled="view" ref="form" :model="form" label-width="80px">
<!-- 表单字段 -->
<el-form-item label="服务号" prop="serviceNumber">
@ -200,8 +270,13 @@
</el-form-item>
<el-form-item label="入库时间" prop="warehouseEntryTime">
<!-- <el-input v-model="form.warehouseEntryTime" placeholder="请输入入库时间"/>-->
<el-date-picker v-model="form.warehouseEntryTime" type="datetime" placeholder="请输入入库时间"
format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
<el-date-picker
v-model="form.warehouseEntryTime"
type="datetime"
placeholder="请输入入库时间"
format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss"
/>
</el-form-item>
<el-form-item label="在库时长" prop="storeTime">
<el-input v-model="form.storeTime" placeholder="请输入在库时长" />
@ -277,14 +352,21 @@
<!-- 表单按钮 -->
<template #footer>
<span v-if="!view" class="dialog-footer">
<el-button type="primary" icon="el-icon-circle-check" @click="handleSubmit"> </el-button>
<el-button type="primary" icon="el-icon-circle-check" @click="handleSubmit"
> </el-button
>
<el-button icon="el-icon-circle-close" @click="box = false"> </el-button>
</span>
</template>
</el-dialog>
</div>
</basic-container>
<edittablehead @setcolum="setnewcolum" @closce="showdrawer" :drawerShow="drawerShow" :columnList="columnList">
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="columnList"
>
</edittablehead>
</template>
@ -443,6 +525,7 @@ export default {
width: '160',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -453,6 +536,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -463,6 +547,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -473,6 +558,7 @@ export default {
width: '160',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -484,6 +570,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'deliveryQuantity',
@ -494,6 +581,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'transferQuantity',
@ -503,6 +591,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -513,6 +602,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{

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

@ -442,7 +442,7 @@ export default {
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '订单自编号',
@ -521,6 +521,7 @@ export default {
width: '200',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -551,6 +552,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -561,6 +563,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -571,6 +574,7 @@ export default {
width: '200',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -581,6 +585,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -591,6 +596,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -601,6 +607,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -611,6 +618,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -1698,7 +1706,6 @@ export default {
flex-direction: column;
}
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
}

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

@ -144,7 +144,7 @@
</template>
</tablecmt>
</el-row>
<el-row class='el-fy'>
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
@ -537,7 +537,7 @@ export default {
checkarr: [],
fixed: true,
},
{
prop: 'waybillNumber',
label: '运单号',
@ -650,6 +650,7 @@ export default {
width: '160',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -680,6 +681,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -690,6 +692,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -700,6 +703,7 @@ export default {
width: '160',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -710,6 +714,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -720,6 +725,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -730,6 +736,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -740,6 +747,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -2004,6 +2012,6 @@ export default {
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
align-items: flex-end;
}
</style>

7
src/views/distribution/inventory/distributionStockListDetails.vue

@ -31,12 +31,13 @@
<el-row>
<el-col :span="10">
<el-form-item label="货物单位:">
<span>{{ queryOwn.cargoUnit }}</span>
<span>{{ queryOwn.cargoUnit || '无'}}</span>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="门店地址:">
<span>{{ !queryOwn.storeName ? '无' : queryOwn.storeName }}</span>
<!-- <span>{{ queryOwn?:!queryOwn.storeName ? !queryOwn: '无' : queryOwn.storeName }}</span> -->
<span>{{ queryOwn.storeNam||'无'}}</span>
</el-form-item>
</el-col>
</el-row>
@ -929,7 +930,7 @@ export default {
// });
let a = await getList(page.currentPage, page.pageSize, Object.assign(params, this.query));
console.log('aaaa', a.data.data.records);
this.queryOwn = a.data.data.records[0];
this.queryOwn = a.data.data.records[0] || {};
if (!this.queryOwn.pid) {
console.log('11111111111');
//

227
src/views/distribution/inventory/distrilbutionBillLadingList.vue

@ -70,7 +70,6 @@
</el-button>
<el-button type="primary" @click="printBatchOrder">批量打印</el-button>
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
@ -116,7 +115,7 @@
type="primary"
text
icon="el-icon-edit"
@click="handleEdits(slotProps.scope,'1')"
@click="handleEdits(slotProps.scope, '1')"
v-if="
permission.distrilbutionBillLadingList_edit && slotProps.scope.row.conditions < 20
"
@ -126,16 +125,15 @@
type="primary"
text
icon="el-icon-edit"
@click="handleEdits(slotProps.scope,'2')"
@click="handleEdits(slotProps.scope, '2')"
v-if="
permission.distrilbutionBillLadingList_edit && slotProps.scope.row.conditions > 20
permission.distrilbutionBillLadingList_edit && slotProps.scope.row.conditions >= 20
"
>上传签收图片</el-text
>
<!-- <el-button size="small" type="danger" icon="el-icon-edit" text @click="handleDeleteOwn(slotProps.scope)">删除</el-button>-->
<el-text size="small" text
@click="handlePreview(slotProps.scope.row)">打印</el-text>
<el-text size="small" text @click="handlePreview(slotProps.scope.row)">打印</el-text>
</template>
</tablecmt>
</el-row>
@ -205,20 +203,10 @@
</template>
</el-dialog>
<!-- 打印模块 -->
<el-dialog title="二维码" :visible.sync="isShow" width="70%" v-model="isShow">
<!-- 打印模块 -->
<el-dialog title="二维码" :visible.sync="isShow" width="70%" v-model="isShow">
<div>
<div v-html="html"></div>
<!-- <div v-for="(item,index) in qrCodeObj">
<el-row>
<el-col :span="24" >
<el-image width="10" height="10" w-full :key="index" :src="item " alt="Preview Image"/>
</el-col>
</el-row>
</div> -->
</div>
<span slot="footer" class="dialog-footer">
<!-- <el-button type="primary" @click="ddd"> </el-button>-->
@ -227,160 +215,7 @@
<el-button @click="isShow = false"> </el-button>
</span>
</el-dialog>
</div>
<!-- <div class="avue-crud" :style="`height:`+ height ">
<el-form :disabled="view" ref="form" :model="form" label-width="80px">
&lt;!&ndash; 表单字段 &ndash;&gt;
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="提货时间" prop="pickUpTime">
&lt;!&ndash; <el-input v-model="form.pickUpTime" placeholder="请输入提货时间"/>&ndash;&gt;
<el-date-picker
v-model="form.pickUpTime"
type="datetime"
placeholder="请输入提货时间"
format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss"
/>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="提货人" prop="consignee">
<el-input v-model="form.consignee" placeholder="请输入提货人"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="提货车牌" prop="pickUpPlate">
<el-input v-model="form.pickUpPlate" placeholder="请输入提货车牌"/>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="提货证件" prop="deliveryDocument">
<el-input v-model="form.deliveryDocument" placeholder="请输入提货证件"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="证件类型" prop="certificateType">
<el-select v-model="form.certificateType" clearable placeholder="请选择证件类型">
<el-option
v-for="item in certificateType"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="费用" prop="certificateType">
<el-checkbox-group v-model="form.freightMark" @change="handleCheckedCitiesChange">
<el-checkbox style="width: 18%;margin-bottom: 3%"
v-for="(item,index) in clientType"
:key="item.dictKey"
:label="item.dictKey"
>{{item.dictValue}}
<el-input type="number" v-model="item.remark" placeholder="请输入费用" :disabled = "this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event,index)" style="width: 70%"/>
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="费用合计" prop="totalCost">
<el-input v-model="form.totalCost" placeholder="请输入费用合计"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="物品明细" prop="certificateType">
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="提货证件" prop="totalCost" label-width ='120px'>
<el-upload
v-model:file-list="fileList"
class="upload-demo"
:action="action"
:headers="headers"
multiple
:on-preview="handlePreview"
:on-remove="handleRemove"
list-type="picture"
>
<el-button type="primary">上传</el-button>
<template #tip>
<div class="el-upload__tip">
只能上传jpg/png文件且不超过500kb
</div>
</template>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="文员确定图片" prop="totalCost" label-width ='120px'>
<el-upload
v-model:file-list="fileList"
class="upload-demo"
action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
:on-preview="handlePreview"
:on-remove="handleRemove"
list-type="picture"
>
<el-button type="primary">上传</el-button>
<template #tip>
<div class="el-upload__tip">
只能上传jpg/png文件且不超过500kb
</div>
</template>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="库管签收图片" prop="totalCost" label-width ='120px'>
<el-upload
v-model:file-list="fileList"
class="upload-demo"
action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
:on-preview="handlePreview"
:on-remove="handleRemove"
list-type="picture"
>
<el-button type="primary">上传</el-button>
<template #tip>
<div class="el-upload__tip">
只能上传jpg/png文件且不超过500kb
</div>
</template>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
&lt;!&ndash; 表单按钮 &ndash;&gt;
<div class="foot" v-if="!view" >
<div class="dialog-footer" >
<el-button type="primary" icon="el-icon-circle-check" @click="handleSubmit('form')"> </el-button>
&lt;!&ndash; <el-button icon="el-icon-circle-close" @click="box = false"> </el-button>&ndash;&gt;
</div>
</div>
</div>-->
</basic-container>
<edittablehead
@setcolum="setnewcolum"
@ -403,9 +238,7 @@ import {
getListOwnNUm,
getBillLadingExport,
} from '@/api/distribution/distrilbutionBillLading';
import {
printBatch,
} from '@/api/distribution/distributionDeliveryList';
import { printBatch } from '@/api/distribution/distributionDeliveryList';
import print from '@/utils/print';
import option from '@/option/distribution/distrilbutionBillLading';
import { mapGetters } from 'vuex';
@ -517,6 +350,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -527,6 +361,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -537,6 +372,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -547,6 +383,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -557,6 +394,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
// {
@ -577,6 +415,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -587,6 +426,7 @@ export default {
width: '140',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -674,6 +514,7 @@ export default {
label: '费用合计',
type: 1,
values: '',
isshowSummary: true,
width: '140',
checkarr: [],
fixed: false,
@ -696,8 +537,8 @@ export default {
height: 0,
//
title: '',
//
html: '',
//
html: '',
//
isShow: false,
//
@ -970,7 +811,7 @@ export default {
}
}
},
printTemplate(){
printTemplate() {
// var nodev =document.querySelectorAll('.el-dialog__body');
print();
},
@ -1072,9 +913,8 @@ export default {
});
},
//
async handlePreview(row){
async handlePreview(row) {
console.log('row :>> ', row);
this.html = '';
const res = await printBatch({ ids: row.id, type: 3 });
@ -1089,12 +929,11 @@ export default {
});
this.isShow = true;
}
},
/**
/**
* 批量打印
*/
async printBatchOrder() {
async printBatchOrder() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
@ -1114,17 +953,16 @@ export default {
}
},
handleEdits(row,index) {
let name ;
let type ;
if(index === '1' ){
name = '编辑提货单'
type = "2";
}else{
name = "上传签收图片";
type = "4";
}
handleEdits(row, index) {
let name;
let type;
if (index === '1') {
name = '编辑提货单';
type = '2';
} else {
name = '上传签收图片';
type = '4';
}
this.$router.push({
path: '/distribution/inventory/distrilbutionBillLading',
query: {
@ -1236,7 +1074,7 @@ export default {
this.stopNum = !res.data.data.stopNum ? 0 : res.data.data.stopNum;
this.signedFor = parseInt(res.data.data.signedFor); //
this.sumTotal = parseInt(res.data.data.sumTotal); //
console.log(",.,.已签收",this.signedFor,"全部",this.sumTotal);
console.log(',.,.已签收', this.signedFor, '全部', this.sumTotal);
}
});
getListOwn(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
@ -1363,7 +1201,6 @@ export default {
}
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
}

1
src/views/distribution/reservation/atlas.vue

@ -119,6 +119,7 @@ function checkgoto() {
name: '市配计划',
},
});
useStores.commit('DEL_TAG_CURRENT');
}
function init(data) {
// maplabel()

4
src/views/distribution/reservation/reservation.vue

@ -333,7 +333,6 @@ import {
patchPrintList,
reservationExport,
} from '@/api/distribution/distributionReservation';
import option from '@/option/distribution/distributionReservation';
import { mapGetters } from 'vuex';
import { getDictionaryBiz } from '@/api/system/dict';
import { addAssign, getListUser } from '@/api/distribution/distributionStockup';
@ -599,6 +598,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'reservationStockListNum',
@ -819,8 +819,6 @@ export default {
cancel: {},
//
selectionList: [],
//
option: option,
//
data: [],
/** 全部数据 */

439
src/views/distribution/reservation/reservationAddFrom.vue

@ -126,7 +126,7 @@
<el-tabs type="border-card" @tab-click="handleClick">
<el-tab-pane label="订单">
<el-button class="el-btn-xz" type="primary" link @click="handleAddOrder" > </el-button>
<el-button class="el-btn-xz" type="primary" link @click="handleAddOrder"> </el-button>
<tablecmt
:columnList="columnList"
:tableData="orderData"
@ -233,13 +233,20 @@
</tablecmt>
</el-tab-pane>
</el-tabs>
<el-form-item style="margin-left: 45%; margin-top: 5px">
<el-button type="primary" icon="el-icon-circle-close" @click="onSubmit"
<div class="submit-container">
<el-button
:loading="loadingObj.submitBtnLoading"
type="primary"
icon="el-icon-circle-close"
@click="onSubmit"
>提交(配送订单预约)
</el-button>
<el-button icon="el-icon-circle-close" @click="$router.go(-1)"> </el-button>
</el-form-item>
<el-button icon="el-icon-circle-close" @click="back"> </el-button>
</div>
<!-- 底部站位 -->
<div class="footer-container"></div>
<!-- 在库订单信息 -->
<template v-if="orderShow">
<el-dialog
@ -250,38 +257,38 @@
:model="addvalue"
>
<!-- :before-close="handleClose"-->
<!-- <el-form :inline="true" :model="query">-->
<!-- <el-form-item label="订单自编号:">-->
<!-- <el-input v-model="query.orderCode" placeholder="请输入订单自编号"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="商场名称:">-->
<!-- <el-input-->
<!-- v-model="query.mallName"-->
<!-- :disabled="Boolean(marketName)"-->
<!-- placeholder="请输入商场名称"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="货物名称:">-->
<!-- <el-input v-model="query.descriptionGoods" placeholder="请输入货物名称"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="品牌:">-->
<!-- <el-input v-model="query.brand" placeholder="请输入品牌"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="顾客姓名:">-->
<!-- <el-input v-model="query.customerName" placeholder="请输入顾客姓名"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="顾客电话:">-->
<!-- <el-input v-model="query.customerTelephone" placeholder="请输入顾客电话"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form :inline="true" :model="query">-->
<!-- <el-form-item label="订单自编号:">-->
<!-- <el-input v-model="query.orderCode" placeholder="请输入订单自编号"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="商场名称:">-->
<!-- <el-input-->
<!-- v-model="query.mallName"-->
<!-- :disabled="Boolean(marketName)"-->
<!-- placeholder="请输入商场名称"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="货物名称:">-->
<!-- <el-input v-model="query.descriptionGoods" placeholder="请输入货物名称"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="品牌:">-->
<!-- <el-input v-model="query.brand" placeholder="请输入品牌"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="顾客姓名:">-->
<!-- <el-input v-model="query.customerName" placeholder="请输入顾客姓名"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="顾客电话:">-->
<!-- <el-input v-model="query.customerTelephone" placeholder="请输入顾客电话"></el-input>-->
<!-- </el-form-item>-->
<!-- &lt;!&ndash; 查询按钮 &ndash;&gt;-->
<!-- <el-form-item>-->
<!-- <el-button type="primary" icon="el-icon-search" @click="searchStockArticle"-->
<!-- > -->
<!-- </el-button>-->
<!-- <el-button icon="el-icon-delete" @click="stockArticleSearchReset()"> </el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- &lt;!&ndash; 查询按钮 &ndash;&gt;-->
<!-- <el-form-item>-->
<!-- <el-button type="primary" icon="el-icon-search" @click="searchStockArticle"-->
<!-- > -->
<!-- </el-button>-->
<!-- <el-button icon="el-icon-delete" @click="stockArticleSearchReset()"> </el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<tablecmt
:columnList="stockArtcolumnList"
:tableData="stockArticleInfo"
@ -402,34 +409,34 @@
<template v-if="stockListShow">
<el-dialog v-model="stockListShow" class="stockListShow" title="库存品信息" width="100%">
<!-- :before-close="handleClose"-->
<!-- <el-form :inline="true" :model="query">-->
<!-- <el-form-item label="商场名称:">-->
<!-- <el-input-->
<!-- v-model="query.marketName"-->
<!-- :disabled="Boolean(marketName)"-->
<!-- placeholder="请输入商场名称"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料名称:">-->
<!-- <el-input v-model="query.descriptionGoods" placeholder="请输入物料名称"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="商场编码:">-->
<!-- <el-input v-model="query.marketCode" placeholder="请输入商场编码"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="订单自编号:">-->
<!-- <el-input v-model="query.orderCode" placeholder="请输入订单自编号"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="品牌:">-->
<!-- <el-input v-model="query.brand" placeholder="请输入品牌"></el-input>-->
<!-- </el-form-item>-->
<!-- &lt;!&ndash; 查询按钮 &ndash;&gt;-->
<!-- <el-form-item>-->
<!-- <el-button type="primary" icon="el-icon-search" @click="handleAddInventory"-->
<!-- > -->
<!-- </el-button>-->
<!-- <el-button icon="el-icon-delete" @click="stockListSearchReset()"> </el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <el-form :inline="true" :model="query">-->
<!-- <el-form-item label="商场名称:">-->
<!-- <el-input-->
<!-- v-model="query.marketName"-->
<!-- :disabled="Boolean(marketName)"-->
<!-- placeholder="请输入商场名称"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料名称:">-->
<!-- <el-input v-model="query.descriptionGoods" placeholder="请输入物料名称"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="商场编码:">-->
<!-- <el-input v-model="query.marketCode" placeholder="请输入商场编码"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="订单自编号:">-->
<!-- <el-input v-model="query.orderCode" placeholder="请输入订单自编号"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="品牌:">-->
<!-- <el-input v-model="query.brand" placeholder="请输入品牌"></el-input>-->
<!-- </el-form-item>-->
<!-- &lt;!&ndash; 查询按钮 &ndash;&gt;-->
<!-- <el-form-item>-->
<!-- <el-button type="primary" icon="el-icon-search" @click="handleAddInventory"-->
<!-- > -->
<!-- </el-button>-->
<!-- <el-button icon="el-icon-delete" @click="stockListSearchReset()"> </el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<tablecmt
:columnList="inventoryInfocolumnList"
:tableData="inventoryInfo"
@ -440,7 +447,7 @@
@selection="selectionInventoryChange"
ref="multipleTable"
>
<!-- @selection="selectionChange"-->
<!-- @selection="selectionChange"-->
<template #default="slotProps">
<el-text
@ -1010,7 +1017,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
head: false
head: false,
},
{
prop: 'cargoUnit',
@ -1541,7 +1548,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
head: false
head: false,
},
// {
@ -1922,6 +1929,11 @@ export default {
// ],
},
obj: {},
/** loading */
loadingObj: {
/** 提交按钮 */
submitBtnLoading: false,
},
};
},
created() {
@ -1981,7 +1993,7 @@ export default {
this.height = this.setPx(document.body.clientHeight - 340);
},
tableAllSelection() {},
handleClick(tab, event){
handleClick(tab, event) {
this.query = {};
},
//
@ -2018,10 +2030,10 @@ export default {
inventoryList.records.forEach(item => {
item.reservationNum = '0';
item.applyNum = item.quantityStock - item.quantityOccupied;
if (item.unpack){
item.unpackName = '是'
}else {
item.unpackName = '否'
if (item.unpack) {
item.unpackName = '是';
} else {
item.unpackName = '否';
}
});
this.page.total = inventoryList.total;
@ -2330,10 +2342,10 @@ export default {
const inventoryList = res.data.data;
inventoryList.records.forEach(item => {
item.reservationNum = '0';
if (item.unpack){
item.unpackName = '是'
}else {
item.unpackName = '否'
if (item.unpack) {
item.unpackName = '是';
} else {
item.unpackName = '否';
}
});
this.page.total = inventoryList.total;
@ -2369,105 +2381,121 @@ export default {
console.log('this.orderData------------>', this.orderData);
this.isaddvalue = false;
},
onSubmit() {
//
if (!this.form.reservationDate) {
this.$message({
type: 'warning',
message: '预约时间暂未选择',
back() {
this.$router.back();
this.$store.commit('DEL_TAG_CURRENT');
},
async onSubmit() {
try {
// loading
this.loadingObj.submitBtnLoading = true;
//
if (!this.form.reservationDate) {
this.$message({
type: 'warning',
message: '预约时间暂未选择',
});
return;
}
//
//
let orderIds = [];
let inventoryIds = [];
let inventoryList = [];
let stockArticleList = [];
let operation = true;
this.inventoryData.forEach(item => {
if (Number(item.reservationNum) === 0 || item.reservationNum > item.quantityStock) {
this.$message({
type: 'warning',
message: '存在无效的预约数量',
});
operation = false;
return;
}
item.reservationNum = item.reservationNum;
inventoryIds.push(item.id);
inventoryList.push(item);
});
return;
}
//
//
let orderIds = [];
let inventoryIds = [];
let inventoryList = [];
let stockArticleList = [];
let operation = true;
this.inventoryData.forEach(item => {
if (Number(item.reservationNum) === 0 || item.reservationNum > item.quantityStock) {
orderIds.join(',');
inventoryIds.join(',');
this.form.stockArticleIds = orderIds.toString();
this.form.inventoryIds = inventoryIds.toString();
this.form.inventoryList = inventoryList;
console.log('-------------->', this.orderData);
let order = this.orderData;
order.forEach(o => {
if (!o.packageListInfo) {
o.packageListInfo = o.packageList;
}
});
this.form.stockArticleList = order;
this.deliveryWayData.forEach(item => {
if (this.form.deliveryWay === item.dictValue) {
this.form.deliveryWay = item.dictKey;
}
});
this.deliveryTypeData.forEach(item => {
if (this.form.deliveryType === item.dictValue) {
this.form.deliveryType = item.dictKey;
}
});
this.periodOfTimeData.forEach(item => {
if (this.form.periodOfTime === item.dictValue) {
this.form.periodOfTime = item.dictKey;
}
});
this.form.serveType = this.serveType.sort().join(',');
//
this.orderData.forEach(item => {
console.log('-------------->item', item);
if (!item.packageListInfo) {
item.packageListInfo = item.parcelListVOS;
}
});
console.log('------------------->this.form.inventoryList', this.form.inventoryList);
console.log('------------------->this.form.stockArticleList', this.form.stockArticleList);
if (
JSON.stringify(this.form.inventoryList) === '[]' &&
JSON.stringify(this.form.stockArticleList) === '[]'
) {
this.$message({
type: 'warning',
message: '存在无效的预约数量',
message: '无效的预约计划!',
});
operation = false;
return;
}
item.reservationNum = item.reservationNum;
inventoryIds.push(item.id);
inventoryList.push(item);
});
orderIds.join(',');
inventoryIds.join(',');
this.form.stockArticleIds = orderIds.toString();
this.form.inventoryIds = inventoryIds.toString();
this.form.inventoryList = inventoryList;
console.log('-------------->', this.orderData);
let order = this.orderData;
order.forEach(o => {
if (!o.packageListInfo) {
o.packageListInfo = o.packageList;
}
});
this.form.stockArticleList = order;
this.deliveryWayData.forEach(item => {
if (this.form.deliveryWay === item.dictValue) {
this.form.deliveryWay = item.dictKey;
}
});
this.deliveryTypeData.forEach(item => {
if (this.form.deliveryType === item.dictValue) {
this.form.deliveryType = item.dictKey;
}
});
this.periodOfTimeData.forEach(item => {
if (this.form.periodOfTime === item.dictValue) {
this.form.periodOfTime = item.dictKey;
}
});
this.form.serveType = this.serveType.sort().join(',');
//
this.orderData.forEach(item => {
console.log('-------------->item', item);
if (!item.packageListInfo) {
item.packageListInfo = item.parcelListVOS;
}
});
console.log('------------------->this.form.inventoryList', this.form.inventoryList);
console.log('------------------->this.form.stockArticleList', this.form.stockArticleList);
if (
JSON.stringify(this.form.inventoryList) === '[]' &&
JSON.stringify(this.form.stockArticleList) === '[]'
) {
this.$message({
type: 'warning',
message: '无效的预约计划!',
});
operation = false;
return;
}
// this.form.stockArticleList = this.packageList;
console.log('>>>>>>>>', this.form);
if (this.reservationId) {
this.form.id = this.reservationId;
update(this.form).then(() => {
this.$router.go(-1);
// this.form.stockArticleList = this.packageList;
console.log('>>>>>>>>', this.form);
if (this.reservationId) {
this.form.id = this.reservationId;
const res = await update(this.form);
console.log('res :>> ', res);
if (res.data.code !== 200) return;
this.$message({
type: 'success',
message: '操作成功!',
});
});
} else {
this.form.reservationStatus = '20';
autonomouslySave(this.form).then(() => {
this.back();
} else {
this.form.reservationStatus = '20';
const res = await autonomouslySave(this.form);
console.log('res :>> ', res);
if (res.data.code !== 200) return;
this.$message({
type: 'success',
message: '操作成功!',
});
this.$router.go(-1);
});
this.back();
}
} catch (error) {
console.log('error :>> ', error);
} finally {
// loading
this.loadingObj.submitBtnLoading = false;
}
},
inputsc() {},
@ -2775,11 +2803,11 @@ export default {
}
if (
(item.customerName.trim() !== _name) ||
(item.customerAddress.trim() !== _address) ||
(item.customerTelephone.trim() !== _phone)
item.customerName.trim() !== _name ||
item.customerAddress.trim() !== _address ||
item.customerTelephone.trim() !== _phone
) {
console.log("123");
console.log('123');
this.$message.warning('请选择统一顾客订单!!!');
return false;
}
@ -2921,42 +2949,42 @@ export default {
},
async onLoadOrder(page, params = {}) {
try {
this.loading = true
this.loading = true;
this.query.typeService = 2;
this.query.genre = '1';
if (this.marketName) this.query.marketName = this.marketName;
if (this.orderData.length !== 0) {
this.query.orderIds = this.orderData.map(val => val.id).join(',');
}
console.log('--------------query>', this.query);
const res = await selectStockArticleInfoList(
page.currentPage,
page.pageSize,
Object.assign(params, this.query)
);
const { records, total } = res.data.data;
this.query.genre = '1';
if (this.marketName) this.query.marketName = this.marketName;
if (this.orderData.length !== 0) {
this.query.orderIds = this.orderData.map(val => val.id).join(',');
}
console.log('--------------query>', this.query);
const res = await selectStockArticleInfoList(
page.currentPage,
page.pageSize,
Object.assign(params, this.query)
);
const { records, total } = res.data.data;
this.stockArticleInfo = records;
console.log('this.stockArticleInfo :>> ', this.stockArticleInfo);
this.stockArticleInfo.forEach((item, index) => {
//
this.checkOrder(item, index);
this.page.total = total;
});
if (this.orderData.length !== 0) {
const ids = this.orderData.map(val => val.id);
this.stockArticleInfo = this.stockArticleInfo.filter(val => !ids.includes(val.id));
// this.orderSelectList = this.stockArticleInfo.filter(val => ids.includes(val.id));
console.log('orderSelectList :>> ', this.orderSelectList);
}
this.orderList = [];
return null;
this.stockArticleInfo = records;
console.log('this.stockArticleInfo :>> ', this.stockArticleInfo);
this.stockArticleInfo.forEach((item, index) => {
//
this.checkOrder(item, index);
this.page.total = total;
});
if (this.orderData.length !== 0) {
const ids = this.orderData.map(val => val.id);
this.stockArticleInfo = this.stockArticleInfo.filter(val => !ids.includes(val.id));
// this.orderSelectList = this.stockArticleInfo.filter(val => ids.includes(val.id));
console.log('orderSelectList :>> ', this.orderSelectList);
}
this.orderList = [];
return null;
} catch (error) {
console.log('error :>> ', error);
}finally{
this.loading = false
return null
}
} finally {
this.loading = false;
return null;
}
},
onLoad() {
@ -3028,7 +3056,8 @@ export default {
},
};
</script>
<style lang="scss">
<style lang="scss" scoped>
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
@ -3056,4 +3085,20 @@ input[type='number'] {
font-weight: bold;
width: 2000px;
}
//
.submit-container {
position: fixed;
bottom: 20px;
left: 0;
z-index: 999;
width: 100%;
text-align: center;
box-sizing: border-box;
}
//
.footer-container {
height: 60px;
}
</style>

9
src/views/distribution/signfor/distributionSignforedt.vue

@ -457,7 +457,9 @@
</el-tab-pane>
</template>
</el-tabs>
<span class="gx_num">勾选数量{{TcTemp.length}}</span>
</el-collapse-item>
</el-collapse>
<!-- 增值服务信息 -->
<el-collapse @change="ServiceChange" style="margin-top: 10px">
@ -729,6 +731,7 @@
<el-button @click="TCancellation">取消</el-button>
<el-button type="primary" @click="ConfirmSubmission"> 确认提交 </el-button>
</span>
</template>
</el-dialog>
</el-card>
@ -2072,6 +2075,7 @@ function InventoryList() {
}
//
const tabClick = val => {
TcTemp.value=[];//
switch (val.props.name) {
case '0':
console.log(data.value, 'datavalue');
@ -2392,4 +2396,9 @@ const ImgSuccessE = (response, uploadFile) => {
width: 100% !important;
height: 100% !important;
}
.gx_num{
font-size: 14px;
margin-top: 20px;
display: block;
}
</style>

428
src/views/distribution/signfor/distributionSignfortreat.vue

@ -38,30 +38,31 @@
<!-- <el-input v-model="query.querySigningStatus" placeholder="请选择签收状态"></el-input>-->
</el-form-item>
<el-form-item label="配送时间:">
<el-date-picker
v-model="query.taskTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
<el-date-picker
v-model="query.taskTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item label="装车时间:">
<el-date-picker
v-model="query.loadingTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
<el-date-picker
v-model="query.loadingTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
</div>
<!-- <el-form-item label="顾客姓名:">-->
<!-- <el-input v-model="query.customerName" placeholder="请输入服务类型"></el-input>-->
@ -155,27 +156,57 @@
@selection="selectionsc"
>
<template #default="slotProps">
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
<el-text
size="small"
v-if="slotProps.scope.row.isHaveAbnormalPackage === 2"
@click="viewAbnormalLoading(slotProps.scope)"
> </el-text
<template
v-if="
slotProps.scope.column.label === '配送件数' ||
'装车件数' ||
'签收数' ||
'未签收数' ||
'未装车件数'
"
>
<!-- v-if="
<el-text @click="InformationViewing(slotProps.scope)">
<!-- {{slotProps.scope.row.reservationNum}} -->
{{
slotProps.scope.column.label === '配送件数'
? slotProps.scope.row.reservationNum
: slotProps.scope.column.label === '装车件数'
? slotProps.scope.row.loadedNumber
: slotProps.scope.column.label === '签收件数'
? slotProps.scope.row.receivedQuantity
: slotProps.scope.column.label === '未签收件数'
? slotProps.scope.row.unreceivedQuantity
: slotProps.scope.column.label === '未装车件数'
? slotProps.scope.row.unloadedNumber
: ''
}}
</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
<el-text
size="small"
v-if="slotProps.scope.row.isHaveAbnormalPackage === 2"
@click="viewAbnormalLoading(slotProps.scope)"
> </el-text
>
<!-- v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
" -->
<el-text
v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
"
size="small"
@click="handleSign(slotProps.scope.row)"
> </el-text
>
<el-text
v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
"
size="small"
@click="handleSign(slotProps.scope.row)"
> </el-text
>
</template>
<!-- <el-button size="small" type="danger" @click="delectsolt(slotProps.scope)"-->
<!-- >Delete</el-button>-->
</template>
@ -481,6 +512,23 @@
<!-- </span>-->
<!-- </template>-->
</el-dialog>
<el-dialog :title="numberTitle" v-model="numberDetailDialogVisible" width="70%">
<tablecmt
:columnList="numberDetailColumnList"
:tableData="numberDetailData"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
</tablecmt>
<el-button @click="numberDetailDialogVisible = false"> </el-button>
<el-button type="primary" @click="numberDetailDialogVisible = false"> </el-button>
</el-dialog>
</template>
<script>
@ -495,6 +543,7 @@ import {
loadingAbnormalPackageListDetail,
loadingAbnormalPackageListAuditing,
getSignforExport,
numberDetail,
} from '@/api/distribution/distributionSignfor';
import { update as updatesign } from '@/api/distribution/distributionSignfor';
import option from '@/option/distribution/distributionSignfor';
@ -520,6 +569,8 @@ export default {
dialogVisibleC: false,
dialogVisibleD: false,
dialogVisibleE: false,
numberDetailDialogVisible: false,
numberTitle: '',
TcForm: {}, //
//
DoorstepPhoto: [],
@ -533,31 +584,35 @@ export default {
SignForPhotos: [],
reservationId: null, //ID,
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
shortcuts: [
{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
},
},
{
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
},
},
{
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
},
},
],
},
columnList: [
{
@ -797,50 +852,56 @@ export default {
{
prop: 'reservationNum',
label: '配送件数',
type: 1,
type: 6,
values: '',
width: '130',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
head: false,
},
{
prop: 'loadedNumber',
label: '装车件数',
type: 1,
type: 6,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
prop: 'unloadedNumber',
label: '未装车件数',
type: 1,
type: 6,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
prop: 'receivedQuantity',
label: '签收件数',
type: 1,
type: 6,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
prop: 'unreceivedQuantity',
label: '未签收件数',
type: 1,
type: 6,
values: '',
width: '130',
checkarr: [],
isshowSummary: true,
fixed: false,
sortable: true,
},
@ -895,6 +956,195 @@ export default {
},
// ...
],
numberDetailColumnList: [
// {
// prop: '',
// label: '',
// type: 0,
// values: '',
// width: 55,
// checkarr: [],
// fixed: true,
// },
// {
// prop: 'number',
// label: '',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: true,
// sortable: true,
// head: false,
// },
{
prop: 'waybillNumber',
label: '运单号',
type: 2,
values: '',
width: '160',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'serviceNumber',
label: '服务号',
type: 2,
values: '',
width: '160',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '订单自编码',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'cargoNumber',
label: '物料编码',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'marketName',
label: '商场名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'descriptionGoods',
label: '产品名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'stockupStatusName',
label: '备货状态',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'stockupTime',
label: '备货时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'conditionsName',
label: '货物类型',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'loadingStatusName',
label: '装车状态',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'loadingTime',
label: '装车时间',
type: 2,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'signingStatusName',
label: '签收状态',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'signingTime',
label: '签收时间',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: '',
label: '操作',
type: 6,
values: '',
width: '200',
checkarr: [],
fixed: 'right',
hide: true,
},
// ...
],
numberDetailData: [],
//
signoption: {
height: 'auto',
@ -1543,7 +1793,44 @@ export default {
console.log(uploadFile, uploadFiles);
console.log('执行了1回调');
},
//
InformationViewing(val) {
console.log(val, '点击数字接收的值');
console.log('12312312');
const row = val;
let type = 0;
switch (row.column.label) {
case '配送件数':
this.numberTitle = '配送包件详情列表';
type = 1;
console.log('查看配送件数');
break;
case '装车件数':
type = 2;
this.numberTitle = '装车详情列表';
break;
case '未装车件数':
type = 3;
this.numberTitle = '未装车详情列表';
break;
case '签收件数':
type = 4;
this.numberTitle = '签收详情列表';
break;
case '未签收件数':
type = 5;
this.numberTitle = '未签收详情列表';
break;
}
numberDetail(row.row.id, type).then(res => {
this.numberDetailDialogVisible = true;
const data = res.data.data;
this.numberDetailData = data;
console.log('res--------->', res);
});
},
handlePictureCardPreview(uploadFile) {
console.log(uploadFile);
console.log('执行了2回调');
@ -1897,7 +2184,7 @@ export default {
this.search = !this.search;
},
searchChange() {
console.log("this.query>>>>>>>>>>>>>>",this.query);
console.log('this.query>>>>>>>>>>>>>>', this.query);
if (this.query.querySigningStatus) {
this.query.signingStatus = this.query.querySigningStatus;
}
@ -2179,8 +2466,7 @@ export default {
flex-direction: column;
}
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
align-items: flex-end;
}
</style>

14
src/views/distribution/turndelivery/deliveryDiscuss.vue

@ -430,18 +430,11 @@
placeholder="请输入服务号"
/>
</el-form-item>
<el-form-item label="顾客姓名:">
<el-form-item label="运单收货人:">
<el-input
v-model="parameter.customerName"
clearable
placeholder="请输入顾客姓名"
/>
</el-form-item>
<el-form-item label="顾客电话:">
<el-input
v-model="parameter.customerTelephone"
clearable
placeholder="请输入顾客电话"
placeholder="请输入运单收货人"
/>
</el-form-item>
<el-form-item label="顾客地址:">
@ -451,6 +444,9 @@
placeholder="请输入顾客地址"
/>
</el-form-item>
<el-form-item >
</el-form-item>
</el-form>
<!-- <div class="SoBtn">
搜索菜单预留按钮

2964
src/views/distribution/turndelivery/deliveryMarket.vue

File diff suppressed because it is too large Load Diff

10
src/views/warehouse/warehouseWaybill.vue

@ -68,7 +68,7 @@
</template>
</tablecmt>
</el-row>
<el-row class='el-fy'>
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
@ -589,6 +589,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -599,6 +600,7 @@ export default {
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
@ -610,6 +612,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
head: false,
},
{
@ -621,6 +624,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
head: false,
},
{
@ -654,6 +658,7 @@ export default {
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
head: false,
},
{
@ -1401,8 +1406,7 @@ export default {
flex-direction: column;
}
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
align-items: flex-end;
}
</style>

1
src/views/warehouse/warehousingentry/warehouseWarehouseingAddReceipt.vue

@ -249,7 +249,6 @@
type="primary"
text
icon="el-icon-delete"
v-if="row.conditions == '1'"
@click="rowDelOwn(row)"
:disabled="typeView"
>删除</el-button

24
vite.config.js

@ -12,8 +12,32 @@ export default ({ mode, command }) => {
port: 2888,
proxy: {
'/api': {
<<<<<<< HEAD
target: 'http://test.api.huitongys.com',
=======
// target: 'http://192.168.10.126:8889',
// hy
// target: 'http://192.168.10.48:13000',
// lmy
// target: 'http://192.168.10.123:8889',
// target: 'http://192.168.10.101:8888',
// 老zyc
// target: 'http://192.168.10.75:8777',
// 新zyc
// target: 'http://192.168.6.116:8777',
target: 'http://192.168.6.122:8777',
// target: 'http://192.168.10.25:13000',
// target: 'http://192.168.10.57:13000',
// target: 'http://192.168.6.122:8777',
// target: 'http://192.168.6.116:8777',
// tjj
// sst
// target: 'http://192.168.10.94:8888',
// target: 'http://192.168.10.29:13000',
// target: 'http://h5uapi.huitongys.com',
// target: 'http://test.api.huitongys.com',
>>>>>>> dev
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, ''),
},

Loading…
Cancel
Save