提交
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
/**
|
||||
* 本模块封装了Android、iOS的应用权限判断、打开应用权限设置界面、以及位置系统服务是否开启
|
||||
*/
|
||||
|
||||
var isIos
|
||||
// #ifdef APP-PLUS
|
||||
isIos = (plus.os.name == "iOS")
|
||||
@@ -159,7 +158,8 @@ function judgeIosPermissionMemo() {
|
||||
function requestAndroidPermission(permissionID) {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.android.requestPermissions(
|
||||
[permissionID], // 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装
|
||||
permissionID.split(","),
|
||||
// [permissionID], // 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装
|
||||
function(resultObj) {
|
||||
var result = 0;
|
||||
for (var i = 0; i < resultObj.granted.length; i++) {
|
||||
@@ -264,9 +264,142 @@ function checkSystemEnableLocation() {
|
||||
}
|
||||
}
|
||||
|
||||
let permissionMap = {
|
||||
"android": {
|
||||
"CAMERA_EXTERNAL_STORAGE": {
|
||||
"name": "android.permission.READ_EXTERNAL_STORAGE,android.permission.WRITE_EXTERNAL_STORAGE,android.permission.CAMERA",
|
||||
"title": "相机/相册权限说明",
|
||||
"content": "便于您使用该功能上传您的照片/图片用于上传用户头像、留言上传图片、申诉反馈上传图片等场景中读取和写入相册和文件内容"
|
||||
},
|
||||
"CAMERA": {
|
||||
"name": "android.permission.CAMERA",
|
||||
"title": "相机权限说明",
|
||||
"content": "便于您使用该功能上传您的照片/图片用于上传用户头像、留言上传图片、申诉反馈上传图片等场景中拍摄图片"
|
||||
},
|
||||
// "EXTERNAL_STORAGE": {
|
||||
// "name": "android.permission.READ_EXTERNAL_STORAGE,android.permission.WRITE_EXTERNAL_STORAGE",
|
||||
// "title": "相册权限说明",
|
||||
// "content": "便于您使用该功能上传您的照片/图片/视频及用于上传工单故障、维修图片、扫码识别设备等信息、意见反馈上传图片、上传设备、客户、设备图片等场景中读取和写入相册和文件内容"
|
||||
// },
|
||||
// "LOCATION": {
|
||||
// "name": "android.location.LocationManager",
|
||||
// "title": "定位权限说明",
|
||||
// "content": "便于您使用该功能定位您当前的位置,并上报当前位置给服务器,来智能得按照当前位置给您分配距离您最近的工单信息等功能"
|
||||
// },
|
||||
// "CALLPHONE": {
|
||||
// "name": "android.permission.CALL_PHONE",
|
||||
// "title": "拨打电话权限说明",
|
||||
// "content": "便于您使用该功能能够快速和提交工单信息的客户进行联系并进行及时处理"
|
||||
// },
|
||||
},
|
||||
"ios": {}
|
||||
}
|
||||
|
||||
let view = null;
|
||||
let viewShow = false;
|
||||
|
||||
function showViewDesc(permission) {
|
||||
let plat = isIos ? "ios" : "android";
|
||||
view = new plus.nativeObj.View('per-modal', {
|
||||
top: '0px',
|
||||
left: '0px',
|
||||
width: '100%',
|
||||
backgroundColor: 'rgba(0,0,0,0.4)',
|
||||
//opacity: '.9'
|
||||
})
|
||||
view.drawRect({
|
||||
color: '#fff',
|
||||
radius: '5px'
|
||||
}, {
|
||||
top: '170px',
|
||||
left: '5%',
|
||||
width: '90%',
|
||||
height: "150px",
|
||||
})
|
||||
view.drawText(permissionMap[plat][permission]["title"], {
|
||||
top: '180px',
|
||||
left: "8%",
|
||||
height: "30px"
|
||||
}, {
|
||||
align: "left",
|
||||
color: "#000",
|
||||
}, {
|
||||
onClick: function(e) {
|
||||
console.log(e);
|
||||
}
|
||||
})
|
||||
view.drawText(permissionMap[plat][permission]["content"], {
|
||||
top: '210px',
|
||||
height: "80px",
|
||||
left: "8%",
|
||||
width: "84%"
|
||||
}, {
|
||||
whiteSpace: 'normal',
|
||||
size: "14px",
|
||||
align: "left",
|
||||
color: "#656563"
|
||||
})
|
||||
setTimeout(() => {
|
||||
view.show()
|
||||
}, 200)
|
||||
}
|
||||
|
||||
function premissionCheck(permission) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let plat = isIos ? "ios" : "android";
|
||||
if (isIos) { // ios
|
||||
// const camera = permission.judgeIosPermission("camera");//判断ios是否给予摄像头权限
|
||||
// //ios相册没权限,系统会自动弹出授权框
|
||||
// //let photoLibrary = permission.judgeIosPermission("photoLibrary");//判断ios是否给予相册权限
|
||||
// if(camera){
|
||||
// resolve();
|
||||
// }else{
|
||||
// reject('需要开启相机使用权限');
|
||||
// }
|
||||
resolve(1)
|
||||
} else { // android
|
||||
let permission_arr = permissionMap[plat][permission]["name"].split(",");
|
||||
|
||||
let flag = true;
|
||||
for (let i = 0; i < permission_arr.length; i++) {
|
||||
let status = plus.navigator.checkPermission(permission_arr[i]);
|
||||
if (status == "undetermined") {
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
if (flag == false) { // 未完全授权
|
||||
showViewDesc(permission);
|
||||
requestAndroidPermission(permissionMap[plat][permission]["name"]).then((res) => {
|
||||
viewShow = false;
|
||||
setTimeout(() => {
|
||||
viewShow = true;
|
||||
}, 120)
|
||||
view.close();
|
||||
// if (res == -1) {
|
||||
// uni.showModal({
|
||||
// title: '提示',
|
||||
// content: '操作权限已被拒绝,请手动前往设置',
|
||||
// confirmText: "立即设置",
|
||||
// success: (res) => {
|
||||
// if (res.confirm) {
|
||||
// gotoAppPermissionSetting()
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
resolve(res)
|
||||
})
|
||||
} else {
|
||||
resolve(1)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
judgeIosPermission: judgeIosPermission,
|
||||
requestAndroidPermission: requestAndroidPermission,
|
||||
checkSystemEnableLocation: checkSystemEnableLocation,
|
||||
gotoAppPermissionSetting: gotoAppPermissionSetting
|
||||
gotoAppPermissionSetting: gotoAppPermissionSetting,
|
||||
premissionCheck: premissionCheck
|
||||
}
|
||||
272
js_sdk/wa-permission/permission11.js
Normal file
272
js_sdk/wa-permission/permission11.js
Normal file
@@ -0,0 +1,272 @@
|
||||
/**
|
||||
* 本模块封装了Android、iOS的应用权限判断、打开应用权限设置界面、以及位置系统服务是否开启
|
||||
*/
|
||||
|
||||
var isIos
|
||||
// #ifdef APP-PLUS
|
||||
isIos = (plus.os.name == "iOS")
|
||||
// #endif
|
||||
|
||||
// 判断推送权限是否开启
|
||||
function judgeIosPermissionPush() {
|
||||
var result = false;
|
||||
var UIApplication = plus.ios.import("UIApplication");
|
||||
var app = UIApplication.sharedApplication();
|
||||
var enabledTypes = 0;
|
||||
if (app.currentUserNotificationSettings) {
|
||||
var settings = app.currentUserNotificationSettings();
|
||||
enabledTypes = settings.plusGetAttribute("types");
|
||||
console.log("enabledTypes1:" + enabledTypes);
|
||||
if (enabledTypes == 0) {
|
||||
console.log("推送权限没有开启");
|
||||
} else {
|
||||
result = true;
|
||||
console.log("已经开启推送功能!")
|
||||
}
|
||||
plus.ios.deleteObject(settings);
|
||||
} else {
|
||||
enabledTypes = app.enabledRemoteNotificationTypes();
|
||||
if (enabledTypes == 0) {
|
||||
console.log("推送权限没有开启!");
|
||||
} else {
|
||||
result = true;
|
||||
console.log("已经开启推送功能!")
|
||||
}
|
||||
console.log("enabledTypes2:" + enabledTypes);
|
||||
}
|
||||
plus.ios.deleteObject(app);
|
||||
plus.ios.deleteObject(UIApplication);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 判断定位权限是否开启
|
||||
function judgeIosPermissionLocation() {
|
||||
var result = false;
|
||||
var cllocationManger = plus.ios.import("CLLocationManager");
|
||||
var status = cllocationManger.authorizationStatus();
|
||||
result = (status != 2)
|
||||
console.log("定位权限开启:" + result);
|
||||
// 以下代码判断了手机设备的定位是否关闭,推荐另行使用方法 checkSystemEnableLocation
|
||||
/* var enable = cllocationManger.locationServicesEnabled();
|
||||
var status = cllocationManger.authorizationStatus();
|
||||
console.log("enable:" + enable);
|
||||
console.log("status:" + status);
|
||||
if (enable && status != 2) {
|
||||
result = true;
|
||||
console.log("手机定位服务已开启且已授予定位权限");
|
||||
} else {
|
||||
console.log("手机系统的定位没有打开或未给予定位权限");
|
||||
} */
|
||||
plus.ios.deleteObject(cllocationManger);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 判断麦克风权限是否开启
|
||||
function judgeIosPermissionRecord() {
|
||||
var result = false;
|
||||
var avaudiosession = plus.ios.import("AVAudioSession");
|
||||
var avaudio = avaudiosession.sharedInstance();
|
||||
var permissionStatus = avaudio.recordPermission();
|
||||
console.log("permissionStatus:" + permissionStatus);
|
||||
if (permissionStatus == 1684369017 || permissionStatus == 1970168948) {
|
||||
console.log("麦克风权限没有开启");
|
||||
} else {
|
||||
result = true;
|
||||
console.log("麦克风权限已经开启");
|
||||
}
|
||||
plus.ios.deleteObject(avaudiosession);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 判断相机权限是否开启
|
||||
function judgeIosPermissionCamera() {
|
||||
var result = false;
|
||||
var AVCaptureDevice = plus.ios.import("AVCaptureDevice");
|
||||
var authStatus = AVCaptureDevice.authorizationStatusForMediaType('vide');
|
||||
console.log("authStatus:" + authStatus);
|
||||
if (authStatus == 3) {
|
||||
result = true;
|
||||
console.log("相机权限已经开启");
|
||||
} else {
|
||||
console.log("相机权限没有开启");
|
||||
}
|
||||
plus.ios.deleteObject(AVCaptureDevice);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 判断相册权限是否开启
|
||||
function judgeIosPermissionPhotoLibrary() {
|
||||
var result = false;
|
||||
var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary");
|
||||
var authStatus = PHPhotoLibrary.authorizationStatus();
|
||||
console.log("authStatus:" + authStatus);
|
||||
if (authStatus == 3) {
|
||||
result = true;
|
||||
console.log("相册权限已经开启");
|
||||
} else {
|
||||
console.log("相册权限没有开启");
|
||||
}
|
||||
plus.ios.deleteObject(PHPhotoLibrary);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 判断通讯录权限是否开启
|
||||
function judgeIosPermissionContact() {
|
||||
var result = false;
|
||||
var CNContactStore = plus.ios.import("CNContactStore");
|
||||
var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0);
|
||||
if (cnAuthStatus == 3) {
|
||||
result = true;
|
||||
console.log("通讯录权限已经开启");
|
||||
} else {
|
||||
console.log("通讯录权限没有开启");
|
||||
}
|
||||
plus.ios.deleteObject(CNContactStore);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 判断日历权限是否开启
|
||||
function judgeIosPermissionCalendar() {
|
||||
var result = false;
|
||||
var EKEventStore = plus.ios.import("EKEventStore");
|
||||
var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0);
|
||||
if (ekAuthStatus == 3) {
|
||||
result = true;
|
||||
console.log("日历权限已经开启");
|
||||
} else {
|
||||
console.log("日历权限没有开启");
|
||||
}
|
||||
plus.ios.deleteObject(EKEventStore);
|
||||
return result;
|
||||
}
|
||||
|
||||
// 判断备忘录权限是否开启
|
||||
function judgeIosPermissionMemo() {
|
||||
var result = false;
|
||||
var EKEventStore = plus.ios.import("EKEventStore");
|
||||
var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1);
|
||||
if (ekAuthStatus == 3) {
|
||||
result = true;
|
||||
console.log("备忘录权限已经开启");
|
||||
} else {
|
||||
console.log("备忘录权限没有开启");
|
||||
}
|
||||
plus.ios.deleteObject(EKEventStore);
|
||||
return result;
|
||||
}
|
||||
|
||||
// Android权限查询
|
||||
function requestAndroidPermission(permissionID) {
|
||||
return new Promise((resolve, reject) => {
|
||||
plus.android.requestPermissions(
|
||||
[permissionID], // 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装
|
||||
function(resultObj) {
|
||||
var result = 0;
|
||||
for (var i = 0; i < resultObj.granted.length; i++) {
|
||||
var grantedPermission = resultObj.granted[i];
|
||||
console.log('已获取的权限:' + grantedPermission);
|
||||
result = 1
|
||||
}
|
||||
for (var i = 0; i < resultObj.deniedPresent.length; i++) {
|
||||
var deniedPresentPermission = resultObj.deniedPresent[i];
|
||||
console.log('拒绝本次申请的权限:' + deniedPresentPermission);
|
||||
result = 0
|
||||
}
|
||||
for (var i = 0; i < resultObj.deniedAlways.length; i++) {
|
||||
var deniedAlwaysPermission = resultObj.deniedAlways[i];
|
||||
console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
|
||||
result = -1
|
||||
}
|
||||
resolve(result);
|
||||
// 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
|
||||
// if (result != 1) {
|
||||
// gotoAppPermissionSetting()
|
||||
// }
|
||||
},
|
||||
function(error) {
|
||||
console.log('申请权限错误:' + error.code + " = " + error.message);
|
||||
resolve({
|
||||
code: error.code,
|
||||
message: error.message
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
// 使用一个方法,根据参数判断权限
|
||||
function judgeIosPermission(permissionID) {
|
||||
if (permissionID == "location") {
|
||||
return judgeIosPermissionLocation()
|
||||
} else if (permissionID == "camera") {
|
||||
return judgeIosPermissionCamera()
|
||||
} else if (permissionID == "photoLibrary") {
|
||||
return judgeIosPermissionPhotoLibrary()
|
||||
} else if (permissionID == "record") {
|
||||
return judgeIosPermissionRecord()
|
||||
} else if (permissionID == "push") {
|
||||
return judgeIosPermissionPush()
|
||||
} else if (permissionID == "contact") {
|
||||
return judgeIosPermissionContact()
|
||||
} else if (permissionID == "calendar") {
|
||||
return judgeIosPermissionCalendar()
|
||||
} else if (permissionID == "memo") {
|
||||
return judgeIosPermissionMemo()
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 跳转到**应用**的权限页面
|
||||
function gotoAppPermissionSetting() {
|
||||
if (isIos) {
|
||||
var UIApplication = plus.ios.import("UIApplication");
|
||||
var application2 = UIApplication.sharedApplication();
|
||||
var NSURL2 = plus.ios.import("NSURL");
|
||||
// var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
|
||||
var setting2 = NSURL2.URLWithString("app-settings:");
|
||||
application2.openURL(setting2);
|
||||
|
||||
plus.ios.deleteObject(setting2);
|
||||
plus.ios.deleteObject(NSURL2);
|
||||
plus.ios.deleteObject(application2);
|
||||
} else {
|
||||
// console.log(plus.device.vendor);
|
||||
var Intent = plus.android.importClass("android.content.Intent");
|
||||
var Settings = plus.android.importClass("android.provider.Settings");
|
||||
var Uri = plus.android.importClass("android.net.Uri");
|
||||
var mainActivity = plus.android.runtimeMainActivity();
|
||||
var intent = new Intent();
|
||||
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
|
||||
intent.setData(uri);
|
||||
mainActivity.startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
// 检查系统的设备服务是否开启
|
||||
// var checkSystemEnableLocation = async function () {
|
||||
function checkSystemEnableLocation() {
|
||||
if (isIos) {
|
||||
var result = false;
|
||||
var cllocationManger = plus.ios.import("CLLocationManager");
|
||||
var result = cllocationManger.locationServicesEnabled();
|
||||
console.log("系统定位开启:" + result);
|
||||
plus.ios.deleteObject(cllocationManger);
|
||||
return result;
|
||||
} else {
|
||||
var context = plus.android.importClass("android.content.Context");
|
||||
var locationManager = plus.android.importClass("android.location.LocationManager");
|
||||
var main = plus.android.runtimeMainActivity();
|
||||
var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
|
||||
var result = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER);
|
||||
console.log("系统定位开启:" + result);
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
judgeIosPermission: judgeIosPermission,
|
||||
requestAndroidPermission: requestAndroidPermission,
|
||||
checkSystemEnableLocation: checkSystemEnableLocation,
|
||||
gotoAppPermissionSetting: gotoAppPermissionSetting
|
||||
}
|
||||
@@ -6,14 +6,12 @@
|
||||
"request": 3000
|
||||
},
|
||||
"transformPx": false,
|
||||
"icons" : [
|
||||
{
|
||||
"icons": [{
|
||||
"sizes": "分辨率,192x192",
|
||||
"src": "图片路径"
|
||||
}
|
||||
],
|
||||
"versionName" : "1.0.05",
|
||||
"versionCode" : 1005,
|
||||
}],
|
||||
"versionName": "1.0.18",
|
||||
"versionCode": 1018,
|
||||
"app-plus": {
|
||||
"nvueCompiler": "weex",
|
||||
"compatible": {
|
||||
@@ -270,4 +268,3 @@
|
||||
}
|
||||
}
|
||||
// 小程序特有相关
|
||||
|
||||
|
||||
19
pages.json
19
pages.json
@@ -39,7 +39,10 @@
|
||||
"path": "pages/homePage/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "首页",
|
||||
"enablePullDownRefresh": false, // 禁止下拉刷新,
|
||||
|
||||
"enablePullDownRefresh": true,
|
||||
"onReachBottomDistance": 100,
|
||||
|
||||
"app-plus": {
|
||||
"bounce": "none",
|
||||
"titleNView": false,
|
||||
@@ -228,6 +231,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/aboutUs/agreement",
|
||||
"style": {
|
||||
"navigationBarTitleText": "协议",
|
||||
"enablePullDownRefresh": false,
|
||||
"app-plus": {
|
||||
"bounce": "none",
|
||||
"titleNView": false,
|
||||
"popGesture": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/wallet/recharge/index",
|
||||
"style": {
|
||||
@@ -294,7 +309,7 @@
|
||||
"path": "pages/mine/vip/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "vip",
|
||||
"enablePullDownRefresh": true,
|
||||
"enablePullDownRefresh": false,
|
||||
"onReachBottomDistance": 100,
|
||||
"app-plus": {
|
||||
"bounce": "none",
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
<view class="left">
|
||||
<view v-for="(v,i) in iconList" class="icon_item" v-if="iconList.length>0">
|
||||
<u-icon :name="v.icon" :color="v.infoColor" size="22" v-if="v.iconType" style="margin:0 auto" @click="clickIcon(v)"
|
||||
></u-icon>
|
||||
<u-icon :name="v.icon" :color="v.infoColor" size="22" v-if="v.iconType" style="margin:0 auto"
|
||||
@click="clickIcon(v)"></u-icon>
|
||||
|
||||
<uni-icons :type="v.icon" size="22" :color="v.infoColor" style="margin:0 auto" v-else> </uni-icons>
|
||||
<view :style="`color:${v.infoColor};`">{{ v.text }}</view>
|
||||
@@ -15,13 +15,15 @@
|
||||
</view>
|
||||
<view class="right">
|
||||
|
||||
<view class="button" v-for="(v,i) in customButton" :style="`background:${v.backgroundColor} !important;color:${v.color};width:${v.width}`" @click="submit(v)">
|
||||
<view class="button" v-for="(v,i) in customButton"
|
||||
:style="`background:${v.backgroundColor} !important;color:${v.color};width:${v.width}`"
|
||||
@click="submit(v)">
|
||||
{{ v.text }}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
<slot name="bottomSlot"></slot>
|
||||
<!-- <view>{{ detailInfo.content }}</view> -->
|
||||
</view>
|
||||
|
||||
@@ -32,7 +34,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import $http from '@/config/requestConfig.js';
|
||||
import {
|
||||
mapState
|
||||
@@ -206,7 +207,6 @@ this.$emit('clickIcon',v)
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.goods_nav {
|
||||
background-color: #fff;
|
||||
width: 100%;
|
||||
@@ -215,6 +215,7 @@ overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.left {
|
||||
height: 100%;
|
||||
float: left;
|
||||
|
||||
@@ -1,107 +1,61 @@
|
||||
<template>
|
||||
<view
|
||||
class="container commonPageBox commonDetailPage"
|
||||
style="height: auto !important"
|
||||
>
|
||||
<view class="container commonPageBox commonDetailPage" style="height: auto !important">
|
||||
<!-- 公共组件-每个页面必须引入 -->
|
||||
<public-module></public-module>
|
||||
<z-nav-bar title="课程详情" bgColor="#5F8F7F" fontColor="#fff"></z-nav-bar>
|
||||
|
||||
<common-anchor-link
|
||||
style="width: 100%"
|
||||
baseHeight="200"
|
||||
ref="commonAnchorLink"
|
||||
:allDataList="allDataList"
|
||||
titleKey="title"
|
||||
dataListKey="courseList"
|
||||
:titleStyle="{}"
|
||||
:tabStyle="{
|
||||
<common-anchor-link style="width: 100%" baseHeight="200" ref="commonAnchorLink" :allDataList="allDataList"
|
||||
titleKey="title" dataListKey="courseList" :titleStyle="{}" :tabStyle="{
|
||||
background: '#fff',
|
||||
}"
|
||||
>
|
||||
}">
|
||||
<template slot="tabs" slot-scope="slotProps"> </template>
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<u-icon
|
||||
v-if="slotProps.data.isBuy != 1 && (vip.type == 0 || vip.type == 2)"
|
||||
class="editIcon"
|
||||
name="lock-fill"
|
||||
color="#aaa"
|
||||
size="26"
|
||||
style="display: inline-block; margin-left: 5rpx"
|
||||
></u-icon>
|
||||
<u-icon v-if="slotProps.data.isBuy != 1 && (vip.type == 0 || vip.type == 2)" class="editIcon"
|
||||
name="lock-fill" color="#aaa" size="26" style="display: inline-block; margin-left: 5rpx"></u-icon>
|
||||
</template>
|
||||
|
||||
<template slot="otherContent" slot-scope="slotProps">
|
||||
<u-alert
|
||||
v-if="goBuyTitle"
|
||||
style="
|
||||
<u-alert v-if="goBuyTitle" style="
|
||||
background: linear-gradient(90deg, #5f8f7f 0%, #f3faf3 100%);
|
||||
/* position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 10; */
|
||||
"
|
||||
type="warning"
|
||||
@click="handleClickGetVip"
|
||||
:title="goBuyTitle"
|
||||
:show-icon="true"
|
||||
>
|
||||
<template
|
||||
slot="rightSlot"
|
||||
slot-scope="slotProps"
|
||||
v-if="$platform == 'android'"
|
||||
>
|
||||
" type="warning" @click="handleClickGetVip" :title="goBuyTitle" :show-icon="true">
|
||||
<template slot="rightSlot" slot-scope="slotProps" v-if="$platform == 'android'">
|
||||
<text class="saveBtn vipBtn flexbox buyBtn" v-if="goBuyType == 0">
|
||||
立即购买
|
||||
</text>
|
||||
<text class="flexbox" style="color: #5f8f7f" v-if="goBuyType == 1">
|
||||
立即续费
|
||||
</text>
|
||||
<text
|
||||
class="saveBtn vipBtn flexbox"
|
||||
style="
|
||||
<text class="saveBtn vipBtn flexbox" style="
|
||||
font-weight: bold;
|
||||
padding-top: 6rpx;
|
||||
padding-bottom: 6rpx;
|
||||
background: #00d8df !important;
|
||||
color: #fff;
|
||||
"
|
||||
v-if="goBuyType == 2 || goBuyType == 3"
|
||||
>
|
||||
" v-if="goBuyType == 2 || goBuyType == 3">
|
||||
立即升级
|
||||
</text>
|
||||
|
||||
<view> </view>
|
||||
</template>
|
||||
</u-alert>
|
||||
<view
|
||||
v-if="curriculumData.image"
|
||||
:style="`height: auto !important;${goBuyTitle ? '' : ''}`"
|
||||
>
|
||||
<image
|
||||
style="width: 100%"
|
||||
:src="curriculumData.image"
|
||||
mode="widthFix"
|
||||
@click="previewImage(curriculumData.image)"
|
||||
>
|
||||
<view v-if="curriculumData.image" :style="`height: auto !important;${goBuyTitle ? '' : ''}`">
|
||||
<image style="width: 100%" :src="curriculumData.image" mode="widthFix"
|
||||
@click="previewImage(curriculumData.image)">
|
||||
</image>
|
||||
</view>
|
||||
|
||||
<view
|
||||
v-else
|
||||
class="headImage"
|
||||
style="height: 400rpx; background-color: #f5f5f5"
|
||||
>
|
||||
<view v-else class="headImage" style="height: 400rpx; background-color: #f5f5f5">
|
||||
</view>
|
||||
|
||||
<view
|
||||
class="containerBg1"
|
||||
:style="`${
|
||||
<view class="containerBg1" :style="`${
|
||||
curriculumData.content && curriculumData.content != ''
|
||||
? 'padding:10rpx 0;'
|
||||
: ''
|
||||
}`"
|
||||
>
|
||||
}`">
|
||||
<view class="course_info_box">
|
||||
<view class="course_info">
|
||||
<view class="flexbox course_title" v-if="curriculumData.id">
|
||||
@@ -118,20 +72,11 @@
|
||||
: ""
|
||||
}}
|
||||
</view>
|
||||
<view
|
||||
class="containerBg"
|
||||
v-if="curriculumData.content && curriculumData.content != ''"
|
||||
>
|
||||
<view class="containerBg" v-if="curriculumData.content && curriculumData.content != ''">
|
||||
<view class="prof">
|
||||
<view
|
||||
style="padding: 0 20rpx"
|
||||
@click="isHideCourseInfo = !isHideCourseInfo"
|
||||
>
|
||||
<view
|
||||
:class="`${isHideCourseInfo ? 'hidden2' : ''}`"
|
||||
style="width: calc(100% - 50rpx)"
|
||||
v-html="curriculumData.content"
|
||||
>
|
||||
<view style="padding: 0 20rpx" @click="isHideCourseInfo = !isHideCourseInfo">
|
||||
<view :class="`${isHideCourseInfo ? 'hidden2' : ''}`"
|
||||
style="width: calc(100% - 50rpx)" v-html="curriculumData.content">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -150,62 +95,44 @@
|
||||
slotProps.data.title
|
||||
}}</text>
|
||||
</view>
|
||||
<view
|
||||
class="not_purchased"
|
||||
v-if="
|
||||
<view class="not_purchased" v-if="
|
||||
(slotProps.data.isBuy == 0 &&
|
||||
(vip.type == 0 || vip.type == 2)) ||
|
||||
(slotProps.data.isBuy == 1 &&
|
||||
(vip.type == 0 || vip.type == 2) &&
|
||||
slotProps.data.endTime)
|
||||
"
|
||||
>
|
||||
">
|
||||
<view class="spot"></view>
|
||||
|
||||
<text
|
||||
v-if="
|
||||
<text v-if="
|
||||
slotProps.data.isBuy == 0 &&
|
||||
(vip.type == 0 || vip.type == 2)
|
||||
"
|
||||
>未购买
|
||||
">未购买
|
||||
</text>
|
||||
|
||||
<text
|
||||
v-if="
|
||||
<text v-if="
|
||||
slotProps.data.isBuy == 1 &&
|
||||
(vip.type == 0 || vip.type == 2) &&
|
||||
slotProps.data.endTime
|
||||
"
|
||||
>有效期至{{ slotProps.data.endTime }}
|
||||
">有效期至{{ slotProps.data.endTime }}
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<view class="right">
|
||||
<!-- slotProps.data.type---------- 0 是免费 1 普通 2 svip -->
|
||||
<u-icon
|
||||
v-if="
|
||||
(goBuyType == 0 || goBuyType == 2) &&
|
||||
slotProps.data.type != 0
|
||||
"
|
||||
@click="handleClickGetGoodsList(slotProps.data)"
|
||||
class="editIcon"
|
||||
name="shopping-cart-fill"
|
||||
color="#FF2B57"
|
||||
size="30"
|
||||
style="display: inline-block; margin-left: 10rpx"
|
||||
></u-icon>
|
||||
<u-icon v-if="
|
||||
(slotProps.data.type != 0 && goBuyType != 1) ||
|
||||
(slotProps.data.type == 2 && goBuyType != 1)
|
||||
" @click="handleClickGetGoodsList(slotProps.data)" class="editIcon" name="shopping-cart-fill"
|
||||
color="#FF2B57" size="30"
|
||||
style="display: inline-block; margin-left: 10rpx"></u-icon>
|
||||
|
||||
<text
|
||||
v-if="
|
||||
<text v-if="
|
||||
(goBuyType == 0 || goBuyType == 2) &&
|
||||
slotProps.data.type == 0 &&
|
||||
!slotProps.data.endTime
|
||||
"
|
||||
style="color: #fff; font-size: 12px"
|
||||
class="fdButtonBox aui-text-success"
|
||||
@click="handleClickGetGoodsList(slotProps.data)"
|
||||
>开始学习</text
|
||||
>
|
||||
" style="color: #fff; font-size: 12px" class="fdButtonBox aui-text-success"
|
||||
@click="handleClickGetGoodsList(slotProps.data)">开始学习</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -217,26 +144,17 @@
|
||||
<view class="shiting_content">
|
||||
<view class="catalogueList">
|
||||
<view class="chapter_content">
|
||||
<courseDescription
|
||||
:isCondition="true"
|
||||
:dataList="slotProps.dataList"
|
||||
@hancleClick="gotoDetail"
|
||||
label="title"
|
||||
>
|
||||
<courseDescription :isCondition="true" :dataList="slotProps.dataList"
|
||||
@hancleClick="gotoDetail" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view
|
||||
:style="`${
|
||||
<view :style="`${
|
||||
slotProps.rowIndex < 3
|
||||
? 'width:calc(100% - 100rpx);float:left;'
|
||||
: 'width:100%;'
|
||||
}`"
|
||||
>
|
||||
<text
|
||||
:class="`${
|
||||
}`">
|
||||
<text :class="`${
|
||||
slotProps.row.viewFlg == 1 ? 'aui-text-success' : ''
|
||||
}`"
|
||||
>{{ slotProps.row.title }}</text
|
||||
>
|
||||
}`">{{ slotProps.row.title }}</text>
|
||||
</view>
|
||||
|
||||
<!-- <text v-if="slotProps.row.conditions!='03'">【试听】</text> -->
|
||||
@@ -249,12 +167,8 @@
|
||||
<template slot="rightSlot" slot-scope="slotProps">
|
||||
<!-- {{ slotProps.row.bxType }} -->
|
||||
|
||||
<text
|
||||
class="fdButtonBox aui-text-success"
|
||||
style="background: none"
|
||||
v-if="slotProps.row.isAudition == 1 "
|
||||
>试听</text
|
||||
>
|
||||
<text class="fdButtonBox aui-text-success" style="background: none"
|
||||
v-if="slotProps.row.isAudition == 1">试听</text>
|
||||
|
||||
<view> </view>
|
||||
</template>
|
||||
@@ -283,31 +197,20 @@
|
||||
|
||||
<view class="schedule">
|
||||
<view class="icon_box">
|
||||
<image
|
||||
src="@/static/icon/course_07.png"
|
||||
mode="aspectFil"
|
||||
class="icon1"
|
||||
>学习进度
|
||||
<image src="@/static/icon/course_07.png" mode="aspectFil" class="icon1">学习进度
|
||||
</image>
|
||||
</view>
|
||||
<view class="progress_box">
|
||||
<view class="progress_icon" style=""
|
||||
><u-line-progress
|
||||
activeColor="#3AB3AE"
|
||||
height="14"
|
||||
:percentage="slotProps.data.completion"
|
||||
:showText="false"
|
||||
></u-line-progress>
|
||||
<text
|
||||
style="
|
||||
<view class="progress_icon" style=""><u-line-progress activeColor="#3AB3AE"
|
||||
height="14" :percentage="slotProps.data.completion"
|
||||
:showText="false"></u-line-progress>
|
||||
<text style="
|
||||
font-size: 28rpx;
|
||||
margin-left: 20rpx;
|
||||
margin-top: -2rpx;
|
||||
font-weight: 700;
|
||||
"
|
||||
>
|
||||
{{ slotProps.data.completion }} %</text
|
||||
>
|
||||
">
|
||||
{{ slotProps.data.completion }} %</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -327,18 +230,12 @@
|
||||
@confirm="hancleModalConfirm"
|
||||
@cancel="hancleModalCancel"
|
||||
></u-modal> -->
|
||||
<common-select-goods
|
||||
ref="commonSelectGoods"
|
||||
:selectGoodsData="selectGoodsData"
|
||||
:goodsList="goodsList"
|
||||
:buyOptions="buyOptions"
|
||||
:customButtonGroup1="customButtonGroup1"
|
||||
@selectGoods="handleClickSelectGoods"
|
||||
<common-select-goods ref="commonSelectGoods" :selectGoodsData="selectGoodsData" :goodsList="goodsList"
|
||||
:buyOptions="buyOptions" :customButtonGroup1="customButtonGroup1" @selectGoods="handleClickSelectGoods"
|
||||
@onHandleClickBuy="
|
||||
$refs.commonSelectGoods.close();
|
||||
protocolShow = true;
|
||||
"
|
||||
></common-select-goods>
|
||||
"></common-select-goods>
|
||||
|
||||
<u-popup :show="protocolShow" mode="center" round="6">
|
||||
<view class="popup_box">
|
||||
@@ -361,17 +258,8 @@
|
||||
</view>
|
||||
<view class="bottom">
|
||||
<view class="button_box">
|
||||
<u-button
|
||||
size="small"
|
||||
text="不同意"
|
||||
@click="protocolShow = false"
|
||||
></u-button>
|
||||
<u-button
|
||||
text="同意"
|
||||
color="#3AB3AE"
|
||||
size="small"
|
||||
@click="onHandleClickBuy"
|
||||
></u-button>
|
||||
<u-button size="small" text="不同意" @click="protocolShow = false"></u-button>
|
||||
<u-button text="同意" color="#3AB3AE" size="small" @click="onHandleClickBuy"></u-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -385,7 +273,9 @@ import courseDescription from "@/pages/component/commonComponents/list";
|
||||
import price from "../price/index.vue";
|
||||
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import { mapState } from "vuex";
|
||||
import {
|
||||
mapState
|
||||
} from "vuex";
|
||||
export default {
|
||||
components: {
|
||||
courseDescription, //课程说明
|
||||
@@ -422,14 +312,12 @@ export default {
|
||||
// info: 2
|
||||
// }
|
||||
],
|
||||
customButtonGroup1: [
|
||||
{
|
||||
customButtonGroup1: [{
|
||||
with: 200,
|
||||
text: "立即购买",
|
||||
backgroundColor: "linear-gradient(90deg, #3AB3AE 0%, #117e4c 100%)",
|
||||
color: "#fff",
|
||||
},
|
||||
],
|
||||
}, ],
|
||||
relatedCoursesList: [], //相关课程
|
||||
goodsList: [], //课程相关商品
|
||||
curriculumData: {},
|
||||
@@ -452,8 +340,7 @@ export default {
|
||||
goBuyTitle: "",
|
||||
goBuyType: "",
|
||||
description: "",
|
||||
teachingList: [
|
||||
{
|
||||
teachingList: [{
|
||||
title: "临床实践",
|
||||
|
||||
type: "02",
|
||||
@@ -600,9 +487,9 @@ export default {
|
||||
getPercentage() {
|
||||
console.log(this.cateList[this.currentCateIndex]);
|
||||
if (this.cateList) {
|
||||
return this.cateList[this.currentCateIndex]
|
||||
? this.cateList[this.currentCateIndex].completion
|
||||
: 0;
|
||||
return this.cateList[this.currentCateIndex] ?
|
||||
this.cateList[this.currentCateIndex].completion :
|
||||
0;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
@@ -673,6 +560,20 @@ export default {
|
||||
this.$forceUpdate();
|
||||
});
|
||||
} else {
|
||||
if (v.type == 2) {
|
||||
// 超v
|
||||
|
||||
if (this.goBuyType != 1) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "当前课程目录是超V专享,开通超V可观看",
|
||||
confirmText: "好的",
|
||||
showCancel: false,
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (this.goBuyType == 0 || this.goBuyType == 2) {
|
||||
this.$http
|
||||
.request({
|
||||
url: this.urlList.goodsList,
|
||||
@@ -698,6 +599,7 @@ export default {
|
||||
this.$forceUpdate();
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
hancleModalConfirm() {
|
||||
var data = {
|
||||
@@ -736,8 +638,7 @@ export default {
|
||||
}
|
||||
this.modalInfo = {
|
||||
title: "提示信息",
|
||||
content:
|
||||
"用户您好,该课程已到期,通过支付" +
|
||||
content: "用户您好,该课程已到期,通过支付" +
|
||||
fee +
|
||||
"元,本门课程可获得" +
|
||||
days +
|
||||
@@ -1025,7 +926,9 @@ export default {
|
||||
transformData(inputData) {
|
||||
const result = {};
|
||||
inputData.forEach((item) => {
|
||||
const { letter } = item;
|
||||
const {
|
||||
letter
|
||||
} = item;
|
||||
if (!result[letter]) {
|
||||
result[letter] = [];
|
||||
}
|
||||
@@ -1248,8 +1151,7 @@ export default {
|
||||
// height: 600rpx !important;
|
||||
}
|
||||
|
||||
.commonDetailPage {
|
||||
}
|
||||
.commonDetailPage {}
|
||||
|
||||
.curriulum_box {
|
||||
margin-top: 20rpx;
|
||||
@@ -1615,6 +1517,7 @@ export default {
|
||||
}
|
||||
|
||||
.course_info_box {
|
||||
|
||||
// margin-bottom:10rpx;
|
||||
// padding:20rpx;
|
||||
.course_info {
|
||||
|
||||
@@ -4,29 +4,13 @@
|
||||
<public-module></public-module>
|
||||
<z-nav-bar title="商品详情" bgColor="#3AB3AE" fontColor="#fff"></z-nav-bar>
|
||||
|
||||
<view
|
||||
class="contentBox commonPageContentBox"
|
||||
v-if="!this.$store.state.loadingShow"
|
||||
>
|
||||
<view class="contentBox commonPageContentBox" v-if="!this.$store.state.loadingShow">
|
||||
<!-- :indicator-dots="true" -->
|
||||
<swiper
|
||||
:autoplay="true"
|
||||
:interval="3000"
|
||||
:duration="1000"
|
||||
style="width: 100%; height: 750rpx; background-color: #f5f5f5"
|
||||
>
|
||||
<swiper-item
|
||||
v-for="(item, index) in swiperList"
|
||||
:key="index"
|
||||
style="width: 100%; height: 100%"
|
||||
>
|
||||
<swiper :autoplay="true" :interval="3000" :duration="1000"
|
||||
style="width: 100%; height: 750rpx; background-color: #f5f5f5">
|
||||
<swiper-item v-for="(item, index) in swiperList" :key="index" style="width: 100%; height: 100%">
|
||||
<!-- <image :src="curriculumData.explainsImg" mode="widthFix" class="headImage"></image> -->
|
||||
<image
|
||||
:src="item"
|
||||
mode="aspectFit"
|
||||
style="width: 100%; height: 100%"
|
||||
@click="previewImage(item)"
|
||||
>
|
||||
<image :src="item" mode="aspectFit" style="width: 100%; height: 100%" @click="previewImage(item)">
|
||||
</image>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
@@ -36,17 +20,14 @@
|
||||
<view v-if="this.options.isMiaosha == 1" class="miaosha_box">
|
||||
<view class="price_box">
|
||||
<view class="price_left">
|
||||
<template
|
||||
v-if="
|
||||
<template v-if="
|
||||
curriculumData.activityPrice &&
|
||||
curriculumData.activityPrice > 0
|
||||
"
|
||||
>
|
||||
">
|
||||
<text class="aui-text-danger price">
|
||||
¥{{ curriculumData.activityPrice }}
|
||||
</text>
|
||||
<text class="price original_price"
|
||||
>原价:¥{{ curriculumData.price }}
|
||||
<text class="price original_price">原价:¥{{ curriculumData.price }}
|
||||
</text>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -55,8 +36,7 @@
|
||||
</text>
|
||||
</template>
|
||||
|
||||
<view class="price original_price sales_number"
|
||||
>已售 {{ curriculumData.sumSales }}件
|
||||
<view class="price original_price sales_number">已售 {{ curriculumData.sumSales }}件
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -72,23 +52,19 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="curriulum_title"
|
||||
>{{ curriculumData.productName }}
|
||||
<view class="curriulum_title">{{ curriculumData.productName }}
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="normal_box">
|
||||
<view class="price_box">
|
||||
<template
|
||||
v-if="
|
||||
<template v-if="
|
||||
curriculumData.activityPrice &&
|
||||
curriculumData.activityPrice > 0
|
||||
"
|
||||
>
|
||||
">
|
||||
<text class="aui-text-danger price">
|
||||
¥{{ curriculumData.activityPrice }}
|
||||
</text>
|
||||
<text class="price original_price"
|
||||
>原价:¥{{ curriculumData.price }}
|
||||
<text class="price original_price">原价:¥{{ curriculumData.price }}
|
||||
</text>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -96,15 +72,12 @@
|
||||
¥{{ curriculumData.price }}
|
||||
</text>
|
||||
</template>
|
||||
<text
|
||||
class="price original_price sales_number"
|
||||
style="float: right"
|
||||
>已售 {{ curriculumData.sumSales }}件
|
||||
<text class="price original_price sales_number" style="float: right">已售
|
||||
{{ curriculumData.sumSales }}件
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<view class="curriulum_title" style="margin-top: 40rpx"
|
||||
>{{ curriculumData.productName }}
|
||||
<view class="curriulum_title" style="margin-top: 40rpx">{{ curriculumData.productName }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -113,15 +86,10 @@
|
||||
</view>
|
||||
|
||||
<template>
|
||||
<common-sticky
|
||||
label="title"
|
||||
:itemStyle="`width:${
|
||||
<common-sticky label="title" :itemStyle="`width:${
|
||||
cateList.length == 2 ? '50' : '33'
|
||||
}%;padding-left: 15px; padding-right: 15px; height: 68rpx;`"
|
||||
:list="cateList"
|
||||
:currentCateIndex="currentCateIndex"
|
||||
@handleselectCate="handleselectCate"
|
||||
>
|
||||
}%;padding-left: 15px; padding-right: 15px; height: 68rpx;`" :list="cateList"
|
||||
:currentCateIndex="currentCateIndex" @handleselectCate="handleselectCate">
|
||||
</common-sticky>
|
||||
</template>
|
||||
|
||||
@@ -150,52 +118,28 @@
|
||||
-->
|
||||
|
||||
<view :class="`dataList `">
|
||||
<view
|
||||
class="goods_detail_list_title bg_box_shandow color_shandow bg_color PM_font"
|
||||
style="background-color: #d8f8e4"
|
||||
>
|
||||
<view class="goods_detail_list_title bg_box_shandow color_shandow bg_color PM_font"
|
||||
style="background-color: #d8f8e4">
|
||||
<view class="left">
|
||||
<u-icon
|
||||
name="grid"
|
||||
color="#018F89"
|
||||
size="23"
|
||||
style="display: inline-block; margin-right: 10rpx"
|
||||
></u-icon>
|
||||
商品规格</view
|
||||
>
|
||||
|
||||
<text class="right" @click="openPopup"
|
||||
>共{{ goodsList.length }}种商品可选择</text
|
||||
>
|
||||
<u-icon name="grid" color="#018F89" size="23"
|
||||
style="display: inline-block; margin-right: 10rpx"></u-icon>
|
||||
商品规格
|
||||
</view>
|
||||
<common-goods-list
|
||||
imgUrl="url"
|
||||
isNoIcon
|
||||
imgMode="aspectFit"
|
||||
class="color_shandow"
|
||||
defaultUrl=""
|
||||
:isCondition="true"
|
||||
:dataList="goodsList"
|
||||
@hancleClick="selectGoods"
|
||||
label="title"
|
||||
>
|
||||
|
||||
<text class="right" @click="openPopup">共{{ goodsList.length }}种商品可选择</text>
|
||||
</view>
|
||||
<common-goods-list imgUrl="url" isNoIcon imgMode="aspectFit" class="color_shandow" defaultUrl=""
|
||||
:isCondition="true" :dataList="goodsList" @hancleClick="selectGoods" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<!-- isSelectGoods -->
|
||||
<view
|
||||
class="related_courses_name goodsList"
|
||||
:class="`goods_item ${
|
||||
<view class="related_courses_name goodsList" :class="`goods_item ${
|
||||
selectGoodsData &&
|
||||
selectGoodsData.productId == slotProps.row.productId
|
||||
? ''
|
||||
: ''
|
||||
}`"
|
||||
>
|
||||
}`">
|
||||
<view class="image_box">
|
||||
<image
|
||||
:src="slotProps.row.productImages"
|
||||
mode="aspectFit"
|
||||
class="goods_image"
|
||||
></image>
|
||||
<image :src="slotProps.row.productImages" mode="aspectFit" class="goods_image"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -233,39 +177,21 @@
|
||||
</common-goods-list>
|
||||
</view>
|
||||
<view :class="`dataList parameterList`" v-if="booksList.length > 0">
|
||||
<view
|
||||
class="goods_detail_list_title bg_box_shandow color_shandow bg_color PM_font"
|
||||
>
|
||||
<view class="goods_detail_list_title bg_box_shandow color_shandow bg_color PM_font">
|
||||
<view class="left" style="color: #018f89 !important">
|
||||
<u-icon
|
||||
name="list"
|
||||
color="#018F89"
|
||||
size="23"
|
||||
style="display: inline-block; margin-right: 10rpx"
|
||||
></u-icon>
|
||||
书籍信息</view
|
||||
>
|
||||
<u-icon name="list" color="#018F89" size="23"
|
||||
style="display: inline-block; margin-right: 10rpx"></u-icon>
|
||||
书籍信息
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<common-list
|
||||
imgUrl="url"
|
||||
isNoIcon
|
||||
imgMode="aspectFit"
|
||||
class="color_shandow parameter_box book_box"
|
||||
defaultUrl=""
|
||||
:isCondition="true"
|
||||
:dataList="booksList"
|
||||
label="title"
|
||||
>
|
||||
<common-list imgUrl="url" isNoIcon imgMode="aspectFit" class="color_shandow parameter_box book_box"
|
||||
defaultUrl="" :isCondition="true" :dataList="booksList" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<!-- isSelectGoods -->
|
||||
<view class="related_courses_name" :class="`goods_item `">
|
||||
<view class="image_box" style="margin-right: 10rpx">
|
||||
<image
|
||||
:src="slotProps.row.images"
|
||||
mode="aspectFit"
|
||||
class="goods_image"
|
||||
></image>
|
||||
<image :src="slotProps.row.images" mode="aspectFit" class="goods_image"></image>
|
||||
</view>
|
||||
<view :class="`goods_info `">
|
||||
<view class="name">
|
||||
@@ -279,39 +205,21 @@
|
||||
</common-list>
|
||||
</view>
|
||||
<view :class="`dataList parameterList`" v-if="coursesList.length > 0">
|
||||
<view
|
||||
class="goods_detail_list_title bg_box_shandow color_shandow bg_color PM_font"
|
||||
>
|
||||
<view class="goods_detail_list_title bg_box_shandow color_shandow bg_color PM_font">
|
||||
<view class="left" style="color: #018f89 !important">
|
||||
<u-icon
|
||||
name="list"
|
||||
color="#018F89"
|
||||
size="23"
|
||||
style="display: inline-block; margin-right: 10rpx"
|
||||
></u-icon>
|
||||
课程信息</view
|
||||
>
|
||||
<u-icon name="list" color="#018F89" size="23"
|
||||
style="display: inline-block; margin-right: 10rpx"></u-icon>
|
||||
课程信息
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<common-list
|
||||
imgUrl="url"
|
||||
isNoIcon
|
||||
imgMode="aspectFit"
|
||||
class="color_shandow parameter_box"
|
||||
defaultUrl=""
|
||||
:isCondition="true"
|
||||
:dataList="coursesList"
|
||||
label="title"
|
||||
>
|
||||
<common-list imgUrl="url" isNoIcon imgMode="aspectFit" class="color_shandow parameter_box" defaultUrl=""
|
||||
:isCondition="true" :dataList="coursesList" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<!-- isSelectGoods -->
|
||||
<view class="related_courses_name" :class="`goods_item `">
|
||||
<view class="image_box" style="margin-right: 10rpx">
|
||||
<image
|
||||
:src="slotProps.row.images"
|
||||
mode="aspectFit"
|
||||
class="goods_image"
|
||||
></image>
|
||||
<image :src="slotProps.row.images" mode="aspectFit" class="goods_image"></image>
|
||||
</view>
|
||||
<view :class="`goods_info `">
|
||||
<view class="name">
|
||||
@@ -325,41 +233,23 @@
|
||||
</common-list>
|
||||
</view>
|
||||
|
||||
<u-divider
|
||||
text="商品参数"
|
||||
:hairline="true"
|
||||
textColor="#333"
|
||||
lineColor="#b0b0b0"
|
||||
></u-divider>
|
||||
<u-divider text="商品参数" :hairline="true" textColor="#333" lineColor="#b0b0b0"></u-divider>
|
||||
<view class="parameter_info_box">
|
||||
<common-list
|
||||
imgUrl="url"
|
||||
isNoIcon
|
||||
imgMode="aspectFit"
|
||||
class="parameter_box parameter_info"
|
||||
defaultUrl=""
|
||||
:isCondition="true"
|
||||
:dataList="parameterList"
|
||||
@hancleClick="selectGoods"
|
||||
label="name"
|
||||
>
|
||||
<common-list imgUrl="url" isNoIcon imgMode="aspectFit" class="parameter_box parameter_info"
|
||||
defaultUrl="" :isCondition="true" :dataList="parameterList" @hancleClick="selectGoods" label="name">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<!-- isSelectGoods -->
|
||||
<view
|
||||
class="related_courses_name"
|
||||
:class="`goods_item ${
|
||||
<view class="related_courses_name" :class="`goods_item ${
|
||||
selectGoodsData &&
|
||||
selectGoodsData.productId == slotProps.row.productId
|
||||
? ''
|
||||
: ''
|
||||
}`"
|
||||
>
|
||||
}`">
|
||||
<view :class="`goods_info `">
|
||||
<view class="name">
|
||||
<text style="color: #333"> {{ slotProps.row.name }}:</text>
|
||||
<text v-if="slotProps.row.isTime">
|
||||
{{ slotProps.row.value | formatDate }}</text
|
||||
>
|
||||
{{ slotProps.row.value | formatDate }}</text>
|
||||
<text v-else> {{ slotProps.row.value }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -399,12 +289,7 @@
|
||||
</common-list>
|
||||
</view>
|
||||
|
||||
<u-divider
|
||||
text="商品详情"
|
||||
:hairline="true"
|
||||
textColor="#333"
|
||||
lineColor="#b0b0b0"
|
||||
></u-divider>
|
||||
<u-divider text="商品详情" :hairline="true" textColor="#333" lineColor="#b0b0b0"></u-divider>
|
||||
<view class="small_class_teaching_box" style="background-color: #b7e0e2">
|
||||
<view class="common_divider divider_box"> </view>
|
||||
|
||||
@@ -454,28 +339,16 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
class="small_class_teaching_box related_courses_box"
|
||||
v-if="relatedCoursesList.length > 0"
|
||||
>
|
||||
<view class="small_class_teaching_box related_courses_box" v-if="relatedCoursesList.length > 0">
|
||||
<view class="small_class_teaching_top">
|
||||
<view class="small_class_teaching_top_left">
|
||||
<image
|
||||
src="@/static/icon/course_ic.png"
|
||||
mode="aspectFil"
|
||||
class="icon1"
|
||||
></image>
|
||||
<image src="@/static/icon/course_ic.png" mode="aspectFil" class="icon1"></image>
|
||||
<text>相关课程</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="small_class_teaching_content">
|
||||
<common-curriculum-list
|
||||
imgUrl="url"
|
||||
:isCondition="true"
|
||||
:dataList="relatedCoursesList"
|
||||
@hancleClick="goCourseDescription"
|
||||
label="title"
|
||||
>
|
||||
<common-curriculum-list imgUrl="url" :isCondition="true" :dataList="relatedCoursesList"
|
||||
@hancleClick="goCourseDescription" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view class="related_courses_name hidden1">{{
|
||||
slotProps.row.title
|
||||
@@ -488,8 +361,7 @@
|
||||
<!-- {{ slotProps.row.bxType }} -->
|
||||
|
||||
<text class="aui-text-danger">
|
||||
¥{{ slotProps.row.courseFee }}</text
|
||||
>
|
||||
¥{{ slotProps.row.courseFee }}</text>
|
||||
|
||||
<view> </view>
|
||||
</template>
|
||||
@@ -498,13 +370,8 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="goods_nav_box" v-if="!this.$store.state.loadingShow">
|
||||
<uni-goods-nav
|
||||
:fill="true"
|
||||
:options="buyOptions"
|
||||
:button-group="customButtonGroup1"
|
||||
@click="onHandleClickBuy"
|
||||
@buttonClick="onHandleClickBuy1"
|
||||
/>
|
||||
<uni-goods-nav :fill="true" :options="buyOptions" :button-group="customButtonGroup1"
|
||||
@click="onHandleClickBuy" @buttonClick="onHandleClickBuy1" />
|
||||
</view>
|
||||
<!--
|
||||
<u-modal
|
||||
@@ -515,82 +382,43 @@
|
||||
@confirm="hancleModalConfirm"
|
||||
@cancel="hancleModalCancel"
|
||||
></u-modal> -->
|
||||
<common-select-goods
|
||||
ref="commonSelectGoods"
|
||||
:selectGoodsData="selectGoodsData"
|
||||
:goodsList="goodsList"
|
||||
:buyOptions="buyOptions"
|
||||
:customButtonGroup1="customButtonGroup1"
|
||||
@selectGoods="selectGoods"
|
||||
@onHandleClickBuy="onHandleClickBuy"
|
||||
></common-select-goods>
|
||||
<u-popup
|
||||
:show="showInfo"
|
||||
mode="bottom"
|
||||
@close="closeShowInfo"
|
||||
class="popup_box"
|
||||
>
|
||||
<common-select-goods ref="commonSelectGoods" :selectGoodsData="selectGoodsData" :goodsList="goodsList"
|
||||
:buyOptions="buyOptions" :customButtonGroup1="customButtonGroup1" @selectGoods="selectGoods"
|
||||
@onHandleClickBuy="onHandleClickBuy"></common-select-goods>
|
||||
<u-popup :show="showInfo" mode="bottom" @close="closeShowInfo" class="popup_box">
|
||||
<view class="popup_top">
|
||||
<view class="product_image">
|
||||
<image
|
||||
:src="selectGoodsData.productImages"
|
||||
mode="aspectFit"
|
||||
class="goods_image"
|
||||
></image>
|
||||
<image :src="selectGoodsData.productImages" mode="aspectFit" class="goods_image"></image>
|
||||
</view>
|
||||
<view class="title">已选:{{ selectGoodsData.productName }}</view>
|
||||
</view>
|
||||
|
||||
<view :class="`common_radius_box goods_box popup_content`">
|
||||
<view class="title title_box"
|
||||
><text class="title_price">¥{{ selectGoodsData.price }}</text
|
||||
><u-icon
|
||||
name="close"
|
||||
color="#333"
|
||||
size="18"
|
||||
@click="close"
|
||||
style="display: inline-block"
|
||||
></u-icon
|
||||
></view>
|
||||
<view class="title title_list"
|
||||
><text>商品列表({{ goodsList.length }})</text></view
|
||||
>
|
||||
<view class="title title_box"><text class="title_price">¥{{ selectGoodsData.price }}</text><u-icon
|
||||
name="close" color="#333" size="18" @click="close" style="display: inline-block"></u-icon>
|
||||
</view>
|
||||
<view class="title title_list"><text>商品列表({{ goodsList.length }})</text></view>
|
||||
|
||||
<common-list
|
||||
imgUrl="url"
|
||||
isNoIcon
|
||||
imgMode="aspectFit"
|
||||
defaultUrl=""
|
||||
:isCondition="true"
|
||||
:dataList="goodsList"
|
||||
@hancleClick="selectGoods"
|
||||
label="title"
|
||||
>
|
||||
<common-list imgUrl="url" isNoIcon imgMode="aspectFit" defaultUrl="" :isCondition="true"
|
||||
:dataList="goodsList" @hancleClick="selectGoods" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<!-- isSelectGoods -->
|
||||
<view
|
||||
class="related_courses_name"
|
||||
:class="`goods_item ${
|
||||
<view class="related_courses_name" :class="`goods_item ${
|
||||
selectGoodsData &&
|
||||
selectGoodsData.productId == slotProps.row.productId
|
||||
? 'isSelectGoods color_shandow'
|
||||
: ''
|
||||
}`"
|
||||
>
|
||||
}`">
|
||||
<view class="image_box" style="margin-right: 10rpx">
|
||||
<image
|
||||
:src="slotProps.row.productImages"
|
||||
mode="aspectFit"
|
||||
class="goods_image"
|
||||
></image>
|
||||
<image :src="slotProps.row.productImages" mode="aspectFit" class="goods_image"></image>
|
||||
</view>
|
||||
|
||||
<view :class="`goods_info `">
|
||||
<view class="name">{{ slotProps.row.productName }}</view>
|
||||
<view class="price" style="color: #3ab3ae">{{
|
||||
slotProps.row.price
|
||||
}}</view></view
|
||||
>
|
||||
}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <text v-if="slotProps.row.conditions!='03'">【试听】</text> -->
|
||||
@@ -598,13 +426,8 @@
|
||||
</common-list>
|
||||
|
||||
<view class="goods_nav_box">
|
||||
<uni-goods-nav
|
||||
:fill="true"
|
||||
:options="buyOptions"
|
||||
:button-group="customButtonGroup1"
|
||||
@click="onHandleClickBuy"
|
||||
@buttonClick="onHandleClickBuy"
|
||||
/>
|
||||
<uni-goods-nav :fill="true" :options="buyOptions" :button-group="customButtonGroup1"
|
||||
@click="onHandleClickBuy" @buttonClick="onHandleClickBuy" />
|
||||
</view>
|
||||
<!-- <view>
|
||||
<text @click="handleClickClose">取消</text>
|
||||
@@ -620,7 +443,9 @@
|
||||
import courseDescription from "@/pages/component/commonComponents/list";
|
||||
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import { mapState } from "vuex";
|
||||
import {
|
||||
mapState
|
||||
} from "vuex";
|
||||
export default {
|
||||
components: {
|
||||
courseDescription, //课程说明
|
||||
@@ -673,8 +498,7 @@ export default {
|
||||
playData: {},
|
||||
taiHuClassInfo: {},
|
||||
searchValue: "",
|
||||
teachingList: [
|
||||
{
|
||||
teachingList: [{
|
||||
title: "临床实践",
|
||||
|
||||
type: "02",
|
||||
@@ -718,14 +542,12 @@ export default {
|
||||
|
||||
goodsList: "book/shopproduct/getGlProductList",
|
||||
},
|
||||
customButtonGroup1: [
|
||||
{
|
||||
customButtonGroup1: [{
|
||||
with: 200,
|
||||
text: "立即购买",
|
||||
backgroundColor: "linear-gradient(90deg, #FE6035, #EF1224)",
|
||||
color: "#fff",
|
||||
},
|
||||
],
|
||||
}, ],
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
@@ -820,19 +642,19 @@ export default {
|
||||
},
|
||||
openPopup() {
|
||||
if (this.options.type == "visitor") {
|
||||
console.log("this.options.type at line 1090:", this.options.type);
|
||||
uni.showModal({
|
||||
content: "登陆后可购买本商品",
|
||||
confirmText: "去登录",
|
||||
cancelText: "再逛逛", confirmColor:'#018f89',//确定按钮颜色
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/user/login/login",
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
// console.log("this.options.type at line 1090:", this.options.type);
|
||||
// uni.showModal({
|
||||
// content: "登陆后可购买本商品",
|
||||
// confirmText: "去登录",
|
||||
// cancelText: "再逛逛", confirmColor:'#018f89',//确定按钮颜色
|
||||
// success(res) {
|
||||
// if (res.confirm) {
|
||||
// uni.navigateTo({
|
||||
// url: "/pages/user/login/login",
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
// });
|
||||
return;
|
||||
}
|
||||
// this.selectGoodsData = this.goodsList[0];
|
||||
@@ -845,19 +667,20 @@ export default {
|
||||
},
|
||||
selectGoods(data) {
|
||||
if (this.options.type == "visitor") {
|
||||
console.log("this.options.type at line 1090:", this.options.type);
|
||||
uni.showModal({
|
||||
content: "登陆后可购买本商品",
|
||||
confirmText: "去登录",
|
||||
cancelText: "再逛逛", confirmColor:'#018f89',//确定按钮颜色
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/user/login/login",
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
// console.log("this.options.type at line 1090:", this.options.type);
|
||||
// uni.showModal({
|
||||
// content: "登陆后可购买本商品",
|
||||
// confirmText: "去登录",
|
||||
// cancelText: "再逛逛",
|
||||
// confirmColor: '#018f89', //确定按钮颜色
|
||||
// success(res) {
|
||||
// if (res.confirm) {
|
||||
// uni.navigateTo({
|
||||
// url: "/pages/user/login/login",
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
// });
|
||||
return;
|
||||
}
|
||||
this.selectGoodsData = data;
|
||||
@@ -872,7 +695,8 @@ export default {
|
||||
uni.showModal({
|
||||
content: "登陆后可购买本商品",
|
||||
confirmText: "去登录",
|
||||
cancelText: "再逛逛", confirmColor:'#018f89',//确定按钮颜色
|
||||
cancelText: "再逛逛",
|
||||
confirmColor: '#018f89', //确定按钮颜色
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
uni.navigateTo({
|
||||
@@ -892,17 +716,14 @@ export default {
|
||||
"this.selectGoodsDatathis.selectGoodsDatathis.selectGoodsData"
|
||||
);
|
||||
var mynavData = JSON.stringify({
|
||||
goods: [
|
||||
{
|
||||
goods: [{
|
||||
productImages: this.selectGoodsData.productImages,
|
||||
productId: this.selectGoodsData.productId,
|
||||
productName: this.selectGoodsData.productName,
|
||||
price: this.selectGoodsData.activityPrice
|
||||
? this.selectGoodsData.activityPrice
|
||||
: this.selectGoodsData.price,
|
||||
price: this.selectGoodsData.activityPrice ?
|
||||
this.selectGoodsData.activityPrice : this.selectGoodsData.price,
|
||||
goodsType: this.selectGoodsData.goodsType,
|
||||
},
|
||||
],
|
||||
}, ],
|
||||
|
||||
navTitle: this.options.navTitle,
|
||||
title: this.options.title,
|
||||
@@ -959,8 +780,7 @@ export default {
|
||||
}
|
||||
this.modalInfo = {
|
||||
title: "提示信息",
|
||||
content:
|
||||
"用户您好,该课程已到期,通过支付" +
|
||||
content: "用户您好,该课程已到期,通过支付" +
|
||||
fee +
|
||||
"元,本门课程可获得" +
|
||||
days +
|
||||
@@ -1348,7 +1168,9 @@ export default {
|
||||
transformData(inputData) {
|
||||
const result = {};
|
||||
inputData.forEach((item) => {
|
||||
const { letter } = item;
|
||||
const {
|
||||
letter
|
||||
} = item;
|
||||
if (!result[letter]) {
|
||||
result[letter] = [];
|
||||
}
|
||||
@@ -1518,6 +1340,7 @@ export default {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/style/mixin.scss";
|
||||
|
||||
.u-grid-list {
|
||||
// height: 40rpx;
|
||||
}
|
||||
@@ -2060,12 +1883,14 @@ export default {
|
||||
border: 2rpx solid #fff;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
box-sizing: border-box;
|
||||
// font-weight: bold;
|
||||
margin-bottom: 40rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
|
||||
.image_box {
|
||||
width: 70rpx;
|
||||
height: 70rpx;
|
||||
@@ -2077,6 +1902,7 @@ export default {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.goods_info {
|
||||
width: calc(100%);
|
||||
// padding: 10rpx 20rpx;
|
||||
@@ -2086,27 +1912,34 @@ export default {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
float: left;
|
||||
|
||||
.name {
|
||||
font-size: 26rpx;
|
||||
// font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.price {
|
||||
font-size: 26rpx;
|
||||
color: #aaa;
|
||||
}
|
||||
}
|
||||
|
||||
.isSelectGoods {
|
||||
color: $themeColor !important;
|
||||
|
||||
.name {
|
||||
color: $themeColor !important;
|
||||
}
|
||||
|
||||
.price {
|
||||
color: $themeColor !important;
|
||||
}
|
||||
|
||||
border: 2rpx solid $themeColor;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
/deep/.list_item {
|
||||
// border-bottom: none;
|
||||
padding: 10rpx 0 !important;
|
||||
@@ -2120,17 +1953,21 @@ export default {
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.parameter_box {
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
|
||||
.goods_item {
|
||||
padding-top: 5rpx !important;
|
||||
padding-bottom: 5rpx !important;
|
||||
}
|
||||
}
|
||||
|
||||
.parameter_info_box {
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
|
||||
.parameter_info {
|
||||
/deep/.list_item {
|
||||
// border-bottom: none;
|
||||
@@ -2138,10 +1975,12 @@ export default {
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.goods_item {
|
||||
border: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.goodsList {
|
||||
.image_box {
|
||||
width: 80rpx;
|
||||
@@ -2150,23 +1989,28 @@ export default {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
}
|
||||
|
||||
/deep/.u-popup__content {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/deep/.u-popup__content__close {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.title_box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding-left: 0;
|
||||
|
||||
.title_price {
|
||||
color: #ef1224;
|
||||
font-size: 40rpx;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
.title_list {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
@@ -2176,6 +2020,7 @@ export default {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
}
|
||||
|
||||
.goods_info {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<public-module></public-module>
|
||||
|
||||
<view class="header_box"></view>
|
||||
<view class="appJump">
|
||||
<!-- <view class="appJump">
|
||||
<view class="everhealth item flexbox" @click="appjumpfun('everhealth')">
|
||||
<view class="img">
|
||||
<image
|
||||
@@ -31,57 +31,30 @@
|
||||
<text>吴门医述</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="main_content_box">
|
||||
<view class="curriculum_box">
|
||||
<view
|
||||
class="curriculum_item_box"
|
||||
v-for="(v, i) in curriculumList"
|
||||
@click="handleClickCurriculum(v)"
|
||||
>
|
||||
<view class="curriculum_item_box" v-for="(v, i) in curriculumList" @click="handleClickCurriculum(v)">
|
||||
<!-- <view class="curriculum_item"> -->
|
||||
<image
|
||||
:src="v.imgUrl"
|
||||
mode="aspectFill"
|
||||
class="curriculum_item_img"
|
||||
></image>
|
||||
<image :src="v.imgUrl" mode="aspectFill" class="curriculum_item_img"></image>
|
||||
<view class="curriculum_item_name">{{ v.name }}</view>
|
||||
<!-- </view> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="cate_box" v-if="cateList.length>0">
|
||||
<view
|
||||
class="cate_item_box"
|
||||
v-for="(v, i) in cateList"
|
||||
@click="handleClickCate(v)"
|
||||
>
|
||||
<view class="cate_item_box" v-for="(v, i) in cateList" @click="handleClickCate(v)">
|
||||
<view class="cate_item_border">
|
||||
<image
|
||||
:src="v.icon"
|
||||
mode="aspectFill"
|
||||
style="width: 49rpx; height: 49rpx"
|
||||
></image>
|
||||
<image :src="v.icon" mode="aspectFill" style="width: 49rpx; height: 49rpx"></image>
|
||||
</view>
|
||||
<view class="cate_item_name">{{ v.title }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flash_sale_box notice_box">
|
||||
<view class="flash_sale_top">
|
||||
<image
|
||||
class="miaoShaIcon noticeIcon"
|
||||
src="@/static/icon/homePage/notice.png"
|
||||
mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"
|
||||
></image>
|
||||
<u-notice-bar
|
||||
:text="noticeList"
|
||||
style="background-color: none !important"
|
||||
class="miaoShaContent"
|
||||
icon=""
|
||||
direction="column"
|
||||
label="title"
|
||||
@click="goNotice"
|
||||
>
|
||||
<image class="miaoShaIcon noticeIcon" src="@/static/icon/homePage/notice.png" mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"></image>
|
||||
<u-notice-bar :text="noticeList" style="background-color: none !important" class="miaoShaContent"
|
||||
icon="" direction="column" label="title" @click="goNotice">
|
||||
</u-notice-bar>
|
||||
<!-- <view class="miaoShaContent" style="width: 100%;">
|
||||
|
||||
@@ -94,31 +67,20 @@
|
||||
|
||||
<view class="flash_sale_box">
|
||||
<view class="flash_sale_top">
|
||||
<image
|
||||
class="miaoShaIcon"
|
||||
src="@/static/icon/homePage/miaosha.png"
|
||||
mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"
|
||||
></image>
|
||||
<image class="miaoShaIcon" src="@/static/icon/homePage/miaosha.png" mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"></image>
|
||||
<text class="miaoShaTitle" @click="goVideo">秒杀</text>
|
||||
<view class="miaoShaContent">
|
||||
<!-- {{ miaoShaContent }} -->
|
||||
</view>
|
||||
<image
|
||||
class="rightArrowIcon"
|
||||
src="@/static/icon/homePage/right_arrow.png"
|
||||
mode="aspectFill"
|
||||
style="width: 28rpx; height: 18rpx"
|
||||
></image>
|
||||
<image class="rightArrowIcon" src="@/static/icon/homePage/right_arrow.png" mode="aspectFill"
|
||||
style="width: 28rpx; height: 18rpx"></image>
|
||||
</view>
|
||||
|
||||
<view class="flash_sale_content" style="margin-top: 40rpx">
|
||||
<scroll-view scroll-x="true" class="scroll-X" style="">
|
||||
<view
|
||||
class="scroll-view-item flash_sale_content_item"
|
||||
@click="goGoodsDetail(v)"
|
||||
v-for="(v, i) in seckillLst"
|
||||
>
|
||||
<view class="scroll-view-item flash_sale_content_item" @click="goGoodsDetail(v)"
|
||||
v-for="(v, i) in seckillLst">
|
||||
<image class="book_image" :src="v.productImages" mode="aspectFit">
|
||||
</image>
|
||||
<view class="book_name" style="padding-bottom: 20rpx">{{
|
||||
@@ -139,14 +101,8 @@
|
||||
<view class="flash_sale_content greenCardBoxContent">
|
||||
<scroll-view scroll-x="true" class="scroll-X" style="">
|
||||
<!-- studyList -->
|
||||
<common-curriculum-list
|
||||
imgUrl="image"
|
||||
:isScroll="true"
|
||||
:isCondition="true"
|
||||
:dataList="studyList"
|
||||
@hancleClick="goCourseDescription"
|
||||
label="title"
|
||||
>
|
||||
<common-curriculum-list imgUrl="image" :isScroll="true" :isCondition="true"
|
||||
:dataList="studyList" @hancleClick="goCourseDescription" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view class="related_courses_name hidden1">{{
|
||||
slotProps.row.title
|
||||
@@ -173,13 +129,8 @@
|
||||
|
||||
<view class="flash_sale_content greenCardBoxContent">
|
||||
<scroll-view scroll-x="true" class="scroll-X" style="">
|
||||
<common-curriculum-list
|
||||
imgUrl="image"
|
||||
:isCondition="true"
|
||||
:dataList="flashSaleList"
|
||||
@hancleClick="goCourseDescription"
|
||||
label="title"
|
||||
>
|
||||
<common-curriculum-list imgUrl="image" :isCondition="true" :dataList="flashSaleList"
|
||||
@hancleClick="goCourseDescription" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view class="related_courses_name hidden1">{{
|
||||
slotProps.row.title
|
||||
@@ -201,7 +152,10 @@
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { mapState, mapMutations } from "vuex";
|
||||
import {
|
||||
mapState,
|
||||
mapMutations
|
||||
} from "vuex";
|
||||
export default {
|
||||
name: "music",
|
||||
props: {},
|
||||
@@ -215,8 +169,7 @@ export default {
|
||||
flashSaleList: [], //试听
|
||||
miaoShaContent: "",
|
||||
cateList: [],
|
||||
curriculumList: [
|
||||
{
|
||||
curriculumList: [{
|
||||
name: "课程设置",
|
||||
url: "/pages/courseInformation/index/index",
|
||||
// url: "",
|
||||
@@ -295,8 +248,7 @@ export default {
|
||||
},
|
||||
handleGoApp() {
|
||||
if (plus.os.name == "Android") {
|
||||
plus.runtime.launchApplication(
|
||||
{
|
||||
plus.runtime.launchApplication({
|
||||
pname: "com.cn.nuttyreading",
|
||||
},
|
||||
function(e) {
|
||||
@@ -417,9 +369,9 @@ export default {
|
||||
})
|
||||
|
||||
.then(async (res) => {
|
||||
that.flashSaleList = res.courseList.records
|
||||
? res.courseList.records
|
||||
: [];
|
||||
that.flashSaleList = res.courseList.records ?
|
||||
res.courseList.records :
|
||||
[];
|
||||
});
|
||||
},
|
||||
async getSociologyLabels() {
|
||||
@@ -509,8 +461,7 @@ export default {
|
||||
//苹果
|
||||
//因为ios查不到B款app在ios系统手机里面,其实下载了,也是检测不到,所以就不检测了
|
||||
//直接打开B款app,B款app没有的话,会进入回调报错,我们在回调去打开下载链接
|
||||
plus.runtime.launchApplication(
|
||||
{
|
||||
plus.runtime.launchApplication({
|
||||
action: "${schemes}://",
|
||||
},
|
||||
function(e) {
|
||||
@@ -565,9 +516,9 @@ export default {
|
||||
},
|
||||
playStatus() {
|
||||
var playFlag = false;
|
||||
this.userInfo.playFlag !== undefined
|
||||
? (playFlag = this.userInfo.playFlag)
|
||||
: "";
|
||||
this.userInfo.playFlag !== undefined ?
|
||||
(playFlag = this.userInfo.playFlag) :
|
||||
"";
|
||||
console.log(playFlag, "playFlag");
|
||||
return playFlag;
|
||||
},
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</view>
|
||||
<view class="input_box">
|
||||
<uni-forms-item label="" name="account" label-width="0">
|
||||
<text class="input_tit"><i>*</i>吴门医述账号:</text>
|
||||
<text class="input_tit"><i>*</i>众秒之门账号:</text>
|
||||
<view class="in">
|
||||
<input placeholder-style="font-size:26rpx" type="text" v-model="form.account"
|
||||
placeholder="请输入手机号/邮箱" />
|
||||
@@ -325,12 +325,15 @@
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import '@/style/mixin.scss';
|
||||
|
||||
::v-deep .uni-forms-item {
|
||||
margin-bottom: 26rpx !important;
|
||||
}
|
||||
|
||||
.input_tit {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.page {
|
||||
background-color: #ffffff;
|
||||
padding: 0 65rpx;
|
||||
|
||||
140
pages/mine/aboutUs/agreement.vue
Normal file
140
pages/mine/aboutUs/agreement.vue
Normal file
@@ -0,0 +1,140 @@
|
||||
<template>
|
||||
<view>
|
||||
<z-nav-bar :title="yszcText.title" bgColor="#fff" fontColor="#333"></z-nav-bar>
|
||||
|
||||
<view class="tanchu">
|
||||
|
||||
<!-- <view class="dp_title" v-html="yszcText.title"></view> -->
|
||||
<view class="dp_content" v-html="yszcText.content"></view>
|
||||
<!-- <yhxyPage></yhxyPage> -->
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
options: {},
|
||||
yszcText: {
|
||||
title: "",
|
||||
content: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
|
||||
//第一次加载
|
||||
onLoad(options) {
|
||||
this.options = options;
|
||||
this.getSettlement(105);
|
||||
|
||||
},
|
||||
|
||||
onReady() {},
|
||||
//方法
|
||||
methods: {
|
||||
async getSettlement(id, type) {
|
||||
console.log('id at line 57:', id)
|
||||
//隐私策略
|
||||
var data = await this.$commonJS.getAgreement(id);
|
||||
if (data.content) {
|
||||
data.content = data.content.replace(
|
||||
/<h5>/g,
|
||||
'<view style="font-weight: bold;font-size: 32rpx;margin-top: 20rpx;margin-bottom: 20rpx;">'
|
||||
);
|
||||
data.content = data.content.replace(/<\/h5>/g, "</view>");
|
||||
}
|
||||
this.yszcText = data
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.tanchu {
|
||||
padding: 40rpx 30rpx 40rpx 30rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.popup_box {
|
||||
width: 600upx;
|
||||
border-radius: 10rpx;
|
||||
|
||||
.popup_title {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 88upx;
|
||||
line-height: 88upx;
|
||||
|
||||
view {
|
||||
align-items: center;
|
||||
font-size: 30upx;
|
||||
display: flex;
|
||||
|
||||
image {
|
||||
width: 50upx;
|
||||
height: 50upx;
|
||||
margin: 0 20rpx 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.popup_content {
|
||||
padding: 30rpx 40rpx;
|
||||
}
|
||||
|
||||
.popup_footer {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
view {
|
||||
width: 45%;
|
||||
flex-shrink: 0;
|
||||
text-align: center;
|
||||
font-size: 28upx;
|
||||
color: #999;
|
||||
line-height: 70upx;
|
||||
margin: 0 0 30rpx 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.dp_title {
|
||||
font-size: 36rpx;
|
||||
margin-bottom: 10rpx;
|
||||
color: #555;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.dp_content {
|
||||
max-height: 98%;
|
||||
overflow-y: scroll;
|
||||
font-size: 28rpx;
|
||||
color: #555;
|
||||
line-height: 45rpx;
|
||||
|
||||
.dp_con1 {
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
margin-top: 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
// .dp_con2 {
|
||||
// font-size: 30rpx;
|
||||
// margin-top: 10rpx;
|
||||
// margin-bottom: 10rpx;
|
||||
// }
|
||||
}
|
||||
</style>
|
||||
@@ -5,108 +5,62 @@
|
||||
<z-nav-bar title="个人资料" bgColor="#3AB3AE" fontColor="#fff"></z-nav-bar>
|
||||
<view class="contentBox commonPageContentBox">
|
||||
<view class="avatar_box">
|
||||
<image
|
||||
:src="userData.avatar"
|
||||
class="per_mes_img"
|
||||
@click="
|
||||
<image :src="userData.avatar" class="per_mes_img" @click="
|
||||
handleClickRightContent(
|
||||
{ type: 'avatar' },
|
||||
userData.avatar ? '' : 'bind'
|
||||
)
|
||||
"
|
||||
></image>
|
||||
<text
|
||||
class="avatar_text"
|
||||
@click="
|
||||
"></image>
|
||||
<text class="avatar_text" @click="
|
||||
handleClickRightContent(
|
||||
{ type: 'avatar' },
|
||||
userData.avatar ? '' : 'bind'
|
||||
)
|
||||
"
|
||||
>{{ userData.avatar ? "更换头像" : "设置头像" }}</text
|
||||
>
|
||||
">{{ userData.avatar ? "更换头像" : "设置头像" }}</text>
|
||||
</view>
|
||||
<view class="set_box">
|
||||
<common-list :dataList="dataList" isNoIcon="true" label="title">
|
||||
<template slot="rightSlot" slot-scope="slotProps">
|
||||
<view class="right_content">
|
||||
<view v-if="slotProps.row.type == 'sex'">
|
||||
<text
|
||||
v-if="
|
||||
userData[slotProps.row.indexValue]
|
||||
|
||||
"
|
||||
>
|
||||
<text v-if="userData[slotProps.row.indexValue]">
|
||||
{{
|
||||
userData[slotProps.row.indexValue] == 2 ? "女" : "男"
|
||||
}}</text
|
||||
>
|
||||
<view
|
||||
v-else
|
||||
@click="handleClickRightContent(slotProps.row, 'bind')"
|
||||
>未设置</view
|
||||
>
|
||||
}}</text>
|
||||
<view v-else @click="handleClickRightContent(slotProps.row, 'bind')">未设置</view>
|
||||
</view>
|
||||
<view v-if="slotProps.row.type == 'nickname'">
|
||||
<text v-if="userData[slotProps.row.indexValue]">
|
||||
{{ userData[slotProps.row.indexValue] }}</text
|
||||
>
|
||||
<view
|
||||
v-else
|
||||
@click="handleClickRightContent(slotProps.row, 'bind')"
|
||||
>未设置</view
|
||||
>
|
||||
{{ userData[slotProps.row.indexValue] }}</text>
|
||||
<view v-else @click="handleClickRightContent(slotProps.row, 'bind')">未设置</view>
|
||||
</view>
|
||||
<view v-if="slotProps.row.type == 'tel'">
|
||||
<text v-if="userData[slotProps.row.indexValue]">
|
||||
{{ userData[slotProps.row.indexValue] }}</text
|
||||
>
|
||||
<view
|
||||
v-else
|
||||
@click="handleClickRightContent(slotProps.row, 'bind')"
|
||||
>点击绑定</view
|
||||
>
|
||||
{{ userData[slotProps.row.indexValue] }}</text>
|
||||
<view v-else @click="handleClickRightContent(slotProps.row, 'bind')">点击绑定</view>
|
||||
</view>
|
||||
<view v-if="slotProps.row.type == 'password'" @click="handleClickRightContent(slotProps.row, 'bind')">
|
||||
<view v-if="slotProps.row.type == 'password'"
|
||||
@click="handleClickRightContent(slotProps.row, 'bind')">
|
||||
{{
|
||||
userData[slotProps.row.indexValue] ? "更改密码" : "设置密码"
|
||||
}}
|
||||
</view>
|
||||
<view v-if="slotProps.row.type == 'email'">
|
||||
<text v-if="userData[slotProps.row.indexValue]">
|
||||
{{ userData[slotProps.row.indexValue] }}</text
|
||||
>
|
||||
<view
|
||||
v-else
|
||||
@click="handleClickRightContent(slotProps.row, 'bind')"
|
||||
>点击绑定</view
|
||||
>
|
||||
{{ userData[slotProps.row.indexValue] }}</text>
|
||||
<view v-else @click="handleClickRightContent(slotProps.row, 'bind')">点击绑定</view>
|
||||
</view>
|
||||
<view v-if="slotProps.row.type == 'age'">
|
||||
<text v-if="userData[slotProps.row.indexValue]">
|
||||
{{ userData[slotProps.row.indexValue] }}</text
|
||||
>
|
||||
<view
|
||||
v-else
|
||||
@click="handleClickRightContent(slotProps.row, 'bind')"
|
||||
>未设置</view
|
||||
>
|
||||
{{ userData[slotProps.row.indexValue] }}</text>
|
||||
<view v-else @click="handleClickRightContent(slotProps.row, 'bind')">未设置</view>
|
||||
</view>
|
||||
|
||||
|
||||
<u-icon
|
||||
v-if="
|
||||
userData[slotProps.row.indexValue]&&userData[slotProps.row.indexValue]!=''
|
||||
|
||||
"
|
||||
class="editIcon"
|
||||
name="edit-pen-fill"
|
||||
color="#3ab3ae"
|
||||
size="22"
|
||||
@click.native.stop="handleClickRightContent(slotProps.row)"
|
||||
></u-icon>
|
||||
|
||||
|
||||
<u-icon v-if="
|
||||
userData[slotProps.row.indexValue] &&
|
||||
userData[slotProps.row.indexValue] != ''
|
||||
" class="editIcon" name="edit-pen-fill" color="#3ab3ae" size="22"
|
||||
@click.native.stop="handleClickRightContent(slotProps.row)"></u-icon>
|
||||
</view>
|
||||
<text class="fdButtonBox aui-text-success">{{
|
||||
slotProps.row.content
|
||||
@@ -190,42 +144,22 @@
|
||||
<view class="tanchu">
|
||||
<view class="dp_title">{{ editModalTitle }}</view>
|
||||
<template v-if="currentEditType == 'nickname'">
|
||||
<u--input
|
||||
v-model="editForm.nickname"
|
||||
placeholder="请输入昵称"
|
||||
border="surround"
|
||||
clearable
|
||||
></u--input>
|
||||
<u--input v-model="editForm.nickname" placeholder="请输入昵称" border="surround" clearable></u--input>
|
||||
</template>
|
||||
<template v-if="currentEditType == 'tel'">
|
||||
<!-- {{ editForm }} -->
|
||||
|
||||
<view style="display: flex">
|
||||
<view class="quhao">
|
||||
<uni-data-select
|
||||
class="quhaoSel"
|
||||
placeholder="请选择区号"
|
||||
v-model="editForm.quCode"
|
||||
:localdata="quCodeList"
|
||||
></uni-data-select>
|
||||
<uni-data-select class="quhaoSel" placeholder="请选择区号" v-model="editForm.quCode"
|
||||
:localdata="quCodeList"></uni-data-select>
|
||||
</view>
|
||||
<u--input
|
||||
v-model="editForm.phone"
|
||||
placeholder="请输入手机号"
|
||||
border="surround"
|
||||
clearable
|
||||
>
|
||||
<u--input v-model="editForm.phone" placeholder="请输入手机号" border="surround" clearable>
|
||||
</u--input>
|
||||
</view>
|
||||
<view style="display: flex">
|
||||
<u--input
|
||||
v-model="editForm.phonecode"
|
||||
type="number"
|
||||
placeholder="请输入验证码"
|
||||
border="surround"
|
||||
clearable
|
||||
style="margin-top: 20rpx"
|
||||
>
|
||||
<u--input v-model="editForm.phonecode" type="number" placeholder="请输入验证码" border="surround"
|
||||
clearable style="margin-top: 20rpx">
|
||||
</u--input>
|
||||
<button class="emPHCode" @click="onSetCode('phone')">
|
||||
{{ PhoneEmailNote }}
|
||||
@@ -293,47 +227,22 @@
|
||||
</button>
|
||||
</view> -->
|
||||
|
||||
<u--input
|
||||
maxlength="8"
|
||||
v-model="editForm.password"
|
||||
placeholder="请输入新密码"
|
||||
:password="true"
|
||||
border="surround"
|
||||
clearable
|
||||
@input="inputMethod(editForm.password)"
|
||||
>
|
||||
<u--input maxlength="8" v-model="editForm.password" placeholder="请输入新密码" :password="true"
|
||||
border="surround" clearable @input="inputMethod(editForm.password)">
|
||||
</u--input>
|
||||
<view class="" style="font-size: 28rpx; color: #999">
|
||||
<p v-if="passNote != ''">{{ passNote }}</p>
|
||||
<p v-html="passStr" style="margin-top: 10rpx"></p>
|
||||
</view>
|
||||
<u--input
|
||||
maxlength="8"
|
||||
v-model="editForm.Repassword"
|
||||
placeholder="请再确认密码"
|
||||
:password="true"
|
||||
border="surround"
|
||||
clearable
|
||||
style="margin-top: 20rpx"
|
||||
></u--input>
|
||||
<u--input maxlength="8" v-model="editForm.Repassword" placeholder="请再确认密码" :password="true"
|
||||
border="surround" clearable style="margin-top: 20rpx"></u--input>
|
||||
</template>
|
||||
<template v-if="currentEditType == 'email'">
|
||||
<u--input
|
||||
v-model="editForm.email"
|
||||
placeholder="请输入邮箱"
|
||||
border="surround"
|
||||
clearable
|
||||
>
|
||||
<u--input v-model="editForm.email" placeholder="请输入邮箱" border="surround" clearable>
|
||||
</u--input>
|
||||
<view style="display: flex">
|
||||
<u--input
|
||||
v-model="editForm.emailcode"
|
||||
type="number"
|
||||
placeholder="请输入验证码"
|
||||
border="surround"
|
||||
clearable
|
||||
style="margin-top: 20rpx"
|
||||
>
|
||||
<u--input v-model="editForm.emailcode" type="number" placeholder="请输入验证码" border="surround"
|
||||
clearable style="margin-top: 20rpx">
|
||||
</u--input>
|
||||
<button class="emPHCode" @click="onSetCode('email')">
|
||||
{{ PhoneEmailNote }}
|
||||
@@ -342,13 +251,7 @@
|
||||
</template>
|
||||
|
||||
<template v-if="currentEditType == 'age'">
|
||||
<u--input
|
||||
v-model="editForm.age"
|
||||
type="number"
|
||||
placeholder="请输入年龄"
|
||||
border="surround"
|
||||
clearable
|
||||
>
|
||||
<u--input v-model="editForm.age" type="number" placeholder="请输入年龄" border="surround" clearable>
|
||||
</u--input>
|
||||
</template>
|
||||
<!-- @click="choseSex(item.id)" -->
|
||||
@@ -356,56 +259,42 @@
|
||||
<template v-if="currentEditType == 'sex'">
|
||||
<u-radio-group v-model="editForm.sex">
|
||||
<view style="width: 100%">
|
||||
<view
|
||||
v-for="(item, index) in sexList"
|
||||
|
||||
class="dp_sex"
|
||||
>
|
||||
<view v-for="(item, index) in sexList" class="dp_sex">
|
||||
{{ item.title }}
|
||||
<u-radio
|
||||
:key="index"
|
||||
activeColor="#3AB3AE"
|
||||
:name="item.id"
|
||||
style="float: right; margin-top: 5rpx"
|
||||
|
||||
></u-radio>
|
||||
<u-radio :key="index" activeColor="#3AB3AE" :name="item.id"
|
||||
style="float: right; margin-top: 5rpx"></u-radio>
|
||||
</view>
|
||||
</view>
|
||||
</u-radio-group>
|
||||
</template>
|
||||
<template v-if="currentEditType == 'avatar'">
|
||||
<u-upload
|
||||
:fileList="fileAvatar"
|
||||
@afterRead="afterRead"
|
||||
@delete="deletePic"
|
||||
multiple
|
||||
:maxCount="1"
|
||||
width="150"
|
||||
height="150"
|
||||
:previewFullImage="true"
|
||||
>
|
||||
<view class="" @click="checkPermision">
|
||||
<u-upload :fileList="fileAvatar" @afterRead="afterRead" @delete="deletePic" multiple
|
||||
:maxCount="1" width="150" height="150" :previewFullImage="true">
|
||||
</u-upload>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<u-button
|
||||
color="linear-gradient(to right, #77efc7, #3AB3AE)"
|
||||
text="确定"
|
||||
@click="handleSubmit()"
|
||||
style="margin-top: 50rpx"
|
||||
></u-button>
|
||||
<u-button color="linear-gradient(to right, #77efc7, #3AB3AE)" text="确定" @click="handleSubmit()"
|
||||
style="margin-top: 50rpx"></u-button>
|
||||
<view @click="closeModal()" class="dp_canBtn"> 取消</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<!-- <addCerInfo v-if="showSubmitInfoBlank" :submitInfo="submitInfo" @close="closeManager()" ></addCerInfo> -->
|
||||
|
||||
<music-play :playData="playData"></music-play>
|
||||
<!-- <music-play :playData="playData"></music-play> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import musicPlay from "@/components/music.vue";
|
||||
import permission from "@/js_sdk/wa-permission/permission.js"
|
||||
|
||||
// import musicPlay from "@/components/music.vue";
|
||||
import $http from "@/config/requestConfig.js";
|
||||
var clear;
|
||||
import { mapState } from "vuex";
|
||||
import {
|
||||
mapState
|
||||
} from "vuex";
|
||||
// 密码验证的正则
|
||||
//1、密码为八位及以上并且字母数字特殊字符三项都包括
|
||||
var strongRegex = new RegExp(
|
||||
@@ -421,14 +310,16 @@ var enoughRegex = new RegExp("(?=.{8,}).*", "g");
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
showCropper: false,
|
||||
submitInfo: {},
|
||||
showSubmitInfoBlank: false,
|
||||
playData: {},
|
||||
userData: {},
|
||||
isPassWordPhone: true,
|
||||
currentEditType: null,
|
||||
editForm: {},
|
||||
editModalShow: false,
|
||||
dataList: [
|
||||
{
|
||||
dataList: [{
|
||||
title: "昵称",
|
||||
indexValue: "nickname",
|
||||
type: "nickname",
|
||||
@@ -506,8 +397,7 @@ export default {
|
||||
passwordShow: false,
|
||||
fileAvatar: [],
|
||||
quCodeList: [], // 国家区域码
|
||||
sexList: [
|
||||
{
|
||||
sexList: [{
|
||||
title: "男",
|
||||
id: 1,
|
||||
},
|
||||
@@ -548,10 +438,18 @@ export default {
|
||||
this.getCountyCode();
|
||||
},
|
||||
components: {
|
||||
musicPlay,
|
||||
// addCerInfo
|
||||
|
||||
},
|
||||
//方法
|
||||
methods: {
|
||||
|
||||
async checkPermision() {
|
||||
var result = await permission.premissionCheck("CAMERA_EXTERNAL_STORAGE")
|
||||
if (result != 1) {
|
||||
return false
|
||||
}
|
||||
},
|
||||
handleChangeIsPassWordPhone() {
|
||||
this.editForm = {};
|
||||
this.isPassWordPhone = !this.isPassWordPhone;
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
<template>
|
||||
<view
|
||||
class="container commonDetailPage"
|
||||
style="background-color: #fff !important"
|
||||
>
|
||||
<view class="container commonDetailPage" style="background-color: #fff !important">
|
||||
<!-- 公共组件-每个页面必须引入 -->
|
||||
|
||||
<view class="contentBox commonPageContentBox order_box">
|
||||
@@ -10,91 +7,50 @@
|
||||
<view class="pay_title">支付方式</view>
|
||||
|
||||
<view style="margin-bottom: 20rpx">
|
||||
<u-tag
|
||||
:text="`已选:${dataInfo.title}`"
|
||||
bgColor="rgba(188, 231, 223, 0.3)"
|
||||
borderColor="rgb(197, 227, 215)"
|
||||
color="#2e676a"
|
||||
plain
|
||||
></u-tag>
|
||||
<u-tag :text="`已选:${dataInfo.title}`" bgColor="rgba(188, 231, 223, 0.3)"
|
||||
borderColor="rgb(197, 227, 215)" color="#2e676a" plain></u-tag>
|
||||
</view>
|
||||
<view
|
||||
class="curriulum_title_box goods_item pay_item"
|
||||
v-for="(v, i) in payList"
|
||||
>
|
||||
<view class="curriulum_title_box goods_item pay_item" v-for="(v, i) in payList">
|
||||
<view :class="isDefaultCurrency && i != 2 ? 'bgGrey top' : 'top'">
|
||||
<view class="left">
|
||||
<image
|
||||
class="pay_item_img"
|
||||
:src="v.imgUrl"
|
||||
mode="aspectFil"
|
||||
:style="v.style"
|
||||
>
|
||||
<image class="pay_item_img" :src="v.imgUrl" mode="aspectFil" :style="v.style">
|
||||
</image>
|
||||
<template v-if="v.type == 4">
|
||||
<text> {{ v.text }}</text>
|
||||
<text
|
||||
style="color: #3ab3ae; font-weight: 600; margin-left: 10rpx"
|
||||
>
|
||||
<text style="color: #3ab3ae; font-weight: 600; margin-left: 10rpx">
|
||||
(余额:{{
|
||||
initData && initData.user ? initData.user.peanutCoin : 0
|
||||
}})</text
|
||||
>
|
||||
}})</text>
|
||||
</template>
|
||||
|
||||
<text v-else> {{ v.text }}</text>
|
||||
</view>
|
||||
<template v-if="isDefaultCurrency">
|
||||
<radio
|
||||
v-if="i == 2"
|
||||
:value="v.value"
|
||||
color="#3ab3ae"
|
||||
:checked="selectPayIndex == i ? true : false"
|
||||
@click="radioChange(i)"
|
||||
size="10"
|
||||
/>
|
||||
<radio v-if="i == 2" :value="v.value" color="#3ab3ae"
|
||||
:checked="selectPayIndex == i ? true : false" @click="radioChange(i)" size="10" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<radio
|
||||
:value="v.value"
|
||||
color="#3ab3ae"
|
||||
:checked="selectPayIndex == i ? true : false"
|
||||
@click="radioChange(i)"
|
||||
size="10"
|
||||
/>
|
||||
<radio :value="v.value" color="#3ab3ae" :checked="selectPayIndex == i ? true : false"
|
||||
@click="radioChange(i)" size="10" />
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
<template v-if="selectPayIndex == 2">
|
||||
<view
|
||||
class="goods_detail_list_title bg_box_shandow color_shandow bg_color"
|
||||
>
|
||||
<view
|
||||
class="linlanzhifu"
|
||||
style="
|
||||
<view class="goods_detail_list_title bg_box_shandow color_shandow bg_color">
|
||||
<view class="linlanzhifu" style="
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
">
|
||||
<view class="linlanzhifu">
|
||||
<u-icon
|
||||
name="error-circle"
|
||||
color="#018F89"
|
||||
size="20"
|
||||
style="display: inline-block; margin-right: 10rpx"
|
||||
></u-icon>
|
||||
<u-icon name="error-circle" color="#018F89" size="20"
|
||||
style="display: inline-block; margin-right: 10rpx"></u-icon>
|
||||
确保您的天医币足够支付
|
||||
</view>
|
||||
|
||||
<text
|
||||
class="fdButtonBox aui-text-danger fdButtonBoxRed"
|
||||
style="float: right"
|
||||
@click="
|
||||
<text class="fdButtonBox aui-text-danger fdButtonBoxRed" style="float: right" @click="
|
||||
onPageJump('/pages/mine/wallet/recharge/index?source=order')
|
||||
"
|
||||
>立即充值</text
|
||||
>
|
||||
">立即充值</text>
|
||||
</view>
|
||||
|
||||
<view class="other_info" style="margin-top: 12rpx">
|
||||
@@ -102,9 +58,7 @@
|
||||
<view class="explain"> 1. 1天医币 = 1元人民币 </view>
|
||||
<view class="explain">
|
||||
2.若有疑问或意见请致电客服
|
||||
<span style="font-size: 15px"
|
||||
><u @click="gotoPhone">022-24142321</u></span
|
||||
>
|
||||
<span style="font-size: 15px"><u @click="gotoPhone">022-24142321</u></span>
|
||||
</view>
|
||||
<view class="explain">
|
||||
<!-- 3.非中国大陆用户可通过paypal账户支付
|
||||
@@ -117,21 +71,14 @@
|
||||
|
||||
3.非中国大陆用户可以信用卡支付。简单快捷,推荐使用!
|
||||
支付时使用的信用卡需要带有Visa或MasterCard的标识。请向邮箱
|
||||
<text
|
||||
@click="fnCopy('publisher@tmrjournals.com', '邮箱')"
|
||||
class="aui-text-success"
|
||||
style="text-decoration: underline; color: #3ab3ae"
|
||||
>
|
||||
<text @click="fnCopy('publisher@tmrjournals.com', '邮箱')" class="aui-text-success"
|
||||
style="text-decoration: underline; color: #3ab3ae">
|
||||
publisher@tmrjournals.com
|
||||
</text>
|
||||
(点击复制)发送支付请求,内容需包含:拟购买的课程名称、支付金额、APP注册姓名及手机号码,或者加一路健康客服微信(
|
||||
<text
|
||||
class="aui-text-success"
|
||||
@click="fnCopy('yilujiankangkefu', '微信名')"
|
||||
style="text-decoration: underline; color: #3ab3ae"
|
||||
>
|
||||
yilujiankangkefu </text
|
||||
>)(点击复制)联系我们,我们将在24小时内向您的邮箱或者微信发送支付链接,根据提示即可完成信用卡支付,无需兑换外币。
|
||||
<text class="aui-text-success" @click="fnCopy('yilujiankangkefu', '微信名')"
|
||||
style="text-decoration: underline; color: #3ab3ae">
|
||||
yilujiankangkefu </text>)(点击复制)联系我们,我们将在24小时内向您的邮箱或者微信发送支付链接,根据提示即可完成信用卡支付,无需兑换外币。
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -139,29 +86,19 @@
|
||||
</view>
|
||||
|
||||
<template>
|
||||
<common-sticky
|
||||
label="title"
|
||||
:itemStyle="`width:${
|
||||
<common-sticky label="title" :itemStyle="`width:${
|
||||
cateList.length == 2 ? '50' : '33'
|
||||
}%;padding-left: 15px; padding-right: 15px; height: 68rpx;`"
|
||||
:list="cateList"
|
||||
:currentCateIndex="currentCateIndex"
|
||||
@handleselectCate="handleselectCate"
|
||||
>
|
||||
}%;padding-left: 15px; padding-right: 15px; height: 68rpx;`" :list="cateList"
|
||||
:currentCateIndex="currentCateIndex" @handleselectCate="handleselectCate">
|
||||
</common-sticky>
|
||||
</template>
|
||||
</view>
|
||||
<view class="goods_nav_box">
|
||||
<common-goods-nav
|
||||
:iconList="[]"
|
||||
:customButton="customButton"
|
||||
@submit="goBuyJie"
|
||||
>
|
||||
<common-goods-nav :iconList="[]" :customButton="customButton" @submit="goBuyJie">
|
||||
<!-- leftSlot -->
|
||||
<template slot="leftSlot" slot-scope="slotProps">
|
||||
<view class="price_box order_bottom_box">
|
||||
<text class="price"
|
||||
>合计:
|
||||
<text class="price">合计:
|
||||
|
||||
<text class="total">¥{{ dataInfo.lastFee }}</text>
|
||||
</text>
|
||||
@@ -170,7 +107,17 @@
|
||||
> -->
|
||||
</view>
|
||||
</template>
|
||||
<template slot="bottomSlot" slot-scope="slotProps"> </template>
|
||||
</common-goods-nav>
|
||||
<view class="agree_wo" style="width: 100%; text-align: right">
|
||||
<!-- <radio-group class="agree">
|
||||
<view v-for="(item, index) in argee" :key="index">
|
||||
<radio class="agreeRadio" :value="item.id" :checked="item.id == radioValue" color="#3AB3AE" size="12px"
|
||||
@click="radioCheck(index)"></radio>
|
||||
</view>
|
||||
</radio-group> -->
|
||||
<view>支付即同意众妙之门<span class="highlight" @click="showXieyi">《会员服务协议》</span></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- @close="closeOrderModalShow" -->
|
||||
@@ -182,10 +129,18 @@
|
||||
<script>
|
||||
import debounce from "@/common/debounce.js";
|
||||
import courseDescription from "@/pages/component/commonComponents/list";
|
||||
import { setPay, setPayAssign, setWXPay } from "@/config/utils";
|
||||
import {
|
||||
setPay,
|
||||
setPayAssign,
|
||||
setWXPay
|
||||
} from "@/config/utils";
|
||||
import $http from "@/config/requestConfig.js";
|
||||
const { platform } = uni.getSystemInfoSync();
|
||||
import { mapState } from "vuex";
|
||||
const {
|
||||
platform
|
||||
} = uni.getSystemInfoSync();
|
||||
import {
|
||||
mapState
|
||||
} from "vuex";
|
||||
export default {
|
||||
props: ["dataInfo"],
|
||||
components: {
|
||||
@@ -215,6 +170,12 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
radioValue: "",
|
||||
argee: [{
|
||||
value: false,
|
||||
id: "1",
|
||||
}, ], // 同意权限
|
||||
xyText: "",
|
||||
isDefaultCurrency: false,
|
||||
isShowAddress: false,
|
||||
jfNumber: 0,
|
||||
@@ -234,8 +195,7 @@ export default {
|
||||
},
|
||||
selectPayIndex: 1,
|
||||
farePrice: 0,
|
||||
payList: [
|
||||
{
|
||||
payList: [{
|
||||
text: "支付宝",
|
||||
imgUrl: require("@/static/icon/pay_1.png"),
|
||||
type: 2,
|
||||
@@ -318,22 +278,18 @@ export default {
|
||||
addressList: "common/userAddress/getUserAddress",
|
||||
freightNum: "book/buyOrder/calculateTransportPrice", //运费
|
||||
},
|
||||
customButton: [
|
||||
{
|
||||
width: "160rpx",
|
||||
customButton: [{
|
||||
width: "400rpx",
|
||||
text: "立即支付",
|
||||
backgroundColor: "linear-gradient(90deg, #3AB3AE 0%, #117e4c 100%)",
|
||||
color: "#fff",
|
||||
},
|
||||
],
|
||||
customButtonGroup1: [
|
||||
{
|
||||
}, ],
|
||||
customButtonGroup1: [{
|
||||
with: 200,
|
||||
text: "确定",
|
||||
backgroundColor: "linear-gradient(90deg, #3AB3AE 0%, #117e4c 100%)",
|
||||
color: "#fff",
|
||||
},
|
||||
],
|
||||
}, ],
|
||||
};
|
||||
},
|
||||
async onLoad(options) {
|
||||
@@ -396,6 +352,15 @@ export default {
|
||||
...mapState(["userInfo"]),
|
||||
},
|
||||
methods: {
|
||||
showXieyi() {
|
||||
|
||||
|
||||
|
||||
uni.navigateTo({
|
||||
url: "/pages/mine/aboutUs/agreement?id=105",
|
||||
});
|
||||
},
|
||||
|
||||
onHandleClickBuy() {
|
||||
this.orderModalShow = false;
|
||||
this.remark = this.content;
|
||||
@@ -414,8 +379,7 @@ export default {
|
||||
},
|
||||
|
||||
async initPrepareOrder() {
|
||||
this.priceBreakdownList = [
|
||||
{
|
||||
this.priceBreakdownList = [{
|
||||
text: "商品总价",
|
||||
imgUrl: "",
|
||||
type: 1,
|
||||
@@ -531,34 +495,21 @@ export default {
|
||||
},
|
||||
async goBuyJie() {
|
||||
debounce(async () => {
|
||||
// if (this.radioValue != 1) {
|
||||
// uni.showToast({
|
||||
// title: "请勾选 已阅读会员服务协议",
|
||||
// icon: "none",
|
||||
// });
|
||||
// return false;
|
||||
// }
|
||||
var that = this;
|
||||
// if (this.addressList.length == 0) {
|
||||
// this.dizhiShow = true // 如果没有地址信息
|
||||
// }
|
||||
// if (!this.nowClick) {
|
||||
// return
|
||||
// }
|
||||
|
||||
this.nowClick = false;
|
||||
setTimeout(() => {
|
||||
this.nowClick = true;
|
||||
}, 5000);
|
||||
// let youPre = {
|
||||
// id: "",
|
||||
// coupons: {
|
||||
// amount: 0,
|
||||
// name: "",
|
||||
// },
|
||||
// };
|
||||
// if (this.youhuiContent.id != undefined) {
|
||||
// youPre = this.youhuiContent;
|
||||
// }
|
||||
|
||||
let xiaBiao = [];
|
||||
// for (let i = 0; i < this.cartList.length; i++) {
|
||||
// xiaBiao.push({
|
||||
// productId: this.cartList[i].productId,
|
||||
// quantity: this.cartList[i].productAmount,
|
||||
// });
|
||||
// }
|
||||
|
||||
let data = {
|
||||
paymentMethod: this.payType, //1微信2支付宝3苹果支付4虚拟币
|
||||
@@ -568,12 +519,9 @@ export default {
|
||||
jfDeduction: 0, //积分抵扣
|
||||
vipBuyConfigId: this.dataInfo.id,
|
||||
come: 1, //订单来源,0疯子读书1国学众妙之门2医学吴门医述
|
||||
|
||||
// appName: "zmzm",
|
||||
};
|
||||
|
||||
console.log("data at line 477:", data);
|
||||
|
||||
await $http
|
||||
.request({
|
||||
// url: "book/buyOrder/buySave",
|
||||
@@ -602,8 +550,7 @@ export default {
|
||||
title: "正在支付",
|
||||
icon: "loading",
|
||||
});
|
||||
await setPay(
|
||||
{
|
||||
await setPay({
|
||||
typePay: "alipay",
|
||||
subject: "vip",
|
||||
totalAmount: res.money,
|
||||
@@ -621,10 +568,12 @@ export default {
|
||||
title: "支付成功",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.setStorageSync("orderStatus", 0);
|
||||
uni.setStorageSync(
|
||||
"orderStatus", 0);
|
||||
uni.switchTab({
|
||||
url: "/pages/bookShop/orderList?type=order",
|
||||
success: function (res) {},
|
||||
success: function(
|
||||
res) {},
|
||||
});
|
||||
}, 1000);
|
||||
} else {
|
||||
@@ -639,13 +588,6 @@ export default {
|
||||
image: "../../../static/icon/ic_close.png",
|
||||
});
|
||||
}, 0);
|
||||
|
||||
// setTimeout(() => {
|
||||
|
||||
// uni.navigateTo({
|
||||
// url: './orderList'
|
||||
// });
|
||||
// }, 1000)
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -662,15 +604,18 @@ export default {
|
||||
title: "支付成功",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.setStorageSync("orderStatus", 0);
|
||||
uni.setStorageSync(
|
||||
"orderStatus", 0);
|
||||
uni.switchTab({
|
||||
url: "/pages/bookShop/orderList?type=order",
|
||||
success: function (res) {},
|
||||
success: function(
|
||||
res) {},
|
||||
});
|
||||
}, 1000);
|
||||
} else {
|
||||
console.log(res, "微信支付111111111111111");
|
||||
if (res.data.errMsg.indexOf("User canceled") != -1) {
|
||||
if (res.data.errMsg.indexOf(
|
||||
"User canceled") != -1) {
|
||||
uni.showToast({
|
||||
title: "用户取消支付",
|
||||
icon: "none",
|
||||
@@ -756,8 +701,7 @@ export default {
|
||||
}
|
||||
this.modalInfo = {
|
||||
title: "提示信息",
|
||||
content:
|
||||
"用户您好,该课程已到期,通过支付" +
|
||||
content: "用户您好,该课程已到期,通过支付" +
|
||||
fee +
|
||||
"元,本门课程可获得" +
|
||||
days +
|
||||
@@ -900,69 +844,9 @@ export default {
|
||||
// socket.init();
|
||||
});
|
||||
|
||||
// this.$nextTick(() => {
|
||||
// switch (item.type) {
|
||||
// case 1:
|
||||
// // allDataList
|
||||
// this.dataList = that.allDataList.result1Lst
|
||||
// break;
|
||||
// case 2:
|
||||
// this.dataList = that.allDataList.result2Lst
|
||||
// break;
|
||||
// case 3:
|
||||
// this.dataList = that.allDataList.result3Lst
|
||||
// break;
|
||||
// case 4:
|
||||
// this.dataList = that.allDataList.result4Lst.filter(e =>
|
||||
// e.oid != '5fcf991c027b11e7ae62008cfae40c18' && e.oid != 'b3d8a938b8e147bc877613bb712a9cb3' && e.oid != '4d4730163135420ea962bfac4805e026' && e.oid != '49fb76ca3d6b43718d78c6aa9a3003c2' && e.oid != 'c7b047ed9246469b9ae2b1013fc3df9c'
|
||||
|
||||
// )
|
||||
|
||||
// console.log(this.dataList.length, 6666666)
|
||||
// break;
|
||||
|
||||
// }
|
||||
|
||||
// this.currentCateIndex = item.index
|
||||
// })
|
||||
console.log(this.allDataList, this.dataList, "1688");
|
||||
// if(this.userMes.tgdzPower == 0){
|
||||
// let that = this
|
||||
// uni.showModal({
|
||||
// content: "购买 针灸六经法要上册和下册 后方可使用此功能",
|
||||
// confirmText: '好的',
|
||||
// showCancel: false,
|
||||
// success: function(res) {
|
||||
// if (res.confirm) {
|
||||
// // console.log('用户点击确定');
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
// if(item.title == "时辰取穴"){
|
||||
// uni.navigateTo({
|
||||
// url: "../timeAcupoint/timeAcupoint"
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
|
||||
// this.currentStatusIndex = index
|
||||
|
||||
this.searchValue = "";
|
||||
this.searchList = [];
|
||||
this.showSearchList = false;
|
||||
// if (index != 2) {
|
||||
|
||||
// uni.createSelectorQuery().select('.statusList').boundingClientRect(function (rect) {
|
||||
// var height = rect.height
|
||||
// console.log('元素高度:',);
|
||||
|
||||
// }).exec();
|
||||
|
||||
// } else {
|
||||
// this.getJFList(dictType)
|
||||
// }
|
||||
|
||||
return data;
|
||||
},
|
||||
@@ -972,8 +856,7 @@ export default {
|
||||
// curriculumInfo
|
||||
|
||||
this.detailInfo = {
|
||||
content:
|
||||
"<img src='http://oss.taihumed.com/other/null_20210528102528870.jpg' ></img> <img src='http://101.201.146.165:8088/curriculum/detailImg/curriculum_20170420143333621.png' ></img><p><p>没有中医基础想学中医难不难?中医学者治疗出现瓶颈怎么办?中西医究竟有什么不同呢?吴雄志教授将以全新的视角,完美整合中药学和西医学知识,让你领略当代中医生理学魅力。</p><p><br/><p></p><p><br/></p><p>【思考题】</p><p>1、简述中医的发展这些年出现了哪些变化?</p><p>2、简述中西医学科的异同?</p>",
|
||||
content: "<img src='http://oss.taihumed.com/other/null_20210528102528870.jpg' ></img> <img src='http://101.201.146.165:8088/curriculum/detailImg/curriculum_20170420143333621.png' ></img><p><p>没有中医基础想学中医难不难?中医学者治疗出现瓶颈怎么办?中西医究竟有什么不同呢?吴雄志教授将以全新的视角,完美整合中药学和西医学知识,让你领略当代中医生理学魅力。</p><p><br/><p></p><p><br/></p><p>【思考题】</p><p>1、简述中医的发展这些年出现了哪些变化?</p><p>2、简述中西医学科的异同?</p>",
|
||||
};
|
||||
|
||||
// this.$http
|
||||
@@ -1118,7 +1001,9 @@ export default {
|
||||
transformData(inputData) {
|
||||
const result = {};
|
||||
inputData.forEach((item) => {
|
||||
const { letter } = item;
|
||||
const {
|
||||
letter
|
||||
} = item;
|
||||
if (!result[letter]) {
|
||||
result[letter] = [];
|
||||
}
|
||||
@@ -1562,8 +1447,7 @@ export default {
|
||||
// color: #aaa;
|
||||
color: #5a5a5a;
|
||||
|
||||
.explain {
|
||||
}
|
||||
.explain {}
|
||||
}
|
||||
|
||||
.left {
|
||||
@@ -1831,4 +1715,24 @@ export default {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.agree_wo {
|
||||
float: right;
|
||||
width: 100%;
|
||||
color: #aaa;
|
||||
font-size: 22rpx;
|
||||
margin-top: -10rpx;
|
||||
margin-bottom: 20rpx;
|
||||
padding: 0 20rpx;
|
||||
// margin: 40rpx 50rpx 0 50rpx;
|
||||
// padding-bottom: 40rpx;
|
||||
}
|
||||
|
||||
.agree {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: $uni-color-primary;
|
||||
}
|
||||
</style>
|
||||
@@ -639,7 +639,7 @@
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "请勾选 已阅读会员服务协议",
|
||||
title: "请勾选 已阅读增值服务协议",
|
||||
icon: "none",
|
||||
});
|
||||
return false;
|
||||
|
||||
@@ -3,100 +3,46 @@
|
||||
<public-module></public-module>
|
||||
<view class="logo_bg">
|
||||
<text class="">您好,<br />欢迎来到 众妙之门</text>
|
||||
<image
|
||||
src="@/static/icon/login_icon_1.png"
|
||||
mode="aspectFit"
|
||||
class="icon_hua_1"
|
||||
></image>
|
||||
<image
|
||||
src="@/static/icon/login_icon_2.png"
|
||||
mode="aspectFit"
|
||||
class="icon_hua_2"
|
||||
></image>
|
||||
<image src="@/static/icon/login_icon_1.png" mode="aspectFit" class="icon_hua_1"></image>
|
||||
<image src="@/static/icon/login_icon_2.png" mode="aspectFit" class="icon_hua_2"></image>
|
||||
</view>
|
||||
<view class="register_page">
|
||||
<view class="login_method">
|
||||
<view
|
||||
class="title"
|
||||
:class="{ active: type == 2000 }"
|
||||
v-if="type == 2000"
|
||||
>验证码登录/注册</view
|
||||
>
|
||||
<view
|
||||
class="title"
|
||||
:class="{ active: type == 1000 }"
|
||||
v-if="type == 1000"
|
||||
>密码登录</view
|
||||
>
|
||||
<view class="title" :class="{ active: type == 2000 }" v-if="type == 2000">验证码登录/注册</view>
|
||||
<view class="title" :class="{ active: type == 1000 }" v-if="type == 1000">密码登录</view>
|
||||
</view>
|
||||
|
||||
<!-- 验证码登录 -->
|
||||
<view v-if="type == 2000">
|
||||
<view class="flexbox" style="margin-top: 50rpx">
|
||||
<view
|
||||
class="input_tit emaPho"
|
||||
style="margin-top: 0; margin-right: 20rpx"
|
||||
>
|
||||
<view @click="changeBrand(3000)" :class="{ active: brand == 3000 }"
|
||||
>手机号</view
|
||||
>
|
||||
<view class="input_tit emaPho" style="margin-top: 0; margin-right: 20rpx">
|
||||
<view @click="changeBrand(3000)" :class="{ active: brand == 3000 }">手机号</view>
|
||||
<span>/</span>
|
||||
<view @click="changeBrand(4000)" :class="{ active: brand == 4000 }"
|
||||
>邮箱</view
|
||||
>
|
||||
<view @click="changeBrand(4000)" :class="{ active: brand == 4000 }">邮箱</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 带区号手机号 -->
|
||||
<view
|
||||
class="flexbox"
|
||||
v-if="brand == 3000"
|
||||
style="margin: 36rpx 0; justify-content: space-between"
|
||||
>
|
||||
<view class="flexbox" v-if="brand == 3000" style="margin: 36rpx 0; justify-content: space-between">
|
||||
<view class="quhao">
|
||||
<uni-data-select
|
||||
class="myselect"
|
||||
placeholder="请选择区号"
|
||||
v-model="loginForm.quCode"
|
||||
:localdata="quCodeList"
|
||||
style="height: 30rpx !important"
|
||||
@change="quChange"
|
||||
></uni-data-select>
|
||||
<uni-data-select class="myselect" placeholder="请选择区号" v-model="loginForm.quCode"
|
||||
:localdata="quCodeList" style="height: 30rpx !important"
|
||||
@change="quChange"></uni-data-select>
|
||||
</view>
|
||||
<view
|
||||
class="triangle borderBottom phoneNumberInput"
|
||||
:clasfs="[type == 1000 ? 'left_triangle' : 'right_triangle']"
|
||||
>
|
||||
<u--input
|
||||
class="form_input_box"
|
||||
type="number"
|
||||
v-model="loginForm.phone"
|
||||
@input="onInput"
|
||||
placeholder="请输入您的手机号"
|
||||
placeholder-class="grey"
|
||||
/>
|
||||
<view class="triangle borderBottom phoneNumberInput"
|
||||
:clasfs="[type == 1000 ? 'left_triangle' : 'right_triangle']">
|
||||
<u--input class="form_input_box" type="number" v-model="loginForm.phone" @input="onInput"
|
||||
placeholder="请输入您的手机号" placeholder-class="grey" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="input_box" v-if="brand == 4000">
|
||||
<u--input
|
||||
class="form_input_box"
|
||||
v-model="loginForm.email"
|
||||
placeholder="请输入您的邮箱"
|
||||
placeholder-class="grey"
|
||||
@input="onInput"
|
||||
/>
|
||||
<u--input class="form_input_box" v-model="loginForm.email" placeholder="请输入您的邮箱"
|
||||
placeholder-class="grey" @input="onInput" />
|
||||
</view>
|
||||
<view class="input_tit">验证码</view>
|
||||
<view class="input_box">
|
||||
<u--input
|
||||
class="form_input_box"
|
||||
v-model="loginForm.code"
|
||||
placeholder="请输入您的验证码"
|
||||
placeholder-class="grey"
|
||||
@input="onInput"
|
||||
maxlength="6"
|
||||
@confirm="onSubmit"
|
||||
/>
|
||||
<u--input class="form_input_box" v-model="loginForm.code" placeholder="请输入您的验证码"
|
||||
placeholder-class="grey" @input="onInput" maxlength="6" @confirm="onSubmit" />
|
||||
<button class="active" @click="onSetCode">{{ codeText }}</button>
|
||||
</view>
|
||||
</view>
|
||||
@@ -106,43 +52,21 @@
|
||||
<!-- 手机号/邮箱 -->
|
||||
<view class="input_tit" style="margin-top: 80rpx">手机号 / 邮箱</view>
|
||||
<view class="input_box">
|
||||
<u--input
|
||||
class="form_input_box"
|
||||
v-model="loginForm.phoneEmail"
|
||||
placeholder="请输入您的手机号或者邮箱"
|
||||
placeholder-class="grey"
|
||||
@input="onInput"
|
||||
/>
|
||||
<u--input class="form_input_box" v-model="loginForm.phoneEmail" placeholder="请输入您的手机号或者邮箱"
|
||||
placeholder-class="grey" @input="onInput" />
|
||||
</view>
|
||||
<view class="input_tit">密码</view>
|
||||
<view class="input_box">
|
||||
<u--input
|
||||
v-model="loginForm.password"
|
||||
@input="onInput"
|
||||
:password="!isSee"
|
||||
placeholder="请输入密码"
|
||||
placeholder-class="grey"
|
||||
@confirm="onSubmit"
|
||||
class="form_input_box"
|
||||
>
|
||||
</u--input
|
||||
><u-icon
|
||||
class="active"
|
||||
:name="isSee ? 'eye-fill' : 'eye-off'"
|
||||
@click="isSee = !isSee"
|
||||
:color="isSee ? '#018F89' : '#b0b0b0'"
|
||||
size="30"
|
||||
style="display: block; margin-right: 10rpx"
|
||||
></u-icon>
|
||||
<u--input v-model="loginForm.password" @input="onInput" :password="!isSee" placeholder="请输入密码"
|
||||
placeholder-class="grey" @confirm="onSubmit" class="form_input_box">
|
||||
</u--input><u-icon class="active" :name="isSee ? 'eye-fill' : 'eye-off'" @click="isSee = !isSee"
|
||||
:color="isSee ? '#018F89' : '#b0b0b0'" size="30"
|
||||
style="display: block; margin-right: 10rpx"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="protocol_box">
|
||||
<view
|
||||
class="select"
|
||||
:class="{ active: agree }"
|
||||
@click="agree = !agree"
|
||||
></view>
|
||||
<view class="select" :class="{ active: agree }" @click="agree = !agree"></view>
|
||||
我已同意
|
||||
|
||||
<span class="highlight" @click="yhxyShow = true">《用户协议》</span>
|
||||
@@ -155,12 +79,8 @@
|
||||
</view>
|
||||
<view class="loginHelp" v-if="submitClickNum > 0">
|
||||
<!-- <view class="loginHelp"> -->
|
||||
<text>登录遇到问题?</text
|
||||
><text
|
||||
class="link"
|
||||
@click="onPageJump('/pages/homePage/index/workOrder', 'login')"
|
||||
>去反馈问题</text
|
||||
>
|
||||
<text>登录遇到问题?</text><text class="link"
|
||||
@click="onPageJump('/pages/homePage/index/workOrder', 'login')">去反馈问题</text>
|
||||
</view>
|
||||
<!-- <view class="third_party_login_box">
|
||||
<view class="third_party_title"><text>第三方登录</text></view>
|
||||
@@ -171,19 +91,10 @@
|
||||
</view> -->
|
||||
|
||||
<view class="qie_huan" style="display: flex; justify-content: center">
|
||||
<view style="width: 30%" @click="changeType(1000)" v-if="type == 2000"
|
||||
>密码登录</view
|
||||
>
|
||||
<view
|
||||
style="width: 50%; display: flex; justify-content: space-between"
|
||||
v-if="type == 1000"
|
||||
>
|
||||
<view style="width: 30%" @click="changeType(1000)" v-if="type == 2000">密码登录</view>
|
||||
<view style="width: 50%; display: flex; justify-content: space-between" v-if="type == 1000">
|
||||
<text @click="changeType(2000)">验证码登录</text>
|
||||
<text
|
||||
v-if="type == 1000"
|
||||
@click="onPageJump('/pages/user/login/forget')"
|
||||
>忘记密码?</text
|
||||
>
|
||||
<text v-if="type == 1000" @click="onPageJump('/pages/user/login/forget')">忘记密码?</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="youKeL" style="margin-bottom: 40rpx" v-if="!isAndorid">
|
||||
@@ -253,12 +164,7 @@
|
||||
</view> -->
|
||||
<!-- #endif -->
|
||||
|
||||
<u-popup
|
||||
:show="yhxyShow"
|
||||
title="用户协议"
|
||||
:round="10"
|
||||
@close="yhxyShow = false"
|
||||
>
|
||||
<u-popup :show="yhxyShow" title="用户协议" :round="10" @close="yhxyShow = false">
|
||||
<view class="tanchu">
|
||||
<view class="dp_title" v-html="yhxyText.title"></view>
|
||||
<view class="dp_content" v-html="yhxyText.content"></view>
|
||||
@@ -266,12 +172,7 @@
|
||||
</view>
|
||||
</u-popup>
|
||||
|
||||
<u-popup
|
||||
:show="yszcShow"
|
||||
title="隐私政策"
|
||||
:round="10"
|
||||
@close="yszcShow = false"
|
||||
>
|
||||
<u-popup :show="yszcShow" title="隐私政策" :round="10" @close="yszcShow = false">
|
||||
<view class="tanchu">
|
||||
<view class="dp_title" v-html="yszcText.title"></view>
|
||||
<view class="dp_content" v-html="yszcText.content"></view>
|
||||
@@ -286,7 +187,10 @@
|
||||
import md5 from "@/plugins/md5";
|
||||
|
||||
var clear;
|
||||
import { mapState, mapMutations } from "vuex";
|
||||
import {
|
||||
mapState,
|
||||
mapMutations
|
||||
} from "vuex";
|
||||
import socket from "@/config/socket";
|
||||
export default {
|
||||
// components: {
|
||||
@@ -332,7 +236,10 @@ export default {
|
||||
title: "",
|
||||
content: "",
|
||||
},
|
||||
yszcText: { title: "", content: "" },
|
||||
yszcText: {
|
||||
title: "",
|
||||
content: ""
|
||||
},
|
||||
quShow: false,
|
||||
quCodeList: [], // 国家区域码
|
||||
loginForm: {},
|
||||
@@ -912,9 +819,13 @@ export default {
|
||||
uni.switchTab({
|
||||
url: "/pages/homePage/index/index",
|
||||
success: function() {
|
||||
let page = getCurrentPages()[0];
|
||||
console.log(page);
|
||||
page.$vm.requestAll();
|
||||
let page =
|
||||
getCurrentPages()[
|
||||
0];
|
||||
console.log(
|
||||
page);
|
||||
page.$vm
|
||||
.requestAll();
|
||||
},
|
||||
});
|
||||
}, 500);
|
||||
@@ -976,9 +887,13 @@ export default {
|
||||
uni.switchTab({
|
||||
url: "/pages/homePage/index/index",
|
||||
success: function() {
|
||||
let page = getCurrentPages()[0];
|
||||
console.log(page);
|
||||
page.$vm.requestAll();
|
||||
let page =
|
||||
getCurrentPages()[
|
||||
0];
|
||||
console.log(
|
||||
page);
|
||||
page.$vm
|
||||
.requestAll();
|
||||
},
|
||||
});
|
||||
}, 500);
|
||||
@@ -1178,8 +1093,7 @@ export default {
|
||||
color: $themeColor;
|
||||
}
|
||||
|
||||
.emaPho {
|
||||
}
|
||||
.emaPho {}
|
||||
|
||||
.emaPho>view {
|
||||
display: inline-block;
|
||||
@@ -1453,8 +1367,19 @@ export default {
|
||||
border-radius: 10rpx;
|
||||
padding: 5rpx 15rpx;
|
||||
}
|
||||
}.loginHelp{border: 1px solid #f5dab1; margin-top: 16rpx; font-size: 26rpx; text-align: center;
|
||||
padding: 10rpx; background-color: #fdf6ec; border-radius: 15rpx;
|
||||
.link{color: #e6a23c;}
|
||||
}
|
||||
|
||||
.loginHelp {
|
||||
border: 1px solid #f5dab1;
|
||||
margin-top: 16rpx;
|
||||
font-size: 26rpx;
|
||||
text-align: center;
|
||||
padding: 10rpx;
|
||||
background-color: #fdf6ec;
|
||||
border-radius: 15rpx;
|
||||
|
||||
.link {
|
||||
color: #e6a23c;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -6,55 +6,12 @@
|
||||
<view class="header_box"></view>
|
||||
|
||||
<view class="main_content_box">
|
||||
<view class="curriculum_box">
|
||||
<view
|
||||
class="curriculum_item_box"
|
||||
v-for="(v, i) in curriculumList"
|
||||
@click="handleClickCurriculum(v)"
|
||||
>
|
||||
<!-- <view class="curriculum_item"> -->
|
||||
<image
|
||||
:src="v.imgUrl"
|
||||
mode="aspectFill"
|
||||
class="curriculum_item_img"
|
||||
></image>
|
||||
<view class="curriculum_item_name">{{ v.name }}</view>
|
||||
<!-- </view> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="cate_box">
|
||||
<view
|
||||
class="cate_item_box"
|
||||
v-for="(v, i) in cateList"
|
||||
@click="handleClickCate(v)"
|
||||
>
|
||||
<view class="cate_item_border">
|
||||
<image
|
||||
:src="v.icon"
|
||||
mode="aspectFill"
|
||||
style="width: 49rpx; height: 49rpx"
|
||||
></image>
|
||||
</view>
|
||||
<view class="cate_item_name">{{ v.title }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flash_sale_box notice_box">
|
||||
<view class="flash_sale_top">
|
||||
<image
|
||||
class="miaoShaIcon noticeIcon"
|
||||
src="@/static/icon/homePage/notice.png"
|
||||
mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"
|
||||
></image>
|
||||
<u-notice-bar
|
||||
:text="noticeList"
|
||||
style="background-color: none !important"
|
||||
class="miaoShaContent"
|
||||
icon=""
|
||||
direction="column"
|
||||
label="title"
|
||||
@click="goNotice"
|
||||
>
|
||||
<image class="miaoShaIcon noticeIcon" src="@/static/icon/homePage/notice.png" mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"></image>
|
||||
<u-notice-bar :text="noticeList" style="background-color: none !important"
|
||||
class="miaoShaContent" icon="" direction="column" label="title">
|
||||
</u-notice-bar>
|
||||
<!-- <view class="miaoShaContent" style="width: 100%;">
|
||||
|
||||
@@ -67,36 +24,21 @@
|
||||
|
||||
<view class="flash_sale_box">
|
||||
<view class="flash_sale_top">
|
||||
<image
|
||||
class="miaoShaIcon"
|
||||
src="@/static/icon/homePage/miaosha.png"
|
||||
mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"
|
||||
></image>
|
||||
<image class="miaoShaIcon" src="@/static/icon/homePage/miaosha.png" mode="aspectFill"
|
||||
style="width: 36rpx; height: 44rpx"></image>
|
||||
<text class="miaoShaTitle" @click="goVideo">秒杀</text>
|
||||
<view class="miaoShaContent">
|
||||
<!-- {{ miaoShaContent }} -->
|
||||
</view>
|
||||
<image
|
||||
class="rightArrowIcon"
|
||||
src="@/static/icon/homePage/right_arrow.png"
|
||||
mode="aspectFill"
|
||||
style="width: 28rpx; height: 18rpx"
|
||||
></image>
|
||||
<image class="rightArrowIcon" src="@/static/icon/homePage/right_arrow.png" mode="aspectFill"
|
||||
style="width: 28rpx; height: 18rpx"></image>
|
||||
</view>
|
||||
|
||||
<view class="flash_sale_content" style="margin-top: 40rpx">
|
||||
<scroll-view scroll-x="true" class="scroll-X" style="">
|
||||
<view
|
||||
class="scroll-view-item flash_sale_content_item"
|
||||
@click="goGoodsDetail(v)"
|
||||
v-for="(v, i) in seckillLst"
|
||||
>
|
||||
<image
|
||||
class="book_image"
|
||||
:src="v.productImages"
|
||||
mode="aspectFit"
|
||||
>
|
||||
<view class="scroll-view-item flash_sale_content_item" @click="goGoodsDetail(v)"
|
||||
v-for="(v, i) in seckillLst">
|
||||
<image class="book_image" :src="v.productImages" mode="aspectFit">
|
||||
</image>
|
||||
<view class="book_name" style="padding-bottom: 20rpx">{{
|
||||
v.productName
|
||||
@@ -109,19 +51,14 @@
|
||||
<view class="greenCardBox1 learning_box listening_box">
|
||||
<view class="learning_box_top">
|
||||
<view class="learning_top greenCardBoxTop PM_font">
|
||||
<view class="titlebg">欢迎试听</view>
|
||||
<view class="titlebg">会员课程</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="flash_sale_content greenCardBoxContent">
|
||||
<scroll-view scroll-x="true" class="scroll-X" style="">
|
||||
<common-curriculum-list
|
||||
imgUrl="image"
|
||||
:isCondition="true"
|
||||
:dataList="flashSaleList"
|
||||
@hancleClick="goCourseDescription"
|
||||
label="title"
|
||||
>
|
||||
<common-curriculum-list imgUrl="image" :isCondition="true" :dataList="flashSaleList"
|
||||
@hancleClick="goCourseDescription" label="title">
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view class="related_courses_name hidden1">{{
|
||||
slotProps.row.title
|
||||
@@ -137,8 +74,8 @@
|
||||
</view>
|
||||
|
||||
</view> -->
|
||||
</view></view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="selected == 4" class="mine_bg_box" style="
|
||||
height: 100%;background-color: #39b4a84d !important;
|
||||
|
||||
@@ -148,10 +85,7 @@
|
||||
<view style="height: 50rpx"></view>
|
||||
<view class="per_mes" style="display: flex;
|
||||
align-items: center;">
|
||||
<image
|
||||
src="@/static/icon/fengziIcon.png"
|
||||
class="per_mes_img"
|
||||
></image>
|
||||
<image src="@/static/icon/fengziIcon.png" class="per_mes_img"></image>
|
||||
<view @click="onLoginJump">
|
||||
<text class="name">点击登录</text>
|
||||
</view>
|
||||
@@ -177,66 +111,35 @@
|
||||
<view class="footer_box footer_bg">
|
||||
<view class="footer_item">
|
||||
<view class="footer_nav_item" @click="selected = 1">
|
||||
<image
|
||||
v-if="selected == 1"
|
||||
class="footer_nav_item_image footer_nav_item_image_scale"
|
||||
src="/static/tab/home_active.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image
|
||||
v-else
|
||||
class="footer_nav_item_image"
|
||||
src="/static/tab/home.png"
|
||||
mode="aspectFit"
|
||||
>
|
||||
<image v-if="selected == 1" class="footer_nav_item_image footer_nav_item_image_scale"
|
||||
src="/static/tab/home_active.png" mode="aspectFit"></image>
|
||||
<image v-else class="footer_nav_item_image" src="/static/tab/home.png" mode="aspectFit">
|
||||
</image>
|
||||
<text
|
||||
class="footer_nav_item_text"
|
||||
:class="[selected == 1 ? 'footer_item_text_active' : '']"
|
||||
>首页</text
|
||||
>
|
||||
</view> </view
|
||||
><view class="footer_item">
|
||||
<text class="footer_nav_item_text"
|
||||
:class="[selected == 1 ? 'footer_item_text_active' : '']">首页</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="footer_item">
|
||||
<view class="footer_nav_item" @click="onPageJump()">
|
||||
<image
|
||||
class="footer_nav_item_image"
|
||||
src="/static/tab/thgy.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image class="footer_nav_item_image" src="/static/tab/thgy.png" mode="aspectFit"></image>
|
||||
<text class="footer_nav_item_text">太湖公益</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="footer_item">
|
||||
<view class="footer_nav_item" @click="onPageJump()">
|
||||
<image
|
||||
class="footer_nav_item_image"
|
||||
src="/static/tab/order.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image class="footer_nav_item_image" src="/static/tab/order.png" mode="aspectFit"></image>
|
||||
<text class="footer_nav_item_text">我的订单</text>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<view class="footer_item">
|
||||
<view class="footer_nav_item" @click="selected = 4">
|
||||
<image
|
||||
v-if="selected == 4"
|
||||
class="footer_nav_item_image footer_nav_item_image_scale"
|
||||
src="/static/tab/mine_active.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<image
|
||||
v-else
|
||||
class="footer_nav_item_image"
|
||||
src="/static/tab/mine.png"
|
||||
mode="aspectFit"
|
||||
>
|
||||
<image v-if="selected == 4" class="footer_nav_item_image footer_nav_item_image_scale"
|
||||
src="/static/tab/mine_active.png" mode="aspectFit"></image>
|
||||
<image v-else class="footer_nav_item_image" src="/static/tab/mine.png" mode="aspectFit">
|
||||
</image>
|
||||
<text
|
||||
class="footer_nav_item_text"
|
||||
:class="[selected == 4 ? 'footer_item_text_active' : '']"
|
||||
>我的</text
|
||||
>
|
||||
<text class="footer_nav_item_text"
|
||||
:class="[selected == 4 ? 'footer_item_text_active' : '']">我的</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -249,7 +152,10 @@
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { mapState, mapMutations } from "vuex";
|
||||
import {
|
||||
mapState,
|
||||
mapMutations
|
||||
} from "vuex";
|
||||
export default {
|
||||
name: "music",
|
||||
props: {},
|
||||
@@ -282,8 +188,7 @@ export default {
|
||||
flashSaleList: [], //试听
|
||||
miaoShaContent: "",
|
||||
cateList: [],
|
||||
curriculumList: [
|
||||
{
|
||||
curriculumList: [{
|
||||
name: "课程设置",
|
||||
url: "/pages/courseInformation/index/index",
|
||||
// url: "",
|
||||
@@ -439,8 +344,7 @@ export default {
|
||||
},
|
||||
handleGoApp() {
|
||||
if (plus.os.name == "Android") {
|
||||
plus.runtime.launchApplication(
|
||||
{
|
||||
plus.runtime.launchApplication({
|
||||
pname: "com.cn.nuttyreading",
|
||||
},
|
||||
function(e) {
|
||||
@@ -566,9 +470,8 @@ export default {
|
||||
})
|
||||
|
||||
.then(async (res) => {
|
||||
that.flashSaleList = res.courseList.records
|
||||
? res.courseList.records
|
||||
: [];
|
||||
that.flashSaleList = res.courseList.records ?
|
||||
res.courseList.records : [];
|
||||
});
|
||||
},
|
||||
// 跳转
|
||||
@@ -692,8 +595,7 @@ export default {
|
||||
//苹果
|
||||
//因为ios查不到B款app在ios系统手机里面,其实下载了,也是检测不到,所以就不检测了
|
||||
//直接打开B款app,B款app没有的话,会进入回调报错,我们在回调去打开下载链接
|
||||
plus.runtime.launchApplication(
|
||||
{
|
||||
plus.runtime.launchApplication({
|
||||
action: "${schemes}://",
|
||||
},
|
||||
function(e) {
|
||||
@@ -776,9 +678,9 @@ export default {
|
||||
},
|
||||
playStatus() {
|
||||
var playFlag = false;
|
||||
this.userInfo.playFlag !== undefined
|
||||
? (playFlag = this.userInfo.playFlag)
|
||||
: "";
|
||||
this.userInfo.playFlag !== undefined ?
|
||||
(playFlag = this.userInfo.playFlag) :
|
||||
"";
|
||||
console.log(playFlag, "playFlag");
|
||||
return playFlag;
|
||||
},
|
||||
@@ -1272,6 +1174,7 @@ function calcTimer(timer) {
|
||||
.related_courses_name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.footer_box {
|
||||
height: 110rpx;
|
||||
position: fixed;
|
||||
@@ -1392,11 +1295,13 @@ function calcTimer(timer) {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.list_box {
|
||||
// background: #d8f8e4 !important;
|
||||
padding: 20rpx 0;
|
||||
margin-top: -10rpx;
|
||||
}
|
||||
|
||||
.xiugai {
|
||||
border-radius: 20rpx !important;
|
||||
margin: 0 20rpx;
|
||||
@@ -1440,7 +1345,9 @@ function calcTimer(timer) {
|
||||
.nav_list:nth-last-child(1) {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}.box_fillet {
|
||||
}
|
||||
|
||||
.box_fillet {
|
||||
border-radius: 40rpx;
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
File diff suppressed because one or more lines are too long
1301
unpackage/dist/dev/app-plus/app-service.js
vendored
1301
unpackage/dist/dev/app-plus/app-service.js
vendored
File diff suppressed because one or more lines are too long
1410
unpackage/dist/dev/app-plus/app-view.js
vendored
1410
unpackage/dist/dev/app-plus/app-view.js
vendored
File diff suppressed because one or more lines are too long
2
unpackage/dist/dev/app-plus/manifest.json
vendored
2
unpackage/dist/dev/app-plus/manifest.json
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user