@bytenew/bn-bus-ui 1.1.463 → 1.1.464

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/dist/assocTableSearch-Bfe96864.js +349 -0
  2. package/dist/assocTableSearch.css +1 -0
  3. package/dist/bn-bus-ui.es.js +65 -0
  4. package/dist/bn-bus-ui.umd.js +49 -0
  5. package/dist/chooseIPaasData-COrrvQKZ.js +391 -0
  6. package/dist/chooseIPaasData.css +1 -0
  7. package/dist/defaultSet-CzN1ec_d.js +297 -0
  8. package/dist/defaultSet.css +1 -0
  9. package/dist/fileFormData-D_Q1vylE.js +53 -0
  10. package/dist/formItemFooter-BvptZj_u.js +108 -0
  11. package/dist/formItemFooter.css +1 -0
  12. package/dist/funcExprDialog-BguNs9fl.js +139 -0
  13. package/dist/funcExprDialog.css +1 -0
  14. package/dist/index-0oB7QocU.js +44 -0
  15. package/dist/index-69fRP0M8.js +89 -0
  16. package/dist/index-BdklTJtF.js +66 -0
  17. package/dist/index-Bu3jHlby.js +45 -0
  18. package/dist/index-BxWx5kpG.js +89 -0
  19. package/dist/index-C5LQ0OSs.js +183 -0
  20. package/dist/index-C8YhrrUN.js +51 -0
  21. package/dist/index-COuPCIzB.js +45 -0
  22. package/dist/index-CSvVyjxx.js +178 -0
  23. package/dist/index-DCv51EXX.js +109 -0
  24. package/dist/index-DUSI6MuC.js +135 -0
  25. package/dist/index-DVzxs2vR.js +58 -0
  26. package/dist/index-Dd4b8zNb.js +746 -0
  27. package/dist/index-Md-ZlkCW.js +66 -0
  28. package/dist/index-hsSIY2FP.js +221 -0
  29. package/dist/index-n13-H3_Y.js +118 -0
  30. package/dist/index-wUl5aPUD.js +64 -0
  31. package/dist/index.css +1 -0
  32. package/dist/index2.css +1 -0
  33. package/dist/index3.css +1 -0
  34. package/dist/index4.css +1 -0
  35. package/dist/index5.css +1 -0
  36. package/dist/index6.css +1 -0
  37. package/dist/index7.css +1 -0
  38. package/dist/install-CNjs0u5x.js +23299 -0
  39. package/dist/install.css +1 -0
  40. package/dist/setOption-CXOifQcx.js +329 -0
  41. package/dist/setOption.css +1 -0
  42. package/dist/setRelationOption-C7VDhej7.js +5217 -0
  43. package/dist/setRelationOption.css +1 -0
  44. package/package.json +4 -20
  45. package/install.js +0 -134
  46. package/packages/BnAddress/index.vue +0 -141
  47. package/packages/BnAddressParse/index.vue +0 -75
  48. package/packages/BnAdvancedFilter/BnFilterView.vue +0 -145
  49. package/packages/BnAdvancedFilter/index.vue +0 -345
  50. package/packages/BnAdvancedFilter/util.js +0 -171
  51. package/packages/BnCascader/BnCascader.vue +0 -543
  52. package/packages/BnCascader/BnCascaderPanel.vue +0 -1331
  53. package/packages/BnCascader/cascaderDisplay.js +0 -102
  54. package/packages/BnCheck/BnCheck.vue +0 -253
  55. package/packages/BnColumnConfig/columnConfigDialog.vue +0 -134
  56. package/packages/BnColumnConfig/component/childrenFormSetting/assocTable.vue +0 -143
  57. package/packages/BnColumnConfig/component/childrenFormSetting/assocTableSearch.vue +0 -314
  58. package/packages/BnColumnConfig/component/childrenFormSetting/index.vue +0 -243
  59. package/packages/BnColumnConfig/component/defaultSet/defaultSet.vue +0 -114
  60. package/packages/BnColumnConfig/component/defaultSet/stringDefault.vue +0 -210
  61. package/packages/BnColumnConfig/component/funcExprDialog/funcExprDialog.vue +0 -126
  62. package/packages/BnColumnConfig/component/packageFilter/index.vue +0 -141
  63. package/packages/BnColumnConfig/component/paraExplainSet/index.vue +0 -156
  64. package/packages/BnColumnConfig/component/setOption/setOption.vue +0 -321
  65. package/packages/BnColumnConfig/component/setRelationOption/ConditionList.vue +0 -277
  66. package/packages/BnColumnConfig/component/setRelationOption/LevelHeader.vue +0 -144
  67. package/packages/BnColumnConfig/component/setRelationOption/setRelationOption.vue +0 -642
  68. package/packages/BnColumnConfig/data.js +0 -129
  69. package/packages/BnColumnConfig/index.scss +0 -23
  70. package/packages/BnColumnConfig/index.vue +0 -309
  71. package/packages/BnCondVal/BnCondVal.vue +0 -112
  72. package/packages/BnCondVal/itemVal/dateRegVal.vue +0 -39
  73. package/packages/BnCondVal/itemVal/dateVal.vue +0 -39
  74. package/packages/BnCondVal/itemVal/numRegVal.vue +0 -67
  75. package/packages/BnCondVal/itemVal/numVal.vue +0 -44
  76. package/packages/BnCondVal/itemVal/relationVal.vue +0 -73
  77. package/packages/BnCondVal/itemVal/selectColumnVal.vue +0 -58
  78. package/packages/BnCondVal/itemVal/selectVal.vue +0 -59
  79. package/packages/BnCondVal/itemVal/stringVal.vue +0 -156
  80. package/packages/BnCondition/index.vue +0 -551
  81. package/packages/BnCondition/util.js +0 -232
  82. package/packages/BnDatePicker/BnDatePicker.vue +0 -194
  83. package/packages/BnDrop/BnDrop.vue +0 -917
  84. package/packages/BnEmptyTip/BnEmptyTip.vue +0 -107
  85. package/packages/BnExportOrder/BnExportOrder.vue +0 -241
  86. package/packages/BnExportOrder/validatorCode.vue +0 -94
  87. package/packages/BnFileView/BnFileView.vue +0 -271
  88. package/packages/BnFileView/FileDetail.vue +0 -125
  89. package/packages/BnFileView/videoPreview.vue +0 -70
  90. package/packages/BnFilterOption/BnFilterOption.vue +0 -160
  91. package/packages/BnFunExpr/BnFunExpr.vue +0 -608
  92. package/packages/BnImportOrder/BnImportOrder.vue +0 -323
  93. package/packages/BnImportTemplate/BnImportTemplate.vue +0 -866
  94. package/packages/BnImportTemplate/assets/merge_tip_img.png +0 -0
  95. package/packages/BnImportTemplate/assets/sheet_tip.png +0 -0
  96. package/packages/BnImportTemplate/assets/xls.png +0 -0
  97. package/packages/BnImportTemplate/components/ImportTemplateTrigger.vue +0 -198
  98. package/packages/BnImportTemplate/components/TemplateEditDialog.vue +0 -340
  99. package/packages/BnImportTemplate/components/TemplateFieldsConfig.vue +0 -401
  100. package/packages/BnImportTemplate/components/TemplateListDialog.vue +0 -297
  101. package/packages/BnInpNum/BnInpNum.vue +0 -165
  102. package/packages/BnMenus/BnMenus.vue +0 -502
  103. package/packages/BnMenus/MenuItem.vue +0 -321
  104. package/packages/BnOrderCard/BnOrderCard.vue +0 -389
  105. package/packages/BnOrderCard/orderRemark.vue +0 -178
  106. package/packages/BnOrderCard/util.js +0 -94
  107. package/packages/BnOrderDetail/BnOrderDetail.vue +0 -338
  108. package/packages/BnOrderDetail/filterLogByUser.vue +0 -108
  109. package/packages/BnOrderDetail/orderLogs.vue +0 -53
  110. package/packages/BnOrderDetail/showSubForm/index.vue +0 -41
  111. package/packages/BnOrderDetail/showSubForm/showChildTable.vue +0 -61
  112. package/packages/BnOrderDetail/showSubForm/showTimeLine.vue +0 -131
  113. package/packages/BnOrderDetail/showSubForm/tableCellCopy.vue +0 -84
  114. package/packages/BnOrderShare/index.vue +0 -378
  115. package/packages/BnOrderShare/shareUrlInp.vue +0 -54
  116. package/packages/BnRadio/BnRadio.vue +0 -181
  117. package/packages/BnRelation/BnRelation.vue +0 -120
  118. package/packages/BnSelect/BnSelect.vue +0 -485
  119. package/packages/BnSmartForm/BnBatchForm.vue +0 -334
  120. package/packages/BnSmartForm/BnBatchFormDialog.vue +0 -423
  121. package/packages/BnSmartForm/BnSmartElf/elfLog/index.vue +0 -57
  122. package/packages/BnSmartForm/BnSmartElf/index.vue +0 -95
  123. package/packages/BnSmartForm/BnSmartFormPsychic.js +0 -629
  124. package/packages/BnSmartForm/BnSmartFormUtil.js +0 -524
  125. package/packages/BnSmartForm/addressForm/index.vue +0 -73
  126. package/packages/BnSmartForm/checkboxForm/index.vue +0 -99
  127. package/packages/BnSmartForm/childrenForm/childFormFile.vue +0 -237
  128. package/packages/BnSmartForm/childrenForm/childrenFormBody.vue +0 -260
  129. package/packages/BnSmartForm/childrenForm/index.vue +0 -110
  130. package/packages/BnSmartForm/childrenForm/searchInventory.vue +0 -115
  131. package/packages/BnSmartForm/chooseAssocTable/chooseAssocTable.vue +0 -451
  132. package/packages/BnSmartForm/chooseAssocTable/chooseChildGood.vue +0 -229
  133. package/packages/BnSmartForm/chooseAssocTable/tableCellCopy.vue +0 -84
  134. package/packages/BnSmartForm/chooseChildOrder/chooseChildOrder.vue +0 -158
  135. package/packages/BnSmartForm/chooseIPaasData/chooseIPaasData.vue +0 -307
  136. package/packages/BnSmartForm/chooseIPaasData/tableCellCopy.vue +0 -84
  137. package/packages/BnSmartForm/choosePackage/choosePackage.vue +0 -361
  138. package/packages/BnSmartForm/dateDualForm/index.vue +0 -37
  139. package/packages/BnSmartForm/dateForm/index.vue +0 -38
  140. package/packages/BnSmartForm/fileForm/fileFormData.js +0 -50
  141. package/packages/BnSmartForm/fileForm/index.vue +0 -240
  142. package/packages/BnSmartForm/formItemFooter/formItemFooter.vue +0 -38
  143. package/packages/BnSmartForm/formItemTop/formItemTop.vue +0 -42
  144. package/packages/BnSmartForm/index.vue +0 -1201
  145. package/packages/BnSmartForm/numberForm/index.vue +0 -63
  146. package/packages/BnSmartForm/radioForm/index.vue +0 -72
  147. package/packages/BnSmartForm/receiveForm/index.vue +0 -112
  148. package/packages/BnSmartForm/relationForm/index.vue +0 -82
  149. package/packages/BnSmartForm/scoreForm/index.vue +0 -39
  150. package/packages/BnSmartForm/selectForm/index.vue +0 -55
  151. package/packages/BnSmartForm/showValForm/index.vue +0 -42
  152. package/packages/BnSmartForm/showValForm/showValFormTable.vue +0 -104
  153. package/packages/BnSmartForm/smartFormsCommon.scss +0 -43
  154. package/packages/BnSmartForm/stringForm/index.vue +0 -170
  155. package/packages/BnVirtPopover/index.vue +0 -319
  156. package/packages/BnWebLog/BnWebLog.vue +0 -140
  157. package/packages/BnWorkSettingDrop/advancedOptions.js +0 -112
  158. package/packages/BnWorkSettingDrop/benBenAIUtil.js +0 -89
  159. package/packages/BnWorkSettingDrop/index.vue +0 -292
  160. package/packages/font/iconfont.css +0 -243
  161. package/packages/font/iconfont.ttf +0 -0
  162. package/packages/font/iconfont.woff +0 -0
  163. package/packages/font/iconfont.woff2 +0 -0
  164. package/utils/addressParse-old.js +0 -645
  165. package/utils/addressParse.js +0 -735
  166. package/utils/config.js +0 -68
  167. package/utils/index.js +0 -1171
