Commit 823e59cbf940a31c55586116fc055420ac251a4c

Authored by 夏洋涛
1 parent 276a64cb
Exists in master

feat: 适老化,支付 一部分

public/index.html
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 <link rel="icon" href="<%= BASE_URL %>favicon.ico"> 9 <link rel="icon" href="<%= BASE_URL %>favicon.ico">
10 <title></title> 10 <title></title>
11 <!-- 埋点 --> 11 <!-- 埋点 -->
12 - <script src="https://d.alicdn.com/alilog/mlog/aplus.js?id=202951085"></script> 12 + <!-- <script src="https://d.alicdn.com/alilog/mlog/aplus.js?id=202951085"></script> -->
13 <script> 13 <script>
14 (function(w, d, s, q, i) { 14 (function(w, d, s, q, i) {
15 w[q] = w[q] || []; 15 w[q] = w[q] || [];
@@ -19,15 +19,47 @@ @@ -19,15 +19,47 @@
19 j.id = 'beacon-aplus'; 19 j.id = 'beacon-aplus';
20 j.src = 'https://d.alicdn.com/alilog/mlog/aplus.js?id=202951085'; 20 j.src = 'https://d.alicdn.com/alilog/mlog/aplus.js?id=202951085';
21 f.parentNode.insertBefore(j, f); 21 f.parentNode.insertBefore(j, f);
22 - })(window, document, 'script', 'aplus_queue') 22 + })(window, document, 'script', 'aplus_queue');
  23 +
  24 + aplus_queue.push({
  25 + action: 'aplus.setMetaInfo',
  26 + arguments: ['aplus-rhost-v', 'alog.zjzwfw.gov.cn']
  27 + });
  28 +
  29 +
  30 + aplus_queue.push({
  31 + action: 'aplus.setMetaInfo',
  32 + arguments: ['aplus-rhost-g', 'alog.zjzwfw.gov.cn']
  33 + });
  34 +
  35 + aplus_queue.push({
  36 + action: 'aplus.setMetaInfo',
  37 + arguments: ['appId', '60506758']
  38 + });
  39 + aplus_queue.push({
  40 + 'action': 'aplus.sendPV',
  41 + 'arguments': [{
  42 + is_auto: false
  43 + }, {
  44 + miniAppId: '2001895516',
  45 + }]
  46 + })
  47 + // aplus_queue.push({
  48 + // action: 'aplus.setMetaInfo',
  49 + // arguments: ['miniAppId', '2001895516']
  50 + // });
  51 + // aplus_queue.push({
  52 + // action: 'aplus.setMetaInfo',
  53 + // arguments: ['miniAppName', '红色网上游']
  54 + // });
23 </script> 55 </script>
24 </head> 56 </head>
25 57
26 <body> 58 <body>
27 <noscript> 59 <noscript>
28 - <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.  
29 - Please enable it to continue.</strong>  
30 - </noscript> 60 + <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
  61 + Please enable it to continue.</strong>
  62 + </noscript>
31 <div id="app"></div> 63 <div id="app"></div>
32 <!-- 地图 --> 64 <!-- 地图 -->
33 <script src="https://webapi.amap.com/maps?v=1.4.15&key=61af1988b71a634a59a0de29409baeb8"></script> 65 <script src="https://webapi.amap.com/maps?v=1.4.15&key=61af1988b71a634a59a0de29409baeb8"></script>
1 <template> 1 <template>
2 - <div id="app"> 2 + <div id="app" :class="isElder?'elder':''">
3 <keep-alive> 3 <keep-alive>
4 - <router-view v-if="this.$route.meta.keepAlive" /> 4 + <router-view v-if="this.$route.meta.keepAlive" @setElder="setElder" />
5 </keep-alive> 5 </keep-alive>
6 -  
7 - <router-view v-if="!this.$route.meta.keepAlive" /> 6 +
  7 + <router-view v-if="!this.$route.meta.keepAlive" @setElder="setElder" />
8 </div> 8 </div>
9 </template> 9 </template>
10 <script> 10 <script>
11 export default { 11 export default {
  12 + data () {
  13 + return {
  14 + isElder: false
  15 + }
  16 + },
12 mounted () { 17 mounted () {
  18 +
13 ZWJSBridge.onReady(() => { 19 ZWJSBridge.onReady(() => {
14 console.log('初始化完成后,执行bridge方法') 20 console.log('初始化完成后,执行bridge方法')
  21 +
15 }) 22 })
  23 +
  24 + const isElder = sessionStorage.getItem('isElder')
  25 + if (isElder) {
  26 + this.isElder = true
  27 + } else {
  28 + ZWJSBridge.getUiStyle({})
  29 + .then((result) => {
  30 + console.log(result);
  31 + if (result.uiStyle == 'elder') {
  32 + this.isElder = true;
  33 + sessionStorage.setItem('isElder', 1)
  34 + }
  35 + })
  36 + //浙里办APP 6.11.0 版本以下版本标准模式兼容
  37 + .catch((error) => { console.log(error); });
  38 + }
16 }, 39 },
17 methods: { 40 methods: {
  41 + setElder (e) {
  42 + this.isElder = e
  43 + }
18 } 44 }
19 } 45 }
20 </script> 46 </script>
src/component/Tabbar4.vue
@@ -90,4 +90,20 @@ export default { @@ -90,4 +90,20 @@ export default {
90 } 90 }
91 } 91 }
92 } 92 }
  93 +</style>
  94 +<style lang="scss">
  95 +// 长辈版
  96 +.elder {
  97 + #tabbar {
  98 + .tab{
  99 + padding: 0;
  100 + img{
  101 + width: 44px;
  102 + }
  103 + p{
  104 + font-size: 34px;
  105 + }
  106 + }
  107 + }
  108 +}
