Browse Source

工单

fix_bug_pro20231227
马远东 1 year ago
parent
commit
83e392edfd
  1. 1
      src/api/distribution/distributionSignfor.js
  2. 872
      src/option/distribution/TripartiteTransfer.js
  3. 627
      src/option/distribution/VehicleArrivalManagement.js
  4. 627
      src/option/distribution/VehicleStowage.js
  5. 480
      src/option/distribution/zeroAdditionalRecording.js
  6. 54
      src/router/views/index.js
  7. 18
      src/styles/common.scss
  8. 51
      src/utils/util.js
  9. 889
      src/views/distribution/artery/TripartiteTransfer.vue
  10. 518
      src/views/distribution/artery/VehicleArrivalManagement.vue
  11. 639
      src/views/distribution/artery/VehicleStowage.vue
  12. 593
      src/views/distribution/artery/zeroAdditionalRecording.vue
  13. 1075
      src/views/distribution/inventory/BookingNote.vue
  14. 2
      src/views/distribution/inventory/arteryDistrilbutionBillLadingList.vue
  15. 522
      src/views/distribution/inventory/carry/distributionStockCarry.vue
  16. 2
      src/views/distribution/inventory/distributionPrint.vue
  17. 2
      src/views/distribution/inventory/distributionServiceLog.vue
  18. 2
      src/views/distribution/inventory/distributionStockListInfo.vue
  19. 40
      src/views/distribution/inventory/distributionStockListMarket.vue
  20. 22
      src/views/distribution/reservation/reservationAddFrom.vue
  21. 97
      src/views/distribution/signfor/distributionSignfor.vue
  22. 92
      src/views/warehouse/warehousesignedorder/distributionStockArticle.vue
  23. 6
      vite.config.js

1
src/api/distribution/distributionSignfor.js

@ -66,6 +66,7 @@ export const handlePicture = ids => {
params: {
ids
},
responseType: 'blob',
})
};

872
src/option/distribution/TripartiteTransfer.js

@ -0,0 +1,872 @@
/** 三方中转列表 */
export const columnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'billladingCode',
label: '中转批次号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'carNumber',
label: '承运商',
type: 2,
values: '',
width: '180',
checkarr: [],
fixed: true,
sortable: true,
},
{
prop: 'driverName',
label: '承运日期',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: true,
sortable: true,
},
{
prop: 'driverPhone',
label: '付款方式',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '运费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '代收贷款',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '承运单号',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '发站仓库',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '是否结算',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '客户类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '发车时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '计划出库',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '实际装车',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '送货方式',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '经办人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '创建时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '结算金额',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '结算人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '签收时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '操作',
type: 6,
values: '',
width: '300',
checkarr: [],
fixed: 'right',
sortable: false,
},
];
/** 装车详情列表 */
export const detailsColumnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '运单号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '合同号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 13,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '计划目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverPhone',
label: '目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '装卸状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '订单来源',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '装车仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '扫码时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '装卸仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '卸车时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '装车类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '是否补录',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '是否齐套',
type: 3,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '托盘码',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '一级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '二级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '三级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '物料名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '装车扫描人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '卸车人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '同步状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
];
/** 运单池列表 */
export const oldColumnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '开单日期',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '订单自编号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '运单号',
type: 2,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '到站',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverPhone',
label: '目的网点',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '发货单位',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '收货单位',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '收货人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '托盘码',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '品类名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '在库数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '单价',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '重量(kg)',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '体积',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '运费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '客户车次',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '运单备注',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
];
/** 调度池列表 */
export const newColumnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '开单日期',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '订单自编号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '运单号',
type: 2,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '到站',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverPhone',
label: '目的网点',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '发货单位',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '收货单位',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '收货人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '托盘码',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '品类名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '在库数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '单价',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '重量(kg)',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '体积',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '运费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '客户车次',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '运单备注',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
];

627
src/option/distribution/VehicleArrivalManagement.js

@ -0,0 +1,627 @@
export const columnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'billladingCode',
label: '批次号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'carNumber',
label: '路线',
type: 13,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '计划装车',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'driverPhone',
label: '装车件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'warehouseName',
label: '在车件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'lineNameTitle',
label: '卸车件数',
type: 1,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'nodeNub',
label: '满载率',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '滞留扫描',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '直发商家',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '车辆状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '主驾司机',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '主驾司机手机号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '车牌号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '起点仓库',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '终点仓库',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '到车时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '实际发车时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '总运输费用',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '现付运输费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
prop: 'totalWeight',
label: '油费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalVolume',
label: '路桥费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '回付运输费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '到付运输费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalWeight',
label: '整车信息费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalVolume',
label: '整车保险费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '整车落地费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalWeight',
label: '发站装车费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalVolume',
label: '发站其他费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '到站卸车费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '到站其它费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalWeight',
label: '经办人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '创建时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '卸车总收入',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '操作',
type: 6,
values: '',
width: '200',
checkarr: [],
fixed: 'right',
sortable: false,
},
];
/** 装车详情列表 */
export const detailsColumnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '运单号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '合同号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 13,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '计划目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverPhone',
label: '目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '装卸状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '订单来源',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '装车仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '扫码时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '装卸仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '卸车时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '装车类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '是否补录',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '是否齐套',
type: 3,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '托盘码',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '一级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '二级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '三级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '物料名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '装车扫描人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '卸车人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '同步状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
];

627
src/option/distribution/VehicleStowage.js

@ -0,0 +1,627 @@
export const columnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'billladingCode',
label: '批次号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'carNumber',
label: '路线',
type: 13,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '计划装车',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'driverPhone',
label: '装车件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'warehouseName',
label: '在车件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'lineNameTitle',
label: '卸车件数',
type: 1,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'nodeNub',
label: '满载率',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '滞留扫描',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '直发商家',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '车辆状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '主驾司机',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '主驾司机手机号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '车牌号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '起点仓库',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '终点仓库',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '到车时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '实际发车时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '总运输费用',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '现付运输费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
isshowSummary: true,
sortable: true,
},
{
prop: 'totalWeight',
label: '油费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalVolume',
label: '路桥费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '回付运输费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '到付运输费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalWeight',
label: '整车信息费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalVolume',
label: '整车保险费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '整车落地费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalWeight',
label: '发站装车费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalVolume',
label: '发站其他费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '到站卸车费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '到站其它费',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'totalWeight',
label: '经办人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '创建时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '卸车总收入',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'createUserName',
label: '操作',
type: 6,
values: '',
width: '400',
checkarr: [],
fixed: 'right',
sortable: false,
},
];
/** 装车详情列表 */
export const detailsColumnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '运单号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '合同号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 13,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '计划目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverPhone',
label: '目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '装卸状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '订单来源',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '装车仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '扫码时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '装卸仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '卸车时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '装车类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '是否补录',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '是否齐套',
type: 3,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '托盘码',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '一级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '二级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '三级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '物料名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '装车扫描人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '卸车人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '同步状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
];

480
src/option/distribution/zeroAdditionalRecording.js

@ -0,0 +1,480 @@
export const oldColumnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '运单号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '合同号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 13,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '计划目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverPhone',
label: '目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '装卸状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '订单来源',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '装车仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '扫码时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '装卸仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '卸车时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '装车类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '是否补录',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '是否齐套',
type: 3,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '托盘码',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '一级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '二级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '三级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '物料名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '装车扫描人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '卸车人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '同步状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
];
/** 装车详情列表 */
export const newColumnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '运单号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '合同号',
type: 13,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 13,
values: '',
width: '200',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverName',
label: '计划目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'driverPhone',
label: '目的地',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseName',
label: '装卸状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'lineNameTitle',
label: '订单来源',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'nodeNub',
label: '装车仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'startTime',
label: '扫码时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'endTime',
label: '装卸仓库',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'planVolume',
label: '卸车时间',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'billladingStatus',
label: '装车类型',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'chargeType',
label: '是否补录',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalFee',
label: '是否齐套',
type: 3,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'remark',
label: '托盘码',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'carrierName',
label: '一级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillCount',
label: '二级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNum',
label: '三级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '物料名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalVolume',
label: '装车扫描人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'createUserName',
label: '卸车人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalWeight',
label: '同步状态',
type: 3,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
];

54
src/router/views/index.js

@ -175,6 +175,24 @@ export default [
},
],
},
{
path: '/distribution/artery',
component: Layout,
redirect: '/distribution/artery/zeroAdditionalRecording',
children: [
{
path: 'zeroAdditionalRecording',
name: '零担补录',
meta: {
i18n: 'data',
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/zeroAdditionalRecording.vue'
),
},
],
},
// {
// path: '/basic/pdarecords/basicPdarecords',
// name:'pda维修记录',
@ -226,6 +244,15 @@ export default [
/* webpackChunkName: "views" */ '@/views/distribution/inventory/arteryDistrilbutionBillLadingListDetails.vue'
),
},
{
path: '/distribution/inventory/BookingNote',
name: '货物托运单',
meta: {
data: 'data',
},
component: () =>
import(/* webpackChunkName: "views" */ '@/views/distribution/inventory/BookingNote.vue'),
},
],
},
{
@ -1079,6 +1106,7 @@ export default [
],
},
<<<<<<< HEAD
{
path: '/aftersales/VueTemp',
component: Layout,
@ -1091,6 +1119,32 @@ export default [
},
],
},
=======
{
path: '/distribution/checkInventoryTask/createTaskTemp',
component: Layout,
redirect: '/distribution/checkInventoryTask/createTaskTemp',
children: [
{
path: '/distribution/checkInventoryTask/createTaskTemp',
name: '盘点重构',
component: () => import('@/views/distribution/checkInventoryTask/createTaskTemp.vue'),
},
],
},
// {
// path: '/distribution/checkInventoryTask/createTaskTemp',
// component: Layout,
// redirect: '/distribution/checkInventoryTask/createTaskTemp',
// children: [
// {
// path: '/distribution/checkInventoryTask/createTaskTemp',
// name: '盘点重构',
// component: () => import('@/views/distribution/checkInventoryTask/createTaskTemp.vue'),
// },
// ],
// },
>>>>>>> 3a3b27cb3544194e54396f3944da178754571726
// {
// path: '/distribution/turndelivery/devtmp',

18
src/styles/common.scss

@ -9,17 +9,17 @@
height: 30px !important;
}
}
.basic-container__card{
.basic-container__card {
.el-card__body {
padding: 5px !important ;
}
padding: 5px !important ;
}
}
.avue-crud__pagination {
padding: 0 0;
padding-top: 5px;
}
.el-card__body{
.el-card__body{
.el-card__body {
.el-card__body {
padding: 0px !important;
}
}
@ -148,6 +148,14 @@ a {
justify-content: space-between;
}
.mt10 {
margin-top: 10px;
}
.pointer {
cursor: pointer;
}
// ele样式覆盖
@import './element-ui.scss';
// 顶部右侧显示

51
src/utils/util.js

@ -277,13 +277,13 @@ export const openWindow = (url, title, w, h) => {
const width = window.innerWidth
? window.innerWidth
: document.documentElement.clientWidth
? document.documentElement.clientWidth
: screen.width;
? document.documentElement.clientWidth
: screen.width;
const height = window.innerHeight
? window.innerHeight
: document.documentElement.clientHeight
? document.documentElement.clientHeight
: screen.height;
? document.documentElement.clientHeight
: screen.height;
const left = width / 2 - w / 2 + dualScreenLeft;
const top = height / 2 - h / 2 + dualScreenTop;
@ -291,13 +291,13 @@ export const openWindow = (url, title, w, h) => {
url,
title,
'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=' +
w +
', height=' +
h +
', top=' +
top +
', left=' +
left
w +
', height=' +
h +
', top=' +
top +
', left=' +
left
);
// Puts focus on the newWindow
@ -315,18 +315,18 @@ export const getScreen = isCollapse => {
};
export const getHtmls = (arrs, htmldemo) => {
let html = ''
let html = '';
arrs.map(item => {
let strhtml = JSON.parse(JSON.stringify(htmldemo));
for (let key in item) {
let str = '\\$\\{' + key + '\\}';
let reg=new RegExp(str,"g")
let reg = new RegExp(str, 'g');
strhtml = strhtml.replace(reg, item[key]);
}
html += strhtml;
});
return html
}
return html;
};
/**
* 获取顶部地址栏地址
*/
@ -424,3 +424,24 @@ export const downloadXls = (fileArrayBuffer, filename) => {
window.open(URL.createObjectURL(file));
}
};
/**
* 设置元素节点高度
* @param {node} node 元素 type: element || array
* @param {string} height 高度 (非必填) type: string
*/
export const setNodeHeight = (_node, _height) => {
// 判断是否传入的是数组
const _type = Object.prototype.toString.call(_node);
console.log('_type :>> ', _type);
// 传入数组时
if (_type === '[object Array]') {
console.log('333 :>> ', 333);
}
// 传入单一节点时
else if (_type === '[object HTMLDivElement]') {
console.log('222 :>> ', 222);
if (_height) _node.style.height = _height;
console.log('_node :>> ', _node);
}
};

889
src/views/distribution/artery/TripartiteTransfer.vue

@ -0,0 +1,889 @@
<template>
<basic-container>
<div class="avue-crud">
<!-- 搜索模块 -->
<el-row v-if="!search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d">
<el-form-item label="网点:">
<el-input v-model="query.serviceNumber" placeholder="请选择网点" clearable></el-input>
</el-form-item>
<el-form-item label="承运时间:" class="el-times">
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item label="发车时间:" class="el-times">
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item label="创建时间:" class="el-times">
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item label="签收时间:" class="el-times">
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item label="车次号:" class="el-times">
<el-input v-model="query.stockupArea" placeholder="请输入车次号"></el-input>
</el-form-item>
<!-- 查询按钮 -->
<el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item>
</el-form>
</el-row>
<!-- 控件模块 -->
<el-row>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" icon="Plus" @click="handleShowTransfer('add')"
>新增中转
</el-button>
<el-button type="primary" icon="Printer" @click="searchReset()">装载清单</el-button>
<el-button type="primary" icon="Printer" @click="searchReset()"
>装载卸车清单(财务)</el-button
>
<el-button type="primary" icon="Van" @click="searchReset()"> </el-button>
<el-button type="primary" icon="Delete" @click="searchReset()">取消发车</el-button>
<el-button type="primary" icon="Delete" @click="searchReset()">取消装车</el-button>
<el-button type="primary" icon="CircleCheck" @click="searchReset()"> </el-button>
<el-button type="primary" icon="Edit" @click="searchReset()"> </el-button>
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
<el-button icon="Operation" @click="showdrawer(true)" circle></el-button>
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
</div>
</el-row>
<!-- 表格 -->
<el-row>
<!-- 列表模块 -->
<tablecmt
:columnList="details.columnList"
:tableData="data"
:loading="loadingObj.list"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '批次号'">
<el-text>123</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<el-button type="text" @click="handleShowzeroAdditionalRecording(slotProps.scope)">
删除
</el-button>
<el-button type="text" @click="handleShowzeroAdditionalRecording(slotProps.scope)">
文员签收
</el-button>
<el-button type="text" @click="handleShowzeroAdditionalRecording(slotProps.scope)">
结算
</el-button>
<el-button type="text" @click="handleShowTruckLoadingDetails(slotProps.scope)"
>装车明细</el-button
>
</template>
</template>
</tablecmt>
</el-row>
<!-- 统计 -->
<el-row>
<div>选择数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
<div>总计: 总数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
</el-row>
<!-- 分页模块 -->
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
</div>
</basic-container>
<!-- 编辑弹窗 -->
<el-dialog
title="装车明细"
v-model="details.popUpShow.truckLoadingDetailVisited"
width="80%"
:before-close="beforeClose"
append-to-body
class="truckLoadingDetailPopUp"
>
<el-form :inline="true" :model="query" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="扫码时间:" class="el-times">
<!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>-->
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Edit" @click="searchChange">中转批量签收</el-button>
<el-button type="primary" icon="el-icon-search" @click="searchReset()"> </el-button>
<el-button icon="el-icon-printer" @click="searchReset()">二维码</el-button>
<el-button
icon="Operation"
@click="showdrawer(true, 'truckLoadingDetail')"
circle
></el-button>
</el-form-item>
</div>
</el-form>
<tablecmt
:columnList="details.detailsColumnList"
:tableData="data"
:loading="loadingObj.list"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps"> </template>
</tablecmt>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="trickleLoadingPage.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="trickleLoadingPage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="trickleLoadingPage.total"
>
</el-pagination>
</el-dialog>
<!-- 创建 && 编辑 中转 -->
<el-dialog
title="新增中转"
v-model="details.popUpShow.transferVisited"
width="80%"
:before-close="beforeClose"
append-to-body
class="transferPopUp"
>
<el-form :inline="true" label-width="100px" :model="query" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="中转承运商"> <el-input /></el-form-item>
<el-form-item label="经办人"> <el-input /></el-form-item>
<el-form-item label="送货方式"> <el-input /></el-form-item>
<el-form-item label="付款方式"> <el-input /></el-form-item>
<el-form-item label="运费分摊方式"> <el-input /></el-form-item>
<el-form-item label="送货司机"> <el-input /></el-form-item>
<el-form-item label="客户类型"> <el-input /></el-form-item>
<el-form-item label="是否结算"> <el-input /></el-form-item>
<el-form-item label="代收贷款"> <el-input /></el-form-item>
<el-form-item label="承运单号"> <el-input /></el-form-item>
<el-form-item label="承运时间"> <el-input /></el-form-item>
<el-form-item label="客户收货时间"> <el-input /></el-form-item>
<el-form-item label="运费"> <el-input /></el-form-item>
<el-form-item label="司机结算费"> <el-input /></el-form-item>
</div>
<div style="width: 100%">
<el-form-item label="备注"> <el-input type="textarea" /></el-form-item>
</div>
</el-form>
<div class="add_row">
<!-- 列表模块 -->
<div style="width: 47%">
<div class="add_row_title">运单池</div>
<div v-if="!search">
<el-form :inline="true" label-width="80px" :model="details.oldQuery" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="备注" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="托盘码" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item class="el-times">
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开单日期"
end-placeholder="开单日期"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="searchReset()"
> </el-button
>
<el-button icon="el-icon-delete" @click="searchReset()">重置</el-button>
</el-form-item>
</div>
</el-form>
</div>
<div style="margin-bottom: 10px" class="flex-c-sb">
<!-- 控件 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
<el-button icon="Operation" @click="showdrawer(true, 1)" circle></el-button>
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
<el-button type="text" style="cursor: pointer" @click="handleAddWaybill">
加入调度池
<el-icon><CaretRight /></el-icon>
</el-button>
</div>
<tablecmt
:columnList="details.oldColumnList"
:tableData="details.oldData"
:loading="loadingObj.oldListLoading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
</tablecmt>
<!-- 统计行 -->
<div class="statistics_row">
<!-- <div>合计: 选择数: {{ addInfo.oldSelectionList.length }}</div>
<div>件数: {{ selectionList.length }}</div>
<div>重量: {{ selectionList.length }}</div>
<div>体积: {{ selectionList.length }}</div> -->
</div>
<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="zeroAdditionalRecordingInfo.oldPage.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="zeroAdditionalRecordingInfo.oldPage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="zeroAdditionalRecordingInfo.oldPage.total"
>
</el-pagination>
</div>
</div>
<!-- 列表模块 -->
<div style="width: 47%">
<div class="add_row_title">调度池</div>
<div v-if="!search">
<el-form :inline="true" label-width="80px" :model="details.newQuery" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="备注" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="托盘码" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item class="el-times">
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开单日期"
end-placeholder="开单日期"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="searchReset()"
> </el-button
>
<el-button icon="el-icon-delete" @click="searchReset()">重置</el-button>
</el-form-item>
</div>
</el-form>
</div>
<div style="margin-bottom: 10px" class="flex-c-sb">
<el-button type="text" class="pointer" @click="handleRemoveWaybill">
<el-icon><CaretLeft /></el-icon>
移除调度池
</el-button>
<!-- 控件 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
<el-button icon="Operation" @click="showdrawer(true, 2)" circle></el-button>
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
</div>
<tablecmt
:columnList="details.newColumnList"
:tableData="details.newData"
:loading="loadingObj.newListLoading"
@inputTxt="newInputsc"
@timeCheck="newTimesc"
@btnCheck="newBtnsc"
@selectCheck="newSelectsc"
@selection="newSelectionChange"
>
</tablecmt>
<div class="statistics_row">
<!-- <div>合计: 选择数: {{ addInfo.oldSelectionList.length }}</div>
<div>件数: {{ selectionList.length }}</div>
<div>重量: {{ selectionList.length }}</div>
<div>体积: {{ selectionList.length }}</div> -->
</div>
</div>
<el-button></el-button>
</div>
</el-dialog>
<!-- 列表配置显示 -->
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="details.editColumnList"
></edittablehead>
</template>
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import functions from '@/utils/functions';
import dayjs from 'dayjs';
import { mapGetters } from 'vuex';
/** 获取字典 */
import { getDictionaryBiz } from '@/api/system/dict';
import { downloadXls } from '@/utils/util';
import {
columnList,
detailsColumnList,
oldColumnList,
newColumnList,
} from '@/option/distribution/TripartiteTransfer';
import { useRouter } from 'vue-router';
//
const $router = useRouter();
const details = reactive<any>({
/** 是否开启搜索 */
search: true,
/** 表格搜索条件 */
query: {},
/** 时间快捷选择设置 */
shortcuts: [
{
text: '最近一周',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
return [start, end];
},
},
{
text: '最近一个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
},
},
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
columnList,
/** 装车明细表头信息 */
detailsColumnList,
/** 修改的列表信息 */
editColumnList: [],
/** 运单池 */
oldColumnList,
/** 调度池 */
newColumnList,
/** 列表数据 */
data: [{}],
newData: [],
oldData: [],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
list: false,
oldListLoading: false,
},
/** 列表复选框选中的数据 */
selectionList: [],
/** 是否显示设置表格 */
drawerShow: false,
/** 分页参数 */
page: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 装车明细分页参数 */
trickleLoadingPage: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 弹出层显示 */
popUpShow: {
/** 装车详情 */
truckLoadingDetailVisited: false,
/** 零担补录 */
transferVisited: false,
},
/** 列表Dom节点 */
listNode: '',
form: {},
/** 零担补录信息 */
zeroAdditionalRecordingInfo: {
oldPage: {
pageSize: 30,
currentPage: 1,
total: 0,
},
},
});
const {
search,
query,
shortcuts,
stockupDate,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
} = toRefs(details);
/** vuex */
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList']));
console.log('permission :>> ', permission);
onMounted(() => {
const timer = setTimeout(() => {
details.listNode = document.querySelector('.maboxhi');
details.listNode.style.transition = 'all .5s ease-out';
console.log('details.listNode :>> ', details.listNode);
clearTimeout(timer);
}, 100);
});
/** 请求页面数据 */
const onLoad = (page: any) => {};
/** 搜索 */
const searchChange = () => {
onLoad(details.page);
};
/** 清空表单 */
const searchReset = () => {
details.query = {};
details.stockupDate = [];
details.page.currentPage = 1;
onLoad(details.page);
};
/** 展开列表控件 */
const showdrawer = (_flag?: boolean, _type?: string) => {
switch (_type) {
case 'truckLoadingDetail':
details.editColumnList = details.detailsColumnList;
break;
default:
console.log('123 :>> ', 123);
details.editColumnList = details.columnList;
break;
// details.
}
details.drawerShow = _flag;
};
/** 是否开启搜索区 */
const searchHide = () => {
function getWinHight() {
var windowHight = 0;
if (document.body.clientHeight && document.documentElement.clientHeight) {
windowHight =
document.body.clientHeight < document.documentElement.clientHeight
? document.body.clientHeight
: document.documentElement.clientHeight;
} else {
}
return document.documentElement.clientHeight;
}
details.search = !details.search;
const timer = setTimeout(() => {
details.listNode.style.height =
getWinHight() - details.listNode.getBoundingClientRect().top - 70 + 'px';
clearTimeout(timer);
}, 10);
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
onLoad(details.page);
};
/** 表格表头时间选择 */
const timesc = (index, row) => {
console.log(index, row);
if (!!index) {
index = dayjs(index).format('YYYY-MM-DD');
}
details.query[row.prop] = index;
if (!index) {
delete details.query[row.prop];
}
onLoad(details.page);
};
/** 表格表头输入框搜索 */
const btnsc = () => {};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
details.query[row.prop] = index;
if (!index) delete details.query[row.prop];
if (row.prop === 'certificateTypeName') {
details.query['certificateType'] = index;
if (!index) delete details.query['certificateType'];
}
onLoad(details.page);
};
/** 表格表头复选框选择 */
const selectionChange = (list: any) => {
details.selectionList = list;
};
/** 表格表头输入框搜索 */
const newInputsc = (index, row) => {
details.newQuery[row.prop] = index;
onLoad(details.page);
};
/** 表格表头时间选择 */
const newTimesc = (index, row) => {
console.log(index, row);
if (!!index) {
index = dayjs(index).format('YYYY-MM-DD');
}
details.newQuery[row.prop] = index;
if (!index) {
delete details.newQuery[row.prop];
}
onLoad(details.page);
};
/** 表格表头输入框搜索 */
const newBtnsc = () => {};
/** 表格表头下拉框选择 */
const newSelectsc = (index, row) => {
details.newQuery[row.prop] = index;
if (!index) delete details.newQuery[row.prop];
if (row.prop === 'certificateTypeName') {
details.newQuery['certificateType'] = index;
if (!index) delete details.newQuery['certificateType'];
}
onLoad(details.page);
};
/** 表格表头复选框选择 */
const newSelectionChange = (list: any) => {
details.newSelectionList = list;
};
/** 每页数量改变执行的回调 */
const sizeChange = (pageSize: number) => {
details.page.pageSize = pageSize;
onLoad(details.page);
};
/** 页码改变执行的回调 */
const currentChange = () => {};
/**
* 设置列表 -- 固定函数
* 弹窗的勾选回调用于更改头部数组
* 固定搭配只需要更换 columnList
* */
const setnewcolum = (newarr, headarr, type) => {
if (type == 1) {
details.editColumnList = newarr;
functions.setStorage(window.location.pathname + 'checkList', headarr);
} else if (type == 2) {
details.editColumnList = newarr;
functions.setStorage(window.location.pathname + 'flexList', headarr);
} else if (type == 3) {
details.editColumnList = newarr;
functions.setStorage(window.location.pathname + 'sortlist', headarr);
}
};
/** 弹出层开启前清除数据 */
const beforeClose = done => {
done();
details.form = {};
details.view = false;
};
/** 显示装车详情 */
const handleShowTruckLoadingDetails = ({ row }) => {
details.popUpShow.truckLoadingDetailVisited = true;
nextTick(() => {
// ,
const _node = document.querySelector('.truckLoadingDetailPopUp .maboxhi');
_node.style.height = '550px';
console.log('_node :>> ', _node);
});
};
/** 跳转零担补录 */
const handleShowzeroAdditionalRecording = ({ row }) => {
//
$router.push('/distribution/artery/zeroAdditionalRecording');
};
/** 新增中转 */
const addTransfer = async () => {
return null;
};
/** 修改中转 */
const editTransfer = async () => {
return null;
};
/** 显示新增或修改中转弹窗 */
const handleShowTransfer = async (_type: string) => {
switch (_type) {
//
case 'add':
await addTransfer();
break;
//
case 'edit':
await editTransfer();
break;
default:
break;
}
details.popUpShow.transferVisited = true;
nextTick(() => {
// ,
const _nodeList = document.querySelectorAll('.transferPopUp .maboxhi');
_nodeList.forEach(val => (val.style.height = '300px'));
});
};
/** 添加运单 */
const handleAddWaybill = () => {
// if (this.addInfo.oldSelectionList.length === 0) return this.$message.warning('');
// this.addInfo.newData = [...this.addInfo.newData, ...this.addInfo.oldSelectionList];
// this.addInfo.haveIds = this.addInfo.map(val => val.id);
};
/** 移除运单 */
const handleRemoveWaybill = () => {
// if (this.addInfo.newSelectionList.length === 0) return this.$message.warning('');
// this.addInfo.newData = [...this.addInfo.newData, ...this.addInfo.oldSelectionList];
// this.addInfo.haveIds = this.addInfo.map(val => val.id);
};
</script>
<style scoped lang="scss">
.fo-fl {
display: flex;
flex-wrap: wrap;
zoom: 0.9;
}
//
:deep(.el-date-editor.el-input) {
height: 100% !important;
width: 100% !important;
}
:deep(.el-range-editor.el-input__wrapper) {
height: 100% !important;
}
//
.add_row {
display: flex;
justify-content: space-between;
}
.add_row_title {
text-align: center;
margin-bottom: 10px;
font-size: 18px;
font-weight: bold;
}
//
.statistics_row {
margin: 10px 0;
font-size: 14px;
zoom: 0.9;
display: flex;
> div {
margin-right: 20px;
}
}
//
.crad_container {
display: flex;
.card_container_item {
flex: 1;
// padding: 10px;
border-radius: 5px;
box-shadow: 0 0 5px #ccc;
&:first-child {
margin-right: 20px;
}
.card_container_item_title {
padding: 10px;
border-bottom: 1px solid #ccc;
display: flex;
justify-content: space-between;
align-items: center;
}
.card_container_item_box {
padding: 10px;
}
}
}
.pointer {
cursor: pointer;
}
.transferPopUp :deep(.el-textarea) {
width: 500px;
}
</style>

518
src/views/distribution/artery/VehicleArrivalManagement.vue

@ -0,0 +1,518 @@
<template>
<basic-container>
<div class="avue-crud">
<!-- 搜索模块 -->
<el-row v-if="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="车次号:">
<el-input
v-model="query.serviceNumber"
placeholder="请输入车次号"
clearable
></el-input>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
</div>
<div class="fo-fl">
<el-form-item label="创建时间:" class="el-times">
<!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>-->
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<!-- 查询按钮 -->
<el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange"
> </el-button
>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item>
</div>
</el-form>
</el-row>
<!-- 控件模块 -->
<el-row>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" icon="el-icon-van" @click="searchChange">发车 </el-button>
<el-button type="primary" icon="el-icon-close" @click="searchReset()"
>网点取消发车</el-button
>
<el-button type="primary" icon="el-icon-printer" @click="searchReset()"
>装载清单</el-button
>
<el-button type="primary" icon="el-icon-printer" @click="searchReset()">到达</el-button>
<el-button type="primary" icon="el-icon-delete" @click="searchReset()">
中途到达卸车
</el-button>
<el-button type="primary" icon="el-icon-delete" @click="searchReset()">
对比报表
</el-button>
<el-button type="primary" icon="el-icon-document" @click="searchReset()">
终点到达卸车
</el-button>
<el-button type="primary" icon="el-icon-document" @click="searchReset()">
卸车报告
</el-button>
<el-button type="primary" icon="el-icon-document" @click="searchReset()">
欧派TIMS数据关联
</el-button>
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
<el-button icon="Operation" @click="showdrawer(true)" circle></el-button>
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
</div>
</el-row>
<!-- 表格 -->
<el-row>
<!-- 列表模块 -->
<tablecmt
:columnList="details.columnList"
:tableData="data"
:loading="loadingObj.list"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '批次号'">
<el-text>123</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<el-text @click="handleShowTruckLoadingDetails">装车明细</el-text>
<el-text>编辑</el-text>
</template>
</template>
</tablecmt>
</el-row>
<!-- 统计 -->
<el-row>
<div>选择数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
<div>总计: 总数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
</el-row>
<!-- 分页模块 -->
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
</div>
</basic-container>
<!-- 装车详情弹窗 -->
<el-dialog
title="装车明细"
v-model="details.popUpShow.truckLoadingDetailVisited"
width="80%"
:before-close="beforeClose"
append-to-body
class="truckLoadingDetailPopUp"
>
<el-form :inline="true" :model="query" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="预计发车:" class="el-times">
<!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>-->
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-van" @click="searchChange">批量卸车</el-button>
<el-button type="primary" icon="el-icon-search" @click="searchReset()"> </el-button>
<el-button icon="el-icon-printer" @click="searchReset()">二维码</el-button>
</el-form-item>
</div>
</el-form>
<tablecmt
:columnList="details.detailsColumnList"
:tableData="data"
:loading="loadingObj.list"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps"> </template>
</tablecmt>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="trickleLoadingPage.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="trickleLoadingPage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="trickleLoadingPage.total"
>
</el-pagination>
<!-- 表单按钮 -->
<!-- <template #footer>
<div v-if="!view" class="dialog-footer">
<el-button type="primary" icon="el-icon-circle-check" @click="handleEditSubmit"
> </el-button
>
<el-button icon="el-icon-circle-close" @click="box = false"> </el-button>
</div>
</template> -->
</el-dialog>
<!-- 列表配置显示 -->
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="columnList"
></edittablehead>
</template>
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import functions from '@/utils/functions';
import dayjs from 'dayjs';
import { mapGetters } from 'vuex';
/** 获取字典 */
import { getDictionaryBiz } from '@/api/system/dict';
import { downloadXls } from '@/utils/util';
import { columnList, detailsColumnList } from '@/option/distribution/VehicleArrivalManagement';
const details = reactive({
/** 是否开启搜索 */
search: false,
/** 表格搜索条件 */
query: {},
/** 时间快捷选择设置 */
shortcuts: [
{
text: '最近一周',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
return [start, end];
},
},
{
text: '最近一个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
},
},
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
columnList,
detailsColumnList,
/** 列表数据 */
data: [{}],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
list: false,
},
/** 列表复选框选中的数据 */
selectionList: [],
/** 是否显示设置表格 */
drawerShow: false,
/** 分页参数 */
page: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 装车明细分页参数 */
trickleLoadingPage: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 列表Dom节点 */
listNode: '',
/** 弹出层显示 */
popUpShow: {
/** 装车详情 */
truckLoadingDetailVisited: false,
},
/** 弹出层表单 */
form: {},
/** 是否为查看模式 */
view: false,
});
const {
search,
query,
shortcuts,
stockupDate,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
} = toRefs(details);
/** vuex */
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList']));
console.log('permission :>> ', permission);
onMounted(() => {
const timer = setTimeout(() => {
details.listNode = document.querySelector('.maboxhi') as any;
details.listNode.style.transition = 'all .5s ease-out';
console.log('details.listNode :>> ', details.listNode);
clearTimeout(timer);
}, 100);
});
/** 请求页面数据 */
const onLoad = (page: any) => {};
/** 搜索 */
const searchChange = () => {
onLoad(details.page);
};
/** 清空表单 */
const searchReset = () => {
details.query = {};
details.stockupDate = [];
details.page.currentPage = 1;
onLoad(details.page);
};
/** 展开列表控件 */
const showdrawer = (_flag?: boolean) => {
details.drawerShow = _flag;
};
/** 获取可视区高度 */
function getWinHight() {
var windowHight = 0;
if (document.body.clientHeight && document.documentElement.clientHeight) {
windowHight =
document.body.clientHeight < document.documentElement.clientHeight
? document.body.clientHeight
: document.documentElement.clientHeight;
} else {
}
return document.documentElement.clientHeight;
}
/** 是否开启搜索区 */
const searchHide = () => {
details.search = !details.search;
const timer = setTimeout(() => {
details.listNode.style.height =
getWinHight() - details.listNode.getBoundingClientRect().top - 70 + 'px';
clearTimeout(timer);
}, 10);
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
onLoad(details.page);
};
/** 表格表头时间选择 */
const timesc = (index, row) => {
console.log(index, row);
if (!!index) {
index = dayjs(index).format('YYYY-MM-DD');
}
details.query[row.prop] = index;
if (!index) {
delete details.query[row.prop];
}
onLoad(details.page);
};
/** 表格表头输入框搜索 */
const btnsc = () => {};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
details.query[row.prop] = index;
if (!index) delete details.query[row.prop];
if (row.prop === 'certificateTypeName') {
details.query['certificateType'] = index;
if (!index) delete details.query['certificateType'];
}
onLoad(details.page);
};
/** 表格表头复选框选择 */
const selectionChange = (list: any) => {
details.selectionList = list;
};
/** 每页数量改变执行的回调 */
const sizeChange = (pageSize: number) => {
details.page.pageSize = pageSize;
onLoad(details.page);
};
/** 页码改变执行的回调 */
const currentChange = () => {};
/**
* 设置列表 -- 固定函数
* 弹窗的勾选回调用于更改头部数组
* 固定搭配只需要更换 columnList
* */
const setnewcolum = (newarr, headarr, type) => {
if (type == 1) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'checkList', headarr);
} else if (type == 2) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'flexList', headarr);
} else if (type == 3) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'sortlist', headarr);
}
};
/** 弹出层开启前清除数据 */
const beforeClose = done => {
done();
details.form = {};
details.view = false;
};
/** 显示装车详情 */
const handleShowTruckLoadingDetails = ({ row }) => {
details.popUpShow.truckLoadingDetailVisited = true;
nextTick(() => {
// ,
const _node = document.querySelector('.truckLoadingDetailPopUp .maboxhi');
_node.style.height = '550px';
});
};
</script>
<style scoped lang="scss">
.fo-fl {
display: flex;
}
//
:deep(.el-date-editor.el-input) {
height: 100% !important;
width: 100% !important;
}
:deep(.el-range-editor.el-input__wrapper) {
height: 100% !important;
}
</style>

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

