@bytenew/bn-bus-ui 1.1.461 → 1.1.463

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 (167) hide show
  1. package/install.js +134 -0
  2. package/package.json +20 -4
  3. package/packages/BnAddress/index.vue +141 -0
  4. package/packages/BnAddressParse/index.vue +75 -0
  5. package/packages/BnAdvancedFilter/BnFilterView.vue +145 -0
  6. package/packages/BnAdvancedFilter/index.vue +345 -0
  7. package/packages/BnAdvancedFilter/util.js +171 -0
  8. package/packages/BnCascader/BnCascader.vue +543 -0
  9. package/packages/BnCascader/BnCascaderPanel.vue +1331 -0
  10. package/packages/BnCascader/cascaderDisplay.js +102 -0
  11. package/packages/BnCheck/BnCheck.vue +253 -0
  12. package/packages/BnColumnConfig/columnConfigDialog.vue +134 -0
  13. package/packages/BnColumnConfig/component/childrenFormSetting/assocTable.vue +143 -0
  14. package/packages/BnColumnConfig/component/childrenFormSetting/assocTableSearch.vue +314 -0
  15. package/packages/BnColumnConfig/component/childrenFormSetting/index.vue +243 -0
  16. package/packages/BnColumnConfig/component/defaultSet/defaultSet.vue +114 -0
  17. package/packages/BnColumnConfig/component/defaultSet/stringDefault.vue +210 -0
  18. package/packages/BnColumnConfig/component/funcExprDialog/funcExprDialog.vue +126 -0
  19. package/packages/BnColumnConfig/component/packageFilter/index.vue +141 -0
  20. package/packages/BnColumnConfig/component/paraExplainSet/index.vue +156 -0
  21. package/packages/BnColumnConfig/component/setOption/setOption.vue +321 -0
  22. package/packages/BnColumnConfig/component/setRelationOption/ConditionList.vue +277 -0
  23. package/packages/BnColumnConfig/component/setRelationOption/LevelHeader.vue +144 -0
  24. package/packages/BnColumnConfig/component/setRelationOption/setRelationOption.vue +642 -0
  25. package/packages/BnColumnConfig/data.js +129 -0
  26. package/packages/BnColumnConfig/index.scss +23 -0
  27. package/packages/BnColumnConfig/index.vue +309 -0
  28. package/packages/BnCondVal/BnCondVal.vue +112 -0
  29. package/packages/BnCondVal/itemVal/dateRegVal.vue +39 -0
  30. package/packages/BnCondVal/itemVal/dateVal.vue +39 -0
  31. package/packages/BnCondVal/itemVal/numRegVal.vue +67 -0
  32. package/packages/BnCondVal/itemVal/numVal.vue +44 -0
  33. package/packages/BnCondVal/itemVal/relationVal.vue +73 -0
  34. package/packages/BnCondVal/itemVal/selectColumnVal.vue +58 -0
  35. package/packages/BnCondVal/itemVal/selectVal.vue +59 -0
  36. package/packages/BnCondVal/itemVal/stringVal.vue +156 -0
  37. package/packages/BnCondition/index.vue +551 -0
  38. package/packages/BnCondition/util.js +232 -0
  39. package/packages/BnDatePicker/BnDatePicker.vue +194 -0
  40. package/packages/BnDrop/BnDrop.vue +917 -0
  41. package/packages/BnEmptyTip/BnEmptyTip.vue +107 -0
  42. package/packages/BnExportOrder/BnExportOrder.vue +241 -0
  43. package/packages/BnExportOrder/validatorCode.vue +94 -0
  44. package/packages/BnFileView/BnFileView.vue +271 -0
  45. package/packages/BnFileView/FileDetail.vue +125 -0
  46. package/packages/BnFileView/videoPreview.vue +70 -0
  47. package/packages/BnFilterOption/BnFilterOption.vue +160 -0
  48. package/packages/BnFunExpr/BnFunExpr.vue +608 -0
  49. package/packages/BnImportOrder/BnImportOrder.vue +323 -0
  50. package/packages/BnImportTemplate/BnImportTemplate.vue +866 -0
  51. package/packages/BnImportTemplate/assets/merge_tip_img.png +0 -0
  52. package/packages/BnImportTemplate/assets/sheet_tip.png +0 -0
  53. package/packages/BnImportTemplate/assets/xls.png +0 -0
  54. package/packages/BnImportTemplate/components/ImportTemplateTrigger.vue +198 -0
  55. package/packages/BnImportTemplate/components/TemplateEditDialog.vue +340 -0
  56. package/packages/BnImportTemplate/components/TemplateFieldsConfig.vue +401 -0
  57. package/packages/BnImportTemplate/components/TemplateListDialog.vue +297 -0
  58. package/packages/BnInpNum/BnInpNum.vue +165 -0
  59. package/packages/BnMenus/BnMenus.vue +502 -0
  60. package/packages/BnMenus/MenuItem.vue +321 -0
  61. package/packages/BnOrderCard/BnOrderCard.vue +389 -0
  62. package/packages/BnOrderCard/orderRemark.vue +178 -0
  63. package/packages/BnOrderCard/util.js +94 -0
  64. package/packages/BnOrderDetail/BnOrderDetail.vue +338 -0
  65. package/packages/BnOrderDetail/filterLogByUser.vue +108 -0
  66. package/packages/BnOrderDetail/orderLogs.vue +53 -0
  67. package/packages/BnOrderDetail/showSubForm/index.vue +41 -0
  68. package/packages/BnOrderDetail/showSubForm/showChildTable.vue +61 -0
  69. package/packages/BnOrderDetail/showSubForm/showTimeLine.vue +131 -0
  70. package/packages/BnOrderDetail/showSubForm/tableCellCopy.vue +84 -0
  71. package/packages/BnOrderShare/index.vue +378 -0
  72. package/packages/BnOrderShare/shareUrlInp.vue +54 -0
  73. package/packages/BnRadio/BnRadio.vue +181 -0
  74. package/packages/BnRelation/BnRelation.vue +120 -0
  75. package/packages/BnSelect/BnSelect.vue +485 -0
  76. package/packages/BnSmartForm/BnBatchForm.vue +334 -0
  77. package/packages/BnSmartForm/BnBatchFormDialog.vue +423 -0
  78. package/packages/BnSmartForm/BnSmartElf/elfLog/index.vue +57 -0
  79. package/packages/BnSmartForm/BnSmartElf/index.vue +95 -0
  80. package/packages/BnSmartForm/BnSmartFormPsychic.js +629 -0
  81. package/packages/BnSmartForm/BnSmartFormUtil.js +524 -0
  82. package/packages/BnSmartForm/addressForm/index.vue +73 -0
  83. package/packages/BnSmartForm/checkboxForm/index.vue +99 -0
  84. package/packages/BnSmartForm/childrenForm/childFormFile.vue +237 -0
  85. package/packages/BnSmartForm/childrenForm/childrenFormBody.vue +260 -0
  86. package/packages/BnSmartForm/childrenForm/index.vue +110 -0
  87. package/packages/BnSmartForm/childrenForm/searchInventory.vue +115 -0
  88. package/packages/BnSmartForm/chooseAssocTable/chooseAssocTable.vue +451 -0
  89. package/packages/BnSmartForm/chooseAssocTable/chooseChildGood.vue +229 -0
  90. package/packages/BnSmartForm/chooseAssocTable/tableCellCopy.vue +84 -0
  91. package/packages/BnSmartForm/chooseChildOrder/chooseChildOrder.vue +158 -0
  92. package/packages/BnSmartForm/chooseIPaasData/chooseIPaasData.vue +307 -0
  93. package/packages/BnSmartForm/chooseIPaasData/tableCellCopy.vue +84 -0
  94. package/packages/BnSmartForm/choosePackage/choosePackage.vue +361 -0
  95. package/packages/BnSmartForm/dateDualForm/index.vue +37 -0
  96. package/packages/BnSmartForm/dateForm/index.vue +38 -0
  97. package/packages/BnSmartForm/fileForm/fileFormData.js +50 -0
  98. package/packages/BnSmartForm/fileForm/index.vue +240 -0
  99. package/packages/BnSmartForm/formItemFooter/formItemFooter.vue +38 -0
  100. package/packages/BnSmartForm/formItemTop/formItemTop.vue +42 -0
  101. package/packages/BnSmartForm/index.vue +1201 -0
  102. package/packages/BnSmartForm/numberForm/index.vue +63 -0
  103. package/packages/BnSmartForm/radioForm/index.vue +72 -0
  104. package/packages/BnSmartForm/receiveForm/index.vue +112 -0
  105. package/packages/BnSmartForm/relationForm/index.vue +82 -0
  106. package/packages/BnSmartForm/scoreForm/index.vue +39 -0
  107. package/packages/BnSmartForm/selectForm/index.vue +55 -0
  108. package/packages/BnSmartForm/showValForm/index.vue +42 -0
  109. package/packages/BnSmartForm/showValForm/showValFormTable.vue +104 -0
  110. package/packages/BnSmartForm/smartFormsCommon.scss +43 -0
  111. package/packages/BnSmartForm/stringForm/index.vue +170 -0
  112. package/packages/BnVirtPopover/index.vue +319 -0
  113. package/packages/BnWebLog/BnWebLog.vue +140 -0
  114. package/packages/BnWorkSettingDrop/advancedOptions.js +112 -0
  115. package/packages/BnWorkSettingDrop/benBenAIUtil.js +89 -0
  116. package/packages/BnWorkSettingDrop/index.vue +292 -0
  117. package/packages/font/iconfont.css +243 -0
  118. package/packages/font/iconfont.ttf +0 -0
  119. package/packages/font/iconfont.woff +0 -0
  120. package/packages/font/iconfont.woff2 +0 -0
  121. package/utils/addressParse-old.js +645 -0
  122. package/utils/addressParse.js +735 -0
  123. package/utils/config.js +68 -0
  124. package/utils/index.js +1171 -0
  125. package/dist/assocTableSearch-C14i_zJO.js +0 -349
  126. package/dist/assocTableSearch.css +0 -1
  127. package/dist/bn-bus-ui.es.js +0 -65
  128. package/dist/bn-bus-ui.umd.js +0 -49
  129. package/dist/chooseIPaasData-Cl_5qkFA.js +0 -391
  130. package/dist/chooseIPaasData.css +0 -1
  131. package/dist/defaultSet-I4xpf8a4.js +0 -297
  132. package/dist/defaultSet.css +0 -1
  133. package/dist/fileFormData-D_Q1vylE.js +0 -53
  134. package/dist/formItemFooter-CTA7rDtV.js +0 -108
  135. package/dist/formItemFooter.css +0 -1
  136. package/dist/funcExprDialog-Cm5BiRM3.js +0 -139
  137. package/dist/funcExprDialog.css +0 -1
  138. package/dist/index-B6b4uj8v.js +0 -51
  139. package/dist/index-BWdkDTbz.js +0 -109
  140. package/dist/index-BdZ1zOap.js +0 -89
  141. package/dist/index-BdzNjjMC.js +0 -64
  142. package/dist/index-BfpZqab2.js +0 -66
  143. package/dist/index-BmkiB4hr.js +0 -66
  144. package/dist/index-Br1sqCoo.js +0 -58
  145. package/dist/index-C9qrl-yc.js +0 -183
  146. package/dist/index-CXFJXCn5.js +0 -746
  147. package/dist/index-DF114jZq.js +0 -135
  148. package/dist/index-DFPfZ_Il.js +0 -178
  149. package/dist/index-DSEtu7TN.js +0 -44
  150. package/dist/index-Did0UUWV.js +0 -221
  151. package/dist/index-DrPj-tmI.js +0 -45
  152. package/dist/index-DzDf9s2W.js +0 -89
  153. package/dist/index-LnjudNEI.js +0 -118
  154. package/dist/index-ObCfCmDT.js +0 -45
  155. package/dist/index.css +0 -1
  156. package/dist/index2.css +0 -1
  157. package/dist/index3.css +0 -1
  158. package/dist/index4.css +0 -1
  159. package/dist/index5.css +0 -1
  160. package/dist/index6.css +0 -1
  161. package/dist/index7.css +0 -1
  162. package/dist/install-C-scqkds.js +0 -23103
  163. package/dist/install.css +0 -1
  164. package/dist/setOption-CSnWzOny.js +0 -329
  165. package/dist/setOption.css +0 -1
  166. package/dist/setRelationOption-CJcHdfaa.js +0 -5217
  167. package/dist/setRelationOption.css +0 -1
