@@ -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 AvueFormDesign from '@sscfaith/avue-form-design' | ||||
import basicContainer from './components/basic-container/main' | import basicContainer from './components/basic-container/main' | ||||
import api from './api' | import api from './api' | ||||
import AvueUeditor from 'avue-plugin-ueditor' | |||||
Vue.use(AvueUeditor); | |||||
import AudioPlayer from '@liripeng/vue-audio-player' | import AudioPlayer from '@liripeng/vue-audio-player' | ||||
// import '@liripeng/vue-audio-player/lib/vue-audio-player.css' | // import '@liripeng/vue-audio-player/lib/vue-audio-player.css' | ||||
@@ -171,9 +171,17 @@ | |||||
<el-dropdown-item divided @click.native="$refs.seting.open()" | <el-dropdown-item divided @click.native="$refs.seting.open()" | ||||
> | > | ||||
<span class="accountIcon"> | <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> | <i class="accountIcon2"></i> | ||||
帮助中心 | 帮助中心 | ||||
</span> | </span> | ||||
</router-link> | |||||
</el-dropdown-item> | </el-dropdown-item> | ||||
<el-dropdown-item divided> | <el-dropdown-item divided> | ||||
<router-link to="/info/index"> | <router-link to="/info/index"> | ||||
@@ -511,6 +519,9 @@ export default { | |||||
setScreen() { | setScreen() { | ||||
this.$store.commit("SET_FULLSCREEN"); | this.$store.commit("SET_FULLSCREEN"); | ||||
}, | }, | ||||
helpCenter(){ | |||||
this.$router.push({ path: "/login" }); | |||||
}, | |||||
logout() { | logout() { | ||||
this.$confirm("是否退出系统, 是否继续?", "提示", { | this.$confirm("是否退出系统, 是否继续?", "提示", { | ||||
confirmButtonText: "确定", | 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> |