bri-components 1.0.5 → 1.1.0

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 (98) hide show
  1. package/lib/0.bri-components.min.js +1 -1
  2. package/lib/1.bri-components.min.js +1 -1
  3. package/lib/2.bri-components.min.js +1 -1
  4. package/lib/3.bri-components.min.js +1 -1
  5. package/lib/4.bri-components.min.js +1 -1
  6. package/lib/5.bri-components.min.js +1 -1
  7. package/lib/6.bri-components.min.js +1 -1
  8. package/lib/7.bri-components.min.js +1 -0
  9. package/lib/8.bri-components.min.js +1 -0
  10. package/lib/9.bri-components.min.js +1 -0
  11. package/lib/bri-components.min.js +13 -5
  12. package/lib/styles/bundle.css +0 -2
  13. package/package.json +2 -1
  14. package/src/components/controls/base/BriLabels.vue +117 -0
  15. package/src/components/controls/base/DshCascader.vue +23 -38
  16. package/src/components/controls/base/DshCascaderMultiple.vue +1 -1
  17. package/src/components/controls/base/DshCheckbox.vue +14 -4
  18. package/src/components/controls/base/DshCoordinates.vue +5 -9
  19. package/src/components/controls/base/DshDate.vue +10 -34
  20. package/src/components/controls/base/DshDivider.vue +1 -1
  21. package/src/components/controls/base/DshEditor.vue +52 -44
  22. package/src/components/controls/base/DshInput.vue +18 -45
  23. package/src/components/controls/base/DshLabels.vue +8 -4
  24. package/src/components/controls/base/DshNumber/DshNumber.vue +6 -20
  25. package/src/components/controls/base/DshNumberange.vue +1 -1
  26. package/src/components/controls/base/DshPackage.vue +7 -1
  27. package/src/components/controls/base/DshSelect.vue +15 -5
  28. package/src/components/controls/base/DshSwitch.vue +2 -6
  29. package/src/components/controls/base/YSerialNumber.vue +0 -1
  30. package/src/components/controls/base/ZUpload/index.vue +16 -10
  31. package/src/components/controls/base/ZUpload/upload-list.vue +17 -12
  32. package/src/components/controls/base/ZUpload/uploadMixin.js +1 -5
  33. package/src/components/controls/base/controlShow.vue +52 -0
  34. package/src/components/controls/base/textMultiple/DshTextMultiple.vue +1 -1
  35. package/src/components/controls/controlMap.js +4 -0
  36. package/src/components/controls/controlMixin.js +18 -12
  37. package/src/components/controls/senior/cascaderTable.vue +188 -0
  38. package/src/components/controls/senior/flatTable.vue +131 -0
  39. package/src/components/form/DshForm.vue +0 -3
  40. package/src/components/list/BriFlatTable.vue +430 -0
  41. package/src/components/list/BriTable.vue +184 -0
  42. package/src/components/list/DshBox/DshPanel.vue +4 -9
  43. package/src/components/list/DshBox/DshTable.vue +29 -39
  44. package/src/components/list/DshCascaderTable.vue +6 -11
  45. package/src/components/other/BriTransfer.vue +71 -0
  46. package/src/components/small/BriButton.vue +65 -0
  47. package/src/components/small/BriTree.vue +42 -0
  48. package/src/components/small/Ctooltip.vue +1 -1
  49. package/src/components/small/DshButtons.vue +12 -42
  50. package/src/components/unit/DshFormItem.vue +0 -2
  51. package/src/components/unit/DshUnit.vue +1 -1
  52. package/src/components/unit/unitMixin.js +4 -1
  53. package/src/index.js +24 -4
  54. package/src/styles/bundle.css +0 -2
  55. package/src/styles/common/common.less +2 -2
  56. package/src/styles/common/control.less +53 -0
  57. package/src/styles/common/index.less +1 -0
  58. package/src/styles/components/controls/BriLabels.less +23 -0
  59. package/src/styles/components/controls/DshCascader.less +3 -3
  60. package/src/styles/components/controls/DshCheckbox.less +1 -1
  61. package/src/styles/components/controls/DshCoordinates.less +3 -3
  62. package/src/styles/components/controls/DshDate.less +54 -0
  63. package/src/styles/components/controls/DshDaterange.less +1 -1
  64. package/src/styles/components/controls/DshEditor.less +27 -9
  65. package/src/styles/components/controls/DshInput.less +5 -5
  66. package/src/styles/components/controls/DshLabels.less +1 -1
  67. package/src/styles/components/controls/DshSelect.less +46 -30
  68. package/src/styles/components/controls/ZUpload.less +82 -91
  69. package/src/styles/components/controls/cascaderTable.less +33 -0
  70. package/src/styles/components/controls/controlShow.less +12 -0
  71. package/src/styles/components/controls/flatTable.less +33 -0
  72. package/src/styles/components/form/DshAdvSearchForm.less +6 -6
  73. package/src/styles/components/index.less +10 -0
  74. package/src/styles/components/list/BriFlatTable.less +8 -0
  75. package/src/styles/components/list/BriTable.less +155 -0
  76. package/src/styles/components/list/DshFlatTable.less +3 -8
  77. package/src/styles/components/list/evTable.less +1 -1
  78. package/src/styles/components/other/BriTransfer.less +65 -0
  79. package/src/styles/components/other/DshEditPanel.less +2 -2
  80. package/src/styles/components/other/DshMenuNav.less +5 -5
  81. package/src/styles/components/other/ZGantt.less +5 -5
  82. package/src/styles/components/small/BriButton.less +259 -0
  83. package/src/styles/components/small/BriTree.less +57 -0
  84. package/src/styles/components/small/Ctooltip.less +14 -0
  85. package/src/styles/components/small/DshButtons.less +1 -1
  86. package/src/styles/components/small/DshControlDefine.less +2 -2
  87. package/src/styles/components/small/DshDropdown.less +1 -1
  88. package/src/styles/components/small/DshPage.less +1 -1
  89. package/src/styles/components/small/DshTabs.less +2 -2
  90. package/src/styles/components/unit/DshFormItem.less +5 -6
  91. package/src/styles/index.less +1 -5
  92. package/src/styles/plugin/easytable.less +22 -0
  93. package/src/styles/plugin/index.less +2 -0
  94. package/src/styles/plugin/iview.less +33 -0
  95. package/src/styles/variables.less +71 -88
  96. package/src/utils/table.js +72 -978
  97. package/src/styles/define.less +0 -374
  98. package/src/styles/view_reset.less +0 -452
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="`DshNumber ycFormItem control-${mode}`">
2
+ <div :class="`DshNumber`">
3
3
  <!-- 编辑模式 组件无clearable -->