@@ -1,551 +0,0 @@
1
- <!--
2
- @Auther:辛巴
3
- @Date:2023/5/26
4
- @Description:小程序高级功能,规则配置通用组件,目前暂不支持的组件有:日期区间、收寄信息
5
- @change:触发change事件发送事件上报返回{type,target,value}
6
- type,data
7
- @param {String} type change事件触发的位置,有以下四种
8
- changeColumn:选择组件,
9
- changeSearch:计算条件变化,
10
- changeValueType:value类型发生变化,
11
- changeValue:value发生变化
12
- @param {Object} target change事件触发时的变动数据
13
- @param {Object} value change事件触发时条件的value
14
- @VERSION:1.0-->
15
- <template>
16
- <div class="bnCon clearFix">
17
- <div class="bnCon-setting">
18
- <div class="bnCon-setting-left w-flex-gap10">
19
- <!--选择组件-->
20
- <slot name="selectComponent">
21
- <div class="bnCon-setting-column" v-if="!allowSelectColumn" :title="ruleVal[optionProps.name]">
22
- {{ ruleVal[optionProps.name] }}
23
- </div>
24
- <BnDrop v-else v-model="ruleVal[columnKey]" @change="columnChange"
25
- :options="columnList" :optionProps="{value:columnKey,label:optionProps.name}"
26
- :labelInValue="false"/>
27
- </slot>
28
- <!--设置条件-->
29
- <BnDrop @change="searchChange" v-model="ruleVal[optionProps.searchType]"
30
- :options="searchOptions" :labelInValue="false" :canUncheck="false"></BnDrop>
31
- </div>
32
- <!--删除按钮-->
33
- <div class="bnCon-del" v-if="allowDel" @click="del">
34
- <span class="bnUIcon bnUIcon-delete"></span>
35
- </div>
36
- </div>
37
- <!--设置详细条件-->
38
- <div class="bnCon-condition">
39
- <div class="bnCon-condition-valType" v-if="allowValueType">
40
- <el-select v-model="ruleVal[optionProps.valueType]" placeholder="请选择"
41
- :disabled="[9,10,14,15].includes(parseInt(ruleVal[optionProps.searchType]))"
42
- @change="valueTypeChange">
43
- <el-option v-for="item in valueOptions" :value="item.id" :label="item.title" :key="item.id"></el-option>
44
- </el-select>
45
- </div>
46
- <div class="bnCon-condition-valType" v-if="ruleVal.behaviorType == 7 && allowSubType">
47
- <el-select v-model="ruleVal[optionProps.subType]" placeholder="请选择"
48
- :disabled="[9,10,14,15].includes(parseInt(ruleVal[optionProps.searchType]))" @change="subTypeChange">
49
- <el-option v-for="item in subTypeOptions" :value="item.id" :label="item.title" :key="item.id"></el-option>
50
- </el-select>
51
- </div>
52
- <div class="bnCon-condition-valSet">
53
- <BnCondVal v-model="ruleVal" :optionProps="optionProps" :valueOptionProps="valueOptionProps"
54
- @onChange="valueChange" :otherColumnProps="otherColumnProps"
55
- :otherColumns="otherColumns" :columnInfo="columnInfo" :postFunc="postFunc"></BnCondVal>
56
- </div>
57
- </div>
58
- </div>
59
- </template>
60
- <script>
61
- import {cloneDeep} from 'lodash'
62
- import {searchList, valueTypeList, subTypeList} from "./util";
63
- import BnCondVal from "../BnCondVal/BnCondVal.vue";
64
-
65
- export default {
66
- name: "BnCondition",
67
- components: {BnCondVal},
68
- props: {
69
- //最终选中的value
70
- modelValue: [String, Array, Number, Object],
71
- // 当传入完整组件数据时,将不会再遍历columnList去取值。
72
- columnData: Object,
73
- // 组件列表:可供选择的组件列表,仅支持一维数组。请传入符合班牛业务的组件对象汇总的数组。
74
- columnList: {
75
- type: Array,
76
- default() {
77
- return []
78
- }
79
- },
80
- //是否允许选择组件
81
- allowSelectColumn: Boolean,
82
- //是否允许删除
83
- allowDel: {
84
- type: Boolean,
85
- default: true
86
- },
87
- // 每个组件类型都会有自己的计算规则列表,也就是等于、不等于、包含、不包含这类条件。我们提供一组默认的计算规则条件,但是也同样欢迎你自定义自己的计算类型
88
- // 你可以传入一个map对象 {1:[{title:'等于',id:1}]},这样,你就把行为类型为1的组件的计算规则设置为,只能选择等于。当然你可以根据行为类型来自定义更多组件的计算类型
89
- // 比如{1:[{title:'等于',id:1}],2:[{title:'包含',id:3},{title:'不包含',id:4}]}
90
- searchTypes: {
91
- type: Object,
92
- default() {
93
- return {}
94
- }
95
- },
96
- //有时候可能你需要更加自由的searchTypes定义,比如你想根据一个组件的id或者key这些字段,为他设置特殊的计算条件,这个时候我们提供了searchTypeFun方法。
97
- //在这个方法中我们会告诉你现在选中的组件的信息以及当前规则条件的值,你可以根据这个组件的任何字段进行判断,返回一个数组[],我们将会把这个数组作为计算条件的列表进行展示。如果你判断出来
98
- //这个组件不需要进行特殊计算条件,你可以返回false。这样我们将采用默认计算条件,或者你传入的searchTypc。
99
- //searchTypes和searchTypeFun是可以组合使用的,他们的优先级为:默认计算条件<searchTypes<searchTypeFun,后者的权重大于前者,当后者找不到匹配项,会自动向上寻找
100
- searchTypeFun: Function,
101
- //是否开放值类型选择,默认为开启
102
- allowValueType: {
103
- type: Boolean,
104
- default: true
105
- },
106
- // 每个条件都可以根据自己的类型来设置自己的值类型,比如是否可以设置自定义值、是否可以选择其他组件。这个字段的配置跟searchTypes有些类似
107
- // 你可以传入一个map对象 {1:[{id: '0', title: '自定义填写'}, {id: '1', title: '其他组件'}]},这样你就让行为类型为1的组件可以选择其他组件的值了。
108
- // 当然你可以根据行为类型来自定义更多组件的值类型
109
- valueTypes: {
110
- type: Object,
111
- default() {
112
- return {}
113
- }
114
- },
115
- //有时候可能你需要更加自有的valueTypes定义,比如你想根据一个组件的id或者key这些字段,为他设置特殊的值类型,这个时候我们提供了valueTypeFun方法。
116
- //在这个方法中我们会告诉你现在选中的组件的信息以及当前规则条件的值,你可以根据这个组件的任何字段进行判断,返回一个数组[],我们将会把这个数组作为值类型的列表进行展示。如果你判断出来
117
- //这个组件不需要进行特殊值类型列表,你可以返回false。这样我们将采用默认值类型,或者你传入的valueTypes。
118
- //valueTypes和valueTypeFun是可以组合使用的,他们的优先级为:默认值类型<valueTypes<valueTypeFun,后者的权重大于前者,当后者找不到匹配项,会自动向上寻找
119
- valueTypeFun: Function,
120
- //其他组件列表,当你没传的时候会自动使用columnList列表,也就是当前组件的列表
121
- otherColumnList: {
122
- type: Array,
123
- },
124
- //当你想要为你的其他组件列表选中一个范围时,比如你的当前组件是单行文本,默认情况下我们选择其他组件时只会让你选择同样是单行文本的类型。
125
- //而如果你希望的是,你选择当前组件是单行文本,你选择其他组件时可以选择单选、下拉、甚至联动。那么你可以使用这个这个属性
126
- //只要你传入这样的对象{1:[1,2,3,4],3:[5,6,7]},那么你的单行文本组件就支持选择单行、数值、下拉、单选,你的下拉组件就支持选择多选、联动、时间这些其他组件。
127
- otherColumnType: {
128
- type: Object,
129
- default() {
130
- return {}
131
- }
132
- },
133
- //当你选择其他组件的需求很高级,你不得不针对某些组件进行更自由的自定义时,你可以用这个方法。
134
- //在这个方法中我们会告诉你现在选中的组件的信息以及当前规则条件的值,你可以根据这个组件的任何字段进行判断,返回一个数组[],我们将会把这个数组作为其他组件可选列表进行展示。
135
- //请注意你返回的数组应该直接是组件列表数组,或者是false,而不是其他什么东西。
136
- //请注意返回空数组和false是两种完全不同的处理方式。 如果你返回空数组,其他组件的下拉选项将无数据。
137
- //如果你返回false。这样我们将采用默认方式处理,即单行文本只能选择单行文本,如果你传入otherColumnType,我们将会根据这个规则从otherColumnList列表中匹配对应组件。
138
- //你没有传otherColumnList,我们就从columnList列表中匹配对应组件。
139
- //otherColumnType和otherColumnTypeFun是可以组合使用的,他们的优先级为:默认处理方式<otherColumnType<otherColumnTypeFun,后者的权重大于前者,当后者找不到匹配项,会自动向上寻找
140
- otherColumnTypeFun: Function,
141
- //是否开发子类型选择,默认为关闭,目前仅支持日期组件
142
- allowSubType: {
143
- type: Boolean,
144
- default: false
145
- },
146
- subTypes: {
147
- type: Object,
148
- default() {
149
- return {}
150
- }
151
- },
152
- subTypeFun: Function,
153
- // value的键值基础结构 relationValue behaviorType 这两个是固定的,不可更改 subType:日期组件可以使用子类型:0-今天,1-明天,2-昨天,3-过去N天,4-未来N天,5-指定时间
154
- optionProps: {
155
- default() {
156
- return {
157
- id: 'columnCode',// 主键
158
- name: 'name',//当前组件名字
159
- parentCode: 'parentCode',//如果当前组件是子表单内组件,那么拥有父级id
160
- valueType: 'valueType',//组件value类型,自定义填写、当前组件选项、其他组件
161
- subType: 'subType',//日期组件可以使用子类型:0-今天,1-明天,2-昨天,3-过去N天,4-未来N天,5-指定时间
162
- searchType: 'searchType',//计算条件
163
- value: 'value',//条件值
164
- };
165
- }
166
- },
167
- // value的value如果是下拉或者多选这些,约束他们的value格式
168
- valueOptionProps: {
169
- default() {
170
- return {value: 'code', label: 'title'}
171
- }
172
- },
173
- // 选择其他组件时,约束他们的value格式
174
- otherColumnProps: {
175
- default() {
176
- return {value: 'columnCode', label: 'name'}
177
- }
178
- },
179
- postFunc: Function,
180
- },
181
- data() {
182
- return {
183
- //计算条件列表
184
- searchList: searchList,
185
- //值类型列表
186
- valueTypeList: valueTypeList,
187
- //子类型
188
- subTypeList: subTypeList,
189
- }
190
- },
191
- computed: {
192
- // 组件的主key
193
- columnKey() {
194
- return this.optionProps.id;
195
- },
196
- //拷贝value的值,这样就可以避免直接修改props
197
- ruleVal: {
198
- get() {
199
- return this.modelValue;
200
- },
201
- set(val) {
202
- this.$emit("update:modelValue", val);
203
- },
204
- },
205
- // 组件详细信息
206
- columnInfo: {
207
- get() {
208
- let columnDefault = {
209
- parentCode: "",
210
- ...this.modelValue,
211
- extraInfo: {},
212
- moduleDefinition: [],
213
- }
214
- if (this.columnData) {
215
- return {...columnDefault, ...this.columnData}
216
- } else if (this.modelValue[this.columnKey] && this.columnList.length > 0) {
217
- let column = null;
218
- for (let i in this.columnList) {
219
- if (this.columnList[i][this.columnKey] == this.modelValue[this.columnKey]) {
220
- column = JSON.parse(JSON.stringify(this.columnList[i]));
221
- break;
222
- }
223
- }
224
- return column || columnDefault;
225
- } else {
226
- return columnDefault
227
- }
228
- },
229
- set(val) {
230
- return val;
231
- },
232
- },
233
- // 规则中的计算设置条件
234
- searchOptions() {
235
- return this.getSearchOptions()
236
- },
237
- // 值类型
238
- valueOptions() {
239
- return this.getValueOptions();
240
- },
241
- // 当你可以选择其他组件时,返回的列表
242
- otherColumns() {
243
- return this.getOtherColumns();
244
- },
245
- // 对比子类型
246
- subTypeOptions() {
247
- return this.getSubTypeOptions();
248
- },
249
- },
250
- methods: {
251
- /**
252
- * 选择组件发生变化,当组件发生了变化,后续的行为都要进行初始化
253
- * @param {Any} e select发生变化返回的值
254
- * */
255
- columnChange(e) {
256
- let column = this.columnList.filter(i => i[this.columnKey] == e)
257
- this.columnInfo = column[0] || {};
258
- let value = cloneDeep(this.modelValue);
259
- value.id = this.columnInfo.id;
260
- value.parentId = this.columnInfo.parentId;
261
- value.behaviorType = this.columnInfo.behaviorType;
262
- if (this.optionProps.name) {
263
- value[this.optionProps.name] = this.columnInfo.name;
264
- }
265
- if (this.optionProps.parentCode) {
266
- value[this.optionProps.parentCode] = this.columnInfo.parentCode || '';
267
- }
268
- value[this.optionProps.searchType] = this.getSearchOptions(value.behaviorType)[0].id;
269
- // 切换组件,初始化value类型的值
270
- if (this.allowValueType && this.optionProps.valueType) {
271
- value[this.optionProps.valueType] = this.getValueOptions(value)[0].id;
272
- }
273
- // 根据组件类型、计算条件、值类型来确定规则条件的子类型
274
- if (value.behaviorType == 7 && this.allowSubType) {
275
- let subTypeList = this.getSubTypeOptions(value.behaviorType);
276
- if (this.optionProps.subType && subTypeList.length > 0) {
277
- value[this.optionProps.subType] = subTypeList[0].id
278
- }
279
- }
280
- value[this.optionProps.value] = this.setValType(value.behaviorType, value[this.optionProps.searchType], value[this.optionProps.valueType])
281
- this.ruleVal = cloneDeep(value)
282
- this.$emit('change', {type: 'columnChange', target: this.columnInfo, value: value})
283
- },
284
- /**
285
- * 计算条件发生change
286
- * */
287
- searchChange() {
288
- // 根据组件类型、计算条件、值类型来确定规则条件的value的类型
289
- this.ruleVal[this.optionProps.value] = this.setValType(this.ruleVal.behaviorType, this.ruleVal[this.optionProps.searchType], this.ruleVal[this.optionProps.valueType])
290
- this.$emit('searchChange', {
291
- type: 'changeSearch',
292
- target: this.ruleVal[this.optionProps.searchType],
293
- value: this.ruleVal
294
- })
295
- },
296
- /**
297
- * 规则值类型发生变化
298
- * */
299
- valueTypeChange() {
300
- // 根据组件类型、计算条件、值类型来确定规则条件的value的类型
301
- this.ruleVal[this.optionProps.value] = this.setValType(this.ruleVal.behaviorType, this.ruleVal[this.optionProps.searchType], this.ruleVal[this.optionProps.valueType])
302
- this.$emit('change', {
303
- type: 'changeValueType',
304
- target: this.ruleVal[this.optionProps.valueType],
305
- value: this.ruleVal
306
- })
307
- },
308
- /**
309
- * 规则值子类型发生变化
310
- * */
311
- subTypeChange() {
312
- // 根据组件类型、计算条件、值类型来确定规则条件的value的类型
313
- this.ruleVal[this.optionProps.value] = this.setValType(this.ruleVal.behaviorType, this.ruleVal[this.optionProps.searchType], this.ruleVal[this.optionProps.valueType])
314
- this.$emit('change', {
315
- type: 'changeSubType',
316
- target: this.ruleVal[this.optionProps.valueType],
317
- value: this.ruleVal
318
- })
319
- },
320
- /**
321
- * 规则的value发生变化
322
- * */
323
- valueChange(target) {
324
- this.$emit('valueChange', {
325
- type: 'value',
326
- target: target,
327
- value: this.ruleVal
328
- })
329
- },
330
- /**
331
- * 获取该类型组件支持那些计算条件
332
- * @param {Number} behaviorType 组件行为类型
333
- * */
334
- getSearchOptions(behaviorType) {
335
- let optionList = [];
336
- let behavior = behaviorType || this.columnInfo.behaviorType
337
- // 先确定是否选择过组件,拥有组件类型
338
- if (behavior) {
339
- //判断是否有自定义searchTypeFun方法,如果有优先走这个方法
340
- if (this.searchTypeFun) {
341
- optionList = this.searchTypeFun(this.columnInfo)
342
- }
343
- //searchTypeFun有可能返回false或者空数组,如果走到这里optionList仍然是空,就走另外两个逻辑
344
- if (!optionList || optionList.length == 0) {
345
- // 先取searchTypes中的值,这个自定义传入的列表权重更高,取不到再取默认值
346
- optionList = this.searchTypes[behavior] || this.searchList[behavior];
347
- }
348
- }
349
- return optionList;
350
- },
351
- /**
352
- * 获取该类型组件支持那些值类型
353
- * @param {Number} behaviorType 组件行为类型
354
- * */
355
- getValueOptions(column) {
356
- let optionList = [];
357
- let behavior = column ? column.behaviorType : this.columnInfo.behaviorType
358
- if (behavior) {
359
- //判断是否有自定义 valueTypeFun 方法,如果有优先走这个方法
360
- if (this.valueTypeFun) {
361
- optionList = this.valueTypeFun(this.columnInfo)
362
- }
363
- //valueTypeFun 有可能返回false或者空数组,如果走到这里optionList仍然是空,就走另外两个逻辑
364
- if (!optionList || optionList.length == 0) {
365
- // 先取valueTypes中的值,这个自定义传入的列表权重更高,取不到再取默认值
366
- optionList = this.valueTypes[behavior] || this.valueTypeList[behavior];
367
- }
368
- }
369
- return optionList;
370
- },
371
- /**
372
- * 获取该类型组件支持那些值类型
373
- * @param {Number} behaviorType 组件行为类型
374
- * */
375
- getOtherColumns() {
376
- let optionList = [];
377
- let behavior = this.columnInfo.behaviorType
378
- if (behavior) {
379
- // 先确定一个准确的组件列表来作为选择其他组件的下拉选项;
380
- let columnList = this.otherColumnList || this.columnList;
381
- //判断是否有自定义 otherColumnTypeFun 方法,如果有优先走这个方法,这个方法应该返回一个完整的组件列表数组。如果你返回false我们将选择默认
382
- if (this.otherColumnTypeFun) {
383
- optionList = this.otherColumnTypeFun(this.columnInfo)
384
- //otherColumnTypeFun 有可能返回false或者空数组,如果是空数组就按空处理,如果是false就要按照默认逻辑去取组件列表
385
- if (!optionList) {
386
- // 先取behaviorType数组
387
- let types = this.otherColumnType[behavior] || [behavior];
388
- optionList = columnList.filter(i => types.includes(i.behaviorType))
389
- }
390
- } else {
391
- // 先取behaviorType数组
392
- let types = this.otherColumnType[behavior] || [behavior];
393
- optionList = columnList.filter(i => types.includes(i.behaviorType))
394
- }
395
- }
396
- return optionList;
397
- },
398
-
399
- /**
400
- * 获取该类型组件支持那些子类型列表:目前仅只是时间日期
401
- * @param {Number} behaviorType 组件行为类型
402
- * */
403
- getSubTypeOptions(behaviorType) {
404
- let optionList = [];
405
- let behavior = behaviorType || this.columnInfo.behaviorType
406
- if (behavior) {
407
- //判断是否有自定义 valueTypeFun 方法,如果有优先走这个方法
408
- if (this.subTypeFun) {
409
- optionList = this.subTypeFun(this.columnInfo)
410
- }
411
- //valueTypeFun 有可能返回false或者空数组,如果走到这里optionList仍然是空,就走另外两个逻辑
412
- if (!optionList || optionList.length == 0) {
413
- // 先取valueTypes中的值,这个自定义传入的列表权重更高,取不到再取默认值
414
- optionList = this.subTypes[behavior] || this.subTypeList[behavior];
415
- }
416
- }
417
- return optionList;
418
- },
419
- /**
420
- * 给组件value赋予默认类型
421
- * @param {Number} behaviorType 组件行为类型
422
- * @param {String} searchType 规则的计算条件类型:等于、包含、大于、包含任一项等
423
- * */
424
- setValType(behaviorType, searchType, valueType) {
425
- let data = '';
426
- if (this.allowValueType && valueType == '1') {
427
- return {};
428
- }
429
- //当组件是1,2,9,11时,不需要处理,不管searchType是多少value默认值都是空字符‘’
430
- switch (behaviorType) {
431
- case 2://数值
432
- case 7://日期
433
- case 9://评分
434
- {
435
- if (searchType == '8') {
436
- data = {start: '', end: ''};
437
- }
438
- break;
439
- }
440
- case 8://日期区间
441
- {
442
- if (searchType == '3' || searchType == '4') {
443
- data = "";
444
- } else {
445
- data = {start: '', end: ''};
446
- }
447
- break;
448
- }
449
- //当组件时单选、下拉组件时,需要根据searchType判断value的类型
450
- case 3:
451
- case 4: {
452
- //当计算条件是等于、不等于、为空、不为空时,值都是空对象
453
- if ((!searchType || ['1', '2', '9', '10'].includes(searchType))) {
454
- data = {}
455
- } else {
456
- data = []
457
- }
458
- break;
459
- }
460
- //当组件是多选、联动、地址时,不管searchType是多少value默认值都是空数组[]
461
- case 5:
462
- case 6:
463
- case 20: {
464
- data = [];
465
- break;
466
- }
467
- case 14:
468
- case 15: {
469
- data = this.columnInfo.value
470
- break;
471
- }
472
- }
473
- return data;
474
- },
475
- /**
476
- * 删除
477
- * */
478
- del() {
479
- this.$emit('del', {
480
- type: 'delete',
481
- value: this.ruleVal
482
- })
483
- },
484
- },
485
- }
486
- </script>
487
-
488
- <style scoped lang="scss">
489
- @import "./../font/iconfont.css";
490
-
491
- .bnCon {
492
- position: relative;
493
- width: 100%;
494
- }
495
-
496
- .bnCon-setting {
497
- position: relative;
498
- width: 100%;
499
- display: flex;
500
- align-items: center;
501
- justify-content: space-between;
502
- }
503
-
504
- .bnCon-setting-column {
505
- max-width: calc(100% - 80px);
506
- height: 30px;
507
- line-height: 32px;
508
- font-size: 14px;
509
- color: #333;
510
- white-space: nowrap;
511
- overflow: hidden;
512
- text-overflow: ellipsis;
513
- }
514
-
515
- .bnCon-setting-left {
516
- display: flex;
517
- position: relative;
518
- flex-grow: 1;
519
- align-items: center;
520
- max-width: 100%;
521
- }
522
-
523
- .bnCon-del {
524
- position: relative;
525
- flex-grow: 0;
526
- width: 28px;
527
- text-align: right;
528
- line-height: 32px;
529
- cursor: pointer;
530
- color: #8c8c8c
531
- }
532
-
533
- .bnCon-condition {
534
- position: relative;
535
- width: 100%;
536
- display: flex;
537
- align-items: center;
538
- gap: 6px;
539
-
540
- &-valType {
541
- flex-grow: 0;
542
- min-width: 120px;
543
- width: 120px;
544
- }
545
-
546
- &-valSet {
547
- position: relative;
548
- flex-grow: 1;
549
- }
550
- }
551
- </style>