1. 优化医生、诊所的设置
Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CI / CI OK (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Issue Close Require / close-issues (push) Has been cancelled
Close stale issues / stale (push) Has been cancelled

This commit is contained in:
李琦
2026-07-02 16:21:09 +08:00
parent a38da5ce92
commit 949167217f
42 changed files with 3414 additions and 203 deletions

View File

@@ -25,6 +25,7 @@ import { formatAddressDisplay } from '#/util/address-index';
import { createAdminGridOptions } from './table-config';
import { getRoleMeta } from './role-meta';
import DoctorCardModal from '#/views/doctor/doctor/components/DoctorCardModal.vue';
function formatAdminRegion(row: {
province_id?: number;
@@ -107,6 +108,16 @@ const [Modal, modalApi] = useVbenModal({
},
});
const [DoctorCardModals, DoctorCardModalApi] = useVbenModal({
connectedComponent: DoctorCardModal,
});
const openDoctorCard = (row: { doctor_id?: number }) => {
if (!row.doctor_id) return;
DoctorCardModalApi.setData({ su_id: row.doctor_id });
DoctorCardModalApi.open();
};
const gridEvents: VxeGridListeners<any> = {
checkboxChange() {
const records = gridApi.grid.getCheckboxRecords();
@@ -195,6 +206,7 @@ const copyToClipboard = async (text: string) => {
>
<Form />
</Modal>
<DoctorCardModals />
<Grid>
<template #toolbar-buttons>
<TableAction
@@ -229,6 +241,17 @@ const copyToClipboard = async (text: string) => {
<template #avatar="{ row }">
<Image :src="row.avatar" height="30" width="30" />
</template>
<template #nick_name="{ row }">
<Button
v-if="meta.formType === 'doctor' && row.doctor_id"
type="link"
size="small"
@click="openDoctorCard(row)"
>
{{ row.nick_name }}
</Button>
<span v-else>{{ row.nick_name }}</span>
</template>
<template #region="{ row }">
{{ formatAdminRegion(row) }}
</template>

View File

@@ -26,7 +26,7 @@ function buildColumns(formType: AdminFormType) {
const cols: VxeGridProps<RowType>['columns'] = [
{ type: 'checkbox', width: 60 },
{ field: 'id', align: 'left', title: 'ID', width: 100 },
{ field: 'nick_name', align: 'left', title: '名称' },
{ field: 'nick_name', align: 'left', title: '名称', ...(formType === 'doctor' ? { slots: { default: 'nick_name' } } : {}) },
{
field: 'avatar',
align: 'left',