feat(unhandled): 合单表单默认值处理

This commit is contained in:
woody 2025-05-12 16:58:16 +08:00
parent 7a59b10298
commit d485915333
1 changed files with 227 additions and 261 deletions

View File

@ -4,47 +4,42 @@
<div class="maintop">
<div class="mainbtn">
<el-button
v-hasButtons="['DeliveryUnhandledAllMerge']"
size="small"
class="thebtn2"
@click="mergeHd(0)"
v-hasButtons="['DeliveryUnhandledAllMerge']"
>全部合单</el-button
>
>全部合单</el-button>
<el-button
v-hasButtons="['DeliveryUnhandledMerge']"
size="small"
class="thebtn3"
:disabled="multiple"
@click="mergeHd(1)"
v-hasButtons="['DeliveryUnhandledMerge']"
>合单</el-button
>
>合单</el-button>
<el-button
v-hasButtons="['DeliveryUnhandledSelf']"
size="small"
class="thebtn3"
:disabled="multiple"
@click="mergeHd(2)"
v-hasButtons="['DeliveryUnhandledSelf']"
>{{ '自提' }}</el-button
>
>{{ '自提' }}</el-button>
<!-- <el-button size="small" class="thebtn2" :disabled="multiple"
>二次发货</el-button
> -->
<el-button
size="small"
v-hasButtons="['DeliveryUnhandledExport']"
@click="handleExport"
size="small"
class="thebtn1"
@click="handleExport"
>
{{ '导出' }}</el-button
>
{{ '导出' }}</el-button>
<el-button
v-hasButtons="['OrderDeductionBtn']"
size="small"
:disabled="selRow.length == 0 || selRow.length > 1"
class="thebtn2"
@click="orderDk"
v-hasButtons="['OrderDeductionBtn']"
>订单抵扣</el-button
>
>订单抵扣</el-button>
</div>
</div>
<el-table
@ -56,75 +51,64 @@
>
<!-- :row-class-name="tableRowClassName"
-->
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column type="selection" width="55" />
<el-table-column
align="center"
min-width="200px"
prop="orderCode"
:label="'订单编号'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="orderTypeVal"
:label="'订单类型'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="120px"
prop="memberCode"
:label="'会员编号'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="120px"
prop="memberName"
:label="'会员姓名'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="120px"
prop="phone"
:label="'联系方式'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="120px"
prop="productCode"
:label="'产品编号'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="120px"
prop="productName"
:label="'产品名称'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="120px"
prop="specsName"
:label="'产品规格'"
>
</el-table-column>
<el-table-column align="center" prop="unitName" :label="'产品单位'">
</el-table-column>
<el-table-column align="center" prop="quantity" :label="'产品数量'">
</el-table-column>
/>
<el-table-column align="center" prop="unitName" :label="'产品单位'" />
<el-table-column align="center" prop="quantity" :label="'产品数量'" />
<el-table-column
align="center"
prop="isGiftVal"
:label="'销售类型'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="orderAmount"
@ -134,15 +118,13 @@
{{ scope.row.orderAmount | numFilter }}
</template>
</el-table-column>
<el-table-column align="center" prop="recName" :label="'收货人'">
</el-table-column>
<el-table-column align="center" prop="recName" :label="'收货人'" />
<el-table-column
align="center"
min-width="120px"
prop="recPhone"
:label="'收货电话'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="180px"
@ -159,70 +141,60 @@
prop="shippingChannelVal"
:label="'发货类型'"
min-width="100px"
>
</el-table-column>
/>
<el-table-column
min-width="100px"
align="center"
prop="storehouseName"
:label="'发货仓库'"
>
</el-table-column>
/>
<el-table-column
min-width="150px"
align="center"
prop="payTime"
:label="'支付日期'"
>
</el-table-column>
/>
<el-table-column
min-width="100px"
align="center"
prop="orderStatusVal"
:label="'订单状态'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="100px"
prop="deliveryWayVal"
:label="'发货方式'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="100px"
prop="operateScopeVal"
:label="'供应方式'"
>
</el-table-column>
/>
<el-table-column
align="center"
min-width="100px"
prop="tranTypeVal"
:label="'运输方式'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="preSaleStatusVal"
:label="'预售状态'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="originalOrderCode"
:label="'原单号'"
>
</el-table-column>
/>
<el-table-column
min-width="100px"
align="center"
prop="remark"
:label="'备注'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="systemType"
@ -231,8 +203,8 @@
<template slot-scope="scope">
<div
v-for="item in systemTypes"
:key="item.value"
v-if="scope.row.systemType == item.value"
:key="item.value"
>
{{ item.label }}
</div>
@ -243,8 +215,7 @@
align="center"
prop="creationTime"
:label="'创建日期'"
>
</el-table-column>
/>
</el-table>
</div>
<pagination
@ -252,8 +223,8 @@
:total="total"
:page.sync="params.pageNum"
:limit.sync="params.pageSize"
:page-sizes="pageSizes"
@pagination="getList"
:pageSizes="pageSizes"
/>
<!-- 合单 -->
<el-dialog
@ -265,7 +236,7 @@
>
<div>
<div class="main_title">
<div class="bluekuai"></div>
<div class="bluekuai" />
<div class="title_word">{{ '选择合并匹配条件' }}</div>
</div>
<div>
@ -280,11 +251,10 @@
<el-form-item :label="'收货人'" prop="recNameBool">
<el-radio-group v-model="hdform.recNameBool">
<el-radio
:label="item.value"
v-for="(item, index) in yesornoList"
:key="index"
>{{ item.label }}</el-radio
>
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -292,11 +262,10 @@
<el-form-item :label="'收货电话'" prop="recPhoneBool">
<el-radio-group v-model="hdform.recPhoneBool">
<el-radio
:label="item.value"
v-for="(item, index) in yesornoList"
:key="index"
>{{ item.label }}</el-radio
>
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -315,11 +284,10 @@
>
<el-radio-group v-model="hdform.recAreaBool">
<el-radio
:label="item.value"
v-for="(item, index) in yesornoList"
:key="index"
>{{ item.label }}</el-radio
>
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -327,11 +295,10 @@
<el-form-item :label="'详细地址'" prop="recAddressBool">
<el-radio-group v-model="hdform.recAddressBool">
<el-radio
:label="item.value"
v-for="(item, index) in yesornoList"
:key="index"
>{{ item.label }}</el-radio
>
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -339,11 +306,10 @@
<el-form-item :label="'产品名称'" prop="productNameBool">
<el-radio-group v-model="hdform.productNameBool">
<el-radio
:label="item.value"
v-for="(item, index) in yesornoList"
:key="index"
>{{ item.label }}</el-radio
>
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -352,11 +318,10 @@
<el-radio-group v-model="hdform.operateScope">
<el-radio :label="''">{{ '全部' }}</el-radio>
<el-radio
:label="item.value"
v-for="(item, index) in supplyWayList"
:key="index"
>{{ item.label }}</el-radio
>
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -365,11 +330,10 @@
<el-radio-group v-model="hdform.preSaleStatus">
<el-radio :label="''">{{ '全部' }}</el-radio>
<el-radio
:label="item.value"
v-for="(item, index) in presaleStatusList"
:key="index"
>{{ item.label }}</el-radio
>
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -387,8 +351,7 @@
v-for="item in transportTypeList"
:key="item.value"
:label="item.value"
>{{ item.label }}</el-checkbox
>
>{{ item.label }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
@ -405,8 +368,7 @@
v-for="item in deliveryWayList"
:key="item.value"
:label="item.value"
>{{ item.label }}</el-checkbox
>
>{{ item.label }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
@ -414,7 +376,7 @@
</el-form>
</div>
<div class="main_title">
<div class="bluekuai"></div>
<div class="bluekuai" />
<div class="title_word">{{ '选择不合并产品' }}</div>
</div>
<div>
@ -427,37 +389,32 @@
>
<!-- :row-class-name="tableRowClassName"
-->
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column type="selection" width="55" />
<el-table-column
align="center"
prop="productName"
:label="'产品名称'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="specsName"
:label="'产品规格'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="quantity"
:label="'产品订单总量'"
>
</el-table-column>
/>
<el-table-column
align="center"
prop="productStock"
:label="'实际库存数量'"
>
</el-table-column>
/>
</el-table>
</div>
<div class="footer" style="text-align: center; margin-top: 20px">
<el-button @click="hdShow = false">
{{ '取消' }}</el-button
>
{{ '取消' }}</el-button>
<el-button type="primary" @click="sureHd('hdform')">{{
'确定'
}}</el-button>
@ -475,21 +432,21 @@
>
<div>
<el-form
ref="ztForm"
label-width="80px"
:model="ztForm"
ref="ztForm"
class="demo-ruleForm"
>
<el-form-item :label="'邮费返还'" prop="postage">
<el-input style="width: 166px" v-model="ztForm.postage"></el-input>
<el-input v-model="ztForm.postage" style="width: 166px" />
</el-form-item>
</el-form>
<div class="menuList">
<div
v-for="item in qhList"
@click="isMenu = item.id"
:class="['menu_i', isMenu == item.id ? 'actMenu' : '']"
:key="item.id"
:class="['menu_i', isMenu == item.id ? 'actMenu' : '']"
@click="isMenu = item.id"
>
{{ item.text }}
</div>
@ -506,22 +463,22 @@
align="center"
prop="orderCode"
:label="'订单编号'"
></el-table-column>
/>
<el-table-column
align="center"
prop="productName"
:label="'产品名称'"
></el-table-column>
/>
<el-table-column
align="center"
prop="specsName"
:label="'产品规格'"
></el-table-column>
/>
<el-table-column
align="center"
prop="quantity"
:label="'产品数量'"
></el-table-column>
/>
</el-table>
<el-table
v-if="isMenu == 1"
@ -536,18 +493,21 @@
align="center"
prop="orderCode"
:label="'订单编号'"
></el-table-column>
/>
<el-table-column
align="center"
prop="productName"
:label="'产品名称'"
></el-table-column>
/>
<el-table-column
align="center"
prop="specsName"
:label="'产品规格'"
></el-table-column>
<el-table-column align="center" prop="" :label="'产品数量'"
/>
<el-table-column
align="center"
prop=""
:label="'产品数量'"
><template>
<span>1</span>
</template>
@ -557,15 +517,14 @@
prop="barCode"
:label="'追溯码'"
><template slot-scope="scope">
<el-input v-model="scope.row.barCode"> </el-input>
<el-input v-model="scope.row.barCode" />
</template>
</el-table-column>
</el-table>
</div>
<div class="footer" style="text-align: center; margin-top: 20px">
<el-button @click="zitiShow = false">
{{ '取消' }}</el-button
>
{{ '取消' }}</el-button>
<el-button type="primary" @click="sureTh">{{
'确定'
}}</el-button>
@ -593,37 +552,35 @@
align="center"
prop="orderCode"
:label="'订单编号'"
></el-table-column>
/>
<el-table-column
align="center"
prop="orderAmount"
:label="'金额'"
></el-table-column>
/>
<el-table-column
align="center"
prop="orderAchieve"
:label="`${'业绩'}($)`"
></el-table-column>
<el-table-column align="center" prop="orderAssAchieve" label="BV">
</el-table-column>
/>
<el-table-column align="center" prop="orderAssAchieve" label="BV" />
</el-table>
</div>
<el-form
ref="orderDkForm"
label-width="120px"
:model="orderDkForm"
ref="orderDkForm"
class="demo-ruleForm"
>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="抵扣订单编号" prop="orderCode">
<el-input v-model="orderDkForm.orderCode"></el-input>
<el-input v-model="orderDkForm.orderCode" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-button type="primary" @click="getOldOrderDk">
{{ '搜索' }}</el-button
>
{{ '搜索' }}</el-button>
</el-col>
</el-row>
</el-form>
@ -638,25 +595,23 @@
align="center"
prop="orderCode"
label="抵扣订单编号"
></el-table-column>
/>
<el-table-column
align="center"
prop="orderAmount"
:label="'金额'"
></el-table-column>
/>
<el-table-column
align="center"
prop="orderAchieve"
:label="`${'业绩'}($)`"
></el-table-column>
<el-table-column align="center" prop="orderAssAchieve" label="BV">
</el-table-column>
/>
<el-table-column align="center" prop="orderAssAchieve" label="BV" />
</el-table>
</div>
<div class="footer" style="text-align: center; margin-top: 20px">
<el-button @click="orderDkShow = false">
{{ '取消' }}</el-button
>
{{ '取消' }}</el-button>
<el-button type="primary" @click="sureOrderDk">{{
'确定'
}}</el-button>
@ -668,33 +623,33 @@
<script>
// import { getDeliveryUnhandledList } from "@/api/delivery";
import * as del from "@/api/delivery";
import * as del from '@/api/delivery'
export default {
name: "Unhandeled",
props: {
params: {
type: Object,
default: null,
},
},
name: 'Unhandeled',
filters: {
numFilter(value) {
//
let realVal = parseFloat(value).toFixed(2);
return realVal;
const realVal = parseFloat(value).toFixed(2)
return realVal
}
},
props: {
params: {
type: Object,
default: null
}
},
data() {
return {
qhList: [
{
text: '提货商品',
id: 0,
id: 0
},
{
text: '绑定追溯码',
id: 1,
},
id: 1
}
],
tableData: [],
total: 0,
@ -702,25 +657,26 @@ export default {
multiple: true,
hdShow: false, //
hdform: {
mergeType: "", //
mergeType: '', //
recNameBool: 0, //
recPhoneBool: 0, //
recAreaBool: 0, //
recAddressBool: 0, //
operateScope: 0, //
preSaleStatus: 0, //
transportTypeList: [], //
deliveryWayList: [], //
preSaleStatus: 0, // //
idList: [], // ID
excludeIdList: [], // ID
productNameBool: 0,
deliveryWayList: [],
transportTypeList: []
},
hdrules: {
transportTypeList: [
{ required: true, message: '请选择运输方式', trigger: "change" },
{ required: true, message: '请选择运输方式', trigger: 'change' }
],
deliveryWayList: [
{ required: true, message: '请选择发货方式', trigger: "change" },
],
{ required: true, message: '请选择发货方式', trigger: 'change' }
]
},
yesornoList: [],
supplyWayList: [], //
@ -730,188 +686,198 @@ export default {
unproductData: [],
zitiShow: false,
ztTitle: '自提',
isMenu: "0",
isMenu: '0',
ztData: {},
ztForm: {
postage: "",
postage: ''
},
orderIdList: [], // orderIdList
pageSizes: [100, 200, 500, 1000, 2000],
selRow: [],
orderDkShow: false,
orderDkForm: {
orderCode: "",
orderCode: ''
},
pkOrderNewData: [],
pkOrderOldData: [],
};
pkOrderOldData: []
}
},
created() {
this.getList();
this.getOther();
this.getList()
this.getOther()
},
methods: {
sureOrderDk() {
if (this.pkOrderNewData.length > 0 && this.pkOrderOldData.length > 0) {
let theform = {
const theform = {
pkOrderNewData: this.pkOrderNewData,
pkOrderOldData: this.pkOrderOldData,
};
pkOrderOldData: this.pkOrderOldData
}
//
this.$router.push({
path: "deductionZxqc",
path: 'deductionZxqc',
query: {
data: JSON.stringify(theform),
index: 254,
},
});
index: 254
}
})
}
},
//
orderDk() {
this.orderDkShow = true;
this.orderDkShow = true
del
.getNewDeductionData({ pkOrder: this.selRow[0].pkOrder })
.then((res) => {
if (res.code == 200) {
this.pkOrderNewData = [res.data];
this.pkOrderNewData = [res.data]
}
});
})
},
getOldOrderDk() {
del
.getOldDeductionData({
orderCode: this.orderDkForm.orderCode,
orderCode: this.orderDkForm.orderCode
})
.then((res) => {
if (res.code == 200) {
this.pkOrderOldData = [res.data];
this.pkOrderOldData = [res.data]
}
});
})
},
getOther() {
del.getDealerYesNo().then((res) => {
this.yesornoList = res.data;
});
this.yesornoList = res.data
})
del.getSupplyWay().then((res) => {
this.supplyWayList = res.data;
});
this.supplyWayList = res.data
})
del.getPresaleStatus().then((res) => {
this.presaleStatusList = res.data;
});
this.presaleStatusList = res.data
})
del.getDeliveryWayList().then((res) => {
this.deliveryWayList = res.data;
});
this.deliveryWayList = res.data || []
this.hdform.deliveryWayList.push(this.deliveryWayList[0].value)
})
del.getTransportType().then((res) => {
this.transportTypeList = res.data;
});
this.transportTypeList = res.data || []
this.hdform.transportTypeList.push(this.transportTypeList[0].value)
})
},
//
sureTh() {
this.$router.push({
path: "ztZxqc",
path: 'ztZxqc',
query: {
postage: this.ztForm.postage,
itemIdList: JSON.stringify(this.hdform.idList),
barCodeList: JSON.stringify(this.ztData.barCodeList),
productList: JSON.stringify(this.ztData.productList),
businessType: 251,
},
});
businessType: 251
}
})
},
//
mergeHd(index) {
this.hdform.mergeType = index;
this.hdform.mergeType = index
if (index == 1) {
this.hdShow = true;
this.hdShow = true
// const theidList = this.hdform.idList.join()
del
.getExcludeProduct({ mergeType: 1, idList: this.hdform.idList })
.then((res) => {
this.unproductData = res.data;
});
this.unproductData = res.data
})
} else if (index == 0) {
this.$confirm('是否确定进行全部合单操作?').then((_) => {
del
.deliverUnhandeldMerge(
Object.assign({}, this.params, {
mergeType: this.hdform.mergeType,
mergeType: this.hdform.mergeType
})
)
.then((res) => {
this.$message({
message: res.msg,
type: "success",
});
this.getList();
});
});
type: 'success'
})
this.getList()
})
})
} else if (index == 2) {
this.zitiShow = true;
this.zitiShow = true
del
.getUnhandeldSelfData({ orderIdList: this.orderIdList.join() })
.then((res) => {
this.ztData = res.data;
});
this.ztData = res.data
})
}
},
//
sureHd(formName) {
this.$refs[formName].validate((valid) => {
this.hdform.recAddressBool = Boolean(!this.hdform.recAddressBool);
this.hdform.recAreaBool = Boolean(!this.hdform.recAreaBool);
this.hdform.recNameBool = Boolean(!this.hdform.recNameBool);
this.hdform.recPhoneBool = Boolean(!this.hdform.recPhoneBool);
this.hdform.productNameBool = Boolean(!this.hdform.productNameBool);
// this.hdform.recAddressBool = Boolean(!this.hdform.recAddressBool)
// this.hdform.recAreaBool = Boolean(!this.hdform.recAreaBool)
// this.hdform.recNameBool = Boolean(!this.hdform.recNameBool)
// this.hdform.recPhoneBool = Boolean(!this.hdform.recPhoneBool)
// this.hdform.productNameBool = Boolean(!this.hdform.productNameBool)
const params = {
...this.hdform,
recAddressBool: Boolean(!this.hdform.recAddressBool),
recAreaBool: Boolean(!this.hdform.recAreaBool),
recNameBool: Boolean(!this.hdform.recNameBool),
recPhoneBool: Boolean(!this.hdform.recPhoneBool),
productNameBool: Boolean(!this.hdform.productNameBool)
}
if (valid) {
del.deliverUnhandeldMerge(this.hdform).then((res) => {
del.deliverUnhandeldMerge(params).then((res) => {
if (res.code == 200) {
this.$message({
message: res.msg,
type: "success",
});
this.getList();
this.hdShow = false;
type: 'success'
})
this.getList()
this.hdShow = false
}
});
})
}
});
})
},
handleSelectionChange(selection) {
this.hdform.idList = selection.map((item) => item.pkId);
this.orderIdList = selection.map((item) => item.pkOrder);
this.multiple = !selection.length;
this.selRow = selection;
this.hdform.idList = selection.map((item) => item.pkId)
this.orderIdList = selection.map((item) => item.pkOrder)
this.multiple = !selection.length
this.selRow = selection
},
handleSelectionChange2(sele) {
this.hdform.excludeIdList = sele.map((item) => item.pkProduct);
this.hdform.excludeIdList = sele.map((item) => item.pkProduct)
},
//
handleExport() {
this.params.pkIdList = this.hdform.idList;
this.params.pkIdList = this.hdform.idList
this.$confirm('是否确认导出所有数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: "warning",
type: 'warning'
}).then((_) => {
this.download(
"/sale/manage/deliver-unhandled/export",
'/sale/manage/deliver-unhandled/export',
// {pkIdList:this.hdform.idList},
{ ...this.params },
`${'未合单'}${new Date().getTime()}.xlsx`
);
});
)
})
},
getList() {
this.params.pkIdList = [];
this.params.pkIdList = []
del.getDeliveryUnhandledList(this.params).then((res) => {
this.tableData = res.rows;
this.total = res.total;
});
},
},
};
this.tableData = res.rows
this.total = res.total
})
}
}
}
</script>
<style lang="scss" scoped>