vue2-client 1.14.84 → 1.14.86

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 (134) hide show
  1. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +0 -1
  2. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +2 -4
  3. package/package.json +1 -1
  4. package/src/base-client/components/common/XFormTable/XFormTable.vue +7 -0
  5. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +20 -7
  6. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireDemo.vue +10 -1
  7. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireItem.vue +0 -3
  8. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  9. package/src/base-client/components/his/XTreeRows/TreeNode.vue +100 -100
  10. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +197 -197
  11. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  12. package/src/base-client/components/layout/XPageView/RenderRow.vue +57 -31
  13. package/src/base-client/components/layout/XPageView/XErrorView.vue +14 -3
  14. package/src/base-client/components/layout/XPageView/XPageView.vue +138 -71
  15. package/src/base-client/components/layout/XPageView/index.js +1 -3
  16. package/src/base-client/components/layout/XPageView/index.md +65 -26
  17. package/src/pages/WorkflowDetail/WorkFlowDemo2.vue +90 -0
  18. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +13 -1
  19. package/src/pages/XPageViewExample/index.vue +41 -8
  20. package/src/pages/addressSelect/addressDemo.vue +24 -24
  21. package/src/pages/addressSelect/index.vue +6 -12
  22. package/src/router/async/router.map.js +4 -2
  23. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  24. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  25. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  26. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  27. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  28. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +0 -207
  29. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +0 -211
  30. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +0 -212
  31. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +0 -212
  32. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  33. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  34. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  35. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  36. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  37. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  38. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +0 -731
  39. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +0 -748
  40. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +0 -748
  41. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +0 -1071
  42. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +0 -1078
  43. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +0 -1077
  44. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +0 -1077
  45. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +0 -1077
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +0 -442
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +0 -442
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +0 -442
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +0 -475
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +0 -475
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +0 -475
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +0 -477
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +0 -477
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +0 -477
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +0 -473
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +0 -473
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +0 -473
  58. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +0 -473
  59. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +0 -473
  60. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +0 -473
  61. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +0 -473
  62. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +0 -473
  63. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +0 -473
  64. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +0 -473
  65. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +0 -474
  66. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +0 -474
  67. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +0 -474
  68. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +0 -472
  69. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +0 -472
  70. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +0 -472
  71. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +0 -472
  72. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +0 -472
  73. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +0 -472
  74. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +0 -501
  75. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +0 -501
  76. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +0 -501
  77. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +0 -504
  78. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +0 -504
  79. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +0 -504
  80. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +0 -131
  81. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +0 -160
  82. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +0 -160
  83. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +0 -160
  84. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +0 -158
  85. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +0 -173
  86. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +0 -222
  87. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +0 -229
  88. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +0 -229
  89. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +0 -229
  90. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +0 -241
  91. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +0 -241
  92. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +0 -241
  93. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +0 -245
  94. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +0 -245
  95. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +0 -245
  96. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +0 -255
  97. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +0 -255
  98. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +0 -255
  99. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +0 -270
  100. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +0 -270
  101. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +0 -270
  102. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +0 -270
  103. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +0 -294
  104. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +0 -294
  105. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +0 -294
  106. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +0 -303
  107. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +0 -303
  108. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +0 -303
  109. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +0 -288
  110. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +0 -288
  111. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +0 -288
  112. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +0 -317
  113. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +0 -306
  114. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +0 -306
  115. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +0 -306
  116. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250609151519.vue +0 -222
  117. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155514.vue +0 -183
  118. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155556.vue +0 -183
  119. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155600.vue +0 -183
  120. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181609.vue +0 -206
  121. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181629.vue +0 -209
  122. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095553.vue +0 -242
  123. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095610.vue +0 -242
  124. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095612.vue +0 -242
  125. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100041.vue +0 -251
  126. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100047.vue +0 -251
  127. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100054.vue +0 -250
  128. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100105.vue +0 -250
  129. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100107.vue +0 -250
  130. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100114.vue +0 -250
  131. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
  132. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  133. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  134. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
