mooho-base-admin-plus 2.5.0 → 2.5.2

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,7 +1,7 @@
1
1
  {
2
2
  "name": "mooho-base-admin-plus",
3
3
  "description": "MOOHO basic framework for admin by Vue3",
4
- "version": "2.5.0",
4
+ "version": "2.5.2",
5
5
  "author": "jinyifan <jinyifan@mooho.com.cn>",
6
6
  "license": "MIT",
7
7
  "private": false,
@@ -179,7 +179,7 @@
179
179
  <dialog-select v-model="data.dictTypeCode" source="DictTypeSelect" source-data-code="code" source-display-code="code" @on-change="dictTypeChange()"></dialog-select>
180
180
  </FormItem>
181
181
  </Col>
182
- <Col v-bind="grid8" v-if="data.controlType == 'Select' || data.controlType == 'SelectWithOther' || data.controlType == 'ComboSelect'">
182
+ <!-- <Col v-bind="grid8" v-if="data.controlType == 'Select' || data.controlType == 'SelectWithOther' || data.controlType == 'ComboSelect'">
183
183
  <FormItem label="默认第一项" key="isDefaultFirst" prop="isDefaultFirst">
184
184
  <Switch
185
185
  :model-value="!!data.isDefaultFirst"
@@ -191,6 +191,19 @@
191
191
  "
192
192
  />
193
193
  </FormItem>
194
+ </Col> -->
195
+ <Col v-bind="grid8">
196
+ <FormItem label="允许只查空值" key="isQueryNull" prop="isQueryNull">
197
+ <Switch
198
+ :model-value="!!data.isQueryNull"
199
+ @update:model-value="
200
+ $event => {
201
+ data.isQueryNull = $event;
202
+ //$forceUpdate();
203
+ }
204
+ "
205
+ />
206
+ </FormItem>
194
207
  </Col>
195
208
  <Col v-bind="grid8">
196
209
  <FormItem label="是否显示" key="isShow" prop="isShow">
@@ -13,249 +13,265 @@
13
13
  -->
14
14
  <slot name="column" :filter="data" :column="column" :code="column.code"></slot>
15
15
  </template>
16
- <template v-else-if="column.controlType === 'Label'">
17
- <div class="label">
18
- <div>{{ showData(data, column) }}</div>
16
+ <template v-else>
17
+ <div style="display: flex; white-space: nowrap">
18
+ <template v-if="!column._queryNull">
19
+ <template v-if="column.controlType === 'Label'">
20
+ <div class="label">
21
+ <div>{{ showData(data, column) }}</div>
22
+ </div>
23
+ </template>
24
+ <template v-else-if="column.controlType === 'TextInput'">
25
+ <Input
26
+ size="small"
27
+ type="text"
28
+ :model-value="parseFilterData(data, column)"
29
+ @update:model-value="$event => setFilterData(data, column, $event)"
30
+ @on-keyup="$event => onKeyup($event)"
31
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
32
+ :placeholder="column.description"
33
+ />
34
+ </template>
35
+ <template v-else-if="column.controlType === 'NumberInput'">
36
+ <Input
37
+ size="small"
38
+ type="number"
39
+ number
40
+ :model-value="parseFilterData(data, column)"
41
+ @update:model-value="$event => setFilterData(data, column, $event)"
42
+ @on-keyup="$event => onKeyup($event)"
43
+ :style="{ width: column.controlWidth == null ? '100px' : column.controlWidth + 'px' }"
44
+ :placeholder="column.description"
45
+ />
46
+ </template>
47
+ <template v-else-if="column.controlType === 'Select'">
48
+ <Select
49
+ size="small"
50
+ :model-value="parseFilterData(data, column)"
51
+ @update:model-value="$event => setFilterData(data, column, $event)"
52
+ clearable
53
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
54
+ :placeholder="column.description"
55
+ :transfer="true"
56
+ @on-change="selected => onSelectDataChange(column, selected)"
57
+ >
58
+ <Option v-for="item in getDataSource(data, column)" :key="item.id" :value="item.id">{{ item.name }}</Option>
59
+ </Select>
60
+ </template>
61
+ <template v-else-if="column.controlType === 'MultiSelect'">
62
+ <Select
63
+ size="small"
64
+ :model-value="parseArrayFilterData(data, column)"
65
+ :multiple="true"
66
+ clearable
67
+ @update:model-value="$event => setArrayFilterData(data, column, $event)"
68
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
69
+ :placeholder="column.description"
70
+ :transfer="true"
71
+ @on-change="selected => onSelectDataChange(column, selected)"
72
+ >
73
+ <Option v-for="item in getDataSource(data, column)" :key="item.id" :value="item.id">{{ item.name }}</Option>
74
+ </Select>
75
+ </template>
76
+ <template v-else-if="column.controlType === 'TreeSelect'">
77
+ <TreeSelect
78
+ size="small"
79
+ :model-value="parseTreeFilterData(data, column)"
80
+ @update:model-value="$event => setFilterData(data, column, $event)"
81
+ :data="getDataSource(data, column)"
82
+ :clearable="true"
83
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
84
+ :placeholder="column.description"
85
+ :transfer="true"
86
+ @on-change="selected => onSelectDataChange(column, selected)"
87
+ ></TreeSelect>
88
+ </template>
89
+ <template v-else-if="column.controlType === 'MultiTreeSelect'">
90
+ <TreeSelect
91
+ size="small"
92
+ :model-value="parseArrayFilterData(data, column)"
93
+ @update:model-value="$event => setArrayFilterData(data, column, $event)"
94
+ :data="getDataSource(data, column)"
95
+ :multiple="true"
96
+ :show-checkbox="true"
97
+ :clearable="true"
98
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
99
+ :placeholder="column.description"
100
+ :transfer="true"
101
+ @on-change="selected => onSelectDataChange(column, selected)"
102
+ ></TreeSelect>
103
+ </template>
104
+ <template v-else-if="column.controlType === 'SelectWithOther'">
105
+ <Select
106
+ size="small"
107
+ :model-value="parseFilterDataWithOther(data, column)"
108
+ @update:model-value="$event => setFilterDataWithOther(data, column, $event)"
109
+ clearable
110
+ :style="{ width: column.controlWidth == null ? '40%' : column.controlWidth + 'px' }"
111
+ :placeholder="column.description"
112
+ :transfer="true"
113
+ @on-change="selected => onSelectDataChange(column, selected)"
114
+ >
115
+ <Option v-for="item in getDataSource(data, column)" :key="item.id" :value="item.id">{{ item.name }}</Option>
116
+ <Option key="__Other" value="__Other">{{ $t('Front_Label_Others') }}</Option>
117
+ </Select>
118
+ <Input
119
+ type="text"
120
+ size="small"
121
+ v-show="parseFilterDataWithOther(data, column) == '__Other'"
122
+ :model-value="parseFilterData(data, column)"
123
+ @update:model-value="$event => setFilterData(data, column, $event)"
124
+ :style="{ width: column.controlWidth == null ? '40%' : column.controlWidth + 'px' }"
125
+ style="margin-left: 4px"
126
+ :placeholder="column.description"
127
+ @on-change="onDataChange(column)"
128
+ />
129
+ </template>
130
+ <template v-else-if="column.controlType === 'ComboSelect'">
131
+ <combo-select
132
+ size="small"
133
+ :model-value="parseFilterData(data, column)"
134
+ @update:model-value="$event => setFilterData(data, column, $event)"
135
+ :multi="false"
136
+ :remote-method="search => loadOption(data, column, search)"
137
+ :data="data"
138
+ :param="getParam(data, column)"
139
+ :column="column"
140
+ @on-change="selected => onSelectDataChange(column, selected)"
141
+ ></combo-select>
142
+ </template>
143
+ <template v-else-if="column.controlType === 'MultiComboSelect'">
144
+ <combo-select
145
+ size="small"
146
+ :model-value="parseArrayFilterData(data, column)"
147
+ @update:model-value="$event => setArrayFilterData(data, column, $event)"
148
+ :multi="true"
149
+ :remote-method="search => loadOption(data, column, search)"
150
+ :data="data"
151
+ :param="getParam(data, column)"
152
+ :column="column"
153
+ @on-change="selected => onSelectDataChange(column, selected)"
154
+ ></combo-select>
155
+ </template>
156
+ <template v-else-if="column.controlType === 'DialogSelect'">
157
+ <dialog-select
158
+ size="small"
159
+ :model-value="parseFilterData(data, column)"
160
+ @update:model-value="$event => setFilterData(data, column, $event)"
161
+ :source="column.source"
162
+ :source-data-code="column.sourceDataCode"
163
+ :source-display-code="column.sourceDisplayCode"
164
+ :param="getParam(data, column)"
165
+ :controlWidth="column.controlWidth"
166
+ @on-change="selected => onSelectDataChange(column, selected)"
167
+ ></dialog-select>
168
+ </template>
169
+ <template v-else-if="column.controlType === 'MultiDialogSelect'">
170
+ <dialog-select
171
+ size="small"
172
+ :model-value="parseFilterData(data, column)"
173
+ @update:model-value="$event => setFilterData(data, column, $event)"
174
+ :multi="true"
175
+ :source="column.source"
176
+ :source-data-code="column.sourceDataCode"
177
+ :source-display-code="column.sourceDisplayCode"
178
+ :param="getParam(data, column)"
179
+ :controlWidth="column.controlWidth"
180
+ @on-change="selected => onSelectDataChange(column, selected)"
181
+ ></dialog-select>
182
+ </template>
183
+ <template
184
+ v-else-if="
185
+ column.controlType === 'Date' ||
186
+ column.controlType === 'DateTime' ||
187
+ column.controlType === 'Year' ||
188
+ column.controlType === 'Month' ||
189
+ column.controlType === 'DateRange'
190
+ "
191
+ >
192
+ <DatePicker
193
+ size="small"
194
+ :type="column.controlType.toLowerCase()"
195
+ :model-value="parseFilterData(data, column)"
196
+ :placeholder="column.description"
197
+ :transfer="true"
198
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
199
+ @on-change="
200
+ time => {
201
+ setFilterData(data, column, time);
202
+ onDataChange(column);
203
+ }
204
+ "
205
+ ></DatePicker>
206
+ </template>
207
+ <template v-else-if="column.controlType === 'Time'">
208
+ <TimePicker
209
+ size="small"
210
+ type="time"
211
+ :model-value="parseFilterData(data, column)"
212
+ @update:model-value="$event => setFilterData(data, column, $event)"
213
+ :placeholder="column.description"
214
+ :transfer="true"
215
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
216
+ @on-change="onDataChange(column)"
217
+ ></TimePicker>
218
+ </template>
219
+ <template v-else-if="column.controlType === 'Check'">
220
+ <Checkbox
221
+ size="small"
222
+ style="line-height: 26px"
223
+ :model-value="!!parseFilterData(data, column)"
224
+ @update:model-value="$event => setFilterData(data, column, $event)"
225
+ @on-change="onDataChange(column)"
226
+ />
227
+ </template>
228
+ <template v-else-if="column.controlType === 'Switch'">
229
+ <div style="line-height: 24px">
230
+ <Switch
231
+ size="small"
232
+ :model-value="!!parseFilterData(data, column)"
233
+ @update:model-value="$event => setFilterData(data, column, $event)"
234
+ @on-change="onDataChange(column)"
235
+ />
236
+ </div>
237
+ </template>
238
+ <template v-else-if="column.controlType === 'Radio'">
239
+ <RadioGroup
240
+ size="small"
241
+ style="line-height: 22px"
242
+ :model-value="parseFilterData(data, column)"
243
+ @update:model-value="$event => setFilterData(data, column, $event)"
244
+ @on-change="selected => onSelectDataChange(column, selected)"
245
+ >
246
+ <Radio v-for="item in getDataSource(data, column)" :key="item.id" :label="item.id">
247
+ <span>{{ item.name }}</span>
248
+ </Radio>
249
+ </RadioGroup>
250
+ </template>
251
+ <template v-else-if="column.controlType === 'TextArea'">
252
+ <Input
253
+ type="textarea"
254
+ :model-value="parseFilterData(data, column)"
255
+ @update:model-value="$event => setFilterData(data, column, $event)"
256
+ :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
257
+ :rows="column.controlHeight / 20"
258
+ :placeholder="column.description"
259
+ />
260
+ </template>
261
+ <template v-else>{{ $t('Front_Label_Control_Type_Not_Supported') }} {{ column.controlType }}</template>
262
+ </template>
263
+ <span v-if="column.isQueryNull" style="margin-left: 5px">
264
+
265
+ <Checkbox
266
+ size="small"
267
+ style="line-height: 26px"
268
+ :model-value="!!column._queryNull"
269
+ @update:model-value="$event => setQueryNull(column, $event)"
270
+ @on-change="onDataChange(column)"
271
+ />
272
+ </span>
19
273
  </div>
20
274
  </template>
21
- <template v-else-if="column.controlType === 'TextInput'">
22
- <Input
23
- size="small"
24
- type="text"
25
- :model-value="parseFilterData(data, column)"
26
- @update:model-value="$event => setFilterData(data, column, $event)"
27
- @on-keyup="$event => onKeyup($event)"
28
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
29
- :placeholder="column.description"
30
- />
31
- </template>
32
- <template v-else-if="column.controlType === 'NumberInput'">
33
- <Input
34
- size="small"
35
- type="number"
36
- number
37
- :model-value="parseFilterData(data, column)"
38
- @update:model-value="$event => setFilterData(data, column, $event)"
39
- @on-keyup="$event => onKeyup($event)"
40
- :style="{ width: column.controlWidth == null ? '100px' : column.controlWidth + 'px' }"
41
- :placeholder="column.description"
42
- />
43
- </template>
44
- <template v-else-if="column.controlType === 'Select'">
45
- <Select
46
- size="small"
47
- :model-value="parseFilterData(data, column)"
48
- @update:model-value="$event => setFilterData(data, column, $event)"
49
- clearable
50
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
51
- :placeholder="column.description"
52
- :transfer="true"
53
- @on-change="selected => onSelectDataChange(column, selected)"
54
- >
55
- <Option v-for="item in getDataSource(data, column)" :key="item.id" :value="item.id">{{ item.name }}</Option>
56
- </Select>
57
- </template>
58
- <template v-else-if="column.controlType === 'MultiSelect'">
59
- <Select
60
- size="small"
61
- :model-value="parseArrayFilterData(data, column)"
62
- :multiple="true"
63
- clearable
64
- @update:model-value="$event => setArrayFilterData(data, column, $event)"
65
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
66
- :placeholder="column.description"
67
- :transfer="true"
68
- @on-change="selected => onSelectDataChange(column, selected)"
69
- >
70
- <Option v-for="item in getDataSource(data, column)" :key="item.id" :value="item.id">{{ item.name }}</Option>
71
- </Select>
72
- </template>
73
- <template v-else-if="column.controlType === 'TreeSelect'">
74
- <TreeSelect
75
- size="small"
76
- :model-value="parseTreeFilterData(data, column)"
77
- @update:model-value="$event => setFilterData(data, column, $event)"
78
- :data="getDataSource(data, column)"
79
- :clearable="true"
80
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
81
- :placeholder="column.description"
82
- :transfer="true"
83
- @on-change="selected => onSelectDataChange(column, selected)"
84
- ></TreeSelect>
85
- </template>
86
- <template v-else-if="column.controlType === 'MultiTreeSelect'">
87
- <TreeSelect
88
- size="small"
89
- :model-value="parseArrayFilterData(data, column)"
90
- @update:model-value="$event => setArrayFilterData(data, column, $event)"
91
- :data="getDataSource(data, column)"
92
- :multiple="true"
93
- :show-checkbox="true"
94
- :clearable="true"
95
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
96
- :placeholder="column.description"
97
- :transfer="true"
98
- @on-change="selected => onSelectDataChange(column, selected)"
99
- ></TreeSelect>
100
- </template>
101
- <template v-else-if="column.controlType === 'SelectWithOther'">
102
- <Select
103
- size="small"
104
- :model-value="parseFilterDataWithOther(data, column)"
105
- @update:model-value="$event => setFilterDataWithOther(data, column, $event)"
106
- clearable
107
- :style="{ width: column.controlWidth == null ? '40%' : column.controlWidth + 'px' }"
108
- :placeholder="column.description"
109
- :transfer="true"
110
- @on-change="selected => onSelectDataChange(column, selected)"
111
- >
112
- <Option v-for="item in getDataSource(data, column)" :key="item.id" :value="item.id">{{ item.name }}</Option>
113
- <Option key="__Other" value="__Other">{{ $t('Front_Label_Others') }}</Option>
114
- </Select>
115
- <Input
116
- type="text"
117
- size="small"
118
- v-show="parseFilterDataWithOther(data, column) == '__Other'"
119
- :model-value="parseFilterData(data, column)"
120
- @update:model-value="$event => setFilterData(data, column, $event)"
121
- :style="{ width: column.controlWidth == null ? '40%' : column.controlWidth + 'px' }"
122
- style="margin-left: 4px"
123
- :placeholder="column.description"
124
- @on-change="onDataChange(column)"
125
- />
126
- </template>
127
- <template v-else-if="column.controlType === 'ComboSelect'">
128
- <combo-select
129
- size="small"
130
- :model-value="parseFilterData(data, column)"
131
- @update:model-value="$event => setFilterData(data, column, $event)"
132
- :multi="false"
133
- :remote-method="search => loadOption(data, column, search)"
134
- :data="data"
135
- :param="getParam(data, column)"
136
- :column="column"
137
- @on-change="selected => onSelectDataChange(column, selected)"
138
- ></combo-select>
139
- </template>
140
- <template v-else-if="column.controlType === 'MultiComboSelect'">
141
- <combo-select
142
- size="small"
143
- :model-value="parseArrayFilterData(data, column)"
144
- @update:model-value="$event => setArrayFilterData(data, column, $event)"
145
- :multi="true"
146
- :remote-method="search => loadOption(data, column, search)"
147
- :data="data"
148
- :param="getParam(data, column)"
149
- :column="column"
150
- @on-change="selected => onSelectDataChange(column, selected)"
151
- ></combo-select>
152
- </template>
153
- <template v-else-if="column.controlType === 'DialogSelect'">
154
- <dialog-select
155
- size="small"
156
- :model-value="parseFilterData(data, column)"
157
- @update:model-value="$event => setFilterData(data, column, $event)"
158
- :source="column.source"
159
- :source-data-code="column.sourceDataCode"
160
- :source-display-code="column.sourceDisplayCode"
161
- :param="getParam(data, column)"
162
- :controlWidth="column.controlWidth"
163
- @on-change="selected => onSelectDataChange(column, selected)"
164
- ></dialog-select>
165
- </template>
166
- <template v-else-if="column.controlType === 'MultiDialogSelect'">
167
- <dialog-select
168
- size="small"
169
- :model-value="parseFilterData(data, column)"
170
- @update:model-value="$event => setFilterData(data, column, $event)"
171
- :multi="true"
172
- :source="column.source"
173
- :source-data-code="column.sourceDataCode"
174
- :source-display-code="column.sourceDisplayCode"
175
- :param="getParam(data, column)"
176
- :controlWidth="column.controlWidth"
177
- @on-change="selected => onSelectDataChange(column, selected)"
178
- ></dialog-select>
179
- </template>
180
- <template
181
- v-else-if="
182
- column.controlType === 'Date' ||
183
- column.controlType === 'DateTime' ||
184
- column.controlType === 'Year' ||
185
- column.controlType === 'Month' ||
186
- column.controlType === 'DateRange'
187
- "
188
- >
189
- <DatePicker
190
- size="small"
191
- :type="column.controlType.toLowerCase()"
192
- :model-value="parseFilterData(data, column)"
193
- :placeholder="column.description"
194
- :transfer="true"
195
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
196
- @on-change="
197
- time => {
198
- setFilterData(data, column, time);
199
- onDataChange(column);
200
- }
201
- "
202
- ></DatePicker>
203
- </template>
204
- <template v-else-if="column.controlType === 'Time'">
205
- <TimePicker
206
- size="small"
207
- type="time"
208
- :model-value="parseFilterData(data, column)"
209
- @update:model-value="$event => setFilterData(data, column, $event)"
210
- :placeholder="column.description"
211
- :transfer="true"
212
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
213
- @on-change="onDataChange(column)"
214
- ></TimePicker>
215
- </template>
216
- <template v-else-if="column.controlType === 'Check'">
217
- <Checkbox
218
- size="small"
219
- style="line-height: 26px"
220
- :model-value="!!parseFilterData(data, column)"
221
- @update:model-value="$event => setFilterData(data, column, $event)"
222
- @on-change="onDataChange(column)"
223
- />
224
- </template>
225
- <template v-else-if="column.controlType === 'Switch'">
226
- <div style="line-height: 24px">
227
- <Switch
228
- size="small"
229
- :model-value="!!parseFilterData(data, column)"
230
- @update:model-value="$event => setFilterData(data, column, $event)"
231
- @on-change="onDataChange(column)"
232
- />
233
- </div>
234
- </template>
235
- <template v-else-if="column.controlType === 'Radio'">
236
- <RadioGroup
237
- size="small"
238
- style="line-height: 22px"
239
- :model-value="parseFilterData(data, column)"
240
- @update:model-value="$event => setFilterData(data, column, $event)"
241
- @on-change="selected => onSelectDataChange(column, selected)"
242
- >
243
- <Radio v-for="item in getDataSource(data, column)" :key="item.id" :label="item.id">
244
- <span>{{ item.name }}</span>
245
- </Radio>
246
- </RadioGroup>
247
- </template>
248
- <template v-else-if="column.controlType === 'TextArea'">
249
- <Input
250
- type="textarea"
251
- :model-value="parseFilterData(data, column)"
252
- @update:model-value="$event => setFilterData(data, column, $event)"
253
- :style="{ width: column.controlWidth == null ? null : column.controlWidth + 'px' }"
254
- :rows="column.controlHeight / 20"
255
- :placeholder="column.description"
256
- />
257
- </template>
258
- <template v-else>{{ $t('Front_Label_Control_Type_Not_Supported') }} {{ column.controlType }}</template>
259
275
  </FormItem>
260
276
  </template>
261
277
  </Col>
@@ -829,6 +845,15 @@
829
845
  item.needClear = true;
830
846
  });
