vue2-client 1.4.32 → 1.4.34

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 (91) hide show
  1. package/CHANGELOG.md +426 -422
  2. package/index.js +30 -30
  3. package/package.json +78 -78
  4. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -225
  5. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +777 -777
  6. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  7. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  8. package/src/base-client/components/common/XAddForm/XAddForm.vue +354 -354
  9. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +327 -327
  10. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  11. package/src/base-client/components/common/XForm/XForm.vue +274 -274
  12. package/src/base-client/components/common/XFormTable/index.md +96 -96
  13. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  14. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  15. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  16. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  17. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  18. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  19. package/src/base-client/plugins/AppData.js +73 -73
  20. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  21. package/src/base-client/plugins/PagedList.js +177 -177
  22. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  23. package/src/base-client/plugins/i18n-extend.js +32 -32
  24. package/src/components/Ellipsis/index.md +38 -38
  25. package/src/components/NumberInfo/index.md +43 -43
  26. package/src/components/STable/README.md +341 -341
  27. package/src/components/STable/index.js +318 -318
  28. package/src/components/Trend/index.md +45 -45
  29. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  30. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  31. package/src/components/form/FormRow.vue +52 -52
  32. package/src/components/index.js +36 -36
  33. package/src/components/menu/SideMenu.vue +62 -62
  34. package/src/components/menu/menu.js +273 -273
  35. package/src/components/page/header/index.less +40 -40
  36. package/src/components/setting/Setting.vue +235 -235
  37. package/src/components/table/StandardTable.vue +141 -141
  38. package/src/components/table/advance/ActionColumns.vue +158 -158
  39. package/src/components/table/advance/SearchArea.vue +355 -355
  40. package/src/components/tool/AStepItem.vue +60 -60
  41. package/src/components/tool/AvatarList.vue +68 -68
  42. package/src/components/tool/Drawer.vue +142 -142
  43. package/src/components/tool/TagSelect.vue +83 -83
  44. package/src/components/transition/PageToggleTransition.vue +97 -97
  45. package/src/config/replacer/resolve.config.js +67 -67
  46. package/src/layouts/AdminLayout.vue +174 -174
  47. package/src/layouts/PageLayout.vue +151 -151
  48. package/src/layouts/SinglePageView.vue +105 -95
  49. package/src/layouts/header/AdminHeader.vue +104 -104
  50. package/src/layouts/header/HeaderNotice.vue +167 -167
  51. package/src/layouts/header/HeaderSearch.vue +67 -67
  52. package/src/layouts/header/InstitutionDetail.vue +181 -181
  53. package/src/layouts/header/index.less +92 -92
  54. package/src/layouts/tabs/TabsHead.vue +190 -190
  55. package/src/layouts/tabs/TabsView.vue +379 -379
  56. package/src/mock/goods/index.js +108 -108
  57. package/src/pages/CreateQueryPage.vue +65 -65
  58. package/src/pages/login/Login.vue +345 -345
  59. package/src/pages/report/ReportTable.js +124 -124
  60. package/src/pages/report/ReportTableHome.vue +28 -28
  61. package/src/pages/resourceManage/orgListManage.vue +98 -98
  62. package/src/pages/system/dictionary/index.vue +43 -43
  63. package/src/pages/system/file/index.vue +317 -317
  64. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  65. package/src/pages/system/monitor/operLog/index.vue +36 -36
  66. package/src/pages/system/queryParams/index.vue +43 -43
  67. package/src/router/async/config.async.js +27 -27
  68. package/src/router/async/router.map.js +65 -65
  69. package/src/router/index.js +27 -27
  70. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  71. package/src/services/api/LogDetailsViewApi.js +10 -10
  72. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  73. package/src/services/api/TicketDetailsViewApi.js +34 -34
  74. package/src/services/api/cas.js +83 -74
  75. package/src/services/api/commonTempTable.js +10 -10
  76. package/src/services/api/index.js +17 -17
  77. package/src/services/api/manage.js +8 -8
  78. package/src/services/apiService.js +13 -13
  79. package/src/services/user.js +53 -53
  80. package/src/store/modules/index.js +4 -4
  81. package/src/theme/default/nprogress.less +76 -76
  82. package/src/theme/default/style.less +47 -47
  83. package/src/utils/colors.js +103 -103
  84. package/src/utils/excel/Blob.js +180 -180
  85. package/src/utils/excel/Export2Excel.js +141 -141
  86. package/src/utils/formatter.js +68 -68
  87. package/src/utils/i18n.js +80 -80
  88. package/src/utils/routerUtil.js +364 -364
  89. package/src/utils/theme-color-replacer-extend.js +91 -91
  90. package/src/utils/themeUtil.js +100 -100
  91. package/src/utils/util.js +230 -230