4
4
  <template v-if="finalCanEdit">
5
5
  <BriInputNumber
@@ -33,26 +33,12 @@
33
33
  v-if="selfPropsObj._showProgress"
34
34
  :percent="value[controlKey] > 100 ? 100 : toDecimal(value[controlKey])"
35
35
  />
36
- <Ctooltip
36
+ <control-show
37
37
  v-else
38
- placement="top"
39
- :transfer="true"
40
- :content="String(showVal)"
41
- :class="commonClass"
42
- >
43
- <span
44
- v-if="$isFormItemHasData(showVal)"
45
- class="dsh-ellipsis hb-show-text"
46
- >
47
- {{ showVal }}
48
- </span>
49
- <span
50
- v-else
51
- class="dsh-ellipsis hb-nodata-text"
52
- >
53
- <span>暂无内容</span>
54
- </span>
55
- </Ctooltip>
38
+ :showVal="String(showVal)"
39
+ :propsObj="selfPropsObj"
40
+ :isUnit="isUnit"
41
+ ></control-show>
56
42
  </template>
57
43
  </div>
58
44
  </template>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <!-- 组件无clearable -->
3
- <div :class="`DshNumberange ycFormItem control-${mode}`">
3
+ <div class="DshNumberange">
4
4
  <!-- 最小值 -->
