Compare commits
11 Commits
b4b018f835
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| e9d6f514bd | |||
| 5a4f96c195 | |||
| 961ca781e8 | |||
| bb640778c0 | |||
| 0a37b21824 | |||
| 3a1cffacde | |||
| 136f82aa3d | |||
| 168ab738a3 | |||
| dee6848bd2 | |||
| 6809d69d08 | |||
| 5db7c6f9d9 |
5
.gitignore
vendored
@@ -1,6 +1,5 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
unpackage/
|
||||
/dist
|
||||
vue.config
|
||||
|
||||
@@ -22,6 +21,8 @@ yarn-error.log*
|
||||
*.sln
|
||||
*.sw*
|
||||
/package-lock.json
|
||||
.gitignore
|
||||
wxcomponents/
|
||||
.hbuilderx/
|
||||
unpackage/cache/
|
||||
unpackage/dist/
|
||||
unpackage/release/
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"configurations" : [
|
||||
{
|
||||
"app" : {
|
||||
"launchtype" : "local"
|
||||
"launchtype" : "remote"
|
||||
},
|
||||
"app-plus" : {
|
||||
"launchtype" : "remote"
|
||||
@@ -27,7 +27,6 @@
|
||||
"type" : "uni-app:app-ios"
|
||||
},
|
||||
{
|
||||
"customPlaygroundType" : "local",
|
||||
"playground" : "custom",
|
||||
"type" : "uni-app:app-android"
|
||||
},
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import $http from '@/config/requestConfig'
|
||||
import store from '@/store';
|
||||
import base from '@/config/baseUrl';
|
||||
import {
|
||||
getAppWxLatLon
|
||||
} from '@/plugins/utils';
|
||||
// import {
|
||||
// getAppWxLatLon
|
||||
// } from '@/plugins/utils';
|
||||
// #ifdef H5
|
||||
import {
|
||||
getLatLonH5,
|
||||
@@ -208,32 +208,32 @@ export const setPayAssign = function(orderInfo, callback) {
|
||||
// #endif
|
||||
}
|
||||
// 获取地址信息 (微信小程序、APP、公众号)
|
||||
export const getLatLon = function(tip) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const successProcess = function(res) {
|
||||
store.commit("setCurrentAddress", {
|
||||
latitude: res.latitude,
|
||||
longitude: res.longitude
|
||||
});
|
||||
resolve(res);
|
||||
};
|
||||
const errProcess = function(err) {
|
||||
reject(err);
|
||||
if (tip) {
|
||||
uni.showToast({
|
||||
title: err,
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
// #ifdef H5
|
||||
getLatLonH5(successProcess, errProcess);
|
||||
// #endif
|
||||
// #ifndef H5
|
||||
getAppWxLatLon(successProcess, errProcess);
|
||||
// #endif
|
||||
});
|
||||
}
|
||||
// export const getLatLon = function(tip) {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// const successProcess = function(res) {
|
||||
// store.commit("setCurrentAddress", {
|
||||
// latitude: res.latitude,
|
||||
// longitude: res.longitude
|
||||
// });
|
||||
// resolve(res);
|
||||
// };
|
||||
// const errProcess = function(err) {
|
||||
// reject(err);
|
||||
// if (tip) {
|
||||
// uni.showToast({
|
||||
// title: err,
|
||||
// icon: "none"
|
||||
// });
|
||||
// }
|
||||
// };
|
||||
// // #ifdef H5
|
||||
// getLatLonH5(successProcess, errProcess);
|
||||
// // #endif
|
||||
// // #ifndef H5
|
||||
// getAppWxLatLon(successProcess, errProcess);
|
||||
// // #endif
|
||||
// });
|
||||
// }
|
||||
|
||||
// 查看是否有某本书的权限
|
||||
export const checkBookRight = function(data,callback) {
|
||||
|
||||
10
main.js
@@ -88,8 +88,10 @@ import commonList from '@/pages/component/commonComponents/list.vue'
|
||||
Vue.component('common-list', commonList);
|
||||
import commonOrderSubmit from '@/pages/component/commonComponents/orderSubmit.vue'
|
||||
Vue.component('common-order-submit', commonOrderSubmit);
|
||||
import commonVideo from '@/pages/component/commonComponents/video/index.vue'
|
||||
Vue.component('common-video', commonVideo);
|
||||
|
||||
import CommonCourseVideo from 'edu-core/components/course-video'
|
||||
Vue.component('CommonCourseVideo', CommonCourseVideo);
|
||||
|
||||
import commonCoupon from '@/pages/component/commonComponents/coupon/index.vue'
|
||||
Vue.component('common-coupon', commonCoupon);
|
||||
import commonGoodsList from '@/pages/component/commonComponents/goodsList.vue'
|
||||
@@ -114,8 +116,8 @@ import commonSelectVip from '@/pages/component/commonComponents/selectVip.vue'
|
||||
Vue.component('common-select-vip', commonSelectVip);
|
||||
import commonAdvertisement from '@/pages/component/commonComponents/advertisement.vue'
|
||||
Vue.component('common-advertisement', commonAdvertisement);
|
||||
import commonVideoIos from '@/pages/component/commonComponents/video/ios.nvue'
|
||||
Vue.component('common-video-ios', commonVideoIos);
|
||||
// import commonVideoIos from '@/pages/component/commonComponents/video/ios.nvue'
|
||||
// Vue.component('common-video-ios', commonVideoIos);
|
||||
// import musicPlay from '@/components/music.vue'
|
||||
// Vue.component('music-play', musicPlay);
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"appid" : "__UNI__C7475A8",
|
||||
"description" : "吴门医述",
|
||||
"networkTimeout" : {
|
||||
"request" : 15000
|
||||
"request" : 0
|
||||
},
|
||||
"transformPx" : false,
|
||||
"icons" : [
|
||||
@@ -12,8 +12,8 @@
|
||||
"src" : "图片路径"
|
||||
}
|
||||
],
|
||||
"versionName" : "2.0.33",
|
||||
"versionCode" : 2033,
|
||||
"versionName" : "2.0.38",
|
||||
"versionCode" : 2038,
|
||||
"sassImplementationName" : "node-sass",
|
||||
"app-plus" : {
|
||||
"nvueCompiler" : "uni-app",
|
||||
@@ -59,8 +59,6 @@
|
||||
"permissions" : [
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
@@ -75,7 +73,6 @@
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
|
||||
"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
@@ -86,7 +83,11 @@
|
||||
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
|
||||
"minSdkVersion" : 21,
|
||||
"targetSdkVersion" : 30,
|
||||
"schemes" : "medicine"
|
||||
"schemes" : "medicine",
|
||||
"excludePermissions" : [
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>"
|
||||
]
|
||||
},
|
||||
"sdkConfigs" : {
|
||||
"ad" : {},
|
||||
|
||||
7489
package-lock.json
generated
@@ -7,6 +7,7 @@
|
||||
"dependencies": {
|
||||
"animate.css": "^4.1.1",
|
||||
"e-peanut": "file:",
|
||||
"edu-core": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.3",
|
||||
"element-plus": "^2.9.6",
|
||||
"epubjs": "^0.3.93",
|
||||
"jquery": "^2.2.4",
|
||||
|
||||
@@ -797,6 +797,12 @@
|
||||
"style": {
|
||||
"navigationBarTitleText": "确认订单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/migrate/index",
|
||||
"style": {
|
||||
"navigationBarTitleText" : "数据迁移"
|
||||
}
|
||||
}
|
||||
|
||||
],
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
<template>
|
||||
<div>{{ message }}</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import $ from "jquery";
|
||||
export default class MyComponent {
|
||||
// data() {
|
||||
// return {
|
||||
// message: 'Hello, Vue!'
|
||||
// }
|
||||
// }
|
||||
|
||||
constructor(adAddress, toAddress) {
|
||||
this.adAddress = adAddress;
|
||||
this.toAddress = toAddress;
|
||||
this.$html = $(html);
|
||||
}
|
||||
|
||||
createEl(el) {
|
||||
this.$html.find(".ad").attr("src", this.adAddress);
|
||||
this.$html.attr("href", this.toAddress);
|
||||
let $adWrapper = this.$html.find(".ad-wrapper");
|
||||
$adWrapper.attr("href", this.toAddress);
|
||||
$adWrapper.click(() => {
|
||||
Aliplayer.util.stopPropagation();
|
||||
});
|
||||
this.$html.find(".close").click(() => {
|
||||
this.$html.hide();
|
||||
});
|
||||
$(el).append(this.$html);
|
||||
}
|
||||
|
||||
ready(player, e) {}
|
||||
|
||||
play(player, e) {
|
||||
this.$html.hide();
|
||||
}
|
||||
|
||||
pause(player, e) {
|
||||
this.$html.show();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -25,7 +25,8 @@
|
||||
:change:isSetFirstTime="renderScript.receiveisSetFirstTime"
|
||||
:change:isfresh="renderScript.receiveIsfresh" :change:platform="renderScript.receiveplatform"
|
||||
:change:isChange="renderScript.receiveIsChange"
|
||||
:change:currentVideoList="renderScript.receiveVideoList"></div>
|
||||
:change:currentVideoList="renderScript.receiveVideoList">
|
||||
</div>
|
||||
<div @tap="renderScript.emitData" ref="videoContent1" v-show="false" class="videoContent1">
|
||||
直接调用renderjs中的emitData的方法,传递当前播放时长
|
||||
</div>
|
||||
@@ -470,6 +471,9 @@
|
||||
var diff = 0
|
||||
var pauseTime = 0
|
||||
var myplayer = undefined
|
||||
var seekBtnHideTimer = null
|
||||
var seekBtnEls = []
|
||||
var seekBtnsEnabled = true
|
||||
import $ from 'jquery'
|
||||
export default {
|
||||
components: {
|
||||
@@ -634,6 +638,113 @@
|
||||
},
|
||||
|
||||
});
|
||||
var backBtnComponent = Aliplayer.Component({
|
||||
init: function(status, toAddress) {
|
||||
this.fullScreenStatus = status
|
||||
this.$html = $('#url-player-test');
|
||||
},
|
||||
createEl: function(el) {
|
||||
seekBtnsEnabled = true;
|
||||
|
||||
var container = $('#url-player-test');
|
||||
container.find('.custom-seek-back').remove();
|
||||
container.find('.custom-seek-forward').remove();
|
||||
|
||||
seekBtnEls = [];
|
||||
|
||||
function createSeekBtn(className, label, position) {
|
||||
var btn = document.createElement('button');
|
||||
btn.className = 'custom-seek-btn ' + className;
|
||||
btn.innerText = label;
|
||||
btn.style.position = 'absolute';
|
||||
btn.style.top = '50%';
|
||||
btn.style.transform = 'translateY(-50%)';
|
||||
btn.style.width = '48px';
|
||||
btn.style.height = '48px';
|
||||
btn.style.borderRadius = '50%';
|
||||
btn.style.border = 'none';
|
||||
btn.style.background = 'rgba(255,255,255,0.6)';
|
||||
btn.style.color = '#000';
|
||||
btn.style.fontSize = '14px';
|
||||
btn.style.display = 'flex';
|
||||
btn.style.alignItems = 'center';
|
||||
btn.style.justifyContent = 'center';
|
||||
btn.style.padding = '0';
|
||||
btn.style.display = 'none';
|
||||
btn.style.zIndex = '10';
|
||||
if (position === 'left') {
|
||||
btn.style.left = '30px';
|
||||
} else if (position === 'right') {
|
||||
btn.style.right = '30px';
|
||||
}
|
||||
return btn;
|
||||
}
|
||||
|
||||
var backBtn = createSeekBtn('custom-seek-back', '-15s', 'left');
|
||||
var forwardBtn = createSeekBtn('custom-seek-forward', '+15s', 'right');
|
||||
|
||||
seekBtnEls = [backBtn, forwardBtn];
|
||||
|
||||
var showSeekBtns = function() {
|
||||
if (!seekBtnsEnabled) return;
|
||||
if (!seekBtnEls || !seekBtnEls.length) return;
|
||||
seekBtnEls.forEach(function(btn) {
|
||||
btn.style.display = 'flex';
|
||||
});
|
||||
if (seekBtnHideTimer) {
|
||||
clearTimeout(seekBtnHideTimer);
|
||||
}
|
||||
seekBtnHideTimer = setTimeout(function() {
|
||||
if (!seekBtnEls || !seekBtnEls.length) return;
|
||||
seekBtnEls.forEach(function(btn) {
|
||||
btn.style.display = 'none';
|
||||
});
|
||||
}, 3000);
|
||||
};
|
||||
|
||||
backBtn.onclick = function(e) {
|
||||
if (e && e.stopPropagation) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
showSeekBtns();
|
||||
if (myplayer && myplayer.getCurrentTime) {
|
||||
var current = myplayer.getCurrentTime();
|
||||
var target = current - 15;
|
||||
if (target < 0) {
|
||||
target = 0;
|
||||
}
|
||||
myplayer.seek(target);
|
||||
}
|
||||
};
|
||||
|
||||
forwardBtn.onclick = function(e) {
|
||||
if (e && e.stopPropagation) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
showSeekBtns();
|
||||
if (myplayer && myplayer.getCurrentTime && myplayer.getDuration) {
|
||||
var current = myplayer.getCurrentTime();
|
||||
var duration = myplayer.getDuration();
|
||||
var target = current + 15;
|
||||
if (target > duration) {
|
||||
target = duration;
|
||||
}
|
||||
myplayer.seek(target);
|
||||
}
|
||||
};
|
||||
|
||||
var containerDom = document.getElementById('url-player-test');
|
||||
if (containerDom) {
|
||||
containerDom.addEventListener('click', function() {
|
||||
showSeekBtns();
|
||||
});
|
||||
}
|
||||
|
||||
container.append(backBtn);
|
||||
container.append(forwardBtn);
|
||||
},
|
||||
playing: function(player, e) {},
|
||||
});
|
||||
// console.log('这是查看是否获取到hlstoken', this.videoData)
|
||||
var playerOptions = {
|
||||
id: "url-player-test",
|
||||
@@ -648,11 +759,12 @@
|
||||
"controlBarVisibility": "hover",
|
||||
"useH5Prism": true,
|
||||
components: [{
|
||||
name: 'adComponent',
|
||||
type: fullScreenButtonComponent,
|
||||
args: [
|
||||
'http://101.201.146.165:8088/Pf-EH/statics/uploadFile/2024-05-10/b0f420c7-9178-41ad-9dd6-f59a64a6e190.png'
|
||||
]
|
||||
name: 'fullScreenComponent',
|
||||
type: fullScreenButtonComponent
|
||||
},
|
||||
{
|
||||
name: 'backBtnComponent',
|
||||
type: backBtnComponent
|
||||
},
|
||||
{
|
||||
name: 'RateComponent',
|
||||
@@ -663,9 +775,7 @@
|
||||
|
||||
skinLayout: [{
|
||||
name: "bigPlayButton",
|
||||
align: "blabs",
|
||||
x: 30,
|
||||
y: 80
|
||||
align: "cc",
|
||||
},
|
||||
{
|
||||
name: "H5Loading",
|
||||
@@ -689,6 +799,12 @@
|
||||
{
|
||||
name: "thumbnail"
|
||||
},
|
||||
{
|
||||
name: "backBtnComponent",
|
||||
align: "blabs",
|
||||
x: 15,
|
||||
y:70
|
||||
},
|
||||
{
|
||||
name: "controlBar",
|
||||
align: "blabs",
|
||||
@@ -781,6 +897,12 @@
|
||||
console.log('开始播放------',videoDurationTimes,pauseTime);
|
||||
$('.videoContent7').click()
|
||||
|
||||
seekBtnsEnabled = true;
|
||||
if (seekBtnHideTimer) {
|
||||
clearTimeout(seekBtnHideTimer);
|
||||
seekBtnHideTimer = null;
|
||||
}
|
||||
|
||||
if (pauseTime > 0) {
|
||||
if(pauseTime==videoDurationTimes){
|
||||
return
|
||||
@@ -830,11 +952,48 @@
|
||||
console.log('播放完毕');
|
||||
$('.videoContent2').click()
|
||||
$('.videoContent6').click()
|
||||
|
||||
seekBtnsEnabled = false;
|
||||
if (seekBtnHideTimer) {
|
||||
clearTimeout(seekBtnHideTimer);
|
||||
seekBtnHideTimer = null;
|
||||
}
|
||||
if (seekBtnEls && seekBtnEls.length) {
|
||||
seekBtnEls.forEach(function(btn) {
|
||||
btn.style.display = 'none';
|
||||
});
|
||||
}
|
||||
|
||||
var $bigBtn = $('#url-player-test .prism-big-play-btn');
|
||||
if ($bigBtn && $bigBtn.length) {
|
||||
$bigBtn.css({
|
||||
left: '30px',
|
||||
bottom: '80px',
|
||||
right: 'auto',
|
||||
top: 'auto',
|
||||
transform: 'none'
|
||||
});
|
||||
}
|
||||
})
|
||||
player.on('pause', function() {
|
||||
pauseTime = parseInt(player.getCurrentTime())
|
||||
player.pause(true)
|
||||
console.log('触发暂停', pauseTime)
|
||||
|
||||
if (player.getStatus && player.getStatus() === 'ended') {
|
||||
return;
|
||||
}
|
||||
|
||||
var $bigBtn = $('#url-player-test .prism-big-play-btn');
|
||||
if ($bigBtn && $bigBtn.length) {
|
||||
$bigBtn.css({
|
||||
left: '50%',
|
||||
top: '50%',
|
||||
right: 'auto',
|
||||
bottom: 'auto',
|
||||
transform: 'translate(-50%, -50%)'
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
myplayer.on('error', function() {
|
||||
@@ -1182,4 +1341,26 @@
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
</style>
|
||||
#url-player-test {
|
||||
position: relative;
|
||||
}
|
||||
#url-player-test .custom-seek-btn {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
pointer-events: auto;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 30px;
|
||||
}
|
||||
|
||||
#url-player-test .custom-seek-btn:active {
|
||||
background: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
.ad-container
|
||||
{
|
||||
display:none;
|
||||
position:absolute;
|
||||
left:50%;
|
||||
top:50%;
|
||||
margin-left:-150px;
|
||||
margin-top:-100px;
|
||||
}
|
||||
|
||||
.ad-container span
|
||||
{
|
||||
width: 27px;
|
||||
height: 16px;
|
||||
border-radius: 1px;
|
||||
background-color: rgba(0,0,0,.5);
|
||||
position: absolute;
|
||||
font-size: 10px;
|
||||
color: #fff;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
top:0px;
|
||||
left:0px;
|
||||
}
|
||||
|
||||
.ad-container .close
|
||||
{
|
||||
position:absolute;
|
||||
top:2px;
|
||||
right:2px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.ad-container .close:hover
|
||||
{
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.ad-container .ad
|
||||
{
|
||||
width:300px;
|
||||
height:200px;
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
import $ from 'jquery'
|
||||
// const html = require('./index.html');
|
||||
// require('https://g.alicdn.com/apsara-media-box/imp-web-player/2.20.3/skins/default/aliplayer-min.css');
|
||||
|
||||
// require('../aliplayer-min.js');
|
||||
// require('../aliplayercomponents.min.js');
|
||||
// require('../aliplayer-min.css');
|
||||
require('./index.css');
|
||||
|
||||
|
||||
/**
|
||||
* 静态广告组件
|
||||
*/
|
||||
const fullScreenButtonComponent = Aliplayer.Component({
|
||||
/**
|
||||
* 初始函数,在new对象时调用
|
||||
*
|
||||
* @param {string} adAddress - 广告视频地址
|
||||
* @param {string} toAddress - 广告链接地址
|
||||
*/
|
||||
init: function (adAddress, toAddress) {
|
||||
this.adAddress = adAddress;
|
||||
this.toAddress = toAddress;
|
||||
this.$html = $('.ad-container');
|
||||
},
|
||||
|
||||
/**
|
||||
* 创建广告Dom元素
|
||||
*/
|
||||
createEl: function (el) {
|
||||
this.$html.find('.ad').attr('src', this.adAddress);
|
||||
var $adWrapper = this.$html.find('.ad-wrapper');
|
||||
$adWrapper.attr('href', this.toAddress);
|
||||
$adWrapper.click(function () {
|
||||
Aliplayer.util.stopPropagation();
|
||||
});
|
||||
this.$html.find('.close').click(function () {
|
||||
this.$html.hide();
|
||||
});
|
||||
$(el).append(this.$html);
|
||||
},
|
||||
ready: function (player, e) {
|
||||
},
|
||||
/**
|
||||
* 隐藏广告
|
||||
*/
|
||||
play: function (player, e) {
|
||||
this.$html.hide();
|
||||
},
|
||||
/**
|
||||
* 显示广告
|
||||
*/
|
||||
pause: function (player, e) {
|
||||
this.$html.show();
|
||||
},
|
||||
/**
|
||||
* 隐藏广告
|
||||
*/
|
||||
playing: function (player, e) {
|
||||
this.$html.hide();
|
||||
},
|
||||
waiting: function (player, e) {
|
||||
},
|
||||
timeupdate: function (player, e) {
|
||||
},
|
||||
error: function (player, e) {
|
||||
},
|
||||
/**
|
||||
* 显示广告
|
||||
*/
|
||||
ended: function (player, e) {
|
||||
this.$html.show();
|
||||
}
|
||||
});
|
||||
|
||||
export default fullScreenButtonComponent;
|
||||
@@ -1,375 +0,0 @@
|
||||
<template>
|
||||
<view class="container commonPageBox commonDetailPage" style="position: relative;">
|
||||
<!-- <cover-view class="image_box">
|
||||
|
||||
|
||||
<image
|
||||
|
||||
src="http://101.201.146.165:8088/curriculum/detailImg/curriculum_20170411123240222.png"
|
||||
mode="aspectFit"
|
||||
class="headImage"
|
||||
style="background-color: #f5f5f5"
|
||||
|
||||
>
|
||||
</image>
|
||||
|
||||
|
||||
|
||||
</cover-view> -->
|
||||
<video
|
||||
@fullscreenchange="fullscreenchange"
|
||||
@timeupdate="videoTimeUpdateEvent($event)"
|
||||
ref="videos"
|
||||
style="width: 100%; height: 100%"
|
||||
autoplay
|
||||
id="videoId"
|
||||
|
||||
object-fit="contain"
|
||||
class="video-box"
|
||||
:src="videoUrl"
|
||||
:poster="`${videoUrl}?x-oss-process=video/snapshot,t_${1},f_jpg`"
|
||||
@play="playVideo"
|
||||
>
|
||||
<!-- <cover-image class="controls-play img" src="http://101.201.146.165:8088/curriculum/detailImg/curriculum_20170411123240222.png"></cover-image>
|
||||
|
||||
-->
|
||||
</video>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import courseDescription from "@/pages/component/commonComponents/list";
|
||||
import price from "../price/index.vue";
|
||||
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import { mapState } from "vuex";
|
||||
export default {
|
||||
components: {
|
||||
courseDescription, //课程说明
|
||||
price, //课程价格
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
timer: null,
|
||||
videoUrl: "",
|
||||
currentTime: 0,
|
||||
firstTime: 0,
|
||||
|
||||
options: {},
|
||||
videoData: {},
|
||||
isSetFirstTime: false,
|
||||
currentVideoTime: "", //初始播放时长(秒)
|
||||
urlList: {
|
||||
detail: "sociology/course/getCourseCatalogueChapterDetail",
|
||||
curriculumInfo: "app/phone.do?getCourseInfo",
|
||||
},
|
||||
};
|
||||
},
|
||||
async onUnload() {
|
||||
this.timer = null;
|
||||
// #ifdef APP-PLUS
|
||||
uni.navigateTo({
|
||||
url: "/pages/curriculum/order/curriculum/back",
|
||||
});
|
||||
|
||||
plus.screen.lockOrientation("portrait-primary"); //锁死屏幕方向为竖屏
|
||||
|
||||
// plus.screen.lockOrientation("portrait-primary");
|
||||
// #endif
|
||||
await this.setVideoTime();
|
||||
|
||||
// #ifdef APP-PLUS
|
||||
// plus.screen.lockOrientation("portrait-primary");
|
||||
// #endif
|
||||
},
|
||||
onLoad(options) {
|
||||
// uni.navigateTo({
|
||||
// url: "/pages/curriculum/order/curriculum/back",
|
||||
// });
|
||||
// #ifdef APP-PLUS
|
||||
plus.screen.lockOrientation("landscape-primary");
|
||||
// plus.screen.lockOrientation("portrait-primary");
|
||||
// #endif
|
||||
|
||||
this.options = JSON.parse(options.data);
|
||||
this.getLive();
|
||||
|
||||
this.timer = setInterval(() => {
|
||||
var that = this;
|
||||
if (this.currentTime) {
|
||||
that.setVideoTime();
|
||||
}
|
||||
}, 60000 * 10);
|
||||
},
|
||||
onHide() {
|
||||
// this.showSearchList = false
|
||||
// this.searchList = []
|
||||
},
|
||||
computed: {
|
||||
...mapState(["userInfo"]),
|
||||
},
|
||||
methods: {
|
||||
// 播放进度改变
|
||||
videoTimeUpdateEvent(e) {
|
||||
console.log("e at line 78:", e);
|
||||
this.playTime = parseInt(e.detail.currentTime);
|
||||
this.allTime = parseInt(e.detail.duration);
|
||||
console.log("视频播放时长", this.playTime, "视频总时长", this.allTime);
|
||||
|
||||
this.recordTime({
|
||||
time: this.playTime,
|
||||
});
|
||||
},
|
||||
|
||||
recordTime(data) {
|
||||
this.currentTime = data.time;
|
||||
console.log("data at line 54:", data);
|
||||
var list = [];
|
||||
if (uni.getStorageSync("videoList")) {
|
||||
list = JSON.parse(uni.getStorageSync("videoList"));
|
||||
}
|
||||
|
||||
console.log("点击后设置播放时长的方法list at line 65:", list);
|
||||
var index = list.findIndex((e) => e.id == this.videoData.id);
|
||||
if (list.length > 0 && index >= 0) {
|
||||
list[index] = {
|
||||
...this.videoData,
|
||||
|
||||
time: data.time,
|
||||
};
|
||||
} else {
|
||||
list.push({
|
||||
...this.videoData,
|
||||
time: data.time,
|
||||
});
|
||||
}
|
||||
|
||||
uni.setStorageSync("videoList", JSON.stringify(list));
|
||||
|
||||
console.log(list, "走接口的方法参数");
|
||||
},
|
||||
//是否全屏
|
||||
fullscreenchange(e) {
|
||||
if (!e.target.fullScreen) {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
});
|
||||
// plus.screen.lockOrientation("default");
|
||||
}
|
||||
},
|
||||
|
||||
getData(data) {
|
||||
console.log(
|
||||
"data at line 这是接口拿回来的时长11111111111111111111:",
|
||||
this.videoData.userCourseVideoPositionEntity.position
|
||||
);
|
||||
if (!this.isSetFirstTime) {
|
||||
var netWork = this.videoData.userCourseVideoPositionEntity
|
||||
? this.videoData.userCourseVideoPositionEntity.position
|
||||
: 0;
|
||||
var list = [];
|
||||
if (uni.getStorageSync("videoList")) {
|
||||
list = JSON.parse(uni.getStorageSync("videoList"));
|
||||
}
|
||||
console.log("这是获取接口 设置的起始时长", netWork);
|
||||
var index = list.findIndex((e) => e.id == this.videoData.id);
|
||||
|
||||
if (netWork) {
|
||||
if (index >= 0) {
|
||||
this.firstTime =
|
||||
list[index].time > netWork ? list[index].time : netWork;
|
||||
} else {
|
||||
this.firstTime = netWork ? netWork : 0;
|
||||
}
|
||||
} else {
|
||||
if (index >= 0) {
|
||||
this.firstTime = list[index].time ? list[index].time : 0;
|
||||
} else {
|
||||
this.firstTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
uni.setStorageSync("videoList", JSON.stringify(list));
|
||||
console.log(
|
||||
"list at line 这是设置完第一次初始值9777777777777777777770:",
|
||||
list
|
||||
);
|
||||
|
||||
console.log(this.firstTime, "1111111111111111111111");
|
||||
|
||||
this.playVideo();
|
||||
this.isSetFirstTime = true;
|
||||
}
|
||||
},
|
||||
setVideoTime(time) {
|
||||
var data = {
|
||||
videoId: this.videoData.id,
|
||||
position: this.currentTime, //秒数
|
||||
};
|
||||
console.log("data at line =存储视频时长接口:", data);
|
||||
$http
|
||||
.request({
|
||||
// url: "book/buyOrder/buySave",
|
||||
url: `sociology/course/saveCoursePosition`,
|
||||
method: "Post", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
data,
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("res at line 185:", res);
|
||||
// console.log("data at line 5911111:", this.videoData);
|
||||
this.$forceUpdate();
|
||||
});
|
||||
},
|
||||
playVideo(e) {
|
||||
this.videoContext = uni.createVideoContext("videoId", this);
|
||||
|
||||
this.videoContext.seek(this.firstTime);
|
||||
this.videoContext.requestFullScreen();
|
||||
},
|
||||
async getLive() {
|
||||
var data = {
|
||||
...this.options,
|
||||
};
|
||||
console.log("data at line 57:", data);
|
||||
$http
|
||||
.request({
|
||||
// url: "book/buyOrder/buySave",
|
||||
url: `sociology/course/checkVideo`,
|
||||
method: "Post", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
data,
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("res at line 252:", res);
|
||||
this.videoData = res.video;
|
||||
this.videoUrl =
|
||||
// "https://ehh-private-01.oss-cn-beijing.aliyuncs.com/video/taiHuClass/" +
|
||||
res.video.videoUrl;
|
||||
|
||||
this.$nextTick(async () => {
|
||||
await this.getData();
|
||||
});
|
||||
// var playAuth = res.video.playAuth.replace(/=/g, "");
|
||||
// this.videoData = {
|
||||
// ...res.video,
|
||||
// videoId: res.video.video,
|
||||
// playAuth: playAuth,
|
||||
// };
|
||||
// this.playAuth = playAuth;
|
||||
|
||||
console.log("data at line 5911111:", this.videoData);
|
||||
this.$forceUpdate();
|
||||
});
|
||||
},
|
||||
openVideo(data) {
|
||||
console.log("data at line 380:", data.type);
|
||||
|
||||
var mynavData = JSON.stringify(data); // 这里转换成 字符串
|
||||
if (data.type == 0) {
|
||||
//视频云点播
|
||||
uni.navigateTo({
|
||||
url: `/pages/curriculum/order/curriculum/videoDetail?data=${mynavData}`,
|
||||
});
|
||||
} else if (data.type == 1) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/curriculum/order/curriculum/videoDetailOss?data=${mynavData}`,
|
||||
});
|
||||
}
|
||||
|
||||
// uni.navigateTo({
|
||||
// // url: '../bookShop/commodityDetail?id=' + item.id
|
||||
// url: `/pages/curriculum/order/curriculum/detail?navTitle=${v.title}&title=${v.title}&oid=${v.oid}`,
|
||||
// });
|
||||
},
|
||||
hancleModalCancel() {
|
||||
this.show = false;
|
||||
},
|
||||
handleClickMore(v, i, status) {
|
||||
console.log("i at line 357:", i);
|
||||
this.$set(this.correlationiList[i], "isOpen", status);
|
||||
// [i].=!this.correlationiList[i].isOpen;
|
||||
},
|
||||
hancleModalConfirm() {
|
||||
var data = {
|
||||
values: {
|
||||
customerType: "D",
|
||||
token: uni.getStorageSync("token"),
|
||||
customerOid: uni.getStorageSync("customerOid"),
|
||||
...this.taiHuClassInfo,
|
||||
},
|
||||
};
|
||||
// $mars.progressBegin('申请中...');
|
||||
// $mars.post(customerType, 'applyRelearn', data, function (ret) {
|
||||
// api.hideProgress();
|
||||
|
||||
// fnLoadDataGrid();
|
||||
// });
|
||||
},
|
||||
|
||||
// 检查是有权限使用搜索功能
|
||||
checkDisable() {
|
||||
console.log("点击了");
|
||||
},
|
||||
// 显示无权限弹窗
|
||||
// showNoRights() {
|
||||
// let that = this
|
||||
// uni.showModal({
|
||||
// content: "",
|
||||
// confirmText: '好的',
|
||||
// showCancel: false,
|
||||
// success: function(res) {
|
||||
// if (res.confirm) {
|
||||
// // console.log('用户点击确定');
|
||||
// that.clear()
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// },
|
||||
|
||||
// 放大图片
|
||||
previewImage(url) {
|
||||
console.log(url);
|
||||
uni.previewImage({
|
||||
urls: [url],
|
||||
longPressActions: {
|
||||
itemList: ["很抱歉,暂不支持保存图片到本地"],
|
||||
success: function (res) {
|
||||
// console.log(res,'+++++')
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
onBackPress() {
|
||||
// #ifdef APP-PLUS
|
||||
plus.key.hideSoftKeybord();
|
||||
// #endif
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
|
||||
|
||||
|
||||
.video-box{
|
||||
position: relative;
|
||||
}
|
||||
.image_box{
|
||||
background-color: red;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
</style>
|
||||
@@ -5,35 +5,23 @@
|
||||
<public-module></public-module>
|
||||
<template v-show="!screenLoading">
|
||||
<z-nav-bar title="教学内容"></z-nav-bar>
|
||||
<!-- <view class="contentBox curriculum_box" :style="`height:calc(100% - ${60 + statusBarHeight}px !important; -->
|
||||
<view class="contentBox curriculum_box" :style="`height:calc(100% - ${60 + statusBarHeight}px !important; width:100%; overflow-x: hidden; ${
|
||||
isFullScreen ? 'background:#000' : ''
|
||||
}`">
|
||||
<!-- 加密视频 -->
|
||||
<view style="background:#000; position: fixed; top: 120rpx; left: 0; width: 100%; z-index: 88;" v-if="videoArray.length>0">
|
||||
<common-video @changeScreen="changeScreen" @changeScreenLoading="changeScreenLoading"
|
||||
@hideNextVideo="hideNextVideo" @startNextVideoCountDown="startNextVideoCountDown"
|
||||
@unlockChangeVideo="unlockChangeVideo" v-if="isfresh " ref="commonVideo"
|
||||
:secondCountDown="secondCountDown" :videoTitle="curriculumData.title"
|
||||
:currentVideo="currentVideo" :noRecored="noRecored" :currentVideoList="videoArray">
|
||||
</common-video>
|
||||
<view style="height: 200px" v-else></view>
|
||||
</view>
|
||||
<!-- <scroll-view :style="`height:calc(100% - 200px - 40rpx) ;`" scroll-y="true" class="scroll-Y" style="background-color: #fff"> -->
|
||||
<view class="PM_font" style="padding: 20rpx; font-size: 40rpx; color: #2979ff;" :style="videoArray.length>0?'margin-top: 400rpx;':''" v-if="videoArray.length>0">视频教学
|
||||
</view>
|
||||
<view class="scroll-view-item" :style="videoArray.length==0?'margin-top: 20rpx;':''">
|
||||
<view style="padding: 20rpx; font-size: 26rpx">
|
||||
课程:{{ options.navTitle }}
|
||||
</view>
|
||||
<view style="padding: 20rpx; margin-bottom: 40rpx; font-size: 26rpx">
|
||||
章节:{{ curriculumData.title }}
|
||||
</view>
|
||||
<common-curriculum-video v-if="videoArray && videoArray.length > 0" :detailInfo="curriculumData"
|
||||
:currentVideo="currentVideo" :dataList="videoArray" @open="changeVideo"
|
||||
:changeVideoLock="changeVideoLock">
|
||||
</common-curriculum-video>
|
||||
</view>
|
||||
<view
|
||||
class="contentBox curriculum_box"
|
||||
:style="`
|
||||
height:calc(100% - ${60 + statusBarHeight}px !important;
|
||||
width:100%;
|
||||
overflow-x: hidden; ${isFullScreen ? 'background:#000' : ''}
|
||||
`"
|
||||
>
|
||||
<!-- 课程视频及章节信息 -->
|
||||
<CommonCourseVideo
|
||||
:video-list="videoArray"
|
||||
:current-index="currentCateIndex !== null ? currentCateIndex : 0"
|
||||
:course="{courseTitle:options.navTitle, chapterTitle: curriculumData.title}"
|
||||
:cover="options.curriculumImgUrl || ''"
|
||||
:http="$http"
|
||||
/>
|
||||
|
||||
<view class="" style="border-top: 2px solid #2979ff;">
|
||||
<view class="coursePart flexbox" v-if="tabList.length > 1">
|
||||
<view :class="['item','flex_box',curTab == index ? 'active': '' ]"
|
||||
@@ -359,6 +347,12 @@
|
||||
methods: {
|
||||
editorIput(e){
|
||||
},
|
||||
hideNextVideo() {
|
||||
if (this.countDownTimer) {
|
||||
clearInterval(this.countDownTimer)
|
||||
this.countDownTimer = undefined
|
||||
}
|
||||
},
|
||||
moveHandle() {
|
||||
return false;
|
||||
},
|
||||
@@ -651,36 +645,6 @@
|
||||
})
|
||||
}
|
||||
},
|
||||
unlockChangeVideo() {
|
||||
this.changeVideoLock = false
|
||||
},
|
||||
startNextVideoCountDown() {
|
||||
this.secondCountDown = 10
|
||||
let that = this
|
||||
if (this.countDownTimer) {
|
||||
clearInterval(this.countDownTimer)
|
||||
}
|
||||
this.countDownTimer = setInterval(() => {
|
||||
this.secondCountDown -= 1
|
||||
if (this.secondCountDown == 0) {
|
||||
// clearInterval(this.countDownTimer)
|
||||
// console.log('倒计时结束');
|
||||
that.hideNextVideo()
|
||||
console.log('切换之前的播放index是', this.currentCateIndex);
|
||||
// console.log('当前的播放列表',this.videoArray.length);
|
||||
// if(this.currentCateIndex < this.videoArray.length-1){
|
||||
this.currentCateIndex++
|
||||
console.log('切换之后的播放index是', this.currentCateIndex);
|
||||
that.changeVideo(this.videoArray[this.currentCateIndex])
|
||||
// }
|
||||
}
|
||||
}, 1000)
|
||||
},
|
||||
hideNextVideo() {
|
||||
console.log('父组件收到了取消加载-------------------');
|
||||
clearInterval(this.countDownTimer)
|
||||
this.countDownTimer = undefined
|
||||
},
|
||||
|
||||
//课程详情
|
||||
async gotoDetail(v, index) {
|
||||
@@ -713,44 +677,6 @@
|
||||
this.currentCateIndex = data.index;
|
||||
this.$forceUpdate();
|
||||
},
|
||||
initVideo() {
|
||||
this.changeVideoLock = true
|
||||
this.screenLoading = false;
|
||||
this.isfresh = false;
|
||||
this.$nextTick(() => {
|
||||
this.isfresh = true;
|
||||
setTimeout(() => {
|
||||
this.$refs.commonVideo.init({
|
||||
currentVideo: this.currentVideo,
|
||||
currentVideoList: this.videoArray,
|
||||
});
|
||||
}, 200);
|
||||
});
|
||||
},
|
||||
changeVideo(data) {
|
||||
this.changeVideoLock = true
|
||||
if (this.countDownTimer) {
|
||||
this.hideNextVideo()
|
||||
}
|
||||
|
||||
console.log("点击了点击了切换视频-----:", this.countDownTimer, data, );
|
||||
|
||||
if (data.id != this.currentVideo.id) {
|
||||
this.currentCateIndex = this.videoArray.findIndex(item => {
|
||||
return item.id == data.id
|
||||
})
|
||||
// handleEnd
|
||||
// this.$refs.commonVideo.handleEnd();
|
||||
setTimeout(() => {
|
||||
|
||||
// this.$refs.commonVideo.changeVideo(data);
|
||||
this.currentVideo = data;
|
||||
this.initVideo();
|
||||
this.isOpenMp3 = false;
|
||||
}, 500);
|
||||
}
|
||||
|
||||
},
|
||||
hancleModalCancel() {
|
||||
this.show = false;
|
||||
},
|
||||
@@ -809,6 +735,7 @@
|
||||
.then(async (res) => {
|
||||
that.curriculumData = res.data.detail;
|
||||
that.videoArray = res.data.videos;
|
||||
console.log('视频列表:', that.videoArray);
|
||||
//判断没有视频的情况
|
||||
if(that.videoArray.length==0){
|
||||
|
||||
@@ -825,9 +752,7 @@
|
||||
isHaveHistorySeekVideo != -1 ? isHaveHistorySeekVideo : 0;
|
||||
if (that.videoArray.length > 0) {
|
||||
this.currentVideo = that.videoArray[that.currentCateIndex];
|
||||
console.log('默认播放的index', that.currentCateIndex, this.currentVideo.id, that
|
||||
.videoArray);
|
||||
this.initVideo();
|
||||
console.log('默认播放的index', that.currentCateIndex, this.currentVideo.id, that.videoArray);
|
||||
}
|
||||
var videoArray = [];
|
||||
var videoArrayHW = [];
|
||||
@@ -1545,4 +1470,4 @@
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -1062,12 +1062,12 @@
|
||||
v.isAudition == 1 && this.userVip==null && this.librayList[this.curIndex].isBuy == 0 ? noRecored = true : ''
|
||||
if(this.userVip){
|
||||
uni.navigateTo({
|
||||
url: `${_myurl}?navTitle=${this.pageTitle}&title=${v.title}&courseId=${this.courseId}&id=${v.id}&conditions=${v.conditions}&noRecored=${noRecored}`,
|
||||
url: `${_myurl}?navTitle=${this.pageTitle}&title=${v.title}&courseId=${this.courseId}&id=${v.id}&conditions=${v.conditions}&noRecored=${noRecored}&curriculumImgUrl=${this.course.image}`,
|
||||
});
|
||||
}else{
|
||||
if(v.isAudition == 1||this.librayList[this.curIndex].isBuy == 1){
|
||||
uni.navigateTo({
|
||||
url: `${_myurl}?navTitle=${this.pageTitle}&title=${v.title}&courseId=${this.courseId}&id=${v.id}&conditions=${v.conditions}&noRecored=${noRecored}`,
|
||||
url: `${_myurl}?navTitle=${this.pageTitle}&title=${v.title}&courseId=${this.courseId}&id=${v.id}&conditions=${v.conditions}&noRecored=${noRecored}&curriculumImgUrl=${this.course.image}`,
|
||||
});
|
||||
}else{
|
||||
if(this.librayList[this.curIndex].type != 0){
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
</view>
|
||||
<view :class="['titleItem']">{{item.name}}</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<u-divider text="暂无数据哦~" v-if="titleList.length==0"></u-divider>
|
||||
</view>
|
||||
@@ -644,6 +645,7 @@
|
||||
}
|
||||
|
||||
.contentBox {
|
||||
height: auto;
|
||||
.oneCateList {
|
||||
justify-content: space-between;
|
||||
|
||||
@@ -694,6 +696,10 @@
|
||||
padding: 20rpx 10rpx;
|
||||
width: 100%;
|
||||
border-bottom: 0.5px solid #f8f9fa;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.wmzhimg {
|
||||
@@ -706,7 +712,7 @@
|
||||
|
||||
.container {
|
||||
padding: 10rpx;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
@@ -763,4 +769,8 @@
|
||||
.chImage {
|
||||
height: 100rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
.android-bottom-space {
|
||||
height: 120rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
154
pages/mine/migrate/index.vue
Normal file
@@ -0,0 +1,154 @@
|
||||
<template>
|
||||
<view class="commonPage commonPageBox">
|
||||
<public-module></public-module>
|
||||
<z-nav-bar title="数据迁移" bgColor="#258feb" fontColor="#fff"></z-nav-bar>
|
||||
<view class="migrate-tips">迁移后不可恢复,请谨慎操作!</view>
|
||||
|
||||
<view class="code-wrap">
|
||||
<view class="account">账号:{{ userInfo.tel || userInfo.email}}</view>
|
||||
<view v-if="code" class="code-box">
|
||||
<view class="code-number">{{ code }}</view>
|
||||
<view><text>{{ remaining }}</text>有效<text class="uni-link" @click="handleRefresh">(刷新)</text></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="migrate-intro">
|
||||
<view class="migrate-intro-title">迁移说明</view>
|
||||
<view>1. 请在吴门国际APP中完成数据迁移,操作方式【我的】-【数据迁移】-【输入账号和移验证码】。</view>
|
||||
<view>2. 数据迁移完成后,本账号数据将被清空,已购买的天医币、积分、课程、VIP等数据将转移到新账号。</view>
|
||||
<view>3. 迁移过程可能需要几分钟时间,请耐心等待。</view>
|
||||
<view>4. 如遇到问题,请联系客服获取帮助。</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import { mapState } from "vuex";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
code: '',
|
||||
remaining: '',
|
||||
timer: null,
|
||||
lastRefreshTime: 0, // 上次刷新时间戳
|
||||
refreshCooldown: 10000 // 节流时间,3秒内只能刷新一次
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(["userInfo"]),
|
||||
},
|
||||
created() {
|
||||
this.countDown()
|
||||
},
|
||||
beforeDestroy() {
|
||||
// 组件销毁前清除定时器
|
||||
if (this.timer) clearInterval(this.timer);
|
||||
},
|
||||
methods: {
|
||||
getCode() {
|
||||
this.$http
|
||||
.post("common/user/getMigrationCode")
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.code = res.migrationCode;
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
});
|
||||
},
|
||||
async countDown() {
|
||||
// 清除已有的定时器
|
||||
if (this.timer) clearInterval(this.timer);
|
||||
|
||||
await this.getCode() // 获取验证码
|
||||
|
||||
// 初始化倒计时时间(3分钟 = 180秒)
|
||||
let totalSeconds = 175;
|
||||
|
||||
// 立即更新第一次显示
|
||||
this.updateRemainingTime(totalSeconds);
|
||||
|
||||
// 设置每秒执行的定时器
|
||||
this.timer = setInterval(() => {
|
||||
totalSeconds--;
|
||||
if (totalSeconds <= 0) {
|
||||
this.countDown()
|
||||
return;
|
||||
}
|
||||
this.updateRemainingTime(totalSeconds);
|
||||
}, 1000);
|
||||
},
|
||||
updateRemainingTime(totalSeconds) {
|
||||
const minutes = Math.floor(totalSeconds / 60);
|
||||
const seconds = totalSeconds % 60;
|
||||
this.remaining = `${minutes}分${seconds.toString().padStart(2, '0')}秒`;
|
||||
},
|
||||
// 带节流的刷新方法
|
||||
handleRefresh() {
|
||||
const now = Date.now();
|
||||
// 如果距离上次刷新时间小于节流时间,不执行刷新
|
||||
if (now - this.lastRefreshTime < this.refreshCooldown) {
|
||||
uni.showToast({
|
||||
title: `操作太频繁,请${Math.ceil((this.refreshCooldown - (now - this.lastRefreshTime)) / 1000)}秒后再试`,
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 更新上次刷新时间
|
||||
this.lastRefreshTime = now;
|
||||
|
||||
// 执行刷新
|
||||
this.countDown();
|
||||
|
||||
// 给用户反馈
|
||||
uni.showToast({
|
||||
title: '刷新成功',
|
||||
icon: 'success',
|
||||
duration: 1500
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.migrate-tips {
|
||||
color: #ff0000;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.code-wrap {
|
||||
margin: 0 20px;
|
||||
padding: 10px 15px;
|
||||
background-color: #f0f0f0;
|
||||
border-radius: 8px;
|
||||
font-size: 16px;
|
||||
.code-box {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
padding-top: 10px;
|
||||
|
||||
.code-number {
|
||||
font-weight: bold;
|
||||
font-size: 28px;
|
||||
color: #000;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.migrate-intro {
|
||||
margin: 20px;
|
||||
.migrate-intro-title {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -241,6 +241,11 @@
|
||||
name: "问题反馈/申诉",
|
||||
url: "/pages/user/workOrder",
|
||||
type: "workOrder"
|
||||
},
|
||||
{
|
||||
name: "数据迁移",
|
||||
url: "/pages/mine/migrate/index",
|
||||
type: "pageJump"
|
||||
}
|
||||
],
|
||||
//vip
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
>元</view
|
||||
>
|
||||
</view>
|
||||
<view v-if="$platform != 'ios'">
|
||||
<view>
|
||||
<text
|
||||
class="vip_item_btn"
|
||||
v-if="item.state == null"
|
||||
@@ -226,9 +226,9 @@ export default {
|
||||
//点击购买
|
||||
openorderModal(item, type) {
|
||||
console.log("item at line 120:", item);
|
||||
if (this.$platform == "ios") {
|
||||
return false;
|
||||
}
|
||||
// if (this.$platform == "ios") {
|
||||
// return false;
|
||||
// }
|
||||
let text = "";
|
||||
//如果是右侧按钮点击展示
|
||||
//判断点击类型是vip价格还是延期价格
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<text class="mainTxt" v-if="classModel.type == '2'">精英班</text>
|
||||
</view>
|
||||
<view><text class="ciyao">学员人数</text><text
|
||||
class="mainTxt">{{students.length}}/{{thisClass.number}}人</text></view>
|
||||
class="mainTxt">{{(students || []).length}}/{{thisClass.number || 0}}人</text></view>
|
||||
<view><text class="ciyao">管理成员</text><text class="mainTxt" @click="seeManager">点击查看</text></view>
|
||||
</view>
|
||||
|
||||
@@ -220,7 +220,10 @@
|
||||
|
||||
<!-- 班内同学 -->
|
||||
<template v-if="tabId == '2'">
|
||||
<template v-if="students.length> 0">
|
||||
<view v-if="studentsLoading" style="text-align: center;">
|
||||
数据加载中
|
||||
</view>
|
||||
<template v-else-if="students.length> 0">
|
||||
<view class="" style=" overflow: hidden; margin:20rpx 0">
|
||||
<text style="font-size: 26rpx; color: #666;">共 {{students.length}} 名学员</text>
|
||||
</view>
|
||||
@@ -236,8 +239,8 @@
|
||||
</view>
|
||||
<view class="textItems flex_box">
|
||||
<text class="txt555"
|
||||
v-if="item.student.nickname != null && item.student.nickname != ''">
|
||||
{{item.student.nickname}}
|
||||
v-if="item.student.name != null && item.student.name != ''">
|
||||
{{item.student.name}}
|
||||
</text>
|
||||
<text v-else>匿名用户</text>
|
||||
</view>
|
||||
@@ -286,10 +289,10 @@
|
||||
<view class="" v-if="tijiaoTitleId == 2 && false" style="margin: 20rpx 0;">
|
||||
<radio-group @change="radioChange1" class="flex_box">
|
||||
<view class="" style="margin-right:20rpx ;">
|
||||
<radio value="0" />全部同学的</label>
|
||||
<radio value="0" /><label>全部同学的</label>
|
||||
</view>
|
||||
<view class="">
|
||||
<radio value="1" checked="true" />只看我自己的</label>
|
||||
<radio value="1" checked="true" /><label>只看我自己的</label>
|
||||
</view>
|
||||
</radio-group>
|
||||
</view>
|
||||
@@ -309,7 +312,7 @@
|
||||
</view>
|
||||
<view class="leve3">
|
||||
<view class="tips flex_box" v-if="item.zhedie">
|
||||
<!-- <text>发布者:{{item.createUser.nickname != null && item.createUser.nickname != '' ? item.createUser.nickname : '匿名用户'}}</text> -->
|
||||
<!-- <text>发布者:{{item.createUser.name != null && item.createUser.name != '' ? item.createUser.name : '匿名用户'}}</text> -->
|
||||
<text style="" class="date">日期:{{item.createTime}}</text>
|
||||
</view>
|
||||
<template v-if="tijiaoTitleId == 2 && isHave">
|
||||
@@ -403,21 +406,21 @@
|
||||
<view class="item">
|
||||
<text class="adminName">班长:</text>
|
||||
<view class="personbox" v-if="admins.monitor.user != null">
|
||||
<text>{{admins.monitor.user.nickname != null && admins.monitor.user.nickname != '' ? admins.monitor.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{admins.monitor.user.name != null && admins.monitor.user.name != '' ? admins.monitor.user.name : '匿名用户'}}</text>
|
||||
</view>
|
||||
<text v-else>暂未设置</text>
|
||||
</view>
|
||||
<view class="item">
|
||||
<text class="adminName">副班长:</text>
|
||||
<view class="personbox" v-if="admins.dmonitor.user != null">
|
||||
<text>{{admins.dmonitor.user.nickname != null && admins.dmonitor.user.nickname != '' ? admins.dmonitor.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{admins.dmonitor.user.name != null && admins.dmonitor.user.name != '' ? admins.dmonitor.user.name : '匿名用户'}}</text>
|
||||
</view>
|
||||
<text v-else>暂未设置</text>
|
||||
</view>
|
||||
<view class="item"><text class="adminName">学习委员:</text>
|
||||
|
||||
<view class="personbox" v-if="admins.learner.user != null">
|
||||
<text>{{admins.learner.user.nickname != null && admins.learner.user.nickname != '' ? admins.learner.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{admins.learner.user.name != null && admins.learner.user.name != '' ? admins.learner.user.name : '匿名用户'}}</text>
|
||||
</view>
|
||||
<text v-else>暂未设置</text>
|
||||
</view>
|
||||
@@ -425,7 +428,7 @@
|
||||
<template v-if="admins.scorer.length > 0">
|
||||
<view class="arryItemSub" v-for="(item,index) in admins.scorer" :key="index">
|
||||
<template v-if="item.user != null">
|
||||
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname+',' : '匿名用户,'}}</text>
|
||||
<text>{{item.user.name != null && item.user.name != '' ? item.user.name+',' : '匿名用户,'}}</text>
|
||||
<!-- <text>({{item.user.tel}}),</text> -->
|
||||
</template>
|
||||
</view>
|
||||
@@ -505,7 +508,9 @@
|
||||
<text class="small_btn border_radius_10"
|
||||
v-if="!submitInfo.photo || submitInfo.photo != '' || submitInfo.photo != null"
|
||||
@click="onPageJump('/pages/mine/userInfo/persData')"
|
||||
style="display: block; height: 30px;">{{submitInfo.photo && submitInfo.photo != '' && submitInfo.photo != null ? '去修改' : '去上传'}}</text>
|
||||
style="display: block; height: 30px;"
|
||||
>
|
||||
{{submitInfo.photo && submitInfo.photo != '' && submitInfo.photo != null ? '去修改' : '去上传'}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -568,6 +573,7 @@
|
||||
showSubmitInfoBlank: false,
|
||||
thisClass: {},
|
||||
students: [],
|
||||
studentsLoading: true,
|
||||
tabId: undefined,
|
||||
curTagIndex: 0,
|
||||
scrollable: false,
|
||||
@@ -774,6 +780,14 @@
|
||||
this.submitInfo.photo = userObj.photo
|
||||
}
|
||||
}
|
||||
if (this.thisClass.state == '3' || this.thisClass.state == '2') {
|
||||
// 考试周 结班状态下的
|
||||
this.students = await this.getStudentScoreList()
|
||||
console.log('students考试周 结班状态下的', this.students);
|
||||
} else {
|
||||
this.students = await this.getStudentsList()
|
||||
}
|
||||
this.studentsLoading = false
|
||||
},
|
||||
components: {
|
||||
sutdentScoreList,
|
||||
@@ -963,13 +977,33 @@
|
||||
.then(async (res) => {
|
||||
console.log('课程购买情况',res);
|
||||
if (res.code == 0) {
|
||||
if (res.msg != '') {
|
||||
msg = res.msg
|
||||
var outputStr = await this.convertToHalfWidth(res.msg)
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: `您${outputStr}课程没有购买,请尽快购买班级内教学需要的课程,逾期您将被系统自动踢出班级,感谢您的理解和支持`
|
||||
})
|
||||
if (res.res && res.res.length > 0) {
|
||||
const msgArr = res.res
|
||||
for (const item of msgArr) {
|
||||
const outputStr = await this.convertToHalfWidth(item)
|
||||
const isPass = await new Promise(resolve => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: `${outputStr}`,
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
resolve(true)
|
||||
} else {
|
||||
resolve(false)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
if (!isPass) {
|
||||
break
|
||||
}
|
||||
}
|
||||
// msg = res.msg
|
||||
// var outputStr = await this.convertToHalfWidth(res.msg)
|
||||
// uni.showModal({
|
||||
// title: '提示',
|
||||
// content: `${outputStr}`
|
||||
// })
|
||||
}
|
||||
}
|
||||
}).catch(e => {
|
||||
@@ -1066,10 +1100,42 @@
|
||||
})
|
||||
});
|
||||
},
|
||||
// 未开班和进行中状态下,学员的信息,带买课标识
|
||||
async getStudentsList() {
|
||||
var list = []
|
||||
await $http.request({
|
||||
url: "common/class/getClassUserCourseFlag",
|
||||
method: "POST",
|
||||
data: {
|
||||
"classId": parseInt(this.classId)
|
||||
},
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
list = res.result.students
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '获取学员信息失败',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
}
|
||||
}).catch(e => {
|
||||
list = []
|
||||
uni.showToast({
|
||||
title: e.errMsg,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
});
|
||||
return list
|
||||
},
|
||||
// 考试周和结班状态下,学员的信息
|
||||
async getStudentScoreList() {
|
||||
console.log('进来了码?');
|
||||
var list = undefined
|
||||
var list = []
|
||||
await $http.request({
|
||||
url: "common/class/userScoreList",
|
||||
method: "POST",
|
||||
@@ -1079,6 +1145,7 @@
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
timeout: '60000'
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
@@ -1894,13 +1961,6 @@ uni.navigateTo({
|
||||
this.classModel = res.result.classModel
|
||||
this.courses = res.result.courses
|
||||
|
||||
if (this.thisClass.state == '3' || this.thisClass.state == '2') {
|
||||
// 考试周 结班状态下的
|
||||
this.students = await this.getStudentScoreList()
|
||||
console.log('students考试周 结班状态下的', this.students);
|
||||
} else {
|
||||
this.students = res.result.students
|
||||
}
|
||||
this.refresh = true
|
||||
var ss = this.getTijiaoTitleList
|
||||
if (this.thisClass.state != 0 && this.tabId != '3') {
|
||||
@@ -2260,7 +2320,7 @@ uni.navigateTo({
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.date {}
|
||||
// .date {}
|
||||
|
||||
|
||||
|
||||
@@ -2688,7 +2748,7 @@ uni.navigateTo({
|
||||
}
|
||||
}
|
||||
|
||||
.optionsBox {}
|
||||
// .optionsBox {}
|
||||
|
||||
.btn_box_certificate {
|
||||
margin-top: 70rpx;
|
||||
@@ -2713,13 +2773,13 @@ uni.navigateTo({
|
||||
}
|
||||
|
||||
.userinfoPup {
|
||||
.tips {
|
||||
// .item{justify-content: space-around;}
|
||||
}
|
||||
// .tips {
|
||||
// // .item{justify-content: space-around;}
|
||||
// }
|
||||
|
||||
.small_btn {
|
||||
color: #55aaff;
|
||||
border: #55aaff 1px solid;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -228,7 +228,10 @@
|
||||
</view>
|
||||
<!-- 学员列表 -->
|
||||
<view class="" v-if="tabId == '2'">
|
||||
<template v-if="students.length > 0">
|
||||
<view v-if="studentsLoading" style="text-align: center;">
|
||||
数据加载中
|
||||
</view>
|
||||
<template v-else-if="students.length > 0">
|
||||
<view class="" style="overflow: hidden; margin: 20rpx 0">
|
||||
<text style="font-size: 26rpx; color: #666"
|
||||
>共 {{ students.length }} 名学员</text
|
||||
@@ -292,11 +295,11 @@
|
||||
<text
|
||||
class="txt555"
|
||||
v-if="
|
||||
item.student.nickname != null &&
|
||||
item.student.nickname != ''
|
||||
item.student.name != null &&
|
||||
item.student.name != ''
|
||||
"
|
||||
>
|
||||
{{ item.student.nickname }}
|
||||
{{ item.student.name }}
|
||||
<template>
|
||||
<text>({{ item.student.tel }})</text>
|
||||
</template>
|
||||
@@ -429,9 +432,9 @@
|
||||
v-if="admins.monitor.user != null && admins.monitor.id"
|
||||
>
|
||||
<text>{{
|
||||
admins.monitor.user.nickname != null &&
|
||||
admins.monitor.user.nickname != ""
|
||||
? admins.monitor.user.nickname
|
||||
admins.monitor.user.name != null &&
|
||||
admins.monitor.user.name != ""
|
||||
? admins.monitor.user.name
|
||||
: "匿名用户"
|
||||
}}</text>
|
||||
<text v-if="admins.monitor.id"
|
||||
@@ -447,9 +450,9 @@
|
||||
v-if="admins.dmonitor.user != null && admins.dmonitor.id"
|
||||
>
|
||||
<text>{{
|
||||
admins.dmonitor.user.nickname != null &&
|
||||
admins.dmonitor.user.nickname != ""
|
||||
? admins.dmonitor.user.nickname
|
||||
admins.dmonitor.user.name != null &&
|
||||
admins.dmonitor.user.name != ""
|
||||
? admins.dmonitor.user.name
|
||||
: "匿名用户"
|
||||
}}</text>
|
||||
<text>({{ admins.dmonitor.user.tel }})</text>
|
||||
@@ -463,9 +466,9 @@
|
||||
v-if="admins.learner.user != null && admins.learner.id"
|
||||
>
|
||||
<text>{{
|
||||
admins.learner.user.nickname != null &&
|
||||
admins.learner.user.nickname != ""
|
||||
? admins.learner.user.nickname
|
||||
admins.learner.user.name != null &&
|
||||
admins.learner.user.name != ""
|
||||
? admins.learner.user.name
|
||||
: "匿名用户"
|
||||
}}</text>
|
||||
<text>({{ admins.learner.user.tel }})</text>
|
||||
@@ -476,7 +479,7 @@
|
||||
<template v-if="admins.counter.length > 0">
|
||||
<view class="arryItemSub" v-for="(item,index) in admins.counter" :key="index">
|
||||
<template v-if="item.user != null">
|
||||
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{item.user.name != null && item.user.name != '' ? item.user.name : '匿名用户'}}</text>
|
||||
<text>({{item.user.tel}}) </text>
|
||||
</template>
|
||||
</view>
|
||||
@@ -493,8 +496,8 @@
|
||||
>
|
||||
<template v-if="item.user != null">
|
||||
<text>{{
|
||||
item.user.nickname != null && item.user.nickname != ""
|
||||
? item.user.nickname
|
||||
item.user.name != null && item.user.name != ""
|
||||
? item.user.name
|
||||
: "匿名用户"
|
||||
}}</text>
|
||||
<text>({{ item.user.tel }}) </text>
|
||||
@@ -516,9 +519,9 @@
|
||||
<view class="upopBox" style="">
|
||||
<h3 style="margin-bottom: 20rpx">
|
||||
{{
|
||||
thisStudent.student.nickname != null &&
|
||||
thisStudent.student.nickname != ""
|
||||
? thisStudent.student.nickname
|
||||
thisStudent.student.name != null &&
|
||||
thisStudent.student.name != ""
|
||||
? thisStudent.student.name
|
||||
: "匿名用户"
|
||||
}}
|
||||
</h3>
|
||||
@@ -548,9 +551,9 @@
|
||||
<view class="upopBox manScoreBox" style="">
|
||||
<h3 style="margin-bottom: 20rpx">
|
||||
{{
|
||||
thisStudentScore.user.nickname != null &&
|
||||
thisStudentScore.user.nickname != ""
|
||||
? thisStudentScore.user.nickname
|
||||
thisStudentScore.user.name != null &&
|
||||
thisStudentScore.user.name != ""
|
||||
? thisStudentScore.user.name
|
||||
: "匿名用户"
|
||||
}}
|
||||
</h3>
|
||||
@@ -639,6 +642,7 @@ export default {
|
||||
showOverBtn: false,
|
||||
},
|
||||
students: [],
|
||||
studentsLoading: true,
|
||||
tabId: "2",
|
||||
curTagIndex: 0,
|
||||
scrollable: false,
|
||||
@@ -1121,6 +1125,39 @@ export default {
|
||||
that.opClass(statusCode);
|
||||
}, 300);
|
||||
},
|
||||
// 未开班和进行中状态下,学员的信息,带买课标识
|
||||
async getStudentsList() {
|
||||
var list = undefined
|
||||
await $http.request({
|
||||
url: "common/class/getClassUserCourseFlag",
|
||||
method: "POST",
|
||||
data: {
|
||||
"classId": parseInt(this.classId)
|
||||
},
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
list = res.result.students
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '获取学员信息失败',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
}
|
||||
}).catch(e => {
|
||||
list = []
|
||||
uni.showToast({
|
||||
title: e.errMsg,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
});
|
||||
return list
|
||||
},
|
||||
// 考试周和结班状态下,学员的信息
|
||||
async getStudentScoreList() {
|
||||
var list = undefined;
|
||||
@@ -1135,6 +1172,7 @@ export default {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
timeout: '60000'
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("班状态下,学员的信息", this.classId, res);
|
||||
@@ -1431,8 +1469,9 @@ export default {
|
||||
this.students = await this.getStudentScoreList();
|
||||
// console.log('students', this.students);
|
||||
} else {
|
||||
this.students = res.result.students;
|
||||
this.students = await this.getStudentsList();
|
||||
}
|
||||
this.studentsLoading = false;
|
||||
|
||||
this.refresh = true;
|
||||
if (this.thisClass.state == 0) {
|
||||
|
||||
@@ -32,8 +32,11 @@
|
||||
itemStyle="padding-left:10rpx; background-color:#fff; padding-right: 10rpx; height: 50px; font-size:26rpx"></u-tabs>
|
||||
</view>
|
||||
<!-- 学员列表 -->
|
||||
<view class="" v-if="tabId == '2'">
|
||||
<template v-if="students.length> 0 ">
|
||||
<view class="" v-if="tabId == '2'">
|
||||
<view v-if="studentsLoading" style="text-align: center;">
|
||||
数据加载中
|
||||
</view>
|
||||
<template v-else-if="students.length> 0 ">
|
||||
<view class="" style=" overflow: hidden; margin: 20rpx 0;">
|
||||
<text style="font-size: 26rpx; color: #666;">共 {{students.length}} 名学员</text>
|
||||
<!-- <uni-section class="mb-10 nobg xueyuanTitle" title="班内学员" type="line" sub-title="">共
|
||||
@@ -91,8 +94,8 @@
|
||||
</view>
|
||||
<view :class="['textItems','flex_box']">
|
||||
<text class="txt555"
|
||||
v-if="item.student.nickname != null && item.student.nickname != ''">
|
||||
{{item.student.nickname}}
|
||||
v-if="item.student.name != null && item.student.name != ''">
|
||||
{{item.student.name}}
|
||||
<template>
|
||||
<text>({{item.student.tel}})</text>
|
||||
</template>
|
||||
@@ -170,7 +173,7 @@
|
||||
<view class="item">
|
||||
<text class="adminName">班长:</text>
|
||||
<view class="personbox" v-if="admins.monitor.user != null && admins.monitor.id">
|
||||
<text>{{admins.monitor.user.nickname != null && admins.monitor.user.nickname != '' ? admins.monitor.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{admins.monitor.user.name != null && admins.monitor.user.name != '' ? admins.monitor.user.name : '匿名用户'}}</text>
|
||||
<text v-if="admins.monitor.id">({{admins.monitor.user.tel}})</text>
|
||||
</view>
|
||||
<text v-else>暂未设置</text>
|
||||
@@ -178,14 +181,14 @@
|
||||
<view class="item">
|
||||
<text class="adminName">副班长:</text>
|
||||
<view class="personbox" v-if="admins.dmonitor.user != null && admins.dmonitor.id">
|
||||
<text>{{admins.dmonitor.user.nickname != null && admins.dmonitor.user.nickname != '' ? admins.dmonitor.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{admins.dmonitor.user.name != null && admins.dmonitor.user.name != '' ? admins.dmonitor.user.name : '匿名用户'}}</text>
|
||||
<text>({{admins.dmonitor.user.tel}})</text>
|
||||
</view>
|
||||
<text v-else>暂未设置</text>
|
||||
</view>
|
||||
<view class="item"><text class="adminName">学习委员:</text>
|
||||
<view class="personbox" v-if="admins.learner.user != null && admins.learner.id">
|
||||
<text>{{admins.learner.user.nickname != null && admins.learner.user.nickname != '' ? admins.learner.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{admins.learner.user.name != null && admins.learner.user.name != '' ? admins.learner.user.name : '匿名用户'}}</text>
|
||||
<text>({{admins.learner.user.tel}})</text>
|
||||
</view>
|
||||
<text v-else>暂未设置</text>
|
||||
@@ -194,7 +197,7 @@
|
||||
<template v-if="admins.counter.length > 0">
|
||||
<view class="arryItemSub" v-for="(item,index) in admins.counter" :key="index">
|
||||
<template v-if="item.user != null">
|
||||
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{item.user.name != null && item.user.name != '' ? item.user.name : '匿名用户'}}</text>
|
||||
<text>({{item.user.tel}}) </text>
|
||||
</template>
|
||||
</view>
|
||||
@@ -205,7 +208,7 @@
|
||||
<template v-if="admins.scorer.length > 0">
|
||||
<view class="arryItemSub" v-for="(item,index) in admins.scorer" :key="index">
|
||||
<template v-if="item.user != null">
|
||||
<text>{{item.user.nickname != null && item.user.nickname != '' ? item.user.nickname : '匿名用户'}}</text>
|
||||
<text>{{item.user.name != null && item.user.name != '' ? item.user.name : '匿名用户'}}</text>
|
||||
<text>({{item.user.tel}}) </text>
|
||||
</template>
|
||||
</view>
|
||||
@@ -217,7 +220,7 @@
|
||||
<u-popup key="2" v-if="showStudentBlank" :show="showStudentBlank" :round="10" @close="closePup" ref="">
|
||||
<view class="upopBox" style="">
|
||||
<h3 style="margin-bottom: 20rpx;">
|
||||
{{thisStudent.student.nickname != null && thisStudent.student.nickname != '' ? thisStudent.student.nickname : "匿名用户"}}
|
||||
{{thisStudent.student.name != null && thisStudent.student.name != '' ? thisStudent.student.name : "匿名用户"}}
|
||||
</h3>
|
||||
<view class="item">
|
||||
<text><b>身份信息:</b></text>
|
||||
@@ -272,7 +275,7 @@
|
||||
ref="">
|
||||
<view class="upopBox manScoreBox" style="">
|
||||
<h3 style="margin-bottom: 20rpx;">
|
||||
{{thisStudentScore.user.nickname != null && thisStudentScore.user.nickname != '' ? thisStudentScore.user.nickname : "匿名用户"}}
|
||||
{{thisStudentScore.user.name != null && thisStudentScore.user.name != '' ? thisStudentScore.user.name : "匿名用户"}}
|
||||
</h3>
|
||||
<view class="item">
|
||||
<text><b>身份信息:</b></text>
|
||||
@@ -352,6 +355,7 @@
|
||||
|
||||
thisClass: {},
|
||||
students: [],
|
||||
studentsLoading: true,
|
||||
tabId: '2',
|
||||
curTagIndex: 0,
|
||||
scrollable: false,
|
||||
@@ -754,6 +758,39 @@
|
||||
url: `/pages/miniClass/classCaskList?id=${this.thisClass.id}&type=${this.tijiaoTitleId}`
|
||||
})
|
||||
},
|
||||
// 未开班和进行中状态下,学员的信息,带买课标识
|
||||
async getStudentsList() {
|
||||
var list = undefined
|
||||
await $http.request({
|
||||
url: "common/class/getClassUserCourseFlag",
|
||||
method: "POST",
|
||||
data: {
|
||||
"classId": parseInt(this.classId)
|
||||
},
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
list = res.result.students
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '获取学员信息失败',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
}
|
||||
}).catch(e => {
|
||||
list = []
|
||||
uni.showToast({
|
||||
title: e.errMsg,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
});
|
||||
return list
|
||||
},
|
||||
// 考试周和结班状态下,学员的信息
|
||||
async getStudentScoreList() {
|
||||
var list = undefined
|
||||
@@ -766,6 +803,7 @@
|
||||
header: { //默认 无 说明:请求头
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
timeout: '60000'
|
||||
})
|
||||
.then(res => {
|
||||
console.log('考试周状态下,学员的信息',this.classId, res);
|
||||
@@ -863,8 +901,9 @@
|
||||
this.students = await this.getStudentScoreList()
|
||||
// console.log('students', this.students);
|
||||
} else {
|
||||
this.students = res.result.students
|
||||
this.students = await this.getStudentsList()
|
||||
}
|
||||
this.studentsLoading = false
|
||||
this.refresh = true
|
||||
}
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
</view>
|
||||
<view :class="['textItems','flex_box']">
|
||||
<view class="txt555"
|
||||
v-if="item.user.nickname != null && item.user.nickname != ''">
|
||||
{{item.user.nickname}}
|
||||
v-if="item.user.name != null && item.user.name != ''">
|
||||
{{item.user.name}}
|
||||
<template>
|
||||
<text v-if="pageSorce!='myClass'">({{item.user.tel}})</text>
|
||||
</template>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<view class="textBox">
|
||||
<view class="">
|
||||
<text style="width: 100%; display: inline-block;">
|
||||
{{form.monitor && form.monitor.nickname != '' && form.monitor.nickname != null ? form.monitor.nickname : '匿名用户'}}
|
||||
{{form.monitor && form.monitor.name != '' && form.monitor.name != null ? form.monitor.name : '匿名用户'}}
|
||||
</text>
|
||||
<text style="width: 100%; display: inline-block;"> -
|
||||
{{form.monitor.tel}}</text>
|
||||
@@ -68,7 +68,7 @@
|
||||
<view class="textBox">
|
||||
<view class="">
|
||||
<text style="width: 100%; display: inline-block;">
|
||||
{{form.dmonitor && form.dmonitor.nickname != '' && form.dmonitor.nickname != null ? form.dmonitor.nickname : '匿名用户'}}
|
||||
{{form.dmonitor && form.dmonitor.name != '' && form.dmonitor.name != null ? form.dmonitor.name : '匿名用户'}}
|
||||
</text>
|
||||
<text style="width: 100%; display: inline-block;"> -
|
||||
{{form.dmonitor.tel}}</text>
|
||||
@@ -106,7 +106,7 @@
|
||||
<view class="textBox">
|
||||
<view class="">
|
||||
<text style="width: 100%; display: inline-block;">
|
||||
{{form.learner && form.learner.nickname != '' && form.learner.nickname != null ? form.learner.nickname : '匿名用户'}}
|
||||
{{form.learner && form.learner.name != '' && form.learner.name != null ? form.learner.name : '匿名用户'}}
|
||||
</text>
|
||||
<text style="width: 100%; display: inline-block;"> -
|
||||
{{form.learner.tel}}</text>
|
||||
@@ -146,7 +146,7 @@
|
||||
<view class="textBox">
|
||||
<view class="">
|
||||
<text style="width: 100%; display: inline-block;">
|
||||
{{item && item.nickname != '' && item.nickname != null ? item.nickname : '匿名用户'}}
|
||||
{{item && item.name != '' && item.name != null ? item.name : '匿名用户'}}
|
||||
</text>
|
||||
<text style="width: 100%; display: inline-block;"> - {{item.tel}}</text>
|
||||
</view>
|
||||
@@ -183,7 +183,7 @@
|
||||
<view class="textBox">
|
||||
<view class="">
|
||||
<text style="width: 100%; display: inline-block;">
|
||||
{{item && item.nickname != '' && item.nickname != null ? item.nickname : '匿名用户'}}
|
||||
{{item && item.name != '' && item.name != null ? item.name : '匿名用户'}}
|
||||
</text>
|
||||
<text style="width: 100%; display: inline-block;"> - {{item.tel}}</text>
|
||||
</view>
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
</view>
|
||||
<view class="textItems flex_box">
|
||||
<text class="nick"
|
||||
v-if="item.student.nickname != null && item.student.nickname != ''">
|
||||
{{item.student.nickname}}
|
||||
v-if="item.student.name != null && item.student.name != ''">
|
||||
{{item.student.name}}
|
||||
</text>
|
||||
<text class="nick" v-else>
|
||||
匿名用户
|
||||
@@ -81,7 +81,7 @@
|
||||
</view>
|
||||
<u-popup key="1" v-if="showEditBlank" :show="showEditBlank" :round="10" @close="closePup" ref="">
|
||||
<view class="upopBox" style="">
|
||||
<h3 style="margin-bottom: 20rpx;">{{thisStudent.student.nickname != null && thisStudent.student.nickname != '' ? thisStudent.student.nickname : "匿名用户"}}</h3>
|
||||
<h3 style="margin-bottom: 20rpx;">{{thisStudent.student.name != null && thisStudent.student.name != '' ? thisStudent.student.name : "匿名用户"}}</h3>
|
||||
<view class="item">
|
||||
<text><b>身份信息:</b></text>
|
||||
<text v-if="thisStudent.student.vip == '0'">普通用户</text>
|
||||
@@ -279,12 +279,12 @@
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
})
|
||||
.then(res => {
|
||||
.then(async res => {
|
||||
this.refresh = false
|
||||
if (res.code == 0) {
|
||||
|
||||
this.thisClass = res.result.class
|
||||
this.students = res.result.students
|
||||
this.students = await this.getStudentsList()
|
||||
|
||||
|
||||
}
|
||||
@@ -298,6 +298,39 @@
|
||||
icon: 'none'
|
||||
})
|
||||
});
|
||||
},
|
||||
// 未开班和进行中状态下,学员的信息,带买课标识
|
||||
async getStudentsList() {
|
||||
var list = undefined
|
||||
await $http.request({
|
||||
url: "common/class/getClassUserCourseFlag",
|
||||
method: "POST",
|
||||
data: {
|
||||
"classId": parseInt(this.classId)
|
||||
},
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
list = res.result.students
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '获取学员信息失败',
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
}
|
||||
}).catch(e => {
|
||||
list = []
|
||||
uni.showToast({
|
||||
title: e.errMsg,
|
||||
icon: 'none',
|
||||
duration: 3000
|
||||
})
|
||||
});
|
||||
return list
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<image v-else src="/static/icon/morenAvavter.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="userName flex_box">
|
||||
<text v-if="item.createUser.nickname != '' && item.createUser.nickname != null">匿名用户</text>
|
||||
<text v-if="item.createUser.name != '' || item.createUser.name != null">{{item.createUser.name}}</text>
|
||||
<text v-else>匿名用户</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
</view>
|
||||
<view class="userName flex_box">
|
||||
<text
|
||||
v-if="item.createUser.nickname != '' && item.createUser.nickname != null">{{item.createUser.nickname}}</text>
|
||||
v-if="item.createUser.name != '' && item.createUser.name != null">{{item.createUser.name}}</text>
|
||||
<text v-else>匿名用户</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -107,7 +107,7 @@
|
||||
日期:{{curReplay.createTime}}
|
||||
</view>
|
||||
<view class="" v-if="curReplay.createUser" style="color: #999;padding: 10rpx 0; font-size: 26rpx;">
|
||||
学员信息:{{curReplay.createUser.nickname != null && curReplay.createUser.nickname != '' ? curReplay.createUser.nickname : '匿名用户'}}
|
||||
学员信息:{{curReplay.createUser.name != null && curReplay.createUser.name != '' ? curReplay.createUser.name : '匿名用户'}}
|
||||
/ {{curReplay.createUser.tel}}
|
||||
</view>
|
||||
<!-- <view class="score" v-show="curReplay.scoreSuccess != 0">
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
日期:{{curReplay.createTime}}
|
||||
</view>
|
||||
<view class="" v-if="curReplay.createUser" style="color: #999;padding: 10rpx 0;">
|
||||
学员信息:{{curReplay.createUser.nickname != null && curReplay.createUser.nickname != '' ? curReplay.createUser.nickname : '匿名用户'}}
|
||||
学员信息:{{curReplay.createUser.name != null && curReplay.createUser.name != '' ? curReplay.createUser.name : '匿名用户'}}
|
||||
/ {{curReplay.createUser.tel}}
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
@@ -239,7 +239,14 @@ function judgePermission(permissionID, callback) {
|
||||
if (isIos) {
|
||||
handle(judgeIosPermissionLocation());
|
||||
} else {
|
||||
requestAndroidPermission("android.permission.ACCESS_FINE_LOCATION", "位置").then(handle);
|
||||
// requestAndroidPermission("android.permission.ACCESS_FINE_LOCATION", "位置").then(handle);
|
||||
}
|
||||
} else
|
||||
if (permissionID == "record") { // 麦克风
|
||||
if (isIos) {
|
||||
handle(judgeIosPermissionRecord());
|
||||
} else {
|
||||
// requestAndroidPermission("android.permission.RECORD_AUDIO", "麦克风").then(handle);
|
||||
}
|
||||
} else if (permissionID == "camera") { // 摄像头
|
||||
if (isIos) {
|
||||
@@ -253,12 +260,6 @@ function judgePermission(permissionID, callback) {
|
||||
} else {
|
||||
requestAndroidPermission("android.permission.READ_EXTERNAL_STORAGE", "相册读取").then(handle);
|
||||
}
|
||||
} else if (permissionID == "record") { // 麦克风
|
||||
if (isIos) {
|
||||
handle(judgeIosPermissionRecord());
|
||||
} else {
|
||||
requestAndroidPermission("android.permission.RECORD_AUDIO", "麦克风").then(handle);
|
||||
}
|
||||
} else if (permissionID == "push") { // 推送
|
||||
if (isIos) {
|
||||
handle(judgeIosPermissionPush());
|
||||
|
||||
@@ -503,45 +503,45 @@ function wxAppletsLocation(successCallback, errCallback) {
|
||||
}
|
||||
// 获取地址信息
|
||||
let locationAuthorize = true;
|
||||
export const getAppWxLatLon = function(successCallback, errCallback) {
|
||||
const _this = this;
|
||||
// #ifdef MP
|
||||
if (locationAuthorize) {
|
||||
uni.authorize({
|
||||
scope: 'scope.userLocation',
|
||||
success: () => {
|
||||
wxAppletsLocation(successCallback, errCallback);
|
||||
locationAuthorize = false;
|
||||
},
|
||||
fail: () => {
|
||||
locationAuthorize = false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
wxAppletsLocation(successCallback, errCallback);
|
||||
}
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
judgePermission("location", function(result) {
|
||||
if (result == 1) {
|
||||
uni.getLocation({
|
||||
type: 'gcj02',
|
||||
success: res => {
|
||||
// store.commit("setCurrentAddress", {
|
||||
// latitude: res.latitude,
|
||||
// longitude: res.longitude
|
||||
// });
|
||||
successCallback(res);
|
||||
},
|
||||
fail: (err) => {
|
||||
console.log("位置信息错误", err);
|
||||
errCallback("位置信息获取失败");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
}
|
||||
// export const getAppWxLatLon = function(successCallback, errCallback) {
|
||||
// const _this = this;
|
||||
// // #ifdef MP
|
||||
// if (locationAuthorize) {
|
||||
// uni.authorize({
|
||||
// scope: 'scope.userLocation',
|
||||
// success: () => {
|
||||
// wxAppletsLocation(successCallback, errCallback);
|
||||
// locationAuthorize = false;
|
||||
// },
|
||||
// fail: () => {
|
||||
// locationAuthorize = false;
|
||||
// }
|
||||
// });
|
||||
// } else {
|
||||
// wxAppletsLocation(successCallback, errCallback);
|
||||
// }
|
||||
// // #endif
|
||||
// // #ifdef APP-PLUS
|
||||
// judgePermission("location", function(result) {
|
||||
// if (result == 1) {
|
||||
// uni.getLocation({
|
||||
// type: 'gcj02',
|
||||
// success: res => {
|
||||
// // store.commit("setCurrentAddress", {
|
||||
// // latitude: res.latitude,
|
||||
// // longitude: res.longitude
|
||||
// // });
|
||||
// successCallback(res);
|
||||
// },
|
||||
// fail: (err) => {
|
||||
// console.log("位置信息错误", err);
|
||||
// errCallback("位置信息获取失败");
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// // #endif
|
||||
// }
|
||||
|
||||
//金额过滤
|
||||
Vue.filter('money', function(val) {
|
||||
|
||||
30
unpackage/cache/appleConfig.ini
vendored
@@ -1,30 +0,0 @@
|
||||
[appleAppid]
|
||||
appleAppid=com.cn.medicine
|
||||
|
||||
[iosStyle]
|
||||
iosStyle=common
|
||||
|
||||
[universalLinks]
|
||||
universalLinks=https://verification.nuttyreading.com/uni-universallinks/__UNI__C7475A8/
|
||||
spaceid=mp-3614b80b-2d75-4462-a481-4998f8187274
|
||||
|
||||
[universalLinks_qq]
|
||||
universalLinks_qq=
|
||||
spaceid_qq=
|
||||
|
||||
[universalLinks_weibo]
|
||||
universalLinks_weibo=
|
||||
spaceid_weibo=
|
||||
|
||||
[appstore]
|
||||
appstore=
|
||||
|
||||
[iphone]
|
||||
app%402x=57c603a7e76e93d4e909d70bc4f1c391
|
||||
app%403x=dae9706c3d88c80e345fe86f92252814
|
||||
notification%402x=90102496cae8ab78342248aafa2a930b
|
||||
notification%403x=e172cef625674f072d3a1c937a048b77
|
||||
settings%402x=83704cd271641c8750ad0edc3f6b54bf
|
||||
settings%403x=a25a205a5b08635abac35931b1147c68
|
||||
spotlight%402x=b5c21191cb9c68ea6be519f3f45b0460
|
||||
spotlight%403x=57c603a7e76e93d4e909d70bc4f1c391
|
||||
3
unpackage/cache/certdataios
vendored
@@ -1,3 +0,0 @@
|
||||
iosProfile=D:/@证书/吴门医述251030/zhengshi/medicine_production_25103002 (1).mobileprovision
|
||||
ioscertFile=D:/@证书/吴门医述251030/zhengshi/证书(1).p12
|
||||
ioscertPassword=ai6IL9ZPZlB8nFR8AdVmIQ==
|
||||
11
unpackage/cache/ipa/apple-app-site-association
vendored
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"applinks" : {
|
||||
"apps" : [],
|
||||
"details" : [
|
||||
{
|
||||
"appID" : "84LKB8J47D.com.cn.medicine",
|
||||
"paths" : [ "*", "/uni-universallinks/__UNI__C7475A8/*" ]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
unpackage/debug/android_debug.apk
Normal file
BIN
unpackage/dist/build/app-plus/__uniapperror.png
vendored
|
Before Width: | Height: | Size: 5.7 KiB |
1
unpackage/dist/build/app-plus/__uniappes6.js
vendored
BIN
unpackage/dist/build/app-plus/__uniappsuccess.png
vendored
|
Before Width: | Height: | Size: 2.0 KiB |
25
unpackage/dist/build/app-plus/__uniappview.html
vendored
@@ -1,25 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<script>
|
||||
var __UniViewStartTime__ = Date.now();
|
||||
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||
CSS.supports('top: constant(a)'))
|
||||
document.write(
|
||||
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||
</script>
|
||||
<title>View</title>
|
||||
<link rel="stylesheet" href="view.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script src="__uniappes6.js"></script>
|
||||
<script src="view.umd.min.js"></script>
|
||||
<script src="app-view.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"version" : "1",
|
||||
"prompt" : "template",
|
||||
"title" : "服务协议和隐私政策",
|
||||
"message" : " 请你务必审慎阅读、充分理解“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://wumen.taihumed.com/agreement.html\">《用户协议》</a>和<a href=\"https://wumen.taihumed.com/privacy.html\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
|
||||
"buttonAccept" : "同意并接受",
|
||||
"buttonRefuse" : "暂不同意",
|
||||
"hrefLoader" : "system",
|
||||
"backToExit" : "false",
|
||||
"second" : {
|
||||
"title" : "确认提示",
|
||||
"message" : " 进入应用前,你需先同意<a href=\"https://wumen.taihumed.com/agreement.html\">《用户协议》</a>和<a href=\"https://wumen.taihumed.com/privacy.html\">《隐私政策》</a>,否则将退出应用。",
|
||||
"buttonAccept" : "同意并继续",
|
||||
"buttonRefuse" : "退出应用"
|
||||
},
|
||||
"disagreeMode" : {
|
||||
"support" : false,
|
||||
"loadNativePlugins" : false,
|
||||
"visitorEntry" : false,
|
||||
"showAlways" : false
|
||||
},
|
||||
"styles" : {
|
||||
"backgroundColor" : "#FFF",
|
||||
"borderRadius" : "5px",
|
||||
"title" : {
|
||||
"color" : "#333"
|
||||
},
|
||||
"buttonAccept" : {
|
||||
"color" : "#333"
|
||||
},
|
||||
"buttonRefuse" : {
|
||||
"color" : "#333"
|
||||
},
|
||||
"buttonVisitor" : {
|
||||
"color" : "#55aaff"
|
||||
}
|
||||
}
|
||||
}
|
||||
1
unpackage/dist/build/app-plus/app-config.js
vendored
@@ -1 +0,0 @@
|
||||
(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);
|
||||
38
unpackage/dist/build/app-plus/app-service.js
vendored
27
unpackage/dist/build/app-plus/app-view.js
vendored
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 30 KiB |
1
unpackage/dist/build/app-plus/manifest.json
vendored
BIN
unpackage/dist/build/app-plus/static/40x40.png
vendored
|
Before Width: | Height: | Size: 2.0 KiB |
BIN
unpackage/dist/build/app-plus/static/arrow.png
vendored
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
unpackage/dist/build/app-plus/static/bg1.jpg
vendored
|
Before Width: | Height: | Size: 5.7 KiB |
BIN
unpackage/dist/build/app-plus/static/bg2.jpg
vendored
|
Before Width: | Height: | Size: 3.5 KiB |
BIN
unpackage/dist/build/app-plus/static/biaoqing.png
vendored
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 779 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 830 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 822 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 843 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |