vue2-client 1.5.13 → 1.5.14

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 (112) hide show
  1. package/CHANGELOG.md +511 -504
  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 +667 -667
  6. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +713 -713
  7. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +457 -457
  8. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +508 -508
  9. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +140 -140
  10. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  11. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  12. package/src/base-client/components/common/XAddForm/XAddForm.vue +316 -316
  13. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +277 -277
  14. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  15. package/src/base-client/components/common/XForm/XForm.vue +185 -185
  16. package/src/base-client/components/common/XForm/XFormItem.vue +502 -485
  17. package/src/base-client/components/common/XForm/index.md +177 -177
  18. package/src/base-client/components/common/XFormTable/XFormTable.vue +324 -324
  19. package/src/base-client/components/common/XFormTable/index.md +96 -96
  20. package/src/base-client/components/common/XTable/XTable.vue +505 -505
  21. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +109 -109
  22. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  23. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  24. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  25. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  26. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  27. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  28. package/src/base-client/plugins/AppData.js +70 -70
  29. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  30. package/src/base-client/plugins/PagedList.js +177 -177
  31. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  32. package/src/base-client/plugins/i18n-extend.js +32 -32
  33. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  34. package/src/components/Ellipsis/index.md +38 -38
  35. package/src/components/NumberInfo/index.md +43 -43
  36. package/src/components/STable/README.md +341 -341
  37. package/src/components/STable/index.js +318 -318
  38. package/src/components/Trend/index.md +45 -45
  39. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  40. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  41. package/src/components/exception/ExceptionPage.vue +70 -70
  42. package/src/components/form/FormRow.vue +52 -52
  43. package/src/components/index.js +36 -36
  44. package/src/components/menu/SideMenu.vue +62 -62
  45. package/src/components/menu/menu.js +273 -273
  46. package/src/components/page/header/index.less +40 -40
  47. package/src/components/setting/Setting.vue +235 -235
  48. package/src/components/table/StandardTable.vue +141 -141
  49. package/src/components/table/advance/ActionColumns.vue +158 -158
  50. package/src/components/table/advance/SearchArea.vue +355 -355
  51. package/src/components/tool/AStepItem.vue +60 -60
  52. package/src/components/tool/AvatarList.vue +68 -68
  53. package/src/components/tool/Drawer.vue +142 -142
  54. package/src/components/tool/TagSelect.vue +83 -83
  55. package/src/components/transition/PageToggleTransition.vue +97 -97
  56. package/src/config/CreateQueryConfig.js +307 -307
  57. package/src/config/default/admin.config.js +18 -18
  58. package/src/config/default/setting.config.js +44 -44
  59. package/src/config/replacer/resolve.config.js +67 -67
  60. package/src/layouts/AdminLayout.vue +174 -174
  61. package/src/layouts/CommonLayout.vue +42 -42
  62. package/src/layouts/ComponentLayoutOne.vue +47 -47
  63. package/src/layouts/PageLayout.vue +151 -151
  64. package/src/layouts/SinglePageView.vue +111 -111
  65. package/src/layouts/footer/PageFooter.vue +49 -49
  66. package/src/layouts/header/AdminHeader.vue +104 -104
  67. package/src/layouts/header/HeaderAvatar.vue +61 -61
  68. package/src/layouts/header/HeaderNotice.vue +176 -176
  69. package/src/layouts/header/HeaderSearch.vue +67 -67
  70. package/src/layouts/header/InstitutionDetail.vue +181 -181
  71. package/src/layouts/header/index.less +92 -92
  72. package/src/layouts/tabs/TabsHead.vue +190 -190
  73. package/src/layouts/tabs/TabsView.vue +379 -379
  74. package/src/mock/goods/index.js +108 -108
  75. package/src/pages/exception/404.vue +25 -25
  76. package/src/pages/login/Login.vue +363 -363
  77. package/src/pages/report/ReportTable.js +124 -124
  78. package/src/pages/report/ReportTableHome.vue +28 -28
  79. package/src/pages/resourceManage/orgListManage.vue +98 -98
  80. package/src/pages/system/dictionary/index.vue +43 -43
  81. package/src/pages/system/file/index.vue +317 -317
  82. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  83. package/src/pages/system/monitor/operLog/index.vue +36 -36
  84. package/src/pages/system/queryParams/index.vue +43 -43
  85. package/src/router/async/config.async.js +27 -27
  86. package/src/router/async/router.map.js +68 -68
  87. package/src/router/guards.js +113 -113
  88. package/src/router/index.js +27 -27
  89. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  90. package/src/services/api/LogDetailsViewApi.js +10 -10
  91. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  92. package/src/services/api/TicketDetailsViewApi.js +34 -34
  93. package/src/services/api/cas.js +79 -79
  94. package/src/services/api/commonTempTable.js +10 -10
  95. package/src/services/api/index.js +17 -17
  96. package/src/services/api/logininfor/index.js +6 -6
  97. package/src/services/api/manage.js +8 -8
  98. package/src/services/apiService.js +13 -13
  99. package/src/services/user.js +53 -53
  100. package/src/store/modules/index.js +4 -4
  101. package/src/theme/default/nprogress.less +76 -76
  102. package/src/theme/default/style.less +47 -47
  103. package/src/utils/colors.js +107 -107
  104. package/src/utils/excel/Blob.js +180 -180
  105. package/src/utils/excel/Export2Excel.js +141 -141
  106. package/src/utils/formatter.js +68 -68
  107. package/src/utils/i18n.js +80 -80
  108. package/src/utils/indexedDB.js +145 -145
  109. package/src/utils/theme-color-replacer-extend.js +91 -91
  110. package/src/utils/themeUtil.js +100 -100
  111. package/src/utils/util.js +230 -230
  112. package/vue.config.js +106 -106