93 </style> 109 </style>
94 \ No newline at end of file 110 \ No newline at end of file
src/views/Home/Home.vue
@@ -28,6 +28,16 @@ @@ -28,6 +28,16 @@
28 </div> 28 </div>
29 <van-icon name="arrow" /> 29 <van-icon name="arrow" />
30 </div> 30 </div>
  31 + <div class="item" @click="handelElder">
  32 + <div class="left">
  33 + <van-icon class="icon" name="discount" />
  34 + <span>长辈版</span>
  35 + </div>
  36 + <p>
  37 + {{isElder?'已开启':'未开启'}}
  38 + <van-icon name="arrow" />
  39 + </p>
  40 + </div>
31 </div> 41 </div>
32 <HomeChildList v-if="showChildList"></HomeChildList> 42 <HomeChildList v-if="showChildList"></HomeChildList>
33 43
@@ -45,6 +55,7 @@ import HomeChildList from &#39;@/views/Home/component/HomeChildList&#39; @@ -45,6 +55,7 @@ import HomeChildList from &#39;@/views/Home/component/HomeChildList&#39;
45 import HomeOrder from '@/views/Home/component/HomeOrder' 55 import HomeOrder from '@/views/Home/component/HomeOrder'
46 import HomeScan from '@/views/Home/component/HomeScan' 56 import HomeScan from '@/views/Home/component/HomeScan'
47 import Tabbar4 from '@/component/Tabbar4' 57 import Tabbar4 from '@/component/Tabbar4'
  58 +import { Dialog } from 'vant'
