马远东 1 year ago
parent
commit
72edf979bd
  1. 11
      src/api/distribution/AddVehicleStowage.js
  2. 12
      src/components/tablecmt/tablecmt.vue
  3. 10
      src/option/distribution/TripartiteTransfer.js
  4. 4
      src/option/distribution/VehicleArrivalManagement.js
  5. 12
      src/option/distribution/VehicleStowage.js
  6. 4
      src/page/index/top/index.vue
  7. 14
      src/router/views/index.js
  8. 50
      src/views/basic/material/basicMaterial.vue
  9. 3
      src/views/basicdata/warehouse/tray/basicdataTray.vue
  10. 56
      src/views/distribution/artery/AddVehicleStowage.vue
  11. 63
      src/views/distribution/artery/TripartiteTransfer.vue
  12. 29
      src/views/distribution/artery/TripartiteTransferDetails.vue
  13. 83
      src/views/distribution/artery/VehicleArrivalManagement.vue
  14. 54
      src/views/distribution/artery/VehicleStowage.vue
  15. 1000
      src/views/distribution/artery/VehicleStowageDetails.vue
  16. 9
      src/views/distribution/artery/addTripartiteTransfer.vue
  17. 11
      src/views/distribution/deliverylist/distributionDeliveryListedt.vue
  18. 143
      src/views/distribution/inventory/BookingNote.vue
  19. 10
      vite.config.js

11
src/api/distribution/AddVehicleStowage.js

@ -142,4 +142,15 @@ export const postUpdateCarsLoadBasicData = data => {
data,
});
};
/**
* 修改配载节点费用
*/
export const postUpdateLoadFeeByNodeId = data => {
return request({
url: '/api/logpm-trunkline/carsLoad/updateLoadFeeByNodeId',
method: 'post',
data,
});
};
//

12
src/components/tablecmt/tablecmt.vue

@ -39,7 +39,7 @@
<template #header>
<!-- <el-text class="mx-1">{{ column.label }}</el-text> -->
<el-input
v-if="column.type == 2 || column.type == 13"
v-if="column.type == 2"
v-model.trim="column.values"
clearable
:placeholder="`请输入${column.label}`"
@ -175,6 +175,7 @@
<script lang="ts" setup>
import { computed, ref, watchEffect, getCurrentInstance, onMounted, defineExpose } from 'vue';
import type { PropType } from 'vue';
import { computeNumber } from '@/utils/util.js';
const { proxy } = getCurrentInstance() as any;
const selecttable = ref(null);
/**
@ -296,6 +297,11 @@ let props = defineProps({
required: false,
default: null,
},
tableRowClassName: {
type: Function as PropType<(row: TableDataType, rowIndex: number) => string>,
required: false,
default: null,
},
});
let selectarr = ref([]);
const tableRowClassName = ({ row, rowIndex }: { row: TableDataType; rowIndex: number }) => {
@ -308,6 +314,8 @@ const tableRowClassName = ({ row, rowIndex }: { row: TableDataType; rowIndex: nu
if (sfcheck) {
return 'table-SelectedRow-bgcolor';
}
if (props.tableRowClassName) return props.tableRowClassName(row, rowIndex);
return '';
};
let emit = defineEmits(['inputTxt', 'timeCheck', 'selectCheck', 'selection', 'makeCargo']);
@ -463,7 +471,7 @@ const getSummaries = (param: any) => {
tji = 0;
if (props.columnList[index]?.isshowSummary) {
data.map(ite => {
tji += Number(ite[props.columnList[index]?.prop] || 0);
tji = computeNumber(tji, '+', Number(ite[props.columnList[index]?.prop] || 0)).result;
});
newarr[index] = tji;
// shownm.value=true

10
src/option/distribution/TripartiteTransfer.js

@ -47,7 +47,7 @@ export const columnList = [
sortable: true,
},
{
prop: 'payMethod',
prop: 'payMethodName',
label: '付款方式',
type: 1,
values: '',
@ -97,7 +97,7 @@ export const columnList = [
sortable: true,
},
{
prop: 'loadStatus',
prop: 'loadStatusName',
label: '状态',
type: 1,
values: '',
@ -107,7 +107,7 @@ export const columnList = [
sortable: true,
},
{
prop: 'isSettlement',
prop: 'isSettlementName',
label: '是否结算',
type: 1,
values: '',
@ -117,7 +117,7 @@ export const columnList = [
sortable: true,
},
{
prop: 'customerType',
prop: 'customerTypeName',
label: '客户类型',
type: 1,
values: '',
@ -157,7 +157,7 @@ export const columnList = [
sortable: true,
},
{
prop: 'deliveryType',
prop: 'deliveryTypeName',
label: '送货方式',
type: 1,
values: '',

4
src/option/distribution/VehicleArrivalManagement.js

@ -109,9 +109,9 @@ export const columnList = [
// sortable: true,
// },
{
prop: 'loadStatus',
prop: 'loadStatusName',
label: '车辆状态',
type: 1,
type: 13,
values: '',
width: '130',
checkarr: [],

12
src/option/distribution/VehicleStowage.js

@ -17,7 +17,7 @@ export const columnList = [
{
prop: 'waybillNo',
label: '批次号',
type: 6,
type: 13,
values: '',
width: '150',
checkarr: [],
@ -28,7 +28,7 @@ export const columnList = [
{
prop: 'carsLineName',
label: '路线',
type: 6,
type: 13,
values: '',
width: '250',
checkarr: [],
@ -122,7 +122,7 @@ export const columnList = [
{
prop: 'loadStatusName',
label: '车辆状态',
type: 1,
type: 13,
values: '',
width: '130',
checkarr: [],
@ -405,7 +405,7 @@ export const detailsColumnList = [
{
prop: 'orderCode',
label: '运单号',
type: 6,
type: 13,
values: '',
width: '150',
checkarr: [],
@ -416,7 +416,7 @@ export const detailsColumnList = [
{
prop: 'orderCode',
label: '合同号',
type: 6,
type: 13,
values: '',
width: '150',
checkarr: [],
@ -427,7 +427,7 @@ export const detailsColumnList = [
{
prop: 'orderPackageCode',
label: '包条码',
type: 6,
type: 13,
values: '',
width: '200',
checkarr: [],

4
src/page/index/top/index.vue

@ -67,7 +67,7 @@
</div>
<el-dialog v-model="isshow" title="切换仓库" width="30%">
<div style="display: flex; flex-direction: column; align-items: center">
<el-select class="selecin" v-model="warehousevalue" filterable placeholder="请选择切换的仓库">
<el-select class="selecin" v-model="warehousevalue" filterable placeholder="请选择切换的仓库">
<el-option
v-for="(item, index) in datalist"
:key="item.id"
@ -178,7 +178,7 @@ export default {
}
} else {
let res = await preserveCurrentWarehouse(this.datalist[this.warehousevalue]);
if (res.data.code == 200) {
if (res.data.code == 200) {
this.$message({ message: '切换成功', type: 'success' });
localStorage.setItem('checkwarehousevalue', this.warehousevalue);
this.$router.push({

14
src/router/views/index.js

@ -235,6 +235,17 @@ export default [
/* webpackChunkName: "views" */ '@/views/distribution/artery/TripartiteTransferDetails.vue'
),
},
{
path: 'VehicleStowageDetails',
name: '配载详情',
meta: {
i18n: 'data',
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/VehicleStowageDetails.vue'
),
},
],
},
// {
@ -1230,7 +1241,6 @@ export default [
],
},
{
path: '/aftersales/aftersalesWorkOrderend',
component: Layout,
@ -1280,7 +1290,7 @@ export default [
},
],
},
// {
// path: '/distribution/turndelivery/devtmp',
// component: Layout,

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

@ -70,7 +70,7 @@
box-sizing: border-box;
"
>
物料编码
物料编码 {{ item.productCode }}
</div>
<div style="display: flex; justify-content: center; align-items: center">
<div style="display: flex; width: 40%; justify-content: center; border-right: 1px solid">
@ -81,42 +81,18 @@
></vue-qr>
</div>
<div style="text-align: left; height: 120px; box-sizing: border-box; flex: 1; zoom: 0.9">
<div
style="
height: 40px;
line-height: 40px;
border-bottom: 1px solid #000;
box-sizing: border-box;
padding-left: 10px;
font-size: 14px;
"
>
产品名称: {{ item.name }}
</div>
<div
style="
height: 40px;
line-height: 40px;
border-bottom: 1px solid #000;
box-sizing: border-box;
padding-left: 10px;
font-size: 14px;
"
>
产品编码: {{ item.productCode }}
</div>
<div
style="
height: 40px;
line-height: 40px;
box-sizing: border-box;
padding-left: 10px;
font-size: 14px;
"
>
SKU: {{ item.sku }}
</div>
<div
style="
text-align: left;
height: 120px;
box-sizing: border-box;
flex: 1;
zoom: 0.9;
font-weight: bold;
padding: 0 10px;
"
>
产品名称: {{ item.name }}
</div>
</div>
</div>

3
src/views/basicdata/warehouse/tray/basicdataTray.vue

@ -359,6 +359,7 @@ export default {
let pri_html = '';
pri_html = this.getHtmls(res.data.data.dataList, res.data.data.templateHtml);
// console.log(pri_html);
console.log(123123)
that.w_print(pri_html);
});
// checkcode.push(item.orderPackageCode)
@ -377,7 +378,7 @@ export default {
// //
LODOP.SET_PRINT_MODE('AUTO_CLOSE_PREWINDOW', 1);
// // datahtml
LODOP.ADD_PRINT_HTM('0%', '0%', '100%', '100%', templateData);
LODOP.ADD_PRINT_HTM('45', '0%', '100%', '100%', templateData);
// LODOP.PREVIEW(); //()
LODOP.PRINT(); //
},

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

