vue2-client 1.2.42 → 1.2.45

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 (66) hide show
  1. package/CHANGELOG.md +114 -109
  2. package/docs/notice.md +22 -22
  3. package/package.json +1 -1
  4. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +555 -555
  5. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  6. package/src/base-client/components/common/XAddForm/XAddForm.vue +339 -339
  7. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +316 -316
  8. package/src/base-client/components/common/XForm/XForm.vue +275 -275
  9. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +225 -225
  10. package/src/base-client/components/iot/DataAnalysisView/DataAnalysisView.vue +244 -244
  11. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +452 -452
  12. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +330 -330
  13. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  14. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +121 -121
  15. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
  16. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +276 -276
  17. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +469 -469
  18. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +379 -379
  19. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +359 -359
  20. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +335 -335
  21. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +184 -184
  22. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +291 -291
  23. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +236 -236
  24. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +256 -256
  25. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +189 -189
  26. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +722 -722
  27. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +231 -231
  28. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +247 -247
  29. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +370 -370
  30. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +1 -1
  31. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  32. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  33. package/src/base-client/plugins/AppData.js +67 -67
  34. package/src/base-client/plugins/GetLoginInfoService.js +252 -252
  35. package/src/components/exception/ExceptionPage.vue +70 -70
  36. package/src/components/menu/SideMenu.vue +1 -1
  37. package/src/components/setting/Setting.vue +235 -235
  38. package/src/config/default/setting.config.js +39 -35
  39. package/src/config/index.js +3 -3
  40. package/src/layouts/SinglePageView.vue +78 -70
  41. package/src/layouts/header/AdminHeader.vue +1 -1
  42. package/src/layouts/header/HeaderNotice.vue +97 -97
  43. package/src/layouts/tabs/TabsView.vue +16 -1
  44. package/src/pages/exception/403.vue +21 -25
  45. package/src/pages/exception/404.vue +21 -25
  46. package/src/pages/exception/500.vue +21 -25
  47. package/src/pages/login/Login.vue +5 -12
  48. package/src/pages/report/ReportTableHome.vue +28 -28
  49. package/src/pages/resourceManage/depListManage.vue +23 -23
  50. package/src/pages/resourceManage/funListManage.vue +23 -23
  51. package/src/pages/resourceManage/index.js +15 -15
  52. package/src/pages/resourceManage/orgListManage.vue +98 -98
  53. package/src/pages/resourceManage/roleListManage.vue +23 -23
  54. package/src/pages/resourceManage/staffListManage.vue +23 -23
  55. package/src/pages/system/ticket/index.vue +1 -1
  56. package/src/pages/system/ticket/submitTicketSuccess.vue +248 -248
  57. package/src/router/async/config.async.js +26 -26
  58. package/src/router/index.js +27 -27
  59. package/src/services/api/common.js +47 -47
  60. package/src/services/api/index.js +39 -39
  61. package/src/services/user.js +34 -34
  62. package/src/store/modules/account.js +2 -2
  63. package/src/theme/default/style.less +47 -47
  64. package/src/utils/indexedDB.js +146 -146
  65. package/src/utils/routerUtil.js +359 -359
  66. package/vue.config.js +143 -143
@@ -1,35 +1,39 @@
1
- // 此配置为系统默认设置
2
- module.exports = {
3
- lang: 'CN', // 语言,可选 CN(简体)、HK(繁体)、US(英语),也可扩展其它语言
4
- theme: { // 主题
5
- color: '#1890ff', // 主题色
6
- mode: 'dark', // 主题模式 可选 dark、 light 和 night
7
- success: '#52c41a', // 成功色
8
- warning: '#faad14', // 警告色
9
- error: '#f5222f' // 错误色
10
- },
11
- layout: 'side', // 导航布局,可选 side 和 head,分别为侧边导航和顶部导航
12
- fixedHeader: true, // 固定头部状态栏,true:固定,false:不固定
13
- fixedSideBar: true, // 固定侧边栏,true:固定,false:不固定
14
- fixedTabs: true, // 固定页签头,true:固定,false:不固定
15
- pageWidth: 'fixed', // 内容区域宽度,fixed:固定宽度,fluid:流式宽度
16
- weekMode: false, // 色弱模式,true:开启,false:不开启
17
- multiPage: true, // 多页签模式,true:开启,false:不开启
18
- cachePage: true, // 是否缓存页面数据,仅多页签模式下生效,true 缓存, false 不缓存
19
- hideSetting: false, // 隐藏设置抽屉,true:隐藏,false:不隐藏
20
- homePage: '/system/dictionaryManage', // 首页路由, 登陆后默认打开
21
- ticketPage: '/submitTicket', // 提交工单路由
22
- systemName: '基础组件平台', // 系统名称
23
- systemDesc: '为PC端中、后台系统业务开发提供支持', // 系统描述
24
- copyright: '2022 AoFengSoft', // copyright
25
- asyncRoutes: true, // 异步加载路由,true:开启,false:不开启
26
- showPageTitle: true, // 是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示
27
- filterMenu: true, // 根据权限过滤菜单,true:过滤,false:不过滤
28
- animate: { // 动画设置
29
- disabled: true, // 禁用动画,true:禁用,false:启用
30
- name: 'lightSpeed', // 动画效果,支持的动画效果可参考 ./animate.config.js
31
- direction: 'left' // 动画方向,切换页面时动画的方向,参考 ./animate.config.js
32
- },
33
- footerLinks: [ // 页面底部链接,{link: '链接地址', name: '名称/显示文字', icon: '图标,支持 ant design vue 图标库'}
34
- ]
35
- }
1
+ // 此配置为系统默认设置
2
+ module.exports = {
3
+ lang: 'CN', // 语言,可选 CN(简体)、HK(繁体)、US(英语),也可扩展其它语言
4
+ theme: { // 主题
5
+ color: '#1890ff', // 主题色
6
+ mode: 'dark', // 主题模式 可选 dark、 light 和 night
7
+ success: '#52c41a', // 成功色
8
+ warning: '#faad14', // 警告色
9
+ error: '#f5222f' // 错误色
10
+ },
11
+ layout: 'side', // 导航布局,可选 side 和 head,分别为侧边导航和顶部导航
12
+ fixedHeader: true, // 固定头部状态栏,true:固定,false:不固定
13
+ fixedSideBar: true, // 固定侧边栏,true:固定,false:不固定
14
+ fixedTabs: true, // 固定页签头,true:固定,false:不固定
15
+ pageWidth: 'fixed', // 内容区域宽度,fixed:固定宽度,fluid:流式宽度
16
+ weekMode: false, // 色弱模式,true:开启,false:不开启
17
+ multiPage: true, // 多页签模式,true:开启,false:不开启
18
+ cachePage: true, // 是否缓存页面数据,仅多页签模式下生效,true 缓存, false 不缓存
19
+ hideSetting: false, // 隐藏设置抽屉,true:隐藏,false:不隐藏
20
+ homePage: '/system/dictionaryManage', // 首页路由, 登陆后默认打开
21
+ ticketPage: '/submitTicket', // 提交工单路由
22
+ systemName: '基础组件平台', // 系统名称
23
+ systemDesc: '为PC端中、后台系统业务开发提供支持', // 系统描述
24
+ copyright: '2022 AoFengSoft', // copyright
25
+ asyncRoutes: true, // 异步加载路由,true:开启,false:不开启
26
+ showPageTitle: true, // 是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示
27
+ filterMenu: true, // 根据权限过滤菜单,true:过滤,false:不过滤
28
+ animate: { // 动画设置
29
+ disabled: true, // 禁用动画,true:禁用,false:启用
30
+ name: 'lightSpeed', // 动画效果,支持的动画效果可参考 ./animate.config.js
31
+ direction: 'left' // 动画方向,切换页面时动画的方向,参考 ./animate.config.js
32
+ },
33
+ footerLinks: [ // 页面底部链接,{link: '链接地址', name: '名称/显示文字', icon: '图标,支持 ant design vue 图标库'}
34
+ ],
35
+ // 旧系统路径
36
+ iframeSrc: '../../singlepage/page.html',
37
+ // 兼容V2版本系统 true:启用, false:禁用
38
+ compatibleV2: false
39
+ }
@@ -1,3 +1,3 @@
1
- const { setting } = require('./default')
2
-
3
- module.exports = setting
1
+ const { setting } = require('./default')
2
+
3
+ module.exports = setting
@@ -1,70 +1,78 @@
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="iframeSrc"
7
- class="single-page-iframe"
8
- @load="load">
9
- </iframe>
10
- </template>
11
- </page-toggle-transition>
12
- </template>
13
-
14
- <script>
15
- import PageToggleTransition from '@vue2-client/components/transition/PageToggleTransition'
16
- import { ACCESS_TOKEN } from '@vue2-client/store/mutation-types'
17
- import { mapState, mapMutations } from 'vuex'
18
-
19
- export default {
20
- name: 'SinglePageView',
21
- components: { PageToggleTransition },
22
- props: {
23
- singlePageUrl: {
24
- type: String,
25
- default: ''
26
- }
27
- },
28
- data () {
29
- return {
30
- iframeSrc: '../singlepage/page.html',
31
- iframe: null
32
- }
33
- },
34
- computed: {
35
- ...mapState('setting', ['animate']),
36
- ...mapState('account', ['login'])
37
- },
38
- mounted () {
39
- if (!this.login) {
40
- this.setLogin(JSON.parse(sessionStorage.getItem(process.env.VUE_APP_LOGIN_KEY)))
41
- }
42
- this.iframe = this.$refs.singlepage.contentWindow
43
- },
44
- methods: {
45
- ...mapMutations('account', ['setLogin']),
46
- load () {
47
- const appdata = {
48
- singleValues: this.$appdata.getSingleValues(),
49
- params: this.$appdata.getParams()
50
- }
51
- const data = {
52
- token: localStorage.getItem(ACCESS_TOKEN),
53
- login: this.login,
54
- appdata: appdata,
55
- page: this.singlePageUrl
56
- }
57
- console.log('发送参数', data)
58
- this.iframe?.postMessage(data, '*')
59
- }
60
- }
61
- }
62
- </script>
63
-
64
- <style lang="less">
65
- .single-page-iframe {
66
- width: 100%;
67
- height: calc(100vh - 117px);
68
- border: none;
69
- }
70
- </style>
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="iframeSrc"
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
+
20
+ export default {
21
+ name: 'SinglePageView',
22
+ components: { PageToggleTransition },
23
+ props: {
24
+ singlePageUrl: {
25
+ type: String,
26
+ default: ''
27
+ },
28
+ fullPath: {
29
+ type: String,
30
+ default: ''
31
+ }
32
+ },
33
+ data () {
34
+ return {
35
+ iframe: null
36
+ }
37
+ },
38
+ computed: {
39
+ ...mapState('setting', ['animate', 'iframeSrc']),
40
+ ...mapState('account', ['login'])
41
+ },
42
+ mounted () {
43
+ if (!this.login) {
44
+ this.setLogin(JSON.parse(sessionStorage.getItem(process.env.VUE_APP_LOGIN_KEY)))
45
+ }
46
+ this.iframe = this.$refs.singlepage.contentWindow
47
+ this.path = this.$route.path
48
+ },
49
+ methods: {
50
+ ...mapMutations('account', ['setLogin']),
51
+ load () {
52
+ const appdata = {
53
+ singleValues: this.$appdata.getSingleValues(),
54
+ params: this.$appdata.getParams()
55
+ }
56
+ const data = {
57
+ token: localStorage.getItem(ACCESS_TOKEN),
58
+ login: this.login,
59
+ appdata: appdata,
60
+ page: this.singlePageUrl
61
+ }
62
+ console.log('发送参数', data)
63
+ if (this.iframe) {
64
+ this.iframe.postMessage(data, '*')
65
+ }
66
+ this.$emit('load', this.fullPath)
67
+ }
68
+ }
69
+ }
70
+ </script>
71
+
72
+ <style lang="less">
73
+ .single-page-iframe {
74
+ width: 100%;
75
+ height: calc(100vh - 117px);
76
+ border: none;
77
+ }
78
+ </style>
@@ -2,7 +2,7 @@
2
2
  <a-layout-header :class="[headerTheme, 'admin-header']">
