n20-common-lib 2.7.0-beta.2 → 2.7.0-beta.21

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 (101) 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 +356 -0
  5. package/src/assets/css/cl-layout-header.scss +79 -15
  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/filterItem.vue +7 -1
  22. package/src/components/AdvancedFilter/formItemRender.vue +248 -63
  23. package/src/components/AdvancedFilter/index.vue +113 -23
  24. package/src/components/AdvancedFilter/main/Form/form-item.vue +87 -0
  25. package/src/components/AdvancedFilter/main/Form/form.vue +59 -0
  26. package/src/components/AdvancedFilter/main/index.vue +34 -0
  27. package/src/components/AdvancedFilter/utils.js +2 -4
  28. package/src/components/Anchor/AnchorItem.vue +5 -0
  29. package/src/components/Anchor/index.vue +23 -1
  30. package/src/components/ApprovalButtons/index.vue +49 -10
  31. package/src/components/ApprovalButtons/showAppOpi.vue +5 -3
  32. package/src/components/ApprovalCard/index.vue +1 -1
  33. package/src/components/DateChoose/index.vue +278 -0
  34. package/src/components/DatePicker/por.vue +1 -1
  35. package/src/components/Descriptions/index.vue +4 -0
  36. package/src/components/ElectronicArchive/index.vue +1 -0
  37. package/src/components/FileUploadTable/index.vue +93 -28
  38. package/src/components/InputNumber/index.vue +1 -0
  39. package/src/components/Layout/HeaderWrap/changePwd.vue +2 -2
  40. package/src/components/Layout/HeaderWrap/indexN.vue +151 -84
  41. package/src/components/Layout/HeaderWrap/menuDrawer.vue +47 -38
  42. package/src/components/Layout/indexN.vue +30 -5
  43. package/src/components/LoginTemporary/indexN.vue +10 -57
  44. package/src/components/Pagination/index.vue +25 -137
  45. package/src/components/Pagination/remotePagination.vue +201 -0
  46. package/src/components/Pagination/staticPagination.vue +156 -0
  47. package/src/components/SecondaryTab/index.vue +27 -1
  48. package/src/components/TablePro/index.vue +15 -8
  49. package/src/directives/VRuleKey/index.js +5 -4
  50. package/src/index.js +3 -4
  51. package/src/plugins/Print/.DS_Store +0 -0
  52. package/style/fonts/iconfont.1676b4d9.woff2 +0 -0
  53. package/{src/assets/iconFont5/iconfont.ttf → style/fonts/iconfont.2be34155.ttf} +0 -0
  54. package/style/fonts/iconfont.ac432622.woff +0 -0
  55. package/style/index.css +2 -2
  56. package/theme/blue.css +2 -2
  57. package/theme/cctcRed.css +2 -2
  58. package/theme/fonts/iconfont.1676b4d9.woff2 +0 -0
  59. package/{style/fonts/iconfont.06971f9f.ttf → theme/fonts/iconfont.2be34155.ttf} +0 -0
  60. package/theme/fonts/iconfont.ac432622.woff +0 -0
  61. package/theme/green.css +2 -2
  62. package/theme/lightBlue.css +2 -2
  63. package/theme/orange.css +2 -2
  64. package/theme/purple.css +2 -2
  65. package/theme/red.css +2 -2
  66. package/theme/yellow.css +2 -2
  67. package/src/assets/iconFont3/demo.css +0 -539
  68. package/src/assets/iconFont3/demo_index.html +0 -1936
  69. package/src/assets/iconFont3/iconfont.css +0 -319
  70. package/src/assets/iconFont3/iconfont.js +0 -1
  71. package/src/assets/iconFont3/iconfont.json +0 -541
  72. package/src/assets/iconFont3/iconfont.ttf +0 -0
  73. package/src/assets/iconFont3/iconfont.woff +0 -0
  74. package/src/assets/iconFont3/iconfont.woff2 +0 -0
  75. package/src/assets/iconFont4/demo.css +0 -539
  76. package/src/assets/iconFont4/demo_index.html +0 -2005
  77. package/src/assets/iconFont4/iconfont.css +0 -331
  78. package/src/assets/iconFont4/iconfont.js +0 -1
  79. package/src/assets/iconFont4/iconfont.json +0 -562
  80. package/src/assets/iconFont4/iconfont.ttf +0 -0
  81. package/src/assets/iconFont4/iconfont.woff +0 -0
  82. package/src/assets/iconFont4/iconfont.woff2 +0 -0
  83. package/src/assets/iconFont5/demo.css +0 -539
  84. package/src/assets/iconFont5/demo_index.html +0 -2281
  85. package/src/assets/iconFont5/iconfont.css +0 -379
  86. package/src/assets/iconFont5/iconfont.js +0 -1
  87. package/src/assets/iconFont5/iconfont.json +0 -646
  88. package/src/assets/iconFont5/iconfont.woff +0 -0
  89. package/src/assets/iconFont5/iconfont.woff2 +0 -0
  90. package/src/components/Pagination/mixins/index.js +0 -39
  91. package/style/fonts/iconfont.47f5da25.woff2 +0 -0
  92. package/style/fonts/iconfont.6ad948fe.woff +0 -0
  93. package/style/fonts/iconfont.76d19005.woff2 +0 -0
  94. package/style/fonts/iconfont.84848783.woff2 +0 -0
  95. package/style/fonts/iconfont.85c70ef9.ttf +0 -0
  96. package/style/fonts/iconfont.a3597821.woff +0 -0
  97. package/style/fonts/iconfont.ab8c366d.ttf +0 -0
  98. package/style/fonts/iconfont.b7ea4726.woff +0 -0
  99. package/style/fonts/iconfont.e6bdbf43.woff2 +0 -0
  100. package/style/fonts/iconfont.f1777a50.woff +0 -0
  101. package/style/fonts/iconfont.fbdd69b3.ttf +0 -0
