Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
x-training-new
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
x-training-new
Commits
36984ca9
提交
36984ca9
authored
4月 28, 2022
作者:
matian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updates
上级
f0423ce7
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
343 行增加
和
103 行删除
+343
-103
.eslintrc.js
.eslintrc.js
+2
-0
api.js
src/modules/market-tools/api.js
+1
-1
DouYin.vue
src/modules/market-tools/components/DouYin.vue
+6
-6
MailStepOne.vue
src/modules/market-tools/components/mail/MailStepOne.vue
+9
-14
MailStepTwo.vue
src/modules/market-tools/components/mail/MailStepTwo.vue
+50
-35
StepTodoList.vue
src/modules/market-tools/components/mail/StepTodoList.vue
+13
-10
index.js
src/modules/market-tools/index.js
+4
-0
Mail.vue
src/modules/market-tools/views/Mail.vue
+28
-8
Tool.vue
src/modules/market-tools/views/Tool.vue
+140
-0
List.vue
src/modules/works-show/views/List.vue
+67
-29
stepTwo.js
src/utils/stepTwo.js
+23
-0
没有找到文件。
.eslintrc.js
浏览文件 @
36984ca9
...
...
@@ -4,7 +4,9 @@ module.exports = {
},
extends
:
[
'plugin:vue/essential'
,
'standard'
],
rules
:
{
'vue/no-mutating-props'
:
'off'
,
// 暂时关闭
'vue/comment-directive'
:
'off'
,
'vue/multi-word-component-names'
:
'off'
,
'space-before-function-paren'
:
'off'
}
}
src/modules/market-tools/api.js
浏览文件 @
36984ca9
...
...
@@ -17,7 +17,7 @@ export function submitReport(data) {
// 保存营销工具记录
export
function
cacheReport
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/xtraining/api/v1/answer/
${
id
}
/save-marketing-record`
,
data
,
{
headers
:
{
'Content-Type'
:
'application/json'
}
headers
:
{
'Content-Type'
:
'application/json
;charset=UTF-8
'
}
})
}
...
...
src/modules/market-tools/components/DouYin.vue
浏览文件 @
36984ca9
...
...
@@ -23,7 +23,7 @@
</div>
<div
class=
"step-content2"
v-show=
"stepsIndex === 1"
>
<div
class=
"form-box"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
:disabled=
"$route.query.type == 1 ? true : false
"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
:disabled=
"$route.query.type == 1 ? true : false"
>
<el-form-item
label=
"标题"
>
<el-input
v-model=
"form.title"
placeholder=
"请输入内容"
></el-input>
</el-form-item>
...
...
@@ -62,7 +62,9 @@
<el-button
type=
"primary"
@
click=
"prevBtn"
v-if=
"stepsIndex != 0"
>
上一步
</el-button>
<el-button
v-if=
"stepsIndex == 0"
type=
"primary"
@
click=
"registerNextBtn"
>
下一步
</el-button>
<el-button
v-if=
"stepsIndex == 1"
type=
"primary"
@
click=
"formNextBtn"
>
下一步
</el-button>
<el-button
type=
"primary"
@
click=
"submitReport"
v-if=
"stepsIndex == 2 && $route.query.type != 1"
>
完成
</el-button>
<el-button
type=
"primary"
@
click=
"submitReport"
v-if=
"stepsIndex == 2 && $route.query.type != 1"
>
完成
</el-button
>
</div>
</div>
</div>
...
...
@@ -109,8 +111,7 @@ export default {
},
// 验证是否有未完成的答题记录
checkRecord
()
{
checkRecord
(
this
.
cases
.
id
,
2
)
.
then
(
res
=>
{
checkRecord
(
this
.
cases
.
id
,
2
).
then
(
res
=>
{
if
(
res
.
data
.
items
.
length
)
{
this
.
getReportDetail
(
res
.
data
.
items
[
0
].
id
)
}
...
...
@@ -256,8 +257,7 @@ export default {
dom
.
left
=
sty
.
l
this
.
registerText
=
sty
.
text
},
input
(
url
)
{
}
input
(
url
)
{}
}
}
</
script
>
...
...
src/modules/market-tools/components/mail/MailStepOne.vue
浏览文件 @
36984ca9
<
template
>
<div
class=
"main_content"
>
<CardList
class=
"box-card"
v-for=
"(item, index) in
card
List"
:key=
"index"
:cardList=
"item"
/>
<CardList
class=
"box-card"
v-for=
"(item, index) in
stepOne
List"
:key=
"index"
:cardList=
"item"
/>
<div
class=
"step_next step_btn"
@
click=
"handleNext"
>
下一步
</div>
</div>
</
template
>
<
script
>
import
CardList
from
'@/components/base/CardList.vue'
import
stepONeStep
from
'@/utils/stepOne'
//
import stepONeStep from '@/utils/stepOne'
import
{
cacheReport
}
from
'../../api'
export
default
{
components
:
{
...
...
@@ -16,21 +16,19 @@ export default {
activeStep
:
{
type
:
Number
,
default
:
0
},
stepOneList
:
{
type
:
Array
}
},
data
()
{
return
{
cardList
:
[]
}
},
created
()
{
if
(
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'stepONeList'
)))
{
this
.
cardList
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'stepONeList'
))
}
else
{
this
.
cardList
=
stepONeStep
cardList
:
[],
caseId
:
''
}
},
methods
:
{
// 下一步
handleNext
()
{
let
flag
=
false
this
.
cardList
.
forEach
(
item
=>
...
...
@@ -47,12 +45,9 @@ export default {
return
false
}
else
{
console
.
log
(
this
.
$store
.
state
.
case
.
id
,
'0000'
)
const
reports
=
{
type
:
1
,
commit_report
:
this
.
card
List
}
const
reports
=
{
activeStep
:
0
,
type
:
2
,
commit_report
:
this
.
stepOne
List
}
cacheReport
(
this
.
$store
.
state
.
case
.
id
,
{
reports
:
JSON
.
stringify
(
reports
)
}).
then
(
res
=>
{
console
.
log
(
res
,
'res111'
)
this
.
caseId
=
res
.
data
.
id
window
.
localStorage
.
setItem
(
'stepONeList'
,
JSON
.
stringify
(
this
.
cardList
))
this
.
$emit
(
'getCardList'
,
this
.
cardList
)
this
.
$parent
.
$parent
.
handleNext
()
})
}
...
...
src/modules/market-tools/components/mail/MailStepTwo.vue
浏览文件 @
36984ca9
...
...
@@ -6,7 +6,7 @@
<
template
#
trigger_con
>
<div
v-if=
"showIndex === 0"
>
在
<el-date-picker
v-model=
"time"
v-model=
"time
s
"
type=
"datetime"
placeholder=
"选择日期时间"
default-time=
"12:00:00"
...
...
@@ -15,7 +15,7 @@
>
对目标用户进行触达
</div>
<div
v-if=
"showIndex === 1"
>
<StepTodoList
:form=
"
form
"
/>
<StepTodoList
:form=
"
stepTwoList
"
/>
</div>
</
template
>
</StepTab>
...
...
@@ -31,11 +31,20 @@ import StepTodoList from './StepTodoList.vue'
import
{
cacheReport
}
from
'../../api'
export
default
{
components
:
{
StepTab
,
StepTodoList
},
props
:
{
stepTwoList
:
{
type
:
Array
},
time
:
{
type
:
String
}
},
data
()
{
return
{
times
:
''
,
caseId
:
''
,
showIndex
:
0
,
time
:
''
,
// tab切换列表
tabList
:
[
{
...
...
@@ -48,36 +57,39 @@ export default {
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tab_icon22.png'
,
tabName
:
'条件触发'
}
],
// 条件触发列表
form
:
{
triggerList
:
[
{
triggerValue
:
''
,
list
:
[
{
value
:
'0'
,
label
:
'启动APP'
},
{
value
:
'1'
,
label
:
'用户登录'
},
{
value
:
'2'
,
label
:
'购买基金商品'
},
{
value
:
'3'
,
label
:
'购买理财产品'
},
{
value
:
'4'
,
label
:
'购买保险产品'
},
{
value
:
'5'
,
label
:
'浏览基金产品'
},
{
value
:
'6'
,
label
:
'浏览理财产品'
},
{
value
:
'7'
,
label
:
'浏览保险产品'
},
{
value
:
'8'
,
label
:
'关闭APP'
}
]
}
]
}
// 条件触发列表
// form: {
// triggerList: [
// {
// triggerValue: '',
// list: [
// { value: '0', label: '启动APP' },
// { value: '1', label: '用户登录' },
// { value: '2', label: '购买基金商品' },
// { value: '3', label: '购买理财产品' },
// { value: '4', label: '购买保险产品' },
// { value: '5', label: '浏览基金产品' },
// { value: '6', label: '浏览理财产品' },
// { value: '7', label: '浏览保险产品' },
// { value: '8', label: '关闭APP' }
// ]
// }
// ]
// }
}
},
mounted
()
{
console
.
log
(
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'triggerList'
)),
'123'
)
if
(
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'triggerList'
)))
{
this
.
form
.
triggerList
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'triggerList'
))
}
if
(
window
.
localStorage
.
getItem
(
'time'
))
{
this
.
time
=
window
.
localStorage
.
getItem
(
'time'
)
}
console
.
log
(
this
.
time
,
'time'
)
this
.
times
=
this
.
time
console
.
log
(
this
.
stepTwoList
,
'9999'
)
// console.log(JSON.parse(window.localStorage.getItem('triggerList')), '123')
// if (JSON.parse(window.localStorage.getItem('triggerList'))) {
// this.form.triggerList = JSON.parse(window.localStorage.getItem('triggerList'))
// }
// if (window.localStorage.getItem('time')) {
// this.time = window.localStorage.getItem('time')
// }
},
methods
:
{
...
...
@@ -89,8 +101,9 @@ export default {
},
handleNext
()
{
let
flag
=
false
this
.
form
.
triggerList
.
forEach
(
item
=>
{
if
(
item
.
triggerValue
===
''
||
this
.
time
===
''
)
{
console
.
log
(
this
.
stepTwoList
,
'990000'
)
this
.
stepTwoList
[
0
].
form
.
triggerList
.
forEach
(
item
=>
{
if
(
item
.
triggerValue
===
''
||
this
.
times
===
''
)
{
flag
=
true
return
false
}
...
...
@@ -99,11 +112,13 @@ export default {
this
.
$message
.
warning
(
'请完善改步骤后才能进入下一步'
)
return
false
}
else
{
const
reports
=
{
type
:
1
,
commit_report
:
[{
form
:
this
.
form
.
triggerList
},
{
time
:
this
.
time
}]
}
const
reports
=
{
activeStep
:
1
,
type
:
2
,
commit_report
:
[{
form
:
this
.
stepTwoList
},
{
time
:
this
.
times
}]
}
cacheReport
(
this
.
$store
.
state
.
case
.
id
,
{
reports
:
JSON
.
stringify
(
reports
)
}).
then
(
res
=>
{
window
.
localStorage
.
setItem
(
'triggerList'
,
JSON
.
stringify
(
this
.
form
.
triggerList
))
window
.
localStorage
.
setItem
(
'time'
,
this
.
time
)
this
.
$emit
(
'getStepTwoInfo'
,
this
.
form
.
triggerList
,
this
.
time
)
this
.
caseId
=
res
.
data
.
id
this
.
$parent
.
$parent
.
handleNext
()
})
}
...
...
src/modules/market-tools/components/mail/StepTodoList.vue
浏览文件 @
36984ca9
...
...
@@ -6,13 +6,13 @@
</div>
<div
class=
"main_con_optionList"
>
<div
class=
"optionList_left"
>
<div
v-for=
"item in form.triggerList.length - 1"
:key=
"item"
>
<div
v-for=
"item in form
[0].form
.triggerList.length - 1"
:key=
"item"
>
<div
class=
"optionList_left_line"
></div>
<div
class=
"optionList_left_text"
>
且
</div>
</div>
</div>
<div
class=
"optionList_right"
>
<el-form
:inline=
"true"
:model=
"form"
>
<el-form
:inline=
"true"
:model=
"form
[0].form
"
>
<div
v-for=
"(item, indexB) in list"
:key=
"indexB"
>
<el-form-item>
<span
class=
"optionList_right_text"
>
当用户做过
</span>
...
...
@@ -46,18 +46,21 @@
export
default
{
props
:
{
form
:
{
type
:
Object
,
type
:
Array
,
default
:
()
=>
{}
}
},
data
()
{
return
{}
},
mounted
()
{
console
.
log
(
this
.
form
,
'----'
)
},
computed
:
{
list
()
{
return
this
.
form
.
triggerList
.
map
(
item
=>
{
return
this
.
form
[
0
].
form
.
triggerList
.
map
(
item
=>
{
item
.
list
=
item
.
list
.
map
(
i
=>
{
i
.
disabled
=
!!
this
.
form
.
triggerList
.
find
(
item
=>
item
.
triggerValue
===
i
.
value
)
i
.
disabled
=
!!
this
.
form
[
0
].
form
.
triggerList
.
find
(
item
=>
item
.
triggerValue
===
i
.
value
)
return
i
})
return
item
...
...
@@ -67,20 +70,20 @@ export default {
methods
:
{
handleAdd
()
{
console
.
log
(
'000'
)
if
(
this
.
form
.
triggerList
.
length
<
this
.
form
.
triggerList
[
0
].
list
.
length
)
{
const
item
=
Object
.
assign
({},
this
.
form
.
triggerList
[
0
])
if
(
this
.
form
[
0
].
form
.
triggerList
.
length
<
this
.
form
[
0
]
.
form
.
triggerList
[
0
].
list
.
length
)
{
const
item
=
Object
.
assign
({},
this
.
form
[
0
].
form
.
triggerList
[
0
])
item
.
triggerValue
=
''
// eslint-disable-next-line vue/no-mutating-props
this
.
form
.
triggerList
.
push
(
item
)
this
.
form
[
0
].
form
.
triggerList
.
push
(
item
)
}
else
{
this
.
$message
.
warning
(
'添加项不能超过下拉选项个数'
)
}
},
handleDelete
(
item
,
indexB
)
{
if
(
this
.
form
.
triggerList
.
length
>
1
)
{
if
(
this
.
form
[
0
].
form
.
triggerList
.
length
>
1
)
{
// eslint-disable-next-line vue/no-mutating-props
this
.
form
.
triggerList
.
splice
(
indexB
,
1
)
this
.
form
[
0
].
form
.
triggerList
.
splice
(
indexB
,
1
)
}
else
{
this
.
$message
.
warning
(
'默认至少有一条数据'
)
}
...
...
src/modules/market-tools/index.js
浏览文件 @
36984ca9
...
...
@@ -15,6 +15,10 @@ const routes = [
{
path
:
'/market-tools/app'
,
component
:
()
=>
import
(
'./views/App.vue'
)
},
{
path
:
'/market-tools/tool'
,
component
:
()
=>
import
(
'./views/Tool.vue'
)
}
]
}
...
...
src/modules/market-tools/views/Mail.vue
浏览文件 @
36984ca9
...
...
@@ -3,15 +3,22 @@
<ToolCard
class=
"main_content"
>
<Step
:activeStep=
"activeStep"
class=
"pt50-pl60"
/>
<div>
<MailStepOne
v-show=
"activeStep === 0"
class=
"pt-50"
:activeStep=
"activeStep"
@
getCardList=
"getCardList"
/>
<MailStepTwo
v-show=
"activeStep === 1"
class=
"pt-50"
@
getStepTwoInfo=
"getStepTwoInfo"
/>
<MailStepOne
v-if=
"activeStep === 0"
class=
"pt-50"
:activeStep=
"activeStep"
:stepOneList=
"stepOneList"
/>
<MailStepTwo
v-if=
"activeStep === 1"
class=
"pt-50"
:stepTwoList=
"stepTwoList"
:time=
"time"
/>
<div
class=
"main_content_btn"
>
<div
class=
"step_prev step_btn"
@
click=
"handlePrev"
v-if=
"activeStep > 0"
>
上一步
</div>
<div
class=
"step_next step_btn"
@
click=
"handleNext"
v-if=
"activeStep >= 0 && activeStep
<
3
"
>
下一步
</div>
<div
class=
"step_finished step_btn"
@
click=
"handlePreview"
v-if=
"activeStep === 3"
>
点击生成预览
</div>
</div>
</div>
</ToolCard>
</div>
</
template
>
<
script
>
import
stepONe
from
'@/utils/stepOne'
import
stepTwo
from
'@/utils/stepTwo'
import
{
getReportDetail
}
from
'../api'
import
ToolCard
from
'@/components/base/ToolCard.vue'
import
MailStepOne
from
'../components/mail/MailStepOne.vue'
import
Step
from
'@/components/base/Step.vue'
...
...
@@ -41,14 +48,27 @@ export default {
handleNext
()
{
this
.
activeStep
++
},
//
点击生成
预览
// 预览
handlePreview
()
{},
getCardList
(
val
)
{
this
.
stepOneList
=
val
getReportDetail
(
id
)
{
getReportDetail
(
id
).
then
(
res
=>
{
this
.
activeStep
=
res
.
data
.
detail
.
answer
.
activeStep
if
(
this
.
activeStep
===
0
)
{
this
.
stepOneList
=
res
.
data
.
detail
.
answer
.
commit_report
}
else
if
(
this
.
activeStep
===
1
)
{
this
.
time
=
res
.
data
.
detail
.
answer
.
commit_report
[
1
].
time
this
.
stepTwoList
=
res
.
data
.
detail
.
answer
.
commit_report
[
0
].
form
console
.
log
(
res
,
this
.
time
,
'----'
)
}
})
}
},
getStepTwoInfo
(
val
,
time
)
{
this
.
stepTwoList
=
val
this
.
time
=
time
mounted
()
{
if
(
this
.
$route
.
query
.
type
)
{
this
.
getReportDetail
(
this
.
$route
.
query
.
id
)
}
else
{
this
.
stepOneList
=
stepONe
this
.
stepTwoList
=
stepTwo
}
}
}
...
...
src/modules/market-tools/views/Tool.vue
0 → 100644
浏览文件 @
36984ca9
<
template
>
<div
class=
"tool-box"
>
<ul
class=
"left-nav"
>
<li
@
click=
"selectList(index)"
v-for=
"(item, index) in list"
:key=
"index"
:class=
"listIndex === index ? 'active' : ''"
>
<div
class=
"icon-box"
>
<img
:src=
"listIndex === index ? item.iconActive : item.icon"
/>
</div>
<div
class=
"text"
>
{{
item
.
text
}}
</div>
</li>
</ul>
<div
class=
"right-content"
>
<dou-yin></dou-yin>
</div>
</div>
</
template
>
<
script
>
// import Email from '../components/Email.vue'
import
DouYin
from
'../components/DouYin.vue'
export
default
{
components
:
{
DouYin
},
data
()
{
return
{
listIndex
:
9
,
list
:
[
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon1.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon1.png'
,
text
:
'搜索引擎优化'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon2.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon1.png'
,
text
:
'搜索引擎营销'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon3.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon-a3.png'
,
text
:
'视频营销'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon4.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon4.png'
,
text
:
'社交媒体营销'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon5.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon5.png'
,
text
:
'智能推荐'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon6.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon6.png'
,
text
:
'数字化广告'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon7.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon7.png'
,
text
:
'电子邮件营销'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon8.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon8.png'
,
text
:
'SOLOMO'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon9.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon9.png'
,
text
:
'移动营销'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon10.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon10.png'
,
text
:
'APP营销'
},
{
icon
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon11.png'
,
iconActive
:
'https://webapp-pub.ezijing.com/x-training-new/tool-icon11.png'
,
text
:
'全渠道营销'
}
]
}
},
methods
:
{
selectList
(
n
)
{
if
(
n
===
2
)
return
this
.
$message
(
'暂未开通'
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.tool-box
{
display
:
flex
;
padding
:
25px
30px
30px
;
.left-nav
{
width
:
264px
;
height
:
684px
;
background
:
url(https://webapp-pub.ezijing.com/x-training-new/nav-bg.png)
;
background-size
:
100%
100%
;
padding-top
:
18px
;
box-sizing
:
border-box
;
li
{
width
:
220px
;
height
:
58px
;
display
:
flex
;
align-items
:
center
;
margin
:
0
auto
;
cursor
:
pointer
;
&
.active
{
background
:
#68b8a4
;
.text
{
color
:
#fff
;
}
}
.icon-box
{
width
:
50px
;
margin-left
:
40px
;
}
.text
{
font-size
:
14px
;
color
:
#666666
;
}
}
}
.right-content
{
flex
:
1
;
background
:
#fff
;
margin-left
:
30px
;
padding
:
30px
;
box-sizing
:
border-box
;
}
}
</
style
>
src/modules/works-show/views/List.vue
浏览文件 @
36984ca9
...
...
@@ -2,63 +2,99 @@
<div
class=
"history"
>
<el-tabs
v-model=
"tabActive"
type=
"card"
@
tab-click=
"handleTabClick"
>
<el-tab-pane
label=
"产品分析报告"
name=
"1"
>
<el-table
:data=
"prod.data"
style=
"width: 100%"
:header-row-style=
"
{background:'#ededed',color:'#4d4d4d'}" :header-cell-style="{background: 'transparent'}">
<el-table
:data=
"prod.data"
style=
"width: 100%"
:header-row-style=
"
{ background: '#ededed', color: '#4d4d4d' }"
:header-cell-style="{ background: 'transparent' }"
>
<el-table-column
type=
"index"
:index=
"prod.tableIndex"
label=
"序号"
width=
"50"
/>
<el-table-column
prop=
"case_info.name"
label=
"案例名称"
min-width=
"160"
/>
<el-table-column
prop=
"score"
label=
"分数"
min-width=
"120"
>
<el-table-column
prop=
"score"
label=
"分数"
min-width=
"120"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
is_complete
?
parseInt
(
scope
.
row
.
score
)
:
''
}}
{{
scope
.
row
.
is_complete
?
parseInt
(
scope
.
row
.
score
)
:
''
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"updated_at"
label=
"保存时间"
min-width=
"160"
/>
<el-table-column
label=
"操作"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"small"
>
{{
scope
.
row
.
is_complete
?
'查看'
:
'继续完成'
}}
</el-button>
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"small"
>
{{
scope
.
row
.
is_complete
?
'查看'
:
'继续完成'
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
:current-page
.
sync=
"prod.page"
layout=
"prev, pager, next"
:total=
"prod.total"
@
current-change=
"fetchProdRecords"
></el-pagination>
<el-pagination
:current-page
.
sync=
"prod.page"
layout=
"prev, pager, next"
:total=
"prod.total"
@
current-change=
"fetchProdRecords"
></el-pagination>
</div>
</el-tab-pane>
<el-tab-pane
label=
"用户分析报告"
name=
"2"
>
<el-table
:data=
"user.data"
style=
"width: 100%"
:header-row-style=
"{background:'#ededed',color:'#4d4d4d'}"
:header-cell-style=
"{background: 'transparent'}"
>
<el-table
:data=
"user.data"
style=
"width: 100%"
:header-row-style=
"{ background: '#ededed', color: '#4d4d4d' }"
:header-cell-style=
"{ background: 'transparent' }"
>
<el-table-column
type=
"index"
:index=
"user.tableIndex"
label=
"序号"
width=
"50"
/>
<el-table-column
prop=
"case_info.name"
label=
"案例名称"
min-width=
"160"
/>
<el-table-column
prop=
"score"
label=
"分数"
min-width=
"120"
>
<el-table-column
prop=
"score"
label=
"分数"
min-width=
"120"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
is_complete
?
parseInt
(
scope
.
row
.
score
)
:
''
}}
{{
scope
.
row
.
is_complete
?
parseInt
(
scope
.
row
.
score
)
:
''
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"updated_at"
label=
"保存时间"
min-width=
"160"
/>
<el-table-column
label=
"操作"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"small"
>
{{
scope
.
row
.
is_complete
?
'查看'
:
'继续完成'
}}
</el-button>
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"small"
>
{{
scope
.
row
.
is_complete
?
'查看'
:
'继续完成'
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
:current-page
.
sync=
"user.page"
layout=
"prev, pager, next"
:total=
"user.total"
@
current-change=
"fetchUserRecords"
></el-pagination>
<el-pagination
:current-page
.
sync=
"user.page"
layout=
"prev, pager, next"
:total=
"user.total"
@
current-change=
"fetchUserRecords"
></el-pagination>
</div>
</el-tab-pane>
<el-tab-pane
label=
"营销工具使用"
name=
"3"
>
<el-table
:data=
"tool.data"
style=
"width: 100%"
:header-row-style=
"{background:'#ededed',color:'#4d4d4d'}"
:header-cell-style=
"{background: 'transparent'}"
>
<el-table
:data=
"tool.data"
style=
"width: 100%"
:header-row-style=
"{ background: '#ededed', color: '#4d4d4d' }"
:header-cell-style=
"{ background: 'transparent' }"
>
<el-table-column
type=
"index"
:index=
"tool.tableIndex"
label=
"序号"
width=
"50"
/>
<el-table-column
prop=
"case_info.name"
label=
"案例名称"
min-width=
"160"
/>
<el-table-column
prop=
"type"
label=
"类型"
min-width=
"120"
>
<el-table-column
prop=
"type"
label=
"类型"
min-width=
"120"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
type
|
toolTypeFilter
}}
{{
scope
.
row
.
type
|
toolTypeFilter
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"updated_at"
label=
"保存时间"
min-width=
"160"
/>
<el-table-column
label=
"操作"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"small"
>
{{
scope
.
row
.
is_complete
?
'查看'
:
'继续完成'
}}
</el-button>
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"small"
>
{{
scope
.
row
.
is_complete
?
'查看'
:
'继续完成'
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
:current-page
.
sync=
"tool.page"
layout=
"prev, pager, next"
:total=
"tool.total"
@
current-change=
"fetchToolRecords"
></el-pagination>
<el-pagination
:current-page
.
sync=
"tool.page"
layout=
"prev, pager, next"
:total=
"tool.total"
@
current-change=
"fetchToolRecords"
></el-pagination>
</div>
</el-tab-pane>
</el-tabs>
...
...
@@ -112,8 +148,7 @@ export default {
this
.
fetchToolRecords
()
},
methods
:
{
handleTabClick
()
{
},
handleTabClick
()
{},
handleClick
(
val
)
{
if
(
this
.
case
.
id
===
val
.
case_info
.
id
)
{
this
.
handleNav
(
val
)
...
...
@@ -183,11 +218,14 @@ export default {
break
case
'2'
:
const
type
=
val
.
is_complete
===
1
?
'3'
:
'1'
console
.
log
(
'000'
)
this
.
$router
.
push
({
path
:
'/user-study'
,
query
:
{
id
:
val
.
id
,
type
}
})
break
case
'3'
:
const
_type
=
val
.
is_complete
===
1
?
'1'
:
'0'
this
.
$router
.
push
({
path
:
'/market-tools/tool'
,
query
:
{
id
:
val
.
id
,
type
:
_type
}
})
console
.
log
(
'111'
)
this
.
$router
.
push
({
path
:
'/market-tools/mail'
,
query
:
{
id
:
val
.
id
,
type
:
_type
}
})
break
}
}
...
...
@@ -195,19 +233,19 @@ export default {
}
</
script
>
<
style
scoped
>
.history
{
width
:
1160px
;
padding-bottom
:
40px
;
.history
{
width
:
1160px
;
padding-bottom
:
40px
;
/* height:calc(100vh - 86px); */
margin
:
30px
auto
;
background
:
#fff
;
padding
:
10px
30px
;
margin
:
30px
auto
;
background
:
#fff
;
padding
:
10px
30px
;
}
.history
::v-deep
.el-table
.el-table__cell.gutter
{
background
:
#ededed
;
.history
::v-deep
.el-table
.el-table__cell.gutter
{
background
:
#ededed
;
}
.pagination
{
padding-top
:
7px
;
text-align
:
right
;
.pagination
{
padding-top
:
7px
;
text-align
:
right
;
}
</
style
>
src/utils/stepTwo.js
0 → 100644
浏览文件 @
36984ca9
const
triggerList
=
[
{
form
:
{
triggerList
:
[
{
triggerValue
:
''
,
list
:
[
{
value
:
'0'
,
label
:
'启动APP'
},
{
value
:
'1'
,
label
:
'用户登录'
},
{
value
:
'2'
,
label
:
'购买基金商品'
},
{
value
:
'3'
,
label
:
'购买理财产品'
},
{
value
:
'4'
,
label
:
'购买保险产品'
},
{
value
:
'5'
,
label
:
'浏览基金产品'
},
{
value
:
'6'
,
label
:
'浏览理财产品'
},
{
value
:
'7'
,
label
:
'浏览保险产品'
},
{
value
:
'8'
,
label
:
'关闭APP'
}
]
}
]
}
}
]
export
default
triggerList
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论