@94ai/nf-conditions 3.2.49

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.
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+ import '@94ai/nf-theme-chalk/lib/css/nf-conditions.css'
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+ import '@94ai/nf-theme-chalk/lib/nf-conditions.scss'
@@ -0,0 +1,37 @@
1
+ <script lang="tsx">
2
+ import {
3
+ defineComponent,
4
+ } from 'vue-demi'
5
+
6
+ export default defineComponent({
7
+ name: 'condition-container',
8
+ props: {
9
+ /**
10
+ * 指定容器类型
11
+ */
12
+ tag: {
13
+ type: String,
14
+ default: 'el-form',
15
+ },
16
+ config: {
17
+ type: Object,
18
+ default: () => ({})
19
+ }
20
+ },
21
+ render() {
22
+ const Tag = this.tag;
23
+ return (
24
+ <Tag
25
+ ref="nfConditionsForm"
26
+ class="nf-condition-form"
27
+ {...{
28
+ props: this.config
29
+ }}
30
+ >
31
+ {this.$scopedSlots.default?.({})}
32
+ </Tag>
33
+ );
34
+ },
35
+ });
36
+ </script>
37
+
@@ -0,0 +1,8 @@
1
+ import NfConditions from './nf-conditions.vue'
2
+ import { Vue2, PluginObject } from 'vue-demi'
3
+
4
+ NfConditions.install = (app: typeof Vue2) => {
5
+ app!.component('nf-conditions', NfConditions)
6
+ }
7
+
8
+ export default NfConditions as typeof NfConditions & PluginObject<undefined>
@@ -0,0 +1,328 @@
1
+ <template>
2
+ <div class="nf-conditions">
3
+ <condition-container
4
+ ref="conditionContainer"
5
+ :config="{
6
+ disabled,
7
+ size,
8
+ model: plan,
9
+ 'show-message':showMessage,
10
+ 'inline-message':inlineMessage,
11
+ 'status-icon': statusIcon,
12
+ }"
13
+ :tag="tag"
14
+ >
15
+ <el-form-item
16
+ v-for="(condition,i) in plan.conditions"
17
+ :key="condition.key"
18
+ label-width="0"
19
+ >
20
+ <div class="condition-header">
21
+ <span class="condition-pre"><span style="color: red;margin-right: 5px;vertical-align: middle">*</span>{{ conditionDesc }} {{ (i + 1) }}</span>
22
+ <span class="remove-condition" @click="removeCondition(i)" v-if="!hiddenConditionReduce"><span class="remove-condition-icon">{{ deleteConditionDesc }}</span></span>
23
+ </div>
24
+ <nf-rules
25
+ ref="nfRules"
26
+ :show-message="showMessage"
27
+ :inline-message="inlineMessage"
28
+ :status-icon="statusIcon"
29
+ :logic-merge-desc="logicMergeDesc"
30
+ :number-require-desc="numberRequireDesc"
31
+ :common-len-limit-desc="commonLenLimitDesc"
32
+ :place-enter="placeEnter"
33
+ :prohibit-empty-desc="prohibitEmptyDesc"
34
+ :params-len-limit-desc="paramsLenLimitDesc"
35
+ :range-separator-desc="rangeSeparatorDesc"
36
+ :start-placeholder-date="startPlaceholderDate"
37
+ :end-placeholder-date="endPlaceholderDate"
38
+ :start-placeholder-time="startPlaceholderTime"
39
+ :end-placeholder-time="endPlaceholderTime"
40
+ :time-picker-placeholder="timePickerPlaceholder"
41
+ :date-picker-placeholder="datePickerPlaceholder"
42
+ :split-desc="splitDesc"
43
+ :condition-disabled="conditionDisabled"
44
+ :hidden-add="hiddenAdd"
45
+ :hidden-reduce="hiddenReduce"
46
+ :show-rule-types="showRuleTypes"
47
+ :default-add-data="defaultAddData"
48
+ :default-add-type="defaultAddType"
49
+ :size="size"
50
+ :placeholder="placeholder"
51
+ :times="times"
52
+ :second="second"
53
+ :disabled="disabled"
54
+ :disables="disables"
55
+ :limit="limit"
56
+ :操作类型="操作类型"
57
+ :规则类型="规则类型"
58
+ :计算类型="计算类型"
59
+ :日期类型="日期类型"
60
+ :外呼状态="外呼状态"
61
+ :规则类型下拉="规则类型下拉"
62
+ :操作类型下拉="操作类型下拉"
63
+ :计算类型下拉="计算类型下拉"
64
+ :日期类型下拉="日期类型下拉"
65
+ :外呼状态下拉="外呼状态下拉"
66
+ :意向标签集合="意向标签集合"
67
+ :规则类型下拉合并策略="规则类型下拉合并策略"
68
+ :计算类型下拉合并策略="计算类型下拉合并策略"
69
+ :操作类型下拉合并策略="操作类型下拉合并策略"
70
+ :日期类型下拉合并策略="日期类型下拉合并策略"
71
+ :外呼状态下拉合并策略="外呼状态下拉合并策略"
72
+ :意向标签集合合并策略="意向标签集合合并策略"
73
+ tag='div'
74
+ :valid-prefix='validPrefix + `conditions.${i}.`'
75
+ :rules='condition.rules'
76
+ @addRule="(e) => $emit('addRule', e)"
77
+ @reduceRule="(e) => $emit('reduceRule', e)"
78
+ @onChange="() => $emit('ruleChange' , plan.conditions)"
79
+ />
80
+ </el-form-item>
81
+ <div class="condition-footer">
82
+ <span class="add-condition" @click="addCondition()" v-if="!hiddenConditionAdd && (!conditionLimit || plan.conditions?.length < conditionLimit)">
83
+ <span class="add-condition-icon">{{ addConditionDesc }}</span>
84
+ </span>
85
+ </div>
86
+ </condition-container>
87
+ </div>
88
+ </template>
89
+
90
+ <script lang="ts">
91
+ import { defineComponent } from 'vue-demi'
92
+
93
+ export default defineComponent({
94
+ name: "nf-conditions",
95
+ })
96
+ </script>
97
+
98
+ <script lang="ts" setup>
99
+ import {
100
+ nextTick,
101
+ onMounted,
102
+ ref
103
+ } from 'vue-demi'
104
+ import { generateUUID } from '@94ai/common-utils'
105
+ import {
106
+ DropDownItem,
107
+ MergeStrategy,
108
+ RuleItem
109
+ } from '@94ai/nf-rules/lib/types'
110
+ import {
111
+ 外呼状态 as 外呼状态默认枚举,
112
+ 操作类型 as 操作类型默认枚举,
113
+ 日期类型 as 日期类型默认枚举,
114
+ 规则类型 as 规则类型默认枚举,
115
+ 计算类型 as 计算类型默认枚举
116
+ } from '@94ai/nf-rules'
117
+ import ConditionContainer from './condition-container.vue'
118
+
119
+ const props = withDefaults(defineProps<{
120
+ conditions?: {
121
+ rules: RuleItem[]
122
+ key?: string
123
+ }[]
124
+ conditionLimit?: number
125
+ hiddenConditionAdd?: boolean
126
+ hiddenConditionReduce?: boolean
127
+ conditionDesc?: string,
128
+ addConditionDesc?: string,
129
+ deleteConditionDesc?: string,
130
+
131
+ /**
132
+ * 表单
133
+ */
134
+ size?: 'medium' | 'small' | 'mini',
135
+ tag?: string
136
+ showMessage?: boolean
137
+ inlineMessage?:boolean
138
+ statusIcon?:boolean
139
+ validPrefix?: string
140
+ /**
141
+ * 国际化
142
+ */
143
+ logicMergeDesc?: string,
144
+ placeholder?: string,
145
+ numberRequireDesc?: string,
146
+ commonLenLimitDesc?: string,
147
+ placeEnter?: string,
148
+ prohibitEmptyDesc?: string,
149
+ paramsLenLimitDesc?: string,
150
+ times?: string,
151
+ second?: string,
152
+ rangeSeparatorDesc?: string,
153
+ startPlaceholderDate?: string,
154
+ endPlaceholderDate?:string,
155
+ startPlaceholderTime?:string,
156
+ endPlaceholderTime?:string,
157
+ timePickerPlaceholder?: string,
158
+ datePickerPlaceholder?: string,
159
+ splitDesc?: string,
160
+ /**
161
+ * 禁用
162
+ */
163
+ disabled?:boolean
164
+ conditionDisabled?:boolean
165
+ disables?: Record<string, boolean[]>
166
+ hiddenAdd?:boolean
167
+ hiddenReduce?:boolean
168
+ limit?:number
169
+ /**
170
+ * 规则回显数据
171
+ */
172
+ rules?: RuleItem[],
173
+ /**
174
+ * 控制哪些规则显示
175
+ */
176
+ showRuleTypes?: (string | number)[],
177
+ /**
178
+ * 默认新增的规则数据
179
+ */
180
+ defaultAddData?: RuleItem,
181
+ /**
182
+ * 默认新增的规则类型
183
+ */
184
+ defaultAddType?: string | number
185
+ /**
186
+ * 枚举
187
+ */
188
+ 操作类型?: Record<keyof typeof 操作类型默认枚举, string | number>,
189
+ 规则类型?: Record<keyof typeof 规则类型默认枚举, string | number>,
190
+ 计算类型?: Record<keyof typeof 计算类型默认枚举, string | number>,
191
+ 日期类型?: Record<keyof typeof 日期类型默认枚举, string | number>,
192
+ 外呼状态?: Record<keyof typeof 外呼状态默认枚举, string | number>,
193
+ /**
194
+ * 下拉
195
+ */
196
+ 规则类型下拉?: DropDownItem[],
197
+ 操作类型下拉?: DropDownItem[],
198
+ 计算类型下拉?: DropDownItem[],
199
+ 日期类型下拉?: DropDownItem[],
200
+ 外呼状态下拉?: DropDownItem[],
201
+ 意向标签集合?: DropDownItem[],
202
+ /**
203
+ * 下拉合并策略
204
+ */
205
+ 规则类型下拉合并策略?: MergeStrategy,
206
+ 计算类型下拉合并策略?: MergeStrategy,
207
+ 操作类型下拉合并策略?: MergeStrategy,
208
+ 日期类型下拉合并策略?: MergeStrategy,
209
+ 外呼状态下拉合并策略?: MergeStrategy,
210
+ 意向标签集合合并策略?: MergeStrategy,
211
+ }>(), {
212
+ conditions: undefined,
213
+ conditionLimit: 0,
214
+ hiddenConditionAdd: false,
215
+ hiddenConditionReduce: false,
216
+ conditionDesc: '条件',
217
+ addConditionDesc: '+ 添加条件',
218
+ deleteConditionDesc: '- 删除条件',
219
+
220
+ size: 'mini',
221
+ logicMergeDesc: '且',
222
+ placeholder: '请选择',
223
+ numberRequireDesc: '请输入数字',
224
+ commonLenLimitDesc: '总文案长度不超过2000中文字符',
225
+ placeEnter: '请输入',
226
+ prohibitEmptyDesc: '不能为空',
227
+ paramsLenLimitDesc: '最多可输入50个英文字符长度',
228
+ rangeSeparatorDesc: "至",
229
+ startPlaceholderDate: "开始日期",
230
+ endPlaceholderDate: "结束日期",
231
+ startPlaceholderTime: "开始时间",
232
+ endPlaceholderTime: "结束时间",
233
+ timePickerPlaceholder: '选择时间范围',
234
+ datePickerPlaceholder: '选择日期范围',
235
+ splitDesc: '输入多个时,用#分割',
236
+ rules: undefined,
237
+ tag: 'el-form',
238
+ showMessage: true,
239
+ inlineMessage: false,
240
+ statusIcon: false,
241
+ validPrefix: '',
242
+ disabled: false,
243
+ conditionDisabled: false,
244
+ disables: undefined,
245
+ hiddenAdd: false,
246
+ limit: 0,
247
+ hiddenReduce: false,
248
+ times: '次',
249
+ second: '秒',
250
+ 规则类型下拉合并策略: 'defaultPatch',
251
+ 计算类型下拉合并策略: 'defaultPatch',
252
+ 操作类型下拉合并策略: 'defaultPatch',
253
+ 日期类型下拉合并策略: 'defaultPatch',
254
+ 外呼状态下拉合并策略: 'defaultPatch',
255
+ 意向标签集合合并策略: 'defaultPatch',
256
+ showRuleTypes: () => [],
257
+ 操作类型: () => 操作类型默认枚举,
258
+ 规则类型: () => 规则类型默认枚举,
259
+ 计算类型: () => 计算类型默认枚举,
260
+ 日期类型: () => 日期类型默认枚举,
261
+ 外呼状态: () => 外呼状态默认枚举,
262
+ })
263
+ const emit = defineEmits<{
264
+ (e: 'reduceCondition', event: Record<string, any>): void
265
+ (e: 'addCondition', event: Record<string, any>): void
266
+ }>()
267
+
268
+ const conditionContainer = ref()
269
+ const nfConditionsForm = ref()
270
+
271
+ onMounted(() => {
272
+ nfConditionsForm.value = conditionContainer.value?.$refs.nfConditionsForm
273
+ })
274
+
275
+ const getCondition = (): {
276
+ key: string
277
+ rules: RuleItem[]
278
+ } => {
279
+ return {
280
+ rules: [],
281
+ key: generateUUID()
282
+ }
283
+ }
284
+
285
+ const initPlan = () => {
286
+ if (!props.conditions) {
287
+ return [getCondition()]
288
+ } else if (!props.conditions.length) {
289
+ props.conditions.push(getCondition())
290
+ } else {
291
+ props.conditions.forEach(item => {
292
+ item.key ??= generateUUID()
293
+ })
294
+ }
295
+ return props.conditions
296
+ }
297
+
298
+ const plan = ref<{
299
+ 'conditions': {
300
+ key?: string,
301
+ rules: RuleItem[]
302
+ }[]
303
+ }>({
304
+ conditions: initPlan()
305
+ })
306
+
307
+ const removeCondition = (j) => {
308
+ emit('reduceCondition', plan.value.conditions[j])
309
+ plan.value.conditions.splice(j, 1)
310
+ }
311
+ const addCondition = async () => {
312
+ plan.value.conditions.push(getCondition())
313
+ await nextTick()
314
+ emit('addCondition', plan.value.conditions[plan.value.conditions.length - 1])
315
+ }
316
+
317
+
318
+ defineExpose({
319
+ addCondition,
320
+ removeCondition,
321
+ initPlan,
322
+ getCondition,
323
+ conditionContainer,
324
+ nfConditionsForm,
325
+ plan,
326
+ })
327
+
328
+ </script>
@@ -0,0 +1 @@
1
+ import '@94ai/nf-theme-chalk/lib/css/nf-conditions.css'
@@ -0,0 +1 @@
1
+ import '@94ai/nf-theme-chalk/lib/nf-conditions.scss'
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@94ai/nf-conditions",
3
+ "version": "3.2.49",
4
+ "description": "> TODO: description",
5
+ "keywords": [],
6
+ "author": "zoujiahe <zoujiahe@94ai.com>",
7
+ "homepage": "https://oss.xccjh.top/common-ui/#/ai-index",
8
+ "license": "ISC",
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "http://94ai.gitlab.com/ui/common-ui.git"
15
+ },
16
+ "dependencies": {
17
+ "@94ai/nf-rules": "^3.2.49",
18
+ "@94ai/nf-theme-chalk": "^3.2.49",
19
+ "vue-demi": "^0.14.5"
20
+ },
21
+ "peerDependenciesMeta": {
22
+ "@vue/composition-api": {
23
+ "optional": true
24
+ }
25
+ },
26
+ "peerDependencies": {
27
+ "@vue/composition-api": "^1.0.0-rc.1",
28
+ "element-ui": ">=2.13.2",
29
+ "vue": "^2.0.0 || >=3.0.0"
30
+ },
31
+ "types": "lib/index.d.ts",
32
+ "main": "lib/nf-conditions.cjs.js",
33
+ "module": "lib/nf-conditions.esm-bundler.js",
34
+ "gitHead": "8cbd9254da4ec43f46b29198c0839bf2ba19132d"
35
+ }
@@ -0,0 +1,8 @@
1
+ export default {
2
+ plugins: {
3
+ // 这个工具可以实现自动添加CSS3前缀
4
+ autoprefixer: {
5
+ overrideBrowserslist: ['last 5 version', '>1%', 'ie >=8']
6
+ },
7
+ },
8
+ }