vue2-client 1.15.42 → 1.15.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/.history/public/his/editor/editor_20250606134713.html +51 -0
  2. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +509 -0
  3. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +524 -0
  4. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +524 -0
  5. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +524 -0
  6. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +207 -0
  7. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +211 -0
  8. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +212 -0
  9. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +212 -0
  10. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +1320 -0
  11. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +1332 -0
  12. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +1331 -0
  13. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +1331 -0
  14. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +1331 -0
  15. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +1339 -0
  16. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +731 -0
  17. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +748 -0
  18. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +748 -0
  19. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +1071 -0
  20. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +1078 -0
  21. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +1077 -0
  22. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +1077 -0
  23. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +1077 -0
  24. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +442 -0
  25. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +442 -0
  26. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +442 -0
  27. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +475 -0
  28. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +475 -0
  29. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +475 -0
  30. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +477 -0
  31. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +477 -0
  32. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +477 -0
  33. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +473 -0
  34. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +473 -0
  35. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +473 -0
  36. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +473 -0
  37. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +473 -0
  38. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +473 -0
  39. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +473 -0
  40. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +473 -0
  41. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +473 -0
  42. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +473 -0
  43. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +474 -0
  44. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +474 -0
  45. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +474 -0
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +472 -0
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +472 -0
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +472 -0
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +472 -0
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +472 -0
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +472 -0
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +501 -0
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +501 -0
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +501 -0
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +504 -0
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +504 -0
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +504 -0
  58. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +131 -0
  59. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +160 -0
  60. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +160 -0
  61. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +160 -0
  62. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +158 -0
  63. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +173 -0
  64. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +222 -0
  65. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +229 -0
  66. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +229 -0
  67. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +229 -0
  68. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +241 -0
  69. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +241 -0
  70. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +241 -0
  71. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +245 -0
  72. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +245 -0
  73. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +245 -0
  74. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +255 -0
  75. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +255 -0
  76. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +255 -0
  77. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +270 -0
  78. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +270 -0
  79. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +270 -0
  80. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +270 -0
  81. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +294 -0
  82. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +294 -0
  83. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +294 -0
  84. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +303 -0
  85. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +303 -0
  86. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +303 -0
  87. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +288 -0
  88. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +288 -0
  89. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +288 -0
  90. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +317 -0
  91. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +306 -0
  92. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +306 -0
  93. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +306 -0
  94. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250609151519.vue +222 -0
  95. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155514.vue +183 -0
  96. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155556.vue +183 -0
  97. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155600.vue +183 -0
  98. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181609.vue +206 -0
  99. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181629.vue +209 -0
  100. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095553.vue +242 -0
  101. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095610.vue +242 -0
  102. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095612.vue +242 -0
  103. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100041.vue +251 -0
  104. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100047.vue +251 -0
  105. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100054.vue +250 -0
  106. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100105.vue +250 -0
  107. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100107.vue +250 -0
  108. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100114.vue +250 -0
  109. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140844.vue +238 -0
  110. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140910.vue +238 -0
  111. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140912.vue +238 -0
  112. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +36 -0
  113. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +1 -0
  114. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +4 -2
  115. package/package.json +1 -1
  116. package/src/base-client/components/TreeList/TreeList.vue +91 -0
  117. package/src/base-client/components/TreeList/TreeNode.vue +81 -0
  118. package/src/base-client/components/common/XButtons/XButtons.vue +33 -2
  119. package/src/base-client/components/common/XCardSet/XTiltle.vue +191 -0
  120. package/src/base-client/components/common/XReport/print.js +186 -186
  121. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +0 -8
  122. package/src/base-client/components/his/XList/XList.vue +211 -35
  123. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  124. package/src/base-client/components/his/XTreeRows/TreeNode.vue +100 -100
  125. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +197 -197
  126. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  127. package/src/utils/map-utils.js +47 -47
@@ -0,0 +1,207 @@
1
+ <template>
2
+ <a-modal
3
+ :confirm-loading="loading"
4
+ :destroyOnClose="true"
5
+ :visible="visible"
6
+ width="80%"
7
+ height="60%"
8
+ okText="提交"
9
+ @cancel="close"
10
+ @ok="onSubmit"
11
+ v-bind="attr">
12
+ <div style="max-height: 70vh; overflow-y: auto;overflow-x: hidden;" v-if="showReport">
13
+ <x-report
14
+ @updateImg="updateImg"
15
+ @selectRow="selectRow"
16
+ ref="main"
17
+ :env="env"
18
+ :use-oss-for-img="false"
19
+ :config-name="configName"
20
+ :show-img-in-cell="true"
21
+ :display-only="displayOnly"
22
+ :edit-mode="false"
23
+ :show-save-button="false"
24
+ :dont-format="true"/>
25
+ </div>
26
+ </a-modal>
27
+ </template>
28
+ <script>
29
+ import { mapState } from 'vuex'
30
+ import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
31
+ import { runLogic } from '@vue2-client/services/api/common'
32
+ import { getMicroData, getWindow, isMicroAppEnv, microDispatch } from '@vue2-client/utils/microAppUtils'
33
+ import { getRealKeyData } from '@vue2-client/utils/util'
34
+
35
+ export default {
36
+ name: 'XAddReport',
37
+ components: {
38
+ XReport: () => import('@vue2-client/base-client/components/common/XReportGrid/XReport.vue'),
39
+ },
40
+ props: {
41
+ env: {
42
+ type: String,
43
+ default: 'prod'
44
+ }
45
+ },
46
+ data () {
47
+ return {
48
+ // 业务类型
49
+ businessType: '',
50
+ showReport: true,
51
+ configName: '',
52
+ displayOnly: true,
53
+ serverName: '',
54
+ // 业务标题
55
+ title: '',
56
+ // 自定义标题
57
+ resolvedTitle: '',
58
+ // 新增或修改业务是否执行中
59
+ loading: false,
60
+ // 是否显示新增/修改模态框
61
+ visible: false,
62
+ // 选中的处理对象的id号
63
+ selectedId: null,
64
+ // 混入插槽组件的数据
65
+ mixinData: {},
66
+ // 打开窗口接收到的外部环境数据
67
+ outEnv: {},
68
+ // 外部传递来的 modal 参数
69
+ attr: {},
70
+ }
71
+ },
72
+ provide () {
73
+ return {
74
+ getSelectedId: () => this.getSelectedId(),
75
+ getSelectedData: () => {
76
+ return this.selectedId
77
+ },
78
+ getMixinData: () => {
79
+ return this.mixinData
80
+ },
81
+ getOutEnv: () => {
82
+ return this.outEnv
83
+ },
84
+ isInAModal: () => {
85
+ return true
86
+ },
87
+ currUser: this.currUser
88
+ }
89
+ },
90
+ inject: ['getParentComponentByName', 'setGlobalData', 'getGlobalData'],
91
+ computed: {
92
+ businessTitle () {
93
+ return this.businessType + this.title
94
+ },
95
+ ...mapState('account', { currUser: 'user' })
96
+ },
97
+ methods: {
98
+ getWindow,
99
+ isMicroAppEnv,
100
+ microDispatch,
101
+ getMicroData,
102
+ runLogic,
103
+ getRealKeyData,
104
+ init (params) {
105
+ console.log('params', params)
106
+ const {
107
+ configName = 'medicalRecordCover',
108
+ serverName = process.env.VUE_APP_SYSTEM_NAME,
109
+ displayOnly = true,
110
+ selectedId = null,
111
+ outEnv = {},
112
+ mixinData = {},
113
+ attr = {},
114
+ } = params
115
+ this.configName = configName
116
+ this.serverName = serverName
117
+ this.displayOnly = displayOnly
118
+ this.visible = true
119
+ this.attr = attr
120
+ // 有选中项,给选中项赋值
121
+ if (selectedId) {
122
+ this.selectedId = selectedId
123
+ }
124
+ // 当有些组件需要外部传数据时 使用这个混入
125
+ this.mixinData = mixinData
126
+ // 把打开时的环境传递给打开窗口,以便js脚本中使用
127
+ this.outEnv = outEnv
128
+ },
129
+ getSelectedId () {
130
+ if (typeof this.selectedId === 'object') {
131
+ if (this.selectedId.selectedId) {
132
+ return this.selectedId.selectedId
133
+ }
134
+ if (Object.keys(this.selectedId) > 0) {
135
+ return this.selectedId[Object.keys(this.selectedId)[0]]
136
+ }
137
+ } else {
138
+ return this.selectedId
139
+ }
140
+ },
141
+ selectRow (selectedRowKeys, selectedRows) {
142
+ this.table_selectedRowKeys = selectedRowKeys
143
+ this.table_selectedRows = selectedRows
144
+ console.log('XAddReport')
145
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
146
+ },
147
+ close () {
148
+ this.loading = false
149
+ this.visible = false
150
+ this.$emit('close')
151
+ },
152
+ getComponentByName (name) {
153
+ const innerRef = this.getParentComponentByName(name)
154
+ if (innerRef) {
155
+ return innerRef
156
+ } else {
157
+ return this.$refs.main.getComponentByName(name)
158
+ }
159
+ },
160
+ async onSubmit () {
161
+ if (this.$refs.main?.config?.confirmFunction) {
162
+ console.info('执行自定义确认逻辑')
163
+ let func = this.$refs.main?.config?.confirmFunction
164
+ if (func && func.startsWith('function')) {
165
+ func = func.replace('function', 'async function')
166
+ }
167
+ const result = executeStrFunctionByContext(this, func, [])
168
+ if (result instanceof Promise) {
169
+ result.then((res) => {
170
+ if (!res) {
171
+ this.close()
172
+ return
173
+ }
174
+ let messageType = 'success'
175
+ // 如果传递了组件名字 自动调用刷新
176
+ if (res?.name) {
177
+ const waitRefreshRef = this.getComponentByName(res.name)
178
+ if (waitRefreshRef) {
179
+ waitRefreshRef.refresh()
180
+ } else {
181
+ console.warn(`未找到组件${res.name}无法刷新`)
182
+ }
183
+ }
184
+ // 如果传递消息类型 自动调用消息
185
+ if (res?.messageType) {
186
+ messageType = res.messageType
187
+ }
188
+ // 如果传递了提示信息自动调用提示
189
+ if (res?.message) {
190
+ this.$message[messageType](res?.message)
191
+ }
192
+ this.close()
193
+ })
194
+ } else {
195
+ this.close()
196
+ }
197
+ } else {
198
+ console.warn('未配置modal确认按钮逻辑')
199
+ this.close()
200
+ }
201
+ },
202
+ updateImg (data) {
203
+ console.log(data)
204
+ }
205
+ }
206
+ }
207
+ </script>
@@ -0,0 +1,211 @@
1
+ <template>
2
+ <a-modal
3
+ :confirm-loading="loading"
4
+ :destroyOnClose="true"
5
+ :visible="visible"
6
+ width="80%"
7
+ height="60%"
8
+ okText="提交"
9
+ @cancel="close"
10
+ @ok="onSubmit"
11
+ v-bind="attr">
12
+ <div style="max-height: 70vh; overflow-y: auto;overflow-x: hidden;" v-if="showReport">
13
+ <x-report
14
+ @updateImg="updateImg"
15
+ @selectRow="selectRow"
16
+ ref="main"
17
+ :env="env"
18
+ :use-oss-for-img="false"
19
+ :config-name="configName"
20
+ :show-img-in-cell="true"
21
+ :display-only="displayOnly"
22
+ :edit-mode="false"
23
+ :show-save-button="false"
24
+ :dont-format="true"/>
25
+ </div>
26
+ </a-modal>
27
+ </template>
28
+ <script>
29
+ import { mapState } from 'vuex'
30
+ import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
31
+ import { runLogic } from '@vue2-client/services/api/common'
32
+ import { getMicroData, getWindow, isMicroAppEnv, microDispatch } from '@vue2-client/utils/microAppUtils'
33
+ import { getRealKeyData } from '@vue2-client/utils/util'
34
+
35
+ export default {
36
+ name: 'XAddReport',
37
+ components: {
38
+ XReport: () => import('@vue2-client/base-client/components/common/XReportGrid/XReport.vue'),
39
+ },
40
+ props: {
41
+ env: {
42
+ type: String,
43
+ default: 'prod'
44
+ }
45
+ },
46
+ data () {
47
+ return {
48
+ // 业务类型
49
+ businessType: '',
50
+ showReport: true,
51
+ configName: '',
52
+ displayOnly: true,
53
+ serverName: '',
54
+ // 业务标题
55
+ title: '',
56
+ // 自定义标题
57
+ resolvedTitle: '',
58
+ // 新增或修改业务是否执行中
59
+ loading: false,
60
+ // 是否显示新增/修改模态框
61
+ visible: false,
62
+ // 选中的处理对象的id号
63
+ selectedId: null,
64
+ // 混入插槽组件的数据
65
+ mixinData: {},
66
+ // 打开窗口接收到的外部环境数据
67
+ outEnv: {},
68
+ // 外部传递来的 modal 参数
69
+ attr: {},
70
+ // 是否显示对话框按钮
71
+ showButtons: true,
72
+ }
73
+ },
74
+ provide () {
75
+ return {
76
+ getSelectedId: () => this.getSelectedId(),
77
+ getSelectedData: () => {
78
+ return this.selectedId
79
+ },
80
+ getMixinData: () => {
81
+ return this.mixinData
82
+ },
83
+ getOutEnv: () => {
84
+ return this.outEnv
85
+ },
86
+ isInAModal: () => {
87
+ return true
88
+ },
89
+ currUser: this.currUser
90
+ }
91
+ },
92
+ inject: ['getParentComponentByName', 'setGlobalData', 'getGlobalData'],
93
+ computed: {
94
+ businessTitle () {
95
+ return this.businessType + this.title
96
+ },
97
+ ...mapState('account', { currUser: 'user' })
98
+ },
99
+ methods: {
100
+ getWindow,
101
+ isMicroAppEnv,
102
+ microDispatch,
103
+ getMicroData,
104
+ runLogic,
105
+ getRealKeyData,
106
+ init (params) {
107
+ console.log('params', params)
108
+ const {
109
+ configName = 'medicalRecordCover',
110
+ serverName = process.env.VUE_APP_SYSTEM_NAME,
111
+ displayOnly = true,
112
+ selectedId = null,
113
+ outEnv = {},
114
+ mixinData = {},
115
+ attr = {},
116
+ showButtons = true,
117
+ } = params
118
+ this.configName = configName
119
+ this.serverName = serverName
120
+ this.displayOnly = displayOnly
121
+ this.visible = true
122
+ this.attr = attr
123
+ this.showButtons = showButtons
124
+ // 有选中项,给选中项赋值
125
+ if (selectedId) {
126
+ this.selectedId = selectedId
127
+ }
128
+ // 当有些组件需要外部传数据时 使用这个混入
129
+ this.mixinData = mixinData
130
+ // 把打开时的环境传递给打开窗口,以便js脚本中使用
131
+ this.outEnv = outEnv
132
+ },
133
+ getSelectedId () {
134
+ if (typeof this.selectedId === 'object') {
135
+ if (this.selectedId.selectedId) {
136
+ return this.selectedId.selectedId
137
+ }
138
+ if (Object.keys(this.selectedId) > 0) {
139
+ return this.selectedId[Object.keys(this.selectedId)[0]]
140
+ }
141
+ } else {
142
+ return this.selectedId
143
+ }
144
+ },
145
+ selectRow (selectedRowKeys, selectedRows) {
146
+ this.table_selectedRowKeys = selectedRowKeys
147
+ this.table_selectedRows = selectedRows
148
+ console.log('XAddReport')
149
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
150
+ },
151
+ close () {
152
+ this.loading = false
153
+ this.visible = false
154
+ this.$emit('close')
155
+ },
156
+ getComponentByName (name) {
157
+ const innerRef = this.getParentComponentByName(name)
158
+ if (innerRef) {
159
+ return innerRef
160
+ } else {
161
+ return this.$refs.main.getComponentByName(name)
162
+ }
163
+ },
164
+ async onSubmit () {
165
+ if (this.$refs.main?.config?.confirmFunction) {
166
+ console.info('执行自定义确认逻辑')
167
+ let func = this.$refs.main?.config?.confirmFunction
168
+ if (func && func.startsWith('function')) {
169
+ func = func.replace('function', 'async function')
170
+ }
171
+ const result = executeStrFunctionByContext(this, func, [])
172
+ if (result instanceof Promise) {
173
+ result.then((res) => {
174
+ if (!res) {
175
+ this.close()
176
+ return
177
+ }
178
+ let messageType = 'success'
179
+ // 如果传递了组件名字 自动调用刷新
180
+ if (res?.name) {
181
+ const waitRefreshRef = this.getComponentByName(res.name)
182
+ if (waitRefreshRef) {
183
+ waitRefreshRef.refresh()
184
+ } else {
185
+ console.warn(`未找到组件${res.name}无法刷新`)
186
+ }
187
+ }
188
+ // 如果传递消息类型 自动调用消息
189
+ if (res?.messageType) {
190
+ messageType = res.messageType
191
+ }
192
+ // 如果传递了提示信息自动调用提示
193
+ if (res?.message) {
194
+ this.$message[messageType](res?.message)
195
+ }
196
+ this.close()
197
+ })
198
+ } else {
199
+ this.close()
200
+ }
201
+ } else {
202
+ console.warn('未配置modal确认按钮逻辑')
203
+ this.close()
204
+ }
205
+ },
206
+ updateImg (data) {
207
+ console.log(data)
208
+ }
209
+ }
210
+ }
211
+ </script>
@@ -0,0 +1,212 @@
1
+ <template>
2
+ <a-modal
3
+ :confirm-loading="loading"
4
+ :destroyOnClose="true"
5
+ :visible="visible"
6
+ width="80%"
7
+ height="60%"
8
+ okText="提交"
9
+ :footer="showButtons ? undefined : null"
10
+ @cancel="close"
11
+ @ok="onSubmit"
12
+ v-bind="attr">
13
+ <div style="max-height: 70vh; overflow-y: auto;overflow-x: hidden;" v-if="showReport">
14
+ <x-report
15
+ @updateImg="updateImg"
16
+ @selectRow="selectRow"
17
+ ref="main"
18
+ :env="env"
19
+ :use-oss-for-img="false"
20
+ :config-name="configName"
21
+ :show-img-in-cell="true"
22
+ :display-only="displayOnly"
23
+ :edit-mode="false"
24
+ :show-save-button="false"
25
+ :dont-format="true"/>
26
+ </div>
27
+ </a-modal>
28
+ </template>
29
+ <script>
30
+ import { mapState } from 'vuex'
31
+ import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
32
+ import { runLogic } from '@vue2-client/services/api/common'
33
+ import { getMicroData, getWindow, isMicroAppEnv, microDispatch } from '@vue2-client/utils/microAppUtils'
34
+ import { getRealKeyData } from '@vue2-client/utils/util'
35
+
36
+ export default {
37
+ name: 'XAddReport',
38
+ components: {
39
+ XReport: () => import('@vue2-client/base-client/components/common/XReportGrid/XReport.vue'),
40
+ },
41
+ props: {
42
+ env: {
43
+ type: String,
44
+ default: 'prod'
45
+ }
46
+ },
47
+ data () {
48
+ return {
49
+ // 业务类型
50
+ businessType: '',
51
+ showReport: true,
52
+ configName: '',
53
+ displayOnly: true,
54
+ serverName: '',
55
+ // 业务标题
56
+ title: '',
57
+ // 自定义标题
58
+ resolvedTitle: '',
59
+ // 新增或修改业务是否执行中
60
+ loading: false,
61
+ // 是否显示新增/修改模态框
62
+ visible: false,
63
+ // 选中的处理对象的id号
64
+ selectedId: null,
65
+ // 混入插槽组件的数据
66
+ mixinData: {},
67
+ // 打开窗口接收到的外部环境数据
68
+ outEnv: {},
69
+ // 外部传递来的 modal 参数
70
+ attr: {},
71
+ // 是否显示对话框按钮
72
+ showButtons: true,
73
+ }
74
+ },
75
+ provide () {
76
+ return {
77
+ getSelectedId: () => this.getSelectedId(),
78
+ getSelectedData: () => {
79
+ return this.selectedId
80
+ },
81
+ getMixinData: () => {
82
+ return this.mixinData
83
+ },
84
+ getOutEnv: () => {
85
+ return this.outEnv
86
+ },
87
+ isInAModal: () => {
88
+ return true
89
+ },
90
+ currUser: this.currUser
91
+ }
92
+ },
93
+ inject: ['getParentComponentByName', 'setGlobalData', 'getGlobalData'],
94
+ computed: {
95
+ businessTitle () {
96
+ return this.businessType + this.title
97
+ },
98
+ ...mapState('account', { currUser: 'user' })
99
+ },
100
+ methods: {
101
+ getWindow,
102
+ isMicroAppEnv,
103
+ microDispatch,
104
+ getMicroData,
105
+ runLogic,
106
+ getRealKeyData,
107
+ init (params) {
108
+ console.log('params', params)
109
+ const {
110
+ configName = 'medicalRecordCover',
111
+ serverName = process.env.VUE_APP_SYSTEM_NAME,
112
+ displayOnly = true,
113
+ selectedId = null,
114
+ outEnv = {},
115
+ mixinData = {},
116
+ attr = {},
117
+ showButtons = true,
118
+ } = params
119
+ this.configName = configName
120
+ this.serverName = serverName
121
+ this.displayOnly = displayOnly
122
+ this.visible = true
123
+ this.attr = attr
124
+ this.showButtons = showButtons
125
+ // 有选中项,给选中项赋值
126
+ if (selectedId) {
127
+ this.selectedId = selectedId
128
+ }
129
+ // 当有些组件需要外部传数据时 使用这个混入
130
+ this.mixinData = mixinData
131
+ // 把打开时的环境传递给打开窗口,以便js脚本中使用
132
+ this.outEnv = outEnv
133
+ },
134
+ getSelectedId () {
135
+ if (typeof this.selectedId === 'object') {
136
+ if (this.selectedId.selectedId) {
137
+ return this.selectedId.selectedId
138
+ }
139
+ if (Object.keys(this.selectedId) > 0) {
140
+ return this.selectedId[Object.keys(this.selectedId)[0]]
141
+ }
142
+ } else {
143
+ return this.selectedId
144
+ }
145
+ },
146
+ selectRow (selectedRowKeys, selectedRows) {
147
+ this.table_selectedRowKeys = selectedRowKeys
148
+ this.table_selectedRows = selectedRows
149
+ console.log('XAddReport')
150
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
151
+ },
152
+ close () {
153
+ this.loading = false
154
+ this.visible = false
155
+ this.$emit('close')
156
+ },
157
+ getComponentByName (name) {
158
+ const innerRef = this.getParentComponentByName(name)
159
+ if (innerRef) {
160
+ return innerRef
161
+ } else {
162
+ return this.$refs.main.getComponentByName(name)
163
+ }
164
+ },
165
+ async onSubmit () {
166
+ if (this.$refs.main?.config?.confirmFunction) {
167
+ console.info('执行自定义确认逻辑')
168
+ let func = this.$refs.main?.config?.confirmFunction
169
+ if (func && func.startsWith('function')) {
170
+ func = func.replace('function', 'async function')
171
+ }
172
+ const result = executeStrFunctionByContext(this, func, [])
173
+ if (result instanceof Promise) {
174
+ result.then((res) => {
175
+ if (!res) {
176
+ this.close()
177
+ return
178
+ }
179
+ let messageType = 'success'
180
+ // 如果传递了组件名字 自动调用刷新
181
+ if (res?.name) {
182
+ const waitRefreshRef = this.getComponentByName(res.name)
183
+ if (waitRefreshRef) {
184
+ waitRefreshRef.refresh()
185
+ } else {
186
+ console.warn(`未找到组件${res.name}无法刷新`)
187
+ }
188
+ }
189
+ // 如果传递消息类型 自动调用消息
190
+ if (res?.messageType) {
191
+ messageType = res.messageType
192
+ }
193
+ // 如果传递了提示信息自动调用提示
194
+ if (res?.message) {
195
+ this.$message[messageType](res?.message)
196
+ }
197
+ this.close()
198
+ })
199
+ } else {
200
+ this.close()
201
+ }
202
+ } else {
203
+ console.warn('未配置modal确认按钮逻辑')
204
+ this.close()
205
+ }
206
+ },
207
+ updateImg (data) {
208
+ console.log(data)
209
+ }
210
+ }
211
+ }
212
+ </script>