@@ -0,0 +1,229 @@
1
+ <template>
2
+ <el-dialog v-model="show" :title="`请选择${columnData.name}`" top="18px" width="70%" destroy-on-close
3
+ style="margin-bottom: 0">
4
+ <div class="chooseChildGood">
5
+ <div class="chooseChildGood-main w-margin-bottom10">
6
+ <div class="w-margin-bottom5 w-color-gray"> 主商品信息</div>
7
+ <vxe-table border size="small" :data="orderList" class="chooseChildGood-out"
8
+ :row-config="{isCurrent: true, isHover: true}"
9
+ min-height="50" :expand-config="{expandAll: true}" :column-config="{resizable: true}">
10
+ <template v-for="(column,index) in orderColumns">
11
+ <vxe-column v-if="column.behaviorType != 10" :key="index" :title="column.name" :field="column.columnCode"
12
+ min-width="160"
13
+ show-header-overflow="title" show-overflow="title" show-footer-overflow></vxe-column>
14
+ <vxe-column v-if="column.behaviorType == 10" :key="index" :title="column.name" min-width="160">
15
+ <template #default="scope">
16
+ <BnFileView v-if="scope.row.inside[column.columnCode]" :file-list="scope.row.inside[column.columnCode]"
17
+ :is-mini="true" :no-warp="true"></BnFileView>
18
+ </template>
19
+ </vxe-column>
20
+ </template>
21
+ <template #empty>
22
+ <span>暂无数据</span>
23
+ </template>
24
+ </vxe-table>
25
+ </div>
26
+ <div class="w-margin-bottom5 w-color-blue"> 子商品列表</div>
27
+ <vxe-table ref="childGoodTable" border size="small" :data="childOrderList" class="chooseChildGood-out"
28
+ v-loading="loading"
29
+ :row-config="{keyField: 'id',isCurrent: true, isHover: true}"
30
+ :max-height="380" min-height="50"
31
+ :expand-config="{expandAll: true}"
32
+ :column-config="{resizable: true}"
33
+ :checkbox-config="{ checkRowKeys: selectData}"
34
+ :scroll-x="{ enabled: true, gt: 8 }"
35
+ :scroll-y="{ enabled: true, gt: 15 }"
36
+ @checkbox-change="checkChange"
37
+ @checkbox-all="checkAllTask">
38
+ <vxe-column type="checkbox" width="32" fixed="left"></vxe-column>
39
+ <template v-for="(column,index) in headerColumns">
40
+ <vxe-column v-if="column.behaviorType != 10" :key="index" :title="column.name" :field="column.columnCode"
41
+ min-width="160"
42
+ show-header-overflow="title" show-overflow="title" show-footer-overflow></vxe-column>
43
+ <vxe-column v-if="column.behaviorType == 10" :key="index" :title="column.name" min-width="160">
44
+ <template #default="scope">
45
+ <BnFileView v-if="scope.row.inside[column.columnCode]" :file-list="scope.row.inside[column.columnCode]"
46
+ :is-mini="true" :no-warp="true"></BnFileView>
47
+ </template>
48
+ </vxe-column>
49
+ </template>
50
+ <template #empty>
51
+ <span>暂无数据</span>
52
+ </template>
53
+ </vxe-table>
54
+ </div>
55
+ <template #footer>
56
+ <div class="w-flex-right w-flex-center">
57
+ <span class="w-font13 w-color-gray w-margin-right8">已选择({{ selectData.length }}/{{
58
+ childOrderList.length
59
+ }})条</span>
60
+ <el-button @click="show = false">取消</el-button>
61
+ <el-popover placement="top-start" :width="298" trigger="hover">
62
+ <div class="BnSmartForm-title-tip">在原有的子表单值的基础上追加选中的数据</div>
63
+ <template #reference>
64
+ <el-button type="primary" @click="sure('add')" :disabled="selectData.length == 0">确认追加</el-button>
65
+ </template>
66
+ </el-popover>
67
+ <el-popover placement="top-start" :width="290" trigger="hover">
68
+ <div class="BnSmartForm-title-tip">用选中的数据直接覆盖子表单的原有的值</div>
69
+ <template #reference>
70
+ <el-button type="primary" @click="sure('cover')" :disabled="selectData.length == 0">确认覆盖</el-button>
71
+ </template>
72
+ </el-popover>
73
+ </div>
74
+ </template>
75
+ </el-dialog>
76
+ </template>
77
+ <script>
78
+ import {cloneDeep} from "lodash";
79
+
80
+ export default {
81
+ name: 'chooseChildGood',
82
+ data() {
83
+ return {
84
+ show: false,
85
+ // loading
86
+ loading: false,
87
+ // 子表单信息
88
+ columnData: {},
89
+ // 主商品表头
90
+ orderColumns: [],
91
+ // 子商品表头
92
+ headerColumns: [],
93
+ // 最大高度
94
+ tableMaxHeight: 400,
95
+ // 选中数据
96
+ selectData: [],
97
+ // 主商品数据
98
+ orderList: [],
99
+ // 子商品数据
100
+ childOrderList: [],
101
+ }
102
+ },
103
+ methods: {
104
+ /**
105
+ * 处理子商品数据格式
106
+ * */
107
+ processChildGoodsData(row) {
108
+ let keyMap = {
109
+ goods_no: 'son_goods_no', //商品编码
110
+ goods_name: 'son_goods_name', //商品名称
111
+ sku_name: 'son_sku_name', //sku名称
112
+ sku_no: 'son_sku_no', //sku编码
113
+ goods_pic_url: 'son_goods_pic_url', //商品图片
114
+ goods_price: 'son_price', //单价
115
+ }
116
+ let insideSourceKeyMap = {
117
+ goods_no: '', //商品编码
118
+ goods_name: '', //商品名称
119
+ sku_name: '', //sku名称
120
+ sku_no: '', //sku编码
121
+ goods_pic_url: '', //商品图片
122
+ goods_price: '', //单价
123
+ }
124
+ this.headerColumns.forEach(column => {
125
+ // 当前表的组件code
126
+ const columnCode = column.columnCode;
127
+ // 映射表的组件code
128
+ const insideFiled = column.insideDataSourceInfo?.fieldCode;
129
+ if (insideSourceKeyMap.hasOwnProperty(columnCode)) {
130
+ // 如果 inside 中有这个字段,使用原值
131
+ insideSourceKeyMap[columnCode] = insideFiled;
132
+ }
133
+ });
134
+ let data = cloneDeep(row.spec_list);
135
+ return data.map((i, index) => {
136
+ let item = {...i, inside: {}};
137
+ let inside = row.insideCopy.spec_list[index];
138
+ for (let key in keyMap) {
139
+ item[key] = i[keyMap[key]]
140
+ item.inside[insideSourceKeyMap[key]] = inside[keyMap[key]]
141
+ }
142
+ return item
143
+ });
144
+ },
145
+ /**
146
+ * 打开选择弹框,处理数据回显
147
+ * */
148
+ open(row, columnData) {
149
+ this.columnData = cloneDeep(columnData);
150
+ // 主商品数据
151
+ this.orderList = [row]
152
+ // 主商品表头
153
+ this.orderColumns = columnData.moduleDefinition;
154
+ this.headerColumns = columnData.moduleDefinition.filter(i => [
155
+ 'goods_no', //商品编码
156
+ 'goods_name', //商品名称
157
+ 'sku_name', //sku名称
158
+ 'sku_no', //sku编码
159
+ 'goods_pic_url', //商品图片
160
+ 'goods_price' //单价
161
+ ].includes(i.columnCode));
162
+ //子商品数据 - 处理成指定格式
163
+ this.childOrderList = this.processChildGoodsData(row)
164
+ this.show = true;
165
+ },
166
+ /**
167
+ * 选中
168
+ * */
169
+ checkChange({checked, row}) {
170
+ this.$refs.childGoodTable.setCheckboxRow(row, checked);
171
+ if (checked) {
172
+ if (!this.selectData.includes(row.id)) {
173
+ this.selectData.push(row.id);
174
+ }
175
+ } else {
176
+ if (this.selectData.includes(row.id)) {
177
+ this.selectData.splice(this.selectData.indexOf(row.id), 1);
178
+ }
179
+ }
180
+ },
181
+ /**
182
+ * 全选任务
183
+ * */
184
+ checkAllTask({records}) {
185
+ if (records.length != 0) {
186
+ records.map((task) => {
187
+ if (!this.selectData.includes(task.id)) {
188
+ this.selectData.push(task.id);
189
+ }
190
+ });
191
+ } else {
192
+ this.selectData = []
193
+ }
194
+ },
195
+ /**
196
+ * 确认
197
+ * */
198
+ sure(type) {
199
+ let orders = this.childOrderList.reduce((acc, i) => {
200
+ if (this.selectData.includes(i.id)) {
201
+ acc.push(i.inside);
202
+ }
203
+ return acc
204
+ }, []);
205
+ this.$emit('setChildGood', orders, type)
206
+ this.show = false;
207
+ },
208
+ }
209
+ }
210
+ </script>
211
+
212
+ <style scoped lang="scss">
213
+ .chooseChildGood {
214
+ height: 100%;
215
+ overflow: hidden;
216
+
217
+ &-main {
218
+
219
+ }
220
+
221
+ &-out {
222
+ :deep(.vxe-table--header) {
223
+ .vxe-header--row {
224
+ background-color: #ecf5ff;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ </style>
@@ -0,0 +1,84 @@
1
+ <template>
2
+ <div class="worksheetCopy" :style="style" v-show="visiable || isMouseIn" @mouseover="onMouseEvent"
3
+ @mouseleave="onMouseEvent" @click.stop="copyText">复制
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: "WorksheetCopy",
10
+ data() {
11
+ return {
12
+ isMouseIn: false,
13
+ visiable: false,
14
+ params: {},
15
+ style: {},
16
+ };
17
+ },
18
+ methods: {
19
+ /**
20
+ * 鼠标移入移出
21
+ * @param {Event} e 事件对象
22
+ */
23
+ onMouseEvent(e) {
24
+ this.isMouseIn = e.type === "mouseleave" ? false : true;
25
+ },
26
+ /**
27
+ * 初始化
28
+ * @param {Object} params {column:组件信息,row:行数据}
29
+ */
30
+ onShow(target, params) {
31
+ try {
32
+ const {right, top} = target.getBoundingClientRect();
33
+ this.style = {
34
+ left: `${right - 34}px`,
35
+ top: `${top}px`,
36
+ };
37
+ this.params = params;
38
+ this.visiable = true;
39
+ }catch (e){
40
+ console.log('显示复制按钮失败')
41
+ }
42
+ },
43
+ onHide() {
44
+ this.visiable = false;
45
+ },
46
+ /**
47
+ * 复制文本
48
+ */
49
+ copyText() {
50
+ const {column, row} = this.params;
51
+ let copyValue = row[column.columnCode] || "";
52
+ if(copyValue) {
53
+ const textarea = document.createElement('textarea');
54
+ textarea.value = copyValue;
55
+ document.body.appendChild(textarea);
56
+ textarea.select();
57
+ document.execCommand('copy');
58
+ document.body.removeChild(textarea);
59
+ this.$message.success('复制成功');
60
+ } else {
61
+ this.$message.warning('无内容可复制');
62
+ }
63
+ },
64
+ },
65
+ };
66
+ </script>
67
+ <style lang='scss' scoped>
68
+ .worksheetCopy {
69
+ position: fixed;
70
+ width: 34px;
71
+ height: 22px;
72
+ line-height: 22px;
73
+ text-align: center;
74
+ background-color: rgba(51, 51, 51, 0.3);
75
+ color: #fff;
76
+ font-size: 12px;
77
+ z-index: 999999;
78
+
79
+ &:hover {
80
+ background-color: #65acff;
81
+ cursor: pointer;
82
+ }
83
+ }
84
+ </style>
@@ -0,0 +1,158 @@
1
+ <!--多包裹下的子单,选择完包裹再选择包裹下的子商品。一般这种有层级的选择结构都用这种-->
2
+ <template>
3
+ <el-dialog v-model="show" title="请选择" top="18px" width="860" destroy-on-close style="margin-bottom: 0">
4
+ <div class="chooseChildOrder">
5
+ <vxe-table ref="packageTable" border size="small" :data="childOrders" class="chooseChildOrder-out"
6
+ :row-config="{keyField: dataBack.orderKey,isCurrent: true, isHover: true}"
7
+ :max-height="tableMaxHeight" min-height="50"
8
+ :expand-config="{expandAll: true}"
9
+ :column-config="{resizable: true}"
10
+ :checkbox-config="{ checkRowKeys: selectData}"
11
+ @checkbox-change="checkChange"
12
+ @checkbox-all="checkAllTask">
13
+ <vxe-column type="checkbox" width="32" fixed="left"></vxe-column>
14
+ <template v-for="(column,index) in columns" :key="index">
15
+ <vxe-column :title="column.name" min-width="120" show-header-overflow="title" show-overflow="title"
16
+ show-footer-overflow>
17
+ <template #default="scope">
18
+ <span v-if="column.behaviorType != 10">{{ getTitle(column, scope.row[column.columnCode]) }}</span>
19
+ <BnFileView v-if="column.behaviorType == 10 && scope.row[column.columnCode]"
20
+ :file-list="scope.row[column.columnCode]" :is-mini="true" :no-warp="true"></BnFileView>
21
+ </template>
22
+ </vxe-column>
23
+ </template>
24
+ <template #empty>
25
+ <span>暂无数据</span>
26
+ </template>
27
+ </vxe-table>
28
+ </div>
29
+ <template #footer>
30
+ <div class="w-flex-right w-flex-center">
31
+ <span
32
+ class="w-font13 w-color-gray w-margin-right8">已选择({{ selectData.length }}/{{
33
+ childOrders.length
34
+ }})条</span>
35
+ <el-button @click="show = false">取消</el-button>
36
+ <el-button type="primary" @click="sure">确认</el-button>
37
+ </div>
38
+ </template>
39
+ </el-dialog>
40
+ </template>
41
+ <script>
42
+ import {getColumnValText} from "../BnSmartFormUtil.js";
43
+
44
+ export default {
45
+ name: 'chooseChildOrder',
46
+ props: {
47
+ childOrders: Array,
48
+ componentList: Array,
49
+ dataBack: Object,
50
+ },
51
+ data() {
52
+ return {
53
+ show: false,
54
+ // 表头
55
+ columns: [],
56
+ // 最大高度
57
+ tableMaxHeight: 400,
58
+ // 选中数据
59
+ selectData: [],
60
+ }
61
+ },
62
+ methods: {
63
+ /**
64
+ * 打开选择包裹弹框,处理数据回显
65
+ * */
66
+ open(column) {
67
+ this.columns = column.moduleDefinition;
68
+ this.tableMaxHeight = window.innerHeight - 151
69
+ this.selectData = []
70
+ if (column.value) {
71
+ this.selectData = column.value.map(i => i[this.dataBack.orderKey])
72
+ }
73
+ this.show = true;
74
+ },
75
+ /**
76
+ * 选中任务
77
+ * */
78
+ checkChange({checked, row}) {
79
+ this.$refs.packageTable.setCheckboxRow(row, checked);
80
+ if (checked) {
81
+ if (!this.selectData.includes(row[this.dataBack.orderKey])) {
82
+ this.selectData.push(row[this.dataBack.orderKey]);
83
+ }
84
+ } else {
85
+ if (this.selectData.includes(row[this.dataBack.orderKey])) {
86
+ this.selectData.splice(this.selectData.indexOf(row[this.dataBack.orderKey]), 1);
87
+ }
88
+ }
89
+ },
90
+ /**
91
+ * 全选任务
92
+ * */
93
+ checkAllTask({records}) {
94
+ if (records.length != 0) {
95
+ records.map((task) => {
96
+ if (!this.selectData.includes(task[this.dataBack.orderKey])) {
97
+ this.selectData.push(task[this.dataBack.orderKey]);
98
+ }
99
+ });
100
+ } else {
101
+ this.selectData = []
102
+ }
103
+ },
104
+ /**
105
+ * 转义title
106
+ * */
107
+ getTitle(column, value) {
108
+ let text = getColumnValText(column, true, value);
109
+ return text;
110
+ },
111
+ /**
112
+ * 确认包裹
113
+ * */
114
+ sure() {
115
+ let orders = this.childOrders.filter(i => this.selectData.includes(i[this.dataBack.orderKey]));
116
+ this.$emit('setChildrenForm', orders, 'cover', this.dataBack.order)
117
+ this.show = false;
118
+ },
119
+ }
120
+ }
121
+ </script>
122
+
123
+ <style scoped lang="scss">
124
+ .chooseChildOrder {
125
+ height: 100%;
126
+ overflow: hidden;
127
+
128
+ &-out {
129
+ :deep(.vxe-table--header) {
130
+ .vxe-header--row {
131
+ background-color: #ecf5ff;
132
+ }
133
+ }
134
+
135
+ :deep(.vxe-table--body) {
136
+ .vxe-body--row {
137
+ background-color: #f5f7fa;
138
+ }
139
+ }
140
+ }
141
+
142
+ &-inner {
143
+ padding: 10px 20px 10px 32px;
144
+
145
+ :deep(.vxe-table--header) {
146
+ .vxe-header--row {
147
+ background-color: #fff;
148
+ }
149
+ }
150
+
151
+ :deep(.vxe-table--body) {
152
+ .vxe-body--row {
153
+ background-color: #fff;
154
+ }
155
+ }
156
+ }
157
+ }
158
+ </style>