vue2-client 1.22.4 → 1.22.6
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/.claude/settings.local.json +30 -30
- package/.eslintrc.js +74 -74
- package/.idea/MarsCodeWorkspaceAppSettings.xml +1 -2
- package/.idea/google-java-format.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +18 -0
- package/.idea/jsLinters/eslint.xml +6 -0
- package/.idea/modules.xml +1 -1
- package/.idea/vue2-client.iml +12 -0
- package/.vscode/settings.json +28 -0
- package/Components.md +60 -60
- package/index.js +31 -31
- package/jest-transform-stub.js +8 -8
- package/jest.setup.js +7 -7
- package/package.json +1 -1
- package/src/assets/img/querySlotDemo.svg +15 -15
- package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
- package/src/base-client/components/common/CitySelect/index.js +3 -3
- package/src/base-client/components/common/CitySelect/index.md +109 -109
- package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
- package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
- package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
- package/src/base-client/components/common/PersonSetting/index.js +3 -3
- package/src/base-client/components/common/Tree/index.js +2 -2
- package/src/base-client/components/common/Upload/index.js +3 -3
- package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
- package/src/base-client/components/common/XCard/XCard.vue +64 -64
- package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
- package/src/base-client/components/common/XDataDrawer/index.js +3 -3
- package/src/base-client/components/common/XDataDrawer/index.md +41 -41
- package/src/base-client/components/common/XDescriptions/index.js +3 -3
- package/src/base-client/components/common/XDescriptions/index.md +382 -382
- package/src/base-client/components/common/XForm/index.md +178 -178
- package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
- package/src/base-client/components/common/XStepView/index.js +3 -3
- package/src/base-client/components/common/XStepView/index.md +31 -31
- package/src/base-client/components/common/XTable/index.md +255 -255
- package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
- package/src/base-client/plugins/Config.js +19 -19
- package/src/base-client/plugins/tabs-page-plugin.js +39 -39
- package/src/components/Charts/Bar.vue +62 -62
- package/src/components/Charts/ChartCard.vue +134 -134
- package/src/components/Charts/Liquid.vue +67 -67
- package/src/components/Charts/MiniArea.vue +39 -39
- package/src/components/Charts/MiniBar.vue +39 -39
- package/src/components/Charts/MiniProgress.vue +75 -75
- package/src/components/Charts/MiniSmoothArea.vue +40 -40
- package/src/components/Charts/Radar.vue +68 -68
- package/src/components/Charts/RankList.vue +77 -77
- package/src/components/Charts/TagCloud.vue +113 -113
- package/src/components/Charts/TransferBar.vue +64 -64
- package/src/components/Charts/Trend.vue +82 -82
- package/src/components/Charts/chart.less +12 -12
- package/src/components/Charts/smooth.area.less +13 -13
- package/src/components/NumberInfo/NumberInfo.vue +54 -54
- package/src/components/NumberInfo/index.js +3 -3
- package/src/components/NumberInfo/index.less +54 -54
- package/src/components/NumberInfo/index.md +43 -43
- package/src/components/STable/index.js +953 -953
- package/src/components/card/ChartCard.vue +79 -79
- package/src/components/chart/Bar.vue +60 -60
- package/src/components/chart/MiniArea.vue +67 -67
- package/src/components/chart/MiniBar.vue +59 -59
- package/src/components/chart/MiniProgress.vue +57 -57
- package/src/components/chart/Radar.vue +80 -80
- package/src/components/chart/RankingList.vue +60 -60
- package/src/components/chart/Trend.vue +79 -79
- package/src/components/chart/index.less +9 -9
- package/src/components/checkbox/ColorCheckbox.vue +157 -157
- package/src/components/input/IInput.vue +66 -66
- package/src/components/menu/SideMenu.vue +75 -75
- package/src/components/menu/menu.js +273 -273
- package/src/components/tool/AStepItem.vue +60 -60
- package/src/layouts/CommonLayout.vue +56 -56
- package/src/lib.js +1 -1
- package/src/mock/extend/index.js +84 -84
- package/src/mock/goods/index.js +108 -108
- package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
- package/src/pages/login/Login.vue +9 -7
- package/src/pages/login/LoginV3.vue +9 -7
- package/src/pages/system/dictionary/index.vue +44 -44
- package/src/pages/system/monitor/loginInfor/index.vue +37 -37
- package/src/pages/system/monitor/operLog/index.vue +37 -37
- package/src/pages/userInfoDetailManage/ApplySystemQuery/index.vue +18 -15
- package/src/pages/userInfoDetailManage/ArchiveMaintainQuery/index.vue +9 -23
- package/src/pages/userInfoDetailManage/CallSystemQuery/index.vue +9 -23
- package/src/pages/userInfoDetailManage/HandplanSystemQuery/index.vue +32 -18
- package/src/pages/userInfoDetailManage/RevenueSystemQuery/index.vue +18 -45
- package/src/pages/userInfoDetailManage/SafeCheckSystemQuery/index.vue +9 -23
- package/src/pages/userInfoDetailManage/WorkOrderSystemQuery/index.vue +9 -22
- package/src/pages/userInfoDetailManage/index.vue +14 -2
- package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +289 -297
- package/src/services/api/cas.js +79 -79
- package/src/store/modules/setting.js +119 -119
- package/src/utils/errorCode.js +6 -6
- package/src/utils/login.js +8 -19
- package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
- package/.idea/.name +0 -1
- package/.idea/af-vue2-client.iml +0 -9
- package/.idea/deployment.xml +0 -14
- package/.idea/gradle.xml +0 -7
- package/.idea/libraries/contour_plot.xml +0 -9
- package/.idea/material_theme_project_new.xml +0 -18
- package/.idea/misc.xml +0 -88
- package/src/pages/userInfoDetailManage/ApplySystemQuery/applySystemConfig.js +0 -4
- package/src/pages/userInfoDetailManage/HandplanSystemQuery/handplanSystemConfig.js +0 -6
- package/src/pages/userInfoDetailManage/RevenueSystemQuery/revenueSystemConfig.js +0 -4
- package/src/pages/userInfoDetailManage/queryTabConfig.js +0 -353
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-if="currUserInfo" class="user-detail-apply">
|
|
3
3
|
<h4 class="user-detail-apply-title">
|
|
4
|
-
|
|
4
|
+
{{ panelTitle }}
|
|
5
5
|
<span v-if="activeSubLabel" class="user-detail-apply-curr">{{ activeSubLabel }}</span>
|
|
6
6
|
</h4>
|
|
7
7
|
<a-tabs
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
:tab-bar-gutter="8"
|
|
11
11
|
@change="changeSubTab"
|
|
12
12
|
>
|
|
13
|
-
<a-tab-pane v-for="sub in
|
|
13
|
+
<a-tab-pane v-for="sub in subTabs" :key="sub.key">
|
|
14
14
|
<span slot="tab" class="user-detail-apply-sub-tab">
|
|
15
15
|
<a-icon :type="sub.icon" />
|
|
16
16
|
{{ sub.label }}
|
|
17
17
|
</span>
|
|
18
18
|
<template v-if="activeSubKey === sub.key">
|
|
19
19
|
<component
|
|
20
|
-
:is="sub.component"
|
|
20
|
+
:is="resolveComponent(sub.component)"
|
|
21
21
|
:currUserInfo="currUserInfo"
|
|
22
22
|
/>
|
|
23
23
|
</template>
|
|
@@ -27,19 +27,23 @@
|
|
|
27
27
|
</template>
|
|
28
28
|
|
|
29
29
|
<script>
|
|
30
|
-
import { mapState } from 'vuex'
|
|
31
|
-
import { filterApplySubTabs } from '@vue2-client/pages/userInfoDetailManage/ApplySystemQuery/applySystemConfig'
|
|
32
|
-
import ApplyRecordQuery from '@vue2-client/pages/userInfoDetailManage/ApplyRecordQuery'
|
|
33
|
-
|
|
34
30
|
export default {
|
|
35
31
|
name: 'ApplySystemQuery',
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
inject: {
|
|
33
|
+
resolveUserDetailPanel: { default: null }
|
|
38
34
|
},
|
|
39
35
|
props: {
|
|
40
36
|
currUserInfo: {
|
|
41
37
|
type: Object,
|
|
42
38
|
default: () => undefined
|
|
39
|
+
},
|
|
40
|
+
panelTitle: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: ''
|
|
43
|
+
},
|
|
44
|
+
subTabs: {
|
|
45
|
+
type: Array,
|
|
46
|
+
default: () => []
|
|
43
47
|
}
|
|
44
48
|
},
|
|
45
49
|
data () {
|
|
@@ -48,7 +52,7 @@ export default {
|
|
|
48
52
|
}
|
|
49
53
|
},
|
|
50
54
|
watch: {
|
|
51
|
-
|
|
55
|
+
subTabs: {
|
|
52
56
|
immediate: true,
|
|
53
57
|
handler (tabs) {
|
|
54
58
|
if (!tabs.length) {
|
|
@@ -62,16 +66,15 @@ export default {
|
|
|
62
66
|
}
|
|
63
67
|
},
|
|
64
68
|
computed: {
|
|
65
|
-
...mapState('account', { login: 'login' }),
|
|
66
|
-
filteredSubTabs () {
|
|
67
|
-
return filterApplySubTabs(this.login)
|
|
68
|
-
},
|
|
69
69
|
activeSubLabel () {
|
|
70
|
-
const tab = this.
|
|
70
|
+
const tab = this.subTabs.find(item => item.key === this.activeSubKey)
|
|
71
71
|
return tab?.label || ''
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
74
|
methods: {
|
|
75
|
+
resolveComponent (component) {
|
|
76
|
+
return this.resolveUserDetailPanel ? this.resolveUserDetailPanel(component) : component
|
|
77
|
+
},
|
|
75
78
|
changeSubTab (key) {
|
|
76
79
|
this.activeSubKey = key
|
|
77
80
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<user-detail-sub-tab-panel
|
|
3
|
-
title="
|
|
3
|
+
:title="panelTitle"
|
|
4
4
|
:currUserInfo="currUserInfo"
|
|
5
5
|
:sub-tabs="subTabs"
|
|
6
6
|
:panel-components="panelComponents"
|
|
7
|
-
:filter-sub-tabs="filterSubTabs"
|
|
8
7
|
/>
|
|
9
8
|
</template>
|
|
10
9
|
|
|
11
10
|
<script>
|
|
12
|
-
import { mapState } from 'vuex'
|
|
13
11
|
import UserDetailSubTabPanel from '@vue2-client/pages/userInfoDetailManage/UserDetailSubTabPanel'
|
|
14
12
|
import InfoChangeRecordQuery from '@vue2-client/pages/userInfoDetailManage/InfoChangeRecordQuery'
|
|
15
13
|
import UserPriceChangeQuery from '@vue2-client/pages/userInfoDetailManage/UserPriceChangeQuery'
|
|
@@ -25,32 +23,20 @@ export default {
|
|
|
25
23
|
currUserInfo: {
|
|
26
24
|
type: Object,
|
|
27
25
|
default: () => undefined
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
]
|
|
26
|
+
},
|
|
27
|
+
panelTitle: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: ''
|
|
30
|
+
},
|
|
31
|
+
subTabs: {
|
|
32
|
+
type: Array,
|
|
33
|
+
default: () => []
|
|
36
34
|
}
|
|
37
35
|
},
|
|
38
36
|
computed: {
|
|
39
|
-
...mapState('account', { login: 'login' }),
|
|
40
37
|
panelComponents () {
|
|
41
38
|
return { InfoChangeRecordQuery, UserPriceChangeQuery }
|
|
42
39
|
}
|
|
43
|
-
},
|
|
44
|
-
methods: {
|
|
45
|
-
filterSubTabs (tabs) {
|
|
46
|
-
const roles = this.login?.r || []
|
|
47
|
-
return tabs.map(tab => {
|
|
48
|
-
if (tab.component && tab.permission && !roles.includes(tab.permission)) {
|
|
49
|
-
return { ...tab, component: null }
|
|
50
|
-
}
|
|
51
|
-
return tab
|
|
52
|
-
})
|
|
53
|
-
}
|
|
54
40
|
}
|
|
55
41
|
}
|
|
56
42
|
</script>
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<user-detail-sub-tab-panel
|
|
3
|
-
title="
|
|
3
|
+
:title="panelTitle"
|
|
4
4
|
:currUserInfo="currUserInfo"
|
|
5
5
|
:sub-tabs="subTabs"
|
|
6
6
|
:panel-components="panelComponents"
|
|
7
|
-
:filter-sub-tabs="filterSubTabs"
|
|
8
7
|
/>
|
|
9
8
|
</template>
|
|
10
9
|
|
|
11
10
|
<script>
|
|
12
|
-
import { mapState } from 'vuex'
|
|
13
11
|
import UserDetailSubTabPanel from '@vue2-client/pages/userInfoDetailManage/UserDetailSubTabPanel'
|
|
14
12
|
import CallRecordQuery from '@vue2-client/pages/userInfoDetailManage/CallRecordQuery'
|
|
15
13
|
import VisitHistoryQuery from '@vue2-client/pages/userInfoDetailManage/VisitHistoryQuery'
|
|
@@ -25,35 +23,23 @@ export default {
|
|
|
25
23
|
currUserInfo: {
|
|
26
24
|
type: Object,
|
|
27
25
|
default: () => undefined
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
]
|
|
26
|
+
},
|
|
27
|
+
panelTitle: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: ''
|
|
30
|
+
},
|
|
31
|
+
subTabs: {
|
|
32
|
+
type: Array,
|
|
33
|
+
default: () => []
|
|
36
34
|
}
|
|
37
35
|
},
|
|
38
36
|
computed: {
|
|
39
|
-
...mapState('account', { login: 'login' }),
|
|
40
37
|
panelComponents () {
|
|
41
38
|
return {
|
|
42
39
|
CallRecordQuery,
|
|
43
40
|
VisitHistoryQuery
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
|
-
},
|
|
47
|
-
methods: {
|
|
48
|
-
filterSubTabs (tabs) {
|
|
49
|
-
const roles = this.login?.r || []
|
|
50
|
-
return tabs.map(tab => {
|
|
51
|
-
if (tab.component && tab.permission && !roles.includes(tab.permission)) {
|
|
52
|
-
return { ...tab, component: null }
|
|
53
|
-
}
|
|
54
|
-
return tab
|
|
55
|
-
})
|
|
56
|
-
}
|
|
57
43
|
}
|
|
58
44
|
}
|
|
59
45
|
</script>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div v-if="currUserInfo" class="user-detail-handplan">
|
|
3
3
|
<div class="user-detail-handplan-hdr">
|
|
4
4
|
<h4 class="user-detail-handplan-title">
|
|
5
|
-
|
|
5
|
+
{{ panelTitle }}
|
|
6
6
|
<span v-if="activeSubLabel" class="user-detail-handplan-curr">{{ activeSubLabel }}</span>
|
|
7
7
|
</h4>
|
|
8
8
|
<a-tag
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
:tab-bar-gutter="8"
|
|
21
21
|
@change="changeSubTab"
|
|
22
22
|
>
|
|
23
|
-
<a-tab-pane v-for="sub in
|
|
23
|
+
<a-tab-pane v-for="sub in subTabs" :key="sub.key">
|
|
24
24
|
<span
|
|
25
25
|
slot="tab"
|
|
26
26
|
class="user-detail-handplan-sub-tab"
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<template v-if="activeSubKey === sub.key">
|
|
33
33
|
<component
|
|
34
34
|
v-if="sub.component"
|
|
35
|
-
:is="sub.component"
|
|
35
|
+
:is="resolveComponent(sub.component)"
|
|
36
36
|
:currUserInfo="currUserInfo"
|
|
37
37
|
:handplanMode="sub.handplanMode"
|
|
38
38
|
/>
|
|
@@ -46,21 +46,23 @@
|
|
|
46
46
|
</template>
|
|
47
47
|
|
|
48
48
|
<script>
|
|
49
|
-
import { mapState } from 'vuex'
|
|
50
|
-
import { filterHandplanSubTabs, getDefaultHandplanSubTabKey } from '@vue2-client/pages/userInfoDetailManage/HandplanSystemQuery/handplanSystemConfig'
|
|
51
|
-
import UserHandRecordQuery from '@vue2-client/pages/userInfoDetailManage/UserHandRecordQuery'
|
|
52
|
-
import UserMachineArrearsQuery from '@vue2-client/pages/userInfoDetailManage/UserMachineArrearsQuery'
|
|
53
|
-
|
|
54
49
|
export default {
|
|
55
50
|
name: 'HandplanSystemQuery',
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
UserMachineArrearsQuery
|
|
51
|
+
inject: {
|
|
52
|
+
resolveUserDetailPanel: { default: null }
|
|
59
53
|
},
|
|
60
54
|
props: {
|
|
61
55
|
currUserInfo: {
|
|
62
56
|
type: Object,
|
|
63
57
|
default: () => undefined
|
|
58
|
+
},
|
|
59
|
+
panelTitle: {
|
|
60
|
+
type: String,
|
|
61
|
+
default: ''
|
|
62
|
+
},
|
|
63
|
+
subTabs: {
|
|
64
|
+
type: Array,
|
|
65
|
+
default: () => []
|
|
64
66
|
}
|
|
65
67
|
},
|
|
66
68
|
data () {
|
|
@@ -69,7 +71,7 @@ export default {
|
|
|
69
71
|
}
|
|
70
72
|
},
|
|
71
73
|
watch: {
|
|
72
|
-
|
|
74
|
+
subTabs: {
|
|
73
75
|
immediate: true,
|
|
74
76
|
handler (tabs) {
|
|
75
77
|
if (!tabs.length) {
|
|
@@ -77,21 +79,17 @@ export default {
|
|
|
77
79
|
}
|
|
78
80
|
const valid = tabs.some(tab => tab.key === this.activeSubKey)
|
|
79
81
|
if (!valid) {
|
|
80
|
-
this.activeSubKey =
|
|
82
|
+
this.activeSubKey = this.getDefaultSubTabKey(tabs)
|
|
81
83
|
}
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
},
|
|
85
87
|
computed: {
|
|
86
|
-
...mapState('account', { login: 'login' }),
|
|
87
|
-
filteredSubTabs () {
|
|
88
|
-
return filterHandplanSubTabs(this.login, this.currUserInfo)
|
|
89
|
-
},
|
|
90
88
|
meterTypeLabel () {
|
|
91
89
|
return this.currUserInfo?.f_meter_type || ''
|
|
92
90
|
},
|
|
93
91
|
activeSubLabel () {
|
|
94
|
-
const tab = this.
|
|
92
|
+
const tab = this.subTabs.find(item => item.key === this.activeSubKey)
|
|
95
93
|
return tab?.label || ''
|
|
96
94
|
},
|
|
97
95
|
meterTypeTagColor () {
|
|
@@ -103,6 +101,22 @@ export default {
|
|
|
103
101
|
}
|
|
104
102
|
},
|
|
105
103
|
methods: {
|
|
104
|
+
isMeterTypeMatched (tab) {
|
|
105
|
+
if (tab?.meterTypeEquals) {
|
|
106
|
+
return this.currUserInfo?.f_meter_type === tab.meterTypeEquals
|
|
107
|
+
}
|
|
108
|
+
if (tab?.meterTypeIncludes) {
|
|
109
|
+
return this.currUserInfo?.f_meter_type?.includes(tab.meterTypeIncludes)
|
|
110
|
+
}
|
|
111
|
+
return false
|
|
112
|
+
},
|
|
113
|
+
getDefaultSubTabKey (tabs) {
|
|
114
|
+
const matched = tabs.find(tab => this.isMeterTypeMatched(tab))
|
|
115
|
+
return matched?.key || tabs[0]?.key || ''
|
|
116
|
+
},
|
|
117
|
+
resolveComponent (component) {
|
|
118
|
+
return this.resolveUserDetailPanel ? this.resolveUserDetailPanel(component) : component
|
|
119
|
+
},
|
|
106
120
|
getMeterTypeTagProps () {
|
|
107
121
|
const color = this.meterTypeTagColor
|
|
108
122
|
return color ? { color } : {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-if="currUserInfo" class="user-detail-revenue">
|
|
3
3
|
<h4 class="user-detail-revenue-title">
|
|
4
|
-
|
|
4
|
+
{{ panelTitle }}
|
|
5
5
|
<span v-if="activeSubLabel" class="user-detail-revenue-curr">{{ activeSubLabel }}</span>
|
|
6
6
|
</h4>
|
|
7
7
|
<a-tabs
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
:tab-bar-gutter="8"
|
|
11
11
|
@change="changeSubTab"
|
|
12
12
|
>
|
|
13
|
-
<a-tab-pane v-for="sub in
|
|
13
|
+
<a-tab-pane v-for="sub in subTabs" :key="sub.key">
|
|
14
14
|
<span
|
|
15
15
|
slot="tab"
|
|
16
16
|
class="user-detail-revenue-sub-tab"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
<template v-if="activeSubKey === sub.key">
|
|
23
23
|
<component
|
|
24
24
|
v-if="sub.component"
|
|
25
|
-
:is="sub.component"
|
|
25
|
+
:is="resolveComponent(sub.component)"
|
|
26
26
|
:currUserInfo="currUserInfo"
|
|
27
27
|
/>
|
|
28
28
|
<div v-else class="user-detail-revenue-empty">
|
|
@@ -35,49 +35,23 @@
|
|
|
35
35
|
</template>
|
|
36
36
|
|
|
37
37
|
<script>
|
|
38
|
-
import { mapState } from 'vuex'
|
|
39
|
-
import { filterRevenueSubTabs } from '@vue2-client/pages/userInfoDetailManage/RevenueSystemQuery/revenueSystemConfig'
|
|
40
|
-
import UserRecordQuery from '@vue2-client/pages/userInfoDetailManage/UserRecordQuery'
|
|
41
|
-
import UserChargeRecordQuery from '@vue2-client/pages/userInfoDetailManage/UserChargeRecordQuery'
|
|
42
|
-
import FillCardRecordQuery from '@vue2-client/pages/userInfoDetailManage/FillCardRecordQuery'
|
|
43
|
-
import FillGasRecordQuery from '@vue2-client/pages/userInfoDetailManage/FillGasRecordQuery'
|
|
44
|
-
import ChangeMeterRecordQuery from '@vue2-client/pages/userInfoDetailManage/ChangeMeterRecordQuery'
|
|
45
|
-
import OtherChargeRecordQuery from '@vue2-client/pages/userInfoDetailManage/OtherChargeRecordQuery'
|
|
46
|
-
import TransferRecordQuery from '@vue2-client/pages/userInfoDetailManage/TransferRecordQuery'
|
|
47
|
-
import PriceAdjustments from '@vue2-client/pages/userInfoDetailManage/PriceAdjustments'
|
|
48
|
-
import UserException from '@vue2-client/pages/userInfoDetailManage/UserException'
|
|
49
|
-
import InstructRecordQuery from '@vue2-client/pages/userInfoDetailManage/InstructRecordQuery'
|
|
50
|
-
import WatchCollectionRecordQuery from '@vue2-client/pages/userInfoDetailManage/WatchCollectionRecordQuery'
|
|
51
|
-
import UserDisableQuery from '@vue2-client/pages/userInfoDetailManage/UserDisableQuery'
|
|
52
|
-
import UserEnableQuery from '@vue2-client/pages/userInfoDetailManage/UserEnableQuery'
|
|
53
|
-
import UserLimitRecordQuery from '@vue2-client/pages/userInfoDetailManage/UserLimitRecordQuery'
|
|
54
|
-
import UserRefundQuery from '@vue2-client/pages/userInfoDetailManage/UserRefundQuery'
|
|
55
|
-
import UserDiscountRecordQuery from '@vue2-client/pages/userInfoDetailManage/UserDiscountRecordQuery'
|
|
56
|
-
|
|
57
38
|
export default {
|
|
58
39
|
name: 'RevenueSystemQuery',
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
UserChargeRecordQuery,
|
|
62
|
-
FillCardRecordQuery,
|
|
63
|
-
FillGasRecordQuery,
|
|
64
|
-
ChangeMeterRecordQuery,
|
|
65
|
-
OtherChargeRecordQuery,
|
|
66
|
-
TransferRecordQuery,
|
|
67
|
-
PriceAdjustments,
|
|
68
|
-
UserException,
|
|
69
|
-
InstructRecordQuery,
|
|
70
|
-
WatchCollectionRecordQuery,
|
|
71
|
-
UserDisableQuery,
|
|
72
|
-
UserEnableQuery,
|
|
73
|
-
UserLimitRecordQuery,
|
|
74
|
-
UserRefundQuery,
|
|
75
|
-
UserDiscountRecordQuery
|
|
40
|
+
inject: {
|
|
41
|
+
resolveUserDetailPanel: { default: null }
|
|
76
42
|
},
|
|
77
43
|
props: {
|
|
78
44
|
currUserInfo: {
|
|
79
45
|
type: Object,
|
|
80
46
|
default: () => undefined
|
|
47
|
+
},
|
|
48
|
+
panelTitle: {
|
|
49
|
+
type: String,
|
|
50
|
+
default: ''
|
|
51
|
+
},
|
|
52
|
+
subTabs: {
|
|
53
|
+
type: Array,
|
|
54
|
+
default: () => []
|
|
81
55
|
}
|
|
82
56
|
},
|
|
83
57
|
data () {
|
|
@@ -86,7 +60,7 @@ export default {
|
|
|
86
60
|
}
|
|
87
61
|
},
|
|
88
62
|
watch: {
|
|
89
|
-
|
|
63
|
+
subTabs: {
|
|
90
64
|
immediate: true,
|
|
91
65
|
handler (tabs) {
|
|
92
66
|
if (!tabs.length) {
|
|
@@ -100,16 +74,15 @@ export default {
|
|
|
100
74
|
}
|
|
101
75
|
},
|
|
102
76
|
computed: {
|
|
103
|
-
...mapState('account', { login: 'login' }),
|
|
104
|
-
filteredSubTabs () {
|
|
105
|
-
return filterRevenueSubTabs(this.login, this.currUserInfo)
|
|
106
|
-
},
|
|
107
77
|
activeSubLabel () {
|
|
108
|
-
const tab = this.
|
|
78
|
+
const tab = this.subTabs.find(item => item.key === this.activeSubKey)
|
|
109
79
|
return tab?.label || ''
|
|
110
80
|
}
|
|
111
81
|
},
|
|
112
82
|
methods: {
|
|
83
|
+
resolveComponent (component) {
|
|
84
|
+
return this.resolveUserDetailPanel ? this.resolveUserDetailPanel(component) : component
|
|
85
|
+
},
|
|
113
86
|
changeSubTab (key) {
|
|
114
87
|
this.activeSubKey = key
|
|
115
88
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<user-detail-sub-tab-panel
|
|
3
|
-
title="
|
|
3
|
+
:title="panelTitle"
|
|
4
4
|
:currUserInfo="currUserInfo"
|
|
5
5
|
:sub-tabs="subTabs"
|
|
6
6
|
:panel-components="panelComponents"
|
|
7
|
-
:filter-sub-tabs="filterSubTabs"
|
|
8
7
|
/>
|
|
9
8
|
</template>
|
|
10
9
|
|
|
11
10
|
<script>
|
|
12
|
-
import { mapState } from 'vuex'
|
|
13
11
|
import UserDetailSubTabPanel from '@vue2-client/pages/userInfoDetailManage/UserDetailSubTabPanel'
|
|
14
12
|
import SafeCheckPaperV3RecordQuery from '@vue2-client/pages/userInfoDetailManage/SafeCheckPaperV3RecordQuery'
|
|
15
13
|
import UserDefectDetailQuery from '@vue2-client/pages/userInfoDetailManage/UserDefectDetailQuery'
|
|
@@ -25,32 +23,20 @@ export default {
|
|
|
25
23
|
currUserInfo: {
|
|
26
24
|
type: Object,
|
|
27
25
|
default: () => undefined
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
]
|
|
26
|
+
},
|
|
27
|
+
panelTitle: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: ''
|
|
30
|
+
},
|
|
31
|
+
subTabs: {
|
|
32
|
+
type: Array,
|
|
33
|
+
default: () => []
|
|
36
34
|
}
|
|
37
35
|
},
|
|
38
36
|
computed: {
|
|
39
|
-
...mapState('account', { login: 'login' }),
|
|
40
37
|
panelComponents () {
|
|
41
38
|
return { SafeCheckPaperV3RecordQuery, UserDefectDetailQuery }
|
|
42
39
|
}
|
|
43
|
-
},
|
|
44
|
-
methods: {
|
|
45
|
-
filterSubTabs (tabs) {
|
|
46
|
-
const roles = this.login?.r || []
|
|
47
|
-
return tabs.map(tab => {
|
|
48
|
-
if (tab.component && tab.permission && !roles.includes(tab.permission)) {
|
|
49
|
-
return { ...tab, component: null }
|
|
50
|
-
}
|
|
51
|
-
return tab
|
|
52
|
-
})
|
|
53
|
-
}
|
|
54
40
|
}
|
|
55
41
|
}
|
|
56
42
|
</script>
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<user-detail-sub-tab-panel
|
|
3
|
-
title="
|
|
3
|
+
:title="panelTitle"
|
|
4
4
|
:currUserInfo="currUserInfo"
|
|
5
5
|
:sub-tabs="subTabs"
|
|
6
6
|
:panel-components="panelComponents"
|
|
7
|
-
:filter-sub-tabs="filterSubTabs"
|
|
8
7
|
/>
|
|
9
8
|
</template>
|
|
10
9
|
|
|
11
10
|
<script>
|
|
12
|
-
import { mapState } from 'vuex'
|
|
13
11
|
import UserDetailSubTabPanel from '@vue2-client/pages/userInfoDetailManage/UserDetailSubTabPanel'
|
|
14
12
|
import TelephoneV3RecordQuery from '@vue2-client/pages/userInfoDetailManage/TelephoneV3RecordQuery'
|
|
15
13
|
|
|
@@ -23,31 +21,20 @@ export default {
|
|
|
23
21
|
currUserInfo: {
|
|
24
22
|
type: Object,
|
|
25
23
|
default: () => undefined
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
},
|
|
25
|
+
panelTitle: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: ''
|
|
28
|
+
},
|
|
29
|
+
subTabs: {
|
|
30
|
+
type: Array,
|
|
31
|
+
default: () => []
|
|
33
32
|
}
|
|
34
33
|
},
|
|
35
34
|
computed: {
|
|
36
|
-
...mapState('account', { login: 'login' }),
|
|
37
35
|
panelComponents () {
|
|
38
36
|
return { TelephoneV3RecordQuery }
|
|
39
37
|
}
|
|
40
|
-
},
|
|
41
|
-
methods: {
|
|
42
|
-
filterSubTabs (tabs) {
|
|
43
|
-
const roles = this.login?.r || []
|
|
44
|
-
return tabs.map(tab => {
|
|
45
|
-
if (tab.component && tab.permission && !roles.includes(tab.permission)) {
|
|
46
|
-
return { ...tab, component: null }
|
|
47
|
-
}
|
|
48
|
-
return tab
|
|
49
|
-
})
|
|
50
|
-
}
|
|
51
38
|
}
|
|
52
39
|
}
|
|
53
40
|
</script>
|
|
@@ -26,7 +26,11 @@
|
|
|
26
26
|
<a-tag v-if="userStateTag.text" v-bind="getUserStateTagProps()">
|
|
27
27
|
{{ userStateTag.text }}
|
|
28
28
|
</a-tag>
|
|
29
|
-
<a-tooltip
|
|
29
|
+
<a-tooltip
|
|
30
|
+
title="刷新"
|
|
31
|
+
placement="bottom"
|
|
32
|
+
:getPopupContainer="getDrawerTooltipContainer"
|
|
33
|
+
>
|
|
30
34
|
<a-button
|
|
31
35
|
class="user-detail-refresh"
|
|
32
36
|
type="default"
|
|
@@ -56,7 +60,12 @@
|
|
|
56
60
|
<a-icon :type="item.icon" class="user-detail-q-icon" :style="{ color: item.color }" />
|
|
57
61
|
<div class="user-detail-q-body">
|
|
58
62
|
<div class="user-detail-q-label">{{ item.label }}</div>
|
|
59
|
-
<a-tooltip
|
|
63
|
+
<a-tooltip
|
|
64
|
+
v-if="item.truncate"
|
|
65
|
+
:title="item.value"
|
|
66
|
+
placement="top"
|
|
67
|
+
:getPopupContainer="getDrawerTooltipContainer"
|
|
68
|
+
>
|
|
60
69
|
<div class="user-detail-q-val user-detail-q-ellipsis">{{ item.value }}</div>
|
|
61
70
|
</a-tooltip>
|
|
62
71
|
<div v-else class="user-detail-q-val">{{ item.value }}</div>
|
|
@@ -290,6 +299,9 @@ export default {
|
|
|
290
299
|
}
|
|
291
300
|
},
|
|
292
301
|
methods: {
|
|
302
|
+
getDrawerTooltipContainer (triggerNode) {
|
|
303
|
+
return triggerNode?.parentNode || document.body
|
|
304
|
+
},
|
|
293
305
|
checkOperateReason () {
|
|
294
306
|
if (this.operateReason.trim() === '') {
|
|
295
307
|
this.operateReasonError = true
|