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
078ef662
Commit
078ef662
authored
Aug 19, 2021
by
黑潮
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/8月上旬迭代'
parents
605e7ae2
3fa61574
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
156 additions
and
72 deletions
+156
-72
index.vue
src/components/libs/smsTemp/index.vue
+1
-1
card.js
src/router/modules/card.js
+9
-0
index.js
src/service/api/index.js
+7
-1
group-send.vue
src/views/card/group-send.vue
+5
-2
merge-form.vue
src/views/card/merge-form.vue
+9
-8
merge-list.vue
src/views/card/merge-list.vue
+9
-4
merge-record-list.vue
src/views/card/merge-record-list.vue
+4
-2
form.js
src/views/ecm/form.js
+3
-0
form.vue
src/views/ecm/form.vue
+2
-2
scan-form.js
src/views/ecm/scan-form.js
+3
-0
scan-form.vue
src/views/ecm/scan-form.vue
+2
-2
group-send.vue
src/views/ewash/group-send.vue
+5
-2
form.vue
src/views/message/form.vue
+9
-13
importSendDetail.vue
src/views/message/importSendDetail.vue
+3
-3
importSendList.vue
src/views/message/importSendList.vue
+14
-18
record.vue
src/views/message/record.vue
+8
-3
edit.vue
src/views/msg/edit.vue
+5
-2
board.vue
src/views/recharge/board.vue
+1
-1
consume.vue
src/views/recharge/consume.vue
+5
-5
record.vue
src/views/recharge/record.vue
+52
-3
No files found.
src/components/libs/smsTemp/index.vue
View file @
078ef662
...
...
@@ -15,7 +15,7 @@
<el-table-column
:show-overflow-tooltip=
"false"
:width=
"200"
:min-width=
"200"
align=
"left"
prop=
"title"
label=
"模板名称"
></el-table-column>
<el-table-column
:show-overflow-tooltip=
"false"
:width=
"200"
:min-width=
"200"
align=
"left"
prop=
"content"
label=
"模板类型"
>
<
template
slot-scope=
"scope"
>
<p
class=
"gray"
>
{{
scope
.
row
.
type
===
0
?
'普通短信'
:
scope
.
row
.
type
===
1
?
'营销短信'
:
'验证码'
}}
</p>
<p
class=
"gray"
style=
"color:#606266"
>
{{
scope
.
row
.
type
===
0
?
'普通短信'
:
scope
.
row
.
type
===
1
?
'营销短信'
:
'验证码'
}}
</p>
</
template
>
</el-table-column>
<el-table-column
:show-overflow-tooltip=
"false"
:min-width=
"200"
align=
"left"
prop=
"content"
label=
"模板内容"
>
...
...
src/router/modules/card.js
View file @
078ef662
...
...
@@ -103,6 +103,15 @@ export default {
path
:
'/card/merge/list'
,
type
:
'edit'
}
},
{
path
:
'info/:id'
,
name
:
'查看卡券包'
,
component
:
()
=>
import
(
/* webpackChunkName: "card" */
'../../views/card/merge-form.vue'
),
meta
:
{
path
:
'/card/merge/list'
,
type
:
'info'
}
}
]
},
...
...
src/service/api/index.js
View file @
078ef662
...
...
@@ -6,6 +6,7 @@ import axios from 'axios';
// const router = new VueRouter();
import
router
from
'../../router/index'
;
import
store
from
'../../store/index'
;
import
Vue
from
'vue'
;
// 加载最小时间
const
MINI_TIME
=
300
;
...
...
@@ -124,7 +125,12 @@ const requests = (url, data = {}, contentTypeIsJSON = false, isSilence = false,
popRequest
(
_random
);
if
(
res
.
data
.
errorCode
!==
0
)
{
reject
(
res
);
handlerErr
(
res
.
data
.
errorCode
,
res
.
data
.
message
,
alertError
);
// handlerErr(res.data.errorCode, res.data.message, alertError);
if
(
res
.
data
.
message
.
indexOf
(
'抱歉'
)
>=
0
)
{
Vue
.
prototype
.
$alert
(
res
.
data
.
message
,
'提示'
);
}
else
{
handlerErr
(
res
.
data
.
errorCode
,
res
.
data
.
message
,
alertError
);
}
}
else
{
resolve
(
res
.
data
);
}
...
...
src/views/card/group-send.vue
View file @
078ef662
...
...
@@ -127,7 +127,7 @@
<div
class=
"ecm-msg__edit"
>
<div
class=
"ecm-msg__edit--inner"
>
<el-form-item
label-width=
"100px"
label=
"头部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('headerText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<!-- <el-color-picker class="ml10 vertical-middle" v-model="copyTemplate.headerColor"></el-color-picker> -->
<el-button
type=
"text"
class=
"ml10 vertical-middle"
@
click=
"insetVarPre('headerText')"
>
插入变量
</el-button>
...
...
@@ -141,7 +141,7 @@
</div>
</el-form-item>
<el-form-item
label-width=
"100px"
label=
"尾部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('remarkText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<el-color-picker
class=
"ml10 vertical-middle"
v-model=
"copyTemplate.remarkColor"
></el-color-picker>
<el-button
type=
"text"
class=
"vertical-middle"
@
click=
"insetVarPre('remarkText')"
>
插入变量
</el-button>
...
...
@@ -270,6 +270,9 @@ export default {
this
.
$store
.
commit
(
'mutations_layoutTips'
,
''
);
},
methods
:
{
filterWord
(
prop
)
{
this
.
copyTemplate
[
prop
]
=
this
.
copyTemplate
[
prop
].
replace
(
/
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
][\u
200D|
\u
FE0F
]
|
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
]
|
[
0-9|*|#
]\u
FE0F
\u
20E3|
[
0-9|#
]\u
20E3|
[\u
203C-
\u
3299
]\u
FE0F
\u
200D|
[\u
203C-
\u
3299
]\u
FE0F|
[\u
2122-
\u
2B55
]
|
\u
303D|
[\A
9|
\A
E
]\u
3030|
\u
A9|
\u
AE|
\u
3030/g
,
''
);
},
// 获取变量列表
async
listTemplateVariables
()
{
try
{
...
...
src/views/card/merge-form.vue
View file @
078ef662
...
...
@@ -2,18 +2,18 @@
<div
class=
"dm-wrap"
v-loading=
"loading"
>
<el-form
ref=
"form"
:model=
"ruleForm"
label-width=
"140px"
:rules=
"rules"
>
<el-form-item
prop=
"name"
label=
"卡券包名称"
>
<dm-input
v-model=
"ruleForm.name"
class=
"w250"
placeholder=
"请输入卡券包名称"
:byteType=
"1"
:maxlength=
"10"
></dm-input>
<dm-input
v-model=
"ruleForm.name"
class=
"w250"
placeholder=
"请输入卡券包名称"
:byteType=
"1"
:maxlength=
"10"
:disabled=
"isInfo"
></dm-input>
</el-form-item>
<el-form-item
prop=
"effectiveMode"
label=
"有效时间"
>
<!--
<el-select
class=
"w300"
v-model=
"ruleForm.effectiveMode"
>
<el-option
v-for=
"(v, i) in sendTypeOptions"
:key=
"i"
:value=
"v.value"
:label=
"v.label"
></el-option>
</el-select>
-->
<el-radio-group
v-model=
"ruleForm.effectiveMode"
>
<el-radio-group
v-model=
"ruleForm.effectiveMode"
:disabled=
"isInfo"
>
<el-radio
:label=
"0"
>
不限
</el-radio>
<el-radio
:label=
"1"
>
选择时间段
</el-radio>
</el-radio-group>
<br
/>
<el-date-picker
v-if=
"ruleForm.effectiveMode"
class=
"w250 mt10"
v-model=
"dateTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:picker-options=
"pickerOptions"
></el-date-picker>
<el-date-picker
v-if=
"ruleForm.effectiveMode"
class=
"w250 mt10"
v-model=
"dateTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:picker-options=
"pickerOptions"
:disabled=
"isInfo"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"数据对话"
>
<!-- 只能新增不能改 -->
...
...
@@ -26,7 +26,7 @@
<dm-activity-select
:actId
.
sync=
"ruleForm.marketingActivityId"
:readOnly=
"isInfo || isEdit"
></dm-activity-select>
</el-form-item>
<el-form-item
prop=
"cardIds"
label=
"新增卡券"
>
<div><el-button
@
click=
"showCardDialog = true"
>
添加卡券
</el-button></div>
<div><el-button
@
click=
"showCardDialog = true"
:disabled=
"isInfo"
>
添加卡券
</el-button></div>
<el-table
v-if=
"ruleForm.cardIds"
class=
"mt20"
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
min-width=
"120"
align=
"left"
prop=
"cardName"
label=
"卡券名称"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -64,7 +64,7 @@
</el-table-column>
<el-table-column
label=
"操作"
align=
"left"
width=
"80px"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"del(scope.row)"
>
删除
</el-button>
<el-button
type=
"text"
@
click=
"del(scope.row)"
:disabled=
"isInfo"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -78,7 +78,7 @@
</div>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"saveForm"
>
{{ isAdd ? '新增' : '保存' }}
</el-button>
<el-button
type=
"primary"
@
click=
"saveForm"
:disabled=
"isInfo"
>
{{ isAdd ? '新增' : '保存' }}
</el-button>
</el-form-item>
</el-form>
<vue-gic-card
:type=
"1"
:showCardDialog
.
sync=
"showCardDialog"
@
selectCard=
"selectCard"
:cardLimit=
"-1"
:cardType=
"null"
></vue-gic-card>
...
...
@@ -125,7 +125,8 @@ export default {
tableData
:
[],
sceneSettingIdOptions
:
[],
isAdd
:
this
.
$route
.
meta
.
type
===
'add'
,
isEdit
:
this
.
$route
.
meta
.
type
===
'edit'
isEdit
:
this
.
$route
.
meta
.
type
===
'edit'
,
isInfo
:
this
.
$route
.
meta
.
type
===
'info'
};
},
methods
:
{
...
...
@@ -227,7 +228,7 @@ export default {
},
mounted
()
{
this
.
sceneSettingList
();
if
(
this
.
isEdit
)
{
if
(
this
.
isEdit
||
this
.
isInfo
)
{
this
.
getInfo
();
}
},
...
...
src/views/card/merge-list.vue
View file @
078ef662
...
...
@@ -3,7 +3,8 @@
<div
class=
"pb22 clearfix"
>
<el-date-picker
class=
"w400"
v-model=
"dateTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"refresh"
></el-date-picker>
<dm-activity-select
class=
"vertical-middle w150 mr5"
width=
"150"
:actId
.
sync=
"listParams.marketingActivityId"
onlySelect
@
actUpdate=
"refresh"
></dm-activity-select>
<el-input
v-model=
"listParams.search"
class=
"w300"
placeholder=
"请输入卡券包名称"
clearable
@
change=
"refresh"
><i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i></el-input>
<el-input
v-model=
"listParams.search"
class=
"w300"
placeholder=
"请输入卡券包名称/创建人"
clearable
@
change=
"refresh"
><i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i></el-input>
<el-checkbox
v-if=
"$store.state.marketing.isShowSelf"
class=
"vertical-middle"
v-model=
"listParams.showSelfFlag"
:true-label=
"1"
:false-label=
"0"
label=
"仅看本人"
border
@
change=
"refresh"
/>
<el-button
class=
"fr"
type=
"primary"
@
click=
"$router.push('/card/merge/add')"
>
新建卡券包
</el-button>
</div>
<el-table
tooltipEffect=
"light"
:data=
"tableList"
style=
"width: 100%"
>
...
...
@@ -30,12 +31,15 @@
<el-table-column
:show-overflow-tooltip=
"true"
min-width=
"120"
align=
"left"
prop=
"marketingActivityName"
label=
"数据对话"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
marketingActivityName
||
'--'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"left"
width=
"120px"
fixed=
"right"
>
<el-table-column
min-width=
"100"
align=
"left"
prop=
"creatorName"
label=
"创建人"
v-if=
"$store.state.marketing.openFlag"
></el-table-column>
<el-table-column
label=
"操作"
align=
"left"
width=
"200px"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"$router.push(`/card/merge/edit/$
{scope.row.cardPackageId}`)">修改
</el-button>
<dm-delete
@
confirm=
"del(scope.row)"
tips=
"是否删除该卡券包?"
>
<el-button
v-if=
"scope.row.canEdit"
type=
"text"
@
click=
"$router.push(`/card/merge/edit/$
{scope.row.cardPackageId}`)">修改
</el-button>
<el-button
v-else
type=
"text"
@
click=
"$router.push(`/card/merge/info/$
{scope.row.cardPackageId}`)">查看
</el-button>
<dm-delete
v-if=
"scope.row.canEdit"
@
confirm=
"del(scope.row)"
tips=
"是否删除该卡券包?"
>
<el-button
type=
"text"
>
删除
</el-button>
</dm-delete>
<el-button
v-if=
"scope.row.canEdit"
type=
"text"
@
click=
"$router.push(`/card/merge/record-list?cardPackageId=$
{scope.row.cardPackageId}
&
name=${scope.row.name}`)">领取记录
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -57,6 +61,7 @@ export default {
visible
:
false
,
dateTime
:
[],
listParams
:
{
showSelfFlag
:
0
,
marketingActivityId
:
''
,
beginTime
:
''
,
endTime
:
''
,
...
...
src/views/card/merge-record-list.vue
View file @
078ef662
<
template
>
<section
class=
"dm-wrap"
v-loading=
"loading"
>
<div
class=
"pb22 clearfix"
>
<el-input
v-model=
"listParams.search"
class=
"w300"
placeholder=
"请输入
卡券包名称
"
clearable
@
change=
"refresh"
><i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i></el-input>
<el-input
v-model=
"listParams.search"
class=
"w300"
placeholder=
"请输入
会员信息
"
clearable
@
change=
"refresh"
><i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i></el-input>
<!--
<el-input
v-model=
"listParams.receiveCode"
class=
"w300"
placeholder=
"请输入投放渠道"
clearable
@
change=
"refresh"
><i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
></i></el-input>
-->
</div>
<el-table
tooltipEffect=
"light"
:data=
"tableList"
style=
"width: 100%"
>
...
...
@@ -48,6 +48,7 @@ export default {
formatDateTimeByType
,
visible
:
false
,
listParams
:
{
cardPackageId
:
''
,
search
:
''
,
marketingActivityId
:
''
,
receiveCode
:
''
,
...
...
@@ -65,8 +66,9 @@ export default {
};
},
created
()
{
this
.
listParams
.
cardPackageId
=
this
.
$route
.
query
.
cardPackageId
;
this
.
getTableList
();
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
[{
name
:
'营销管理'
,
path
:
''
},
{
name
:
'卡券营销'
,
path
:
''
},
{
name
:
'卡券包'
,
path
:
''
},
{
name
:
'卡券包领取记录'
,
path
:
''
}]);
// eslint-disable-line
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
[{
name
:
'营销管理'
,
path
:
''
},
{
name
:
'卡券营销'
,
path
:
''
},
{
name
:
'卡券包'
,
path
:
''
},
{
name
:
`
${
this
.
$route
.
query
.
name
||
''
}
-卡券包领取记录`
,
path
:
''
}]);
// eslint-disable-line
},
methods
:
{
// 加载列表
...
...
src/views/ecm/form.js
View file @
078ef662
...
...
@@ -270,6 +270,9 @@ export default {
},
methods
:
{
/* ----------------核心方法--------------- */
filterWord
(
prop
)
{
this
.
copyTemplate
[
prop
]
=
this
.
copyTemplate
[
prop
].
replace
(
/
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
][\u
200D|
\u
FE0F
]
|
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
]
|
[
0-9|*|#
]\u
FE0F
\u
20E3|
[
0-9|#
]\u
20E3|
[\u
203C-
\u
3299
]\u
FE0F
\u
200D|
[\u
203C-
\u
3299
]\u
FE0F|
[\u
2122-
\u
2B55
]
|
\u
303D|
[\A
9|
\A
E
]\u
3030|
\u
A9|
\u
AE|
\u
3030/g
,
''
);
},
checkMessageSendCount
()
{
return
new
Promise
(
async
(
resolve
,
reject
)
=>
{
let
events
=
this
.
$refs
.
marketingEvent
.
list
.
map
(
el
=>
el
.
name
);
...
...
src/views/ecm/form.vue
View file @
078ef662
...
...
@@ -495,7 +495,7 @@
<div
class=
"ecm-msg__edit"
>
<div
class=
"ecm-msg__edit--inner"
>
<el-form-item
label-width=
"100px"
label=
"头部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('headerText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<!-- <el-color-picker class="ml10 vertical-middle" v-model="copyTemplate.headerColor"></el-color-picker> -->
<el-button
type=
"text"
class=
"ml10 vertical-middle"
@
click=
"insetVarPre('headerText')"
>
插入变量
</el-button>
...
...
@@ -509,7 +509,7 @@
</div>
</el-form-item>
<el-form-item
label-width=
"100px"
label=
"尾部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('remarkText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<el-color-picker
class=
"ml10 vertical-middle"
v-model=
"copyTemplate.remarkColor"
></el-color-picker>
<el-button
type=
"text"
class=
"vertical-middle"
@
click=
"insetVarPre('remarkText')"
>
插入变量
</el-button>
...
...
src/views/ecm/scan-form.js
View file @
078ef662
...
...
@@ -196,6 +196,9 @@ export default {
},
methods
:
{
/* ----------------核心方法--------------- */
filterWord
(
prop
)
{
this
.
copyTemplate
[
prop
]
=
this
.
copyTemplate
[
prop
].
replace
(
/
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
][\u
200D|
\u
FE0F
]
|
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
]
|
[
0-9|*|#
]\u
FE0F
\u
20E3|
[
0-9|#
]\u
20E3|
[\u
203C-
\u
3299
]\u
FE0F
\u
200D|
[\u
203C-
\u
3299
]\u
FE0F|
[\u
2122-
\u
2B55
]
|
\u
303D|
[\A
9|
\A
E
]\u
3030|
\u
A9|
\u
AE|
\u
3030/g
,
''
);
},
// 获取变量列表
async
listTemplateVariables
()
{
this
.
loading
=
true
;
...
...
src/views/ecm/scan-form.vue
View file @
078ef662
...
...
@@ -154,7 +154,7 @@
<div
class=
"ecm-msg__edit--inner"
>
<el-form>
<el-form-item
label-width=
"100px"
label=
"头部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('headerText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<el-button
type=
"text"
class=
"ml10 vertical-middle"
@
click=
"insetVarPre('headerText')"
>
插入变量
</el-button>
<span
class=
"gray fz13 fr mr10"
>
{{ copyTemplate.headerText.length }}/200
</span>
...
...
@@ -167,7 +167,7 @@
</div>
</el-form-item>
<el-form-item
label-width=
"100px"
label=
"尾部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('remarkText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<el-color-picker
class=
"ml10 vertical-middle"
v-model=
"copyTemplate.remarkColor"
></el-color-picker>
<el-button
type=
"text"
class=
"vertical-middle"
@
click=
"insetVarPre('remarkText')"
>
插入变量
</el-button>
...
...
src/views/ewash/group-send.vue
View file @
078ef662
...
...
@@ -118,7 +118,7 @@
<div
class=
"ecm-msg__edit"
>
<div
class=
"ecm-msg__edit--inner"
>
<el-form-item
label-width=
"100px"
label=
"头部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.headerColor"
v-model=
"copyTemplate.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('headerText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<!-- <el-color-picker class="ml10 vertical-middle" v-model="copyTemplate.headerColor"></el-color-picker> -->
<el-button
type=
"text"
class=
"ml10 vertical-middle"
@
click=
"insetVarPre('headerText')"
>
插入变量
</el-button>
...
...
@@ -132,7 +132,7 @@
</div>
</el-form-item>
<el-form-item
label-width=
"100px"
label=
"尾部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + copyTemplate.remarkColor"
v-model=
"copyTemplate.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('remarkText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<el-color-picker
class=
"ml10 vertical-middle"
v-model=
"copyTemplate.remarkColor"
></el-color-picker>
<el-button
type=
"text"
class=
"vertical-middle"
@
click=
"insetVarPre('remarkText')"
>
插入变量
</el-button>
...
...
@@ -260,6 +260,9 @@ export default {
this
.
$store
.
commit
(
'mutations_layoutTips'
,
''
);
},
methods
:
{
filterWord
(
prop
)
{
this
.
copyTemplate
[
prop
]
=
this
.
copyTemplate
[
prop
].
replace
(
/
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
][\u
200D|
\u
FE0F
]
|
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
]
|
[
0-9|*|#
]\u
FE0F
\u
20E3|
[
0-9|#
]\u
20E3|
[\u
203C-
\u
3299
]\u
FE0F
\u
200D|
[\u
203C-
\u
3299
]\u
FE0F|
[\u
2122-
\u
2B55
]
|
\u
303D|
[\A
9|
\A
E
]\u
3030|
\u
A9|
\u
AE|
\u
3030/g
,
''
);
},
// 拉取营销场景
async
sceneSettingList
()
{
let
res
=
await
sceneSettingList
();
...
...
src/views/message/form.vue
View file @
078ef662
...
...
@@ -148,6 +148,10 @@ export default {
groupType
:
this
.
info
.
memberType
===
0
?
0
:
1
};
const
res
=
await
checkMessageSendCount
(
params
);
if
(
res
.
result
<=
0
)
{
this
.
$alert
(
'抱歉,您当前所选人群数量为0,请重新选择人群'
,
'提示'
);
return
;
}
if
(
res
.
errorCode
===
0
)
{
this
.
$confirm
(
`<div>
...
...
@@ -200,18 +204,10 @@ export default {
if
(
this
.
info
.
sendType
)
{
params
.
sendTime
=
formatDateTimeByType
(
this
.
info
.
sendTime
,
'yyyy-MM-dd-HH-mm-ss'
);
}
saveSendSmsService
(
params
)
.
then
(
res
=>
{
if
(
res
.
errorCode
===
0
)
{
this
.
$router
.
push
(
'/message/record'
);
this
.
$tips
({
type
:
'success'
,
message
:
res
.
message
||
'提交成功'
});
}
else
{
this
.
$tips
({
type
:
'error'
,
message
:
'提交失败'
});
}
})
.
catch
(
err
=>
{
this
.
$tips
({
type
:
'error'
,
message
:
'提交失败'
});
});
saveSendSmsService
(
params
).
then
(
res
=>
{
this
.
$router
.
push
(
'/message/record'
);
this
.
$tips
({
type
:
'success'
,
message
:
res
.
message
||
'提交成功'
});
});
})
.
catch
(()
=>
{
this
.
$tips
({
type
:
'info'
,
message
:
'已取消提交'
});
...
...
@@ -233,7 +229,7 @@ export default {
// // 这里强制获取人群筛选器的配置项
// await this.$refs.peopleFilter.confirmSet();
if
(
this
.
checkAccountState
())
return
;
//
if (this.checkAccountState()) return;
let
nowHour
=
null
;
if
(
this
.
info
.
sendType
)
{
nowHour
=
new
Date
(
this
.
info
.
sendTime
).
getHours
();
...
...
src/views/message/importSendDetail.vue
View file @
078ef662
...
...
@@ -4,7 +4,7 @@
<h3
class=
"dm-title__label"
>
基本信息
</h3>
<el-row
:gutter=
"20"
class=
"message-detail__label"
>
<el-col
:span=
"8"
>
<span
class=
"primary-font-color"
>
手工导入
时间:
</span>
<span
class=
"primary-font-color"
>
创建
时间:
</span>
<span
class=
"regular-font-color"
>
{{
formatDateTimeByType
(
info
.
createTime
,
'yyyy-MM-dd-HH-mm-ss'
)
}}
</span>
</el-col>
<el-col
:span=
"16"
>
...
...
@@ -61,11 +61,11 @@
</
template
>
</el-table-column>
<el-table-column
v-for=
"(v, i) in messageHeader"
:show-overflow-tooltip=
"v.tooltip"
:width=
"v.width"
:min-width=
"v.minWidth"
:align=
"v.align"
:key=
"i"
:prop=
"v.prop"
:label=
"v.label"
:formatter=
"v.formatter"
></el-table-column>
<el-table-column
:min-width=
"80"
align=
"left"
label=
"错误码"
prop=
"errorMsg"
>
<el-table-column
:min-width=
"80"
align=
"left"
label=
"错误码"
prop=
"errorMsg"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.errorMsg == -1"
>
--
</span>
<span
v-else-if=
"scope.row.backStatus == '--' && scope.row.sendStatus !== 2"
>
--
</span>
<el-button
v-else
type=
"text"
@
click=
"errorCodeShow = true"
>
{{
scope
.
row
.
errorMsg
}}
</el-button>
<el-button
style=
"text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%"
v-else
type=
"text"
@
click=
"errorCodeShow = true"
>
{{
scope
.
row
.
errorMsg
}}
</el-button>
</
template
>
</el-table-column>
<el-table-column
:min-width=
"100"
align=
"left"
label=
"上报时间"
prop=
"backTime"
>
...
...
src/views/message/importSendList.vue
View file @
078ef662
...
...
@@ -37,7 +37,13 @@
<el-table-column
min-width=
"120"
align=
"left"
prop=
"totalFeeNum"
label=
"计费条数"
></el-table-column>
<el-table-column
min-width=
"120"
align=
"left"
label=
"状态"
>
<
template
slot-scope=
"scope"
>
<span
v-html=
"filterStatus(scope.row)"
></span>
<span
v-if=
"scope.row.sendStatus === 5"
><span
class=
"dm-status--primary--flash"
></span>
执行中
</span>
<span
v-else-if=
"filterStatus(scope.row.sendStatus)"
:class=
"'dm-status--' + filterStatus(scope.row.sendStatus).type"
>
{{
filterStatus
(
scope
.
row
.
sendStatus
).
label
}}
<el-tooltip
v-if=
"scope.row.sendStatus == 2 && scope.row.failReason"
:content=
"scope.row.failReason"
placement=
"top"
>
<i
class=
"el-icon-question"
style=
"color:#c0c4cc;cursor:pointer;margin-left:3px;font-size:14px"
></i>
</el-tooltip>
</span>
<time-counts
v-if=
"scope.row.sendStatus == 0"
class=
"primary-color fz12"
:defaultVal=
"scope.row.sendTime"
:autoStart=
"true"
></time-counts>
</
template
>
</el-table-column>
...
...
@@ -80,7 +86,7 @@ export default {
pageSize
:
20
},
// 发送状态(-1: 已失效; 0:定时执行,1:执行完毕,2:执行失败,3:无可用模板;4.执行中)
status
:
[{
value
:
-
1
,
label
:
'已失效'
},
{
value
:
0
,
label
:
'定时执行'
},
{
value
:
1
,
label
:
'执行完毕'
},
{
value
:
2
,
label
:
'执行失败'
},
{
value
:
3
,
label
:
'无可用模板'
},
{
value
:
5
,
label
:
'执行中
'
}],
// eslint-disable-line
status
:
[{
value
:
0
,
label
:
'定时执行'
,
type
:
'warning'
},
{
value
:
1
,
label
:
'已执行'
,
type
:
'success'
},
{
value
:
2
,
label
:
'执行失败'
,
type
:
'error'
},
{
value
:
5
,
label
:
'执行中'
,
type
:
'primary--flash'
},
{
value
:
-
1
,
label
:
'已失效'
,
type
:
'error
'
}],
// eslint-disable-line
total
:
0
,
loading
:
false
,
tableList
:
[],
...
...
@@ -110,22 +116,12 @@ export default {
},
// 列表状态过滤器
// -1: 已失效; 0:定时执行,1:执行完毕,2:执行失败,3:无可用模板;4.执行中
filterStatus
(
row
)
{
let
_content
=
''
;
if
(
row
.
sendStatus
==
-
1
)
{
_content
=
`<div class="dm-status--info">已失效</div>`
;
}
else
if
(
row
.
sendStatus
==
0
)
{
_content
=
`<div class="dm-status--warning">定时执行</div>`
;
}
else
if
(
row
.
sendStatus
==
1
)
{
_content
=
`<div class="dm-status--success">执行完毕</div>`
;
}
else
if
(
row
.
sendStatus
==
2
)
{
_content
=
`<div class="dm-status--default">执行失败</div>`
;
}
else
if
(
row
.
sendStatus
==
3
)
{
_content
=
`<div class="dm-status--default">无可用模板</div>`
;
}
else
if
(
row
.
sendStatus
==
4
)
{
_content
=
`<div class="dm-status--primary">执行中</div>`
;
}
return
_content
;
filterStatus
(
val
)
{
let
result
=
null
;
this
.
status
.
forEach
(
v
=>
{
if
(
val
===
v
.
value
)
result
=
v
;
});
return
result
;
},
// 加载列表
async
getTableList
()
{
...
...
src/views/message/record.vue
View file @
078ef662
...
...
@@ -22,7 +22,12 @@
<el-table-column
label=
"状态"
prop=
"sendStatus"
align=
"left"
width=
"140px"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.sendStatus === 5"
><span
class=
"dm-status--primary--flash"
></span>
执行中
</span>
<span
v-else
:class=
"'dm-status--' + filterStatus(scope.row.sendStatus).type"
>
{{
filterStatus
(
scope
.
row
.
sendStatus
).
label
}}
</span>
<span
v-else-if=
"filterStatus(scope.row.sendStatus)"
:class=
"'dm-status--' + filterStatus(scope.row.sendStatus).type"
>
{{
filterStatus
(
scope
.
row
.
sendStatus
).
label
}}
<el-tooltip
v-if=
"scope.row.sendStatus == 2 && scope.row.failReason"
:content=
"scope.row.failReason"
placement=
"top"
>
<i
class=
"el-icon-question"
style=
"color:#c0c4cc;cursor:pointer;margin-left:3px;font-size:14px"
></i>
</el-tooltip>
</span>
<time-counts
v-if=
"scope.row.sendStatus == 0"
:key=
"scope.row.smsId"
class=
"primary-color fz12"
:defaultVal=
"scope.row.sendTime"
:autoStart=
"true"
></time-counts>
</
template
>
</el-table-column>
...
...
@@ -51,7 +56,7 @@ export default {
mixins
:
[
tableMethods
],
data
()
{
return
{
sendStatusOptions
:
[{
value
:
''
,
label
:
'所有状态'
,
type
:
''
},
{
value
:
0
,
label
:
'定时执行'
,
type
:
'warning'
},
{
value
:
1
,
label
:
'
执行完毕'
,
type
:
'success'
},
{
value
:
2
,
label
:
'执行失败'
,
type
:
'danger'
},
{
value
:
3
,
label
:
'无可用模板'
,
type
:
'danger'
},
{
value
:
5
,
label
:
'执行中'
,
type
:
'primary--flash'
},
{
value
:
-
1
,
label
:
'已失效'
,
type
:
'dange
r'
}],
// eslint-disable-line
sendStatusOptions
:
[{
value
:
''
,
label
:
'所有状态'
,
type
:
''
},
{
value
:
0
,
label
:
'定时执行'
,
type
:
'warning'
},
{
value
:
1
,
label
:
'
已执行'
,
type
:
'success'
},
{
value
:
2
,
label
:
'执行失败'
,
type
:
'error'
},
{
value
:
5
,
label
:
'执行中'
,
type
:
'primary--flash'
},
{
value
:
-
1
,
label
:
'已失效'
,
type
:
'erro
r'
}],
// eslint-disable-line
recordLoading
:
false
,
messageList
:
[],
recordHeader
:
[
...
...
@@ -159,7 +164,7 @@ export default {
});
},
filterStatus
(
val
)
{
let
result
=
{
label
:
'执行错误'
,
type
:
'warning'
}
;
let
result
=
null
;
this
.
sendStatusOptions
.
forEach
(
v
=>
{
if
(
val
===
v
.
value
)
result
=
v
;
});
...
...
src/views/msg/edit.vue
View file @
078ef662
...
...
@@ -29,7 +29,7 @@
<div
class=
"gray fz13"
>
* 请勿在文案中使用“#”井号,会导致在用户端展示错误。
</div>
</el-form-item>
<el-form-item
label=
"头部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + info.headerColor"
v-model=
"info.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + info.headerColor"
v-model=
"info.headerText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('headerText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<!--
<el-color-picker
class=
"ml10 vertical-middle"
v-model=
"info.headerColor"
></el-color-picker>
-->
<el-button
type=
"text"
class=
"vertical-middle ml10"
@
click=
"insetVar('headerText')"
>
插入变量
</el-button>
...
...
@@ -51,7 +51,7 @@
</div>
</el-form-item>
<el-form-item
label=
"尾部文案"
>
<el-input
type=
"textarea"
:style=
"'color:' + info.remarkColor"
v-model=
"info.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
></el-input>
<el-input
type=
"textarea"
:style=
"'color:' + info.remarkColor"
v-model=
"info.remarkText"
:rows=
"4"
class=
"w450"
:maxlength=
"200"
@
input=
"filterWord('remarkText')"
></el-input>
<div
class=
"input-suffix clearfix"
>
<el-color-picker
class=
"ml10 vertical-middle"
v-model=
"info.remarkColor"
></el-color-picker>
<el-button
type=
"text"
class=
"vertical-middle"
@
click=
"insetVar('remarkText')"
>
插入变量
</el-button>
...
...
@@ -219,6 +219,9 @@ export default {
}
},
methods
:
{
filterWord
(
prop
)
{
this
.
info
[
prop
]
=
this
.
info
[
prop
].
replace
(
/
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
][\u
200D|
\u
FE0F
]
|
[\u
D83C|
\u
D83D|
\u
D83E
][\u
DC00-
\u
DFFF
]
|
[
0-9|*|#
]\u
FE0F
\u
20E3|
[
0-9|#
]\u
20E3|
[\u
203C-
\u
3299
]\u
FE0F
\u
200D|
[\u
203C-
\u
3299
]\u
FE0F|
[\u
2122-
\u
2B55
]
|
\u
303D|
[\A
9|
\A
E
]\u
3030|
\u
A9|
\u
AE|
\u
3030/g
,
''
);
},
async
listTemplateVariables
()
{
this
.
loading
=
true
;
try
{
...
...
src/views/recharge/board.vue
View file @
078ef662
...
...
@@ -4,7 +4,7 @@
<h3
class=
"dm-title__label--outer"
>
账户余额
</h3>
<span
class=
"fz22 danger-color vertical-middle pr20"
>
¥
{{
(
recharge
.
balance
/
100
)
|
amount
}}
</span>
<el-button
class=
"ml10 vertical-middle"
size=
"mini"
type=
"primary"
@
click=
"$router.push('/recharge/do')"
>
充值
</el-button>
<el-button
style=
"padding: 3px 0"
type=
"text"
@
click=
"$router.push('/recharge/record')"
>
充值
记录
</el-button>
<el-button
style=
"padding: 3px 0"
type=
"text"
@
click=
"$router.push('/recharge/record')"
>
记录
</el-button>
</div>
<div
class=
"dm-wrap"
>
<h3
class=
"dm-title__label--outer"
>
今日消费
</h3>
...
...
src/views/recharge/consume.vue
View file @
078ef662
...
...
@@ -46,7 +46,7 @@
<el-table-column
align=
"left"
width=
"100"
prop=
"countNum"
label=
"计费条数"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
countNum
}}
条
</
template
>
</el-table-column>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
width=
"320"
prop=
"storeName"
label=
"
服务
门店"
>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
width=
"320"
prop=
"storeName"
label=
"门店"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
storeName
}}
</p>
<p
class=
"gray"
>
{{
scope
.
row
.
storeGroupName
}}
</p>
...
...
@@ -75,7 +75,7 @@
</
template
>
</el-table-column>
<el-table-column
align=
"left"
width=
"150"
prop=
"receivePhone"
label=
"接收号码"
></el-table-column>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
width=
"320"
prop=
"storeName"
label=
"
服务
门店"
>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
width=
"320"
prop=
"storeName"
label=
"门店"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
storeName
}}
</p>
<p
class=
"fz13 gray"
>
{{
scope
.
row
.
storeGroupName
}}
</p>
...
...
@@ -101,7 +101,7 @@
</
template
>
</el-table-column>
<el-table-column
align=
"left"
prop=
"receivePhone"
label=
"接收号码"
></el-table-column>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
width=
"320"
prop=
"storeName"
label=
"
服务
门店"
>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
width=
"320"
prop=
"storeName"
label=
"门店"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
storeName
}}
</p>
<p
class=
"fz13 gray"
>
{{
scope
.
row
.
storeGroupName
}}
</p>
...
...
@@ -123,7 +123,7 @@
</p>
</
template
>
</el-table-column>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
min-width=
"320"
prop=
"storeName"
label=
"
任务
门店"
>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
min-width=
"320"
prop=
"storeName"
label=
"门店"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
storeName
}}
</p>
<p
class=
"fz13 gray"
>
{{
scope
.
row
.
storeGroupName
}}
</p>
...
...
@@ -168,7 +168,7 @@
</p>
</
template
>
</el-table-column>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
prop=
"storeName"
width=
"350"
label=
"
任务
门店"
>
<el-table-column
:show-overflow-tooltip=
"true"
align=
"left"
prop=
"storeName"
width=
"350"
label=
"门店"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
storeName
}}
</p>
<p
class=
"fz13 gray"
>
{{
scope
.
row
.
storeGroupName
}}
</p>
...
...
src/views/recharge/record.vue
View file @
078ef662
<
template
>
<section
class=
"recharge dm-wrap"
v-loading=
"loading"
>
<div
class=
"pb22"
><el-date-picker
v-model=
"dateTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"onSearch"
></el-date-picker></div>
<div
class=
"pb22"
>
<el-date-picker
v-model=
"dateTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"onSearch"
></el-date-picker>
<el-select
style=
"width:180px"
clearable
v-model=
"listParams.feeType"
placeholder=
"全部记录类型"
@
change=
"onChangeFeeType"
>
<el-option
label=
"充值"
:value=
"1"
></el-option>
<el-option
label=
"扣款"
:value=
"2"
></el-option>
</el-select>
<el-select
v-if=
"listParams.feeType == 2"
style=
"width:180px"
clearable
v-model=
"listParams.deductType"
placeholder=
"全部扣款类型"
@
change=
"onSearch"
>
<el-option
v-for=
"(value, key) in deductTypeList"
:key=
"key"
:label=
"value"
:value=
"key"
></el-option>
</el-select>
</div>
<el-table
tooltipEffect=
"dark"
:data=
"tableList"
style=
"width: 100%"
>
<el-table-column
align=
"left"
prop=
"timeEnd"
label=
"充值时间"
>
<template
slot-scope=
"scope"
>
...
...
@@ -9,6 +18,16 @@
</
template
>
</el-table-column>
<el-table-column
align=
"left"
prop=
"transactionId"
label=
"充值流水号"
></el-table-column>
<el-table-column
label=
"记录类型"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
feeType
==
1
?
'充值'
:
'扣款'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"扣款类型"
>
<
template
slot-scope=
"scope"
>
{{
deductTypeList
[
scope
.
row
.
deductType
]
}}
</
template
>
</el-table-column>
<el-table-column
align=
"left"
prop=
"payType"
label=
"充值方式"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
payType
|
filterPayType
}}
...
...
@@ -18,6 +37,20 @@
<
template
slot-scope=
"scope"
>
{{
(
scope
.
row
.
totalFee
/
100
).
toFixed
(
2
)
}}
元
</
template
>
</el-table-column>
<el-table-column
align=
"left"
prop=
"reason"
label=
"充值原因"
show-overflow-tooltip
></el-table-column>
<el-table-column
label=
"图片凭证"
>
<
template
slot-scope=
"scope"
>
<!--
<el-image
v-for=
"(item, index) in getUrls(scope).slice(0, 3)"
:key=
"`$
{currentPage}-${item}`" style="width: 36px; height: 36px" :src="item" :preview-src-list="getUrls(scope, index)" lazy>
<div
slot=
"placeholder"
class=
"image-slot"
>
<i
class=
"el-icon-picture-outline"
></i>
</div>
</el-image>
-->
<viewer
:options=
"options"
:images=
"getUrls(scope)"
class=
"viewer"
ref=
"viewer"
>
<template
#
default=
"scope2"
>
<img
style=
"width: 36px; height: 36px;margin-left:5px;cursor:pointer"
v-for=
"src in scope2.images"
:src=
"src"
:key=
"src"
/>
</
template
>
</viewer>
</template>
</el-table-column>
</el-table>
<dm-pagination
v-show=
"tableList.length"
background
class=
"dm-pagination"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"listParams.currentPage"
:page-sizes=
"[20, 40, 60, 80]"
:page-size=
"listParams.pageSize"
layout=
"total, sizes, prev, pager, next"
:total=
"total"
></dm-pagination>
</section>
...
...
@@ -25,9 +58,12 @@
<
script
>
import
{
rechargeRecord
}
from
'@/service/api/rechargeApi.js'
;
import
{
formatDateTimeByType
}
from
'@/utils/index.js'
;
import
'viewerjs/dist/viewer.css'
;
import
{
component
as
Viewer
}
from
'v-viewer'
;
export
default
{
name
:
'recharge-record'
,
components
:
{
Viewer
},
data
()
{
return
{
formatDateTimeByType
,
...
...
@@ -38,9 +74,12 @@ export default {
currentPage
:
1
,
pageSize
:
20
,
beginTime
:
''
,
endTime
:
''
endTime
:
''
,
deductType
:
''
,
feeType
:
''
},
total
:
0
total
:
0
,
deductTypeList
:
{}
};
},
created
()
{
...
...
@@ -48,6 +87,15 @@ export default {
this
.
$store
.
commit
(
'mutations_breadcrumb'
,
[{
name
:
'企业管理'
,
path
:
''
},
{
name
:
'计费中心'
,
path
:
'/recharge'
},
{
name
:
'充值记录'
,
path
:
''
}]);
// eslint-disable-line
},
methods
:
{
getUrls
(
scope
)
{
let
urls
=
scope
.
row
.
imageUrls
?
scope
.
row
.
imageUrls
.
split
(
','
)
:
[];
urls
=
urls
.
filter
(
el
=>
el
);
return
urls
;
},
onChangeFeeType
()
{
this
.
listParams
.
deductType
=
''
;
this
.
onSearch
();
},
onSearch
()
{
this
.
listParams
.
currentPage
=
1
;
this
.
rechargeRecord
();
...
...
@@ -76,6 +124,7 @@ export default {
if
(
res
.
errorCode
===
0
&&
res
.
result
.
result
)
{
this
.
tableList
=
res
.
result
.
result
;
this
.
total
=
res
.
result
.
totalCount
;
this
.
deductTypeList
=
JSON
.
parse
(
res
.
result
.
params
.
deductTypeList
||
'{}'
);
}
else
{
this
.
tableList
=
[];
}
...
...
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