@@ -23,8 +23,6 @@
23
23
  }"
24
24
  :style="{ backgroundImage: loginBg }"
25
25
  >
26
- <component :is="'style'">{{ wrapStyle }}</component>
27
-
28
26
  <div class="login-logo-box flex-box flex-v">
29
27
  <img
30
28
  v-if="loginLogo"
@@ -35,37 +33,9 @@
35
33
  <h3 class="login-logo-text">{{ loginLogoText | $l }}</h3>
36
34
  </div>
37
35
 
38
- <!-- <el-dropdown
39
- v-if="!jsonData.hideLang"
40
- class="login-language-box m-l-lg"
41
- :style="{ right: _lang == 'en' ? '260px' : '200px' }"
42
- @command="setLang"
43
- >
44
- <span
45
- class="set-user-btn iconfont header-color"
46
- :class="{
47
- 'icon-zhongwen': langVal === 'zh-cn',
48
- 'icon-fanti': langVal === 'zh-hk',
49
- 'icon-yuyanqiehuan': langVal === 'en'
50
- }"
51
- ></span>
52
-
53
- <el-dropdown-menu slot="dropdown">
54
- <el-dropdown-item command="zh-cn"
55
- ><i class="iconfont icon-zhongwen f-s-icon"></i>{{ '简体中文' | $lc }}</el-dropdown-item
56
- >
57
- <el-dropdown-item command="zh-hk"
58
- ><i class="iconfont icon-fanti f-s-icon"></i>{{ '繁体中文' | $lc }}</el-dropdown-item
59
- >
60
- <el-dropdown-item command="en"
61
- ><i class="iconfont icon-yuyanqiehuan f-s-icon"></i>{{ '英文' | $lc }}</el-dropdown-item
62
- >
63
- </el-dropdown-menu>
64
- </el-dropdown> -->
65
-
66
36
  <div v-if="inspectionCenter" class="login-verify-box" @click="inspectionV = true">{{ '查验中心' | $lc }} ></div>
67
37
 
68
- <template v-if="form.LOGIN_TYPE === 'T1'">
38
+ <template v-if="form.LOGIN_TYPE === 'T1' && showSystem">
69
39
  <div class="sys-title">{{ '系统选择区' | $lc }}</div>
70
40
  <div class="sys-carousel">
71
41
  <div class="swiper-wrapper">
@@ -85,7 +55,7 @@
85
55
  <div class="swiper-button-prev" @click="slidePrev"></div>
86
56
  <div class="swiper-button-next" @click="slideNext"></div>
87
57
  </template>
88
- <template v-if="form.LOGIN_TYPE === 'T2'">
58
+ <template v-if="form.LOGIN_TYPE === 'T2' && showSystem">
89
59
  <div class="sys-title">{{ '系统选择区' | $lc }}</div>
90
60
  <div class="sys-carousel overflow-clear">
91
61
  <div
