@@ -178,9 +251,14 @@
openTip: true,
loading: false,
workerLoading: false,
+ workerOrderLoading: false,
+ autoRefreshing: false,
settingLoading: false,
customerServiceLoading: false,
transferOrder: false,
+ workerOrderVisible: false,
+ workerOrderTab: "daiqu",
+ selectedWorker: {},
selectList: [],
searchWorker: {
baozhang: false,
@@ -228,6 +306,10 @@
regionId: regionId,
customerPhone: ""
},
+ workerOrderForm: {
+ pageNum: 1,
+ pageSize: 10
+ },
form: {},
tabName: "hall",
hallTab: "waimai",
@@ -242,11 +324,18 @@
daiqu: 0,
daisong: 0
},
+ workerOrderCounts: {
+ daiqu: 0,
+ daisong: 0
+ },
workerList: this.buildWorkerColumns(),
+ workerOrderColumns: [],
columns: [],
data: [],
+ workerOrderList: [],
total: 0,
workerTotal: 0,
+ workerOrderTotal: 0,
orderId: "",
transferActionTitle: "指派配送员",
transferActionType: "assign",
@@ -267,11 +356,17 @@
},
deliveryTotalCount() {
return this.toNumber(this.deliveryCounts.daiqu) + this.toNumber(this.deliveryCounts.daisong);
+ },
+ workerOrderTitle() {
+ const name = this.selectedWorker.workerName || "配送员";
+ const phone = this.selectedWorker.workerPhone ? "(" + this.selectedWorker.workerPhone + ")" : "";
+ return name + phone + "的订单";
}
},
methods: {
init() {
this.columns = this.buildOrderColumns();
+ this.workerOrderColumns = this.buildOrderColumns(false);
this.getLogisticsInfo();
this.refreshOrderCounts();
this.startCountRefreshTimer();
@@ -279,12 +374,7 @@
this.getCustomerServiceSetting();
},
buildWorkerColumns() {
- return [{
- type: "index",
- width: 60,
- align: "center",
- fixed: "left",
- }, {
+ return [ {
title: "配送人员",
key: "workerName",
width: 200,
@@ -297,17 +387,17 @@
}, {
title: "待取",
key: "orderGetCount",
- width: 130,
+ width: 110,
align: "center",
}, {
title: "待送",
key: "orderPutCount",
- width: 130,
+ width: 110,
align: "center",
}, {
title: "待接单",
key: "orderWaitCount",
- width: 130,
+ width: 110,
align: "center",
}, {
title: "配送佣金",
@@ -330,37 +420,37 @@
])
}];
},
- buildOrderColumns() {
+ buildOrderColumns(clickableWorker = true) {
return [{
- type: "index",
- width: 60,
- align: "center",
- fixed: "left",
- }, {
title: "订单时间",
key: "createTime",
- width: 170,
+ width: 190,
align: "center",
- render: (h, params) => h("span", this.formatDateTime(params.row.createTime))
+ render: (h, params) => h("div", [
+ h("div", this.formatDateTime(params.row.createTime)),
+ h("div", { class: "order-time-order-no" }, "订单编号:" + this.getOrderNo(params.row))
+ ])
+ }, {
+ title: "配送员",
+ key: "workerName",
+ width: 150,
+ align: "center",
+ render: (h, params) => this.renderWorkerInfo(h, params.row, clickableWorker)
},{
title: "送达时间",
key: "mustFinishTime",
- width: 180,
+ width: 210,
align: "center",
render: (h, params) => h("div", [
- h("Tag", {
- props: {
- color: this.isNearMustFinishTime(params.row) ? "red" : "green"
- }
- }, this.formatDateTime(params.row.mustFinishTime)),
+ h("span", { class: "must-finish-time" }, this.formatDateTime(params.row.mustFinishTime)),
this.isNearMustFinishTime(params.row) ? h("div", {
- style: { color: "#ed4014", marginTop: "4px" }
+ style: { color: "#515a6e", marginTop: "4px", fontWeight: 700 }
}, this.getMustFinishWarningText(params.row)) : null
])
},{
title: "配送类型",
key: "deliveryType",
- width: 100,
+ width: 140,
align: "center",
render: (h, params) => this.renderDeliveryTags(h, params.row)
}, {
@@ -373,25 +463,6 @@
key: "receiverAddress",
minWidth: 240,
render: (h, params) => this.renderAddressBlock(h, params.row, "receiver")
- }, {
- title: "订单状态",
- key: "status",
- width: 80,
- align: "center",
- render: (h, params) => h("Tag", {
- props: {
- color: this.getStatusColor(params.row.status)
- }
- }, this.getStatusText(params.row.status))
- }, {
- title: "配送员",
- key: "workerName",
- width: 150,
- align: "center",
- render: (h, params) => h("div", [
- h("div", params.row.workerName || "未分配"),
- params.row.workerPhone ? h("div", { style: { color: "#999", fontSize: "12px" } }, params.row.workerPhone) : null
- ])
}, {
title: "配送佣金",
key: "deliveryFee",
@@ -501,6 +572,24 @@
this.searchWorker.pageNum = 1;
this.getWorker();
},
+ handleWorkerSearch() {
+ this.searchWorker.pageNum = 1;
+ this.getWorker();
+ },
+ handleWorkerReset() {
+ this.searchWorker.keyword = "";
+ this.searchWorker.pageNum = 1;
+ this.getWorker();
+ },
+ changeWorkerOrderPage(v) {
+ this.workerOrderForm.pageNum = v;
+ this.getWorkerOrders();
+ },
+ changeWorkerOrderPageSize(v) {
+ this.workerOrderForm.pageSize = v;
+ this.workerOrderForm.pageNum = 1;
+ this.getWorkerOrders();
+ },
changeTableSize(v) {
this.tableSize = v;
},
@@ -512,53 +601,126 @@
}
this.getLogisticsInfo();
},
- getLogisticsInfo() {
+ getLogisticsInfo(silent = false) {
if (!this.isOrderTab) return;
if (this.tabName === "hall") {
- this.getHallOrders();
+ return this.getHallOrders(silent);
} else {
- this.getDeliveryOrders();
+ return this.getDeliveryOrders(silent);
}
},
- getHallOrders() {
- this.loading = true;
+ getHallOrders(silent = false) {
+ if (!silent) this.loading = true;
const params = this.cleanParams(this.hallSearchForm);
delete params.paths;
delete params.waimaiData;
delete params.kuaidiData;
delete params.workerId;
- getAdminDeliveryHallData(params).then((res) => {
+ return getAdminDeliveryHallData(params).then((res) => {
if (this.isSuccess(res)) {
const result = res.result || {};
this.data = this.normalizeRecords(result.records);
this.total = Number(result.total) || 0;
}
}).finally(() => {
- this.loading = false;
+ if (!silent) this.loading = false;
});
},
- getDeliveryOrders() {
- this.loading = true;
+ getDeliveryOrders(silent = false) {
+ if (!silent) this.loading = true;
const params = this.cleanParams(this.deliverySearchForm);
delete params.workerId;
- orderSchedulingAdmin(params).then((res) => {
+ return orderSchedulingAdmin(params).then((res) => {
if (this.isSuccess(res)) {
const result = res.result || {};
this.data = this.normalizeRecords(result.records);
this.total = Number(result.total) || 0;
}
}).finally(() => {
- this.loading = false;
+ if (!silent) this.loading = false;
+ });
+ },
+ openWorkerOrders(row) {
+ if (!row || !row.workerId) {
+ this.$Message.warning("该订单暂无配送员");
+ return;
+ }
+ this.selectedWorker = {
+ workerId: row.workerId,
+ workerName: row.workerName || "",
+ workerPhone: row.workerPhone || ""
+ };
+ this.workerOrderTab = "daiqu";
+ this.workerOrderForm.pageNum = 1;
+ this.workerOrderVisible = true;
+ this.getWorkerOrderCounts();
+ this.getWorkerOrders();
+ },
+ changeWorkerOrderTab(v) {
+ this.workerOrderTab = v;
+ this.workerOrderForm.pageNum = 1;
+ this.getWorkerOrders();
+ },
+ buildWorkerOrderParams() {
+ const source = this.activeSearchForm || {};
+ const params = {
+ regionId: source.regionId || this.currentRegionId,
+ deliveryType: source.deliveryType,
+ getAreaId: source.getAreaId,
+ putAreaId: source.putAreaId,
+ shopName: source.shopName,
+ order: source.order,
+ workerId: this.selectedWorker.workerId,
+ status: DELIVERY_STATUS_MAP[this.workerOrderTab],
+ pageNum: this.workerOrderForm.pageNum,
+ pageSize: this.workerOrderForm.pageSize
+ };
+ return this.cleanParams(params);
+ },
+ buildWorkerOrderCountParams(status) {
+ return Object.assign({}, this.buildWorkerOrderParams(), {
+ status: status,
+ pageNum: 1,
+ pageSize: 1
+ });
+ },
+ getWorkerOrderCounts() {
+ if (!this.selectedWorker.workerId) return;
+ Promise.all([
+ orderSchedulingAdmin(this.buildWorkerOrderCountParams(DELIVERY_STATUS_MAP.daiqu)),
+ orderSchedulingAdmin(this.buildWorkerOrderCountParams(DELIVERY_STATUS_MAP.daisong))
+ ]).then(([daiqu, daisong]) => {
+ if (this.isSuccess(daiqu)) {
+ this.workerOrderCounts.daiqu = Number((daiqu.result || {}).total) || 0;
+ }
+ if (this.isSuccess(daisong)) {
+ this.workerOrderCounts.daisong = Number((daisong.result || {}).total) || 0;
+ }
+ });
+ },
+ getWorkerOrders() {
+ if (!this.selectedWorker.workerId) return;
+ this.workerOrderLoading = true;
+ orderSchedulingAdmin(this.buildWorkerOrderParams()).then((res) => {
+ if (this.isSuccess(res)) {
+ const result = res.result || {};
+ this.workerOrderList = this.normalizeRecords(result.records);
+ this.workerOrderTotal = Number(result.total) || 0;
+ }
+ }).finally(() => {
+ this.workerOrderLoading = false;
});
},
refreshOrderCounts() {
- this.getHallOrderCounts();
- this.getDeliveryStatusCounts();
+ return Promise.all([
+ this.getHallOrderCounts(),
+ this.getDeliveryStatusCounts()
+ ]);
},
startCountRefreshTimer() {
this.clearCountRefreshTimer();
this.countRefreshTimer = setInterval(() => {
- this.refreshOrderCounts();
+ this.refreshAutoData();
}, 30000);
},
clearCountRefreshTimer() {
@@ -567,6 +729,16 @@
this.countRefreshTimer = null;
}
},
+ refreshAutoData() {
+ if (!this.isOrderTab || this.loading || this.autoRefreshing) return;
+ this.autoRefreshing = true;
+ Promise.all([
+ this.getLogisticsInfo(true),
+ this.refreshOrderCounts()
+ ]).catch(() => {}).finally(() => {
+ this.autoRefreshing = false;
+ });
+ },
getHallOrderCounts() {
const params = this.cleanParams({
...this.hallSearchForm,
@@ -579,7 +751,7 @@
delete params.workerId;
delete params.deliveryType;
delete params.order;
- getAdminDeliveryHallData(params).then((res) => {
+ return getAdminDeliveryHallData(params).then((res) => {
if (this.isSuccess(res)) {
this.setHallCounts(res.result || {});
}
@@ -596,7 +768,7 @@
delete params.workerId;
return params;
};
- Promise.all([orderSchedulingAdmin(buildParams(1)), orderSchedulingAdmin(buildParams(2))]).then(([daiqu, daisong]) => {
+ return Promise.all([orderSchedulingAdmin(buildParams(1)), orderSchedulingAdmin(buildParams(2))]).then(([daiqu, daisong]) => {
if (this.isSuccess(daiqu)) {
this.deliveryCounts.daiqu = Number((daiqu.result || {}).total) || 0;
}
@@ -704,10 +876,12 @@
newWorkerId: item.workerId,
newWorkerName: item.workerName,
newWorkerPhone: item.mobile,
+ fromWhere: "admin",
}).then((res) => {
if (this.isSuccess(res)) {
this.$Message.success(actionText + "配送员成功");
this.transferOrder = false;
+ this.workerOrderVisible = false;
this.getLogisticsInfo();
}
});
@@ -725,7 +899,7 @@
},
unbind(v) {
if (!this.canAssignWorker(v)) {
- this.$Message.warning("只有待接单配送单支持指派或改派");
+ this.$Message.warning("只有待接单、待取货、待送达配送单支持指派或改派");
return;
}
if (!v.getAreaId || !v.putAreaId) {
@@ -783,7 +957,23 @@
});
},
getOrderNo(row) {
- return row.numberCode || row.orderId || row.orderNo || row.id || "";
+ return row.orderId || row.orderNo || row.numberCode || row.id || "";
+ },
+ getOrderRowClassName(row) {
+ return this.isNearMustFinishTime(row) ? "logistics-warning-row" : "";
+ },
+ renderWorkerInfo(h, row, clickable = true) {
+ const children = [
+ h("div", { class: "worker-info-name" }, row.workerName || "未分配"),
+ row.workerPhone ? h("div", { class: "worker-info-phone" }, row.workerPhone) : null
+ ];
+ if (!clickable || !row.workerId) return h("div", children);
+ return h("div", {
+ class: "worker-info",
+ on: {
+ click: () => this.openWorkerOrders(row)
+ }
+ }, children);
},
getDeliveryTypeText(type, row) {
if (row && row.workerId && this.tabName === "hall") return "指派单";
@@ -802,6 +992,9 @@
}
if (row.transferDelivery == 1) {
tags.push(h("Tag", { props: { color: "purple" } }, "中转配送"));
+ if (row.transferPickupCode) {
+ tags.push(h("div", { class: "transfer-pickup-code" }, "中转码:" + row.transferPickupCode));
+ }
}
if (row.isBig == 1) {
tags.push(h("Tag", { props: { color: "red" } }, "超大/超重"));
@@ -818,10 +1011,10 @@
renderAddressBlock(h, row, type) {
if (type === "shop") {
const children = [
- h("div", { style: { fontWeight: 700 } }, row.shopName || ""),
- h("div", row.shopAddress || "")
+ h("div", { style: { fontWeight: 700 } }, row.shopName || "")
];
- if (row.shopPhone) children.push(h("div", { style: { color: "#999" } }, "电话:" + row.shopPhone));
+ if (row.shopPhone) children.push(h("div", { style: { fontWeight: 700 } }, "电话:" + row.shopPhone));
+ children.push(h("div", row.shopAddress || ""));
if (row.transferDelivery == 1) {
children.push(h("div", { style: { color: "#b26a00" } }, "中转点:" + (row.transferAddressName || row.shopName || "")));
children.push(h("div", { style: { color: "#b26a00" } }, "送达中转点:" + (row.transferArriveTime ? this.formatDateTime(row.transferArriveTime) : "商家未确认送达")));
@@ -831,8 +1024,8 @@
}
return h("div", [
h("div", { style: { fontWeight: 700 } }, row.receiverName || ""),
+ row.receiverPhone ? h("div", { style: { fontWeight: 700 } }, "电话:" + row.receiverPhone) : null,
h("div", row.receiverAddress || ""),
- row.receiverPhone ? h("div", { style: { color: "#999" } }, "电话:" + row.receiverPhone) : null,
row.deliveryType == 2 || row.deliveryType == 3 ? h("div", { style: { color: "#999" } }, "件数:" + (row.allCount || 0) + "件") : null,
row.getCodes ? h("div", { style: { color: "#999" } }, "取件码:" + row.getCodes) : null,
row.phoneNumber ? h("div", { style: { color: "#999" } }, "手机尾号:" + row.phoneNumber) : null
@@ -863,7 +1056,7 @@
return h("div", children);
},
canAssignWorker(row) {
- return row && row.status == 0;
+ return row && [0, 1, 2].indexOf(Number(row.status)) > -1;
},
getWorkerOrderType(row) {
return row && row.deliveryType == 2 ? 1 : 0;
@@ -927,6 +1120,12 @@
mounted() {
this.init();
},
+ activated() {
+ this.startCountRefreshTimer();
+ },
+ deactivated() {
+ this.clearCountRefreshTimer();
+ },
beforeDestroy() {
this.clearCountRefreshTimer();
},
diff --git a/src/views/app/business/logistics/logisticsAddress.vue b/src/views/app/business/logistics/logisticsAddress.vue
index 2666f5a..beb2494 100644
--- a/src/views/app/business/logistics/logisticsAddress.vue
+++ b/src/views/app/business/logistics/logisticsAddress.vue
@@ -1,15 +1,12 @@
-
+
-
核对编号:{{orderData.numberCode}}
-
物流编号:{{orderData.deliveryInfo.id}}
-
-
-
订单编号:{{orderData.id}}
-
物流订单生成时间:{{orderData.deliveryInfo.createTime | formatDateTime}}
+
订单号:{{orderData.numberCode}}
+
配送单生成时间:{{orderData.deliveryInfo.createTime | formatDateTime}}
+
商家信息
@@ -19,7 +16,7 @@
地址:{{orderData.shopAddress}}
-
发货时间:{{orderData.shopMakeTime | formatDateTime}}
+
出餐时间:{{orderData.shopMakeTime | formatDateTime}}
用户信息
@@ -31,48 +28,48 @@
地址:{{orderData.receiverAddress}}
-
要求送达时间:{{orderData.deliveryInfo.mustFinishTime | formatDateTime}}
+
预计送达时间:{{orderData.deliveryInfo.mustFinishTime | formatDateTime}}
商品信息
-
-
-
{{item.productName}}
-
{{item.specs}}
-
{{item.quantity}}
-
¥{{item.price}}
-
-
-
餐盒费
-
¥{{orderData.packageFee}}
-
-
-
配送费
-
¥{{orderData.deliveryFee}}
-
-
-
总计
-
¥{{orderData.totalAmount}}
-
-
-
抵用券金额
-
+
+
+
{{item.productName}}
+
{{item.specs}}
+
{{item.quantity}}
+
¥{{item.price}}
+
+
+
餐盒费
+
¥{{orderData.packageFee}}
+
+
+
配送费
+
¥{{orderData.deliveryFee}}
+
+
+
实付金额
+
¥{{orderData.totalAmount}}
+
+
+
抵用券金额
+
¥{{orderData.couponDiscountFee== null?0.00:orderData.couponDiscountFee}}
-
-
活动优惠金额
-
¥0.00
+
+
锦鲤免单金额
+
¥{{orderData.freeAmount > 0? orderData.freeAmount : 0}}
-
-
实付金额
-
¥{{orderData.totalAmount}}
+
+
实付金额
+
¥{{orderData.totalAmount}}
配送流程
@@ -88,20 +85,26 @@
{{orderData.createTime | formatDateTime}}
+
+
配送员接单
+
+ {{orderData.deliveryInfo.acceptTime | formatDateTime}}
+
{{orderData.deliveryInfo.workerName}}
+
商家出餐
{{orderData.shopMakeTime | formatDateTime}}
{{orderData.shopName}}
-
-
配送员接单
+
+
商家送达中转点
- {{orderData.deliveryInfo.acceptTime | formatDateTime}}
-
{{orderData.deliveryInfo.workerName}}
+ {{orderData.deliveryInfo.transferArriveTime | formatDateTime}}
+
{{orderData.shopName}}
-
已到店
+
{{isTransferOrder ? '配送员到达中转点' : '已到店'}}
{{orderData.deliveryInfo.arriveTime | formatDateTime}}
{{orderData.deliveryInfo.workerName}}
@@ -146,6 +149,12 @@
};
},
+ computed: {
+ isTransferOrder() {
+ const deliveryInfo = this.orderData.deliveryInfo || {};
+ return this.orderData.transferDelivery == 1 || deliveryInfo.transferDelivery == 1;
+ }
+ },
filters: {
formatDateTime(isoString) {
if (!isoString) return ''
@@ -190,11 +199,45 @@
//@import "@/styles/table-common.less";
.nei1 {
display: flex;
+ padding-top: 10rpx;
border: 1px solid #eee;
height: 30px;
line-height: 30px;
}
+ .goods-table-row {
+ display: flex;
+ min-height: 30px;
+ border: 1px solid #eee;
+ line-height: 20px;
+ }
+
+ .goods-table-cell {
+ flex: 1;
+ padding: 5px 10px;
+ border-right: 1px solid #eee;
+ word-break: break-all;
+ }
+
+ .goods-table-cell.last {
+ border-right: 0;
+ }
+
+ .specs-cell {
+ white-space: normal;
+ }
+
+ .goods-summary-label {
+ flex: 1;
+ padding: 5px 10px;
+ border-right: 1px solid #eee;
+ }
+
+ .goods-summary-price {
+ width: 25%;
+ padding: 5px 10px;
+ }
+
.title {
height: 40px;
line-height: 40px;
diff --git a/src/views/app/business/luckey/luckey.vue b/src/views/app/business/luckey/luckey.vue
index b3ee91d..5a2e225 100644
--- a/src/views/app/business/luckey/luckey.vue
+++ b/src/views/app/business/luckey/luckey.vue
@@ -502,7 +502,6 @@
],
landmark: [
{ key: 'name', label: '地标名称' },
- { key: 'icon', label: '图标' },
{ key: 'benefitType', label: '收益类型', type: 'select', options: [
{ value: 'ticket', label: '每日发券' },
{ value: 'stamina_speed', label: '体力恢复加速' },
@@ -520,8 +519,6 @@
college: [
{ key: 'collegeName', label: '学院名称' },
{ key: 'shortName', label: '简称' },
- { key: 'icon', label: '图标/Emoji' },
- { key: 'themeColor', label: '主题色' },
{ key: 'sort', label: '排序', type: 'number' },
{ key: 'enabled', label: '是否启用', type: 'switch' }
]
@@ -576,7 +573,6 @@
},
taskColumns() {
return [
- { title: '编码', key: 'code', width: 100 },
{ title: '名称', key: 'name', minWidth: 120 },
{ title: '描述', key: 'description', minWidth: 180 },
{ title: '奖励券', key: 'rewardTickets', width: 80 },
@@ -728,7 +724,6 @@
landmarkColumns() {
return [
{ title: '名称', key: 'name', minWidth: 120 },
- { title: '图标', key: 'icon', minWidth: 80 },
{ title: '收益类型', key: 'benefitType', minWidth: 120 },
{ title: '收益值', key: 'benefitValue', minWidth: 90 },
{ title: '开放时间', minWidth: 150, render: (h, p) => h('span', `${p.row.openStartTime || '--'} - ${p.row.openEndTime || '--'}`) },
@@ -740,8 +735,6 @@
return [
{ title: '学院名称', key: 'collegeName', minWidth: 150 },
{ title: '简称', key: 'shortName', minWidth: 100 },
- { title: '图标', key: 'icon', minWidth: 90 },
- { title: '主题色', key: 'themeColor', minWidth: 100 },
{ title: '排序', key: 'sort', minWidth: 80 },
{ title: '启用', minWidth: 70, render: (h, p) => this.enabledTag(h, p.row.enabled) },
this.operateActionColumn('college')
@@ -778,7 +771,6 @@
return [
{ title: '日期', key: 'rankDate', minWidth: 120 },
{ title: '名次', key: 'rankNo', minWidth: 80 },
- { title: '昵称', key: 'nickname', minWidth: 120 },
{ title: '学院', key: 'college', minWidth: 120 },
{ title: '分数', key: 'score', minWidth: 90 },
{ title: '次数', key: 'playCount', minWidth: 80 },
@@ -805,11 +797,9 @@
{ title: '学院', key: 'college', minWidth: 120 },
{ title: '分数', key: 'score', width: 90 },
{ title: '耗时(秒)', key: 'durationSeconds', width: 100 },
- { title: '普通/金/钻/彩', minWidth: 130, render: (h, p) => h('span', `${p.row.normalCount || 0}/${p.row.goldenCount || 0}/${p.row.diamondCount || 0}/${p.row.rainbowCount || 0}`) },
- { title: '券袋', key: 'ticketBagCount', width: 80 },
- { title: '状态', width: 90, render: (h, p) => h('Tag', { props: { color: p.row.status === 1 ? 'green' : 'blue' } }, p.row.status === 1 ? '已提交' : '进行中') },
- { title: '异常', width: 80, render: (h, p) => h('Tag', { props: { color: p.row.cheatFlag === 'Y' ? 'red' : 'green' } }, p.row.cheatFlag === 'Y' ? '异常' : '正常') },
- { title: '原因', key: 'cheatReason', minWidth: 160 },
+ { title: '状态', width: 100, render: (h, p) => h('Tag', { props: { color: p.row.status === 1 ? 'green' : 'blue' } }, p.row.status === 1 ? '已提交' : '进行中') },
+ /* { title: '异常', width: 100, render: (h, p) => h('Tag', { props: { color: p.row.cheatFlag === 'Y' ? 'red' : 'green' } }, p.row.cheatFlag === 'Y' ? '异常' : '正常') },
+ { title: '原因', key: 'cheatReason', minWidth: 160 }, */
{ title: '开始时间', key: 'startTime', minWidth: 160 },
{ title: '提交时间', key: 'endTime', minWidth: 160 }
]
diff --git a/src/views/app/shop/shop.vue b/src/views/app/shop/shop.vue
index f7b6a67..728f00b 100644
--- a/src/views/app/shop/shop.vue
+++ b/src/views/app/shop/shop.vue
@@ -1,6 +1,13 @@
@@ -241,9 +248,9 @@
const address = params.row.shopAddress || "";
return h("Tooltip", {
props: {
- content: address,
transfer: true,
placement: "top",
+ maxWidth: 520,
}
}, [
h("span", {
@@ -256,6 +263,11 @@
verticalAlign: "middle",
},
}, address)
+ ,
+ h("div", {
+ slot: "content",
+ class: "shop-address-tooltip"
+ }, address)
]);
},
},
diff --git a/src/views/sys/order-manage/logisticsAddress.vue b/src/views/sys/order-manage/logisticsAddress.vue
index 79ba3fd..9539fb4 100644
--- a/src/views/sys/order-manage/logisticsAddress.vue
+++ b/src/views/sys/order-manage/logisticsAddress.vue
@@ -80,17 +80,19 @@
-
物流信息
+
配送信息
+
配送单类型:{{getDeliveryModeText()}}
用户下单:{{orderData.createTime | formatDateTime}}
-
商家出餐:{{orderData.shopMakeTime | formatDateTime}}
配送员接单:{{orderData.deliveryInfo.acceptTime | formatDateTime}}
-
已到店:{{orderData.deliveryInfo.arriveTime | formatDateTime}}
+
商家出餐:{{orderData.shopMakeTime | formatDateTime}}
+
商家送达中转点:{{orderData.deliveryInfo.transferArriveTime | formatDateTime}}
+
{{(this.orderData.deliveryInfo && this.orderData.deliveryInfo.transferDelivery == 1) ? '配送员到达中转点' : '已到店'}}:{{orderData.deliveryInfo.arriveTime | formatDateTime}}
配送员已取货:{{orderData.deliveryInfo.getTime | formatDateTime}}
配送员已送达:{{orderData.deliveryInfo.finishTime | formatDateTime}}
运营订单备注
-
+
{{ refundLoading ? "退款中" : "退款" }}
@@ -396,6 +398,23 @@
if (item.status == 12) return "订单已售后";
return "";
},
+ isTransferOrder() {
+ const deliveryInfo = this.orderData.deliveryInfo || {};
+ return this.orderData.transferDelivery == 1 || deliveryInfo.transferDelivery == 1;
+ },
+ isShopDeliveryOrder() {
+ const deliveryInfo = this.orderData.deliveryInfo || {};
+ return this.orderData.shopDelivery == 1 || deliveryInfo.shopDelivery == 1;
+ },
+ getDeliveryModeText() {
+ const modes = [];
+ if (this.isTransferOrder()) modes.push("中转单");
+ if (this.isShopDeliveryOrder()) modes.push("商家自配送单");
+ if (modes.length > 0) return modes.join(" / ");
+ if (this.orderData.deliveryType == 1) return "普通配送单";
+ if (this.orderData.deliveryType == 2) return "到店自取";
+ return "";
+ },
getAutoRefundTime(value) {
if (!value) return "";
const date = new Date(value);
diff --git a/src/views/sys/order-manage/orderManage.vue b/src/views/sys/order-manage/orderManage.vue
index 4bc2c27..f601637 100644
--- a/src/views/sys/order-manage/orderManage.vue
+++ b/src/views/sys/order-manage/orderManage.vue
@@ -93,7 +93,10 @@
-
+
@@ -470,6 +473,7 @@
status: 0
},
searchForm: {
+ id: "",
pageNum: 1,
pageSize: 10,
regionId: JSON.parse(this.getStore("user")).departmentId,
@@ -567,7 +571,7 @@
{
title: "完成支付时间",
key: "createTime",
- width: 180,
+ minWidth: 180,
align: "center",
render: (h, params) => {
return h(
@@ -1137,6 +1141,7 @@
},
handleReset() {
this.$refs.searchForm.resetFields();
+ this.searchForm.id = "";
this.searchForm.shopName = "";
this.searchForm.receiverPhone = "";
this.searchForm.pageNum = 1;