@@ -0,0 +1,37 @@ | |||
export const tableOption = { | |||
border: true, | |||
index: true, | |||
indexLabel: '序号', | |||
stripe: true, | |||
menuAlign: 'center', | |||
align: 'center', | |||
addBtn: false, | |||
editBtn: false, | |||
searchMenuSpan: 6, | |||
column: [{ | |||
label: '', | |||
prop: 'id', | |||
hide: true | |||
}, { | |||
label: '标题', | |||
prop: 'title', | |||
}, { | |||
label: '类型', | |||
prop: 'type' | |||
}, { | |||
label: '阅读数', | |||
prop: 'number', | |||
}, { | |||
label: '发布人', | |||
prop: 'name' | |||
}, { | |||
label: '发布内容', | |||
prop: 'detail', | |||
hide: true | |||
}, | |||
{ | |||
label: '发布时间', | |||
prop: 'createTime' | |||
}] | |||
} |
@@ -19,7 +19,8 @@ import './styles/common.scss' | |||
import AvueFormDesign from '@sscfaith/avue-form-design' | |||
import basicContainer from './components/basic-container/main' | |||
import api from './api' | |||
import AvueUeditor from 'avue-plugin-ueditor' | |||
Vue.use(AvueUeditor); | |||
import AudioPlayer from '@liripeng/vue-audio-player' | |||
// import '@liripeng/vue-audio-player/lib/vue-audio-player.css' | |||
@@ -171,9 +171,17 @@ | |||
<el-dropdown-item divided @click.native="$refs.seting.open()" | |||
> | |||
<span class="accountIcon"> | |||
<i class="accountIcon3"></i> | |||
主题设置 | |||
</span> | |||
</el-dropdown-item> | |||
<el-dropdown-item divided> | |||
<router-link to="/help/index"> | |||
<span class="accountIcon"> | |||
<i class="accountIcon2"></i> | |||
帮助中心 | |||
</span> | |||
</router-link> | |||
</el-dropdown-item> | |||
<el-dropdown-item divided> | |||
<router-link to="/info/index"> | |||
@@ -511,6 +519,9 @@ export default { | |||
setScreen() { | |||
this.$store.commit("SET_FULLSCREEN"); | |||
}, | |||
helpCenter(){ | |||
this.$router.push({ path: "/login" }); | |||
}, | |||
logout() { | |||
this.$confirm("是否退出系统, 是否继续?", "提示", { | |||
confirmButtonText: "确定", | |||
@@ -1,56 +1,75 @@ | |||
import Layout from '@/page/index/' | |||
import Layout from "@/page/index/"; | |||
export default [{ | |||
path: '/info', | |||
component: Layout, | |||
redirect: '/info/index', | |||
children: [{ | |||
path: 'index', | |||
name: '个人信息', | |||
component: () => | |||
import(/* webpackChunkName: "page" */ '@/views/admin/user/info') | |||
}, | |||
{ | |||
path: '/Statistics/Insightintothedetails', | |||
component: () => | |||
import(/* webpackChunkName: "page" */ '@/views/Statistics/Insightintothedetails'), | |||
name: '洞察详情', | |||
meta: { | |||
keepAlive: true, | |||
} | |||
}, | |||
export default [ | |||
{ | |||
path: '/Template/Pinspeakwords', | |||
component: () => | |||
import(/* webpackChunkName: "page" */ '@/views/Template/Pinspeakwords'), | |||
name: '销讲模板', | |||
path: "/info", | |||
component: Layout, | |||
redirect: "/info/index", | |||
children: [ | |||
{ | |||
path: "index", | |||
name: "个人信息", | |||
component: () => | |||
import(/* webpackChunkName: "page" */ "@/views/admin/user/info"), | |||
}, | |||
{ | |||
path: "/help/index", | |||
name: "帮助中心", | |||
component: () => import( "@/views/admin/help/index"), | |||
}, | |||
{ | |||
path: "/Statistics/Insightintothedetails", | |||
component: () => | |||
import( | |||
/* webpackChunkName: "page" */ "@/views/Statistics/Insightintothedetails" | |||
), | |||
name: "洞察详情", | |||
meta: { | |||
keepAlive: true, | |||
}, | |||
}, | |||
{ | |||
path: "/Template/Pinspeakwords", | |||
component: () => | |||
import( | |||
/* webpackChunkName: "page" */ "@/views/Template/Pinspeakwords" | |||
), | |||
name: "销讲模板", | |||
}, | |||
{ | |||
path: "/Receive/index", | |||
component: () => | |||
import(/* webpackChunkName: "page" */ "@/views/Receive/index"), | |||
name: "接待详情", | |||
}, | |||
{ | |||
path: "/Customer/CustomerDetail", | |||
component: () => | |||
import( | |||
/* webpackChunkName: "page" */ "@/views/Customer/CustomerDetail" | |||
), | |||
name: "客户详情", | |||
}, | |||
{ | |||
path: "/contentManage/updateRecord/update", | |||
component: () => | |||
import( | |||
/* webpackChunkName: "views" */ "@/views/contentManage/updateRecord/update" | |||
), | |||
name: "更新", | |||
}, | |||
], | |||
}, | |||
{ | |||
path: '/Receive/index', | |||
component: () => | |||
import(/* webpackChunkName: "page" */ '@/views/Receive/index'), | |||
name: '接待详情', | |||
path: "/activti", | |||
component: Layout, | |||
redirect: "/activti/detail", | |||
children: [ | |||
{ | |||
path: "detail/:id", | |||
component: () => | |||
import(/* webpackChunkName: "views" */ "@/views/activiti/detail"), | |||
}, | |||
], | |||
}, | |||
{ | |||
path: '/Customer/CustomerDetail', | |||
component: () => | |||
import(/* webpackChunkName: "page" */ '@/views/Customer/CustomerDetail'), | |||
name: '客户详情', | |||
}, | |||
{ | |||
path: '/contentManage/updateRecord/update', | |||
component: () => import(/* webpackChunkName: "views" */ '@/views/contentManage/updateRecord/update'), | |||
name:"更新" | |||
} | |||
] | |||
}, { | |||
path: '/activti', | |||
component: Layout, | |||
redirect: '/activti/detail', | |||
children: [{ | |||
path: 'detail/:id', | |||
component: () => | |||
import(/* webpackChunkName: "views" */ '@/views/activiti/detail') | |||
}] | |||
} | |||
] | |||
]; |
@@ -0,0 +1,289 @@ | |||
<template> | |||
<div class="help"> | |||
<el-card class="box-card"> | |||
<el-form :inline="true" :model="searchForm"> | |||
<el-form-item label="问题名称"> | |||
<el-input v-model="searchForm.name" placeholder="问题名称"></el-input> | |||
</el-form-item> | |||
<el-form-item label="问题类型"> | |||
<el-select v-model="searchForm.type" placeholder="问题类型"> | |||
<el-option label="区域一" value="shanghai"></el-option> | |||
<el-option label="区域二" value="beijing"></el-option> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="发布时间"> | |||
<el-date-picker | |||
v-model="searchForm.date" | |||
type="daterange" | |||
range-separator="至" | |||
format="yyyy-MM-dd" | |||
value-format="yyyy-MM-dd" | |||
start-placeholder="开始日期" | |||
end-placeholder="结束日期"> | |||
</el-date-picker> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="search">查询</el-button> | |||
<el-button type="primary" @click="reset">重置</el-button> | |||
</el-form-item> | |||
</el-form> | |||
</el-card> | |||
<basic-container> | |||
<avue-crud | |||
ref="crud" | |||
:page.sync="page" | |||
:data="tableData" | |||
:table-loading="tableLoading" | |||
:option="tableOption" | |||
:permission="permissionList" | |||
@on-load="getList" | |||
@refresh-change="refreshChange" | |||
@size-change="sizeChange" | |||
@current-change="currentChange" | |||
@row-del="handleDel" | |||
> | |||
<template slot-scope="{type,size}" slot="menuLeft"> | |||
<el-button icon="el-icon-plus" :size="size" @click="dialogFormVisible=true" type="primary">新增</el-button> | |||
</template> | |||
<template slot-scope="{row,type,size}" slot="menu"> | |||
<el-button icon="el-icon-edit" :size="size" :type="type" @click="editFun(row)">编辑</el-button> | |||
<el-button icon="el-icon-delete" :size="size" :type="type">删除</el-button> | |||
</template> | |||
</avue-crud> | |||
</basic-container> | |||
<el-dialog title="收货地址" :visible.sync="dialogFormVisible" width="60%"> | |||
<el-form :model="form" label-width="100px"> | |||
<el-form-item label="标题" :rules="{required: true}"> | |||
<el-input v-model="form.title" style="width: 180px" autocomplete="off"></el-input> | |||
</el-form-item> | |||
<el-form-item label="问题类型" :rules="{required: true}"> | |||
<el-select v-model="form.type" placeholder="活动区域"> | |||
<el-option label="区域一" value="shanghai"></el-option> | |||
<el-option label="区域二" value="beijing"></el-option> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="内容" :rules="{required: true}"> | |||
<avue-ueditor | |||
v-model="form.detail" | |||
:options="editOptions" | |||
></avue-ueditor> | |||
</el-form-item> | |||
</el-form> | |||
<div slot="footer" class="dialog-footer"> | |||
<el-button @click="dialogFormVisible = false">取 消</el-button> | |||
<el-button type="primary" @click="saveFun">确 定</el-button> | |||
</div> | |||
</el-dialog> | |||
</div> | |||
</template> | |||
<script> | |||
import { delObj, fetchList } from "@/api/admin/log"; | |||
import { tableOption } from "@/const/crud/activiti/question"; | |||
import { mapGetters } from "vuex"; | |||
import { exportMethodPost} from "@/util/util"; | |||
export default { | |||
name: "question", | |||
data() { | |||
return { | |||
searchForm: { | |||
name: '', | |||
type: '', | |||
date: [] | |||
}, | |||
tableData: [{ | |||
name: 'af', | |||
type: '1', | |||
date: '23344', | |||
number: 32, | |||
title: '3232dfc' | |||
}], | |||
dialogFormVisible: false, | |||
editOptions: { | |||
//普通图片上传 | |||
action: "/comsrv/cnbanner/uploadFile", | |||
customConfig: {}, //wangEditor编辑的配置 | |||
props: { | |||
res: "data", | |||
url: "fileName" | |||
}, | |||
//七牛云oss配置 | |||
qiniu: { | |||
AK: "", | |||
SK: "", | |||
scope: "test", | |||
url: "http://pm7cc17lu.bkt.clouddn.com/", | |||
deadline: 1 | |||
}, | |||
//阿里云oss配置 | |||
ali: { | |||
region: "oss-cn-beijing", | |||
endpoint: "oss-cn-beijing.aliyuncs.com", | |||
accessKeyId: "", | |||
accessKeySecret: "", | |||
bucket: "avue" | |||
} | |||
}, | |||
form: { | |||
title: '', | |||
type: '', | |||
detail: '' | |||
}, | |||
searchForm: { | |||
startDate: "", | |||
endDate: "" | |||
}, | |||
page: { | |||
total: 0, // 总页数 | |||
currentPage: 1, // 当前页数 | |||
pageSize: 10, // 每页显示多少条 | |||
}, | |||
tableLoading: false, | |||
tableOption: tableOption, | |||
}; | |||
}, | |||
computed: { | |||
...mapGetters(["permissions"]), | |||
permissionList() { | |||
return { | |||
delBtn: this.vaildData(this.permissions.sys_log_del, false), | |||
}; | |||
}, | |||
}, | |||
created() { | |||
}, | |||
methods: { | |||
editFun(row){ | |||
console.log(row) | |||
this.form = { | |||
title: row.title, | |||
type: row.type, | |||
detail: '' | |||
} | |||
this.dialogFormVisible = true; | |||
}, | |||
saveFun(){ | |||
this.dialogFormVisible = false; | |||
}, | |||
search(){ | |||
}, | |||
reset(){ | |||
this.searchForm={ | |||
name: '', | |||
type: '', | |||
date: [] | |||
} | |||
this.page.currentPage = 1 | |||
this.getList(this.page); | |||
}, | |||
// downLoad(){ | |||
// let obj=Object.assign( | |||
// { | |||
// descs: "create_time", | |||
// },this.searchForm) | |||
// exportMethodPost('/admin/log/loginLogPageExport','登陆日志',obj) | |||
// }, | |||
getList(page, params) { | |||
this.tableLoading = true; | |||
fetchList( | |||
Object.assign( | |||
{ | |||
current: page.currentPage, | |||
size: page.pageSize | |||
}, | |||
params, | |||
this.searchForm | |||
) | |||
).then((response) => { | |||
// this.tableData = response.data.records; | |||
// this.page.total = response.data.total; | |||
this.tableLoading = false; | |||
}); | |||
}, | |||
handleDel: function (row) { | |||
this.$confirm('是否确认删除ID为"' + row.id + '"的日志?', "警告", { | |||
confirmButtonText: "确定", | |||
cancelButtonText: "取消", | |||
type: "warning", | |||
}) | |||
.then(function () { | |||
return delObj(row.id); | |||
}) | |||
.then(() => { | |||
this.getList(this.page); | |||
this.$message.success("删除成功"); | |||
}); | |||
}, | |||
searchChange(form, done) { | |||
this.searchForm = form; | |||
this.page.currentPage = 1; | |||
this.getList(this.page, form); | |||
done(); | |||
}, | |||
sizeChange(pageSize) { | |||
this.page.pageSize = pageSize; | |||
}, | |||
currentChange(current) { | |||
this.page.currentPage = current; | |||
}, | |||
refreshChange() { | |||
this.getList(this.page); | |||
}, | |||
}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped="scoped"> | |||
.app-top { | |||
width: 100%; | |||
background: #ffffff; | |||
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04); | |||
border-radius: 4px; | |||
padding-top: 15px; | |||
padding-bottom: 15px; | |||
.app-titel { | |||
width: 100%; | |||
display: flex; | |||
align-items: center; | |||
flex-wrap: wrap; | |||
.label { | |||
font-size: 14px; | |||
font-weight: 400; | |||
color: #32363d; | |||
line-height: 32px; | |||
margin-left: 15px; | |||
min-width: 100px; | |||
} | |||
.toptimeqhuan { | |||
height: 30px; | |||
background: #ffffff; | |||
display: flex; | |||
align-items: center; | |||
} | |||
.toptimeqhuan div { | |||
padding-left: 20px; | |||
padding-right: 20px; | |||
text-align: center; | |||
line-height: 30px; | |||
font-size: 14px; | |||
margin-right: 15px; | |||
border-radius: 4px; | |||
border: 1px solid #e0e0e0; | |||
} | |||
} | |||
} | |||
.div-lab { | |||
display: flex; | |||
margin: 5px; | |||
} | |||
.div-inp { | |||
width: 250px; | |||
} | |||
/deep/ .el-button--primary{ | |||
background: #2671E2 !important; | |||
border: 1px solid #2671E2 !important; | |||
} | |||
</style> |
@@ -0,0 +1,173 @@ | |||
<template> | |||
<div class="help"> | |||
<basic-container> | |||
<el-button | |||
@click="(addModal = true), (isAdd = true)" | |||
type="primary" | |||
size="small" | |||
>新增</el-button | |||
> | |||
<el-button @click="downLoad" type="primary" size="small">导出</el-button> | |||
<el-table border :data="tableData" style="width: 100%; margin-top: 20px"> | |||
<el-table-column type="index" label="序号" width="100"> | |||
</el-table-column> | |||
<el-table-column prop="date" label="类型"> </el-table-column> | |||
<el-table-column prop="name" label="关联问题"> </el-table-column> | |||
<el-table-column fixed="right" width="130" label="操作"> | |||
<template slot-scope="scope"> | |||
<el-button @click="editFun(scope.row)" type="text" size="small" | |||
>编辑</el-button | |||
> | |||
<el-button @click="delFun(scope.row)" type="text" size="small" | |||
>删除</el-button | |||
> | |||
</template> | |||
</el-table-column> | |||
</el-table> | |||
<div style="display: flex; justify-content: flex-end; margin-top: 10px"> | |||
<el-pagination | |||
@size-change="handleSizeChange" | |||
@current-change="handleCurrentChange" | |||
:current-page="currentPage" | |||
:page-sizes="[10, 30, 50]" | |||
:page-size="size" | |||
layout="total, sizes, prev, pager, next, jumper" | |||
:total="total" | |||
> | |||
</el-pagination> | |||
</div> | |||
</basic-container> | |||
<el-dialog | |||
:title="isAdd ? '新增' : '编辑'" | |||
:visible.sync="addModal" | |||
width="30%" | |||
> | |||
<el-form :model="form" label-width="100px"> | |||
<el-form-item label="问题类型" :rules="{ required: true }"> | |||
<el-input | |||
v-model="form.name" | |||
maxlength="8" | |||
style="width: 180px" | |||
autocomplete="off" | |||
></el-input> | |||
<div>限8个字</div> | |||
</el-form-item> | |||
</el-form> | |||
<div slot="footer" class="dialog-footer"> | |||
<el-button @click="addModal = false">取 消</el-button> | |||
<el-button type="primary" @click="saveFun">确 定</el-button> | |||
</div> | |||
</el-dialog> | |||
<el-dialog title="删除" :visible.sync="delModal" width="30%"> | |||
<div style="text-align: center; margin-bottom: 20px"> | |||
请将此来源的问题转移到以下类型 | |||
</div> | |||
<el-form :model="form" label-width="100px"> | |||
<el-form-item label="问题移至" :rules="{ required: true }"> | |||
<el-select v-model="form.type" placeholder="问题类型"> | |||
<el-option label="区域一" value="shanghai"></el-option> | |||
<el-option label="区域二" value="beijing"></el-option> | |||
</el-select> | |||
</el-form-item> | |||
</el-form> | |||
<div slot="footer" class="dialog-footer"> | |||
<el-button @click="addModal = false">取 消</el-button> | |||
<el-button type="primary" @click="saveFun">确 定</el-button> | |||
</div> | |||
</el-dialog> | |||
</div> | |||
</template> | |||
<script> | |||
// import { delObj, fetchList } from "@/api/admin/log"; | |||
import { mapGetters } from "vuex"; | |||
// import { exportMethodPost} from "@/util/util"; | |||
export default { | |||
name: "questionType", | |||
data() { | |||
return { | |||
isAdd: false, | |||
delModal: false, | |||
total: 0, | |||
size: 10, | |||
currentPage: 1, | |||
tableData: [], | |||
addModal: false, | |||
form: { | |||
name: "", | |||
type: "", | |||
detail: "", | |||
}, | |||
tableLoading: false, | |||
}; | |||
}, | |||
computed: { | |||
...mapGetters(["permissions"]), | |||
permissionList() { | |||
return { | |||
delBtn: this.vaildData(this.permissions.sys_log_del, false), | |||
}; | |||
}, | |||
}, | |||
created() { | |||
this.getDataList() | |||
}, | |||
methods: { | |||
editFun(row) { | |||
console.log(row); | |||
this.form = { | |||
name: row.name, | |||
type: row.type, | |||
detail: "", | |||
}; | |||
this.addModal = true; | |||
this.isAdd = false; | |||
}, | |||
delFun(row) { | |||
this.delModal = true; | |||
}, | |||
addFun() {}, | |||
saveFun() { | |||
this.addModal = false; | |||
}, | |||
downLoad() { | |||
// let obj = Object.assign( | |||
// { | |||
// descs: "create_time", | |||
// }, | |||
// this.searchForm | |||
// ); | |||
// exportMethodPost("/admin/log/loginLogPageExport", "登陆日志", obj); | |||
}, | |||
getDataList() { | |||
let obj = { | |||
current: this.currentPage, | |||
size: this.size | |||
} | |||
this.$api.api.customerManagement(obj).then((res) => { | |||
// console.log(res) | |||
this.tableData = res.data.records; | |||
this.total = res.data.total; | |||
}); | |||
}, | |||
handleSizeChange(val) { | |||
this.size = val; | |||
let data = { | |||
current: 1, | |||
size: val, | |||
}; | |||
this.getDataList(data) | |||
}, | |||
handleCurrentChange(val) { | |||
this.current = val; | |||
let data = { | |||
current: val, | |||
size: 10, | |||
}; | |||
this.getDataList(data) | |||
}, | |||
}, | |||
}; | |||
</script> | |||
<style lang="scss" scoped="scoped"></style> |