Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
A
admin-base
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
new-sing
admin-base
Commits
fd9f2066
Commit
fd9f2066
authored
Sep 27, 2018
by
wangwei
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/development' into development
parents
832ed167
5a8a6516
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
572 additions
and
20 deletions
+572
-20
dialog.vue
src/components/class/dialog.vue
+13
-3
index.vue
src/components/class/index.vue
+1
-0
newDialog.vue
src/components/periods/newDialog.vue
+2
-0
index.vue
src/components/refund/index.vue
+5
-9
autoReplyDialog.vue
src/components/weChat/autoReplyDialog.vue
+1
-1
focusReplyDialog.vue
src/components/weChat/focusReplyDialog.vue
+0
-3
index.vue
src/components/weChat/index.vue
+545
-4
api.js
src/service/api.js
+5
-0
No files found.
src/components/class/dialog.vue
View file @
fd9f2066
...
...
@@ -69,7 +69,16 @@
this
.
exitTeacherList
=
this
.
dialogObj
.
teacherList
.
length
>
0
?
this
.
dialogObj
.
teacherList
:
[];
getTeacherListApi
().
then
(
res
=>
{
if
(
this
.
exitTeacherList
.
length
>
0
)
{
this
.
teacherList
=
this
.
findDifferentArray
(
res
.
list
,
this
.
exitTeacherList
)
this
.
teacherList
=
this
.
findDifferentArray
(
res
.
list
,
this
.
exitTeacherList
);
if
(
this
.
form
.
teacher_id
){
let
_index
=
this
.
teacherList
.
findIndex
((
ts
)
=>
{
return
ts
.
id
==
this
.
form
.
teacher_id
})
if
(
_index
===
-
1
)
{
let
obj
=
res
.
list
.
find
((
item
)
=>
{
return
item
.
id
==
this
.
form
.
teacher_id
})
this
.
teacherList
.
push
(
obj
)
}
}
}
else
{
this
.
teacherList
=
res
.
list
}
...
...
@@ -90,7 +99,6 @@
},
initPage
(){
this
.
periods
=
this
.
dialogObj
.
periods
this
.
getTeacher
();
switch
(
this
.
dialogObj
.
type
)
{
case
0
:
if
(
!
this
.
dialogObj
.
periodsId
){
...
...
@@ -100,13 +108,15 @@
teacher_id
:
''
,
max_join_num
:
''
};
this
.
getTeacher
();
break
;
case
1
:
getClassDetailApi
(
this
.
dialogObj
.
id
).
then
(
res
=>
{
this
.
form
=
{
teacher_id
:
res
.
teacher_id
,
teacher_id
:
parseInt
(
res
.
teacher_id
)
,
max_join_num
:
res
.
max_join_num
};
this
.
getTeacher
();
})
}
},
...
...
src/components/class/index.vue
View file @
fd9f2066
...
...
@@ -259,6 +259,7 @@
});
},
onAdd
(){
console
.
log
(
'onAdd'
,
this
.
periods
)
this
.
dialogObj
=
{
show
:
true
,
title
:
'添加班级'
,
...
...
src/components/periods/newDialog.vue
View file @
fd9f2066
...
...
@@ -254,6 +254,8 @@
}
},
onOptionChange
(
id
){
console
.
log
(
'onOptionChange'
,
id
)
this
.
form
.
goods_id
=
id
;
let
index
=
this
.
goodList
.
findIndex
((
val
)
=>
{
return
val
.
id
=
id
});
if
(
index
>-
1
){
this
.
getLessonDetail
(
this
.
goodList
[
index
].
course_id
);
...
...
src/components/refund/index.vue
View file @
fd9f2066
...
...
@@ -22,14 +22,14 @@
<el-table
:data=
"list"
style=
"width: 100%"
>
<el-table-column
prop=
"out_trade_no"
label=
"订单号"
>
</el-table-column>
<el-table-column
prop=
"refund_no"
label=
"退款编号"
>
</el-table-column>
<el-table-column
prop=
"out_trade_no"
label=
"订单号"
>
</el-table-column>
<el-table-column
label=
"用户信息"
min-width=
"140"
...
...
@@ -56,11 +56,7 @@
</el-table-column>
<el-table-column
prop=
"desc"
label=
"退款原因"
>
</el-table-column>
<el-table-column
prop=
"callback"
label=
"微信回调"
>
label=
"备注"
>
</el-table-column>
<el-table-column
label=
"退款状态"
>
...
...
src/components/weChat/autoReplyDialog.vue
View file @
fd9f2066
...
...
@@ -546,7 +546,7 @@
let
json
=
{
type
:
type
,
page
:
this
.
nowPage
,
limit
:
t
ype
===
'news'
?
2
:
t
his
.
limit
limit
:
this
.
limit
};
this
.
loading
=
true
;
this
.
showMedia
=
true
;
...
...
src/components/weChat/focusReplyDialog.vue
View file @
fd9f2066
...
...
@@ -230,9 +230,6 @@
<div
class=
"tool_bar"
>
<el-button
@
click=
"close"
>
取 消
</el-button>
<el-button
class=
"weui-desktop-btn weui-desktop-btn_primary"
@
click=
"save"
>
保存
</el-button>
<!--<div class="weui-desktop-popover__wrp">-->
<!--<span class="weui-desktop-popover__target"><button class="weui-desktop-btn weui-desktop-btn_default">删除回复</button></span>-->
<!--</div>-->
</div>
</div>
</div>
...
...
src/components/weChat/index.vue
View file @
fd9f2066
...
...
@@ -112,14 +112,16 @@
<div
class=
"frm_controls frm_vertical_pt"
>
<
template
v-if=
"selectedChildIndex === -1"
>
<el-radio-group
v-model=
"buttonList[selectedIndex].type"
@
change=
"onTypeChange"
>
<el-radio
label=
"
click
"
>
发送消息
</el-radio>
<el-radio
label=
"
media_id
"
>
发送消息
</el-radio>
<el-radio
label=
"view"
>
跳转网页
</el-radio>
<el-radio
label=
"click"
>
关键字
</el-radio>
</el-radio-group>
</
template
>
<
template
v-else
>
<el-radio-group
v-model=
"buttonList[selectedIndex].sub_button[selectedChildIndex].type"
@
change=
"onTypeChange"
>
<el-radio
label=
"
click
"
>
发送消息
</el-radio>
<el-radio
label=
"
media_id
"
>
发送消息
</el-radio>
<el-radio
label=
"view"
>
跳转网页
</el-radio>
<el-radio
label=
"click"
>
关键字
</el-radio>
</el-radio-group>
</
template
>
</div>
...
...
@@ -137,6 +139,128 @@
</div>
</div>
</div>
<div
v-else-if=
"buttonList[selectedIndex].type === 'media_id'"
style=
"display: block;"
>
<div
class=
"inner"
v-loading=
"loading"
>
<ul
class=
"weui-desktop-msg-sender__tabs"
>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_appmsg"
:class=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.type === 'news' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSendMsg('news')"
>
图文
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_text"
:class=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.type === 'text' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSendMsg('text')"
>
文字
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_img"
:class=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.type === 'image' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSendMsg('image')"
>
图片
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_audio"
:class=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.type === 'voice' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSendMsg('voice')"
>
语音
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_video"
:class=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.type === 'video' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSendMsg('video')"
>
视频
</li>
</ul>
<div
class=
"inner-bottom"
>
<div
class=
"img-action"
v-if=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.type === 'image'"
>
<template
v-if=
"selectedIndex > -1 && buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.url"
>
<img
style=
"max-width: 30%"
:src=
"buttonList[selectedIndex].media_info.url"
/>
<i
class=
"el-icon-delete"
@
click=
"deleteMedia()"
style=
"display: inline-block"
></i>
</
template
>
<div
class=
"display-b"
v-else
>
<div
class=
"img-create-access"
v-if=
"!showMedia"
>
<a
href=
"javascript:;"
class=
"img-create-access__link"
@
click=
"getMediaList('image')"
>
从素材库中选择
</a>
</div>
</div>
<div
v-if=
"showMedia && mediaList.length > 0"
>
<el-table
:data=
"mediaList"
@
row-click=
"onChooseMedia"
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"名称"
>
</el-table-column>
<el-table-column
prop=
"media_id"
label=
"mediaId"
>
</el-table-column>
<el-table-column
label=
"URL"
>
<
template
slot-scope=
"scope"
>
<a
:href=
"scope.row.url"
target=
"_blank"
>
<img
style=
"width: 60px;"
:src=
"scope.row.url"
/>
</a>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"img-action"
v-if=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.type === 'news'"
>
<
template
v-if=
"buttonList[selectedIndex].media_info && buttonList[selectedIndex].media_info.news_item"
>
<div
class=
"news-media"
>
<div
v-for=
"(child, childIndex) in buttonList[selectedIndex].media_info.news_item"
style=
"position: relative"
>
<div
v-if=
"buttonList[selectedIndex].media_info.news_item.length === 1"
class=
"single-cover"
>
<div
class=
"title"
>
{{
child
.
title
}}
</div>
<img
:src=
"child.thumb_url"
style=
"width: 100%;margin-top: 20px;"
/>
<div
class=
"digest"
>
{{
child
.
digest
}}
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
<div
v-else-if=
"buttonList[selectedIndex].media_info.news_item.length > 1"
class=
"clear-both bottomCover"
style=
"position: relative"
>
<div
v-if=
"childIndex === 0"
class=
"muti-cover"
>
<img
style=
"width: 100%;margin-top: 20px;"
:src=
"child.thumb_url"
/>
<div
class=
"bottom-title"
>
{{
child
.
title
}}
</div>
</div>
<div
class=
"next-cover clear-both"
v-else
>
<span
class=
"next-title"
>
{{
child
.
title
}}
</span>
<img
class=
"next-img"
:src=
"child.thumb_url"
/>
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
</div>
</div>
</
template
>
<div
class=
"display-b"
>
<div
class=
"img-create-access"
v-if=
"!showMedia"
>
<a
href=
"javascript:;"
class=
"img-create-access__link"
@
click=
"getMediaList('news')"
>
从素材库中选择
</a>
</div>
</div>
<div
v-if=
"showMedia && mediaList.length > 0"
>
<el-table
:data=
"mediaList"
@
row-click=
"onChooseMedia"
style=
"width: 100%"
>
<el-table-column
prop=
"media_id"
label=
"mediaId"
>
</el-table-column>
<el-table-column
label=
"图文"
className=
"news-media"
>
<
template
slot-scope=
"scope"
>
<div
v-for=
"(child, childIndex) in scope.row.content.news_item"
style=
"position: relative"
>
<div
v-if=
"scope.row.content.news_item.length === 1"
class=
"single-cover"
>
<div
class=
"title"
>
{{
child
.
title
}}
</div>
<img
:src=
"child.thumb_url"
style=
"width: 100%;margin-top: 20px;"
/>
<div
class=
"digest"
>
{{
child
.
digest
}}
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
<div
v-else-if=
"scope.row.content.news_item.length > 1"
class=
"clear-both bottomCover"
style=
"position: relative"
>
<div
v-if=
"childIndex === 0"
class=
"muti-cover"
>
<img
style=
"width: 100%;margin-top: 20px;"
:src=
"child.thumb_url"
/>
<div
class=
"bottom-title"
>
{{
child
.
title
}}
</div>
</div>
<div
class=
"next-cover clear-both"
v-else
>
<span
class=
"next-title"
>
{{
child
.
title
}}
</span>
<img
class=
"next-img"
:src=
"child.thumb_url"
/>
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
</div>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<page
:total=
"total"
v-model=
"nowPage"
:limit=
"limit"
@
pageChange=
"onPageChange"
v-if=
"showMedia && mediaList.length > 0"
/>
</div>
</div>
</div>
<div
v-else
class=
"menu_content url jsMain"
style=
"display: block;"
>
<p
class=
"menu_content_tips tips_global"
>
click
</p>
<div
class=
"frm_control_group"
>
...
...
@@ -161,6 +285,128 @@
</div>
</div>
</div>
<div
v-else-if=
"buttonList[selectedIndex].sub_button[selectedChildIndex].type === 'media_id'"
style=
"display: block;"
>
<div
class=
"inner"
v-loading=
"loading"
>
<ul
class=
"weui-desktop-msg-sender__tabs"
>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_appmsg"
:class=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.type === 'news' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSubSendMsg('news')"
>
图文
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_text"
:class=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.type === 'text' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSubSendMsg('text')"
>
文字
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_img"
:class=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.type === 'image' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSubSendMsg('image')"
>
图片
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_audio"
:class=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.type === 'voice' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSubSendMsg('voice')"
>
语音
</li>
<li
class=
"weui-desktop-msg-sender__tab weui-desktop-msg-sender__tab_video"
:class=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.type === 'video' ? 'weui-desktop-msg-sender__tab_selected' : ''"
@
click=
"onClickSubSendMsg('video')"
>
视频
</li>
</ul>
<div
class=
"inner-bottom"
>
<div
class=
"img-action"
v-if=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.type === 'image'"
>
<template
v-if=
"selectedIndex && selectedChildIndex > -1 && buttonList[selectedIndex].sub_button[selectedChildIndex] && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.url"
>
<img
style=
"max-width: 30%"
:src=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.url"
v-if=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.url"
/>
<i
class=
"el-icon-delete"
@
click=
"deleteSubMedia()"
style=
"display: inline-block"
></i>
</
template
>
<div
class=
"display-b"
v-else
>
<div
class=
"img-create-access"
v-if=
"!showMedia"
>
<a
href=
"javascript:;"
class=
"img-create-access__link"
@
click=
"getMediaList('image')"
>
从素材库中选择
</a>
</div>
</div>
<div
v-if=
"showMedia && mediaList.length > 0"
>
<el-table
:data=
"mediaList"
@
row-click=
"onChooseSubMedia"
style=
"width: 100%"
>
<el-table-column
prop=
"name"
label=
"名称"
>
</el-table-column>
<el-table-column
prop=
"media_id"
label=
"mediaId"
>
</el-table-column>
<el-table-column
label=
"URL"
>
<
template
slot-scope=
"scope"
>
<a
:href=
"scope.row.url"
target=
"_blank"
>
<img
style=
"width: 60px;"
:src=
"scope.row.url"
/>
</a>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"img-action"
v-if=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.type === 'news'"
>
<
template
v-if=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info && buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.news_item"
>
<div
class=
"news-media"
>
<div
v-for=
"(child, childIndex) in buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.news_item"
style=
"position: relative"
>
<div
v-if=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.news_item.length === 1"
class=
"single-cover"
>
<div
class=
"title"
>
{{
child
.
title
}}
</div>
<img
:src=
"child.thumb_url"
style=
"width: 100%;margin-top: 20px;"
/>
<div
class=
"digest"
>
{{
child
.
digest
}}
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
<div
v-else-if=
"buttonList[selectedIndex].sub_button[selectedChildIndex].media_info.news_item.length > 1"
class=
"clear-both bottomCover"
style=
"position: relative"
>
<div
v-if=
"childIndex === 0"
class=
"muti-cover"
>
<img
style=
"width: 100%;margin-top: 20px;"
:src=
"child.thumb_url"
/>
<div
class=
"bottom-title"
>
{{
child
.
title
}}
</div>
</div>
<div
class=
"next-cover clear-both"
v-else
>
<span
class=
"next-title"
>
{{
child
.
title
}}
</span>
<img
class=
"next-img"
:src=
"child.thumb_url"
/>
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
</div>
</div>
</
template
>
<div
class=
"display-b"
>
<div
class=
"img-create-access"
v-if=
"!showMedia"
>
<a
href=
"javascript:;"
class=
"img-create-access__link"
@
click=
"getMediaList('news')"
>
从素材库中选择
</a>
</div>
</div>
<div
v-if=
"showMedia && mediaList.length > 0"
>
<el-table
:data=
"mediaList"
@
row-click=
"onChooseSubMedia"
style=
"width: 100%"
>
<el-table-column
prop=
"media_id"
label=
"mediaId"
>
</el-table-column>
<el-table-column
label=
"图文"
className=
"news-media"
>
<
template
slot-scope=
"scope"
>
<div
v-for=
"(child, childIndex) in scope.row.content.news_item"
style=
"position: relative"
>
<div
v-if=
"scope.row.content.news_item.length === 1"
class=
"single-cover"
>
<div
class=
"title"
>
{{
child
.
title
}}
</div>
<img
:src=
"child.thumb_url"
style=
"width: 100%;margin-top: 20px;"
/>
<div
class=
"digest"
>
{{
child
.
digest
}}
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
<div
v-else-if=
"scope.row.content.news_item.length > 1"
class=
"clear-both bottomCover"
style=
"position: relative"
>
<div
v-if=
"childIndex === 0"
class=
"muti-cover"
>
<img
style=
"width: 100%;margin-top: 20px;"
:src=
"child.thumb_url"
/>
<div
class=
"bottom-title"
>
{{
child
.
title
}}
</div>
</div>
<div
class=
"next-cover clear-both"
v-else
>
<span
class=
"next-title"
>
{{
child
.
title
}}
</span>
<img
class=
"next-img"
:src=
"child.thumb_url"
/>
</div>
<a
class=
"preview"
:href=
"child.url"
target=
"_blank"
>
预览文章
</a>
</div>
</div>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<page2
:total=
"total"
v-model=
"nowPage"
:limit=
"limit"
@
pageChange=
"onSubPageChange"
v-if=
"showMedia && mediaList.length > 0"
/>
</div>
</div>
</div>
<div
v-else
class=
"menu_content url jsMain"
style=
"display: block;"
>
<p
class=
"menu_content_tips tips_global"
>
click
</p>
<div
class=
"frm_control_group"
>
...
...
@@ -199,13 +445,17 @@
</template>
<
script
>
import
{
getPublicMenuApi
,
savePublicMenuApi
}
from
"../../service/api"
;
import
{
getPublicMenuApi
,
savePublicMenuApi
,
getMediaListApi
,
getMediaApi
}
from
"../../service/api"
;
import
draggable
from
'vuedraggable'
import
{
MessageBox
}
from
'element-ui'
;
import
page
from
'../framework/page'
import
page2
from
'../framework/page'
export
default
{
name
:
"index"
,
components
:
{
draggable
,
page
,
page2
},
data
(){
return
{
...
...
@@ -218,7 +468,13 @@
selectedIndex
:
0
,
selectedChildIndex
:
-
1
,
showErrorTips
:
false
,
showOrder
:
false
showOrder
:
false
,
loading
:
false
,
total
:
0
,
nowPage
:
1
,
limit
:
3
,
showMedia
:
false
,
mediaList
:
[]
}
},
mounted
(){
...
...
@@ -239,9 +495,44 @@
this
.
selectedIndex
=
0
this
.
selectedChildIndex
=
-
1
this
.
showOrder
=
false
;
this
.
searchMenu
();
}
})
},
searchMenu
(){
let
list
=
this
.
buttonList
;
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
list
[
i
].
media_id
){
this
.
getMediaApi
(
i
,
-
1
,
list
[
i
].
media_id
);
}
else
if
(
list
[
i
].
sub_button
&&
list
[
i
].
sub_button
.
length
>
0
){
this
.
searchSubMenu
(
i
);
}
}
},
searchSubMenu
(
i
){
let
list
=
this
.
buttonList
[
i
].
sub_button
;
for
(
let
j
=
0
;
j
<
list
.
length
;
j
++
)
{
if
(
list
[
j
].
media_id
){
this
.
getMediaApi
(
i
,
j
,
list
[
j
].
media_id
);
}
}
},
getMediaApi
(
index1
,
index2
,
id
){
getMediaApi
(
id
).
then
((
res
)
=>
{
if
(
res
&&
res
.
news_item
&&
res
.
news_item
.
length
>
0
)
{
let
media_info
=
{};
media_info
.
news_item
=
res
.
news_item
media_info
.
type
=
'news'
if
(
index2
>
-
1
)
{
this
.
buttonList
[
index1
].
sub_button
[
index2
].
media_info
=
media_info
}
else
{
this
.
buttonList
[
index1
].
media_info
=
media_info
}
}
})
},
clickMenu
(
index
,
item
){
this
.
selectedIndex
=
index
this
.
selectedChildIndex
=
-
1
...
...
@@ -332,6 +623,93 @@
})
}
})
},
onPageChange
(
val
){
this
.
nowPage
=
val
this
.
getMediaList
(
this
.
buttonList
[
this
.
selectedIndex
].
media_info
.
type
)
},
onSubPageChange
(
val
){
this
.
nowPage
=
val
this
.
getMediaList
(
this
.
buttonList
[
this
.
selectedIndex
].
sub_button
[
this
.
selectedChildIndex
].
media_info
.
type
)
},
getMediaList
(
type
){
let
json
=
{
type
:
type
,
page
:
this
.
nowPage
,
limit
:
this
.
limit
};
this
.
loading
=
true
;
getMediaListApi
(
json
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
total
=
res
.
total_count
;
if
(
res
.
item
.
length
===
0
)
{
this
.
$message
({
showClose
:
true
,
message
:
'暂无数据'
});
this
.
showMedia
=
false
;
}
else
{
this
.
showMedia
=
true
;
this
.
mediaList
=
res
.
item
;
}
}).
catch
(()
=>
{
this
.
loading
=
false
;
this
.
showMedia
=
false
;
})
},
onChooseMedia
(
val
){
let
selectedIndex
=
this
.
selectedIndex
;
if
(
this
.
buttonList
[
selectedIndex
].
media_info
.
type
===
'image'
)
{
this
.
buttonList
[
selectedIndex
].
media_id
=
val
.
media_id
;
this
.
buttonList
[
selectedIndex
].
media_info
.
url
=
val
.
url
;
this
.
buttonList
[
selectedIndex
].
key
=
'image'
}
else
if
(
this
.
buttonList
[
selectedIndex
].
media_info
.
type
===
'news'
){
this
.
buttonList
[
selectedIndex
].
media_id
=
val
.
media_id
;
this
.
buttonList
[
selectedIndex
].
media_info
=
val
.
content
;
this
.
buttonList
[
selectedIndex
].
media_info
.
type
=
'news'
;
}
this
.
showMedia
=
false
;
this
.
$forceUpdate
();
},
onChooseSubMedia
(
val
){
let
selectedIndex
=
this
.
selectedIndex
;
let
selectedChildIndex
=
this
.
selectedChildIndex
;
if
(
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_info
.
type
===
'image'
)
{
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_id
=
val
.
media_id
;
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_info
.
url
=
val
.
url
;
}
else
if
(
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_info
.
type
===
'news'
){
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_id
=
val
.
media_id
;
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_info
=
val
.
content
;
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_info
.
type
=
'news'
;
}
this
.
showMedia
=
false
;
this
.
$forceUpdate
();
},
onClickSendMsg
(
type
){
this
.
buttonList
[
this
.
selectedIndex
].
media_info
=
{
type
:
type
}
this
.
$forceUpdate
();
},
onClickSubSendMsg
(
type
){
let
selectedIndex
=
this
.
selectedIndex
;
let
selectedChildIndex
=
this
.
selectedChildIndex
;
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_info
=
{
type
:
type
}
this
.
$forceUpdate
();
},
deleteMedia
(){
this
.
buttonList
[
this
.
selectedIndex
].
media_id
=
''
;
this
.
buttonList
[
this
.
selectedIndex
].
media_info
.
url
=
''
;
this
.
$forceUpdate
();
},
deleteSubMedia
(){
let
selectedIndex
=
this
.
selectedIndex
;
let
selectedChildIndex
=
this
.
selectedChildIndex
;
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_id
=
''
;
this
.
buttonList
[
selectedIndex
].
sub_button
[
selectedChildIndex
].
media_info
.
url
=
''
;
this
.
$forceUpdate
();
}
}
...
...
@@ -2478,5 +2856,168 @@
width
:
100%
;
color
:
#8d8d8d
}
.weui-desktop-msg-sender__tabs
{
line-height
:
38px
;
background-color
:
#FFFFFF
;
}
.sender__tab_selected
{
color
:
#44B549
;
}
.weui-desktop-msg-sender__tab
:hover
,
.weui-desktop-msg-sender__tab_selected
{
color
:
#44B549
;
}
.weui-desktop-msg-sender__tab
{
display
:
inline-block
;
padding
:
0
20px
;
cursor
:
pointer
;
}
.weui-desktop-msg-sender__tab
:hover
.weui-desktop-msg-sender__tab_text
:before
,
.weui-desktop-msg-sender__tab_selected.weui-desktop-msg-sender__tab_text
:before
{
background-image
:
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/svg/default/sender_text_current.svg)
;
}
.weui-desktop-msg-sender__tab_img
:before
{
background
:
transparent
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/svg/default/sender_img.svg)
no-repeat
0
0
;
}
.weui-desktop-msg-sender__tab
:hover
.weui-desktop-msg-sender__tab_img
:before
,
.weui-desktop-msg-sender__tab_selected.weui-desktop-msg-sender__tab_img
:before
{
background-image
:
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/svg/default/sender_img_current.svg)
;
}
.weui-desktop-msg-sender__tab_video
:before
{
background
:
transparent
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/svg/default/sender_video.svg)
no-repeat
0
0
;
}
.weui-desktop-msg-sender__tab
:hover
.weui-desktop-msg-sender__tab_video
:before
,
.weui-desktop-msg-sender__tab_selected.weui-desktop-msg-sender__tab_video
:before
{
background-image
:
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/svg/default/sender_video_current.svg)
;
}
.weui-desktop-msg-sender__tab_audio
:before
{
background
:
transparent
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/svg/default/sender_audio.svg)
no-repeat
0
0
;
}
.weui-desktop-msg-sender__tab
:hover
.weui-desktop-msg-sender__tab_audio
:before
,
.weui-desktop-msg-sender__tab_selected.weui-desktop-msg-sender__tab_audio
:before
{
background-image
:
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/svg/default/sender_audio_current.svg)
;
}
.weui-desktop-msg-sender__tab_appmsg
:before
{
background
:
transparent
url(https://res.wx.qq.com/mpres/zh_CN/htmledition/pages/modules/msg_sender/svg/default/sender_appmsg3c96b5.svg)
no-repeat
0
0
;
}
.weui-desktop-msg-sender__tab
:hover
.weui-desktop-msg-sender__tab_appmsg
:before
,
.weui-desktop-msg-sender__tab_selected.weui-desktop-msg-sender__tab_appmsg
:before
{
background-image
:
url(https://res.wx.qq.com/mpres/zh_CN/htmledition/pages/modules/msg_sender/svg/default/sender_appmsg_current3c96b5.svg)
;
}
.weui-desktop-msg-sender__tab
:before
{
content
:
" "
;
display
:
inline-block
;
width
:
22px
;
height
:
20px
;
vertical-align
:
middle
;
margin
:
-0.2em
5px
0
0
;
}
.inner
{
position
:
relative
;
border
:
1px
solid
#E4E8EB
;
background-color
:
#FFFFFF
;
}
.inner-bottom
{
border-top
:
1px
solid
#E4E8EB
;
}
.img-action
{
padding
:
17px
20px
;
min-height
:
215px
;
text-align
:
center
;
}
.img-create-access
{
position
:
relative
;
border
:
2px
dotted
#E4E8EB
;
width
:
48.6%
;
height
:
211px
;
text-align
:
center
;
}
/*.img-create-access:first-child {*/
/*float: left;*/
/*}*/
.img-create-access__link
{
display
:
inline-block
;
vertical-align
:
middle
;
color
:
#9A9A9A
;
margin
:
0
10px
;
margin-top
:
68px
;
text-decoration
:
none
;
}
.img-create-access__link
:before
{
content
:
" "
;
display
:
block
;
width
:
36px
;
height
:
36px
;
margin
:
0
auto
5px
;
background
:
transparent
url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/msg_sender/images/icon36_add_gray.png)
no-repeat
0
0
;
}
.news-media
{
padding
:
10px
;
width
:
300px
;
}
.news-media
img
{
width
:
100%
;
}
.s-news
img
{
width
:
50px
;
float
:
right
;
}
.title
{
font-size
:
16px
;
font-weight
:
400
;
display
:
block
;
line-height
:
1.2
;
color
:
#353535
;
}
.digest
{
padding-top
:
12px
;
color
:
#9A9A9A
;
font-size
:
14px
;
}
.single-cover
{
/*padding: 20px 15px 15px;*/
}
.muti-cover
{
position
:
relative
;
padding
:
20px
15px
0
15px
;
}
.bottom-title
{
color
:
#FFFFFF
;
background-color
:
rgba
(
0
,
0
,
0
,
0.55
);
position
:
absolute
;
left
:
15px
;
right
:
15px
;
bottom
:
0
;
padding
:
8px
12px
;
}
.next-cover
{
padding
:
12px
15px
;
position
:
relative
;
}
.next-img
{
float
:
right
;
margin-left
:
12px
;
width
:
60px
!important
;
height
:
60px
!important
;
}
.next-title
{
overflow
:
hidden
;
font-weight
:
400
;
word-wrap
:
break-word
;
-webkit-hyphens
:
auto
;
-ms-hyphens
:
auto
;
hyphens
:
auto
;
color
:
#353535
;
}
.single-cover
:hover
.preview
,
.bottomCover
:hover
.preview
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
color
:
#fff
;
}
.preview
{
display
:
none
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
background-color
:
rgba
(
0
,
0
,
0
,
0.5
);
text-decoration
:
none
;
}
</
style
>
src/service/api.js
View file @
fd9f2066
...
...
@@ -509,3 +509,8 @@ const copyShopUrl = `/api/admin/goods/copy/`;
export
const
copyShopApi
=
function
(
id
)
{
return
Vue
.
prototype
.
$post
(
`
${
copyShopUrl
}${
id
}
`
)
}
// 获取media详情
const
getMediaUrl
=
`/api/admin/open/media/info`
export
const
getMediaApi
=
function
(
id
)
{
return
Vue
.
prototype
.
$fetch
(
`
${
getMediaUrl
}
?media_id=
${
id
}
`
)
}
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