@ -242,13 +242,15 @@
</div>
<!-- 订单池和调度池 -->
<template v-if="details.nodeInfoData.length > 1">
<template v-if="Number(details.pageType) !== 3 && details.nodeInfoData.length > 1">
<div class="add_row" v-for="(item, index) in details.nodeInfoData">
<template v-if="index !== 0">
<template v-if="index > details.warehouseIndex">
<div style="width: 49%">
<!-- 头部 -->
<el-divider content-position="left">
<span style="margin-right: 20px">{{ details.nodeInfoData[0].nodeName }}</span>
<span style="margin-right: 20px">{{
details.nodeInfoData[details.warehouseIndex].nodeName
}}</span>
<span>运单池</span>
</el-divider>
@ -556,6 +558,7 @@ import {
postUpdatePlanNumByCarsOrderId,
postAddOrderToFinalNodeId,
postUpdateCarsLoadBasicData,
postUpdateLoadFeeByNodeId,
} from '@/api/distribution/AddVehicleStowage';
import { useRouter, useRoute } from 'vue-router';
import { ElMessage, ElMessageBox } from 'element-plus';
@ -803,7 +806,7 @@ const clearSelectionList = () => {
};
/** 设置节点费用禁用 */
const handleEditForbidden = (_arr: []) => {
const handleEditForbidden = (_arr: any[]) => {
if (_arr.length === 0) return;
// (, )
@ -830,11 +833,11 @@ const initOriginWarehouseOrder = async (params = {}) => {
details.loadingObj.oldListLoading = true;
const submitData = {
...details.page,
loadId: details.pageInfo.startWarehouseInfo.warehouseId,
orderCodes: details.orderCodeList,
...details.query,
...params,
};
if (Number(details.pageType) === 2) submitData.loadId = details.loadId;
if (submitData.orderCodes.length === 0) delete submitData.orderCodes;
const res = await postFindAllOrderList(submitData);
console.log('res :>> ', res);
@ -898,7 +901,7 @@ const onLoad = async () => {
details.form.startWarehouseId = data.startWarehouseInfo.warehouseId;
}
//
else if (Number(details.pageType) === 2) {
else {
console.log('222 :>> ', 222);
const res = await postSelectEditDetailByLoadId({ loadId: details.loadId });
console.log('res :>> ', res);
@ -922,7 +925,7 @@ const onLoad = async () => {
details.nodeInfoData[index].selectionList = list;
console.log('list :>> ', list);
};
initDispatchOrder(val);
if (Number(details.pageType) === 2) initDispatchOrder(val);
return val;
})
);
@ -932,7 +935,7 @@ const onLoad = async () => {
details.pageInfo.startWarehouseInfo.warehouseId = data.carsLoadEntity.startWarehouseId;
details.pageInfo.startWarehouseInfo.warehouseName = data.carsLoadEntity.startWarehouseName;
//
initOriginWarehouseOrder();
if (Number(details.pageType) === 2) initOriginWarehouseOrder();
//
setTabelHeight();
@ -1271,6 +1274,9 @@ const remoteMethodDriver = async val => {
details.driverListByName = data;
};
//
remoteMethodDriver('');
/** 查询车辆信息 */
const remoteMethodCar = async val => {
// if (!val) return;
@ -1281,6 +1287,7 @@ const remoteMethodCar = async val => {
if (code !== 200) return;
details.carListByName = data;
};
remoteMethodCar('')
/** 修改计划数 */
const handleEditplanNum = ({ row }, item) => {
@ -1424,6 +1431,37 @@ const editSubmit = async () => {
}
};
/** 节点费用修改提交 */
const nodeCostSubmit = async () => {
try {
btnLoadingObj.submitBtn = false;
const submitData = {
loadId: details.loadId,
...details.form,
carsLoadLineList: details.nodeInfoData,
};
console.log('details.nodeInfoData :>> ', details.nodeInfoData);
console.log('details.form :>> ', details.form);
console.log('submitData :>> ', submitData);
const res = await postUpdateLoadFeeByNodeId(submitData);
const { code, msg } = res.data;
if (code !== 200) return;
ElMessage({
message: msg,
type: 'success',
});
back();
} catch (error) {
console.log('error :>> ', error);
} finally {
btnLoadingObj.submitBtn = false;
}
};
/** 提交 */
const handleSubmit = (formEl: FormInstance | undefined) => {
if (btnLoadingObj.submitBtn) return;
@ -1435,6 +1473,7 @@ const handleSubmit = (formEl: FormInstance | undefined) => {
if (Number(details.pageType) === 1) addSubmit();
//
else if (Number(details.pageType) === 2) editSubmit();
else if (Number(details.pageType) === 3) nodeCostSubmit();
} else {
console.log('error submit!', fields);
}
@ -1442,6 +1481,7 @@ const handleSubmit = (formEl: FormInstance | undefined) => {
};
watch($route, () => {
if ($route.path !== '/distribution/artery/AddVehicleStowage') return;
onLoad();
});
</script>

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

@ -117,8 +117,10 @@
@selection="selectionChange"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '批次号'">
<el-text>123</el-text>
<template v-if="slotProps.scope.column.label === '中转批次号'">
<el-text @click="handleGoDetils(slotProps.scope)">{{
slotProps.scope.row.carsNo
}}</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
@ -138,7 +140,6 @@
</template>
</tablecmt>
<!-- 分页模块 -->
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
@ -695,6 +696,35 @@ const details = reactive<any>({
},
/** 无用 */
options: [],
/** 付款方式 */
payMethodOptions: [
{ value: 1, label: '现付' },
{ value: 2, label: '回付' },
],
/** 配载状态 */
loadStatusOptions: [
{ value: 0, label: '未装车' },
{ value: 10, label: '已装车' },
{ value: 20, label: '网点到车' },
{ value: 30, label: '网点发车' },
{ value: 40, label: '终点到车' },
{ value: 100, label: '取消配载' },
],
/** 是否结算 */
isSettlementOptions: [
{ value: 1, label: '未结算' },
{ value: 2, label: '已结算' },
],
/** 客户类型 */
customerTypeOptions: [
{ value: 1, label: '商城' },
{ value: 2, label: 'C端客户' },
],
/** 送货方式 */
deliveryTypeOptions: [
{ value: 1, label: '自提' },
{ value: 2, label: '送货' },
],
});
const {
@ -725,6 +755,14 @@ onMounted(() => {
}, 100);
});
/** 转换码值 */
const handleConversionCodeValue = (item, label, Arr) => {
const codes = Arr.map(item => item.value);
const _index = codes.indexOf(Number(item[label]));
item[label + 'Name'] = _index !== -1 ? Arr[_index].label : '未知';
};
/** 请求页面数据 */
const onLoad = async (params = {}) => {
try {
@ -736,6 +774,14 @@ const onLoad = async (params = {}) => {
const { code, data } = res.data;
if (code !== 200) return;
details.data = data.records;
for (const item of details.data) {
handleConversionCodeValue(item, 'payMethod', details.payMethodOptions);
handleConversionCodeValue(item, 'loadStatus', details.loadStatusOptions);
handleConversionCodeValue(item, 'isSettlement', details.isSettlementOptions);
handleConversionCodeValue(item, 'customerType', details.customerTypeOptions);
handleConversionCodeValue(item, 'deliveryType', details.deliveryTypeOptions);
}
details.page.total = data.total;
} catch (error) {
console.log('error :>> ', error);
@ -1091,6 +1137,17 @@ const handleCancelStartCar = () => {
onLoad();
});
};
/** 查看详情 */
const handleGoDetils = ({ row }) => {
$router.push({
path: '/distribution/artery/TripartiteTransferDetails',
query: {
name: row.carsNo + '-' + '中转详情',
loadId: row.id,
},
});
};
</script>
<style scoped lang="scss">

29
src/views/distribution/artery/TripartiteTransferDetails.vue

@ -308,7 +308,7 @@
</template>
<!-- activeTab: 'tab1' -->
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import { ref, reactive, toRefs, computed, onMounted, nextTick, watch } from 'vue';
import functions from '@/utils/functions';
import dayjs from 'dayjs';
import { mapGetters } from 'vuex';
@ -484,8 +484,6 @@ const details = reactive<any>({
driverListByName: [],
/** 被选中在调度池的订单列表 */
orderCodeList: [],
});
const {
@ -589,7 +587,7 @@ onMounted(() => {
});
/** 请求页面数据 */
const onLoad = async (page: any) => {
const onLoad = async () => {
const res = await postloadFindLoadInitData();
const { code, data } = res.data;
if (code !== 200) return;
@ -634,7 +632,7 @@ const initOriginWarehouseOrder = async (params = {}) => {
/** 搜索 */
const searchChange = () => {
onLoad(details.page);
onLoad();
};
/** 清空表单 */
@ -642,7 +640,7 @@ const searchReset = () => {
details.query = {};
details.stockupDate = [];
details.page.pageNum = 1;
onLoad(details.page);
onLoad();
};
//
@ -697,7 +695,7 @@ const remoteMethodDriver = async val => {
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
onLoad(details.page);
onLoad();
};
/** 表格表头时间选择 */
@ -710,7 +708,7 @@ const timesc = (index, row) => {
if (!index) {
delete details.query[row.prop];
}
onLoad(details.page);
onLoad();
};
/** 表格表头下拉框选择 */
@ -721,7 +719,7 @@ const selectsc = (index, row) => {
details.query['certificateType'] = index;
if (!index) delete details.query['certificateType'];
}
onLoad(details.page);
onLoad();
};
/** 表格表头复选框选择 */
@ -732,7 +730,7 @@ const selectionChange = (list: any) => {
/** 表格表头输入框搜索 */
const newInputsc = (index, row) => {
details.newQuery[row.prop] = index;
onLoad(details.page);
onLoad();
};
/** 表格表头时间选择 */
@ -745,7 +743,7 @@ const newTimesc = (index, row) => {
if (!index) {
delete details.newQuery[row.prop];
}
onLoad(details.page);
onLoad();
};
/** 表格表头输入框搜索 */
@ -759,7 +757,7 @@ const newSelectsc = (index, row) => {
details.newQuery['certificateType'] = index;
if (!index) delete details.newQuery['certificateType'];
}
onLoad(details.page);
onLoad();
};
/** 表格表头复选框选择 */
@ -770,7 +768,7 @@ const newSelectionChange = (list: any) => {
/** 每页数量改变执行的回调 */
const sizeChange = (pageSize: number) => {
details.page.pageSize = pageSize;
onLoad(details.page);
onLoad();
};
/** 页码改变执行的回调 */
@ -914,6 +912,11 @@ const handleSubmit = (formEl: FormInstance | undefined) => {
}
});
};
watch($route, () => {
if ($route.path !== '/distribution/artery/TripartiteTransferDetails') return;
onLoad();
});
</script>
<style scoped lang="scss">
.fo-fl {

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

@ -135,10 +135,20 @@
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
:tableRowClassName="
(row, rowIndex) => {
console.log('row :>> ', row);
console.log('rowIndex :>> ', rowIndex);
if (rowIndex === 0) return 'denger';
else return '';
}
"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '批次号'">
<el-text>{{ slotProps.scope.row.carsNo }}</el-text>
<el-text @click="handleGoWaybill(slotProps.scope)">{{
slotProps.scope.row.carsNo
}}</el-text>
</template>
<template v-if="slotProps.scope.column.label === '路线'">
@ -170,31 +180,37 @@
<span>{{ item.nodeName }}</span>
</div>
</template>
<el-text>{{ item.nodeName }}</el-text>
<el-text style="margin: 0 !important">{{ item.nodeName }}</el-text>
</el-tooltip>
<!-- <el-text @click="handleGoWaybill(slotProps.scope)">
{{ item.nodeName }}
</el-text> -->
<el-icon v-if="index !== slotProps.scope.row.carsLoadLineList.length - 1"
<el-icon class="ml" v-if="index !== slotProps.scope.row.carsLoadLineList.length - 1"
><Right
/></el-icon>
</span>
</template>
<template v-if="slotProps.scope.column.label === '车辆状态'">
<el-tag type="danger">{{ slotProps.scope.row.loadStatusName }}</el-tag>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<el-text @click="handleShowTruckLoadingDetails(slotProps.scope)">装车明细</el-text>
<el-text>编辑</el-text>
<el-button
type="text"
:disabled="
Mydata.id !== slotProps.scope.row.nowWarehouseId ||
Number(slotProps.scope.row.loadStatus) === 40
"
@click="handleEditStowage(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%">
@ -328,6 +344,10 @@ import { ElMessage, ElMessageBox } from 'element-plus';
//
const $router = useRouter();
const Mydata = ref<any>({});
Mydata.value = JSON.parse(localStorage.getItem('my_data')); //
const details = reactive({
/** 是否开启搜索 */
search: false,
@ -402,6 +422,16 @@ const details = reactive({
form: {},
/** 是否为查看模式 */
view: false,
/** 车辆状态 */
carsStatus: [
{ value: 0, label: '未装车' },
{ value: 10, label: '已装车' },
{ value: 20, label: '网点到车' },
{ value: 30, label: '网点发车' },
{ value: 40, label: '终点到车' },
{ value: 100, label: '取消配载' },
],
});
const {
@ -441,6 +471,12 @@ const onLoad = async (params = {}) => {
const { code, data } = res.data;
if (code !== 200) return;
details.data = data.records;
//
const codes = details.carsStatus.map(val => val.value);
for (let item of details.data) {
const _index = codes.indexOf(Number(item.loadStatus));
item.loadStatusName = _index !== -1 ? details.carsStatus[_index].label : '未知';
}
details.page.total = data.total;
} catch (error) {
console.log('error :>> ', error);
@ -612,7 +648,7 @@ const handleArrive = async () => {
onLoad();
};
/** 到车 */
/** 取消到车 */
const handleCloseArrive = async () => {
console.log(
'details.selectionList.map(val => val.id) :>> ',
@ -635,6 +671,26 @@ const handleCloseArrive = async () => {
onLoad();
};
/** 编辑配载信息 */
const handleEditStowage = ({ row }) => {
$router.push({
path: '/distribution/artery/AddVehicleStowage',
query: { name: `${row.carsNo} - 编辑配载`, type: 2, loadId: row.id },
});
};
/** 前往配载详情 */
const handleGoWaybill = ({ row }) => {
console.log('row :>> ', row);
$router.push({
path: '/distribution/artery/VehicleStowageDetails',
query: {
loadId: row.id,
name: `${row.carsNo} - 配载详情`,
},
});
};
</script>
<style scoped lang="scss">
@ -651,4 +707,9 @@ const handleCloseArrive = async () => {
:deep(.el-range-editor.el-input__wrapper) {
height: 100% !important;
}
.ml {
margin: 5px;
color: var(--el-color-primary);
}
</style>

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

@ -152,12 +152,18 @@
<!-- <el-text @click="handleGoWaybill(slotProps.scope)">
{{ item.nodeName }}
</el-text> -->
<el-icon v-if="index !== slotProps.scope.row.carsLoadLineList.length - 1"
<el-icon
style="margin: 5px"
v-if="index !== slotProps.scope.row.carsLoadLineList.length - 1"
><Right
/></el-icon>
</span>
</template>
<template v-if="slotProps.scope.column.label === '车辆状态'">
<el-tag type="danger">{{ slotProps.scope.row.loadStatusName }}</el-tag>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<!-- <el-text @click="handleShowzeroAdditionalRecording(slotProps.scope)">
零担补录
@ -165,11 +171,21 @@
<el-button type="text" @click="handleShowTruckLoadingDetails(slotProps.scope)"
>装车明细</el-button
>
<el-button type="text" :disabled="false" @click="handleEditStowage(slotProps.scope)">编辑</el-button>
<el-button
type="text"
:disabled="Mydata.id !== slotProps.scope.row.nowWarehouseId"
@click="handleEditStowage(slotProps.scope)"
>编辑</el-button
>
<!-- <el-button type="text">数据同步</el-button> -->
<el-button type="text">批量装车</el-button>
<el-button type="text">手动装车</el-button>
<el-button type="text">节点费用</el-button>
<!-- <el-button type="text">批量装车</el-button>
<el-button type="text">手动装车</el-button> -->
<el-button
type="text"
:disabled="Mydata.id !== slotProps.scope.row.nowWarehouseId"
@click="handleNodeCost(slotProps.scope)"
>节点费用</el-button
>
</template>
</template>
</tablecmt>
@ -436,12 +452,21 @@ import {
postCancelStartCarByLoadId,
postCancelCarsLoadByLoadId,
} from '@/api/distribution/VehicleStowage';
import { useStore } from 'vuex';
import { useRouter } from 'vue-router';
import { ElMessage, ElMessageBox } from 'element-plus';
//
const $router = useRouter();
const $store = useStore();
const Mydata = ref<any>({});
Mydata.value = JSON.parse(localStorage.getItem('my_data')); //
console.log('Mydata :>> ', Mydata);
const details = reactive<any>({
/** 是否开启搜索 */
search: true,
@ -485,7 +510,7 @@ const details = reactive<any>({
warehouseNodeColumnList,
truckLoadingColumnList,
/** 列表数据 */
data: [{}],
data: [],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
@ -858,13 +883,28 @@ const handleAdd = () => {
const handleEditStowage = ({ row }) => {
$router.push({
path: '/distribution/artery/AddVehicleStowage',
query: { name: '编辑配载', type: 2, loadId: row.id },
query: { name: `${row.carsNo} - 编辑配载`, type: 2, loadId: row.id },
});
};
/** 节点费用 */
const handleNodeCost = ({ row }) => {
$router.push({
path: '/distribution/artery/AddVehicleStowage',
query: { name: '节点费用更改', type: 3, loadId: row.id },
});
};
/** 前往配载详情 */
const handleGoWaybill = ({ row }) => {
console.log('row :>> ', row);
$router.push({
path: '/distribution/artery/VehicleStowageDetails',
query: {
loadId: row.id,
name: `${row.carsNo} - 配载详情`,
},
});
};
/** 发车 */

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

File diff suppressed because it is too large Load Diff

9
src/views/distribution/artery/addTripartiteTransfer.vue

@ -137,6 +137,7 @@
v-model="form.customerType"
class="m-2"
placeholder="客户类型"
multiple
size="default"
>
<el-option
@ -725,7 +726,7 @@ const searchHide = async () => {
const remoteMethod = value => {
try {
details.loadingObj.carrierName = true;
if (!value) return;
// if (!value) return;
const res = debounce(async () => {
const res = await postFindCarrierByName({ carrierName: value });
const { code, data } = res.data;
@ -738,6 +739,8 @@ const remoteMethod = value => {
}
};
remoteMethod('');
/** 查询司机信息 */
const remoteMethodDriver = async val => {
const res = await postFindDriverListByName({ driverName: val });
@ -747,6 +750,8 @@ const remoteMethodDriver = async val => {
details.driverListByName = data;
};
remoteMethodDriver('');
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
@ -946,6 +951,8 @@ const handleSubmit = (formEl: FormInstance | undefined) => {
],
};
submitData.customerType = submitData.customerType.join(',');
if (submitData.carrierTimeStr)
submitData.carrierTimeStr = dayjs(submitData.carrierTimeStr).format('YYYY-MM-DD');
if (submitData.receivingTimeStr)

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

@ -1498,6 +1498,17 @@ export default {
sortable: true,
head: false,
},
{
prop: 'loadingTime',
label: '装车时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'quantity',
label: '包件数量',

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

@ -7,7 +7,7 @@
<div class="flex-c-sb form_top">
<div>
<div class="flex-c-sb">
<div class="flex-c-sb" style="font-size: 16px">
<div class="flex-c-c" v-if="pageInfo.brand">
<el-icon color="#172e60"><User /></el-icon>
品牌:
@ -48,53 +48,37 @@
</div>
</div>
<el-form
:inline="true"
:disabled="true"
:model="pageInfo"
class="el-fr-d"
label-width="100px"
>
<el-form :inline="true" :model="pageInfo" class="el-fr-d" label-width="100px">
<!-- 顶部 -->
<!-- 第一排 -->
<div class="table-row border-top">
<el-form-item label="发站仓:" class="el-times">
<el-select
<el-input
readonly
v-model="pageInfo.departureWarehouseName"
class="m-2"
placeholder="发站仓"
>
<el-option
v-for="item in details.options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
</el-form-item>
<el-form-item label="到站:">
<el-input v-model="pageInfo.destination" placeholder="服务号"></el-input>
<el-input readonly v-model="pageInfo.destination" placeholder="服务号"></el-input>
</el-form-item>
<el-form-item label="目的仓:" class="el-times">
<el-select
<el-input
readonly
v-model="pageInfo.destinationWarehouseName"
class="m-2"
placeholder="目的仓"
>
<el-option
v-for="item in details.options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
</el-form-item>
<el-form-item label="货号:">
<el-input v-model="pageInfo.goodsCode" disabled placeholder="货号"></el-input>
<el-input readonly v-model="pageInfo.goodsCode" placeholder="货号"></el-input>
</el-form-item>
</div>
@ -102,9 +86,9 @@
<div class="table-row" v-if="Number(pageInfo.waybillType) === 1">
<el-form-item label="订单自编号:" class="el-times">
<el-input
readonly
v-model="pageInfo.orderNo"
type="textarea"
disabled
placeholder="订单自编号"
></el-input>
</el-form-item>
@ -118,8 +102,8 @@
<el-row>
<el-form-item label="发货单位:">
<el-input
readonly
v-model="pageInfo.shipper"
disabled
placeholder="发货单位"
></el-input>
</el-form-item>
@ -127,7 +111,7 @@
<el-form-item label="发货人:">
<el-input
v-model="pageInfo.shipperName"
disabled
readonly
placeholder="发货人"
></el-input>
</el-form-item>
@ -137,7 +121,7 @@
<el-form-item label="手机号码:">
<el-input
v-model="pageInfo.shipperMobile"
disabled
readonly
placeholder="手机号码"
></el-input>
</el-form-item>
@ -147,7 +131,7 @@
<el-form-item label="发货地址:">
<el-input
v-model="pageInfo.shipperAddress"
disabled
readonly
placeholder="发货地址"
></el-input>
</el-form-item>
@ -161,7 +145,7 @@
<el-form-item label="收货单位:">
<el-input
v-model="pageInfo.consignee"
disabled
readonly
placeholder="收货单位"
></el-input>
</el-form-item>
@ -169,7 +153,7 @@
<el-form-item label="收货人:">
<el-input
v-model="pageInfo.consigneeName"
disabled
readonly
placeholder="收货人"
></el-input>
</el-form-item>
@ -179,7 +163,7 @@
<el-form-item label="手机号码:">
<el-input
v-model="pageInfo.consigneeMobile"
disabled
readonly
placeholder="手机号码"
></el-input>
</el-form-item>
@ -189,7 +173,7 @@
<el-form-item label="收货地址:">
<el-input
v-model="pageInfo.consigneeAddress"
disabled
readonly
placeholder="收货地址"
></el-input>
</el-form-item>
@ -291,38 +275,38 @@
<el-form label-width="fit-content">
<el-row>
<el-form-item label="发货单位:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="发货人:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="发货人:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="发货人:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="发货人:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="装卸费:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="其它费用:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="保价费:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="申明价值:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
</el-row>
</el-form>
@ -338,29 +322,29 @@
<el-form label-width="fit-content">
<el-row>
<el-form-item label="支付方式:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="付款方式:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="现付:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="到付:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="月结:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
<el-form-item label="回付:">
<el-input v-model="pageInfo.serviceNumber" disabled></el-input>
<el-input v-model="pageInfo.serviceNumber" readonly></el-input>
</el-form-item>
</el-row>
</el-form>
@ -378,18 +362,19 @@
<span class="red">{{ totalCost }}</span>
</div>
<div>
<el-form label-width="fit-content" disabled>
<el-form label-width="fit-content" readonly>
<el-row>
<el-form-item label="运费:">
<el-input
controls-position="right"
v-model="pageInfo.totalFreight"
disabled
readonly
></el-input>
</el-form-item>
<el-form-item label="送货费:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.deliveryFee"
></el-input-number>
@ -397,6 +382,7 @@
<el-form-item label="提货费:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.pickupFee"
></el-input-number>
@ -404,6 +390,7 @@
<el-form-item label="仓库管理费:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.warehouseManagementFee"
></el-input-number>
@ -411,6 +398,7 @@
<el-form-item label="仓储费:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.storageFee"
></el-input-number>
@ -420,30 +408,35 @@
<el-row>
<el-form-item label="装卸费:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.handlingFee"
></el-input-number>
</el-form-item>
<el-form-item label="其它费用:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.otherFee"
></el-input-number>
</el-form-item>
<el-form-item label="保价费:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.insuranceFee"
></el-input-number>
</el-form-item>
<el-form-item label="申明价值:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.claimingValue"
></el-input-number>
</el-form-item>
<el-form-item label="回扣:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.rebate"
></el-input-number>
@ -459,10 +452,15 @@
<div style="flex: 1; zoom: 0.9">
<div class="table-row-title" style="margin-bottom: 10px">付款方式</div>
<div>
<el-form label-width="fit-content" disabled>
<el-form label-width="fit-content" readonly>
<el-row>
<el-form-item label="支付方式:">
<el-select v-model="pageInfo.payType" class="m-2" placeholder="支付方式">
<el-select
readonly
v-model="pageInfo.payType"
class="m-2"
placeholder="支付方式"
>
<el-option
v-for="item in details.info.payTypeList"
:key="item.dictValue"
@ -473,7 +471,12 @@
</el-form-item>
<el-form-item label="付款方式:" prop="payWay">
<el-select v-model="pageInfo.payWay" class="m-2" placeholder="付款方式">
<el-select
readonly
v-model="pageInfo.payWay"
class="m-2"
placeholder="付款方式"
>
<el-option
v-for="item in details.info.payWayList"
:key="item.dictValue"
@ -485,6 +488,7 @@
<el-form-item label="现付:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.xianPay"
></el-input-number>
@ -494,6 +498,7 @@
<el-row>
<el-form-item label="到付:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.daoPay"
></el-input-number>
@ -501,6 +506,7 @@
<el-form-item label="月结:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.yuePay"
></el-input-number>
@ -508,6 +514,7 @@
<el-form-item label="回付:">
<el-input-number
readonly
controls-position="right"
v-model="pageInfo.huiPay"
></el-input-number>
@ -527,7 +534,7 @@
<div style="font-size: 14px">代收货款:</div>
<el-form-item label-width="0">
<el-input-number
disabled
readonly
controls-position="right"
v-model="pageInfo.replacePrice"
></el-input-number>
@ -542,12 +549,13 @@
<div class="table-row table_row_number">
<div>
<el-form-item label="开单人:" label-width="fit-content" class="el-times">
<el-input v-model="pageInfo.agent" />
<el-input readonly v-model="pageInfo.agent" />
</el-form-item>
</div>
<el-form-item label="三方操作费:" label-width="fit-content" class="el-times">
<el-input-number
readonly
v-model="pageInfo.thirdOperationFee"
controls-position="right"
:precision="0"
@ -556,7 +564,12 @@
</el-form-item>
<el-form-item label="送货方式:" label-width="fit-content" class="el-times">
<el-select v-model="pageInfo.deliveryWay" class="m-2" placeholder="送货方式">
<el-select
readonly
v-model="pageInfo.deliveryWay"
class="m-2"
placeholder="送货方式"
>
<el-option
v-for="item in details.options"
:key="item.value"
@ -567,7 +580,7 @@
</el-form-item>
<el-form-item label="紧急度:" label-width="fit-content" class="el-times">
<el-select v-model="pageInfo.urgency" class="m-2" placeholder="紧急度">
<el-select readonly v-model="pageInfo.urgency" class="m-2" placeholder="紧急度">
<el-option
v-for="item in details.options"
:key="item.value"
@ -579,6 +592,7 @@
<el-form-item label="回单" label-width="fit-content" class="el-times">
<el-input-number
readonly
v-model="pageInfo.receiptNum"
controls-position="right"
:precision="0"
@ -587,7 +601,7 @@
</el-form-item>
<el-form-item label="回单要求:" label-width="fit-content" class="el-times">
<el-select v-model="pageInfo.receipt" class="m-2" placeholder="回单要求">
<el-select readonly v-model="pageInfo.receipt" class="m-2" placeholder="回单要求">
<el-option
v-for="item in details.options"
:key="item.value"
@ -598,7 +612,12 @@
</el-form-item>
<el-form-item label="运输方式:" label-width="fit-content" class="el-times">
<el-select v-model="pageInfo.transportType" class="m-2" placeholder="运输方式">
<el-select
readonly
v-model="pageInfo.transportType"
class="m-2"
placeholder="运输方式"
>
<el-option
v-for="item in details.options"
:key="item.value"
@ -615,7 +634,7 @@
<el-input
v-model="pageInfo.remark"
type="textarea"
disabled
readonly
placeholder="备注"
></el-input>
</el-form-item>

10
vite.config.js

@ -13,8 +13,14 @@ export default ({ mode, command }) => {
proxy: {
'/api': {
// target: 'http://192.168.10.126:8889',
target: 'http://test.api.huitongys.com',
// hy
target: 'http://192.168.10.48:13000',
// tjj
// target: 'http://192.168.10.25:13000',
// cg
// target: 'http://192.168.10.200:13000',
// target: 'http://test.api.huitongys.com',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, ''),
},

Loading…
Cancel
Save