vue2-client 1.4.36 → 1.4.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.
Files changed (96) hide show
  1. package/CHANGELOG.md +440 -434
  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/FileImageItem/FileItem.vue +60 -0
  26. package/src/components/FileImageItem/ImageItem.vue +70 -0
  27. package/src/components/FileImageItem/index.js +4 -0
  28. package/src/components/FilePreview/FilePreview.vue +110 -0
  29. package/src/components/FilePreview/index.js +3 -0
  30. package/src/components/NumberInfo/index.md +43 -43
  31. package/src/components/STable/README.md +341 -341
  32. package/src/components/STable/index.js +318 -318
  33. package/src/components/Trend/index.md +45 -45
  34. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  35. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  36. package/src/components/form/FormRow.vue +52 -52
  37. package/src/components/index.js +36 -36
  38. package/src/components/menu/SideMenu.vue +62 -62
  39. package/src/components/menu/menu.js +273 -273
  40. package/src/components/page/header/index.less +40 -40
  41. package/src/components/setting/Setting.vue +235 -235
  42. package/src/components/table/StandardTable.vue +141 -141
  43. package/src/components/table/advance/ActionColumns.vue +158 -158
  44. package/src/components/table/advance/SearchArea.vue +355 -355
  45. package/src/components/tool/AStepItem.vue +60 -60
  46. package/src/components/tool/AvatarList.vue +68 -68
  47. package/src/components/tool/Drawer.vue +142 -142
  48. package/src/components/tool/TagSelect.vue +83 -83
  49. package/src/components/transition/PageToggleTransition.vue +97 -97
  50. package/src/config/replacer/resolve.config.js +67 -67
  51. package/src/layouts/AdminLayout.vue +174 -174
  52. package/src/layouts/PageLayout.vue +151 -151
  53. package/src/layouts/SinglePageView.vue +105 -105
  54. package/src/layouts/header/AdminHeader.vue +104 -104
  55. package/src/layouts/header/HeaderNotice.vue +167 -167
  56. package/src/layouts/header/HeaderSearch.vue +67 -67
  57. package/src/layouts/header/InstitutionDetail.vue +181 -181
  58. package/src/layouts/header/index.less +92 -92
  59. package/src/layouts/tabs/TabsHead.vue +190 -190
  60. package/src/layouts/tabs/TabsView.vue +379 -379
  61. package/src/mock/goods/index.js +108 -108
  62. package/src/pages/CreateQueryPage.vue +65 -65
  63. package/src/pages/login/Login.vue +345 -345
  64. package/src/pages/report/ReportTable.js +124 -124
  65. package/src/pages/report/ReportTableHome.vue +28 -28
  66. package/src/pages/resourceManage/orgListManage.vue +98 -98
  67. package/src/pages/system/dictionary/index.vue +43 -43
  68. package/src/pages/system/file/index.vue +317 -317
  69. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  70. package/src/pages/system/monitor/operLog/index.vue +36 -36
  71. package/src/pages/system/queryParams/index.vue +43 -43
  72. package/src/router/async/config.async.js +27 -27
  73. package/src/router/async/router.map.js +65 -65
  74. package/src/router/index.js +27 -27
  75. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  76. package/src/services/api/LogDetailsViewApi.js +10 -10
  77. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  78. package/src/services/api/TicketDetailsViewApi.js +34 -34
  79. package/src/services/api/cas.js +79 -79
  80. package/src/services/api/commonTempTable.js +10 -10
  81. package/src/services/api/index.js +17 -17
  82. package/src/services/api/manage.js +8 -8
  83. package/src/services/apiService.js +13 -13
  84. package/src/services/user.js +53 -53
  85. package/src/store/modules/index.js +4 -4
  86. package/src/theme/default/nprogress.less +76 -76
  87. package/src/theme/default/style.less +47 -47
  88. package/src/utils/colors.js +103 -103
  89. package/src/utils/excel/Blob.js +180 -180
  90. package/src/utils/excel/Export2Excel.js +141 -141
  91. package/src/utils/formatter.js +68 -68
  92. package/src/utils/i18n.js +80 -80
  93. package/src/utils/routerUtil.js +364 -364
  94. package/src/utils/theme-color-replacer-extend.js +91 -91
  95. package/src/utils/themeUtil.js +100 -100
  96. package/src/utils/util.js +230 -230
@@ -1,105 +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, 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
+ <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>