共享大厅新增地址按钮

This commit is contained in:
hongchao 2025-12-31 14:55:08 +08:00
parent f4b18c5e09
commit 65380418c7
1 changed files with 197 additions and 15 deletions

View File

@ -87,20 +87,29 @@
</el-form-item>
<el-row :gutter="20">
<el-col :span="12" :offset="0">
<el-form-item prop="address" label="收货地址">
<el-select
v-model="queryForm.address"
placeholder="请选择收货地址"
clearable
filterable
style="width: 616px"
>
<el-option
v-for="item in addressList"
:label="item.addressName"
:value="item.addressName"
/>
</el-select>
<el-form-item prop="address" label="收货地址" >
<div style="display: flex; align-items: center">
<el-select
v-model="queryForm.address"
placeholder="请选择收货地址"
clearable
filterable
style="width: 616px"
>
<el-option
v-for="item in addressList"
:label="item.addressName"
:value="item.addressName"
/>
</el-select>
<el-button
type="primary"
size="small"
style="margin-left: 35px;background-color: #1abc9c; color: #fff"
@click="handleAddress"
>新增地址</el-button
>
</div>
</el-form-item>
</el-col>
</el-row>
@ -339,6 +348,104 @@
</div>
<div id="mmm" style="height: 600px"></div>
</el-dialog>
<el-dialog
width="40%"
align-center
destroy-on-close
title="新增收货地址"
v-model="addOrEditDialogVisible"
>
<el-form
label-width="auto"
label-position="right"
ref="addOrEditFormRef"
:model="addOrEditForm"
:rules="addOrEditFormRules"
>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="所在省" prop="provinceCode">
<el-select
clearable
style="width: 95%"
placeholder="请选择省"
v-model="addOrEditForm.provinceCode"
@change="onProvinceChange($event)"
>
<el-option
:key="item.areaId"
:value="item.areaCode * 1"
:label="item.areaName"
v-for="item in areaList"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="cityCode" label="所在市">
<el-select
clearable
style="width: 95%"
placeholder="请选择市"
v-model="addOrEditForm.cityCode"
@change="onCityChange($event)"
>
<el-option
:key="item.areaId"
:value="item.areaCode * 1"
:label="item.areaName"
v-for="item in areaCityList"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="areaCode" label="所在区/县">
<el-select
clearable
style="width: 95%"
placeholder="请选择区/县"
v-model="addOrEditForm.areaCode"
@change="onCountyChange($event)"
>
<el-option
:key="item.areaId"
:value="item.areaCode * 1"
:label="item.areaName"
v-for="item in areaCountyList"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="address" label="详细地址">
<el-input
style="width: 95%"
clearable
placeholder="请输入详细地址"
v-model="addOrEditForm.address"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button
type="primary"
class="primary-lease"
@click="addOrEditDialogVisible = false"
>取消</el-button
>
<el-button class="primary-lease" type="primary" @click="onSubmit">
提交
</el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@ -349,8 +456,9 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import { getBookCarDetailByMaId, submitBookCarApi } from '../../http/api/order/index'
import { getBookCarAgreementApi, getProListApi } from 'http/api/cart/index'
import CustomDatePickerButton from '../cart/components/date-picker-button.vue'
import { getAddressListApi } from 'http/api/address-manage/index'
import { getAddressListApi,addAddressInfoApi } from 'http/api/address-manage/index'
import { getCodeNumDetailApi } from 'http/api/equip'
import { getAreaApi } from 'http/api/home'
import moment from 'moment'
import { useRoute, useRouter } from 'vue-router'
import { useStore } from '../../store/user'
@ -370,6 +478,26 @@ const protocolChecked = ref<boolean>(false)
const orderList = ref<any>([])
const addressTitle = ref('请选择收货地址')
const addressList = ref<any>([])
const addOrEditDialogVisible = ref(false)
const addOrEditForm = ref<any>({
areaCode: '', //
cityCode: '', //
provinceCode: '', //
address: '', //
})
const addOrEditFormRef = ref<any>(null)
const addOrEditFormRules = reactive({
areaCode: [{ required: true, message: '请选择项目所在区/县', trigger: 'change' }],
cityCode: [{ required: true, message: '请选择项目所在市', trigger: 'change' }],
provinceCode: [{ required: true, message: '请选择项目所在省', trigger: 'change' }],
address: [{ required: true, message: '请输入项目详细地址', trigger: 'blur' }],
})
const areaList = ref<any>([]) //
const areaCityList = ref<any>([]) //
const areaCountyList = ref<any>([]) // /
const queryForm: any = reactive({
useUnit: store.userInfo?.dept?.deptId || '', // 使
useUnitName: store.userInfo?.dept?.deptName || '', // 使
@ -439,6 +567,60 @@ onMounted(() => {
}, 500)
})
const handleAddress = () => {
addOrEditDialogVisible.value = true
getAreaData()
nextTick(() => {
addOrEditFormRef.value.resetFields()
})
}
const getAreaData = async () => {
try {
const res: any = await getAreaApi(0)
areaList.value = res.data
} catch (error) {
console.log('🚀 ~ getAreaData ~ error:', error)
}
}
const onProvinceChange = async (id: any) => {
try {
const res: any = await getAreaApi(id)
areaCityList.value = res.data
} catch (error) {
console.log('🚀 ~ onProvinceChange ~ error:', error)
}
}
const onCityChange = async (id: any) => {
try {
const res: any = await getAreaApi(id)
areaCountyList.value = res.data
} catch (error) {
console.log('🚀 ~ onCityChange ~ error:', error)
}
}
const onCountyChange = async (id: any) => {}
//
const onSubmit = () => {
addOrEditFormRef.value.validate(async (valid: any) => {
if (valid) {
try {
const res: any = await addAddressInfoApi(addOrEditForm.value)
if (res.code === 200) {
ElMessage({
type: 'success',
message: '提交成功',
})
addOrEditDialogVisible.value = false
getReceiptGoodsAddress()
}
} catch (error) {
console.log('🚀 ~ addOrEditFormRef.value.validate ~ error:', error)
}
}
})
}
const onLeaseDateChange = (value: any, companyIndex: number, goodsIndex: number) => {
orderList.value.forEach((e: any) => {
if (!value) {