@@ -251,6 +221,7 @@ export default {
251
221
  langVal: window.localStorage.getItem('pageLang') || 'zh-cn',
252
222
  operateType: 'login',
253
223
  alV: false,
224
+ showSystem: false,
254
225
  form: {
255
226
  LOGIN_URL: '',
256
227
  LOGIN_MODE: [],
@@ -359,6 +330,9 @@ export default {
359
330
  pluginPlatform() {
360
331
  return this.jsonData.pluginPlatform
361
332
  },
333
+ showSystem() {
334
+ return this.jsonData.showSystem
335
+ },
362
336
  loginSloganHtml() {
363
337
  return this.form.LOGIN_SLOGAN || this.jsonData.loginSloganHtml || ''
364
338
  },
@@ -378,6 +352,8 @@ export default {
378
352
  form.systemNo = this.sltSys.NO
379
353
  } else if (this.systemList.length === 1) {
380
354
  form.systemNo = this.systemList[0].NO
355
+ } else {
356
+ form.systemNo = localStorage.getItem('pageInSystemNo')
381
357
  }
382
358
 
383
359
  return form
@@ -402,17 +378,11 @@ export default {
402
378
  if (window.sessionStorage.getItem('_auto_login_ing_')) return this.autoLoginSS()
403
379
  this.removeStorage()
404
380
 
405
- // this.setWrapSty()
406
- // window.addEventListener('resize', this.setWrapSty)
407
-
408
381
  this.init()
409
382
  this.getIsImgCode()
410
383
  localStorage.removeItem('pageInType')
411
- localStorage.setItem('pageInSystemNo', this.form.SYSTEM_LIST[0].NO)
412
- },
413
- beforeDestroy() {
414
- // window.removeEventListener('resize', this.setWrapSty)
415
384
  },
385
+ beforeDestroy() {},
416
386
  methods: {
417
387
  getIsImgCode() {
418
388
  axios
@@ -431,23 +401,6 @@ export default {
431
401
  await this.loginThen()
432
402
  }
433
403
  },
434
- // setWrapSty() {
435
- // let winW = document.documentElement.clientWidth
436
- // let winH = document.documentElement.clientHeight
437
- // let ratioO = winW / winH
438
- // let W = 1440
439
- // let H = 900
440
- // let ratio = W / H
441
- // if (winW >= W && winH >= H) {
442
- // this.wrapStyle = ''
443
- // return false
444
- // }
445
- // if (ratioO > ratio) {
446
- // this.wrapStyle = `.login-wrap{width:${Math.floor(H * ratioO)}px; height:${H}px; transform: scale(${winH / H});}`
447
- // } else {
448
- // this.wrapStyle = `.login-wrap{width:${W}px; height:${Math.floor(W / ratioO)}px; transform: scale(${winW / W});}`
449
- // }
450
- // },
451
404
  // 系统分辨率是否缩放
452
405
  getScreenSetting() {
453
406
  var ratio = 0
@@ -482,7 +435,7 @@ export default {
482
435
  async init() {
483
436
  const { _layoutData = {}, loginSetting, screenInspect } = await getJsonc('/server-config.jsonc')
484
437
  let _loginSetting = loginSetting || _layoutData.loginSetting
485
- if (_loginSetting !== 'JSON') {
438
+ if (_loginSetting !== 'JSON' && this.jsonData.showSystem) {
486
439
  await this.getSysSet()
487
440
  }
488
441
  screenInspect && this.getScreenSetting()
@@ -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>
@@ -0,0 +1,156 @@
1
+ <template>
2
+ <div class="n20-pagination-1">
3
+ <el-pagination
4
+ layout="prev,next,slot"
5
+ :current-page.sync="pageObj[pageKey.no]"
6
+ :page-size="pageObj[pageKey.size]"
7
+ :total="pageObj[pageKey.total]"
8
+ :size="size"
9
+ @current-change="setnoOrsize"
10
+ />
11
+ <span class="m-r-ss"
12
+ ><span class="color-primary">{{ pageObj[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="pageObj[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(pageObj[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
+ <script>
71
+ import { $lc } from '../../utils/i18n/index'
72
+ export default {
73
+ name: 'StaticPagination',
74
+ props: {
75
+ size: {
76
+ type: String,
77
+ default: 'mini'
78
+ },
79
+ pageObj: {
80
+ type: Object,
81
+ default: () => ({
82
+ no: 1,
83
+ size: 20,
84
+ total: 0
85
+ })
86
+ },
87
+ pageKey: {
88
+ type: Object,
89
+ default: () => ({
90
+ no: 'no',
91
+ size: 'size',
92
+ total: 'total'
93
+ })
94
+ },
95
+ pageSizes: {
96
+ type: Array,
97
+ default: () => [20, 50, 100]
98
+ },
99
+ sizeMax: {
100
+ type: Number,
101
+ default: 1000
102
+ }
103
+ },
104
+ data() {
105
+ return {
106
+ settingV: false,
107
+ noOrsize: ''
108
+ }
109
+ },
110
+ computed: {
111
+ max() {
112
+ let total = this.pageObj[this.pageKey.total]
113
+ let size = this.pageObj[this.pageKey.size]
114
+
115
+ return Math.ceil(total / size) || 1
116
+ },
117
+ toNo: {
118
+ get() {
119
+ return this.pageObj[this.pageKey.no]
120
+ },
121
+ set(val) {
122
+ if (val) {
123
+ this.pageObj[this.pageKey.no] = Math.ceil(val)
124
+ } else {
125
+ this.pageObj[this.pageKey.no] = 1
126
+ }
127
+ }
128
+ },
129
+ userSize: {
130
+ get() {
131
+ return this.pageObj[this.pageKey.size]
132
+ },
133
+ set(val) {
134
+ if (val) {
135
+ this.pageObj[this.pageKey.size] = Math.ceil(val)
136
+ } else {
137
+ this.pageObj[this.pageKey.size] = this.pageSizes[0]
138
+ }
139
+ this.pageObj[this.pageKey.no] = 1
140
+ }
141
+ }
142
+ },
143
+ watch: {
144
+ noOrsize() {
145
+ this.$emit('change', this.pageObj)
146
+ }
147
+ },
148
+ methods: {
149
+ setnoOrsize() {
150
+ let no = this.pageObj[this.pageKey.no]
151
+ let size = this.pageObj[this.pageKey.size]
152
+ this.noOrsize = no + ',' + size + Date.now()
153
+ }
154
+ }
155
+ }
156
+ </script>