Commit 91ec018f8f18e34d94a037b015879f873fb5a8cd
1 parent
0cf3eb03
Exists in
master
feat:新版功能基本搭建,等设计稿
Showing
7 changed files
with
125 additions
and
299 deletions
 
Show diff stats
src/main.js
| ... | ... | @@ -7,6 +7,10 @@ import store from './store' | 
| 7 | 7 | import Moment from 'moment' | 
| 8 | 8 | Vue.prototype.Moment = Moment; | 
| 9 | 9 | |
| 10 | +// Vue.prototype.yanxueUrl = 'https://yanxue.myjxt.com'; | |
| 11 | + | |
| 12 | +// import yxAxios from '@/https/yxAxios' | |
| 13 | +// Vue.prototype.yxAxios = yxAxios; | |
| 10 | 14 | |
| 11 | 15 | import { mgop } from '@aligov/jssdk-mgop'; | 
| 12 | 16 | Vue.prototype.mgop = mgop; | ... | ... | 
src/router/index.js
| ... | ... | @@ -33,6 +33,9 @@ import schoolFollow from '@/views/Travel/schoolFollow.vue' //å·²å…³æ³¨å¦æ ¡åˆ—è | 
| 33 | 33 | import schoolAttestation from '@/views/Travel/schoolAttestation.vue' //已认è¯å¦æ ¡åˆ—表 | 
| 34 | 34 | import classAttestation from '@/views/Travel/classAttestation.vue' //已集团æƒé™å¹´çº§ç级列表 | 
| 35 | 35 | |
| 36 | +import YanxuePage from '@/views/Yanxue/YanxuePage.vue' //ç ”å¦ | |
| 37 | +import YanxueDetail from '@/views/Yanxue/YanxueDetail.vue' //ç ”å¦ | |
| 38 | + | |
| 36 | 39 | Vue.use(VueRouter) | 
| 37 | 40 | const [routerPush, routerReplace] = [VueRouter.prototype.push, VueRouter.prototype.replace]; | 
| 38 | 41 | VueRouter.prototype.push = function push(to) { | 
| ... | ... | @@ -119,7 +122,7 @@ const routes = [{ | 
| 119 | 122 | name: 'ServiceOrderXST', | 
| 120 | 123 | component: ServiceOrderXST, | 
| 121 | 124 | meta: { | 
| 122 | - title: '我的订å•' | |
| 125 | + title: '我的评价' | |
| 123 | 126 | } | 
| 124 | 127 | }, | 
| 125 | 128 | { | 
| ... | ... | @@ -250,6 +253,22 @@ const routes = [{ | 
| 250 | 253 | title: '集团认领' | 
| 251 | 254 | } | 
| 252 | 255 | }, | 
| 256 | + { | |
| 257 | + path: '/YanxuePage', | |
| 258 | + name: 'YanxuePage', | |
| 259 | + component: YanxuePage, | |
| 260 | + meta: { | |
| 261 | + title: 'ç ”å¦' | |
| 262 | + } | |
| 263 | + }, | |
| 264 | + { | |
| 265 | + path: '/YanxueDetail', | |
| 266 | + name: 'YanxueDetail', | |
| 267 | + component: YanxueDetail, | |
| 268 | + meta: { | |
| 269 | + title: 'ç ”å¦' | |
| 270 | + } | |
| 271 | + }, | |
| 253 | 272 | |
| 254 | 273 | ] | 
| 255 | 274 | const router = new VueRouter({ | ... | ... | 
src/views/Home/Home.vue
| ... | ... | @@ -20,10 +20,10 @@ | 
| 20 | 20 | </div> | 
| 21 | 21 | <HomeOrder></HomeOrder> | 
| 22 | 22 | <div class="function"> | 
| 23 | - <div class="item" @click="handleMyCard"> | |
| 23 | + <div class="item" @click="handleYanxue"> | |
| 24 | 24 | <div class="left"> | 
| 25 | 25 | <van-icon class="icon" name="discount" /> | 
| 26 | - <span>我的优惠券</span> | |
| 26 | + <span>研学</span> | |
| 27 | 27 | </div> | 
| 28 | 28 | <van-icon name="arrow" /> | 
| 29 | 29 | </div> | 
| ... | ... | @@ -107,9 +107,9 @@ export default { | 
| 107 | 107 | }, | 
| 108 | 108 | }, | 
| 109 | 109 | methods: { | 
| 110 | - // 研学码 | |
| 110 | + | |
| 111 | 111 | handleYanxue() { | 
| 112 | - this.$router.push({ name: 'YanxueCode' }) | |
| 112 | + this.$router.push({ name: 'YanxuePage' }) | |
| 113 | 113 | }, | 
| 114 | 114 | // 我的订单 | 
| 115 | 115 | handleOrder() { | ... | ... | 
src/views/Home/component/HomeOrder.vue
| 1 | 1 | <template> | 
| 2 | 2 | <div class="home_order"> | 
| 3 | 3 | <div class="top"> | 
| 4 | - <p>我的订单</p> | |
| 4 | + <p>我的评价</p> | |
| 5 | 5 | </div> | 
| 6 | 6 | <div class="icon_box"> | 
| 7 | 7 | <!-- <div @click="handleCustom"> | 
| 8 | 8 | <img src="@/assets/home/icon_kq1.png" alt=""> | 
| 9 | 9 | <p>定制研学</p> | 
| 10 | 10 | </div> --> | 
| 11 | - <div @click="handleServiceOrder(0)"> | |
| 11 | + <!-- <div @click="handleServiceOrder(0)"> | |
| 12 | 12 | <img src="@/assets/home/icon_kq2.png" alt=""> | 
| 13 | 13 | <p>待付款</p> | 
| 14 | 14 | </div> | 
| 15 | 15 | <div @click="handleServiceOrder(1)"> | 
| 16 | 16 | <img src="@/assets/home/icon_kq3.png" alt=""> | 
| 17 | 17 | <p>待使用</p> | 
| 18 | - </div> | |
| 19 | - <div @click="handleServiceOrder(2)"> | |
| 20 | - <img src="@/assets/home/icon_kq4.png" alt=""> | |
| 18 | + </div> --> | |
| 19 | + <div @click="handleServiceOrder(0)"> | |
| 20 | + <img src="@/assets/home/icon_kq4.png" alt="" /> | |
| 21 | 21 | <p>待评价</p> | 
| 22 | 22 | </div> | 
| 23 | - <div @click="handleServiceOrder(3)"> | |
| 24 | - <img src="@/assets/home/icon_kq5.png" alt=""> | |
| 23 | + <div @click="handleServiceOrder(1)"> | |
| 24 | + <img src="@/assets/home/icon_kq5.png" alt="" /> | |
| 25 | 25 | <p>已评价</p> | 
| 26 | 26 | </div> | 
| 27 | - | |
| 27 | + <div></div> | |
| 28 | + <div></div> | |
| 29 | + <div></div> | |
| 28 | 30 | </div> | 
| 29 | 31 | </div> | 
| 30 | 32 | </template> | 
| 31 | 33 | <script> | 
| 32 | 34 | export default { | 
| 33 | - props:{ | |
| 34 | - parent:{ | |
| 35 | - type:String, | |
| 36 | - default:'' | |
| 37 | - } | |
| 35 | + props: { | |
| 36 | + parent: { | |
| 37 | + type: String, | |
| 38 | + default: '', | |
| 39 | + }, | |
| 38 | 40 | }, | 
| 39 | 41 | methods: { | 
| 40 | 42 | // 定制研学 | 
| 41 | - handleCustom () { | |
| 42 | - this.$toast('暂未开放,敬请期待!'); | |
| 43 | + handleCustom() { | |
| 44 | + this.$toast('暂未开放,敬请期待!') | |
| 43 | 45 | }, | 
| 44 | - handleServiceOrder (active) { | |
| 46 | + handleServiceOrder(active) { | |
| 45 | 47 | this.$router.push({ name: 'ServiceOrderXST', query: { active: active } }) | 
| 46 | - } | |
| 47 | - } | |
| 48 | + }, | |
| 49 | + }, | |
| 48 | 50 | } | 
| 49 | 51 | </script> | 
| 50 | 52 | <style lang="scss" scoped> | 
| ... | ... | @@ -68,6 +70,9 @@ export default { | 
| 68 | 70 | justify-content: space-between; | 
| 69 | 71 | height: 140px; | 
| 70 | 72 | margin-top: 20px; | 
| 73 | + div{ | |
| 74 | + width: 80px; | |
| 75 | + } | |
| 71 | 76 | img { | 
| 72 | 77 | display: block; | 
| 73 | 78 | width: 62px; | 
| ... | ... | @@ -81,16 +86,16 @@ export default { | 
| 81 | 86 | } | 
| 82 | 87 | </style> | 
| 83 | 88 | <style lang="scss"> | 
| 84 | - .elder{ | |
| 85 | - .home_order{ | |
| 86 | - .top{ | |
| 87 | - p{ | |
| 88 | - font-size: 44px; | |
| 89 | - } | |
| 89 | +.elder { | |
| 90 | + .home_order { | |
| 91 | + .top { | |
| 92 | + p { | |
| 93 | + font-size: 44px; | |
| 90 | 94 | } | 
| 91 | - .icon_box p{ | |
| 92 | - font-size: 34px; | |
| 93 | - } | |
| 95 | + } | |
| 96 | + .icon_box p { | |
| 97 | + font-size: 34px; | |
| 94 | 98 | } | 
| 95 | 99 | } | 
| 96 | -</style> | |
| 97 | 100 | \ No newline at end of file | 
| 101 | +} | |
| 102 | +</style> | ... | ... | 
src/views/Service/ServiceOrderXST.vue
| 1 | 1 | <template> | 
| 2 | 2 | <div class="myOrders"> | 
| 3 | - <!-- <van-nav-bar title="" left-text="返回首页" left-arrow @click-left="back" /> --> | |
| 4 | 3 | <van-tabs v-model="active" :before-change="beforeTabChange"> | 
| 5 | - <van-tab title="待付款"> | |
| 6 | - <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoadpay()"> | |
| 7 | - <div class="showBoxDPJ" v-for="(item,index) in paylist" :key="index"> | |
| 8 | - <div class="topLine"> | |
| 9 | - <div class="topLineL">订单编号:{{item.orderpaynum}}</div> | |
| 10 | - <div class="topLineR" style="color:#F64C37">待付款</div> | |
| 11 | - </div> | |
| 12 | - <div class="top" @click="toEdit(item)"> | |
| 13 | - <div class="pic"> | |
| 14 | - <img :src="item.coverUrl ? item.coverUrl : require('@/assets/service/defCoure.jpg')" alt="" style="width:100%;height:100%"> | |
| 15 | - </div> | |
| 16 | - <div class="basefont"> | |
| 17 | - <div class="titlefont">{{item.baseName}}</div> | |
| 18 | - <div class="tcfont">套餐名称:{{item.courseName}}</div> | |
| 19 | - <div class="tcfont">数量*{{item.orderCount}}</div> | |
| 20 | - </div> | |
| 21 | - <div class="priceRight">¥{{item.paymoney}}</div> | |
| 22 | - </div> | |
| 23 | - <div class="detailsBox"> | |
| 24 | - <div class="detailsBoxOne"> | |
| 25 | - <div>订单创建时间</div> | |
| 26 | - <div>{{item.intime.replace(/T/,' ')}}</div> | |
| 27 | - </div> | |
| 28 | - </div> | |
| 29 | - </div> | |
| 30 | - </van-list> | |
| 31 | - </van-tab> | |
| 32 | - <van-tab title="待使用"> | |
| 33 | - <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoadmove()"> | |
| 34 | - <div class="showBox" v-for="(item,index) in movelist" :key="index"> | |
| 35 | - <div class="top" @click="toEdit(item)"> | |
| 36 | - <div class="pic"> | |
| 37 | - <img :src="item.coverUrl ? item.coverUrl : require('@/assets/service/defCoure.jpg')" alt="" style="width:100%;height:100%"> | |
| 38 | - </div> | |
| 39 | - <div class="basefont"> | |
| 40 | - <div class="titlefont">{{item.baseName}}</div> | |
| 41 | - <div class="tcfont">套餐名称:{{item.courseName}}</div> | |
| 42 | - <div class="tcfont">数量*{{item.orderCount}}</div> | |
| 43 | - </div> | |
| 44 | - <div class="priceRight">¥{{item.paymoney}}</div> | |
| 45 | - </div> | |
| 46 | - <div class="groupTime"> | |
| 47 | - <van-icon name="clock-o" /><span class="grey"> 活动日期</span><span> {{item.startDate}} - {{ item.endDate}}</span> | |
| 48 | - </div> | |
| 49 | - <div class="btnBox"> | |
| 50 | - <div></div> | |
| 51 | - <div> | |
| 52 | - <van-button class="btn" type="warning" plain size="small" @click="showPintuanAbout = true" style="margin-right:15px">退款说明</van-button> | |
| 53 | - <!-- <van-button type="info" size="small" @click="makeCode(item.id)">核销码</van-button> --> | |
| 54 | - <van-button class="btn" type="info" size="small" @click="toCode(item)">核销码</van-button> | |
| 55 | - </div> | |
| 56 | - </div> | |
| 57 | - <div class="detailsBox"> | |
| 58 | - <div class="detailsBoxOne"> | |
| 59 | - <div>订单创建时间</div> | |
| 60 | - <div>{{item.intime.replace(/T/,' ')}}</div> | |
| 61 | - </div> | |
| 62 | - <div class="detailsBoxOne"> | |
| 63 | - <div>订单编号</div> | |
| 64 | - <div>{{item.orderpaynum}}</div> | |
| 65 | - </div> | |
| 66 | - </div> | |
| 67 | - </div> | |
| 68 | - </van-list> | |
| 69 | - </van-tab> | |
| 70 | 4 | <van-tab title="待评价"> | 
| 71 | 5 | <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoadCareer()"> | 
| 72 | 6 | <div class="showBoxDPJ" v-for="(item,index) in datalist" :key="index"> | 
| ... | ... | @@ -132,58 +66,6 @@ | 
| 132 | 66 | </van-tab> | 
| 133 | 67 | </van-tabs> | 
| 134 | 68 | |
| 135 | - <!--二维码--> | |
| 136 | - <!-- <div class="qrcodeBox" @click.self="qrcodeShow = false" v-show="qrcodeShow"> | |
| 137 | - <div id="qrcode"></div> | |
| 138 | - </div> --> | |
| 139 | - | |
| 140 | - <!--退款说明--> | |
| 141 | - <van-popup v-model="showPintuanAbout" round> | |
| 142 | - <div class="pintuan_about"> | |
| 143 | - <img class="about_img" src="@/assets/service/tip.png" alt=""> | |
| 144 | - <p class="about_title">退款说明</p> | |
| 145 | - <div class="about_box"> | |
| 146 | - <p class="about_content">1、凡拼团活动报名人数未达最低成团数,本团活动则不开营,系统将在72小时内,全额退还,且不产生违约风险赔偿。</p> | |
| 147 | - <p class="about_content">2、如果您因行程发生变动需要取消预订,建议您尽可能提前与平台商户取得联系,并按商品订购须知或该商户旅游合同条款进行退款。</p> | |
| 148 | - <p class="about_content" style="font-weight:bold">如若未声明与明确的,按《浙江省境内旅游合同》条款退款。</p> | |
| 149 | - <!-- <p class="about_content">(1)出发前7日至4日,支付旅游费用总额的10%。</p> | |
| 150 | - <p class="about_content">(2)出发前3日至1日,支付旅游费用总额的15%。</p> | |
| 151 | - <p class="about_content">(3)出发当日,支付旅游费用总额的20%。</p> --> | |
| 152 | - </div> | |
| 153 | - <p class="about_know" @click="showPintuanAbout=false">我知道了</p> | |
| 154 | - </div> | |
| 155 | - </van-popup> | |
| 156 | - | |
| 157 | - <van-popup v-model="showCode" round get-container="body"> | |
| 158 | - <div class="codeCss"> | |
| 159 | - <div class="showBox"> | |
| 160 | - <div class="top"> | |
| 161 | - <div class="pic"> | |
| 162 | - <img :src="codeData.coverUrl ? codeData.coverUrl : require('@/assets/service/defCoure.jpg')" alt="" style="width:100%;height:100%"> | |
| 163 | - </div> | |
| 164 | - <div class="basefont"> | |
| 165 | - <div class="titlefont">{{codeData.baseName}}</div> | |
| 166 | - <div class="tcfont">套餐名称:{{codeData.courseName}}</div> | |
| 167 | - <div class="tcfont">数量*{{codeData.orderCount}}</div> | |
| 168 | - </div> | |
| 169 | - <!-- <div class="priceRight">¥{{codeData.paymoney}}</div> --> | |
| 170 | - </div> | |
| 171 | - <div class="groupTime"> | |
| 172 | - <van-icon name="clock-o" /><span class="grey"> 活动日期</span><span> {{codeData.startDate}} - {{ codeData.endDate}}</span> | |
| 173 | - </div> | |
| 174 | - <div class="qrcodeBox"> | |
| 175 | - <div id="qrcode" ref="imageWrapper" v-if="!imgUrl"></div> | |
| 176 | - <div class="imgBox"> | |
| 177 | - <img :src="imgUrl" v-if="imgUrl" style="width:100%;height:100%" /> | |
| 178 | - </div> | |
| 179 | - </div> | |
| 180 | - <div class="numShow"> | |
| 181 | - {{codeData.id}} | |
| 182 | - </div> | |
| 183 | - <div class="fontBottom">请向工作人员出示</div> | |
| 184 | - </div> | |
| 185 | - </div> | |
| 186 | - </van-popup> | |
| 187 | 69 | <van-popup v-model="showPreview" round get-container="body"> | 
| 188 | 70 | <img class="preview_img" :src="previewUrl" alt=""> | 
| 189 | 71 | </van-popup> | 
| ... | ... | @@ -191,25 +73,17 @@ | 
| 191 | 73 | </template> | 
| 192 | 74 | |
| 193 | 75 | <script> | 
| 194 | -import QRCode from 'qrcodejs2' // 引入qrcode | |
| 195 | -import html2canvas from "html2canvas" | |
| 196 | -// let Base64 = require('js-base64').Base64; | |
| 197 | 76 | export default { | 
| 198 | 77 | name: 'ServiceOrder', | 
| 199 | 78 | data () { | 
| 200 | 79 | return { | 
| 201 | 80 | userInfo: '', | 
| 202 | 81 | active: 1, | 
| 203 | - paylist: [], //待付款 | |
| 204 | - movelist: [], //待核销 | |
| 205 | 82 | list: [], //所有 | 
| 206 | 83 | datalist: [], //未评价 | 
| 207 | 84 | loading: false, | 
| 208 | 85 | finished: false, | 
| 209 | 86 | pageCareerIndex: 0, | 
| 210 | - qrcodeShow: false, | |
| 211 | - showPintuanAbout: false, | |
| 212 | - showCode: false, | |
| 213 | 87 | codeData: {}, | 
| 214 | 88 | imgUrl: '', | 
| 215 | 89 | previewUrl: '',//图片预览 | 
| ... | ... | @@ -232,91 +106,17 @@ export default { | 
| 232 | 106 | } | 
| 233 | 107 | }, | 
| 234 | 108 | methods: { | 
| 235 | - back () { | |
| 236 | - this.$router.push({ name: 'ServiceKQ' }) | |
| 237 | - }, | |
| 238 | 109 | beforeTabChange (item) { | 
| 239 | 110 | console.log(item) | 
| 240 | - this.paylist = []; | |
| 241 | - this.movelist = []; | |
| 242 | 111 | this.list = []; | 
| 243 | 112 | this.datalist = []; | 
| 244 | 113 | if (item == 0) { | 
| 245 | - this.onLoadpay() | |
| 246 | - } else if (item == 1) { | |
| 247 | - // this.onLoadCareer() | |
| 248 | - this.onLoadmove() | |
| 249 | - } else if (item == 2) { | |
| 250 | 114 | this.onLoadCareer() | 
| 251 | - } else { | |
| 115 | + } else if (item == 1) { | |
| 252 | 116 | this.onLoad() | 
| 253 | 117 | } | 
| 254 | 118 | return true; | 
| 255 | 119 | }, | 
| 256 | - //获取待支付 | |
| 257 | - onLoadpay () { | |
| 258 | - this.mgop({ | |
| 259 | - api: 'mgop.sz.hswsy.GetOrderPayList', // 必须 | |
| 260 | - host: 'https://mapi.zjzwfw.gov.cn/', | |
| 261 | - dataType: 'JSON', | |
| 262 | - type: 'GET', | |
| 263 | - appKey: 'fuxgnukl+2001895516+edccpx', // 必须 | |
| 264 | - headers: { | |
| 265 | - // 'isTestUrl': '1' | |
| 266 | - }, | |
| 267 | - data: { | |
| 268 | - "userId": localStorage.getItem('centerNo'), | |
| 269 | - "type": 1, | |
| 270 | - "page": 1, | |
| 271 | - "pageSize": 999 | |
| 272 | - }, | |
| 273 | - onSuccess: res => { | |
| 274 | - console.log('待支付:', res) | |
| 275 | - if (res.data.status == 1) { | |
| 276 | - this.paylist = res.data.data.list; | |
| 277 | - this.loading = false; | |
| 278 | - this.finished = true; | |
| 279 | - } else { | |
| 280 | - this.$toast.fail(res.data.message); | |
| 281 | - } | |
| 282 | - }, | |
| 283 | - onFail: err => { | |
| 284 | - console.log('err', err) | |
| 285 | - } | |
| 286 | - }); | |
| 287 | - }, | |
| 288 | - //获取已支付 | |
| 289 | - onLoadmove () { | |
| 290 | - this.mgop({ | |
| 291 | - api: 'mgop.sz.hswsy.GetOrderPayList', // 必须 | |
| 292 | - host: 'https://mapi.zjzwfw.gov.cn/', | |
| 293 | - dataType: 'JSON', | |
| 294 | - type: 'GET', | |
| 295 | - appKey: 'fuxgnukl+2001895516+edccpx', // 必须 | |
| 296 | - headers: { | |
| 297 | - // 'isTestUrl': '1' | |
| 298 | - }, | |
| 299 | - data: { | |
| 300 | - "userId": localStorage.getItem('centerNo'), | |
| 301 | - "type": 2, | |
| 302 | - "page": 1, | |
| 303 | - "pageSize": 999 | |
| 304 | - }, | |
| 305 | - onSuccess: res => { | |
| 306 | - console.log('已支付:', res) | |
| 307 | - if (res.data.status == 1) { | |
| 308 | - this.movelist = res.data.data.list; | |
| 309 | - this.loading = false; | |
| 310 | - this.finished = true; | |
| 311 | - } else { | |
| 312 | - this.$toast.fail(res.data.message); | |
| 313 | - } | |
| 314 | - }, | |
| 315 | - onFail: err => { | |
| 316 | - console.log('err', err) | |
| 317 | - } | |
| 318 | - }); | |
| 319 | - }, | |
| 320 | 120 | //获取待评价 | 
| 321 | 121 | onLoadCareer () { | 
| 322 | 122 | this.mgop({ | 
| ... | ... | @@ -381,48 +181,15 @@ export default { | 
| 381 | 181 | } | 
| 382 | 182 | }); | 
| 383 | 183 | }, | 
| 384 | - //生成核销码 | |
| 385 | - makeCode (id) { | |
| 386 | - console.log(id.toString()) | |
| 387 | - document.getElementById('qrcode').innerHTML = ''; | |
| 388 | - this.qrcodeShow = true; | |
| 389 | - | |
| 390 | - let qrcode = new QRCode('qrcode', { | |
| 391 | - width: 200, | |
| 392 | - height: 200, | |
| 393 | - text: id.toString(), // 二维码地址 | |
| 394 | - }) | |
| 395 | - this.canvanqrCode() | |
| 396 | - }, | |
| 397 | 184 | //评价 | 
| 398 | 185 | evaluate (item) { | 
| 399 | 186 | window.localStorage.setItem('courseInfo', JSON.stringify(item)) | 
| 400 | 187 | this.$router.push({ name: 'evaluateCourse' }) | 
| 401 | 188 | }, | 
| 402 | - //核销码 | |
| 403 | - toCode (item) { | |
| 404 | - this.codeData = {} | |
| 405 | - this.showCode = true | |
| 406 | - this.codeData = item | |
| 407 | - this.imgUrl = '' | |
| 408 | - setTimeout(() => { | |
| 409 | - this.makeCode(item.id) | |
| 410 | - }, 1000); | |
| 411 | - }, | |
| 412 | 189 | //跳转 | 
| 413 | 190 | toEdit (item) { | 
| 414 | 191 | this.$router.push({ path: 'abroad_detail', query: { courseId: item.courseId } }) | 
| 415 | 192 | }, | 
| 416 | - //二维码转图片 | |
| 417 | - canvanqrCode () { | |
| 418 | - html2canvas(this.$refs.imageWrapper, { | |
| 419 | - width: 200, | |
| 420 | - height: 200 | |
| 421 | - }).then(canvas => { | |
| 422 | - let dataURL = canvas.toDataURL("image/png"); | |
| 423 | - this.imgUrl = dataURL; | |
| 424 | - }); | |
| 425 | - }, | |
| 426 | 193 | // 预览图片 | 
| 427 | 194 | previewImg (url) { | 
| 428 | 195 | this.previewUrl = url; | 
| ... | ... | @@ -444,23 +211,6 @@ export default { | 
| 444 | 211 | overflow: auto; | 
| 445 | 212 | background: #f6f7fa; | 
| 446 | 213 | |
| 447 | - // .qrcodeBox { | |
| 448 | - // position: fixed; | |
| 449 | - // top: 0; | |
| 450 | - // left: 0; | |
| 451 | - // bottom: 0; | |
| 452 | - // right: 0; | |
| 453 | - // background-color: rgba(0, 0, 0, 0.4); | |
| 454 | - | |
| 455 | - // #qrcode { | |
| 456 | - // position: absolute; | |
| 457 | - // top: 50%; | |
| 458 | - // left: 50%; | |
| 459 | - // transform: translate(-50%, -50%); | |
| 460 | - // padding: 20px; | |
| 461 | - // background: #fff; | |
| 462 | - // } | |
| 463 | - // } | |
| 464 | 214 | |
| 465 | 215 | .list { | 
| 466 | 216 | padding: 20px; | 
| ... | ... | @@ -794,21 +544,6 @@ export default { | 
| 794 | 544 | color: #999999; | 
| 795 | 545 | } | 
| 796 | 546 | } | 
| 797 | - .qrcodeBox { | |
| 798 | - width: 100%; | |
| 799 | - height: 430px; | |
| 800 | - | |
| 801 | - #qrcode { | |
| 802 | - transform: translate(25%, 10%); | |
| 803 | - // margin: auto; | |
| 804 | - } | |
| 805 | - .imgBox { | |
| 806 | - width: 370px; | |
| 807 | - height: 370px; | |
| 808 | - margin: 30px auto 0; | |
| 809 | - // transform: translate(25%, 10%); | |
| 810 | - } | |
| 811 | - } | |
| 812 | 547 | .numShow { | 
| 813 | 548 | width: 100%; | 
| 814 | 549 | font-size: 28px; | ... | ... | 
| ... | ... | @@ -0,0 +1,25 @@ | 
| 1 | +<template> | |
| 2 | + <div class="yanxue_detail"> | |
| 3 | + <img :src="image" alt=""> | |
| 4 | + </div> | |
| 5 | +</template> | |
| 6 | +<script> | |
| 7 | +import axios from 'axios' | |
| 8 | +export default { | |
| 9 | + data() { | |
| 10 | + return { | |
| 11 | + image:'' | |
| 12 | + } | |
| 13 | + }, | |
| 14 | + mounted() { | |
| 15 | + this.image = `https://payment.myjxt.com/zlb_assets/image/${this.$route.query.image}.jpg` | |
| 16 | + }, | |
| 17 | +} | |
| 18 | +</script> | |
| 19 | +<style lang="scss"> | |
| 20 | +.yanxue_detail { | |
| 21 | + img{ | |
| 22 | + width: 100%; | |
| 23 | + } | |
| 24 | +} | |
| 25 | +</style> | ... | ... | 
| ... | ... | @@ -0,0 +1,38 @@ | 
| 1 | +<template> | |
| 2 | + <div class="yanxue_page"> | |
| 3 | + <p class="item" v-for="(item,index) in listData" :key="index" @click="handleItem(item.title)">{{item.title}}</p> | |
| 4 | + </div> | |
| 5 | +</template> | |
| 6 | +<script> | |
| 7 | +import axios from 'axios' | |
| 8 | +export default { | |
| 9 | + data() { | |
| 10 | + return { | |
| 11 | + listData:[] | |
| 12 | + } | |
| 13 | + }, | |
| 14 | + mounted() { | |
| 15 | + this.getList() | |
| 16 | + }, | |
| 17 | + methods: { | |
| 18 | + getList() { | |
| 19 | + this.$toast.loading('加载中...') | |
| 20 | + axios.get(`https://payment.myjxt.com/zlb_assets/yanxue.json`).then((res) => { | |
| 21 | + this.$toast.clear() | |
| 22 | + console.log('列表:', res.data) | |
| 23 | + this.listData = res.data | |
| 24 | + }) | |
| 25 | + }, | |
| 26 | + handleItem(image){ | |
| 27 | + this.$router.push({ name: 'YanxueDetail' ,query:{image:image}}) | |
| 28 | + } | |
| 29 | + }, | |
| 30 | +} | |
| 31 | +</script> | |
| 32 | +<style lang="scss"> | |
| 33 | +.yanxue_page { | |
| 34 | + .item{ | |
| 35 | + font-size: 30px; | |
| 36 | + } | |
| 37 | +} | |
| 38 | +</style> | ... | ... | 