5
5
  <div class="DshNumberange-left">
6
6
  <BriInputNumber
@@ -32,7 +32,13 @@
32
32
  <div
33
33
  v-else
34
34
  class="DshPackage-nodata"
35
- ><span>暂无数据</span>
35
+ >
36
+ <template v-if="isUnit">
37
+ -
38
+ </template>
39
+ <template v-else>
40
+ 暂无内容
41
+ </template>
36
42
  </div>
37
43
  </div>
38
44
  </div>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="`DshSelect ycFormItem control-${mode}`">
2
+ <div class="DshSelect">
3
3
  <!-- optionKind值 'flat'、'dropdown' -->
4
4
  <template v-if="canEdit">
5
5
  <!-- 平铺 -->
@@ -82,7 +82,6 @@
82
82
 
83
83
  <Ctooltip
84
84
  v-else
85
- :class="commonClass"
86
85
  :content="valStr"
87
86
  maxWidth="200"
88
87
  placement="top"
@@ -91,9 +90,12 @@
91
90
  <div
92
91
  v-if="curSelectItem"
93
92
  class="DshCheckbox-value-wrapper"
93
+ :style="{
94
+ justifyContent: flatShowAlign
95
+ }"
94
96
  >
95
97
  <span
96
- class="DshCheckbox-value hb-show-color-text dsh-ellipsis"
98
+ class="DshCheckbox-value dsh-ellipsis"
97
99
  :style="{
98
100
  background: selfPropsObj._useColor ? getBgColor(curSelectItem.color, 0.1) : '',
99
101
  color: selfPropsObj._useColor ? getColor(curSelectItem.color) : ''
@@ -102,9 +104,14 @@
102
104
  </div>
103
105
  <div
104
106
  v-else
105
- class="hb-nodata-text dsh-ellipsis"
107
+ class="control-nodata-text dsh-ellipsis"
106
108
  >
107
- <span>暂无内容</span>
109
+ <template v-if="isUnit">
110
+ -
111
+ </template>
112
+ <template v-else>
113
+ 暂无内容
114
+ </template>
108
115
  </div>
109
116
  </Ctooltip>
110
117
 
@@ -177,6 +184,9 @@
177
184
  },
178
185
  showVal () {
179
186
  return this.valStr;
187
+ },
188
+ flatShowAlign () {
189
+ return !this.propsObj._align || this.propsObj._align == "left" || !this.isUnit ? "flex-start" : this.propsObj._align == "right" ? "flex-end" : "center";
180
190
  }
181
191
  },
182
192
  created () {
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="DshSwitch ycFormItem"
4
- :class="`control-${mode}`"
3
+ class="DshSwitch"
5
4
  :style="{ textAlign: propsObj._textAlign, width: '100%' }"
6
5
  >
7
6
  <!-- 组件无clearable -->
@@ -26,9 +25,6 @@
26
25
  maxWidth="200"
27
26
  :content="showVal"
28
27
  >
29
- <!-- <span class="dsh-ellipsis" :class="`control-${mode}-text`">
30
- {{ showVal }}
31
- </span> -->
32
28
  <div
33
29
  class="DshCheckbox-value-wrapper"
34
30
  :style="{
@@ -39,7 +35,7 @@
39
35
  }"
40
36
  >
41
37
  <span
42
- class="DshCheckbox-value hb-show-color-text dsh-ellipsis"
38
+ class="DshCheckbox-value control-show-color-text dsh-ellipsis"
43
39
  :style="{
44
40
  background: value[controlKey] ? '#ECF3FD' : '#FEF6EB',
