feat: VIP功能绑定、VIP病历模块、字典模块、传方按钮移动到顶部导航栏
This commit is contained in:
@@ -40,6 +40,13 @@ const logisticsShowWhNameClinic = ref(true);
|
||||
const salespersonStoreEditEnabled = ref(false);
|
||||
/** 业务端单机登录:医生/药师/诊所管理员等同一账号仅 1 手机 + 1 网页(默认否) */
|
||||
const doctorSingleDeviceLogin = ref(false);
|
||||
/** 字典搜索匹配度:backend 服务端 / frontend 前端 */
|
||||
const dictSearchRankMode = ref<'backend' | 'frontend'>('backend');
|
||||
/**
|
||||
* 病历诊断/医嘱「常用|我的」展示位置
|
||||
* tags=文本域下标签(默认) bubble=气泡内展示 both=两边
|
||||
*/
|
||||
const mrCommonDisplayMode = ref<'tags' | 'bubble' | 'both'>('tags');
|
||||
/** 开票通知渠道:subscribe / sms,默认仅订阅消息 */
|
||||
const invoiceNoticeChannels = ref<string[]>(['subscribe']);
|
||||
|
||||
@@ -53,6 +60,8 @@ function readStoredTab() {
|
||||
stored === 'salesperson' ||
|
||||
stored === 'invoice_notice' ||
|
||||
stored === 'doctor_login' ||
|
||||
stored === 'dict_search' ||
|
||||
stored === 'medical_record' ||
|
||||
stored === 'oa_notify'
|
||||
) {
|
||||
activeKey.value = stored;
|
||||
@@ -121,6 +130,15 @@ async function load() {
|
||||
if (row.config_key === 'doctor_single_device_login') {
|
||||
doctorSingleDeviceLogin.value = parseBoolConfig(row.config_value, false);
|
||||
}
|
||||
if (row.config_key === 'dict_search_rank_mode') {
|
||||
dictSearchRankMode.value =
|
||||
String(row.config_value || '') === 'frontend' ? 'frontend' : 'backend';
|
||||
}
|
||||
if (row.config_key === 'mr_common_display_mode') {
|
||||
const mode = String(row.config_value || 'tags');
|
||||
mrCommonDisplayMode.value =
|
||||
mode === 'bubble' || mode === 'both' ? mode : 'tags';
|
||||
}
|
||||
if (row.config_key === 'invoice_notice_channels') {
|
||||
let channels: unknown = row.config_value;
|
||||
if (typeof channels === 'string') {
|
||||
@@ -202,6 +220,22 @@ async function handleSave() {
|
||||
description: '业务端单机登录(医生/药师/诊所管理员等:1手机+1网页)',
|
||||
sort: 310,
|
||||
},
|
||||
{
|
||||
config_key: 'dict_search_rank_mode',
|
||||
config_value: dictSearchRankMode.value,
|
||||
value_type: 'string',
|
||||
config_group: 'search',
|
||||
description: '字典搜索匹配度:backend服务端 / frontend前端',
|
||||
sort: 320,
|
||||
},
|
||||
{
|
||||
config_key: 'mr_common_display_mode',
|
||||
config_value: mrCommonDisplayMode.value,
|
||||
value_type: 'string',
|
||||
config_group: 'medical_record',
|
||||
description: '病历诊断医嘱常用展示:tags标签 / bubble气泡 / both两边',
|
||||
sort: 330,
|
||||
},
|
||||
{
|
||||
config_key: 'invoice_notice_channels',
|
||||
config_value: JSON.stringify(
|
||||
@@ -331,6 +365,33 @@ onMounted(() => {
|
||||
</div>
|
||||
</Tabs.TabPane>
|
||||
|
||||
<Tabs.TabPane key="dict_search" tab="字典搜索">
|
||||
<div class="py-4">
|
||||
<div class="mb-2 font-medium">诊断 / 医嘱 / 病历词条匹配度处理端</div>
|
||||
<div class="mb-2 text-sm text-gray-500">
|
||||
后端:服务端计算匹配度并排序(适合疾病库等大数据量);前端:接口只返回候选,由端上打分排序(适合调试或减轻服务端 CPU)。关键字高亮始终在端上渲染。
|
||||
</div>
|
||||
<Radio.Group v-model:value="dictSearchRankMode">
|
||||
<Radio value="backend">后端处理(推荐)</Radio>
|
||||
<Radio value="frontend">前端处理</Radio>
|
||||
</Radio.Group>
|
||||
</div>
|
||||
</Tabs.TabPane>
|
||||
|
||||
<Tabs.TabPane key="medical_record" tab="词条">
|
||||
<div class="py-4">
|
||||
<div class="mb-2 font-medium">诊断 / 医嘱「常用|我的」展示位置</div>
|
||||
<div class="mb-2 text-sm text-gray-500">
|
||||
控制接诊病历里诊断、医嘱的常用快捷出现在哪里。默认「标签」即文本域下方的快捷标签;「气泡卡片」则在关键字搜索气泡内默认展示常用;「两边」同时展示。
|
||||
</div>
|
||||
<Radio.Group v-model:value="mrCommonDisplayMode">
|
||||
<Radio value="tags">标签(默认)</Radio>
|
||||
<Radio value="bubble">气泡卡片默认展示</Radio>
|
||||
<Radio value="both">两边都展示</Radio>
|
||||
</Radio.Group>
|
||||
</div>
|
||||
</Tabs.TabPane>
|
||||
|
||||
<Tabs.TabPane key="invoice_notice" tab="开票通知">
|
||||
<div class="py-4">
|
||||
<div class="mb-2 font-medium">患者开票通知渠道</div>
|
||||
|
||||
Reference in New Issue
Block a user