831
847
  }
848
+ },
849
+ // 设置查询空值
850
+ setQueryNull(column, e) {
851
+ column._queryNull = e;
852
+ if (column._queryNull) {
853
+ this.setFilterData(this.data, column, 'null');
854
+ } else {
855
+ this.setFilterData(this.data, column, null);
856
+ }
832
857
  }
833
858
  }
834
859
  };
@@ -762,6 +762,18 @@
762
762
 
763
763
  this.clearValidate();
764
764
  },
765
+ /**
766
+ * 重置表格页码
767
+ *
768
+ * @public
769
+ */
770
+ async resetTablePage() {
771
+ this.columns.forEach(column => {
772
+ if (column.controlType == 'Table') {
773
+ //this.$refs['table_' + column.code][0].loadData([]);
774
+ }
775
+ });
776
+ },
765
777
  /**
766
778
  * 清空验证信息
767
779
  *
@@ -289,8 +289,8 @@
289
289
  ? null
290
290
  : column.controlWidth * 0.4 - 4 + 'px'
291
291
  : column.controlWidth == null
292
- ? null
293
- : column.controlWidth - 8 + 'px'
292
+ ? null
293
+ : column.controlWidth - 8 + 'px'
294
294
  }"
295
295
  :placeholder="column.description"
296
296
  :transfer="true"
@@ -1207,12 +1207,22 @@
1207
1207
  this.staticData = this.copy(staticData);
1208
1208
  }
1209
1209
 
1210
+ // 最小为第一页
1211
+ if (this.current <= 0) {
1212
+ this.current = 1;
1213
+ }
1214
+
1210
1215
  if (this.static) {
1211
1216
  // 筛选和排序
1212
1217
  let data = this.getFilterResult();
1213
1218
 
1214
1219
  this.total = data.length;
1215
1220
 
1221
+ // 如果超出页码,设为最后一页
1222
+ if (this.current > Math.ceil(this.total / this.size)) {
1223
+ this.current = Math.ceil(this.total / this.size);
1224
+ }
1225
+
1216
1226
  let offset = (this.current - 1) * this.size;
1217
1227
  this.data = offset + this.size >= data.length ? data.slice(offset, data.length) : data.slice(offset, offset + this.size);
1218
1228
  } else {
@@ -1274,11 +1284,6 @@
1274
1284
  this.current = Math.ceil(this.total / this.size);
1275
1285
  }
1276
1286
 
1277
- // 最小为第一页
1278
- if (this.current <= 0) {
1279
- this.current = 1;
1280
- }
1281
-
1282
1287
  if (this.checkCrossPage || this.tableView.checkCrossPage) {
1283
1288
  // 跨页选择,设置选中项
1284
1289
  this.data.forEach(item => {
@@ -1336,9 +1341,9 @@
1336
1341
  this.$emit('on-change', null, null, null);
1337
1342
 
1338
1343
  // 刷新表头控件
1339
- if (this.$refs.tableFilter) {
1340
- //this.$refs.tableFilter.$forceUpdate();
1341
- }
1344
+ // if (this.$refs.tableFilter) {
1345
+ // //this.$refs.tableFilter.$forceUpdate();
1346
+ // }
1342
1347
  },
1343
1348
  /**
1344
1349
  * 创建新项
@@ -323,7 +323,7 @@ i {
323
323
 
324
324
  .g-side-tab .hd,
325
325
  .cf {
326
- *zoom: 1;
326
+ zoom: 1;
327
327
  }
328
328
 
329
329
  .g-side-tab .hd:before,