@@ -1,49 +1,49 @@
1
- <template>
2
- <div class="footer">
3
- <div class="links">
4
- <a target="_blank" :key="index" :href="item.link ? item.link : 'javascript: void(0)'" v-for="(item, index) in linkList">
5
- <a-icon v-if="item.icon" :type="item.icon"/>{{ item.name }}
6
- </a>
7
- </div>
8
- <div class="copyright" v-if="!copyrightStyle">
9
- Copyright<a-icon type="copyright" />{{ copyright }}
10
- </div>
11
- <div class="copyright2" :style="copyrightStyle" v-else>
12
- {{ copyright }}
13
- </div>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- export default {
19
- name: 'PageFooter',
20
- // eslint-disable-next-line vue/require-prop-types
21
- props: ['copyright', 'linkList', 'copyrightStyle']
22
- }
23
- </script>
24
-
25
- <style lang="less" scoped>
26
- .footer{
27
- padding: 48px 16px 24px;
28
- /*margin: 48px 0 24px;*/
29
- text-align: center;
30
- .copyright{
31
- color: @text-color-second;
32
- font-size: 14px;
33
- i {
34
- margin: 0 4px;
35
- }
36
- }
37
- .links{
38
- margin-bottom: 8px;
39
- a:not(:last-child) {
40
- margin-right: 40px;
41
- }
42
- a{
43
- color: @text-color-second;
44
- -webkit-transition: all .3s;
45
- transition: all .3s;
46
- }
47
- }
48
- }
49
- </style>
1
+ <template>
2
+ <div class="footer">
3
+ <div class="links">
4
+ <a target="_blank" :key="index" :href="item.link ? item.link : 'javascript: void(0)'" v-for="(item, index) in linkList">
5
+ <a-icon v-if="item.icon" :type="item.icon"/>{{ item.name }}
6
+ </a>
7
+ </div>
8
+ <div class="copyright" v-if="!copyrightStyle">
9
+ Copyright<a-icon type="copyright" />{{ copyright }}
10
+ </div>
11
+ <div class="copyright2" :style="copyrightStyle" v-else>
12
+ {{ copyright }}
13
+ </div>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ export default {
19
+ name: 'PageFooter',
20
+ // eslint-disable-next-line vue/require-prop-types
21
+ props: ['copyright', 'linkList', 'copyrightStyle']
22
+ }
23
+ </script>
24
+
25
+ <style lang="less" scoped>
26
+ .footer{
27
+ padding: 48px 16px 24px;
28
+ /*margin: 48px 0 24px;*/
29
+ text-align: center;
30
+ .copyright{
31
+ color: @text-color-second;
32
+ font-size: 14px;
33
+ i {
34
+ margin: 0 4px;
35
+ }
36
+ }
37
+ .links{
38
+ margin-bottom: 8px;
39
+ a:not(:last-child) {
40
+ margin-right: 40px;
41
+ }
42
+ a{
43
+ color: @text-color-second;
44
+ -webkit-transition: all .3s;
45
+ transition: all .3s;
46
+ }
47
+ }
48
+ }
49
+ </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>
@@ -1,61 +1,61 @@
1
- <template>
2
- <a-dropdown>
3
- <div class="header-avatar" style="cursor: pointer">
4
- <a-avatar class="avatar" size="small" shape="circle" :src="user.avatar"/>
5
- <span class="name">{{ user.name }}</span>
6
- </div>
7
- <a-menu :class="['avatar-menu']" slot="overlay">
8
- <a-menu-item>
9
- <a-icon type="user" />
10
- <span>个人中心</span>
11
- </a-menu-item>
12
- <a-menu-item>
13
- <a-icon type="setting" />
14
- <span>设置</span>
15
- </a-menu-item>
16
- <a-menu-divider />
17
- <a-menu-item @click="logout">
18
- <a-icon style="margin-right: 8px;" type="poweroff" />
19
- <span>退出登录</span>
20
- </a-menu-item>
21
- </a-menu>
22
- </a-dropdown>
23
- </template>
24
-
25
- <script>
26
- import { mapGetters } from 'vuex'
27
- import { logout } from '@vue2-client/services/user'
28
-
29
- export default {
30
- name: 'HeaderAvatar',
31
- computed: {
32
- ...mapGetters('account', ['user'])
33
- },
34
- methods: {
35
- logout () {
36
- logout().finally(res => {
37
- location.href = '/login'
38
- })
39
- }
40
- }
41
- }
42
- </script>
43
-
44
- <style lang="less">
45
- .header-avatar{
46
- display: inline-flex;
47
- .avatar, .name{
48
- align-self: center;
49
- }
50
- .avatar{
51
- margin-right: 8px;
52
- }
53
- .name{
54
- font-weight: 500;
55
- }
56
- }
57
- .avatar-menu{
58
- width: 150px;
59
- }
60
-
61
- </style>
1
+ <template>
2
+ <a-dropdown>
3
+ <div class="header-avatar" style="cursor: pointer">
4
+ <a-avatar class="avatar" size="small" shape="circle" :src="user.avatar"/>
5
+ <span class="name">{{ user.name }}</span>
6
+ </div>
7
+ <a-menu :class="['avatar-menu']" slot="overlay">
8
+ <a-menu-item>
9
+ <a-icon type="user" />
10
+ <span>个人中心</span>
11
+ </a-menu-item>
12
+ <a-menu-item>
13
+ <a-icon type="setting" />
14
+ <span>设置</span>
15
+ </a-menu-item>
16
+ <a-menu-divider />
17
+ <a-menu-item @click="logout">
18
+ <a-icon style="margin-right: 8px;" type="poweroff" />
19
+ <span>退出登录</span>
20
+ </a-menu-item>
21
+ </a-menu>
22
+ </a-dropdown>
23
+ </template>
24
+
25
+ <script>
26
+ import { mapGetters } from 'vuex'
27
+ import { logout } from '@vue2-client/services/user'
28
+
29
+ export default {
30
+ name: 'HeaderAvatar',
31
+ computed: {
32
+ ...mapGetters('account', ['user'])
33
+ },
34
+ methods: {
35
+ logout () {
36
+ logout().finally(res => {
37
+ location.href = '/login'
38
+ })
39
+ }
40
+ }
41
+ }
42
+ </script>
43
+
44
+ <style lang="less">
45
+ .header-avatar{
46
+ display: inline-flex;
47
+ .avatar, .name{
48
+ align-self: center;
49
+ }
50
+ .avatar{
51
+ margin-right: 8px;
52
+ }
53
+ .name{
54
+ font-weight: 500;
55
+ }
56
+ }
57
+ .avatar-menu{
58
+ width: 150px;
59
+ }
60
+
61
+ </style>