@lambo-design/schema-paging-table 1.0.0-beta.41 → 1.0.0-beta.43

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 (2) hide show
  1. package/package.json +5 -5
  2. package/src/index.vue +57 -50
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambo-design/schema-paging-table",
3
- "version": "1.0.0-beta.41",
3
+ "version": "1.0.0-beta.43",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "author": "lambo",
@@ -11,10 +11,10 @@
11
11
  },
12
12
  "devDependencies": {
13
13
  "standard-version": "^9.5.0",
14
- "@lambo-design/schema-form": "^1.0.0-beta.70",
15
- "@lambo-design/paging-table": "^1.0.0-beta.81",
16
- "@lambo-design/shared": "^1.0.0-beta.214",
17
- "@lambo-design/core": "^4.7.1-beta.144"
14
+ "@lambo-design/core": "^4.7.1-beta.144",
15
+ "@lambo-design/schema-form": "^1.0.0-beta.71",
16
+ "@lambo-design/paging-table": "^1.0.0-beta.83",
17
+ "@lambo-design/shared": "^1.0.0-beta.214"
18
18
  },
19
19
  "scripts": {
20
20
  "release": "pnpm release-beta && git push --follow-tags && pnpm re-publish",
package/src/index.vue CHANGED
@@ -8,7 +8,6 @@
8
8
  :searchParams="tableSearchParams"
9
9
  :transformResponse="transformResponse"
10
10
  :showTableOption="showTableOption"
11
- :showEmbedOption="showEmbedOption"
12
11
  :pageDisable="pageDisable"
13
12
  :radioSelectIndex="radioSelectIndex"
14
13
  @on-row-click="onRowClick"
@@ -84,6 +83,7 @@ export default {
84
83
  selectRows: [],
85
84
  selectedKeys: [],
86
85
  radioSelectIndex: -1,
86
+ selectCondition:''
87
87
  }
88
88
  },