3
3
  <div :class="['admin-header-wide', layout, pageWidth]">
4
4
  <router-link v-if="isMobile || layout === 'head'" to="/" :class="['logo', isMobile ? null : 'pc', headerTheme]">
5
- <img width="32" src="@/assets/img/logo.png" />
5
+ <img width="32" src="@vue2-client/assets/img/logo.png" />
6
6
  <h1 v-if="!isMobile">{{ systemName }}</h1>
7
7
  </router-link>
8
8
  <a-divider v-if="isMobile" type="vertical" />
@@ -1,97 +1,97 @@
1
- <template>
2
- <a-dropdown :trigger="['click']" v-model="show">
3
- <div slot="overlay">
4
- <a-spin :spinning="loading">
5
- <a-tabs class="dropdown-tabs" :tabBarStyle="{textAlign: 'center'}" :style="{width: '297px'}">
6
- <a-tab-pane tab="通知" key="1">
7
- <a-list>
8
- <a-list-item :key="item.id" class="tab-pane" v-for=" item in exception">
9
- <a-list-item-meta :title="'设备号'+ item.e_f_device_id" :description="item.e_f_error_msg" @click="read(item)">
10
- <a-avatar style="background-color: white" slot="avatar" src="https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"/>
11
- </a-list-item-meta>
12
- </a-list-item>
13
- </a-list>
14
- </a-tab-pane>
15
- <a-tab-pane tab="消息" key="2">
16
- <a-list class="tab-pane"></a-list>
17
- </a-tab-pane>
18
- <a-tab-pane tab="待办" key="3">
19
- <a-list class="tab-pane"></a-list>
20
- </a-tab-pane>
21
- </a-tabs>
22
- </a-spin>
23
- </div>
24
- <span @click="fetchNotice" class="header-notice">
25
- <a-badge class="notice-badge" :count=" exception.length">
26
- <a-icon :class="['header-notice-icon']" type="bell" />
27
- </a-badge>
28
- </span>
29
- </a-dropdown>
30
- </template>
31
-
32
- <script>
33
- import { post } from '@vue2-client/services/api'
34
- export default {
35
- name: 'HeaderNotice',
36
- data () {
37
- return {
38
- loading: false,
39
- show: false,
40
- exception: []
41
- }
42
- },
43
- computed: {
44
- },
45
- created () {
46
- this.refresh()
47
- },
48
- methods: {
49
- read (item) {
50
- post('/webmeterapi/saveSingleTable', { data: { tablename: 't_iot_device_exception', param: { id: item.e_id, f_is_read: 1 } } }).then(res => {
51
- this.refresh()
52
- })
53
- },
54
- refresh () {
55
- post('/webmeterapi/commonQuery', { queryParamsName: 'deviceExceptionQueryParams', conditionParams: { e_f_is_read: 0 }, pageNo: 1, pageSize: 999999 }).then(res => {
56
- this.exception = res.data
57
- })
58
- },
59
- fetchNotice () {
60
- if (this.loading) {
61
- this.loading = false
62
- return
63
- }
64
- this.loadding = true
65
- setTimeout(() => {
66
- this.loadding = false
67
- }, 1000)
68
- }
69
- }
70
- }
71
- </script>
72
-
73
- <style lang="less">
74
- .header-notice{
75
- display: inline-block;
76
- transition: all 0.3s;
77
- span {
78
- vertical-align: initial;
79
- }
80
- .notice-badge{
81
- color: inherit;
82
- .header-notice-icon{
83
- font-size: 16px;
84
- padding: 4px;
85
- }
86
- }
87
- }
88
- .dropdown-tabs{
89
- background-color: @base-bg-color;
90
- box-shadow: 0 2px 8px @shadow-color;
91
- border-radius: 4px;
92
- .tab-pane{
93
- padding: 0 24px 12px;
94
- min-height: 250px;
95
- }
96
- }
97
- </style>
1
+ <template>
2
+ <a-dropdown :trigger="['click']" v-model="show">
3
+ <div slot="overlay">
4
+ <a-spin :spinning="loading">
5
+ <a-tabs class="dropdown-tabs" :tabBarStyle="{textAlign: 'center'}" :style="{width: '297px'}">
6
+ <a-tab-pane tab="通知" key="1">
7
+ <a-list>
8
+ <a-list-item :key="item.id" class="tab-pane" v-for=" item in exception">
9
+ <a-list-item-meta :title="'设备号'+ item.e_f_device_id" :description="item.e_f_error_msg" @click="read(item)">
10
+ <a-avatar style="background-color: white" slot="avatar" src="https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"/>
11
+ </a-list-item-meta>
12
+ </a-list-item>
13
+ </a-list>
14
+ </a-tab-pane>
15
+ <a-tab-pane tab="消息" key="2">
16
+ <a-list class="tab-pane"></a-list>
17
+ </a-tab-pane>
18
+ <a-tab-pane tab="待办" key="3">
19
+ <a-list class="tab-pane"></a-list>
20
+ </a-tab-pane>
21
+ </a-tabs>
22
+ </a-spin>
23
+ </div>
24
+ <span @click="fetchNotice" class="header-notice">
25
+ <a-badge class="notice-badge" :count=" exception.length">
26
+ <a-icon :class="['header-notice-icon']" type="bell" />
27
+ </a-badge>
28
+ </span>
29
+ </a-dropdown>
30
+ </template>
31
+
32
+ <script>
33
+ import { post } from '@vue2-client/services/api'
34
+ export default {
35
+ name: 'HeaderNotice',
36
+ data () {
37
+ return {
38
+ loading: false,
39
+ show: false,
40
+ exception: []
41
+ }
42
+ },
43
+ computed: {
44
+ },
45
+ created () {
46
+ this.refresh()
47
+ },
48
+ methods: {
49
+ read (item) {
50
+ post('/webmeterapi/saveSingleTable', { data: { tablename: 't_iot_device_exception', param: { id: item.e_id, f_is_read: 1 } } }).then(res => {
51
+ this.refresh()
52
+ })
53
+ },
54
+ refresh () {
55
+ post('/webmeterapi/commonQuery', { queryParamsName: 'deviceExceptionQueryParams', conditionParams: { e_f_is_read: 0 }, pageNo: 1, pageSize: 999999 }).then(res => {
56
+ this.exception = res.data
57
+ })
58
+ },
59
+ fetchNotice () {
60
+ if (this.loading) {
61
+ this.loading = false
62
+ return
63
+ }
64
+ this.loadding = true
65
+ setTimeout(() => {
66
+ this.loadding = false
67
+ }, 1000)
68
+ }
69
+ }
70
+ }
71
+ </script>
72
+
73
+ <style lang="less">
74
+ .header-notice{
75
+ display: inline-block;
76
+ transition: all 0.3s;
77
+ span {
78
+ vertical-align: initial;
79
+ }
80
+ .notice-badge{
81
+ color: inherit;
82
+ .header-notice-icon{
83
+ font-size: 16px;
84
+ padding: 4px;
85
+ }
86
+ }
87
+ }
88
+ .dropdown-tabs{
89
+ background-color: @base-bg-color;
90
+ box-shadow: 0 2px 8px @shadow-color;
91
+ border-radius: 4px;
92
+ .tab-pane{
93
+ padding: 0 24px 12px;
94
+ min-height: 250px;
95
+ }
96
+ }
97
+ </style>
@@ -19,7 +19,12 @@
19
19
  <router-view ref="tabContent" v-else-if="!refreshing" />
