|
@@ -17,7 +17,7 @@
|
|
<sa-empty />
|
|
<sa-empty />
|
|
</template>
|
|
</template>
|
|
<el-table-column type="selection" width="40" />
|
|
<el-table-column type="selection" width="40" />
|
|
- <el-table-column label="商品信息" min-width="360">
|
|
|
|
|
|
+ <el-table-column :label="t('modules.order.productInfo')" min-width="360">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
<div class="sa-flex">
|
|
<div class="sa-flex">
|
|
<sa-image :url="scope.row.image" size="40"></sa-image>
|
|
<sa-image :url="scope.row.image" size="40"></sa-image>
|
|
@@ -25,35 +25,35 @@
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="规格" min-width="120">
|
|
|
|
|
|
+ <el-table-column :label="t('modules.order.specification')" min-width="120">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
{{ scope.row.sku || '-' }}
|
|
{{ scope.row.sku || '-' }}
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="数量" min-width="80">
|
|
|
|
|
|
+ <el-table-column :label="t('modules.order.quantity')" min-width="80">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
{{ scope.row.payNum }}
|
|
{{ scope.row.payNum }}
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="状态" min-width="140">
|
|
|
|
- <template #default="scope"> 待发货 </template>
|
|
|
|
|
|
+ <el-table-column :label="t('modules.order.orderStatus')" min-width="140">
|
|
|
|
+ <template #default="scope"> {{ t('modules.order.pendingShipment') }} </template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="快递单号" min-width="80">
|
|
|
|
|
|
+ <el-table-column :label="t('modules.order.expressNumber')" min-width="80">
|
|
<template #default>-</template>
|
|
<template #default>-</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
<div class="address">
|
|
<div class="address">
|
|
- <div class="title sa-m-b-16">配送信息</div>
|
|
|
|
|
|
+ <div class="title sa-m-b-16">{{ t('modules.order.deliveryInfo') }}</div>
|
|
<div class="sa-m-l-16" v-if="props.modal?.params?.data?.orderAddressVO">
|
|
<div class="sa-m-l-16" v-if="props.modal?.params?.data?.orderAddressVO">
|
|
<div class="sa-flex sa-m-b-8">
|
|
<div class="sa-flex sa-m-b-8">
|
|
- <div class="label">收货信息:</div>
|
|
|
|
|
|
+ <div class="label">{{ t('modules.order.recipientInfo') }}:</div>
|
|
<div class="content">
|
|
<div class="content">
|
|
{{ props.modal?.params?.data?.orderAddressVO?.realName }}
|
|
{{ props.modal?.params?.data?.orderAddressVO?.realName }}
|
|
{{ props.modal?.params?.data?.orderAddressVO?.phone }}
|
|
{{ props.modal?.params?.data?.orderAddressVO?.phone }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sa-flex sa-col-top sa-m-b-16">
|
|
<div class="sa-flex sa-col-top sa-m-b-16">
|
|
- <div class="label">收货地址:</div>
|
|
|
|
|
|
+ <div class="label">{{ t('modules.order.recipientAddress') }}:</div>
|
|
<div class="content">
|
|
<div class="content">
|
|
<div>
|
|
<div>
|
|
{{ props.modal?.params?.data?.orderAddressVO?.province }}
|
|
{{ props.modal?.params?.data?.orderAddressVO?.province }}
|
|
@@ -62,31 +62,32 @@
|
|
</div>
|
|
</div>
|
|
<div>{{ props.modal?.params?.data?.orderAddressVO?.detail }}</div>
|
|
<div>{{ props.modal?.params?.data?.orderAddressVO?.detail }}</div>
|
|
<div v-if="props.modal?.params?.data?.orderAddressVO?.postCode">
|
|
<div v-if="props.modal?.params?.data?.orderAddressVO?.postCode">
|
|
- 邮编:{{ props.modal?.params?.data?.orderAddressVO?.postCode }}
|
|
|
|
|
|
+ {{ t('modules.order.postalCode') }}:{{ props.modal?.params?.data?.orderAddressVO?.postCode }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-if="!props.modal?.params?.data?.orderAddressVO" class="mb-20px text-14px text-red ml-20px">
|
|
<div v-if="!props.modal?.params?.data?.orderAddressVO" class="mb-20px text-14px text-red ml-20px">
|
|
- 用户未完善收货地址信息
|
|
|
|
|
|
+ {{ t('modules.order.incompleteAddress') }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="express">
|
|
<div class="express">
|
|
- <div class="title sa-m-b-16">物流信息</div>
|
|
|
|
|
|
+ <div class="title sa-m-b-16">{{ t('modules.order.logisticsInfo') }}</div>
|
|
<div class="sa-m-l-16">
|
|
<div class="sa-m-l-16">
|
|
<el-form>
|
|
<el-form>
|
|
- <el-form-item label="发货方式">
|
|
|
|
|
|
+ <el-form-item :label="t('modules.order.shippingMethod')">
|
|
<el-radio-group v-model="state.method">
|
|
<el-radio-group v-model="state.method">
|
|
- <el-radio label="input">物流快递</el-radio>
|
|
|
|
|
|
+ <el-radio label="input">{{ t('modules.order.expressShipping') }}</el-radio>
|
|
<!-- <el-radio label="api">一键发货</el-radio> -->
|
|
<!-- <el-radio label="api">一键发货</el-radio> -->
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<el-form v-if="state.method == 'input'" ref="expressRef" :inline="true" :model="express"
|
|
<el-form v-if="state.method == 'input'" ref="expressRef" :inline="true" :model="express"
|
|
:rules="state.method == 'input' ? state.expressRules : {}">
|
|
:rules="state.method == 'input' ? state.expressRules : {}">
|
|
- <el-form-item label="快递公司" prop="code">
|
|
|
|
- <el-select v-model="express.code" placeholder="请选择快递公司" @change="onChangeExpressCode" filterable remote
|
|
|
|
- reserve-keyword :remote-method="remoteMethod" :loading="deliverCompany.loading" autocomplete="none">
|
|
|
|
|
|
+ <el-form-item :label="t('modules.order.expressCompany')" prop="code">
|
|
|
|
+ <el-select v-model="express.code" :placeholder="t('modules.order.selectExpressCompany')"
|
|
|
|
+ @change="onChangeExpressCode" filterable remote reserve-keyword :remote-method="remoteMethod"
|
|
|
|
+ :loading="deliverCompany.loading" autocomplete="none">
|
|
<el-option v-for="dc in deliverCompany.data" :key="dc" :label="dc.name" :value="dc.code"
|
|
<el-option v-for="dc in deliverCompany.data" :key="dc" :label="dc.name" :value="dc.code"
|
|
:ref="`dc-${dc.code}`" :data-name="dc.name">{{ dc.name }} ({{ dc.code }})</el-option>
|
|
:ref="`dc-${dc.code}`" :data-name="dc.name">{{ dc.name }} ({{ dc.code }})</el-option>
|
|
<div class="sa-p-l-15 sa-p-r-27">
|
|
<div class="sa-p-l-15 sa-p-r-27">
|
|
@@ -95,8 +96,8 @@
|
|
</div>
|
|
</div>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="快递单号" prop="no">
|
|
|
|
- <el-input v-model="express.no" placeholder="请输入快递单号" />
|
|
|
|
|
|
+ <el-form-item :label="t('modules.order.expressNumber')" prop="no">
|
|
|
|
+ <el-input v-model="express.no" :placeholder="t('modules.order.enterExpressNumber')" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
@@ -106,7 +107,7 @@
|
|
<el-table ref="customTableRef" class="sa-table" :data="state.customItem"
|
|
<el-table ref="customTableRef" class="sa-table" :data="state.customItem"
|
|
@selection-change="handleSelectionChange">
|
|
@selection-change="handleSelectionChange">
|
|
<el-table-column type="selection" width="48"></el-table-column>
|
|
<el-table-column type="selection" width="48"></el-table-column>
|
|
- <el-table-column label="商品信息" min-width="360">
|
|
|
|
|
|
+ <el-table-column :label="t('modules.order.productInfo')" min-width="360">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
<div class="sa-flex">
|
|
<div class="sa-flex">
|
|
<sa-image :url="scope.row.goods_image" size="40"></sa-image>
|
|
<sa-image :url="scope.row.goods_image" size="40"></sa-image>
|
|
@@ -114,13 +115,13 @@
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="goods_num" label="数量" min-width="80"></el-table-column>
|
|
|
|
- <el-table-column prop="dispatch_status_text" label="状态" min-width="140">
|
|
|
|
|
|
+ <el-table-column prop="goods_num" :label="t('modules.order.quantity')" min-width="80"></el-table-column>
|
|
|
|
+ <el-table-column prop="dispatch_status_text" :label="t('modules.order.orderStatus')" min-width="140">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
{{ scope.row.dispatch_status_text }}/{{ scope.row.aftersale_status_text }}
|
|
{{ scope.row.dispatch_status_text }}/{{ scope.row.aftersale_status_text }}
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="快递单号" min-width="80">
|
|
|
|
|
|
+ <el-table-column :label="t('modules.order.expressNumber')" min-width="80">
|
|
<template #default>-</template>
|
|
<template #default>-</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -171,7 +172,8 @@
|
|
</el-main>
|
|
</el-main>
|
|
<el-footer class="sa-footer--submit">
|
|
<el-footer class="sa-footer--submit">
|
|
<el-button type="primary" :loading="state.sendLoading"
|
|
<el-button type="primary" :loading="state.sendLoading"
|
|
- :disabled="state.expressItem.length == 0 || state.sendLoading" @click="onSend">立即发货</el-button>
|
|
|
|
|
|
+ :disabled="state.expressItem.length == 0 || state.sendLoading" @click="onSend">{{ t('modules.order.shipNow')
|
|
|
|
+ }}</el-button>
|
|
</el-footer>
|
|
</el-footer>
|
|
</el-container>
|
|
</el-container>
|
|
</template>
|
|
</template>
|
|
@@ -205,10 +207,10 @@ const state = reactive({
|
|
}),
|
|
}),
|
|
method: 'input',
|
|
method: 'input',
|
|
expressItem: [],
|
|
expressItem: [],
|
|
- expressRules: {
|
|
|
|
- code: [{ required: true, message: '请选择', trigger: 'none' }],
|
|
|
|
- no: [{ required: true, message: '请输入快递单号', trigger: 'none' }],
|
|
|
|
- },
|
|
|
|
|
|
+ expressRules: computed(() => ({
|
|
|
|
+ code: [{ required: true, message: t('modules.order.selectExpressCompany'), trigger: 'none' }],
|
|
|
|
+ no: [{ required: true, message: t('modules.order.enterExpressNumber'), trigger: 'none' }],
|
|
|
|
+ })),
|
|
sendLoading: false,
|
|
sendLoading: false,
|
|
|
|
|
|
dispatch_type: 'express',
|
|
dispatch_type: 'express',
|
|
@@ -231,7 +233,7 @@ async function onSend() {
|
|
// 检查订单是否有收货地址信息
|
|
// 检查订单是否有收货地址信息
|
|
const orderAddress = props.modal?.params?.data?.orderAddressVO;
|
|
const orderAddress = props.modal?.params?.data?.orderAddressVO;
|
|
if (!orderAddress || !orderAddress.realName || !orderAddress.phone || !orderAddress.detail) {
|
|
if (!orderAddress || !orderAddress.realName || !orderAddress.phone || !orderAddress.detail) {
|
|
- ElMessage.error('该订单缺少收货地址信息,无法发货!请联系客户补充完整的收货地址。');
|
|
|
|
|
|
+ ElMessage.error(t('modules.order.incompleteAddress'));
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|