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