bri-components 1.2.86 → 1.2.88

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bri-components",
3
- "version": "1.2.86",
3
+ "version": "1.2.88",
4
4
  "author": "dengshanghui",
5
5
  "description": "a component lib for vue project",
6
6
  "main": "src/index.js",
@@ -62,59 +62,61 @@
62
62
  >
63
63
  <template v-if="!conditionItem.__isDelete__">
64
64
  <slot :conditionItem="conditionItem">
65
- <!-- 动态文本 -匹配的动态筛选字段 -->
66
- <template v-if="conditionItem.parameterType === 'dynamicText'">
67
- <dsh-select
68
- v-if="useChainField"
69
- class="DshAdvSearch-conditions-item-control"
70
- :value="conditionItem"
71
- :propsObj="{
72
- _name: `${conditionItem.formItem._name}的联动字段`,
73
- _key: 'chainFieldKey',
74
- _data: conditionItem.dynamicList
75
- }"
76
- @change="change('parameterTypeControl', conditionItem, ...arguments)"
77
- ></dsh-select>
78
-
79
- <dsh-checkbox
65
+ <!-- 为空和不为空时 啥不显示 -->
66
+ <div
67
+ v-if="['isnull', 'notnull', 'nosize', 'size', 'nolist', 'list'].includes(conditionItem.fieldOperator)"
68
+ class="DshAdvSearch-conditions-item-blank"
69
+ >请选择右上角条件</div>
70
+
71
+ <!-- 子表的筛选,出现是有条件的,递归 -->
72
+ <template v-else-if="['subSearch', 'subTableSearch'].includes(conditionItem.fieldOperator)">
73
+ <dsh-adv-search
74
+ v-if="conditionItem.finished === true"
75
+ :mode="mode"
76
+ :isInner="true"
77
+ :value="conditionItem.fieldSearch"
78
+ :formList="conditionItem.subFormList"
79
+ :useChainField="useChainField"
80
+ :dynamicFormList="dynamicFormList"
81
+ @change="change('subSearch', conditionItem, ...arguments)"
82
+ ></dsh-adv-search>
83
+
84
+ <div
80
85
  v-else
81
- class="DshAdvSearch-conditions-item-control"
82
- :value="conditionItem"
83
- :propsObj="{
84
- _name: `${conditionItem.formItem._name}的动态参数`,
85
- _key: 'fieldParams',
86
- _data: conditionItem.dynamicList
87
- }"
88
- @change="change('parameterTypeControl', conditionItem, ...arguments)"
89
- ></dsh-checkbox>
86
+ class="DshAdvSearch-conditions-item-loading"
87
+ >加载中……</div>
90
88
  </template>
91
89
 
92
- <!-- 固定文本 -筛选条件对应的显示 -->
90
+ <!-- 其它条件 -->
93
91
  <template v-else>
94
- <!-- 子表的筛选,出现是有条件的,递归 -->
95
- <template v-if="['subSearch', 'subTableSearch'].includes(conditionItem.fieldOperator)">
96
- <dsh-adv-search
97
- v-if="conditionItem.finished === true"
98
- :mode="mode"
99
- :isInner="true"
100
- :value="conditionItem.fieldSearch"
101
- :formList="conditionItem.subFormList"
102
- :useChainField="useChainField"
103
- :dynamicFormList="dynamicFormList"
104
- @change="change('subSearch', conditionItem, ...arguments)"
105
- ></dsh-adv-search>
106
-
107
- <div
92
+ <!-- 动态文本 -匹配的动态筛选字段 -->
93
+ <template v-if="conditionItem.parameterType === 'dynamicText'">
94
+ <dsh-select
95
+ v-if="useChainField"
96
+ class="DshAdvSearch-conditions-item-control"
97
+ :value="conditionItem"
98
+ :propsObj="{
99
+ _name: `${conditionItem.formItem._name}的联动字段`,
100
+ _key: 'chainFieldKey',
101
+ _data: conditionItem.dynamicList
102
+ }"
103
+ @change="change('parameterTypeControl', conditionItem, ...arguments)"
104
+ ></dsh-select>
105
+
106
+ <dsh-checkbox
108
107
  v-else
109
- class="DshAdvSearch-conditions-item-loading"
110
- >加载中……</div>
108
+ class="DshAdvSearch-conditions-item-control"
109
+ :value="conditionItem"
110
+ :propsObj="{
111
+ _name: `${conditionItem.formItem._name}的动态参数`,
112
+ _key: 'fieldParams',
113
+ _data: conditionItem.dynamicList
114
+ }"
115
+ @change="change('parameterTypeControl', conditionItem, ...arguments)"
116
+ ></dsh-checkbox>
111
117
  </template>
112
118
 
