提交 36984ca9 authored 作者: matian's avatar matian

updates

上级 f0423ce7
...@@ -4,7 +4,9 @@ module.exports = { ...@@ -4,7 +4,9 @@ module.exports = {
}, },
extends: ['plugin:vue/essential', 'standard'], extends: ['plugin:vue/essential', 'standard'],
rules: { rules: {
'vue/no-mutating-props': 'off', // 暂时关闭
'vue/comment-directive': 'off', 'vue/comment-directive': 'off',
'vue/multi-word-component-names': 'off',
'space-before-function-paren': 'off' 'space-before-function-paren': 'off'
} }
} }
...@@ -17,7 +17,7 @@ export function submitReport(data) { ...@@ -17,7 +17,7 @@ export function submitReport(data) {
// 保存营销工具记录 // 保存营销工具记录
export function cacheReport(id, data) { export function cacheReport(id, data) {
return httpRequest.post(`/api/xtraining/api/v1/answer/${id}/save-marketing-record`, 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' }
}) })
} }
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</div> </div>
<div class="step-content2" v-show="stepsIndex === 1"> <div class="step-content2" v-show="stepsIndex === 1">
<div class="form-box"> <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-form-item label="标题">
<el-input v-model="form.title" placeholder="请输入内容"></el-input> <el-input v-model="form.title" placeholder="请输入内容"></el-input>
</el-form-item> </el-form-item>
...@@ -62,7 +62,9 @@ ...@@ -62,7 +62,9 @@
<el-button type="primary" @click="prevBtn" v-if="stepsIndex != 0">上一步</el-button> <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 == 0" type="primary" @click="registerNextBtn">下一步</el-button>
<el-button v-if="stepsIndex == 1" type="primary" @click="formNextBtn">下一步</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> </div>
</div> </div>
...@@ -109,12 +111,11 @@ export default { ...@@ -109,12 +111,11 @@ export default {
}, },
// 验证是否有未完成的答题记录 // 验证是否有未完成的答题记录
checkRecord() { checkRecord() {
checkRecord(this.cases.id, 2) checkRecord(this.cases.id, 2).then(res => {
.then(res => { if (res.data.items.length) {
if (res.data.items.length) { this.getReportDetail(res.data.items[0].id)
this.getReportDetail(res.data.items[0].id) }
} })
})
}, },
registerNextBtn() { registerNextBtn() {
if (this.$route.query.type) { if (this.$route.query.type) {
...@@ -256,8 +257,7 @@ export default { ...@@ -256,8 +257,7 @@ export default {
dom.left = sty.l dom.left = sty.l
this.registerText = sty.text this.registerText = sty.text
}, },
input(url) { input(url) {}
}
} }
} }
</script> </script>
......
<template> <template>
<div class="main_content"> <div class="main_content">
<CardList class="box-card" v-for="(item, index) in cardList" :key="index" :cardList="item" /> <CardList class="box-card" v-for="(item, index) in stepOneList" :key="index" :cardList="item" />
<div class="step_next step_btn" @click="handleNext">下一步</div> <div class="step_next step_btn" @click="handleNext">下一步</div>
</div> </div>
</template> </template>
<script> <script>
import CardList from '@/components/base/CardList.vue' import CardList from '@/components/base/CardList.vue'
import stepONeStep from '@/utils/stepOne' // import stepONeStep from '@/utils/stepOne'
import { cacheReport } from '../../api' import { cacheReport } from '../../api'
export default { export default {
components: { components: {
...@@ -16,21 +16,19 @@ export default { ...@@ -16,21 +16,19 @@ export default {
activeStep: { activeStep: {
type: Number, type: Number,
default: 0 default: 0
},
stepOneList: {
type: Array
} }
}, },
data() { data() {
return { return {
cardList: [] cardList: [],
} caseId: ''
},
created() {
if (JSON.parse(window.localStorage.getItem('stepONeList'))) {
this.cardList = JSON.parse(window.localStorage.getItem('stepONeList'))
} else {
this.cardList = stepONeStep
} }
}, },
methods: { methods: {
// 下一步
handleNext() { handleNext() {
let flag = false let flag = false
this.cardList.forEach(item => this.cardList.forEach(item =>
...@@ -47,12 +45,9 @@ export default { ...@@ -47,12 +45,9 @@ export default {
return false return false
} else { } else {
console.log(this.$store.state.case.id, '0000') console.log(this.$store.state.case.id, '0000')
const reports = { type: 1, commit_report: this.cardList } const reports = { activeStep: 0, type: 2, commit_report: this.stepOneList }
cacheReport(this.$store.state.case.id, { reports: JSON.stringify(reports) }).then(res => { cacheReport(this.$store.state.case.id, { reports: JSON.stringify(reports) }).then(res => {
console.log(res, 'res111')
this.caseId = res.data.id this.caseId = res.data.id
window.localStorage.setItem('stepONeList', JSON.stringify(this.cardList))
this.$emit('getCardList', this.cardList)
this.$parent.$parent.handleNext() this.$parent.$parent.handleNext()
}) })
} }
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<template #trigger_con> <template #trigger_con>
<div v-if="showIndex === 0"> <div v-if="showIndex === 0">
&nbsp;&nbsp;<el-date-picker &nbsp;&nbsp;<el-date-picker
v-model="time" v-model="times"
type="datetime" type="datetime"
placeholder="选择日期时间" placeholder="选择日期时间"
default-time="12:00:00" default-time="12:00:00"
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
>&nbsp;&nbsp;对目标用户进行触达 >&nbsp;&nbsp;对目标用户进行触达
</div> </div>
<div v-if="showIndex === 1"> <div v-if="showIndex === 1">
<StepTodoList :form="form" /> <StepTodoList :form="stepTwoList" />
</div> </div>
</template> </template>
</StepTab> </StepTab>
...@@ -31,11 +31,20 @@ import StepTodoList from './StepTodoList.vue' ...@@ -31,11 +31,20 @@ import StepTodoList from './StepTodoList.vue'
import { cacheReport } from '../../api' import { cacheReport } from '../../api'
export default { export default {
components: { StepTab, StepTodoList }, components: { StepTab, StepTodoList },
props: {
stepTwoList: {
type: Array
},
time: {
type: String
}
},
data() { data() {
return { return {
times: '',
caseId: '',
showIndex: 0, showIndex: 0,
time: '',
// tab切换列表 // tab切换列表
tabList: [ tabList: [
{ {
...@@ -48,36 +57,39 @@ export default { ...@@ -48,36 +57,39 @@ export default {
iconActive: 'https://webapp-pub.ezijing.com/x-training-new/tab_icon22.png', iconActive: 'https://webapp-pub.ezijing.com/x-training-new/tab_icon22.png',
tabName: '条件触发' tabName: '条件触发'
} }
], ]
// 条件触发列表 // 条件触发列表
form: { // form: {
triggerList: [ // triggerList: [
{ // {
triggerValue: '', // triggerValue: '',
list: [ // list: [
{ value: '0', label: '启动APP' }, // { value: '0', label: '启动APP' },
{ value: '1', label: '用户登录' }, // { value: '1', label: '用户登录' },
{ value: '2', label: '购买基金商品' }, // { value: '2', label: '购买基金商品' },
{ value: '3', label: '购买理财产品' }, // { value: '3', label: '购买理财产品' },
{ value: '4', label: '购买保险产品' }, // { value: '4', label: '购买保险产品' },
{ value: '5', label: '浏览基金产品' }, // { value: '5', label: '浏览基金产品' },
{ value: '6', label: '浏览理财产品' }, // { value: '6', label: '浏览理财产品' },
{ value: '7', label: '浏览保险产品' }, // { value: '7', label: '浏览保险产品' },
{ value: '8', label: '关闭APP' } // { value: '8', label: '关闭APP' }
] // ]
} // }
] // ]
} // }
} }
}, },
mounted() { mounted() {
console.log(JSON.parse(window.localStorage.getItem('triggerList')), '123') console.log(this.time, 'time')
if (JSON.parse(window.localStorage.getItem('triggerList'))) { this.times = this.time
this.form.triggerList = JSON.parse(window.localStorage.getItem('triggerList')) console.log(this.stepTwoList, '9999')
} // console.log(JSON.parse(window.localStorage.getItem('triggerList')), '123')
if (window.localStorage.getItem('time')) { // if (JSON.parse(window.localStorage.getItem('triggerList'))) {
this.time = window.localStorage.getItem('time') // this.form.triggerList = JSON.parse(window.localStorage.getItem('triggerList'))
} // }
// if (window.localStorage.getItem('time')) {
// this.time = window.localStorage.getItem('time')
// }
}, },
methods: { methods: {
...@@ -89,8 +101,9 @@ export default { ...@@ -89,8 +101,9 @@ export default {
}, },
handleNext() { handleNext() {
let flag = false let flag = false
this.form.triggerList.forEach(item => { console.log(this.stepTwoList, '990000')
if (item.triggerValue === '' || this.time === '') { this.stepTwoList[0].form.triggerList.forEach(item => {
if (item.triggerValue === '' || this.times === '') {
flag = true flag = true
return false return false
} }
...@@ -99,11 +112,13 @@ export default { ...@@ -99,11 +112,13 @@ export default {
this.$message.warning('请完善改步骤后才能进入下一步') this.$message.warning('请完善改步骤后才能进入下一步')
return false return false
} else { } 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 => { cacheReport(this.$store.state.case.id, { reports: JSON.stringify(reports) }).then(res => {
window.localStorage.setItem('triggerList', JSON.stringify(this.form.triggerList)) this.caseId = res.data.id
window.localStorage.setItem('time', this.time)
this.$emit('getStepTwoInfo', this.form.triggerList, this.time)
this.$parent.$parent.handleNext() this.$parent.$parent.handleNext()
}) })
} }
......
...@@ -6,13 +6,13 @@ ...@@ -6,13 +6,13 @@
</div> </div>
<div class="main_con_optionList"> <div class="main_con_optionList">
<div class="optionList_left"> <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_line"></div>
<div class="optionList_left_text"></div> <div class="optionList_left_text"></div>
</div> </div>
</div> </div>
<div class="optionList_right"> <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"> <div v-for="(item, indexB) in list" :key="indexB">
<el-form-item> <el-form-item>
<span class="optionList_right_text">当用户做过</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="optionList_right_text">当用户做过</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
...@@ -46,18 +46,21 @@ ...@@ -46,18 +46,21 @@
export default { export default {
props: { props: {
form: { form: {
type: Object, type: Array,
default: () => {} default: () => {}
} }
}, },
data() { data() {
return {} return {}
}, },
mounted() {
console.log(this.form, '----')
},
computed: { computed: {
list() { list() {
return this.form.triggerList.map(item => { return this.form[0].form.triggerList.map(item => {
item.list = item.list.map(i => { 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 i
}) })
return item return item
...@@ -67,20 +70,20 @@ export default { ...@@ -67,20 +70,20 @@ export default {
methods: { methods: {
handleAdd() { handleAdd() {
console.log('000') console.log('000')
if (this.form.triggerList.length < this.form.triggerList[0].list.length) { if (this.form[0].form.triggerList.length < this.form[0].form.triggerList[0].list.length) {
const item = Object.assign({}, this.form.triggerList[0]) const item = Object.assign({}, this.form[0].form.triggerList[0])
item.triggerValue = '' item.triggerValue = ''
// eslint-disable-next-line vue/no-mutating-props // eslint-disable-next-line vue/no-mutating-props
this.form.triggerList.push(item) this.form[0].form.triggerList.push(item)
} else { } else {
this.$message.warning('添加项不能超过下拉选项个数') this.$message.warning('添加项不能超过下拉选项个数')
} }
}, },
handleDelete(item, indexB) { 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 // eslint-disable-next-line vue/no-mutating-props
this.form.triggerList.splice(indexB, 1) this.form[0].form.triggerList.splice(indexB, 1)
} else { } else {
this.$message.warning('默认至少有一条数据') this.$message.warning('默认至少有一条数据')
} }
......
...@@ -15,6 +15,10 @@ const routes = [ ...@@ -15,6 +15,10 @@ const routes = [
{ {
path: '/market-tools/app', path: '/market-tools/app',
component: () => import('./views/App.vue') component: () => import('./views/App.vue')
},
{
path: '/market-tools/tool',
component: () => import('./views/Tool.vue')
} }
] ]
} }
......
...@@ -3,15 +3,22 @@ ...@@ -3,15 +3,22 @@
<ToolCard class="main_content"> <ToolCard class="main_content">
<Step :activeStep="activeStep" class="pt50-pl60" /> <Step :activeStep="activeStep" class="pt50-pl60" />
<div> <div>
<MailStepOne v-show="activeStep === 0" class="pt-50" :activeStep="activeStep" @getCardList="getCardList" /> <MailStepOne v-if="activeStep === 0" class="pt-50" :activeStep="activeStep" :stepOneList="stepOneList" />
<MailStepTwo v-show="activeStep === 1" class="pt-50" @getStepTwoInfo="getStepTwoInfo" /> <MailStepTwo v-if="activeStep === 1" class="pt-50" :stepTwoList="stepTwoList" :time="time" />
<div class="step_prev step_btn" @click="handlePrev" v-if="activeStep > 0">上一步</div> <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> </div>
</ToolCard> </ToolCard>
</div> </div>
</template> </template>
<script> <script>
import stepONe from '@/utils/stepOne'
import stepTwo from '@/utils/stepTwo'
import { getReportDetail } from '../api'
import ToolCard from '@/components/base/ToolCard.vue' import ToolCard from '@/components/base/ToolCard.vue'
import MailStepOne from '../components/mail/MailStepOne.vue' import MailStepOne from '../components/mail/MailStepOne.vue'
import Step from '@/components/base/Step.vue' import Step from '@/components/base/Step.vue'
...@@ -41,14 +48,27 @@ export default { ...@@ -41,14 +48,27 @@ export default {
handleNext() { handleNext() {
this.activeStep++ this.activeStep++
}, },
// 点击生成预览 // 预览
handlePreview() {}, handlePreview() {},
getCardList(val) { getReportDetail(id) {
this.stepOneList = val getReportDetail(id).then(res => {
}, this.activeStep = res.data.detail.answer.activeStep
getStepTwoInfo(val, time) { if (this.activeStep === 0) {
this.stepTwoList = val this.stepOneList = res.data.detail.answer.commit_report
this.time = time } 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, '----')
}
})
}
},
mounted() {
if (this.$route.query.type) {
this.getReportDetail(this.$route.query.id)
} else {
this.stepOneList = stepONe
this.stepTwoList = stepTwo
} }
} }
} }
......
<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>
...@@ -2,63 +2,99 @@ ...@@ -2,63 +2,99 @@
<div class="history"> <div class="history">
<el-tabs v-model="tabActive" type="card" @tab-click="handleTabClick"> <el-tabs v-model="tabActive" type="card" @tab-click="handleTabClick">
<el-tab-pane label="产品分析报告" name="1"> <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 type="index" :index="prod.tableIndex" label="序号" width="50" />
<el-table-column prop="case_info.name" label="案例名称" min-width="160" /> <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"> <template slot-scope="scope">
{{scope.row.is_complete ? parseInt(scope.row.score) : ''}} {{ scope.row.is_complete ? parseInt(scope.row.score) : '' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="updated_at" label="保存时间" min-width="160" /> <el-table-column prop="updated_at" label="保存时间" min-width="160" />
<el-table-column label="操作" width="100"> <el-table-column label="操作" width="100">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <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> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="用户分析报告" name="2"> <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 type="index" :index="user.tableIndex" label="序号" width="50" />
<el-table-column prop="case_info.name" label="案例名称" min-width="160" /> <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"> <template slot-scope="scope">
{{scope.row.is_complete ? parseInt(scope.row.score) : ''}} {{ scope.row.is_complete ? parseInt(scope.row.score) : '' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="updated_at" label="保存时间" min-width="160" /> <el-table-column prop="updated_at" label="保存时间" min-width="160" />
<el-table-column label="操作" width="100"> <el-table-column label="操作" width="100">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <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> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="营销工具使用" name="3"> <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 type="index" :index="tool.tableIndex" label="序号" width="50" />
<el-table-column prop="case_info.name" label="案例名称" min-width="160" /> <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"> <template slot-scope="scope">
{{scope.row.type | toolTypeFilter}} {{ scope.row.type | toolTypeFilter }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="updated_at" label="保存时间" min-width="160" /> <el-table-column prop="updated_at" label="保存时间" min-width="160" />
<el-table-column label="操作" width="100"> <el-table-column label="操作" width="100">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <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> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
...@@ -112,8 +148,7 @@ export default { ...@@ -112,8 +148,7 @@ export default {
this.fetchToolRecords() this.fetchToolRecords()
}, },
methods: { methods: {
handleTabClick() { handleTabClick() {},
},
handleClick(val) { handleClick(val) {
if (this.case.id === val.case_info.id) { if (this.case.id === val.case_info.id) {
this.handleNav(val) this.handleNav(val)
...@@ -183,11 +218,14 @@ export default { ...@@ -183,11 +218,14 @@ export default {
break break
case '2': case '2':
const type = val.is_complete === 1 ? '3' : '1' const type = val.is_complete === 1 ? '3' : '1'
console.log('000')
this.$router.push({ path: '/user-study', query: { id: val.id, type } }) this.$router.push({ path: '/user-study', query: { id: val.id, type } })
break break
case '3': case '3':
const _type = val.is_complete === 1 ? '1' : '0' 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 break
} }
} }
...@@ -195,19 +233,19 @@ export default { ...@@ -195,19 +233,19 @@ export default {
} }
</script> </script>
<style scoped> <style scoped>
.history{ .history {
width:1160px; width: 1160px;
padding-bottom:40px; padding-bottom: 40px;
/* height:calc(100vh - 86px); */ /* height:calc(100vh - 86px); */
margin:30px auto; margin: 30px auto;
background:#fff; background: #fff;
padding:10px 30px; padding: 10px 30px;
} }
.history ::v-deep.el-table .el-table__cell.gutter{ .history ::v-deep.el-table .el-table__cell.gutter {
background:#ededed; background: #ededed;
} }
.pagination{ .pagination {
padding-top:7px; padding-top: 7px;
text-align:right; text-align: right;
} }
</style> </style>
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论