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 @@