vue2-client 1.14.35 → 1.14.37
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.
- package/package.json +1 -1
- package/src/base-client/components/common/XDescriptions/XDescriptions.vue +174 -174
- package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +314 -314
- package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
- package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
- package/src/base-client/components/his/XTreeRows/TreeNode.vue +100 -100
- package/src/base-client/components/his/XTreeRows/XTreeRows.vue +197 -197
- package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
- package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +386 -386
- package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
- package/src/config/CreateQueryConfig.js +325 -325
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +101 -27
- package/src/pages/XTreeOneProExample/index.vue +67 -67
- package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +6 -11
- package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +6 -11
- package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +5 -10
- package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +6 -11
- package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +7 -11
- package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +6 -6
- package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +5 -10
- package/src/pages/userInfoDetailManage/uploadFilesHistory/index.vue +4 -14
- package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
- package/src/base-client/components/TreeList/TreeList.vue +0 -91
- package/src/base-client/components/TreeList/TreeNode.vue +0 -81
- package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
|
@@ -123,39 +123,54 @@
|
|
|
123
123
|
<div style="text-align: center">
|
|
124
124
|
<a-radio-group style="margin-top: 20px">
|
|
125
125
|
<a-space>
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
<p>{{ nextBtnTitle }}</p>
|
|
129
|
-
</template>
|
|
126
|
+
<!-- 动态按钮渲染 -->
|
|
127
|
+
<template v-if="buttonGroup && buttonGroup.actionArr">
|
|
130
128
|
<a-button
|
|
131
|
-
v-
|
|
132
|
-
:
|
|
133
|
-
|
|
134
|
-
|
|
129
|
+
v-for="(button, index) in buttonGroup.actionArr"
|
|
130
|
+
:key="index"
|
|
131
|
+
v-show="checkButtonVisible(button)"
|
|
132
|
+
:type="button.type ? button.type : 'default'"
|
|
133
|
+
@click="handleCustomButtonClick(button)"
|
|
135
134
|
>
|
|
136
|
-
|
|
137
|
-
<a-icon type="right"/>
|
|
135
|
+
{{ button.text }}
|
|
138
136
|
</a-button>
|
|
139
|
-
</
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
</template>
|
|
138
|
+
<!-- 原有的按钮逻辑 -->
|
|
139
|
+
<template>
|
|
140
|
+
<a-popover v-if="operationType === 'submit'">
|
|
141
|
+
<template slot="content">
|
|
142
|
+
<p>{{ nextBtnTitle }}</p>
|
|
143
|
+
</template>
|
|
144
|
+
<a-button
|
|
145
|
+
v-show="!lastStep"
|
|
146
|
+
:disabled="!showNextBtn && !stepDone"
|
|
147
|
+
type="primary"
|
|
148
|
+
@click="nextClick"
|
|
149
|
+
>
|
|
150
|
+
提交
|
|
151
|
+
<a-icon type="right"/>
|
|
152
|
+
</a-button>
|
|
153
|
+
</a-popover>
|
|
154
|
+
<a-popover v-else :title="stepNextBtnTitle">
|
|
155
|
+
<template slot="content">
|
|
156
|
+
<p v-for="(item,index) in stepNextBtnText" :key="index">{{ item }}</p>
|
|
157
|
+
</template>
|
|
158
|
+
<a-button
|
|
159
|
+
v-if="showStepNextBtn && !lastStep"
|
|
160
|
+
type="primary"
|
|
161
|
+
@click="stepNextClick"
|
|
162
|
+
>
|
|
163
|
+
跳跃
|
|
164
|
+
</a-button>
|
|
165
|
+
</a-popover>
|
|
144
166
|
<a-button
|
|
145
|
-
v-
|
|
167
|
+
v-show="lastStep"
|
|
146
168
|
type="primary"
|
|
147
|
-
@click="
|
|
169
|
+
@click="lastStepNextClick"
|
|
148
170
|
>
|
|
149
|
-
|
|
171
|
+
确认完工
|
|
150
172
|
</a-button>
|
|
151
|
-
</
|
|
152
|
-
<a-button
|
|
153
|
-
v-show="lastStep"
|
|
154
|
-
type="primary"
|
|
155
|
-
@click="lastStepNextClick"
|
|
156
|
-
>
|
|
157
|
-
确认完工
|
|
158
|
-
</a-button>
|
|
173
|
+
</template>
|
|
159
174
|
</a-space>
|
|
160
175
|
</a-radio-group>
|
|
161
176
|
</div>
|
|
@@ -220,6 +235,9 @@ import WorkFlowTimeline from './WorkFlowTimeline.vue'
|
|
|
220
235
|
import { FileItem, ImageItem } from '@vue2-client/components/FileImageItem'
|
|
221
236
|
import WorkflowListResolution from './WorkflowListResolution'
|
|
222
237
|
import { commonApi } from '@vue2-client/services/api'
|
|
238
|
+
import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
|
|
239
|
+
import * as util from '@vue2-client/utils/util'
|
|
240
|
+
import { getConfigByNameAsync, runLogic } from '@vue2-client/services/api/common'
|
|
223
241
|
|
|
224
242
|
export default {
|
|
225
243
|
name: 'WorkFlowHandle',
|
|
@@ -350,7 +368,9 @@ export default {
|
|
|
350
368
|
// 是否需要选择人员
|
|
351
369
|
needSelectPerson: true,
|
|
352
370
|
// 下一环节人员信息
|
|
353
|
-
chargePerson: {}
|
|
371
|
+
chargePerson: {},
|
|
372
|
+
// 动态按钮配置
|
|
373
|
+
buttonGroup: null
|
|
354
374
|
}
|
|
355
375
|
},
|
|
356
376
|
async mounted () {
|
|
@@ -410,6 +430,21 @@ export default {
|
|
|
410
430
|
this.formCompletedDataPreview = null
|
|
411
431
|
this.operationType = 'submit'
|
|
412
432
|
},
|
|
433
|
+
async showQueryFormItemFunc () {
|
|
434
|
+
if (this.attr.showQueryFormItemFunc) {
|
|
435
|
+
const obj = executeStrFunctionByContext(this, this.attr.showQueryFormItemFunc, [this.form, this.setForm, this.attr, util, this.mode])
|
|
436
|
+
// 判断是 bool 还是 obj 兼容
|
|
437
|
+
if (typeof obj === 'boolean') {
|
|
438
|
+
this.show = obj
|
|
439
|
+
} else if (obj && typeof obj === 'object') {
|
|
440
|
+
// obj 是一个对象,并且不是数组
|
|
441
|
+
this.show = obj?.show
|
|
442
|
+
this.readOnly = obj?.readOnly
|
|
443
|
+
}
|
|
444
|
+
} else {
|
|
445
|
+
this.show = true
|
|
446
|
+
}
|
|
447
|
+
},
|
|
413
448
|
// 获取单个步骤的定义
|
|
414
449
|
getSingleStepDefine (name) {
|
|
415
450
|
for (const step of this.stepsDefine) {
|
|
@@ -677,6 +712,13 @@ export default {
|
|
|
677
712
|
},
|
|
678
713
|
// 加载完成
|
|
679
714
|
resolveStep () {
|
|
715
|
+
// 获取当前步骤的按钮组配置
|
|
716
|
+
const currentStep = this.stepsDefine[this.currentStepId - 1]
|
|
717
|
+
if (currentStep && currentStep.properties && currentStep.properties.buttonGroup) {
|
|
718
|
+
this.buttonGroup = currentStep.properties.buttonGroup
|
|
719
|
+
} else {
|
|
720
|
+
this.buttonGroup = null
|
|
721
|
+
}
|
|
680
722
|
this.loading = false
|
|
681
723
|
},
|
|
682
724
|
// 流程图组件给当前组件传值用,stepNo为用户点击的非当前步骤
|
|
@@ -928,6 +970,38 @@ export default {
|
|
|
928
970
|
if (this.chargePersonOptions.length === 1) {
|
|
929
971
|
this.checkedChargePerson = this.chargePersonOptions[0].value
|
|
930
972
|
}
|
|
973
|
+
},
|
|
974
|
+
// 处理动态按钮点击
|
|
975
|
+
handleCustomButtonClick (button) {
|
|
976
|
+
try {
|
|
977
|
+
// 执行自定义函数
|
|
978
|
+
if (button.func) {
|
|
979
|
+
const result = executeStrFunctionByContext(this, button.func, [this.details, this.$refs.xAddForm.form, util, runLogic, getConfigByNameAsync])
|
|
980
|
+
if (result) {
|
|
981
|
+
// 如果返回true,执行对应的操作
|
|
982
|
+
if (button.text === '提交') {
|
|
983
|
+
this.nextClick()
|
|
984
|
+
} else if (button.text === '取消') {
|
|
985
|
+
this.$emit('cancel')
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
} catch (error) {
|
|
990
|
+
console.error('执行自定义按钮函数失败:', error)
|
|
991
|
+
this.$message.error('执行操作失败')
|
|
992
|
+
}
|
|
993
|
+
},
|
|
994
|
+
// 检查按钮是否显示
|
|
995
|
+
checkButtonVisible (button) {
|
|
996
|
+
try {
|
|
997
|
+
if (button.customFunction) {
|
|
998
|
+
return executeStrFunctionByContext(this, button.customFunction, [this.details, this.$refs.xAddForm.form, util, runLogic, getConfigByNameAsync])
|
|
999
|
+
}
|
|
1000
|
+
return true
|
|
1001
|
+
} catch (error) {
|
|
1002
|
+
console.error('执行按钮显示函数失败:', error)
|
|
1003
|
+
return false
|
|
1004
|
+
}
|
|
931
1005
|
}
|
|
932
1006
|
},
|
|
933
1007
|
watch: {}
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<x-tree-view ref="xTreeView" @itemChecked="itemChecked">
|
|
3
|
-
<x-add-native-form ref="nativeForm" />
|
|
4
|
-
</x-tree-view>
|
|
5
|
-
</template>
|
|
6
|
-
|
|
7
|
-
<script>
|
|
8
|
-
|
|
9
|
-
import XTreeView from '@vue2-client/base-client/components/layout/XTreeView'
|
|
10
|
-
import { mapState } from 'vuex'
|
|
11
|
-
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
|
12
|
-
import { getConfigByName } from '@vue2-client/services/api/common'
|
|
13
|
-
|
|
14
|
-
export default {
|
|
15
|
-
components: {
|
|
16
|
-
XAddNativeForm,
|
|
17
|
-
XTreeView,
|
|
18
|
-
},
|
|
19
|
-
data () {
|
|
20
|
-
return {
|
|
21
|
-
currentItem: undefined,
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
computed: {
|
|
25
|
-
...mapState('account', { currUser: 'user' }),
|
|
26
|
-
...mapState('setting', ['isMobile'])
|
|
27
|
-
},
|
|
28
|
-
mounted () {
|
|
29
|
-
this.initView()
|
|
30
|
-
},
|
|
31
|
-
methods: {
|
|
32
|
-
// 初始化组件
|
|
33
|
-
initView () {
|
|
34
|
-
this.$refs.xTreeView.init({
|
|
35
|
-
configName: 'templateTreeConfig',
|
|
36
|
-
serviceName: 'af-his',
|
|
37
|
-
env: 'dev',
|
|
38
|
-
})
|
|
39
|
-
},
|
|
40
|
-
itemChecked (node) {
|
|
41
|
-
this.currentItem = node
|
|
42
|
-
if (node.type === 'all' || node.type === 'folder') {
|
|
43
|
-
this.$refs.nativeForm.close()
|
|
44
|
-
return
|
|
45
|
-
}
|
|
46
|
-
getConfigByName('编辑模板数据Form', 'af-his', (res) => {
|
|
47
|
-
this.$refs.nativeForm.init({
|
|
48
|
-
serviceName: 'af-his',
|
|
49
|
-
formItems: res.formJson,
|
|
50
|
-
showSubmitBtn: false,
|
|
51
|
-
title: '收费',
|
|
52
|
-
businessType: '新增',
|
|
53
|
-
getDataParams: {
|
|
54
|
-
content: {
|
|
55
|
-
pms_patient_id: 1,
|
|
56
|
-
template_id: node.id
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
|
-
})
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
</script>
|
|
65
|
-
|
|
66
|
-
<style>
|
|
67
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<x-tree-view ref="xTreeView" @itemChecked="itemChecked">
|
|
3
|
+
<x-add-native-form ref="nativeForm" />
|
|
4
|
+
</x-tree-view>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script>
|
|
8
|
+
|
|
9
|
+
import XTreeView from '@vue2-client/base-client/components/layout/XTreeView'
|
|
10
|
+
import { mapState } from 'vuex'
|
|
11
|
+
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
|
12
|
+
import { getConfigByName } from '@vue2-client/services/api/common'
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
components: {
|
|
16
|
+
XAddNativeForm,
|
|
17
|
+
XTreeView,
|
|
18
|
+
},
|
|
19
|
+
data () {
|
|
20
|
+
return {
|
|
21
|
+
currentItem: undefined,
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
computed: {
|
|
25
|
+
...mapState('account', { currUser: 'user' }),
|
|
26
|
+
...mapState('setting', ['isMobile'])
|
|
27
|
+
},
|
|
28
|
+
mounted () {
|
|
29
|
+
this.initView()
|
|
30
|
+
},
|
|
31
|
+
methods: {
|
|
32
|
+
// 初始化组件
|
|
33
|
+
initView () {
|
|
34
|
+
this.$refs.xTreeView.init({
|
|
35
|
+
configName: 'templateTreeConfig',
|
|
36
|
+
serviceName: 'af-his',
|
|
37
|
+
env: 'dev',
|
|
38
|
+
})
|
|
39
|
+
},
|
|
40
|
+
itemChecked (node) {
|
|
41
|
+
this.currentItem = node
|
|
42
|
+
if (node.type === 'all' || node.type === 'folder') {
|
|
43
|
+
this.$refs.nativeForm.close()
|
|
44
|
+
return
|
|
45
|
+
}
|
|
46
|
+
getConfigByName('编辑模板数据Form', 'af-his', (res) => {
|
|
47
|
+
this.$refs.nativeForm.init({
|
|
48
|
+
serviceName: 'af-his',
|
|
49
|
+
formItems: res.formJson,
|
|
50
|
+
showSubmitBtn: false,
|
|
51
|
+
title: '收费',
|
|
52
|
+
businessType: '新增',
|
|
53
|
+
getDataParams: {
|
|
54
|
+
content: {
|
|
55
|
+
pms_patient_id: 1,
|
|
56
|
+
template_id: node.id
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
})
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
</script>
|
|
65
|
+
|
|
66
|
+
<style>
|
|
67
|
+
</style>
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
|
|
14
14
|
<script>
|
|
15
15
|
import { mapState } from 'vuex'
|
|
16
|
-
import { getConfigByName } from '@vue2-client/services/api/common'
|
|
17
16
|
|
|
18
17
|
export default {
|
|
19
18
|
name: 'FillCardRecordQuery',
|
|
@@ -39,16 +38,12 @@ export default {
|
|
|
39
38
|
}
|
|
40
39
|
},
|
|
41
40
|
created () {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.fixedQueryForm = { f_f_user_id: this.currUserInfo.f_user_id }
|
|
49
|
-
}
|
|
50
|
-
this.$refs.xFormTable.refresh(true)
|
|
51
|
-
})
|
|
41
|
+
this.fixedQueryForm = {
|
|
42
|
+
f_f_userfiles_id: this.currUserInfo.f_userfiles_id,
|
|
43
|
+
f_f_userinfo_id: this.currUserInfo.f_userinfo_id,
|
|
44
|
+
f_f_user_id: this.currUserInfo.f_user_id
|
|
45
|
+
}
|
|
46
|
+
this.$refs.xFormTable.refresh(true)
|
|
52
47
|
},
|
|
53
48
|
mounted () {
|
|
54
49
|
},
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
|
|
14
14
|
<script>
|
|
15
15
|
import { mapState } from 'vuex'
|
|
16
|
-
import { getConfigByName } from '@vue2-client/services/api/common'
|
|
17
16
|
|
|
18
17
|
export default {
|
|
19
18
|
name: 'FillGasRecordQuery',
|
|
@@ -39,16 +38,12 @@ export default {
|
|
|
39
38
|
}
|
|
40
39
|
},
|
|
41
40
|
mounted () {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.fixedQueryForm = { f_f_user_id: this.currUserInfo.f_user_id }
|
|
49
|
-
}
|
|
50
|
-
this.$refs.xFormTable.refresh(true)
|
|
51
|
-
})
|
|
41
|
+
this.fixedQueryForm = {
|
|
42
|
+
f_f_userfiles_id: this.currUserInfo.f_userfiles_id,
|
|
43
|
+
f_f_userinfo_id: this.currUserInfo.f_userinfo_id,
|
|
44
|
+
f_f_user_id: this.currUserInfo.f_user_id
|
|
45
|
+
}
|
|
46
|
+
this.$refs.xFormTable.refresh(true)
|
|
52
47
|
},
|
|
53
48
|
methods: {
|
|
54
49
|
action (record, id, actionType) {
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
|
|
14
14
|
<script>
|
|
15
15
|
import { mapState } from 'vuex'
|
|
16
|
-
import { getConfigByName } from '@vue2-client/services/api/common'
|
|
17
16
|
|
|
18
17
|
export default {
|
|
19
18
|
name: 'MachineUserRecordQuery',
|
|
@@ -39,15 +38,11 @@ export default {
|
|
|
39
38
|
}
|
|
40
39
|
},
|
|
41
40
|
mounted () {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
} else if (res.queryCondition === 'f_user_id') {
|
|
48
|
-
this.fixedQueryForm = { mr_f_user_id: this.currUserInfo.f_user_id }
|
|
49
|
-
}
|
|
50
|
-
})
|
|
41
|
+
this.fixedQueryForm = {
|
|
42
|
+
mr_f_userfiles_id: this.currUserInfo.f_userfiles_id,
|
|
43
|
+
mr_f_userinfo_id: this.currUserInfo.f_userinfo_id,
|
|
44
|
+
mr_f_user_id: this.currUserInfo.f_user_id
|
|
45
|
+
}
|
|
51
46
|
this.$refs.xFormTable.refresh(true)
|
|
52
47
|
},
|
|
53
48
|
methods: {
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
|
|
14
14
|
<script>
|
|
15
15
|
import { mapState } from 'vuex'
|
|
16
|
-
import { getConfigByName } from '@vue2-client/services/api/common'
|
|
17
16
|
|
|
18
17
|
export default {
|
|
19
18
|
name: 'OtherChargeRecordQuery',
|
|
@@ -39,16 +38,12 @@ export default {
|
|
|
39
38
|
}
|
|
40
39
|
},
|
|
41
40
|
mounted () {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.fixedQueryForm = { o_f_user_id: this.currUserInfo.f_user_id }
|
|
49
|
-
}
|
|
50
|
-
this.$refs.xFormTable.refresh(true)
|
|
51
|
-
})
|
|
41
|
+
this.fixedQueryForm = {
|
|
42
|
+
o_f_userfiles_id: this.currUserInfo.f_userfiles_id,
|
|
43
|
+
o_f_userinfo_id: this.currUserInfo.f_userinfo_id,
|
|
44
|
+
o_f_user_id: this.currUserInfo.f_user_id
|
|
45
|
+
}
|
|
46
|
+
this.$refs.xFormTable.refresh(true)
|
|
52
47
|
},
|
|
53
48
|
methods: {
|
|
54
49
|
action (record, id, actionType) {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
<script>
|
|
16
16
|
import { mapState } from 'vuex'
|
|
17
|
-
import {
|
|
17
|
+
import { getConfigByNameAsync } from '@vue2-client/services/api/common'
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
20
|
name: 'UserChargeRecordQuery',
|
|
@@ -46,16 +46,12 @@ export default {
|
|
|
46
46
|
} else {
|
|
47
47
|
this.queryParamsName = 'UserChargeRecordQueryCRUD'
|
|
48
48
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
this.fixedQueryForm = { uc_f_user_id: this.currUserInfo.f_user_id }
|
|
56
|
-
}
|
|
57
|
-
this.$refs.xFormTable.refresh(true)
|
|
58
|
-
})
|
|
49
|
+
this.fixedQueryForm = {
|
|
50
|
+
uc_f_userfiles_id: this.currUserInfo.f_userfiles_id,
|
|
51
|
+
uc_f_userinfo_id: this.currUserInfo.f_userinfo_id,
|
|
52
|
+
uc_f_user_id: this.currUserInfo.f_user_id
|
|
53
|
+
}
|
|
54
|
+
this.$refs.xFormTable.refresh(true)
|
|
59
55
|
},
|
|
60
56
|
methods: {
|
|
61
57
|
async getBillUrl (type) {
|
|
@@ -41,6 +41,7 @@ export default {
|
|
|
41
41
|
mounted () {
|
|
42
42
|
getConfigByName('revenueConfig', 'af-revenue', (res) => {
|
|
43
43
|
console.log(res)
|
|
44
|
+
const queryCondition = res.handQueryCondition ? res.handQueryCondition : res.queryCondition
|
|
44
45
|
if (this.currUserInfo.f_meter_type === '物联网表') {
|
|
45
46
|
if (res.newHand) {
|
|
46
47
|
this.queryParamsName = 'WebUserHandRecordQueryCRUD'
|
|
@@ -52,12 +53,11 @@ export default {
|
|
|
52
53
|
} else {
|
|
53
54
|
this.queryParamsName = 'HandRecordQueryCRUD'
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
this.fixedQueryForm = { h_f_user_id: this.currUserInfo.f_user_id }
|
|
56
|
+
|
|
57
|
+
this.fixedQueryForm = {
|
|
58
|
+
h_f_userfiles_id: this.currUserInfo.f_userfiles_id,
|
|
59
|
+
h_f_userinfo_id: this.currUserInfo.f_userinfo_id,
|
|
60
|
+
h_f_user_id: this.currUserInfo.f_user_id
|
|
61
61
|
}
|
|
62
62
|
this.$refs.xFormTable.refresh(true)
|
|
63
63
|
})
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
|
|
14
14
|
<script>
|
|
15
15
|
import { mapState } from 'vuex'
|
|
16
|
-
import { getConfigByNameAsync } from '@vue2-client/services/api/common'
|
|
17
16
|
|
|
18
17
|
export default {
|
|
19
18
|
name: 'UserRecordQuery',
|
|
@@ -39,15 +38,11 @@ export default {
|
|
|
39
38
|
}
|
|
40
39
|
},
|
|
41
40
|
async mounted () {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
} else if (res.queryCondition === 'f_user_id') {
|
|
48
|
-
this.fixedQueryForm = { uc_f_user_id: this.currUserInfo.f_user_id }
|
|
49
|
-
}
|
|
50
|
-
})
|
|
41
|
+
this.fixedQueryForm = {
|
|
42
|
+
uc_f_userfiles_id: this.currUserInfo.f_userfiles_id,
|
|
43
|
+
uc_f_userinfo_id: this.currUserInfo.f_userinfo_id,
|
|
44
|
+
uc_f_user_id: this.currUserInfo.f_user_id
|
|
45
|
+
}
|
|
51
46
|
this.$refs.xFormTable.refresh(true)
|
|
52
47
|
},
|
|
53
48
|
methods: {
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
<script>
|
|
36
36
|
import { post } from '@vue2-client/services/api'
|
|
37
|
+
import { del } from '@vue2-client/services/api/restTools'
|
|
37
38
|
export default {
|
|
38
39
|
props: {
|
|
39
40
|
currUserInfo: {
|
|
@@ -53,22 +54,13 @@ export default {
|
|
|
53
54
|
methods: {
|
|
54
55
|
async getfusetypes () {
|
|
55
56
|
this.fusetypes = [{ label: '全部', value: '' }]
|
|
56
|
-
const res = await post('/api/af-revenue/
|
|
57
|
-
data: {
|
|
58
|
-
items: 'fusetype',
|
|
59
|
-
tablename: 't_files',
|
|
60
|
-
condition: `fusetype is not null GROUP BY fusetype`,
|
|
61
|
-
orderitem: 'fusetype'
|
|
62
|
-
}
|
|
63
|
-
})
|
|
57
|
+
const res = await post('/api/af-revenue/logic/getFileUseType', {})
|
|
64
58
|
this.fusetypes.push(...res.map(item => ({ label: item.fusetype, value: item.fusetype })))
|
|
65
|
-
console.log('123456', this.fusetypes)
|
|
66
59
|
},
|
|
67
60
|
async getFiles () {
|
|
68
|
-
console.log('999', this.currUserInfo)
|
|
69
61
|
if (!this.currUserInfo) return
|
|
70
62
|
this.files = []
|
|
71
|
-
let condition = `
|
|
63
|
+
let condition = `f_blobid = '${this.currUserInfo.f_userinfo_id}'`
|
|
72
64
|
if (this.upload_date) {
|
|
73
65
|
condition += ` and CONVERT(VARCHAR(100), f_uploaddate, 23) = '${this.upload_date}'`
|
|
74
66
|
}
|
|
@@ -76,15 +68,13 @@ export default {
|
|
|
76
68
|
condition += ` and fusetype = '${this.fusetype}'`
|
|
77
69
|
}
|
|
78
70
|
const res = await post('/api/af-revenue/logic/getAllFiles', { data: { condition } })
|
|
79
|
-
console.log('7777', res)
|
|
80
|
-
console.log('7777', res.days)
|
|
81
71
|
this.files = res.days.map(day => ({
|
|
82
72
|
days: day.uploadday,
|
|
83
73
|
arrays: res.array.filter(file => file.uploadday === day.uploadday)
|
|
84
74
|
}))
|
|
85
75
|
},
|
|
86
76
|
async delet (fileId) {
|
|
87
|
-
await
|
|
77
|
+
await del('api/af-revenue/entity/save/t_files', { id: fileId }, { resolveMsg: '删除成功', rejectMsg: '删除失败' })
|
|
88
78
|
this.getFiles()
|
|
89
79
|
},
|
|
90
80
|
selfSearch () {
|
|
@@ -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>
|