113
- <!-- 为空和不为空时 啥不显示 -->
114
- <div
115
- v-else-if="['isnull', 'notnull', 'nosize', 'size', 'nolist', 'list'].includes(conditionItem.fieldOperator)"
116
- class="DshAdvSearch-conditions-item-blank"
117
- >请选择右上角条件</div>
119
+ <!-- 固定文本 -筛选条件对应的显示 -->
118
120
  </template>
119
121
  </slot>
120
122
  </template>
@@ -129,7 +131,7 @@
129
131
  <dsh-dropdown
130
132
  v-if="conditionItem.dynamicList.length"
131
133
  class="extra-dynamic"
132
- :list="parameterPropsObj._data"
134
+ :list="['set'].includes(mode) && ['reference', 'flatTable'].includes(conditionItem.fieldType) ? [] : parameterPropsObj._data"
133
135
  @click="$dispatchEvent(operationMap.selectParameterType, conditionItem, conditionIndex, value.conditions, $event)"
134
136
  >
135
137
  <span class="extra-operator-wrap">
@@ -137,6 +139,7 @@
137
139
  {{ conditionItem.parameterTypeName }}
138
140
  </span>
139
141
  <Icon
142
+ v-if="!(['set'].includes(mode) && ['reference', 'flatTable'].includes(conditionItem.fieldType))"
140
143
  class="extra-operator-icon"
141
144
  type="ios-arrow-down"
142
145
  />
@@ -243,7 +246,7 @@
243
246
  default: "default",
244
247
  validator: function (val) {
245
248
  // 用户态、 配置端、高级依赖、以及仪表盘乱用的地方
246
- return ["default", "set", "rely"].includes(val);
249
+ return ["default", "set"].includes(val);
247
250
  }
248
251
  },
249
252
  useLoop: {
@@ -303,20 +306,8 @@
303
306
  );
304
307
  }
305
308
  },
306
- created () {
307
- this.init();
308
- },
309
- methods: {
310
- // 初始化
311
- init () {
312
- this.value.conditions = this.value.conditions.map(conditionItem => {
313
- const newConditionItem = this.createContionFunc(conditionItem, undefined, conditionItem.fieldKey);
314
- this.dealSubSearch(newConditionItem);
315
-
316
- return newConditionItem;
317
- });
318
- }
319
- }
309
+ created () {},
310
+ methods: {}
320
311
  };
321
312
  </script>
322
313
 
@@ -5,6 +5,12 @@ export default {
5
5
  DshFormUnit
6
6
  },