48 export default { 59 export default {
49 data () { 60 data () {
50 return { 61 return {
@@ -64,46 +75,48 @@ export default { @@ -64,46 +75,48 @@ export default {
64 headImgUrl: '', 75 headImgUrl: '',
65 defaultHead: require('@/assets/head.png'), 76 defaultHead: require('@/assets/head.png'),
66 isShow: false, 77 isShow: false,
67 - showChildList: false 78 + showChildList: false,
  79 + isElder: false
68 } 80 }
69 }, 81 },
70 82
71 mounted () { 83 mounted () {
72 - aplus_queue.push({  
73 - 'action': 'aplus.sendPV',  
74 - 'arguments': [{  
75 - is_auto: false  
76 - }]  
77 - })  
78 - this.checkAuth() 84 + const isElder = sessionStorage.getItem('isElder')
  85 + if (isElder) {
  86 + this.isElder = true
  87 + }
  88 + this.centerNo = sessionStorage.getItem('centerNo');
  89 + this.getUserInfo()
  90 +
  91 + // this.checkAuth()
79 }, 92 },
80 methods: { 93 methods: {
81 - checkAuth () {  
82 - let centerNo = this.common.getUrlParam('center_no') || sessionStorage.getItem('centerNo');  
83 - if (centerNo) {  
84 - this.centerNo = centerNo  
85 - sessionStorage.setItem('centerNo', centerNo);  
86 - this.getUserInfo()  
87 - } else {  
88 - const sUserAgent = window.navigator.userAgent.toLowerCase()  
89 - const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1  
90 - const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1  
91 - if (dtdreamweb) {  
92 - alert('浙里办')  
93 - window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`;  
94 - }  
95 - // else if (miniprogram) {  
96 - // alert('支付宝')  
97 - // window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=passp&goto=`;  
98 - // }  
99 - else {  
100 - console.log('非浙里办渠道访问,显示测试用户数据')  
101 - this.centerNo = '20210930160466993660'  
102 - sessionStorage.setItem('centerNo', '20210930160466993660');  
103 - this.getUserInfo()  
104 - }  
105 - }  
106 - }, 94 + // checkAuth () {
  95 + // let centerNo = this.common.getUrlParam('center_no') || sessionStorage.getItem('centerNo');
  96 + // if (centerNo) {
  97 + // this.centerNo = centerNo
  98 + // sessionStorage.setItem('centerNo', centerNo);
  99 + // this.getUserInfo()
  100 + // } else {
  101 + // const sUserAgent = window.navigator.userAgent.toLowerCase()
  102 + // const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1
  103 + // const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1
  104 + // if (dtdreamweb) {
  105 + // alert('浙里办')
  106 + // window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`;
  107 + // }
  108 + // // else if (miniprogram) {
  109 + // // alert('支付宝')
  110 + // // window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=passp&goto=`;
  111 + // // }
  112 + // else {
  113 + // console.log('非浙里办渠道访问,显示测试用户数据')
  114 + // this.centerNo = '20210930160466993660'
  115 + // sessionStorage.setItem('centerNo', '20210930160466993660');
  116 + // this.getUserInfo()
  117 + // }
  118 + // }
  119 + // },
107 // 研学码 120 // 研学码
108 handleYanxue () { 121 handleYanxue () {
109 this.$router.push({ name: 'YanxueCode' }) 122 this.$router.push({ name: 'YanxueCode' })
@@ -125,6 +138,42 @@ export default { @@ -125,6 +138,42 @@ export default {
125 this.$toast('暂未开放,敬请期待!'); 138 this.$toast('暂未开放,敬请期待!');
126 // this.$router.push({ name: 'Partner' }) 139 // this.$router.push({ name: 'Partner' })
127 }, 140 },
  141 + // 点击长辈版
  142 + handelElder () {
  143 + if (this.isElder) {
  144 + Dialog.confirm({
  145 + title: '长辈版',
  146 + message: '超大字号,看的更清楚,长辈版,专为长辈设计',
  147 + confirmButtonColor: '#ee0a24',
  148 + confirmButtonText: '关闭长辈版模式'
  149 + })
  150 + .then(() => {
  151 + // on confirm
  152 + this.isElder = false
  153 + sessionStorage.removeItem('isElder')
  154 + this.$emit('setElder', false)
  155 + })
  156 + .catch(() => {
  157 + // on cancel
  158 + });
  159 + } else {
  160 + Dialog.confirm({
  161 + title: '长辈版',
  162 + message: '超大字号,看的更清楚,长辈版,专为长辈设计',
  163 + confirmButtonColor: '#3385FF',
  164 + confirmButtonText: '开启长辈版模式'
  165 + })
  166 + .then(() => {
  167 + // on confirm
  168 + this.isElder = true
  169 + sessionStorage.setItem('isElder', 1)
  170 + this.$emit('setElder', true)
  171 + })
  172 + .catch(() => {
  173 + // on cancel
  174 + });
  175 + }
  176 + },
128 // 获取用户信息 177 // 获取用户信息
129 getUserInfo: function () { 178 getUserInfo: function () {
130 this.mgop({ 179 this.mgop({
@@ -265,3 +314,20 @@ export default { @@ -265,3 +314,20 @@ export default {
265 z-index: 99; 314 z-index: 99;
266 } 315 }
267 </style> 316 </style>
  317 +<style lang="scss">
  318 +.elder {
  319 + .home {
  320 + .infomation .top .right {
  321 + .name {
  322 + font-size: 44px;
  323 + }
  324 + .phone {
  325 + font-size: 44px;
  326 + }
  327 + }
  328 + .function .item .left span {
  329 + font-size: 40px;
  330 + }
  331 + }
  332 +}
  333 +</style>
src/views/Home/component/HomeChildList.vue
@@ -198,4 +198,17 @@ export default { @@ -198,4 +198,17 @@ export default {
198 color: #f63837; 198 color: #f63837;
199 } 199 }
200 } 200 }
  201 +</style>
  202 +<style lang="scss">
  203 +.elder {
  204 + .home_child_list .stu_info{
  205 + height: auto;
  206 + .title p{
  207 + font-size: 40px;
  208 + }
  209 + .item{
  210 + font-size: 38px;
  211 + }
  212 + }
  213 +}
201 </style> 214 </style>
202 \ No newline at end of file 215 \ No newline at end of file
src/views/Home/component/HomeOrder.vue
@@ -79,4 +79,18 @@ export default { @@ -79,4 +79,18 @@ export default {
79 } 79 }
80 } 80 }
81 } 81 }
  82 +</style>
  83 +<style lang="scss">
  84 + .elder{
  85 + .home_order{
  86 + .top{
  87 + p{
  88 + font-size: 44px;
  89 + }
  90 + }
  91 + .icon_box p{
  92 + font-size: 34px;
  93 + }
  94 + }
  95 + }
82 </style> 96 </style>
83 \ No newline at end of file 97 \ No newline at end of file
src/views/Service/AbroadDetail.vue
@@ -309,7 +309,7 @@ export default { @@ -309,7 +309,7 @@ export default {
309 // 'isTestUrl': '1' 309 // 'isTestUrl': '1'
310 }, 310 },
311 data: { 311 data: {
312 - "id":this.courseId, 312 + "id": this.courseId,
313 "cs": "绍兴市", 313 "cs": "绍兴市",
314 }, 314 },
315 onSuccess: res => { 315 onSuccess: res => {
@@ -448,8 +448,8 @@ export default { @@ -448,8 +448,8 @@ export default {
448 }, 448 },
449 data: { 449 data: {
450 "productId": this.detailData.id, 450 "productId": this.detailData.id,
451 - "startDate": startDate,  
452 - "endDate": endDate, 451 + "startDate": startDate,
  452 + "endDate": endDate,
453 }, 453 },
454 onSuccess: res => { 454 onSuccess: res => {
455 if (res.data.data) { 455 if (res.data.data) {
@@ -1176,4 +1176,104 @@ export default { @@ -1176,4 +1176,104 @@ export default {
1176 } 1176 }
1177 } 1177 }
1178 } 1178 }
  1179 +</style>
  1180 +<style lang="scss">
  1181 +.elder {
  1182 + .abroad_detail {
  1183 + .countDown {
  1184 + height: auto;
  1185 + .countDownTop {
  1186 + display: block;
  1187 + font-size: 40px;
  1188 + .countDownTime {
  1189 + font-size: 40px;
  1190 + padding: 10px 0;
  1191 + div {
  1192 + width: 60px;
  1193 + }
  1194 + .countDownFont {
  1195 + line-height: 60px;
  1196 + }
  1197 + }
  1198 + }
  1199 + .countDownBottom {
  1200 + display: block;
  1201 + font-size: 40px;
  1202 + .countDownBottomyellow {
  1203 + height: 60px;
  1204 + font-size: 40px;
  1205 + }
  1206 + }
  1207 + }
  1208 + .uni_text {
  1209 + .course_price {
  1210 + font-size: 48px;
  1211 + .redmini,
  1212 + .tint {
  1213 + font-size: 36px;
  1214 + }
  1215 + }
  1216 + .course_name {
  1217 + font-size: 44px;
  1218 + }
  1219 + .course_info {
  1220 + font-size: 40px;
  1221 + }
  1222 + .address {
  1223 + font-size: 40px;
  1224 + }
  1225 + .rate > span {
  1226 + font-size: 36px;
  1227 + }
  1228 + .tag_box .tag {
  1229 + font-size: 40px;
  1230 + }
  1231 + }
  1232 + .package {
  1233 + .package_title {
  1234 + font-size: 44px;
  1235 + }
  1236 + .package_item {
  1237 + .date {
  1238 + font-size: 40px;
  1239 + }
  1240 + .week {
  1241 + font-size: 34px;
  1242 + }
  1243 + .price {
  1244 + font-size: 34px;
  1245 + }
  1246 + }
  1247 + }
  1248 + .content_box .content_all {
  1249 + font-size: 40px !important;
  1250 + line-height: 60px !important;
  1251 + }
  1252 + .tag_item {
  1253 + .tag_title {
  1254 + font-size: 44px;
  1255 + }
  1256 + .tag_text {
  1257 + font-size: 40px !important;
  1258 + line-height: 60px !important;
  1259 + }
  1260 + }
  1261 + .base .center {
  1262 + .basename {
  1263 + font-size: 44px !important;
  1264 + }
  1265 + .address {
  1266 + font-size: 40px !important;
  1267 + }
  1268 + }
  1269 + .Collection .box {
  1270 + span {
  1271 + font-size: 44px !important;
  1272 + }
  1273 + .icon {
  1274 + font-size: 40px !important;
  1275 + }
  1276 + }
  1277 + }
  1278 +}
1179 </style> 1279 </style>
1180 \ No newline at end of file 1280 \ No newline at end of file
src/views/Service/CheckOrder.vue
@@ -181,20 +181,20 @@ export default { @@ -181,20 +181,20 @@ export default {
181 }, 181 },
182 onSuccess: res => { 182 onSuccess: res => {
183 if (res.data.data) { 183 if (res.data.data) {
184 - if (this.paymoney == 0) {  
185 - // 使用后移除优惠券,防止返回继续使用  
186 - sessionStorage.removeItem('useCard') 184 + if (this.paymoney == 0) {
  185 + // 使用后移除优惠券,防止返回继续使用
  186 + sessionStorage.removeItem('useCard')
187 this.$router.push({ name: 'ServiceOrderXST', query: { active: 1, showChatGroupUrl: 1 } }) 187 this.$router.push({ name: 'ServiceOrderXST', query: { active: 1, showChatGroupUrl: 1 } })
188 188
  189 + } else {
  190 + // 使用后移除优惠券,防止返回继续使用
  191 + sessionStorage.removeItem('useCard')
  192 + this.openPay(res.data.data);
  193 + this.orderId = res.data.data.orderId;
  194 + }
189 } else { 195 } else {
190 - // 使用后移除优惠券,防止返回继续使用  
191 - sessionStorage.removeItem('useCard')  
192 - this.openPay(res.data.data);  
193 - this.orderId = res.data.data.orderId; 196 + this.$toast.fail(res.data?.result);
194 } 197 }
195 - } else {  
196 - this.$toast.fail(res.data?.result);  
197 - }  
198 198
199 }, 199 },
200 onFail: err => { 200 onFail: err => {
@@ -203,8 +203,45 @@ export default { @@ -203,8 +203,45 @@ export default {
203 }); 203 });
204 }, 204 },
205 openPay (data) { 205 openPay (data) {
  206 + const sUserAgent = window.navigator.userAgent.toLowerCase()
  207 + const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1
  208 + const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1
  209 + if (dtdreamweb) {
  210 + alert('浙里办')
  211 + }
  212 + else if (miniprogram) {
  213 + alert('支付宝')
  214 + }
206 let that = this; 215 let that = this;
207 - alert('支付') 216 + var payMsg = {
  217 + platform: 1,
  218 + arg: {
  219 + "credential": JSON.stringify({
  220 + "appid": "2021000118637887",
  221 + "attach": "string1",
  222 + "body": "string23",
  223 + "notify_url": "http://47.110.50.251:9091/api/alipay/pay",
  224 + "outTradeNo": new Date().getTime(),
  225 + "payType": 0,
  226 + "payWay": 0,
  227 + "productId": "11",
  228 + "quit_url": "https://www.baidu.com",
  229 + "subject": "string",
  230 + "totalFee": "1000000"
  231 + }),
  232 + "inSandBox": false
  233 + }
  234 + };
  235 + ZWJSBridge.pay(payMsg).then((result) => {
  236 +
  237 + alert('支付成功!');
  238 + console.log('#### ZWJSBridge.pay() result:' + result);
  239 +
  240 + }).catch((error) => {
  241 + var errorMsg = JSON.stringify(error);
  242 + alert('支付失败:' + errorMsg);
  243 + console.log('#### ZWJSBridge.pay() error:' + error);
  244 + });
208 return; 245 return;
209 246
210 Axios({ 247 Axios({
src/views/Service/DatePackage.vue
@@ -110,7 +110,7 @@ export default { @@ -110,7 +110,7 @@ export default {
110 }, 110 },
111 onSuccess: res => { 111 onSuccess: res => {
112 if (res.data.data) { 112 if (res.data.data) {
113 - this.numOne = res.data.data 113 + this.numOne = res.data.data
114 } 114 }
115 }, 115 },
116 onFail: err => { 116 onFail: err => {
@@ -137,7 +137,7 @@ export default { @@ -137,7 +137,7 @@ export default {
137 }, 137 },
138 onSuccess: res => { 138 onSuccess: res => {
139 if (res.data.data) { 139 if (res.data.data) {
140 - this.numSecond = res.data.data 140 + this.numSecond = res.data.data
141 } 141 }
142 }, 142 },
143 onFail: err => { 143 onFail: err => {
@@ -225,12 +225,12 @@ export default { @@ -225,12 +225,12 @@ export default {
225 // 判断是否已登录 225 // 判断是否已登录
226 checkLogin () { 226 checkLogin () {
227 if (process.env.NODE_ENV != "production") return true; 227 if (process.env.NODE_ENV != "production") return true;
228 - 228 +
229 const userInfo = JSON.parse(sessionStorage.getItem('userInfo')) 229 const userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
230 const publicName = sessionStorage.getItem('publicName') 230 const publicName = sessionStorage.getItem('publicName')
231 if (!userInfo?.phone) { 231 if (!userInfo?.phone) {
232 sessionStorage.setItem('prePage', 'ServiceDatePackage'); 232 sessionStorage.setItem('prePage', 'ServiceDatePackage');
233 - sessionStorage.setItem('prePageQuery', JSON.stringify({ date:this.date })); 233 + sessionStorage.setItem('prePageQuery', JSON.stringify({ date: this.date }));
234 this.$router.push({ name: 'LoginPublic', query: { publicName: publicName } }) 234 this.$router.push({ name: 'LoginPublic', query: { publicName: publicName } })
235 return false; 235 return false;
236 } 236 }
@@ -277,7 +277,7 @@ export default { @@ -277,7 +277,7 @@ export default {
277 .period_item { 277 .period_item {
278 padding: 10px 20px; 278 padding: 10px 20px;
279 font-size: 28px; 279 font-size: 28px;
280 - margin-bottom:15px; 280 + margin-bottom: 15px;
281 text-align: left; 281 text-align: left;
282 background: #f5f6fa; 282 background: #f5f6fa;
283 border-radius: 10px; 283 border-radius: 10px;
@@ -414,4 +414,43 @@ export default { @@ -414,4 +414,43 @@ export default {
414 box-sizing: border-box; 414 box-sizing: border-box;
415 color: #333; 415 color: #333;
416 } 416 }
  417 +</style>
  418 +<style lang="scss">
  419 +.elder {
  420 + #datePackage {.tag_item {
  421 + .tag_title {
  422 + font-size: 44px;
  423 + }
  424 + .package_name {
  425 + font-size: 40px;
  426 + }
  427 + .period .period_item {
  428 + font-size: 40px;
  429 + }
  430 + .tag_title_flex .count{
  431 + font-size: 40px;
  432 + }
  433 + .package_num{
  434 + font-size: 40px;
  435 + .tint{
  436 + font-size: 40px;
  437 +
  438 + }
  439 + }
  440 + }
  441 + .Collection {.box1 p{
  442 + font-size: 56px;
  443 + span{
  444 + font-size: 40px;
  445 + }
  446 + del{
  447 + font-size: 40px;
  448 + }
  449 + }
  450 + .box > span{
  451 + font-size: 44px;
  452 + }
  453 + }
  454 + }
  455 +}
417 </style> 456 </style>
418 \ No newline at end of file 457 \ No newline at end of file
src/views/Service/ServiceBaseKQ.vue
@@ -125,7 +125,7 @@ export default { @@ -125,7 +125,7 @@ export default {
125 type: 'POST', 125 type: 'POST',
126 appKey: 'fuxgnukl+2001895516+edccpx', // 必须 126 appKey: 'fuxgnukl+2001895516+edccpx', // 必须
127 headers: { 127 headers: {
128 - // 'isTestUrl': '1' 128 + // 'isTestUrl': '1'
129 }, 129 },
130 data: { 130 data: {
131 "area": "", 131 "area": "",
@@ -165,7 +165,7 @@ export default { @@ -165,7 +165,7 @@ export default {
165 type: 'POST', 165 type: 'POST',
166 appKey: 'fuxgnukl+2001895516+edccpx', // 必须 166 appKey: 'fuxgnukl+2001895516+edccpx', // 必须
167 headers: { 167 headers: {
168 - // 'isTestUrl': '1' 168 + // 'isTestUrl': '1'
169 }, 169 },
170 data: { 170 data: {
171 "area": "", 171 "area": "",
@@ -204,7 +204,7 @@ export default { @@ -204,7 +204,7 @@ export default {
204 type: 'POST', 204 type: 'POST',
205 appKey: 'fuxgnukl+2001895516+edccpx', // 必须 205 appKey: 'fuxgnukl+2001895516+edccpx', // 必须
206 headers: { 206 headers: {
207 - // 'isTestUrl': '1' 207 + // 'isTestUrl': '1'
208 }, 208 },
209 data: { 209 data: {
210 "area": "", 210 "area": "",
@@ -243,7 +243,7 @@ export default { @@ -243,7 +243,7 @@ export default {
243 type: 'POST', 243 type: 'POST',
244 appKey: 'fuxgnukl+2001895516+edccpx', // 必须 244 appKey: 'fuxgnukl+2001895516+edccpx', // 必须
245 headers: { 245 headers: {
246 - // 'isTestUrl': '1' 246 + // 'isTestUrl': '1'
247 }, 247 },
248 data: { 248 data: {
249 "area": "", 249 "area": "",
@@ -282,7 +282,7 @@ export default { @@ -282,7 +282,7 @@ export default {
282 type: 'POST', 282 type: 'POST',
283 appKey: 'fuxgnukl+2001895516+edccpx', // 必须 283 appKey: 'fuxgnukl+2001895516+edccpx', // 必须
284 headers: { 284 headers: {
285 - // 'isTestUrl': '1' 285 + // 'isTestUrl': '1'
286 }, 286 },
287 data: { 287 data: {
288 "area": "", 288 "area": "",
@@ -322,7 +322,7 @@ export default { @@ -322,7 +322,7 @@ export default {
322 type: 'POST', 322 type: 'POST',
323 appKey: 'fuxgnukl+2001895516+edccpx', // 必须 323 appKey: 'fuxgnukl+2001895516+edccpx', // 必须
324 headers: { 324 headers: {
325 - // 'isTestUrl': '1' 325 + // 'isTestUrl': '1'
326 }, 326 },
327 data: { 327 data: {
328 "area": "", 328 "area": "",
@@ -528,9 +528,6 @@ export default { @@ -528,9 +528,6 @@ export default {
528 box-shadow: 0 10px 10px rgba(238, 238, 238, 0.295); 528 box-shadow: 0 10px 10px rgba(238, 238, 238, 0.295);
529 height: 88px; 529 height: 88px;
530 } 530 }
531 - ::v-deep .van-tabs__nav {  
532 - background: transparent;  
533 - }  
534 ::v-deep .van-tab { 531 ::v-deep .van-tab {
535 // color: #fff; 532 // color: #fff;
536 color: black; 533 color: black;
@@ -586,3 +583,27 @@ export default { @@ -586,3 +583,27 @@ export default {
586 background-color: #39a9ed; 583 background-color: #39a9ed;
587 } 584 }
588 </style> 585 </style>
  586 +<style lang="scss">
  587 +// 长辈版
  588 +.elder {
  589 + #serviceKQ {
  590 + .container {
  591 + .redLink {
  592 + font-size: 44px;
  593 + background: #ff696a;
  594 + }
  595 + .top_tool {
  596 + .van-field__control {
  597 + font-size: 44px;
  598 + }
  599 + }
  600 + .van-tab{
  601 + font-size: 40px;
  602 + }
  603 + .van-tab--active{
  604 + font-size: 44px;
  605 + }
  606 + }
  607 + }
  608 +}
  609 +</style>
589 \ No newline at end of file 610 \ No newline at end of file
src/views/Service/ServiceKQ.vue
@@ -14,12 +14,6 @@ export default { @@ -14,12 +14,6 @@ export default {
14 14
15 mounted () { 15 mounted () {
16 console.log('xst mounted') 16 console.log('xst mounted')
17 - aplus_queue.push({  
18 - 'action': 'aplus.sendPV',  
19 - 'arguments': [{  
20 - is_auto: false  
21 - }]  
22 - })  
23 this.checkAuth() 17 this.checkAuth()
24 18
25 }, 19 },
@@ -33,25 +27,22 @@ export default { @@ -33,25 +27,22 @@ export default {
33 if (centerNo) { 27 if (centerNo) {
34 this.centerNo = centerNo 28 this.centerNo = centerNo
35 sessionStorage.setItem('centerNo', centerNo); 29 sessionStorage.setItem('centerNo', centerNo);
36 - console.log(111)  
37 this.getUserInfo() 30 this.getUserInfo()
38 } else { 31 } else {
39 - console.log(222)  
40 const sUserAgent = window.navigator.userAgent.toLowerCase() 32 const sUserAgent = window.navigator.userAgent.toLowerCase()
41 const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1 33 const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1
42 const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1 34 const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1
43 if (dtdreamweb) { 35 if (dtdreamweb) {
44 - console.log(333)  
45 alert('浙里办') 36 alert('浙里办')
46 - // window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`;  
47 - this.centerNo = '20210930160466993660'  
48 - sessionStorage.setItem('centerNo', '20210930160466993660'); 37 + window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`;
  38 + // this.centerNo = '20210930160466993660'
  39 + // sessionStorage.setItem('centerNo', '20210930160466993660');
49 this.getUserInfo() 40 this.getUserInfo()
50 } 41 }
51 - // else if (miniprogram) {  
52 - // alert('支付宝')  
53 - // window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=passp&goto=`;  
54 - // } 42 + else if (miniprogram) {
  43 + alert('支付宝')
  44 + window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=hswsy`;
  45 + }
55 else { 46 else {
56 console.log('非浙里办渠道访问,显示测试用户数据') 47 console.log('非浙里办渠道访问,显示测试用户数据')
57 this.centerNo = '20210930160466993660' 48 this.centerNo = '20210930160466993660'
src/views/Service/component/ServiceListFour.vue
@@ -97,6 +97,7 @@ export default { @@ -97,6 +97,7 @@ export default {
97 } 97 }
98 .abroad { 98 .abroad {
99 padding: 18px 0; 99 padding: 18px 0;
  100 + padding-bottom: 146px;
100 .padding_box { 101 .padding_box {
101 padding: 0 28px; 102 padding: 0 28px;
102 padding-bottom: 16px; 103 padding-bottom: 16px;
@@ -264,4 +265,37 @@ export default { @@ -264,4 +265,37 @@ export default {
264 } 265 }
265 } 266 }
266 } 267 }
  268 +</style>
  269 +<style lang="scss">
  270 +// 长辈版
  271 +.elder {
  272 + .abroad {
  273 + .uni_item {
  274 + .content{
  275 + .title{
  276 + font-size: 40px;
  277 + }
  278 + .active_time{
  279 + font-size: 32px;
  280 + }
  281 + .tag_box{
  282 + .tag{
  283 + font-size: 32px;
  284 + }
  285 + }
  286 + .price {
  287 + .icon {
  288 + font-size: 34px;
  289 + }
  290 + .tint {
  291 + font-size: 28px;
  292 + }
  293 + .limit {
  294 + font-size: 28px;
  295 + }
  296 + }
  297 + }
  298 + }
  299 + }
  300 +}
267 </style> 301 </style>
268 \ No newline at end of file 302 \ No newline at end of file
src/views/Service/component/ServiceListSecond.vue
@@ -6,13 +6,13 @@ @@ -6,13 +6,13 @@
6 <div class="padding_box"> 6 <div class="padding_box">
7 <template v-for="(item,index) in list"> 7 <template v-for="(item,index) in list">
8 <!-- <div class="uni_item_mini" :key="index" @click="handleUniDetail(item)" v-if="index<=3"> --> 8 <!-- <div class="uni_item_mini" :key="index" @click="handleUniDetail(item)" v-if="index<=3"> -->
9 - <div class="uni_item_mini" :key="index" @click="handleUniDetail(item)" > 9 + <div class="uni_item_mini" :key="index" @click="handleUniDetail(item)">
10 <div class="img_box"> 10 <div class="img_box">
11 <!-- <img :loading="defaultImg" v-lazy="item.coverUrl" alt=""> --> 11 <!-- <img :loading="defaultImg" v-lazy="item.coverUrl" alt=""> -->
12 - <img :src="item.coverUrl?item.coverUrl:defaultImg" alt=""> 12 + <img :src="item.coverUrl?item.coverUrl:defaultImg" alt="">
13 <template v-if="item.startDate"> 13 <template v-if="item.startDate">
14 <p class="time" v-if="item.startDate==item.endDate">活动时间:{{item.startDate}} {{item.week}}</p> 14 <p class="time" v-if="item.startDate==item.endDate">活动时间:{{item.startDate}} {{item.week}}</p>
15 - <p class="time" v-else>活动时间:{{item.startDate}}-{{item.endDate}}</p> 15 + <p class="time" v-else>活动时间:{{item.startDate}}-{{item.endDate}}</p>
16 </template> 16 </template>
17 <div class="bottom" v-if="item.cityAddress||item.areaAddress"> 17 <div class="bottom" v-if="item.cityAddress||item.areaAddress">
18 <span class="address"> 18 <span class="address">
@@ -57,7 +57,7 @@ export default { @@ -57,7 +57,7 @@ export default {
57 methods: { 57 methods: {
58 handleUniDetail (item) { 58 handleUniDetail (item) {
59 const publicName = sessionStorage.getItem('publicName'); 59 const publicName = sessionStorage.getItem('publicName');
60 - this.$router.push({ name: 'ServiceAbroadDetail', query: { courseId: item.id,publicName:publicName } }) 60 + this.$router.push({ name: 'ServiceAbroadDetail', query: { courseId: item.id, publicName: publicName } })
61 }, 61 },
62 } 62 }
63 } 63 }
@@ -85,9 +85,9 @@ export default { @@ -85,9 +85,9 @@ export default {
85 } 85 }
86 .abroad { 86 .abroad {
87 padding: 18px 0; 87 padding: 18px 0;
  88 + padding-bottom: 146px;
88 .padding_box { 89 .padding_box {
89 padding: 0 28px; 90 padding: 0 28px;
90 - padding-bottom: 16px;  
91 } 91 }
92 .uni_item_mini { 92 .uni_item_mini {
93 position: relative; 93 position: relative;
@@ -103,7 +103,7 @@ export default { @@ -103,7 +103,7 @@ export default {
103 position: relative; 103 position: relative;
104 border-radius: 16px; 104 border-radius: 16px;
105 overflow: hidden; 105 overflow: hidden;
106 - width: 336px; 106 + width: 336px;
107 img { 107 img {
108 width: 448px; 108 width: 448px;
109 height: 336px; 109 height: 336px;
@@ -180,15 +180,15 @@ export default { @@ -180,15 +180,15 @@ export default {
180 .price { 180 .price {
181 font-size: 34px; 181 font-size: 34px;
182 font-weight: bold; 182 font-weight: bold;
183 - color: #F64C37; 183 + color: #f64c37;
184 .icon { 184 .icon {
185 font-size: 24px; 185 font-size: 24px;
186 - color: #F64C37; 186 + color: #f64c37;
187 } 187 }
188 .tint { 188 .tint {
189 font-size: 22px; 189 font-size: 22px;
190 font-weight: normal; 190 font-weight: normal;
191 - color:#909399 191 + color: #909399;
192 } 192 }
193 .limit { 193 .limit {
194 font-size: 22px; 194 font-size: 22px;
@@ -211,4 +211,12 @@ export default { @@ -211,4 +211,12 @@ export default {
211 background: #f5f6fa; 211 background: #f5f6fa;
212 } 212 }
213 } 213 }
  214 +</style>
  215 +<style lang="scss">
  216 +// 长辈版
  217 +.elder {
  218 + .abroad {
  219 +
  220 + }
  221 +}
214 </style> 222 </style>
215 \ No newline at end of file 223 \ No newline at end of file
src/views/Service/component/ServiceListThird.vue
@@ -3,34 +3,34 @@ @@ -3,34 +3,34 @@
3 */ 3 */
4 <template> 4 <template>
5 <div class="tab_content abroad" :class="notab?'notab':''" @scroll="orderScroll" ref="viewBox"> 5 <div class="tab_content abroad" :class="notab?'notab':''" @scroll="orderScroll" ref="viewBox">
6 - <div class="padding_box" > 6 + <div class="padding_box">
7 <template v-for="(item,index) in list"> 7 <template v-for="(item,index) in list">
8 - <div class="cardBox" :key="index" @click="handleUniDetail(item)" >  
9 - <div class="cardBox_pic"><img style="width:100%;height:67.5vw" :src="item.coverUrl?item.coverUrl:defaultImg" alt=""></div>  
10 - <div class="cardBox_title">  
11 - <div>{{item.course_name}}</div>  
12 - <div class="cardBox_title_red">  
13 - <span v-if="item.showPrice > 0">¥{{item.showPrice}}</span>  
14 - <span v-else>免费</span>  
15 - </div>  
16 - </div>  
17 - <div class="cardBox_main">  
18 - {{item.course_info}} 8 + <div class="cardBox" :key="index" @click="handleUniDetail(item)">
  9 + <div class="cardBox_pic"><img style="width:100%;height:67.5vw" :src="item.coverUrl?item.coverUrl:defaultImg" alt=""></div>
  10 + <div class="cardBox_title">
  11 + <div>{{item.course_name}}</div>
  12 + <div class="cardBox_title_red">
  13 + <span v-if="item.showPrice > 0">¥{{item.showPrice}}</span>
  14 + <span v-else>免费</span>
19 </div> 15 </div>
20 - <div class="cardBox_bottom">  
21 - <div>  
22 - <div class="tag_box">  
23 - <template v-for="(tag,index2) in item.course_labels">  
24 - <span class="tag" v-if="tag" :key="index2">{{tag}}</span>  
25 - </template>  
26 - </div> 16 + </div>
  17 + <div class="cardBox_main">
  18 + {{item.course_info}}
  19 + </div>
  20 + <div class="cardBox_bottom">
  21 + <div>
  22 + <div class="tag_box">
  23 + <template v-for="(tag,index2) in item.course_labels">
  24 + <span class="tag" v-if="tag" :key="index2">{{tag}}</span>
  25 + </template>
27 </div> 26 </div>
28 - <div>  
29 - <div class="count">  
30 - <van-icon name="eye-o" /> {{item.read_count}}  
31 - </div> 27 + </div>
  28 + <div>
  29 + <div class="count">
  30 + <van-icon name="eye-o" /> {{item.read_count}}
32 </div> 31 </div>
33 </div> 32 </div>
  33 + </div>
34 </div> 34 </div>
35 </template> 35 </template>
36 </div> 36 </div>
@@ -48,14 +48,14 @@ export default { @@ -48,14 +48,14 @@ export default {
48 default: false 48 default: false
49 } 49 }
50 }, 50 },
51 - mounted(){ 51 + mounted () {
52 // window.onscroll = function() { 52 // window.onscroll = function() {
53 // //为了保证兼容性,这里取两个值,哪个有值取哪一个 53 // //为了保证兼容性,这里取两个值,哪个有值取哪一个
54 // //scrollTop就是触发滚轮事件时滚轮的高度 54 // //scrollTop就是触发滚轮事件时滚轮的高度
55 // var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; 55 // var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
56 // console.log("滚动距离" + scrollTop); 56 // console.log("滚动距离" + scrollTop);
57 // } 57 // }
58 - 58 +
59 // this.$refs.viewBox.addEventListener('scroll', (event) => { 59 // this.$refs.viewBox.addEventListener('scroll', (event) => {
60 // console.log('滚动',event) 60 // console.log('滚动',event)
61 // console.log(this.$refs.viewBox.scrollTop) 61 // console.log(this.$refs.viewBox.scrollTop)
@@ -71,9 +71,9 @@ export default { @@ -71,9 +71,9 @@ export default {
71 methods: { 71 methods: {
72 handleUniDetail (item) { 72 handleUniDetail (item) {
73 const publicName = sessionStorage.getItem('publicName'); 73 const publicName = sessionStorage.getItem('publicName');
74 - this.$router.push({ name: 'ServiceAbroadDetail', query: { courseId: item.id,publicName:publicName } }) 74 + this.$router.push({ name: 'ServiceAbroadDetail', query: { courseId: item.id, publicName: publicName } })
75 }, 75 },
76 - orderScroll() { 76 + orderScroll () {
77 // console.log(this.$refs.viewBox.scrollTop) 77 // console.log(this.$refs.viewBox.scrollTop)
78 } 78 }
79 } 79 }
@@ -86,7 +86,7 @@ export default { @@ -86,7 +86,7 @@ export default {
86 overflow: auto; 86 overflow: auto;
87 &.notab { 87 &.notab {
88 // height: calc(100vh - 196px); 88 // height: calc(100vh - 196px);
89 - background-color: #F5F7FA !important; 89 + background-color: #f5f7fa !important;
90 } 90 }
91 } 91 }
92 .tab_btn_box { 92 .tab_btn_box {
@@ -107,57 +107,55 @@ export default { @@ -107,57 +107,55 @@ export default {
107 } 107 }
108 .abroad { 108 .abroad {
109 padding: 18px 0; 109 padding: 18px 0;
  110 + padding-bottom: 146px;
110 .padding_box { 111 .padding_box {
111 padding: 0 5vw; 112 padding: 0 5vw;
112 - padding-bottom: 16px; 113 + // padding-bottom: 126px;
113 } 114 }
114 .cardBox { 115 .cardBox {
115 // width: calc(100vw - 56px); 116 // width: calc(100vw - 56px);
116 width: 90vw; 117 width: 90vw;
117 - // height: 92.5vw;  
118 - height: 70vw;  
119 margin-bottom: 20px; 118 margin-bottom: 20px;
120 background-color: #fff; 119 background-color: #fff;
121 120
122 .cardBox_pic { 121 .cardBox_pic {
123 - // height: 67.5vw;  
124 - height: 45vw;  
125 - width: 90vw;  
126 - flex-shrink: 0;  
127 - border-radius: 20px;  
128 - overflow: hidden; 122 + // height: 67.5vw;
  123 + height: 45vw;
  124 + width: 90vw;
  125 + flex-shrink: 0;
  126 + border-radius: 20px;
  127 + overflow: hidden;
129 128
130 - img {  
131 - transform: translateY(-20vw);  
132 - } 129 + img {
  130 + transform: translateY(-20vw);
  131 + }
133 } 132 }
134 .cardBox_title { 133 .cardBox_title {
135 - height: 10vw;  
136 - width: 100%;  
137 - padding: 0 3vw;  
138 - box-sizing: border-box;  
139 - font-size: 30px;  
140 - font-weight: bold;  
141 - // background-color: cadetblue;  
142 - display: flex;  
143 - justify-content: space-between;  
144 - align-items: center; 134 + height: 10vw;
  135 + width: 100%;
  136 + padding: 0 3vw;
  137 + box-sizing: border-box;
  138 + font-size: 30px;
  139 + font-weight: bold;
  140 + // background-color: cadetblue;
  141 + display: flex;
  142 + justify-content: space-between;
  143 + align-items: center;
145 144
146 - .cardBox_title_red {  
147 - width: 15vw;  
148 - color: red;  
149 - text-align: right;  
150 - } 145 + .cardBox_title_red {
  146 + width: 15vw;
  147 + color: red;
  148 + text-align: right;
  149 + }
151 } 150 }
152 .cardBox_main { 151 .cardBox_main {
153 - width: 100%;  
154 - padding: 0 3vw;  
155 - box-sizing: border-box;  
156 - font-size: 24px;  
157 - color: #999; 152 + width: 100%;
  153 + padding: 0 3vw;
  154 + box-sizing: border-box;
  155 + font-size: 24px;
  156 + color: #999;
158 } 157 }
159 .cardBox_bottom { 158 .cardBox_bottom {
160 - height: 8vw;  
161 width: 100%; 159 width: 100%;
162 padding: 0 3vw; 160 padding: 0 3vw;
163 box-sizing: border-box; 161 box-sizing: border-box;
@@ -172,10 +170,10 @@ export default { @@ -172,10 +170,10 @@ export default {
172 display: inline-block; 170 display: inline-block;
173 margin-bottom: 10px; 171 margin-bottom: 10px;
174 margin-right: 10px; 172 margin-right: 10px;
175 - color: #EE5959; 173 + color: #ee5959;
176 font-size: 20px; 174 font-size: 20px;
177 border-radius: 4px; 175 border-radius: 4px;
178 - border: 2px solid #EE5959; 176 + border: 2px solid #ee5959;
179 padding: 0px 6px; 177 padding: 0px 6px;
180 } 178 }
181 } 179 }
@@ -186,4 +184,29 @@ export default { @@ -186,4 +184,29 @@ export default {
186 } 184 }
187 } 185 }
188 } 186 }
  187 +</style>
  188 +<style lang="scss">
  189 +// 长辈版
  190 +.elder {
  191 + .abroad {
  192 + .cardBox {
  193 + .cardBox_title {
  194 + font-size: 44px;
  195 + }
  196 + .cardBox_main {
  197 + font-size: 44px;
  198 + }
  199 + .cardBox_bottom {
  200 + .tag_box {
  201 + .tag {
  202 + font-size: 40px;
  203 + }
  204 + }
  205 + .count {
  206 + font-size: 44px;
  207 + }
  208 + }
  209 + }
  210 + }
  211 +}
189 </style> 212 </style>
190 \ No newline at end of file 213 \ No newline at end of file