This commit is contained in:
aaron 2025-03-09 23:43:50 +08:00
parent 321ff3452b
commit 3392409028

View File

@ -19,6 +19,9 @@
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<a-space>
<a-button type="link" @click="handleEdit(record)">
修改
</a-button>
<a-button type="link" @click="handleView(record)">
查看详情
</a-button>
@ -28,21 +31,21 @@
</a-table>
</div>
<!-- 创建小区集合模态框 -->
<!-- 创建/修改小区集合模态框 -->
<a-modal
v-model:visible="createModalVisible"
title="创建小区集合"
@ok="handleCreateSubmit"
@cancel="handleCreateCancel"
v-model:visible="modalVisible"
:title="isEdit ? '修改小区集合' : '创建小区集合'"
@ok="handleSubmit"
@cancel="handleCancel"
:confirmLoading="submitting"
>
<a-form :model="createForm" layout="vertical">
<a-form :model="formData" layout="vertical">
<a-form-item
label="集合名称"
name="set_name"
:rules="[{ required: true, message: '请输入集合名称' }]"
>
<a-input v-model:value="createForm.set_name" placeholder="请输入集合名称" />
<a-input v-model:value="formData.set_name" placeholder="请输入集合名称" />
</a-form-item>
<a-form-item
@ -120,9 +123,11 @@ export default defineComponent({
showTotal: (total) => `${total} 条记录`
})
//
const createModalVisible = ref(false)
const createForm = reactive({
//
const modalVisible = ref(false)
const isEdit = ref(false)
const editingSetId = ref(null)
const formData = reactive({
set_name: '',
user_id: null
})
@ -145,14 +150,14 @@ export default defineComponent({
//
const selectUser = (user) => {
selectedUser.value = user
createForm.user_id = user.userid
formData.user_id = user.userid
message.success(`已选择:${user.nickname || user.phone}`)
}
//
const clearSelectedUser = () => {
selectedUser.value = null
createForm.user_id = null
formData.user_id = null
}
//
@ -249,51 +254,87 @@ export default defineComponent({
//
const showCreateModal = () => {
createForm.set_name = ''
createForm.user_id = null
isEdit.value = false
editingSetId.value = null
formData.set_name = ''
formData.user_id = null
phoneSearchValue.value = ''
searchedUser.value = null
selectedUser.value = null
createModalVisible.value = true
modalVisible.value = true
}
//
const handleCreateSubmit = async () => {
if (!createForm.set_name) {
//
const handleEdit = (record) => {
isEdit.value = true
editingSetId.value = record.id
formData.set_name = record.set_name
formData.user_id = record.user_id
//
if (record.user_id && record.user_name) {
selectedUser.value = {
userid: record.user_id,
nickname: record.user_name,
phone: record.user_phone || ''
}
} else {
selectedUser.value = null
}
phoneSearchValue.value = ''
searchedUser.value = null
modalVisible.value = true
}
//
const handleSubmit = async () => {
if (!formData.set_name) {
message.warning('请输入集合名称')
return
}
if (!createForm.user_id) {
if (!formData.user_id) {
message.warning('请选择运营商')
return
}
try {
submitting.value = true
const res = await request.post('/api/community-sets/', {
set_name: createForm.set_name,
user_id: createForm.user_id
let res
if (isEdit.value) {
//
res = await request.put(`/api/community-sets/${editingSetId.value}`, {
set_name: formData.set_name,
user_id: formData.user_id
})
} else {
//
res = await request.post('/api/community-sets/', {
set_name: formData.set_name,
user_id: formData.user_id
})
}
if (res.code === 200) {
message.success('创建成功')
createModalVisible.value = false
message.success(isEdit.value ? '修改成功' : '创建成功')
modalVisible.value = false
fetchData() //
} else {
message.error(res.message || '创建失败')
message.error(res.message || (isEdit.value ? '修改失败' : '创建失败'))
}
} catch (error) {
console.error('创建小区集合失败:', error)
message.error('创建失败')
console.error(isEdit.value ? '修改小区集合失败:' : '创建小区集合失败:', error)
message.error(isEdit.value ? '修改失败' : '创建失败')
} finally {
submitting.value = false
}
}
//
const handleCreateCancel = () => {
createModalVisible.value = false
//
const handleCancel = () => {
modalVisible.value = false
}
//
@ -340,8 +381,9 @@ export default defineComponent({
tableData,
columns,
pagination,
createModalVisible,
createForm,
modalVisible,
isEdit,
formData,
submitting,
phoneSearchValue,
searchedUser,
@ -354,8 +396,9 @@ export default defineComponent({
selectUser,
clearSelectedUser,
showCreateModal,
handleCreateSubmit,
handleCreateCancel,
handleEdit,
handleSubmit,
handleCancel,
handlePhoneSearch,
handleView,
handleTableChange