@lambo-design/schema-paging-table 1.0.0-beta.54 → 1.0.0-beta.56

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 +4 -4
  2. package/src/index.vue +73 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambo-design/schema-paging-table",
3
- "version": "1.0.0-beta.54",
3
+ "version": "1.0.0-beta.56",
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/shared": "^1.0.0-beta.246",
15
- "@lambo-design/schema-form": "^1.0.0-beta.76",
14
+ "@lambo-design/core": "^4.7.1-beta.156",
15
+ "@lambo-design/shared": "^1.0.0-beta.248",
16
16
  "@lambo-design/paging-table": "^1.0.0-beta.90",
17
- "@lambo-design/core": "^4.7.1-beta.156"
17
+ "@lambo-design/schema-form": "^1.0.0-beta.77"
18
18
  },
19
19
  "scripts": {
20
20
  "release": "pnpm release-beta && git push --follow-tags && pnpm re-publish",
package/src/index.vue CHANGED
@@ -51,9 +51,11 @@
51
51
  :icon="item.icon"
52
52
  v-permission="item.permission"
53
53
  :key="index"
54
- @click="doClick(item)"
54
+ :loading="loading[index]"
55
+ @click="doClick(item, index)"
55
56
  :class="buttonShowClass">
56
- {{ item.name }}
57
+ <span v-if="!loading[index]">{{ item.name }}</span>
58
+ <span v-else>{{ loadingMsg[index] }}</span>
57
59
  </Button>
58
60
  </Row>
59
61
  </Col>
@@ -90,7 +92,9 @@ export default {
90
92
  selectRows: [],
91
93
  selectedKeys: [],
92
94
  radioSelectIndex: -1,
93
- selectCondition:''
95
+ selectCondition:'',
96
+ loading: {},
97
+ loadingMsg: {}
94
98
  }
95
99
  },
96
100
  props:{
@@ -390,7 +394,7 @@ export default {
390
394
  setCollapse: function() {
391
395
  this.collapsed = !this.collapsed
392
396
  },
393
- doClick(item){
397
+ doClick(item, index){
394
398
  let self = this;
395
399
  if (item.clickEvent?.type === "route") {
396
400
  const routeInfo = item.clickEvent.route;
@@ -449,6 +453,51 @@ export default {
449
453
  self.$emit(item.clickEvent?.method?.name, param)
450
454
  }
451
455
  }
456
+ } else if (item.clickEvent?.type === "request") {
457
+ const requestInfo = item.clickEvent.request;
458
+ const keysExist = requestInfo.keys && requestInfo.keys.length !== 0;
459
+ let selection = self.getSelection()
460
+ if (keysExist && selection.length === 0) {
461
+ self.$Message.info('请选择一条记录!')
462
+ return
463
+ }
464
+ const response = item.clickEvent.response
465
+ let data;
466
+ if (self.multiSelect) {
467
+ data = selection.map((select, index) => {
468
+ if (item.clickEvent?.request?.keys) {
469
+ let obj = item.clickEvent?.request?.keys?.reduce((acc, sourceItem) => {
470
+ return Object.assign(acc, {[sourceItem]: select[sourceItem]})
471
+ }, {})
472
+ return obj
473
+ } else {
474
+ return item
475
+ }
476
+ })
477
+ } else {
478
+ if (item.clickEvent?.request?.keys) {
479
+ data = item.clickEvent?.request?.keys?.reduce((acc, sourceItem) => {
480
+ return Object.assign(acc, {[sourceItem]: selection[0][sourceItem]})
481
+ }, {})
482
+ }
483
+ }
484
+ const request = {
485
+ url: item.clickEvent.request.url,
486
+ method: item.clickEvent.request.method,
487
+ param: data,
488
+ }
489
+ if (item.clickEvent.tips.title) {
490
+ let tips = item.clickEvent.tips
491
+ this.$Modal.confirm({
492
+ title: tips.title,
493
+ content: '<p>' + tips.content + '</p>',
494
+ onOk: () => {
495
+ self.fetch(request, response, index)
496
+ }
497
+ });
498
+ } else {
499
+ self.fetch(request, response, index)
500
+ }
452
501
  }
453
502
  },
454
503
  doSearch: function () {
@@ -466,20 +515,36 @@ export default {
466
515
  this.queryForm = this.$options.propsData.form;
467
516
  this.doSearch()
468
517
  },
469
- fetch: function (request,response) {
518
+ fetch: function (request,response,index) {
470
519
  let self = this
471
520
  let options = {
472
521
  url: request.url,
473
522
  method: request.method,
474
523
  [request.method==='GET'?"params":"data"]:request.param
475
524
  }
525
+ if (index) {
526
+ self.$set(self.loading, index, true)
527
+ self.$set(self.loadingMsg, index, response.loadingMsg || '执行中...')
528
+ }
476
529
  ajax.request(options).then(function (resp) {
477
- // todo 判断返回码
478
- self.$Message.success(response.successMsg)
479
- self.doSearch()
530
+ if (resp.data && resp.data.code === 1) {
531
+ self.$Message.success(response.successMsg)
532
+ if (index) {
533
+ self.$set(self.loading, index, false)
534
+ }
535
+ self.$refs.schemaPagingTable.tableRefresh()
536
+ } else {
537
+ self.$Message.error(response.errorMsg)
538
+ if (index) {
539
+ self.$set(self.loading, index, false)
540
+ }
541
+ }
480
542
  }).catch(function (err) {
481
543
  console.error(err)
482
544
  self.$Message.error(response.errorMsg)
545
+ if (index) {
546
+ self.$set(self.loading, index, false)
547
+ }
483
548
  })
484
549
  },
485
550
  /**