From 55ff2e630ee2f373892d2b65b3b90cc7c8765a00 Mon Sep 17 00:00:00 2001 From: chenqi Date: Wed, 3 Jun 2026 13:41:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(crontab):=20=E5=B0=86radio=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=9A=84label=E5=B1=9E=E6=80=A7=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E4=B8=BAvalue=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新day.vue中所有radio组件的label为value属性 - 更新hour.vue中所有radio组件的label为value属性 - 更新min.vue中所有radio组件的label为value属性 - 更新month.vue中所有radio组件的label为value属性 - 更新second.vue中所有radio组件的label为value属性 - 更新week.vue中所有radio组件的label为value属性 - 更新year.vue中所有radio组件的label为value属性 - 修复TableLayout/FormItem.vue中的radio组件属性 - 修改surgicalPatientHandover.vue中的radio组件属性 - 修复template3.vue中的type数据类型定义 - 更新clinicRoom/index.vue中的radio组件属性 - 修复editTemplate.vue中的radio组件属性 - 更新caseTemplatesStatistics/index.vue中的radio组件属性 - 修复organization/index.vue中的radio组件属性 - 更新ward/index.vue中的radio组件属性 - 移除chargeDialog.vue中radio的无效label属性 - 修复多个组件中的Array类型定义问题 - 调整outpatientregistration/index.vue中的列宽度配置 - 添加getConfigKey的导入声明 - 修复多个表单组件中的radio组件属性配置 --- .../src/components/Crontab/day.vue | 21 +++----- .../src/components/Crontab/hour.vue | 12 ++--- .../src/components/Crontab/min.vue | 12 ++--- .../src/components/Crontab/month.vue | 12 ++--- .../src/components/Crontab/second.vue | 12 ++--- .../src/components/Crontab/week.vue | 18 +++---- .../src/components/Crontab/year.vue | 15 ++---- .../src/components/TableLayout/FormItem.vue | 2 +- .../src/patches/xe-utils-hasownprop-plugin.js | 50 +++++++++++++++++++ .../src/template/surgicalPatientHandover.vue | 11 ++-- openhis-ui-vue3/src/template/template3.vue | 2 +- .../appoinmentmanage/clinicRoom/index.vue | 8 +-- .../caseTemplates/components/editTemplate.vue | 3 +- .../caseTemplatesStatistics/index.vue | 3 +- .../views/basicmanage/organization/index.vue | 4 +- .../src/views/basicmanage/ward/index.vue | 6 +-- .../cliniccharge/components/chargeDialog.vue | 1 - .../clinicrefund/components/refundDialog.vue | 4 +- .../components/chargeDialog.vue | 4 +- .../components/refundDialog.vue | 4 +- .../charge/outpatientregistration/index.vue | 7 ++- .../component/adviceListDialog.vue | 2 +- .../components/diagnosis/diagnosis.vue | 10 ++-- .../components/diagnosis/diagnosisdialog.vue | 4 +- .../infectiousDiseaseReportDialog.vue | 12 ++--- .../doctorstation/components/emr/emr.vue | 6 +-- .../components/infectiousReport/index.vue | 12 ++--- .../doctorstation/components/patientList.vue | 6 +-- .../prescription/orderGroupDrawer.vue | 6 +-- .../prescription/prescriptionInfo.vue | 2 +- .../src/views/doctorstation/index.vue | 4 +- .../views/gf/ratioApplicationRecord/index.vue | 11 ++-- .../src/views/gf/studentList/index.vue | 3 +- .../feeSettlement/components/chargeDialog.vue | 1 - .../register/components/patientInfoForm.vue | 5 +- .../home/components/diagnosis/diagnosis.vue | 10 ++-- .../home/components/order/index.vue | 22 +++++++- .../InpatientBilling/components/FeeDialog.vue | 6 +-- .../src/views/inpatientNurse/home/index.vue | 3 +- .../components/prescriptionList.vue | 6 +-- .../components/recordTemplate.vue | 6 +-- .../views/maintainSystem/Inspection/index.vue | 16 +++--- .../dayEndSettlement/index.vue | 3 +- .../src/views/monitor/job/index.vue | 3 +- .../src/views/system/config/index.vue | 3 +- .../src/views/system/dept/index.vue | 3 +- .../src/views/system/dict/data.vue | 3 +- .../src/views/system/dict/index.vue | 3 +- .../src/views/system/notice/index.vue | 3 +- .../src/views/system/post/index.vue | 3 +- .../src/views/system/role/index.vue | 3 +- .../src/views/system/tenant/index.vue | 3 +- .../src/views/system/user copy/index.vue | 3 +- .../src/views/system/user/index.vue | 3 +- .../index.vue | 3 +- .../register/components/patientInfoForm.vue | 5 +- openhis-ui-vue3/vite/plugins/index.js | 2 + 57 files changed, 211 insertions(+), 199 deletions(-) create mode 100644 openhis-ui-vue3/src/patches/xe-utils-hasownprop-plugin.js diff --git a/openhis-ui-vue3/src/components/Crontab/day.vue b/openhis-ui-vue3/src/components/Crontab/day.vue index 4a55e9040..7b9605dbd 100755 --- a/openhis-ui-vue3/src/components/Crontab/day.vue +++ b/openhis-ui-vue3/src/components/Crontab/day.vue @@ -2,8 +2,7 @@ 日,允许的通配符[, - * ? / L W] @@ -11,8 +10,7 @@ 不指定 @@ -20,8 +18,7 @@ 周期从 每月 本月最后一天 @@ -81,8 +75,7 @@ 指定 小时,允许的通配符[, - * /] @@ -11,8 +10,7 @@ 周期从 指定 分钟,允许的通配符[, - * /] @@ -11,8 +10,7 @@ 周期从 指定 月,允许的通配符[, - * /] @@ -11,8 +10,7 @@ 周期从 指定 秒,允许的通配符[, - * /] @@ -11,8 +10,7 @@ 周期从 指定 周,允许的通配符[, - * ? / L #] @@ -11,8 +10,7 @@ 不指定 @@ -20,8 +18,7 @@ 周期从 本月最后一个 指定 不填,允许的通配符[, - * /] @@ -11,8 +10,7 @@ 每年 @@ -20,8 +18,7 @@ 周期从 指定 - + {{ option.label }} diff --git a/openhis-ui-vue3/src/patches/xe-utils-hasownprop-plugin.js b/openhis-ui-vue3/src/patches/xe-utils-hasownprop-plugin.js new file mode 100644 index 000000000..5b1f45050 --- /dev/null +++ b/openhis-ui-vue3/src/patches/xe-utils-hasownprop-plugin.js @@ -0,0 +1,50 @@ +import fs from 'fs'; +import path from 'path'; + +/** + * Patch xe-utils hasOwnProp for Vue 3 Proxy compatibility. + * + * Root cause: Object.prototype.hasOwnProperty.call(proxyObj, key) throws + * "TypeError: obj.hasOwnProperty is not a function" + * when obj is a Vue 3 reactive Proxy, because Vue's reactivity system + * intercepts the [[Get]] trap for 'hasOwnProperty'. + * + * Fix: Use try-catch. If direct call fails, use Reflect.has or key-in check. + */ +export default function patchXeUtilsHasOwnProp() { + return { + name: 'patch-xe-utils-hasownprop', + enforce: 'pre', + buildStart() { + const targets = [ + path.resolve(process.cwd(), 'node_modules/xe-utils/hasOwnProp.js'), + ]; + for (const target of targets) { + if (!fs.existsSync(target)) continue; + const code = fs.readFileSync(target, 'utf-8'); + if (code.includes('[vue3-proxy-safe]')) continue; + const patched = `/** + * Check if object has own property - Vue 3 Proxy safe [vue3-proxy-safe] + */ +function hasOwnProp (obj, key) { + if (obj == null) return false + try { + return Object.prototype.hasOwnProperty.call(obj, key) + } catch (e) { + // Vue 3 reactive Proxy throws on hasOwnProperty; fallback + try { + return key in Object(obj) + } catch (e2) { + return false + } + } +} + +module.exports = hasOwnProp +`; + fs.writeFileSync(target, patched, 'utf-8'); + console.log('[patch-xe-utils-hasownprop] Patched ' + target); + } + } + }; +} \ No newline at end of file diff --git a/openhis-ui-vue3/src/template/surgicalPatientHandover.vue b/openhis-ui-vue3/src/template/surgicalPatientHandover.vue index 6c6775876..34c070ab6 100755 --- a/openhis-ui-vue3/src/template/surgicalPatientHandover.vue +++ b/openhis-ui-vue3/src/template/surgicalPatientHandover.vue @@ -84,10 +84,10 @@
药物过敏史 - + - + @@ -130,8 +130,7 @@ {{ item.dictLabel }} @@ -671,10 +670,10 @@
镇痛泵 - + - + diff --git a/openhis-ui-vue3/src/template/template3.vue b/openhis-ui-vue3/src/template/template3.vue index 0435bdb02..5b1d17297 100755 --- a/openhis-ui-vue3/src/template/template3.vue +++ b/openhis-ui-vue3/src/template/template3.vue @@ -118,7 +118,7 @@ const ruleForm = reactive({ date2: '', delivery: false, location: '', - type: [], + type: Array, resource: '', desc: '', }) diff --git a/openhis-ui-vue3/src/views/appoinmentmanage/clinicRoom/index.vue b/openhis-ui-vue3/src/views/appoinmentmanage/clinicRoom/index.vue index e1c9a95ae..ee4eae7c8 100755 --- a/openhis-ui-vue3/src/views/appoinmentmanage/clinicRoom/index.vue +++ b/openhis-ui-vue3/src/views/appoinmentmanage/clinicRoom/index.vue @@ -311,10 +311,10 @@ prop="isDisabled" > - + 启用 - + 停用 @@ -337,10 +337,10 @@ prop="void" > - + - + diff --git a/openhis-ui-vue3/src/views/basicmanage/caseTemplates/components/editTemplate.vue b/openhis-ui-vue3/src/views/basicmanage/caseTemplates/components/editTemplate.vue index 415e66537..b9bbb5c61 100755 --- a/openhis-ui-vue3/src/views/basicmanage/caseTemplates/components/editTemplate.vue +++ b/openhis-ui-vue3/src/views/basicmanage/caseTemplates/components/editTemplate.vue @@ -94,8 +94,7 @@ {{ item.info }} diff --git a/openhis-ui-vue3/src/views/basicmanage/caseTemplatesStatistics/index.vue b/openhis-ui-vue3/src/views/basicmanage/caseTemplatesStatistics/index.vue index 5b786387b..870999ca5 100755 --- a/openhis-ui-vue3/src/views/basicmanage/caseTemplatesStatistics/index.vue +++ b/openhis-ui-vue3/src/views/basicmanage/caseTemplatesStatistics/index.vue @@ -209,8 +209,7 @@ {{ dict.info diff --git a/openhis-ui-vue3/src/views/basicmanage/organization/index.vue b/openhis-ui-vue3/src/views/basicmanage/organization/index.vue index cb0a7e745..2a2a3fb7b 100755 --- a/openhis-ui-vue3/src/views/basicmanage/organization/index.vue +++ b/openhis-ui-vue3/src/views/basicmanage/organization/index.vue @@ -383,10 +383,10 @@ v-model="form.registerFlag" size="large" > - + - + diff --git a/openhis-ui-vue3/src/views/basicmanage/ward/index.vue b/openhis-ui-vue3/src/views/basicmanage/ward/index.vue index 6efb7b32b..ddf949181 100755 --- a/openhis-ui-vue3/src/views/basicmanage/ward/index.vue +++ b/openhis-ui-vue3/src/views/basicmanage/ward/index.vue @@ -426,13 +426,13 @@ :disabled="isEdit" @change="handleRadioChange" > - + 病区 - + 病房 - + 床位 diff --git a/openhis-ui-vue3/src/views/charge/cliniccharge/components/chargeDialog.vue b/openhis-ui-vue3/src/views/charge/cliniccharge/components/chargeDialog.vue index 29642b8e0..c9fc2bc21 100755 --- a/openhis-ui-vue3/src/views/charge/cliniccharge/components/chargeDialog.vue +++ b/openhis-ui-vue3/src/views/charge/cliniccharge/components/chargeDialog.vue @@ -126,7 +126,6 @@ v-for="item in charge_discount" :key="item.value" link - :label="item.label" :value="item.value" /> diff --git a/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue b/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue index eb61828b9..83ede37ce 100755 --- a/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue +++ b/openhis-ui-vue3/src/views/charge/clinicrefund/components/refundDialog.vue @@ -190,11 +190,11 @@ const props = defineProps({ default: undefined, }, chargeItemIds: { - type: [], + type: Array, default: [], }, medicineReturnList: { - type: [], + type: Array, default: [], }, details: { diff --git a/openhis-ui-vue3/src/views/charge/outpatientregistration/components/chargeDialog.vue b/openhis-ui-vue3/src/views/charge/outpatientregistration/components/chargeDialog.vue index 3b091e021..b9dca9592 100755 --- a/openhis-ui-vue3/src/views/charge/outpatientregistration/components/chargeDialog.vue +++ b/openhis-ui-vue3/src/views/charge/outpatientregistration/components/chargeDialog.vue @@ -195,11 +195,11 @@ const props = defineProps({ default: undefined, }, chargeItemIds: { - type: [], + type: Array, default: [], }, chrgBchnoList: { - type: [], + type: Array, default: [], }, chrgBchno: { diff --git a/openhis-ui-vue3/src/views/charge/outpatientregistration/components/refundDialog.vue b/openhis-ui-vue3/src/views/charge/outpatientregistration/components/refundDialog.vue index 84ad2dcc4..d3bae3a6c 100755 --- a/openhis-ui-vue3/src/views/charge/outpatientregistration/components/refundDialog.vue +++ b/openhis-ui-vue3/src/views/charge/outpatientregistration/components/refundDialog.vue @@ -224,12 +224,12 @@ const props = defineProps({ default: undefined, }, chargeItemIds: { - type: [], + type: Array, default: [], }, eventType: { type: String, - default: 1, + default: '1', }, }); diff --git a/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue b/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue index f8e7b8604..a9efdfb58 100755 --- a/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue +++ b/openhis-ui-vue3/src/views/charge/outpatientregistration/index.vue @@ -815,11 +815,9 @@