- Add Chinese translations for ASSIGNMENT_POLICY, CONVERSATION_WORKFLOW sections and SIDEBAR labels in zh_CN settings.json - Fix AssignmentCard.vue: v-for :key used feature.id which was always undefined (feature objects have no id field), causing duplicate keys and Vue reconciliation crash (Cannot read properties of null reading parentNode) when navigating to the Agent Assignment settings page
50 lines
1.3 KiB
Vue
50 lines
1.3 KiB
Vue
<script setup>
|
|
import Icon from 'dashboard/components-next/icon/Icon.vue';
|
|
import Button from 'dashboard/components-next/button/Button.vue';
|
|
import CardLayout from 'dashboard/components-next/CardLayout.vue';
|
|
|
|
defineProps({
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
features: { type: Array, default: () => [] },
|
|
});
|
|
|
|
const emit = defineEmits(['click']);
|
|
|
|
const handleClick = () => {
|
|
emit('click');
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<CardLayout class="[&>div]:px-5 cursor-pointer" @click="handleClick">
|
|
<div class="flex flex-col items-start gap-2">
|
|
<div class="flex justify-between w-full items-center">
|
|
<h3 class="text-n-slate-12 text-heading-2">{{ title }}</h3>
|
|
<Button
|
|
xs
|
|
slate
|
|
ghost
|
|
icon="i-lucide-chevron-right"
|
|
@click.stop="handleClick"
|
|
/>
|
|
</div>
|
|
<p class="text-n-slate-11 text-body-para mb-0">{{ description }}</p>
|
|
</div>
|
|
|
|
<ul class="flex flex-col items-start gap-3 mt-3">
|
|
<li
|
|
v-for="(feature, index) in features"
|
|
:key="index"
|
|
class="flex items-center gap-3 text-body-para"
|
|
>
|
|
<Icon
|
|
:icon="feature.icon"
|
|
class="text-n-slate-11 size-4 flex-shrink-0"
|
|
/>
|
|
{{ feature.label }}
|
|
</li>
|
|
</ul>
|
|
</CardLayout>
|
|
</template>
|