From 3e3f0519ad8c7f300943e4a4ae570754b6e8f636 Mon Sep 17 00:00:00 2001 From: lq Date: Thu, 4 Sep 2025 09:21:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E3=80=81=E8=A7=92=E8=89=B2=E7=9A=84=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/system/admin/components/modal.vue | 1 + .../src/views/system/admin/config/form.ts | 20 ++++++++++++++++ .../src/views/system/role/config/form.ts | 23 +++++++++++++++++++ apps/web-antd/src/views/system/role/index.vue | 1 + 4 files changed, 45 insertions(+) diff --git a/apps/web-antd/src/views/system/admin/components/modal.vue b/apps/web-antd/src/views/system/admin/components/modal.vue index e9b943c0..de333f35 100644 --- a/apps/web-antd/src/views/system/admin/components/modal.vue +++ b/apps/web-antd/src/views/system/admin/components/modal.vue @@ -47,6 +47,7 @@ const [Modal, modalApi] = useVbenModal({ const { values, update } = modalApi.getData>(); if (values) { isUpdate.value = update; + values.address = [values.province_id, values.city_id]; formApi.setValues(values); } } diff --git a/apps/web-antd/src/views/system/admin/config/form.ts b/apps/web-antd/src/views/system/admin/config/form.ts index 4acf1bf2..c125a529 100644 --- a/apps/web-antd/src/views/system/admin/config/form.ts +++ b/apps/web-antd/src/views/system/admin/config/form.ts @@ -3,10 +3,14 @@ import type { VbenFormProps } from '#/adapter/form'; import { z } from '#/adapter/form'; import { getRoleOption } from '#/views/system/role/api'; import { getSupplierOption } from '#/views/system/supplier/api'; +import {addressOption} from "#/util/address"; const defaultPassword = 'Xk123456@'; const supplierId = 7; +const pharmacistId = 3; +const cityId = 4; +const districtId = 5; export const modalFormProps: VbenFormProps = { wrapperClass: 'grid-cols-12', // 24栅格, commonConfig: { @@ -80,6 +84,22 @@ export const modalFormProps: VbenFormProps = { label: '角色', rules: 'required', }, + { + component: 'Cascader', + componentProps: { + placeholder: '请选省市区', + options: addressOption, + }, + dependencies: { + show: (values) => { + return values.role_id === pharmacistId || values.role_id === cityId || values.role_id === districtId; + }, + triggerFields: ['role_id'], + }, + fieldName: 'address', + label: '省市区', + rules: 'required', + }, { component: 'ApiSelect', componentProps: { diff --git a/apps/web-antd/src/views/system/role/config/form.ts b/apps/web-antd/src/views/system/role/config/form.ts index b8a42df7..ab5b7f7d 100644 --- a/apps/web-antd/src/views/system/role/config/form.ts +++ b/apps/web-antd/src/views/system/role/config/form.ts @@ -30,6 +30,29 @@ export const modalFormProps: VbenFormProps = { label: '昵称', rules: 'required', }, + { + component: 'VbenSelect', + componentProps: { + placeholder: '请选择角色类型', + options: [ + { + label: '诊所角色', + value: 1, + }, + { + label: '平台角色', + value: 2, + }, + { + label: '供应商角色', + value: 3, + }, + ], + }, + fieldName: 'user_type', + label: '角色类型', + rules: 'required', + }, { component: 'VbenInput', componentProps: { diff --git a/apps/web-antd/src/views/system/role/index.vue b/apps/web-antd/src/views/system/role/index.vue index 891ad5eb..20487f05 100644 --- a/apps/web-antd/src/views/system/role/index.vue +++ b/apps/web-antd/src/views/system/role/index.vue @@ -48,6 +48,7 @@ const showModal = (data = {}, isUpdate = false) => { id: data?.id, name: data?.name, value: data?.value, + user_type: data?.user_type, desc: data?.desc, }, update: isUpdate,