Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
apaas-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gzga-jzapi
apaas-ui
Commits
c9846c22
Commit
c9846c22
authored
Oct 26, 2020
by
张俊
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
https://cloud.wodcloud.com/git/apaas/apaas-v3-ui
into dev
parents
4849a0d7
6cb66255
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
2099 additions
and
1300 deletions
+2099
-1300
src/assets/imgs/tool_ic_wenda.png
src/assets/imgs/tool_ic_wenda.png
+0
-0
src/components/new-com/apassTable.vue
src/components/new-com/apassTable.vue
+7
-2
src/components/new-com/inlineForm.vue
src/components/new-com/inlineForm.vue
+23
-0
src/components/new-com/tableBtn.vue
src/components/new-com/tableBtn.vue
+0
-8
src/components/side-nav-bar.vue
src/components/side-nav-bar.vue
+80
-16
src/pages/technical-support/doc-manage/detail.vue
src/pages/technical-support/doc-manage/detail.vue
+63
-21
src/pages/technical-support/doc-manage/list.vue
src/pages/technical-support/doc-manage/list.vue
+139
-59
src/pages/technical-support/doc/detail.vue
src/pages/technical-support/doc/detail.vue
+31
-21
src/pages/technical-support/doc/index.vue
src/pages/technical-support/doc/index.vue
+61
-10
src/pages/user/questions-answers/community.vue
src/pages/user/questions-answers/community.vue
+236
-67
src/pages/user/questions-answers/my-qa.vue
src/pages/user/questions-answers/my-qa.vue
+210
-27
src/pages/user/questions-answers/qa.vue
src/pages/user/questions-answers/qa.vue
+88
-0
src/request/api/user.js
src/request/api/user.js
+21
-1
src/router/index.js
src/router/index.js
+17
-10
yarn.lock
yarn.lock
+1123
-1058
No files found.
src/assets/imgs/tool_ic_wenda.png
0 → 100644
View file @
c9846c22
1.23 KB
src/components/new-com/apassTable.vue
View file @
c9846c22
...
...
@@ -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
>
src/components/new-com/inlineForm.vue
View file @
c9846c22
...
...
@@ -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
src/components/new-com/tableBtn.vue
View file @
c9846c22
...
...
@@ -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
src/components/side-nav-bar.vue
View file @
c9846c22
<
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
;
}
.s
ide_nav_bar_list
>
li
:hover
,
.s
ide_nav_bar_list
>
li
.current
{
.s
econd_list
>
li
>
a
:hover
,
.s
econd_list
>
li
>
a
.current
{
border-left
:
5px
solid
#e56600
;
background-color
:
#182665
;
color
:
#e6ebfe
;
...
...
src/pages/technical-support/doc-manage/detail.vue
View file @
c9846c22
...
...
@@ -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
>
src/pages/technical-support/doc-manage/list.vue
View file @
c9846c22
...
...
@@ -83,9 +83,9 @@
<p>
注:同一文档类型下可维护多个文档名称
</p>
</div>
<el-form
ref=
"addForm"
:model=
"addForm"
:rules=
"addFormRules"
>
<el-form-item
label=
"活动区域"
prop=
"
region
"
>
<el-form-item
label=
"活动区域"
prop=
"
style
"
>
<el-select
v-model=
"addForm.
region
"
v-model=
"addForm.
style
"
placeholder=
"请选择文档类型"
style=
"width: 100%;"
>
...
...
@@ -98,9 +98,9 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"文档名称"
prop=
"
nam
e"
>
<el-form-item
label=
"文档名称"
prop=
"
titl
e"
>
<el-input
v-model=
"addForm.
nam
e"
v-model=
"addForm.
titl
e"
placeholder=
"请输入文档名称"
></el-input>
</el-form-item>
...
...
@@ -119,14 +119,14 @@
<apass-dialog
ref=
"detailDialog"
title=
"预览
"
:title=
"detail.title
"
class=
"doc_manage_detail_dialog"
width=
"1340px"
>
<div
class=
"detail_content apaas_scroll"
slot=
"content"
v-html=
"detail
C
ontent"
v-html=
"detail
.c
ontent"
></div>
</apass-dialog>
...
...
@@ -139,6 +139,7 @@
</template>
<
script
>
import
helper
from
"
@/services/helper.js
"
;
import
apassList
from
"
@/components/apass-list
"
;
import
apassDialog
from
"
@/components/apass-dialog
"
;
import
showMoreFilter
from
"
@/components/show-more-filter
"
;
...
...
@@ -152,28 +153,34 @@ export default {
data
()
{
return
{
paddingLeft
:
25
,
listTotal
:
5
0
,
listTotal
:
0
,
listHeader
:
[
{
label
:
"
文档名称
"
,
prop
:
"
nam
e
"
,
prop
:
"
titl
e
"
,
type
:
"
button
"
,
callback
:
this
.
viewItem
,
width
:
320
,
},
{
label
:
"
文档类型
"
,
prop
:
"
type
"
,
prop
:
"
style
"
,
getText
:
(
item
)
=>
{
let
type
=
this
.
types
[
item
.
style
]
||
null
;
return
(
type
&&
type
.
label
)
||
""
;
},
align
:
"
center
"
,
},
{
label
:
"
操作人
"
,
prop
:
"
person
"
,
prop
:
"
created_by
"
,
align
:
"
center
"
,
},
{
label
:
"
最后更新时间
"
,
prop
:
"
update_time
"
,
prop
:
"
updated
"
,
getText
:
({
updated
})
=>
this
.
getTimeText
(
updated
||
""
),
align
:
"
center
"
,
},
{
...
...
@@ -194,73 +201,90 @@ export default {
],
},
],
listData
:
[
listData
:
[],
topFilter
:
{
name
:
""
,
type
:
""
,
time
:
""
,
},
types
:
[
{
id
:
"
1000001
"
,
type
:
"
平台简介
"
,
name
:
"
BD-aPaaS平台(V3.0)平台简介
"
,
person
:
"
江阳
"
,
update_time
:
"
2016-09-21 08:50:08
"
,
label
:
"
平台简介
"
,
value
:
0
,
// "introductory",
},
{
id
:
"
1000002
"
,
type
:
"
使用须知
"
,
name
:
"
BD-aPaaS平台(V3.0)使用须知
"
,
person
:
"
江阳
"
,
update_time
:
"
2016-09-21 08:50:08
"
,
label
:
"
使用须知
"
,
value
:
1
,
// "notice",
},
{
id
:
"
1000003
"
,
type
:
"
术语说明
"
,
name
:
"
BD-aPaaS平台(V3.0)相关术语说明
"
,
person
:
"
江阳
"
,
update_time
:
"
2016-09-21 08:50:08
"
,
label
:
"
术语说明
"
,
value
:
2
,
// "trem",
},
],
topFilter
:
{
name
:
""
,
type
:
""
,
time
:
""
,
{
label
:
"
标准规范
"
,
value
:
3
,
// "standard",
},
{
label
:
"
操作指南
"
,
value
:
4
,
// "guide",
},
{
label
:
"
接口文档
"
,
value
:
5
,
// "api",
},
{
label
:
"
常见问题
"
,
value
:
6
,
// "questions",
},
types
:
[
{
label
:
"
平台简介
"
,
value
:
"
introductory
"
},
{
label
:
"
使用须知
"
,
value
:
"
notice
"
},
{
label
:
"
术语说明
"
,
value
:
"
trem
"
},
{
label
:
"
标准规范
"
,
value
:
"
standard
"
},
{
label
:
"
操作指南
"
,
value
:
"
guide
"
},
{
label
:
"
接口文档
"
,
value
:
"
api
"
},
{
label
:
"
常见问题
"
,
value
:
"
questions
"
},
],
addForm
:
{
region
:
""
,
nam
e
:
""
,
style
:
""
,
titl
e
:
""
,
},
addFormRules
:
{
region
:
[
style
:
[
{
required
:
true
,
message
:
"
请选择文档类型
"
,
trigger
:
"
change
"
},
],
nam
e
:
[
titl
e
:
[
{
required
:
true
,
message
:
"
请输入文档名称
"
,
trigger
:
"
blur
"
},
{
max
:
20
,
message
:
"
长度应小于20个字符
"
,
trigger
:
"
change
"
},
],
},
detail
Content
:
""
,
detail
:
""
,
deleteDialogInfo
:
{
msg
:
""
,
submit
:
null
,
},
tempFilter
:
{},
};
},
computed
:
{},
created
()
{},
methods
:
{
init
(
filter
)
{
let
fullFilter
=
{
...
filter
,
...
this
.
topFilter
,
};
this
.
tempFilter
=
filter
;
console
.
log
(
fullFilter
);
this
.
$http
.
get
(
"
/apaas/support/document/list
"
,
{
params
:
{
style
:
fullFilter
.
type
,
start
:
fullFilter
.
time
&&
fullFilter
.
time
[
0
],
end
:
fullFilter
.
time
&&
fullFilter
.
time
[
1
],
limit
:
fullFilter
.
size
,
page
:
fullFilter
.
page
,
},
})
.
then
(({
data
})
=>
{
if
(
data
.
success
===
1
)
{
this
.
listTotal
=
data
.
total
;
this
.
listData
=
data
.
data
||
[];
}
});
},
getTimeText
(
time
)
{
return
helper
.
dateStringTransform
(
time
);
},
topFilterAction
()
{
this
.
refreshPage
();
...
...
@@ -277,25 +301,51 @@ export default {
this
.
$refs
.
list
.
resetCurrentPage
();
},
viewItem
(
item
)
{
this
.
detailContent
=
`
<h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1><img src="http://pic1.win4000.com/tj/2020-10-19/5f8d3a49abc54.jpg" style="font-size: 14px; max-width: 100%;"></h1><h1><a href="https://www.baidu.com" target="_blank" style="font-size: 14px;">链接</a></h1><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能</p><h1></h1>
`
;
this
.
$http
.
get
(
"
/apaas/support/document/get
"
,
{
params
:
{
id
:
item
.
id
,
},
})
.
then
(({
data
})
=>
{
if
(
data
.
success
===
1
)
{
this
.
detail
=
data
.
data
;
}
});
this
.
$refs
.
detailDialog
.
show
();
},
editItem
(
item
)
{
this
.
$router
.
push
(
`/technical_support/doc_manage/edit/
${
item
.
id
}
`
);
},
deleteItem
(
item
)
{
this
.
deleteDialogInfo
.
msg
=
"
是否删除该条文档?
"
;
this
.
deleteDialogInfo
.
msg
=
`是否删除《
${
item
.
title
}
》?`
;
this
.
deleteDialogInfo
.
submit
=
()
=>
{
console
.
log
(
`delete
${
item
.
name
}
`
);
this
.
$http
.
delete
(
"
/apaas/support/document/delete
"
,
{
params
:
{
id
:
item
.
id
,
},
})
.
then
(({
data
})
=>
{
if
(
data
.
success
===
1
)
{
this
.
$message
.
success
(
"
删除成功
"
);
this
.
init
(
this
.
tempFilter
);
}
else
{
this
.
$message
.
error
(
"
删除失败
"
);
}
})
.
catch
((
error
)
=>
{
console
.
log
(
error
);
this
.
$message
.
error
(
"
删除失败
"
);
});
};
this
.
$refs
.
deleteDialog
.
show
();
},
addNew
()
{
this
.
addForm
=
{
region
:
"
introductory
"
,
nam
e
:
""
,
style
:
0
,
titl
e
:
""
,
};
this
.
$refs
.
addDialog
.
show
();
},
...
...
@@ -305,8 +355,37 @@ export default {
AddSubmitAction
()
{
this
.
$refs
.
addForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
"
AddSubmitAction
"
);
this
.
$refs
.
addDialog
.
hide
();
this
.
$http
.
get
(
"
/apaas/support/document/checkTitle
"
,
{
params
:
this
.
addForm
,
})
.
then
(({
data
})
=>
{
if
(
data
.
success
===
1
)
{
this
.
$http
.
post
(
"
/apaas/support/document/create
"
,
{
...
this
.
addForm
,
content
:
""
,
})
.
then
(({
data
})
=>
{
if
(
data
.
success
===
1
)
{
this
.
$message
.
success
(
"
新增成功
"
);
this
.
editItem
(
data
.
data
);
}
else
{
this
.
$message
.
error
(
data
.
errMsg
||
"
新增失败
"
);
}
})
.
catch
((
error
)
=>
{
console
.
log
(
error
);
this
.
$message
.
error
(
"
新增失败
"
);
});
}
else
{
this
.
$message
.
error
(
"
验证失败
"
);
}
})
.
catch
((
error
)
=>
{
console
.
log
(
error
);
this
.
$message
.
error
(
"
验证失败
"
);
});
}
else
{
return
false
;
}
...
...
@@ -337,8 +416,9 @@ export default {
background-position
:
left
center
;
}
.detail_content
{
max-
height
:
650px
;
height
:
650px
;
overflow
:
auto
;
text-align
:
left
;
}
</
style
>
...
...
src/pages/technical-support/doc/detail.vue
View file @
c9846c22
...
...
@@ -17,8 +17,8 @@
<div
class=
"main_container"
>
<div
class=
"part doc_part"
>
<h3
class=
"part_title"
>
<span>
平台简介
</span>
<span>
更新时间:
2020-10-20 19:00:00
</span>
<span>
{{
title
||
typeText
}}
</span>
<span>
更新时间:
{{
update_time
}}
</span>
</h3>
<div
class=
"part_content doc_content apaas_scroll"
...
...
@@ -49,9 +49,13 @@
</
template
>
<
script
>
import
helper
from
"
@/services/helper.js
"
;
export
default
{
data
()
{
return
{
title
:
""
,
update_time
:
""
,
content
:
""
,
navTree
:
[],
curNav
:
""
,
...
...
@@ -74,18 +78,8 @@ export default {
return
types
[
this
.
type
];
},
typeUrl
()
{
let
types
=
{
introductory
:
"
xxx
"
,
notice
:
"
xxx
"
,
trem
:
"
xxx
"
,
standard
:
"
xxx
"
,
guide
:
"
xxx
"
,
api
:
"
xxx
"
,
questions
:
"
xxx
"
,
};
return
types
[
this
.
type
];
docId
()
{
return
this
.
$route
.
params
.
id
;
},
},
created
()
{
...
...
@@ -94,9 +88,10 @@ export default {
methods
:
{
getContent
()
{
let
successCallback
=
(
content
)
=>
{
let
titles
=
content
.
match
(
let
titles
=
content
.
match
(
/<h1
(([\s\S])
*
?)
<
\/
h1>|<h2
(([\s\S])
*
?)
<
\/
h2>|<h3
(([\s\S])
*
?)
<
\/
h3>/g
)
;
)
||
[]
;
let
time
=
new
Date
().
getTime
();
let
pre_h1_index
=
0
;
let
pre_h2_index
=
0
;
...
...
@@ -145,10 +140,25 @@ export default {
this
.
curNav
=
(
newTitles
[
0
]
&&
newTitles
[
0
].
id
)
||
""
;
};
let
richTextContent
=
`
<h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1><img src="http://pic1.win4000.com/tj/2020-10-19/5f8d3a49abc54.jpg" style="font-size: 14px; max-width: 100%;"></h1><h1><a href="https://www.baidu.com" target="_blank" style="font-size: 14px;">链接</a></h1><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h1>产品简介</h1><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h2>产品简介</h2><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能力</p><p><br></p><h3>产品简介</h3><p>BD-aPaaS平台(V3.0)基于BD-aPaaS平台(V2.0)进行整体架构调整的升级研发。BD-aPaaS平台(V3.0)定位于PaaS层,偏重于支撑和管理SaaS层的应用和系统,是基于微服务架构、云网全面互联的大数据服务支撑平台,集城市信息资源规划、建设、治理、管理、融合、共享、分析、服务为一体,能够释放政府和行业沉淀在业务系统中的能</p><h1></h1>
`
;
successCallback
(
richTextContent
);
this
.
$http
.
get
(
"
/apaas/support/document/get
"
,
{
params
:
{
id
:
this
.
docId
,
},
})
.
then
(({
data
})
=>
{
if
(
data
.
success
===
1
)
{
this
.
title
=
data
.
data
.
title
;
this
.
update_time
=
this
.
getTimeText
(
data
.
data
.
updated
);
if
(
data
.
data
.
content
)
{
successCallback
(
data
.
data
.
content
);
}
}
});
},
getTimeText
(
time
)
{
return
helper
.
dateStringTransform
(
time
);
},
clickNav
(
item
)
{
let
target
=
document
.
querySelector
(
`#
${
item
.
id
}
`
);
...
...
src/pages/technical-support/doc/index.vue
View file @
c9846c22
...
...
@@ -5,10 +5,10 @@
imgSrc=
"tool_ic_kaifawendang"
:nav-list=
"navList"
:title-path=
"navList[0] && navList[0].path"
style=
"width: 2
0
0px;"
style=
"width: 2
5
0px;"
></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
(
"
您尚未创建任何文档
"
);
}
});
}
});
},
...
...
src/pages/user/questions-answers/community.vue
View file @
c9846c22
<
template
>
<div
class=
"community"
>
<el-breadcrumb
separator=
"/"
class=
"bread_crumb1 bread_left"
>
<el-breadcrumb-item
:to=
"
{ path: '/user' }">
{{
$t
(
"
lang.personal_center
"
)
}}
</el-breadcrumb-item>
<el-breadcrumb-item>
{{
$t
(
"
lang.my_questions_and_answers
"
)
}}
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ path: '/user' }">
{{
$t
(
"
lang.personal_center
"
)
}}
</el-breadcrumb-item>
<el-breadcrumb-item>
{{
$t
(
"
lang.my_questions_and_answers
"
)
}}
</el-breadcrumb-item>
</el-breadcrumb>
<div
class=
"from_content1 form_input_block"
>
<inline-form
...
...
@@ -42,6 +42,29 @@
@
current-change=
"handleCurrentChange"
></list-pagination>
</div>
<el-dialog
title=
"提示"
:visible.sync=
"diaDel"
width=
"440px"
:modal-append-to-body=
"false"
>
<div
class=
"dia_reason"
>
<el-form
ref=
"form1"
:model=
"reason_form"
:rules=
"reason_rules"
>
<el-form-item
class=
"dia_item"
>
<p>
删除理由:
</p>
<el-input
type=
"textarea"
v-model=
"reason_form.reason"
placeholder=
"请输入至少五个字符,至多20字符"
></el-input>
</el-form-item>
</el-form>
</div>
<div
class=
"dia_btn_footer"
>
<el-button
class=
"previous"
@
click=
"cancelDiaDel"
>
取消
</el-button>
<el-button
class=
"registe"
@
click=
"submitDel"
>
确定
</el-button>
</div>
</el-dialog>
</div>
</
template
>
...
...
@@ -51,6 +74,7 @@ import tableBtn from "@/components/new-com/tableBtn";
import
apassTable
from
"
@/components/new-com/apassTable
"
;
import
ListPagination
from
"
@/components/comments-pagination
"
;
import
apassDialog
from
"
@/components/apass-dialog
"
;
import
helper
from
"
@/services/helper.js
"
;
export
default
{
components
:
{
inlineForm
,
...
...
@@ -61,22 +85,10 @@ export default {
},
data
()
{
return
{
search_text
:
""
,
tableData
:
[
{
user_id
:
"
100021李想李想李想李想李想李想李想李想李想李想
"
,
user_name
:
"
李想李想李想李想李想李想李想李想李想李想
"
,
user_type
:
1
,
oid
:
"
f49afc8a-e4a5-4f70-8192-bbe2bb36945f
"
,
org_name
:
"
山西省应急管理厅-应急物资处
"
,
gender
:
2
,
shared_state
:
2
,
state
:
2
,
operate_user_name
:
""
,
operate_time
:
"
2020-08-27 14:46:40
"
,
sort
:
1
,
},
],
search_ask
:
""
,
search_user
:
""
,
search_date
:
[],
tableData
:
[],
table_header
:
[],
total_list
:
0
,
currentPage
:
1
,
...
...
@@ -86,19 +98,19 @@ export default {
label
:
"
问题搜索
"
,
type
:
"
input
"
,
placeholder
:
"
请输入问题标题或内容关键词
"
,
key
:
"
name
"
,
key
:
"
ask
"
,
},
{
label
:
"
发布人搜索
"
,
type
:
"
input
"
,
placeholder
:
"
请输入发布人名称
"
,
key
:
"
name
"
,
key
:
"
user
"
,
},
{
label
:
"
发布时间
"
,
type
:
"
daterange
"
,
placeholder
:
"
请选择
"
,
key
:
"
nam
e
"
,
key
:
"
dat
e
"
,
},
],
btn_data
:
[
...
...
@@ -112,25 +124,40 @@ export default {
num
:
0
,
selected_date
:
[],
role_type
:
""
,
now_state
:
""
,
diaDel
:
false
,
reason_form
:
{
reason
:
""
,
},
reason_rules
:
{
reason
:
[
{
required
:
true
,
max
:
20
,
min
:
5
,
message
:
"
请填写活动形式
"
,
trigger
:
"
blur
"
,
},
],
},
};
},
watch
:
{
$route
(
to
,
from
)
{
this
.
changeState
(
to
.
path
)
;
},
this
.
now_state
=
to
.
path
;
this
.
changeState
(
this
.
now_state
);
},
created
()
{
this
.
getlist
();
},
created
()
{},
methods
:
{
getRouter
()
{
let
this_route
=
this
.
$route
.
path
;
this
.
changeState
(
this_route
);
this
.
now_state
=
this_route
;
this
.
changeState
(
this
.
now_state
);
},
edit_data
(
val
)
{},
deleteData
()
{
if
(
this
.
selected_date
.
length
)
{
this
.
$refs
.
deletelog
.
show
()
;
this
.
diaDel
=
true
;
}
else
{
this
.
$message
.
error
(
"
请先选择要删除的数据
"
);
}
...
...
@@ -139,25 +166,25 @@ export default {
console
.
log
(
val
);
this
.
currentlimit
=
val
;
this
.
currentPage
=
1
;
this
.
getlist
(
);
this
.
changeState
(
this
.
now_state
);
},
handleCurrentChange
(
val
)
{
console
.
log
(
val
);
this
.
currentPage
=
val
;
this
.
getlist
(
);
this
.
changeState
(
this
.
now_state
);
},
//获取列表数据
getlist
()
{},
get_search_list
(
val
)
{
console
.
log
(
val
);
if
(
val
)
{
this
.
search_text
=
val
.
name
;
this
.
role_type
=
val
.
type
;
this
.
search_ask
=
val
.
ask
;
this
.
search_user
=
val
.
user
;
this
.
search_date
=
val
.
date
;
}
else
{
this
.
search_text
=
""
;
this
.
search_ask
=
""
;
this
.
search_user
=
""
;
this
.
search_date
=
[];
}
this
.
currentPage
=
1
;
this
.
getlist
(
);
this
.
changeState
(
this
.
now_state
);
},
clean
()
{
this
.
$refs
.
outtreetable
.
cleanSel
();
...
...
@@ -166,47 +193,147 @@ export default {
this
.
num
=
select
.
length
;
this
.
selected_date
=
select
;
},
cancelDiaDel
()
{
this
.
diaDel
=
false
;
},
submitDel
()
{
this
.
$refs
.
form1
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
diaDel
=
false
;
if
(
this
.
now_state
==
"
/qa/questions
"
)
{
this
.
delQ
();
}
else
if
(
this
.
now_state
==
"
/qa/answers
"
)
{
this
.
delA
();
}
}
else
{
}
});
},
del_q
(
val
)
{
this
.
selected_date
=
[{
id
:
val
.
id
}];
this
.
diaDel
=
true
;
},
del_a
(
val
)
{
this
.
selected_date
=
[{
id
:
val
.
id
}];
this
.
diaDel
=
true
;
},
getQList
()
{
let
query
=
{
search
:
this
.
search_ask
,
style
:
3
,
create_user
:
this
.
search_user
,
start
:
this
.
search_date
.
length
!=
0
?
this
.
search_date
[
0
]
:
""
,
end
:
this
.
search_date
.
length
!=
0
?
this
.
search_date
[
1
]
:
""
,
limit
:
this
.
currentlimit
,
page
:
this
.
currentPage
,
order
:
"
created
"
,
};
this
.
$api
.
user
.
getQuestionList
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
tableData
=
response
.
data
.
data
;
this
.
total_list
=
response
.
data
.
total
;
}
});
},
getAList
()
{
let
query
=
{
search
:
this
.
search_ask
,
style
:
3
,
create_user
:
this
.
search_user
,
start
:
this
.
search_date
.
length
!=
0
?
this
.
search_date
[
0
]
:
""
,
end
:
this
.
search_date
.
length
!=
0
?
this
.
search_date
[
1
]
:
""
,
limit
:
this
.
currentlimit
,
page
:
this
.
currentPage
,
};
this
.
$api
.
user
.
getAnswerList
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
tableData
=
response
.
data
.
data
;
this
.
total_list
=
response
.
data
.
total
;
}
});
},
delQ
()
{
let
query
=
{
items
:
[],
};
this
.
selected_date
.
forEach
((
item
)
=>
{
query
.
items
.
push
({
id
:
item
.
id
,
reason
:
this
.
reason_form
.
reason
});
});
this
.
$api
.
user
.
delQuestions
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
$message
({
message
:
"
删除成功
"
,
type
:
"
success
"
,
});
}
});
},
delA
()
{
let
query
=
{
items
:
[],
};
this
.
selected_date
.
forEach
((
item
)
=>
{
query
.
items
.
push
({
id
:
item
.
id
,
reason
:
this
.
reason_form
.
reason
});
});
this
.
$api
.
user
.
delAnswers
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
$message
({
message
:
"
删除成功
"
,
type
:
"
success
"
,
});
}
});
},
changeState
(
val
)
{
if
(
val
==
"
/user/questions
"
)
{
this
.
table_header
=
[];
if
(
val
==
"
/qa/questions
"
)
{
this
.
form_data
[
1
].
label
=
"
发布人搜索
"
;
this
.
form_data
[
2
].
label
=
"
发布时间
"
;
this
.
table_header
=
[
{
prop
:
"
user_id
"
,
prop
:
"
title
"
,
label
:
"
问题标题
"
,
align
:
"
left
"
,
type
:
"
html
"
,
getHtml
:
(
str
)
=>
{
return
`<span style="color:#0f2683;font-weight:bold;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
user_id
}
">
${
str
.
user_id
}
</span>`
;
return
`<span style="color:#0f2683;font-weight:bold;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
title
}
">
${
str
.
title
}
</span>`
;
},
},
{
prop
:
"
user_id
"
,
prop
:
"
content
"
,
label
:
"
问题内容
"
,
align
:
"
left
"
,
type
:
"
html
"
,
getHtml
:
(
str
)
=>
{
return
`<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
user_id
}
">
${
str
.
user_id
}
</span>`
;
return
`<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
content
.
replace
(
/<
[^
<>
]
+>/g
,
""
)}
">
${
str
.
content
.
replace
(
/<
[^
<>
]
+>/g
,
""
)}
</span>`
;
},
},
{
prop
:
"
operate_time
"
,
prop
:
"
answer_num
"
,
label
:
"
回复数
"
,
align
:
"
center
"
,
},
{
prop
:
"
operate_time
"
,
prop
:
"
view
"
,
label
:
"
浏览数
"
,
align
:
"
center
"
,
},
{
prop
:
"
operate_ti
me
"
,
prop
:
"
user_na
me
"
,
label
:
"
发布人
"
,
align
:
"
center
"
,
},
{
prop
:
"
operate_time
"
,
prop
:
"
created
"
,
label
:
"
发布时间
"
,
align
:
"
center
"
,
width
:
200
,
type
:
"
html
"
,
getHtml
:
(
str
)
=>
{
return
`<span>
${
helper
.
dateStringTransform
(
str
.
created
)}
</span>`
;
},
},
{
label
:
"
操作
"
,
...
...
@@ -215,61 +342,70 @@ export default {
align
:
"
center
"
,
actionList
:
[
{
label
:
"
修改
"
,
callback
:
this
.
edit_data
,
label
:
"
删除
"
,
callback
:
this
.
del_q
,
},
],
},
];
}
else
{
this
.
getQList
();
}
else
if
(
val
==
"
/qa/answers
"
)
{
this
.
form_data
[
1
].
label
=
"
回复人搜索
"
;
this
.
form_data
[
2
].
label
=
"
回复时间
"
;
this
.
table_header
=
[
{
prop
:
"
user_id
"
,
prop
:
"
content
"
,
label
:
"
回答内容
"
,
align
:
"
left
"
,
type
:
"
html
"
,
getHtml
:
(
str
)
=>
{
return
`<span style="color:#0f2683;font-weight:bold;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
user_id
}
">
${
str
.
user_id
}
</span>`
;
return
`<span style="color:#0f2683;font-weight:bold;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
content
}
">
${
str
.
content
}
</span>`
;
},
},
{
prop
:
"
user_id
"
,
prop
:
"
title
"
,
label
:
"
问题标题
"
,
align
:
"
left
"
,
type
:
"
html
"
,
getHtml
:
(
str
)
=>
{
return
`<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
user_id
}
">
${
str
.
user_id
}
</span>`
;
return
`<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
title
}
">
${
str
.
title
}
</span>`
;
},
},
{
prop
:
"
user_id
"
,
prop
:
"
content
"
,
label
:
"
问题内容
"
,
align
:
"
left
"
,
type
:
"
html
"
,
getHtml
:
(
str
)
=>
{
return
`<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
user_id
}
">
${
str
.
user_id
}
</span>`
;
return
`<span style="width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" title="
${
str
.
content
.
replace
(
/<
[^
<>
]
+>/g
,
""
)}
">
${
str
.
content
.
replace
(
/<
[^
<>
]
+>/g
,
""
)}
</span>`
;
},
},
{
prop
:
"
operate_time
"
,
prop
:
"
answer_num
"
,
label
:
"
回复数
"
,
align
:
"
center
"
,
},
{
prop
:
"
operate_time
"
,
prop
:
"
view
"
,
label
:
"
浏览数
"
,
align
:
"
center
"
,
},
{
prop
:
"
operate_ti
me
"
,
prop
:
"
user_na
me
"
,
label
:
"
回复人
"
,
align
:
"
center
"
,
},
{
prop
:
"
operate_time
"
,
prop
:
"
created
"
,
label
:
"
回复时间
"
,
align
:
"
center
"
,
width
:
200
,
type
:
"
html
"
,
getHtml
:
(
str
)
=>
{
return
`<span>
${
helper
.
dateStringTransform
(
str
.
created
)}
</span>`
;
},
},
{
label
:
"
操作
"
,
...
...
@@ -278,12 +414,13 @@ export default {
align
:
"
center
"
,
actionList
:
[
{
label
:
"
修改
"
,
callback
:
this
.
edit_dat
a
,
label
:
"
删除
"
,
callback
:
this
.
del_
a
,
},
],
},
];
this
.
getAList
();
}
},
},
...
...
@@ -301,4 +438,36 @@ export default {
.form_list_block
{
height
:
calc
(
100%
-
180px
);
}
.dia_item
{
width
:
100%
;
margin-bottom
:
12px
;
}
.dia_item
p
{
padding-left
:
15px
;
color
:
#58617a
;
}
.dia_btn_footer
{
display
:
flex
;
justify-content
:
flex-end
;
margin
:
30px
0
0
;
}
.previous
{
width
:
100px
;
background-color
:
#c3caf8
;
color
:
#0f2683
;
}
.registe
{
width
:
100px
;
background-color
:
#0f2683
;
color
:
#f8f9fd
;
}
.dia_reason
{
text-align
:
left
;
}
</
style
>
<
style
>
.dia_reason
.el-textarea__inner
{
border-radius
:
8px
;
background-color
:
#f7f8f9
;
}
</
style
>
src/pages/user/questions-answers/my-qa.vue
View file @
c9846c22
...
...
@@ -11,11 +11,11 @@
<BlockRadius
class=
"info_block user_qa"
>
<div
class=
"left_user"
>
<div
class=
"img_head"
>
<img
src=
"@/assets/imgs/shop_img_banner_test.png
"
/>
<img
:src=
"user_info.picture_path"
class=
"img_head_in
"
/>
</div>
<div
class=
"left_word"
>
<p
class=
"left_name"
>
设计师设计啥都往
</p>
<p
class=
"left_role"
>
普通用户开发者
</p>
<p
class=
"left_name"
>
{{
user_info
.
user_name
}}
</p>
<p
class=
"left_role"
>
{{
user_info
.
role
}}
</p>
</div>
</div>
<div
class=
"right_list"
>
...
...
@@ -24,7 +24,10 @@
<div
class=
"card_word"
>
<p
class=
"card_name"
>
我的提问
</p>
<p>
{{
helper
.
numberFormat
(
870000
)
}}
<span
class=
"card_wan"
>
万
</span>
{{
helper
.
numberFormat
(
user_info
.
question_num
)
}}
<span
v-if=
"user_info.question_num > 10000"
class=
"card_wan"
>
万
</span
>
</p>
</div>
</div>
...
...
@@ -33,7 +36,10 @@
<div
class=
"card_word"
>
<p
class=
"card_name"
>
我的提问
</p>
<p>
{{
helper
.
numberFormat
(
870000
)
}}
<span
class=
"card_wan"
>
万
</span>
{{
helper
.
numberFormat
(
user_info
.
answer_num
)
}}
<span
v-if=
"user_info.answer_num > 10000"
class=
"card_wan"
>
万
</span
>
</p>
</div>
</div>
...
...
@@ -42,7 +48,10 @@
<div
class=
"card_word"
>
<p
class=
"card_name"
>
我的提问
</p>
<p>
{{
helper
.
numberFormat
(
870000
)
}}
<span
class=
"card_wan"
>
万
</span>
{{
helper
.
numberFormat
(
user_info
.
view_num
)
}}
<span
v-if=
"user_info.view_num > 10000"
class=
"card_wan"
>
万
</span
>
</p>
</div>
</div>
...
...
@@ -58,27 +67,34 @@
<div
v-for=
"(item, index) in data_list"
:key=
"index"
class=
"qa_cell"
>
<div
class=
"qa_cell_in"
>
<div
:class=
"activeName == 2 ? 'qa_is_del' : 'qa_init'"
>
<p
v-if=
"activeName == 1"
class=
"cell_answer"
>
为什么感知服务提示我无法注册?
</p>
<p
:class=
"activeName == 0 ? 'cell_title' : 'cell_ans_title'"
>
为什么感知服务提示我无法注册?
</p>
<p
v-if=
"activeName == 1"
class=
"cell_answer"
>
{{
item
.
answer
}}
</p>
<p
:class=
"activeName == 0 ? 'cell_title' : 'cell_ans_title'"
>
{{
item
.
title
}}
</p>
<p
class=
"cell_cont"
>
为什么感知服务提示我无法注册?为什么感知服务提示我无法注册?为什么感知服务提示我无法注册?为什么感知服务提示我无法注册?为什么感知服务提示我无法注册?为什么感知服务提示我无法注册?为什么感知服务提示我无法注册?
{{
item
.
content
.
replace
(
/<
[^
<>
]
+>/g
,
""
)
}}
</p>
<p
v-if=
"activeName == 2"
class=
"cell_other"
>
<span>
删除时间:2020-10-01 18:00:00
</span>
<span>
删除人:管理员
</span>
<span>
删除理由:帖子内容含违规广告信息
</span>
<span
>
删除时间:
{{
helper
.
dateStringTransform
(
item
.
deleted_time
)
}}
</span
>
<span>
删除人:
{{
item
.
delete_user
}}
</span>
<span>
删除理由:
{{
item
.
reason
}}
</span>
</p>
<p
v-else
class=
"cell_other"
>
<span>
2020-10-01 18:00:00
</span>
<span>
评论
12
</span>
<span>
阅读
1,024
</span>
<span>
{{
helper
.
dateStringTransform
(
item
.
created
)
}}
</span>
<span>
评论
{{
item
.
answer_num
}}
</span>
<span>
阅读
{{
item
.
view
}}
</span>
</p>
</div>
<div
class=
"qa_del"
>
<div
v-if=
"activeName == 0 || activeName == 1"
class=
"qa_del"
>
<img
src=
"@/assets/imgs/msg_icon_shanchu.png"
@
click=
"delectItem(i
ndex
)"
@
click=
"delectItem(i
tem
)"
/>
</div>
</div>
...
...
@@ -86,7 +102,7 @@
</div>
<!-- 分页 -->
<section
class=
"com-pagination"
>
<div
class=
"com_page_total"
>
共
3
个条目
</div>
<div
class=
"com_page_total"
>
共
{{
total
}}
个条目
</div>
<div
class=
"com_page_item"
>
<div
class=
"com_page_num"
>
<div>
每页条数:
</div>
...
...
@@ -131,6 +147,18 @@
</div>
</section>
</BlockRadius>
<el-dialog
title=
"确认删除?"
:visible.sync=
"diaDelItem"
:modal-append-to-body=
"false"
width=
"440px"
>
<div
class=
"change_psw"
>
您确认删除?
</div>
<div
class=
"dia_btn_footer"
>
<el-button
class=
"previous"
@
click=
"cancelDel"
>
取消
</el-button>
<el-button
class=
"registe"
@
click=
"submitDel"
>
确认
</el-button>
</div>
</el-dialog>
</div>
</
template
>
...
...
@@ -148,7 +176,7 @@ export default {
rowsPerPage
:
10
,
page
:
1
,
},
total
:
123
,
total
:
0
,
pageOptions
:
[
{
value
:
"
10
"
,
...
...
@@ -163,9 +191,45 @@ export default {
label
:
"
50
"
,
},
],
data_list
:
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
0
],
data_list
:
[
{
id
:
1
,
title
:
"
平台的流程引擎怎么样
"
,
// 标题
content
:
"
我们想用流程引擎,不会用,求大神指点
"
,
// 内容
created_by
:
"
abc
"
,
// 发布人的userid
created
:
"
2020-10-21T14:28:10+08:00
"
,
// 发布时间
updated
:
"
2020-10-21T14:28:10+08:00
"
,
// 更新时间
view
:
0
,
// 浏览量
answer_num
:
2
,
// 回答数,
user_name
:
"
普通neo
"
,
// 发布人
picture_path
:
"
/apaas/static/docs/image/image/blob_18f512d3-ee8f-4112-89a9-b2e7bfdfdec1.blob
"
,
// 头像
},
],
user_info
:
{
user_name
:
""
,
role
:
""
,
question_num
:
0
,
answer_num
:
0
,
view_num
:
0
,
picture_path
:
""
,
},
diaDelItem
:
false
,
delItem
:
{},
}),
watch
:
{},
watch
:
{
activeName
:
{
handler
(
val
)
{
if
(
val
==
"
0
"
)
{
this
.
getQList
();
}
else
if
(
val
==
"
1
"
)
{
this
.
getAList
();
}
else
if
(
val
==
"
2
"
)
{
this
.
getDeleteList
();
}
},
},
},
methods
:
{
clickTab
()
{},
handleSizeChange
(
val
)
{
...
...
@@ -183,17 +247,106 @@ export default {
let
listWidth
=
this
.
$refs
.
commodityCardIn
.
clientWidth
;
let
rowCardNum
=
Math
.
floor
(
listWidth
/
310
);
let
cardArr
=
this
.
$refs
.
commodityCardIn
.
children
;
// console.log(rowCardNum, listWidth / rowCardNum);
for
(
let
i
=
0
;
i
<
cardArr
.
length
;
i
++
)
{
cardArr
[
i
].
style
.
width
=
listWidth
/
rowCardNum
-
1
+
"
px
"
;
}
// console.log(this.$refs.commodityCardIn);
},
delectItem
(
index
)
{
console
.
log
(
index
);
delectItem
(
item
)
{
this
.
delItem
=
item
;
console
.
log
(
this
.
delItem
);
this
.
diaDelItem
=
true
;
},
getUserQA
()
{
this
.
$api
.
user
.
getUserQA
().
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
user_info
=
response
.
data
.
data
;
}
});
},
getQList
()
{
let
query
=
{
search
:
""
,
style
:
2
,
create_user
:
""
,
start
:
""
,
end
:
""
,
limit
:
this
.
pagination
.
rowsPerPage
,
page
:
this
.
pagination
.
page
,
order
:
"
created
"
,
};
this
.
$api
.
user
.
getQuestionList
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
data_list
=
response
.
data
.
data
;
this
.
total
=
response
.
data
.
total
;
}
});
},
getAList
()
{
let
query
=
{
search
:
""
,
style
:
2
,
create_user
:
""
,
start
:
""
,
end
:
""
,
limit
:
this
.
pagination
.
rowsPerPage
,
page
:
this
.
pagination
.
page
,
};
this
.
$api
.
user
.
getAnswerList
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
data_list
=
response
.
data
.
data
;
this
.
total
=
response
.
data
.
total
;
}
});
},
getDeleteList
()
{
this
.
$api
.
user
.
getDeleteList
().
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
data_list
=
response
.
data
.
data
;
this
.
total
=
response
.
data
.
total
;
}
});
},
cancelDel
()
{
this
.
diaDelItem
=
false
;
},
submitDel
()
{
if
(
this
.
activeName
==
0
)
{
this
.
delQ
();
}
else
if
(
this
.
activeName
==
1
)
{
this
.
delA
();
}
},
delQ
()
{
let
query
=
{
items
:
[{
id
:
this
.
delItem
.
id
}],
};
this
.
$api
.
user
.
delQuestions
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
$message
({
message
:
"
删除成功
"
,
type
:
"
success
"
,
});
}
});
},
delA
()
{
let
query
=
{
items
:
[{
id
:
this
.
delItem
.
id
}],
};
this
.
$api
.
user
.
delAnswers
(
query
).
then
((
response
)
=>
{
if
(
response
.
data
.
success
==
1
)
{
this
.
$message
({
message
:
"
删除成功
"
,
type
:
"
success
"
,
});
}
});
},
},
mounted
()
{},
mounted
()
{
this
.
getUserQA
();
// this.getQList();
},
};
</
script
>
...
...
@@ -228,6 +381,10 @@ export default {
overflow
:
hidden
;
border
:
solid
2px
#e3e5ef
;
}
.img_head_in
{
width
:
100%
;
height
:
100%
;
}
.left_word
{
width
:
200px
;
padding-top
:
5px
;
...
...
@@ -461,6 +618,32 @@ export default {
.commodity_card_item_in
{
margin
:
0
auto
;
}
.change_psw
{
text-align
:
left
;
}
.dia_item
{
width
:
100%
;
margin-bottom
:
12px
;
}
.dia_item
p
{
padding-left
:
15px
;
color
:
#242c43
;
}
.dia_btn_footer
{
display
:
flex
;
justify-content
:
flex-end
;
margin
:
20px
0
0
;
}
.previous
{
width
:
100px
;
background-color
:
#c3caf8
;
color
:
#0f2683
;
}
.registe
{
width
:
100px
;
background-color
:
#0f2683
;
color
:
#f8f9fd
;
}
</
style
>
<
style
>
.com_page_control
.el-button
{
...
...
src/pages/user/questions-answers/qa.vue
0 → 100644
View file @
c9846c22
<
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
>
src/request/api/user.js
View file @
c9846c22
...
...
@@ -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
src/router/index.js
View file @
c9846c22
...
...
@@ -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
"
,
...
...
yarn.lock
View file @
c9846c22
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment