Commit 6c3d16b0 by qinjianhui

fix: 修改收货地址代码

parent 2b2c4549
......@@ -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>>(
'factory/podOrder/updateReceiverAddress',
data,
......
......@@ -118,6 +118,7 @@
(!row.url && !row.tiffUrl) || row.enableArrange === false
"
link
type="primary"
size="small"
@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 @@
:list="resultInfo"
@confirm="() => refreshCurrentView({ isRefreshTree: true })"
></ResultInfo>
<UpdateReceiverAddressDialog
<UpdateAddress
v-if="updateReceiverAddressVisible"
v-model:form="receiverAddressForm"
v-model:visible="updateReceiverAddressVisible"
:country-list="receiverCountryList"
:submit-address-api="submitFactoryOrderReceiverAddress"
@success="() => refreshCurrentView({ isRefreshTree: true })"
/>
</div>
......@@ -903,6 +904,7 @@ import type {
ProductListData,
operateOrderListData,
} from '@/types/api/order/factoryOrderNew'
import type { AddressInfo } from '@/types/api/podCnOrder'
import platformJson from '../../../json/platform.json'
import {
refreshProductInfoApi,
......@@ -920,6 +922,7 @@ import {
composingNewPodOrderDesignImages,
printNewPodOrderProductionOrderApi,
syncReceiverAddress,
updateReceiverAddressApi,
updateRemarkApi,
completeDeliveryApi,
getByOperationNoLogApi,
......@@ -955,7 +958,7 @@ import FastProduction from '@/views/order/components/FastProduction.vue'
import PodMakeOrder from '@/views/order/podUs/PodMakeOrder.vue'
import PodDistributionOrder from '@/views/order/podCN/PodDistributionOrder.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 { useOrderDictionaries } from './hooks/useOrderDictionaries'
import { useOrderSearchForm } from './hooks/useOrderSearchForm'
......@@ -1081,7 +1084,18 @@ const refreshCurrentView = (options?: { isRefreshTree?: boolean }) => {
refreshCurrentViewProxy.value = () => refreshCurrentView()
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) =>
status.value === 'PENDING_CREATE_LOGISTICS' && row.shipmentType === 1
......@@ -1093,6 +1107,9 @@ const showPendingLogisticsRefreshAddress = (row: FactoryOrderNewListData) => {
return false
}
const submitFactoryOrderReceiverAddress = (data: AddressInfo) =>
updateReceiverAddressApi(data)
const openUpdateReceiverAddress = (row: FactoryOrderNewListData) => {
receiverAddressForm.value = {
rfcNumber: '',
......@@ -1106,7 +1123,7 @@ const openUpdateReceiverAddress = (row: FactoryOrderNewListData) => {
receiverAddress2: '',
receiverPostCode: '',
...JSON.parse(JSON.stringify(row)),
}
} as AddressInfo
updateReceiverAddressVisible.value = true
}
......
<script setup lang="ts">
import { defineModel } from 'vue'
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'])
defineProps<{
countryList: { countryCode: string }[]
const props = defineProps<{
countryList: { countryCode: string; nameCn?: string }[]
submitAddressApi?: (data: AddressInfo) => Promise<unknown>
}>()
const visible = defineModel<boolean>('visible')
const form = defineModel<AddressInfo>('form', {
......@@ -42,7 +42,8 @@ const rules = {
const submitForm = async () => {
formRef?.value.validate(async (valid: boolean) => {
if (valid) {
await updateAddressApi(form.value as never)
const save = props.submitAddressApi ?? updateAddressApi
await save(form.value as never)
visible.value = false
emits('success')
await ElMessageBox.alert(
......@@ -87,7 +88,7 @@ const submitForm = async () => {
<el-option
v-for="it in countryList"
:key="it.countryCode"
:label="it.countryCode"
:label="it.nameCn || it.countryCode"
:value="it.countryCode"
></el-option>
</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