vue2-client 1.12.2 → 1.12.3-9.alpha.1

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 (44) hide show
  1. package/.env.iot +19 -0
  2. package/babel.config.js +4 -1
  3. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +175 -174
  4. package/package.json +2 -2
  5. package/src/base-client/components/common/XCardSet/XCardSet.vue +300 -0
  6. package/src/base-client/components/common/XCollapse/XCollapse.vue +154 -0
  7. package/src/base-client/components/common/XConversation/XConversation.vue +87 -2
  8. package/src/base-client/components/common/XConversation/XConversationDemo.vue +28 -28
  9. package/src/base-client/components/common/XDataCard/XDataCard.vue +47 -21
  10. package/src/base-client/components/common/XDatePicker/index.vue +13 -3
  11. package/src/base-client/components/common/XForm/XForm.vue +1 -1
  12. package/src/base-client/components/common/XForm/XFormItem.vue +17 -7
  13. package/src/base-client/components/common/XForm/XTreeSelect.vue +263 -264
  14. package/src/base-client/components/common/XForm/demo.vue +105 -0
  15. package/src/base-client/components/common/XFormTable/demo.vue +11 -3
  16. package/src/base-client/components/common/XPrint/Demo.vue +41 -41
  17. package/src/base-client/components/common/XRate/demo.vue +102 -0
  18. package/src/base-client/components/common/XRate/index.vue +136 -0
  19. package/src/base-client/components/common/XReportGrid/XReport.vue +240 -305
  20. package/src/base-client/components/common/XReportGrid/XReportDemo.vue +0 -2
  21. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +115 -345
  22. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +100 -723
  23. package/src/base-client/components/common/XTable/XTable.vue +3 -0
  24. package/src/base-client/components/common/XTable/XTableWrapper.vue +7 -3
  25. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +172 -0
  26. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +360 -359
  27. package/src/layouts/GridView.vue +43 -45
  28. package/src/logic/plugins/common/DateTools.js +3 -0
  29. package/src/logic/plugins/common/VueTools.js +30 -0
  30. package/src/logic/plugins/index.js +3 -1
  31. package/src/pages/LogicCallExample/index.vue +10 -0
  32. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +47 -32
  33. package/src/pages/WorkflowDetail/WorkflowDetail.vue +5 -0
  34. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +876 -864
  35. package/src/pages/userInfoDetailManage/index.vue +82 -82
  36. package/src/plugins/HiPrintPlugin.js +164 -124
  37. package/src/router/async/router.map.js +3 -2
  38. package/src/services/v3Api.js +116 -116
  39. package/src/utils/EncryptUtil.js +6 -7
  40. package/src/utils/indexedDB.js +3 -1
  41. package/src/utils/request.js +4 -8
  42. package/src/utils/routerUtil.js +17 -0
  43. package/.babelrc +0 -3
  44. package/src/base-client/components/common/XReportGrid/XReportJsonRender.vue +0 -380
@@ -423,6 +423,7 @@ export default {
423
423
  summaryDrawerWidth: 35,
424
424
  // 行选择模式
425
425
  selectRowMode: 'default',
426
+ tableSize: 'default',
426
427
  clearSelectRowAfterQuery: false,
427
428
  selectedRowModalVisible: false
428
429
  }
@@ -653,6 +654,7 @@ export default {
653
654
  chartsConfigArray = [],
654
655
  printTemplate = 'DEFAULT_CRUD_PRINT_TEMPLATE',
655
656
  selectRowMode = 'default',
657
+ tableSize = 'default',
656
658
  clearSelectRowAfterQuery = false
657
659
  } = params
658
660
  this.showSummary = Object.keys(tableSummaryMap).length > 0
@@ -703,6 +705,7 @@ export default {
703
705
  this.summaryDrawerWidth = summaryDrawerWidth
704
706
  this.chartsConfigArray = chartsConfigArray
705
707
  this.selectRowMode = selectRowMode
708
+ this.tableSize = tableSize
706
709
  this.clearSelectRowAfterQuery = clearSelectRowAfterQuery
707
710
  if (this.chartsConfigArray.length > 0) {
708
711
  // 循环chartsConfigArray,将每个配置的数据请求参数赋值给requestParameters
@@ -15,7 +15,7 @@
15
15
  :pageSize="tableContext.simpleMode ? 1000 : undefined"
16
16
  :setScrollYHeight="tableContext.setScrollYHeight"
17
17
  :selectRowMode="tableContext.selectRowMode"
18
- size="default"
18
+ :size="tableContext.tableSize"
19
19
  >
20
20
  <template
21
21
  v-for="(item, c_index) in tableContext.tableColumns"
@@ -36,6 +36,9 @@
36
36
  :key="'editRow-' + c_index"
37
37
  />
38
38
  </template>
39
+ <span v-else-if="item.slotType === 'rate'" :key="'rate-' + c_index">
40
+ <x-rate :value="text" :disabled="true" :allow-half="item.allowHalf" :max-count="item.maxCount" />
41
+ </span>
39
42
  <span v-else-if="item.slotType === 'index'" :key="'index-' + c_index">
40
43
  {{ index + 1 }}
41
44
  </span>
@@ -81,7 +84,7 @@
81
84
  </span>
82
85
  <span v-else-if="item.slotType === 'action'" :key="'action-' + c_index">
83
86
  <template v-if="item.actionArr && item.actionArr.length > 0">
84
- <a-dropdown>
87
+ <a-dropdown :getPopupContainer=" triggerNode => { return triggerNode.parentNode } ">
85
88
  <a class="ant-dropdown-link" @click="e => e.preventDefault()">
86
89
  {{ item.scopedSlots?.customRender || item.slotValue }} <a-icon type="down"/>
87
90
  </a>
@@ -116,7 +119,7 @@ import XBadge from '@vue2-client/base-client/components/common/XBadge'
116
119
  import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem'
117
120
  import CustomFuncCel from '@vue2-client/base-client/components/common/XTable/CustomFuncCel.vue'
118
121
  import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
119
-
122
+ import XRate from '@vue2-client/base-client/components/common/XRate/index.vue'
120
123
  export default {
121
124
  name: 'XTableWrapper',
122
125
  components: {
@@ -124,6 +127,7 @@ export default {
124
127
  STable,
125
128
  XBadge,
126
129
  XFormItem,
130
+ XRate,
127
131
  CustomFuncCel
128
132
  },
129
133
  computed: {
@@ -0,0 +1,172 @@
1
+ <template>
2
+ <div class="patient-info-descriptions">
3
+ <a-descriptions
4
+ :column="configurationParameters?.layout"
5
+ :size="configurationParameters?.style?.size"
6
+ :bordered="configurationParameters?.style?.bordered"
7
+ layout="horizontal">
8
+ <template v-if="data">
9
+ <a-descriptions-item
10
+ v-for="item in configurationParameters?.items"
11
+ :key="item.field">
12
+ <template #label>
13
+ <div :class="['label-wrapper', { 'with-avatar': item.showAvatar }]">
14
+ <a-avatar
15
+ v-if="item.showAvatar"
16
+ :size="item.avatar.size"
17
+ :icon="item.avatar.icon"
18
+ :style="{ background: item.avatar.background }"
19
+ />
20
+ <span class="label-text">{{ item.label }}</span>
21
+ </div>
22
+ </template>
23
+ <div class="content-wrapper">
24
+ {{ data[item.field] }}
25
+ </div>
26
+ </a-descriptions-item>
27
+ </template>
28
+ </a-descriptions>
29
+ </div>
30
+ </template>
31
+ <script>
32
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
33
+
34
+ export default {
35
+ name: 'XHDescriptions',
36
+ data () {
37
+ return {
38
+ data: null,
39
+ configurationParameters: null
40
+ }
41
+ },
42
+ props: {
43
+ queryParamsName: {
44
+ type: String,
45
+ default: 'DescriptionsExampleConfig'
46
+ }
47
+ },
48
+ created () {
49
+ this.getData(this.queryParamsName)
50
+ },
51
+ methods: {
52
+ async getData (data) {
53
+ this.data = null
54
+ getConfigByName(data, 'af-his', res => {
55
+ this.configurationParameters = res
56
+ console.log(this.configurationParameters)
57
+ runLogic(res.logicName, res.parameter, 'af-his').then(result => {
58
+ this.data = result
59
+ })
60
+ })
61
+ }
62
+ },
63
+ watch: {
64
+ queryParamsName: {
65
+ handler (newValue) {
66
+ console.log(newValue)
67
+ this.getData(newValue)
68
+ },
69
+ deep: true
70
+ }
71
+ }
72
+ }
73
+ </script>
74
+
75
+ <style scoped>
76
+ .patient-info-descriptions {
77
+ background: #fff;
78
+ padding: 12px;
79
+ border-radius: 4px;
80
+ }
81
+
82
+ .label-wrapper {
83
+ display: flex;
84
+ align-items: center;
85
+ white-space: nowrap;
86
+ line-height: 24px;
87
+ position: relative;
88
+ padding: 0;
89
+ margin: 0;
90
+ }
91
+
92
+ .label-wrapper.with-avatar {
93
+ gap: 8px;
94
+ }
95
+
96
+ .label-text {
97
+ display: inline-flex;
98
+ align-items: center;
99
+ }
100
+
101
+ .content-wrapper {
102
+ line-height: 24px;
103
+ white-space: nowrap;
104
+ }
105
+
106
+ :deep(.ant-descriptions-row) {
107
+ display: flex;
108
+ flex-direction: row;
109
+ align-items: center;
110
+ }
111
+
112
+ :deep(.ant-descriptions-item) {
113
+ padding: 0 !important;
114
+ display: flex !important;
115
+ align-items: center !important;
116
+ flex-direction: row !important;
117
+ margin-right: 24px;
118
+ width: fit-content !important;
119
+ }
120
+
121
+ :deep(.ant-descriptions-item-container) {
122
+ display: flex !important;
123
+ flex-direction: row !important;
124
+ align-items: center !important;
125
+ position: relative;
126
+ gap: 0 !important;
127
+ width: 100% !important;
128
+ }
129
+
130
+ :deep(.ant-descriptions-item-label) {
131
+ color: rgba(0, 0, 0, 0.65);
132
+ padding: 0 !important;
133
+ margin: 0 !important;
134
+ font-size: v-bind('configurationParameters?.style?.fontSize');
135
+ display: inline-flex !important;
136
+ align-items: center !important;
137
+ white-space: nowrap !important;
138
+ }
139
+
140
+ :deep(.ant-descriptions-item-content) {
141
+ font-size: v-bind('configurationParameters?.style?.fontSize');
142
+ display: inline-flex !important;
143
+ align-items: center !important;
144
+ padding: 0 !important;
145
+ margin: 0 !important;
146
+ margin-left: 2px !important;
147
+ }
148
+
149
+ :deep(.ant-descriptions-item-colon) {
150
+ position: static !important;
151
+ display: inline-flex !important;
152
+ align-items: center !important;
153
+ margin: 0 !important;
154
+ padding: 0 !important;
155
+ }
156
+
157
+ /* 移除 Ant Design 的默认样式 */
158
+ :deep(.ant-descriptions-item-container),
159
+ :deep(.ant-descriptions-item-label),
160
+ :deep(.ant-descriptions-item-content),
161
+ :deep(.ant-descriptions-item-colon) {
162
+ box-sizing: border-box !important;
163
+ border-spacing: 0 !important;
164
+ border-collapse: collapse !important;
165
+ }
166
+
167
+ /* 添加悬停效果 */
168
+ :deep(.ant-descriptions-item-container:hover) {
169
+ background-color: rgba(0, 0, 0, 0.02);
170
+ border-radius: 4px;
171
+ }
172
+ </style>