vue2-client 1.15.93 → 1.15.96

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 (147) hide show
  1. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +0 -6
  2. package/package.json +1 -1
  3. package/src/base-client/components/common/XFormTable/demo.vue +2 -2
  4. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +2 -52
  5. package/src/base-client/components/his/XImportExcelButton/XFrontImportExcel.vue +11 -7
  6. package/src/base-client/components/his/XImportExcelButton/XFrontImportExcelDemo.vue +1 -1
  7. package/src/base-client/components/his/XList/XList.vue +1 -1
  8. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  9. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  10. package/src/layouts/BlankView.vue +5 -3
  11. package/src/pages/WorkflowDetail/WorkflowDetail.vue +5 -5
  12. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +1 -1
  13. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +1 -1
  14. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +4 -4
  15. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +1 -1
  16. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +2 -6
  17. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +2 -2
  18. package/src/router/async/router.map.js +2 -1
  19. package/src/utils/routerUtil.js +16 -2
  20. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  21. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  22. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  23. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  24. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  25. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +0 -207
  26. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +0 -211
  27. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +0 -212
  28. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +0 -212
  29. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  30. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  31. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  32. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  33. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  34. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  35. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +0 -731
  36. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +0 -748
  37. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +0 -748
  38. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +0 -1071
  39. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +0 -1078
  40. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +0 -1077
  41. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +0 -1077
  42. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +0 -1077
  43. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +0 -442
  44. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +0 -442
  45. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +0 -442
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +0 -475
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +0 -475
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +0 -475
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +0 -477
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +0 -477
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +0 -477
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +0 -473
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +0 -473
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +0 -473
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +0 -473
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +0 -473
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +0 -473
  58. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +0 -473
  59. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +0 -473
  60. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +0 -473
  61. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +0 -473
  62. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +0 -474
  63. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +0 -474
  64. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +0 -474
  65. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +0 -472
  66. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +0 -472
  67. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +0 -472
  68. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +0 -472
  69. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +0 -472
  70. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +0 -472
  71. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +0 -501
  72. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +0 -501
  73. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +0 -501
  74. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +0 -504
  75. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +0 -504
  76. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +0 -504
  77. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +0 -131
  78. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +0 -160
  79. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +0 -160
  80. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +0 -160
  81. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +0 -158
  82. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +0 -173
  83. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +0 -222
  84. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +0 -229
  85. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +0 -229
  86. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +0 -229
  87. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +0 -241
  88. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +0 -241
  89. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +0 -241
  90. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +0 -245
  91. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +0 -245
  92. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +0 -245
  93. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +0 -255
  94. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +0 -255
  95. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +0 -255
  96. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +0 -270
  97. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +0 -270
  98. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +0 -270
  99. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +0 -270
  100. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +0 -294
  101. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +0 -294
  102. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +0 -294
  103. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +0 -303
  104. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +0 -303
  105. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +0 -303
  106. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +0 -288
  107. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +0 -288
  108. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +0 -288
  109. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +0 -317
  110. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +0 -306
  111. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +0 -306
  112. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +0 -306
  113. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +0 -495
  114. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +0 -495
  115. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +0 -494
  116. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +0 -494
  117. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +0 -494
  118. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +0 -495
  119. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +0 -495
  120. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +0 -492
  121. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +0 -492
  122. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +0 -485
  123. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +0 -485
  124. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +0 -488
  125. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250609151519.vue +0 -222
  126. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155514.vue +0 -183
  127. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155556.vue +0 -183
  128. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155600.vue +0 -183
  129. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181609.vue +0 -206
  130. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181629.vue +0 -209
  131. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095553.vue +0 -242
  132. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095610.vue +0 -242
  133. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095612.vue +0 -242
  134. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100041.vue +0 -251
  135. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100047.vue +0 -251
  136. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100054.vue +0 -250
  137. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100105.vue +0 -250
  138. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100107.vue +0 -250
  139. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100114.vue +0 -250
  140. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140844.vue +0 -238
  141. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140910.vue +0 -238
  142. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140912.vue +0 -238
  143. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
  144. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  145. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  146. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
  147. package/src/base-client/components/his/XHisEditor/dome.vue +0 -144