20
20
  </page-toggle-transition>
21
21
  <template v-for="page in single">
22
- <single-page-view v-show="page.meta.singlePage === $route.meta.singlePage" :single-page-url="page.meta.singlePage" :key="page.meta.singlePage" />
22
+ <single-page-view
23
+ v-show="page.meta.singlePage === $route.meta.singlePage"
24
+ :single-page-url="page.meta.singlePage"
25
+ :full-path="page.fullPath"
26
+ :key="page.meta.singlePage"
27
+ @load="onSinglePageLoad" />
23
28
  </template>
24
29
  </div>
25
30
  </admin-layout>
@@ -146,6 +151,12 @@ export default {
146
151
  refresh (key, page) {
147
152
  page = page || this.pageList.find(item => item.path === key)
148
153
  page.loading = true
154
+ // 单页面刷新
155
+ const singlePage = this.allSinglePages.find(item => item.fullPath === key)
156
+ if (singlePage) {
157
+ window.frames[singlePage.fullPath].location.reload()
158
+ return
159
+ }
149
160
  this.clearCache(page)
150
161
  if (key === this.activePage) {
151
162
  // eslint-disable-next-line no-return-assign
@@ -156,6 +167,10 @@ export default {
156
167
  setTimeout(() => page.loading = false, 500)
157
168
  }
158
169
  },
170
+ onSinglePageLoad (fullPath) {
171
+ const page = this.pageList.find(item => item.fullPath === fullPath)
172
+ page.loading = false
173
+ },
159
174
  onContextmenu (pageKey, e) {
160
175
  if (pageKey) {
161
176
  e.preventDefault()
@@ -1,25 +1,21 @@
1
- <template>
2
- <exception-page :home-route="homePage" :style="`min-height: ${minHeight}`" type="403" />
3
- </template>
4
-
5
- <script>
6
- import ExceptionPage from '@vue2-client/components/exception/ExceptionPage'
7
- import { mapState } from 'vuex'
8
- const { homePage } = require('@vue2-client/config')
9
- export default {
10
- name: 'Exp403',
11
- components: { ExceptionPage },
12
- computed: {
13
- homePage () {
14
- return homePage
15
- },
16
- ...mapState('setting', ['pageMinHeight']),
17
- minHeight () {
18
- return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh'
19
- }
20
- }
21
- }
22
- </script>
23
-
24
- <style scoped lang="less">
25
- </style>
1
+ <template>
2
+ <exception-page :home-route="homePage" :style="`min-height: ${minHeight}`" type="403" />
3
+ </template>
4
+
5
+ <script>
6
+ import ExceptionPage from '@vue2-client/components/exception/ExceptionPage'
7
+ import { mapState } from 'vuex'
8
+ export default {
9
+ name: 'Exp403',
10
+ components: { ExceptionPage },
11
+ computed: {
12
+ ...mapState('setting', ['pageMinHeight', 'homePage']),
13
+ minHeight () {
14
+ return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh'
15
+ }
16
+ }
17
+ }
18
+ </script>
19
+
20
+ <style scoped lang="less">
21
+ </style>
@@ -1,25 +1,21 @@
1
- <template>
2
- <exception-page :home-route="homePage" :style="`min-height: ${minHeight}`" type="404" />
3
- </template>
4
-
5
- <script>
6
- import ExceptionPage from '@vue2-client/components/exception/ExceptionPage'
7
- import { mapState } from 'vuex'
8
- const { homePage } = require('@vue2-client/config')
9
- export default {
10
- name: 'Exp404',
11
- components: { ExceptionPage },
12
- computed: {
13
- homePage () {
14
- return homePage
15
- },
16
- ...mapState('setting', ['pageMinHeight']),
17
- minHeight () {
18
- return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh'
19
- }
20
- }
21
- }
22
- </script>
23
-
24
- <style scoped lang="less">
25
- </style>
1
+ <template>
2
+ <exception-page :home-route="homePage" :style="`min-height: ${minHeight}`" type="404" />
3
+ </template>
4
+
5
+ <script>
6
+ import ExceptionPage from '@vue2-client/components/exception/ExceptionPage'
7
+ import { mapState } from 'vuex'
8
+ export default {
9
+ name: 'Exp404',
10
+ components: { ExceptionPage },
11
+ computed: {
12
+ ...mapState('setting', ['pageMinHeight', 'homePage']),
13
+ minHeight () {
14
+ return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh'
15
+ }
16
+ }
17
+ }
18
+ </script>
19
+
20
+ <style scoped lang="less">
21
+ </style>
@@ -1,25 +1,21 @@
1
- <template>
2
- <exception-page :home-route="homePage" :style="`min-height: ${minHeight}`" type="500" />
3
- </template>
4
-
5
- <script>
6
- import ExceptionPage from '@vue2-client/components/exception/ExceptionPage'
7
- import { mapState } from 'vuex'
8
- const { homePage } = require('@vue2-client/config')
9
- export default {
10
- name: 'Exp500',
11
- components: { ExceptionPage },
12
- computed: {
13
- homePage () {
14
- return homePage
15
- },
16
- ...mapState('setting', ['pageMinHeight']),
17
- minHeight () {
18
- return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh'
19
- }
20
- }
21
- }
22
- </script>
23
-
24
- <style scoped lang="less">
25
- </style>
1
+ <template>
2
+ <exception-page :home-route="homePage" :style="`min-height: ${minHeight}`" type="500" />
3
+ </template>
4
+
5
+ <script>
6
+ import ExceptionPage from '@vue2-client/components/exception/ExceptionPage'
7
+ import { mapState } from 'vuex'
8
+ export default {
9
+ name: 'Exp500',
10
+ components: { ExceptionPage },
11
+ computed: {
12
+ ...mapState('setting', ['pageMinHeight', 'homePage']),
13
+ minHeight () {
14
+ return this.pageMinHeight ? this.pageMinHeight + 'px' : '100vh'
15
+ }
16
+ }
17
+ }
18
+ </script>
19
+
20
+ <style scoped lang="less">
21
+ </style>