@ -0,0 +1,639 @@
<template>
<basic-container>
<div class="avue-crud">
<!-- 搜索模块 -->
<el-row v-if="!search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="车次号:">
<el-input
v-model="query.serviceNumber"
placeholder="请输入车次号"
clearable
></el-input>
</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="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</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="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</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="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
</div>
<!-- 查询按钮 -->
<el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item>
</el-form>
</el-row>
<!-- 控件模块 -->
<el-row>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" icon="el-icon-plus" @click="searchChange"
>新增配载
</el-button>
<el-button type="primary" icon="el-icon-printer" @click="searchReset()"
> </el-button
>
<el-button type="primary" icon="el-icon-printer" @click="searchReset()"
>装载清单</el-button
>
<el-button type="primary" icon="el-icon-printer" @click="searchReset()"
>装载卸车清单(财务)</el-button
>
<el-button type="primary" icon="el-icon-van" @click="searchReset()"> </el-button>
<el-button type="primary" icon="el-icon-delete" @click="searchReset()"
>取消发车</el-button
>
<el-button type="primary" icon="el-icon-delete" @click="searchReset()"
>取消装车</el-button
>
<el-button type="primary" icon="el-icon-document" @click="searchReset()"
>对比报表</el-button
>
<el-button type="primary" icon="el-icon-document" @click="searchReset()"
>卸车报告</el-button
>
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
<el-button icon="Operation" @click="showdrawer(true)" circle></el-button>
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
</div>
</el-row>
<!-- 表格 -->
<el-row>
<!-- 列表模块 -->
<tablecmt
:columnList="details.columnList"
:tableData="data"
:loading="loadingObj.list"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '批次号'">
<el-text>123</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<el-text @click="handleShowzeroAdditionalRecording(slotProps.scope)">
零担补录
</el-text>
<el-text @click="handleShowTruckLoadingDetails(slotProps.scope)">装车明细</el-text>
<el-text>编辑</el-text>
<el-text>数据同步</el-text>
<el-text>批量装车</el-text>
<el-text>手动装车</el-text>
<el-text>节点费用</el-text>
</template>
</template>
</tablecmt>
</el-row>
<!-- 统计 -->
<el-row>
<div>选择数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
<div>总计: 总数: , 运单数: , 件数: , 重量: , 体积: , 提货费: ,</div>
</el-row>
<!-- 分页模块 -->
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
</div>
</basic-container>
<!-- 编辑弹窗 -->
<el-dialog
title="装车明细"
v-model="details.popUpShow.truckLoadingDetailVisited"
width="80%"
:before-close="beforeClose"
append-to-body
:fullscreen="details.fullscreenObj.truckLoadingDetailPopUp"
:show-close="false"
class="truckLoadingDetailPopUp"
>
<template #header="{ close, titleId, titleClass }">
<div class="my-header flex-c-sb">
<h4 :id="titleId" :class="titleClass">装车明细</h4>
<div class="flex-c-c">
<!-- 全屏显示按钮 -->
<el-button type="text" v-if="!details.fullscreenObj.truckLoadingDetailPopUp">
<el-icon class="" @click="handleFullScrean('open', 'truckLoadingDetailPopUp')"
><FullScreen
/></el-icon>
</el-button>
<el-button type="text" v-else>
<el-icon class="" @click="handleFullScrean('close', 'truckLoadingDetailPopUp')"
><CopyDocument
/></el-icon>
</el-button>
<!-- 弹窗关闭按钮 -->
<el-button type="text">
<el-icon class="" @click="close"><Close /></el-icon>
</el-button>
</div>
</div>
</template>
<el-form :inline="true" :model="query" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="预计发车:" class="el-times">
<!-- <el-input v-model="query.stockupArea" placeholder="请输入备货区"></el-input>-->
<el-date-picker
v-model="stockupDate"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-van" @click="searchChange">批量卸车</el-button>
<el-button type="primary" icon="el-icon-search" @click="searchReset()"> </el-button>
<el-button icon="el-icon-printer" @click="searchReset()">二维码</el-button>
</el-form-item>
</div>
</el-form>
<tablecmt
:columnList="details.detailsColumnList"
:tableData="data"
:loading="loadingObj.list"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps"> </template>
</tablecmt>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="trickleLoadingPage.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="trickleLoadingPage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="trickleLoadingPage.total"
>
</el-pagination>
<!-- 表单按钮 -->
<!-- <template #footer>
<div v-if="!view" class="dialog-footer">
<el-button type="primary" icon="el-icon-circle-check" @click="handleEditSubmit"
> </el-button
>
<el-button icon="el-icon-circle-close" @click="box = false"> </el-button>
</div>
</template> -->
</el-dialog>
<!-- 列表配置显示 -->
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="columnList"
></edittablehead>
</template>
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import functions from '@/utils/functions';
import dayjs from 'dayjs';
import { mapGetters } from 'vuex';
/** 获取字典 */
import { getDictionaryBiz } from '@/api/system/dict';
import { downloadXls, setNodeHeight } from '@/utils/util';
import { columnList, detailsColumnList } from '@/option/distribution/VehicleStowage';
import { useRouter } from 'vue-router';
//
const $router = useRouter();
const details = reactive<any>({
/** 是否开启搜索 */
search: true,
/** 表格搜索条件 */
query: {},
/** 时间快捷选择设置 */
shortcuts: [
{
text: '最近一周',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
return [start, end];
},
},
{
text: '最近一个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
},
},
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
columnList,
detailsColumnList,
/** 列表数据 */
data: [{}],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
list: false,
oldListLoading: false,
},
/** 列表复选框选中的数据 */
selectionList: [],
/** 是否显示设置表格 */
drawerShow: false,
/** 分页参数 */
page: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 装车明细分页参数 */
trickleLoadingPage: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 弹出层显示 */
popUpShow: {
/** 装车详情 */
truckLoadingDetailVisited: false,
/** 零担补录 */
zeroAdditionalRecordingVisited: false,
},
/** 列表Dom节点 */
listNode: '',
form: {},
/** 零担补录信息 */
zeroAdditionalRecordingInfo: {
oldPage: {
pageSize: 30,
currentPage: 1,
total: 0,
},
},
/** 全屏 */
fullscreenObj: {
/** 装车明细 */
truckLoadingDetailPopUp: false,
},
});
const {
search,
query,
shortcuts,
stockupDate,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
} = toRefs(details);
/** vuex */
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList']));
console.log('permission :>> ', permission);
onMounted(() => {
const timer = setTimeout(() => {
details.listNode = document.querySelector('.maboxhi');
details.listNode.style.transition = 'all .5s ease-out';
console.log('details.listNode :>> ', details.listNode);
clearTimeout(timer);
}, 100);
});
/** 请求页面数据 */
const onLoad = (page: any) => {};
/** 搜索 */
const searchChange = () => {
onLoad(details.page);
};
/** 清空表单 */
const searchReset = () => {
details.query = {};
details.stockupDate = [];
details.page.currentPage = 1;
onLoad(details.page);
};
/** 展开列表控件 */
const showdrawer = (_flag?: boolean) => {
details.drawerShow = _flag;
};
/** 是否开启搜索区 */
const searchHide = () => {
function getWinHight() {
var windowHight = 0;
if (document.body.clientHeight && document.documentElement.clientHeight) {
windowHight =
document.body.clientHeight < document.documentElement.clientHeight
? document.body.clientHeight
: document.documentElement.clientHeight;
} else {
}
return document.documentElement.clientHeight;
}
details.search = !details.search;
const timer = setTimeout(() => {
details.listNode.style.height =
getWinHight() - details.listNode.getBoundingClientRect().top - 70 + 'px';
clearTimeout(timer);
}, 10);
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
onLoad(details.page);
};
/** 表格表头时间选择 */
const timesc = (index, row) => {
console.log(index, row);
if (!!index) {
index = dayjs(index).format('YYYY-MM-DD');
}
details.query[row.prop] = index;
if (!index) {
delete details.query[row.prop];
}
onLoad(details.page);
};
/** 表格表头输入框搜索 */
const btnsc = () => {};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
details.query[row.prop] = index;
if (!index) delete details.query[row.prop];
if (row.prop === 'certificateTypeName') {
details.query['certificateType'] = index;
if (!index) delete details.query['certificateType'];
}
onLoad(details.page);
};
/** 表格表头复选框选择 */
const selectionChange = (list: any) => {
details.selectionList = list;
};
/** 每页数量改变执行的回调 */
const sizeChange = (pageSize: number) => {
details.page.pageSize = pageSize;
onLoad(details.page);
};
/** 页码改变执行的回调 */
const currentChange = () => {};
/**
* 设置列表 -- 固定函数
* 弹窗的勾选回调用于更改头部数组
* 固定搭配只需要更换 columnList
* */
const setnewcolum = (newarr, headarr, type) => {
if (type == 1) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'checkList', headarr);
} else if (type == 2) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'flexList', headarr);
} else if (type == 3) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'sortlist', headarr);
}
};
/** 弹出层开启前清除数据 */
const beforeClose = done => {
done();
details.form = {};
details.view = false;
};
/** 显示装车详情 */
const handleShowTruckLoadingDetails = ({ row }) => {
details.popUpShow.truckLoadingDetailVisited = true;
nextTick(() => {
// ,
const _node = document.querySelector('.truckLoadingDetailPopUp .maboxhi');
_node.style.height = '550px';
console.log('_node :>> ', _node);
});
};
/** 显示零担补录 */
const handleShowzeroAdditionalRecording = ({ row }) => {
//
$router.push('/distribution/artery/zeroAdditionalRecording');
};
/**
* 是否开启床车明细全屏
* @params(_type) 开启或关闭
*/
const handleFullScrean = (_type: 'open' | 'close', _name: string) => {
const _node = document.querySelector('.truckLoadingDetailPopUp .maboxhi');
switch (_name) {
case 'truckLoadingDetailPopUp':
details.fullscreenObj.truckLoadingDetailPopUp =
!details.fullscreenObj.truckLoadingDetailPopUp;
const _node = document.querySelector('.truckLoadingDetailPopUp .maboxhi');
if (_type === 'close') {
setNodeHeight(_node, '500px');
} else {
setNodeHeight(_node, '1000px');
}
break;
default:
break;
}
};
</script>
<style scoped lang="scss">
.fo-fl {
display: flex;
flex-wrap: wrap;
zoom: 0.9;
}
//
:deep(.el-date-editor.el-input) {
height: 100% !important;
width: 100% !important;
}
:deep(.el-range-editor.el-input__wrapper) {
height: 100% !important;
}
//
.add_row {
display: flex;
justify-content: space-between;
}
.add_row_title {
text-align: center;
margin-bottom: 10px;
font-size: 18px;
font-weight: bold;
}
//
.statistics_row {
margin: 10px 0;
font-size: 14px;
zoom: 0.9;
display: flex;
> div {
margin-right: 20px;
}
}
//
.crad_container {
display: flex;
.card_container_item {
flex: 1;
// padding: 10px;
border-radius: 5px;
box-shadow: 0 0 5px #ccc;
&:first-child {
margin-right: 20px;
}
.card_container_item_title {
padding: 10px;
border-bottom: 1px solid #ccc;
display: flex;
justify-content: space-between;
align-items: center;
}
.card_container_item_box {
padding: 10px;
}
}
}
</style>