89
89
  props:{
@@ -114,10 +114,6 @@ export default {
114
114
  type: Boolean,
115
115
  default: true
116
116
  },
117
- showEmbedOption: {
118
- type: Boolean,
119
- default: true
120
- },
121
117
  //是否禁用分页
122
118
  pageDisable: {
123
119
  type: Boolean,
@@ -194,53 +190,59 @@ export default {
194
190
  let dropdownDomsd = [];
195
191
  obj.button.map((item, index) => {
196
192
  const conditionMet = item && typeof item.condition === "function" ? item.condition(param) : true;
193
+ const execConditionMet = item && typeof item.execCondition === "function" ? item.execCondition(param) : true;
197
194
  if(conditionMet){
198
- let doms = operateHref(self, h, param.row, item.name || param.row[obj.key], (vm, currentRow) => {
199
- if (item.clickEvent?.type === "route") {
200
- // self.$Message.info(item.clickEvent.name)
201
- let query = item.clickEvent?.route?.keys?.reduce((acc, sourceItem) => {
202
- return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
203
- }, {})
204
- self.$router.push({
205
- path: item.clickEvent?.route?.path,
206
- query
207
- })
208
- } else if (item.clickEvent?.type === "request") {
209
- // self.$Message.info(item.clickEvent.name)
210
- let data = item.clickEvent?.request?.keys?.reduce((acc, sourceItem) => {
211
- return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
212
- }, {})
213
- let request = {
214
- url: item.clickEvent.request.url,
215
- method: item.clickEvent.request.method,
216
- param: data,
217
- }
218
- let response = item.clickEvent.response
219
- if (item.clickEvent.tips) {
220
- let tips = item.clickEvent.tips
221
- this.$Modal.confirm({
222
- title: tips.title,
223
- content: '<p>' + tips.content + '</p>',
224
- onOk: () => {
225
- self.fetch(request, response)
226
- }
227
- });
228
- } else {
229
- self.fetch(request, response)
230
- }
231
- } else if (item.clickEvent?.type === "method") {
232
- if(!item.clickEvent?.method?.keys) {
233
- self.$emit(item.clickEvent?.method?.name, param.index);
234
- return ;
195
+ let doms
196
+ if (!execConditionMet) {
197
+ doms = item.name ? item.name : param.row[obj.key]
198
+ } else {
199
+ doms = operateHref(self, h, param.row, item.name || param.row[obj.key], (vm, currentRow) => {
200
+ if (item.clickEvent?.type === "route") {
201
+ // self.$Message.info(item.clickEvent.name)
202
+ let query = item.clickEvent?.route?.keys?.reduce((acc, sourceItem) => {
203
+ return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
204
+ }, {})
205
+ self.$router.push({
206
+ path: item.clickEvent?.route?.path,
207
+ query
208
+ })
209
+ } else if (item.clickEvent?.type === "request") {
210
+ // self.$Message.info(item.clickEvent.name)
211
+ let data = item.clickEvent?.request?.keys?.reduce((acc, sourceItem) => {
212
+ return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
213
+ }, {})
214
+ let request = {
215
+ url: item.clickEvent.request.url,
216
+ method: item.clickEvent.request.method,
217
+ param: data,
218
+ }
219
+ let response = item.clickEvent.response
220
+ if (item.clickEvent.tips) {
221
+ let tips = item.clickEvent.tips
222
+ this.$Modal.confirm({
223
+ title: tips.title,
224
+ content: '<p>' + tips.content + '</p>',
225
+ onOk: () => {
226
+ self.fetch(request, response)
227
+ }
228
+ });
229
+ } else {
230
+ self.fetch(request, response)
231
+ }
232
+ } else if (item.clickEvent?.type === "method") {
233
+ if(!item.clickEvent?.method?.keys) {
234
+ self.$emit(item.clickEvent?.method?.name, param.index);
235
+ return ;
236
+ }
237
+ let args = item.clickEvent?.method?.keys?.reduce((total, current) => {
238
+ return Object.assign(total, {[current]: currentRow[current]})
239
+ }, {})
240
+ self.$emit(item.clickEvent?.method?.name, args)
241
+ } else if (item.clickEvent?.type === "modal") {
242
+ self.$Message.info(item.clickEvent.name)
235
243
  }
236
- let args = item.clickEvent?.method?.keys?.reduce((total, current) => {
237
- return Object.assign(total, {[current]: currentRow[current]})
238
- }, {})
239
- self.$emit(item.clickEvent?.method?.name, args)
240
- } else if (item.clickEvent?.type === "modal") {
241
- self.$Message.info(item.clickEvent.name)
242
- }
243
- }, item.permission)
244
+ }, item.permission)
245
+ }
244
246
  if (visibleDomsd.length < self.operColumnDropdownNum) {
245
247
  visibleDomsd.push(doms);
246
248
  } else if (visibleDomsd.length === self.operColumnDropdownNum && dropdownDomsd.length === 0){
@@ -259,6 +261,8 @@ export default {
259
261
  dropdownDomsd.length !== 0 ? operateMore(self,h,dropdownDomsd) : null
260
262
  ]);
261
263
  }
264
+ } else if (obj.hasOwnProperty('type') && (obj.type === 'selection'||obj.type === 'single-selection')) {
265
+ this.selectCondition = item.selectCondition ? item.selectCondition : ''
262
266
  }
263
267
  columns.push(item)
264
268
  })
@@ -499,6 +503,9 @@ export default {
499
503
  if (resp.code === 1 || resp.code === "000") {
500
504
  let tableData = resp.data.rows;
501
505
  for (let i = 0; i < tableData.length; i++) {
506
+ if (self.selectCondition && typeof self.selectCondition === "function") {
507
+ tableData[i]._disabled = !self.selectCondition({row:tableData[i]})
508
+ }
502
509
  if (self.selectRows[tableData[i][self.rowKey]]) {
503
510
  self.radioSelectIndex = i
504
511
  tableData[i]._checked = true;