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
d0645b51
Commit
d0645b51
authored
Nov 09, 2018
by
王
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
build
parent
d7ada2b2
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
49 additions
and
22 deletions
+49
-22
index.html
dev/index.html
+1
-1
21.05e960a30aac03b220f2.js
dev/static/js/21.05e960a30aac03b220f2.js
+1
-0
21.7c00e98a9a45d7b03edd.js
dev/static/js/21.7c00e98a9a45d7b03edd.js
+1
-0
manifest.1e5eebd977045aa87650.js
dev/static/js/manifest.1e5eebd977045aa87650.js
+1
-0
manifest.8250535f87d2174fa673.js
dev/static/js/manifest.8250535f87d2174fa673.js
+1
-0
index.html
dist/index.html
+1
-1
app.b2b0930ad73c5fcf33a671cf4c9d3fbb.css
dist/static/css/app.b2b0930ad73c5fcf33a671cf4c9d3fbb.css
+1
-0
24.a83a8f6a9f7f9494892e.js
dist/static/js/24.a83a8f6a9f7f9494892e.js
+1
-0
27.0604347da5fa48468ecf.js
dist/static/js/27.0604347da5fa48468ecf.js
+1
-0
app.1d2c6e5fe654e640c6d7.js
dist/static/js/app.1d2c6e5fe654e640c6d7.js
+1
-0
manifest.c62c1a9f20bba85cac28.js
dist/static/js/manifest.c62c1a9f20bba85cac28.js
+1
-0
index.vue
src/components/groupSend/index.vue
+38
-20
No files found.
dev/index.html
View file @
d0645b51
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css
><title>
唱唱启蒙-后台
</title><link
href=
/static/css/app.810fed2a7b556d12a24f62f90d505607.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.
f85d3e0ee184e875e2f8
.js
></script><script
type=
text/javascript
src=
/static/js/vendor.06a2975fa866e2142778.js
></script><script
type=
text/javascript
src=
/static/js/app.fd6bfb179cac3740056d.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css
><title>
唱唱启蒙-后台
</title><link
href=
/static/css/app.810fed2a7b556d12a24f62f90d505607.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.
8250535f87d2174fa673
.js
></script><script
type=
text/javascript
src=
/static/js/vendor.06a2975fa866e2142778.js
></script><script
type=
text/javascript
src=
/static/js/app.fd6bfb179cac3740056d.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
el
.
onerror
=
function
(
a
,
b
,
c
){
el
.
onerror
=
function
(
a
,
b
,
c
){
console
.
log
(
'error:'
,
a
,
b
,
c
);
console
.
log
(
'error:'
,
a
,
b
,
c
);
};
};
...
...
dev/static/js/21.05e960a30aac03b220f2.js
0 → 100644
View file @
d0645b51
webpackJsonp
([
21
],{
"0B04"
:
function
(
e
,
t
,
n
){
var
i
=
n
(
"Zkp1"
);
"string"
==
typeof
i
&&
(
i
=
[[
e
.
i
,
i
,
""
]]),
i
.
locals
&&
(
e
.
exports
=
i
.
locals
);
n
(
"rjj0"
)(
"a4557dec"
,
i
,
!
1
,{})},
DeFF
:
function
(
e
,
t
,
n
){
var
i
=
n
(
"EA/M"
);
"string"
==
typeof
i
&&
(
i
=
[[
e
.
i
,
i
,
""
]]),
i
.
locals
&&
(
e
.
exports
=
i
.
locals
);
n
(
"rjj0"
)(
"24c16c68"
,
i
,
!
1
,{})},
"EA/M"
:
function
(
e
,
t
,
n
){(
e
.
exports
=
n
(
"FZ+f"
)(
!
0
)).
push
([
e
.
i
,
"
\n
.index[data-v-690a96ec] {
\n
padding: 20px 0;
\n
}
\n
.top[data-v-690a96ec] {
\n
margin-bottom: 30px;
\n
margin-left: 20px;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.inner-edit_area[data-v-690a96ec] {
\n
width: 96%;
\n
margin: 0 auto;
\n
}
\n
.upload-video[data-v-690a96ec] {
\n
width: 50%;
\n
margin-left:2%;
\n
}
\n
.b-title[data-v-690a96ec] {
\n
padding: 20px;
\n
color: #666;
\n
}
\n
.emotion_switch[data-v-690a96ec] {
\n
float: left;
\n
height: 28px;
\n
line-height: 999em;
\n
overflow: hidden;
\n
background: transparent url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/reply/images/icon_emotion_switch.png) no-repeat 0 0;
\n
width: 20px;
\n
height: 20px;
\n
vertical-align: middle;
\n
display: inline-block;
\n
}
\n
.img[data-v-690a96ec] {
\n
position: relative;
\n
width: 25%;
\n
img {
\n
width: 100%;
\n
}
\n
.el-icon-delete {
\n
position: absolute;
\n
top: 50%;
\n
left: 50%;
\n
display: none;
\n
}
\n
}
\n
.img:hover img[data-v-690a96ec]{
\n
opacity: 0.3;
\n
}
\n
.img:hover .el-icon-delete[data-v-690a96ec]{
\n
display: block;
\n
}
\n
.tool_bar[data-v-690a96ec] {
\n
float: right;
\n
margin-top: 20px;
\n
}
\n
.choose_item[data-v-690a96ec] {
\n
margin-bottom: 25px;
\n
color: rgb(136, 136, 136);
\n
height: 80px;
\n
line-height: 80px;
\n
width: 45%;
\n
border: 1px dashed;
\n
text-align: center;
\n
}
\n
.display-b[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: horizontal;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: row nowrap;
\n
flex-flow: row nowrap;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
}
\n
.my-teacher[data-v-690a96ec] {
\n
width: 25%;
\n
height: 80px;
\n
background-color: #eee;
\n
line-height: 80px;
\n
text-align: center;
\n
margin-bottom: 10px;
\n
}
\n
.news-media[data-v-690a96ec] {
\n
padding: 10px;
\n
width: 25%;
\n
}
\n
.news-media img[data-v-690a96ec]{
\n
width: 100%;
\n
}
\n
.s-news img[data-v-690a96ec] {
\n
width: 50px;
\n
float: right;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.digest[data-v-690a96ec] {
\n
padding-top: 12px;
\n
color: #9A9A9A;
\n
font-size: 14px;
\n
}
\n
.single-cover[data-v-690a96ec] {
\n
/*padding: 20px 15px 15px;*/
\n
}
\n
.muti-cover[data-v-690a96ec] {
\n
position: relative;
\n
padding: 20px 15px 0 15px;
\n
}
\n
.bottom-title[data-v-690a96ec] {
\n
color: #FFFFFF;
\n
background-color: rgba(0, 0, 0, 0.55);
\n
position: absolute;
\n
left: 15px;
\n
right: 15px;
\n
bottom: 0;
\n
padding: 8px 12px;
\n
}
\n
.next-cover[data-v-690a96ec] {
\n
padding: 12px 15px;
\n
position: relative;
\n
}
\n
.next-img[data-v-690a96ec] {
\n
float: right;
\n
margin-left: 12px;
\n
width: 60px !important;
\n
height: 60px !important;
\n
}
\n
.next-title[data-v-690a96ec] {
\n
overflow: hidden;
\n
font-weight: 400;
\n
word-wrap: break-word;
\n
-webkit-hyphens: auto;
\n
-ms-hyphens: auto;
\n
hyphens: auto;
\n
color: #353535;
\n
}
\n
.single-cover:hover .preview[data-v-690a96ec],.bottomCover:hover .preview[data-v-690a96ec]{
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-pack: center;
\n
-ms-flex-pack: center;
\n
justify-content: center;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
color: #fff;
\n
}
\n
.preview[data-v-690a96ec] {
\n
display: none;
\n
position: absolute;
\n
top: 0;
\n
left: 0;
\n
width: 100%;
\n
height: 100%;
\n
background-color: rgba(0,0,0,0.5);
\n
text-decoration: none;
\n
}
\n
.f-bt[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
position: relative;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.ellip[data-v-690a96ec] {
\n
overflow: hidden;
\n
text-overflow: ellipsis;
\n
white-space: nowrap;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"/Users/wang/Documents/changchang/projects/admin/src/components/groupSend/index.vue"
],
names
:[],
mappings
:
";AACA;EACE,gBAAgB;CACjB;AACD;EACE,oBAAoB;EACpB,kBAAkB;CACnB;AACD;EACE,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,iBAAiB;EACjB,eAAe;CAChB;AACD;EACE,WAAW;EACX,eAAe;CAChB;AACD;EACE,WAAW;EACX,eAAe;CAChB;AACD;EACE,cAAc;EACd,YAAY;CACb;AACD;EACE,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,4IAA4I;EAC5I,YAAY;EACZ,aAAa;EACb,uBAAuB;EACvB,sBAAsB;CACvB;AACD;EACE,mBAAmB;EACnB,WAAW;AACb;EACE,YAAY;CACb;AACD;EACE,mBAAmB;EACnB,SAAS;EACT,UAAU;EACV,cAAc;CACf;CACA;AACD;EACE,aAAa;CACd;AACD;EACE,eAAe;CAChB;AACD;EACE,aAAa;EACb,iBAAiB;CAClB;AACD;EACE,oBAAoB;EACpB,0BAA0B;EAC1B,aAAa;EACb,kBAAkB;EAClB,WAAW;EACX,mBAAmB;EACnB,mBAAmB;CACpB;AACD;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,+BAA+B;EAC/B,8BAA8B;MAC1B,0BAA0B;UACtB,sBAAsB;EAC9B,0BAA0B;MACtB,uBAAuB;UACnB,+BAA+B;EACvC,0BAA0B;MACtB,uBAAuB;UACnB,oBAAoB;CAC7B;AACD;EACE,WAAW;EACX,aAAa;EACb,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;CACrB;AACD;EACE,cAAc;EACd,WAAW;CACZ;AACD;EACE,YAAY;CACb;AACD;EACE,YAAY;EACZ,aAAa;CACd;AACD;EACE,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,iBAAiB;EACjB,eAAe;CAChB;AACD;EACE,kBAAkB;EAClB,eAAe;EACf,gBAAgB;CACjB;AACD;EACE,4BAA4B;CAC7B;AACD;EACE,mBAAmB;EACnB,0BAA0B;CAC3B;AACD;EACE,eAAe;EACf,sCAAsC;EACtC,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,UAAU;EACV,kBAAkB;CACnB;AACD;EACE,mBAAmB;EACnB,mBAAmB;CACpB;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,uBAAuB;EACvB,wBAAwB;CACzB;AACD;EACE,iBAAiB;EACjB,iBAAiB;EACjB,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;EACd,eAAe;CAChB;AACD;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,yBAAyB;MACrB,sBAAsB;UAClB,wBAAwB;EAChC,0BAA0B;MACtB,uBAAuB;UACnB,oBAAoB;EAC5B,YAAY;CACb;AACD;EACE,cAAc;EACd,mBAAmB;EACnB,OAAO;EACP,QAAQ;EACR,YAAY;EACZ,aAAa;EACb,kCAAkC;EAClC,sBAAsB;CACvB;AACD;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,mBAAmB;EACnB,0BAA0B;MACtB,uBAAuB;UACnB,+BAA+B;EACvC,yBAAyB;MACrB,sBAAsB;UAClB,wBAAwB;CACjC;AACD;EACE,iBAAiB;EACjB,wBAAwB;EACxB,oBAAoB;CACrB"
,
file
:
"index.vue"
,
sourcesContent
:[
"
\n
.index[data-v-690a96ec] {
\n
padding: 20px 0;
\n
}
\n
.top[data-v-690a96ec] {
\n
margin-bottom: 30px;
\n
margin-left: 20px;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.inner-edit_area[data-v-690a96ec] {
\n
width: 96%;
\n
margin: 0 auto;
\n
}
\n
.upload-video[data-v-690a96ec] {
\n
width: 50%;
\n
margin-left:2%;
\n
}
\n
.b-title[data-v-690a96ec] {
\n
padding: 20px;
\n
color: #666;
\n
}
\n
.emotion_switch[data-v-690a96ec] {
\n
float: left;
\n
height: 28px;
\n
line-height: 999em;
\n
overflow: hidden;
\n
background: transparent url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/reply/images/icon_emotion_switch.png) no-repeat 0 0;
\n
width: 20px;
\n
height: 20px;
\n
vertical-align: middle;
\n
display: inline-block;
\n
}
\n
.img[data-v-690a96ec] {
\n
position: relative;
\n
width: 25%;
\n
img {
\n
width: 100%;
\n
}
\n
.el-icon-delete {
\n
position: absolute;
\n
top: 50%;
\n
left: 50%;
\n
display: none;
\n
}
\n
}
\n
.img:hover img[data-v-690a96ec]{
\n
opacity: 0.3;
\n
}
\n
.img:hover .el-icon-delete[data-v-690a96ec]{
\n
display: block;
\n
}
\n
.tool_bar[data-v-690a96ec] {
\n
float: right;
\n
margin-top: 20px;
\n
}
\n
.choose_item[data-v-690a96ec] {
\n
margin-bottom: 25px;
\n
color: rgb(136, 136, 136);
\n
height: 80px;
\n
line-height: 80px;
\n
width: 45%;
\n
border: 1px dashed;
\n
text-align: center;
\n
}
\n
.display-b[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: horizontal;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: row nowrap;
\n
flex-flow: row nowrap;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
}
\n
.my-teacher[data-v-690a96ec] {
\n
width: 25%;
\n
height: 80px;
\n
background-color: #eee;
\n
line-height: 80px;
\n
text-align: center;
\n
margin-bottom: 10px;
\n
}
\n
.news-media[data-v-690a96ec] {
\n
padding: 10px;
\n
width: 25%;
\n
}
\n
.news-media img[data-v-690a96ec]{
\n
width: 100%;
\n
}
\n
.s-news img[data-v-690a96ec] {
\n
width: 50px;
\n
float: right;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.digest[data-v-690a96ec] {
\n
padding-top: 12px;
\n
color: #9A9A9A;
\n
font-size: 14px;
\n
}
\n
.single-cover[data-v-690a96ec] {
\n
/*padding: 20px 15px 15px;*/
\n
}
\n
.muti-cover[data-v-690a96ec] {
\n
position: relative;
\n
padding: 20px 15px 0 15px;
\n
}
\n
.bottom-title[data-v-690a96ec] {
\n
color: #FFFFFF;
\n
background-color: rgba(0, 0, 0, 0.55);
\n
position: absolute;
\n
left: 15px;
\n
right: 15px;
\n
bottom: 0;
\n
padding: 8px 12px;
\n
}
\n
.next-cover[data-v-690a96ec] {
\n
padding: 12px 15px;
\n
position: relative;
\n
}
\n
.next-img[data-v-690a96ec] {
\n
float: right;
\n
margin-left: 12px;
\n
width: 60px !important;
\n
height: 60px !important;
\n
}
\n
.next-title[data-v-690a96ec] {
\n
overflow: hidden;
\n
font-weight: 400;
\n
word-wrap: break-word;
\n
-webkit-hyphens: auto;
\n
-ms-hyphens: auto;
\n
hyphens: auto;
\n
color: #353535;
\n
}
\n
.single-cover:hover .preview[data-v-690a96ec],.bottomCover:hover .preview[data-v-690a96ec]{
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-pack: center;
\n
-ms-flex-pack: center;
\n
justify-content: center;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
color: #fff;
\n
}
\n
.preview[data-v-690a96ec] {
\n
display: none;
\n
position: absolute;
\n
top: 0;
\n
left: 0;
\n
width: 100%;
\n
height: 100%;
\n
background-color: rgba(0,0,0,0.5);
\n
text-decoration: none;
\n
}
\n
.f-bt[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
position: relative;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.ellip[data-v-690a96ec] {
\n
overflow: hidden;
\n
text-overflow: ellipsis;
\n
white-space: nowrap;
\n
}
\n
"
],
sourceRoot
:
""
}])},
Zkp1
:
function
(
e
,
t
,
n
){(
e
.
exports
=
n
(
"FZ+f"
)(
!
0
)).
push
([
e
.
i
,
"
\n
.el-radio-group {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: vertical;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: column;
\n
flex-flow: column;
\n
-webkit-box-pack: start;
\n
-ms-flex-pack: start;
\n
justify-content: flex-start;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.el-radio+.el-radio {
\n
margin-left: 0;
\n
}
\n
.el-radio {
\n
margin-bottom: 6px;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"/Users/wang/Documents/changchang/projects/admin/src/components/groupSend/index.vue"
],
names
:[],
mappings
:
";AACA;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,6BAA6B;EAC7B,8BAA8B;MAC1B,sBAAsB;UAClB,kBAAkB;EAC1B,wBAAwB;MACpB,qBAAqB;UACjB,4BAA4B;EACpC,yBAAyB;MACrB,sBAAsB;UAClB,wBAAwB;CACjC;AACD;GACG,eAAe;CACjB;AACD;EACE,mBAAmB;CACpB"
,
file
:
"index.vue"
,
sourcesContent
:[
"
\n
.el-radio-group {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: vertical;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: column;
\n
flex-flow: column;
\n
-webkit-box-pack: start;
\n
-ms-flex-pack: start;
\n
justify-content: flex-start;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.el-radio+.el-radio {
\n
margin-left: 0;
\n
}
\n
.el-radio {
\n
margin-bottom: 6px;
\n
}
\n
"
],
sourceRoot
:
""
}])},
oerw
:
function
(
e
,
t
,
n
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
i
=
n
(
"CCn6"
),
a
=
n
(
"kmJW"
),
s
=
n
(
"C+jy"
),
o
=
n
(
"sf/l"
);
function
l
(
e
,
t
,
n
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
n
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
n
,
e
}
var
r
=
{
name
:
"index"
,
components
:{
page
:
a
.
a
,
page2
:
a
.
a
,
emotion
:
s
.
a
},
data
:
function
(){
var
e
;
return
l
(
e
=
{
nowPage
:
1
,
total
:
0
,
limit
:
10
,
mediaPage
:{
nowPage
:
1
,
total
:
0
,
limit
:
10
},
show
:
!
1
,
loading
:
!
1
,
activeName
:
"text"
,
list
:[],
content
:
""
,
uploadShow
:
!
0
,
imageList
:[],
fileList
:[],
imageContent
:
""
,
videoContent
:
""
,
searchFrom
:{
type
:
1
,
is_test
:
!
1
},
tableData
:[],
fileUid
:
null
,
userDialog
:{
total
:
0
,
limit
:
10
,
nowPage
:
1
,
show
:
!
1
},
userList
:[],
searchUserFrom
:{},
multipleSelection
:[],
showEmotion
:
!
1
,
showMedia
:
!
1
,
mediaList
:[]},
"imageContent"
,
null
),
l
(
e
,
"videoContent"
,
null
),
l
(
e
,
"newsContent"
,
null
),
e
},
filters
:{
typeFilter
:
function
(
e
){
if
(
e
)
return
"text"
===
e
?
"文本"
:
"image"
===
e
?
"图片"
:
"video"
===
e
?
"视频"
:
"news"
===
e
?
"图文"
:
void
0
},
typeListFilter
:
function
(
e
){
return
e
?
1
===
e
?
"48时内关注但未购课用户"
:
2
===
e
?
"有体验课但没有正式课用户"
:
3
===
e
?
"未试听用户"
:
void
0
:
""
}},
methods
:{
handleClick
:
function
(
e
){
this
.
activeName
=
e
.
name
},
handleRemove
:
function
(){
this
.
uploadShow
=!
0
,
this
.
imageList
=
[],
this
.
imageContent
=
""
},
handleRemoveVideo
:
function
(){
this
.
videoContent
=
""
,
this
.
fileList
=
[]},
beforeAvatarUpload
:
function
(){
this
.
uploadShow
=!
1
},
handleAvatarSuccess
:
function
(
e
){
this
.
imageList
=
[{
name
:
e
.
data
.
url
,
url
:
"http://cdn.singsingenglish.com/"
+
e
.
data
.
url
}]},
uploadFile
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
Object
(
i
.
_63
)({
file
:
e
.
file
,
type
:
"wechat"
}).
then
(
function
(
e
){
t
.
imageContent
=
{
content
:
e
.
media_id
,
url
:
e
.
url
},
t
.
imageList
=
[{
name
:
e
.
media_id
,
url
:
e
.
url
}],
t
.
$message
({
type
:
"success"
,
message
:
"上传成功!"
})}).
catch
(
function
(){
t
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
uploadVideo
:
function
(
e
){
var
t
=
this
;
Object
(
i
.
_63
)({
file
:
e
.
file
,
type
:
"wechat"
}).
then
(
function
(
n
){
t
.
uploadVideoFile
(
e
,
n
)}).
catch
(
function
(){
t
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
uploadVideoFile
:
function
(
e
,
t
){
var
n
=
this
;
this
.
fileUid
=
e
.
file
.
uid
,
this
.
loading
=!
0
,
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
Object
(
i
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
i
){
n
.
videoContent
=
{
content
:
t
.
media_id
,
url
:
"http://cdn.singsingenglish.com/"
+
i
.
url
},
n
.
fileList
=
[{
name
:
i
.
name
,
url
:
"http://cdn.singsingenglish.com/"
+
i
.
url
}],
n
.
loading
=!
1
,
n
.
$message
({
type
:
"success"
,
message
:
"上传成功!"
}),
n
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"delete"
,
id
:
e
.
file
.
uid
}),
n
.
fileUid
=
null
}).
catch
(
function
(){
n
.
loading
=!
1
,
n
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
send
:
function
(){
var
e
=
this
,
t
=
{};
t
.
type
=
this
.
searchFrom
.
type
;
var
n
=
this
.
searchFrom
.
is_test
?
"发送筛选用户,"
:
"不发送筛选用户,"
;
if
(
1
===
this
.
searchFrom
.
type
){
if
(
!
(
this
.
searchFrom
.
time
&&
this
.
searchFrom
.
time
.
length
>
0
))
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请选择时间!"
});
t
.
start_at
=
o
.
a
.
dateFmt
(
this
.
searchFrom
.
time
[
0
],
"yyyy-MM-dd hh:mm:ss"
),
t
.
end_at
=
o
.
a
.
dateFmt
(
this
.
searchFrom
.
time
[
1
],
"yyyy-MM-dd hh:mm:ss"
),
n
+=
"48时内关注但未购课用户("
+
t
.
start_at
+
"~"
+
t
.
end_at
+
","
}
else
2
===
this
.
searchFrom
.
type
?
n
+=
"有体验课但没有正式课用户,"
:
3
===
this
.
searchFrom
.
type
&&
(
n
+=
"未试听用户,"
);
if
(
this
.
searchFrom
.
user_ids
){
t
.
user_ids
=
this
.
searchFrom
.
user_ids
,
n
+=
"用户ID:"
+
t
.
user_ids
;
var
a
=
{};
if
(
a
.
type
=
this
.
activeName
,
"text"
===
this
.
activeName
){
if
(
!
this
.
content
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请输入文本!"
});
a
.
content
=
this
.
content
}
else
if
(
"image"
===
this
.
activeName
){
if
(
!
this
.
imageContent
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请上传图片!"
});
a
.
content
=
this
.
imageContent
.
content
,
a
.
url
=
this
.
imageContent
.
url
}
else
if
(
"video"
===
this
.
activeName
){
if
(
!
this
.
videoContent
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请上传视频!"
});
a
.
content
=
this
.
videoContent
.
content
,
a
.
url
=
this
.
videoContent
.
url
}
else
"news"
===
this
.
activeName
&&
(
this
.
newsContent
&&
this
.
newsContent
.
media_id
?
a
.
content
=
this
.
newsContent
.
media_id
:
this
.
$message
({
type
:
"error"
,
message
:
"请选择图文!"
}));
t
.
content
=
JSON
.
stringify
(
a
),
t
.
is_test
=
this
.
searchFrom
.
is_test
?
2
:
1
,
console
.
log
(
"json"
,
t
),
this
.
$confirm
(
n
,
"提示"
,{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
(){
Object
(
i
.
_54
)(
t
).
then
(
function
(
t
){
e
.
$message
({
message
:
t
,
type
:
"success"
}),
e
.
show
=!
1
,
e
.
clearData
(),
e
.
getMsgList
()})}).
catch
(
function
(){
e
.
$message
({
type
:
"info"
,
message
:
"已取消发送"
})})}
else
this
.
$message
({
type
:
"error"
,
message
:
"请加入内部人员!"
})},
clearData
:
function
(){
this
.
content
=
""
,
this
.
videoContent
=
null
,
this
.
imageContent
=
null
,
this
.
newsContent
=
null
,
this
.
activeName
,
this
.
searchFrom
=
{},
this
.
fileList
=
[],
this
.
imageList
=
[]},
getMsgList
:
function
(){
var
e
=
this
,
t
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
Object
(
i
.
_25
)(
t
).
then
(
function
(
t
){
e
.
tableData
=
t
.
list
,
e
.
total
=
t
.
total
})},
onMediaPageChange
:
function
(
e
){
this
.
mediaPage
.
nowPage
=
e
,
this
.
getMediaList
()},
onMediaSizeChange
:
function
(){
this
.
mediaPage
.
nowPage
=
1
,
this
.
mediaPage
.
limit
=
val
,
this
.
getMediaList
()},
onPageChange
:
function
(
e
){
this
.
nowPage
=
e
,
this
.
getMsgList
()},
onSizeChange
:
function
(
e
){
this
.
nowPage
=
1
,
this
.
limit
=
e
,
this
.
getMsgList
()},
getMsgResult
:
function
(
e
){
var
t
=
this
;
if
(
e
){
var
n
=
{
only_text
:
1
,
send_id
:
e
};
Object
(
i
.
_25
)(
n
).
then
(
function
(
e
){
t
.
$message
({
message
:
e
,
type
:
"success"
}),
t
.
getMsgList
()})}},
getUser
:
function
(){
var
e
=
this
,
t
=
{
page
:
this
.
userDialog
.
nowPage
,
limit
:
this
.
userDialog
.
limit
};
this
.
searchUserFrom
.
userId
&&
(
t
.
user_id
=
this
.
searchUserFrom
.
userId
),
this
.
searchUserFrom
.
nickName
&&
(
t
.
nickname
=
this
.
searchUserFrom
.
nickName
),
this
.
searchUserFrom
.
mobile
&&
(
t
.
mobile
=
this
.
searchUserFrom
.
mobile
),
Object
(
i
.
_41
)(
t
).
then
(
function
(
t
){
e
.
userList
=
t
.
list
,
e
.
userDialog
.
total
=
t
.
total
})},
onUserPageChange
:
function
(
e
){
this
.
userDialog
.
nowPage
=
e
,
this
.
getUser
()},
handleSelectionChange
:
function
(
e
){
this
.
multipleSelection
=
e
},
onSelectUser
:
function
(){
this
.
userDialog
.
show
=!
0
,
this
.
searchFrom
.
user_ids
?
this
.
multipleSelection
=
this
.
searchFrom
.
user_ids
.
split
(
","
):
this
.
multipleSelection
=
[],
this
.
getUser
()},
onConfirm
:
function
(){
var
e
=
this
.
multipleSelection
;
if
(
0
===
e
.
length
)
this
.
$message
({
type
:
"error"
,
message
:
"请选择用户!"
});
else
{
var
t
=
[];
e
.
forEach
(
function
(
e
){
t
.
push
(
e
.
user_id
)});
var
n
=
t
;
this
.
searchFrom
.
user_ids
&&
(
n
=
t
.
concat
(
this
.
stringToInt
(
this
.
searchFrom
.
user_ids
.
split
(
","
))));
var
i
=
this
.
dedupe
(
n
);
this
.
searchFrom
.
user_ids
=
i
.
join
(
","
),
this
.
userDialog
.
show
=!
1
}},
dedupe
:
function
(
e
){
return
Array
.
from
(
new
Set
(
e
))},
stringToInt
:
function
(
e
){
var
t
=
e
||
[];
return
t
=
t
.
map
(
function
(
e
){
return
parseInt
(
e
,
10
)})},
emotion
:
function
(
e
){
var
t
=
e
.
replace
(
/
\/
/gi
,
""
);
return
'<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/'
+
[
"微笑"
,
"撇嘴"
,
"色"
,
"发呆"
,
"得意"
,
"流泪"
,
"害羞"
,
"闭嘴"
,
"睡"
,
"大哭"
,
"尴尬"
,
"发怒"
,
"调皮"
,
"呲牙"
,
"惊讶"
,
"难过"
,
"酷"
,
"冷汗"
,
"抓狂"
,
"吐"
,
"偷笑"
,
"可爱"
,
"白眼"
,
"傲慢"
,
"饥饿"
,
"困"
,
"惊恐"
,
"流汗"
,
"憨笑"
,
"大兵"
,
"奋斗"
,
"咒骂"
,
"疑问"
,
"嘘"
,
"晕"
,
"折磨"
,
"衰"
,
"骷髅"
,
"敲打"
,
"再见"
,
"擦汗"
,
"抠鼻"
,
"鼓掌"
,
"糗大了"
,
"坏笑"
,
"左哼哼"
,
"右哼哼"
,
"哈欠"
,
"鄙视"
,
"委屈"
,
"快哭了"
,
"阴险"
,
"亲亲"
,
"吓"
,
"可怜"
,
"菜刀"
,
"西瓜"
,
"啤酒"
,
"篮球"
,
"乒乓"
,
"咖啡"
,
"饭"
,
"猪头"
,
"玫瑰"
,
"凋谢"
,
"示爱"
,
"爱心"
,
"心碎"
,
"蛋糕"
,
"闪电"
,
"炸弹"
,
"刀"
,
"足球"
,
"瓢虫"
,
"便便"
,
"月亮"
,
"太阳"
,
"礼物"
,
"拥抱"
,
"强"
,
"弱"
,
"握手"
,
"胜利"
,
"抱拳"
,
"勾引"
,
"拳头"
,
"差劲"
,
"爱你"
,
"NO"
,
"OK"
,
"爱情"
,
"飞吻"
,
"跳跳"
,
"发抖"
,
"怄火"
,
"转圈"
,
"磕头"
,
"回头"
,
"跳绳"
,
"挥手"
,
"激动"
,
"街舞"
,
"献吻"
,
"左太极"
,
"右太极"
].
indexOf
(
t
)
+
'.gif" align="middle">'
},
handleEmotion
:
function
(
e
){
this
.
content
+=
e
},
onChooseMedia
:
function
(
e
){
"image"
===
this
.
type
?
this
.
imageContent
=
e
:
"video"
===
this
.
type
?
this
.
videoContent
=
e
:
"news"
===
this
.
type
&&
(
this
.
newsContent
=
e
),
this
.
showMedia
=!
1
},
getMediaList
:
function
(){
var
e
=
this
,
t
=
this
.
activeName
,
n
=
{
type
:
t
,
page
:
this
.
mediaPage
.
nowPage
,
limit
:
this
.
mediaPage
.
limit
};
this
.
loading
=!
0
,
this
.
showMedia
=!
0
,
Object
(
i
.
_23
)(
n
).
then
(
function
(
n
){
e
.
loading
=!
1
,
e
.
type
=
t
,
e
.
mediaList
=
n
.
item
,
e
.
mediaPage
.
total
=
n
.
total_count
,
0
===
e
.
total
&&
e
.
$message
({
showClose
:
!
0
,
message
:
"暂无数据"
})}).
catch
(
function
(){
e
.
loading
=!
1
})}},
mounted
:
function
(){
this
.
getMsgList
()},
computed
:{
progress
:
function
(){
var
e
=
this
;
return
this
.
$store
.
state
.
progressList
.
find
(
function
(
t
){
return
t
.
id
===
e
.
fileUid
}).
num
<
100
?
this
.
$store
.
state
.
progressList
.
find
(
function
(
t
){
return
t
.
id
===
e
.
fileUid
}).
num
:
100
}}},
c
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
n
=
e
.
_self
.
_c
||
t
;
return
n
(
"div"
,{
staticClass
:
"index"
},[
n
(
"div"
,{
staticClass
:
"b-title"
},[
e
.
_v
(
"群发列表 "
),
n
(
"el-button"
,{
staticStyle
:{
float
:
"right"
,
"margin-bottom"
:
"10px"
},
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
function
(
t
){
e
.
show
=!
0
}}},[
e
.
_v
(
"新建群发消息"
)])],
1
),
e
.
_v
(
" "
),
n
(
"el-table"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
e
.
tableData
}},[
n
(
"el-table-column"
,{
attrs
:{
type
:
"expand"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
n
(
"el-table"
,{
attrs
:{
border
:
!
1
,
data
:[
JSON
.
parse
(
t
.
row
.
content
)]}},[
n
(
"el-table-column"
,{
attrs
:{
label
:
"类型"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
e
.
_f
(
"typeFilter"
)(
t
.
row
.
type
))
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
"text"
!==
JSON
.
parse
(
t
.
row
.
content
).
type
?
n
(
"el-table-column"
,{
attrs
:{
prop
:
"media_id"
,
label
:
"media_id"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
content
)
+
"
\n
"
)]}}])}):
e
.
_e
(),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"url"
,
label
:
"内容"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
"text"
===
t
.
row
.
type
?
n
(
"div"
,[
n
(
"span"
,{
domProps
:{
innerHTML
:
e
.
_s
(
t
.
row
.
content
.
replace
(
/
\/[\u
4E00-
\u
9FA5
]{1,3}
/gi
,
e
.
emotion
))}})]):
"image"
===
t
.
row
.
type
?
n
(
"div"
,[
n
(
"img"
,{
staticStyle
:{
width
:
"80px"
},
attrs
:{
src
:
t
.
row
.
url
}})]):
"video"
===
t
.
row
.
type
?
n
(
"div"
,[
n
(
"a"
,{
attrs
:{
href
:
t
.
row
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"点击查看视频"
)])]):
e
.
_e
()]}}])})],
1
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"send_id"
,
label
:
"消息ID"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
label
:
"消息类型"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
e
.
_f
(
"typeListFilter"
)(
t
.
row
.
type
))
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"send_num"
,
label
:
"预计发送"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"arrive_num"
,
label
:
"已发送"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"failed_num"
,
label
:
"发送失败"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"start_at"
,
label
:
"开始时间"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"end_at"
,
label
:
"截止时间"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"created_at"
,
label
:
"发送时间"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
label
:
"操作"
,
"min-width"
:
"100"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
n
(
"el-button"
,{
attrs
:{
type
:
"text"
,
plain
:
""
,
size
:
"mini"
},
on
:{
click
:
function
(
n
){
e
.
getMsgResult
(
t
.
row
.
send_id
)}}},[
e
.
_v
(
"
\n
查询及时结果
\n
"
)])]}}])})],
1
),
e
.
_v
(
" "
),
n
(
"page"
,{
attrs
:{
total
:
e
.
total
,
limit
:
e
.
limit
},
on
:{
pageChange
:
e
.
onPageChange
,
sizeChange
:
e
.
onSizeChange
}}),
e
.
_v
(
" "
),
n
(
"el-dialog"
,{
attrs
:{
title
:
"新建群发消息"
,
visible
:
e
.
show
},
on
:{
"update:visible"
:
function
(
t
){
e
.
show
=
t
}}},[
n
(
"el-form"
,{
ref
:
"searchFrom"
,
attrs
:{
model
:
e
.
searchFrom
,
"label-width"
:
"150px"
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"是否发送筛选用户"
}},[
n
(
"el-switch"
,{
attrs
:{
"active-color"
:
"#13ce66"
,
"inactive-color"
:
"#ff4949"
},
model
:{
value
:
e
.
searchFrom
.
is_test
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"is_test"
,
t
)},
expression
:
"searchFrom.is_test"
}})],
1
),
e
.
_v
(
" "
),
1
===
e
.
searchFrom
.
type
?
n
(
"el-form-item"
,{
attrs
:{
label
:
"时间"
}},[
n
(
"el-date-picker"
,{
attrs
:{
type
:
"datetimerange"
,
"range-separator"
:
"至"
,
"start-placeholder"
:
"开始日期"
,
"end-placeholder"
:
"结束日期"
,
"default-time"
:[
"00:00:00"
,
"23:59:59"
]},
model
:{
value
:
e
.
searchFrom
.
time
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"time"
,
t
)},
expression
:
"searchFrom.time"
}})],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
n
(
"el-form-item"
,{
attrs
:{
label
:
"类型"
}},[
n
(
"el-radio-group"
,{
model
:{
value
:
e
.
searchFrom
.
type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"type"
,
t
)},
expression
:
"searchFrom.type"
}},[
n
(
"el-radio"
,{
attrs
:{
label
:
1
}},[
e
.
_v
(
"48时内关注但未购课用户"
)]),
e
.
_v
(
" "
),
n
(
"el-radio"
,{
attrs
:{
label
:
2
}},[
e
.
_v
(
"有体验课但没有正式课用户"
)]),
e
.
_v
(
" "
),
n
(
"el-radio"
,{
attrs
:{
label
:
3
}},[
e
.
_v
(
"未试听用户"
)])],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-row"
,[
n
(
"el-col"
,{
attrs
:{
span
:
16
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"用户ID"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchFrom
.
user_ids
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"user_ids"
,
t
)},
expression
:
"searchFrom.user_ids"
}})],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
e
.
onSelectUser
}},[
e
.
_v
(
"选择用户"
)])],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-tabs"
,{
attrs
:{
type
:
"card"
},
on
:{
"tab-click"
:
e
.
handleClick
},
model
:{
value
:
e
.
activeName
,
callback
:
function
(
t
){
e
.
activeName
=
t
},
expression
:
"activeName"
}},[
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"文本"
,
name
:
"text"
}},[
n
(
"div"
,{
staticClass
:
"inner-edit_area"
},[
n
(
"el-input"
,{
attrs
:{
type
:
"textarea"
,
autosize
:{
minRows
:
4
,
maxRows
:
8
},
placeholder
:
"请输入内容"
},
model
:{
value
:
e
.
content
,
callback
:
function
(
t
){
e
.
content
=
t
},
expression
:
"content"
}})],
1
),
e
.
_v
(
" "
),
n
(
"div"
,{
staticStyle
:{
float
:
"right"
}},[
n
(
"el-popover"
,{
attrs
:{
placement
:
"bottom-end"
,
width
:
"400"
,
offset
:
10
,
trigger
:
"manual"
},
model
:{
value
:
e
.
showEmotion
,
callback
:
function
(
t
){
e
.
showEmotion
=
t
},
expression
:
"showEmotion"
}},[
n
(
"div"
,[
n
(
"emotion"
,{
attrs
:{
height
:
200
},
on
:{
emotion
:
e
.
handleEmotion
}})],
1
),
e
.
_v
(
" "
),
n
(
"el-button"
,{
attrs
:{
slot
:
"reference"
,
type
:
"text"
},
on
:{
click
:
function
(
t
){
e
.
showEmotion
=!
e
.
showEmotion
}},
slot
:
"reference"
},[
n
(
"span"
,{
staticClass
:
"icon_emotion emotion_switch"
})])],
1
)],
1
)]),
e
.
_v
(
" "
),
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"图片"
,
name
:
"image"
}},[
n
(
"div"
,{
staticClass
:
"inner-edit_area"
},[
n
(
"el-upload"
,{
attrs
:{
action
:
"/api/public/upload/zone"
,
"http-request"
:
e
.
uploadFile
,
"before-upload"
:
e
.
beforeAvatarUpload
,
"list-type"
:
"picture-card"
,
"file-list"
:
e
.
imageList
,
"on-success"
:
e
.
handleAvatarSuccess
,
"on-remove"
:
e
.
handleRemove
,
limit
:
1
}},[
n
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
)]),
e
.
_v
(
" "
),
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"视频"
,
name
:
"video"
}},[
n
(
"el-upload"
,{
staticClass
:
"upload-video"
,
attrs
:{
action
:
"/api/public/upload/zone"
,
"http-request"
:
e
.
uploadVideo
,
"file-list"
:
e
.
fileList
,
"on-remove"
:
e
.
handleRemoveVideo
,
limit
:
1
}},[
n
(
"el-button"
,{
attrs
:{
size
:
"small"
,
type
:
"primary"
,
disabled
:
e
.
fileUid
&&
e
.
progress
<
99
}},[
e
.
_v
(
"点击上传"
)]),
e
.
_v
(
" "
),
n
(
"div"
,{
staticStyle
:{
width
:
"300px"
}},[
e
.
fileUid
?
n
(
"el-progress"
,{
attrs
:{
percentage
:
e
.
progress
}}):
e
.
_e
()],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"图文"
,
name
:
"news"
}},[
e
.
newsContent
&&
e
.
newsContent
.
content
&&
e
.
newsContent
.
content
.
news_item
?
n
(
"div"
,[
n
(
"div"
,{
staticClass
:
"news-media"
,
staticStyle
:{
display
:
"inline-block"
}},[
n
(
"el-card"
,{
attrs
:{
"body-style"
:{
padding
:
"0px"
}}},
e
.
_l
(
e
.
newsContent
.
content
.
news_item
,
function
(
t
,
i
){
return
n
(
"div"
,{
staticStyle
:{
position
:
"relative"
}},[
1
===
e
.
newsContent
.
content
.
news_item
.
length
?
n
(
"div"
,{
staticClass
:
"single-cover"
},[
n
(
"div"
,{
staticClass
:
"title"
},[
e
.
_v
(
e
.
_s
(
t
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
t
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"digest"
},[
e
.
_v
(
e
.
_s
(
t
.
digest
))]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
t
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
e
.
newsContent
.
content
.
news_item
.
length
>
1
?
n
(
"div"
,{
staticClass
:
"clear-both bottomCover"
,
staticStyle
:{
position
:
"relative"
}},[
0
===
i
?
n
(
"div"
,{
staticClass
:
"muti-cover"
},[
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
t
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"bottom-title"
},[
e
.
_v
(
e
.
_s
(
t
.
title
))])]):
n
(
"div"
,{
staticClass
:
"next-cover clear-both"
},[
n
(
"span"
,{
staticClass
:
"next-title"
},[
e
.
_v
(
e
.
_s
(
t
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticClass
:
"next-img"
,
attrs
:{
src
:
t
.
thumb_url
}})]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
t
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
e
.
_e
()])}))],
1
),
e
.
_v
(
" "
),
n
(
"i"
,{
staticClass
:
"el-icon-delete"
,
staticStyle
:{
display
:
"inline-block"
},
on
:{
click
:
function
(
t
){
e
.
newsContent
=
""
}}})]):
e
.
_e
(),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"display-b"
},[
n
(
"div"
,{
staticClass
:
"choose_item"
,
staticStyle
:{
color
:
"#888"
},
on
:{
click
:
function
(
t
){
e
.
getMediaList
()}}},[
e
.
_v
(
"+从素材库中选择"
)])]),
e
.
_v
(
" "
),
e
.
showMedia
&&
e
.
mediaList
.
length
>
0
?
n
(
"div"
,[
n
(
"el-table"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
e
.
mediaList
},
on
:{
"row-click"
:
e
.
onChooseMedia
}},[
n
(
"el-table-column"
,{
attrs
:{
prop
:
"media_id"
,
label
:
"mediaId"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
label
:
"URL"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
t
.
row
.
content
&&
t
.
row
.
content
.
news_item
?
n
(
"div"
,{
staticClass
:
"news-media"
,
staticStyle
:{
display
:
"inline-block"
,
width
:
"200px"
}},
e
.
_l
(
t
.
row
.
content
.
news_item
,
function
(
i
,
a
){
return
n
(
"div"
,{
staticStyle
:{
position
:
"relative"
}},[
1
===
t
.
row
.
content
.
news_item
.
length
?
n
(
"div"
,{
staticClass
:
"single-cover"
},[
n
(
"div"
,{
staticClass
:
"title"
},[
e
.
_v
(
e
.
_s
(
i
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
i
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"digest"
},[
e
.
_v
(
e
.
_s
(
i
.
digest
))]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
i
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
t
.
row
.
content
.
news_item
.
length
>
1
?
n
(
"div"
,{
staticClass
:
"clear-both bottomCover"
,
staticStyle
:{
position
:
"relative"
}},[
0
===
a
?
n
(
"div"
,{
staticClass
:
"muti-cover"
},[
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
i
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"bottom-title"
},[
e
.
_v
(
e
.
_s
(
i
.
title
))])]):
n
(
"div"
,{
staticClass
:
"next-cover clear-both"
},[
n
(
"span"
,{
staticClass
:
"next-title"
},[
e
.
_v
(
e
.
_s
(
i
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticClass
:
"next-img"
,
attrs
:{
src
:
i
.
thumb_url
}})]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
i
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
e
.
_e
()])})):
e
.
_e
()]}}])})],
1
),
e
.
_v
(
" "
),
n
(
"page2"
,{
attrs
:{
total
:
e
.
total
,
limit
:
e
.
mediaPage
.
limit
},
on
:{
pageChange
:
e
.
onMediaPageChange
,
sizeChange
:
e
.
onMediaSizeChange
},
model
:{
value
:
e
.
mediaPage
.
nowPage
,
callback
:
function
(
t
){
e
.
$set
(
e
.
mediaPage
,
"nowPage"
,
t
)},
expression
:
"mediaPage.nowPage"
}})],
1
):
e
.
_e
()])],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
function
(
t
){
e
.
send
()}}},[
e
.
_v
(
"确 定"
)])],
1
),
e
.
_v
(
" "
),
n
(
"el-dialog"
,{
attrs
:{
visible
:
e
.
userDialog
.
show
,
"append-to-body"
:
""
},
on
:{
"update:visible"
:
function
(
t
){
e
.
$set
(
e
.
userDialog
,
"show"
,
t
)}}},[
n
(
"el-form"
,{
attrs
:{
"label-width"
:
"90px"
}},[
n
(
"el-row"
,[
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"ID"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchUserFrom
.
userId
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchUserFrom
,
"userId"
,
t
)},
expression
:
"searchUserFrom.userId"
}})],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"昵称"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchUserFrom
.
nickName
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchUserFrom
,
"nickName"
,
t
)},
expression
:
"searchUserFrom.nickName"
}})],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"电话"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchUserFrom
.
mobile
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchUserFrom
,
"mobile"
,
t
)},
expression
:
"searchUserFrom.mobile"
}})],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-row"
,[
n
(
"el-col"
,{
attrs
:{
span
:
8
,
offset
:
16
}},[
n
(
"el-form-item"
,[
n
(
"el-button"
,{
staticStyle
:{
float
:
"right"
},
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
e
.
getUser
}},[
e
.
_v
(
"搜索"
)])],
1
)],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-table"
,{
ref
:
"multipleTable"
,
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
e
.
userList
},
on
:{
"selection-change"
:
e
.
handleSelectionChange
}},[
n
(
"el-table-column"
,{
attrs
:{
type
:
"selection"
,
width
:
"55"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
className
:
"f-c"
,
label
:
"用户"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
n
(
"img"
,{
staticStyle
:{
"margin-right"
:
"5px"
,
width
:
"50px"
,
height
:
"50px"
,
"border-radius"
:
"50px"
},
attrs
:{
src
:
t
.
row
.
avatar
}}),
e
.
_v
(
e
.
_s
(
t
.
row
.
nickname
)
+
"(ID:"
+
e
.
_s
(
t
.
row
.
user_id
)
+
")
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"mobile"
,
label
:
"手机号"
}})],
1
),
e
.
_v
(
" "
),
n
(
"page"
,{
attrs
:{
total
:
e
.
userDialog
.
total
,
limit
:
e
.
userDialog
.
limit
},
on
:{
pageChange
:
e
.
onUserPageChange
,
sizeChange
:
e
.
onSizeChange
}}),
e
.
_v
(
" "
),
n
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
n
(
"el-button"
,{
on
:{
click
:
function
(
t
){
e
.
userDialog
.
show
=!
1
}}},[
e
.
_v
(
"取 消"
)]),
e
.
_v
(
" "
),
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
e
.
onConfirm
}},[
e
.
_v
(
"确 定"
)])],
1
)],
1
)],
1
)],
1
)};
c
.
_withStripped
=!
0
;
var
d
=
{
render
:
c
,
staticRenderFns
:[]},
A
=
d
;
var
m
=!
1
;
var
p
=
n
(
"VU/8"
)(
r
,
A
,
!
1
,
function
(
e
){
m
||
(
n
(
"DeFF"
),
n
(
"0B04"
))},
"data-v-690a96ec"
,
null
);
p
.
options
.
__file
=
"src/components/groupSend/index.vue"
;
t
.
default
=
p
.
exports
}});
\ No newline at end of file
dev/static/js/21.7c00e98a9a45d7b03edd.js
0 → 100644
View file @
d0645b51
webpackJsonp
([
21
],{
"0B04"
:
function
(
e
,
t
,
n
){
var
i
=
n
(
"Zkp1"
);
"string"
==
typeof
i
&&
(
i
=
[[
e
.
i
,
i
,
""
]]),
i
.
locals
&&
(
e
.
exports
=
i
.
locals
);
n
(
"rjj0"
)(
"a4557dec"
,
i
,
!
1
,{})},
DeFF
:
function
(
e
,
t
,
n
){
var
i
=
n
(
"EA/M"
);
"string"
==
typeof
i
&&
(
i
=
[[
e
.
i
,
i
,
""
]]),
i
.
locals
&&
(
e
.
exports
=
i
.
locals
);
n
(
"rjj0"
)(
"24c16c68"
,
i
,
!
1
,{})},
"EA/M"
:
function
(
e
,
t
,
n
){(
e
.
exports
=
n
(
"FZ+f"
)(
!
0
)).
push
([
e
.
i
,
"
\n
.index[data-v-690a96ec] {
\n
padding: 20px 0;
\n
}
\n
.top[data-v-690a96ec] {
\n
margin-bottom: 30px;
\n
margin-left: 20px;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.inner-edit_area[data-v-690a96ec] {
\n
width: 96%;
\n
margin: 0 auto;
\n
}
\n
.upload-video[data-v-690a96ec] {
\n
width: 50%;
\n
margin-left:2%;
\n
}
\n
.b-title[data-v-690a96ec] {
\n
padding: 20px;
\n
color: #666;
\n
}
\n
.emotion_switch[data-v-690a96ec] {
\n
float: left;
\n
height: 28px;
\n
line-height: 999em;
\n
overflow: hidden;
\n
background: transparent url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/reply/images/icon_emotion_switch.png) no-repeat 0 0;
\n
width: 20px;
\n
height: 20px;
\n
vertical-align: middle;
\n
display: inline-block;
\n
}
\n
.img[data-v-690a96ec] {
\n
position: relative;
\n
width: 25%;
\n
img {
\n
width: 100%;
\n
}
\n
.el-icon-delete {
\n
position: absolute;
\n
top: 50%;
\n
left: 50%;
\n
display: none;
\n
}
\n
}
\n
.img:hover img[data-v-690a96ec]{
\n
opacity: 0.3;
\n
}
\n
.img:hover .el-icon-delete[data-v-690a96ec]{
\n
display: block;
\n
}
\n
.tool_bar[data-v-690a96ec] {
\n
float: right;
\n
margin-top: 20px;
\n
}
\n
.choose_item[data-v-690a96ec] {
\n
margin-bottom: 25px;
\n
color: rgb(136, 136, 136);
\n
height: 80px;
\n
line-height: 80px;
\n
width: 45%;
\n
border: 1px dashed;
\n
text-align: center;
\n
}
\n
.display-b[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: horizontal;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: row nowrap;
\n
flex-flow: row nowrap;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
}
\n
.my-teacher[data-v-690a96ec] {
\n
width: 25%;
\n
height: 80px;
\n
background-color: #eee;
\n
line-height: 80px;
\n
text-align: center;
\n
margin-bottom: 10px;
\n
}
\n
.news-media[data-v-690a96ec] {
\n
padding: 10px;
\n
width: 25%;
\n
}
\n
.news-media img[data-v-690a96ec]{
\n
width: 100%;
\n
}
\n
.s-news img[data-v-690a96ec] {
\n
width: 50px;
\n
float: right;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.digest[data-v-690a96ec] {
\n
padding-top: 12px;
\n
color: #9A9A9A;
\n
font-size: 14px;
\n
}
\n
.single-cover[data-v-690a96ec] {
\n
/*padding: 20px 15px 15px;*/
\n
}
\n
.muti-cover[data-v-690a96ec] {
\n
position: relative;
\n
padding: 20px 15px 0 15px;
\n
}
\n
.bottom-title[data-v-690a96ec] {
\n
color: #FFFFFF;
\n
background-color: rgba(0, 0, 0, 0.55);
\n
position: absolute;
\n
left: 15px;
\n
right: 15px;
\n
bottom: 0;
\n
padding: 8px 12px;
\n
}
\n
.next-cover[data-v-690a96ec] {
\n
padding: 12px 15px;
\n
position: relative;
\n
}
\n
.next-img[data-v-690a96ec] {
\n
float: right;
\n
margin-left: 12px;
\n
width: 60px !important;
\n
height: 60px !important;
\n
}
\n
.next-title[data-v-690a96ec] {
\n
overflow: hidden;
\n
font-weight: 400;
\n
word-wrap: break-word;
\n
-webkit-hyphens: auto;
\n
-ms-hyphens: auto;
\n
hyphens: auto;
\n
color: #353535;
\n
}
\n
.single-cover:hover .preview[data-v-690a96ec],.bottomCover:hover .preview[data-v-690a96ec]{
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-pack: center;
\n
-ms-flex-pack: center;
\n
justify-content: center;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
color: #fff;
\n
}
\n
.preview[data-v-690a96ec] {
\n
display: none;
\n
position: absolute;
\n
top: 0;
\n
left: 0;
\n
width: 100%;
\n
height: 100%;
\n
background-color: rgba(0,0,0,0.5);
\n
text-decoration: none;
\n
}
\n
.f-bt[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
position: relative;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.ellip[data-v-690a96ec] {
\n
overflow: hidden;
\n
text-overflow: ellipsis;
\n
white-space: nowrap;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"/Users/wang/Documents/changchang/projects/admin/src/components/groupSend/index.vue"
],
names
:[],
mappings
:
";AACA;EACE,gBAAgB;CACjB;AACD;EACE,oBAAoB;EACpB,kBAAkB;CACnB;AACD;EACE,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,iBAAiB;EACjB,eAAe;CAChB;AACD;EACE,WAAW;EACX,eAAe;CAChB;AACD;EACE,WAAW;EACX,eAAe;CAChB;AACD;EACE,cAAc;EACd,YAAY;CACb;AACD;EACE,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,4IAA4I;EAC5I,YAAY;EACZ,aAAa;EACb,uBAAuB;EACvB,sBAAsB;CACvB;AACD;EACE,mBAAmB;EACnB,WAAW;AACb;EACE,YAAY;CACb;AACD;EACE,mBAAmB;EACnB,SAAS;EACT,UAAU;EACV,cAAc;CACf;CACA;AACD;EACE,aAAa;CACd;AACD;EACE,eAAe;CAChB;AACD;EACE,aAAa;EACb,iBAAiB;CAClB;AACD;EACE,oBAAoB;EACpB,0BAA0B;EAC1B,aAAa;EACb,kBAAkB;EAClB,WAAW;EACX,mBAAmB;EACnB,mBAAmB;CACpB;AACD;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,+BAA+B;EAC/B,8BAA8B;MAC1B,0BAA0B;UACtB,sBAAsB;EAC9B,0BAA0B;MACtB,uBAAuB;UACnB,+BAA+B;EACvC,0BAA0B;MACtB,uBAAuB;UACnB,oBAAoB;CAC7B;AACD;EACE,WAAW;EACX,aAAa;EACb,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;CACrB;AACD;EACE,cAAc;EACd,WAAW;CACZ;AACD;EACE,YAAY;CACb;AACD;EACE,YAAY;EACZ,aAAa;CACd;AACD;EACE,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,iBAAiB;EACjB,eAAe;CAChB;AACD;EACE,kBAAkB;EAClB,eAAe;EACf,gBAAgB;CACjB;AACD;EACE,4BAA4B;CAC7B;AACD;EACE,mBAAmB;EACnB,0BAA0B;CAC3B;AACD;EACE,eAAe;EACf,sCAAsC;EACtC,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,UAAU;EACV,kBAAkB;CACnB;AACD;EACE,mBAAmB;EACnB,mBAAmB;CACpB;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,uBAAuB;EACvB,wBAAwB;CACzB;AACD;EACE,iBAAiB;EACjB,iBAAiB;EACjB,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;EACd,eAAe;CAChB;AACD;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,yBAAyB;MACrB,sBAAsB;UAClB,wBAAwB;EAChC,0BAA0B;MACtB,uBAAuB;UACnB,oBAAoB;EAC5B,YAAY;CACb;AACD;EACE,cAAc;EACd,mBAAmB;EACnB,OAAO;EACP,QAAQ;EACR,YAAY;EACZ,aAAa;EACb,kCAAkC;EAClC,sBAAsB;CACvB;AACD;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,mBAAmB;EACnB,0BAA0B;MACtB,uBAAuB;UACnB,+BAA+B;EACvC,yBAAyB;MACrB,sBAAsB;UAClB,wBAAwB;CACjC;AACD;EACE,iBAAiB;EACjB,wBAAwB;EACxB,oBAAoB;CACrB"
,
file
:
"index.vue"
,
sourcesContent
:[
"
\n
.index[data-v-690a96ec] {
\n
padding: 20px 0;
\n
}
\n
.top[data-v-690a96ec] {
\n
margin-bottom: 30px;
\n
margin-left: 20px;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.inner-edit_area[data-v-690a96ec] {
\n
width: 96%;
\n
margin: 0 auto;
\n
}
\n
.upload-video[data-v-690a96ec] {
\n
width: 50%;
\n
margin-left:2%;
\n
}
\n
.b-title[data-v-690a96ec] {
\n
padding: 20px;
\n
color: #666;
\n
}
\n
.emotion_switch[data-v-690a96ec] {
\n
float: left;
\n
height: 28px;
\n
line-height: 999em;
\n
overflow: hidden;
\n
background: transparent url(https://res.wx.qq.com/mpres/en_US/htmledition/pages/modules/reply/images/icon_emotion_switch.png) no-repeat 0 0;
\n
width: 20px;
\n
height: 20px;
\n
vertical-align: middle;
\n
display: inline-block;
\n
}
\n
.img[data-v-690a96ec] {
\n
position: relative;
\n
width: 25%;
\n
img {
\n
width: 100%;
\n
}
\n
.el-icon-delete {
\n
position: absolute;
\n
top: 50%;
\n
left: 50%;
\n
display: none;
\n
}
\n
}
\n
.img:hover img[data-v-690a96ec]{
\n
opacity: 0.3;
\n
}
\n
.img:hover .el-icon-delete[data-v-690a96ec]{
\n
display: block;
\n
}
\n
.tool_bar[data-v-690a96ec] {
\n
float: right;
\n
margin-top: 20px;
\n
}
\n
.choose_item[data-v-690a96ec] {
\n
margin-bottom: 25px;
\n
color: rgb(136, 136, 136);
\n
height: 80px;
\n
line-height: 80px;
\n
width: 45%;
\n
border: 1px dashed;
\n
text-align: center;
\n
}
\n
.display-b[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: horizontal;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: row nowrap;
\n
flex-flow: row nowrap;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
}
\n
.my-teacher[data-v-690a96ec] {
\n
width: 25%;
\n
height: 80px;
\n
background-color: #eee;
\n
line-height: 80px;
\n
text-align: center;
\n
margin-bottom: 10px;
\n
}
\n
.news-media[data-v-690a96ec] {
\n
padding: 10px;
\n
width: 25%;
\n
}
\n
.news-media img[data-v-690a96ec]{
\n
width: 100%;
\n
}
\n
.s-news img[data-v-690a96ec] {
\n
width: 50px;
\n
float: right;
\n
}
\n
.title[data-v-690a96ec] {
\n
font-size: 16px;
\n
font-weight: 400;
\n
display: block;
\n
line-height: 1.2;
\n
color: #353535;
\n
}
\n
.digest[data-v-690a96ec] {
\n
padding-top: 12px;
\n
color: #9A9A9A;
\n
font-size: 14px;
\n
}
\n
.single-cover[data-v-690a96ec] {
\n
/*padding: 20px 15px 15px;*/
\n
}
\n
.muti-cover[data-v-690a96ec] {
\n
position: relative;
\n
padding: 20px 15px 0 15px;
\n
}
\n
.bottom-title[data-v-690a96ec] {
\n
color: #FFFFFF;
\n
background-color: rgba(0, 0, 0, 0.55);
\n
position: absolute;
\n
left: 15px;
\n
right: 15px;
\n
bottom: 0;
\n
padding: 8px 12px;
\n
}
\n
.next-cover[data-v-690a96ec] {
\n
padding: 12px 15px;
\n
position: relative;
\n
}
\n
.next-img[data-v-690a96ec] {
\n
float: right;
\n
margin-left: 12px;
\n
width: 60px !important;
\n
height: 60px !important;
\n
}
\n
.next-title[data-v-690a96ec] {
\n
overflow: hidden;
\n
font-weight: 400;
\n
word-wrap: break-word;
\n
-webkit-hyphens: auto;
\n
-ms-hyphens: auto;
\n
hyphens: auto;
\n
color: #353535;
\n
}
\n
.single-cover:hover .preview[data-v-690a96ec],.bottomCover:hover .preview[data-v-690a96ec]{
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-pack: center;
\n
-ms-flex-pack: center;
\n
justify-content: center;
\n
-webkit-box-align: center;
\n
-ms-flex-align: center;
\n
align-items: center;
\n
color: #fff;
\n
}
\n
.preview[data-v-690a96ec] {
\n
display: none;
\n
position: absolute;
\n
top: 0;
\n
left: 0;
\n
width: 100%;
\n
height: 100%;
\n
background-color: rgba(0,0,0,0.5);
\n
text-decoration: none;
\n
}
\n
.f-bt[data-v-690a96ec] {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
position: relative;
\n
-webkit-box-pack: justify;
\n
-ms-flex-pack: justify;
\n
justify-content: space-between;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.ellip[data-v-690a96ec] {
\n
overflow: hidden;
\n
text-overflow: ellipsis;
\n
white-space: nowrap;
\n
}
\n
"
],
sourceRoot
:
""
}])},
Zkp1
:
function
(
e
,
t
,
n
){(
e
.
exports
=
n
(
"FZ+f"
)(
!
0
)).
push
([
e
.
i
,
"
\n
.el-radio-group {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: vertical;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: column;
\n
flex-flow: column;
\n
-webkit-box-pack: start;
\n
-ms-flex-pack: start;
\n
justify-content: flex-start;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.el-radio+.el-radio {
\n
margin-left: 0;
\n
}
\n
.el-radio {
\n
margin-bottom: 6px;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"/Users/wang/Documents/changchang/projects/admin/src/components/groupSend/index.vue"
],
names
:[],
mappings
:
";AACA;EACE,qBAAqB;EACrB,qBAAqB;EACrB,cAAc;EACd,6BAA6B;EAC7B,8BAA8B;MAC1B,sBAAsB;UAClB,kBAAkB;EAC1B,wBAAwB;MACpB,qBAAqB;UACjB,4BAA4B;EACpC,yBAAyB;MACrB,sBAAsB;UAClB,wBAAwB;CACjC;AACD;GACG,eAAe;CACjB;AACD;EACE,mBAAmB;CACpB"
,
file
:
"index.vue"
,
sourcesContent
:[
"
\n
.el-radio-group {
\n
display: -webkit-box;
\n
display: -ms-flexbox;
\n
display: flex;
\n
-webkit-box-orient: vertical;
\n
-webkit-box-direction: normal;
\n
-ms-flex-flow: column;
\n
flex-flow: column;
\n
-webkit-box-pack: start;
\n
-ms-flex-pack: start;
\n
justify-content: flex-start;
\n
-webkit-box-align: start;
\n
-ms-flex-align: start;
\n
align-items: flex-start;
\n
}
\n
.el-radio+.el-radio {
\n
margin-left: 0;
\n
}
\n
.el-radio {
\n
margin-bottom: 6px;
\n
}
\n
"
],
sourceRoot
:
""
}])},
oerw
:
function
(
e
,
t
,
n
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
i
=
n
(
"CCn6"
),
a
=
n
(
"kmJW"
),
s
=
n
(
"C+jy"
),
o
=
n
(
"sf/l"
);
function
l
(
e
,
t
,
n
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
n
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
n
,
e
}
var
r
=
{
name
:
"index"
,
components
:{
page
:
a
.
a
,
page2
:
a
.
a
,
emotion
:
s
.
a
},
data
:
function
(){
var
e
;
return
l
(
e
=
{
nowPage
:
1
,
total
:
0
,
limit
:
10
,
mediaPage
:{
nowPage
:
1
,
total
:
0
,
limit
:
10
},
show
:
!
1
,
loading
:
!
1
,
activeName
:
"text"
,
list
:[],
content
:
""
,
uploadShow
:
!
0
,
imageList
:[],
fileList
:[],
imageContent
:
""
,
videoContent
:
""
,
searchFrom
:{
type
:
1
,
is_test
:
!
1
},
tableData
:[],
fileUid
:
null
,
userDialog
:{
total
:
0
,
limit
:
10
,
nowPage
:
1
,
show
:
!
1
},
userList
:[],
searchUserFrom
:{},
multipleSelection
:[],
showEmotion
:
!
1
,
showMedia
:
!
1
,
mediaList
:[]},
"imageContent"
,
null
),
l
(
e
,
"videoContent"
,
null
),
l
(
e
,
"newsContent"
,
null
),
e
},
filters
:{
typeFilter
:
function
(
e
){
if
(
e
)
return
"text"
===
e
?
"文本"
:
"image"
===
e
?
"图片"
:
"video"
===
e
?
"视频"
:
"news"
===
e
?
"图文"
:
void
0
}},
methods
:{
handleClick
:
function
(
e
){
this
.
activeName
=
e
.
name
},
handleRemove
:
function
(){
this
.
uploadShow
=!
0
,
this
.
imageList
=
[],
this
.
imageContent
=
""
},
handleRemoveVideo
:
function
(){
this
.
videoContent
=
""
,
this
.
fileList
=
[]},
beforeAvatarUpload
:
function
(){
this
.
uploadShow
=!
1
},
handleAvatarSuccess
:
function
(
e
){
this
.
imageList
=
[{
name
:
e
.
data
.
url
,
url
:
"http://cdn.singsingenglish.com/"
+
e
.
data
.
url
}]},
uploadFile
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
Object
(
i
.
_63
)({
file
:
e
.
file
,
type
:
"wechat"
}).
then
(
function
(
e
){
t
.
imageContent
=
{
content
:
e
.
media_id
,
url
:
e
.
url
},
t
.
imageList
=
[{
name
:
e
.
media_id
,
url
:
e
.
url
}],
t
.
$message
({
type
:
"success"
,
message
:
"上传成功!"
})}).
catch
(
function
(){
t
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
uploadVideo
:
function
(
e
){
var
t
=
this
;
Object
(
i
.
_63
)({
file
:
e
.
file
,
type
:
"wechat"
}).
then
(
function
(
n
){
t
.
uploadVideoFile
(
e
,
n
)}).
catch
(
function
(){
t
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
uploadVideoFile
:
function
(
e
,
t
){
var
n
=
this
;
this
.
fileUid
=
e
.
file
.
uid
,
this
.
loading
=!
0
,
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
Object
(
i
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
i
){
n
.
videoContent
=
{
content
:
t
.
media_id
,
url
:
"http://cdn.singsingenglish.com/"
+
i
.
url
},
n
.
fileList
=
[{
name
:
i
.
name
,
url
:
"http://cdn.singsingenglish.com/"
+
i
.
url
}],
n
.
loading
=!
1
,
n
.
$message
({
type
:
"success"
,
message
:
"上传成功!"
}),
n
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"delete"
,
id
:
e
.
file
.
uid
}),
n
.
fileUid
=
null
}).
catch
(
function
(){
n
.
loading
=!
1
,
n
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
send
:
function
(){
var
e
=
this
,
t
=
{};
t
.
type
=
this
.
searchFrom
.
type
;
var
n
=
this
.
searchFrom
.
is_test
?
"发送筛选用户,"
:
"不发送筛选用户,"
;
if
(
1
===
this
.
searchFrom
.
type
){
if
(
!
(
this
.
searchFrom
.
time
&&
this
.
searchFrom
.
time
.
length
>
0
))
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请选择时间!"
});
t
.
start_at
=
o
.
a
.
dateFmt
(
this
.
searchFrom
.
time
[
0
],
"yyyy-MM-dd hh:mm:ss"
),
t
.
end_at
=
o
.
a
.
dateFmt
(
this
.
searchFrom
.
time
[
1
],
"yyyy-MM-dd hh:mm:ss"
),
n
+=
"48时内关注但未购课用户("
+
t
.
start_at
+
"~"
+
t
.
end_at
+
","
}
else
2
===
this
.
searchFrom
.
type
?
n
+=
"有体验课但没有正式课用户,"
:
3
===
this
.
searchFrom
.
type
&&
(
n
+=
"未试听用户,"
);
if
(
this
.
searchFrom
.
user_ids
){
t
.
user_ids
=
this
.
searchFrom
.
user_ids
,
n
+=
"用户ID:"
+
t
.
user_ids
;
var
a
=
{};
if
(
a
.
type
=
this
.
activeName
,
"text"
===
this
.
activeName
){
if
(
!
this
.
content
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请输入文本!"
});
a
.
content
=
this
.
content
}
else
if
(
"image"
===
this
.
activeName
){
if
(
!
this
.
imageContent
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请上传图片!"
});
a
.
content
=
this
.
imageContent
.
content
,
a
.
url
=
this
.
imageContent
.
url
}
else
if
(
"video"
===
this
.
activeName
){
if
(
!
this
.
videoContent
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请上传视频!"
});
a
.
content
=
this
.
videoContent
.
content
,
a
.
url
=
this
.
videoContent
.
url
}
else
"news"
===
this
.
activeName
&&
(
this
.
newsContent
&&
this
.
newsContent
.
media_id
?
a
.
content
=
this
.
newsContent
.
media_id
:
this
.
$message
({
type
:
"error"
,
message
:
"请选择图文!"
}));
t
.
content
=
JSON
.
stringify
(
a
),
t
.
is_test
=
this
.
searchFrom
.
is_test
?
2
:
1
,
console
.
log
(
"json"
,
t
),
this
.
$confirm
(
n
,
"提示"
,{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
(){
Object
(
i
.
_54
)(
t
).
then
(
function
(
t
){
e
.
$message
({
message
:
t
,
type
:
"success"
}),
e
.
show
=!
1
,
e
.
clearData
(),
e
.
getMsgList
()})}).
catch
(
function
(){
e
.
$message
({
type
:
"info"
,
message
:
"已取消发送"
})})}
else
this
.
$message
({
type
:
"error"
,
message
:
"请加入内部人员!"
})},
clearData
:
function
(){
this
.
content
=
""
,
this
.
videoContent
=
null
,
this
.
imageContent
=
null
,
this
.
newsContent
=
null
,
this
.
activeName
,
this
.
searchFrom
=
{},
this
.
fileList
=
[],
this
.
imageList
=
[]},
getMsgList
:
function
(){
var
e
=
this
,
t
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
Object
(
i
.
_25
)(
t
).
then
(
function
(
t
){
e
.
tableData
=
t
.
list
,
e
.
total
=
t
.
total
})},
onMediaPageChange
:
function
(
e
){
this
.
mediaPage
.
nowPage
=
e
,
this
.
getMediaList
()},
onMediaSizeChange
:
function
(){
this
.
mediaPage
.
nowPage
=
1
,
this
.
mediaPage
.
limit
=
val
,
this
.
getMediaList
()},
onPageChange
:
function
(
e
){
this
.
nowPage
=
e
,
this
.
getMsgList
()},
onSizeChange
:
function
(
e
){
this
.
nowPage
=
1
,
this
.
limit
=
e
,
this
.
getMsgList
()},
getMsgResult
:
function
(
e
){
var
t
=
this
;
if
(
e
){
var
n
=
{
only_text
:
1
,
send_id
:
e
};
Object
(
i
.
_25
)(
n
).
then
(
function
(
e
){
t
.
$message
({
message
:
e
,
type
:
"success"
}),
t
.
getMsgList
()})}},
getUser
:
function
(){
var
e
=
this
,
t
=
{
page
:
this
.
userDialog
.
nowPage
,
limit
:
this
.
userDialog
.
limit
};
this
.
searchUserFrom
.
userId
&&
(
t
.
user_id
=
this
.
searchUserFrom
.
userId
),
this
.
searchUserFrom
.
nickName
&&
(
t
.
nickname
=
this
.
searchUserFrom
.
nickName
),
this
.
searchUserFrom
.
mobile
&&
(
t
.
mobile
=
this
.
searchUserFrom
.
mobile
),
Object
(
i
.
_41
)(
t
).
then
(
function
(
t
){
e
.
userList
=
t
.
list
,
e
.
userDialog
.
total
=
t
.
total
})},
onUserPageChange
:
function
(
e
){
this
.
userDialog
.
nowPage
=
e
,
this
.
getUser
()},
handleSelectionChange
:
function
(
e
){
this
.
multipleSelection
=
e
},
onSelectUser
:
function
(){
this
.
userDialog
.
show
=!
0
,
this
.
searchFrom
.
user_ids
?
this
.
multipleSelection
=
this
.
searchFrom
.
user_ids
.
split
(
","
):
this
.
multipleSelection
=
[],
this
.
getUser
()},
onConfirm
:
function
(){
var
e
=
this
.
multipleSelection
;
if
(
0
===
e
.
length
)
this
.
$message
({
type
:
"error"
,
message
:
"请选择用户!"
});
else
{
var
t
=
[];
e
.
forEach
(
function
(
e
){
t
.
push
(
e
.
user_id
)});
var
n
=
t
;
this
.
searchFrom
.
user_ids
&&
(
n
=
t
.
concat
(
this
.
stringToInt
(
this
.
searchFrom
.
user_ids
.
split
(
","
))));
var
i
=
this
.
dedupe
(
n
);
this
.
searchFrom
.
user_ids
=
i
.
join
(
","
),
this
.
userDialog
.
show
=!
1
}},
dedupe
:
function
(
e
){
return
Array
.
from
(
new
Set
(
e
))},
stringToInt
:
function
(
e
){
var
t
=
e
||
[];
return
t
=
t
.
map
(
function
(
e
){
return
parseInt
(
e
,
10
)})},
emotion
:
function
(
e
){
var
t
=
e
.
replace
(
/
\/
/gi
,
""
);
return
'<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/'
+
[
"微笑"
,
"撇嘴"
,
"色"
,
"发呆"
,
"得意"
,
"流泪"
,
"害羞"
,
"闭嘴"
,
"睡"
,
"大哭"
,
"尴尬"
,
"发怒"
,
"调皮"
,
"呲牙"
,
"惊讶"
,
"难过"
,
"酷"
,
"冷汗"
,
"抓狂"
,
"吐"
,
"偷笑"
,
"可爱"
,
"白眼"
,
"傲慢"
,
"饥饿"
,
"困"
,
"惊恐"
,
"流汗"
,
"憨笑"
,
"大兵"
,
"奋斗"
,
"咒骂"
,
"疑问"
,
"嘘"
,
"晕"
,
"折磨"
,
"衰"
,
"骷髅"
,
"敲打"
,
"再见"
,
"擦汗"
,
"抠鼻"
,
"鼓掌"
,
"糗大了"
,
"坏笑"
,
"左哼哼"
,
"右哼哼"
,
"哈欠"
,
"鄙视"
,
"委屈"
,
"快哭了"
,
"阴险"
,
"亲亲"
,
"吓"
,
"可怜"
,
"菜刀"
,
"西瓜"
,
"啤酒"
,
"篮球"
,
"乒乓"
,
"咖啡"
,
"饭"
,
"猪头"
,
"玫瑰"
,
"凋谢"
,
"示爱"
,
"爱心"
,
"心碎"
,
"蛋糕"
,
"闪电"
,
"炸弹"
,
"刀"
,
"足球"
,
"瓢虫"
,
"便便"
,
"月亮"
,
"太阳"
,
"礼物"
,
"拥抱"
,
"强"
,
"弱"
,
"握手"
,
"胜利"
,
"抱拳"
,
"勾引"
,
"拳头"
,
"差劲"
,
"爱你"
,
"NO"
,
"OK"
,
"爱情"
,
"飞吻"
,
"跳跳"
,
"发抖"
,
"怄火"
,
"转圈"
,
"磕头"
,
"回头"
,
"跳绳"
,
"挥手"
,
"激动"
,
"街舞"
,
"献吻"
,
"左太极"
,
"右太极"
].
indexOf
(
t
)
+
'.gif" align="middle">'
},
handleEmotion
:
function
(
e
){
this
.
content
+=
e
},
onChooseMedia
:
function
(
e
){
"image"
===
this
.
type
?
this
.
imageContent
=
e
:
"video"
===
this
.
type
?
this
.
videoContent
=
e
:
"news"
===
this
.
type
&&
(
this
.
newsContent
=
e
),
this
.
showMedia
=!
1
},
getMediaList
:
function
(){
var
e
=
this
,
t
=
this
.
activeName
,
n
=
{
type
:
t
,
page
:
this
.
mediaPage
.
nowPage
,
limit
:
this
.
mediaPage
.
limit
};
this
.
loading
=!
0
,
this
.
showMedia
=!
0
,
Object
(
i
.
_23
)(
n
).
then
(
function
(
n
){
e
.
loading
=!
1
,
e
.
type
=
t
,
e
.
mediaList
=
n
.
item
,
e
.
mediaPage
.
total
=
n
.
total_count
,
0
===
e
.
total
&&
e
.
$message
({
showClose
:
!
0
,
message
:
"暂无数据"
})}).
catch
(
function
(){
e
.
loading
=!
1
})}},
mounted
:
function
(){
this
.
getMsgList
()},
computed
:{
progress
:
function
(){
var
e
=
this
;
return
this
.
$store
.
state
.
progressList
.
find
(
function
(
t
){
return
t
.
id
===
e
.
fileUid
}).
num
<
100
?
this
.
$store
.
state
.
progressList
.
find
(
function
(
t
){
return
t
.
id
===
e
.
fileUid
}).
num
:
100
}}},
c
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
n
=
e
.
_self
.
_c
||
t
;
return
n
(
"div"
,{
staticClass
:
"index"
},[
n
(
"div"
,{
staticClass
:
"b-title"
},[
e
.
_v
(
"群发列表 "
),
n
(
"el-button"
,{
staticStyle
:{
float
:
"right"
,
"margin-bottom"
:
"10px"
},
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
function
(
t
){
e
.
show
=!
0
}}},[
e
.
_v
(
"新建群发消息"
)])],
1
),
e
.
_v
(
" "
),
n
(
"el-table"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
e
.
tableData
}},[
n
(
"el-table-column"
,{
attrs
:{
type
:
"expand"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
n
(
"el-table"
,{
attrs
:{
border
:
!
1
,
data
:[
JSON
.
parse
(
t
.
row
.
content
)]}},[
n
(
"el-table-column"
,{
attrs
:{
label
:
"类型"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
e
.
_f
(
"typeFilter"
)(
t
.
row
.
type
))
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
"text"
!==
JSON
.
parse
(
t
.
row
.
content
).
type
?
n
(
"el-table-column"
,{
attrs
:{
prop
:
"media_id"
,
label
:
"media_id"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
content
)
+
"
\n
"
)]}}])}):
e
.
_e
(),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"url"
,
label
:
"内容"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
"text"
===
t
.
row
.
type
?
n
(
"div"
,[
n
(
"span"
,{
domProps
:{
innerHTML
:
e
.
_s
(
t
.
row
.
content
.
replace
(
/
\/[\u
4E00-
\u
9FA5
]{1,3}
/gi
,
e
.
emotion
))}})]):
"image"
===
t
.
row
.
type
?
n
(
"div"
,[
n
(
"img"
,{
staticStyle
:{
width
:
"80px"
},
attrs
:{
src
:
t
.
row
.
url
}})]):
"video"
===
t
.
row
.
type
?
n
(
"div"
,[
n
(
"a"
,{
attrs
:{
href
:
t
.
row
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"点击查看视频"
)])]):
e
.
_e
()]}}])})],
1
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"send_id"
,
label
:
"消息ID"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"send_num"
,
label
:
"预计发送"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"arrive_num"
,
label
:
"已发送"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"failed_num"
,
label
:
"发送失败"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"start_at"
,
label
:
"开始时间"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"end_at"
,
label
:
"截止时间"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"created_at"
,
label
:
"发送时间"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
label
:
"操作"
,
"min-width"
:
"100"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
n
(
"el-button"
,{
attrs
:{
type
:
"text"
,
plain
:
""
,
size
:
"mini"
},
on
:{
click
:
function
(
n
){
e
.
getMsgResult
(
t
.
row
.
send_id
)}}},[
e
.
_v
(
"
\n
查询及时结果
\n
"
)])]}}])})],
1
),
e
.
_v
(
" "
),
n
(
"page"
,{
attrs
:{
total
:
e
.
total
,
limit
:
e
.
limit
},
on
:{
pageChange
:
e
.
onPageChange
,
sizeChange
:
e
.
onSizeChange
}}),
e
.
_v
(
" "
),
n
(
"el-dialog"
,{
attrs
:{
title
:
"新建群发消息"
,
visible
:
e
.
show
},
on
:{
"update:visible"
:
function
(
t
){
e
.
show
=
t
}}},[
n
(
"el-form"
,{
ref
:
"searchFrom"
,
attrs
:{
model
:
e
.
searchFrom
,
"label-width"
:
"150px"
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"是否发送筛选用户"
}},[
n
(
"el-switch"
,{
attrs
:{
"active-color"
:
"#13ce66"
,
"inactive-color"
:
"#ff4949"
},
model
:{
value
:
e
.
searchFrom
.
is_test
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"is_test"
,
t
)},
expression
:
"searchFrom.is_test"
}})],
1
),
e
.
_v
(
" "
),
1
===
e
.
searchFrom
.
type
?
n
(
"el-form-item"
,{
attrs
:{
label
:
"时间"
}},[
n
(
"el-date-picker"
,{
attrs
:{
type
:
"datetimerange"
,
"range-separator"
:
"至"
,
"start-placeholder"
:
"开始日期"
,
"end-placeholder"
:
"结束日期"
,
"default-time"
:[
"00:00:00"
,
"23:59:59"
]},
model
:{
value
:
e
.
searchFrom
.
time
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"time"
,
t
)},
expression
:
"searchFrom.time"
}})],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
n
(
"el-form-item"
,{
attrs
:{
label
:
"类型"
}},[
n
(
"el-radio-group"
,{
model
:{
value
:
e
.
searchFrom
.
type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"type"
,
t
)},
expression
:
"searchFrom.type"
}},[
n
(
"el-radio"
,{
attrs
:{
label
:
1
}},[
e
.
_v
(
"48时内关注但未购课用户"
)]),
e
.
_v
(
" "
),
n
(
"el-radio"
,{
attrs
:{
label
:
2
}},[
e
.
_v
(
"有体验课但没有正式课用户"
)]),
e
.
_v
(
" "
),
n
(
"el-radio"
,{
attrs
:{
label
:
3
}},[
e
.
_v
(
"未试听用户"
)])],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-row"
,[
n
(
"el-col"
,{
attrs
:{
span
:
16
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"用户ID"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchFrom
.
user_ids
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"user_ids"
,
t
)},
expression
:
"searchFrom.user_ids"
}})],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
e
.
onSelectUser
}},[
e
.
_v
(
"选择用户"
)])],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-tabs"
,{
attrs
:{
type
:
"card"
},
on
:{
"tab-click"
:
e
.
handleClick
},
model
:{
value
:
e
.
activeName
,
callback
:
function
(
t
){
e
.
activeName
=
t
},
expression
:
"activeName"
}},[
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"文本"
,
name
:
"text"
}},[
n
(
"div"
,{
staticClass
:
"inner-edit_area"
},[
n
(
"el-input"
,{
attrs
:{
type
:
"textarea"
,
autosize
:{
minRows
:
4
,
maxRows
:
8
},
placeholder
:
"请输入内容"
},
model
:{
value
:
e
.
content
,
callback
:
function
(
t
){
e
.
content
=
t
},
expression
:
"content"
}})],
1
),
e
.
_v
(
" "
),
n
(
"div"
,{
staticStyle
:{
float
:
"right"
}},[
n
(
"el-popover"
,{
attrs
:{
placement
:
"bottom-end"
,
width
:
"400"
,
offset
:
10
,
trigger
:
"manual"
},
model
:{
value
:
e
.
showEmotion
,
callback
:
function
(
t
){
e
.
showEmotion
=
t
},
expression
:
"showEmotion"
}},[
n
(
"div"
,[
n
(
"emotion"
,{
attrs
:{
height
:
200
},
on
:{
emotion
:
e
.
handleEmotion
}})],
1
),
e
.
_v
(
" "
),
n
(
"el-button"
,{
attrs
:{
slot
:
"reference"
,
type
:
"text"
},
on
:{
click
:
function
(
t
){
e
.
showEmotion
=!
e
.
showEmotion
}},
slot
:
"reference"
},[
n
(
"span"
,{
staticClass
:
"icon_emotion emotion_switch"
})])],
1
)],
1
)]),
e
.
_v
(
" "
),
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"图片"
,
name
:
"image"
}},[
n
(
"div"
,{
staticClass
:
"inner-edit_area"
},[
n
(
"el-upload"
,{
attrs
:{
action
:
"/api/public/upload/zone"
,
"http-request"
:
e
.
uploadFile
,
"before-upload"
:
e
.
beforeAvatarUpload
,
"list-type"
:
"picture-card"
,
"file-list"
:
e
.
imageList
,
"on-success"
:
e
.
handleAvatarSuccess
,
"on-remove"
:
e
.
handleRemove
,
limit
:
1
}},[
n
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
)]),
e
.
_v
(
" "
),
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"视频"
,
name
:
"video"
}},[
n
(
"el-upload"
,{
staticClass
:
"upload-video"
,
attrs
:{
action
:
"/api/public/upload/zone"
,
"http-request"
:
e
.
uploadVideo
,
"file-list"
:
e
.
fileList
,
"on-remove"
:
e
.
handleRemoveVideo
,
limit
:
1
}},[
n
(
"el-button"
,{
attrs
:{
size
:
"small"
,
type
:
"primary"
,
disabled
:
e
.
fileUid
&&
e
.
progress
<
99
}},[
e
.
_v
(
"点击上传"
)]),
e
.
_v
(
" "
),
n
(
"div"
,{
staticStyle
:{
width
:
"300px"
}},[
e
.
fileUid
?
n
(
"el-progress"
,{
attrs
:{
percentage
:
e
.
progress
}}):
e
.
_e
()],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-tab-pane"
,{
attrs
:{
label
:
"图文"
,
name
:
"news"
}},[
e
.
newsContent
&&
e
.
newsContent
.
content
&&
e
.
newsContent
.
content
.
news_item
?
n
(
"div"
,[
n
(
"div"
,{
staticClass
:
"news-media"
,
staticStyle
:{
display
:
"inline-block"
}},[
n
(
"el-card"
,{
attrs
:{
"body-style"
:{
padding
:
"0px"
}}},
e
.
_l
(
e
.
newsContent
.
content
.
news_item
,
function
(
t
,
i
){
return
n
(
"div"
,{
staticStyle
:{
position
:
"relative"
}},[
1
===
e
.
newsContent
.
content
.
news_item
.
length
?
n
(
"div"
,{
staticClass
:
"single-cover"
},[
n
(
"div"
,{
staticClass
:
"title"
},[
e
.
_v
(
e
.
_s
(
t
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
t
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"digest"
},[
e
.
_v
(
e
.
_s
(
t
.
digest
))]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
t
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
e
.
newsContent
.
content
.
news_item
.
length
>
1
?
n
(
"div"
,{
staticClass
:
"clear-both bottomCover"
,
staticStyle
:{
position
:
"relative"
}},[
0
===
i
?
n
(
"div"
,{
staticClass
:
"muti-cover"
},[
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
t
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"bottom-title"
},[
e
.
_v
(
e
.
_s
(
t
.
title
))])]):
n
(
"div"
,{
staticClass
:
"next-cover clear-both"
},[
n
(
"span"
,{
staticClass
:
"next-title"
},[
e
.
_v
(
e
.
_s
(
t
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticClass
:
"next-img"
,
attrs
:{
src
:
t
.
thumb_url
}})]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
t
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
e
.
_e
()])}))],
1
),
e
.
_v
(
" "
),
n
(
"i"
,{
staticClass
:
"el-icon-delete"
,
staticStyle
:{
display
:
"inline-block"
},
on
:{
click
:
function
(
t
){
e
.
newsContent
=
""
}}})]):
e
.
_e
(),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"display-b"
},[
n
(
"div"
,{
staticClass
:
"choose_item"
,
staticStyle
:{
color
:
"#888"
},
on
:{
click
:
function
(
t
){
e
.
getMediaList
()}}},[
e
.
_v
(
"+从素材库中选择"
)])]),
e
.
_v
(
" "
),
e
.
showMedia
&&
e
.
mediaList
.
length
>
0
?
n
(
"div"
,[
n
(
"el-table"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
e
.
mediaList
},
on
:{
"row-click"
:
e
.
onChooseMedia
}},[
n
(
"el-table-column"
,{
attrs
:{
prop
:
"media_id"
,
label
:
"mediaId"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
label
:
"URL"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
t
.
row
.
content
&&
t
.
row
.
content
.
news_item
?
n
(
"div"
,{
staticClass
:
"news-media"
,
staticStyle
:{
display
:
"inline-block"
,
width
:
"200px"
}},
e
.
_l
(
t
.
row
.
content
.
news_item
,
function
(
i
,
a
){
return
n
(
"div"
,{
staticStyle
:{
position
:
"relative"
}},[
1
===
t
.
row
.
content
.
news_item
.
length
?
n
(
"div"
,{
staticClass
:
"single-cover"
},[
n
(
"div"
,{
staticClass
:
"title"
},[
e
.
_v
(
e
.
_s
(
i
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
i
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"digest"
},[
e
.
_v
(
e
.
_s
(
i
.
digest
))]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
i
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
t
.
row
.
content
.
news_item
.
length
>
1
?
n
(
"div"
,{
staticClass
:
"clear-both bottomCover"
,
staticStyle
:{
position
:
"relative"
}},[
0
===
a
?
n
(
"div"
,{
staticClass
:
"muti-cover"
},[
n
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
i
.
thumb_url
}}),
e
.
_v
(
" "
),
n
(
"div"
,{
staticClass
:
"bottom-title"
},[
e
.
_v
(
e
.
_s
(
i
.
title
))])]):
n
(
"div"
,{
staticClass
:
"next-cover clear-both"
},[
n
(
"span"
,{
staticClass
:
"next-title"
},[
e
.
_v
(
e
.
_s
(
i
.
title
))]),
e
.
_v
(
" "
),
n
(
"img"
,{
staticClass
:
"next-img"
,
attrs
:{
src
:
i
.
thumb_url
}})]),
e
.
_v
(
" "
),
n
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
i
.
url
,
target
:
"_blank"
}},[
e
.
_v
(
"
\n
预览文章
\n
"
)])]):
e
.
_e
()])})):
e
.
_e
()]}}])})],
1
),
e
.
_v
(
" "
),
n
(
"page2"
,{
attrs
:{
total
:
e
.
total
,
limit
:
e
.
mediaPage
.
limit
},
on
:{
pageChange
:
e
.
onMediaPageChange
,
sizeChange
:
e
.
onMediaSizeChange
},
model
:{
value
:
e
.
mediaPage
.
nowPage
,
callback
:
function
(
t
){
e
.
$set
(
e
.
mediaPage
,
"nowPage"
,
t
)},
expression
:
"mediaPage.nowPage"
}})],
1
):
e
.
_e
()])],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
function
(
t
){
e
.
send
()}}},[
e
.
_v
(
"确 定"
)])],
1
),
e
.
_v
(
" "
),
n
(
"el-dialog"
,{
attrs
:{
visible
:
e
.
userDialog
.
show
,
"append-to-body"
:
""
},
on
:{
"update:visible"
:
function
(
t
){
e
.
$set
(
e
.
userDialog
,
"show"
,
t
)}}},[
n
(
"el-form"
,{
attrs
:{
"label-width"
:
"90px"
}},[
n
(
"el-row"
,[
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"ID"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchUserFrom
.
userId
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchUserFrom
,
"userId"
,
t
)},
expression
:
"searchUserFrom.userId"
}})],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"昵称"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchUserFrom
.
nickName
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchUserFrom
,
"nickName"
,
t
)},
expression
:
"searchUserFrom.nickName"
}})],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-col"
,{
attrs
:{
span
:
8
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"电话"
}},[
n
(
"el-input"
,{
model
:{
value
:
e
.
searchUserFrom
.
mobile
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchUserFrom
,
"mobile"
,
t
)},
expression
:
"searchUserFrom.mobile"
}})],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-row"
,[
n
(
"el-col"
,{
attrs
:{
span
:
8
,
offset
:
16
}},[
n
(
"el-form-item"
,[
n
(
"el-button"
,{
staticStyle
:{
float
:
"right"
},
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
e
.
getUser
}},[
e
.
_v
(
"搜索"
)])],
1
)],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
n
(
"el-table"
,{
ref
:
"multipleTable"
,
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
e
.
userList
},
on
:{
"selection-change"
:
e
.
handleSelectionChange
}},[
n
(
"el-table-column"
,{
attrs
:{
type
:
"selection"
,
width
:
"55"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
className
:
"f-c"
,
label
:
"用户"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
n
(
"img"
,{
staticStyle
:{
"margin-right"
:
"5px"
,
width
:
"50px"
,
height
:
"50px"
,
"border-radius"
:
"50px"
},
attrs
:{
src
:
t
.
row
.
avatar
}}),
e
.
_v
(
e
.
_s
(
t
.
row
.
nickname
)
+
"(ID:"
+
e
.
_s
(
t
.
row
.
user_id
)
+
")
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"mobile"
,
label
:
"手机号"
}})],
1
),
e
.
_v
(
" "
),
n
(
"page"
,{
attrs
:{
total
:
e
.
userDialog
.
total
,
limit
:
e
.
userDialog
.
limit
},
on
:{
pageChange
:
e
.
onUserPageChange
,
sizeChange
:
e
.
onSizeChange
}}),
e
.
_v
(
" "
),
n
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
n
(
"el-button"
,{
on
:{
click
:
function
(
t
){
e
.
userDialog
.
show
=!
1
}}},[
e
.
_v
(
"取 消"
)]),
e
.
_v
(
" "
),
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
e
.
onConfirm
}},[
e
.
_v
(
"确 定"
)])],
1
)],
1
)],
1
)],
1
)};
c
.
_withStripped
=!
0
;
var
d
=
{
render
:
c
,
staticRenderFns
:[]},
A
=
d
;
var
m
=!
1
;
var
p
=
n
(
"VU/8"
)(
r
,
A
,
!
1
,
function
(
e
){
m
||
(
n
(
"DeFF"
),
n
(
"0B04"
))},
"data-v-690a96ec"
,
null
);
p
.
options
.
__file
=
"src/components/groupSend/index.vue"
;
t
.
default
=
p
.
exports
}});
\ No newline at end of file
dev/static/js/manifest.1e5eebd977045aa87650.js
0 → 100644
View file @
d0645b51
!
function
(
e
){
var
c
=
window
.
webpackJsonp
;
window
.
webpackJsonp
=
function
(
a
,
f
,
t
){
for
(
var
o
,
d
,
b
,
i
=
0
,
u
=
[];
i
<
a
.
length
;
i
++
)
d
=
a
[
i
],
n
[
d
]
&&
u
.
push
(
n
[
d
][
0
]),
n
[
d
]
=
0
;
for
(
o
in
f
)
Object
.
prototype
.
hasOwnProperty
.
call
(
f
,
o
)
&&
(
e
[
o
]
=
f
[
o
]);
for
(
c
&&
c
(
a
,
f
,
t
);
u
.
length
;)
u
.
shift
()();
if
(
t
)
for
(
i
=
0
;
i
<
t
.
length
;
i
++
)
b
=
r
(
r
.
s
=
t
[
i
]);
return
b
};
var
a
=
{},
n
=
{
41
:
0
};
function
r
(
c
){
if
(
a
[
c
])
return
a
[
c
].
exports
;
var
n
=
a
[
c
]
=
{
i
:
c
,
l
:
!
1
,
exports
:{}};
return
e
[
c
].
call
(
n
.
exports
,
n
,
n
.
exports
,
r
),
n
.
l
=!
0
,
n
.
exports
}
r
.
e
=
function
(
e
){
var
c
=
n
[
e
];
if
(
0
===
c
)
return
new
Promise
(
function
(
e
){
e
()});
if
(
c
)
return
c
[
2
];
var
a
=
new
Promise
(
function
(
a
,
r
){
c
=
n
[
e
]
=
[
a
,
r
]});
c
[
2
]
=
a
;
var
f
=
document
.
getElementsByTagName
(
"head"
)[
0
],
t
=
document
.
createElement
(
"script"
);
t
.
type
=
"text/javascript"
,
t
.
charset
=
"utf-8"
,
t
.
async
=!
0
,
t
.
timeout
=
12
e4
,
r
.
nc
&&
t
.
setAttribute
(
"nonce"
,
r
.
nc
),
t
.
src
=
r
.
p
+
"static/js/"
+
e
+
"."
+
{
0
:
"c46bf98263c5c51682ba"
,
1
:
"a228c3925e5ca522f781"
,
2
:
"821ac7fa749185490d81"
,
3
:
"a68206a6f5fa6ab245a4"
,
4
:
"391ed5a1331378dc646e"
,
5
:
"106286f6f4c25ef272c2"
,
6
:
"8adc3e40c2a315929462"
,
7
:
"6c6d7037ae21d92c9d54"
,
8
:
"6adac84d44e5fce5927f"
,
9
:
"12c248005309eb7c3418"
,
10
:
"040c1444e3d6b1b025ae"
,
11
:
"1cdeadecd190975ee865"
,
12
:
"3984e1062e4e732ff959"
,
13
:
"ac6f4e9517e86c72d6d4"
,
14
:
"0005715d0bfe6be6d24a"
,
15
:
"c9b44d261b54893a9336"
,
16
:
"dc03d7ee99e29caaeec3"
,
17
:
"15667ec72c59f158d7e1"
,
18
:
"f8145ae6bed3f7001b31"
,
19
:
"dea71c85cfc1c95257c6"
,
20
:
"a13f20b14c85ffbc71dd"
,
21
:
"7c00e98a9a45d7b03edd"
,
22
:
"f8c34596d62020f68152"
,
23
:
"9ebfb2097c8f5794549e"
,
24
:
"b9b2c23a60d4e1543577"
,
25
:
"62a49fbe09beae51255d"
,
26
:
"fae363c3a4250c7478d9"
,
27
:
"05caac05437b07e1c48f"
,
28
:
"950c8d340e179f50412e"
,
29
:
"370532a9a99ad2c01de9"
,
30
:
"9b551cfd0e73a6bb947a"
,
31
:
"185c03a3a1fcc6baa14c"
,
32
:
"14eb4e316fe2ee5b71c7"
,
33
:
"95c4809690129a8cf568"
,
34
:
"bd0a2910f2721bfd2d00"
,
35
:
"1109042601af58991512"
,
36
:
"93ce9fa9136391a8f86f"
,
37
:
"006fe52bbf9f10620088"
,
38
:
"9c24948b216892f69ec7"
}[
e
]
+
".js"
;
var
o
=
setTimeout
(
d
,
12
e4
);
function
d
(){
t
.
onerror
=
t
.
onload
=
null
,
clearTimeout
(
o
);
var
c
=
n
[
e
];
0
!==
c
&&
(
c
&&
c
[
1
](
new
Error
(
"Loading chunk "
+
e
+
" failed."
)),
n
[
e
]
=
void
0
)}
return
t
.
onerror
=
t
.
onload
=
d
,
f
.
appendChild
(
t
),
a
},
r
.
m
=
e
,
r
.
c
=
a
,
r
.
d
=
function
(
e
,
c
,
a
){
r
.
o
(
e
,
c
)
||
Object
.
defineProperty
(
e
,
c
,{
configurable
:
!
1
,
enumerable
:
!
0
,
get
:
a
})},
r
.
n
=
function
(
e
){
var
c
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
r
.
d
(
c
,
"a"
,
c
),
c
},
r
.
o
=
function
(
e
,
c
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
c
)},
r
.
p
=
"/"
,
r
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
}}([]);
\ No newline at end of file
dev/static/js/manifest.8250535f87d2174fa673.js
0 → 100644
View file @
d0645b51
!
function
(
e
){
var
c
=
window
.
webpackJsonp
;
window
.
webpackJsonp
=
function
(
a
,
r
,
t
){
for
(
var
o
,
d
,
b
,
i
=
0
,
u
=
[];
i
<
a
.
length
;
i
++
)
d
=
a
[
i
],
f
[
d
]
&&
u
.
push
(
f
[
d
][
0
]),
f
[
d
]
=
0
;
for
(
o
in
r
)
Object
.
prototype
.
hasOwnProperty
.
call
(
r
,
o
)
&&
(
e
[
o
]
=
r
[
o
]);
for
(
c
&&
c
(
a
,
r
,
t
);
u
.
length
;)
u
.
shift
()();
if
(
t
)
for
(
i
=
0
;
i
<
t
.
length
;
i
++
)
b
=
n
(
n
.
s
=
t
[
i
]);
return
b
};
var
a
=
{},
f
=
{
41
:
0
};
function
n
(
c
){
if
(
a
[
c
])
return
a
[
c
].
exports
;
var
f
=
a
[
c
]
=
{
i
:
c
,
l
:
!
1
,
exports
:{}};
return
e
[
c
].
call
(
f
.
exports
,
f
,
f
.
exports
,
n
),
f
.
l
=!
0
,
f
.
exports
}
n
.
e
=
function
(
e
){
var
c
=
f
[
e
];
if
(
0
===
c
)
return
new
Promise
(
function
(
e
){
e
()});
if
(
c
)
return
c
[
2
];
var
a
=
new
Promise
(
function
(
a
,
n
){
c
=
f
[
e
]
=
[
a
,
n
]});
c
[
2
]
=
a
;
var
r
=
document
.
getElementsByTagName
(
"head"
)[
0
],
t
=
document
.
createElement
(
"script"
);
t
.
type
=
"text/javascript"
,
t
.
charset
=
"utf-8"
,
t
.
async
=!
0
,
t
.
timeout
=
12
e4
,
n
.
nc
&&
t
.
setAttribute
(
"nonce"
,
n
.
nc
),
t
.
src
=
n
.
p
+
"static/js/"
+
e
+
"."
+
{
0
:
"c46bf98263c5c51682ba"
,
1
:
"a228c3925e5ca522f781"
,
2
:
"821ac7fa749185490d81"
,
3
:
"a68206a6f5fa6ab245a4"
,
4
:
"391ed5a1331378dc646e"
,
5
:
"106286f6f4c25ef272c2"
,
6
:
"8adc3e40c2a315929462"
,
7
:
"6c6d7037ae21d92c9d54"
,
8
:
"6adac84d44e5fce5927f"
,
9
:
"12c248005309eb7c3418"
,
10
:
"040c1444e3d6b1b025ae"
,
11
:
"1cdeadecd190975ee865"
,
12
:
"3984e1062e4e732ff959"
,
13
:
"ac6f4e9517e86c72d6d4"
,
14
:
"0005715d0bfe6be6d24a"
,
15
:
"c9b44d261b54893a9336"
,
16
:
"dc03d7ee99e29caaeec3"
,
17
:
"15667ec72c59f158d7e1"
,
18
:
"f8145ae6bed3f7001b31"
,
19
:
"dea71c85cfc1c95257c6"
,
20
:
"a13f20b14c85ffbc71dd"
,
21
:
"05e960a30aac03b220f2"
,
22
:
"f8c34596d62020f68152"
,
23
:
"9ebfb2097c8f5794549e"
,
24
:
"b9b2c23a60d4e1543577"
,
25
:
"62a49fbe09beae51255d"
,
26
:
"fae363c3a4250c7478d9"
,
27
:
"05caac05437b07e1c48f"
,
28
:
"950c8d340e179f50412e"
,
29
:
"370532a9a99ad2c01de9"
,
30
:
"9b551cfd0e73a6bb947a"
,
31
:
"185c03a3a1fcc6baa14c"
,
32
:
"14eb4e316fe2ee5b71c7"
,
33
:
"95c4809690129a8cf568"
,
34
:
"bd0a2910f2721bfd2d00"
,
35
:
"1109042601af58991512"
,
36
:
"93ce9fa9136391a8f86f"
,
37
:
"006fe52bbf9f10620088"
,
38
:
"9c24948b216892f69ec7"
}[
e
]
+
".js"
;
var
o
=
setTimeout
(
d
,
12
e4
);
function
d
(){
t
.
onerror
=
t
.
onload
=
null
,
clearTimeout
(
o
);
var
c
=
f
[
e
];
0
!==
c
&&
(
c
&&
c
[
1
](
new
Error
(
"Loading chunk "
+
e
+
" failed."
)),
f
[
e
]
=
void
0
)}
return
t
.
onerror
=
t
.
onload
=
d
,
r
.
appendChild
(
t
),
a
},
n
.
m
=
e
,
n
.
c
=
a
,
n
.
d
=
function
(
e
,
c
,
a
){
n
.
o
(
e
,
c
)
||
Object
.
defineProperty
(
e
,
c
,{
configurable
:
!
1
,
enumerable
:
!
0
,
get
:
a
})},
n
.
n
=
function
(
e
){
var
c
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
n
.
d
(
c
,
"a"
,
c
),
c
},
n
.
o
=
function
(
e
,
c
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
c
)},
n
.
p
=
"/"
,
n
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
}}([]);
\ No newline at end of file
dist/index.html
View file @
d0645b51
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css
><title>
唱唱启蒙-后台
</title><link
href=
/static/css/app.b
6430769cefb760ff565ca3fba4b1f31.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.700e277bf0e40a6f263a.js
></script><script
type=
text/javascript
src=
/static/js/vendor.3e7fed473430ef1ee3ac.js
></script><script
type=
text/javascript
src=
/static/js/app.6efe19d011af278159fc
.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css
><title>
唱唱启蒙-后台
</title><link
href=
/static/css/app.b
2b0930ad73c5fcf33a671cf4c9d3fbb.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.c62c1a9f20bba85cac28.js
></script><script
type=
text/javascript
src=
/static/js/vendor.3e7fed473430ef1ee3ac.js
></script><script
type=
text/javascript
src=
/static/js/app.1d2c6e5fe654e640c6d7
.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
el
.
onerror
=
function
(
a
,
b
,
c
){
el
.
onerror
=
function
(
a
,
b
,
c
){
console
.
log
(
'error:'
,
a
,
b
,
c
);
console
.
log
(
'error:'
,
a
,
b
,
c
);
};
};
...
...
dist/static/css/app.b2b0930ad73c5fcf33a671cf4c9d3fbb.css
0 → 100644
View file @
d0645b51
This source diff could not be displayed because it is too large. You can
view the blob
instead.
dist/static/js/24.a83a8f6a9f7f9494892e.js
0 → 100644
View file @
d0645b51
webpackJsonp
([
24
],{
"1djJ"
:
function
(
e
,
t
,
o
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
s
=
o
(
"CCn6"
),
i
=
o
(
"+TkF"
),
l
=
o
(
"kmJW"
),
r
=
{
name
:
"dialogObj"
,
props
:[
"dialogObj"
],
filters
:{
filterGoods
:
function
(
e
){
return
"["
+
i
.
e
[
e
.
goods_type
]
+
"]["
+
e
.
current_price
/
100
+
"元]"
+
e
.
name
}},
data
:
function
(){
return
{
loading
:
!
0
,
goodsYou
:[],
goodsList
:[],
form
:{
name
:
""
,
goods_type
:
1
,
goods_desc
:{
desc
:
""
,
imgLesson
:[],
img
:[]},
course_id
:
""
,
course_type
:
0
,
watch_num
:
""
,
duration_num
:
0
,
original_price
:
""
,
current_price
:
""
,
is_real
:
0
,
is_auth_user
:
0
,
share_desc
:{
title
:
""
,
content
:
""
,
img
:[],
refImg
:[]},
desc
:{
detail
:
""
,
qa
:
""
,
customer_service
:[],
after_goods_id
:
""
,
before_goods_id
:
""
}},
lessonList
:[],
goOn_goods_Id
:{
after_goods_id
:
""
,
before_goods_id
:
""
}}},
methods
:{
sub
:
function
(){
var
e
=
this
,
t
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
form
)
+
""
);
switch
(
3
!==
t
.
goods_type
&&
4
!==
t
.
goods_type
||
(
t
.
course_id
=
0
,
t
.
watch_num
=
0
),
t
.
desc
.
before_goods_id
=
this
.
goOn_goods_Id
.
before_goods_id
,
this
.
goodsYou
.
length
<
1
?
t
.
desc
.
use_goods_ids
=
""
:
t
.
desc
.
use_goods_ids
=
this
.
goodsYou
.
toString
(),
t
.
desc
.
after_goods_id
=
this
.
goOn_goods_Id
.
after_goods_id
,
t
.
original_price
=
(
100
*
t
.
original_price
).
toFixed
(
0
),
t
.
current_price
=
(
100
*
t
.
current_price
).
toFixed
(
0
),
t
.
invite_earnings
=
(
100
*
t
.
invite_earnings
).
toFixed
(
0
),
t
.
goods_desc
=
JSON
.
stringify
(
t
.
goods_desc
),
t
.
desc
=
JSON
.
stringify
(
t
.
desc
),
t
.
share_desc
=
JSON
.
stringify
(
t
.
share_desc
),
this
.
dialogObj
.
type
){
case
1
:
Object
(
s
.
R
)(
this
.
dialogObj
.
id
,
t
).
then
(
function
(
t
){
e
.
$message
({
type
:
"success"
,
message
:
"修改成功!"
}),
e
.
$emit
(
"reflash"
),
e
.
dialogObj
.
show
=!
1
});
break
;
case
0
:
Object
(
s
.
i
)(
t
).
then
(
function
(
t
){
e
.
$message
({
type
:
"success"
,
message
:
"新增成功!"
}),
e
.
$emit
(
"reflash"
),
e
.
dialogObj
.
show
=!
1
})}},
removeFileMain
:
function
(
e
){
var
t
=
this
.
form
.
goods_desc
.
img
.
findIndex
(
function
(
t
){
return
t
.
name
===
e
.
name
});
this
.
form
.
goods_desc
.
img
.
splice
(
t
,
1
)},
uploadFileLesson
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
this
.
fileUid
=
e
.
file
.
uid
,
Object
(
s
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
e
){
t
.
form
.
goods_desc
.
imgLesson
=
[{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
}],
t
.
$message
({
message
:
"上传成功"
,
type
:
"success"
})})},
removeFileLesson
:
function
(){
this
.
form
.
goods_desc
.
imgLesson
=
[]},
uploadFileMain
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
this
.
fileUid
=
e
.
file
.
uid
,
Object
(
s
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
e
){
t
.
form
.
goods_desc
.
img
.
push
({
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
}),
t
.
$message
({
message
:
"上传成功"
,
type
:
"success"
})})},
removeFileShareRef
:
function
(){
this
.
form
.
share_desc
.
refImg
=
[]},
uploadFileMainShareRef
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
this
.
fileUid
=
e
.
file
.
uid
,
Object
(
s
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
e
){
t
.
$message
({
message
:
"上传成功"
,
type
:
"success"
}),
t
.
form
.
share_desc
.
refImg
?
t
.
form
.
share_desc
.
refImg
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
}:(
t
.
form
.
share_desc
.
refImg
=
[],
t
.
form
.
share_desc
.
refImg
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
})})},
uploadFileMainShare
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
this
.
fileUid
=
e
.
file
.
uid
,
Object
(
s
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
e
){
t
.
$message
({
message
:
"上传成功"
,
type
:
"success"
}),
t
.
form
.
share_desc
.
img
?
t
.
form
.
share_desc
.
img
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
}:(
t
.
form
.
share_desc
.
img
=
[],
t
.
form
.
share_desc
.
img
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
})})},
uploadFileMainService
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
this
.
fileUid
=
e
.
file
.
uid
,
Object
(
s
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
e
){
t
.
$message
({
message
:
"上传成功"
,
type
:
"success"
}),
t
.
form
.
desc
.
customer_service
?
t
.
form
.
desc
.
customer_service
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
}:(
t
.
form
.
desc
.
customer_service
=
[],
t
.
form
.
desc
.
customer_service
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
})})},
uploadFileShare
:
function
(
e
){
var
t
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
e
.
file
.
uid
}),
this
.
fileUid
=
e
.
file
.
uid
,
Object
(
s
.
_63
)({
file
:
e
.
file
,
type
:
"local"
}).
then
(
function
(
e
){
t
.
$message
({
message
:
"上传成功"
,
type
:
"success"
}),
t
.
form
.
share_desc
.
img
?
t
.
form
.
share_desc
.
img
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
}:(
t
.
form
.
share_desc
.
img
=
[],
t
.
form
.
share_desc
.
img
[
0
]
=
{
name
:
e
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
e
.
url
,
title
:
""
,
lable
:
""
})})},
initDialog
:
function
(){
var
e
=
this
;
switch
(
Object
(
s
.
_20
)({
limit
:
9999
}).
then
(
function
(
t
){
e
.
goodsList
=
t
.
list
}),
this
.
dialogObj
.
type
){
case
0
:
this
.
loading
=!
1
,
this
.
goOn_goods_Id
.
after_goods_id
=
""
,
this
.
goodsYou
=
[],
this
.
goOn_goods_Id
.
before_goods_id
=
""
,
this
.
form
=
{
name
:
""
,
goods_type
:
1
,
goods_desc
:{
desc
:
""
,
img
:[]},
course_id
:
""
,
course_type
:
0
,
watch_num
:
""
,
duration_num
:
0
,
original_price
:
""
,
current_price
:
""
,
is_real
:
0
,
is_auth_user
:
0
,
share_desc
:{
title
:
""
,
content
:
""
,
refImg
:[],
img
:[]},
desc
:{
detail
:
""
,
qa
:
""
,
customer_service
:[],
before_goods_id
:
0
,
after_goods_id
:
0
}},
this
.
getLessonList
();
break
;
case
1
:
case
2
:
this
.
goOn_goods_Id
.
after_goods_id
=
""
,
this
.
goOn_goods_Id
.
before_goods_id
=
""
,
this
.
goodsYou
=
[],
this
.
form
=
{
name
:
""
,
goods_type
:
1
,
goods_desc
:{
desc
:
""
,
img
:[]},
course_id
:
""
,
course_type
:
0
,
watch_num
:
""
,
duration_num
:
0
,
original_price
:
""
,
current_price
:
""
,
is_real
:
0
,
is_auth_user
:
0
,
share_desc
:{
title
:
""
,
content
:
""
,
refImg
:[],
img
:[]},
desc
:{
detail
:
""
,
qa
:
""
,
customer_service
:[],
before_goods_id
:
0
,
after_goods_id
:
0
}},
Object
(
s
.
_19
)(
this
.
dialogObj
.
id
).
then
(
function
(
t
){
e
.
loading
=!
1
;
var
o
=
JSON
.
parse
(
t
.
share_desc
);
o
.
refImg
||
(
o
.
refImg
=
[]),
e
.
form
=
{
name
:
t
.
name
,
goods_type
:
t
.
goods_type
,
goods_desc
:
JSON
.
parse
(
t
.
goods_desc
),
course_id
:
t
.
course_id
,
course_type
:
t
.
course_type
,
watch_num
:
t
.
watch_num
,
duration_num
:
t
.
duration_num
,
original_price
:
t
.
original_price
/
100
,
current_price
:
t
.
current_price
/
100
,
is_real
:
t
.
is_real
,
is_auth_user
:
t
.
is_auth_user
,
share_desc
:
JSON
.
parse
(
t
.
share_desc
),
desc
:
JSON
.
parse
(
t
.
desc
),
invite_earnings
:
t
.
invite_earnings
/
100
,
is_auth_teacher
:
t
.
is_auth_teacher
},
e
.
form
.
desc
.
before_goods_id
&&
(
e
.
goOn_goods_Id
.
before_goods_id
=
e
.
form
.
desc
.
before_goods_id
),
e
.
form
.
desc
.
after_goods_id
&&
(
e
.
goOn_goods_Id
.
after_goods_id
=
e
.
form
.
desc
.
after_goods_id
),
e
.
form
.
desc
.
use_goods_ids
&&
(
e
.
goodsYou
=
e
.
form
.
desc
.
use_goods_ids
.
split
(
","
),
e
.
goodsYou
=
e
.
goodsYou
.
map
(
function
(
e
){
return
+
e
})),
e
.
getLessonList
()});
break
;
case
3
:
this
.
title
=
"编辑"
,
this
.
show
=
this
.
dialogObj
.
show
,
this
.
id
=
this
.
dialogObj
.
id
,
this
.
type
=
2
}},
changeLessonType
:
function
(){
this
.
getLessonList
()},
getLessonList
:
function
(){
var
e
=
this
;
Object
(
s
.
_21
)({
type
:
this
.
form
.
course_type
}).
then
(
function
(
t
){
e
.
lessonList
=
t
.
list
})}},
watch
:{
dialogObj
:{
handler
:
function
(){
this
.
loading
=!
0
,
this
.
initDialog
()},
deep
:
!
0
},
show
:
function
(
e
){
this
.
$emit
(
"changeShow"
,
e
)}}},
a
=
{
render
:
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
o
=
e
.
_self
.
_c
||
t
;
return
o
(
"el-dialog"
,{
attrs
:{
title
:
e
.
dialogObj
.
title
,
center
:
""
,
"append-to-body"
:
""
,
visible
:
e
.
dialogObj
.
show
,
width
:
"800px"
},
on
:{
"update:visible"
:
function
(
t
){
e
.
$set
(
e
.
dialogObj
,
"show"
,
t
)}}},[
o
(
"div"
,{
directives
:[{
name
:
"loading"
,
rawName
:
"v-loading"
,
value
:
e
.
loading
,
expression
:
"loading"
}]},[
o
(
"el-form"
,{
ref
:
"form"
,
attrs
:{
model
:
e
.
form
,
"label-width"
:
"100px"
,
disabled
:
2
===
e
.
dialogObj
.
type
}},[
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品名称"
}},[
o
(
"el-input"
,{
model
:{
value
:
e
.
form
.
name
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"name"
,
t
)},
expression
:
"form.name"
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品描述"
}},[
o
(
"el-input"
,{
model
:{
value
:
e
.
form
.
goods_desc
.
desc
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
.
goods_desc
,
"desc"
,
t
)},
expression
:
"form.goods_desc.desc"
}})],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品类型"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
model
:{
value
:
e
.
form
.
goods_type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"goods_type"
,
t
)},
expression
:
"form.goods_type"
}},[
o
(
"el-option"
,{
attrs
:{
label
:
"普通商品"
,
value
:
1
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"团购商品"
,
value
:
2
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"续课商品"
,
value
:
3
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"优惠券商品"
,
value
:
4
}})],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
4
===
e
.
form
.
goods_type
?
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"可用商品"
}},[
o
(
"el-select"
,{
attrs
:{
multiple
:
""
,
placeholder
:
"全部"
},
model
:{
value
:
e
.
goodsYou
,
callback
:
function
(
t
){
e
.
goodsYou
=
t
},
expression
:
"goodsYou"
}},
e
.
_l
(
e
.
goodsList
,
function
(
t
){
return
o
(
"el-option"
,{
key
:
t
.
id
,
attrs
:{
label
:
e
.
_f
(
"filterGoods"
)(
t
),
value
:
t
.
id
}})}))],
1
)],
1
):
e
.
_e
()],
1
),
e
.
_v
(
" "
),
3
===
e
.
form
.
goods_type
?
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"续课已购商品"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
model
:{
value
:
e
.
goOn_goods_Id
.
before_goods_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
goOn_goods_Id
,
"before_goods_id"
,
t
)},
expression
:
"goOn_goods_Id.before_goods_id"
}},
e
.
_l
(
e
.
goodsList
,
function
(
t
){
return
o
(
"el-option"
,{
key
:
t
.
id
,
attrs
:{
label
:
e
.
_f
(
"filterGoods"
)(
t
),
value
:
t
.
id
}})}))],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"续购商品"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
model
:{
value
:
e
.
goOn_goods_Id
.
after_goods_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
goOn_goods_Id
,
"after_goods_id"
,
t
)},
expression
:
"goOn_goods_Id.after_goods_id"
}},
e
.
_l
(
e
.
goodsList
,
function
(
t
){
return
o
(
"el-option"
,{
key
:
t
.
id
,
attrs
:{
label
:
e
.
_f
(
"filterGoods"
)(
t
),
value
:
t
.
id
}})}))],
1
)],
1
)],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
3
!==
e
.
form
.
goods_type
&&
4
!==
e
.
form
.
goods_type
?
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"课程类型"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
on
:{
change
:
function
(
t
){
e
.
changeLessonType
()}},
model
:{
value
:
e
.
form
.
course_type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"course_type"
,
t
)},
expression
:
"form.course_type"
}},[
o
(
"el-option"
,{
attrs
:{
label
:
"日课"
,
value
:
1
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"月课"
,
value
:
0
}})],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"课程"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
model
:{
value
:
e
.
form
.
course_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"course_id"
,
t
)},
expression
:
"form.course_id"
}},
e
.
_l
(
e
.
lessonList
,
function
(
e
){
return
o
(
"el-option"
,{
key
:
e
.
id
,
attrs
:{
label
:
e
.
title
,
value
:
e
.
id
}})}))],
1
)],
1
)],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
3
!==
e
.
form
.
goods_type
&&
4
!==
e
.
form
.
goods_type
?
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"观看时长(节)"
}},[
o
(
"el-input-number"
,{
attrs
:{
label
:
"课时数"
},
model
:{
value
:
e
.
form
.
watch_num
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"watch_num"
,
t
)},
expression
:
"form.watch_num"
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"续看时长(天)"
}},[
o
(
"el-input-number"
,{
attrs
:{
label
:
"看课天数"
},
model
:{
value
:
e
.
form
.
duration_num
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"duration_num"
,
t
)},
expression
:
"form.duration_num"
}})],
1
)],
1
)],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
3
!==
e
.
form
.
goods_type
&&
4
!==
e
.
form
.
goods_type
?
o
(
"el-form-item"
,{
attrs
:{
label
:
"课程封面(750*600)"
}},[
o
(
"el-upload"
,{
staticClass
:
"upload-demo"
,
attrs
:{
"list-type"
:
"picture-card"
,
action
:
"/api/public/upload"
,
"http-request"
:
e
.
uploadFileLesson
,
"on-remove"
:
e
.
removeFileLesson
,
limit
:
1
,
"file-list"
:
e
.
form
.
goods_desc
.
imgLesson
}},[
o
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
o
(
"el-form-item"
,{
attrs
:{
label
:
"主图(750*600)"
}},[
o
(
"el-upload"
,{
staticClass
:
"upload-demo"
,
attrs
:{
"list-type"
:
"picture-card"
,
action
:
"/api/public/upload"
,
"http-request"
:
e
.
uploadFileMain
,
"on-remove"
:
e
.
removeFileMain
,
"file-list"
:
e
.
form
.
goods_desc
.
img
}},[
o
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
),
e
.
_v
(
" "
),
o
(
"el-form-item"
,{
attrs
:{
label
:
"客服(200*200)"
}},[
o
(
"el-upload"
,{
staticClass
:
"upload-demo"
,
class
:
e
.
form
.
desc
.
customer_service
&&
e
.
form
.
desc
.
customer_service
.
length
>
0
?
"uploadService"
:
""
,
attrs
:{
"list-type"
:
"picture-card"
,
action
:
"/api/public/upload"
,
limit
:
1
,
"http-request"
:
e
.
uploadFileMainService
,
"file-list"
:
e
.
form
.
desc
.
customer_service
}},[
o
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
),
e
.
_v
(
" "
),
1
===
e
.
form
.
goods_type
?
o
(
"el-form-item"
,{
attrs
:{
label
:
"推荐奖金(元)"
}},[
o
(
"el-input-number"
,{
attrs
:{
label
:
"推荐奖金"
},
model
:{
value
:
e
.
form
.
invite_earnings
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"invite_earnings"
,
t
)},
expression
:
"form.invite_earnings"
}})],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
1
===
e
.
form
.
goods_type
?
o
(
"el-form-item"
,{
attrs
:{
label
:
"是否配置实物"
}},[
o
(
"el-switch"
,{
attrs
:{
"active-value"
:
1
,
"inactive-value"
:
0
},
model
:{
value
:
e
.
form
.
is_real
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"is_real"
,
t
)},
expression
:
"form.is_real"
}}),
e
.
_v
(
" "
),
o
(
"span"
,{
staticStyle
:{
"font-size"
:
"12px"
}},[
e
.
_v
(
"打开后提示用户填写具体住址"
)])],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
1
===
e
.
form
.
goods_type
?
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"是否允许用户推广"
,
"label-width"
:
"200"
}},[
o
(
"el-switch"
,{
attrs
:{
"active-value"
:
1
,
"inactive-value"
:
0
},
model
:{
value
:
e
.
form
.
is_auth_user
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"is_auth_user"
,
t
)},
expression
:
"form.is_auth_user"
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"是否允许老师推广"
,
"label-width"
:
"200"
}},[
o
(
"el-switch"
,{
attrs
:{
"active-value"
:
1
,
"inactive-value"
:
0
},
model
:{
value
:
e
.
form
.
is_auth_teacher
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"is_auth_teacher"
,
t
)},
expression
:
"form.is_auth_teacher"
}})],
1
)],
1
)],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
1
===
e
.
form
.
goods_type
||
3
===
e
.
form
.
goods_type
?
"原价(元)"
:
4
===
e
.
form
.
goods_type
?
"抵扣价格(元)"
:
"单买价格(元)"
}},[
o
(
"el-input-number"
,{
attrs
:{
label
:
"原价"
},
model
:{
value
:
e
.
form
.
original_price
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"original_price"
,
t
)},
expression
:
"form.original_price"
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
1
===
e
.
form
.
goods_type
||
3
===
e
.
form
.
goods_type
?
"现价(元)"
:
4
===
e
.
form
.
goods_type
?
"购买价格(元)"
:
"拼团价格(元)"
}},[
o
(
"el-input-number"
,{
attrs
:{
label
:
"现价"
},
model
:{
value
:
e
.
form
.
current_price
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
,
"current_price"
,
t
)},
expression
:
"form.current_price"
}})],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
2
===
e
.
form
.
goods_type
?
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"成团人数(人)"
}},[
o
(
"el-input-number"
,{
attrs
:{
label
:
"成团人数"
},
model
:{
value
:
e
.
form
.
desc
.
group_number
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
.
desc
,
"group_number"
,
t
)},
expression
:
"form.desc.group_number"
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"团购失效时间(小时)"
,
"label-width"
:
"136"
}},[
o
(
"el-input-number"
,{
attrs
:{
label
:
"团购失效时间"
},
model
:{
value
:
e
.
form
.
desc
.
group_continue
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
.
desc
,
"group_continue"
,
t
)},
expression
:
"form.desc.group_continue"
}})],
1
)],
1
)],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
3
!==
e
.
form
.
goods_type
?
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"分享标题"
}},[
o
(
"el-input"
,{
model
:{
value
:
e
.
form
.
share_desc
.
title
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
.
share_desc
,
"title"
,
t
)},
expression
:
"form.share_desc.title"
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-col"
,{
attrs
:{
span
:
12
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"分享内容"
}},[
o
(
"el-input"
,{
model
:{
value
:
e
.
form
.
share_desc
.
content
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
.
share_desc
,
"content"
,
t
)},
expression
:
"form.share_desc.content"
}})],
1
)],
1
)],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
3
!==
e
.
form
.
goods_type
?
o
(
"el-form-item"
,{
attrs
:{
label
:
"分享主图(300*300)"
}},[
o
(
"el-upload"
,{
attrs
:{
"list-type"
:
"picture-card"
,
action
:
"/api/public/upload"
,
limit
:
1
,
"file-list"
:
e
.
form
.
share_desc
.
img
,
"http-request"
:
e
.
uploadFileMainShare
}},[
o
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
3
!==
e
.
form
.
goods_type
?
o
(
"el-form-item"
,{
attrs
:{
label
:
"分享海报"
}},[
o
(
"el-upload"
,{
attrs
:{
"list-type"
:
"picture-card"
,
action
:
"/api/public/upload"
,
limit
:
1
,
"file-list"
:
e
.
form
.
share_desc
.
refImg
,
"http-request"
:
e
.
uploadFileMainShareRef
}},[
o
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
24
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品详情"
}},[
o
(
"el-input"
,{
attrs
:{
type
:
"textarea"
,
rows
:
25
},
model
:{
value
:
e
.
form
.
desc
.
detail
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
.
desc
,
"detail"
,
t
)},
expression
:
"form.desc.detail"
}})],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-row"
,[
o
(
"el-col"
,{
attrs
:{
span
:
24
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"购买须知"
}},[
o
(
"el-input"
,{
attrs
:{
type
:
"textarea"
,
rows
:
25
},
model
:{
value
:
e
.
form
.
desc
.
qa
,
callback
:
function
(
t
){
e
.
$set
(
e
.
form
.
desc
,
"qa"
,
t
)},
expression
:
"form.desc.qa"
}})],
1
)],
1
)],
1
)],
1
),
e
.
_v
(
" "
),
2
!==
e
.
dialogObj
.
type
?
o
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
o
(
"el-button"
,{
on
:{
click
:
function
(
t
){
e
.
dialogObj
.
show
=!
1
}}},[
e
.
_v
(
"取 消"
)]),
e
.
_v
(
" "
),
o
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
e
.
sub
}},[
e
.
_v
(
"确 定"
)])],
1
):
e
.
_e
()],
1
)])},
staticRenderFns
:[]};
var
n
=
o
(
"VU/8"
)(
r
,
a
,
!
1
,
function
(
e
){
o
(
"taoj"
)},
"data-v-3037477c"
,
null
).
exports
,
c
=
{
name
:
"index"
,
data
:
function
(){
return
{
searchFrom
:{
name
:
""
,
goods_type
:
""
,
status
:
""
,
course_id
:
""
},
userList
:[],
total
:
0
,
nowPage
:
1
,
limit
:
10
,
chooseDialog
:{
show
:
!
1
,
title
:
""
,
id
:
""
,
form
:{
value
:
""
,
list
:[]},
type
:
0
},
dialogObj
:{
type
:
0
,
show
:
!
1
,
title
:
""
,
id
:
""
},
classList
:[]}},
components
:{
page
:
l
.
a
,
dialogCom
:
n
},
filters
:{
isOrNot
:
function
(
e
){
return
i
.
h
[
e
]},
goodsType
:
function
(
e
){
return
i
.
e
[
e
]},
lessonType
:
function
(
e
){
return
i
.
i
[
e
]},
goodsStatus
:
function
(
e
){
return
i
.
d
[
e
]}},
mounted
:
function
(){
this
.
getUser
(),
this
.
getClassList
()},
methods
:{
onPageChange
:
function
(
e
){
this
.
nowPage
=
e
,
this
.
getUser
()},
onSizeChange
:
function
(
e
){
this
.
limit
=
e
,
this
.
nowPage
=
1
,
this
.
getUser
()},
copyShop
:
function
(
e
){
var
t
=
this
;
this
.
$confirm
(
"此操作将复制该商品?"
,
"提示"
,{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
(){
Object
(
s
.
t
)(
e
.
id
).
then
(
function
(
e
){
t
.
$message
({
type
:
"success"
,
message
:
"复制成功!"
})}),
t
.
getUser
()})},
copyUrl
:
function
(
e
){
var
t
=
"https://wechat.changchangenglish.com/#/buyDetail?shopId="
+
e
,
o
=
document
.
createElement
(
"input"
);
o
.
value
=
t
,
document
.
body
.
appendChild
(
o
),
o
.
select
(),
document
.
execCommand
(
"Copy"
),
this
.
$message
({
message
:
"已成功复制到剪切板"
,
type
:
"success"
}),
o
.
remove
()},
dialogSub
:
function
(){
var
e
=
this
;
switch
(
this
.
chooseDialog
.
type
){
case
0
:
Object
(
s
.
p
)(
this
.
chooseDialog
.
id
,
this
.
chooseDialog
.
form
.
value
).
then
(
function
(
t
){
e
.
$message
({
message
:
"绑定成功"
,
type
:
"success"
}),
e
.
chooseDialog
.
show
=!
1
}),
this
.
getUser
();
break
;
case
1
:
var
t
=
{
conflict_goods_ids
:
this
.
chooseDialog
.
form
.
list
.
toString
()};
Object
(
s
.
s
)(
this
.
chooseDialog
.
id
,
t
).
then
(
function
(
t
){
e
.
$message
({
message
:
"设置成功"
,
type
:
"success"
}),
e
.
chooseDialog
.
show
=!
1
,
e
.
getUser
()})}},
getUser
:
function
(){
var
e
=
this
,
t
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
this
.
searchFrom
.
name
&&
(
t
.
name
=
this
.
searchFrom
.
name
),
this
.
searchFrom
.
goods_type
&&
(
t
.
goods_type
=
this
.
searchFrom
.
goods_type
),
this
.
searchFrom
.
course_id
&&
(
t
.
course_id
=
this
.
searchFrom
.
course_id
),
this
.
searchFrom
.
status
&&
(
t
.
status
=
this
.
searchFrom
.
status
),
this
.
searchFrom
.
current_price
&&
(
t
.
current_price
=
100
*
this
.
searchFrom
.
current_price
),
Object
(
s
.
_20
)(
t
).
then
(
function
(
t
){
t
.
list
.
forEach
(
function
(
e
){
""
===
e
.
conflict_goods_ids
?
e
.
conflict_goods_ids
=
[]:
e
.
conflict_goods_ids
=
e
.
conflict_goods_ids
.
split
(
","
)}),
e
.
userList
=
t
.
list
,
e
.
total
=
t
.
total
})},
edit
:
function
(
e
){
this
.
dialogObj
=
{
type
:
1
,
title
:
"编辑商品"
,
show
:
!
0
,
id
:
e
.
id
}},
add
:
function
(){
this
.
dialogObj
=
{
type
:
0
,
title
:
"添加商品"
,
show
:
!
0
}},
detail
:
function
(
e
){
this
.
dialogObj
.
id
=
e
.
id
,
this
.
dialogObj
.
type
=
2
,
this
.
dialogObj
.
title
=
"查看商品"
,
this
.
dialogObj
.
show
=!
0
},
onDel
:
function
(
e
){
var
t
=
this
;
this
.
$confirm
(
"此操作将删除该商品?"
,
"提示"
,{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
(){
Object
(
s
.
I
)(
e
.
id
).
then
(
function
(
e
){
t
.
$message
({
type
:
"success"
,
message
:
"删除成功!"
})}),
t
.
getUser
()})},
onUp
:
function
(
e
){
var
t
=
this
;
this
.
$confirm
(
"此操作将上架该商品?"
,
"提示"
,{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
(){
Object
(
s
.
_56
)(
e
.
id
).
then
(
function
(
e
){
t
.
$message
({
type
:
"success"
,
message
:
"操作成功!"
}),
t
.
getUser
()})})},
onDown
:
function
(
e
){
var
t
=
this
;
this
.
$confirm
(
"此操作将下架该商品?"
,
"提示"
,{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
(){
Object
(
s
.
K
)(
e
.
id
).
then
(
function
(
e
){
t
.
$message
({
type
:
"success"
,
message
:
"操作成功!"
}),
t
.
getUser
()})})},
changeShow
:
function
(
e
){
this
.
dialogObj
.
show
=
e
},
bindOther
:
function
(
e
){
this
.
chooseDialog
=
{
show
:
!
0
,
title
:
"绑定商品"
,
id
:
e
.
id
,
form
:{
value
:
""
,
list
:[]},
type
:
0
}},
conflict
:
function
(
e
){
this
.
chooseDialog
=
{
show
:
!
0
,
title
:
"冲突商品"
,
id
:
e
.
id
,
form
:{
value
:
""
,
list
:
e
.
conflict_goods_ids
},
type
:
1
}},
getClassList
:
function
(){
var
e
=
this
;
Object
(
s
.
_21
)({
limit
:
2
e3
,
page
:
1
}).
then
(
function
(
t
){
e
.
classList
=
t
.
list
})}}},
d
=
{
render
:
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
o
=
e
.
_self
.
_c
||
t
;
return
o
(
"div"
,{
staticClass
:
"user"
},[
o
(
"el-form"
,{
ref
:
"searchFrom"
,
staticClass
:
"search-form"
,
attrs
:{
model
:
e
.
searchFrom
,
"label-width"
:
"100px"
,
inline
:
""
}},[
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品名称"
}},[
o
(
"el-input"
,{
model
:{
value
:
e
.
searchFrom
.
name
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"name"
,
t
)},
expression
:
"searchFrom.name"
}})],
1
),
e
.
_v
(
" "
),
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品类型"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
on
:{
change
:
e
.
getUser
},
model
:{
value
:
e
.
searchFrom
.
goods_type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"goods_type"
,
t
)},
expression
:
"searchFrom.goods_type"
}},[
o
(
"el-option"
,{
attrs
:{
value
:
""
,
label
:
"请选择"
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"普通商品"
,
value
:
1
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"团购商品"
,
value
:
2
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"续课商品"
,
value
:
3
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
label
:
"优惠券商品"
,
value
:
4
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-form-item"
,{
attrs
:{
label
:
"课程"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
on
:{
change
:
e
.
getUser
},
model
:{
value
:
e
.
searchFrom
.
course_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"course_id"
,
t
)},
expression
:
"searchFrom.course_id"
}},[
o
(
"el-option"
,{
attrs
:{
value
:
""
,
label
:
"请选择"
}}),
e
.
_v
(
" "
),
e
.
_l
(
e
.
classList
,
function
(
e
,
t
){
return
o
(
"el-option"
,{
key
:
t
,
attrs
:{
label
:
e
.
title
,
value
:
e
.
id
}})})],
2
)],
1
),
e
.
_v
(
" "
),
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品状态"
}},[
o
(
"el-select"
,{
attrs
:{
placeholder
:
"请选择"
},
on
:{
change
:
e
.
getUser
},
model
:{
value
:
e
.
searchFrom
.
status
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"status"
,
t
)},
expression
:
"searchFrom.status"
}},[
o
(
"el-option"
,{
attrs
:{
value
:
""
,
label
:
"请选择"
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
value
:
"0"
,
label
:
"编辑中"
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
value
:
"1"
,
label
:
"上架"
}}),
e
.
_v
(
" "
),
o
(
"el-option"
,{
attrs
:{
value
:
"2"
,
label
:
"下架"
}})],
1
)],
1
),
e
.
_v
(
" "
),
o
(
"el-form-item"
,{
attrs
:{
label
:
"商品现价/团购价"
,
"label-width"
:
"120px"
}},[
o
(
"el-input-number"
,{
model
:{
value
:
e
.
searchFrom
.
current_price
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"current_price"
,
t
)},
expression
:
"searchFrom.current_price"
}})],
1
),
e
.
_v
(
" "
),
o
(
"el-form-item"
,[
o
(
"div"
,{
staticClass
:
"search-btn-block"
},[
o
(
"el-button"
,{
attrs
:{
type
:
"primary"
,
plain
:
""
,
icon
:
"el-icon-search"
},
on
:{
click
:
e
.
getUser
}},[
e
.
_v
(
"搜索"
)])],
1
)])],
1
),
e
.
_v
(
" "
),
o
(
"div"
,{
staticClass
:
"new-block"
},[
e
.
$store
.
state
.
readonly
?
e
.
_e
():
o
(
"el-button"
,{
attrs
:{
type
:
"success"
,
plain
:
""
},
on
:{
click
:
e
.
add
}},[
e
.
_v
(
"添加商品"
)])],
1
),
e
.
_v
(
" "
),
o
(
"el-table"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
e
.
userList
}},[
o
(
"el-table-column"
,{
attrs
:{
prop
:
"name"
,
label
:
"名称"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
o
(
"router-link"
,{
attrs
:{
to
:{
name
:
"periods"
,
query
:{
goods_id
:
t
.
row
.
id
}}}},[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
name
)
+
"
\n
"
)])]}}])}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
label
:
"商品类型"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
e
.
_f
(
"goodsType"
)(
t
.
row
.
goods_type
))
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
label
:
"商品原价/直购价"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
original_price
/
100
)
+
"元
\n
"
)]}}])}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
label
:
"商品现价/团购价"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
current_price
/
100
)
+
"元
\n
"
)]}}])}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
prop
:
"course_title"
,
label
:
"课程名称"
}}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
label
:
"课程类别"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
e
.
_f
(
"lessonType"
)(
t
.
row
.
course_type
))
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
label
:
"是否有实物"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
e
.
_f
(
"isOrNot"
)(
t
.
row
.
is_real
))
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
label
:
"状态"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
e
.
_f
(
"goodsStatus"
)(
t
.
row
.
status
))
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
o
(
"el-table-column"
,{
attrs
:{
width
:
"60"
,
label
:
"操作"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
o
(
"el-popover"
,{
attrs
:{
placement
:
"top"
,
width
:
"600"
}},[
o
(
"div"
,{
staticStyle
:{
"text-align"
:
"center"
}},[
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
,
type
:
"primary"
},
on
:{
click
:
function
(
o
){
e
.
detail
(
t
.
row
)}}},[
e
.
_v
(
"
\n
查看详情
\n
"
)]),
e
.
_v
(
" "
),
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
},
on
:{
click
:
function
(
o
){
e
.
copyUrl
(
t
.
row
.
id
)}}},[
e
.
_v
(
"
\n
复制链接
\n
"
)]),
e
.
_v
(
" "
),
e
.
$store
.
state
.
readonly
?
e
.
_e
():[
2
===
t
.
row
.
status
||
0
===
t
.
row
.
status
?
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
,
type
:
"primary"
},
on
:{
click
:
function
(
o
){
e
.
onUp
(
t
.
row
)}}},[
e
.
_v
(
"
\n
上架
\n
"
)]):
e
.
_e
(),
e
.
_v
(
" "
),
1
===
t
.
row
.
status
?
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
,
type
:
"primary"
},
on
:{
click
:
function
(
o
){
e
.
onDown
(
t
.
row
)}}},[
e
.
_v
(
"
\n
下架
\n
"
)]):
e
.
_e
(),
e
.
_v
(
" "
),
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
,
type
:
"warning"
},
on
:{
click
:
function
(
o
){
e
.
edit
(
t
.
row
)}}},[
e
.
_v
(
"
\n
编辑
\n
"
)]),
e
.
_v
(
" "
),
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
,
type
:
"success"
},
on
:{
click
:
function
(
o
){
e
.
copyShop
(
t
.
row
)}}},[
e
.
_v
(
"
\n
复制商品
\n
"
)]),
e
.
_v
(
" "
),
2
===
t
.
row
.
status
?
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
},
on
:{
click
:
function
(
o
){
e
.
bindOther
(
t
.
row
)}}},[
e
.
_v
(
"
\n
绑定商品
\n
"
)]):
e
.
_e
(),
e
.
_v
(
" "
),
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
},
on
:{
click
:
function
(
o
){
e
.
conflict
(
t
.
row
)}}},[
e
.
_v
(
"
\n
冲突商品
\n
"
)]),
e
.
_v
(
" "
),
e
.
$store
.
state
.
deletePermission
?
o
(
"el-button"
,{
attrs
:{
size
:
"mini"
,
plain
:
""
,
type
:
"danger"
},
on
:{
click
:
function
(
o
){
e
.
onDel
(
t
.
row
)}}},[
e
.
_v
(
"
\n
删除
\n
"
)]):
e
.
_e
()]],
2
),
e
.
_v
(
" "
),
o
(
"el-button"
,{
attrs
:{
slot
:
"reference"
,
size
:
"mini"
,
type
:
"text"
},
slot
:
"reference"
},[
e
.
_v
(
"操作"
)])],
1
)]}}])})],
1
),
e
.
_v
(
" "
),
o
(
"page"
,{
attrs
:{
total
:
e
.
total
,
limit
:
e
.
limit
},
on
:{
pageChange
:
e
.
onPageChange
,
sizeChange
:
e
.
onSizeChange
}}),
e
.
_v
(
" "
),
o
(
"dialog-com"
,{
attrs
:{
dialogObj
:
e
.
dialogObj
},
on
:{
changeShow
:
e
.
changeShow
,
reflash
:
e
.
getUser
}}),
e
.
_v
(
" "
),
o
(
"el-dialog"
,{
attrs
:{
title
:
e
.
chooseDialog
.
title
,
visible
:
e
.
chooseDialog
.
show
,
width
:
"30%"
},
on
:{
"update:visible"
:
function
(
t
){
e
.
$set
(
e
.
chooseDialog
,
"show"
,
t
)}}},[
o
(
"el-form"
,{
ref
:
"form"
,
attrs
:{
"label-width"
:
"80px"
}},[
0
===
e
.
chooseDialog
.
type
?
o
(
"el-form-item"
,{
attrs
:{
label
:
"绑定商品"
}},[
o
(
"el-select"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
placeholder
:
"请选择"
},
model
:{
value
:
e
.
chooseDialog
.
form
.
value
,
callback
:
function
(
t
){
e
.
$set
(
e
.
chooseDialog
.
form
,
"value"
,
t
)},
expression
:
"chooseDialog.form.value"
}},
e
.
_l
(
e
.
userList
,
function
(
e
){
return
o
(
"el-option"
,{
key
:
e
.
id
,
attrs
:{
label
:
e
.
name
,
value
:
e
.
id
}})}))],
1
):
e
.
_e
(),
e
.
_v
(
" "
),
1
===
e
.
chooseDialog
.
type
?
o
(
"el-form-item"
,{
attrs
:{
label
:
"冲突商品"
}},[
o
(
"el-select"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
placeholder
:
"请选择"
,
multiple
:
""
},
model
:{
value
:
e
.
chooseDialog
.
form
.
list
,
callback
:
function
(
t
){
e
.
$set
(
e
.
chooseDialog
.
form
,
"list"
,
t
)},
expression
:
"chooseDialog.form.list"
}},
e
.
_l
(
e
.
userList
,
function
(
e
){
return
o
(
"el-option"
,{
key
:
e
.
id
,
attrs
:{
label
:
e
.
name
,
value
:
e
.
id
.
toString
()}})}))],
1
):
e
.
_e
()],
1
),
e
.
_v
(
" "
),
o
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
o
(
"el-button"
,{
on
:{
click
:
function
(
t
){
e
.
chooseDialog
.
show
=!
1
}}},[
e
.
_v
(
"取 消"
)]),
e
.
_v
(
" "
),
o
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
function
(
t
){
e
.
dialogSub
()}}},[
e
.
_v
(
"确 定"
)])],
1
)],
1
)],
1
)},
staticRenderFns
:[]};
var
u
=
o
(
"VU/8"
)(
c
,
d
,
!
1
,
function
(
e
){
o
(
"F4ES"
)},
"data-v-3c15a81b"
,
null
);
t
.
default
=
u
.
exports
},
F4ES
:
function
(
e
,
t
){},
taoj
:
function
(
e
,
t
){}});
\ No newline at end of file
dist/static/js/27.0604347da5fa48468ecf.js
0 → 100644
View file @
d0645b51
webpackJsonp
([
27
],{
Q7dY
:
function
(
t
,
e
){},
oerw
:
function
(
t
,
e
,
i
){
"use strict"
;
Object
.
defineProperty
(
e
,
"__esModule"
,{
value
:
!
0
});
var
s
=
i
(
"CCn6"
),
a
=
i
(
"kmJW"
),
n
=
i
(
"C+jy"
),
o
=
i
(
"sf/l"
);
function
l
(
t
,
e
,
i
){
return
e
in
t
?
Object
.
defineProperty
(
t
,
e
,{
value
:
i
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
t
[
e
]
=
i
,
t
}
var
r
=
{
name
:
"index"
,
components
:{
page
:
a
.
a
,
page2
:
a
.
a
,
emotion
:
n
.
a
},
data
:
function
(){
var
t
;
return
l
(
t
=
{
nowPage
:
1
,
total
:
0
,
limit
:
10
,
mediaPage
:{
nowPage
:
1
,
total
:
0
,
limit
:
10
},
show
:
!
1
,
loading
:
!
1
,
activeName
:
"text"
,
list
:[],
content
:
""
,
uploadShow
:
!
0
,
imageList
:[],
fileList
:[],
imageContent
:
""
,
videoContent
:
""
,
searchFrom
:{
type
:
1
,
is_test
:
!
1
},
tableData
:[],
fileUid
:
null
,
userDialog
:{
total
:
0
,
limit
:
10
,
nowPage
:
1
,
show
:
!
1
},
userList
:[],
searchUserFrom
:{},
multipleSelection
:[],
showEmotion
:
!
1
,
showMedia
:
!
1
,
mediaList
:[]},
"imageContent"
,
null
),
l
(
t
,
"videoContent"
,
null
),
l
(
t
,
"newsContent"
,
null
),
t
},
filters
:{
typeFilter
:
function
(
t
){
if
(
t
)
return
"text"
===
t
?
"文本"
:
"image"
===
t
?
"图片"
:
"video"
===
t
?
"视频"
:
"news"
===
t
?
"图文"
:
void
0
},
typeListFilter
:
function
(
t
){
return
t
?
1
===
t
?
"48时内关注但未购课用户"
:
2
===
t
?
"有体验课但没有正式课用户"
:
3
===
t
?
"未试听用户"
:
void
0
:
""
}},
methods
:{
handleClick
:
function
(
t
){
this
.
activeName
=
t
.
name
},
handleRemove
:
function
(){
this
.
uploadShow
=!
0
,
this
.
imageList
=
[],
this
.
imageContent
=
""
},
handleRemoveVideo
:
function
(){
this
.
videoContent
=
""
,
this
.
fileList
=
[]},
beforeAvatarUpload
:
function
(){
this
.
uploadShow
=!
1
},
handleAvatarSuccess
:
function
(
t
){
this
.
imageList
=
[{
name
:
t
.
data
.
url
,
url
:
"https://cdn.singsingenglish.com/"
+
t
.
data
.
url
}]},
uploadFile
:
function
(
t
){
var
e
=
this
;
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
t
.
file
.
uid
}),
Object
(
s
.
_63
)({
file
:
t
.
file
,
type
:
"wechat"
}).
then
(
function
(
t
){
e
.
imageContent
=
{
content
:
t
.
media_id
,
url
:
t
.
url
},
e
.
imageList
=
[{
name
:
t
.
media_id
,
url
:
t
.
url
}],
e
.
$message
({
type
:
"success"
,
message
:
"上传成功!"
})}).
catch
(
function
(){
e
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
uploadVideo
:
function
(
t
){
var
e
=
this
;
Object
(
s
.
_63
)({
file
:
t
.
file
,
type
:
"wechat"
}).
then
(
function
(
i
){
e
.
uploadVideoFile
(
t
,
i
)}).
catch
(
function
(){
e
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
uploadVideoFile
:
function
(
t
,
e
){
var
i
=
this
;
this
.
fileUid
=
t
.
file
.
uid
,
this
.
loading
=!
0
,
this
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"new"
,
id
:
t
.
file
.
uid
}),
Object
(
s
.
_63
)({
file
:
t
.
file
,
type
:
"local"
}).
then
(
function
(
s
){
i
.
videoContent
=
{
content
:
e
.
media_id
,
url
:
"https://cdn.singsingenglish.com/"
+
s
.
url
},
i
.
fileList
=
[{
name
:
s
.
name
,
url
:
"https://cdn.singsingenglish.com/"
+
s
.
url
}],
i
.
loading
=!
1
,
i
.
$message
({
type
:
"success"
,
message
:
"上传成功!"
}),
i
.
$store
.
dispatch
(
"setProgress"
,{
type
:
"delete"
,
id
:
t
.
file
.
uid
}),
i
.
fileUid
=
null
}).
catch
(
function
(){
i
.
loading
=!
1
,
i
.
$message
({
type
:
"error"
,
message
:
"上传失败!"
})})},
send
:
function
(){
var
t
=
this
,
e
=
{};
e
.
type
=
this
.
searchFrom
.
type
;
var
i
=
this
.
searchFrom
.
is_test
?
"发送筛选用户,"
:
"不发送筛选用户,"
;
if
(
1
===
this
.
searchFrom
.
type
){
if
(
!
(
this
.
searchFrom
.
time
&&
this
.
searchFrom
.
time
.
length
>
0
))
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请选择时间!"
});
e
.
start_at
=
o
.
a
.
dateFmt
(
this
.
searchFrom
.
time
[
0
],
"yyyy-MM-dd hh:mm:ss"
),
e
.
end_at
=
o
.
a
.
dateFmt
(
this
.
searchFrom
.
time
[
1
],
"yyyy-MM-dd hh:mm:ss"
),
i
+=
"48时内关注但未购课用户("
+
e
.
start_at
+
"~"
+
e
.
end_at
+
","
}
else
2
===
this
.
searchFrom
.
type
?
i
+=
"有体验课但没有正式课用户,"
:
3
===
this
.
searchFrom
.
type
&&
(
i
+=
"未试听用户,"
);
if
(
this
.
searchFrom
.
user_ids
){
e
.
user_ids
=
this
.
searchFrom
.
user_ids
,
i
+=
"用户ID:"
+
e
.
user_ids
;
var
a
=
{};
if
(
a
.
type
=
this
.
activeName
,
"text"
===
this
.
activeName
){
if
(
!
this
.
content
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请输入文本!"
});
a
.
content
=
this
.
content
}
else
if
(
"image"
===
this
.
activeName
){
if
(
!
this
.
imageContent
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请上传图片!"
});
a
.
content
=
this
.
imageContent
.
content
,
a
.
url
=
this
.
imageContent
.
url
}
else
if
(
"video"
===
this
.
activeName
){
if
(
!
this
.
videoContent
)
return
void
this
.
$message
({
type
:
"error"
,
message
:
"请上传视频!"
});
a
.
content
=
this
.
videoContent
.
content
,
a
.
url
=
this
.
videoContent
.
url
}
else
"news"
===
this
.
activeName
&&
(
this
.
newsContent
&&
this
.
newsContent
.
media_id
?
a
.
content
=
this
.
newsContent
.
media_id
:
this
.
$message
({
type
:
"error"
,
message
:
"请选择图文!"
}));
e
.
content
=
JSON
.
stringify
(
a
),
e
.
is_test
=
this
.
searchFrom
.
is_test
?
2
:
1
,
console
.
log
(
"json"
,
e
),
this
.
$confirm
(
i
,
"提示"
,{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(
function
(){
Object
(
s
.
_54
)(
e
).
then
(
function
(
e
){
t
.
$message
({
message
:
e
,
type
:
"success"
}),
t
.
show
=!
1
,
t
.
clearData
(),
t
.
getMsgList
()})}).
catch
(
function
(){
t
.
$message
({
type
:
"info"
,
message
:
"已取消发送"
})})}
else
this
.
$message
({
type
:
"error"
,
message
:
"请加入内部人员!"
})},
clearData
:
function
(){
this
.
content
=
""
,
this
.
videoContent
=
null
,
this
.
imageContent
=
null
,
this
.
newsContent
=
null
,
this
.
activeName
,
this
.
searchFrom
=
{},
this
.
fileList
=
[],
this
.
imageList
=
[]},
getMsgList
:
function
(){
var
t
=
this
,
e
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
Object
(
s
.
_25
)(
e
).
then
(
function
(
e
){
t
.
tableData
=
e
.
list
,
t
.
total
=
e
.
total
})},
onMediaPageChange
:
function
(
t
){
this
.
mediaPage
.
nowPage
=
t
,
this
.
getMediaList
()},
onMediaSizeChange
:
function
(){
this
.
mediaPage
.
nowPage
=
1
,
this
.
mediaPage
.
limit
=
val
,
this
.
getMediaList
()},
onPageChange
:
function
(
t
){
this
.
nowPage
=
t
,
this
.
getMsgList
()},
onSizeChange
:
function
(
t
){
this
.
nowPage
=
1
,
this
.
limit
=
t
,
this
.
getMsgList
()},
getMsgResult
:
function
(
t
){
var
e
=
this
;
if
(
t
){
var
i
=
{
only_text
:
1
,
send_id
:
t
};
Object
(
s
.
_25
)(
i
).
then
(
function
(
t
){
e
.
$message
({
message
:
t
,
type
:
"success"
}),
e
.
getMsgList
()})}},
getUser
:
function
(){
var
t
=
this
,
e
=
{
page
:
this
.
userDialog
.
nowPage
,
limit
:
this
.
userDialog
.
limit
};
this
.
searchUserFrom
.
userId
&&
(
e
.
user_id
=
this
.
searchUserFrom
.
userId
),
this
.
searchUserFrom
.
nickName
&&
(
e
.
nickname
=
this
.
searchUserFrom
.
nickName
),
this
.
searchUserFrom
.
mobile
&&
(
e
.
mobile
=
this
.
searchUserFrom
.
mobile
),
Object
(
s
.
_41
)(
e
).
then
(
function
(
e
){
t
.
userList
=
e
.
list
,
t
.
userDialog
.
total
=
e
.
total
})},
onUserPageChange
:
function
(
t
){
this
.
userDialog
.
nowPage
=
t
,
this
.
getUser
()},
handleSelectionChange
:
function
(
t
){
this
.
multipleSelection
=
t
},
onSelectUser
:
function
(){
this
.
userDialog
.
show
=!
0
,
this
.
searchFrom
.
user_ids
?
this
.
multipleSelection
=
this
.
searchFrom
.
user_ids
.
split
(
","
):
this
.
multipleSelection
=
[],
this
.
getUser
()},
onConfirm
:
function
(){
var
t
=
this
.
multipleSelection
;
if
(
0
===
t
.
length
)
this
.
$message
({
type
:
"error"
,
message
:
"请选择用户!"
});
else
{
var
e
=
[];
t
.
forEach
(
function
(
t
){
e
.
push
(
t
.
user_id
)});
var
i
=
e
;
this
.
searchFrom
.
user_ids
&&
(
i
=
e
.
concat
(
this
.
stringToInt
(
this
.
searchFrom
.
user_ids
.
split
(
","
))));
var
s
=
this
.
dedupe
(
i
);
this
.
searchFrom
.
user_ids
=
s
.
join
(
","
),
this
.
userDialog
.
show
=!
1
}},
dedupe
:
function
(
t
){
return
Array
.
from
(
new
Set
(
t
))},
stringToInt
:
function
(
t
){
var
e
=
t
||
[];
return
e
=
e
.
map
(
function
(
t
){
return
parseInt
(
t
,
10
)})},
emotion
:
function
(
t
){
var
e
=
t
.
replace
(
/
\/
/gi
,
""
);
return
'<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/'
+
[
"微笑"
,
"撇嘴"
,
"色"
,
"发呆"
,
"得意"
,
"流泪"
,
"害羞"
,
"闭嘴"
,
"睡"
,
"大哭"
,
"尴尬"
,
"发怒"
,
"调皮"
,
"呲牙"
,
"惊讶"
,
"难过"
,
"酷"
,
"冷汗"
,
"抓狂"
,
"吐"
,
"偷笑"
,
"可爱"
,
"白眼"
,
"傲慢"
,
"饥饿"
,
"困"
,
"惊恐"
,
"流汗"
,
"憨笑"
,
"大兵"
,
"奋斗"
,
"咒骂"
,
"疑问"
,
"嘘"
,
"晕"
,
"折磨"
,
"衰"
,
"骷髅"
,
"敲打"
,
"再见"
,
"擦汗"
,
"抠鼻"
,
"鼓掌"
,
"糗大了"
,
"坏笑"
,
"左哼哼"
,
"右哼哼"
,
"哈欠"
,
"鄙视"
,
"委屈"
,
"快哭了"
,
"阴险"
,
"亲亲"
,
"吓"
,
"可怜"
,
"菜刀"
,
"西瓜"
,
"啤酒"
,
"篮球"
,
"乒乓"
,
"咖啡"
,
"饭"
,
"猪头"
,
"玫瑰"
,
"凋谢"
,
"示爱"
,
"爱心"
,
"心碎"
,
"蛋糕"
,
"闪电"
,
"炸弹"
,
"刀"
,
"足球"
,
"瓢虫"
,
"便便"
,
"月亮"
,
"太阳"
,
"礼物"
,
"拥抱"
,
"强"
,
"弱"
,
"握手"
,
"胜利"
,
"抱拳"
,
"勾引"
,
"拳头"
,
"差劲"
,
"爱你"
,
"NO"
,
"OK"
,
"爱情"
,
"飞吻"
,
"跳跳"
,
"发抖"
,
"怄火"
,
"转圈"
,
"磕头"
,
"回头"
,
"跳绳"
,
"挥手"
,
"激动"
,
"街舞"
,
"献吻"
,
"左太极"
,
"右太极"
].
indexOf
(
e
)
+
'.gif" align="middle">'
},
handleEmotion
:
function
(
t
){
this
.
content
+=
t
},
onChooseMedia
:
function
(
t
){
"image"
===
this
.
type
?
this
.
imageContent
=
t
:
"video"
===
this
.
type
?
this
.
videoContent
=
t
:
"news"
===
this
.
type
&&
(
this
.
newsContent
=
t
),
this
.
showMedia
=!
1
},
getMediaList
:
function
(){
var
t
=
this
,
e
=
this
.
activeName
,
i
=
{
type
:
e
,
page
:
this
.
mediaPage
.
nowPage
,
limit
:
this
.
mediaPage
.
limit
};
this
.
loading
=!
0
,
this
.
showMedia
=!
0
,
Object
(
s
.
_23
)(
i
).
then
(
function
(
i
){
t
.
loading
=!
1
,
t
.
type
=
e
,
t
.
mediaList
=
i
.
item
,
t
.
mediaPage
.
total
=
i
.
total_count
,
0
===
t
.
total
&&
t
.
$message
({
showClose
:
!
0
,
message
:
"暂无数据"
})}).
catch
(
function
(){
t
.
loading
=!
1
})}},
mounted
:
function
(){
this
.
getMsgList
()},
computed
:{
progress
:
function
(){
var
t
=
this
;
return
this
.
$store
.
state
.
progressList
.
find
(
function
(
e
){
return
e
.
id
===
t
.
fileUid
}).
num
<
100
?
this
.
$store
.
state
.
progressList
.
find
(
function
(
e
){
return
e
.
id
===
t
.
fileUid
}).
num
:
100
}}},
c
=
{
render
:
function
(){
var
t
=
this
,
e
=
t
.
$createElement
,
i
=
t
.
_self
.
_c
||
e
;
return
i
(
"div"
,{
staticClass
:
"index"
},[
i
(
"div"
,{
staticClass
:
"b-title"
},[
t
.
_v
(
"群发列表 "
),
i
(
"el-button"
,{
staticStyle
:{
float
:
"right"
,
"margin-bottom"
:
"10px"
},
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
function
(
e
){
t
.
show
=!
0
}}},[
t
.
_v
(
"新建群发消息"
)])],
1
),
t
.
_v
(
" "
),
i
(
"el-table"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
t
.
tableData
}},[
i
(
"el-table-column"
,{
attrs
:{
type
:
"expand"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
i
(
"el-table"
,{
attrs
:{
border
:
!
1
,
data
:[
JSON
.
parse
(
e
.
row
.
content
)]}},[
i
(
"el-table-column"
,{
attrs
:{
label
:
"类型"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
t
.
_v
(
"
\n
"
+
t
.
_s
(
t
.
_f
(
"typeFilter"
)(
e
.
row
.
type
))
+
"
\n
"
)]}}])}),
t
.
_v
(
" "
),
"text"
!==
JSON
.
parse
(
e
.
row
.
content
).
type
?
i
(
"el-table-column"
,{
attrs
:{
prop
:
"media_id"
,
label
:
"media_id"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
t
.
_v
(
"
\n
"
+
t
.
_s
(
e
.
row
.
content
)
+
"
\n
"
)]}}])}):
t
.
_e
(),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"url"
,
label
:
"内容"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
"text"
===
e
.
row
.
type
?
i
(
"div"
,[
i
(
"span"
,{
domProps
:{
innerHTML
:
t
.
_s
(
e
.
row
.
content
.
replace
(
/
\/[\u
4E00-
\u
9FA5
]{1,3}
/gi
,
t
.
emotion
))}})]):
"image"
===
e
.
row
.
type
?
i
(
"div"
,[
i
(
"img"
,{
staticStyle
:{
width
:
"80px"
},
attrs
:{
src
:
e
.
row
.
url
}})]):
"video"
===
e
.
row
.
type
?
i
(
"div"
,[
i
(
"a"
,{
attrs
:{
href
:
e
.
row
.
url
,
target
:
"_blank"
}},[
t
.
_v
(
"点击查看视频"
)])]):
t
.
_e
()]}}])})],
1
)]}}])}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"send_id"
,
label
:
"消息ID"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
label
:
"消息类型"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
t
.
_v
(
"
\n
"
+
t
.
_s
(
t
.
_f
(
"typeListFilter"
)(
e
.
row
.
type
))
+
"
\n
"
)]}}])}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"send_num"
,
label
:
"预计发送"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"arrive_num"
,
label
:
"已发送"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"failed_num"
,
label
:
"发送失败"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"start_at"
,
label
:
"开始时间"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"end_at"
,
label
:
"截止时间"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"created_at"
,
label
:
"发送时间"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
label
:
"操作"
,
"min-width"
:
"100"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
i
(
"el-button"
,{
attrs
:{
type
:
"text"
,
plain
:
""
,
size
:
"mini"
},
on
:{
click
:
function
(
i
){
t
.
getMsgResult
(
e
.
row
.
send_id
)}}},[
t
.
_v
(
"
\n
查询及时结果
\n
"
)])]}}])})],
1
),
t
.
_v
(
" "
),
i
(
"page"
,{
attrs
:{
total
:
t
.
total
,
limit
:
t
.
limit
},
on
:{
pageChange
:
t
.
onPageChange
,
sizeChange
:
t
.
onSizeChange
}}),
t
.
_v
(
" "
),
i
(
"el-dialog"
,{
attrs
:{
title
:
"新建群发消息"
,
visible
:
t
.
show
},
on
:{
"update:visible"
:
function
(
e
){
t
.
show
=
e
}}},[
i
(
"el-form"
,{
ref
:
"searchFrom"
,
attrs
:{
model
:
t
.
searchFrom
,
"label-width"
:
"150px"
}},[
i
(
"el-form-item"
,{
attrs
:{
label
:
"是否发送筛选用户"
}},[
i
(
"el-switch"
,{
attrs
:{
"active-color"
:
"#13ce66"
,
"inactive-color"
:
"#ff4949"
},
model
:{
value
:
t
.
searchFrom
.
is_test
,
callback
:
function
(
e
){
t
.
$set
(
t
.
searchFrom
,
"is_test"
,
e
)},
expression
:
"searchFrom.is_test"
}})],
1
),
t
.
_v
(
" "
),
1
===
t
.
searchFrom
.
type
?
i
(
"el-form-item"
,{
attrs
:{
label
:
"时间"
}},[
i
(
"el-date-picker"
,{
attrs
:{
type
:
"datetimerange"
,
"range-separator"
:
"至"
,
"start-placeholder"
:
"开始日期"
,
"end-placeholder"
:
"结束日期"
,
"default-time"
:[
"00:00:00"
,
"23:59:59"
]},
model
:{
value
:
t
.
searchFrom
.
time
,
callback
:
function
(
e
){
t
.
$set
(
t
.
searchFrom
,
"time"
,
e
)},
expression
:
"searchFrom.time"
}})],
1
):
t
.
_e
(),
t
.
_v
(
" "
),
i
(
"el-form-item"
,{
attrs
:{
label
:
"类型"
}},[
i
(
"el-radio-group"
,{
model
:{
value
:
t
.
searchFrom
.
type
,
callback
:
function
(
e
){
t
.
$set
(
t
.
searchFrom
,
"type"
,
e
)},
expression
:
"searchFrom.type"
}},[
i
(
"el-radio"
,{
attrs
:{
label
:
1
}},[
t
.
_v
(
"48时内关注但未购课用户"
)]),
t
.
_v
(
" "
),
i
(
"el-radio"
,{
attrs
:{
label
:
2
}},[
t
.
_v
(
"有体验课但没有正式课用户"
)]),
t
.
_v
(
" "
),
i
(
"el-radio"
,{
attrs
:{
label
:
3
}},[
t
.
_v
(
"未试听用户"
)])],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-row"
,[
i
(
"el-col"
,{
attrs
:{
span
:
16
}},[
i
(
"el-form-item"
,{
attrs
:{
label
:
"用户ID"
}},[
i
(
"el-input"
,{
model
:{
value
:
t
.
searchFrom
.
user_ids
,
callback
:
function
(
e
){
t
.
$set
(
t
.
searchFrom
,
"user_ids"
,
e
)},
expression
:
"searchFrom.user_ids"
}})],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-col"
,{
attrs
:{
span
:
8
}},[
i
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
t
.
onSelectUser
}},[
t
.
_v
(
"选择用户"
)])],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-tabs"
,{
attrs
:{
type
:
"card"
},
on
:{
"tab-click"
:
t
.
handleClick
},
model
:{
value
:
t
.
activeName
,
callback
:
function
(
e
){
t
.
activeName
=
e
},
expression
:
"activeName"
}},[
i
(
"el-tab-pane"
,{
attrs
:{
label
:
"文本"
,
name
:
"text"
}},[
i
(
"div"
,{
staticClass
:
"inner-edit_area"
},[
i
(
"el-input"
,{
attrs
:{
type
:
"textarea"
,
autosize
:{
minRows
:
4
,
maxRows
:
8
},
placeholder
:
"请输入内容"
},
model
:{
value
:
t
.
content
,
callback
:
function
(
e
){
t
.
content
=
e
},
expression
:
"content"
}})],
1
),
t
.
_v
(
" "
),
i
(
"div"
,{
staticStyle
:{
float
:
"right"
}},[
i
(
"el-popover"
,{
attrs
:{
placement
:
"bottom-end"
,
width
:
"400"
,
offset
:
10
,
trigger
:
"manual"
},
model
:{
value
:
t
.
showEmotion
,
callback
:
function
(
e
){
t
.
showEmotion
=
e
},
expression
:
"showEmotion"
}},[
i
(
"div"
,[
i
(
"emotion"
,{
attrs
:{
height
:
200
},
on
:{
emotion
:
t
.
handleEmotion
}})],
1
),
t
.
_v
(
" "
),
i
(
"el-button"
,{
attrs
:{
slot
:
"reference"
,
type
:
"text"
},
on
:{
click
:
function
(
e
){
t
.
showEmotion
=!
t
.
showEmotion
}},
slot
:
"reference"
},[
i
(
"span"
,{
staticClass
:
"icon_emotion emotion_switch"
})])],
1
)],
1
)]),
t
.
_v
(
" "
),
i
(
"el-tab-pane"
,{
attrs
:{
label
:
"图片"
,
name
:
"image"
}},[
i
(
"div"
,{
staticClass
:
"inner-edit_area"
},[
i
(
"el-upload"
,{
attrs
:{
action
:
"/api/public/upload/zone"
,
"http-request"
:
t
.
uploadFile
,
"before-upload"
:
t
.
beforeAvatarUpload
,
"list-type"
:
"picture-card"
,
"file-list"
:
t
.
imageList
,
"on-success"
:
t
.
handleAvatarSuccess
,
"on-remove"
:
t
.
handleRemove
,
limit
:
1
}},[
i
(
"i"
,{
staticClass
:
"el-icon-plus"
})])],
1
)]),
t
.
_v
(
" "
),
i
(
"el-tab-pane"
,{
attrs
:{
label
:
"视频"
,
name
:
"video"
}},[
i
(
"el-upload"
,{
staticClass
:
"upload-video"
,
attrs
:{
action
:
"/api/public/upload/zone"
,
"http-request"
:
t
.
uploadVideo
,
"file-list"
:
t
.
fileList
,
"on-remove"
:
t
.
handleRemoveVideo
,
limit
:
1
}},[
i
(
"el-button"
,{
attrs
:{
size
:
"small"
,
type
:
"primary"
,
disabled
:
t
.
fileUid
&&
t
.
progress
<
99
}},[
t
.
_v
(
"点击上传"
)]),
t
.
_v
(
" "
),
i
(
"div"
,{
staticStyle
:{
width
:
"300px"
}},[
t
.
fileUid
?
i
(
"el-progress"
,{
attrs
:{
percentage
:
t
.
progress
}}):
t
.
_e
()],
1
)],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-tab-pane"
,{
attrs
:{
label
:
"图文"
,
name
:
"news"
}},[
t
.
newsContent
&&
t
.
newsContent
.
content
&&
t
.
newsContent
.
content
.
news_item
?
i
(
"div"
,[
i
(
"div"
,{
staticClass
:
"news-media"
,
staticStyle
:{
display
:
"inline-block"
}},[
i
(
"el-card"
,{
attrs
:{
"body-style"
:{
padding
:
"0px"
}}},
t
.
_l
(
t
.
newsContent
.
content
.
news_item
,
function
(
e
,
s
){
return
i
(
"div"
,{
staticStyle
:{
position
:
"relative"
}},[
1
===
t
.
newsContent
.
content
.
news_item
.
length
?
i
(
"div"
,{
staticClass
:
"single-cover"
},[
i
(
"div"
,{
staticClass
:
"title"
},[
t
.
_v
(
t
.
_s
(
e
.
title
))]),
t
.
_v
(
" "
),
i
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
e
.
thumb_url
}}),
t
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"digest"
},[
t
.
_v
(
t
.
_s
(
e
.
digest
))]),
t
.
_v
(
" "
),
i
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
e
.
url
,
target
:
"_blank"
}},[
t
.
_v
(
"
\n
预览文章
\n
"
)])]):
t
.
newsContent
.
content
.
news_item
.
length
>
1
?
i
(
"div"
,{
staticClass
:
"clear-both bottomCover"
,
staticStyle
:{
position
:
"relative"
}},[
0
===
s
?
i
(
"div"
,{
staticClass
:
"muti-cover"
},[
i
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
e
.
thumb_url
}}),
t
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"bottom-title"
},[
t
.
_v
(
t
.
_s
(
e
.
title
))])]):
i
(
"div"
,{
staticClass
:
"next-cover clear-both"
},[
i
(
"span"
,{
staticClass
:
"next-title"
},[
t
.
_v
(
t
.
_s
(
e
.
title
))]),
t
.
_v
(
" "
),
i
(
"img"
,{
staticClass
:
"next-img"
,
attrs
:{
src
:
e
.
thumb_url
}})]),
t
.
_v
(
" "
),
i
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
e
.
url
,
target
:
"_blank"
}},[
t
.
_v
(
"
\n
预览文章
\n
"
)])]):
t
.
_e
()])}))],
1
),
t
.
_v
(
" "
),
i
(
"i"
,{
staticClass
:
"el-icon-delete"
,
staticStyle
:{
display
:
"inline-block"
},
on
:{
click
:
function
(
e
){
t
.
newsContent
=
""
}}})]):
t
.
_e
(),
t
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"display-b"
},[
i
(
"div"
,{
staticClass
:
"choose_item"
,
staticStyle
:{
color
:
"#888"
},
on
:{
click
:
function
(
e
){
t
.
getMediaList
()}}},[
t
.
_v
(
"+从素材库中选择"
)])]),
t
.
_v
(
" "
),
t
.
showMedia
&&
t
.
mediaList
.
length
>
0
?
i
(
"div"
,[
i
(
"el-table"
,{
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
t
.
mediaList
},
on
:{
"row-click"
:
t
.
onChooseMedia
}},[
i
(
"el-table-column"
,{
attrs
:{
prop
:
"media_id"
,
label
:
"mediaId"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
label
:
"URL"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
e
.
row
.
content
&&
e
.
row
.
content
.
news_item
?
i
(
"div"
,{
staticClass
:
"news-media"
,
staticStyle
:{
display
:
"inline-block"
,
width
:
"200px"
}},
t
.
_l
(
e
.
row
.
content
.
news_item
,
function
(
s
,
a
){
return
i
(
"div"
,{
staticStyle
:{
position
:
"relative"
}},[
1
===
e
.
row
.
content
.
news_item
.
length
?
i
(
"div"
,{
staticClass
:
"single-cover"
},[
i
(
"div"
,{
staticClass
:
"title"
},[
t
.
_v
(
t
.
_s
(
s
.
title
))]),
t
.
_v
(
" "
),
i
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
s
.
thumb_url
}}),
t
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"digest"
},[
t
.
_v
(
t
.
_s
(
s
.
digest
))]),
t
.
_v
(
" "
),
i
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
s
.
url
,
target
:
"_blank"
}},[
t
.
_v
(
"
\n
预览文章
\n
"
)])]):
e
.
row
.
content
.
news_item
.
length
>
1
?
i
(
"div"
,{
staticClass
:
"clear-both bottomCover"
,
staticStyle
:{
position
:
"relative"
}},[
0
===
a
?
i
(
"div"
,{
staticClass
:
"muti-cover"
},[
i
(
"img"
,{
staticStyle
:{
width
:
"100%"
,
"margin-top"
:
"20px"
},
attrs
:{
src
:
s
.
thumb_url
}}),
t
.
_v
(
" "
),
i
(
"div"
,{
staticClass
:
"bottom-title"
},[
t
.
_v
(
t
.
_s
(
s
.
title
))])]):
i
(
"div"
,{
staticClass
:
"next-cover clear-both"
},[
i
(
"span"
,{
staticClass
:
"next-title"
},[
t
.
_v
(
t
.
_s
(
s
.
title
))]),
t
.
_v
(
" "
),
i
(
"img"
,{
staticClass
:
"next-img"
,
attrs
:{
src
:
s
.
thumb_url
}})]),
t
.
_v
(
" "
),
i
(
"a"
,{
staticClass
:
"preview"
,
attrs
:{
href
:
s
.
url
,
target
:
"_blank"
}},[
t
.
_v
(
"
\n
预览文章
\n
"
)])]):
t
.
_e
()])})):
t
.
_e
()]}}])})],
1
),
t
.
_v
(
" "
),
i
(
"page2"
,{
attrs
:{
total
:
t
.
total
,
limit
:
t
.
mediaPage
.
limit
},
on
:{
pageChange
:
t
.
onMediaPageChange
,
sizeChange
:
t
.
onMediaSizeChange
},
model
:{
value
:
t
.
mediaPage
.
nowPage
,
callback
:
function
(
e
){
t
.
$set
(
t
.
mediaPage
,
"nowPage"
,
e
)},
expression
:
"mediaPage.nowPage"
}})],
1
):
t
.
_e
()])],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
i
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
function
(
e
){
t
.
send
()}}},[
t
.
_v
(
"确 定"
)])],
1
),
t
.
_v
(
" "
),
i
(
"el-dialog"
,{
attrs
:{
visible
:
t
.
userDialog
.
show
,
"append-to-body"
:
""
},
on
:{
"update:visible"
:
function
(
e
){
t
.
$set
(
t
.
userDialog
,
"show"
,
e
)}}},[
i
(
"el-form"
,{
attrs
:{
"label-width"
:
"90px"
}},[
i
(
"el-row"
,[
i
(
"el-col"
,{
attrs
:{
span
:
8
}},[
i
(
"el-form-item"
,{
attrs
:{
label
:
"ID"
}},[
i
(
"el-input"
,{
model
:{
value
:
t
.
searchUserFrom
.
userId
,
callback
:
function
(
e
){
t
.
$set
(
t
.
searchUserFrom
,
"userId"
,
e
)},
expression
:
"searchUserFrom.userId"
}})],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-col"
,{
attrs
:{
span
:
8
}},[
i
(
"el-form-item"
,{
attrs
:{
label
:
"昵称"
}},[
i
(
"el-input"
,{
model
:{
value
:
t
.
searchUserFrom
.
nickName
,
callback
:
function
(
e
){
t
.
$set
(
t
.
searchUserFrom
,
"nickName"
,
e
)},
expression
:
"searchUserFrom.nickName"
}})],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-col"
,{
attrs
:{
span
:
8
}},[
i
(
"el-form-item"
,{
attrs
:{
label
:
"电话"
}},[
i
(
"el-input"
,{
model
:{
value
:
t
.
searchUserFrom
.
mobile
,
callback
:
function
(
e
){
t
.
$set
(
t
.
searchUserFrom
,
"mobile"
,
e
)},
expression
:
"searchUserFrom.mobile"
}})],
1
)],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-row"
,[
i
(
"el-col"
,{
attrs
:{
span
:
8
,
offset
:
16
}},[
i
(
"el-form-item"
,[
i
(
"el-button"
,{
staticStyle
:{
float
:
"right"
},
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
t
.
getUser
}},[
t
.
_v
(
"搜索"
)])],
1
)],
1
)],
1
)],
1
),
t
.
_v
(
" "
),
i
(
"el-table"
,{
ref
:
"multipleTable"
,
staticStyle
:{
width
:
"100%"
},
attrs
:{
data
:
t
.
userList
},
on
:{
"selection-change"
:
t
.
handleSelectionChange
}},[
i
(
"el-table-column"
,{
attrs
:{
type
:
"selection"
,
width
:
"55"
}}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
className
:
"f-c"
,
label
:
"用户"
},
scopedSlots
:
t
.
_u
([{
key
:
"default"
,
fn
:
function
(
e
){
return
[
i
(
"img"
,{
staticStyle
:{
"margin-right"
:
"5px"
,
width
:
"50px"
,
height
:
"50px"
,
"border-radius"
:
"50px"
},
attrs
:{
src
:
e
.
row
.
avatar
}}),
t
.
_v
(
t
.
_s
(
e
.
row
.
nickname
)
+
"(ID:"
+
t
.
_s
(
e
.
row
.
user_id
)
+
")
\n
"
)]}}])}),
t
.
_v
(
" "
),
i
(
"el-table-column"
,{
attrs
:{
prop
:
"mobile"
,
label
:
"手机号"
}})],
1
),
t
.
_v
(
" "
),
i
(
"page"
,{
attrs
:{
total
:
t
.
userDialog
.
total
,
limit
:
t
.
userDialog
.
limit
},
on
:{
pageChange
:
t
.
onUserPageChange
,
sizeChange
:
t
.
onSizeChange
}}),
t
.
_v
(
" "
),
i
(
"span"
,{
staticClass
:
"dialog-footer"
,
attrs
:{
slot
:
"footer"
},
slot
:
"footer"
},[
i
(
"el-button"
,{
on
:{
click
:
function
(
e
){
t
.
userDialog
.
show
=!
1
}}},[
t
.
_v
(
"取 消"
)]),
t
.
_v
(
" "
),
i
(
"el-button"
,{
attrs
:{
type
:
"primary"
},
on
:{
click
:
t
.
onConfirm
}},[
t
.
_v
(
"确 定"
)])],
1
)],
1
)],
1
)],
1
)},
staticRenderFns
:[]};
var
m
=
i
(
"VU/8"
)(
r
,
c
,
!
1
,
function
(
t
){
i
(
"Q7dY"
),
i
(
"q91T"
)},
"data-v-11c3c48c"
,
null
);
e
.
default
=
m
.
exports
},
q91T
:
function
(
t
,
e
){}});
\ No newline at end of file
dist/static/js/app.1d2c6e5fe654e640c6d7.js
0 → 100644
View file @
d0645b51
webpackJsonp
([
40
],{
IcnI
:
function
(
e
,
n
,
t
){
"use strict"
;
var
o
=
t
(
"7+uW"
),
a
=
t
(
"NYxO"
),
r
=
t
(
"zSLJ"
),
i
=
{
setToken
:
function
(
e
,
n
){
e
.
token
=
n
,
r
.
a
.
set
(
"cc_token"
,
n
)},
setUserName
:
function
(
e
,
n
){
e
.
userName
=
n
,
r
.
a
.
set
(
"cc_user_name"
,
n
)},
setPermission
:
function
(
e
,
n
){
e
.
progressList
=
n
,
localStorage
.
setItem
(
"permission"
,
JSON
.
stringify
(
n
))},
setMenu
:
function
(
e
,
n
){
e
.
menuList
=
n
},
readonly
:
function
(
e
,
n
){
e
.
readonly
=
n
},
deletePermission
:
function
(
e
,
n
){
e
.
deletePermission
=
n
},
mainCanShow
:
function
(
e
){
e
.
mainLoad
=!
1
},
mainUnShow
:
function
(
e
){
e
.
mainLoad
=!
0
},
changeParentRouter
:
function
(
e
,
n
){
e
.
menuList
.
find
(
function
(
e
){
return
e
.
name
===
n
.
name
}).
routerName
=
n
.
to
.
name
},
progress
:
function
(
e
,
n
){
switch
(
n
.
type
){
case
"new"
:
e
.
progressList
.
push
({
num
:
0
,
id
:
n
.
id
});
break
;
case
"change"
:
e
.
progressList
.
find
(
function
(
e
){
return
e
.
id
===
n
.
id
}).
num
=
n
.
num
;
break
;
case
"delete"
:
e
.
progressList
.
find
(
function
(
e
){
return
e
.
id
===
n
.
id
})}}};
o
.
default
.
use
(
a
.
a
);
n
.
a
=
new
a
.
a
.
Store
({
state
:{
show
:
!
1
,
userName
:
""
,
token
:
""
,
orderRefund
:
!
1
,
permission
:
!
1
,
readonly
:
!
0
,
deletePermission
:
!
1
,
mainLoad
:
!
0
,
menuList
:[],
menuType
:
!
1
,
nowTab
:
"first"
,
progressList
:[],
openedTab
:[{
value
:
"首页"
,
routerName
:
"first"
,
name
:
"first"
,
delNo
:
!
0
,
path
:
"/index"
}]},
mutations
:
i
,
actions
:{
setToken
:
function
(
e
,
n
){(
0
,
e
.
commit
)(
"setToken"
,
n
)},
setUserName
:
function
(
e
,
n
){(
0
,
e
.
commit
)(
"setUserName"
,
n
)},
setProgress
:
function
(
e
,
n
){(
0
,
e
.
commit
)(
"progress"
,
n
)},
setPermission
:
function
(
e
,
n
){(
0
,
e
.
commit
)(
"setPermission"
,
n
)},
setMenu
:
function
(
e
,
n
){(
0
,
e
.
commit
)(
"setMenu"
,
n
)},
readonly
:
function
(
e
,
n
){(
0
,
e
.
commit
)(
"readonly"
,
n
)},
deletePermission
:
function
(
e
,
n
){(
0
,
e
.
commit
)(
"deletePermission"
,
n
)}}})},
NHnr
:
function
(
e
,
n
,
t
){
"use strict"
;
Object
.
defineProperty
(
n
,
"__esModule"
,{
value
:
!
0
});
var
o
=
t
(
"7+uW"
),
a
=
[{
name
:
""
,
value
:
"教研管理"
,
icon
:
"icon-material"
,
list
:[{
value
:
"教材列表"
,
routerName
:
"resources"
,
path
:
"/resources"
,
cover
:
"1-1"
,
router
:{
path
:
"/resources"
,
name
:
"resources"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
2
)]).
then
(
function
(){
var
n
=
[
t
(
"z5EG"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]},{
name
:
""
,
value
:
"商品课程"
,
icon
:
"icon-shangpin1"
,
list
:[{
value
:
"课程列表"
,
routerName
:
"lesson"
,
path
:
"/lesson"
,
cover
:
"2-1"
,
router
:{
path
:
"/lesson"
,
name
:
"lesson"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
4
)]).
then
(
function
(){
var
n
=
[
t
(
"AbSL"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"商品列表"
,
routerName
:
"shop"
,
path
:
"/shop"
,
cover
:
"4-1"
,
router
:{
path
:
"/shop"
,
name
:
"shop"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
24
)]).
then
(
function
(){
var
n
=
[
t
(
"1djJ"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]},{
name
:
""
,
value
:
"期数管理"
,
icon
:
"icon-kecheng"
,
list
:[{
value
:
"期数列表"
,
routerName
:
"periods"
,
path
:
"/periods"
,
cover
:
"2-2"
,
router
:{
path
:
"/periods"
,
name
:
"periods"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
15
)]).
then
(
function
(){
var
n
=
[
t
(
"ayGs"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"班级列表"
,
routerName
:
"class"
,
path
:
"/class"
,
cover
:
"2-3"
,
router
:{
path
:
"/class"
,
name
:
"class"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
11
)]).
then
(
function
(){
var
n
=
[
t
(
"OX9A"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"不上课日期"
,
routerName
:
"noLesson"
,
path
:
"/noLesson"
,
cover
:
"2-4"
,
router
:{
path
:
"/noLesson"
,
name
:
"noLesson"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
23
)]).
then
(
function
(){
var
n
=
[
t
(
"sg/1"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]},{
name
:
""
,
value
:
"人员管理"
,
icon
:
"icon-laoshi"
,
list
:[{
value
:
"教师列表"
,
routerName
:
"teacher"
,
path
:
"/teacher"
,
cover
:
"3-1"
,
router
:{
path
:
"/teacher"
,
name
:
"teacher"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
16
)]).
then
(
function
(){
var
n
=
[
t
(
"Y0Vi"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"用户列表"
,
routerName
:
"user"
,
path
:
"/user"
,
cover
:
"3-2"
,
router
:{
path
:
"/user"
,
name
:
"user"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
7
)]).
then
(
function
(){
var
n
=
[
t
(
"jFLA"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]},{
name
:
""
,
value
:
"订单管理"
,
icon
:
"icon-dingdan"
,
list
:[{
value
:
"订单列表"
,
routerName
:
"order"
,
path
:
"/order"
,
cover
:
"5-1"
,
router
:{
path
:
"/order"
,
name
:
"order"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
3
)]).
then
(
function
(){
var
n
=
[
t
(
"2qmY"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"退款列表"
,
routerName
:
"refund"
,
path
:
"/refund"
,
cover
:
"5-2"
,
router
:{
path
:
"/refund"
,
name
:
"refund"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
21
)]).
then
(
function
(){
var
n
=
[
t
(
"89rD"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"提现列表"
,
routerName
:
"putForward"
,
path
:
"/putForward"
,
cover
:
"5-3"
,
router
:{
path
:
"/putForward"
,
name
:
"putForward"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
18
)]).
then
(
function
(){
var
n
=
[
t
(
"F5pf"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"发货管理"
,
routerName
:
"consignment"
,
path
:
"/consignment"
,
cover
:
"5-4"
,
router
:{
path
:
"/consignment"
,
name
:
"consignment"
,
component
:
function
(
e
){
return
t
.
e
(
32
).
then
(
function
(){
var
n
=
[
t
(
"usUK"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"订单统计"
,
routerName
:
"orderCount"
,
path
:
"/orderCount"
,
cover
:
"5-5"
,
router
:{
path
:
"/orderCount"
,
name
:
"orderCount"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
31
)]).
then
(
function
(){
var
n
=
[
t
(
"s7i+"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"优惠券列表"
,
routerName
:
"coupon"
,
path
:
"/coupon"
,
cover
:
"5-6"
,
router
:{
path
:
"/coupon"
,
name
:
"coupon"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
26
)]).
then
(
function
(){
var
n
=
[
t
(
"WvRy"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]},{
name
:
""
,
value
:
"实物管理"
,
icon
:
"icon-shu"
,
list
:[{
value
:
"单品列表"
,
routerName
:
"single"
,
path
:
"/single"
,
cover
:
"6-1"
,
router
:{
path
:
"/single"
,
name
:
"single"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
12
)]).
then
(
function
(){
var
n
=
[
t
(
"B31M"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"盒子列表"
,
routerName
:
"box"
,
path
:
"/box"
,
cover
:
"6-2"
,
router
:{
path
:
"/box"
,
name
:
"box"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
8
)]).
then
(
function
(){
var
n
=
[
t
(
"+vCD"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]},{
name
:
""
,
value
:
"公众号"
,
icon
:
"icon-ai-weixin"
,
list
:[{
value
:
"自动回复"
,
routerName
:
"focusReply"
,
path
:
"/focusReply"
,
cover
:
"7-1"
,
router
:{
path
:
"/focusReply"
,
name
:
"focusReply"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
17
)]).
then
(
function
(){
var
n
=
[
t
(
"CK6D"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"关键词回复"
,
routerName
:
"autoReply"
,
path
:
"/autoReply"
,
cover
:
"7-2"
,
router
:{
path
:
"/autoReply"
,
name
:
"autoReply"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
14
)]).
then
(
function
(){
var
n
=
[
t
(
"65NY"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"公众号菜单"
,
routerName
:
"weChat"
,
path
:
"/weChat"
,
cover
:
"7-3"
,
router
:{
path
:
"/weChat"
,
name
:
"weChat"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
10
)]).
then
(
function
(){
var
n
=
[
t
(
"q5av"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"素材管理"
,
routerName
:
"weChatResource"
,
path
:
"/weChatResource"
,
cover
:
"7-4"
,
router
:{
path
:
"/weChatResource"
,
name
:
"weChatResource"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
19
)]).
then
(
function
(){
var
n
=
[
t
(
"Xhqp"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"Banner管理"
,
routerName
:
"banner"
,
path
:
"/banner"
,
cover
:
"7-5"
,
router
:{
path
:
"/banner"
,
name
:
"banner"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
20
)]).
then
(
function
(){
var
n
=
[
t
(
"CGL6"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"二维码管理"
,
routerName
:
"qrcode"
,
path
:
"/qrcode"
,
cover
:
"7-6"
,
router
:{
path
:
"/qrcode"
,
name
:
"qrcode"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
9
)]).
then
(
function
(){
var
n
=
[
t
(
"lNiQ"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"群发助手"
,
routerName
:
"groupSend"
,
path
:
"/groupSend"
,
cover
:
"7-7"
,
router
:{
path
:
"/groupSend"
,
name
:
"groupSend"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
27
)]).
then
(
function
(){
var
n
=
[
t
(
"oerw"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"关注取关统计"
,
routerName
:
"watchCount"
,
path
:
"/watchCount"
,
cover
:
"7-8"
,
router
:{
path
:
"/watchCount"
,
name
:
"watchCount"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
34
)]).
then
(
function
(){
var
n
=
[
t
(
"Dq6T"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"外部投放管理"
,
routerName
:
"externalLaunch"
,
path
:
"/externalLaunch"
,
cover
:
"7-9"
,
router
:{
path
:
"/externalLaunch"
,
name
:
"externalLaunch"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
37
)]).
then
(
function
(){
var
n
=
[
t
(
"NrkQ"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]},{
name
:
""
,
value
:
"系统管理"
,
icon
:
"icon-shezhi"
,
list
:[{
value
:
"账号管理"
,
routerName
:
"admin"
,
path
:
"/admin"
,
cover
:
"8-1"
,
router
:{
path
:
"/admin"
,
name
:
"admin"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
35
)]).
then
(
function
(){
var
n
=
[
t
(
"+jTk"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"角色管理"
,
routerName
:
"role"
,
path
:
"/role"
,
cover
:
"8-2"
,
router
:{
path
:
"/role"
,
name
:
"role"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
38
)]).
then
(
function
(){
var
n
=
[
t
(
"Vt1u"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"菜单管理"
,
routerName
:
"menu"
,
path
:
"/menu"
,
cover
:
"8-3"
,
router
:{
path
:
"/menu"
,
name
:
"menu"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
29
)]).
then
(
function
(){
var
n
=
[
t
(
"aTXs"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"系统配置"
,
routerName
:
"sysConfig"
,
path
:
"/sysConfig"
,
cover
:
"8-4"
,
router
:{
path
:
"/sysConfig"
,
name
:
"sysConfig"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
28
)]).
then
(
function
(){
var
n
=
[
t
(
"gaNG"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}},{
value
:
"操作日志"
,
routerName
:
"adminLog"
,
path
:
"/adminLog"
,
cover
:
"8-5"
,
router
:{
path
:
"/adminLog"
,
name
:
"adminLog"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
36
)]).
then
(
function
(){
var
n
=
[
t
(
"WZgi"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}}]}],
r
=
{
name
:
"App"
,
data
:
function
(){
return
{}},
mounted
:
function
(){
var
e
=
this
;
if
(
window
.
location
.
href
.
indexOf
(
"login"
)
<
0
){
var
n
=
this
.
$store
.
state
.
progressList
,
o
=
[];
this
.
$router
.
options
.
routes
[
0
].
children
=
[];
var
r
=
n
.
find
(
function
(
e
){
return
"5-1"
===
e
.
cover
});
r
&&
r
.
refund
&&
(
this
.
$store
.
state
.
orderRefund
=!
0
);
var
i
=
{
path
:
"/userDetail/:id"
,
name
:
"userDetail"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
13
)]).
then
(
function
(){
var
n
=
[
t
(
"9PRC"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}},
u
=
{
path
:
"/teacher/:id"
,
name
:
"teacherDetail"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
22
)]).
then
(
function
(){
var
n
=
[
t
(
"hFUZ"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}};
a
.
forEach
(
function
(
t
){
var
a
=!
1
,
r
=
[];
t
.
list
.
forEach
(
function
(
t
){
var
o
=
n
.
find
(
function
(
e
){
return
e
.
cover
===
t
.
cover
});
o
&&
(
t
.
router
.
meta
=
{},
t
.
router
.
meta
.
readonly
=
o
.
readonly
,
t
.
router
.
meta
.
delete
=!!
o
.
delete
,
r
.
push
(
t
),
"3-1"
===
o
.
cover
&&
(
u
.
meta
=
{},
u
.
meta
.
readonly
=
o
.
readonly
,
u
.
meta
.
delete
=!!
o
.
delete
,
e
.
$router
.
options
.
routes
[
0
].
children
.
push
(
u
)),
"3-2"
===
o
.
cover
&&
(
i
.
meta
=
{},
i
.
meta
.
readonly
=
o
.
readonly
,
i
.
meta
.
delete
=!!
o
.
delete
,
e
.
$router
.
options
.
routes
[
0
].
children
.
push
(
i
)),
e
.
$router
.
options
.
routes
[
0
].
children
.
push
(
t
.
router
),
a
=!
0
)}),
a
&&
(
t
.
list
=
r
,
o
.
push
(
t
))}),
this
.
$router
.
addRoutes
([
this
.
$router
.
options
.
routes
[
0
]]),
this
.
$store
.
dispatch
(
"setMenu"
,
o
)}}},
i
=
{
render
:
function
(){
var
e
=
this
.
$createElement
,
n
=
this
.
_self
.
_c
||
e
;
return
n
(
"div"
,{
attrs
:{
id
:
"app"
}},[
n
(
"router-view"
)],
1
)},
staticRenderFns
:[]};
var
u
=
t
(
"VU/8"
)(
r
,
i
,
!
1
,
function
(
e
){
t
(
"ONAN"
)},
null
,
null
).
exports
,
c
=
t
(
"YaEn"
),
s
=
t
(
"zL8q"
),
l
=
t
.
n
(
s
),
p
=
(
t
(
"tvR6"
),
t
(
"IcnI"
));
o
.
default
.
use
(
l
.
a
),
o
.
default
.
config
.
productionTip
=!
1
,
new
o
.
default
({
el
:
"#app"
,
store
:
p
.
a
,
router
:
c
.
a
,
components
:{
App
:
u
},
template
:
"<App/>"
})},
ONAN
:
function
(
e
,
n
){},
YaEn
:
function
(
e
,
n
,
t
){
"use strict"
;
var
o
=
t
(
"7+uW"
),
a
=
t
(
"IcnI"
),
r
=
t
(
"/ocq"
),
i
=
t
(
"zSLJ"
);
o
.
default
.
use
(
r
.
a
);
var
u
=
new
r
.
a
({
routes
:[{
path
:
"/"
,
name
:
"index"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
5
)]).
then
(
function
(){
var
n
=
[
t
(
"jHcp"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)},
redirect
:{
name
:
"first"
},
children
:[{
path
:
""
,
name
:
"first"
,
component
:
function
(
e
){
return
t
.
e
(
6
).
then
(
function
(){
var
n
=
[
t
(
"sJm1"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)}}]},{
path
:
"/login"
,
name
:
"login"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
25
)]).
then
(
function
(){
var
n
=
[
t
(
"0HId"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)},
meta
:{
skip_auth
:
!
0
}},{
path
:
"/outManager"
,
name
:
"outManager"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
33
)]).
then
(
function
(){
var
n
=
[
t
(
"hLMI"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)},
meta
:{
skip_auth
:
!
0
}},{
path
:
"/preview/:id"
,
name
:
"preview"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
1
),
t
.
e
(
0
)]).
then
(
function
(){
var
n
=
[
t
(
"pjYA"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)},
meta
:{}},{
path
:
"/upload"
,
name
:
"upload"
,
component
:
function
(
e
){
return
Promise
.
all
([
t
.
e
(
0
),
t
.
e
(
30
)]).
then
(
function
(){
var
n
=
[
t
(
"iPJD"
)];
e
.
apply
(
null
,
n
)}.
bind
(
this
)).
catch
(
t
.
oe
)},
meta
:{
skip_auth
:
!
0
}}]});
u
.
beforeEach
(
function
(
e
,
n
,
t
){
if
(
a
.
a
.
commit
(
"mainCanShow"
),
i
.
a
.
get
(
"cc_token"
)
&&
(
a
.
a
.
dispatch
(
"setToken"
,
i
.
a
.
get
(
"cc_token"
)),
a
.
a
.
dispatch
(
"setPermission"
,
JSON
.
parse
(
localStorage
.
getItem
(
"permission"
))),
null
!==
i
.
a
.
get
(
"cc_user_name"
)
&&
a
.
a
.
dispatch
(
"setUserName"
,
i
.
a
.
get
(
"cc_user_name"
))),
a
.
a
.
state
.
nowTab
=
e
.
name
,
e
.
matched
.
length
>
1
&&
"first"
!==
e
.
name
){
for
(
var
o
=
void
0
,
r
=
0
;
r
<
a
.
a
.
state
.
menuList
.
length
;
r
++
)
for
(
var
u
=
a
.
a
.
state
.
menuList
[
r
],
c
=
0
;
c
<
u
.
list
.
length
;
c
++
){
var
s
=
u
.
list
[
c
];
s
.
path
===
e
.
path
&&
(
o
=
s
)}
a
.
a
.
state
.
openedTab
.
indexOf
(
o
)
<
0
&&
a
.
a
.
state
.
openedTab
.
push
(
o
)}
if
(
e
.
meta
.
readonly
?
a
.
a
.
dispatch
(
"readonly"
,
!
0
):
a
.
a
.
dispatch
(
"readonly"
,
!
1
),
"userDetail"
===
e
.
name
){
var
l
=
JSON
.
parse
(
localStorage
.
getItem
(
"permission"
)).
find
(
function
(
e
){
return
"3-2"
===
e
.
cover
}).
readonly
;
a
.
a
.
dispatch
(
"readonly"
,
l
)}
e
.
meta
.
delete
?
a
.
a
.
dispatch
(
"deletePermission"
,
!
0
):
a
.
a
.
dispatch
(
"deletePermission"
,
!
1
),
e
.
matched
.
some
(
function
(
e
){
return
!
0
!==
e
.
meta
.
skip_auth
})
&&!
a
.
a
.
state
.
token
?
t
({
path
:
"/login"
}):
t
()}),
u
.
onError
(
function
(
e
){
var
n
=
e
.
message
.
match
(
/Loading chunk
(\d)
+ failed/g
),
t
=
u
.
history
.
pending
.
fullPath
;
n
&&
u
.
replace
(
t
)}),
n
.
a
=
u
},
tvR6
:
function
(
e
,
n
){},
zSLJ
:
function
(
e
,
n
,
t
){
"use strict"
;
n
.
a
=
{
set
:
function
(
e
,
n
,
t
){
var
o
=
new
Date
;
o
.
setTime
(
o
.
getTime
()
+
864
e5
*
t
),
window
.
document
.
cookie
=
e
+
"="
+
n
+
";path=/;expires="
+
o
.
toGMTString
()},
get
:
function
(
e
){
var
n
=
window
.
document
.
cookie
.
match
(
"(^|;) ?"
+
e
+
"=([^;]*)(;|$)"
);
return
n
?
n
[
2
]:
null
},
delete
:
function
(
e
){
this
.
set
(
e
,
""
,
-
1
)}}}},[
"NHnr"
]);
\ No newline at end of file
dist/static/js/manifest.c62c1a9f20bba85cac28.js
0 → 100644
View file @
d0645b51
!
function
(
e
){
var
a
=
window
.
webpackJsonp
;
window
.
webpackJsonp
=
function
(
f
,
r
,
t
){
for
(
var
d
,
o
,
b
,
i
=
0
,
u
=
[];
i
<
f
.
length
;
i
++
)
o
=
f
[
i
],
c
[
o
]
&&
u
.
push
(
c
[
o
][
0
]),
c
[
o
]
=
0
;
for
(
d
in
r
)
Object
.
prototype
.
hasOwnProperty
.
call
(
r
,
d
)
&&
(
e
[
d
]
=
r
[
d
]);
for
(
a
&&
a
(
f
,
r
,
t
);
u
.
length
;)
u
.
shift
()();
if
(
t
)
for
(
i
=
0
;
i
<
t
.
length
;
i
++
)
b
=
n
(
n
.
s
=
t
[
i
]);
return
b
};
var
f
=
{},
c
=
{
41
:
0
};
function
n
(
a
){
if
(
f
[
a
])
return
f
[
a
].
exports
;
var
c
=
f
[
a
]
=
{
i
:
a
,
l
:
!
1
,
exports
:{}};
return
e
[
a
].
call
(
c
.
exports
,
c
,
c
.
exports
,
n
),
c
.
l
=!
0
,
c
.
exports
}
n
.
e
=
function
(
e
){
var
a
=
c
[
e
];
if
(
0
===
a
)
return
new
Promise
(
function
(
e
){
e
()});
if
(
a
)
return
a
[
2
];
var
f
=
new
Promise
(
function
(
f
,
n
){
a
=
c
[
e
]
=
[
f
,
n
]});
a
[
2
]
=
f
;
var
r
=
document
.
getElementsByTagName
(
"head"
)[
0
],
t
=
document
.
createElement
(
"script"
);
t
.
type
=
"text/javascript"
,
t
.
charset
=
"utf-8"
,
t
.
async
=!
0
,
t
.
timeout
=
12
e4
,
n
.
nc
&&
t
.
setAttribute
(
"nonce"
,
n
.
nc
),
t
.
src
=
n
.
p
+
"static/js/"
+
e
+
"."
+
{
0
:
"46450e5cdb24264e02bd"
,
1
:
"930cc963f951b693a0b8"
,
2
:
"67679ea242bbddd70471"
,
3
:
"c3e810df39e49c5c02ec"
,
4
:
"ab59d14705d1df2132e1"
,
5
:
"67a431baf99016f2a214"
,
6
:
"c42264ba3e625c57ffe8"
,
7
:
"c61fd7ca231b2d73600f"
,
8
:
"c0521c12861804878b59"
,
9
:
"40ff61256fbdd1673ee1"
,
10
:
"a5d76167ced3aed3d2ef"
,
11
:
"ad2ddd63edbfbb12fcfd"
,
12
:
"cf2af8183c94a816ef64"
,
13
:
"0aeafedab1a98d2b07fe"
,
14
:
"e3b5a53c9cc6485458bb"
,
15
:
"8e412cce400b60559bd8"
,
16
:
"3d3ad54885dc5e1221b7"
,
17
:
"243d7e760b1abb0a5f22"
,
18
:
"986c3057a09e0919de82"
,
19
:
"006bb4c7f391f7bd08ba"
,
20
:
"897c47e2ac9f0a3c867a"
,
21
:
"6e9f90dbbf14f04cd925"
,
22
:
"cc8af44dbf73e0b2fa1c"
,
23
:
"e8c846993a10388f0261"
,
24
:
"a83a8f6a9f7f9494892e"
,
25
:
"59f9a81009dbf88e4f10"
,
26
:
"f6ec1f3d546e24b27035"
,
27
:
"0604347da5fa48468ecf"
,
28
:
"34e484c3f40921437cfc"
,
29
:
"242f0dd57981cd2b5643"
,
30
:
"e06f3ce3a1fe1a3f42a3"
,
31
:
"65782238f225c2c7ee1d"
,
32
:
"57b2ed1bb861f699ffa0"
,
33
:
"9b9e4da23b7feaed365d"
,
34
:
"b032a90710161ad6a298"
,
35
:
"5ba866e834db42ce2848"
,
36
:
"33bfbb0f6a6bafe04318"
,
37
:
"89a015b33e5302611040"
,
38
:
"edd5dc6bc9e3f03ea30e"
}[
e
]
+
".js"
;
var
d
=
setTimeout
(
o
,
12
e4
);
function
o
(){
t
.
onerror
=
t
.
onload
=
null
,
clearTimeout
(
d
);
var
a
=
c
[
e
];
0
!==
a
&&
(
a
&&
a
[
1
](
new
Error
(
"Loading chunk "
+
e
+
" failed."
)),
c
[
e
]
=
void
0
)}
return
t
.
onerror
=
t
.
onload
=
o
,
r
.
appendChild
(
t
),
f
},
n
.
m
=
e
,
n
.
c
=
f
,
n
.
d
=
function
(
e
,
a
,
f
){
n
.
o
(
e
,
a
)
||
Object
.
defineProperty
(
e
,
a
,{
configurable
:
!
1
,
enumerable
:
!
0
,
get
:
f
})},
n
.
n
=
function
(
e
){
var
a
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
n
.
d
(
a
,
"a"
,
a
),
a
},
n
.
o
=
function
(
e
,
a
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
a
)},
n
.
p
=
"/"
,
n
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
}}([]);
\ No newline at end of file
src/components/groupSend/index.vue
View file @
d0645b51
...
@@ -48,6 +48,12 @@
...
@@ -48,6 +48,12 @@
prop=
"send_id"
prop=
"send_id"
label=
"消息ID"
>
label=
"消息ID"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"消息类型"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
type
|
typeListFilter
}}
</
template
>
</el-table-column>
<el-table-column
<el-table-column
prop=
"send_num"
prop=
"send_num"
label=
"预计发送"
>
label=
"预计发送"
>
...
@@ -382,6 +388,12 @@
...
@@ -382,6 +388,12 @@
if
(
val
===
'image'
)
return
'图片'
;
if
(
val
===
'image'
)
return
'图片'
;
if
(
val
===
'video'
)
return
'视频'
;
if
(
val
===
'video'
)
return
'视频'
;
if
(
val
===
'news'
)
return
'图文'
;
if
(
val
===
'news'
)
return
'图文'
;
},
typeListFilter
(
val
){
if
(
!
val
)
return
''
;
if
(
val
===
1
)
return
'48时内关注但未购课用户'
;
if
(
val
===
2
)
return
'有体验课但没有正式课用户'
;
if
(
val
===
3
)
return
'未试听用户'
;
}
}
},
},
methods
:
{
methods
:
{
...
@@ -459,23 +471,13 @@
...
@@ -459,23 +471,13 @@
},
},
send
(){
send
(){
let
json
=
{}
let
json
=
{}
// if(this.searchFrom.is_test){
// if(this.searchFrom.time && this.searchFrom.time.length > 0){
// json.start_at = CommonJs.dateFmt(this.searchFrom.time[0],"yyyy-MM-dd hh:mm:ss");
// json.end_at = CommonJs.dateFmt(this.searchFrom.time[1],"yyyy-MM-dd hh:mm:ss")
// } else {
// this.$message({
// type: 'error',
// message: '请选择时间!'
// });
// return
// }
// }
json
.
type
=
this
.
searchFrom
.
type
json
.
type
=
this
.
searchFrom
.
type
let
msgTips
=
this
.
searchFrom
.
is_test
?
'发送筛选用户,'
:
'不发送筛选用户,'
;
if
(
this
.
searchFrom
.
type
===
1
){
if
(
this
.
searchFrom
.
type
===
1
){
if
(
this
.
searchFrom
.
time
&&
this
.
searchFrom
.
time
.
length
>
0
){
if
(
this
.
searchFrom
.
time
&&
this
.
searchFrom
.
time
.
length
>
0
){
json
.
start_at
=
CommonJs
.
dateFmt
(
this
.
searchFrom
.
time
[
0
],
"yyyy-MM-dd hh:mm:ss"
);
json
.
start_at
=
CommonJs
.
dateFmt
(
this
.
searchFrom
.
time
[
0
],
"yyyy-MM-dd hh:mm:ss"
);
json
.
end_at
=
CommonJs
.
dateFmt
(
this
.
searchFrom
.
time
[
1
],
"yyyy-MM-dd hh:mm:ss"
)
json
.
end_at
=
CommonJs
.
dateFmt
(
this
.
searchFrom
.
time
[
1
],
"yyyy-MM-dd hh:mm:ss"
);
msgTips
+=
'48时内关注但未购课用户('
+
json
.
start_at
+
'~'
+
json
.
end_at
+
','
;
}
else
{
}
else
{
this
.
$message
({
this
.
$message
({
type
:
'error'
,
type
:
'error'
,
...
@@ -483,9 +485,14 @@
...
@@ -483,9 +485,14 @@
});
});
return
return
}
}
}
else
if
(
this
.
searchFrom
.
type
===
2
)
{
msgTips
+=
'有体验课但没有正式课用户,'
}
else
if
(
this
.
searchFrom
.
type
===
3
)
{
msgTips
+=
'未试听用户,'
}
}
if
(
this
.
searchFrom
.
user_ids
){
if
(
this
.
searchFrom
.
user_ids
){
json
.
user_ids
=
this
.
searchFrom
.
user_ids
json
.
user_ids
=
this
.
searchFrom
.
user_ids
msgTips
+=
'用户ID:'
+
json
.
user_ids
;
}
else
{
}
else
{
this
.
$message
({
this
.
$message
({
type
:
'error'
,
type
:
'error'
,
...
@@ -541,15 +548,26 @@
...
@@ -541,15 +548,26 @@
json
.
content
=
JSON
.
stringify
(
_content
)
json
.
content
=
JSON
.
stringify
(
_content
)
json
.
is_test
=
this
.
searchFrom
.
is_test
?
2
:
1
json
.
is_test
=
this
.
searchFrom
.
is_test
?
2
:
1
console
.
log
(
"json"
,
json
);
console
.
log
(
"json"
,
json
);
sendMsgApi
(
json
).
then
((
res
)
=>
{
this
.
$confirm
(
msgTips
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
sendMsgApi
(
json
).
then
((
res
)
=>
{
this
.
$message
({
message
:
res
,
type
:
'success'
});
this
.
show
=
false
;
this
.
clearData
();
this
.
getMsgList
();
})
}).
catch
(()
=>
{
this
.
$message
({
this
.
$message
({
message
:
res
,
type
:
'info'
,
type
:
'success
'
message
:
'已取消发送
'
});
});
this
.
show
=
false
;
});
this
.
clearData
();
this
.
getMsgList
();
})
},
},
clearData
(){
clearData
(){
this
.
content
=
''
;
this
.
content
=
''
;
...
...
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