This commit is contained in:
weiwei committed 2025-06-30 20:41:01 +08:00
commit 75a07d9094
2 files changed
+43 -24

No files matched your search

+19 -17
View File
@@ -1,29 +1,23 @@
<template>
<el-dialog :title="form.id ? '编辑' : '新增'" v-model="visible"
<el-dialog :title="readonly ? '详情' : (form.id ? '编辑' : '新增')" v-model="visible"
:close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="12" class="mb20">
<el-col :span="24" class="mb20">
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题"/>
<el-input v-model="form.title" placeholder="请输入标题" :disabled="readonly"/>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="图片" prop="picUrl">
<upload-img v-model="form.picUrl"></upload-img>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="描述" prop="description">
<editor v-if="visible" v-model:get-html="form.description" placeholder="请输入描述"></editor>
<upload-img v-model="form.picUrl" :disabled="readonly"></upload-img>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="状态" prop="status">
<el-select v-model="form.status" placeholder="请选择状态)">
<el-select v-model="form.status" placeholder="请选择状态)" :disabled="readonly">
<el-option :value="item.value" :label="item.label" v-for="(item, index) in maintenance_status" :key="index"></el-option>
</el-select>
</el-form-item>
@@ -31,24 +25,29 @@
<el-col :span="12" class="mb20">
<el-form-item label="上报人" prop="userId">
<el-input v-model="form.userId" placeholder="请输入上报人"/>
<el-input v-model="form.createBy" placeholder="请输入上报人" :disabled="readonly"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="反馈类型" prop="type">
<el-select v-model="form.type" placeholder="请选择反馈类型">
<el-select v-model="form.type" placeholder="请选择反馈类型" :disabled="readonly">
<el-option :value="item.value" :label="item.label" v-for="(item, index) in feedback_type" :key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="描述" prop="description">
<editor v-if="visible" v-model:get-html="form.description" placeholder="请输入描述" :readonly="readonly"></editor>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="onSubmit" :disabled="loading">确认</el-button>
<el-button @click="visible = false">{{ readonly ? '关闭' : '取消' }}</el-button>
<el-button v-if="!readonly" type="primary" @click="onSubmit" :disabled="loading">确认</el-button>
</span>
</template>
</el-dialog>
@@ -65,6 +64,7 @@ const emit = defineEmits(['refresh']);
const dataFormRef = ref();
const visible = ref(false)
const loading = ref(false)
const readonly = ref(false)
// 定义字典
const { maintenance_status,feedback_type } = useDict('maintenance_status','feedback_type')
@@ -78,6 +78,8 @@ const form = reactive({
status: '',
userId: '',
type: '',
createBy: '',
createTime: '',
});
// 定义校验规则
@@ -88,10 +90,10 @@ const dataRules = ref({
})
// 打开弹窗
const openDialog = (id: string) => {
const openDialog = (id: string, isReadonly = false) => {
visible.value = true
form.id = ''
readonly.value = isReadonly
// 重置表单数据
nextTick(() => {
dataFormRef.value?.resetFields();
+24 -7
View File
@@ -47,23 +47,24 @@
<el-table-column type="index" label="#" width="40" />
<el-table-column prop="title" label="标题" show-overflow-tooltip/>
<el-table-column prop="picUrl" label="图片" show-overflow-tooltip/>
<el-table-column prop="sort" label="排序" show-overflow-tooltip/>
<el-table-column prop="status" label="状态(0未处理,1已处理)" show-overflow-tooltip>
<el-table-column prop="status" label="状态" show-overflow-tooltip>
<template #default="scope">
<dict-tag :options="maintenance_status" :value="scope.row.status"></dict-tag>
</template>
</el-table-column>
<el-table-column prop="userId" label="上报人" show-overflow-tooltip/>
<el-table-column prop="createBy" label="上报人" show-overflow-tooltip/>
<el-table-column prop="type" label="反馈类型" show-overflow-tooltip>
<template #default="scope">
<dict-tag :options="feedback_type" :value="scope.row.type"></dict-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<el-table-column prop="sort" label="排序" show-overflow-tooltip/>
<el-table-column label="操作" width="200">
<template #default="scope">
<el-button icon="edit-pen" text type="primary" v-auth="'integrated_feedback_edit'"
@click="formDialogRef.openDialog(scope.row.id)">编辑</el-button>
<el-button icon="view" text type="primary" v-auth="'integrated_feedback_edit'"
@click="formDialogRef.openDialog(scope.row.id, true)">详情</el-button>
<el-button icon="delete" text type="primary" v-auth="'integrated_feedback_del'" @click="handleDelete([scope.row.id])">删除</el-button>
<el-button icon="Check" text type="success" v-if="scope.row.status != 1" @click="handleProcessed(scope.row)">已处理</el-button>
</template>
</el-table-column>
</el-table>
@@ -78,7 +79,7 @@
<script setup lang="ts" name="systemFeedback">
import { BasicTableProps, useTable } from "/@/hooks/table";
import { fetchList, delObjs } from "/@/api/integrated/feedback";
import { fetchList, delObjs, putObj } from "/@/api/integrated/feedback";
import { useMessage, useMessageBox } from "/@/hooks/message";
import { useDict } from '/@/hooks/dict';
@@ -147,4 +148,20 @@ const handleDelete = async (ids: string[]) => {
useMessage().error(err.msg);
}
};
// 添加已处理操作
const handleProcessed = async (row: any) => {
try {
await useMessageBox().confirm('确定将该反馈标记为已处理吗?');
} catch {
return;
}
try {
await putObj({ ...row, status: 1 });
useMessage().success('已处理');
getDataList();
} catch (err: any) {
useMessage().error(err.msg);
}
};
</script>