7
7
  props: {
8
+ initFields: {
9
+ type: Array,
10
+ default () {
11
+ return [];
12
+ }
13
+ },
8
14
  value: {
9
15
  type: Object,
10
16
  default () {
@@ -67,11 +73,26 @@ export default {
67
73
  return this.$arrToCategoryArr(this.dynamicFormList);
68
74
  }
69
75
  },
70
- created () { },
76
+ created () {
77
+ this.init();
78
+ },
71
79
  methods: {
80
+ // 初始化
81
+ init () {
82
+ this.value.conditions = [...this.initFields, ...this.value.conditions].map(conditionItem => {
83
+ const newConditionItem = typeof conditionItem === "string"
84
+ ? this.createContionFunc(undefined, undefined, conditionItem)
85
+ : this.createContionFunc(conditionItem, undefined, conditionItem.fieldKey);
86
+ this.dealSubSearch(newConditionItem);
87
+
88
+ return newConditionItem;
89
+ });
90
+ },
91
+
72
92
  // 新增筛选条件
73
93
  createCondition (operationItem, isLoop, formItem, list) {
74
94
  const newConditionItem = this.createContionFunc({ logic: isLoop ? "and" : "field" }, formItem);
95
+ this.dealSubSearch(newConditionItem);
75
96
  list.push(newConditionItem);
76
97
 
77
98
  this.change(operationItem.type, newConditionItem);
@@ -94,15 +115,32 @@ export default {
94
115
  },
95
116
  // 选择某控件的筛选类型
96
117
  changeOperator (operationItem, conditionItem, conditionIndex, list, optionItem) {
97
- conditionItem.fieldOperator = optionItem._key;
98
- conditionItem.fieldOperatorName = optionItem.name;
99
- conditionItem.fieldSearch = {
100
- logic: "and",
101
- conditions: []
102
- };
103
- this.dealSubSearch(conditionItem);
118
+ if (optionItem._key !== conditionItem.fieldOperator) {
119
+ conditionItem.fieldOperator = optionItem._key;
120
+ conditionItem.fieldOperatorName = optionItem.name;
104
121
 
105
- this.change(operationItem.type, conditionItem);
122
+ if (["isnull", "notnull", "nosize", "size", "nolist", "list"].includes(conditionItem.fieldOperator)) {
123
+ conditionItem.fieldParams = [];
124
+ conditionItem.chainFieldKey = "";
125
+ conditionItem.fieldValue = [];
126
+ conditionItem.fieldSearch = {
127
+ logic: "and",
128
+ conditions: []
129
+ };
130
+ } else if (["subSearch", "subTableSearch"].includes(conditionItem.fieldOperator)) {
131
+ conditionItem.fieldParams = [];
132
+ conditionItem.chainFieldKey = "";
133
+ conditionItem.fieldValue = [];
134
+ this.dealSubSearch(conditionItem);
135
+ } else {
136
+ conditionItem.fieldSearch = {
137
+ logic: "and",
138
+ conditions: []
139
+ };
140
+ }
141
+
142
+ this.change(operationItem.type, conditionItem);
143
+ }
106
144
  },
107
145
  // 发生改动
108
146
  change (operationType, conditionItem) {
@@ -120,21 +158,26 @@ export default {
120
158
  curFormItem = curFormItem || this.canSearchFormList.find(formItem => formItem._key === fieldKey);
121
159
 
122
160
  if (curFormItem) {
123
- const fieldData = this.fieldMap[curFormItem._type];
161
+ const fieldType = curFormItem._type;
162
+ const fieldData = this.fieldMap[fieldType];
124
163
 
125
- const dynamicTypes = this.useChainField ? [...new Set([...(fieldData.categoryTypes || []), curFormItem._type])] : [curFormItem._type];
126
- let dynamicList = dynamicTypes.reduce((list, type) => [...list, ...(this.dynamicFieldsMap[type] || [])], []);
164
+ const dynamicTypes = this.useChainField ? [...new Set([...(fieldData.categoryTypes || []), fieldType])] : [fieldType];
165
+ let dynamicList = dynamicTypes.reduce((list, type) => list.concat(this.dynamicFieldsMap[type] || []), []);
127
166
  dynamicList = this.useChainField
128
- ? ["select", "checkbox", "cascader", "cascaders"].includes(curFormItem._type)
167
+ ? ["select", "checkbox", "cascader", "cascaders"].includes(fieldType)
129
168
  ? dynamicList.filter(dynamicItem => dynamicItem._resourceKey === curFormItem._resourceKey)
130
- : ["reference"].includes(curFormItem._type) && !!curFormItem._ref
169
+ : ["reference"].includes(fieldType) && !!curFormItem._ref
131
170
  ? dynamicList.filter(dynamicItem => dynamicItem._ref === curFormItem._ref)
132
171
  : dynamicList
133
172
  : dynamicList;
134
- const parameterType = initContion.parameterType || ((initContion.fieldParams || []).length || initContion.chainFieldKey ? "dynamicText" : "fixedText");
173
+ const parameterType = initContion.parameterType || (
174
+ (initContion.fieldParams || []).length || initContion.chainFieldKey || (!!dynamicList.length && ["set"].includes(this.mode) && ["reference", "flatTable"].includes(fieldType))
175
+ ? "dynamicText"
176
+ : "fixedText"
177
+ );
135
178
  const parameterTypeName = (this.parameterPropsObj._data.find(parameterTypeItem => parameterTypeItem._key === parameterType) || { name: `${parameterType}不存在` }).name;
136
179
 
137
- const operators = fieldData[this.mode === "set" ? "operatorsSet" : this.mode === "rely" ? "operatorsRely" : "operators"] || fieldData.operators || [];
180
+ const operators = fieldData[!dynamicList.length && ["set"].includes(this.mode) ? "operatorsSet" : "operators"] || fieldData.operators || [];
138
181
  const fieldOperator = initContion.fieldOperator || (operators[0] || {})._key;
139
182
  const fieldOperatorName = (operators.find(operatorItem => operatorItem._key === fieldOperator) || { name: `${fieldOperator}不存在` }).name;
140
183
 
@@ -142,7 +185,7 @@ export default {
142
185
  _id: this.$ObjectID().str,
143
186
  logic: "field",
144
187
  fieldKey: curFormItem._key,
145
- fieldType: curFormItem._type,
188
+ fieldType: fieldType,
146
189
  fieldValue: [],
147
190
  fieldOperator: fieldOperator,
148
191
  fieldSearch: {
@@ -201,19 +244,7 @@ export default {
201
244
 
202
245
  _line: false,
203
246
  _span: 24,
204
- _useColor: true,
205
-
206
- ...(
207
- ["default", "rely"].includes(this.mode)
208
- ? (
209
- ["date", "daterange"].includes(formItem._type)
210
- ? {
211
- _useShortcuts: false
212
- }
213
- : {}
214
- )
215
- : {}
216
- )
247
+ _useColor: true
217
248
  };
218
249
  },
219
250
  // 格式化表单配置,适合需要