45
41
  color: value[controlKey] ? '#3D84EE' : '#F4A135'
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <div class="YSerialNumber">
3
3
  <dsh-input
4
- :mode="canEdit ? 'default' : mode"
5
4
  :value="value"
6
5
  :propsObj="propsObj"
7
6
  :canEdit="false"
@@ -11,12 +11,10 @@
11
11
  v-else
12
12
  :class="[
13
13
  prefixCls,
14
- 'ycFormItem',
15
14
  'ZUpload',
16
15
  `ZUpload-${showType}`,
17
- { 'ZUpload-readonly': mode === 'default' && $isReadonly(canEdit, propsObj) },
18
- { 'ZUpload-disabled': mode === 'default' && $isDisabled(canEdit, propsObj) },
19
- commonClass
16
+ { 'ZUpload-readonly': $isReadonly(canEdit, propsObj) },
17
+ { 'ZUpload-disabled': $isDisabled(canEdit, propsObj) },
20
18
  ]"
21
19
  >
22
20
  <!-- 上传 -->
@@ -55,11 +53,11 @@
55
53
  <span v-else-if="showType=='old'">{{ percent }}%</span>
56
54
  </i-circle>
57
55
  <template v-else>
58
- <Icon
59
- v-if="['inline'].includes(showType)"
60
- custom="bico-font bico-upload1"
61
- />
62
- <span>上传</span>
56
+ <dsh-icons
57
+ :list="$getOperationList([propsObj._fileType === 'image' ? 'add' : 'upload'])"
58
+ @click="handleClick"
59
+ ></dsh-icons>
60
+ <span v-if="showType!='inline'">点击上传{{ propsObj._fileType === 'image' ? "图片" : "文件" }}</span>
63
61
  </template>
64
62
  </div>
65
63
  </slot>
@@ -74,6 +72,7 @@
74
72
  :isReadonly="$isReadonly(canEdit, propsObj)"
75
73
  :isDisabled="$isDisabled(canEdit, propsObj)"
76
74
  :finalCanEdit="finalCanEdit"
75
+ :isUnit="isUnit"
77
76
  @on-file-remove="handleRemove"
78
77
  @on-file-preview="handlePreview"
79
78
  ></upload-list>
@@ -171,6 +170,14 @@
171
170
  },
172
171
  data () {
173
172
  return {
173
+ operationMap: {
174
+ upload: {
175
+ customIcon: "bico-upload1"
176
+ },
177
+ add: {
178
+ icon: "md-add"
179
+ }
180
+ },
174
181
  prefixCls: prefixCls,
175
182
  dragOver: false,
176
183
  tempIndex: 1
@@ -229,7 +236,6 @@
229
236
  },
230
237
  methods: {
231
238
  handleClick () {
232
- if (this.itemDisabled) return;
233
239
  this.$refs.input.click();
234
240
  },
235
241
  handleChange (e) {
@@ -56,7 +56,7 @@
56
56
  class="uploadList-nodata"
57
57
  >
58
58
  <Icon type="ios-time" />
59
- <span>未上传文件</span>
59
+ <span>{{ noText }}</span>
60
60
  </div>
61
61
  </template>
62
62
  <!-- 自定义新的展示方式 -->
@@ -90,7 +90,7 @@
90
90
  ></dsh-icons>
91
91
  </div>
92
92
  </div>
93
- <span v-else>未上传文件</span>
93
+ <span v-else class="uploadList-inline-nodata">{{ noText }}</span>
94
94
  </template>
95
95
  </div>
96
96
  </template>
@@ -114,7 +114,8 @@
114
114
  isReadonly: Boolean,
115
115
  isDisabled: Boolean,
116
116
  finalCanEdit: Boolean,
117
- propsObj: Object
117
+ propsObj: Object,
118
+ isUnit: Boolean
118
119
  },
119
120
  computed: {
120
121
  operationMap () {
@@ -145,15 +146,19 @@
145
146
  },
146
147
  imageResizeConfig () {
147
148
  return {};
148
- // this.propsObj._imageResizeConfig || (this.showType == "inline" ? {
149
- // m: "lfit",
150
- // w: 34,
151
- // h: 37
152
- // } : {
153
- // m: "lfit",
154
- // w: 76,
155
- // h: 50
156
- // });
149
+ },
150
+ noText () {
151
+ if (this.files && this.files.length) {
152
+ return "";
153
+ } else {
154
+ if (this.finalCanEdit) {
155
+ return `未上传${this.propsObj._fileType === "image" ? "图片" : "文件"} `;
156
+ } else if (this.isUnit) {
157
+ return "-";
158
+ } else {
159
+ return "暂无内容";
160
+ }
161
+ }
157
162
  }
158
163
  },
159
164
  data () {
@@ -97,11 +97,7 @@ export default {
97
97
  }
98
98
  })
99
99
  .then(response => {
100
- const newResponse = {
101
- data: response,
102
- res: {}
103
- };
104
- this.handleSuccess && this.handleSuccess(newResponse, newResponse.data, file);
100
+ this.handleSuccess && this.handleSuccess(response, response.data, file);
105
101
  callback && callback(response.data);
106
102
  }).catch(error => {
107
103
  this.handleError && this.handleError(error, {}, file);
@@ -0,0 +1,52 @@
1
+ <template>
2
+ <div class="controlShow">
3
+ <Ctooltip
4
+ :transfer="true"
5
+ maxWidth="200"
6
+ :content="showVal"
7
+ >
8
+ <span
9
+ v-if="$isFormItemHasData(showVal)"
10
+ class="dsh-ellipsis controlShow-val"
11
+ >
12
+ {{ showVal }}
13
+ </span>
14
+ <span
15
+ v-else
16
+ class="controlShow-nodata dsh-ellipsis"
17
+ >
18
+ {{noDataText}}
19
+ </span>
20
+ </Ctooltip>
21
+ </div>
22
+ </template>
23
+
24
+ <script>
25
+
26
+ export default {
27
+ name: "controlShow",
28
+ props: {
29
+ showVal: String,
30
+ propsObj: {
31
+ type: Object,
32
+ default: () => {
33
+ return {};
34
+ }
35
+ },
36
+ isUnit: Boolean
37
+ },
38
+ data () {
39
+ return {
40
+ };
41
+ },
42
+ computed: {
43
+ noDataText () {
44
+ return this.isUnit ? "-" : "暂无数据";
45
+ }
46
+ },
47
+ created () {
48
+ },
49
+ methods: {
50
+ }
51
+ };
52
+ </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="DshTextMultiple ycFormItem">
2
+ <div class="DshTextMultiple">
3
3
  <Input
4
4
  class="DshTextMultiple-control"
5
5
  v-model="text"
@@ -35,6 +35,8 @@ const componentNameMap = {
35
35
  tag: "DshDivider",
36
36
  labels: "DshLabels",
37
37
  package: "DshPackage",
38
+ flatTable: "flatTable",
39
+ cascaderTable: "cascaderTable",
38
40
 
39
41
  back: "DshBack",
40
42
  undefined: "DshUndeveloped",
@@ -62,6 +64,8 @@ const pathMap = {
62
64
  DshDivider: "./base/DshDivider.vue",
63
65
  DshLabels: "./base/DshLabels.vue",
64
66
  DshPackage: "./base/DshPackage.vue",
67
+ flatTable: "./senior/flatTable.vue",
68
+ cascaderTable: "./senior/cascaderTable",
65
69
 
66
70
  DshBack: "./base/DshBack.vue",
67
71
  DshUndeveloped: "./base/DshUndeveloped.vue"
@@ -1,9 +1,5 @@
1
1
  export default {
2
2
  props: {
3
- mode: {
4
- type: String,
5
- default: "default"
6
- },
7
3
  canEdit: {
8
4
  type: Boolean,
9
5
  default: true
@@ -19,6 +15,10 @@ export default {
19
15
  default () {
20
16
  return {};
21
17
  }
18
+ },
19
+ isUnit: {
20
+ type: Boolean,
21
+ default: false
22
22
  }
23
23
  },
24
24
  data () {
@@ -57,15 +57,21 @@ export default {
57
57
  _clearable: this.finalCanEdit && (this.propsObj._clearable === undefined ? true : this.propsObj._clearable)
58
58
  };
59
59
  },
60
- // 不同mode模式下readOnly 和disabled样式名
60
+ currentVal () {
61
+ return this.value[this.controlKey];
62
+ },
61
63
  commonClass () {
62
- let commonClass = `control-${this.mode}-${this.$isReadonly(this.canEdit, this.propsObj)
63
- ? "readonly"
64
- : this.$isDisabled(this.canEdit, this.propsObj)
65
- ? "disabled"
66
- : "edit"
67
- }`;
68
- return commonClass;
64
+ return {
65
+ "dsh-ellipsis": true,
66
+ "control-edit": this.finalCanEdit,
67
+ "control-disabled": this.$isDisabled(this.canEdit, this.propsObj),
68
+ // "control-readonly": this.$isReadonly(this.canEdit, this.propsObj),
69
+ "control-show": !this.canEdit,
70
+ "control-notext": !this.currentVal
71
+ };
72
+ },
73
+ showText () {
74
+ return this.currentVal || (this.isUnit ? "-" : "暂无内容");
69
75
  }
70
76
  },
71
77
  methods: {
@@ -0,0 +1,188 @@
1
+ <template>
2
+ <div class="cascaderTable" :id="`cascaderTable${controlKey}`">
3
+ <!-- 表格查看 -->
4
+ <span v-if="isUnit" class="cascaderTable-unit">
5
+ <dsh-icons
6
+ :list="$getOperationList(['link'])"
7
+ ></dsh-icons>
8
+ <span class="cascaderTable-unit-text">
9
+ {{ value[controlKey] && value[controlKey].tree.length || 0 }}行
10
+ </span>
11
+ </span>
12
+
13
+ <!-- 配置端默认模式-->
14
+ <dsh-btn-modal v-else-if="propsObj._key === '_default'">
15
+ <dsh-cascader-table
16
+ :canEdit="finalCanEdit"
17
+ :treeColumns="treeColumns"
18
+ :subColumns="subColumns"
19
+ :data="value[controlKey]"
20
+ :propsObj="propsObj"
21
+ @change="change"
22
+ ></dsh-cascader-table>
23
+ </dsh-btn-modal>
24
+
25
+ <template v-else>
26
+ <!-- 操作按钮 -->
27
+ <dsh-buttons
28
+ class="cascaderTable-btns"
29
+ itemClass="cascaderTable-btns-item"
30
+ :list="$getOperationList(operationFieldList)"
31
+ @click="$dispatchEvent($event)"
32
+ ></dsh-buttons>
33
+
34
+ <dsh-cascader-table
35
+ v-if="value[controlKey]"
36
+ useCol
37
+ :canEdit="finalCanEdit"
38
+ :treeColumns="treeColumns"
39
+ :subColumns="subColumns"
40
+ :data="value[controlKey]"
41
+ :propsObj="propsObj"
42
+ @change="change"
43
+ ></dsh-cascader-table>
44
+
45
+ <dsh-modal
46
+ v-model="isEnlarge"
47
+ mode="custom"
48
+ :propsObj="modalPropsObj"
49
+ >
50
+ <dsh-cascader-table
51
+ v-if="value[controlKey] && isEnlarge"
52
+ useCol
53
+ :canEdit="finalCanEdit"
54
+ :treeColumns="treeColumns"
55
+ :subColumns="subColumns"
56
+ :data="value[controlKey]"
57
+ :propsObj="propsObj"
58
+ @change="change"
59
+ ></dsh-cascader-table>
60
+ </dsh-modal>
61
+ </template>
62
+ </div>
63
+ </template>
64
+
65
+ <script>
66
+ import controlMixin from "../controlMixin.js";
67
+
68
+ export default {
69
+ name: "cascaderTable",
70
+ mixins: [controlMixin],
71
+ components: {},
72
+ props: {},
73
+ data () {
74
+ return {
75
+ operationMap: {
76
+ canExport: {
77
+ name: "导出",
78
+ type: "canExport",
79
+ icon: "md-share-alt",
80
+ size: "small",
81
+ btnType: "text",
82
+ event: "openExportModal"
83
+ },
84
+ canEnlarge: {
85
+ name: "全屏展示",
86
+ type: "canEnlarge",
87
+ icon: "md-expand",
88
+ size: "small",
89
+ btnType: "text",
90
+ event: "enlarge"
91
+ },
92
+ link: {
93
+ customIcon: "bico-Cascadetable"
94
+ }
95
+ },
96
+ isEnlarge: false,
97
+ timer: null
98
+ };
99
+ },
100
+ computed: {
101
+ modalPropsObj () {
102
+ return {
103
+ title: this.propsObj._name,
104
+ fullscreen: true,
105
+ showSlotClose: false,
106
+ closable: true
107
+ };
108
+ },
109
+ operationFieldList () {
110
+ return this.propsObj._isExport ? ["canExport", "canEnlarge"] : ["canEnlarge"];
111
+ },
112
+ treeColumns () {
113
+ return this.value[this.controlKey]._treeForm
114
+ ? this.value[this.controlKey]._treeForm
115
+ : this.propsObj._treeForm;
116
+ },
117
+ subColumns () {
118
+ return this.propsObj._subForm;
119
+ }
120
+ },
121
+ created () {},
122
+ methods: {
123
+ // 发生变动
124
+ change (...params) {
125
+ this.$emit("change", ...params);
126
+ },
127
+
128
+ // 导出点击
129
+ openExportModal (operationItem) {
130
+ operationItem.disabled = true;
131
+ this.$https({
132
+ url: {
133
+ module: "sheet",
134
+ name: "exportCascaderTableExcel",
135
+ params: {
136
+ modKey: this.modKey
137
+ }
138
+ },
139
+ params: {
140
+ _key: this.controlKey,
141
+ _id: this.value._id
142
+ },
143
+ callback: data => {
144
+ setTimeout(() => {
145
+ operationItem.disabled = false;
146
+ }, 500);
147
+ this.timer = setInterval(this.getTransitStatus(data.jobId, data.excel_url), 1000);
148
+ }
149
+ });
150
+ },
151
+ getTransitStatus (id, url) {
152
+ let that = this;
153
+ return function () {
154
+ that.getJobStatus(id, url);
155
+ };
156
+ },
157
+ getJobStatus (id, url) {
158
+ this.$https({
159
+ url: {
160
+ module: "sheet",
161
+ name: "getJobStatus"
162
+ },
163
+ params: {
164
+ jobId: id
165
+ },
166
+ callback: data => {
167
+ if (data.status === "completed") {
168
+ clearInterval(this.timer);
169
+ window.location.href = data.url;
170
+ } else if (data.status === "failed") {
171
+ clearInterval(this.timer);
172
+ // this.exportBtnLoading = false;
173
+ this.$Message.info({ content: "操作失败,请稍后再试" });
174
+ }
175
+ },
176
+ error: data => {
177
+ this.timer = null;
178
+ }
179
+ });
180
+ },
181
+
182
+ // 打开全屏模态框
183
+ enlarge () {
184
+ this.isEnlarge = true;
185
+ }
186
+ }
187
+ };
188
+ </script>