@@ -1,250 +0,0 @@
1
- <template>
2
- <a-table
3
- :columns="columns"
4
- :data-source="data"
5
- :rowSelection="rowSelection"
6
- :scroll="{ y: '75vh' }">
7
- <span slot="time" class="time-title">
8
- <span v-for="(item, index) in configData.timePeriod" :key="index">{{ item }}</span>
9
- </span>
10
- <a-button slot="lastWeek" icon="left" size="large" @click="handleLastWeek" />
11
- <div v-for="(item, index) in weekDays" :key="index" :slot="item.key" class="time-title">
12
- <span>{{item.title}}</span>
13
- <span>{{ currentWeekDates[index].toLocaleDateString() }}</span>
14
- </div>
15
- <template :slot="day.key" slot-scope="text, record" v-for="day in shiftTable">
16
- <div class="time-title" :key="day.key">
17
- <a-button v-for="(item, index) in record[day.key]" :key="index" @click="handleShiftChange(day.key, index, record)">{{ item === 1 || item === '1' ? '坐诊' : '休息' }}</a-button>
18
- </div>
19
- </template>
20
- <a-button slot="nextWeek" icon="right" size="large" @click="handleNextWeek" />
21
- <template slot="sk_limit" slot-scope="text, record">
22
- <a-input-number id="inputNumber" v-model="record.sk_limit" :min="configData.sk_limitMin" :max="configData.sk_limitMax" />
23
- </template>
24
- </a-table>
25
- </template>
26
- <script>
27
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
28
-
29
- export default {
30
- data () {
31
- return {
32
- data: [],
33
- // 列配置
34
- columns: [],
35
- // 列名
36
- columnNames: [],
37
- // 选中的行键值集合
38
- selectedRows: [],
39
- // 选中的行信息集合
40
- selectedRowKeys: [],
41
- // 原始数据备份
42
- originalData: [],
43
- // 配置参数
44
- configData: {},
45
- // 当前显示的周次日期
46
- currentWeekDates: [],
47
- weekDays: [...['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map((title, index) => {
48
- const key = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][index]
49
- return { title, key }
50
- })],
51
- // 排班时间表
52
- shiftTable: [
53
- {
54
- dataIndex: 'lastWeek',
55
- key: 'lastWeek',
56
- slots: { title: 'lastWeek' },
57
- scopedSlots: { customRender: 'lastWeekTitle' },
58
- align: 'center',
59
- width: 80
60
- },
61
- ...['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map((title, index) => {
62
- const key = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][index]
63
- return {
64
- key, dataIndex: key, scopedSlots: { customRender: key }, slots: { title: key }, align: 'center', width: 120
65
- }
66
- }),
67
- {
68
- dataIndex: 'nextWeek',
69
- key: 'nextWeek',
70
- slots: { title: 'nextWeek' },
71
- scopedSlots: { customRender: 'nextWeekTitle' },
72
- align: 'center',
73
- width: 80
74
- },
75
- {
76
- title: '排班数',
77
- key: 'sk_limit',
78
- dataIndex: 'sk_limit',
79
- scopedSlots: { customRender: 'sk_limit' },
80
- align: 'center'
81
- }
82
- ]
83
- }
84
- },
85
- props: {
86
- // 配置名
87
- queryParamsName: {
88
- type: String,
89
- default: ''
90
- },
91
- // 服务名
92
- serviceName: {
93
- type: String,
94
- default: 'af-his'
95
- }
96
- },
97
- computed: {
98
- rowSelection () {
99
- return {
100
- selectedRowKeys: this.selectedRowKeys,
101
- onChange: (selectedRowKeys, selectedRows) => {
102
- this.onSelectChange(selectedRowKeys, selectedRows)
103
- }
104
- }
105
- }
106
- },
107
- mounted () {
108
- this.initWeekDates()
109
- },
110
- methods: {
111
- handleShiftChange (day, index, record) {
112
- // 找到当前记录在data中的索引
113
- const dataIndex = this.data.findIndex(item => item.id === record.id)
114
- if (dataIndex === -1) return
115
- // 获取当前状态
116
- const currentValue = record[day][index]
117
- const newValue = currentValue === 1 || currentValue === '1' ? 0 : 1
118
- // 更新按钮显示
119
- this.$set(record[day], index, newValue)
120
- // 同步更新data中的数据
121
- this.$set(this.data[dataIndex][day], index, newValue)
122
- },
123
- onSelectChange (selectedRowKeys, selectedRows) {
124
- this.selectedRowKeys = selectedRowKeys
125
- this.selectedRows = selectedRows
126
- },
127
- // 获取选中的行数据
128
- getSelectedRowData () {
129
- return this.selectedRows
130
- },
131
- // 获取全部数据
132
- getAllTable () {
133
- return this.data
134
- },
135
- // 初始化数据
136
- async init (queryParamsName) {
137
- getConfigByName(queryParamsName, this.serviceName, result => {
138
- this.configData = result
139
- runLogic(result.dataSource, {}, this.serviceName).then(res => {
140
- this.columns = []
141
- this.columns = JSON.parse(JSON.stringify(this.configData.columns))
142
- for (let i = 0; i < this.shiftTable.length; i++) {
143
- this.columns.push(this.shiftTable[i])
144
- }
145
- if (res && Array.isArray(res)) {
146
- const weekDays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
147
- const shifts = ['am', 'pm', 'evening']
148
- let key = 0
149
- this.data = res.map(item => {
150
- const scheduleData = {
151
- key: key++
152
- }
153
- this.configData.columnsName.forEach(columnName => { scheduleData[columnName] = item[columnName] })
154
- weekDays.forEach(day => {
155
- scheduleData[day.charAt(0).toUpperCase() + day.slice(1)] = shifts.map(shift => item[`f_${day}_${shift}`] === '1' ? 1 : 0)
156
- })
157
- return scheduleData
158
- })
159
- // 保存原始数据
160
- this.originalData = JSON.parse(JSON.stringify(this.data))
161
- }
162
- })
163
- })
164
- },
165
- // 查询数据函数
166
- filterTableData (filters) {
167
- if (!filters || Object.keys(filters).length === 0) {
168
- // 如果没有过滤条件,恢复原始数据
169
- this.data = JSON.parse(JSON.stringify(this.originalData))
170
- return
171
- }
172
- // 从原始数据开始过滤
173
- this.data = this.originalData.filter(item => {
174
- // 检查每一项是否满足所有过滤条件
175
- return Object.entries(filters).every(([key, value]) => {
176
- // 如果过滤值是字符串,进行模糊匹配
177
- if (typeof value === 'string') {
178
- return item[key] && item[key].toString().toLowerCase().includes(value.toLowerCase())
179
- }
180
- // 如果过滤值是数字,进行精确匹配
181
- return item[key] === value
182
- })
183
- })
184
- },
185
- // 初始化周次日期
186
- initWeekDates () {
187
- const today = new Date()
188
- const currentDay = today.getDay() || 7 // 将周日的0转换为7
189
- const monday = new Date(today)
190
- monday.setDate(today.getDate() - currentDay + 1) // 设置为本周一
191
-
192
- this.currentWeekDates = Array.from({ length: 7 }, (_, index) => {
193
- const date = new Date(monday)
194
- date.setDate(monday.getDate() + index)
195
- return date
196
- })
197
- },
198
- // 切换到上一周
199
- handleLastWeek () {
200
- const monday = new Date(this.currentWeekDates[0])
201
- monday.setDate(monday.getDate() - 7)
202
- this.updateWeekDates(monday)
203
- },
204
- // 切换到下一周
205
- handleNextWeek () {
206
- const monday = new Date(this.currentWeekDates[0])
207
- monday.setDate(monday.getDate() + 7)
208
- this.updateWeekDates(monday)
209
- },
210
- // 更新周次日期
211
- updateWeekDates (monday) {
212
- this.currentWeekDates = Array.from({ length: 7 }, (_, index) => {
213
- const date = new Date(monday)
214
- date.setDate(monday.getDate() + index)
215
- return date
216
- })
217
- }
218
- },
219
- watch: {
220
- queryParamsName: {
221
- handler (newValue) {
222
- this.init(newValue)
223
- },
224
- deep: true,
225
- immediate: true
226
- }
227
- }
228
- }
229
- </script>
230
-
231
- <style scoped>
232
- .time-title {
233
- display: flex !important;
234
- flex-direction: column !important;
235
- align-items: center !important;
236
- }
237
- ::v-deep .ant-table-thead > tr > th,
238
- ::v-deep .ant-table-tbody > tr > td {
239
- padding: 8px 16px !important;
240
- overflow-wrap: break-word;
241
- }
242
-
243
- ::v-deep .ant-table-thead > tr > th .ant-btn {
244
- margin: 0 4px;
245
- }
246
-
247
- ::v-deep .ant-table-thead > tr > th .time-title {
248
- margin: 0 -4px;
249
- }
250
- </style>
@@ -1,36 +0,0 @@
1
- <script>
2
- export default {
3
- props: {
4
- weekDays: {
5
- type: Array,
6
- default: () => []
7
- }
8
- },
9
- computed: {
10
- columns () {
11
- const baseColumns = [
12
- { title: '序号', dataIndex: 'index', width: 60 },
13
- { title: '科室', dataIndex: 'department', width: 120 },
14
- { title: '医生', dataIndex: 'doctor', width: 100 },
15
- { title: '上/下/晚', dataIndex: 'shiftType', width: 80 },
16
- ]
17
-
18
- // 增加防御判断,确保 weekDays 存在
19
- const dayColumns = this.weekDays.length > 0
20
- ? this.weekDays.map((day, dayIndex) => ({
21
- title: `${day.label} ${day.date}`,
22
- dataIndex: `shifts-${dayIndex}`, // 改为字符串形式
23
- dayIndex: dayIndex,
24
- width: 120,
25
- }))
26
- : []
27
-
28
- const tailColumns = [
29
- { title: '排班数', dataIndex: 'count', width: 80 }
30
- ]
31
-
32
- return [...baseColumns, ...dayColumns, ...tailColumns]
33
- }
34
- }
35
- }
36
- </script>
@@ -1,91 +0,0 @@
1
- <template>
2
- <div class="tree-container">
3
- <div class="tree-list">
4
- <tree-node
5
- v-for="node in treeData"
6
- :key="node.id"
7
- :node="node"
8
- @toggle="toggleNode"/>
9
- </div>
10
- </div>
11
- </template>
12
-
13
- <script>
14
- import TreeNode from './TreeNode.vue'
15
-
16
- export default {
17
- name: 'TreeList',
18
- components: {
19
- TreeNode
20
- },
21
- data() {
22
- return {
23
- treeData: [
24
- {
25
- id: '1',
26
- title: '体征',
27
- expanded: false,
28
- children: [
29
- {
30
- id: '1-1',
31
- title: '一般情况'
32
- },
33
- {
34
- id: '1-2',
35
- title: '皮肤粘膜'
36
- },
37
- {
38
- id: '1-3',
39
- title: '头颈',
40
- expanded: false,
41
- children: [
42
- {
43
- id: '1-3-1',
44
- title: '头部'
45
- },
46
- {
47
- id: '1-3-2',
48
- title: '颈部'
49
- }
50
- ]
51
- }
52
- ]
53
- }
54
- ]
55
- }
56
- },
57
- methods: {
58
- toggleNode(node) {
59
- node.expanded = !node.expanded
60
- }
61
- }
62
- }
63
- </script>
64
-
65
- <style scoped>
66
- .tree-container {
67
- width: 240px;
68
- height: 400px;
69
- border: 1px solid #e8e8e8;
70
- overflow-y: auto;
71
- padding: 8px;
72
- }
73
-
74
- /* 自定义滚动条样式 */
75
- .tree-container::-webkit-scrollbar {
76
- width: 6px;
77
- }
78
-
79
- .tree-container::-webkit-scrollbar-thumb {
80
- background-color: #ccc;
81
- border-radius: 3px;
82
- }
83
-
84
- .tree-container::-webkit-scrollbar-track {
85
- background-color: #f5f5f5;
86
- }
87
-
88
- .tree-list {
89
- font-size: 14px;
90
- }
91
- </style>
@@ -1,81 +0,0 @@
1
- <template>
2
- <div class="tree-node">
3
- <div class="node-content" @click="handleClick">
4
- <span v-if="hasChildren" class="toggle-icon">
5
- {{ node.expanded ? '-' : '+' }}
6
- </span>
7
- <span class="node-title">{{ node.title }}</span>
8
- </div>
9
- <div v-if="hasChildren && node.expanded" class="node-children">
10
- <tree-node
11
- v-for="child in node.children"
12
- :key="child.id"
13
- :node="child"
14
- @toggle="$emit('toggle', $event)"
15
- :level="level + 1"/>
16
- </div>
17
- </div>
18
- </template>
19
-
20
- <script>
21
- export default {
22
- name: 'TreeNode',
23
- props: {
24
- node: {
25
- type: Object,
26
- required: true
27
- },
28
- level: {
29
- type: Number,
30
- default: 0
31
- }
32
- },
33
- computed: {
34
- hasChildren() {
35
- return this.node.children && this.node.children.length > 0
36
- }
37
- },
38
- methods: {
39
- handleClick() {
40
- if (this.hasChildren) {
41
- this.$emit('toggle', this.node)
42
- }
43
- }
44
- }
45
- }
46
- </script>
47
-
48
- <style scoped>
49
- .tree-node {
50
- margin: 2px 0;
51
- }
52
-
53
- .node-content {
54
- display: flex;
55
- align-items: center;
56
- padding: 4px 0;
57
- user-select: none;
58
- }
59
-
60
- .toggle-icon {
61
- width: 16px;
62
- text-align: center;
63
- font-size: 14px;
64
- color: #666;
65
- margin-right: 4px;
66
- cursor: pointer;
67
- }
68
-
69
- .node-title {
70
- flex: 1;
71
- cursor: default;
72
- }
73
-
74
- .node-content:hover {
75
- background-color: #f5f5f5;
76
- }
77
-
78
- .node-children {
79
- padding-left: 20px;
80
- }
81
- </style>
@@ -1,191 +0,0 @@
1
- <template>
2
- <a-row
3
- class="title_box"
4
- :style="{backgroundColor: requiredParameters.backgroundColor,height:requiredParameters.height}"
5
- type="flex"
6
- v-model="requiredParameters">
7
- <a-col class="title_col_left" :flex="3">
8
- <div class="title_img_box">
9
- <img src="../img/header10086.png" class="title_img" alt="">
10
- </div>
11
- <div class="title_name">{{ requiredParameters.title }}</div>
12
- </a-col>
13
- <a-col class="title_col_right" id="titleSelect" :flex="3" style="padding-right: 3%" v-model="dateData">
14
- <div class="title_date_box">
15
- <div class="title_data">{{ dateData.date }}</div>
16
- <div class="title_week">{{ dateData.dayOfWeek }}</div>
17
- </div>
18
- <div class="title_time">{{ dateData.time }}</div>
19
- <div style="font-size: x-large;margin-left: 1%">|</div>
20
- <div class="title_refresh" @click="refreshTitle"><a-icon type="undo" style="font-size: x-large;"/></div>
21
- <div class="title_refresh_box">
22
- <div class="title_refresh_time">{{ dateData.refreshTime }}</div>
23
- <div class="latest_update_time">最新更新时间</div>
24
- </div>
25
- </a-col>
26
- </a-row>
27
- </template>
28
-
29
- <script>
30
-
31
- export default {
32
- name: 'TitleComponent',
33
- components: {},
34
- data () {
35
- return {
36
- dateData: {
37
- date: '',
38
- dayOfWeek: '',
39
- time: '',
40
- refreshTime: ''
41
- },
42
- timer: null
43
- }
44
- },
45
- props: {
46
- requiredParameters: {
47
- type: Object,
48
- default: () => ({
49
- title: '',
50
- backgroundColor: '',
51
- height: ''
52
- }),
53
- }
54
- },
55
- created () {
56
- this.updateDateData()
57
- this.startTimer()
58
- },
59
- beforeDestroy () {
60
- this.stopTimer()
61
- },
62
- methods: {
63
- // 刷新页面
64
- refreshTitle () {
65
- this.$forceUpdate()
66
- const now = new Date()
67
- this.dateData.refreshTime = now.toLocaleTimeString()
68
- this.$emit('refreshTitle')
69
- },
70
- updateDateData () {
71
- const now = new Date()
72
- const options = { weekday: 'long' }
73
- this.dateData.date = this.formatDate(now)
74
- this.dateData.time = this.formatTime(now)
75
- this.dateData.dayOfWeek = now.toLocaleDateString(undefined, options)
76
- this.dateData.refreshTime = now.toLocaleTimeString()
77
- },
78
- formatDate (date) {
79
- const month = date.getMonth() + 1
80
- const day = date.getDate()
81
- return `${month}月${day}日`
82
- },
83
- formatTime (date) {
84
- const hours = String(date.getHours()).padStart(2, '0')
85
- const minutes = String(date.getMinutes()).padStart(2, '0')
86
- return `${hours}:${minutes}`
87
- },
88
- startTimer () {
89
- this.timer = setInterval(() => {
90
- const now = new Date()
91
- this.dateData.time = this.formatTime(now)
92
- }, 10000) // 每秒更新一次
93
- },
94
- stopTimer () {
95
- if (this.timer) {
96
- clearInterval(this.timer)
97
- this.timer = null
98
- }
99
- }
100
- }
101
- }
102
- </script>
103
-
104
- <style scoped>
105
- .title_box {
106
- width: 100%;
107
- min-height:42px;
108
- }
109
- .title_col_left {
110
- height: 100%;
111
- color: white;
112
- display: flex;
113
- align-content: center;
114
- align-items: center;
115
- }
116
- .title_col_right {
117
- height: 100%;
118
- color: white;
119
- display: flex;
120
- align-content: center;
121
- align-items: center;
122
- justify-content: flex-end;
123
- }
124
- .title_img_box {
125
- height: 80%;
126
- width: auto;
127
- margin-left: 1%;
128
- border-radius: 50%;
129
- background-color: #35baf6;
130
- }
131
- .title_img{
132
- width: 100%;
133
- height: 100%;
134
- }
135
- .title_name {
136
- font-size: medium !important;
137
- font-weight: bold;
138
- margin-left: 1%;
139
- }
140
- .title_date_box{
141
- width: 20%;
142
- height: 100%;
143
- display: flex;
144
- flex-direction: column;
145
- justify-content: center;
146
- }
147
- .title_data{
148
- display: flex;
149
- justify-content: center;
150
- align-items: center;
151
- font-size: smaller;
152
- }
153
- .title_week{
154
- display: flex;
155
- justify-content: center;
156
- align-items: center;
157
- font-size: smaller;
158
- }
159
- .title_time{
160
- font-size: x-large;
161
- }
162
- .title_refresh{
163
- margin-left: 1%;
164
- height: 100%;
165
- align-content: center;
166
- align-items: center;
167
- cursor: pointer;
168
- display: flex;
169
- width: 7%;
170
- justify-content: center;
171
- min-width: 31px;
172
- }
173
- .title_refresh:hover{
174
- background-color: rgb(31, 138, 137);
175
- }
176
- .title_refresh:active{
177
- background-color: rgb(26, 129, 128);
178
- }
179
- .title_refresh_box{
180
- margin-right: 1%;
181
- }
182
- .latest_update_time{
183
- font-size: x-small;
184
- }
185
- .title_refresh_time{
186
- display: flex;
187
- font-size: x-small;
188
- align-content: center;
189
- justify-content: center;
190
- }
191
- </style>