vue2-client 1.4.29 → 1.4.30

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 (92) hide show
  1. package/CHANGELOG.md +417 -413
  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/CreateQuery.vue +595 -595
  6. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +777 -777
  7. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  8. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  9. package/src/base-client/components/common/XAddForm/XAddForm.vue +354 -354
  10. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +327 -327
  11. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  12. package/src/base-client/components/common/XForm/XForm.vue +274 -274
  13. package/src/base-client/components/common/XFormTable/index.md +96 -96
  14. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  15. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  16. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  17. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  18. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  19. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  20. package/src/base-client/plugins/AppData.js +73 -73
  21. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  22. package/src/base-client/plugins/PagedList.js +177 -177
  23. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  24. package/src/base-client/plugins/i18n-extend.js +32 -32
  25. package/src/components/Ellipsis/index.md +38 -38
  26. package/src/components/NumberInfo/index.md +43 -43
  27. package/src/components/STable/README.md +341 -341
  28. package/src/components/STable/index.js +318 -318
  29. package/src/components/Trend/index.md +45 -45
  30. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  31. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  32. package/src/components/form/FormRow.vue +52 -52
  33. package/src/components/index.js +36 -36
  34. package/src/components/menu/SideMenu.vue +62 -62
  35. package/src/components/menu/menu.js +273 -273
  36. package/src/components/page/header/index.less +40 -40
  37. package/src/components/setting/Setting.vue +235 -235
  38. package/src/components/table/StandardTable.vue +141 -141
  39. package/src/components/table/advance/ActionColumns.vue +158 -158
  40. package/src/components/table/advance/SearchArea.vue +355 -355
  41. package/src/components/tool/AStepItem.vue +60 -60
  42. package/src/components/tool/AvatarList.vue +68 -68
  43. package/src/components/tool/Drawer.vue +142 -142
  44. package/src/components/tool/TagSelect.vue +83 -83
  45. package/src/components/transition/PageToggleTransition.vue +97 -97
  46. package/src/config/replacer/resolve.config.js +67 -67
  47. package/src/layouts/AdminLayout.vue +174 -174
  48. package/src/layouts/PageLayout.vue +151 -151
  49. package/src/layouts/SinglePageView.vue +95 -93
  50. package/src/layouts/header/AdminHeader.vue +104 -104
  51. package/src/layouts/header/HeaderNotice.vue +167 -167
  52. package/src/layouts/header/HeaderSearch.vue +67 -67
  53. package/src/layouts/header/InstitutionDetail.vue +181 -181
  54. package/src/layouts/header/index.less +92 -92
  55. package/src/layouts/tabs/TabsHead.vue +190 -190
  56. package/src/layouts/tabs/TabsView.vue +379 -379
  57. package/src/mock/goods/index.js +108 -108
  58. package/src/pages/CreateQueryPage.vue +65 -65
  59. package/src/pages/login/Login.vue +345 -345
  60. package/src/pages/report/ReportTable.js +124 -124
  61. package/src/pages/report/ReportTableHome.vue +28 -28
  62. package/src/pages/resourceManage/orgListManage.vue +98 -98
  63. package/src/pages/system/dictionary/index.vue +43 -43
  64. package/src/pages/system/file/index.vue +317 -317
  65. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  66. package/src/pages/system/monitor/operLog/index.vue +36 -36
  67. package/src/pages/system/queryParams/index.vue +43 -43
  68. package/src/router/async/config.async.js +27 -27
  69. package/src/router/async/router.map.js +65 -65
  70. package/src/router/index.js +27 -27
  71. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  72. package/src/services/api/LogDetailsViewApi.js +10 -10
  73. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  74. package/src/services/api/TicketDetailsViewApi.js +34 -34
  75. package/src/services/api/cas.js +74 -70
  76. package/src/services/api/commonTempTable.js +10 -10
  77. package/src/services/api/index.js +17 -17
  78. package/src/services/api/manage.js +8 -8
  79. package/src/services/apiService.js +13 -13
  80. package/src/services/user.js +53 -53
  81. package/src/store/modules/index.js +4 -4
  82. package/src/theme/default/nprogress.less +76 -76
  83. package/src/theme/default/style.less +47 -47
  84. package/src/utils/colors.js +103 -103
  85. package/src/utils/excel/Blob.js +180 -180
  86. package/src/utils/excel/Export2Excel.js +141 -141
  87. package/src/utils/formatter.js +68 -68
  88. package/src/utils/i18n.js +80 -80
  89. package/src/utils/routerUtil.js +364 -364
  90. package/src/utils/theme-color-replacer-extend.js +91 -91
  91. package/src/utils/themeUtil.js +100 -100
  92. package/src/utils/util.js +230 -230
@@ -1,93 +1,95 @@
1
- <template>
2
- <page-toggle-transition :disabled="animate.disabled" :animate="animate.name" :direction="animate.direction">
3
- <template v-if="login">
4
- <iframe
5
- ref="singlepage"
6
- :src="url"
7
- :name="this.fullPath"
8
- class="single-page-iframe"
9
- @load="load">
10
- </iframe>
11
- </template>
12
- </page-toggle-transition>
13
- </template>
14
-
15
- <script>
16
- import PageToggleTransition from '@vue2-client/components/transition/PageToggleTransition'
17
- import { ACCESS_TOKEN } from '@vue2-client/store/mutation-types'
18
- import { mapState, mapMutations } from 'vuex'
19
- import { CASLogin } from '@vue2-client/services/api/cas'
20
-
21
- export default {
22
- name: 'SinglePageView',
23
- components: { PageToggleTransition },
24
- props: {
25
- singlePageUrl: {
26
- type: String,
27
- default: ''
28
- },
29
- fullPath: {
30
- type: String,
31
- default: ''
32
- }
33
- },
34
- data () {
35
- return {
36
- iframe: null,
37
- url: ''
38
- }
39
- },
40
- computed: {
41
- ...mapState('setting', ['animate', 'iframeSrc']),
42
- ...mapState('account', ['login'])
43
- },
44
- created () {
45
- if (this.singlePageUrl.indexOf('sso:') !== -1) {
46
- CASLogin(this.singlePageUrl.substring(4)).then(res => {
47
- this.url = res.redirectUrl + '?ticket=' + res.st
48
- }).catch(msg => {
49
- this.$message.error(msg)
50
- })
51
- } else {
52
- this.url = this.iframeSrc
53
- }
54
- },
55
- mounted () {
56
- if (!this.login) {
57
- this.setLogin(JSON.parse(sessionStorage.getItem(process.env.VUE_APP_LOGIN_KEY)))
58
- }
59
- this.iframe = this.$refs.singlepage.contentWindow
60
- this.path = this.$route.path
61
- },
62
- methods: {
63
- ...mapMutations('account', ['setLogin']),
64
- load () {
65
- if (this.singlePageUrl.indexOf('sso:') === -1) {
66
- const appdata = {
67
- singleValues: this.$appdata.getSingleValues(),
68
- params: this.$appdata.getParams()
69
- }
70
- const data = {
71
- token: localStorage.getItem(ACCESS_TOKEN),
72
- login: this.login,
73
- appdata: appdata,
74
- page: this.singlePageUrl
75
- }
76
- console.log('发送参数', data)
77
- if (this.iframe) {
78
- this.iframe.postMessage(data, '*')
79
- }
80
- }
81
- this.$emit('load', this.fullPath)
82
- }
83
- }
84
- }
85
- </script>
86
-
87
- <style lang="less">
88
- .single-page-iframe {
89
- width: 100%;
90
- height: calc(100vh - 117px);
91
- border: none;
92
- }
93
- </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 } 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,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>