@@ -1,238 +0,0 @@
1
- <template>
2
- <a-table
3
- :columns="columns"
4
- :data-source="data"
5
- :rowSelection="rowSelection"
6
- :scroll="{ y: '70vh' }">
7
- <span slot="time" class="time-title">
8
- <span v-for="(item, index) in configData.timePeriod" :key="index">{{ item }}</span>
9
- </span>
10
- <div v-for="(item, index) in weekDays" :key="index" :slot="item.key" class="week_last_next_btn">
11
- <a-button slot="lastWeek" icon="left" size="large" @click="handleLastWeek" v-if="item.title == '周一'" />
12
- <div class="time-title">
13
- <span>{{item.title}}</span>
14
- <span>{{ currentWeekDates[index].toLocaleDateString() }}</span>
15
- </div>
16
- <a-button slot="nextWeek" icon="right" size="large" @click="handleNextWeek" v-if="item.title == '周日'"/>
17
- </div>
18
- <template :slot="day.key" slot-scope="text, record" v-for="day in shiftTable">
19
- <div class="time-title" :key="day.key">
20
- <a-button v-for="(item, index) in record[day.key]" :key="index" @click="handleShiftChange(day.key, index, record)">{{ item === 1 || item === '1' ? '坐诊' : '休息' }}</a-button>
21
- </div>
22
- </template>
23
- <template slot="sk_limit" slot-scope="text, record">
24
- <a-input-number id="inputNumber" v-model="record.sk_limit" :min="configData.sk_limitMin" :max="configData.sk_limitMax" />
25
- </template>
26
- </a-table>
27
- </template>
28
- <script>
29
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
30
-
31
- export default {
32
- data () {
33
- return {
34
- data: [],
35
- // 列配置
36
- columns: [],
37
- // 列名
38
- columnNames: [],
39
- // 选中的行键值集合
40
- selectedRows: [],
41
- // 选中的行信息集合
42
- selectedRowKeys: [],
43
- // 原始数据备份
44
- originalData: [],
45
- // 配置参数
46
- configData: {},
47
- // 当前显示的周次日期
48
- currentWeekDates: [],
49
- weekDays: [...['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map((title, index) => {
50
- const key = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][index]
51
- return { title, key }
52
- })],
53
- // 排班时间表
54
- shiftTable: [...['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map((title, index) => {
55
- const key = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][index]
56
- return {
57
- key, dataIndex: key, scopedSlots: { customRender: key }, slots: { title: key }, align: 'center', width: key === 'Monday' || key === 'Sunday' ? 150 : 120
58
- }
59
- }),
60
- {
61
- title: '排班数',
62
- key: 'sk_limit',
63
- dataIndex: 'sk_limit',
64
- scopedSlots: { customRender: 'sk_limit' },
65
- align: 'center'
66
- }
67
- ]
68
- }
69
- },
70
- props: {
71
- // 配置名
72
- queryParamsName: {
73
- type: String,
74
- default: ''
75
- },
76
- // 服务名
77
- serviceName: {
78
- type: String,
79
- default: 'af-his'
80
- }
81
- },
82
- computed: {
83
- rowSelection () {
84
- return {
85
- selectedRowKeys: this.selectedRowKeys,
86
- onChange: (selectedRowKeys, selectedRows) => {
87
- this.onSelectChange(selectedRowKeys, selectedRows)
88
- }
89
- }
90
- }
91
- },
92
- mounted () {
93
- this.initWeekDates()
94
- },
95
- methods: {
96
- handleShiftChange (day, index, record) {
97
- // 找到当前记录在data中的索引
98
- const dataIndex = this.data.findIndex(item => item.id === record.id)
99
- if (dataIndex === -1) return
100
- // 获取当前状态
101
- const currentValue = record[day][index]
102
- const newValue = currentValue === 1 || currentValue === '1' ? 0 : 1
103
- // 更新按钮显示
104
- this.$set(record[day], index, newValue)
105
- // 同步更新data中的数据
106
- this.$set(this.data[dataIndex][day], index, newValue)
107
- },
108
- onSelectChange (selectedRowKeys, selectedRows) {
109
- this.selectedRowKeys = selectedRowKeys
110
- this.selectedRows = selectedRows
111
- },
112
- // 获取选中的行数据
113
- getSelectedRowData () {
114
- return this.selectedRows
115
- },
116
- // 获取全部数据
117
- getAllTable () {
118
- return this.data
119
- },
120
- // 初始化数据
121
- async init (queryParamsName) {
122
- getConfigByName(queryParamsName, this.serviceName, result => {
123
- this.configData = result
124
- runLogic(result.dataSource, {}, this.serviceName).then(res => {
125
- this.columns = []
126
- this.columns = JSON.parse(JSON.stringify(this.configData.columns))
127
- for (let i = 0; i < this.shiftTable.length; i++) {
128
- this.columns.push(this.shiftTable[i])
129
- }
130
- if (res && Array.isArray(res)) {
131
- const weekDays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
132
- const shifts = ['am', 'pm', 'evening']
133
- let key = 0
134
- this.data = res.map(item => {
135
- const scheduleData = {
136
- key: key++
137
- }
138
- this.configData.columnsName.forEach(columnName => { scheduleData[columnName] = item[columnName] })
139
- weekDays.forEach(day => {
140
- scheduleData[day.charAt(0).toUpperCase() + day.slice(1)] = shifts.map(shift => item[`f_${day}_${shift}`] === '1' ? 1 : 0)
141
- })
142
- return scheduleData
143
- })
144
- // 保存原始数据
145
- this.originalData = JSON.parse(JSON.stringify(this.data))
146
- }
147
- })
148
- })
149
- },
150
- // 查询数据函数
151
- filterTableData (filters) {
152
- if (!filters || Object.keys(filters).length === 0) {
153
- // 如果没有过滤条件,恢复原始数据
154
- this.data = JSON.parse(JSON.stringify(this.originalData))
155
- return
156
- }
157
- // 从原始数据开始过滤
158
- this.data = this.originalData.filter(item => {
159
- // 检查每一项是否满足所有过滤条件
160
- return Object.entries(filters).every(([key, value]) => {
161
- // 如果过滤值是字符串,进行模糊匹配
162
- if (typeof value === 'string') {
163
- return item[key] && item[key].toString().toLowerCase().includes(value.toLowerCase())
164
- }
165
- // 如果过滤值是数字,进行精确匹配
166
- return item[key] === value
167
- })
168
- })
169
- },
170
- // 初始化周次日期
171
- initWeekDates () {
172
- const today = new Date()
173
- const currentDay = today.getDay() || 7 // 将周日的0转换为7
174
- const monday = new Date(today)
175
- monday.setDate(today.getDate() - currentDay + 1) // 设置为本周一
176
-
177
- this.currentWeekDates = Array.from({ length: 7 }, (_, index) => {
178
- const date = new Date(monday)
179
- date.setDate(monday.getDate() + index)
180
- return date
181
- })
182
- },
183
- // 切换到上一周
184
- handleLastWeek () {
185
- const monday = new Date(this.currentWeekDates[0])
186
- monday.setDate(monday.getDate() - 7)
187
- this.updateWeekDates(monday)
188
- },
189
- // 切换到下一周
190
- handleNextWeek () {
191
- const monday = new Date(this.currentWeekDates[0])
192
- monday.setDate(monday.getDate() + 7)
193
- this.updateWeekDates(monday)
194
- },
195
- // 更新周次日期
196
- updateWeekDates (monday) {
197
- this.currentWeekDates = Array.from({ length: 7 }, (_, index) => {
198
- const date = new Date(monday)
199
- date.setDate(monday.getDate() + index)
200
- return date
201
- })
202
- }
203
- },
204
- watch: {
205
- queryParamsName: {
206
- handler (newValue) {
207
- this.init(newValue)
208
- },
209
- deep: true,
210
- immediate: true
211
- }
212
- }
213
- }
214
- </script>
215
-
216
- <style scoped>
217
- .time-title {
218
- display: flex !important;
219
- flex-direction: column !important;
220
- align-items: center !important;
221
- gap: 12px !important;
222
- }
223
- .week_last_next_btn {
224
- display: flex;
225
- flex-direction: row;
226
- align-items: center;
227
- justify-content: center;
228
- gap: 8px;
229
- }
230
- ::v-deep .ant-table-thead > tr > th,
231
- ::v-deep .ant-table-tbody > tr > td {
232
- padding: 8px 16px !important;
233
- overflow-wrap: break-word;
234
- }
235
- ::v-deep .ant-btn {
236
- margin: 4px 0;
237
- }
238
- </style>
@@ -1,238 +0,0 @@
1
- <template>
2
- <a-table
3
- :columns="columns"
4
- :data-source="data"
5
- :rowSelection="rowSelection"
6
- :scroll="{ y: '70vh' }">
7
- <span slot="time" class="time-title">
8
- <span v-for="(item, index) in configData.timePeriod" :key="index">{{ item }}</span>
9
- </span>
10
- <div v-for="(item, index) in weekDays" :key="index" :slot="item.key" class="week_last_next_btn">
11
- <a-button slot="lastWeek" icon="left" size="large" @click="handleLastWeek" v-if="item.title == '周一'" />
12
- <div class="time-title">
13
- <span>{{item.title}}</span>
14
- <span>{{ currentWeekDates[index].toLocaleDateString() }}</span>
15
- </div>
16
- <a-button slot="nextWeek" icon="right" size="large" @click="handleNextWeek" v-if="item.title == '周日'"/>
17
- </div>
18
- <template :slot="day.key" slot-scope="text, record" v-for="day in shiftTable">
19
- <div class="time-title" :key="day.key">
20
- <a-button v-for="(item, index) in record[day.key]" :key="index" @click="handleShiftChange(day.key, index, record)">{{ item === 1 || item === '1' ? '坐诊' : '休息' }}</a-button>
21
- </div>
22
- </template>
23
- <template slot="sk_limit" slot-scope="text, record">
24
- <a-input-number id="inputNumber" v-model="record.sk_limit" :min="configData.sk_limitMin" :max="configData.sk_limitMax" />
25
- </template>
26
- </a-table>
27
- </template>
28
- <script>
29
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
30
-
31
- export default {
32
- data () {
33
- return {
34
- data: [],
35
- // 列配置
36
- columns: [],
37
- // 列名
38
- columnNames: [],
39
- // 选中的行键值集合
40
- selectedRows: [],
41
- // 选中的行信息集合
42
- selectedRowKeys: [],
43
- // 原始数据备份
44
- originalData: [],
45
- // 配置参数
46
- configData: {},
47
- // 当前显示的周次日期
48
- currentWeekDates: [],
49
- weekDays: [...['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map((title, index) => {
50
- const key = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][index]
51
- return { title, key }
52
- })],
53
- // 排班时间表
54
- shiftTable: [...['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map((title, index) => {
55
- const key = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][index]
56
- return {
57
- key, dataIndex: key, scopedSlots: { customRender: key }, slots: { title: key }, align: 'center', width: key === 'Monday' || key === 'Sunday' ? 150 : 120
58
- }
59
- }),
60
- {
61
- title: '排班数',
62
- key: 'sk_limit',
63
- dataIndex: 'sk_limit',
64
- scopedSlots: { customRender: 'sk_limit' },
65
- align: 'center'
66
- }
67
- ]
68
- }
69
- },
70
- props: {
71
- // 配置名
72
- queryParamsName: {
73
- type: String,
74
- default: ''
75
- },
76
- // 服务名
77
- serviceName: {
78
- type: String,
79
- default: 'af-his'
80
- }
81
- },
82
- computed: {
83
- rowSelection () {
84
- return {
85
- selectedRowKeys: this.selectedRowKeys,
86
- onChange: (selectedRowKeys, selectedRows) => {
87
- this.onSelectChange(selectedRowKeys, selectedRows)
88
- }
89
- }
90
- }
91
- },
92
- mounted () {
93
- this.initWeekDates()
94
- },
95
- methods: {
96
- handleShiftChange (day, index, record) {
97
- // 找到当前记录在data中的索引
98
- const dataIndex = this.data.findIndex(item => item.id === record.id)
99
- if (dataIndex === -1) return
100
- // 获取当前状态
101
- const currentValue = record[day][index]
102
- const newValue = currentValue === 1 || currentValue === '1' ? 0 : 1
103
- // 更新按钮显示
104
- this.$set(record[day], index, newValue)
105
- // 同步更新data中的数据
106
- this.$set(this.data[dataIndex][day], index, newValue)
107
- },
108
- onSelectChange (selectedRowKeys, selectedRows) {
109
- this.selectedRowKeys = selectedRowKeys
110
- this.selectedRows = selectedRows
111
- },
112
- // 获取选中的行数据
113
- getSelectedRowData () {
114
- return this.selectedRows
115
- },
116
- // 获取全部数据
117
- getAllTable () {
118
- return this.data
119
- },
120
- // 初始化数据
121
- async init (queryParamsName) {
122
- getConfigByName(queryParamsName, this.serviceName, result => {
123
- this.configData = result
124
- runLogic(result.dataSource, {}, this.serviceName).then(res => {
125
- this.columns = []
126
- this.columns = JSON.parse(JSON.stringify(this.configData.columns))
127
- for (let i = 0; i < this.shiftTable.length; i++) {
128
- this.columns.push(this.shiftTable[i])
129
- }
130
- if (res && Array.isArray(res)) {
131
- const weekDays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
132
- const shifts = ['am', 'pm', 'evening']
133
- let key = 0
134
- this.data = res.map(item => {
135
- const scheduleData = {
136
- key: key++
137
- }
138
- this.configData.columnsName.forEach(columnName => { scheduleData[columnName] = item[columnName] })
139
- weekDays.forEach(day => {
140
- scheduleData[day.charAt(0).toUpperCase() + day.slice(1)] = shifts.map(shift => item[`f_${day}_${shift}`] === '1' ? 1 : 0)
141
- })
142
- return scheduleData
143
- })
144
- // 保存原始数据
145
- this.originalData = JSON.parse(JSON.stringify(this.data))
146
- }
147
- })
148
- })
149
- },
150
- // 查询数据函数
151
- filterTableData (filters) {
152
- if (!filters || Object.keys(filters).length === 0) {
153
- // 如果没有过滤条件,恢复原始数据
154
- this.data = JSON.parse(JSON.stringify(this.originalData))
155
- return
156
- }
157
- // 从原始数据开始过滤
158
- this.data = this.originalData.filter(item => {
159
- // 检查每一项是否满足所有过滤条件
160
- return Object.entries(filters).every(([key, value]) => {
161
- // 如果过滤值是字符串,进行模糊匹配
162
- if (typeof value === 'string') {
163
- return item[key] && item[key].toString().toLowerCase().includes(value.toLowerCase())
164
- }
165
- // 如果过滤值是数字,进行精确匹配
166
- return item[key] === value
167
- })
168
- })
169
- },
170
- // 初始化周次日期
171
- initWeekDates () {
172
- const today = new Date()
173
- const currentDay = today.getDay() || 7 // 将周日的0转换为7
174
- const monday = new Date(today)
175
- monday.setDate(today.getDate() - currentDay + 1) // 设置为本周一
176
-
177
- this.currentWeekDates = Array.from({ length: 7 }, (_, index) => {
178
- const date = new Date(monday)
179
- date.setDate(monday.getDate() + index)
180
- return date
181
- })
182
- },
183
- // 切换到上一周
184
- handleLastWeek () {
185
- const monday = new Date(this.currentWeekDates[0])
186
- monday.setDate(monday.getDate() - 7)
187
- this.updateWeekDates(monday)
188
- },
189
- // 切换到下一周
190
- handleNextWeek () {
191
- const monday = new Date(this.currentWeekDates[0])
192
- monday.setDate(monday.getDate() + 7)
193
- this.updateWeekDates(monday)
194
- },
195
- // 更新周次日期
196
- updateWeekDates (monday) {
197
- this.currentWeekDates = Array.from({ length: 7 }, (_, index) => {
198
- const date = new Date(monday)
199
- date.setDate(monday.getDate() + index)
200
- return date
201
- })
202
- }
203
- },
204
- watch: {
205
- queryParamsName: {
206
- handler (newValue) {
207
- this.init(newValue)
208
- },
209
- deep: true,
210
- immediate: true
211
- }
212
- }
213
- }
214
- </script>
215
-
216
- <style scoped>
217
- .time-title {
218
- display: flex !important;
219
- flex-direction: column !important;
220
- align-items: center !important;
221
- gap: 12px !important;
222
- }
223
- .week_last_next_btn {
224
- display: flex;
225
- flex-direction: row;
226
- align-items: center;
227
- justify-content: center;
228
- gap: 8px;
229
- }
230
- ::v-deep .ant-table-thead > tr > th,
231
- ::v-deep .ant-table-tbody > tr > td {
232
- padding: 8px 16px !important;
233
- overflow-wrap: break-word;
234
- }
235
- ::v-deep .ant-btn {
236
- margin: 4px 0;
237
- }
238
- </style>