n20-common-lib 2.7.0-beta.14 → 2.7.0-beta.16

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 (94) hide show
  1. package/package.json +1 -1
  2. package/src/assets/.DS_Store +0 -0
  3. package/src/assets/css/_coreLib.scss +4 -1
  4. package/src/assets/css/advanced-filter.scss +216 -0
  5. package/src/assets/css/cl-layout-header.scss +3 -1
  6. package/src/assets/css/cl-pagination.scss +34 -4
  7. package/src/assets/css/{cl-dialog.scss → dialog.scss} +10 -7
  8. package/src/assets/css/filter.scss +1 -178
  9. package/src/assets/css/font-icon.scss +3 -8
  10. package/src/assets/css/normalize.scss +12 -1
  11. package/src/assets/getJsonc.js +2 -2
  12. package/src/assets/iconFont/demo_index.html +1950 -1129
  13. package/src/assets/iconFont/iconfont.css +182 -68
  14. package/src/assets/iconFont/iconfont.js +1 -66
  15. package/src/assets/iconFont/iconfont.json +196 -0
  16. package/src/assets/iconFont/iconfont.ttf +0 -0
  17. package/src/assets/iconFont/iconfont.woff +0 -0
  18. package/src/assets/iconFont/iconfont.woff2 +0 -0
  19. package/src/assets/realUrl.js +1 -1
  20. package/src/components/.DS_Store +0 -0
  21. package/src/components/AdvancedFilter/FormItem.vue +41 -0
  22. package/src/components/AdvancedFilter/formItemRender.vue +63 -32
  23. package/src/components/AdvancedFilter/index.vue +52 -19
  24. package/src/components/Anchor/AnchorItem.vue +5 -0
  25. package/src/components/Anchor/index.vue +23 -1
  26. package/src/components/ApprovalButtons/index.vue +49 -10
  27. package/src/components/ApprovalButtons/showAppOpi.vue +5 -3
  28. package/src/components/ApprovalCard/index.vue +1 -1
  29. package/src/components/DateChoose/index.vue +278 -0
  30. package/src/components/DatePicker/por.vue +1 -1
  31. package/src/components/Descriptions/index.vue +4 -0
  32. package/src/components/ElectronicArchive/index.vue +1 -0
  33. package/src/components/FileUploadTable/index.vue +90 -29
  34. package/src/components/InputNumber/index.vue +1 -0
  35. package/src/components/Layout/HeaderWrap/changePwd.vue +2 -2
  36. package/src/components/Layout/HeaderWrap/indexN.vue +39 -35
  37. package/src/components/Layout/indexN.vue +14 -3
  38. package/src/components/Pagination/index.vue +25 -137
  39. package/src/components/Pagination/remotePagination.vue +201 -0
  40. package/src/components/Pagination/staticPagination.vue +156 -0
  41. package/src/components/SecondaryTab/index.vue +27 -1
  42. package/src/components/TablePro/index.vue +4 -3
  43. package/src/directives/VRuleKey/index.js +7 -4
  44. package/src/index.js +3 -4
  45. package/style/fonts/iconfont.1676b4d9.woff2 +0 -0
  46. package/{src/assets/iconFont5/iconfont.ttf → style/fonts/iconfont.2be34155.ttf} +0 -0
  47. package/style/fonts/iconfont.ac432622.woff +0 -0
  48. package/style/index.css +2 -2
  49. package/theme/blue.css +2 -2
  50. package/theme/cctcRed.css +2 -2
  51. package/theme/fonts/iconfont.1676b4d9.woff2 +0 -0
  52. package/{style/fonts/iconfont.06971f9f.ttf → theme/fonts/iconfont.2be34155.ttf} +0 -0
  53. package/theme/fonts/iconfont.ac432622.woff +0 -0
  54. package/theme/green.css +2 -2
  55. package/theme/lightBlue.css +2 -2
  56. package/theme/orange.css +2 -2
  57. package/theme/purple.css +2 -2
  58. package/theme/red.css +2 -2
  59. package/theme/yellow.css +2 -2
  60. package/src/assets/iconFont3/demo.css +0 -539
  61. package/src/assets/iconFont3/demo_index.html +0 -1936
  62. package/src/assets/iconFont3/iconfont.css +0 -319
  63. package/src/assets/iconFont3/iconfont.js +0 -1
  64. package/src/assets/iconFont3/iconfont.json +0 -541
  65. package/src/assets/iconFont3/iconfont.ttf +0 -0
  66. package/src/assets/iconFont3/iconfont.woff +0 -0
  67. package/src/assets/iconFont3/iconfont.woff2 +0 -0
  68. package/src/assets/iconFont4/demo.css +0 -539
  69. package/src/assets/iconFont4/demo_index.html +0 -2005
  70. package/src/assets/iconFont4/iconfont.css +0 -331
  71. package/src/assets/iconFont4/iconfont.js +0 -1
  72. package/src/assets/iconFont4/iconfont.json +0 -562
  73. package/src/assets/iconFont4/iconfont.ttf +0 -0
  74. package/src/assets/iconFont4/iconfont.woff +0 -0
  75. package/src/assets/iconFont4/iconfont.woff2 +0 -0
  76. package/src/assets/iconFont5/demo.css +0 -539
  77. package/src/assets/iconFont5/demo_index.html +0 -2281
  78. package/src/assets/iconFont5/iconfont.css +0 -379
  79. package/src/assets/iconFont5/iconfont.js +0 -1
  80. package/src/assets/iconFont5/iconfont.json +0 -646
  81. package/src/assets/iconFont5/iconfont.woff +0 -0
  82. package/src/assets/iconFont5/iconfont.woff2 +0 -0
  83. package/src/components/Pagination/mixins/index.js +0 -39
  84. package/style/fonts/iconfont.47f5da25.woff2 +0 -0
  85. package/style/fonts/iconfont.6ad948fe.woff +0 -0
  86. package/style/fonts/iconfont.76d19005.woff2 +0 -0
  87. package/style/fonts/iconfont.84848783.woff2 +0 -0
  88. package/style/fonts/iconfont.85c70ef9.ttf +0 -0
  89. package/style/fonts/iconfont.a3597821.woff +0 -0
  90. package/style/fonts/iconfont.ab8c366d.ttf +0 -0
  91. package/style/fonts/iconfont.b7ea4726.woff +0 -0
  92. package/style/fonts/iconfont.e6bdbf43.woff2 +0 -0
  93. package/style/fonts/iconfont.f1777a50.woff +0 -0
  94. package/style/fonts/iconfont.fbdd69b3.ttf +0 -0
