@lambo-design/schema-paging-table 1.0.0-beta.60 → 1.0.0-beta.61

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 +68 -51
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambo-design/schema-paging-table",
3
- "version": "1.0.0-beta.60",
3
+ "version": "1.0.0-beta.61",
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/core": "^4.7.1-beta.158",
15
- "@lambo-design/shared": "^1.0.0-beta.252",
16
- "@lambo-design/paging-table": "^1.0.0-beta.91",
17
- "@lambo-design/schema-form": "^1.0.0-beta.84"
14
+ "@lambo-design/core": "^4.7.1-beta.159",
15
+ "@lambo-design/shared": "^1.0.0-beta.255",
16
+ "@lambo-design/schema-form": "^1.0.0-beta.84",
17
+ "@lambo-design/paging-table": "^1.0.0-beta.92"
18
18
  },
19
19
  "scripts": {
20
20
  "release": "pnpm release-beta && git push --follow-tags && pnpm re-publish",
package/src/index.vue CHANGED
@@ -240,65 +240,35 @@ export default {
240
240
  doms = item.name ? item.name : param.row[obj.key]
241
241
  } else {
242
242
  doms = operateHref(self, h, param.row, item.name || param.row[obj.key], (vm, currentRow) => {
243
- if (item.clickEvent?.type === "route") {
244
- // self.$Message.info(item.clickEvent.name)
245
- let query = item.clickEvent?.route?.keys?.reduce((acc, sourceItem) => {
246
- return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
247
- }, {})
248
- self.$router.push({
249
- path: item.clickEvent?.route?.path,
250
- query
251
- })
252
- } else if (item.clickEvent?.type === "request") {
253
- // self.$Message.info(item.clickEvent.name)
254
- let data = item.clickEvent?.request?.keys?.reduce((acc, sourceItem) => {
255
- return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
256
- }, {})
257
- let request = {
258
- url: item.clickEvent.request.url,
259
- method: item.clickEvent.request.method,
260
- param: data || currentRow,
261
- }
262
- let response = item.clickEvent.response
263
- if (item.clickEvent.tips) {
264
- let tips = item.clickEvent.tips
265
- this.$Modal.confirm({
266
- title: tips.title,
267
- content: '<p>' + tips.content + '</p>',
268
- onOk: () => {
269
- self.fetch(request, response)
270
- }
271
- });
272
- } else {
273
- self.fetch(request, response)
274
- }
275
- } else if (item.clickEvent?.type === "method") {
276
- if(!item.clickEvent?.method?.keys) {
277
- self.$emit(item.clickEvent?.method?.name, param.index,currentRow);
278
- return ;
279
- }
280
- let args = item.clickEvent?.method?.keys?.reduce((total, current) => {
281
- return Object.assign(total, {[current]: currentRow[current]})
282
- }, {})
283
- self.$emit(item.clickEvent?.method?.name, args)
284
- } else if (item.clickEvent?.type === "modal") {
285
- self.$Message.info(item.clickEvent.name)
286
- }
243
+ self.handleClickEvent(item, currentRow)
287
244
  }, '', item.permission)
288
245
  }
246
+ let directives = item.permission ? [{ name: "permission", value: item.permission }] : null;
289
247
  if (visibleDomsd.length < self.operColumnDropdownNum) {
290
248
  visibleDomsd.push(doms);
291
- } else if (visibleDomsd.length === self.operColumnDropdownNum && dropdownDomsd.length === 0){
292
- dropdownDomsd.push(h('DropdownItem', {}, [visibleDomsd[self.operColumnDropdownNum - 1]]))
293
- dropdownDomsd.push(h('DropdownItem', {}, [doms]))
249
+ if (visibleDomsd.length === self.operColumnDropdownNum) {
250
+ dropdownDomsd.push(h('DropdownItem', {
251
+ nativeOn: {
252
+ 'click': () => {
253
+ self.handleClickEvent(item, param.row)
254
+ }
255
+ },
256
+ directives
257
+ }, [doms]))
258
+ visibleDomsd.splice(self.operColumnDropdownNum - 1, 1)
259
+ }
294
260
  } else {
295
- dropdownDomsd.push(h('DropdownItem', {}, [doms]))
261
+ dropdownDomsd.push(h('DropdownItem', {
262
+ nativeOn: {
263
+ 'click': () => {
264
+ self.handleClickEvent(item, param.row)
265
+ }
266
+ },
267
+ directives
268
+ }, [doms]))
296
269
  }
297
270
  }
298
271
  })
299
- if (dropdownDomsd.length !== 0) {
300
- visibleDomsd.splice(self.operColumnDropdownNum - 1, 1)
301
- }
302
272
  return h('div', {}, [
303
273
  ...visibleDomsd,
304
274
  dropdownDomsd.length !== 0 ? operateMore(self,h,dropdownDomsd) : null
@@ -373,6 +343,53 @@ export default {
373
343
  window.removeEventListener('resize', this.calculateButtonsInFirstRow);
374
344
  },
375
345
  methods: {
346
+ handleClickEvent(item, currentRow) {
347
+ let self = this
348
+ if (item.clickEvent?.type === "route") {
349
+ // self.$Message.info(item.clickEvent.name)
350
+ let query = item.clickEvent?.route?.keys?.reduce((acc, sourceItem) => {
351
+ return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
352
+ }, {})
353
+ self.$router.push({
354
+ path: item.clickEvent?.route?.path,
355
+ query
356
+ })
357
+ } else if (item.clickEvent?.type === "request") {
358
+ // self.$Message.info(item.clickEvent.name)
359
+ let data = item.clickEvent?.request?.keys?.reduce((acc, sourceItem) => {
360
+ return Object.assign(acc, {[sourceItem]: currentRow[sourceItem]})
361
+ }, {})
362
+ let request = {
363
+ url: item.clickEvent.request.url,
364
+ method: item.clickEvent.request.method,
365
+ param: data || currentRow,
366
+ }
367
+ let response = item.clickEvent.response
368
+ if (item.clickEvent.tips) {
369
+ let tips = item.clickEvent.tips
370
+ this.$Modal.confirm({
371
+ title: tips.title,
372
+ content: '<p>' + tips.content + '</p>',
373
+ onOk: () => {
374
+ self.fetch(request, response)
375
+ }
376
+ });
377
+ } else {
378
+ self.fetch(request, response)
379
+ }
380
+ } else if (item.clickEvent?.type === "method") {
381
+ if(!item.clickEvent?.method?.keys) {
382
+ self.$emit(item.clickEvent?.method?.name, param.index,currentRow);
383
+ return ;
384
+ }
385
+ let args = item.clickEvent?.method?.keys?.reduce((total, current) => {
386
+ return Object.assign(total, {[current]: currentRow[current]})
387
+ }, {})
388
+ self.$emit(item.clickEvent?.method?.name, args)
389
+ } else if (item.clickEvent?.type === "modal") {
390
+ self.$Message.info(item.clickEvent.name)
391
+ }
392
+ },
376
393
  //计算第一行有多少个button,根据父div宽度和每个button的宽度计算
377
394
  calculateButtonsInFirstRow() {
378
395
  let container = this.$refs.container