意见反馈页面
This commit is contained in:
1 parent
c7398580ee
commit
216e2ac75b
2 files changed
+43
-24
No files matched your search
@@ -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();
|
||||
|
||||
@@ -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>
|
||||
Reference in new issue
Block a user