@@ -125,7 +125,7 @@ export default {
125
125
  .post(
126
126
  '/bems/prod_1.0/uas/api/authorization/password/validate',
127
127
  {
128
- username: this.form.username,
128
+ // username: this.form.username,
129
129
  password: value
130
130
  },
131
131
  { noMsg: true, loading: false }
@@ -181,7 +181,7 @@ export default {
181
181
  .post(
182
182
  '/bems/prod_1.0/uas/api/authorization/password/update',
183
183
  {
184
- username: this.form.username,
184
+ password: this.form.orginPassword,
185
185
  newPassword: this.form.newPassword
186
186
  },
187
187
  {
@@ -24,7 +24,7 @@
24
24
  <svg class="icon" aria-hidden="true">
25
25
  <use xlink:href="#n20-icon-caidan"></use>
26
26
  </svg>
27
- <span class="m-l-ss f-s-b color-primary">{{ $lc('系统切换') }}</span>
27
+ <span class="m-l-ss f-s-b color-primary">{{ $lc('导航') }}</span>
28
28
  <svg class="icon m-l-ss f-s-s" aria-hidden="true">
29
29
  <use xlink:href="#n20-icon-lujing"></use>
30
30
  </svg>
@@ -375,12 +375,12 @@ export default {
375
375
  created() {
376
376
  getJsonc('/server-config.jsonc').then(({ _layoutData = {}, loginSetting }) => {
377
377
  let _loginSetting = loginSetting || _layoutData.loginSetting
378
- this.headerLogoUrl = realUrl(_layoutData.headerLogoUrl, true)
378
+ this.headerLogoUrl = realUrl(_layoutData.headerLogoUrl)
379
379
  this.headerLogoWidth = _layoutData.headerLogoWidth
380
380
  this.headerLogoHeight = _layoutData.headerLogoHeight
381
381
  this.headerTitle = _layoutData.headerTitle
382
382
  this.headerColor = _layoutData.headerColor
383
- this.headerBgUrl = realUrl(_layoutData.headerBgUrl, true)
383
+ this.headerBgUrl = realUrl(_layoutData.headerBgUrl)
384
384
  this.headerBgColor = _layoutData.headerBgColor
385
385
  this.hideHelpDoc = _layoutData.hideHelpDoc
386
386
  this.hideLang = _layoutData.hideLang
@@ -393,7 +393,7 @@ export default {
393
393
  this.show = true
394
394
 
395
395
  this.getUserImg().catch(() => {
396
- this.headerUserUrl = realUrl(_layoutData.headerUserUrl, true)
396
+ this.headerUserUrl = realUrl(_layoutData.headerUserUrl)
397
397
  })
398
398
 
399
399
  this.getByLabel().then(() => {
@@ -439,39 +439,43 @@ export default {
439
439
  },
440
440
  setMenuData(menuTree) {
441
441
  let system_list = JSON.parse(localStorage.getItem('SYSTEM_LIST'))
442
- this.headerSystem = system_list.map((system) => {
443
- const icon =
444
- {
445
- CSZHYW: '#n20-icon-zhcsyw',
446
- CSYWGL: '#n20-icon-bianzu',
447
- CSFZJC: '#n20-icon-a-bianzu70',
448
- CSWY: '#n20-icon-a-bianzu69',
449
- JTZL: '#n20-icon-a-bianzu3',
450
- JRWG: '#n20-icon-a-bianzu1',
451
- JTSKYWGK: '#n20-icon-a-bianzu701',
452
- JTSKSJFX: '#n20-icon-a-bianzu2'
453
- }[system.NO] || ''
442
+ this.headerSystem = system_list
443
+ .map((system) => {
444
+ const icon =
445
+ {
446
+ CSZHYW: '#n20-icon-zhcsyw',
447
+ CSYWGL: '#n20-icon-bianzu',
448
+ CSFZJC: '#n20-icon-a-bianzu70',
449
+ CSWY: '#n20-icon-a-bianzu69',
450
+ JTZL: '#n20-icon-a-bianzu3',
451
+ JRWG: '#n20-icon-a-bianzu1',
452
+ JTSKYWGK: '#n20-icon-a-bianzu701',
453
+ JTSKSJFX: '#n20-icon-a-bianzu2'
454
+ }[system.NO] || ''
454
455
 
455
- system.icon = icon
456
- system.menuTree = menuTree
457
- ?.filter((menu) => menu.systemNo === system.NO && menu.isBackmenu === '0')
458
- .map((menu) => ({
459
- ...menu,
460
- icon:
461
- {
462
- CSZHYW: '#n20-icon-zhcsyw',
463
- CSYWGL: '#n20-icon-bianzu',
464
- CSFZJC: '#n20-icon-a-bianzu70',
465
- CSWY: '#n20-icon-a-bianzu69',
466
- JTZL: '#n20-icon-a-bianzu3',
467
- JRWG: '#n20-icon-a-bianzu1',
468
- JTSKYWGK: '#n20-icon-a-bianzu701',
469
- JTSKSJFX: '#n20-icon-a-bianzu2'
470
- }[menu.NO] || ''
471
- }))
472
- return system
473
- })
456
+ system.icon = icon
457
+ system.menuTree = menuTree
458
+ ?.filter((menu) => menu.systemNo === system.NO && menu.isBackmenu === '0' && menu.children?.length > 0)
459
+ .map((menu) => ({
460
+ ...menu,
461
+ icon:
462
+ {
463
+ CSZHYW: '#n20-icon-zhcsyw',
464
+ CSYWGL: '#n20-icon-bianzu',
465
+ CSFZJC: '#n20-icon-a-bianzu70',
466
+ CSWY: '#n20-icon-a-bianzu69',
467
+ JTZL: '#n20-icon-a-bianzu3',
468
+ JRWG: '#n20-icon-a-bianzu1',
469
+ JTSKYWGK: '#n20-icon-a-bianzu701',
470
+ JTSKSJFX: '#n20-icon-a-bianzu2'
471
+ }[menu.NO] || ''
472
+ }))
473
+
474
+ return system
475
+ })
476
+ .filter((item) => item.menuTree?.length > 0)
474
477
  this.showDrawerBox = !this.showDrawerBox
478
+ console.log(this.headerSystem)
475
479
  this.$emit('clickSystem', this.headerSystem, this.showDrawerBox)
476
480
  },
477
481
 
@@ -220,7 +220,8 @@ export default {
220
220
  m.route = base + m.route.replace(/\/$/, '')
221
221
  m.route || (m.route = '/')
222
222
  m.uuid = m.route
223
-
223
+ // 新增一个字段用于接收初始化的url携带参数的处理之后的url
224
+ m.originPath = getBeforeQuestionMark(m.route)
224
225
  menuList.push(m)
225
226
  }
226
227
  })
@@ -239,6 +240,7 @@ export default {
239
240
  this.menusC = menus
240
241
  this.menuList = menuList
241
242
  },
243
+
242
244
  getTabList() {
243
245
  let tabList = JSON.parse(window.sessionStorage.getItem('tab-list')) || []
244
246
  this.tabList = tabList
@@ -287,7 +289,6 @@ export default {
287
289
  },
288
290
  tabClick(tab) {
289
291
  this.activeNav = tab.uuid
290
-
291
292
  this.routerPush({
292
293
  path: tab.route,
293
294
  query: tab.query
@@ -486,8 +487,18 @@ export default {
486
487
  }
487
488
  }
488
489
 
490
+ // 处理携带参数的url,只取参数之前的路径
491
+ function getBeforeQuestionMark(url) {
492
+ const questionMarkIndex = url.indexOf('?')
493
+ if (questionMarkIndex !== -1) {
494
+ return url.slice(0, questionMarkIndex)
495
+ }
496
+ return url
497
+ }
498
+
489
499
  function getShowUuid(uuid, list) {
490
- let menu = list.find((m) => m.uuid === uuid)
500
+ // uuid去菜单中找对应的uuid或者originPath,originPath主要用与匹配初始化的菜单上携带参数的问题
501
+ let menu = list.find((m) => m.uuid === uuid || m.originPath === uuid)
491
502
  if (menu) {
492
503
  return menu.hide ? menu.pid : menu.uuid
493
504
  }
@@ -1,78 +1,13 @@
1
- <template>
2
- <div class="n20-pagination-1">
3
- <el-pagination
4
- layout="prev,next,slot"
5
- :current-page.sync="pageObjC[pageKey.no]"
6
- :page-size="pageObjC[pageKey.size]"
7
- :total="pageObjC[pageKey.total]"
8
- :size="size"
9
- @current-change="setnoOrsize"
10
- />
11
- <span class="m-r-ss"
12
- ><span class="color-primary">{{ pageObjC[pageKey.no] }}</span
13
- >/{{ max }}</span
14
- >
15
- <span>{{ '到第' | $lc }}</span>
16
- <el-input-number
17
- v-model="toNo"
18
- class="n20-pagination-jumper-1 m-r-ss"
19
- :min="1"
20
- :max="max"
21
- :step="1"
22
- :step-strictly="true"
23
- :controls="false"
24
- :size="size"
25
- @change="setnoOrsize"
26
- />
27
- <span class="m-r-s">{{ '页' | $lc }}</span>
28
- <el-popover v-model="settingV" placement="top" trigger="click">
29
- <el-link slot="reference" icon="n20-icon-shezhi" :underline="false" style="font-size: 16px" />
30
- <div>
31
- <span>{{ '每页显示' | $lc }}</span>
32
- <el-radio-group
33
- v-model="pageObjC[pageKey.size]"
34
- class="n20-pagination-sizes-1 m-l-s"
35
- size="mini"
36
- @change="
37
- () => {
38
- setnoOrsize()
39
- settingV = false
40
- }
41
- "
42
- >
43
- <el-radio-button v-for="item in pageSizes" :key="item" class="m-r-s" :label="item" />
44
- </el-radio-group>
45
- <el-input-number
46
- v-model="userSize"
47
- class="n20-pagination-usersizes-1"
48
- :class="{
49
- 'is-active': !pageSizes.includes(pageObjC[pageKey.size])
50
- }"
51
- :min="1"
52
- :max="sizeMax"
53
- :step="1"
54
- :step-strictly="true"
55
- :controls="false"
56
- size="mini"
57
- :placeholder="'自定义' | $lc"
58
- @change="
59
- () => {
60
- setnoOrsize()
61
- settingV = false
62
- }
63
- "
64
- />
65
- </div>
66
- </el-popover>
67
- </div>
68
- </template>
69
-
70
1
  <script>
71
- import mixins from './mixins/index.js'
72
- import { $lc } from '../../utils/i18n/index.js'
2
+ import RemotePagination from './remotePagination.vue'
3
+ import StaticPagination from './staticPagination.vue'
4
+
73
5
  export default {
74
6
  name: 'Pagination',
75
- mixins: [mixins],
7
+ components: {
8
+ RemotePagination,
9
+ StaticPagination
10
+ },
76
11
  props: {
77
12
  size: {
78
13
  type: String,
@@ -111,71 +46,24 @@ export default {
111
46
  default: 'page/pId'
112
47
  }
113
48
  },
114
- data() {
115
- return {
116
- settingV: false,
117
- noOrsize: '',
118
- pageObjC: {}
119
- }
120
- },
121
- computed: {
122
- max() {
123
- let total = this.pageObj[this.pageKey.total]
124
- let size = this.pageObj[this.pageKey.size]
125
- return Math.ceil(total / size) || 1
126
- },
127
- toNo: {
128
- get() {
129
- return this.pageObjC[this.pageKey.no]
130
- },
131
- set(val) {
132
- if (val) {
133
- this.pageObjC[this.pageKey.no] = Math.ceil(val)
134
- } else {
135
- this.pageObjC[this.pageKey.no] = 1
136
- }
137
- }
138
- },
139
- userSize: {
140
- get() {
141
- return this.pageObjC[this.pageKey.size]
142
- },
143
- set(val) {
144
- if (val) {
145
- this.pageObjC[this.pageKey.size] = Math.ceil(val)
146
- } else {
147
- this.pageObjC[this.pageKey.size] = this.pageSizes[0]
148
- }
149
- this.pageObjC[this.pageKey.no] = !this.remote ? 1 : this.pageObjC[this.pageKey.no]
150
- }
151
- }
152
- },
153
- watch: {
154
- noOrsize() {
155
- this.pageObj[this.pageKey.no] = this.pageObjC[this.pageKey.no]
156
- this.pageObj[this.pageKey.size] = this.pageObjC[this.pageKey.size]
157
- this.pageObjC[this.pageKey.total] = this.pageObj[this.pageKey.total]
158
- this.$emit('change', this.pageObjC)
159
- },
160
- pageObj: {
161
- immediate: true,
162
- deep: true,
163
- handler(newValue, oldValue) {
164
- this.pageObjC = this.pageObj
165
- }
166
- }
167
- },
168
- methods: {
169
- setnoOrsize() {
170
- let no = this.pageObjC[this.pageKey.no]
171
- let size = this.pageObjC[this.pageKey.size]
172
-
173
- this.remote
174
- ? this.setRemoteData(this.pageObjC).finally(() => {
175
- this.noOrsize = no + ',' + size + Date.now()
176
- })
177
- : (this.noOrsize = no + ',' + size + Date.now())
178
- }
49
+ render(h) {
50
+ const { remote } = this
51
+ // 判断是否为远程分页
52
+ return remote
53
+ ? h(RemotePagination, {
54
+ props: this.$props,
55
+ on: {
56
+ change: (page) => {
57
+ this.$emit('change', page)
58
+ }
59
+ }
60
+ })
61
+ : h(StaticPagination, {
62
+ props: this.$props,
63
+ on: {
64
+ change: (page) => this.$emit('change', page)
65
+ }
66
+ })
179
67
  }
180
68
  }
181
69
  </script>
@@ -0,0 +1,201 @@
1
+ <template>
2
+ <div class="n20-pagination-1">
3
+ <el-pagination
4
+ layout="prev,next,slot"
5
+ :current-page.sync="pageRemote[pageKey.no]"
6
+ :page-size="pageRemote[pageKey.size]"
7
+ :total="pageRemote[pageKey.total]"
8
+ :size="size"
9
+ @current-change="setnoOrsize"
10
+ />
11
+ <span class="m-r-ss"
12
+ ><span class="color-primary">{{ pageRemote[pageKey.no] }}</span
13
+ >/{{ max }}</span
14
+ >
15
+ <span>{{ '到第' | $lc }}</span>
16
+ <el-input-number
17
+ v-model="toNo"
18
+ class="n20-pagination-jumper-1 m-r-ss"
19
+ :min="1"
20
+ :max="max"
21
+ :step="1"
22
+ :step-strictly="true"
23
+ :controls="false"
24
+ :size="size"
25
+ @change="setnoOrsize"
26
+ />
27
+ <span class="m-r-s">{{ '页' | $lc }}</span>
28
+ <el-popover v-model="settingV" placement="top" trigger="click">
29
+ <el-link slot="reference" icon="n20-icon-shezhi" :underline="false" style="font-size: 16px" />
30
+ <div>
31
+ <span>{{ '每页显示' | $lc }}</span>
32
+ <el-radio-group
33
+ v-model="pageRemote[pageKey.size]"
34
+ class="n20-pagination-sizes-1 m-l-s"
35
+ size="mini"
36
+ @change="handleChange"
37
+ >
38
+ <el-radio-button v-for="item in pageSizes" :key="item" class="m-r-s" :label="item" />
39
+ </el-radio-group>
40
+ <el-input-number
41
+ v-model="userSize"
42
+ class="n20-pagination-usersizes-1"
43
+ :class="{
44
+ 'is-active': !pageSizes.includes(pageRemote[pageKey.size])
45
+ }"
46
+ :min="1"
47
+ :max="sizeMax"
48
+ :step="1"
49
+ :step-strictly="true"
50
+ :controls="false"
51
+ size="mini"
52
+ :placeholder="'自定义' | $lc"
53
+ @change="handleChange"
54
+ />
55
+ </div>
56
+ </el-popover>
57
+ </div>
58
+ </template>
59
+
60
+ <script>
61
+ import axios from '../../utils/axios.js'
62
+ import { $lc } from '../../utils/i18n/index.js'
63
+
64
+ export default {
65
+ name: 'RemotePagination',
66
+ props: {
67
+ size: {
68
+ type: String,
69
+ default: 'mini'
70
+ },
71
+ pageObj: {
72
+ type: Object,
73
+ default: () => ({
74
+ no: 1,
75
+ size: 20,
76
+ total: 0
77
+ })
78
+ },
79
+ pageKey: {
80
+ type: Object,
81
+ default: () => ({
82
+ no: 'no',
83
+ size: 'size',
84
+ total: 'total'
85
+ })
86
+ },
87
+ pageSizes: {
88
+ type: Array,
89
+ default: () => [20, 50, 100]
90
+ },
91
+ sizeMax: {
92
+ type: Number,
93
+ default: 1000
94
+ },
95
+ remote: {
96
+ type: Boolean,
97
+ default: false
98
+ },
99
+ pId: {
100
+ type: String,
101
+ default: 'pages/global'
102
+ }
103
+ },
104
+ data() {
105
+ return {
106
+ settingV: false,
107
+ userNo: sessionStorage.getItem('userNo'),
108
+ noOrsize: '',
109
+ pageRemote: {}
110
+ }
111
+ },
112
+ computed: {
113
+ max() {
114
+ let total = this.pageRemote[this.pageKey.total]
115
+ let size = this.pageRemote[this.pageKey.size]
116
+ return Math.ceil(total / size) || 1
117
+ },
118
+ toNo: {
119
+ get() {
120
+ return this.pageRemote[this.pageKey.no]
121
+ },
122
+ set(val) {
123
+ this.pageRemote[this.pageKey.no] = val ? Math.ceil(val) : 1
124
+ }
125
+ },
126
+ userSize: {
127
+ get() {
128
+ return this.pageRemote[this.pageKey.size]
129
+ },
130
+ set(val) {
131
+ this.pageRemote[this.pageKey.size] = val ? Math.ceil(val) : this.pageSizes[0]
132
+ }
133
+ }
134
+ },
135
+ watch: {
136
+ noOrsize() {
137
+ this.$set(this.pageObj, this.pageKey.no, this.pageRemote[this.pageKey.no])
138
+ this.$set(this.pageObj, this.pageKey.size, this.pageRemote[this.pageKey.size])
139
+ this.$set(this.pageObj, this.pageKey.total, this.pageRemote[this.pageKey.total])
140
+ this.$emit('change', this.pageObj)
141
+ },
142
+ pageObj: {
143
+ handler(page) {
144
+ this.$set(this.pageRemote, this.pageKey.no, page[this.pageKey.no])
145
+ this.$set(this.pageRemote, this.pageKey.total, page[this.pageKey.total])
146
+ },
147
+ deep: true,
148
+ immediate: true
149
+ }
150
+ },
151
+ mounted() {
152
+ this.getSessionData()
153
+ },
154
+ methods: {
155
+ async getSessionData() {
156
+ const { data } = await axios.post(
157
+ `/bems/prod_1.0/user/pageHabit/list?t=${Date.now()}`,
158
+ {
159
+ userNo: this.userNo,
160
+ pageId: this.pId
161
+ },
162
+ { loading: false, noMsg: true }
163
+ )
164
+ if (data) {
165
+ this.$set(
166
+ this.pageRemote,
167
+ this.pageKey.size,
168
+ JSON.parse(data)[this.pageKey.size] || this.pageObj[this.pageKey.size]
169
+ )
170
+ this.$set(this.pageObj, this.pageKey.size, JSON.parse(data)[this.pageKey.size] || this.pageObj[this.pageKey.size])
171
+ } else {
172
+ this.pageRemote = this.pageObj
173
+ }
174
+ this.$emit('change', this.pageObj)
175
+ },
176
+ async setRemoteData(data) {
177
+ return await axios.post(
178
+ '/bems/prod_1.0/user/pageHabit',
179
+ {
180
+ userNo: this.userNo,
181
+ pageId: this.pId,
182
+ showStructure: JSON.stringify(data)
183
+ },
184
+ { loading: false, onMsg: true }
185
+ )
186
+ },
187
+ setnoOrsize() {
188
+ let no = this.pageRemote[this.pageKey.no]
189
+ let size = this.pageRemote[this.pageKey.size]
190
+ this.noOrsize = no + ',' + size + Date.now()
191
+ },
192
+
193
+ handleChange() {
194
+ this.setRemoteData({ [this.pageKey.size]: this.pageRemote[this.pageKey.size] }).finally(() => {
195
+ this.setnoOrsize()
196
+ })
197
+ this.settingV = false
198
+ }
199
+ }
200
+ }
201
+ </script>