Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
member
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
member
member
Commits
611fdbc1
Commit
611fdbc1
authored
Feb 11, 2022
by
liuchenxi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: 营销记录
parent
13171bc3
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
82 additions
and
44 deletions
+82
-44
allCustomersList.vue
src/components/allCustomers/allCustomersList.vue
+9
-1
customerDetail.less
src/components/allCustomers/customerDetail.less
+0
-1
card.vue
src/components/marketingRecord/components/card.vue
+12
-11
all.scss
src/components/marketingRecord/components/css/all.scss
+6
-0
ecm.vue
src/components/marketingRecord/components/ecm.vue
+6
-5
message.vue
src/components/marketingRecord/components/message.vue
+5
-4
datePickRuleMixin.js
...ts/marketingRecord/components/mixins/datePickRuleMixin.js
+0
-0
paginationMixins.js
...nts/marketingRecord/components/mixins/paginationMixins.js
+13
-0
wechat.vue
src/components/marketingRecord/components/wechat.vue
+6
-5
index.vue
src/components/marketingRecord/index.vue
+25
-17
No files found.
src/components/allCustomers/allCustomersList.vue
View file @
611fdbc1
...
...
@@ -37,7 +37,7 @@
multiple
ref
=
"select"
@
change
=
"selectChange"
style
=
"width:
300
px"
style
=
"width:
220px;margin-left:8
px"
>
<
el
-
option
:
value
=
"customerType"
style
=
"height: auto;padding:0"
>
<
el
-
tree
...
...
@@ -45,6 +45,7 @@
show
-
checkbox
node
-
key
=
"id"
ref
=
"tree"
class
=
"customer-tree"
highlight
-
current
default
-
expand
-
all
:
props
=
"defaultProps"
...
...
@@ -316,4 +317,11 @@ export default { ...action };
.
pointer
{
cursor
:
pointer
;
}
.
customer
-
tree
.
el
-
tree
-
node__content
{
height
:
32
px
;
line
-
height
:
32
px
;
&
:
hover
{
background
:
#
F7F8FA
;
}
}
<
/style
>
src/components/allCustomers/customerDetail.less
View file @
611fdbc1
...
...
@@ -633,7 +633,6 @@
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 80px;
img {
width: 60px;
height: 60px;
...
...
src/components/marketingRecord/components/card.vue
View file @
611fdbc1
<
template
>
<div
class=
"marketing-card mt5"
>
<div
class=
"search"
>
投放时间:
<el-date-picker
:clearable=
"false"
class=
"w256"
value-format=
"yyyy-MM-dd"
:pickerOptions=
"pickerOptions"
v-model=
"launchTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"change"
></el-date-picker>
领取时间:
<el-date-picker
class=
"ml10 w256"
value-format=
"yyyy-MM-dd"
:pickerOptions=
"pickerOptions"
v-model=
"collectionTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"change"
></el-date-picker>
<div
class=
"search
mb10
"
>
投放时间:
<el-date-picker
:clearable=
"false"
class=
"w256
mb10
"
value-format=
"yyyy-MM-dd"
:pickerOptions=
"pickerOptions"
v-model=
"launchTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"change"
></el-date-picker>
领取时间:
<el-date-picker
class=
"ml10 w256
mb10
"
value-format=
"yyyy-MM-dd"
:pickerOptions=
"pickerOptions"
v-model=
"collectionTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"change"
></el-date-picker>
<el-input
v-model=
"search.search"
placeholder=
"请输入卡券券码"
class=
"w260 ml10"
class=
"w260 ml10
mb10
"
prefix-icon=
"el-icon-search"
@
change=
"change"
clearable
/>
<el-select
class=
"ml10 w160"
v-model=
"search.cardType"
placeholder=
"所有卡券类型"
clearable
@
change=
"change"
>
<el-select
class=
"ml10 w160
mb10 mr10
"
v-model=
"search.cardType"
placeholder=
"所有卡券类型"
clearable
@
change=
"change"
>
<el-option
v-for=
"item in cardTypeList"
:key=
"item.id"
:value=
"item.value"
:label=
"item.label"
/>
</el-select>
<el-select
class=
"
ml10 w16
0"
v-model=
"search.receiveCode"
placeholder=
"所有投放渠道"
clearable
@
change=
"change"
>
<el-select
class=
"
w160 mb1
0"
v-model=
"search.receiveCode"
placeholder=
"所有投放渠道"
clearable
@
change=
"change"
>
<el-option
v-for=
"item in tableData.dictList"
:key=
"item.dictCode"
:value=
"item.dictCode"
:label=
"item.dictName"
/>
</el-select>
</div>
<div
class=
"table"
>
<el-table
v-loading=
"
load
"
v-loading=
"
tableData.loading
"
:data=
"tableData.data"
tooltip-effect=
"dark"
style=
"width: 100%"
>
<el-table-column
v-for=
"(v, i) in tableDatatableHeader"
v-for=
"(v, i) in tableData
.
tableHeader"
:key=
"i"
:prop=
"v.prop"
:min-width=
"v.minWidth"
...
...
@@ -59,13 +59,14 @@
</template>
<
script
>
import
dickerPickMixin
from
'./datePickRule'
;
import
dickerPickMixin
from
'./mixins/datePickRuleMixin'
;
import
paginationMixins
from
'./mixins/paginationMixins'
;
export
default
{
name
:
'card'
,
props
:
{
tableData
:
Object
},
mixins
:
[
dickerPickMixin
],
mixins
:
[
dickerPickMixin
,
paginationMixins
],
data
()
{
return
{
launchTime
:
[
new
Date
(
Date
.
now
()
-
30
*
24
*
60
*
60
*
1000
),
new
Date
()],
...
...
@@ -101,5 +102,5 @@ export default {
</
script
>
<
style
scoped
>
@import
'./all.scss'
;
@import
'./
css/
all.scss'
;
</
style
>
src/components/marketingRecord/components/all.scss
→
src/components/marketingRecord/components/
css/
all.scss
View file @
611fdbc1
...
...
@@ -19,6 +19,12 @@
.ml10
{
margin-left
:
10px
;
}
.mr10
{
margin-right
:
10px
;
}
.mb10
{
margin-bottom
:
10px
!
important
;
}
.mb25
{
margin-bottom
:
25px
;
}
...
...
src/components/marketingRecord/components/ecm.vue
View file @
611fdbc1
...
...
@@ -16,7 +16,7 @@
</div>
<div
class=
"table"
>
<el-table
v-loading=
"
load
"
v-loading=
"
tableData.loading
"
:data=
"tableData.data"
tooltip-effect=
"dark"
style=
"width: 100%"
...
...
@@ -55,13 +55,14 @@
</template>
<
script
>
import
dickerPickMixin
from
'./datePickRule'
;
import
dickerPickMixin
from
'./mixins/datePickRuleMixin'
;
import
paginationMixins
from
'./mixins/paginationMixins'
;
export
default
{
name
:
"ecm"
,
props
:
{
tableData
:
Object
},
mixins
:
[
dickerPickMixin
],
mixins
:
[
dickerPickMixin
,
paginationMixins
],
data
()
{
return
{
time
:
[
new
Date
(
Date
.
now
()
-
30
*
24
*
60
*
60
*
1000
),
new
Date
()],
...
...
@@ -91,11 +92,11 @@ export default {
this
.
search
.
endTime
=
this
.
time
?
(
typeof
this
.
time
[
0
]
==
'string '
?
this
.
time
[
1
]
:
this
.
dateformat
(
new
Date
(
this
.
time
[
1
]),
'yyyy-MM-dd'
))
:
null
;
const
commonObj
=
{
currentPage
,
pageSize
};
this
.
$emit
(
"changeSearch"
,
Object
.
assign
({},
this
.
search
,
commonObj
));
}
}
,
}
};
</
script
>
<
style
scoped
>
@import
"./all.scss"
;
@import
'./css/all.scss'
;
</
style
>
src/components/marketingRecord/components/message.vue
View file @
611fdbc1
...
...
@@ -8,7 +8,7 @@
</div>
<div
class=
"table"
>
<el-table
v-loading=
"
load
"
v-loading=
"
tableData.loading
"
:data=
"tableData.data"
tooltip-effect=
"dark"
style=
"width: 100%"
...
...
@@ -47,13 +47,14 @@
</template>
<
script
>
import
dickerPickMixin
from
'./datePickRule'
;
import
dickerPickMixin
from
'./mixins/datePickRuleMixin'
;
import
paginationMixins
from
'./mixins/paginationMixins'
;
export
default
{
name
:
'message'
,
props
:
{
tableData
:
Object
},
mixins
:
[
dickerPickMixin
],
mixins
:
[
dickerPickMixin
,
paginationMixins
],
data
()
{
return
{
time
:
[
new
Date
(
Date
.
now
()
-
30
*
24
*
60
*
60
*
1000
),
new
Date
()],
...
...
@@ -81,5 +82,5 @@ export default {
</
script
>
<
style
scoped
>
@import
'./all.scss'
;
@import
'./
css/
all.scss'
;
</
style
>
src/components/marketingRecord/components/
datePickRule
.js
→
src/components/marketingRecord/components/
mixins/datePickRuleMixin
.js
View file @
611fdbc1
File moved
src/components/marketingRecord/components/mixins/paginationMixins.js
0 → 100644
View file @
611fdbc1
export
default
{
methods
:
{
handleCurrentChange
(
val
)
{
this
.
tableData
.
currentPage
=
val
;
this
.
change
();
},
handleSizeChange
(
val
)
{
this
.
tableData
.
pageSize
=
val
;
this
.
tableData
.
currentPage
=
1
;
this
.
change
();
}
}
};
src/components/marketingRecord/components/wechat.vue
View file @
611fdbc1
...
...
@@ -8,7 +8,7 @@
</div>
<div
class=
"table"
>
<el-table
v-loading=
"
load
"
v-loading=
"
tableData.loading
"
:data=
"tableData.data"
tooltip-effect=
"dark"
style=
"width: 100%"
...
...
@@ -47,13 +47,14 @@
</template>
<
script
>
import
dickerPickMixin
from
'./datePickRule'
;
import
dickerPickMixin
from
'./mixins/datePickRuleMixin'
;
import
paginationMixins
from
'./mixins/paginationMixins'
;
export
default
{
name
:
'wechat'
,
props
:
{
tableData
:
Object
},
mixins
:
[
dickerPickMixin
],
mixins
:
[
dickerPickMixin
,
paginationMixins
],
data
()
{
return
{
time
:
[
new
Date
(
Date
.
now
()
-
30
*
24
*
60
*
60
*
1000
),
new
Date
()],
...
...
@@ -76,11 +77,11 @@ export default {
this
.
search
.
endTime
=
this
.
time
?
(
typeof
this
.
time
[
0
]
==
'string '
?
this
.
time
[
1
]
:
this
.
dateformat
(
new
Date
(
this
.
time
[
1
]),
'yyyy-MM-dd'
))
:
null
;
const
commonObj
=
{
currentPage
,
pageSize
};
this
.
$emit
(
"changeSearch"
,
Object
.
assign
({},
this
.
search
,
commonObj
));
}
}
,
}
};
</
script
>
<
style
scoped
>
@import
'./all.scss'
;
@import
'./
css/
all.scss'
;
</
style
>
src/components/marketingRecord/index.vue
View file @
611fdbc1
...
...
@@ -3,7 +3,7 @@
<div
class=
"min20"
>
<nav-path
:navpath=
"navpath"
></nav-path>
<div
class=
"marketing-container"
>
<div
class=
"tabs"
v-loading=
"load"
>
<div
class=
"tabs"
>
<el-tabs
v-model=
"tabsIndex"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"智能营销"
name=
"1"
>
<ecm-record
ref=
"ecmRecord"
:tableData=
"ecmTableData"
@
changeSearch=
"onChange"
/>
...
...
@@ -61,7 +61,8 @@ export default {
pageSizeList
:
[
20
,
40
,
60
,
80
],
pageSize
:
20
,
total
:
0
,
tableHeader
:
[]
tableHeader
:
[],
loading
:
false
},
wechatTableData
:
{
data
:
[],
...
...
@@ -69,7 +70,8 @@ export default {
pageSizeList
:
[
20
,
40
,
60
,
80
],
pageSize
:
20
,
total
:
0
,
tableHeader
:
[]
tableHeader
:
[],
loading
:
false
},
messageTableData
:
{
data
:
[],
...
...
@@ -77,7 +79,8 @@ export default {
pageSizeList
:
[
20
,
40
,
60
,
80
],
pageSize
:
20
,
total
:
0
,
tableHeader
:
[]
tableHeader
:
[],
loading
:
false
},
cardTableData
:
{
data
:
[],
...
...
@@ -86,9 +89,9 @@ export default {
pageSize
:
20
,
total
:
0
,
tableHeader
:
[],
dictList
:
[]
dictList
:
[],
loading
:
false
},
load
:
false
};
},
created
()
{
...
...
@@ -99,28 +102,31 @@ export default {
},
methods
:
{
async
getTableData
(
tab
,
params
)
{
this
.
loading
=
true
;
let
res
,
name
;
switch
(
tab
)
{
case
"1"
:
res
=
await
doFetchqs
(
ecmLogPage
,
params
);
name
=
'ecmTableData'
;
this
[
name
].
loading
=
true
;
res
=
await
doFetchqs
(
ecmLogPage
,
params
);
break
;
case
"2"
:
res
=
await
doFetchqs
(
cardLogPage
,
params
);
name
=
'cardTableData'
;
this
[
name
].
loading
=
true
;
res
=
await
doFetchqs
(
cardLogPage
,
params
);
break
;
case
"3"
:
res
=
await
doFetchqs
(
messageLogPage
,
params
);
name
=
'messageTableData'
;
this
[
name
].
loading
=
true
;
res
=
await
doFetchqs
(
messageLogPage
,
params
);
break
;
case
"4"
:
res
=
await
doFetchqs
(
wechatLogPage
,
params
);
name
=
'wechatTableData'
;
this
[
name
].
loading
=
true
;
res
=
await
doFetchqs
(
wechatLogPage
,
params
);
break
;
}
this
.
extendTable
(
this
[
name
],
res
.
data
.
result
);
// 赋值对应表格数据
this
.
loading
=
false
;
this
[
name
]
.
loading
=
false
;
},
getTableHeader
()
{
this
.
ecmTableData
.
tableHeader
=
[
...
...
@@ -163,7 +169,7 @@ export default {
{
label
:
"投放时间"
,
prop
:
"createDate"
,
minWidth
:
8
0
,
minWidth
:
10
0
,
formatter
(
row
)
{
return
`
${
dateformat
(
new
Date
(
row
.
createDate
),
'yyyy-MM-dd hh:mm:ss'
)}
`
;
}
...
...
@@ -171,7 +177,7 @@ export default {
{
label
:
"领取时间"
,
prop
:
"receiveTime"
,
minWidth
:
8
0
,
minWidth
:
10
0
,
formatter
(
row
)
{
return
`
${
dateformat
(
new
Date
(
row
.
receiveTime
),
'yyyy-MM-dd hh:mm:ss'
)}
`
;
}
...
...
@@ -187,6 +193,8 @@ export default {
return
'折扣券'
;
case
3
:
return
'兑换券'
;
default
:
return
'--'
;
}
}
},
...
...
@@ -214,7 +222,7 @@ export default {
prop
:
"createDate"
,
minWidth
:
80
,
formatter
(
row
)
{
return
`
${
dateformat
(
row
.
createDate
,
'yyyy-MM-dd hh-mm-ss'
)}
`
;
return
`
${
dateformat
(
new
Date
(
row
.
createDate
)
,
'yyyy-MM-dd hh-mm-ss'
)}
`
;
}
},
{
label
:
"素材类型"
,
prop
:
"contentType"
,
minWidth
:
60
,
formatter
(
row
)
{
...
...
@@ -230,7 +238,7 @@ export default {
}
},
{
label
:
"素材标题/文本内容"
,
prop
:
"title"
,
minWidth
:
220
,
formatter
(
row
)
{
return
row
.
title
;
return
row
.
title
||
'--'
;
}
}
];
...
...
@@ -244,7 +252,7 @@ export default {
handleClick
(
tab
)
{
// 获取切换的组件实例重置数据, 注意不要改变el-tab-pane里的组件层级关系
const
vm
=
tab
.
$children
[
0
];
Object
.
assign
(
vm
.
$data
,
vm
.
$options
.
data
(
));
Object
.
assign
(
vm
.
$data
,
vm
.
$options
.
data
.
call
(
vm
));
vm
.
change
();
},
// 获取卡券营销所有投放渠道
...
...
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