n20-common-lib 2.6.58 → 2.6.59

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n20-common-lib",
3
- "version": "2.6.58",
3
+ "version": "2.6.59",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -1,78 +1,15 @@
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>
1
+
69
2
 
70
3
  <script>
71
- import mixins from './mixins/index.js'
72
- import { $lc } from '../../utils/i18n/index.js'
4
+ import RemotePagination from './remotePagination.vue'
5
+ import StaticPagination from './staticPagination.vue'
6
+
73
7
  export default {
74
8
  name: 'Pagination',
75
- mixins: [mixins],
9
+ components: {
10
+ RemotePagination,
11
+ StaticPagination
12
+ },
76
13
  props: {
77
14
  size: {
78
15
  type: String,
@@ -111,71 +48,25 @@ export default {
111
48
  default: 'page/pId'
112
49
  }
113
50
  },
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
- }
51
+ render(h) {
52
+ const { remote } = this
53
+ // 判断是否为远程分页
54
+ return remote
55
+ ? h(RemotePagination, {
56
+ props: this.$props,
57
+ on: {
58
+ change: (page) => {
59
+ this.$set(this, 'pageObj',page)
60
+ this.$emit('change', page)
61
+ }
62
+ }
63
+ })
64
+ : h(StaticPagination, {
65
+ props: this.$props,
66
+ on: {
67
+ change: (page) => this.$emit('change', page)
68
+ }
69
+ })
179
70
  }
180
71
  }
181
72
  </script>
@@ -0,0 +1,184 @@
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: 'page/pId'
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.pageRemote)
141
+ }
142
+ },
143
+ mounted() {
144
+ this.getSessionData()
145
+ },
146
+ methods: {
147
+ async getSessionData() {
148
+ const { data } = await axios.post(
149
+ `/bems/prod_1.0/user/pageHabit/list?t=${Date.now()}`,
150
+ {
151
+ userNo: this.userNo,
152
+ pageId: this.pId
153
+ },
154
+ { loading: false, noMsg: true }
155
+ )
156
+ this.pageRemote = this.$set(this, 'pageRemote', JSON.parse(data))
157
+ console.log('pageRemote', JSON.parse(data))
158
+ this.$emit('change', JSON.parse(data))
159
+ },
160
+ async setRemoteData(data) {
161
+ return await axios.post(
162
+ '/bems/prod_1.0/user/pageHabit',
163
+ {
164
+ userNo: this.userNo,
165
+ pageId: this.pId,
166
+ showStructure: JSON.stringify(data)
167
+ },
168
+ { loading: false, onMsg: true }
169
+ )
170
+ },
171
+ setnoOrsize() {
172
+ let no = this.pageRemote[this.pageKey.no]
173
+ let size = this.pageRemote[this.pageKey.size]
174
+ this.setRemoteData(this.pageRemote).finally(() => {
175
+ this.noOrsize = no + ',' + size + Date.now()
176
+ })
177
+ },
178
+ handleChange() {
179
+ this.setnoOrsize()
180
+ this.settingV = false
181
+ }
182
+ }
183
+ }
184
+ </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>
@@ -1,39 +0,0 @@
1
- import axios from '../../../utils/axios.js'
2
- export default {
3
- data() {
4
- return {
5
- userNo: sessionStorage.getItem('userNo')
6
- }
7
- },
8
- mounted() {
9
- this.remote &&
10
- this.getSessionData().then((data) => {
11
- this.pageObjC = JSON.parse(data) || this.pageObj
12
- })
13
- this.pageObjC = this.pageObj
14
- },
15
- methods: {
16
- async getSessionData() {
17
- const { data } = await axios.post(
18
- `/bems/prod_1.0/user/pageHabit/list?t=${Date.now()}`,
19
- {
20
- userNo: this.userNo,
21
- pageId: this.pId
22
- },
23
- { loading: false, noMsg: true }
24
- )
25
- return data
26
- },
27
- async setRemoteData(data) {
28
- return await axios.post(
29
- '/bems/prod_1.0/user/pageHabit',
30
- {
31
- userNo: this.userNo,
32
- pageId: this.pId,
33
- showStructure: JSON.stringify(data)
34
- },
35
- { loading: false, onMsg: true }
36
- )
37
- }
38
- }
39
- }