Browse Source

增加预约计划修改客户、签收字段增加、搜索维护

fix_bug_pro20231227
汤建军 1 year ago
parent
commit
ba052ddd0c
  1. 12
      src/api/distribution/distributionStockArticle.js
  2. 15
      src/views/distribution/deliverylist/distributionDeliveryListedt.vue
  3. 190
      src/views/distribution/reservation/reservationAddFrom.vue
  4. 207
      src/views/distribution/signfor/distributionSignfor.vue
  5. 71
      src/views/distribution/signfor/distributionSignforedt.vue
  6. 112
      src/views/distribution/signfor/distributionSignfortreat.vue
  7. 15
      src/views/warehouse/warehouseRetentionRecord/warehouseRetentionDetails.vue

12
src/api/distribution/distributionStockArticle.js

@ -159,6 +159,18 @@ export const update = (row) => {
data: row
})
}
/**
* 修改客户
* @param row
* @returns {AxiosPromise}
*/
export const updateClient = (row) => {
return request({
url: '/api/logpm-distribution/distributionStockArticle/updateClient',
method: 'post',
data: row
})
}
/**
* 订单添加增值服务

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

@ -238,7 +238,7 @@
>
</el-pagination>
<!--
<!--
v-model:current-page="currentPage4"
v-model:page-size="pageSize4"
:page-sizes="[100, 200, 300, 400]"
@ -415,9 +415,20 @@
:width="item.width"
:key="index"
>
<!-- :align="center"-->
</el-table-column>
<!-- <span>操作</span>-->
</template>
<el-table-column
fixed="right"
label="操作"
width="100">
<template #default="scope">
<el-button size="small" @click="handleQRCode(scope.row)">查看二维码</el-button>
</template>
</el-table-column>
</el-table>
<div class="avue-crud__pagination" style="width: 100%">
<!-- 分页模块 -->
@ -3112,7 +3123,7 @@ export default {
},
handleView(row) {
console.log('查看>>>>>>>>>>', row);
this.title = '查看';
this.title = '客户包件';
this.view = true;
this.box = true;
this.wid = row.id;

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

@ -283,13 +283,13 @@
@selection="selectionChange"
>
<template #default="slotProps">
<!-- orderSelectList -->
<el-text
type="primary"
link
icon="el-icon-edit"
@click="removeStockList(slotProps.scope.row)"
>移除
@click="updateClient(slotProps.scope.row)"
>修改客户
</el-text>
</template>
</tablecmt>
@ -308,6 +308,7 @@
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
@ -514,86 +515,33 @@
<el-dialog
v-model="dialogVisible"
title="增值服务"
title="客户信息"
width="30%"
:model="addvalue"
:before-close="handleClose"
:model="clientData"
>
<el-form-item label="增值服务" prop="freightMark">
<el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange">
<el-checkbox
style="width: 100%; margin-bottom: 3%"
v-for="(item, index) in addvalueServeTypeData"
:key="item.dictKey"
:label="item.dictKey"
>{{ item.dictValue }}
<span v-if="index === 0 || index === 6 || index === 2 || index === 4"
>&nbsp;件数:
<el-input
type="number"
v-model="item.f"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 1)"
style="width: 10%; border: none; border-bottom: 2px solid #eee"
/>
</span>
<span v-if="index === 1"
>公里:
<el-input
type="primary"
v-model="item.a"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 2)"
style="width: 10%; border: none; border-bottom: 2px solid #eee"
/>
</span>
<span v-if="index === 3"
>距离:
<el-input
type="number"
v-model="item.b"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 3)"
style="width: 10%; border: none; border-bottom: 2px solid #eee"
/>
</span>
<span v-if="index === 5"
>人数:
<el-input
type="number"
v-model="item.c"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 4)"
style="width: 10%; border: none; border-bottom: 2px solid #eee"
/>
</span>
<span v-if="index === 0"
>楼层:
<el-input
type="number"
v-model="item.d"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 5)"
style="width: 10%; border: none; border-bottom: 2px solid #eee"
/>
</span>
<span v-if="item"
>预计费用:
<el-input
type="number"
v-model="item.e"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 6)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
</span>
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-row :gutter="24" class="rows" >
<el-col :xl="6" :lg="7" :md="8" :sm="24" >
<div class="clientRow">
<span >商场名称{{ clientData.mallName }} </span>
</div>
</el-col>
</el-row>
<el-form :label-position="right" label-width="80px" :model="formLabelAlign">
<el-form-item label="用户名称:">
<el-input v-model="clientData.customerName"></el-input>
</el-form-item>
<el-form-item label="用户电话:">
<el-input v-model="clientData.customerTelephone"></el-input>
</el-form-item>
<el-form-item label="用户地址:">
<el-input v-model="clientData.customerAddress"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="aaa"> 确定(增值服务) </el-button>
<el-button type="primary" @click="submitClient"> 确定(修改客户) </el-button>
</span>
</template>
</el-dialog>
@ -616,9 +564,9 @@ import {
selectStockArticleInfoList,
selectUpdateAvailableStockArticle,
getZeroOrderDetail,
updateClient
} from '@/api/distribution/distributionStockArticle';
import { getDetailDelivery } from '@/api/distribution/distributionDelivery';
import { addIncrement } from '@/api/distribution/distributionStockArticle';
import { getInventoryList, selectInventoryDetail } from '@/api/distribution/distributionStockList';
import option from '@/option/distribution/distributionStockArticle';
@ -1291,6 +1239,16 @@ export default {
sortable: true,
head: false,
},
{
prop: '',
label: '操作',
type: 6,
values: '',
width: '200',
checkarr: [],
fixed: 'right',
hide: true,
},
],
inventoryInfocolumnList: [
{
@ -1742,6 +1700,7 @@ export default {
data: [],
//
dialogVisible: false,
clientData: {},
textarea: '',
//
addvalueServeTypeData: [],
@ -1867,44 +1826,6 @@ export default {
init() {
this.height = this.setPx(document.body.clientHeight - 340);
},
aaa() {
let addvalueInfos = [];
this.form.addvalueType.forEach((item, index) => {
let addvalueInfo = {};
addvalueInfo.addvalueId = item;
if (item == 1 || item == 3 || item == 5 || item == 7) {
addvalueInfo.number = this.costList[item];
}
if (item == 2) {
addvalueInfo.kilometer = this.costList[item];
}
if (item == 4) {
addvalueInfo.distance = this.costList[item];
}
if (item == 6) {
addvalueInfo.peopleNum = this.costList[item];
}
if (this.floorList.length > 1) {
addvalueInfo.floor = this.floorList[1];
this.floorList = [];
}
addvalueInfo.fee = this.feeList[item];
addvalueInfos.push(addvalueInfo);
});
let params = {};
params.id = this.orderInfo.id;
params.addvalue = addvalueInfos;
params.relatedId = 1;
console.log('params>>>>>>>>>>>>', params);
addIncrement(params).then(res => {
this.dialogVisible = false;
this.$message({
type: 'success',
message: '操作成功!',
});
});
this.onLoad(this.page);
},
tableAllSelection() {},
//
async handleAddOrder() {
@ -2069,6 +1990,14 @@ export default {
this.zeroOrderShow = true;
this.isrReservationEntry = false;
},
submitClient(){
console.log("this.client===============>",this.clientData);
updateClient(this.clientData).then(res=>{
console.log("res>>>>>>>>>>>",res.data.data);
this.onLoadOrder(this.page);
this.dialogVisible = false;
})
},
//
// selectionPackageChange(list) {
@ -2393,20 +2322,12 @@ export default {
}
console.log('>>>>>>>>>>>>>>>row', row);
},
removeStockList(row) {
if (this.inventoryData.length == 1 && this.orderData.length == 0 && this.reservationId) {
this.$message.warning('最少剩下一个数据');
return;
}
this.inventoryData.forEach((item, index) => {
if (item.id === row.id) {
this.inventoryData.splice(index, 1);
}
console.log('item>>>>>>>>>>>', item);
});
// ,
if (this.inventoryData.length === 0 && this.orderData.length === 0) this.marketName = '';
updateClient(row) {
console.log('>>>>>>>>>>>>>>>row', row);
this.dialogVisible = true;
Object.assign(this.clientData,row);
console.log("=============>",this.clientData);
},
showStockListEdit(row) {
console.log('>>>>>>>>>>>>>>>row', row);
@ -2911,4 +2832,13 @@ input[type='number'] {
margin-bottom: 8px;
border-radius: 4px;
}
.clientRow{
display: block;
min-height: 1px;
margin-bottom: 32px;
font-size: larger;
margin-left: 24px;
font-weight: bold;
width: 2000px;
}
</style>

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

@ -30,39 +30,64 @@
</el-select>
<!-- <el-input v-model="query.deliveryType" placeholder="请选择业务类型"></el-input>-->
</el-form-item>
<el-form-item label="配送司机:">
<!-- <el-select v-model="query.deliveryType" placeholder="请选择业务类型">-->
<!-- </el-select>-->
<el-select
v-model="query.deliveryDriverName"
filterable
placeholder="请输入司机名称"
:loading="loading"
>
<el-option
v-for="item in driverData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictValue"
>
</el-option>
</el-select>
<!-- <el-input v-model="query.deliveryType" placeholder="请选择业务类型"></el-input>-->
<el-form-item label="文员名称:">
<el-input v-model="query.deliveryPhone" placeholder="请输入客户电话"></el-input>
</el-form-item>
<el-form-item label="司机名称:">
<el-input v-model="query.deliveryPhone" placeholder="请输入客户电话"></el-input>
</el-form-item>
<el-form-item label="车牌:">
<el-input v-model="query.deliveryPhone" placeholder="请输入客户电话"></el-input>
</el-form-item>
<el-form-item label="配送时间:">
<el-date-picker
v-model="query.taskTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="装车时间:">
<el-date-picker
v-model="query.loadingTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="司机签收时间:">
<el-date-picker
v-model="query.sjsigningTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="文员审核时间:">
<el-date-picker
v-model="query.signingTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="司机签收状态:">-->
<!-- <el-select v-model="query.driverSigning" placeholder="请选择业务类型">-->
<!-- <el-option-->
<!-- :value="1">未签收-->
<!-- </el-option>-->
<!-- <el-option-->
<!-- :value="2">已签收-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- &lt;!&ndash; <el-input v-model="query.querySigningStatus" placeholder="请选择签收状态"></el-input>&ndash;&gt;-->
<!-- </el-form-item>-->
<!-- <el-form-item label="顾客姓名:">-->
<!-- <el-input v-model="query.customerName" placeholder="请输入服务类型"></el-input>-->
<!-- </el-form-item>-->
</div>
<!-- 查询按钮 -->
<el-form-item class="el-btn">
@ -243,6 +268,71 @@ export default {
sortable: true,
head: false,
},
{
prop: 'reservationCode',
label: '预约单号',
type: 2,
values: '',
width: '220',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'driverName',
label: '司机名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'driverPhone',
label: '司机电话',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'vehicleName',
label: '车牌号',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'taskTime',
label: '配送时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'signLoadingDate',
label: '装车时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'stockArticleId',
label: '订单自编号',
@ -369,27 +459,27 @@ export default {
fixed: false,
sortable: true,
},
{
prop: 'deliveryDriverName',
label: '送货司机',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'deliveryDriverPhone',
label: '送货手机手机号',
type: 1,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'deliveryDriverName',
// label: '',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// sortable: true,
// },
// {
// prop: 'deliveryDriverPhone',
// label: '',
// type: 1,
// values: '',
// width: '180',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'signingTime',
label: '文员签收时间',
@ -421,6 +511,17 @@ export default {
sortable: true,
head: false,
},
{
prop: 'examineUserName',
label: '审核人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'sijiSigningStatus',
label: '司机签收状态',

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

@ -347,7 +347,7 @@
align="center"
/>
<!--
<!--
Type ===1 普通文本
Type ===2 图片显示
Type ===3 操作功能
@ -367,7 +367,7 @@
<template #default="props">
<img :src="props.row[item.prop]" class="el-Img" v-if="item.type === 2" />
<span v-else>{{ props.row[item.prop] ? props.row[item.prop] : '/' }}</span>
<span v-else>{{ props.row[item.prop]!=null ? props.row[item.prop] : '/' }}</span>
</template>
</el-table-column>
@ -377,10 +377,10 @@
fixed="right"
label="操作"
width="280"
align="center "
align="center"
>
<!-- <template #default="scope">
</template> -->
</el-table-column>
</template>
@ -458,7 +458,7 @@
align="center"
/>
<!--
<!--
Type ===1 普通文本
Type ===2 图片显示
Type ===3 操作功能
@ -497,6 +497,8 @@
? '零担'
: '/'
}}</span>
<span v-if="item.type == 4">{{
props.row[item.prop] ? props.row[item.prop] : '/'
}}</span>
@ -571,7 +573,7 @@
<el-table-column type="selection" width="55" fixed />
<el-table-column type="index" fixed width="50" height="100" label="#" align="center" />
<!--
<!--
Type ===1 普通文本
Type ===2 图片显示
Type ===3 操作功能
@ -842,6 +844,62 @@ const menuData1 = ref([
sortable: true,
head: true,
},
{
prop: 'totalNumber',
label: '总数量',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: true,
},
{
prop: 'handQuantity',
label: '在库数量',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: true,
},
{
prop: 'reservationNum',
label: '计划数量',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: true,
},
{
prop: 'loadingNumber',
label: '装车数量',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: true,
},
{
prop: 'signingNumber',
label: '签收数量',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: true,
},
{
prop: 'brand',
label: '品牌',
@ -1575,6 +1633,7 @@ const btnClass = type => {
};
//
const onLoad = () => {
menuData.value = menuData1.value; //
data.value = InitializeTable.value; //
};

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

@ -37,6 +37,31 @@
</el-select>
<!-- <el-input v-model="query.querySigningStatus" placeholder="请选择签收状态"></el-input>-->
</el-form-item>
<el-form-item label="配送时间:">
<el-date-picker
v-model="query.taskTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="装车时间:">
<el-date-picker
v-model="query.loadingTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
</div>
<!-- <el-form-item label="顾客姓名:">-->
<!-- <el-input v-model="query.customerName" placeholder="请输入服务类型"></el-input>-->
@ -506,7 +531,34 @@ export default {
HomePhotos: [],
//
SignForPhotos: [],
reservationId: null, //ID
reservationId: null, //ID,
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
columnList: [
{
prop: '',
@ -533,6 +585,61 @@ export default {
label: '配送车次',
type: 2,
values: '',
width: '160',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'reservationCode',
label: '预约单号',
type: 2,
values: '',
width: '160',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'driverName',
label: '司机名称',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'driverPhone',
label: '司机电话',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'vehicleName',
label: '车牌号',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'taskTime',
label: '配送时间',
type: 4,
values: '',
width: '130',
checkarr: [],
fixed: false,
@ -648,7 +755,7 @@ export default {
// sortable: true
// },
{
prop: 'deliveryTime',
prop: 'signLoadingDate',
label: '装车时间',
type: 4,
values: '',
@ -1770,6 +1877,7 @@ export default {
this.search = !this.search;
},
searchChange() {
console.log("this.query>>>>>>>>>>>>>>",this.query);
if (this.query.querySigningStatus) {
this.query.signingStatus = this.query.querySigningStatus;
}

15
src/views/warehouse/warehouseRetentionRecord/warehouseRetentionDetails.vue

@ -30,13 +30,19 @@
<el-col :xl="6" :lg="7" :md="10" :sm="24">
<span>车次号{{deliveryDate.trainNumber}} </span>
</el-col>
<el-col :xl="6" :lg="7" :md="10" :sm="24">
<el-col :xl="3" :lg="7" :md="10" :sm="24">
<span>配送司机{{deliveryDate.driverName}} </span>
</el-col>
<el-col :xl="6" :lg="7" :md="10" :sm="24">
<el-col :xl="3" :lg="7" :md="10" :sm="24">
<span>司机电话{{deliveryDate.driverPhone}} </span>
</el-col>
<el-col :xl="3" :lg="7" :md="10" :sm="24">
<span>车辆车牌{{deliveryDate.vehicleName}} </span>
</el-col>
<el-col :xl="3" :lg="7" :md="10" :sm="24">
<span>计划数量{{deliveryDate.deliveryNumber + this.retentionQuantity}} </span>
</el-col>
<el-col :xl="6" :lg="7" :md="10" :sm="24">
<el-col :xl="3" :lg="7" :md="10" :sm="24">
<span>滞留件数{{this.retentionQuantity}} </span>
</el-col>
</el-row>
@ -932,6 +938,7 @@
getRetentionPackage(type){
console.log("type>>>>>>>>>",type);
console.log("this.retentionRecordId>>>>>>>>>",this.retentionRecordId);
this.loading = true;
getRetentionPackageByType(this.retentionRecordId,type).then(res=>{
console.log("res>>>>>>>",res.data.data[0]);
const data = res.data.data;
@ -950,6 +957,7 @@
break;
}
this.loading = false;
console.log("res>>>>>>>>>>>",res.data.data);
@ -1053,6 +1061,7 @@
this.onLoad(this.page);
},
onLoad(page) {
this.loading = true;
getDetail(this.retentionRecordId).then(res => {
console.log('res<>>>>>>>>>>>>>>>>>>', res.data.data);
const data = res.data.data;

Loading…
Cancel
Save