593
src/views/distribution/artery/zeroAdditionalRecording.vue

@ -0,0 +1,593 @@
<template>
<basic-container>
<div class="avue-crud">
<div class="title">发车批次: LQGX</div>
<!-- <div class="add_row">发车批次: LQGX</div> -->
<div class="add_row">
<!-- 列表模块 -->
<div style="width: 47%">
<div class="add_row_title">运单池</div>
<div v-if="!search">
<el-form :inline="true" label-width="80px" :model="details.oldQuery" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="关键词" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="目的网点" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="到站" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="目标品类" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="备注" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="托盘码" class="el-times">
<el-input></el-input>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="searchReset()"
> </el-button
>
<el-button icon="el-icon-delete" @click="searchReset()">重置</el-button>
</el-form-item>
</div>
</el-form>
</div>
<div style="margin-bottom: 10px" class="flex-c-sb">
<!-- 控件 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
<el-button icon="Operation" @click="showdrawer(true, 1)" circle></el-button>
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
<el-button type="text" style="cursor: pointer" @click="handleAddWaybill">
加入调度池
<el-icon><CaretRight /></el-icon>
</el-button>
</div>
<tablecmt
:columnList="details.oldColumnList"
:tableData="details.oldData"
:loading="loadingObj.oldListLoading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
</tablecmt>
<!-- 统计行 -->
<div class="statistics_row">
<!-- <div>合计: 选择数: {{ addInfo.oldSelectionList.length }}</div>
<div>件数: {{ selectionList.length }}</div>
<div>重量: {{ selectionList.length }}</div>
<div>体积: {{ selectionList.length }}</div> -->
</div>
<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="zeroAdditionalRecordingInfo.oldPage.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="zeroAdditionalRecordingInfo.oldPage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="zeroAdditionalRecordingInfo.oldPage.total"
>
</el-pagination>
</div>
</div>
<!-- 列表模块 -->
<div style="width: 47%">
<div class="add_row_title">调度池</div>
<div v-if="!search">
<el-form :inline="true" label-width="80px" :model="details.newQuery" class="el-fr-d">
<div class="fo-fl">
<el-form-item label="关键词" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="目的网点" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="到站" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="目标品类" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="备注" class="el-times">
<el-input></el-input>
</el-form-item>
<el-form-item label="托盘码" class="el-times">
<el-input></el-input>
</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="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="searchReset()"
> </el-button
>
<el-button icon="el-icon-delete" @click="searchReset()">重置</el-button>
</el-form-item>
</div>
</el-form>
</div>
<div style="margin-bottom: 10px" class="flex-c-sb">
<el-button type="text" class="pointer" @click="handleRemoveWaybill">
<el-icon><CaretLeft /></el-icon>
移除调度池
</el-button>
<!-- 控件 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
<el-button icon="Operation" @click="showdrawer(true, 2)" circle></el-button>
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
</div>
</div>
<tablecmt
:columnList="details.newColumnList"
:tableData="details.newData"
:loading="loadingObj.newListLoading"
@inputTxt="newInputsc"
@timeCheck="newTimesc"
@btnCheck="newBtnsc"
@selectCheck="newSelectsc"
@selection="newSelectionChange"
>
</tablecmt>
<div class="statistics_row">
<!-- <div>合计: 选择数: {{ addInfo.oldSelectionList.length }}</div>
<div>件数: {{ selectionList.length }}</div>
<div>重量: {{ selectionList.length }}</div>
<div>体积: {{ selectionList.length }}</div> -->
</div>
</div>
</div>
</div>
</basic-container>
<!-- 提交按钮 -->
<el-button
type="primary"
class="submitBtn"
icon="el-icon-circle-check"
@click="handleEditZeroSubmit"
> </el-button
>
<!-- 列表配置显示 -->
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="details.columnList"
></edittablehead>
</template>
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import functions from '@/utils/functions';
import dayjs from 'dayjs';
import { mapGetters } from 'vuex';
/** 获取字典 */
import { getDictionaryBiz } from '@/api/system/dict';
import { downloadXls } from '@/utils/util';
import { oldColumnList, newColumnList } from '@/option/distribution/zeroAdditionalRecording';
const details = reactive<any>({
/** 是否开启搜索 */
search: true,
/** 运单池搜索条件 */
oldQuery: {},
/** 调度池搜索条件 */
newQuery: {},
/** 时间快捷选择设置 */
shortcuts: [
{
text: '最近一周',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
return [start, end];
},
},
{
text: '最近一个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
},
},
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
columnList: [],
oldColumnList,
newColumnList,
/** 订单池数据 */
oldData: [{}],
/** 调度池数据 */
newData: [],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
list: false,
newListLoading: false,
},
/** 订单池列表复选框选中的数据 */
oldSelectionList: [],
/** 调度池复选框选中数据 */
newSelectionList: [],
/** 是否显示设置表格 */
drawerShow: false,
/** 分页参数 */
page: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 装车明细分页参数 */
trickleLoadingPage: {
currentPage: 1,
pageSize: 30,
total: 0,
},
/** 弹出层显示 */
popUpShow: {
/** 装车详情 */
truckLoadingDetailVisited: false,
/** 零担补录 */
zeroAdditionalRecordingVisited: false,
},
/** 列表Dom节点 */
listNode: '',
form: {},
/** 零担补录信息 */
zeroAdditionalRecordingInfo: {
oldPage: {
pageSize: 30,
currentPage: 1,
total: 0,
},
},
});
const {
search,
query,
shortcuts,
stockupDate,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
} = toRefs(details);
/** vuex */
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList']));
console.log('permission :>> ', permission);
onMounted(() => {
const timer = setTimeout(() => {
details.listNodeList = document.querySelectorAll('.maboxhi');
details.listNodeList.forEach(_node => {
_node.style.transition = 'all .5s ease-out';
});
clearTimeout(timer);
}, 100);
});
/** 请求页面数据 */
const onLoad = (page: any) => {};
/** 搜索 */
const searchChange = () => {
onLoad(details.page);
};
/** 清空表单 */
const searchReset = () => {
details.query = {};
details.stockupDate = [];
details.page.currentPage = 1;
onLoad(details.page);
};
/** 展开列表控件 */
const showdrawer = (_flag?: boolean, _type?: number) => {
switch (_type) {
case 1:
details.columnList = oldColumnList;
break;
case 2:
details.columnList = newColumnList;
break;
}
console.log('details.columnList :>> ', details.columnList);
details.drawerShow = _flag;
};
/** 是否开启搜索区 */
const searchHide = () => {
function getWinHight() {
var windowHight = 0;
if (document.body.clientHeight && document.documentElement.clientHeight) {
windowHight =
document.body.clientHeight < document.documentElement.clientHeight
? document.body.clientHeight
: document.documentElement.clientHeight;
} else {
}
return document.documentElement.clientHeight;
}
details.search = !details.search;
const timer = setTimeout(() => {
details.listNodeList.forEach(_node => {
console.log('_node :>> ', _node);
_node.style.height = getWinHight() - _node.getBoundingClientRect().top - 70 + 'px';
});
clearTimeout(timer);
}, 10);
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
onLoad(details.page);
};
/** 表格表头时间选择 */
const timesc = (index, row) => {
console.log(index, row);
if (!!index) {
index = dayjs(index).format('YYYY-MM-DD');
}
details.query[row.prop] = index;
if (!index) {
delete details.query[row.prop];
}
onLoad(details.page);
};
/** 表格表头输入框搜索 */
const btnsc = () => {};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
details.query[row.prop] = index;
if (!index) delete details.query[row.prop];
if (row.prop === 'certificateTypeName') {
details.query['certificateType'] = index;
if (!index) delete details.query['certificateType'];
}
onLoad(details.page);
};
/** 表格表头复选框选择 */
const selectionChange = (list: any) => {
details.selectionList = list;
};
/** 表格表头输入框搜索 */
const newInputsc = (index, row) => {
details.newQuery[row.prop] = index;
onLoad(details.page);
};
/** 表格表头时间选择 */
const newTimesc = (index, row) => {
console.log(index, row);
if (!!index) {
index = dayjs(index).format('YYYY-MM-DD');
}
details.newQuery[row.prop] = index;
if (!index) {
delete details.newQuery[row.prop];
}
onLoad(details.page);
};
/** 表格表头输入框搜索 */
const newBtnsc = () => {};
/** 表格表头下拉框选择 */
const newSelectsc = (index, row) => {
details.newQuery[row.prop] = index;
if (!index) delete details.newQuery[row.prop];
if (row.prop === 'certificateTypeName') {
details.newQuery['certificateType'] = index;
if (!index) delete details.newQuery['certificateType'];
}
onLoad(details.page);
};
/** 表格表头复选框选择 */
const newSelectionChange = (list: any) => {
details.newSelectionList = list;
};
/** 每页数量改变执行的回调 */
const sizeChange = (pageSize: number) => {
details.page.pageSize = pageSize;
onLoad(details.page);
};
/** 页码改变执行的回调 */
const currentChange = () => {};
/**
* 设置列表 -- 固定函数
* 弹窗的勾选回调用于更改头部数组
* 固定搭配只需要更换 columnList
* */
const setnewcolum = (newarr, headarr, type) => {
if (type == 1) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'checkList', headarr);
} else if (type == 2) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'flexList', headarr);
} else if (type == 3) {
details.columnList = newarr;
functions.setStorage(window.location.pathname + 'sortlist', headarr);
}
};
/** 添加运单 */
const handleAddWaybill = () => {
// if (this.addInfo.oldSelectionList.length === 0) return this.$message.warning('');
// this.addInfo.newData = [...this.addInfo.newData, ...this.addInfo.oldSelectionList];
// this.addInfo.haveIds = this.addInfo.map(val => val.id);
};
/** 移除运单 */
const handleRemoveWaybill = () => {
// if (this.addInfo.newSelectionList.length === 0) return this.$message.warning('');
// this.addInfo.newData = [...this.addInfo.newData, ...this.addInfo.oldSelectionList];
// this.addInfo.haveIds = this.addInfo.map(val => val.id);
};
/** 零担补录提交 */
const handleEditZeroSubmit = () => {
details.popUpShow.zeroAdditionalRecordingVisited = false;
};
</script>
<style scoped lang="scss">
.fo-fl {
display: flex;
flex-wrap: wrap;
zoom: 0.9;
}
//
:deep(.el-date-editor.el-input) {
height: 100% !important;
width: 100% !important;
}
:deep(.el-range-editor.el-input__wrapper) {
height: 100% !important;
}
:deep(.el-form--inline .el-form-item) {
margin-right: 0;
}
//
.add_row {
display: flex;
justify-content: space-between;
}
.add_row_title {
text-align: center;
margin-bottom: 10px;
font-size: 18px;
font-weight: bold;
}
//
.statistics_row {
margin: 10px 0;
font-size: 14px;
zoom: 0.9;
display: flex;
> div {
margin-right: 20px;
}
}
//
.crad_container {
display: flex;
.card_container_item {
flex: 1;
// padding: 10px;
border-radius: 5px;
box-shadow: 0 0 5px #ccc;
&:first-child {
margin-right: 20px;
}
.card_container_item_title {
padding: 10px;
border-bottom: 1px solid #ccc;
display: flex;
justify-content: space-between;
align-items: center;
}
.card_container_item_box {
padding: 10px;
}
}
}
.pointer {
cursor: pointer;
}
//
.submitBtn {
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
}
</style>

