Commit 6c3d16b0 by qinjianhui

fix: 修改收货地址代码

parent 2b2c4549
...@@ -464,7 +464,7 @@ export function syncReceiverAddress(data: number[]) { ...@@ -464,7 +464,7 @@ export function syncReceiverAddress(data: number[]) {
) )
} }
export function updateReceiverAddressApi(data: Record<string, unknown>) { export function updateReceiverAddressApi(data: object) {
return axios.post<never, BaseRespData<never>>( return axios.post<never, BaseRespData<never>>(
'factory/podOrder/updateReceiverAddress', 'factory/podOrder/updateReceiverAddress',
data, data,
......
...@@ -118,6 +118,7 @@ ...@@ -118,6 +118,7 @@
(!row.url && !row.tiffUrl) || row.enableArrange === false (!row.url && !row.tiffUrl) || row.enableArrange === false
" "
link link
type="primary"
size="small" size="small"
@click="handleDownload(row)" @click="handleDownload(row)"
> >
......
<script setup lang="ts">
import { updateReceiverAddressApi } from '@/api/factoryOrderNew'
const emits = defineEmits(['success'])
defineProps<{
countryList: { countryCode: string; nameCn?: string }[]
}>()
const visible = defineModel<boolean>('visible')
const form = defineModel<Record<string, unknown>>('form', {
default: () => ({
id: undefined,
receiverName: '',
rfcNumber: '',
receiverPhone: '',
receiverCountry: '',
receiverProvince: '',
receiverCity: '',
receiverDistrict: '',
receiverAddress1: '',
receiverAddress2: '',
receiverPostCode: '',
}),
})
const formRef = ref()
const rules = {
receiverName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
receiverPhone: [{ required: true, message: '请输入电话', trigger: 'blur' }],
receiverCountry: [{ required: true, message: '请输入国家', trigger: 'blur' }],
receiverProvince: [
{ required: true, message: '请输入省/州', trigger: 'blur' },
],
receiverCity: [{ required: true, message: '请输入市', trigger: 'blur' }],
receiverAddress1: [
{ required: true, message: '请输入地址1', trigger: 'blur' },
],
receiverPostCode: [
{ required: true, message: '请输入邮政编码', trigger: 'blur' },
],
}
const submitForm = async () => {
formRef?.value.validate(async (valid: boolean) => {
if (valid) {
await updateReceiverAddressApi(form.value)
visible.value = false
emits('success')
await ElMessageBox.alert(
'请修改/刷新地址后取消物流或者更换物流在重新创建物流订单、获取跟踪号、获取打印面单',
'提示',
{
type: 'warning',
confirmButtonText: '确定',
cancelButtonText: '取消',
showCancelButton: true,
},
)
}
})
}
</script>
<template>
<el-dialog
v-model="visible"
:close-on-click-modal="false"
title="修改揽收信息"
width="50%"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="姓名" prop="receiverName">
<el-input
v-model="form.receiverName"
clearable
placeholder="请输入姓名"
/>
</el-form-item>
<el-form-item label="电话" prop="receiverPhone">
<el-input
v-model="form.receiverPhone"
clearable
placeholder="请输入电话"
/>
</el-form-item>
<el-form-item label="国家" prop="receiverCountry">
<el-select v-model="form.receiverCountry" clearable filterable>
<el-option
v-for="it in countryList"
:key="it.countryCode"
:label="it.nameCn || it.countryCode"
:value="it.countryCode"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="省/州" prop="receiverProvince">
<el-input
v-model="form.receiverProvince"
clearable
placeholder="请输入省/州"
/>
</el-form-item>
<el-form-item label="市" prop="receiverCity">
<el-input
v-model="form.receiverCity"
clearable
placeholder="请输入市"
/>
</el-form-item>
<el-form-item label="区/县" prop="receiverDistrict">
<el-input
v-model="form.receiverDistrict"
clearable
placeholder="请输入区/县"
/>
</el-form-item>
<el-form-item label="地址1" prop="receiverAddress1">
<el-input
v-model="form.receiverAddress1"
clearable
placeholder="请输入地址1"
/>
</el-form-item>
<el-form-item label="地址2" prop="receiverAddress2">
<el-input
v-model="form.receiverAddress2"
clearable
placeholder="请输入地址2"
/>
</el-form-item>
<el-form-item label="邮政编码" prop="receiverPostCode">
<el-input
v-model="form.receiverPostCode"
clearable
placeholder="请输入邮政编码"
/>
</el-form-item>
<el-form-item label="RFC税号" prop="rfcNumber">
<el-input
v-model="form.rfcNumber"
clearable
placeholder="请输入RFC税号"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer-center">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="submitForm">提交</el-button>
</div>
</template>
</el-dialog>
</template>
<style scoped lang="scss">
.dialog-footer-center {
width: 100%;
text-align: center;
}
</style>
...@@ -875,11 +875,12 @@ ...@@ -875,11 +875,12 @@
:list="resultInfo" :list="resultInfo"
@confirm="() => refreshCurrentView({ isRefreshTree: true })" @confirm="() => refreshCurrentView({ isRefreshTree: true })"
></ResultInfo> ></ResultInfo>
<UpdateReceiverAddressDialog <UpdateAddress
v-if="updateReceiverAddressVisible" v-if="updateReceiverAddressVisible"
v-model:form="receiverAddressForm" v-model:form="receiverAddressForm"
v-model:visible="updateReceiverAddressVisible" v-model:visible="updateReceiverAddressVisible"
:country-list="receiverCountryList" :country-list="receiverCountryList"
:submit-address-api="submitFactoryOrderReceiverAddress"
@success="() => refreshCurrentView({ isRefreshTree: true })" @success="() => refreshCurrentView({ isRefreshTree: true })"
/> />
</div> </div>
...@@ -903,6 +904,7 @@ import type { ...@@ -903,6 +904,7 @@ import type {
ProductListData, ProductListData,
operateOrderListData, operateOrderListData,
} from '@/types/api/order/factoryOrderNew' } from '@/types/api/order/factoryOrderNew'
import type { AddressInfo } from '@/types/api/podCnOrder'
import platformJson from '../../../json/platform.json' import platformJson from '../../../json/platform.json'
import { import {
refreshProductInfoApi, refreshProductInfoApi,
...@@ -920,6 +922,7 @@ import { ...@@ -920,6 +922,7 @@ import {
composingNewPodOrderDesignImages, composingNewPodOrderDesignImages,
printNewPodOrderProductionOrderApi, printNewPodOrderProductionOrderApi,
syncReceiverAddress, syncReceiverAddress,
updateReceiverAddressApi,
updateRemarkApi, updateRemarkApi,
completeDeliveryApi, completeDeliveryApi,
getByOperationNoLogApi, getByOperationNoLogApi,
...@@ -955,7 +958,7 @@ import FastProduction from '@/views/order/components/FastProduction.vue' ...@@ -955,7 +958,7 @@ import FastProduction from '@/views/order/components/FastProduction.vue'
import PodMakeOrder from '@/views/order/podUs/PodMakeOrder.vue' import PodMakeOrder from '@/views/order/podUs/PodMakeOrder.vue'
import PodDistributionOrder from '@/views/order/podCN/PodDistributionOrder.vue' import PodDistributionOrder from '@/views/order/podCN/PodDistributionOrder.vue'
import PrintWarehouseSkuTag from '@/views/order/components/printWarehouseSkuTag.vue' import PrintWarehouseSkuTag from '@/views/order/components/printWarehouseSkuTag.vue'
import UpdateReceiverAddressDialog from './component/UpdateReceiverAddressDialog.vue' import UpdateAddress from '@/views/order/podCN/components/updateAddress.vue'
import { ResultInfoDataItem } from '@/types/api/order/common' import { ResultInfoDataItem } from '@/types/api/order/common'
import { useOrderDictionaries } from './hooks/useOrderDictionaries' import { useOrderDictionaries } from './hooks/useOrderDictionaries'
import { useOrderSearchForm } from './hooks/useOrderSearchForm' import { useOrderSearchForm } from './hooks/useOrderSearchForm'
...@@ -1081,7 +1084,18 @@ const refreshCurrentView = (options?: { isRefreshTree?: boolean }) => { ...@@ -1081,7 +1084,18 @@ const refreshCurrentView = (options?: { isRefreshTree?: boolean }) => {
refreshCurrentViewProxy.value = () => refreshCurrentView() refreshCurrentViewProxy.value = () => refreshCurrentView()
const updateReceiverAddressVisible = ref(false) const updateReceiverAddressVisible = ref(false)
const receiverAddressForm = ref<Record<string, unknown>>({}) const receiverAddressForm = ref<AddressInfo>({
receiverName: '',
rfcNumber: '',
receiverPhone: '',
receiverCountry: '',
receiverProvince: '',
receiverCity: '',
receiverDistrict: '',
receiverAddress1: '',
receiverAddress2: '',
receiverPostCode: '',
})
const showPendingLogisticsUpdateAddress = (row: FactoryOrderNewListData) => const showPendingLogisticsUpdateAddress = (row: FactoryOrderNewListData) =>
status.value === 'PENDING_CREATE_LOGISTICS' && row.shipmentType === 1 status.value === 'PENDING_CREATE_LOGISTICS' && row.shipmentType === 1
...@@ -1093,6 +1107,9 @@ const showPendingLogisticsRefreshAddress = (row: FactoryOrderNewListData) => { ...@@ -1093,6 +1107,9 @@ const showPendingLogisticsRefreshAddress = (row: FactoryOrderNewListData) => {
return false return false
} }
const submitFactoryOrderReceiverAddress = (data: AddressInfo) =>
updateReceiverAddressApi(data)
const openUpdateReceiverAddress = (row: FactoryOrderNewListData) => { const openUpdateReceiverAddress = (row: FactoryOrderNewListData) => {
receiverAddressForm.value = { receiverAddressForm.value = {
rfcNumber: '', rfcNumber: '',
...@@ -1106,7 +1123,7 @@ const openUpdateReceiverAddress = (row: FactoryOrderNewListData) => { ...@@ -1106,7 +1123,7 @@ const openUpdateReceiverAddress = (row: FactoryOrderNewListData) => {
receiverAddress2: '', receiverAddress2: '',
receiverPostCode: '', receiverPostCode: '',
...JSON.parse(JSON.stringify(row)), ...JSON.parse(JSON.stringify(row)),
} } as AddressInfo
updateReceiverAddressVisible.value = true updateReceiverAddressVisible.value = true
} }
......
<script setup lang="ts"> <script setup lang="ts">
import { defineModel } from 'vue'
import { updateAddressApi } from '@/api/podCnOrder.ts' import { updateAddressApi } from '@/api/podCnOrder.ts'
import {AddressInfo} from '@/types/api/podCnOrder.ts' import type { AddressInfo } from '@/types/api/podCnOrder.ts'
const emits = defineEmits(['success']) const emits = defineEmits(['success'])
defineProps<{ const props = defineProps<{
countryList: { countryCode: string }[] countryList: { countryCode: string; nameCn?: string }[]
submitAddressApi?: (data: AddressInfo) => Promise<unknown>
}>() }>()
const visible = defineModel<boolean>('visible') const visible = defineModel<boolean>('visible')
const form = defineModel<AddressInfo>('form', { const form = defineModel<AddressInfo>('form', {
...@@ -42,7 +42,8 @@ const rules = { ...@@ -42,7 +42,8 @@ const rules = {
const submitForm = async () => { const submitForm = async () => {
formRef?.value.validate(async (valid: boolean) => { formRef?.value.validate(async (valid: boolean) => {
if (valid) { if (valid) {
await updateAddressApi(form.value as never) const save = props.submitAddressApi ?? updateAddressApi
await save(form.value as never)
visible.value = false visible.value = false
emits('success') emits('success')
await ElMessageBox.alert( await ElMessageBox.alert(
...@@ -87,7 +88,7 @@ const submitForm = async () => { ...@@ -87,7 +88,7 @@ const submitForm = async () => {
<el-option <el-option
v-for="it in countryList" v-for="it in countryList"
:key="it.countryCode" :key="it.countryCode"
:label="it.countryCode" :label="it.nameCn || it.countryCode"
:value="it.countryCode" :value="it.countryCode"
></el-option> ></el-option>
</el-select> </el-select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment