flat: 暂存 信件、投诉建议

This commit is contained in:
Apcallover
2024-03-05 18:26:05 +08:00
parent 63ab28f014
commit 0b8fb3c77b
5 changed files with 427 additions and 2 deletions

14
src/api/manage/mailbox.js Normal file
View File

@@ -0,0 +1,14 @@
import request from '@/router/axios';
export const getList =
(current, size, params) => {
return request({
url: '/api/jobslink-api//content/consultMailboxInfo/list',
method: 'get',
params: {
...params,
current,
size,
}
})
}

View File

@@ -0,0 +1,14 @@
import request from '@/router/axios';
export const getList =
(current, size, params) => {
return request({
url: '/api/jobslink-api/content/superviseComplaintInfo/list',
method: 'get',
params: {
...params,
current,
size,
}
})
}

View File

@@ -0,0 +1,188 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
:page.sync="page"
ref="crud"
@search-change="searchChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@search-reset="searchReset"
@on-load="onLoad"
>
<template slot="menu" slot-scope="{row}">
<el-button size="small" type="text" @click="look(row)">查看</el-button>
</template>
</avue-crud>
<!-- 新增编辑 -->
<el-drawer :title="drawerTitle" :visible.sync="viewDrawer" size="60%">
<div>
<el-row :gutter="20">
<el-col :span="12"><span>咨询部门</span>{{ lookData.consultDeptName }}</el-col>
<el-col :span="12"><span>咨询题目</span>{{ lookData.consultTopic }}</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><span>咨询内容</span>{{ lookData.consultContent }}</el-col>
<el-col :span="12"><span>联系电话</span>{{ lookData.consultPhone }}</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><span>咨询日期</span>{{ lookData.consultTime }}</el-col>
</el-row>
</div>
</el-drawer>
</basic-container>
</template>
<script>
import {dateFormat} from '@/util/date'
import Tinymce from "@/components/Tinymce";
import {getList} from '@/api/manage/mailbox'
const columnList = [
{
label: "咨询部门",
prop: "consultDeptName",
search: false,
},
{
label: "咨询题目",
prop: "consultTopic",
search: false,
},
{
label: "咨询内容",
prop: "consultContent",
search: false,
}, {
label: "联系电话",
prop: "consultPhone",
search: false,
},
{
label: "咨询日期",
prop: "consultTime",
type:'datetime',
searchSpan:8,
searchRange:true,
}
]
const rules = {
name: [
{ required: true, message: '请输入内容标题', trigger: 'blur' }
],
type: [
{ required: true, message: '请选择分类', trigger: 'blur' }
],
content: [
{ required: true, message: '请输入内容', trigger: 'blur' }
],
}
export default {
name: "index",
components: {
Tinymce
},
mounted() {
},
data () {
return {
applTime: '',
loading:false,
viewDrawer:false,
drawerTitle: '新增内容',
formOption: {},
query: {},
rules: Object.assign({}, rules),
option: {
height: "auto",
tip: false,
searchShow: true,
searchMenuSpan: 6,
border: true,
index: true,
indexLabel: "序号",
selection: false,
viewBtn: false,
addBtn: false,
editBtn:false,
delBtn: false,
columnBtn: false,
menuWidth: 300,
labelWidth: 151,
dialogClickModal: false,
dialogType: "drawer",
dialogFullscreen: true,
column: columnList,
},
data: [],
lookData: {},
page: {
pageSize: 10,
currentPage: 1,
total: 100,
},
}
},
methods: {
dateFormat,
look(row) {
this.drawerTitle = '查看'
this.lookData = JSON.parse(JSON.stringify(row))
this.formOption = JSON.parse(JSON.stringify(row))
this.viewDrawer = true
},
resetForm(formName) {
this.$refs[formName].resetFields();
this.viewDrawer = false
},
/* 表格方法 */
onLoad(page, params = {}) {
this.loading = true;
getList(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.loading = false;
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params,done) {
console.log(params);
if (params.applTime) {
var val = JSON.parse(JSON.stringify(params.applTime))
params.applTimeStart = val[0] + " 00:00:00";
params.applTimeEnd = val[1] + " 23:59:59";
delete params.applTime
}
this.query = params;
console.log(this.query);
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
currentChange(val) {
this.page.currentPage = val
},
sizeChange(val) {
this.page.currentPage = 1
this.page.pageSize = val
},
refreshChange () {
this.page.currentPage = 1;
this.onLoad(this.page)
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,209 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
:page.sync="page"
ref="crud"
@search-change="searchChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@search-reset="searchReset"
@on-load="onLoad"
>
<template slot="menu" slot-scope="{row}">
<el-button size="small" type="text" @click="look(row)">查看</el-button>
</template>
</avue-crud>
<!-- 新增编辑 -->
<el-drawer :title="drawerTitle" :visible.sync="viewDrawer" size="60%">
<div>
<el-row :gutter="20">
<el-col :span="12"><span>投诉标题</span>{{ lookData.complaintTitle }}</el-col>
<el-col :span="12"><span>投诉对象</span>{{ lookData.complaintObject }}</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><span>投诉类型</span>{{ classEnum[lookData.complaintType] }}</el-col>
<el-col :span="12"><span>联系方式</span>{{ lookData.complaintPhone }}</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><span>创建时间</span>{{ lookData.complaintTime }}</el-col>
</el-row>
</div>
</el-drawer>
</basic-container>
</template>
<script>
import {dateFormat} from '@/util/date'
import Tinymce from "@/components/Tinymce";
import {getList} from '@/api/manage/superviseComplaintInfo'
const classEnum = {
1: '分类1',
2: '分类2',
3: '分类3',
4: '分类4',
}
const classEnumList = Object.keys(classEnum).map((item) => ({
name: classEnum[item], type: Number(item)
}))
const columnList = [
{
label: "投诉标题",
prop: "complaintTitle",
search: false
},
{
label: "投诉对象",
prop: "complaintObject",
search: false
},
{
label: "投诉名称",
prop: "complaintName",
search: false
}, {
label: "联系方式",
prop: "complaintPhone",
search: false
},
{
label: "投诉类型",
prop: "complaintType",
search: false,
type: "tree",
dicData: classEnumList,
props: {
label: "name",
value: "type",
},
},
{
label: "创建时间",
prop: "complaintTime",
type:'datetime',
searchSpan:8,
searchRange:true,
}
]
const rules = {
name: [
{ required: true, message: '请输入内容标题', trigger: 'blur' }
],
type: [
{ required: true, message: '请选择分类', trigger: 'blur' }
],
content: [
{ required: true, message: '请输入内容', trigger: 'blur' }
],
}
export default {
name: "index",
components: {
Tinymce
},
mounted() {
},
data () {
return {
applTime: '',
loading:false,
viewDrawer:false,
drawerTitle: '新增内容',
formOption: {},
query: {},
rules: Object.assign({}, rules),
option: {
height: "auto",
tip: false,
searchShow: true,
searchMenuSpan: 6,
border: true,
index: true,
indexLabel: "序号",
selection: false,
viewBtn: false,
addBtn: false,
editBtn:false,
delBtn: false,
columnBtn: false,
menuWidth: 300,
labelWidth: 151,
dialogClickModal: false,
dialogType: "drawer",
dialogFullscreen: true,
column: columnList,
},
data: [],
lookData: {},
classEnum,
page: {
pageSize: 10,
currentPage: 1,
total: 100,
},
}
},
methods: {
dateFormat,
look(row) {
this.drawerTitle = '查看'
this.lookData = JSON.parse(JSON.stringify(row))
this.formOption = JSON.parse(JSON.stringify(row))
this.viewDrawer = true
},
resetForm(formName) {
this.$refs[formName].resetFields();
this.viewDrawer = false
},
/* 表格方法 */
onLoad(page, params = {}) {
this.loading = true;
getList(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.loading = false;
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params,done) {
console.log(params);
if (params.applTime) {
var val = JSON.parse(JSON.stringify(params.applTime))
params.applTimeStart = val[0] + " 00:00:00";
params.applTimeEnd = val[1] + " 23:59:59";
delete params.applTime
}
this.query = params;
console.log(this.query);
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
currentChange(val) {
this.page.currentPage = val
},
sizeChange(val) {
this.page.currentPage = 1
this.page.pageSize = val
},
refreshChange () {
this.page.currentPage = 1;
this.onLoad(this.page)
}
}
}
</script>
<style scoped>
</style>

View File

@@ -23,10 +23,10 @@ module.exports = {
port: 1888,
proxy: {
"/api": {
target: 'http://192.168.3.104:8000', // 本地服务接口地址
// target: 'http://192.168.3.104:8000', // 本地服务接口地址
// target: "http://39.98.184.58:8000", // 阿里云后台地址
// target: "http://192.168.3.108:8000", // 本地
// target: 'http://192.168.3.111:8000',
target: 'http://192.168.3.111:8000',
ws: true,
changeOrigin: true,
pathRewrite: {