feat(automations): parallel branch canvas, simple/advanced level per org, rules list UX
This commit is contained in:
@@ -37,6 +37,7 @@ const props = defineProps<{
|
||||
forms: LeadFormDto[];
|
||||
teams: TeamDto[];
|
||||
activityTypeDefs: ActivityTypeDefDto[];
|
||||
advanced: boolean;
|
||||
}>();
|
||||
|
||||
const trigger = defineModel<AutomationTrigger>('trigger', { required: true });
|
||||
@@ -53,7 +54,12 @@ const isCondition = computed(
|
||||
() => !!selectedStep.value && isAutomationCondition(selectedStep.value),
|
||||
);
|
||||
|
||||
const conditionFields = computed(() => conditionFieldsForTrigger(trigger.value));
|
||||
const conditionFields = computed(() =>
|
||||
conditionFieldsForTrigger(trigger.value).filter(
|
||||
(f) =>
|
||||
props.advanced || f !== 'form_field' || selectedStep.value?.conditionField === f,
|
||||
),
|
||||
);
|
||||
|
||||
const conditionOps = computed((): AutomationConditionOp[] =>
|
||||
conditionOpsForField(selectedStep.value?.conditionField),
|
||||
@@ -77,7 +83,14 @@ const needsConditionValue = computed(() => {
|
||||
return op !== 'is_set' && op !== 'is_empty';
|
||||
});
|
||||
|
||||
const assignModes = Object.keys(AUTOMATION_ASSIGN_MODE_LABELS) as AutomationAssignMode[];
|
||||
const assignModes = computed(() =>
|
||||
(Object.keys(AUTOMATION_ASSIGN_MODE_LABELS) as AutomationAssignMode[]).filter(
|
||||
(m) =>
|
||||
props.advanced ||
|
||||
(m !== 'team_round_robin' && m !== 'users_round_robin') ||
|
||||
selectedStep.value?.assignMode === m,
|
||||
),
|
||||
);
|
||||
|
||||
const dueUnits = [
|
||||
{ value: 'now', label: 'همان لحظه (امروز)' },
|
||||
@@ -197,7 +210,7 @@ watch(
|
||||
<p v-if="trigger === 'lead_submitted' && !sourceId" class="hint">
|
||||
برای شرط روی پاسخهای فرم، یک فرم مشخص را انتخاب کنید.
|
||||
</p>
|
||||
<label>
|
||||
<label v-if="advanced || chainMode === 'branches'">
|
||||
رفتار شرطها
|
||||
<select v-model="chainMode">
|
||||
<option value="branches">{{ AUTOMATION_CHAIN_MODE_LABELS.branches }}</option>
|
||||
@@ -205,9 +218,13 @@ watch(
|
||||
</select>
|
||||
</label>
|
||||
<p v-if="chainMode === 'branches'" class="hint">
|
||||
هر شرط یک شاخه را شروع میکند. شرطهای پشتسرهم با «و» ترکیب میشوند و فقط
|
||||
عملهای بعد از خودشان (تا شرط بعدی) را کنترل میکنند؛ مثلاً اگر دو گزینه تیک بخورد، هر دو
|
||||
شاخه اجرا میشود.
|
||||
شاخهها روی بوم موازی نمایش داده میشوند و هر کدام جدا بررسی میشود. شرطهای یک شاخه با «و»
|
||||
ترکیب میشوند؛ مثلاً اگر دو گزینه تیک بخورد، هر دو شاخه اجرا میشود. برای شاخهٔ تازه از
|
||||
دکمهٔ «شاخهٔ جدید» زیر بوم استفاده کنید.
|
||||
</p>
|
||||
<p v-else-if="!advanced" class="hint">
|
||||
اتوماسیون ساده: شرطها پشتسرهم بررسی میشوند و اولین شرط ناموفق بقیهٔ زنجیره را متوقف
|
||||
میکند. اتوماسیون چندشاخه در نسخهٔ حرفهای فعال است.
|
||||
</p>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user