1075
src/views/distribution/inventory/BookingNote.vue

File diff suppressed because it is too large Load Diff

2
src/views/distribution/inventory/arteryDistrilbutionBillLadingList.vue

@ -584,7 +584,7 @@
</template>
</el-dialog>
<!-- 新增线路 -->
<!-- 新增节点 -->
<el-dialog
title="新增节点"
v-model="popUpShow.addNewNodeVisited"

522
src/views/distribution/inventory/carry/distributionStockCarry.vue

@ -1,7 +1,7 @@
<template>
<basic-container>
<div class="avue-crud">
<el-row v-if="!search" style="padding:6px 18px">
<el-row v-if="!search" style="padding: 6px 18px">
<!-- 查询模块 -->
<el-form :inline="true" :model="query">
<el-form-item label="商场名称:">
@ -22,12 +22,12 @@
<el-form-item label="服务类型:">
<el-input v-model="query.typeService" placeholder="请输入服务类型"></el-input>
</el-form-item>
<!-- <el-form-item label="类型;1 预约单 2库存单:">-->
<!-- <el-input v-model="query.genre" placeholder="请输入类型;1 预约单 2库存单"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="状态;1 配送 2 待配送:">-->
<!-- <el-input v-model="query.state" placeholder="请输入状态;1 配送 2 待配送"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="类型;1 预约单 2库存单:">-->
<!-- <el-input v-model="query.genre" placeholder="请输入类型;1 预约单 2库存单"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="状态;1 配送 2 待配送:">-->
<!-- <el-input v-model="query.state" placeholder="请输入状态;1 配送 2 待配送"></el-input>-->
<!-- </el-form-item>-->
<!-- 查询按钮 -->
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
@ -39,89 +39,123 @@
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" icon="el-icon-plus" @click="handleAdd" > 商配</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain>市配</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handlePickUpStore" v-if="permission.stockArticle_add" >自提</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"> 商配</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain
>市配</el-button
>
<el-button
type="primary"
icon="el-icon-plus"
@click="handlePickUpStore"
v-if="permission.stockArticle_add"
>自提</el-button
>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete">全部</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAdd">未通知</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete">已通知</el-button>
</div>
<!-- 头部右侧按钮模块 -->
<!-- <div class="avue-crud__right">-->
<!-- <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>-->
<!-- <el-button icon="el-icon-search" @click="searchHide" circle></el-button>-->
<!-- </div>-->
<!-- <div class="avue-crud__right">-->
<!-- <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>-->
<!-- <el-button icon="el-icon-search" @click="searchHide" circle></el-button>-->
<!-- </div>-->
</div>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" icon="el-icon-plus" @click="handleAdd">创建异常</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete" >转预约单</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleStockList">批量加配转库存品</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('3')" >修改客户信息</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('2')" >修改服务类型</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete"
>转预约单</el-button
>
<el-button type="primary" icon="el-icon-plus" @click="handleStockList"
>批量加配转库存品</el-button
>
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('3')"
>修改客户信息</el-button
>
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('2')"
>修改服务类型</el-button
>
</div>
<div class="avue-crud__left">
<el-button type="primary" icon="el-icon-plus" @click="handlebill">创建提货单</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('1')" >再次通知</el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleCallDelivery('1')">通知提货</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleCallDelivery('1')"
>再次通知</el-button
>
<el-button type="primary" icon="el-icon-plus" @click="handleCallDelivery('1')"
>通知提货</el-button
>
</div>
<!-- 头部右侧按钮模块 -->
<!-- <div class="avue-crud__right">-->
<!-- <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>-->
<!-- <el-button icon="el-icon-search" @click="searchHide" circle></el-button>-->
<!-- </div>-->
<!-- <div class="avue-crud__right">-->
<!-- <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>-->
<!-- <el-button icon="el-icon-search" @click="searchHide" circle></el-button>-->
<!-- </div>-->
</div>
</el-row>
<el-row>
<!-- 列表模块 -->
<el-table ref="table" v-loading="loading"
@selection-change="selectionChange"
:data="data"
:height="height"
style="width: 100%"
:border="option.border">
<el-table-column type="selection" v-if="option.selection" width="55" align="center"></el-table-column>
<el-table
ref="table"
v-loading="loading"
@selection-change="selectionChange"
:data="data"
:height="height"
style="width: 100%"
:border="option.border"
>
<el-table-column
type="selection"
v-if="option.selection"
width="55"
align="center"
></el-table-column>
<el-table-column type="expand" v-if="option.expand" align="center"></el-table-column>
<el-table-column v-if="option.index" label="序号" type="index" width="60" align="center">
</el-table-column>
<template v-for="(item,index) in option.column">
<template v-for="(item, index) in option.column">
<!-- table字段 -->
<el-table-column v-if="item.hide!==true"
:prop="item.prop"
:label="item.label"
:width="item.width"
:key="index">
<el-table-column
v-if="item.hide !== true"
:prop="item.prop"
:label="item.label"
:width="item.width"
:key="index"
>
</el-table-column>
</template>
<!-- 操作栏模块 -->
<el-table-column prop="menu" label="操作" :width="220" align="center">
<template #="{row}">
<el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>
<el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
<!-- <el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>-->
<template #="{ row }">
<el-button type="primary" text icon="el-icon-view" @click="handleView(row)"
>查看</el-button
>
<el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)"
>编辑</el-button
>
<!-- <el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>-->
</template>
</el-table-column>
</el-table>
</el-row>
<el-row>
<div class="avue-crud__pagination" style="width:100%">
<div class="avue-crud__pagination" style="width: 100%">
<!-- 分页模块 -->
<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>
<!-- 提货通知 -->
<el-dialog v-model="dialogFormVisible" title="通知提货">
<el-form :model="formCall">
<el-form-item label="顾客姓名" :label-width="formLabelWidth">
@ -141,29 +175,29 @@
placeholder="请填写内容"
/>
</el-form-item>
<el-form-item label="历史跟进" :label-width="formLabelWidth">
</el-form-item>
<el-form-item label="历史跟进" :label-width="formLabelWidth"> </el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>-->
<el-button type="primary" @click="callFordelivery('1')"> 确定 </el-button>
</span>
<span class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>-->
<el-button type="primary" @click="callFordelivery('1')"> 确定 </el-button>
</span>
</template>
</el-dialog>
<!-- 修改服务类型 -->
<el-dialog v-model="dialogFormService" title="修改服务类型">
<el-form :model="formService">
<el-form-item label="服务类型" :label-width="formLabelWidth">
<!-- <el-input v-model="formService.typeService" autocomplete="off" />-->
<!-- <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">
v-for="item in distributionType"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
>
</el-option>
</el-select>
</el-form-item>
@ -180,13 +214,15 @@
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogFormService = false">取消</el-button>
<!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>-->
<el-button type="primary" @click="callFordelivery('2')"> 确定 </el-button>
</span>
<span class="dialog-footer">
<el-button @click="dialogFormService = false">取消</el-button>
<!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>-->
<el-button type="primary" @click="callFordelivery('2')"> 确定 </el-button>
</span>
</template>
</el-dialog>
<!-- 修改客户信息 -->
<el-dialog v-model="dialogFormCustomer" title="修改客户信息">
<el-form :model="formCustomer">
<el-form-item label="姓名" :label-width="formLabelWidth">
@ -205,38 +241,41 @@
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogFormCustomer = false">取消</el-button>
<!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>-->
<el-button type="primary" @click="callFordelivery('3')"> 确定 </el-button>
</span>
<span class="dialog-footer">
<el-button @click="dialogFormCustomer = false">取消</el-button>
<!-- <el-button type="primary" @click="dialogFormVisible = false"> 确定 </el-button>-->
<el-button type="primary" @click="callFordelivery('3')"> 确定 </el-button>
</span>
</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">
<el-input v-model="form.serviceNumber" placeholder="请输入服务号"/>
<el-input v-model="form.serviceNumber" placeholder="请输入服务号" />
</el-form-item>
<el-form-item label="订单自编号" prop="orderCode">
<el-input v-model="form.orderCode" placeholder="请输入订单自编号"/>
<el-input v-model="form.orderCode" placeholder="请输入订单自编号" />
</el-form-item>
<el-form-item label="商场名称" prop="mallName">
<el-input v-model="form.mallName" placeholder="请输入商场名称"/>
<el-input v-model="form.mallName" placeholder="请输入商场名称" />
</el-form-item>
<el-form-item label="货物名称" prop="descriptionGoods">
<el-input v-model="form.descriptionGoods" placeholder="请输入货物名称"/>
<el-input v-model="form.descriptionGoods" placeholder="请输入货物名称" />
</el-form-item>
<el-form-item label="仓库" prop="warehouse">
<el-input v-model="form.warehouse" placeholder="请输入仓库"/>
<el-input v-model="form.warehouse" placeholder="请输入仓库" />
</el-form-item>
<el-form-item label="入库时间" prop="warehouseEntryTime">
<!-- <el-input v-model="form.warehouseEntryTime" placeholder="请输入入库时间"/>-->
<!-- <el-input v-model="form.warehouseEntryTime" placeholder="请输入入库时间"/>-->
<el-date-picker
v-model="form.warehouseEntryTime"
type="datetime"
@ -246,71 +285,71 @@
/>
</el-form-item>
<el-form-item label="在库时长" prop="storeTime">
<el-input v-model="form.storeTime" placeholder="请输入在库时长"/>
<el-input v-model="form.storeTime" placeholder="请输入在库时长" />
</el-form-item>
<el-form-item label="订单总件数" prop="totalNumber">
<el-input v-model="form.totalNumber" placeholder="请输入订单总件数"/>
<el-input v-model="form.totalNumber" placeholder="请输入订单总件数" />
</el-form-item>
<el-form-item label="在库件数" prop="handQuantity">
<el-input v-model="form.handQuantity" placeholder="请输入在库件数"/>
<el-input v-model="form.handQuantity" placeholder="请输入在库件数" />
</el-form-item>
<el-form-item label="是否齐套" prop="completeSet">
<el-select v-model="form.completeSet" clearable placeholder="请选择是否齐套">
<!-- <el-option-->
<!-- v-for="item in completeSetData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<!-- <el-option-->
<!-- v-for="item in completeSetData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<el-option label="是" value="2"></el-option>
<el-option label="否" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="品牌" prop="brand">
<el-input v-model="form.brand" placeholder="请输入品牌"/>
<el-input v-model="form.brand" placeholder="请输入品牌" />
</el-form-item>
<el-form-item label="服务类型" prop="typeService">
<el-select v-model="form.typeService" clearable placeholder="请选择服务类型">
<!-- <el-option-->
<!-- v-for="item in typeServiceData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<!-- <el-option-->
<!-- v-for="item in typeServiceData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<el-option label="干" value="1"></el-option>
<el-option label="仓" value="2"></el-option>
<el-option label="配" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="顾客名字" prop="customerName">
<el-input v-model="form.customerName" placeholder="请输入顾客名字"/>
<el-input v-model="form.customerName" placeholder="请输入顾客名字" />
</el-form-item>
<el-form-item label="顾客电话" prop="customerTelephone">
<el-input v-model="form.customerTelephone" placeholder="请输入顾客电话"/>
<el-input v-model="form.customerTelephone" placeholder="请输入顾客电话" />
</el-form-item>
<el-form-item label="顾客地址" prop="customerAddress">
<el-input v-model="form.customerAddress" placeholder="请输入顾客地址"/>
<el-input v-model="form.customerAddress" placeholder="请输入顾客地址" />
</el-form-item>
<el-form-item label="类型;1 预约单 2库存单" prop="genre">
<el-select v-model="form.genre" clearable placeholder="请选择类型;1 预约单 2库存单">
<!-- <el-option-->
<!-- v-for="item in genreData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<!-- <el-option-->
<!-- v-for="item in genreData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<el-option label="库存单" value="2">库存单</el-option>
<el-option label="预约单" value="1">预约单</el-option>
</el-select>
</el-form-item>
<el-form-item label="状态;1 配送 2 待配送" prop="state">
<el-select v-model="form.state" clearable placeholder="请选择状态;1 配送 2 待配送">
<!-- <el-option-->
<!-- v-for="item in stateData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<!-- <el-option-->
<!-- v-for="item in stateData"-->
<!-- :key="item.dictKey"-->
<!-- :label="item.dictValue"-->
<!-- :value="item.dictKey">-->
<!-- </el-option>-->
<el-option label="待配送" value="2">待配送</el-option>
<el-option label="配送" value="1">配送</el-option>
</el-select>
@ -319,7 +358,9 @@
<!-- 表单按钮 -->
<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>
@ -329,16 +370,23 @@
</template>
<script>
import { getList, getDetail, add, update, remove,addStock } from "@/api/distribution/distributionStockArticle";
import { addCallDelivery } from "@/api/distribution/distrilbutionCallDelivery";
import { addClient } from "@/api/distribution/distributionClientMessage";
import { addService } from "@/api/distribution/distributionServiceLog";
import option from "@/option/distribution/distributionStockArticle";
import { mapGetters } from "vuex";
import {
getList,
getDetail,
add,
update,
remove,
addStock,
} from '@/api/distribution/distributionStockArticle';
import { addCallDelivery } from '@/api/distribution/distrilbutionCallDelivery';
import { addClient } from '@/api/distribution/distributionClientMessage';
import { addService } from '@/api/distribution/distributionServiceLog';
import option from '@/option/distribution/distributionStockArticle';
import { mapGetters } from 'vuex';
import { getDictionaryBiz } from '@/api/system/dict';
export default {
data () {
data() {
return {
height: 0,
//
@ -357,11 +405,11 @@ export default {
page: {
currentPage: 1,
pageSize: 30,
total: 40
total: 40,
},
//
form: {},
formCall: {},//
formCall: {}, //
formService: {}, //
formCustomer: {}, //
//
@ -375,41 +423,41 @@ export default {
dialogFormVisible: false,
dialogFormCustomer: false,
dialogFormService: false,
formLabelWidth: '120px'
}
formLabelWidth: '120px',
};
},
mounted () {
mounted() {
this.init();
this.onLoad(this.page);
},
computed: {
...mapGetters(["permission"]),
...mapGetters(['permission']),
permissionList() {
return {
addBtn: this.validData(this.permission.basicdataBrandCategory_add, false),
viewBtn: this.validData(this.permission.basicdataBrandCategory_view, false),
delBtn: this.validData(this.permission.basicdataBrandCategory_delete, false),
editBtn: this.validData(this.permission.basicdataBrandCategory_edit, false)
editBtn: this.validData(this.permission.basicdataBrandCategory_edit, false),
};
},
ids () {
ids() {
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.id);
});
return ids.join(",");
}
return ids.join(',');
},
},
methods: {
handleStockList(){
handleStockList() {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
this.$message.warning('请选择至少一条数据');
return;
}
this.$confirm("确定将选择的订单转为库存品吗?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
this.$confirm('确定将选择的订单转为库存品吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return addStock(this.ids);
@ -418,115 +466,109 @@ export default {
this.selectionClear();
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
});
},
//
callFordelivery(inde){
callFordelivery(inde) {
switch (inde) {
case '1':
console.log(this.formCall);
this.formCall.waybillNumber = this.ids;
this.formCall.waybillNumber = this.ids;
addCallDelivery(this.formCall).then(() => {
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
this.dialogFormVisible = false;
this.formCall={}
this.formCall = {};
});
break;
case '2':
// console.log("",this.formService);
addService(this.formService).then(() =>{
addService(this.formService).then(() => {
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
this.dialogFormService = false;
this.formService={}
})
this.formService = {};
});
break;
case '3':
console.log("客户信息!!!",this.formCustomer);
console.log('客户信息!!!', this.formCustomer);
this.formCustomer.stockArticleId = this.ids;
addClient(this.formCustomer).then(() =>{
addClient(this.formCustomer).then(() => {
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
this.dialogFormCustomer = false;
this.formCustomer={}
})
this.formCustomer = {};
});
break;
}
},
//
handlebill(row){
console.log(">>>>",this.ids);
handlebill(row) {
console.log('>>>>', this.ids);
this.$router.push({
path: '/distribution/inventory/distrilbutionBillLading',
query:{
query: {
id: this.ids,
}
},
});
},
//
handleCallDelivery(ind){
handleCallDelivery(ind) {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
this.$message.warning('请选择至少一条数据');
return;
}
switch (ind) {
case '1':
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.orderCode);
});
this.formCall.waybill = ids;
this.dialogFormVisible = true;
break;
case '2':
this.dialogFormService = true;
break;
case '3':
this.dialogFormCustomer = true;
break;
case '1':
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.orderCode);
});
this.formCall.waybill = ids;
this.dialogFormVisible = true;
break;
case '2':
this.dialogFormService = true;
break;
case '3':
this.dialogFormCustomer = true;
break;
}
},
init () {
init() {
this.height = this.setPx(document.body.clientHeight - 340);
getDictionaryBiz('distribution_type').then(res => {
this.distributionType = res.data.data;
});
},
searchHide () {
searchHide() {
this.search = !this.search;
},
searchChange () {
searchChange() {
this.onLoad(this.page);
},
searchReset () {
searchReset() {
this.query = {};
this.page.currentPage = 1;
this.onLoad(this.page);
},
handleSubmit () {
handleSubmit() {
if (!this.form.id) {
add(this.form).then(() => {
this.box = false;
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
});
} else {
@ -534,55 +576,57 @@ export default {
this.box = false;
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
})
});
}
},
//
handlePickUpStore(){
handlePickUpStore() {
this.loading = true;
// console.log("this.query",this.query);
let params = {};
this.query.typeService = '1';
getList(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
this.selectionClear();
});
getList(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(
res => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
this.selectionClear();
}
);
},
handleAdd () {
this.title = '新增'
this.form = {}
this.box = true
handleAdd() {
this.title = '新增';
this.form = {};
this.box = true;
},
handleEdit (row) {
this.title = '编辑'
this.box = true
handleEdit(row) {
this.title = '编辑';
this.box = true;
getDetail(row.id).then(res => {
this.form = res.data.data;
});
},
handleView (row) {
this.title = '查看'
handleView(row) {
this.title = '查看';
this.view = true;
this.box = true;
getDetail(row.id).then(res => {
this.form = res.data.data;
});
},
handleDelete () {
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
this.$message.warning('请选择至少一条数据');
return;
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return remove(this.ids);
@ -591,16 +635,16 @@ export default {
this.selectionClear();
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
});
},
rowDel (row) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return remove(row.id);
@ -608,33 +652,33 @@ export default {
.then(() => {
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
type: 'success',
message: '操作成功!',
});
});
},
beforeClose (done) {
done()
beforeClose(done) {
done();
this.form = {};
this.view = false;
},
selectionChange (list) {
selectionChange(list) {
// console.log("",list);
this.selectionList = list;
},
selectionClear () {
selectionClear() {
this.selectionList = [];
// this.$refs.table.clearSelection();
},
currentChange (currentPage) {
currentChange(currentPage) {
this.page.currentPage = currentPage;
this.onLoad(this.page);
},
sizeChange (pageSize) {
sizeChange(pageSize) {
this.page.pageSize = pageSize;
this.onLoad(this.page);
},
onLoad (page, params = {}) {
onLoad(page, params = {}) {
this.loading = true;
this.query.genre = 1;
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
@ -644,8 +688,8 @@ export default {
this.loading = false;
this.selectionClear();
});
}
}
},
},
};
</script>
<style scoped>

2
src/views/distribution/inventory/distributionPrint.vue

@ -48,7 +48,7 @@
</template>
<!-- 操作栏模块 -->
<el-table-column prop="menu" label="操作" :width="220" align="center">
<template #="{row}">
<template #default="{row}">
<el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>
<el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
<el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>

2
src/views/distribution/inventory/distributionServiceLog.vue

@ -48,7 +48,7 @@
</template>
<!-- 操作栏模块 -->
<el-table-column prop="menu" label="操作" :width="220" align="center">
<template #="{row}">
<template #default="{row}">
<el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>
<el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
<el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>

2
src/views/distribution/inventory/distributionStockListInfo.vue

@ -48,7 +48,7 @@
</template>
<!-- 操作栏模块 -->
<el-table-column prop="menu" label="操作" :width="220" align="center">
<template #="{row}">
<template #default="{row}">
<el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>
<el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
<el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>

40
src/views/distribution/inventory/distributionStockListMarket.vue

@ -381,17 +381,17 @@ export default {
label: '货物名称',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'cargoNumber',
label: '货物编号',
label: '物料编码',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -401,7 +401,7 @@ export default {
// label: '',
// type: 2,
// values: '',
// width: '130',
// width: '140',
// checkarr: [],
// fixed: false,
// sortable: true,
@ -411,7 +411,7 @@ export default {
label: '入库批次',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -421,7 +421,7 @@ export default {
// label: '',
// type: 2,
// values: '',
// width: '130',
// width: '140',
// checkarr: [],
// fixed: false,
// sortable: true,
@ -431,7 +431,7 @@ export default {
label: '库存数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -441,7 +441,7 @@ export default {
label: '冻结数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -451,7 +451,7 @@ export default {
label: '出库数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -461,7 +461,7 @@ export default {
label: '物流发运车次',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -471,7 +471,7 @@ export default {
// label: '',
// type: 2,
// values: '',
// width: '130',
// width: '140',
// checkarr: [],
// fixed: false,
// sortable: true,
@ -481,7 +481,7 @@ export default {
label: '品牌',
type: 2,
values: '',
width: '130',
width: '120',
checkarr: [],
fixed: false,
sortable: true,
@ -491,7 +491,7 @@ export default {
label: '商场/客户',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -501,7 +501,7 @@ export default {
label: '门店名称',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -531,7 +531,7 @@ export default {
label: '所在托盘',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -541,7 +541,7 @@ export default {
label: '仓库名称',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -551,7 +551,7 @@ export default {
label: '物料单位',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -561,7 +561,7 @@ export default {
label: '包装数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -571,7 +571,7 @@ export default {
label: '拆包数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -581,7 +581,7 @@ export default {
label: '拆包状态',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [
{
value: `true`,

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

@ -833,17 +833,17 @@ export default {
sortable: true,
head: false,
},
{
prop: 'materialId',
label: '物料ID',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'materialId',
// label: 'ID',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'descriptionGoods',
label: '物料名称',

97
src/views/distribution/signfor/distributionSignfor.vue

@ -115,6 +115,7 @@
<el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain
>导出
</el-button>
<!-- v-loading.fullscreen.lock="fullscreenLoading"-->
<el-button type="danger" icon="el-icon-picture" @click="handlePictureInfo" plain
>导出图片
</el-button>
@ -215,9 +216,29 @@
</span>
</template>
</el-dialog>
<el-dialog
title="提示"
v-model="dialogVisible"
width="15%"
:before-close="handleClose">
<div align="center">
<el-progress type="circle" :percentage="fileSize" status="success"></el-progress>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</basic-container>
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
@ -572,6 +593,7 @@ export default {
// ...
],
columnListedit: [],
dialogVisible: false,
drawerShow: false,
height: 0,
//
@ -592,6 +614,7 @@ export default {
signingStatusData: [],
//
deliveryTypeData: [],
fullscreenLoading:false,
//
orderSourceData: [],
//
@ -609,6 +632,7 @@ export default {
//
data: [],
driverData: [],
fileSize:0,
};
},
mounted() {
@ -722,6 +746,9 @@ export default {
// if (!!this.ids) {
// row.ids = this.ids;
// }
// const h = this.$createElement;
console.log("this.selectionList>>>>>>>>>>",this.selectionList);
if (this.selectionList.length < 1){
this.$message({
@ -729,16 +756,69 @@ export default {
message: '请选择签收记录!',
});
}
const idList= this.selectionList.map(item=>{
return item.id
})
console.log(idList);
const ids = idList.join(',');
console.log("ids>>>>>>>>>>>>",ids);
handlePicture(ids).then(res=>{
console.log("res><>>>>>>>>>>>>>",res);
const idList= this.selectionList.map(item=>{
console.log('>>>>>>>>>',item);
return{id:item.id,reservationCode:item.reservationCode,client:item.consignee}
})
const _arr = [];
console.log(idList);
if (idList.length > 0){
// this.fullscreenLoading = true;
// this.dialogVisible = true;
idList.forEach(item=>{
return _arr.push(handlePicture(item.id));
})
console.log('arr>>>>>>>>>>>>>>>>>>>>',_arr);
function delayedTimer() {
console.log('Delayed timer executed!');
}
const timerId = setTimeout(delayedTimer, 500);
Promise.all(_arr).then((response)=>{
console.log('response>>>>>>>>>>>>>>>>>>>>>',response);
response.forEach((res, index) =>{
console.log('res>>>>>>>>>>>>>>>>>>>>>',res.data);
if (res.data.size > 0){
const _item = idList[index];
const blob = new Blob([res.data], {type: 'application/zip'});
let a = document.createElement("a");
a.href = window.URL.createObjectURL(blob);
// a.href = 'http://192.168.10.25:2888/D:/Test';
a.download = _item.client +'-'+_item.reservationCode +".zip";
// a.download = 'aaa' + ".zip";
a.style.display = "none";
document.body.appendChild(a);
a.click(); // aahref
a.remove();
}
})
for (let i = 0; i < 100; i++) {
this.fileSize = i;
}
// this.dialogVisible = false;
setTimeout(() => {
clearTimeout(timerId);
console.log('延迟执行完成');
this.fullscreenLoading = false;
this.$notify({
title: '提示',
message: ('i', { style: 'color: teal'}, '开始下载...')
});
}, 3000);
})
// 3
}
// row.signingStatus = '2';
// row = { ...row, ...this.query };
@ -748,6 +828,7 @@ export default {
// downloadXls(res.data, '.xlsx');
// });
},
showdrawer(value) {
this.drawerShow = value;
},

92
src/views/warehouse/warehousesignedorder/distributionStockArticle.vue

@ -115,7 +115,7 @@ export default {
label: '服务号',
type: 2,
values: '',
width: '130',
width: '160',
checkarr: [],
fixed: true,
sortable: true,
@ -126,7 +126,7 @@ export default {
label: '运单号',
type: 2,
values: '',
width: '130',
width: '160',
checkarr: [],
fixed: true,
sortable: true,
@ -137,7 +137,7 @@ export default {
label: '订单自编号',
type: 2,
values: '',
width: '130',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
@ -147,7 +147,7 @@ export default {
label: '商场名称',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -157,7 +157,7 @@ export default {
label: '货物名称',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -167,7 +167,7 @@ export default {
label: '所在仓库',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -177,7 +177,7 @@ export default {
label: '入库时间',
type: 4,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -187,7 +187,7 @@ export default {
label: '在库时间',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -197,7 +197,7 @@ export default {
label: '订单总件数',
type: 1,
values: '',
width: '130',
width: '160',
checkarr: [],
fixed: false,
sortable: true,
@ -207,7 +207,7 @@ export default {
label: '收货单位',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -227,7 +227,7 @@ export default {
label: '在库件数',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -237,7 +237,7 @@ export default {
label: '可用数量',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -247,7 +247,7 @@ export default {
label: '未入库数量',
type: 1,
values: '',
width: '130',
width: '160',
checkarr: [],
fixed: false,
sortable: true,
@ -257,7 +257,7 @@ export default {
label: '分拣数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -267,7 +267,7 @@ export default {
label: '配送数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -277,7 +277,7 @@ export default {
label: '中转数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -287,7 +287,7 @@ export default {
label: '签收数量',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -297,7 +297,7 @@ export default {
label: '上架状态',
type: 3,
values: '',
width: '130',
width: '140',
checkarr: [
// {
// value: '0',
@ -323,7 +323,7 @@ export default {
// label: '--',
// type: 1,
// values: '',
// width: '130',
// width: '140',
// checkarr: [],
// fixed: false,
// sortable: true,
@ -333,7 +333,7 @@ export default {
label: '订单来源',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -343,7 +343,7 @@ export default {
// label: '',
// type: 1,
// values: '',
// width: '130',
// width: '140',
// checkarr: [],
// fixed: false,
// sortable: true,
@ -353,7 +353,7 @@ export default {
// label: '',
// type: 3,
// values: '',
// width: '130',
// width: '140',
// checkarr: [
// // {
// // value: '1',
@ -372,7 +372,7 @@ export default {
label: '订单状态',
type: 3,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -382,7 +382,7 @@ export default {
label: '预约状态',
type: 3,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -392,7 +392,7 @@ export default {
// label: '',
// type: 3,
// values: '',
// width: '130',
// width: '140',
// checkarr: [],
// fixed: false,
// sortable: true,
@ -402,7 +402,7 @@ export default {
label: '是否齐套',
type: 3,
values: '',
width: '130',
width: '140',
checkarr: [
{
value: '2',
@ -421,7 +421,7 @@ export default {
// label: '',
// type: 2,
// values: '',
// width: '130',
// width: '140',
// checkarr: [],
// fixed: false,
// sortable: true,
@ -431,7 +431,7 @@ export default {
label: '服务类型',
type: 3,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -441,7 +441,7 @@ export default {
label: '顾客名字',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -451,7 +451,7 @@ export default {
label: '顾客电话',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -461,7 +461,7 @@ export default {
label: '顾客地址',
type: 2,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -471,7 +471,7 @@ export default {
label: '配送司机',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -481,7 +481,7 @@ export default {
label: '增值服务',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -501,7 +501,7 @@ export default {
label: '创建时间',
type: 1,
values: '',
width: '130',
width: '140',
checkarr: [],
fixed: false,
sortable: true,
@ -756,7 +756,6 @@ export default {
}
let st = false;
this.selectionList.forEach(i => {
console.log('yuyuyuuyu', i);
if (i.reservationStatusName === '已预约') {
st = true;
this.$message.warning(i.orderCode + ' - 已预约,请勿重复预约!!!');
@ -841,28 +840,6 @@ export default {
}
}
/*else if (this.selectionList.length > 1){
this.getSock();
}else if (this.selectionList.length < 2){
//
let params ={
stockArticleId : this.selectionList[0].id
}
let a = await getListOwn(this.page.currentPage,this.page.pageSize,params);
// console.log("aaaaaaa===",a.data.data);
if(a.data.data.records.length > 0){
this.$router.push({
path: '/distribution/inventory/distributionStockArticleFrom',
query: {
id : this.ids,
name : "转库存单"
}
});
}else{
this.getSock();
}
}*/
},
getSock() {
this.$confirm('确定将选择的订单转为库存品吗?', {
@ -1248,7 +1225,6 @@ export default {
(this.query.orderStatus = 80),
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
const data = res.data.data;
console.log('>>>>>>>', data.records);
this.page.total = data.total;
this.data = data.records;
this.data = this.data.map(i => {

6
vite.config.js

@ -20,9 +20,11 @@ export default ({ mode, command }) => {
// target: 'http://192.168.10.101:8888',
// 老zyc
// target: 'http://192.168.10.75:8777',
// 新zyc
target: 'http://192.168.6.137:8777',
// 新zyc
// target: 'http://192.168.10.200:13000',
// tjj
// target: 'http://192.168.10.25:13000',
// target: 'http://192.168.10.94:8888',
// target: 'http://test.api.huitongys.com',
// target: 'http://h5uapi.huitongys.com',

Loading…
Cancel
Save