|
@@ -9,6 +9,7 @@
|
|
|
<view style="padding: 30rpx;padding-bottom: 98rpx;">
|
|
|
<uni-swipe-action>
|
|
|
<u-checkbox-group
|
|
|
+ @change="checkboxGroupChange"
|
|
|
placement="column">
|
|
|
<view>
|
|
|
<uni-swipe-action-item :autoClose="false" @change="swipeChange($event, item)" :show="item.show" v-for="(item,index) in list" :key="index" >
|
|
@@ -37,10 +38,16 @@
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
- <u-line color="#D6D6DB" />
|
|
|
- <view style="display: flex;justify-content: space-between;align-items: center;height: 50rpx;" @click="openPopup(index)">
|
|
|
- <view style="color: #666666;font-size: 24rpx;margin-left: 60rpx;">选择班级</view>
|
|
|
- <view><u-icon name="arrow-right" color="#999999" size="28"></u-icon></view>
|
|
|
+ <view v-if="item.templateType!=null">
|
|
|
+ <u-line color="#D6D6DB" />
|
|
|
+ <view v-if="item.templateType=='class'" style="display: flex;justify-content: space-between;align-items: center;height: 50rpx;" @click="openPopup(0,item,index)">
|
|
|
+ <view style="color: #666666;font-size: 24rpx;">{{!item.gradObj.className?'选择班级':item.gradObj.className}}</view>
|
|
|
+ <view><u-icon name="arrow-right" color="#999999" size="28"></u-icon></view>
|
|
|
+ </view>
|
|
|
+ <view v-if="item.templateType=='apply'" style="display: flex;justify-content: space-between;align-items: center;height: 50rpx;" @click="openPopup(1,item,index)">
|
|
|
+ <view style="color: #666666;font-size: 24rpx;" >{{!item.applyAreas.areaName?'报考地区':item.examDate.examineName+'-'+item.applyAreas.areaName+'-'+item.applyAreas.cityName}}</view>
|
|
|
+ <view><u-icon name="arrow-right" color="#999999" size="28"></u-icon></view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -75,83 +82,81 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
-
|
|
|
- <u-popup v-model="show" mode="bottom"border-radius="40">
|
|
|
- <view class="popup_box">
|
|
|
- <view style="margin-bottom: 20rpx;">
|
|
|
- <view class="line1"></view>
|
|
|
- <view class="grade">选择班级</view>
|
|
|
- </view>
|
|
|
- <u-line color="#D6D6DB" />
|
|
|
- <view>
|
|
|
- <scroll-view scroll-y="true" style="height: 500rpx;">
|
|
|
- <view>
|
|
|
- <u-checkbox-group @change="checkboxGroupChange1">
|
|
|
- <view v-for="(item, index) in list" :key="index" >
|
|
|
- <view style="display: flex;align-items: center;padding: 20rpx;">
|
|
|
+ <u-popup v-model="show" mode="bottom"border-radius="40">
|
|
|
+ <view class="popup_box">
|
|
|
+ <view style="margin-bottom: 20rpx;">
|
|
|
+ <view class="line1"></view>
|
|
|
+ <view class="grade">选择班级</view>
|
|
|
+ </view>
|
|
|
+ <u-line color="#D6D6DB" />
|
|
|
+ <view>
|
|
|
+ <scroll-view scroll-y="true" style="height: 500rpx;">
|
|
|
+ <view>
|
|
|
+ <u-radio-group v-model="gradeValue" >
|
|
|
+ <view v-for="(item, index) in gradeList" :key="index" >
|
|
|
+ <view style="display: flex;align-items: center;padding: 20rpx;">
|
|
|
+ <view>
|
|
|
+ <u-radio
|
|
|
+ shape="circle"
|
|
|
+ :name="index"
|
|
|
+ ></u-radio>
|
|
|
+ </view>
|
|
|
+ <view :class="item.checked?'white-box blue-box':'white-box'" >
|
|
|
<view>
|
|
|
- <u-checkbox
|
|
|
- shape="circle"
|
|
|
- @change="checkboxChange1"
|
|
|
- v-model="item.checked"
|
|
|
- :name="item.name"
|
|
|
- ></u-checkbox>
|
|
|
- </view>
|
|
|
- <view :class="item.checked?'white-box blue-box':'white-box'" >
|
|
|
- <view>
|
|
|
- <view class="blackTxt">2021年第1期二级建造师继续教育选修课(市政)标题过长换行显示</view>
|
|
|
- <view class="redTxt">有效期至:2021/11/30</view>
|
|
|
- <view class="redTxt">本班还剩41天将结束学习</view>
|
|
|
- </view>
|
|
|
+ <view class="blackTxt">{{item.className}}</view>
|
|
|
+ <view class="redTxt" v-if="item.classEndTime">有效期至:{{$method.timestampToTime(item.classEndTime)}}</view>
|
|
|
+ <view class="redTxt" v-if="item.classEndTime">本班还剩{{$method.GetRTime(item.classEndTime)}}天将结束学习</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </u-checkbox-group>
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
- </view>
|
|
|
- <view class="confrim-btn">
|
|
|
- <view class="okBtn">确定</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </u-popup>
|
|
|
- <u-popup v-model="show1" mode="bottom"border-radius="40">
|
|
|
- <view class="popup_box">
|
|
|
- <view style="margin-bottom: 20rpx;">
|
|
|
- <view class="line1"></view>
|
|
|
- <view class="grade">选择考期/地区</view>
|
|
|
- </view>
|
|
|
- <u-line color="#D6D6DB" />
|
|
|
- <view style="display: flex;height: 500rpx;">
|
|
|
- <view style="width: 50%;">
|
|
|
- <view class="topTxt">考期</view>
|
|
|
- <view>
|
|
|
- <picker-view :indicator-style="indicatorStyle" :value="value" @change="bindChange" class="picker-view">
|
|
|
- <picker-view-column>
|
|
|
- <view class="picker-item" v-for="(item,index) in list1" :key="index">{{item.label}}</view>
|
|
|
- </picker-view-column>
|
|
|
- </picker-view>
|
|
|
- </view>
|
|
|
+ <u-line color="#D6D6DB" />
|
|
|
+ </view>
|
|
|
+ </u-radio-group>
|
|
|
</view>
|
|
|
- <view style="width: 50%;">
|
|
|
- <view class="topTxt">地区</view>
|
|
|
- <view>
|
|
|
- <picker-view :indicator-style="indicatorStyle" :value="value" @change="bindChange" class="picker-view">
|
|
|
- <picker-view-column>
|
|
|
- <view class="picker-item" v-for="(item,index) in list2" :key="index">{{item.label}}</view>
|
|
|
- </picker-view-column>
|
|
|
- <picker-view-column>
|
|
|
- <view class="picker-item" v-for="(item,index) in list3" :key="index">{{item.label}}</view>
|
|
|
- </picker-view-column>
|
|
|
- </picker-view>
|
|
|
- </view>
|
|
|
+ </scroll-view>
|
|
|
+ </view>
|
|
|
+ <view class="confrim-btn">
|
|
|
+ <view class="okBtn" @click="okPopup(0)">确定</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
+ <u-popup v-model="show1" mode="bottom"border-radius="40">
|
|
|
+ <view class="popup_box">
|
|
|
+ <view style="margin-bottom: 20rpx;">
|
|
|
+ <view class="line1"></view>
|
|
|
+ <view class="grade">选择考期/地区</view>
|
|
|
+ </view>
|
|
|
+ <u-line color="#D6D6DB" />
|
|
|
+ <view style="display: flex;height: 500rpx;">
|
|
|
+ <view style="width: 50%;">
|
|
|
+ <view class="topTxt">考期</view>
|
|
|
+ <view>
|
|
|
+ <picker-view :indicator-style="indicatorStyle" :value="value" @change="bindChangeE" class="picker-view">
|
|
|
+ <picker-view-column>
|
|
|
+ <view class="picker-item" v-for="(item,index) in examine" :key="index">{{item.examineName}}</view>
|
|
|
+ </picker-view-column>
|
|
|
+ </picker-view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="confrim-btn">
|
|
|
- <view class="okBtn">确定</view>
|
|
|
+ <view style="width: 50%;">
|
|
|
+ <view class="topTxt">地区</view>
|
|
|
+ <view>
|
|
|
+ <picker-view :indicator-style="indicatorStyle" :value="value" @change="bindChange" class="picker-view">
|
|
|
+ <picker-view-column>
|
|
|
+ <view class="picker-item" v-for="(item,index) in provinceList" :key="index">{{item.areaName}}</view>
|
|
|
+ </picker-view-column>
|
|
|
+ <picker-view-column>
|
|
|
+ <view class="picker-item" v-for="(item,index) in cityList" :key="index">{{item.areaName}}</view>
|
|
|
+ </picker-view-column>
|
|
|
+ </picker-view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </u-popup>
|
|
|
+ <view class="confrim-btn">
|
|
|
+ <view class="okBtn" @click="okPopup(1)">确定</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
</view>
|
|
|
<view v-show="!isLogin">
|
|
|
<view style="display: flex;align-items:center;flex-direction: column;margin-top: 40%;font-size: 32rpx;">
|
|
@@ -166,64 +171,31 @@
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ gradeValue:-1,
|
|
|
isLogin:false,
|
|
|
allChecked:false,
|
|
|
checkboxValue1:[],
|
|
|
list: [
|
|
|
- ],
|
|
|
- list1:[
|
|
|
- {
|
|
|
- value: '1',
|
|
|
- label: '2021年6月'
|
|
|
- },
|
|
|
- {
|
|
|
- value: '2',
|
|
|
- label: '2021年7月'
|
|
|
- }
|
|
|
- ],
|
|
|
- list1:[
|
|
|
- {
|
|
|
- value: '1',
|
|
|
- label: '2021年6月'
|
|
|
- },
|
|
|
- {
|
|
|
- value: '2',
|
|
|
- label: '2021年7月'
|
|
|
- },
|
|
|
- {
|
|
|
- value: '3',
|
|
|
- label: '2021年8月'
|
|
|
- },
|
|
|
- {
|
|
|
- value: '4',
|
|
|
- label: '2021年9月'
|
|
|
- }
|
|
|
- ],
|
|
|
- list2:[
|
|
|
- {
|
|
|
- value: '1',
|
|
|
- label: '广东'
|
|
|
- },
|
|
|
- {
|
|
|
- value: '2',
|
|
|
- label: '北京'
|
|
|
- }
|
|
|
- ],
|
|
|
- list3:[
|
|
|
- {
|
|
|
- value: '1',
|
|
|
- label: '广州'
|
|
|
- },
|
|
|
- {
|
|
|
- value: '2',
|
|
|
- label: '深圳'
|
|
|
- }
|
|
|
- ],
|
|
|
- value1:'',
|
|
|
+ ],
|
|
|
+ value1:'',
|
|
|
show:false,
|
|
|
show1:false,
|
|
|
totalPrice:0.00,
|
|
|
- isOld:false
|
|
|
+ isOld:false,
|
|
|
+ checkboxList:[],
|
|
|
+ gradeList:[],
|
|
|
+ examine:[],
|
|
|
+ provinceList:[],
|
|
|
+ cityList:[],
|
|
|
+ detail:{},
|
|
|
+ detailIndex:-1,
|
|
|
+ applyObj:{
|
|
|
+ applyAreasJson:null,
|
|
|
+ examDateJson:null
|
|
|
+ },
|
|
|
+ pAreaIndex:0,
|
|
|
+ cAreaIndex:0,
|
|
|
+ examIndex:0,
|
|
|
}
|
|
|
},
|
|
|
onLoad(option) {
|
|
@@ -242,6 +214,173 @@
|
|
|
|
|
|
},
|
|
|
methods: {
|
|
|
+ bindChangeE(e){
|
|
|
+ console.log(e.detail.value)
|
|
|
+ this.examIndex = e.detail.value[0]
|
|
|
+ },
|
|
|
+ bindChange(e) {
|
|
|
+ const val = e.detail.value
|
|
|
+ if(this.pAreaIndex!=e.detail.value[0]){
|
|
|
+ this.pAreaIndex = e.detail.value[0]
|
|
|
+ this.getCityList(this.provinceList[this.pAreaIndex].areaId)
|
|
|
+ }
|
|
|
+ if(this.cAreaIndex!=e.detail.value[1]){
|
|
|
+ this.cAreaIndex = e.detail.value[1]
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ checkAreaData(){
|
|
|
+ if(this.examine.length==0){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择考期',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if(this.provinceList.length==0){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择报考地区',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if(this.cityList.length==0){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择报考地区',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ },
|
|
|
+ checkData(){
|
|
|
+ if(this.detail.templateType=='class'){
|
|
|
+ if(this.gradeValue<0){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择班级',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(this.detail.templateType=='apply'){
|
|
|
+ if(!this.applyObj.applyAreasJson){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择报考地区',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if(!this.applyObj.examDateJson){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择考期',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+ //弹出框确定
|
|
|
+ okPopup(index){
|
|
|
+ if(index==0){
|
|
|
+ if(!this.checkData()){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.gradeIndex = this.gradeValue
|
|
|
+ this.list[this.detailIndex].gradObj = this.gradeList[this.gradeIndex] //商品赋值选中班级
|
|
|
+ this.show = false
|
|
|
+ }else{
|
|
|
+ if(!this.checkAreaData()){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.examDate = this.examine[this.examIndex]
|
|
|
+ let pData = this.provinceList[this.pAreaIndex]
|
|
|
+ let cData = this.cityList[this.cAreaIndex]
|
|
|
+ this.applyAreas = {areaName:pData.areaName,areaId:pData.areaId,cityId:cData.areaId,cityName:cData.areaName}
|
|
|
+ // this.applyObj.applyAreasJson = JSON.stringify(this.applyAreas)
|
|
|
+ // this.applyObj.examDateJson = JSON.stringify(this.examDate)
|
|
|
+ this.list[this.detailIndex].examDate = this.examDate //商品赋值选中考期地区
|
|
|
+ this.list[this.detailIndex].applyAreas = this.applyAreas //商品赋值选中考期地区
|
|
|
+ this.show1 = false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getExamine(id) {
|
|
|
+ let self = this
|
|
|
+ this.$api.getExamine({projectId:id}).then(res => {
|
|
|
+ if(res.data.code==200){
|
|
|
+ self.examine = res.data.rows
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getCityList(id) {
|
|
|
+ let self = this
|
|
|
+ this.$api.getCityList({parentId:id}).then(res => {
|
|
|
+ if(res.data.code==200){
|
|
|
+ self.cityList = res.data.rows
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getProvinceList() {
|
|
|
+ let self = this
|
|
|
+ if(self.provinceList.length>0){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.$api.getProvinceList().then(res => {
|
|
|
+ if(res.data.code==200){
|
|
|
+ self.provinceList = res.data.rows
|
|
|
+ if(self.provinceList.length>0){
|
|
|
+ self.getCityList(self.provinceList[0].areaId)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ goodsGradeList(goodsId) {
|
|
|
+ let self = this
|
|
|
+ this.$api.goodsGradeList({goodsId:goodsId}).then(res => {
|
|
|
+ if(res.data.code==200){
|
|
|
+ self.gradeList = res.data.rows
|
|
|
+ if(self.gradeList.length==0){
|
|
|
+ let item = {
|
|
|
+ className:'系统分班',
|
|
|
+ gradeId:0
|
|
|
+ }
|
|
|
+ self.gradeList.push(item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ openPopup(index,item,itemIndex){
|
|
|
+ this.detail = item
|
|
|
+ this.detailIndex = itemIndex
|
|
|
+ if(index==0){
|
|
|
+ this.gradeValue = -1
|
|
|
+ this.show = true
|
|
|
+ this.goodsGradeList(item.goodsId)
|
|
|
+ }else{
|
|
|
+ this.applyObj={
|
|
|
+ applyAreasJson:null,
|
|
|
+ examDateJson:null
|
|
|
+ }
|
|
|
+ this.pAreaIndex=0,
|
|
|
+ this.cAreaIndex=0,
|
|
|
+ this.examIndex=0,
|
|
|
+ this.show1 = true
|
|
|
+ this.getProvinceList()
|
|
|
+ this.getExamine(item.projectId)
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ checkboxGroupChange(e){
|
|
|
+ this.checkboxList = e
|
|
|
+ },
|
|
|
countPrice(list){
|
|
|
|
|
|
},
|
|
@@ -256,6 +395,7 @@
|
|
|
let self = this
|
|
|
this.allChecked = false
|
|
|
this.totalPrice = 0.00
|
|
|
+ this.checkboxList =[]
|
|
|
this.$api.cartList().then(res => {
|
|
|
if(res.data.code==200){
|
|
|
for (let i = 0; i < res.data.rows.length; i++) {
|
|
@@ -267,6 +407,9 @@
|
|
|
item.disabled = false
|
|
|
}
|
|
|
item.show = false
|
|
|
+ item.gradObj = {} //存储班级
|
|
|
+ item.applyAreas = {}
|
|
|
+ item.examDate = {}
|
|
|
}
|
|
|
self.list = res.data.rows
|
|
|
}
|
|
@@ -284,6 +427,38 @@
|
|
|
item.show = e;
|
|
|
},
|
|
|
goBuy(){
|
|
|
+ if(this.checkboxList.length==0){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择商品',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for(let i =0;i<this.checkboxList.length;i++){
|
|
|
+ let index = this.checkboxList[i]
|
|
|
+ let item = this.list[index]
|
|
|
+ if(item.templateType=='class'){
|
|
|
+ if(!item.gradObj.className){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择班级',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(item.templateType=='apply'){
|
|
|
+ if(!item.applyAreas.areaName){
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: '请选择报考地区',
|
|
|
+ showCancel: false
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
this.$navTo.togo('/pages2/order/confirm_pay');
|
|
|
},
|
|
|
checkboxChange(n) {
|
|
@@ -294,24 +469,19 @@
|
|
|
this.totalPrice -= this.list[n.name].standPrice
|
|
|
}
|
|
|
},
|
|
|
- openPopup(index){
|
|
|
- if(index==0){
|
|
|
- this.show = true
|
|
|
- }else{
|
|
|
- this.show1 = true
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
checkboxAllChange(n){
|
|
|
this.totalPrice = 0.00
|
|
|
+ this.checkboxList = []
|
|
|
if(n.value){
|
|
|
for(let i =0;i<this.list.length;i++){
|
|
|
this.list[i].checked = true
|
|
|
this.totalPrice += this.list[i].standPrice
|
|
|
+ this.checkboxList.push(i)
|
|
|
}
|
|
|
}else{
|
|
|
for(let i =0;i<this.list.length;i++){
|
|
|
this.list[i].checked = false
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -371,7 +541,6 @@
|
|
|
}
|
|
|
.white-box{
|
|
|
width: 646rpx;
|
|
|
- height: 220rpx;
|
|
|
border-radius: 24rpx;
|
|
|
align-items: center;
|
|
|
display: flex;
|