Commit c9846c22 authored by 张俊's avatar 张俊

Merge branch 'dev' of https://cloud.wodcloud.com/git/apaas/apaas-v3-ui into dev

parents 4849a0d7 6cb66255
......@@ -32,7 +32,7 @@
></span>
<a
v-else
class="btn"
class="del_btn_a"
:class="v.class || ''"
:key="'btn_' + index + '_' + i"
@click.stop="v.callback && v.callback(scope.row)"
......@@ -55,7 +55,7 @@
</div>
<div v-else-if="item.type === 'button'" class="row_action">
<a
class="btn warn"
class="btn"
v-text="scope.row[item.prop]"
@click.stop="item.callback && item.callback(scope.row)"
></a>
......@@ -529,4 +529,9 @@ export default {
border-radius: 10px;
background-color: #fff;
}
.del_btn_a {
font-weight: bold;
color: #830f53;
cursor: pointer;
}
</style>
......@@ -19,6 +19,8 @@
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:clearable="false"
></el-date-picker>
<el-select
v-if="item.type == 'select'"
......@@ -101,3 +103,24 @@ export default {
width: calc(100% - 220px);
}
</style>
<style>
.from_content1 .el-input__inner {
background-color: #f7f8f9;
}
.el-date-editor.el-range-editor .el-range-input {
background-color: #f7f8f9;
width: 80px;
}
.el-date-editor.el-range-editor .el-range-separator {
width: 40px;
position: relative;
top: 2px;
}
.el-date-editor.el-range-editor {
width: 260px;
padding: 3px 10px 3px 15px;
}
.el-date-editor .el-range__icon {
margin-right: 8px;
}
</style>
\ No newline at end of file
......@@ -85,11 +85,3 @@ export default {
bottom: -20px;
}
</style>
<style>
.from_content1 .el-input__inner {
background-color: #f7f8f9;
}
.el-date-editor.el-range-editor .el-range-input {
background-color: #f7f8f9;
}
</style>
\ No newline at end of file
<template>
<div class="side_nav_bar">
<div class="side_nav_bar apaas_scroll">
<h3 class="side_nav_bar_title" @click="titleAction">
<img :src="titleIcon" width="20" style="margin-right: 10px;" />
<span v-text="title"></span>
</h3>
<ul class="side_nav_bar_list">
<!-- active-class="current" -->
<template v-for="(nav, index) in navList">
<li v-if="nav.children && nav.children.length" :key="'nav_' + index">
<a class="text_clip toggle_bar" @click.prevent="toggleNav(nav)">
{{ nav.name }}
<i
:class="nav.open ? 'el-icon-arrow-down' : 'el-icon-arrow-right'"
></i>
</a>
<ul class="second_list" v-show="nav.open">
<li v-for="(v, i) in nav.children" :key="'nav_' + index + 'v_' + i">
<router-link
class="text_clip"
:class="{ current: $route.path.indexOf(v.path) > -1 }"
:to="v.path"
>
{{ v.name }}
</router-link>
</li>
</ul>
</li>
<li v-else-if="nav.disabled" :key="'nav_' + index">
<a class="disabled text_clip">
{{ nav.name }}
</a>
</li>
<li v-else :key="'nav_' + index">
<router-link
tag="li"
v-for="(nav, index) in navList"
class="text_clip"
:class="{ current: $route.path.indexOf(nav.path) > -1 }"
:key="'nav' + index"
:to="nav.path"
>
<span v-text="nav.name"></span>
{{ nav.name }}
</router-link>
</li>
</template>
</ul>
</div>
</template>
......@@ -41,8 +68,8 @@ export default {
},
imgSrc: {
type: String,
default: "tool_fuwu"
}
default: "tool_fuwu",
},
},
methods: {
titleAction() {
......@@ -50,6 +77,9 @@ export default {
this.$router.push(this.titlePath);
}
},
toggleNav(nav) {
this.$set(nav, "open", !nav.open);
},
},
};
</script>
......@@ -57,6 +87,8 @@ export default {
<style scoped>
.side_nav_bar {
background-color: #0d1847;
overflow-x: hidden;
overflow-y: auto;
}
.side_nav_bar_title {
height: 40px;
......@@ -73,16 +105,48 @@ export default {
font-size: 16px;
color: #c3caf8;
}
.side_nav_bar_list > li {
.side_nav_bar_list > li > a {
display: block;
padding: 12px 10px 12px 42px;
border-left: 5px solid #0d1847;
font-size: 14px;
font-weight: bold;
line-height: 24px;
color: #6573ae;
color: #e6ebfe;
text-decoration: none;
cursor: pointer;
user-select: none;
}
.side_nav_bar_list > li > a.disabled {
opacity: 0.5;
cursor: not-allowed;
}
.side_nav_bar_list > li > a:hover,
.side_nav_bar_list > li > a.current {
border-left: 5px solid #e56600;
background-color: #182665;
color: #e6ebfe;
}
.toggle_bar {
padding-right: 30px !important;
position: relative;
}
.toggle_bar > i {
position: absolute;
top: 16px;
right: 8px;
}
.second_list > li > a {
display: block;
padding: 12px 10px 12px 56px;
border-left: 5px solid #0d1847;
font-size: 14px;
line-height: 24px;
color: #6573ae;
text-decoration: none;
}
.side_nav_bar_list > li:hover,
.side_nav_bar_list > li.current {
.second_list > li > a:hover,
.second_list > li > a.current {
border-left: 5px solid #e56600;
background-color: #182665;
color: #e6ebfe;
......
......@@ -9,43 +9,77 @@
开发文档
</el-breadcrumb-item>
<el-breadcrumb-item>
文档编辑
文档编辑 - {{ title }}
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="editpage">
<wang-e v-model="editstr"></wang-e>
<div class="apaas_button" style="overflow:hidden;padding-top:30px;border-top:1px solid #e3e5ef;box-sizing:border-box;">
<el-button style="float:right;margin:0 30px;" type="primary" >保存</el-button>
<el-button style="float:right" >取消</el-button>
<wang-e v-model="content"></wang-e>
<div class="apaas_button">
<el-button type="defalut" size="mini" @click="cancelAction">
取消
</el-button>
<el-button type="primary" size="mini" @click="submitAction">
保存
</el-button>
</div>
</div>
</div>
</template>
<script>
import wangE from '@/components/wangE'
import wangE from "@/components/wangE";
export default {
data() {
return {
editstr:'',
title: "",
content: "",
};
},
components:{
wangE
},
computed: {
components: {
wangE,
},
created() {
if (this.$route.params.id) {
// 请求详情
this.$http
.get("/apaas/support/document/get", {
params: {
id: this.$route.params.id,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.title = data.data.title;
this.content = data.data.content;
}
});
}
},
methods: {
cancelAction() {
this.$router.push("/technical_support/doc_manage");
},
submitAction() {
this.$http
.put("/apaas/support/document/put", {
id: parseFloat(this.$route.params.id),
content: this.content,
})
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("保存成功");
this.$router.push("/technical_support/doc_manage")
} else {
// error
this.$message.error(data.errMsg || "保存失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("保存失败");
});
},
},
methods: {},
};
</script>
......@@ -60,17 +94,25 @@ export default {
background-color: #fff;
border-radius: 10px;
}
.editpage{
.editpage {
background-color: #fff;
height: calc(100% - 45px);
margin-bottom: 20px;
box-shadow: 0px 3px 6px 0px
#f4f7fc;
box-shadow: 0px 3px 6px 0px #f4f7fc;
border-radius: 12px;
}
.editpage .wangeditor_class{
.editpage .wangeditor_class {
height: calc(100% - 100px);
padding: 0 20px;
box-sizing: border-box;
}
.apaas_button {
border-top: 1px solid #e3e5ef;
box-sizing: border-box;
text-align: right;
padding-top: 30px;
}
.apaas_button .el-button + .el-button {
margin-right: 30px;
}
</style>
This diff is collapsed.
......@@ -5,10 +5,10 @@
imgSrc="tool_ic_kaifawendang"
:nav-list="navList"
:title-path="navList[0] && navList[0].path"
style="width: 200px;"
style="width: 250px;"
></side-nav-bar>
<div class="main_container">
<router-view />
<router-view :key="$route.params.type + $route.params.id" />
</div>
</div>
</template>
......@@ -23,28 +23,41 @@ export default {
data: () => ({
navList: [],
}),
watch: {
/* watch: {
"$route.fullPath"(path) {
this.initNavList();
},
},
}, */
methods: {
initNavList() {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then((response) => {
if (response.data.success == 1) {
let arr = response.data.data[0].Child;
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then(({ data }) => {
if (data.success == 1) {
let menu = data.data[0].Child;
let nav = [];
let activePath = "";
for (let i = 0; i < arr.length; i++) {
let first = arr[i];
for (let i = 0; i < menu.length; i++) {
let first = menu[i];
if (first.visit_url == "/technical_support") {
for (let j = 0; j < first.Child.length; j++) {
let second = first.Child[j];
if (second.visit_url == "/technical_support/doc") {
this.navList = second.Child.map((item) => ({
let paths = [
"/technical_support/doc/introductory",
"/technical_support/doc/notice",
"/technical_support/doc/trem",
"/technical_support/doc/standard",
"/technical_support/doc/guide",
"/technical_support/doc/api",
"/technical_support/doc/questions",
];
nav = second.Child.map((item, index) => ({
name: item.menu_name,
path: item.visit_url,
style: paths.indexOf(item.visit_url),
}));
break;
}
......@@ -52,6 +65,44 @@ export default {
break;
}
}
Promise.all(
nav.map((item, index) => {
return this.$http.get("/apaas/support/document/menus", {
params: { style: item.style },
});
})
).then((responses) => {
responses.forEach(({ data }, index) => {
let list = data.data || [];
let children = list.map((v) => ({
name: v.title,
path: nav[index].path + "/" + v.id,
}));
if (children.length === 0) {
this.$set(nav[index], "disabled", true);
} else {
if (activePath === "") {
activePath = children[0].path;
}
this.$set(nav[index], "path", children[0].path);
if (children.length > 1) {
this.$set(nav[index], "children", children);
this.$set(nav[index], "open", true);
}
}
});
this.navList = nav;
if (activePath && this.$route.params.id === undefined) {
this.$router.push(activePath);
} else if (activePath === "") {
this.$message.error("您尚未创建任何文档");
}
});
}
});
},
......
This diff is collapsed.
<template>
<div class="fwgl_container">
<side-nav-bar
v-if="showNavbar"
title="问答中心管理"
:title-icon="require('@/assets/imgs/tool_ic_wenda.png')"
:nav-list="navList"
:title-path="navList[0] && navList[0].path"
></side-nav-bar>
<div class="main_container">
<router-view :key="'type_' + $route.params.type"></router-view>
</div>
</div>
</template>
<script>
import sideNavBar from "@/components/side-nav-bar";
export default {
components: {
sideNavBar,
},
data: () => ({
userNav: [
{
name: "提问列表",
path: `/qa/questions`,
},
{
name: "回答列表",
path: `/qa/answers`,
},
],
navList: [],
showNavbar: false,
}),
watch: {
"$route.fullPath"(path) {
this.initNavList();
},
},
methods: {
initNavList() {
this.navList = this.userNav;
},
},
mounted() {
this.$api.user.getNowUser().then(({ data }) => {
if (data.success == 1) {
this.$store.commit("userInfofun", data.data);
const userLevel = this.$store.getters.level;
if (userLevel == 0) {
this.$message({
message: `您没有问答中心管理模块的权限.`,
type: "warning",
});
this.$router.push(`/index`);
} else {
this.showNavbar = true;
this.initNavList();
}
}
});
},
};
</script>
<style scoped>
.fwgl_container {
height: calc(100vh - 58px);
display: flex;
justify-content: flex-start;
align-items: stretch;
}
.side_nav_bar {
width: 180px;
flex-shrink: 0;
}
.main_container {
width: calc(100% - 180px);
flex-grow: 1;
flex-shrink: 1;
background-color: #f6f7fb;
overflow: auto;
}
</style>
......@@ -48,6 +48,26 @@ const user = {
editUserPassword(params) {
return axios.post(`/apaas/backmgt/user/password/${params.id}`, qs.stringify(params.form));
},
// QA
getQuestionList(params) {
return axios.get(`/apaas/support/qa/question/list?search=${params.search}&style=${params.style}&create_user=${params.create_user}&start=${params.start}&end=${params.end}&limit=${params.limit}&page=${params.page}&order=${params.order}`);
},
getAnswerList(params) {
return axios.get(`/apaas/support/qa/answer/list?search=${params.search}&style=${params.style}&create_user=${params.create_user}&start=${params.start}&end=${params.end}&limit=${params.limit}&page=${params.page}`);
},
getDeleteList() {
return axios.get(`/apaas/support/qa/deleted`);
},
delQuestions(params) {
return axios.delete(`/apaas/support/qa/question/delete`, params);
},
delAnswers(params) {
return axios.delete(`/apaas/support/qa/answer/delete`, params);
},
getUserQA() {
return axios.get(`/apaas/support/qa/info`)
}
}
export default user;
\ No newline at end of file
......@@ -147,17 +147,16 @@ export default new Router({
{
path: "/technical_support",
name: "technicalSupport",
redirect: "/technical_support/doc/",
redirect: "/technical_support/doc",
component: () => import("@/pages/technical-support/index"),
children: [
{
path: "/technical_support/doc/",
path: "/technical_support/doc",
name: "technicalSupportDoc",
redirect: "/technical_support/doc/introductory",
component: () => import("@/pages/technical-support/doc/index"),
children: [
{
path: "/technical_support/doc/:type",
path: "/technical_support/doc/:type/:id",
name: "technicalSupportDocDetail",
component: () =>
import("@/pages/technical-support/doc/detail"),
......@@ -165,7 +164,7 @@ export default new Router({
],
}, // 开发文档
{
path: "/technical_support/doc_manage/",
path: "/technical_support/doc_manage",
name: "technicalSupportDoc",
redirect: "/technical_support/doc_manage/list",
component: () => import("@/pages/technical-support/doc-manage/index"),
......@@ -420,22 +419,30 @@ export default new Router({
component: () => import("@/pages/user/order/order_detail"),
},
{
path: "/user/my_qa", // 我的问答
path: "/qa/my_qa", // 我的问答
name: "myQA",
component: () => import("@/pages/user/questions-answers/my-qa"),
},
],
}, // 个人中心
{
path: "/qa_management", // 问答中心管理
name: "qaManagement",
redirect: "/qa/questions",
component: () => import("@/pages/user/questions-answers/qa"),
children: [
{
path: "/user/questions", // 提问列表
path: "/qa/questions", // 提问列表
name: "questions",
component: () => import("@/pages/user/questions-answers/community"),
},
{
path: "/user/answers", // 回答列表
path: "/qa/answers", // 回答列表
name: "answers",
component: () => import("@/pages/user/questions-answers/community"),
},
],
}, // 个人中心
]
},
{
path: "/authority", // 权限管理
name: "authority",
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment