Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
marketing
Overview
Overview
Details
Activity
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
marketing-web
marketing
Commits
2d1a0746
Commit
2d1a0746
authored
Dec 23, 2021
by
caoyanzhi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/微信图文升级'
parents
e2a0f08d
c0dd76ee
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
138 additions
and
37 deletions
+138
-37
index.vue
src/components/libs/imgTemp/index.vue
+1
-0
imgtextpublic.vue
src/components/libs/imgTextTemp/imgtextpublic.vue
+11
-0
index.vue
src/components/libs/imgTextTemp/index.vue
+0
-0
syncImgtext.vue
src/components/libs/imgTextTemp/syncImgtext.vue
+30
-12
img.vue
src/components/upload/img.vue
+1
-0
wechat.js
src/router/modules/wechat.js
+18
-1
wechatApi.js
src/service/api/wechatApi.js
+2
-0
form.vue
src/views/ecm/form.vue
+1
-1
lib-teletext.vue
src/views/ecm/marketing-event/components/lib-teletext.vue
+32
-3
index.vue
src/views/ecm/marketing-event/index.vue
+6
-1
editor.vue
src/views/wechat/editor.vue
+26
-11
form.vue
src/views/wechat/form.vue
+10
-8
No files found.
src/components/libs/imgTemp/index.vue
View file @
2d1a0746
...
...
@@ -66,6 +66,7 @@ export default {
},
created
()
{
this
.
loadImgList
();
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
[{
name
:
'营销管理'
},
{
name
:
'微信营销'
,
path
:
''
},
{
name
:
'素材库'
,
path
:
''
},
{
name
:
'图文'
,
path
:
''
}]);
},
data
()
{
return
{
...
...
src/components/libs/imgTextTemp/imgtextpublic.vue
0 → 100644
View file @
2d1a0746
<
template
>
<img-text
is-publish
></img-text>
</
template
>
<
script
>
import
ImgText
from
'./index.vue'
;
export
default
{
name
:
'imgtextpublic'
,
components
:
{
ImgText
}
};
</
script
>
src/components/libs/imgTextTemp/index.vue
View file @
2d1a0746
This diff is collapsed.
Click to expand it.
src/components/libs/imgTextTemp/syncImgtext.vue
View file @
2d1a0746
<
template
>
<el-dialog
class=
"sync-imgtext__dialog"
title=
"同步微信图文
"
:visible
.
sync=
"show"
width=
"30%"
:before-close=
"close"
v-loading=
"loading"
>
<div
class=
"gic-modal-bd
text-center
"
>
<el-dialog
class=
"sync-imgtext__dialog"
:title=
"wxscType == 4 ? '同步微信草稿箱图文' : '同步已发布的微信图文'
"
:visible
.
sync=
"show"
width=
"30%"
:before-close=
"close"
v-loading=
"loading"
>
<div
class=
"gic-modal-bd"
>
<div
class=
"gic-modal-content"
>
<p
class=
"fz16"
style=
"margin-bottom:20px"
>
微信图文共
<span>
{{
count
}}
</span>
条
<span
@
click=
"getSyncInfo"
class=
"blue"
style=
"margin-left:10px;"
>
刷新
</span>
{{
wxscType
==
4
?
'微信草稿箱里的图文共'
:
'已发布微信图文共'
}}
<span>
{{
count
}}
</span>
条
<span
@
click=
"getSyncInfo"
class=
"blue"
style=
"margin-left:10px;"
>
刷新
</span>
</p>
<p
class=
"gray fz12"
>
同步全部图文可能会需要比较久的时间,请耐心等待
</p>
<div
style=
"margin-bottom: 10px"
>
同步条数:
<el-select
style=
"width: 160px"
:disabled=
"!(loadStatus === 1 && count !== 0)"
v-model=
"size"
placeholder=
"选择同步条数"
>
<el-option
v-for=
"item in sizeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</div>
<p
class=
"gray fz12"
>
同步全部图文可能会需要比较久的时间,请耐心等待...
</p>
</div>
</div>
<div
class=
"text-center pt20"
>
<el-select
class=
"w100"
v-if=
"loadStatus === 1 && count !== 0"
v-model=
"size"
placeholder=
"选择群发类型"
>
<el-option
v-for=
"item in sizeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<template
slot=
"footer"
>
<el-button
@
click=
"close"
>
取消
</el-button>
<el-button
v-if=
"loadStatus === 1"
type=
"primary"
@
click=
"syncWechat()"
>
立即同步
</el-button>
<el-button
v-if=
"loadStatus === 0"
type=
"primary"
:loading=
"true"
>
同步中
</el-button>
<el-button
v-if=
"loadStatus === 3"
icon=
"el-icon-error"
type=
"danger"
>
同步失败
</el-button>
</
div
>
</
template
>
</el-dialog>
</template>
<
script
>
...
...
@@ -25,6 +29,11 @@ export default {
show
:
{
type
:
Boolean
,
default
:
false
},
// 4:草稿列表 5:发布列表
wxscType
:
{
type
:
[
Number
,
String
],
default
:
''
}
},
watch
:
{
...
...
@@ -40,16 +49,24 @@ export default {
loading
:
false
,
count
:
0
,
size
:
5
,
sizeOptions
:
[{
label
:
'5条'
,
value
:
5
},
{
label
:
'10条'
,
value
:
10
},
{
label
:
'20条'
,
value
:
20
},
{
label
:
'全部'
,
value
:
999999
}]
// eslint-disable-line
sizeOptions
:
[
{
label
:
'最新的5条'
,
value
:
5
},
{
label
:
'最新的10条'
,
value
:
10
},
{
label
:
'最新的20条'
,
value
:
20
},
{
label
:
'全部'
,
value
:
999999
}
]
};
},
methods
:
{
close
()
{
this
.
$emit
(
'update:show'
,
false
);
this
.
$nextTick
(()
=>
{
this
.
size
=
5
;
});
},
async
getSyncInfo
()
{
this
.
loading
=
true
;
let
res
=
await
getSyncInfo
();
let
res
=
await
getSyncInfo
(
{
wxscType
:
this
.
wxscType
}
);
this
.
count
=
res
.
result
.
wechatCount
;
this
.
loadStatus
=
res
.
result
.
status
;
this
.
loading
=
false
;
...
...
@@ -57,11 +74,12 @@ export default {
async
syncWechat
()
{
this
.
loadStatus
=
0
;
const
num
=
this
.
size
===
999999
?
this
.
count
:
this
.
size
;
let
res
=
await
syncWechatImageText
({
num
});
let
res
=
await
syncWechatImageText
({
num
,
wxscType
:
this
.
wxscType
});
if
(
num
<=
20
&&
res
.
errorCode
===
0
)
{
this
.
$tips
({
type
:
'success'
,
message
:
'同步成功'
});
this
.
loadStatus
=
1
;
this
.
close
();
this
.
$emit
(
'syncSuccess'
);
}
}
}
...
...
src/components/upload/img.vue
View file @
2d1a0746
...
...
@@ -72,6 +72,7 @@ export default {
this
.
$emit
(
'backImg'
,
this
.
model
);
this
.
copyDisabled
=
this
.
disabled
;
},
immediate
:
true
,
deep
:
true
}
},
...
...
src/router/modules/wechat.js
View file @
2d1a0746
...
...
@@ -79,6 +79,15 @@ export default {
}
},
{
path
:
'check-imgtext/:id'
,
name
:
'查看图文'
,
component
:
()
=>
import
(
/* webpackChunkName: "wechat" */
'../../views/wechat/editor.vue'
),
meta
:
{
type
:
'edit'
,
path
:
'/wechat/temp/check-imgtext'
}
},
{
path
:
'temp'
,
name
:
'素材库'
,
component
:
()
=>
import
(
/* webpackChunkName: "wechat" */
'../../views/wechat/temp.vue'
),
...
...
@@ -87,13 +96,21 @@ export default {
children
:
[
{
path
:
'imgtext'
,
name
:
'图文'
,
name
:
'图文
草稿箱
'
,
component
:
()
=>
import
(
/* webpackChunkName: "wechat" */
'../../components/libs/imgTextTemp/index.vue'
),
meta
:
{
path
:
'/wechat/temp/imgtext'
}
},
{
path
:
'imgtextpublic'
,
name
:
'图文发布列表'
,
component
:
()
=>
import
(
/* webpackChunkName: "wechat" */
'../../components/libs/imgTextTemp/imgtextpublic.vue'
),
meta
:
{
path
:
'/wechat/temp/imgtextpublic'
}
},
{
path
:
'img'
,
name
:
'图片'
,
component
:
()
=>
import
(
/* webpackChunkName: "wechat" */
'../../components/libs/imgTemp/index.vue'
),
...
...
src/service/api/wechatApi.js
View file @
2d1a0746
...
...
@@ -33,6 +33,8 @@ export const getSyncInfo = params => requests(PREFIX + 'get-sync-info', params);
//素材库--图文--同步微信侧 图文素材数据
export
const
syncWechatImageText
=
params
=>
requests
(
PREFIX
+
'sync-wechatImage-text'
,
params
);
export
const
wechatDraftPublish
=
params
=>
requests
(
PREFIX
+
'wechat-draft-publish'
,
params
);
//素材库--图片--图片分页列表
export
const
loadImgList
=
params
=>
requests
(
PREFIX
+
'page-marketing-wechat-image'
,
params
);
...
...
src/views/ecm/form.vue
View file @
2d1a0746
...
...
@@ -355,7 +355,7 @@
</div>
</h3>
<!-- 只有实时才是单图文 -->
<marketing-event
:readOnly=
"isInfo || onlineStatus == 2"
:show-delete-tooltip=
"isEdit && analyseConfig.open_flag == 1"
show-out-coupon-icon
ref=
"marketingEvent"
@
has-card=
"hasCard"
v-if=
"ecmPlanId"
:singleFlag=
"form.effectType === 0"
:integralMultiple=
"form.effectAction === 'consume'"
:ecmPlanId=
"ecmPlanId"
:isSupportVar=
"form.effectType === 0"
:code=
"code"
:enabledMessageState=
"enabledMessageState"
:cardLimitType=
"-1"
:use-stored=
"useStoredFlag && ['consume', 'stored'].includes(form.effectAction) && form.effectType == 0"
:use-qfxx=
"form.effectType !== 0"
></marketing-event>
<marketing-event
:
effectType=
"form.effectType"
:
readOnly=
"isInfo || onlineStatus == 2"
:show-delete-tooltip=
"isEdit && analyseConfig.open_flag == 1"
show-out-coupon-icon
ref=
"marketingEvent"
@
has-card=
"hasCard"
v-if=
"ecmPlanId"
:singleFlag=
"form.effectType === 0"
:integralMultiple=
"form.effectAction === 'consume'"
:ecmPlanId=
"ecmPlanId"
:isSupportVar=
"form.effectType === 0"
:code=
"code"
:enabledMessageState=
"enabledMessageState"
:cardLimitType=
"-1"
:use-stored=
"useStoredFlag && ['consume', 'stored'].includes(form.effectAction) && form.effectType == 0"
:use-qfxx=
"form.effectType !== 0"
></marketing-event>
<!-- 只有非实时&&选择卡券了展示提示 -->
<div
v-if=
"currentCard.comName && form.effectType != 0 && couponAutoGetFlag"
class=
"fz13 regular-font-color line-height2"
style=
"margin-left:120px;margin-top:30px;"
>
* 用户在领取卡券后需要
<b
class=
"bold"
>
同步至ERP
</b>
,如果关闭用户
<b
class=
"bold"
>
手动领取
</b>
,卡券在
<b
class=
"bold"
>
批量投放
</b>
时会需要将卡券信息批量同步至ERP。
<br
/>
...
...
src/views/ecm/marketing-event/components/lib-teletext.vue
View file @
2d1a0746
...
...
@@ -17,13 +17,26 @@
</
template
>
</el-table-column>
<el-table-column
label=
"图片"
align=
"left"
width=
"120px"
class-name=
"table-img"
>
<
template
slot-scope=
"scope"
>
<
div
slot-scope=
"scope"
>
<img
width=
"100"
height=
"50"
class=
"border-radius__default"
:src=
"scope.row.itemList.length ? scope.row.itemList[0].qcloudImageUrl || '' : ''"
alt=
""
/>
</
template
>
</
div
>
</el-table-column>
<el-table-column
label=
"图文标题"
align=
"left"
min-width=
"100px"
>
<
template
slot-scope=
"scope"
>
<a
class=
"blue"
:href=
"scope.row.itemList.length ? scope.row.itemList[0].mediaUrl || '' : ''"
target=
"_blank"
>
{{
scope
.
row
.
itemList
.
length
?
scope
.
row
.
itemList
[
0
].
titleName
||
''
:
''
}}
</a>
<span>
标题:
</span><a
class=
"blue"
:href=
"scope.row.itemList.length ? scope.row.itemList[0].mediaUrl || '' : ''"
target=
"_blank"
>
{{
scope
.
row
.
itemList
.
length
?
scope
.
row
.
itemList
[
0
].
titleName
||
''
:
''
}}
</a>
<div>
<span>
{{
effectType
!=
0
?
'图文m_id:'
:
'图文a_id:'
}}
</span>
<el-tooltip
v-if=
"effectType != 0 && scope.row.draftMediaId"
placement=
"top"
:content=
"scope.row.draftMediaId"
>
<span
class=
"media-id"
>
{{
scope
.
row
.
draftMediaId
}}
</span>
</el-tooltip>
<el-tooltip
v-else-if=
"effectType == 0 && scope.row.articleId"
placement=
"top"
:content=
"scope.row.articleId"
>
<span
class=
"media-id"
>
{{
scope
.
row
.
articleId
}}
</span>
</el-tooltip>
<span
v-else
>
--
</span>
</div>
<!--
<el-tooltip
v-if=
"scope.row.articleId"
placement=
"top"
:content=
"scope.row.articleId"
>
<span
class=
"media-id"
>
{{
scope
.
row
.
articleId
}}
</span>
</el-tooltip>
-->
</
template
>
</el-table-column>
<el-table-column
label=
"作者"
prop=
"updateTimeStr"
align=
"left"
width=
"120px"
>
...
...
@@ -62,6 +75,11 @@ export default {
// 图文 实时发送这个参数为true,过滤图文仅要单图文
type
:
Boolean
,
default
:
false
},
// 智能营销的时效 0:触点 1:重复 2:单次
effectType
:
{
type
:
[
Number
,
String
],
default
:
0
}
},
created
()
{
...
...
@@ -92,6 +110,9 @@ export default {
loadImgTextList
()
{
this
.
loading
=
true
;
const
params
=
{
...
this
.
listParams
};
if
(
this
.
effectType
!=
0
)
{
params
.
wxscType
=
2
;
}
if
(
this
.
singleFlag
)
{
params
.
singleFlag
=
1
;
// 不是实时就不穿这个参数,不传表示全部
}
...
...
@@ -147,4 +168,12 @@ export default {
.dm-imgtext-list
{
width
:
100%
;
}
.media-id
{
display
:
inline-block
;
vertical-align
:
top
;
max-width
:
190px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
</
style
>
src/views/ecm/marketing-event/index.vue
View file @
2d1a0746
...
...
@@ -34,7 +34,7 @@
</transition>
</div>
<!-- 弹窗组件 -->
<component
:is=
"dialogCom"
@
sendItem=
"saveToList"
:showOutCouponIcon=
"showOutCouponIcon"
:item=
"currentItem"
:show
.
sync=
"dialogShow"
:isSupportVar=
"isSupportVar"
:cardLimitType=
"cardLimitType"
:integralMultiple=
"integralMultiple"
:singleFlag=
"singleFlag"
:read-only=
"readOnly || showView"
:resource-status=
"resourceStatus"
></component>
<component
:is=
"dialogCom"
@
sendItem=
"saveToList"
:
effectType=
"effectType"
:
showOutCouponIcon=
"showOutCouponIcon"
:item=
"currentItem"
:show
.
sync=
"dialogShow"
:isSupportVar=
"isSupportVar"
:cardLimitType=
"cardLimitType"
:integralMultiple=
"integralMultiple"
:singleFlag=
"singleFlag"
:read-only=
"readOnly || showView"
:resource-status=
"resourceStatus"
></component>
</section>
</template>
...
...
@@ -152,6 +152,11 @@ export default {
type
:
Boolean
,
default
:
true
},
// 智能营销的时效 0:触点 1:重复 2:单次
effectType
:
{
type
:
[
Number
,
String
],
default
:
0
},
useQfxx
:
Boolean
,
showDeleteTooltip
:
Boolean
},
...
...
src/views/wechat/editor.vue
View file @
2d1a0746
...
...
@@ -35,12 +35,13 @@
<div
class=
"editor_triangle"
></div>
<div
class=
"editor-inner"
>
<p
class=
"line-height2"
><span
class=
"danger-color"
>
*
</span>
标题
</p>
<dm-input
size=
"medium"
v-model=
"activeImgText.titleName"
:maxlength=
"64"
></dm-input>
<dm-input
size=
"medium"
v-model=
"activeImgText.titleName"
:
disabled=
"isCheckImg"
:
maxlength=
"64"
></dm-input>
<p
class=
"line-height2 pt10"
>
作者
</p>
<dm-input
size=
"medium"
v-model=
"activeImgText.authorName"
:byteType=
"1"
:maxlength=
"8"
></dm-input>
<dm-input
size=
"medium"
v-model=
"activeImgText.authorName"
:
disabled=
"isCheckImg"
:
byteType=
"1"
:maxlength=
"8"
></dm-input>
<p
class=
"line-height2 pt10"
>
封面
<span
class=
"gray fz12"
>
(大图片建议尺寸:900像素 * 500像素)
</span></p>
<upload-img
url=
"/api-marketing/marketing-wechat-image-save"
class=
"inline-block"
:model
.
sync=
"postImg"
:showImg=
"false"
width=
"auto"
label=
"本地上传"
tips=
""
:labelStyle=
"
{ padding: '8px 15px', fontSize: '14px', borderRadius: '4px' }">
</upload-img>
<upload-img
url=
"/api-marketing/marketing-wechat-image-save"
class=
"inline-block"
:
disabled=
"isCheckImg"
:
model
.
sync=
"postImg"
:showImg=
"false"
width=
"auto"
label=
"本地上传"
tips=
""
:labelStyle=
"
{ padding: '8px 15px', fontSize: '14px', borderRadius: '4px' }">
</upload-img>
<el-button
:disabled=
"isCheckImg"
class=
"ml5"
@
click=
"
postFlag = true;
...
...
@@ -49,12 +50,12 @@
>
从素材中选择
</el-button
>
<div
class=
"cover_preview"
v-show=
"activeImgText.qcloudImageUrl"
:style=
"'background-image: url(' + activeImgText.qcloudImageUrl + ')'"
></div>
<el-checkbox
class=
"pt10"
v-show=
"activeImgText.qcloudImageUrl"
v-model=
"activeImgText.imageType"
:true-label=
"1"
:false-label=
"0"
>
封面图片显示在正文中
</el-checkbox>
<el-checkbox
class=
"pt10"
v-show=
"activeImgText.qcloudImageUrl"
v-model=
"activeImgText.imageType"
:
disabled=
"isCheckImg"
:
true-label=
"1"
:false-label=
"0"
>
封面图片显示在正文中
</el-checkbox>
<p
class=
"line-height2 pt10"
>
摘要
<span
class=
"gray fz12"
>
(选填,如果不填写会默认抓取正文前54个字)
</span></p>
<dm-input
size=
"medium"
v-model=
"activeImgText.remark"
type=
"textarea"
:rows=
"4"
:maxlength=
"120"
></dm-input>
<dm-input
size=
"medium"
v-model=
"activeImgText.remark"
:disabled=
"isCheckImg"
type=
"textarea"
:rows=
"4"
:maxlength=
"120"
></dm-input>
<p
class=
"line-height2 mt10"
><span
class=
"danger-color"
>
*
</span>
正文
</p>
<div
class=
"toolbar"
>
<div
class=
"toolbar"
v-if=
"!isCheckImg"
>
<span
@
click=
"
postFlag = false;
...
...
@@ -62,11 +63,11 @@
"
><i
class=
"el-icon-picture"
></i><span>
图片
</span></span
>
<
span
@
click=
"preVideo"
><i
class=
"iconfont icon-shipin"
></i><span>
视频
</span></span
>
<
!--
<span
@
click=
"preVideo"
><i
class=
"iconfont icon-shipin"
></i><span>
视频
</span></span>
--
>
<!--
<span
@
click=
"cardShow = true"
><i
class=
"iconfont icon-qiaquan"
></i><span>
卡券
</span></span>
-->
</div>
<vue-ueditor-wrap
ref=
"ueditor"
v-model=
"activeImgText.content"
:destroy=
"false"
:config=
"config"
@
ready=
"ready"
:myInit=
"myInit"
></vue-ueditor-wrap>
<el-checkbox
class=
"pt10"
v-model=
"activeImgText.originalStatus"
:true-label=
"1"
:false-label=
"0"
>
原文链接
</el-checkbox>
<el-checkbox
class=
"pt10"
v-model=
"activeImgText.originalStatus"
:
disabled=
"isCheckImg"
:
true-label=
"1"
:false-label=
"0"
>
原文链接
</el-checkbox>
<el-input
size=
"medium"
v-if=
"activeImgText.originalStatus"
v-model=
"activeImgText.originalUrl"
></el-input>
</div>
</div>
...
...
@@ -108,7 +109,7 @@
</el-dialog>
<preview
:show
.
sync=
"previewShow"
:imgTextList=
"imgTextList"
:firstImgText=
"firstImgText"
></preview>
<div
class=
"btn-wrap_fixed"
:class=
"
{ on: asideShow }">
<el-button
type=
"primary"
@
click=
"submit"
:loading=
"subLoading"
>
保 存
</el-button>
<el-button
type=
"primary"
v-if=
"$route.path.indexOf('check-imgtext')
<
=
0
"
@
click=
"submit"
:loading=
"subLoading"
>
保 存
</el-button>
<el-button
@
click=
"previewShow = true"
>
预 览
</el-button>
<el-button
@
click=
"$router.go(-1)"
>
返 回
</el-button>
</div>
...
...
@@ -131,6 +132,7 @@ import { upRecord, downRecord, voidStr } from '@/utils/index.js';
export
default
{
data
()
{
return
{
isCheckImg
:
false
,
loading
:
false
,
subLoading
:
false
,
activeClass
:
'first'
,
...
...
@@ -221,7 +223,20 @@ export default {
},
created
()
{
this
.
getMarketingUserInfo
();
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
[{
name
:
'营销管理'
},
{
name
:
'微信营销'
,
path
:
''
},
{
name
:
'素材库'
,
path
:
'/wechat/temp'
},
{
name
:
'图文编辑'
,
path
:
''
}]);
// editor
// editor:id
// check-imgtext:id
const
bread
=
[{
name
:
'营销管理'
},
{
name
:
'微信营销'
,
path
:
''
},
{
name
:
'素材库'
,
path
:
'/wechat/temp'
}];
if
(
this
.
$route
.
path
==
'/wechat/editor'
)
{
bread
.
push
({
name
:
'新建图文'
,
path
:
''
});
}
else
if
(
this
.
$route
.
path
.
indexOf
(
'check-imgtext'
)
>=
0
)
{
bread
.
push
({
name
:
'查看图文'
,
path
:
''
});
this
.
isCheckImg
=
true
;
this
.
config
.
readonly
=
true
;
}
else
{
bread
.
push
({
name
:
'编辑图文'
,
path
:
''
});
}
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
bread
);
//监听获取图片 封面图或者正文图片
// eslint-disable-next-line
$bus
.
$on
(
'img-temp-choose'
,
val
=>
{
...
...
@@ -411,7 +426,7 @@ export default {
let
res
=
await
saveUpdateWechatImageText
({
wechatTeletext
:
JSON
.
stringify
(
params
)
});
if
(
res
.
errorCode
===
0
)
{
this
.
$tips
({
type
:
'success'
,
message
:
type
?
'编辑图文成功'
:
'新建图文成功'
});
this
.
$router
.
push
(
'/wechat/temp/imgtext'
);
this
.
$router
.
go
(
-
1
);
}
else
{
this
.
$tips
({
type
:
'error'
,
message
:
res
.
message
||
type
?
'编辑图文失败'
:
'新建图文失败'
});
}
...
...
src/views/wechat/form.vue
View file @
2d1a0746
...
...
@@ -16,7 +16,7 @@
</div>
<div>
<span
class=
"dm-input_label"
style=
"margin-right:12px"
>
发送时间:
</span>
<el-select
class=
"w250"
v-model=
"info.sendType"
:disabled=
"isInfo"
>
<el-select
class=
"w250"
v-model=
"info.sendType"
:disabled=
"isInfo
|| isEdit
"
>
<el-option
v-for=
"(v, i) in sendTypeOptions"
:key=
"i"
:value=
"v.value"
:label=
"v.label"
></el-option>
</el-select>
<el-date-picker
class=
"w250"
:disabled=
"isInfo"
v-if=
"info.sendType"
v-model=
"info.sendTime"
type=
"datetime"
placeholder=
"选择日期时间"
align=
"right"
:picker-options=
"pickerOptions"
></el-date-picker>
...
...
@@ -30,14 +30,14 @@
<div
class=
"pt10 pb20"
>
<span
class=
"dm-input_label"
>
选择会员:
</span>
<el-radio
v-model=
"info.memberType"
:disabled=
"isInfo"
:label=
"0"
>
会员筛选
</el-radio>
<el-radio
v-model=
"info.memberType"
:disabled=
"isInfo"
:label=
"1"
>
<el-radio
v-model=
"info.memberType"
:disabled=
"isInfo
|| isEdit
"
:label=
"0"
>
会员筛选
</el-radio>
<el-radio
v-model=
"info.memberType"
:disabled=
"isInfo
|| isEdit
"
:label=
"1"
>
指定会员
<el-tooltip
class=
"item"
effect=
"dark"
content=
"指定会员下最多选择1000人"
open-delay=
"200"
>
<i
class=
"el-icon-info ml5 minor-font-color"
></i>
</el-tooltip>
</el-radio>
<el-radio
v-model=
"info.memberType"
:disabled=
"isInfo"
:label=
"2"
>
会员分组
</el-radio>
<el-radio
v-model=
"info.memberType"
:disabled=
"isInfo
|| isEdit
"
:label=
"2"
>
会员分组
</el-radio>
</div>
<div
v-show=
"info.memberType === 0"
>
<vue-gic-people
v-bind=
"storeParams"
:projectName=
"projectName"
:isAdd=
"isAdd"
:triggerReset=
"true"
:useId=
"useId"
:hasSearchData=
"hasSearchData"
:sceneValue=
"sceneValue"
ref=
"peopleFilter"
@
findFilter=
"findFilter"
@
getBackData=
"getBackData"
@
editHide=
"editHide"
@
editShow=
"editShow"
@
hideBtn=
"hideBtn"
/>
...
...
@@ -52,14 +52,14 @@
<section
class=
"dm-form__wrap"
v-if=
"$route.meta.type !== 'imgText'"
>
<h3
class=
"dm-title__label"
>
群发内容设置
</h3>
<span
class=
"dm-input_label"
>
群发类型:
</span>
<el-radio-group
v-model=
"info.contentType"
>
<el-radio-group
:disabled=
"isInfo || isEdit"
v-model=
"info.contentType"
>
<el-radio
:label=
"0"
:disabled=
"isInfo"
>
图文
</el-radio>
<el-radio
:label=
"1"
:disabled=
"isInfo"
>
文本
</el-radio>
<el-radio
:label=
"2"
:disabled=
"isInfo"
>
图片
</el-radio>
</el-radio-group>
<div
class=
"pt20"
>
<div
v-show=
"info.contentType === 0"
style=
"padding:15px; border:1px solid #DCDFE6;border-radius:2px;"
>
<dm-img-text
:isGroupSend=
"true"
:
showSelf=
"false"
:showSelfFlag=
"showSelfFlag"
@
get-data=
"getImgTextData"
:radioShow=
"true"
:auto=
"false"
:imageTextId=
"info.imageTextId"
:activeId=
"info.imageTextWecha
tId"
></dm-img-text>
<dm-img-text
:isGroupSend=
"true"
:
disabled=
"isInfo || isEdit"
:showSelf=
"false"
:showSelfFlag=
"showSelfFlag"
@
get-data=
"getImgTextData"
:radioShow=
"true"
:auto=
"false"
:imageTextId=
"info.imageTextId"
:activeId=
"info.imageTex
tId"
></dm-img-text>
</div>
<dm-img-box
:isGroupSend=
"true"
:selfSwitch=
"false"
v-show=
"info.contentType === 2"
:mediaId=
"info.mediaId"
@
get-data=
"getImgData"
></dm-img-box>
<div
v-show=
"info.contentType === 1"
>
...
...
@@ -198,7 +198,9 @@ export default {
);
},
created
()
{
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
[{
name
:
'营销管理'
},
{
name
:
'微信营销'
,
path
:
''
},
{
name
:
'发送记录'
,
path
:
'/wechat'
},
{
name
:
'微信群发'
,
path
:
''
}]);
this
.
$nextTick
(()
=>
{
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
[{
name
:
'营销管理'
},
{
name
:
'微信营销'
,
path
:
''
},
{
name
:
'发送记录'
,
path
:
'/wechat'
},
{
name
:
'微信群发'
,
path
:
''
}]);
});
if
(
this
.
imgTextFlag
)
{
this
.
wechatImageTextEdit
();
}
...
...
@@ -505,7 +507,7 @@ export default {
.
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
errorCode
===
0
)
{
this
.
$tips
({
type
:
'success'
,
message
:
res
.
message
||
'操作
成功'
});
this
.
$tips
({
type
:
'success'
,
message
:
this
.
$route
.
meta
.
type
==
'edit'
?
'编辑群发成功'
:
'新建群发
成功'
});
setTimeout
(
_
=>
{
if
(
this
.
imgTextFlag
)
{
// 图片使用时跳转到图片列表
...
...
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