|
@@ -1,22 +1,17 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { h, ref, reactive, shallowRef, onMounted, toRaw, computed } from 'vue';
|
|
|
|
|
-import EditShipment from '@/order/EditShipment.vue';
|
|
|
|
|
|
|
+import { h, ref, reactive, shallowRef, onMounted, toRaw } from 'vue';
|
|
|
import OrderDetail from '@/service/OrderDetail.vue';
|
|
import OrderDetail from '@/service/OrderDetail.vue';
|
|
|
-import LogisticsDetails from '@/order/LogisticsDetails.vue';
|
|
|
|
|
import Negotiations from '@/order/Negotiations.vue';
|
|
import Negotiations from '@/order/Negotiations.vue';
|
|
|
import SeeAmount from '@/order/SeeAmount.vue';
|
|
import SeeAmount from '@/order/SeeAmount.vue';
|
|
|
import Amount from '@/order/Amount.vue';
|
|
import Amount from '@/order/Amount.vue';
|
|
|
import Review from '@/order/Review.vue';
|
|
import Review from '@/order/Review.vue';
|
|
|
-import type { ShipmentModel, ShipmentQuery } from '@/model/order.model';
|
|
|
|
|
-import { getAllSupplierMethod } from '@/request/api/care.api';
|
|
|
|
|
|
|
+import type { AfterSaleModel, AfterSaleQuery } from '@/model/order.model';
|
|
|
defineOptions({
|
|
defineOptions({
|
|
|
- name: 'ShipmentPage',
|
|
|
|
|
|
|
+ name: 'AfterSalePage',
|
|
|
});
|
|
});
|
|
|
-import { receiptStatus, receiptType } from '@/model/options';
|
|
|
|
|
-import dayjs from 'dayjs';
|
|
|
|
|
// 接口数据
|
|
// 接口数据
|
|
|
import {
|
|
import {
|
|
|
- getShipmentListMethod,
|
|
|
|
|
|
|
+ getAfterSaleMethod,
|
|
|
} from '@/request/api/order.api';
|
|
} from '@/request/api/order.api';
|
|
|
import { usePagination } from 'alova/client';
|
|
import { usePagination } from 'alova/client';
|
|
|
|
|
|
|
@@ -31,15 +26,20 @@ import type {
|
|
|
VxeGridProps,
|
|
VxeGridProps,
|
|
|
} from 'vxe-table';
|
|
} from 'vxe-table';
|
|
|
|
|
|
|
|
|
|
+const progressOptions = [
|
|
|
|
|
+ { label: '退款申请中', value: '0' },
|
|
|
|
|
+ { label: '撤销退款', value: '1' },
|
|
|
|
|
+ { label: '退款已拒绝', value: '2' },
|
|
|
|
|
+ { label: '退款已同意', value: '3' },
|
|
|
|
|
+ { label: '退款完成', value: '4' },
|
|
|
|
|
+];
|
|
|
|
|
|
|
|
-const model = shallowRef<ShipmentQuery>();
|
|
|
|
|
-const searchFormProps = reactive<VxeFormProps<ShipmentQuery>>({
|
|
|
|
|
|
|
+const model = shallowRef<AfterSaleQuery>();
|
|
|
|
|
+const searchFormProps = reactive<VxeFormProps<AfterSaleQuery>>({
|
|
|
titleWidth: 100,
|
|
titleWidth: 100,
|
|
|
titleAlign: 'right',
|
|
titleAlign: 'right',
|
|
|
titleColon: true,
|
|
titleColon: true,
|
|
|
- data: {
|
|
|
|
|
- receiptStatus: '0', // 默认待发货
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ data: {},
|
|
|
items: [
|
|
items: [
|
|
|
{
|
|
{
|
|
|
field: 'orderNo',
|
|
field: 'orderNo',
|
|
@@ -48,27 +48,21 @@ const searchFormProps = reactive<VxeFormProps<ShipmentQuery>>({
|
|
|
itemRender: { name: 'VxeInput', props: { placeholder: '请输入' } },
|
|
itemRender: { name: 'VxeInput', props: { placeholder: '请输入' } },
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- field: 'receiptStatus',
|
|
|
|
|
|
|
+ field: 'liaison',
|
|
|
title: '收货人',
|
|
title: '收货人',
|
|
|
span: 4,
|
|
span: 4,
|
|
|
-
|
|
|
|
|
- itemRender: {
|
|
|
|
|
- name: 'VxeSelect',
|
|
|
|
|
- options: receiptStatus,
|
|
|
|
|
- props: { placeholder: '请选择', clearable: true },
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ itemRender: { name: 'VxeInput', props: { placeholder: '请输入' } },
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- field: 'receiptType',
|
|
|
|
|
|
|
+ field: 'progress',
|
|
|
title: '退款状态',
|
|
title: '退款状态',
|
|
|
span: 4,
|
|
span: 4,
|
|
|
itemRender: {
|
|
itemRender: {
|
|
|
name: 'VxeSelect',
|
|
name: 'VxeSelect',
|
|
|
- options: receiptType,
|
|
|
|
|
- props: { placeholder: '请选择' },
|
|
|
|
|
|
|
+ options: progressOptions,
|
|
|
|
|
+ props: { placeholder: '请选择', clearable: true },
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
-
|
|
|
|
|
{
|
|
{
|
|
|
span: 8,
|
|
span: 8,
|
|
|
itemRender: {
|
|
itemRender: {
|
|
@@ -82,88 +76,24 @@ const searchFormProps = reactive<VxeFormProps<ShipmentQuery>>({
|
|
|
},
|
|
},
|
|
|
],
|
|
],
|
|
|
});
|
|
});
|
|
|
-const searchFormEmits: VxeFormListeners<ShipmentQuery> = {
|
|
|
|
|
|
|
+const searchFormEmits: VxeFormListeners<AfterSaleQuery> = {
|
|
|
submit({ data }) {
|
|
submit({ data }) {
|
|
|
- model.value = {
|
|
|
|
|
- ...data,
|
|
|
|
|
- payTimeStart: payTimeStart.value ? dayjs(payTimeStart.value).format('YYYY-MM-DD HH:mm:ss') : '',
|
|
|
|
|
- payTimeEnd: payTimeEnd.value ? dayjs(payTimeEnd.value).format('YYYY-MM-DD HH:mm:ss') : '',
|
|
|
|
|
- } as any;
|
|
|
|
|
|
|
+ model.value = { ...data } as any;
|
|
|
},
|
|
},
|
|
|
- // 重置
|
|
|
|
|
reset({ data }) {
|
|
reset({ data }) {
|
|
|
model.value = { ...data } as any;
|
|
model.value = { ...data } as any;
|
|
|
- payTimeStart.value = '';
|
|
|
|
|
- payTimeEnd.value = '';
|
|
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
-const processedData = ref<ShipmentModel[]>([]);
|
|
|
|
|
-const orderGroupMap = ref<Map<string, { startIndex: number; count: number; rows: ShipmentModel[] }>>(new Map());
|
|
|
|
|
-
|
|
|
|
|
-function getGroupKey(item: ShipmentModel): string {
|
|
|
|
|
- const orderNo = item.orderNo || '';
|
|
|
|
|
- const supplierId = item.conditioningProgramSupplierId || '';
|
|
|
|
|
- return `${orderNo}_${supplierId}`;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-function processDataForMerge(data: ShipmentModel[]) {
|
|
|
|
|
- const grouped = new Map<string, ShipmentModel[]>();
|
|
|
|
|
- const result: ShipmentModel[] = [];
|
|
|
|
|
-
|
|
|
|
|
- data.forEach((item) => {
|
|
|
|
|
- const groupKey = getGroupKey(item);
|
|
|
|
|
- if (!grouped.has(groupKey)) {
|
|
|
|
|
- grouped.set(groupKey, []);
|
|
|
|
|
- }
|
|
|
|
|
- grouped.get(groupKey)!.push(item);
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- orderGroupMap.value.clear();
|
|
|
|
|
- let currentIndex = 0;
|
|
|
|
|
-
|
|
|
|
|
- grouped.forEach((rows, groupKey) => {
|
|
|
|
|
- const count = rows.length;
|
|
|
|
|
- orderGroupMap.value.set(groupKey, {
|
|
|
|
|
- startIndex: currentIndex,
|
|
|
|
|
- count,
|
|
|
|
|
- rows,
|
|
|
|
|
- });
|
|
|
|
|
- result.push(...rows);
|
|
|
|
|
- currentIndex += count;
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- processedData.value = result;
|
|
|
|
|
- return result;
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const gridRef = ref<VxeGridInstance<ShipmentModel>>();
|
|
|
|
|
-const gridOptions = reactive<VxeGridProps<ShipmentModel>>({
|
|
|
|
|
- id: 'tag-list',
|
|
|
|
|
|
|
+const gridRef = ref<VxeGridInstance<AfterSaleModel>>();
|
|
|
|
|
+const gridOptions = reactive<VxeGridProps<AfterSaleModel>>({
|
|
|
|
|
+ id: 'after-sale-list',
|
|
|
border: true,
|
|
border: true,
|
|
|
showOverflow: true,
|
|
showOverflow: true,
|
|
|
height: 'auto',
|
|
height: 'auto',
|
|
|
autoResize: false,
|
|
autoResize: false,
|
|
|
syncResize: true,
|
|
syncResize: true,
|
|
|
scrollY: { enabled: false },
|
|
scrollY: { enabled: false },
|
|
|
- spanMethod: ({ row, column, rowIndex }: any) => {
|
|
|
|
|
- const groupKey = getGroupKey(row);
|
|
|
|
|
- const groupInfo = orderGroupMap.value.get(groupKey);
|
|
|
|
|
-
|
|
|
|
|
- if (!groupInfo) return { rowspan: 1, colspan: 1 };
|
|
|
|
|
-
|
|
|
|
|
- const { startIndex, count } = groupInfo;
|
|
|
|
|
- const isFirstRow = rowIndex === startIndex;
|
|
|
|
|
-
|
|
|
|
|
- if (column.field === 'orderNo') {
|
|
|
|
|
- return isFirstRow ? { rowspan: count, colspan: 1 } : { rowspan: 0, colspan: 0 };
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (column.field === 'action') {
|
|
|
|
|
- return isFirstRow ? { rowspan: count, colspan: 1 } : { rowspan: 0, colspan: 0 };
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return { rowspan: 1, colspan: 1 };
|
|
|
|
|
- },
|
|
|
|
|
rowConfig: {
|
|
rowConfig: {
|
|
|
isHover: true,
|
|
isHover: true,
|
|
|
isCurrent: true,
|
|
isCurrent: true,
|
|
@@ -172,7 +102,6 @@ const gridOptions = reactive<VxeGridProps<ShipmentModel>>({
|
|
|
custom: true,
|
|
custom: true,
|
|
|
zoom: true,
|
|
zoom: true,
|
|
|
slots: {
|
|
slots: {
|
|
|
- // buttons: 'handle',
|
|
|
|
|
tools: 'toolbar-extra',
|
|
tools: 'toolbar-extra',
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
@@ -185,18 +114,18 @@ const gridOptions = reactive<VxeGridProps<ShipmentModel>>({
|
|
|
columns: [
|
|
columns: [
|
|
|
{ type: 'seq', width: 70, fixed: 'left' },
|
|
{ type: 'seq', width: 70, fixed: 'left' },
|
|
|
{ field: 'orderNo', title: '订单编号', slots: { default: 'orderNoCell' } },
|
|
{ field: 'orderNo', title: '订单编号', slots: { default: 'orderNoCell' } },
|
|
|
- { field: 'payTime', title: '售后类型' },
|
|
|
|
|
- { field: 'totalMeasure', title: '退款更新时间' },
|
|
|
|
|
|
|
+ { field: 'typeStr', title: '售后类型' },
|
|
|
|
|
+ { field: 'updateTime', title: '退款更新时间' },
|
|
|
{ field: 'conditioningProgramName', title: '项目名称' },
|
|
{ field: 'conditioningProgramName', title: '项目名称' },
|
|
|
- { field: 'totalMeasure', title: '商品类型' },
|
|
|
|
|
|
|
+ { field: 'sellTypeStr', title: '商品类型' },
|
|
|
{ field: 'totalPrice', title: '总价(元)' },
|
|
{ field: 'totalPrice', title: '总价(元)' },
|
|
|
- { field: 'pricingUnit', title: '收货人' },
|
|
|
|
|
- { field: 'unitPrice', title: '退款状态' },
|
|
|
|
|
- { field: 'receiptStatus', title: '物流状态', slots: { default: 'progressCell' } },
|
|
|
|
|
- { field: 'receiptType', title: '核销情况', slots: { default: 'shipmentTypeCell' } },
|
|
|
|
|
- { field: 'conditioningProgramSupplierName', title: '退款金额' },
|
|
|
|
|
- { field: 'conditioningProgramSupplierName', title: '退款原因' },
|
|
|
|
|
- { field: 'conditioningProgramSupplierName', title: '退款说明', slots: { default: 'refundReasonCell' } },
|
|
|
|
|
|
|
+ { field: 'liaison', title: '收货人' },
|
|
|
|
|
+ { field: 'progressStr', title: '退款状态' },
|
|
|
|
|
+ { field: 'expressStatus', title: '物流状态' },
|
|
|
|
|
+ { field: 'finishRatio', title: '核销情况' },
|
|
|
|
|
+ { field: 'refundAmount', title: '退款金额' },
|
|
|
|
|
+ { field: 'reason', title: '退款原因' },
|
|
|
|
|
+ { field: 'remark', title: '退款说明', slots: { default: 'refundReasonCell' } },
|
|
|
{
|
|
{
|
|
|
field: 'action',
|
|
field: 'action',
|
|
|
title: '操作',
|
|
title: '操作',
|
|
@@ -211,7 +140,7 @@ const gridOptions = reactive<VxeGridProps<ShipmentModel>>({
|
|
|
const gridEvents: VxeGridListeners = {};
|
|
const gridEvents: VxeGridListeners = {};
|
|
|
|
|
|
|
|
const { loading, page, pageSize, total, onSuccess, refresh } = usePagination(
|
|
const { loading, page, pageSize, total, onSuccess, refresh } = usePagination(
|
|
|
- (page, size) => getShipmentListMethod(page, size, model.value),
|
|
|
|
|
|
|
+ (page, size) => getAfterSaleMethod(page, size, model.value),
|
|
|
{
|
|
{
|
|
|
initialData: { data: [], total: 0 },
|
|
initialData: { data: [], total: 0 },
|
|
|
initialPage: 1,
|
|
initialPage: 1,
|
|
@@ -221,32 +150,16 @@ const { loading, page, pageSize, total, onSuccess, refresh } = usePagination(
|
|
|
}
|
|
}
|
|
|
);
|
|
);
|
|
|
onSuccess(({ data: { data } }) => {
|
|
onSuccess(({ data: { data } }) => {
|
|
|
- const processed = processDataForMerge(data);
|
|
|
|
|
- gridRef.value?.loadData(processed);
|
|
|
|
|
|
|
+ gridRef.value?.loadData(data);
|
|
|
});
|
|
});
|
|
|
-const supplierOptions = ref<{ label: string; value: string }[]>([]);
|
|
|
|
|
-const supplierArr = ref<any[]>([]);
|
|
|
|
|
-// 获取所有的供应商
|
|
|
|
|
-async function getSupplier(params: any) {
|
|
|
|
|
- supplierOptions.value = [];
|
|
|
|
|
- const res = (await getAllSupplierMethod(params)) as any[];
|
|
|
|
|
- if (Array.isArray(res) && res.length > 0) {
|
|
|
|
|
- supplierArr.value = res;
|
|
|
|
|
- supplierOptions.value = res.map((item: any) => ({
|
|
|
|
|
- label: item.name,
|
|
|
|
|
- value: item.id,
|
|
|
|
|
- }));
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
model.value = toRaw(searchFormProps.data);
|
|
model.value = toRaw(searchFormProps.data);
|
|
|
- getSupplier({});
|
|
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
// 点击订单编号查看订单详情
|
|
// 点击订单编号查看订单详情
|
|
|
-function serviceDetail(row?: ShipmentModel) {
|
|
|
|
|
|
|
+function serviceDetail(row?: AfterSaleModel) {
|
|
|
if (!row) return;
|
|
if (!row) return;
|
|
|
const types = 'record';
|
|
const types = 'record';
|
|
|
VxeUI.modal.open({
|
|
VxeUI.modal.open({
|
|
@@ -262,7 +175,7 @@ function serviceDetail(row?: ShipmentModel) {
|
|
|
return h(OrderDetail, {
|
|
return h(OrderDetail, {
|
|
|
data: {
|
|
data: {
|
|
|
...row,
|
|
...row,
|
|
|
- id: row.id,
|
|
|
|
|
|
|
+ id: row.patientConditioningProgramId,
|
|
|
types,
|
|
types,
|
|
|
},
|
|
},
|
|
|
onVoidSubmit() {
|
|
onVoidSubmit() {
|
|
@@ -274,11 +187,10 @@ function serviceDetail(row?: ShipmentModel) {
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-async function goShipment(row?: ShipmentModel) {
|
|
|
|
|
|
|
+async function goShipment(row?: AfterSaleModel) {
|
|
|
if (!row) return;
|
|
if (!row) return;
|
|
|
-
|
|
|
|
|
- const isReview = row.receiptStatus === '0'; // 待发货 -> 审核
|
|
|
|
|
- const isEditAmount = row.receiptStatus === '1'; // 已发货 -> 金额
|
|
|
|
|
|
|
+ const isReview = row.progress === '0'; // 退款申请中 → 审核
|
|
|
|
|
+ const isEditAmount = row.progress === '3'; // 退款已同意 → 金额
|
|
|
if (isReview) {
|
|
if (isReview) {
|
|
|
VxeUI.modal.open({
|
|
VxeUI.modal.open({
|
|
|
title: '审核',
|
|
title: '审核',
|
|
@@ -308,7 +220,6 @@ async function goShipment(row?: ShipmentModel) {
|
|
|
// 金额 or 查看金额
|
|
// 金额 or 查看金额
|
|
|
const title = isEditAmount ? '退款金额' : '退款金额查看';
|
|
const title = isEditAmount ? '退款金额' : '退款金额查看';
|
|
|
const component = isEditAmount ? Amount : SeeAmount;
|
|
const component = isEditAmount ? Amount : SeeAmount;
|
|
|
-
|
|
|
|
|
VxeUI.modal.open({
|
|
VxeUI.modal.open({
|
|
|
title,
|
|
title,
|
|
|
height: 500,
|
|
height: 500,
|
|
@@ -322,7 +233,6 @@ async function goShipment(row?: ShipmentModel) {
|
|
|
data: row,
|
|
data: row,
|
|
|
onSubmit: (amount: number) => {
|
|
onSubmit: (amount: number) => {
|
|
|
console.log('Final Amount:', amount);
|
|
console.log('Final Amount:', amount);
|
|
|
- // TODO: API call to update amount
|
|
|
|
|
refresh(page.value);
|
|
refresh(page.value);
|
|
|
VxeUI.modal.close('amount-edit-modal');
|
|
VxeUI.modal.close('amount-edit-modal');
|
|
|
},
|
|
},
|
|
@@ -336,30 +246,8 @@ async function goShipment(row?: ShipmentModel) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// 查看物流详情
|
|
|
|
|
-function viewLogistics(row?: ShipmentModel) {
|
|
|
|
|
|
|
+function goAfterSale(row?: AfterSaleModel) {
|
|
|
if (!row) return;
|
|
if (!row) return;
|
|
|
- VxeUI.modal.open({
|
|
|
|
|
- title: '物流详情',
|
|
|
|
|
- height: 800,
|
|
|
|
|
- width: 1000,
|
|
|
|
|
- escClosable: true,
|
|
|
|
|
- destroyOnClose: true,
|
|
|
|
|
- id: 'logistics-modal',
|
|
|
|
|
- slots: {
|
|
|
|
|
- default() {
|
|
|
|
|
- return h(LogisticsDetails, {
|
|
|
|
|
- data: row
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-function goAfterSale(row?: ShipmentModel) {
|
|
|
|
|
- if (!row) return;
|
|
|
|
|
- // TODO: Implement after sale details or history
|
|
|
|
|
- console.log('goAfterSale', row);
|
|
|
|
|
VxeUI.modal.open({
|
|
VxeUI.modal.open({
|
|
|
title: '协商历史',
|
|
title: '协商历史',
|
|
|
height: 800,
|
|
height: 800,
|
|
@@ -370,56 +258,32 @@ function goAfterSale(row?: ShipmentModel) {
|
|
|
slots: {
|
|
slots: {
|
|
|
default() {
|
|
default() {
|
|
|
return h(Negotiations, {
|
|
return h(Negotiations, {
|
|
|
- data: row
|
|
|
|
|
|
|
+ data: row
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- });
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const payTimeStart = ref<string>('');
|
|
|
|
|
-const payTimeEnd = ref<string>('');
|
|
|
|
|
-function disabledPayEndDate(current: any) {
|
|
|
|
|
- if (!payTimeStart.value) return false;
|
|
|
|
|
- return current && current < dayjs(payTimeStart.value);
|
|
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
<template>
|
|
<template>
|
|
|
<div class="page-container flex flex-col">
|
|
<div class="page-container flex flex-col">
|
|
|
<header class="flex-none mt-4">
|
|
<header class="flex-none mt-4">
|
|
|
- <vxe-form v-bind="searchFormProps" v-on="searchFormEmits">
|
|
|
|
|
- <template #payTimeRange>
|
|
|
|
|
- <div class="date-range-container">
|
|
|
|
|
- <a-date-picker v-model:value="payTimeStart" placeholder="请选择开始时间" style="flex: 1"
|
|
|
|
|
- :show-time="{ format: 'HH:mm' }" />
|
|
|
|
|
- <span class="date-separator">至</span>
|
|
|
|
|
- <a-date-picker v-model:value="payTimeEnd" placeholder="请选择结束时间" style="flex: 1"
|
|
|
|
|
- :disabledDate="disabledPayEndDate" :show-time="{ format: 'HH:mm' }" />
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </vxe-form>
|
|
|
|
|
|
|
+ <vxe-form v-bind="searchFormProps" v-on="searchFormEmits"></vxe-form>
|
|
|
</header>
|
|
</header>
|
|
|
<main class="flex-auto overflow-hidden">
|
|
<main class="flex-auto overflow-hidden">
|
|
|
<vxe-grid ref="gridRef" v-bind="gridOptions" v-on="gridEvents" :loading="loading">
|
|
<vxe-grid ref="gridRef" v-bind="gridOptions" v-on="gridEvents" :loading="loading">
|
|
|
<template #orderNoCell="{ row }">
|
|
<template #orderNoCell="{ row }">
|
|
|
<span class="order-no-link" @click="serviceDetail(row)">{{ row.orderNo }}</span>
|
|
<span class="order-no-link" @click="serviceDetail(row)">{{ row.orderNo }}</span>
|
|
|
</template>
|
|
</template>
|
|
|
- <template #progressCell="{ row }">
|
|
|
|
|
- <span class="order-no-link" @click="viewLogistics(row)">{{ row.receiptStatus === '0' ? '待发货' : row.receiptStatus === '1' ? '已发货' : row.receiptStatus === '2' ?
|
|
|
|
|
- '已收货' : '' }}</span>
|
|
|
|
|
- </template>
|
|
|
|
|
- <template #shipmentTypeCell="{ row }">
|
|
|
|
|
- <div>{{ row.receiptType === '0' ? '配送' : row.receiptType === '1' ? '线下取货' : '' }}</div>
|
|
|
|
|
- </template>
|
|
|
|
|
<template #refundReasonCell="{ row }">
|
|
<template #refundReasonCell="{ row }">
|
|
|
- <span class="order-no-link" @click="goAfterSale(row)">{{ row.conditioningProgramSupplierName }}</span>
|
|
|
|
|
|
|
+ <span class="order-no-link" @click="goAfterSale(row)">{{ row.remark }}</span>
|
|
|
</template>
|
|
</template>
|
|
|
<template #action="{ row }">
|
|
<template #action="{ row }">
|
|
|
<vxe-button mode="text" status="primary" @click="goAfterSale(row)">
|
|
<vxe-button mode="text" status="primary" @click="goAfterSale(row)">
|
|
|
协商历史
|
|
协商历史
|
|
|
</vxe-button>
|
|
</vxe-button>
|
|
|
<vxe-button mode="text" status="primary" @click="goShipment(row)">
|
|
<vxe-button mode="text" status="primary" @click="goShipment(row)">
|
|
|
- {{ row.receiptStatus === '0' ? '审核' : row.receiptStatus === '1' ? '金额' : '查看金额' }}
|
|
|
|
|
|
|
+ {{ row.progress === '0' ? '审核' : row.progress === '3' ? '金额' : '查看金额' }}
|
|
|
</vxe-button>
|
|
</vxe-button>
|
|
|
</template>
|
|
</template>
|
|
|
<template #toolbar-extra>
|
|
<template #toolbar-extra>
|
|
@@ -444,10 +308,6 @@ function disabledPayEndDate(current: any) {
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
|
-.date-separator {
|
|
|
|
|
- margin: 0 10px;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
.page-container {
|
|
.page-container {
|
|
|
padding: 0 24px;
|
|
padding: 0 24px;
|
|
|
max-height: var(--page-main-container);
|
|
max-height: var(--page-main-container);
|