fetch(modify):账号列表合并
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m31s

This commit is contained in:
sexygoat
2026-02-09 10:49:52 +08:00
parent e8700c2585
commit ca3184857e
4 changed files with 172 additions and 43 deletions

View File

@@ -60,7 +60,7 @@
<ElFormItem label="手机号" prop="phone">
<ElInput v-model="formData.phone" placeholder="请输入手机号" maxlength="11" />
</ElFormItem>
<ElFormItem label="账号类型" prop="user_type">
<ElFormItem v-if="dialogType === 'add'" label="账号类型" prop="user_type">
<ElSelect
v-model="formData.user_type"
placeholder="请选择账号类型"
@@ -72,6 +72,42 @@
<ElOption label="企业账号" :value="4" />
</ElSelect>
</ElFormItem>
<ElFormItem v-if="dialogType === 'add' && formData.user_type === 3" label="关联店铺" prop="shop_id">
<ElSelect
v-model="formData.shop_id"
placeholder="请输入店铺名称搜索"
style="width: 100%"
filterable
remote
:remote-method="handleShopSearch"
clearable
>
<ElOption
v-for="shop in shopList"
:key="shop.id"
:label="shop.shop_name"
:value="shop.id"
/>
</ElSelect>
</ElFormItem>
<ElFormItem v-if="dialogType === 'add' && formData.user_type === 4" label="关联企业" prop="enterprise_id">
<ElSelect
v-model="formData.enterprise_id"
placeholder="请输入企业名称搜索"
style="width: 100%"
filterable
remote
:remote-method="handleEnterpriseSearch"
clearable
>
<ElOption
v-for="enterprise in enterpriseList"
:key="enterprise.id"
:label="enterprise.enterprise_name"
:value="enterprise.id"
/>
</ElSelect>
</ElFormItem>
</ElForm>
<template #footer>
<div class="dialog-footer">
@@ -378,12 +414,16 @@
formData.username = row.username
formData.phone = row.phone
formData.user_type = row.user_type
formData.shop_id = row.shop_id || null
formData.enterprise_id = row.enterprise_id || null
formData.password = ''
} else {
formData.id = ''
formData.username = ''
formData.phone = ''
formData.user_type = 2
formData.shop_id = null
formData.enterprise_id = null
formData.password = ''
}
}
@@ -523,7 +563,9 @@
username: '',
password: '',
phone: '',
user_type: 2
user_type: 2,
shop_id: null as number | null,
enterprise_id: null as number | null
})
onMounted(() => {
@@ -682,7 +724,31 @@
{ len: 11, message: '手机号必须为 11 位', trigger: 'blur' },
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号格式', trigger: 'blur' }
],
user_type: [{ required: true, message: '请选择账号类型', trigger: 'change' }]
user_type: [{ required: true, message: '请选择账号类型', trigger: 'change' }],
shop_id: [
{
validator: (rule: any, value: any, callback: any) => {
if (formData.user_type === 3 && !value) {
callback(new Error('代理账号必须关联店铺'))
} else {
callback()
}
},
trigger: 'change'
}
],
enterprise_id: [
{
validator: (rule: any, value: any, callback: any) => {
if (formData.user_type === 4 && !value) {
callback(new Error('企业账号必须关联企业'))
} else {
callback()
}
},
trigger: 'change'
}
]
})
// 提交表单
@@ -692,17 +758,31 @@
await formRef.value.validate(async (valid) => {
if (valid) {
try {
const data: any = {
username: formData.username,
phone: formData.phone,
user_type: formData.user_type
}
if (dialogType.value === 'add') {
data.password = formData.password
// 创建账号
const data: any = {
username: formData.username,
phone: formData.phone,
password: formData.password,
user_type: formData.user_type
}
// 根据账号类型添加相应的字段
if (formData.user_type === 3) {
data.shop_id = formData.shop_id
} else if (formData.user_type === 4) {
data.enterprise_id = formData.enterprise_id
}
await AccountService.createAccount(data)
ElMessage.success('添加成功')
} else {
// 编辑账号 - 只提交username和phone
const data: any = {
username: formData.username,
phone: formData.phone
}
await AccountService.updateAccount(Number(formData.id), data)
ElMessage.success('更新成功')
}