获取移动端活动对应产品列表--主险列表区分:活动下的产品和普通产品

This commit is contained in:
liyuetong
2021-07-09 17:53:27 +08:00
parent 3949ca217b
commit af85db0524
4 changed files with 151 additions and 71 deletions

View File

@@ -19,6 +19,15 @@ export function mainRiskList(data) {
}) })
} }
//移动端活动对应产品列表
export function getActProductList(data) {
return request({
url: getUrl(`/sale/activity/getActProductList`, 1),
// url: getUrl(`/${localStorage.isFrom}/product/getMainRiskLst`, 1),
method: 'post',
data
})
}
//试算 //试算
export function trial(data) { export function trial(data) {
return request({ return request({

View File

@@ -281,3 +281,11 @@ export function saveOrderActiveType(data) {
data data
}) })
} }
// 移动端活动列表
export function getActivityList(data) {
return request({
url: getUrl('/sale/activity/getActivityList', 1),
method: 'post',
data
})
}

View File

@@ -2,7 +2,8 @@
<div class="main-risk-list-container pt10 redRadioCheckbox"> <div class="main-risk-list-container pt10 redRadioCheckbox">
<van-radio-group v-model="result"> <van-radio-group v-model="result">
<van-cell-group> <van-cell-group>
<van-cell v-for="(item, index) in list" clickable @click="result = item" :key="index" v-show="checkItemShow(item)"> <!-- <van-cell v-for="(item, index) in list" clickable @click="result = item" :key="index" v-show="checkItemShow(item)"> -->
<van-cell v-for="(item, index) in list" clickable @click="result = item" :key="index">
<p slot="default"> <p slot="default">
<van-tag plain class="green fs12 mr10">{{ item.productType }}</van-tag> <van-tag plain class="green fs12 mr10">{{ item.productType }}</van-tag>
<span class="c-gray-dark fs14">{{ item.riskName }}</span> <span class="c-gray-dark fs14">{{ item.riskName }}</span>
@@ -17,7 +18,7 @@
</template> </template>
<script> <script>
import { Cell, CellGroup, Tag, Radio, RadioGroup } from 'vant' import { Cell, CellGroup, Tag, Radio, RadioGroup } from 'vant'
import { mainRiskList, calculatePremium } from '@/api/ebiz/common/common' import { mainRiskList, calculatePremium,getActProductList } from '@/api/ebiz/common/common'
import { getOrderDetail } from '@/api/ebiz/sale/sale' import { getOrderDetail } from '@/api/ebiz/sale/sale'
import riskRules from './risk-rules' import riskRules from './risk-rules'
@@ -39,7 +40,8 @@ export default {
delList: [], delList: [],
radioVal: '', radioVal: '',
isFrom: localStorage.isFrom, isFrom: localStorage.isFrom,
activeFlag: '' activeFlag: '',
isActivityCode:'' //activityCode 有值的话代表是活动,无值代表是普通产品
} }
}, },
async mounted() { async mounted() {
@@ -61,41 +63,60 @@ export default {
} }
// ------------------------专为桂/惠企写死--end---------------// // ------------------------专为桂/惠企写死--end---------------//
// 处理活动产品 // 处理活动产品
this.activeFlag = res.orderDTO.orderInfoDTO.activeType // this.activeFlag = res.orderDTO.orderInfoDTO.activeType
//isActivityCode 有值代表是活动,无值代表是普通产品
this.isActivityCode = res.orderDTO.orderInfoDTO.activityCode
} }
resolve(this.getMainRiskList()) resolve(this.isActivityCodeFunc())
}, },
error => { error => {
reject(this.getMainRiskList()) reject(this.isActivityCodeFunc())
} }
) )
}) })
} else { } else {
this.getMainRiskList() this.isActivityCodeFunc()
} }
}, },
methods: { methods: {
checkItemShow(item) { // checkItemShow(item) {
if (this.activeFlag != 'KMH' && this.activeFlag != 'SQY') { // if (this.activeFlag != 'KMH' && this.activeFlag != 'SQY') {
return true // return true
} // }
let showFlag = false // let showFlag = false
if (item.activeLst && item.activeLst.length > 0) { // if (item.activeLst && item.activeLst.length > 0) {
item.activeLst.forEach(subItem => { // item.activeLst.forEach(subItem => {
if (this.activeFlag && this.activeFlag == 'KMH') { // if (this.activeFlag && this.activeFlag == 'KMH') {
if (subItem == 'KMH') { // if (subItem == 'KMH') {
showFlag = true; // showFlag = true;
} // }
}else if (this.activeFlag && this.activeFlag == 'SQY') { // }else if (this.activeFlag && this.activeFlag == 'SQY') {
if (subItem == 'SQY') { // if (subItem == 'SQY') {
showFlag = true; // showFlag = true;
} // }
} // }
}) // })
} // }
return showFlag // return showFlag
// },
isActivityCodeFunc(){
//isActivityCode 有值代表是活动,无值代表是普通产品
if(this.isActivityCode){
this.getActProductListFunc()
}else{
this.getMainRiskList()
}
}, },
//获取主险列表 //获取主险列表--活动下的产品
async getActProductListFunc() {
let res = await getActProductList({
activityCode:this.isActivityCode
})
if (res.result == 0) {
this.list = res.content
}
},
//获取主险列表--普通产品
async getMainRiskList() { async getMainRiskList() {
let mainRiskCodes = localStorage.mainRiskCodes && JSON.parse(localStorage.mainRiskCodes) let mainRiskCodes = localStorage.mainRiskCodes && JSON.parse(localStorage.mainRiskCodes)
let mainListDate = { platform: 'app' } let mainListDate = { platform: 'app' }

View File

@@ -33,7 +33,7 @@
</div> </div>
</div> </div>
<van-dialog v-model="active_show" :show-confirm-button="false" class="dialog_class" style="position: relative; overflow: visible;"> <!-- <van-dialog v-model="active_show" :show-confirm-button="false" class="dialog_class" style="position: relative; overflow: visible;">
<img class="icon_image" src="@/assets/images/kmh/close_bg.png" @click="active_show = false" /> <img class="icon_image" src="@/assets/images/kmh/close_bg.png" @click="active_show = false" />
<div class="pl20 pr20 mt30"> <div class="pl20 pr20 mt30">
<div class="flex justify-content-c align-items-c"> <div class="flex justify-content-c align-items-c">
@@ -58,25 +58,18 @@
</van-radio> </van-radio>
</van-radio-group> </van-radio-group>
<div class="flex justify-content-c align-items-c click_buttons"> <div class="flex justify-content-c align-items-c click_buttons">
<img class="icon_click_image" src="@/assets/images/kmh/click_bg.png" @click="comfirmCheckActive('KMH')" /> <img class="icon_click_image" src="@/assets/images/kmh/click_bg.png" @click="comfirmCheckActive('KMH')" /> -->
<!--<van-button type="danger" class="dialog-comfirm-button" @click="comfirmCheckActive" v-no-more-click="1000">确认</van-button>--> <!--<van-button type="danger" class="dialog-comfirm-button" @click="comfirmCheckActive" v-no-more-click="1000">确认</van-button>-->
</div> <!-- </div>
</div> </div>
</van-dialog> </van-dialog> -->
<van-dialog v-model="active_sqy_show" :show-confirm-button="false" style="position: relative; overflow: visible;"> <van-dialog v-model="active_sqy_show" :show-confirm-button="false" style="position: relative; overflow: visible;">
<img class="icon_image_close" src="@/assets/images/kmh/close_bg.png" @click="active_sqy_show = false" /> <img class="icon_image_close" src="@/assets/images/kmh/close_bg.png" @click="active_sqy_show = false" />
<div class="pl20 pr20 mt30 mb10"> <div class="pl20 pr20 mt30 mb10">
<van-radio-group v-model="active_sqy_radio" style="align-items: center;padding-top: 20px"> <div style="font-weight: bolder;padding-top: 20px;">请选择</div>
<div style="font-weight: bolder">请选择</div> <van-radio-group v-model="active_sqy_radio" style="align-items: center;height: 350px;overflow-y: scroll;">
<van-radio name="1" class="radio_class ml60"> <!-- 普通产品页面写死不加入数据循环目的解决默认选择普通产品 -->
<template #icon="props"> <van-radio name="0" class="radio_class ml60">
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
</template>
<div class="flex justify-content-fs align-items-c pl5">
指定生效日产品
</div>
</van-radio>
<van-radio name="2" class="radio_class ml60">
<template #icon="props"> <template #icon="props">
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" /> <img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
</template> </template>
@@ -84,10 +77,30 @@
普通产品 普通产品
</div> </div>
</van-radio> </van-radio>
<div v-for="(item, index) in activityList" :value="item.activityName" :key="index">
<van-radio :name="index" class="radio_class ml60" v-if="index != 0">
<template #icon="props">
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
</template>
<div class="flex justify-content-fs align-items-c pl5">
{{item.activityName}}
</div>
</van-radio>
</div>
<!-- <van-radio name="2" class="radio_class ml60">
<template #icon="props">
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
</template>
<div class="flex justify-content-fs align-items-c pl5">
普通产品
</div>
</van-radio> -->
</van-radio-group> </van-radio-group>
<div class="flex justify-content-c align-items-c click_buttons"> <div class="flex justify-content-c align-items-c click_buttons">
<!--<img class="icon_click_image" src="@/assets/images/kmh/click_bg.png" @click="comfirmCheckActive" />--> <!--<img class="icon_click_image" src="@/assets/images/kmh/click_bg.png" @click="comfirmCheckActive" />-->
<van-button type="danger" class="dialog-comfirm-button" @click="comfirmCheckActive('SQY')" v-no-more-click="1000">确认</van-button> <!-- <van-button type="danger" class="dialog-comfirm-button" @click="comfirmCheckActive('SQY')" v-no-more-click="1000">确认</van-button> -->
<van-button type="danger" class="dialog-comfirm-button" @click="comfirmCheckActive()" v-no-more-click="1000">确认</van-button>
</div> </div>
</div> </div>
</van-dialog> </van-dialog>
@@ -108,7 +121,7 @@ import FieldPicker from '@/components/ebiz/FieldPicker'
import { orderDetail, deleteOrderInfo } from '@/api/ebiz/common/common' import { orderDetail, deleteOrderInfo } from '@/api/ebiz/common/common'
import { formatAllRisk } from '@/assets/js/utils/formatRiskList' import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
import { getDetail, deleteProposal } from '@/api/ebiz/proposal/proposal.js' import { getDetail, deleteProposal } from '@/api/ebiz/proposal/proposal.js'
import { getOrderActiveInfo, saveOrderActiveType } from '@/api/ebiz/sale/sale.js' import { saveOrderActiveType,getActivityList } from '@/api/ebiz/sale/sale.js'
import utilsAge from '@/assets/js/utils/age' import utilsAge from '@/assets/js/utils/age'
import IndexBar from '@/components/ebiz/sale/IndexBar' import IndexBar from '@/components/ebiz/sale/IndexBar'
@@ -125,8 +138,10 @@ export default {
salePageFlag: '3', salePageFlag: '3',
active_show: false, active_show: false,
active_sqy_show:false, active_sqy_show:false,
activityList:[
], //活动列表
active_radio: '1', active_radio: '1',
active_sqy_radio: '1', active_sqy_radio: '0',
checkedUrl: require('@/assets/images/kmh/checked.png'), checkedUrl: require('@/assets/images/kmh/checked.png'),
noCheckedUrl: require('@/assets/images/kmh/no_checked.png'), noCheckedUrl: require('@/assets/images/kmh/no_checked.png'),
proposalOrderNo:'' proposalOrderNo:''
@@ -419,13 +434,50 @@ export default {
async addProduct() { async addProduct() {
// 1、处理判断活动 1、电投流程 2、后端接口提供弹出判断 // 1、处理判断活动 1、电投流程 2、后端接口提供弹出判断
if (localStorage.isFrom == 'sale') { if (localStorage.isFrom == 'sale') {
let param = { // let param = {
activeType: 'KMH' // activeType: 'KMH'
} // }
let resultData = await getOrderActiveInfo(param) // let resultData = await getOrderActiveInfo(param)
// if (resultData.result == 0) {
// if (resultData.content.activeFlag != '1') {
// this.active_show = true
// return
// }
// //正常后续跳转流程
// } else {
// this.$toast(resultData.resultMessage)
// return
// }
// // 司庆月活动
// let paramSQY = {
// activeType: 'SQY'
// }
// let SQYResultData = await getOrderActiveInfo(paramSQY)
// if (SQYResultData.result == 0) {
// if (SQYResultData.content.activeFlag != '1') {
// this.active_sqy_show = true
// return
// }
// //正常后续跳转流程
// } else {
// this.$toast(SQYResultData.resultMessage)
// return
// }
let resultData = await getActivityList({})
if (resultData.result == 0) { if (resultData.result == 0) {
if (resultData.content.activeFlag != '1') { if (resultData.content.length) {
this.active_show = true this.activityList = [
{
activityCode:'',
activityName:'普通产品',
isKmh:'',
cvaildateStr:'',
}
]
this.activityList = this.activityList.concat(resultData.content)
this.active_sqy_show = true
return return
} }
//正常后续跳转流程 //正常后续跳转流程
@@ -433,23 +485,6 @@ export default {
this.$toast(resultData.resultMessage) this.$toast(resultData.resultMessage)
return return
} }
// 司庆月活动
let paramSQY = {
activeType: 'SQY'
}
let SQYResultData = await getOrderActiveInfo(paramSQY)
if (SQYResultData.result == 0) {
if (SQYResultData.content.activeFlag != '1') {
this.active_sqy_show = true
return
}
//正常后续跳转流程
} else {
this.$toast(SQYResultData.resultMessage)
return
}
} }
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
@@ -461,19 +496,26 @@ export default {
} }
}) })
}, },
comfirmCheckActive(type) { //选择活动还是普通产品,弹框确认按钮
// comfirmCheckActive(type) {
comfirmCheckActive() {
let param = { let param = {
orderDTO: { orderDTO: {
orderInfoDTO: { orderInfoDTO: {
orderNo: this.$CacheUtils.getLocItem('orderNo'), orderNo: this.$CacheUtils.getLocItem('orderNo'),
activeType: type=='KMH'?this.active_radio == '1'?'KMH':'':type=='SQY'?this.active_sqy_radio=='1'?'SQY':'':'' activeType: this.activityList[this.active_sqy_radio].isKmh,
activityCode: this.activityList[this.active_sqy_radio].activityCode,
cvaliDate : this.activityList[this.active_sqy_radio].cvaildateStr
// activeType: type=='KMH'?this.active_radio == '1'?'KMH':'':type=='SQY'?this.active_sqy_radio=='1'?'SQY':'':''
} }
} }
} }
// 获取订单活动信息
saveOrderActiveType(param).then(res => { saveOrderActiveType(param).then(res => {
this.active_show = false this.active_show = false
this.active_sqy_show = false this.active_sqy_show = false
localStorage.setItem('active_type', type=='KMH'?this.active_radio == '1'?'KMH':'':type=='SQY'?this.active_sqy_radio=='1'?'SQY':'':'') // localStorage.setItem('active_type', type=='KMH'?this.active_radio == '1'?'KMH':'':type=='SQY'?this.active_sqy_radio=='1'?'SQY':'':'')
if (res.result == 0) { if (res.result == 0) {
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',