@@ -1,95 +1,105 @@
1
- <template>
2
- <page-toggle-transition :disabled="animate.disabled" :animate="animate.name" :direction="animate.direction">
3
- <template v-if="login">
4
- <div style="padding-top: 1px; background-color: #fff;">
5
- <iframe
6
- ref="singlepage"
7
- :src="url"
8
- :name="this.fullPath"
9
- class="single-page-iframe"
10
- @load="load">
11
- </iframe>
12
- </div>
13
- </template>
14
- </page-toggle-transition>
15
- </template>
16
-
17
- <script>
18
- import PageToggleTransition from '@vue2-client/components/transition/PageToggleTransition'
19
- import { ACCESS_TOKEN } from '@vue2-client/store/mutation-types'
20
- import { mapState, mapMutations } from 'vuex'
21
- import { CASLogin } from '@vue2-client/services/api/cas'
22
-
23
- export default {
24
- name: 'SinglePageView',
25
- components: { PageToggleTransition },
26
- props: {
27
- singlePageUrl: {
28
- type: String,
29
- default: ''
30
- },
31
- fullPath: {
32
- type: String,
33
- default: ''
34
- }
35
- },
36
- data () {
37
- return {
38
- iframe: null,
39
- url: ''
40
- }
41
- },
42
- computed: {
43
- ...mapState('setting', ['animate', 'iframeSrc']),
44
- ...mapState('account', ['login'])
45
- },
46
- created () {
47
- if (this.singlePageUrl.indexOf('sso:') !== -1) {
48
- CASLogin(this.singlePageUrl.substring(4), true).then(res => {
49
- this.url = res.redirectUrl + '?ticket=' + res.st
50
- }).catch(msg => {
51
- this.$message.error(msg)
52
- })
53
- } else {
54
- this.url = this.iframeSrc
55
- }
56
- },
57
- mounted () {
58
- if (!this.login) {
59
- this.setLogin(JSON.parse(sessionStorage.getItem(process.env.VUE_APP_LOGIN_KEY)))
60
- }
61
- this.iframe = this.$refs.singlepage.contentWindow
62
- this.path = this.$route.path
63
- },
64
- methods: {
65
- ...mapMutations('account', ['setLogin']),
66
- load () {
67
- if (this.singlePageUrl.indexOf('sso:') === -1) {
68
- const appdata = {
69
- singleValues: this.$appdata.getSingleValues(),
70
- params: this.$appdata.getParams()
71
- }
72
- const data = {
73
- token: localStorage.getItem(ACCESS_TOKEN),
74
- login: this.login,
75
- appdata: appdata,
76
- page: this.singlePageUrl
77
- }
78
- console.log('发送参数', data)
79
- if (this.iframe) {
80
- this.iframe.postMessage(data, '*')
81
- }
82
- }
83
- this.$emit('load', this.fullPath)
84
- }
85
- }
86
- }
87
- </script>
88
-
89
- <style lang="less">
90
- .single-page-iframe {
91
- width: 100%;
92
- height: calc(100vh - 117px);
93
- border: none;
94
- }
95
- </style>
1
+ <template>
2
+ <page-toggle-transition :disabled="animate.disabled" :animate="animate.name" :direction="animate.direction">
3
+ <template v-if="login">
4
+ <div style="padding-top: 1px; background-color: #fff;">
5
+ <iframe
6
+ ref="singlepage"
7
+ :src="url"
8
+ :name="this.fullPath"
9
+ class="single-page-iframe"
10
+ @load="load">
11
+ </iframe>
12
+ </div>
13
+ </template>
14
+ </page-toggle-transition>
15
+ </template>
16
+
17
+ <script>
18
+ import PageToggleTransition from '@vue2-client/components/transition/PageToggleTransition'
19
+ import { ACCESS_TOKEN } from '@vue2-client/store/mutation-types'
20
+ import { mapState, mapMutations } from 'vuex'
21
+ import { CASLogin, doOtherValidate } from '@vue2-client/services/api/cas'
22
+
23
+ export default {
24
+ name: 'SinglePageView',
25
+ components: { PageToggleTransition },
26
+ props: {
27
+ singlePageUrl: {
28
+ type: String,
29
+ default: ''
30
+ },
31
+ fullPath: {
32
+ type: String,
33
+ default: ''
34
+ }
35
+ },
36
+ data () {
37
+ return {
38
+ iframe: null,
39
+ url: ''
40
+ }
41
+ },
42
+ computed: {
43
+ ...mapState('setting', ['animate', 'iframeSrc']),
44
+ ...mapState('account', ['login'])
45
+ },
46
+ created () {
47
+ if (this.singlePageUrl.indexOf('sso:') !== -1) {
48
+ const serviceKey = this.singlePageUrl.substring(4)
49
+ CASLogin(serviceKey, true).then(res => {
50
+ const redirectUrl = res.redirectUrl
51
+ if (redirectUrl.indexOf('logic@') !== -1) {
52
+ const logicName = redirectUrl.substring(6)
53
+ doOtherValidate(logicName, res.st, serviceKey).then(validateRes => {
54
+ this.url = validateRes.redirectUrl
55
+ })
56
+ } else {
57
+ this.url = redirectUrl + '?ticket=' + res.st
58
+ }
59
+ }).catch(msg => {
60
+ console.warn(msg)
61
+ this.$message.error(msg)
62
+ })
63
+ } else {
64
+ this.url = this.iframeSrc
65
+ }
66
+ },
67
+ mounted () {
68
+ if (!this.login) {
69
+ this.setLogin(JSON.parse(sessionStorage.getItem(process.env.VUE_APP_LOGIN_KEY)))
70
+ }
71
+ this.iframe = this.$refs.singlepage.contentWindow
72
+ this.path = this.$route.path
73
+ },
74
+ methods: {
75
+ ...mapMutations('account', ['setLogin']),
76
+ load () {
77
+ if (this.singlePageUrl.indexOf('sso:') === -1) {
78
+ const appdata = {
79
+ singleValues: this.$appdata.getSingleValues(),
80
+ params: this.$appdata.getParams()
81
+ }
82
+ const data = {
83
+ token: localStorage.getItem(ACCESS_TOKEN),
84
+ login: this.login,
85
+ appdata: appdata,
86
+ page: this.singlePageUrl
87
+ }
88
+ console.log('发送参数', data)
89
+ if (this.iframe) {
90
+ this.iframe.postMessage(data, '*')
91
+ }
92
+ }
93
+ this.$emit('load', this.fullPath)
94
+ }
95
+ }
96
+ }
97
+ </script>
98
+
99
+ <style lang="less">
100
+ .single-page-iframe {
101
+ width: 100%;
102
+ height: calc(100vh - 117px);
103
+ border: none;
104
+ }
105
+ </style>
@@ -1,104 +1,104 @@
1
- <template>
2
- <a-layout-header :class="[headerTheme, 'admin-header']">
3
- <div :class="['admin-header-wide', layout, pageWidth]">
4
- <router-link v-if="isMobile || layout === 'head'" :class="['logo', isMobile ? null : 'pc', headerTheme]" to="/">
5
- <img src="@vue2-client/assets/img/logo.png" width="32" alt=""/>
6
- <h1 v-if="!isMobile">{{ systemName }}</h1>
7
- </router-link>
8
- <a-divider v-if="isMobile" type="vertical" />
9
- <a-icon v-if="layout !== 'head'" :type="collapsed ? 'menu-unfold' : 'menu-fold'" class="trigger" @click="toggleCollapse"/>
10
- <div v-if="layout !== 'side' && !isMobile" :style="`width: ${menuWidth};`" class="admin-header-menu">
11
- <i-menu :options="menuData" :theme="headerTheme" class="head-menu" mode="horizontal" @select="onSelect"/>
12
- </div>
13
- <div :class="['admin-header-right', headerTheme]">
14
- <header-search class="header-item" @active="val => searchActive = val" />
15
- <a-tooltip class="header-item" placement="bottom" title="清理查询缓存" >
16
- <a @click="handleToClearCache">
17
- <a-icon type="reload" />
18
- </a>
19
- </a-tooltip>
20
- <header-notice class="header-item"/>
21
- <header-avatar class="header-item"/>
22
- <a-dropdown class="lang header-item">
23
- <div>
24
- <a-icon type="global"/> {{ langAlias }}
25
- </div>
26
- <a-menu slot="overlay" :selected-keys="[lang]" @click="val => setLang(val.key)">
27
- <a-menu-item v-for=" lang in langList" :key="lang.key">{{ lang.key.toLowerCase() + ' ' + lang.name }}</a-menu-item>
28
- </a-menu>
29
- </a-dropdown>
30
- </div>
31
- </div>
32
- </a-layout-header>
33
- </template>
34
-
35
- <script>
36
- import HeaderSearch from './HeaderSearch'
37
- import HeaderNotice from './HeaderNotice'
38
- import HeaderAvatar from './HeaderAvatar'
39
- import IMenu from '@vue2-client/components/menu/menu'
40
- import { mapState, mapMutations } from 'vuex'
41
- import { Modal } from 'ant-design-vue'
42
- import { indexedDB } from '@vue2-client/utils/indexedDB'
43
-
44
- export default {
45
- name: 'AdminHeader',
46
- components: { IMenu, HeaderAvatar, HeaderNotice, HeaderSearch },
47
- // eslint-disable-next-line vue/require-prop-types
48
- props: ['collapsed', 'menuData'],
49
- data () {
50
- return {
51
- langList: [
52
- { key: 'CN', name: '简体中文', alias: '简体' },
53
- { key: 'HK', name: '繁體中文', alias: '繁體' },
54
- { key: 'US', name: 'English', alias: 'English' }
55
- ],
56
- searchActive: false
57
- }
58
- },
59
- computed: {
60
- ...mapState('setting', ['theme', 'isMobile', 'layout', 'systemName', 'lang', 'pageWidth']),
61
- headerTheme () {
62
- if (this.layout === 'side' && this.theme.mode === 'dark' && !this.isMobile) {
63
- return 'light'
64
- }
65
- return this.theme.mode
66
- },
67
- langAlias () {
68
- const lang = this.langList.find(item => item.key === this.lang)
69
- return lang.alias
70
- },
71
- menuWidth () {
72
- const { layout, searchActive } = this
73
- const headWidth = layout === 'head' ? '100% - 188px' : '100%'
74
- const extraWidth = searchActive ? '600px' : '400px'
75
- return `calc(${headWidth} - ${extraWidth})`
76
- }
77
- },
78
- methods: {
79
- toggleCollapse () {
80
- this.$emit('toggleCollapse')
81
- },
82
- onSelect (obj) {
83
- this.$emit('menuSelect', obj)
84
- },
85
- handleToClearCache () {
86
- Modal.confirm({
87
- title: '信息',
88
- content: '您确定要清除查询配置缓存吗?',
89
- onOk: () => {
90
- indexedDB.clear(() => {
91
- location.reload()
92
- })
93
- },
94
- onCancel () {}
95
- })
96
- },
97
- ...mapMutations('setting', ['setLang'])
98
- }
99
- }
100
- </script>
101
-
102
- <style lang="less" scoped>
103
- @import "index";
104
- </style>
1
+ <template>
2
+ <a-layout-header :class="[headerTheme, 'admin-header']">
3
+ <div :class="['admin-header-wide', layout, pageWidth]">
4
+ <router-link v-if="isMobile || layout === 'head'" :class="['logo', isMobile ? null : 'pc', headerTheme]" to="/">
5
+ <img src="@vue2-client/assets/img/logo.png" width="32" alt=""/>
6
+ <h1 v-if="!isMobile">{{ systemName }}</h1>
7
+ </router-link>
8
+ <a-divider v-if="isMobile" type="vertical" />
9
+ <a-icon v-if="layout !== 'head'" :type="collapsed ? 'menu-unfold' : 'menu-fold'" class="trigger" @click="toggleCollapse"/>
10
+ <div v-if="layout !== 'side' && !isMobile" :style="`width: ${menuWidth};`" class="admin-header-menu">
11
+ <i-menu :options="menuData" :theme="headerTheme" class="head-menu" mode="horizontal" @select="onSelect"/>
12
+ </div>
13
+ <div :class="['admin-header-right', headerTheme]">
14
+ <header-search class="header-item" @active="val => searchActive = val" />
15
+ <a-tooltip class="header-item" placement="bottom" title="清理查询缓存" >
16
+ <a @click="handleToClearCache">
17
+ <a-icon type="reload" />
18
+ </a>
19
+ </a-tooltip>
20
+ <header-notice class="header-item"/>
21
+ <header-avatar class="header-item"/>
22
+ <a-dropdown class="lang header-item">
23
+ <div>
24
+ <a-icon type="global"/> {{ langAlias }}
25
+ </div>
26
+ <a-menu slot="overlay" :selected-keys="[lang]" @click="val => setLang(val.key)">
27
+ <a-menu-item v-for=" lang in langList" :key="lang.key">{{ lang.key.toLowerCase() + ' ' + lang.name }}</a-menu-item>
28
+ </a-menu>
29
+ </a-dropdown>
30
+ </div>
31
+ </div>
32
+ </a-layout-header>
33
+ </template>
34
+
35
+ <script>
36
+ import HeaderSearch from './HeaderSearch'
37
+ import HeaderNotice from './HeaderNotice'
38
+ import HeaderAvatar from './HeaderAvatar'
39
+ import IMenu from '@vue2-client/components/menu/menu'
40
+ import { mapState, mapMutations } from 'vuex'
41
+ import { Modal } from 'ant-design-vue'
42
+ import { indexedDB } from '@vue2-client/utils/indexedDB'
43
+
44
+ export default {
45
+ name: 'AdminHeader',
46
+ components: { IMenu, HeaderAvatar, HeaderNotice, HeaderSearch },
47
+ // eslint-disable-next-line vue/require-prop-types
48
+ props: ['collapsed', 'menuData'],
49
+ data () {
50
+ return {
51
+ langList: [
52
+ { key: 'CN', name: '简体中文', alias: '简体' },
53
+ { key: 'HK', name: '繁體中文', alias: '繁體' },
54
+ { key: 'US', name: 'English', alias: 'English' }
55
+ ],
56
+ searchActive: false
57
+ }
58
+ },
59
+ computed: {
60
+ ...mapState('setting', ['theme', 'isMobile', 'layout', 'systemName', 'lang', 'pageWidth']),
61
+ headerTheme () {
62
+ if (this.layout === 'side' && this.theme.mode === 'dark' && !this.isMobile) {
63
+ return 'light'
64
+ }
65
+ return this.theme.mode
66
+ },
67
+ langAlias () {
68
+ const lang = this.langList.find(item => item.key === this.lang)
69
+ return lang.alias
70
+ },
71
+ menuWidth () {
72
+ const { layout, searchActive } = this
73
+ const headWidth = layout === 'head' ? '100% - 188px' : '100%'
74
+ const extraWidth = searchActive ? '600px' : '400px'
75
+ return `calc(${headWidth} - ${extraWidth})`
76
+ }
77
+ },
78
+ methods: {
79
+ toggleCollapse () {
80
+ this.$emit('toggleCollapse')
81
+ },
82
+ onSelect (obj) {
83
+ this.$emit('menuSelect', obj)
84
+ },
85
+ handleToClearCache () {
86
+ Modal.confirm({
87
+ title: '信息',
88
+ content: '您确定要清除查询配置缓存吗?',
89
+ onOk: () => {
90
+ indexedDB.clear(() => {
91
+ location.reload()
92
+ })
93
+ },
94
+ onCancel () {}
95
+ })
96
+ },
97
+ ...mapMutations('setting', ['setLang'])
98
+ }
99
+ }
100
+ </script>
101
+
102
+ <style lang="less" scoped>
103
+ @import "index";
104
+ </style>