提交 bc2a54d9 authored 作者: matian's avatar matian

代码提交

上级 4216a061
<template> <template>
<div> <div>
<StepTab :tabList="tabList" @tabActive="handleTab"> <StepTab :tabList="tabList" @tabActive="handleTab">
<template #plan_title>计划类型</template> <template #plan_title>启动事件</template>
<template #trigger_title>触发</template> <template #trigger_title>触发</template>
<template #trigger_con> <template #trigger_con>
<div v-if="showIndex === 0"> <div v-if="showIndex === 0">
&nbsp;&nbsp; &nbsp;&nbsp;
...@@ -18,10 +18,7 @@ ...@@ -18,10 +18,7 @@
</div> </div>
</template> </template>
</StepTab> </StepTab>
<div class="main_content_btn"> <div class="main_content_btn"></div>
<!-- <div class="step_prev step_btn" @click="handlePrev">上一步</div>
<div class="step_next step_btn" @click="handleNext">下一步</div> -->
</div>
</div> </div>
</template> </template>
<script> <script>
......
...@@ -6,8 +6,7 @@ ...@@ -6,8 +6,7 @@
</template> </template>
<script> <script>
import CardList from '@/components/base/CardList.vue' import CardList from '@/components/base/CardList.vue'
// import stepONeStep from '@/utils/stepOne'
// import { cacheReport } from '../../api'
export default { export default {
components: { components: {
CardList CardList
......
...@@ -4,42 +4,17 @@ ...@@ -4,42 +4,17 @@
<template #plan_title>计划类型</template> <template #plan_title>计划类型</template>
<template #trigger_title>触发条件</template> <template #trigger_title>触发条件</template>
<template #trigger_con> <template #trigger_con>
<div v-if="showIndex === 0"> <div v-if="showIndex === 0">立刻对目标用户进行触达</div>
&nbsp;&nbsp; <div v-if="showIndex === 1">立刻对目标用户进行触达</div>
<el-date-picker v-model="times" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd">
</el-date-picker>
&nbsp;&nbsp;
<el-time-picker v-model="times2" arrow-control placeholder="选择时间" size="mini" value-format="HH:mm:ss">
</el-time-picker>
&nbsp;&nbsp;对目标用户进行触达
</div>
<div v-if="showIndex === 1">
<ChatTodoList :form="stepTwoList" />
</div>
</template> </template>
</StepTab> </StepTab>
<div class="main_content_btn"> <div class="main_content_btn"></div>
<!-- <div class="step_prev step_btn" @click="handlePrev">上一步</div>
<div class="step_next step_btn" @click="handleNext">下一步</div> -->
</div>
</div> </div>
</template> </template>
<script> <script>
import StepTab from '@/components/base/StepTab.vue' import StepTab from '@/components/base/StepTab.vue'
import ChatTodoList from './ChatTodoList.vue'
export default { export default {
components: { StepTab, ChatTodoList }, components: { StepTab },
props: {
stepTwoList: {
type: Array
},
time: {
type: String
},
time2: {
type: String
}
},
data() { data() {
return { return {
...@@ -62,34 +37,10 @@ export default { ...@@ -62,34 +37,10 @@ export default {
] ]
} }
}, },
mounted() {
// console.log(this.time, 'time')
this.times = this.time
this.times2 = this.time2
// console.log(this.stepTwoList, '9999')
},
methods: { methods: {
handleTab(index) { handleTab(index) {
this.showIndex = index this.showIndex = index
},
handlePrev() {
this.$parent.$parent.handlePrev()
},
handleStepTwo() {
console.log(this.times)
this.$emit('getTime', this.times, this.times2)
// this.$emit('getTime', this.times)
let flag = true
this.stepTwoList[0].form.triggerList.forEach(item => {
if (item.triggerValue === '' || this.times === '' || this.times2 === '') {
flag = false
}
})
if (!flag) {
this.$message.warning('请完善改步骤后才能进入下一步')
}
return flag
} }
} }
} }
......
<template>
<div class="main_con">
<div class="main_con_add" @click="handleAdd">
<img src="https://webapp-pub.ezijing.com/x-training-new/bg_add.png" alt="" />
添加
</div>
<div class="main_con_optionList">
<div class="optionList_left">
<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[0].form">
<div v-for="(item, indexB) in list" :key="indexB">
<el-form-item>
<span class="optionList_right_text">当用户做过</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<el-select v-model="item.triggerValue">
<el-option
v-for="it in item.list"
:key="it.value"
:label="it.label"
:value="it.value"
:disabled="it.disabled"
>
</el-option>
</el-select>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="optionList_right_text">对目标用户进行触达</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</el-form-item>
<el-form-item>
<img
src="https://webapp-pub.ezijing.com/x-training-new/btn_del.png"
@click="handleDelete(item, indexB)"
/>
</el-form-item>
</div>
</el-form>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
form: {
type: Array,
default: () => {}
}
},
data() {
return {}
},
mounted() {
console.log(this.form, '----')
},
computed: {
list() {
return this.form[0].form.triggerList.map(item => {
item.list = item.list.map(i => {
i.disabled = !!this.form[0].form.triggerList.find(item => item.triggerValue === i.value)
return i
})
return item
})
}
},
methods: {
handleAdd() {
console.log('000')
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[0].form.triggerList.push(item)
} else {
this.$message.warning('添加项不能超过下拉选项个数')
}
},
handleDelete(item, indexB) {
if (this.form[0].form.triggerList.length > 1) {
// eslint-disable-next-line vue/no-mutating-props
this.form[0].form.triggerList.splice(indexB, 1)
} else {
this.$message.warning('默认至少有一条数据')
}
}
}
}
</script>
<style lang="scss" scoped>
.main_con {
display: flex;
flex-direction: column;
.main_con_add {
align-self: flex-end;
padding: 0 130px 30px 0;
}
.main_con_optionList {
display: flex;
.optionList_left {
position: relative;
display: flex;
flex-direction: column;
.optionList_left_line {
width: 0px;
height: 85px;
border: 1px solid #c5c5c5;
opacity: 1;
}
.optionList_left_text {
border-radius: 50%;
width: 25px;
height: 25px;
background: #fff;
border: 1px solid #c5c5c5;
text-align: center;
font-size: 14px;
font-weight: 400;
line-height: 25px;
color: #49bba2;
margin-left: -12px;
margin-top: -60px;
}
}
.optionList_right {
margin-left: 16px;
.el-form-item {
padding-top: 0;
.optionList_right_text {
font-size: 16px;
font-weight: 400;
color: #333333;
}
.optionList_right_del {
width: 12px;
height: 12px;
opacity: 1;
}
}
}
}
}
</style>
...@@ -17,8 +17,8 @@ const routes = [ ...@@ -17,8 +17,8 @@ const routes = [
component: () => import('./views/App.vue') component: () => import('./views/App.vue')
}, },
{ {
path: '/market-tools/tool', path: '/market-tools/douYin',
component: () => import('./views/Tool.vue') component: () => import('./views/DouYin.vue')
}, },
{ {
path: '/market-tools/sms', path: '/market-tools/sms',
......
...@@ -63,7 +63,9 @@ export default { ...@@ -63,7 +63,9 @@ export default {
this.listIndex = n this.listIndex = n
}, },
handleTool() { handleTool() {
if (this.listIndex === 1) { if (this.listIndex === 0) {
this.$router.push('/market-tools/douYin')
} else if (this.listIndex === 1) {
this.$router.push('/market-tools/mail') this.$router.push('/market-tools/mail')
} else if (this.listIndex === 2) { } else if (this.listIndex === 2) {
this.$router.push('/market-tools/app') this.$router.push('/market-tools/app')
......
...@@ -10,15 +10,7 @@ ...@@ -10,15 +10,7 @@
:stepOneList="stepOneList" :stepOneList="stepOneList"
ref="mailStepOne" ref="mailStepOne"
/> />
<ChatStepTwo <ChatStepTwo v-if="activeStep === 1" class="pt-50" />
v-if="activeStep === 1"
class="pt-50"
:stepTwoList="stepTwoList"
:time="time"
:time2="time2"
@getTime="getTime"
ref="mailStepTwo"
/>
<div class="main_content_btn"> <div class="main_content_btn">
<div class="step_prev step_btn" @click="handlePrev" v-if="activeStep > 0">上一步</div> <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 < 2">下一步</div> <div class="step_next step_btn" @click="handleNext" v-if="activeStep >= 0 && activeStep < 2">下一步</div>
...@@ -32,7 +24,6 @@ ...@@ -32,7 +24,6 @@
<script> <script>
import stepOne from '@/utils/stepOne' import stepOne from '@/utils/stepOne'
import stepTwo from '@/utils/stepTwo'
import { cacheReport, getReportDetail, checkRecord } from '../api' import { cacheReport, getReportDetail, checkRecord } from '../api'
import ToolCard from '@/components/base/ToolCard.vue' import ToolCard from '@/components/base/ToolCard.vue'
import ChatStepOne from '../components/weChat/ChatStepOne.vue' import ChatStepOne from '../components/weChat/ChatStepOne.vue'
...@@ -49,39 +40,26 @@ export default { ...@@ -49,39 +40,26 @@ export default {
return { return {
activeStep: 0, activeStep: 0,
stepOneList: [], stepOneList: [],
stepTwoList: [], caseId: ''
time: '',
caseId: '',
times: '',
times2: '',
time2: ''
} }
}, },
methods: { methods: {
// 获取第二步时间
getTime(val, val2) {
this.time = val
this.time2 = val2
},
// 上一步 // 上一步
handlePrev() { handlePrev() {
if (this.$refs.mailStepTwo.handleStepTwo()) { const reports = {
const reports = { activeStep: this.activeStep,
activeStep: this.activeStep, type: 5,
type: 5, commit_report: [
commit_report: [ { stepOneList: this.stepOneList },
{ stepOneList: this.stepOneList }, { form: this.stepTwoList },
{ form: this.stepTwoList }, { time: this.time, time2: this.time2 }
{ time: this.time, time2: this.time2 } ]
]
}
cacheReport(this.$store.state.case.id, { reports: JSON.stringify(reports) }).then(res => {
this.caseId = res.data.id
this.activeStep--
})
console.log(this.stepOneList, 'this.stepOneList')
} }
cacheReport(this.$store.state.case.id, { reports: JSON.stringify(reports) }).then(res => {
this.caseId = res.data.id
this.activeStep--
})
}, },
// 下一步 // 下一步
handleNext() { handleNext() {
...@@ -91,20 +69,14 @@ export default { ...@@ -91,20 +69,14 @@ export default {
this.handleStep(0) this.handleStep(0)
} }
} else if (this.activeStep === 1) { } else if (this.activeStep === 1) {
if (this.$refs.mailStepTwo.handleStepTwo()) { this.handleStep(1)
this.handleStep(1)
}
} }
}, },
handleStep(val) { handleStep(val) {
const reports = { const reports = {
activeStep: parseInt(val), activeStep: parseInt(val),
type: 5, type: 5,
commit_report: [ commit_report: [{ stepOneList: this.stepOneList }]
{ stepOneList: this.stepOneList },
{ form: this.stepTwoList },
{ time: this.times, time2: this.times2 }
]
} }
cacheReport(this.$store.state.case.id, { reports: JSON.stringify(reports) }).then(res => { cacheReport(this.$store.state.case.id, { reports: JSON.stringify(reports) }).then(res => {
this.caseId = res.data.id this.caseId = res.data.id
...@@ -122,25 +94,16 @@ export default { ...@@ -122,25 +94,16 @@ export default {
if (res.data.detail.answer.type === 5) { if (res.data.detail.answer.type === 5) {
this.activeStep = res.data.detail.answer.activeStep this.activeStep = res.data.detail.answer.activeStep
this.stepOneList = res.data.detail.answer.commit_report[0].stepOneList this.stepOneList = res.data.detail.answer.commit_report[0].stepOneList
this.time = res.data.detail.answer.commit_report[2].time || ''
this.time2 = res.data.detail.answer.commit_report[2].time2 || ''
this.stepTwoList = res.data.detail.answer.commit_report[1].form
console.log(this.times, '222')
console.log(this.activeStep, 'activeStep', this.stepOneList, '---', '123')
} }
}) })
}, },
// 验证是否有未完成的答题记录 // 验证是否有未完成的答题记录
checkRecord() { checkRecord() {
checkRecord(this.$store.state.case.id, 2).then(res => { checkRecord(this.$store.state.case.id, 2).then(res => {
console.log(res, 'res000')
if (res.data.status === true) { if (res.data.status === true) {
const answerList = res.data.items.filter(item => item.type === 5) const answerList = res.data.items.filter(item => item.type === 5)
if (res.data.items.length && answerList.length) { if (res.data.items.length && answerList.length) {
this.stepOneList = answerList[0].answer.commit_report[0].stepOneList this.stepOneList = answerList[0].answer.commit_report[0].stepOneList
this.stepTwoList = answerList[0].answer.commit_report[1].form
this.time = answerList[0].answer.commit_report[2].time || ''
this.time2 = answerList[0].answer.commit_report[2].time2 || ''
} else { } else {
this.initStepList() this.initStepList()
} }
...@@ -150,12 +113,8 @@ export default { ...@@ -150,12 +113,8 @@ export default {
}) })
}, },
// 初始化步骤列表 // 初始化步骤列表
initStepList() { initStepList() {
this.stepOneList = stepOne this.stepOneList = stepOne
this.stepTwoList = stepTwo
this.time = this.times
this.time2 = this.times2
} }
}, },
mounted() { mounted() {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论