Browse Source

问题中心新增编辑

newStyle
corala 2 years ago
parent
commit
6a848a6791
7 changed files with 794 additions and 52 deletions
  1. +37
    -0
      src/const/crud/activiti/question.js
  2. +2
    -1
      src/main.js
  3. +11
    -0
      src/page/index/top/index.vue
  4. +70
    -51
      src/router/views/index.js
  5. +212
    -0
      src/views/admin/help/index.vue
  6. +289
    -0
      src/views/contentManage/updateRecord/question.vue
  7. +173
    -0
      src/views/contentManage/updateRecord/questionType.vue

+ 37
- 0
src/const/crud/activiti/question.js View File

@@ -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'
}]
}

+ 2
- 1
src/main.js View File

@@ -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'


+ 11
- 0
src/page/index/top/index.vue View File

@@ -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: "确定",


+ 70
- 51
src/router/views/index.js View File

@@ -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')
}]
}
]
];

+ 212
- 0
src/views/admin/help/index.vue
File diff suppressed because it is too large
View File


+ 289
- 0
src/views/contentManage/updateRecord/question.vue View File

@@ -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>

+ 173
- 0
src/views/contentManage/updateRecord/questionType.vue View File

@@ -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>

Loading…
Cancel
Save