实现话术功能
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
<template>
|
||||
<div class="system-edit-role-container">
|
||||
<el-dialog title="" v-model="isShowDialog" width="769px">
|
||||
<el-form ref="formRef" :model="formData" :rules="rules" size="default" label-width="90px">
|
||||
<el-form ref="formRef" :model="state.formData" :rules="rules" size="default" label-width="90px">
|
||||
<el-row :gutter="35">
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||
<el-form-item label="标签" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入标签名称" clearable />
|
||||
<el-input v-model="formData.tag" :placeholder="formData.tag" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- 富文本编辑器 -->
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
||||
<el-form-item label="产品详情" prop="content">
|
||||
<Editor v-model="formData.content" height="400px" placeholder="请输入产品详细描述..." />
|
||||
<Editor v-model="formData.content" height="400px" :placeholder="formData.content" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -31,8 +31,10 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, toRefs, nextTick } from 'vue';
|
||||
import { ElMessage, type FormInstance, type FormRules } from 'element-plus';
|
||||
import { addRole, editRole, getRole } from '/@/api/customerService/script';
|
||||
import Editor from '/@/components/editor/index.vue';
|
||||
import { getscriptAdd, updatescript } from '/@/api/customerService/script';
|
||||
import { Session } from '/@/utils/storage';
|
||||
// console.log(Session.get('userInfo').userNickname, 'user');
|
||||
|
||||
// 定义类型接口
|
||||
interface MenuDataTree {
|
||||
@@ -44,17 +46,14 @@ interface MenuDataTree {
|
||||
|
||||
interface DialogRow {
|
||||
id: number;
|
||||
name: string;
|
||||
status: number;
|
||||
listOrder: number;
|
||||
remark: string;
|
||||
menuIds: number[];
|
||||
content?: string;
|
||||
tag: string;
|
||||
creator: string;
|
||||
content: string;
|
||||
}
|
||||
|
||||
// 定义事件
|
||||
const emit = defineEmits<{
|
||||
(e: 'getRoleList'): void;
|
||||
(e: 'success'): void;
|
||||
}>();
|
||||
|
||||
// 响应式数据
|
||||
@@ -63,13 +62,10 @@ const state = reactive({
|
||||
isShowDialog: false,
|
||||
formData: {
|
||||
id: 0,
|
||||
name: '',
|
||||
status: 1,
|
||||
listOrder: 0,
|
||||
remark: '',
|
||||
menuIds: [],
|
||||
tag: '',
|
||||
content: '',
|
||||
} as DialogRow,
|
||||
creator: '',
|
||||
},
|
||||
menuData: [] as MenuDataTree[],
|
||||
menuExpand: false,
|
||||
menuNodeAll: false,
|
||||
@@ -78,7 +74,7 @@ const state = reactive({
|
||||
|
||||
// 表单验证规则
|
||||
const rules: FormRules = {
|
||||
name: [{ required: true, message: '标签名称不能为空', trigger: 'blur' }],
|
||||
tag: [{ required: true, message: '标签名称不能为空', trigger: 'blur' }],
|
||||
content: [{ required: true, message: '产品详情不能为空', trigger: 'blur' }],
|
||||
};
|
||||
|
||||
@@ -101,23 +97,9 @@ const menuProps = {
|
||||
*/
|
||||
const openDialog = (row?: DialogRow) => {
|
||||
resetForm();
|
||||
|
||||
console.log(row, 'row');
|
||||
if (row) {
|
||||
// 编辑模式:获取角色详情
|
||||
getRole(row.id)
|
||||
.then((res: any) => {
|
||||
if (res.data?.role) {
|
||||
state.formData = {
|
||||
...res.data.role,
|
||||
content: res.data.role.content || '',
|
||||
menuIds: res.data.menuIds ?? [],
|
||||
};
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('获取角色详情失败:', error);
|
||||
ElMessage.error('获取角色详情失败');
|
||||
});
|
||||
state.formData = row;
|
||||
}
|
||||
|
||||
state.isShowDialog = true;
|
||||
@@ -151,18 +133,22 @@ const onSubmit = async () => {
|
||||
state.loading = true;
|
||||
|
||||
if (state.formData.id === 0) {
|
||||
state.formData.creator = Session.get('userInfo').userNickname;
|
||||
|
||||
// 新增模式
|
||||
await addRole(state.formData);
|
||||
await getscriptAdd(state.formData);
|
||||
console.log(state.formData);
|
||||
ElMessage.success('添加成功');
|
||||
} else {
|
||||
state.formData.modifier = Session.get('userInfo').userNickname;
|
||||
// 编辑模式
|
||||
await editRole(state.formData);
|
||||
await updatescript(state.formData);
|
||||
ElMessage.success('修改成功');
|
||||
}
|
||||
|
||||
// 关闭对话框并刷新列表
|
||||
closeDialog();
|
||||
emit('getRoleList');
|
||||
emit('success');
|
||||
} catch (error) {
|
||||
console.error('提交失败:', error);
|
||||
ElMessage.error('操作失败');
|
||||
@@ -180,12 +166,9 @@ const resetForm = () => {
|
||||
state.menuNodeAll = false;
|
||||
state.formData = {
|
||||
id: 0,
|
||||
name: '',
|
||||
status: 1,
|
||||
listOrder: 0,
|
||||
remark: '',
|
||||
menuIds: [],
|
||||
tag: '',
|
||||
content: '',
|
||||
creator: '',
|
||||
};
|
||||
|
||||
// 重置表单验证状态
|
||||
|
||||
Reference in New Issue
Block a user