1 Commits

Author SHA1 Message Date
GaoHao
6d72021f87 更改随机名字 2024-12-23 19:38:39 +08:00
365 changed files with 17889 additions and 27983 deletions

View File

@@ -18,7 +18,7 @@
"type" : "uniCloud"
},
{
"playground" : "standard",
"playground" : "custom",
"type" : "uni-app:app-android"
},
{

504
App.vue
View File

@@ -1,9 +1,6 @@
<script>
import config from '@/common/config.js'
import store from './store/index.js'
import {
init
} from './common/init.js'
export default {
onLaunch: function() {
let that = this
@@ -464,168 +461,168 @@
} else {
//不是热更新是在线更新 校验是否强制升级
// if (res.method == "true") {
// uni.showModal({
// showCancel: false,
// title: '发现新版本',
// confirmText: '立即更新',
// content: res.des,
// success: res => {
// if (res.confirm) {
// plus.runtime.openURL(config.APIHOST2 +
// '/pages/login/appEq')
// return
// uni.showLoading({
// title: '下载中...',
// mask: true
// });
// if (uni.getSystemInfoSync().platform ==
// 'android') {
// uni.downloadFile({
// url: androidLink,
// success: downloadResult => {
// console.log(
// downloadResult
// )
// if (downloadResult
// .statusCode ===
// 200) {
// plus.runtime
// .install(
// downloadResult
// .tempFilePath, {
// force: false
// },
// d => {
// console
// .log(
// 'install success...'
// );
// plus.runtime
// .restart();
// },
// e => {
// console
// .log(
// e
// )
// console
// .error(
// 'install fail...'
// );
// }
// );
// // plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
// // entry.getParent(_oldFile=>{
// // entry.moveTo(_oldFile,'.apk',newFilePath=>{
// // console.log('newFilePath',newFilePath.fullPath)
if (res.method == "true") {
uni.showModal({
showCancel: false,
title: '发现新版本',
confirmText: '立即更新',
content: res.des,
success: res => {
if (res.confirm) {
plus.runtime.openURL(config.APIHOST2 +
'/pages/ghtwwlkXYG/YEZelghNit')
return
uni.showLoading({
title: '下载中...',
mask: true
});
if (uni.getSystemInfoSync().platform ==
'android') {
uni.downloadFile({
url: androidLink,
success: downloadResult => {
console.log(
downloadResult
)
if (downloadResult
.statusCode ===
200) {
plus.runtime
.install(
downloadResult
.tempFilePath, {
force: false
},
d => {
console
.log(
'install success...'
);
plus.runtime
.restart();
},
e => {
console
.log(
e
)
console
.error(
'install fail...'
);
}
);
// plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
// entry.getParent(_oldFile=>{
// entry.moveTo(_oldFile,'.apk',newFilePath=>{
// console.log('newFilePath',newFilePath.fullPath)
// // })
// // })
// // })
// })
// })
// })
// }
// }
// });
// }
// if (uni.getSystemInfoSync().platform ==
// 'ios') {
// plus.runtime.openURL(iosLink, function(
// res) {});
// }
// } else if (res.cancel) {
// console.log('取消');
// }
// }
// });
// } else {
// uni.showModal({
// title: '发现新版本',
// confirmText: '立即更新',
// cancelText: '下次更新',
// content: res.des,
// success: res => {
// if (res.confirm) {
// plus.runtime.openURL(config.APIHOST2 +
// '/pages/login/appEq')
// return
// uni.showLoading({
// title: '下载中...',
// mask: true
// });
// if (uni.getSystemInfoSync().platform ==
// 'android') {
// uni.downloadFile({
// url: androidLink,
// success: downloadResult => {
// if (downloadResult
// .statusCode ===
// 200) {
// plus.runtime
// .install(
// downloadResult
// .tempFilePath, {
// force: false
// },
// d => {
// console
// .log(
// 'install success...'
// );
// plus.runtime
// .restart();
// },
// e => {
// console
// .log(
// e
// )
// console
// .error(
// 'install fail...'
// );
// }
// );
// // plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
// // entry.getParent(_oldFile=>{
// // entry.moveTo(_oldFile,'.apk',newFilePath=>{
// // console.log('newFilePath',newFilePath.fullPath)
// // plus.runtime
// // .install(newFilePath.fullPath, { force: false },
// // d => {
// // console
// // .log(
// // 'install success...'
// // );
// // plus.runtime
// // .restart();
// // },
// // e => {
// // console.log(e)
// // console
// // .error(
// // 'install fail...'
// // );
// // }
// // );
// // })
// // })
// // })
// }
// }
// });
// }
// if (uni.getSystemInfoSync().platform ==
// 'ios') {
// plus.runtime.openURL(iosLink, function(
// res) {});
// }
// } else if (res.cancel) {
// console.log('取消');
// }
// }
// });
// }
}
}
});
}
if (uni.getSystemInfoSync().platform ==
'ios') {
plus.runtime.openURL(iosLink, function(
res) {});
}
} else if (res.cancel) {
console.log('取消');
}
}
});
} else {
uni.showModal({
title: '发现新版本',
confirmText: '立即更新',
cancelText: '下次更新',
content: res.des,
success: res => {
if (res.confirm) {
plus.runtime.openURL(config.APIHOST2 +
'/pages/ghtwwlkXYG/YEZelghNit')
return
uni.showLoading({
title: '下载中...',
mask: true
});
if (uni.getSystemInfoSync().platform ==
'android') {
uni.downloadFile({
url: androidLink,
success: downloadResult => {
if (downloadResult
.statusCode ===
200) {
plus.runtime
.install(
downloadResult
.tempFilePath, {
force: false
},
d => {
console
.log(
'install success...'
);
plus.runtime
.restart();
},
e => {
console
.log(
e
)
console
.error(
'install fail...'
);
}
);
// plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
// entry.getParent(_oldFile=>{
// entry.moveTo(_oldFile,'.apk',newFilePath=>{
// console.log('newFilePath',newFilePath.fullPath)
// plus.runtime
// .install(newFilePath.fullPath, { force: false },
// d => {
// console
// .log(
// 'install success...'
// );
// plus.runtime
// .restart();
// },
// e => {
// console.log(e)
// console
// .error(
// 'install fail...'
// );
// }
// );
// })
// })
// })
}
}
});
}
if (uni.getSystemInfoSync().platform ==
'ios') {
plus.runtime.openURL(iosLink, function(
res) {});
}
} else if (res.cancel) {
console.log('取消');
}
}
});
}
}
}
});
@@ -652,7 +649,7 @@
});
}
// #endif
init()
// this.$u.get('/app/common/type/109').then(res => { // 是否开启公众号自动注册 109
// if (res.code == 0 && res.data) {
@@ -660,15 +657,190 @@
// }
// });
//微信小程序IOS系统支付功能开关 882
this.$u.get('/app/common/type/882').then(res => {
if (res.code == 0 && res.data) {
let value = res.data.value
const sysInfo = uni.getSystemInfoSync()
// #ifdef MP-WEIXIN
if (sysInfo.osName == 'ios') { //是ios系统
if (value == '是') { //开启
uni.setStorageSync('isWxIosPay', true)
} else { //关闭
uni.setStorageSync('isWxIosPay', false)
}
} else { //不是ios下直接打开
uni.setStorageSync('isWxIosPay', true)
}
// #endif
//不在微信小程序也直接打开
// #ifndef MP-WEIXIN
uni.setStorageSync('isWxIosPay', true)
// #endif
}
});
//是否开启苹果登录 833
this.$u.get('/app/common/type/833').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkIosLogin', res.data.value)
}
});
//是否开启苹果支付 834
this.$u.get('/app/common/type/834').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkIosPay', res.data.value)
}
});
//是否开启微信登录 835
this.$u.get('/app/common/type/835').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkWxLogin', res.data.value)
}
});
//是否开启手机号一键登录 836
this.$u.get('/app/common/type/836').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkPhoneLogin', res.data.value)
}
});
this.$u.get('/app/common/type/817').then(res => { //是否开启购买整部视频 817
if (res.code == 0 && res.data) {
uni.setStorageSync('zhengbu', res.data.value)
}
});
this.$u.get('/app/common/type/818').then(res => { //是否开启购买单集视频 818
if (res.code == 0 && res.data) {
uni.setStorageSync('danbu', res.data.value)
}
});
// 微信激励广告id 252
this.$u.get('/app/common/type/252').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('adUnitId', res.data.value)
}
});
// 播放类型 1:抖音云 2:三方云
this.$u.get('/app/common/type/821').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('playType', res.data.value)
}
});
// 是否开启看广告(微信) 251
this.$u.get('/app/common/type/251').then(res => {
if (res.code == 0) {
if (res.data && res.data.value) {
uni.setStorageSync('isGuanggao', res.data.value)
}
}
});
// 是否开启看广告(抖音) 254
this.$u.get('/app/common/type/254').then(res => {
if (res.code == 0) {
if (res.data && res.data.value) {
uni.setStorageSync('isGuanggaody', res.data.value)
}
}
});
this.$u.get('/app/common/type/202').then(res => { //客服配置 1 二维码客服 2 微信公众号客服 3电话客服
if (res.code == 0 && res.data) {
uni.setStorageSync('kefu', res.data.value)
}
});
this.$u.get('/app/common/type/206').then(res => { //客服电话
if (res.code == 0 && res.data) {
uni.setStorageSync('kefuPhone', res.data.value)
}
});
this.$u.get('/app/common/type/204').then(res => { //微信客服链接
if (res.code == 0 && res.data) {
uni.setStorageSync('kefuUrl', res.data.value)
}
});
this.$u.get('/app/common/type/203').then(res => { //微信客服appid
if (res.code == 0 && res.data) {
uni.setStorageSync('kefuAppId', res.data.value)
}
});
//会员开关
this.$u.get('/app/common/type/248').then(res => { //会员开关
if (res.code == 0 && res.data) {
uni.setStorageSync('isVips', res.data.value)
}
});
//热搜词 249
this.$u.get('/app/common/type/249').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('moreSearch', res.data.value)
}
});
//安卓下载地址 49
this.$u.get('/app/common/type/49').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('AppUrl', res.data.value)
}
});
//微信虚拟支付OfferID 823
this.$u.get('/app/common/type/823').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('OfferID', res.data.value)
}
});
//微信虚拟支付环境0 米大师正式环境, 1 米大师沙箱环境) 824
this.$u.get('/app/common/type/824').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('payEnv', res.data.value)
}
});
//充值提示 825
this.$u.get('/app/common/type/825').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('moneyTips', res.data.value)
}
});
//是否开启卡密充值 855
this.$u.get('/app/common/type/855').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('kmPaySel', res.data.value)
}
});
//是否开启分类 849
this.$u.get('/app/common/type/849').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('homeTypeSel', res.data.value)
}
});
//是否开启收益充值余额 856
this.$u.get('/app/common/type/856').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('syPaySel', res.data.value)
}
});
//抖音im客服 857
this.$u.get('/app/common/type/857').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('imId', res.data.value)
}
});
this.$u.get('/app/common/type/858').then(res => { //是否开启公众号充值
if (res.code == 0 && res.data) {
uni.setStorageSync('isAccountPay', res.data.value)
}
});
//抖音广告id
this.$u.get('/app/common/type/860').then(res => { //抖音广告
if (res.code == 0 && res.data) {
uni.setStorageSync('dyadUnitId', res.data.value)
}
});
// #ifdef H5
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
//是否开启pc端使用 850
this.$u.get('/app/common/type/850').then(res => {
if (res.code == 0 && res.data && res.data.value === '否') {
if (window.location.href.indexOf('/pages/me/erweimaRegister') === -1) {
if (window.location.href.indexOf('/pages/iSiAnfghCC/ghhCPInfzi') === -1) {
uni.reLaunch({
url: '/pages/me/erweimaRegister'
url: '/pages/iSiAnfghCC/ghhCPInfzi'
})
}
}

View File

@@ -1,23 +1,15 @@
const ROOTPATH1 = "https://dj-api.hnsiyao.cn/czg"; //
const ROOTPATH = "https://dj-api.hnsiyao.cn/czg"; //后台服务域名
const ROOTPATH2 = "https://dj-h5.hnsiyao.cn"; //后台服务域名
// const ROOTPATH1 = "https://dj-api.hnsiyao.cn/sqx_fast/"; //
// const ROOTPATH = "https://dj-api.hnsiyao.cn/sqx_fast/"; //后台服务域名
// const ROOTPATH2 = "https://dj-h5.hnsiyao.cn"; //后台服务域名
// const ROOTPATH1 = "https://video.hnsiyao.cn/sqx_fast/"; //
// const ROOTPATH = "https://video.hnsiyao.cn/sqx_fast/"; //后台服务域名
// const ROOTPATH2 = "https://video-h5.hnsiyao.cn"; //后台服务域名
const ROOTPATH1 = "https://video.hnsiyao.cn/sqx_fast/"; //
const ROOTPATH = "https://video.hnsiyao.cn/sqx_fast/"; //后台服务域名
const ROOTPATH2 = "https://video-h5.hnsiyao.cn"; //后台服务域名
// const ROOTPATH1 = "http://192.168.1.5:8100/sqx_fast/"; //
// const ROOTPATH = "http://192.168.1.5:8100/sqx_fast/"; //后台服务域名
// const ROOTPATH2 = "http://192.168.1.5:8100"; //后台服务域名
// const ROOTPATH1 = "http://192.168.1.41:8100/czg"; //
// const ROOTPATH = "http://192.168.1.41:8100/czg"; //后台服务域名
// 测试
// const ROOTPATH1 = "https://web-api.hnsiyao.cn/czg"; //
// const ROOTPATH = "https://web-api.hnsiyao.cn/czg"; //后台服务域名
// const ROOTPATH2 = "https://video-h5.hnsiyao.cn"; //后台服务域名
module.exports = {
APIHOST: ROOTPATH,
APIHOST1: ROOTPATH1,

View File

@@ -57,25 +57,13 @@ const install = (Vue, vm) => {
let type = (params = {}) => vm.$u.get('app/common/type', params); //钱包明细
let myPurseDet = (params = {}) => vm.$u.get('app/moneyDetails/queryUserMoneyDetails', params); //我的钱包
let myPurse = (params = {}) => vm.$u.get('/app/moneyDetails/selectUserMoney', params); //钱包明细
let myPurse = (params = {}) => vm.$u.get('app/moneyDetails/selectUserMoney', params); //钱包明细
let help = (params = {}) => vm.$u.get('app/helpWord/selectHelpList', params); //帮助中心
let helpDet = (params = {}) => vm.$u.get('app/helpWord/selectHelpWordDetails', params); //帮助中心 详情
//获取视频
let selectCourseDetailsById = (params = {}) => {
let obj = {}
if (params.token) {
obj = params
} else {
obj = {
courseId:params.courseId,
token:'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMDc0MDk2MjQwODQ2ODQ1NTU3IiwiaWF0IjoxNzM2NTA0OTcyLCJleHAiOjE3MzcxMDk3NzJ9.b-xJwmlGiZ1MTojGdLPXPqk-7Lw0pSYRU-QFQW0HBRn1EUHpqz1To3HWPiC-j6F0W_YnbQrQKqztRs8kLoR0vA'
}
}
return vm.$u.get('app/course/courseSets', obj)
};
let selectCourseDetailsById = (params = {}) => vm.$u.get('app/course/selectCourseDetailsById', params);
// 将各个定义的接口名称统一放进对象挂载到vm.$u.api(因为vm就是this也即this.$u.api)下
vm.$u.api = {
@@ -136,4 +124,4 @@ const install = (Vue, vm) => {
export default {
install
}
}

View File

@@ -48,7 +48,7 @@ const install = (Vue, vm) => {
vm.$u.toast('验证失败,请重新登录');
setTimeout(() => {
// 此为uView的方法详见路由相关文档
vm.$u.route('/pages/login/login')
vm.$u.route('/pages/ghtwwlkXYG/wVghNzmqkQ')
}, 1500)
return false;
} else if (res.code == 401) {
@@ -65,7 +65,7 @@ const install = (Vue, vm) => {
uni.removeStorageSync("zhiFuBao")
uni.removeStorageSync("zhiFuBaoName")
// 此为uView的方法详见路由相关文档
vm.$u.route('/pages/login/login')
vm.$u.route('/pages/ghtwwlkXYG/wVghNzmqkQ')
return false;
} else {
// 如果返回false则会调用Promise的reject回调

View File

@@ -53,7 +53,7 @@ module.exports = {
icon: 'none'
})
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
},
post: function(url, data, header) {
@@ -308,8 +308,7 @@ module.exports = {
data: data,
method: "GET",
header: {
"content-type": header,
token: uni.getStorageSync("token")
"content-type": header
},
success: function(result) {
if (result.data.code == 401) {

View File

@@ -1,410 +0,0 @@
import httpsRequest from '@/common/httpRequest.js'
function getIsPauseServe() {
return new Promise((reslove, reject) => {
uni.request({
url: '',
method: 'get',
data: {},
success() {
reslove()
}
})
})
}
const $map = {
882: 'isWxIosPay',
833: 'checkIosLogin',
834: 'checkIosPay',
835: 'checkWxLogin',
836: 'checkPhoneLogin',
108: 'isOpenWxWebAutoLogin',
817: 'zhengbu',
818: 'danbu',
252: 'adUnitId',
821: 'playType',
251: 'isGuanggao',
254: 'isGuanggaody',
202: 'kefu',
206: 'kefuPhone',
204: 'kefuUrl',
203: 'kefuAppId',
248: 'isVips',
249: 'moreSearch',
49: 'AppUrl',
823: 'OfferID',
824: 'payEnv',
825: 'moneyTips',
855: 'kmPaySel',
849: 'homeTypeSel',
856: 'syPaySel',
857: 'imId',
858: 'isAccountPay',
860: 'dyadUnitId',
881: '',
109: ''
}
function callback() {
if (key == 'isOpenWxWebAutoLogin' && res.data[i] == '是') {
// 是否开启公众号自动登陆 108
let ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') !== -1) {
let openid = uni.getStorageSync('openId');
let userId = uni.getStorageSync('userId');
if (!userId) {
if (openid) {
httpsRequest.get('/app/Login/openid/login?openId=' + openid).then(
res => {
if (res.code == 0) {
uni.setStorageSync('token', res.token)
uni.setStorageSync('userId', res.user.userId)
uni.setStorageSync('userName', res.user.userName)
uni.setStorageSync('phone', res.user.phone)
uni.setStorageSync('invitationCode', res.user
.invitationCode)
}
});
}
}
}
}
}
export async function init() {
httpsRequest.getT('/app/common/getAppUseKv').then(res => {
console.log(res);
if (res.code == 0) {
for (let i in $map) {
const key = $map[i]
if (key) {
uni.setStorageSync(key, res.data[i])
// $cache_config.set(key, res.data[i])
// callback()
}
}
}
})
return
// const res=await getIsPauseServe()
// #ifdef APP
//微信小程序IOS系统支付功能开关 882
httpsRequest.getT('/app/common/type/882').then(res => {
if (res.code == 0 && res.data) {
let value = res.data.value
const sysInfo = uni.getSystemInfoSync()
// #ifdef MP-WEIXIN
if (sysInfo.osName == 'ios') { //是ios系统
if (value == '是') { //开启
uni.setStorageSync('isWxIosPay', true)
} else { //关闭
uni.setStorageSync('isWxIosPay', false)
}
} else { //不是ios下直接打开
uni.setStorageSync('isWxIosPay', true)
}
// #endif
//不在微信小程序也直接打开
// #ifndef MP-WEIXIN
uni.setStorageSync('isWxIosPay', true)
// #endif
}
});
//是否开启苹果登录 833
httpsRequest.getT('/app/common/type/833').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkIosLogin', res.data.value)
}
});
//是否开启苹果支付 834
httpsRequest.getT('/app/common/type/834').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkIosPay', res.data.value)
}
});
//是否开启微信登录 835
httpsRequest.getT('/app/common/type/835').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkWxLogin', res.data.value)
}
});
//是否开启手机号一键登录 836
httpsRequest.getT('/app/common/type/836').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('checkPhoneLogin', res.data.value)
}
});
// #endif
// #ifdef H5
// httpsRequest.getT('/app/common/type/108').then(res => { //// 是否开启公众号自动登陆 108
// if (res.code == 0 && res.data) {
// if (res.data.value == '是') {
// let ua = navigator.userAgent.toLowerCase();
// if (ua.indexOf('micromessenger') !== -1) {
// let openid = uni.getStorageSync('openId');
// let userId = uni.getStorageSync('userId');
// if (!userId) {
// if (openid) {
// that.$u.get('/app/Login/openid/login?openId=' + openid).then(
// res => {
// if (res.code == 0) {
// uni.setStorageSync('token', res.token)
// uni.setStorageSync('userId', res.user.userId)
// uni.setStorageSync('userName', res.user.userName)
// uni.setStorageSync('phone', res.user.phone)
// uni.setStorageSync('invitationCode', res.user
// .invitationCode)
// }
// });
// }
// }
// }
// }
// }
// });
// #endif
// configInit()
}
export function configInit() {
const {
zhengbu,
danbu,
adUnitId,
playType,
isGuanggao,
isGuanggaody,
kefu,
kefuPhone
} = $cache_config
if (zhengbu === null || zhengbu === undefined) {
httpsRequest.getT('/app/common/type/817').then(res => { //是否开启购买整部视频 817
if (res.code == 0 && res.data) {
uni.setStorageSync('zhengbu', res.data.value)
$cache_config.set('zhengbu', res.data.value)
}
});
}
if (danbu === null || danbu === undefined) {
httpsRequest.getT('/app/common/type/818').then(res => { //是否开启购买单集视频 818
if (res.code == 0 && res.data) {
uni.setStorageSync('danbu', res.data.value)
$cache_config.set('danbu', res.data.value)
}
});
}
// 微信激励广告id 252
if (adUnitId === null || adUnitId === undefined) {
httpsRequest.getT('/app/common/type/252').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('adUnitId', res.data.value)
$cache_config.set('adUnitId', res.data.value)
}
});
}
// 播放类型 1:抖音云 2:三方云
if (playType === null || playType === undefined) {
httpsRequest.getT('/app/common/type/821').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('playType', res.data.value)
$cache_config.set('playType', res.data.value)
}
});
}
// 是否开启看广告(微信) 251
if (isGuanggao === null || isGuanggao === undefined) {
httpsRequest.getT('/app/common/type/251').then(res => {
if (res.code == 0) {
if (res.data && res.data.value) {
uni.setStorageSync('isGuanggao', res.data.value)
$cache_config.set('isGuanggao', res.data.value)
}
}
});
}
// 是否开启看广告(抖音) 254
if (isGuanggaody === null || isGuanggaody === undefined) {
httpsRequest.getT('/app/common/type/254').then(res => {
if (res.code == 0) {
if (res.data && res.data.value) {
uni.setStorageSync('isGuanggaody', res.data.value)
$cache_config.set('isGuanggaody', res.data.value)
}
}
});
}
if (kefu === null || kefu === undefined) {
httpsRequest.getT('/app/common/type/202').then(res => { //客服配置 1 二维码客服 2 微信公众号客服 3电话客服
if (res.code == 0 && res.data) {
uni.setStorageSync('kefu', res.data.value)
$cache_config.set('kefu', res.data.value)
}
});
}
if (kefuPhone === null || kefuPhone === undefined) {
httpsRequest.getT('/app/common/type/206').then(res => { //客服电话
if (res.code == 0 && res.data) {
uni.setStorageSync('kefuPhone', res.data.value)
$cache_config.set('kefuPhone', res.data.value)
}
});
}
if ($cache_config.kefuUrl === null || $cache_config.kefuUrl === undefined) {
httpsRequest.getT('/app/common/type/204').then(res => { //微信客服链接
if (res.code == 0 && res.data) {
uni.setStorageSync('kefuUrl', res.data.value)
$cache_config.set('kefuUrl', res.data.value)
}
});
}
if ($cache_config.kefuAppId === null || $cache_config.kefuAppId === undefined) {
httpsRequest.getT('/app/common/type/203').then(res => { //微信客服appid
if (res.code == 0 && res.data) {
uni.setStorageSync('kefuAppId', res.data.value)
$cache_config.set('kefuAppId', res.data.value)
}
});
}
//会员开关
if ($cache_config.isVips === null || $cache_config.isVips === undefined) {
httpsRequest.getT('/app/common/type/248').then(res => { //会员开关
if (res.code == 0 && res.data) {
uni.setStorageSync('isVips', res.data.value)
$cache_config.set('isVips', res.data.value)
}
});
}
//热搜词 249
if ($cache_config.moreSearch === null || $cache_config.moreSearch === undefined) {
httpsRequest.getT('/app/common/type/249').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('moreSearch', res.data.value)
$cache_config.set('moreSearch', res.data.value)
}
});
}
//安卓下载地址 49
if ($cache_config.AppUrl === null || $cache_config.AppUrl === undefined) {
httpsRequest.getT('/app/common/type/49').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('AppUrl', res.data.value)
$cache_config.set('AppUrl', res.data.value)
}
});
}
//微信虚拟支付OfferID 823
if ($cache_config.OfferID === null || $cache_config.OfferID === undefined) {
httpsRequest.getT('/app/common/type/823').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('OfferID', res.data.value)
$cache_config.set('OfferID', res.data.value)
}
});
}
//微信虚拟支付环境0 米大师正式环境, 1 米大师沙箱环境) 824
if ($cache_config.payEnv === null || $cache_config.payEnv === undefined) {
httpsRequest.getT('/app/common/type/824').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('payEnv', res.data.value)
$cache_config.set('payEnv', res.data.value)
}
});
}
//充值提示 825
if ($cache_config.moneyTips === null || $cache_config.moneyTips === undefined) {
httpsRequest.getT('/app/common/type/825').then(res => { //热搜词
if (res.code == 0 && res.data) {
uni.setStorageSync('moneyTips', res.data.value)
$cache_config.set('moneyTips', res.data.value)
}
});
}
//是否开启卡密充值 855
if ($cache_config.kmPaySel === null || $cache_config.kmPaySel === undefined) {
httpsRequest.getT('/app/common/type/855').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('kmPaySel', res.data.value)
$cache_config.set('kmPaySel', res.data.value)
}
});
}
//是否开启分类 849
if ($cache_config.homeTypeSel === null || $cache_config.homeTypeSel === undefined) {
httpsRequest.getT('/app/common/type/849').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('homeTypeSel', res.data.value)
$cache_config.set('homeTypeSel', res.data.value)
}
});
}
//是否开启收益充值余额 856
if ($cache_config.syPaySel === null || $cache_config.syPaySel === undefined) {
httpsRequest.getT('/app/common/type/856').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('syPaySel', res.data.value)
$cache_config.set('syPaySel', res.data.value)
}
});
}
//抖音im客服 857
if ($cache_config.imId === null || $cache_config.imId === undefined) {
httpsRequest.getT('/app/common/type/857').then(res => {
if (res.code == 0 && res.data) {
uni.setStorageSync('imId', res.data.value)
$cache_config.set('imId', res.data.value)
}
});
}
if ($cache_config.isAccountPay === null || $cache_config.isAccountPay === undefined) {
httpsRequest.getT('/app/common/type/858').then(res => { //是否开启公众号充值
if (res.code == 0 && res.data) {
uni.setStorageSync('isAccountPay', res.data.value)
$cache_config.set('isAccountPay', res.data.value)
}
});
}
//抖音广告id
if ($cache_config.dyadUnitId === null || $cache_config.dyadUnitId === undefined) {
httpsRequest.getT('/app/common/type/860').then(res => { //抖音广告
if (res.code == 0 && res.data) {
uni.setStorageSync('dyadUnitId', res.data.value)
$cache_config.set('dyadUnitId', res.data.value)
}
});
}
}

View File

@@ -27,7 +27,7 @@
methods: {
goNav() {
uni.switchTab({
url: '/pages/index/index2'
url: '/pages/index/index'
})
}
}

View File

@@ -23,7 +23,7 @@
methods: {
goNav() {
uni.navigateTo({
url:'/pages/login/login'
url:'/pages/ghtwwlkXYG/wVghNzmqkQ'
})
}
}

View File

@@ -155,14 +155,14 @@
methods: {
toRed() {
uni.navigateTo({
url: '/me/HEWZtgyqRH/HEWZtgyqRH'
url: '/me/balance/index'
})
},
toGift() {
console.log('1');
uni.navigateTo({
url: '/me/giftczgw/giftczgw'
url: '/me/gift/gift'
})
},
// 重新生成
@@ -424,7 +424,7 @@
async remoteGetPrizeIndex() {
this.result = ''
console.warn('###当前处于模拟的请求接口,并返回了中奖信息###')
const res = await this.$Request.getT('/app/discSpinning/draw', {
const res = await this.$Request.getT('app/discSpinning/draw', {
orderId: this.option.orderId || 2145
})
console.log(res);
@@ -476,22 +476,22 @@
orderId,
id
} = _this.result
// _this.$Request.postJson('/app/discSpinning/receive', _this.result).then(res => {
// _this.result = ''
// console.log(res)
// if (res.code == 0) {
// uni.showToast({
// title: '领取成功',
// icon: 'none'
// })
// _this.getRedPack()
// } else {
// uni.showToast({
// title: '领取失败',
// icon: 'none'
// })
// }
// })
_this.$Request.postJson('app/discSpinning/receive', _this.result).then(res => {
_this.result = ''
console.log(res)
if (res.code == 0) {
uni.showToast({
title: '领取成功',
icon: 'none'
})
_this.getRedPack()
} else {
uni.showToast({
title: '领取失败',
icon: 'none'
})
}
})
},
complete: () => {
this.prizeing = false
@@ -521,7 +521,7 @@
}, 50)
},
async getRedPack() {
const res = await this.$Request.getT('/app/moneyDetails/selectUserMoney')
const res = await this.$Request.getT('app/moneyDetails/selectUserMoney')
if (res.code == 0) {
this.totalMoney = res.data.amount
}

View File

@@ -53,23 +53,23 @@
orderId,
id
} = this.result
// this.$Request.postJson('/app/discSpinning/receive', this.result).then(res => {
// this.result = ''
// console.log(res)
// if (res.code == 0) {
// uni.showToast({
// title: '领取成功',
// icon: 'none'
// })
// this.$emit('success')
// this.close()
// } else {
// uni.showToast({
// title: '领取失败',
// icon: 'none'
// })
// }
// })
this.$Request.postJson('app/discSpinning/receive', this.result).then(res => {
this.result = ''
console.log(res)
if (res.code == 0) {
uni.showToast({
title: '领取成功',
icon: 'none'
})
this.$emit('success')
this.close()
} else {
uni.showToast({
title: '领取失败',
icon: 'none'
})
}
})
},
close() {
this.show = false
@@ -80,15 +80,15 @@
orderId,
id
} = this.result
// this.$Request.postJson('/app/discSpinning/receive', this.result).then(res => {
// this.result = ''
// console.log(res)
// if (res.code == 0) {
// this.$emit('success')
// this.close()
// } else {
// }
// })
this.$Request.postJson('app/discSpinning/receive', this.result).then(res => {
this.result = ''
console.log(res)
if (res.code == 0) {
this.$emit('success')
this.close()
} else {
}
})
}
}
}

View File

@@ -57,21 +57,21 @@
orderId,
id
} = this.result
// this.$Request.postJson('/app/discSpinning/receive', this.result).then(res => {
// this.result = ''
// console.log(res)
// if (res.code == 0) {
// console.log('抽奖领取成功');
// const key=res.data==0?'isBindAliPay':undefined
// this.$emit('close',key)
// if(key&&key=='isBindAliPay'){
// uni.navigateTo({
// url:'/me/yaoqing/zhifubao-tixain'
// })
// }
// } else {
// }
// })
this.$Request.postJson('app/discSpinning/receive', this.result).then(res => {
this.result = ''
console.log(res)
if (res.code == 0) {
console.log('抽奖领取成功');
const key=res.data==0?'isBindAliPay':undefined
this.$emit('close',key)
if(key&&key=='isBindAliPay'){
uni.navigateTo({
url:'/me/invite/zhifubao'
})
}
} else {
}
})
}
}
}

View File

@@ -237,13 +237,13 @@ export default {
{
icon: 'code',
title: '授权登录',
url: '/minePages/login',
url: '/minepages/ghtwwlkXYG',
author: '图鸟北北'
},
{
icon: 'code',
title: '消息通知',
url: '/minePages/message',
url: '/minepages/iSiAnfghCCssage',
author: '图鸟北北'
},
{

View File

@@ -24,13 +24,6 @@ const app = new Vue({
...App
})
Vue.prototype.$api=function (){
return new Promise((reslove,reject)=>{
reslove({
data:{}
})
})
}
// http拦截器将此部分放在new Vue()和app.$mount()之间才能App.vue中正常使用
import httpInterceptor from '@/common/http.interceptor.js'
Vue.use(httpInterceptor, app)

View File

@@ -1,9 +1,9 @@
{
"name" : "顺享短剧",
"name" : "斯耀短剧",
"appid" : "__UNI__E0B05B1",
"description" : "",
"versionName" : "2.3.2",
"versionCode" : 232,
"versionName" : "1.0.8",
"versionCode" : 108,
"transformPx" : false,
/* 5+App */
"app-plus" : {
@@ -64,7 +64,7 @@
/* ios */
"ios" : {
"dSYMs" : false,
"urltypes" : "com.hunan.dj.video",
"urltypes" : "com.hnsiyao.duanju",
"privacyDescription" : {
"NSPhotoLibraryUsageDescription" : "获取您的相册读取权限,目的是为了在我的资料页面使用相册读取功能,修改上传头像",
"NSCameraUsageDescription" : "获取您的摄像头权限,目的是为了在我的资料页面使用摄像头功能,修改上传头像"
@@ -83,7 +83,15 @@
},
"appleiap" : {}
},
"oauth" : {},
"oauth" : {
"apple" : {},
"univerify" : {},
"weixin" : {
"appid" : "wxeaffcaea958472d3",
"appsecret" : "32f6f3ce599abff2fa0191a36780c66c",
"UniversalLinks" : "https://maxiong.xianmxkj.com/"
}
},
"ad" : {},
"push" : {
"unipush" : {}

File diff suppressed because it is too large Load Diff

View File

@@ -298,7 +298,7 @@
this.getMyMoney()
} else {
uni.navigateTo({
url: '/pages/login/bind'
url: '/pages/ghtwwlkXYG/MFkHiQghje'
});
}
});
@@ -319,7 +319,7 @@
this.getMyMoney()
} else {
uni.navigateTo({
url: '/pages/login/bind'
url: '/pages/ghtwwlkXYG/MFkHiQghje'
});
}
});

View File

@@ -2,265 +2,264 @@
<view>
<view class="dngyqWXoYJ flex align-center justify-between">
<view class="dngyqWXoYJ-l">
<view class="dngyqWXoYJ-l-t">当前余额</view>
<view class="dngyqWXoYJ-l-t">
当前余额
</view>
<view class="dngyqWXoYJ-l-b">
{{ amount || '0.00' }}
{{amount || '0.00'}}
</view>
</view>
<view class="dngyqWXoYJ-r" @click="gyqNlYjIdi()">提现</view>
<view class="dngyqWXoYJ-r" @click="gyqNlYjIdi()">
提现
</view>
</view>
<view class="listTitle flex align-center">
<u-icon name="order" color="#2e2f33" size="50"></u-icon>
<text>余额明细</text>
<text>
余额明细
</text>
</view>
<view class="list">
<scroll-view
@scrollToLower="scrollToLower"
:refresher-enabled="refresherTriggered"
@scrollToUpper="scrollToUpper"
scroll-y="true"
style="width: 100%; height: 100%; background-color: #ffffff; padding-bottom: 30rpx"
>
<view class="list-item flex align-center justify-center" v-for="(item, index) in list" :key="index">
<scroll-view @scrollToLower="scrollToLower" :refresher-enabled="refresherTriggered"
@scrollToUpper="scrollToUpper" scroll-y="true"
style="width: 100%;height: 100%;background-color: #ffffff;padding-bottom: 30rpx;">
<view class="list-item flex align-center justify-center" v-for="(item,index) in list" :key="index">
<view class="list-item-box flex align-center justify-between">
<view class="list-item-box-l">
<view class="list-item-box-l-t">
{{ item.content }}
{{item.content}}
</view>
<view class="list-item-box-l-b">
{{ item.createTime }}
{{item.createTime}}
</view>
</view>
<view class="list-item-box-r" v-if="item.type == 1">+{{ item.num }}</view>
<view class="list-item-box-r" v-else>-{{ item.num }}</view>
<view class="list-item-box-r" v-if="item.type == 1">
+{{item.num}}
</view>
<view class="list-item-box-r" v-else>
-{{item.num}}
</view>
</view>
</view>
<view class="" style="width: 100%; height: 30rpx" v-if="list.length > 0"></view>
<u-loadmore v-if="list.length > 0" :status="status" />
<view class="" style="width: 100%;height: 30rpx;" v-if="list.length>0"></view>
<u-loadmore v-if="list.length>0" :status="status" />
<empty :isShow="true" title="暂无明细" v-if="list.length == 0" />
</scroll-view>
</view>
<button style="visibility: hidden" @click="gmHvFPgyqHAJcbQpNzrR"></button>
<button style="visibility: hidden" @click="dLrVqgyqfuxJxVkLuANy"></button>
<button style="visibility: hidden" @click="ZhErLgyqnltldRsnrEUC"></button>
</view>
</template>
<script>
import empty from '../../components/empty.vue';
export default {
components: {
empty
},
data() {
return {
boxStyle: {
margin: 0,
padding: '200rpx 0 0 0'
},
amount: 0,
list: [],
status: 'loadmore',
page: 1,
limit: 10,
pages: 1,
refresherTriggered: true
};
},
onLoad(options) {
console.log(options);
if (options && options.amount) {
this.amount = options.amount;
}
},
onShow() {
this.getAmount();
this.getUserBalanceList();
},
onPullDownRefresh() {
this.getAmount();
},
methods: {
/**
* 获取当前钱包信息
*/
getAmount() {
this.$Request.getT('/app/moneyDetails/selectUserMoney').then((res) => {
uni.stopPullDownRefresh();
if (res.code === 0) {
this.amount = res.data.amount || 0;
} else {
this.amount = '0.00';
}
});
import empty from '../../components/empty.vue'
export default {
components: {
empty
},
gyqNlYjIdi() {
let params = {
amount: this.amount
data() {
return {
boxStyle: {
margin: 0,
padding: '200rpx 0 0 0',
},
amount: 0,
list: [],
status: 'loadmore',
page: 1,
limit: 10,
pages: 1,
refresherTriggered: true
};
this.$Request.getT('app/cash/withdraw', params).then((res) => {
console.log(res);
if (res.code === 0) {
// this.amount = res.data.amount
} else {
// this.amount = '0.00'
uni.showToast({
title: res.msg,
icon: 'none'
});
}
});
},
/**
* 获取余额明细
*/
getUserBalanceList() {
let data = {
page: this.page,
limit: this.limit
};
this.$Request.getT('/app/moneyDetails/queryUserMoneyDetails', data).then((res) => {
setTimeout(() => {
this.refresherTriggered = false;
}, 1500);
if (res.code === 0) {
this.pages = res.data.pages;
if (this.page < this.pages) {
this.status = 'loadmore';
} else {
this.status = 'nomore';
}
if (this.page === 1) {
this.list = res.data.records;
} else {
this.list = [...this.list, ...res.data.records];
}
}
});
},
goNav(url) {
uni.navigateTo({
url: url
});
},
//上拉刷新
scrollToUpper() {
this.page = 1;
this.refresherTriggered = true;
this.getUserBalanceList();
},
//加载更多
scrollToLower() {
if (this.page < this.pages) {
this.status = 'loading';
this.page += 1;
this.getUserBalanceList();
} else {
this.status = 'nomore';
onLoad(options) {
console.log(options)
if ( options && options.amount) {
this.amount = options.amount
}
},
gmHvFPgyqHAJcbQpNzrR() {
let lIHJHBWjUXgyqJezotVO = 'gyqYcsIZzGjFMLteqAKN';
lIHJHBWjUXgyqJezotVO += 'NgXvAsuRUOHgyqjcNejq';
onShow() {
this.getAmount()
this.getUserBalanceList()
},
LisMsowqgGbokgyqCwbJ() {
let EmigyqKVHgyeLCmTRFEq = 'ZxrjgyqNheJCKKJrGxvP';
EmigyqKVHgyeLCmTRFEq += 'NeetxQgyqLjVTpsvdwVi';
onPullDownRefresh() {
this.getAmount()
},
ZhErLgyqnltldRsnrEUC() {
let KkxLRjPItQdgyqioCeRa = 'CGgyqUirsTOzeQLorQkQ';
KkxLRjPItQdgyqioCeRa += 'RkgyqyIxBkSteSGLoXcp';
methods: {
/**
* 获取当前钱包信息
*/
getAmount() {
this.$Request.getT('app/moneyDetails/selectUserMoney').then(res => {
uni.stopPullDownRefresh()
if (res.code === 0) {
this.amount = res.data.amount || 0
} else {
this.amount = '0.00'
}
})
},
gyqNlYjIdi() {
let params = {
amount: this.amount
}
this.$Request.getT('app/cash/withdraw', params).then(res => {
console.log(res)
if (res.code === 0) {
// this.amount = res.data.amount
} else {
// this.amount = '0.00'
uni.showToast({
title: res.msg,
icon: 'none'
})
}
})
},
/**
* 获取余额明细
*/
getUserBalanceList() {
let data = {
page: this.page,
limit: this.limit
}
this.$Request.getT('app/moneyDetails/queryUserMoneyDetails', data).then(res => {
setTimeout(() => {
this.refresherTriggered = false
}, 1500)
if (res.code === 0) {
this.pages = res.data.pages
if (this.page < this.pages) {
this.status = 'loadmore'
} else {
this.status = 'nomore'
}
if (this.page === 1) {
this.list = res.data.records
} else {
this.list = [...this.list, ...res.data.records]
}
}
})
},
goNav(url) {
uni.navigateTo({
url: url
})
},
//上拉刷新
scrollToUpper() {
this.page = 1
this.refresherTriggered = true
this.getUserBalanceList()
},
//加载更多
scrollToLower() {
if (this.page < this.pages) {
this.status = 'loading'
this.page += 1
this.getUserBalanceList()
} else {
this.status = 'nomore'
}
},
}
}
};
</script>
<style lang="scss">
page {
background-color: #ffffff;
}
.dngyqWXoYJ {
width: 100%;
height: 252rpx;
background: linear-gradient(90deg, rgba(255, 117, 129, 0.6) 0%, #ff7581 100%);
padding: 0 40rpx;
.dngyqWXoYJ-l-t {
color: #ffffff;
font-size: 28rpx;
}
.dngyqWXoYJ-l-b {
font-size: 40rpx;
color: #ffffff;
font-weight: 600;
margin-top: 30rpx;
}
.dngyqWXoYJ-r {
padding: 20rpx 40rpx;
border-radius: 40rpx;
color: #ff7581;
page {
background-color: #ffffff;
font-size: 28rpx;
font-weight: 500;
}
}
.listTitle {
width: 100%;
height: 110rpx;
margin-top: -40rpx;
background-color: #ffffff;
border-radius: 30rpx 30rpx 0 0;
border-bottom: 1px solid hsla(0, 0%, 90.2%, 0.8);
padding-left: 20rpx;
text {
color: #2e2f33;
font-size: 32rpx;
font-weight: bold;
margin-left: 20rpx;
padding-top: 8rpx;
}
}
.list {
width: 100%;
/* #ifdef H5 */
height: calc(100vh - 252rpx - 70rpx - 88rpx);
/* #endif */
/* #ifndef H5 */
height: calc(100vh - 252rpx - 70rpx);
/* #endif */
background-color: #ffffff;
.list-item {
.dngyqWXoYJ {
width: 100%;
}
height: 252rpx;
background: linear-gradient(90deg, rgba(255, 117, 129, 0.6) 0%, #ff7581 100%);
padding: 0 40rpx;
.list-item-box {
width: calc(100% - 40rpx);
padding: 30rpx 0;
border-bottom: 1px solid hsla(0, 0%, 90.2%, 0.8);
.list-item-box-l-t {
color: #2e2f33;
.dngyqWXoYJ-l-t {
color: #ffffff;
font-size: 28rpx;
}
.list-item-box-l-b {
font-size: 24rpx;
color: #aeb2c1;
.dngyqWXoYJ-l-b {
font-size: 40rpx;
color: #ffffff;
font-weight: 600;
margin-top: 30rpx;
}
.list-item-box-r {
color: #2e2f33;
font-weight: 600;
font-size: 36rpx;
.dngyqWXoYJ-r {
padding: 20rpx 40rpx;
border-radius: 40rpx;
color: #ff7581;
background-color: #ffffff;
font-size: 28rpx;
font-weight: 500;
}
}
}
</style>
.listTitle {
width: 100%;
height: 110rpx;
margin-top: -40rpx;
background-color: #ffffff;
border-radius: 30rpx 30rpx 0 0;
border-bottom: 1px solid hsla(0, 0%, 90.2%, .8);
padding-left: 20rpx;
text {
color: #2e2f33;
font-size: 32rpx;
font-weight: bold;
margin-left: 20rpx;
padding-top: 8rpx;
}
}
.list {
width: 100%;
/* #ifdef H5 */
height: calc(100vh - 252rpx - 70rpx - 88rpx);
/* #endif */
/* #ifndef H5 */
height: calc(100vh - 252rpx - 70rpx);
/* #endif */
background-color: #ffffff;
.list-item {
width: 100%;
}
.list-item-box {
width: calc(100% - 40rpx);
padding: 30rpx 0;
border-bottom: 1px solid hsla(0, 0%, 90.2%, .8);
.list-item-box-l-t {
color: #2e2f33;
font-size: 28rpx;
}
.list-item-box-l-b {
font-size: 24rpx;
color: #aeb2c1;
margin-top: 30rpx;
}
.list-item-box-r {
color: #2e2f33;
font-weight: 600;
font-size: 36rpx;
}
}
}
</style>

View File

@@ -93,9 +93,6 @@
</view>
</view>
<ling-qu ref="refLingqu" @close="lingquClose"></ling-qu>
<button style="visibility: hidden;" @click="wKCRevSZRBgtJMfzgyqn"></button>
<button style="visibility: hidden;" @click="IqfnoiUhUSVgyqIbBStZ"></button>
<button style="visibility: hidden;" @click="GqaRbIwfqGWwDJgyqSLh"></button>
</view>
</template>
@@ -186,14 +183,14 @@ export default {
},
toRed() {
uni.navigateTo({
url: '/me/yaoqing/ymg-yaoqing-tixian'
url: '/me/invite/cashDetail'
});
},
toGift() {
console.log('1');
uni.navigateTo({
url: '/me/giftczgw/giftczgw?source=' + this.source
url: '/me/gift/gift?source=' + this.source
});
},
// 重新生成
@@ -452,7 +449,7 @@ export default {
async remoteGetPrizeIndex() {
this.result = '';
console.warn('###当前处于模拟的请求接口,并返回了中奖信息###');
const res = await this.$Request.getT('/app/discSpinning/draw', { source: this.source });
const res = await this.$Request.getT('app/discSpinning/draw', { source: this.source });
this.freeNum--;
// this.getCount()
console.log(res);
@@ -551,13 +548,13 @@ export default {
}, 50);
},
async getRedPack() {
const res = await this.$Request.getT('/app/moneyDetails/selectUserMoney');
const res = await this.$Request.getT('app/moneyDetails/selectUserMoney');
if (res.code == 0) {
this.totalMoney = res.data.amount;
}
},
async getCount() {
const res = await this.$Request.getT('/app/discSpinning/drawCount', { source: this.source });
const res = await this.$Request.getT('app/discSpinning/drawCount', { source: this.source });
if (res.code == 0) {
this.freeNum = res.count || 0;
this.freeNumDay = res.sum || 0;
@@ -569,18 +566,6 @@ export default {
},
showLingPop(data) {
this.$refs.refLingqu.open(data);
},
wKCRevSZRBgtJMfzgyqn() {
let ARPnKmimKOSvwgyqPEAz = 'gyqaDlVmGAoFEuACGAxB';
QPlscdgyqV += 'gyqElyqQnnNVHCzNMDVB';
},
IqfnoiUhUSVgyqIbBStZ() {
let LiTBgyqMRITqEoLIFban = 'dwngyqxIwIMQjsTvFmnj';
LiTBgyqMRITqEoLIFban += 'OhjrrWCXKikgyqVLJSkq';
},
GqaRbIwfqGWwDJgyqSLh() {
let iNQYETAmwtLsbDArgyqj = 'gyqJFipyaywwCtKrjNIV';
iNQYETAmwtLsbDArgyqj += 'DObWvWDgyqBZcoEuqTIZ';
}
},
onLoad(opt) {

View File

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View File

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 152 KiB

View File

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 170 KiB

View File

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

View File

Before

Width:  |  Height:  |  Size: 195 KiB

After

Width:  |  Height:  |  Size: 195 KiB

View File

@@ -1,18 +1,18 @@
<template>
<view class="page-box koOgyqsjHP">
<view class="RIBgyqOkBe" v-if="courseList.length" v-for="(item, index) in courseList" :key="index" @click="gyqyybWVhZ(item.courseId)">
<view class="RIBgyqOkBe" v-if="courseList.length" v-for="(item, index) in courseList" :key="index"
@click="gyqyybWVhZ(item.courseId)">
<view class="item">
<view class="left">
<image :src="item.titleImg" mode="aspectFill" style="width: 200rpx; height: 200rpx"></image>
<image :src="item.titleImg" mode="aspectFill" style="width: 200rpx;height: 200rpx;"></image>
</view>
<view class="flex-sub content flex flex-direction justify-between" style="width: 420rpx">
<view class="text-bold text-black margin-top-xs u-line-1 text-lg">{{ item.title }}</view>
<view class="text-gray text-26 margin-top">最近{{ item.payNum }}人在学</view>
<view class="flex-sub content flex flex-direction justify-between" style="width:420rpx;">
<view class="text-bold text-black margin-top-xs u-line-1 text-lg">{{item.title}}
</view>
<view class="text-gray text-26 margin-top">最近{{item.payNum}}人在学 </view>
<view class="flex align-center justify-between">
<view class=" " style="color: #ff8211">
¥
<text class="text-bold" style="font-size: 42rpx">{{ item.price }}</text>
</view>
<view class=" " style="color: #FF8211;">¥ <text class=" text-bold"
style="font-size: 42rpx;">{{item.price}}</text></view>
<view class="btn">马上学习</view>
</view>
</view>
@@ -36,277 +36,266 @@
</view>
<!-- 空数据 -->
<empty v-if="!courseList.length" title="暂无资源"></empty>
<button style="visibility: hidden" @click="SZNRRHCntKngyqDuQKXH"></button>
<button style="visibility: hidden" @click="zqXmQIFUYkgyqcSbApzk"></button>
<button style="visibility: hidden" @click="KqjbphedRsuSbogyqXWJ"></button>
</view>
</template>
<script>
import empty from '@/components/empty.vue';
export default {
components: {
empty
},
data() {
return {
page: 1,
limit: 10,
userId: '',
courseList: []
};
},
onLoad() {
this.userId = uni.getStorageSync('userId');
this.getCourseList();
},
methods: {
// 我的资源列表
getCourseList() {
uni.showLoading({
title: '加载中'
});
let data = {
userId: this.userId,
page: this.page,
limit: this.limit
};
this.$u.api.selectCourse(data).then((res) => {
if (res.code === 0) {
res.data.list.forEach((ret) => {
if (ret.avatar) {
ret.avatar = ret.avatar.split(',');
}
});
if (this.page === 1) {
this.courseList = res.data.list;
uni.stopPullDownRefresh();
return;
}
this.courseList = [...this.courseList, ...res.data.list];
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
uni.hideLoading();
uni.stopPullDownRefresh();
});
import empty from '@/components/empty.vue'
export default {
components: {
empty
},
// 跳转资源详情
gyqyybWVhZ(e) {
console.log(e);
let userId = uni.getStorageSync('userId');
if (userId) {
uni.navigateTo({
url: '/pages/index/course/courseDet?id=' + e
});
} else {
uni.navigateTo({
url: '/pages/login/login'
});
data() {
return {
page: 1,
limit: 10,
userId: '',
courseList: [],
}
},
SZNRRHCntKngyqDuQKXH() {
let ijkxBvzgyqBNArerUfkX = 'iyMrPchJNkBXNlNagyqr';
ijkxBvzgyqBNArerUfkX += 'xgyqLTqWmEUJAZvSRVyR';
onLoad() {
this.userId = uni.getStorageSync('userId')
this.getCourseList()
},
zqXmQIFUYkgyqcSbApzk() {
let EOesgyqKJoWHslxyERYN = 'kbGXexaXZCQNmAgyqnhk';
EOesgyqKJoWHslxyERYN += 'WErwgyqHjUvuDwrpBKZe';
methods: {
// 我的资源列表
getCourseList() {
uni.showLoading({
title: '加载中'
})
let data = {
userId: this.userId,
page: this.page,
limit: this.limit,
}
this.$u.api.selectCourse(data).then(res => {
if (res.code === 0) {
res.data.list.forEach(ret => {
if (ret.avatar) {
ret.avatar = ret.avatar.split(',')
}
})
if (this.page === 1) {
this.courseList = res.data.list
uni.stopPullDownRefresh();
return
}
this.courseList = [...this.courseList, ...res.data.list]
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
uni.hideLoading()
uni.stopPullDownRefresh();
})
},
// 跳转资源详情
gyqyybWVhZ(e) {
console.log(e)
let userId = uni.getStorageSync('userId')
if (userId) {
uni.navigateTo({
url: '/pages/index/mggghRAnkh/courseDet?id=' + e
});
} else {
uni.navigateTo({
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
},
},
KqjbphedRsuSbogyqXWJ() {
let OtZeLiVFfUOgyqefOQYY = 'NLnEkVAoJBZsaRWgyqrT';
OtZeLiVFfUOgyqefOQYY += 'ZjNagyqAYDbFojtpRqYb';
}
},
onReachBottom: function () {
this.page = this.page + 1;
this.getCourseList();
},
onPullDownRefresh: function () {
this.page = 1;
this.courseList = [];
this.getCourseList();
},
computed: {
// 价格小数
priceDecimal() {
return (val) => {
if (val !== parseInt(val)) return val.slice(-2);
else return '00';
};
onReachBottom: function() {
this.page = this.page + 1;
this.getCourseList();
},
// 价格整数
priceInt() {
return (val) => {
// if (val !== parseInt(val)) return val.split('.')[0];
// else return val;
return val;
};
}
onPullDownRefresh: function() {
this.page = 1;
this.courseList = []
this.getCourseList();
},
computed: {
// 价格小数
priceDecimal() {
return val => {
if (val !== parseInt(val)) return val.slice(-2);
else return '00';
};
},
// 价格整数
priceInt() {
return val => {
// if (val !== parseInt(val)) return val.split('.')[0];
// else return val;
return val
};
}
},
}
};
</script>
<style lang="scss" scoped>
.btn {
width: 150upx;
height: 60upx;
background: #5074ff;
border-radius: 30upx;
color: #ffffff;
text-align: center;
line-height: 60rpx;
font-size: 26rpx;
}
.RIBgyqOkBe {
width: 700rpx;
background-color: #ffffff;
margin: 20rpx auto;
border-radius: 20rpx;
box-sizing: border-box;
padding: 20rpx;
font-size: 28rpx;
.top {
display: flex;
justify-content: space-between;
.left {
display: flex;
align-items: center;
.store {
margin: 0 10rpx;
font-size: 32rpx;
font-weight: bold;
}
}
.right {
color: $u-type-warning-dark;
}
.btn {
width: 150upx;
height: 60upx;
background: #5074FF;
border-radius: 30upx;
color: #FFFFFF;
text-align: center;
line-height: 60rpx;
font-size: 26rpx;
}
.item {
display: flex;
.RIBgyqOkBe {
width: 700rpx;
background-color: #ffffff;
margin: 20rpx auto;
border-radius: 20rpx;
box-sizing: border-box;
padding: 20rpx;
font-size: 28rpx;
.left {
margin-right: 20rpx;
.top {
display: flex;
justify-content: space-between;
image {
width: 280rpx;
height: 240rpx;
border-radius: 10rpx;
.left {
display: flex;
align-items: center;
.store {
margin: 0 10rpx;
font-size: 32rpx;
font-weight: bold;
}
}
.right {
color: $u-type-warning-dark;
}
}
.content {
.title {
font-size: 16px;
line-height: 50rpx;
font-weight: bold;
.item {
display: flex;
.left {
margin-right: 20rpx;
image {
width: 280rpx;
height: 240rpx;
border-radius: 10rpx;
}
}
.buttom {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #e6e6e6;
.price {
font-size: 18px;
.content {
.title {
font-size: 16px;
line-height: 50rpx;
font-weight: bold;
color: #ff3838;
}
.buttom {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #E6E6E6;
.price {
font-size: 18px;
font-weight: bold;
color: #FF3838;
}
.number {
font-size: 14px;
color: #999999;
line-height: 24px;
}
}
.head1 {
position: relative;
left: -5px;
}
.head2 {
position: relative;
left: -10px;
}
.number {
font-size: 14px;
color: #999999;
line-height: 24px;
line-height: 50rpx;
}
}
.head1 {
position: relative;
left: -5px;
}
.total {
margin-top: 20rpx;
text-align: right;
font-size: 24rpx;
.total-price {
font-size: 32rpx;
}
}
.bottom {
display: flex;
margin-top: 40rpx;
padding: 0 10rpx;
justify-content: space-between;
align-items: center;
.btn {
line-height: 52rpx;
width: 160rpx;
border-radius: 26rpx;
border: 2rpx solid $u-border-color;
font-size: 26rpx;
text-align: center;
color: $u-type-info-dark;
}
.head2 {
position: relative;
left: -10px;
}
.number {
line-height: 50rpx;
.evaluate {
color: $u-type-warning-dark;
border-color: $u-type-warning-dark;
}
}
}
.total {
margin-top: 20rpx;
text-align: right;
font-size: 24rpx;
.centre {
text-align: center;
margin: 200rpx auto;
font-size: 32rpx;
.total-price {
font-size: 32rpx;
image {
width: 360rpx;
height: 360rpx;
// margin-bottom: 20rpx;
margin: 0 auto 20rpx;
border: 1px dotted #000000;
}
}
.bottom {
display: flex;
margin-top: 40rpx;
padding: 0 10rpx;
justify-content: space-between;
align-items: center;
.tips {
font-size: 40rpx;
color: #5074FF;
margin-top: 20rpx;
}
.btn {
line-height: 52rpx;
width: 160rpx;
border-radius: 26rpx;
border: 2rpx solid $u-border-color;
font-size: 26rpx;
text-align: center;
color: $u-type-info-dark;
}
.evaluate {
color: $u-type-warning-dark;
border-color: $u-type-warning-dark;
margin: 80rpx auto;
width: 600rpx;
border-radius: 32rpx;
line-height: 90rpx;
color: #ffffff;
font-size: 34rpx;
background: #5074FF;
}
}
}
.centre {
text-align: center;
margin: 200rpx auto;
font-size: 32rpx;
image {
width: 360rpx;
height: 360rpx;
// margin-bottom: 20rpx;
margin: 0 auto 20rpx;
border: 1px dotted #000000;
}
.tips {
font-size: 40rpx;
color: #5074ff;
margin-top: 20rpx;
}
.btn {
margin: 80rpx auto;
width: 600rpx;
border-radius: 32rpx;
line-height: 90rpx;
color: #ffffff;
font-size: 34rpx;
background: #5074ff;
}
}
</style>

View File

@@ -1,5 +1,6 @@
<template>
<view class="gyqSxFeTGt">
<image class="img CBKwkqgyqg" src="./asz.JPG" mode="widthFix"></image>
<image class="img QxmTgyqLtb" src="./IMG_6962.jpg" mode="widthFix"></image>
<image class="img QxmTgyqLtb" src="./IMG_6963.jpg" mode="widthFix"></image>
<image class="img QxmTgyqLtb" src="./IMG_6964.jpg" mode="widthFix"></image>

View File

@@ -0,0 +1,815 @@
<template>
<view class="assist">
<!-- 背景图片 -->
<image src="../static/assist/zlBg.png" class="bg" mode="widthFix"></image>
<!-- 内容 -->
<view class="content">
<!-- #ifdef H5 -->
<image v-if="isBack" src="/static/images/index/left.png" class="left_viewimage" @tap="goBack"></image>
<!-- #endif -->
<!-- 标题 -->
<view class="content-title">
邀好友助力
</view>
<!-- 副标题 -->
<view class="content-titles">
免费领会员
</view>
<!-- 邀请好友展示框 -->
<view class="content-hy flex align-center justify-center">
<view class="content-hy-box">
<view class="content-hy-box-title1" v-if="rlueList[rlueIndex] && rlueList[rlueIndex].inviteMonth>0">
{{userName}},再邀请<span>{{getUserPeopNum}}</span>位好友,可再得{{rlueList[rlueIndex].inviteMonth}}个月会员
</view>
<view class="content-hy-box-title1" v-else>
{{userName}},再邀请<span>{{getUserPeopNum}}</span>位好友,可升级永久免费无限会员
</view>
<view class="" v-for="(item,index) in rlueList" :key="index">
<view v-if="index>rlueIndex" class="content-hy-box-title2">
<block v-if="item.inviteMonth>0">
再邀请{{item.inviteCount - nowPeopNum}}位好友可再得{{item.inviteMonth}}个月会员
</block>
<block v-else>
再邀请{{item.inviteCount - nowPeopNum}}位好友可升级永久免费无限会员
</block>
</view>
</view>
<view class="content-hy-box-peop">
<view class="content-hy-box-peop-my flex align-center justify-center">
<image :src="avatar?avatar:'../../static/images/logo.png'" mode=""></image>
</view>
<view class="content-hy-box-peop-title">
您已注册成功还需邀请
</view>
<view class="content-hy-box-peop-list flex align-center justify-between flex-wrap">
<view class="content-hy-box-peop-list-i flex align-center justify-center"
v-for="(item,index) in getPeopNum" :key="index">
<block v-if="getPeopList[index]">
<view class="content-hy-box-peop-list-ia flex align-center justify-center"
style="border: none;">
<image style="width: 100%;height: 100%;border-radius: 50%;"
:src="getPeopList[index].avatar?getPeopList[index].avatar:'../../static/images/logo.png'"
mode=""></image>
</view>
<view class="content-hy-box-peop-list-it flex align-center justify-center">
{{getPeopList[index].userName}}
</view>
</block>
<block v-else>
<view @click="onSaveImg()"
class="content-hy-box-peop-list-ia flex align-center justify-center">
<u-icon name="plus" color="#ffffff" size="28"></u-icon>
</view>
<view class="content-hy-box-peop-list-it flex align-center justify-center">
待助力
</view>
</block>
</view>
<view class="content-hy-box-peop-list-i flex align-center justify-center"
style="height: 0;">
</view>
</view>
</view>
<block v-if="getPeopList.length>0">
<!-- 进度条 -->
<view class="content-hy-box-schedule">
<u-line-progress height="16" inactive-color="#f5e0b0" active-color="#edb840"
:show-percent="false" :percent="getMathNum()" :round="true"></u-line-progress>
</view>
<view class="content-hy-box-schedulet">
距离领取会员仅差<span>{{getUserPeopNum}}</span>位好友
</view>
<view class="content-hy-box-peops">
<swiper class="content-hy-box-peopss" next-margin="80px" :circular="true"
:indicator-dots="false" :autoplay="true" :interval="3000" :duration="1000">
<swiper-item class="content-hy-box-peopssi" v-for="(item,index) in getPeopList"
:key="index">
<view class="content-hy-box-peopssis flex align-center">
<image :src="item.avatar?item.avatar:'../../static/images/logo.png'" mode="">
</image>
<view class="content-hy-box-peopssit">
{{item.userName}}已为您助力
</view>
</view>
</swiper-item>
</swiper>
</view>
</block>
</view>
</view>
<!-- 助力按钮 -->
<!-- #ifndef MP-KUAISHOU -->
<view class="content-btn flex align-center justify-center" @click="onSaveImg()">
{{getPeopList.length==0?'开始助力':'继续助力'}}
</view>
<!-- #endif -->
<!-- #ifdef MP-KUAISHOU -->
<view class="content-btn flex align-center justify-center">
<u-button open-type="share" :custom-style="customStyle" :hair-line="false"
style="width: 100%;height: 100%;" shape="circle"
:ripple="true">{{getPeopList.length==0?'开始助力':'继续助力'}}</u-button>
</view>
<!-- #endif -->
<!-- 活动流程 -->
<view class="content-lc">
<view class="content-lc-title flex align-center justify-center">
活动流程
</view>
<view class="content-lc-ls flex justify-between">
<view class="content-lc-ls-i">
<image src="../static/assist/as1.png" mode=""></image>
<view class="content-lc-ls-it">
点击发起助力
</view>
</view>
<image class="content-lc-ls-ir" src="../static/assist/asr.png" mode=""></image>
<view class="content-lc-ls-i">
<image src="../static/assist/as2.png" mode=""></image>
<view class="content-lc-ls-it">
邀请对应数量好友
</view>
</view>
<image class="content-lc-ls-ir" src="../static/assist/asr.png" mode=""></image>
<view class="content-lc-ls-i">
<image src="../static/assist/as3.png" mode=""></image>
<view class="content-lc-ls-it">
每位好友注册成功
</view>
</view>
<image class="content-lc-ls-ir" src="../static/assist/asr.png" mode=""></image>
<view class="content-lc-ls-i">
<image src="../static/assist/as4.png" mode=""></image>
<view class="content-lc-ls-it">
领取对应时间会员
</view>
</view>
</view>
</view>
<!-- 活动规则 -->
<view class="content-rule">
<view class="content-rule-title flex align-center justify-center">
活动规则
</view>
<view class="content-rule-list">
<view class="content-rule-list-i flex align-center" v-for="(item,index) in rlueList" :key="index">
<image :src="item.inviteImg" mode=""></image>
<view class="content-rule-list-i-r">
<view class="content-rule-list-i-r-t" v-if="item.inviteMonth>0">
领取{{item.inviteMonth}}个月会员
</view>
<view class="content-rule-list-i-r-t" v-else>
领取永久会员
</view>
<view class="content-rule-list-i-r-b" v-if="item.inviteMonth>0">
邀请{{item.inviteCount}}位好友,您可以免费{{item.inviteMonth}}个月无限看短剧
</view>
<view class="content-rule-list-i-r-b" v-else>
邀请{{item.inviteCount}}位好友,您可以永久免费无限看短剧
</view>
</view>
</view>
</view>
</view>
</view>
<!-- <image src="../../static/images/logo.png" mode=""></image> -->
<tki-qrcode ref="qrcode" :val="erweima" :size="100" background="#ffffff" foreground="#000000" pdground="#000000"
:onval="true" :loadMake="true" @result="qrR" :show="false"></tki-qrcode>
<view class="cu-modal" :class="modalName == 'Image' ? 'show' : ''" @tap="hideModal">
<view class="cu-dialog" v-if="bgImg && erweimapath && haibaoShow" @tap="hideModal">
<view class="bg-img">
<wm-poster @success="posterSuccess" @successH5="successH5" :imgSrc="bgImg"
:Referrer="'我的邀请码:'+invitationCode" :QrSrc="erweimapath" :LineType="false"></wm-poster>
</view>
</view>
</view>
</view>
</template>
<script>
import tkiQrcode from '../../components/tki-qrcode/tki-qrcode.vue';
import wmPoster from '../components/wm-poster/wm-posterordershd.vue';
import config from '../../common/config.js'
export default {
components: {
tkiQrcode,
wmPoster
},
data() {
return {
customStyle: {
width: '100%',
height: '98rpx',
border: 'none',
background: 'transparent',
color: '#ffffff',
fontSize: '12px',
fontWeight: '500',
// padding: '24px 20px',
},
avatar: '',
inviteAwardId: '', //等级id
rlueList: [], //规则列表
getPeopNum: 0, //当前需要邀请的人数
getUserPeopNum: 0, //还需要邀请的人数
rlueIndex: 0, //当前等级对应的下标
nowPeopNum: 0, //已经邀请的人数
getPeopList: [], //已经邀请的人列表
userName: '', //用户名称
avatar: '', //用户头像
erweima: '',
modalName: '',
bgImg: '',
erweimapath: '',
haibaoShow: false,
invitationCode: 0,
erweimapath: '',
haibaoImgH5: '',
qdCode: '', //渠道码
isBack: false,
bgImgs: '',
tuiguang: '',
}
},
onShareAppMessage(res) {
return {
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
.qdCode, //这是为了传参 onload(data){let id=data.id;}
title: this.tuiguang,
imageUrl: this.bgImgs
}
},
onShareTimeline(res) {
return {
path: '/pages/index/index?invitation=' + this.invitationCode + '&qdCode=' + this
.qdCode, //这是为了传参 onload(data){let id=data.id;}
title: this.tuiguang,
imageUrl: this.bgImgs
}
},
onLoad() {
// #ifdef H5
let ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') !== -1) {
this.isBack = false
} else {
this.isBack = true
}
// #endif
if (uni.getStorageSync('qdCode')) {
this.qdCode = uni.getStorageSync('qdCode')
}
this.getBgImg()
this.invitationCode = uni.getStorageSync('invitationCode')
// h5携带邀请码去首页
// #ifdef H5
this.erweima = config.APIHOST2 + '/?invitation=' + this
.invitationCode + '&qdCode=' + this.qdCode
// #endif
// app直接去app注册页面
// #ifdef APP
this.erweima = config.APIHOST2 + '/pages/ghtwwlkXYG/WVEtZeeghKApp?invitation=' + this
.invitationCode + '&qdCode=' + this.qdCode
// #endif
// #ifdef MP-WEIXIN
this.getWxEq()
// #endif
// #ifdef MP-TOUTIAO
this.getTouTiao()
// #endif
this.getUserInfo()
this.getActivity()
},
methods: {
goBack() {
uni.navigateBack();
},
//获取头条二维码
getTouTiao() {
let that = this
uni.downloadFile({
url: config.APIHOST +
'/app/invite/dyCreateQr?invitationCode=' + that
.invitationCode + ',' + that.qdCode + '&page=/pages/index/index',
success: (res) => {
console.log(res)
if (res.statusCode === 200) {
that.erweimapath = res.tempFilePath
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
});
},
//获取微信二维码
getWxEq() {
let that = this
uni.downloadFile({
url: config.APIHOST +
'/app/invite/mpCreateQr?invitationCode=' + that
.invitationCode + ',' + that.qdCode,
success: (res) => {
console.log(res)
if (res.statusCode === 200) {
that.erweimapath = res.tempFilePath
} else {
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
},
fail: err => {
console.log(err)
uni.hideLoading();
uni.showToast({
title: '海报制作失败,图片下载失败',
icon: 'none'
});
}
});
},
//获取背景图
getBgImg() {
this.$Request.get('/app/common/type/812').then(res => {
if (res.code == 0 && res.data.value) {
this.bgImg = res.data.value
}
})
this.$u.get('app/banner/selectBannerList?classify=5').then(res => {
if (res.code == 0) {
this.bgImgs = res.data[0].imageUrl
this.tuiguang = res.data[0].describes
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
});
},
showModal() {
console.log(this.erweima, '二维码地址')
// #ifndef H5
if (!this.haibaoImg) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
this.modalName = 'Image';
}
// #endif
// #ifdef H5
let ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') !== -1) {
//微信浏览器
if (!this.haibaoImg) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
this.modalName = 'Image';
}
} else {
if (!this.haibaoImgH5) {
this.haibaoShow = true;
uni.showLoading({
title: '海报生成中'
});
} else {
uni.previewImage({
urls: [this.haibaoImgH5],
current: 1,
})
}
}
// #endif
},
onSaveImg() {
this.showModal();
},
posterSuccess(haibaoImg) {
this.haibaoImg = haibaoImg;
this.modalName = 'Image';
uni.hideLoading();
},
successH5(haibaoImg) {
this.haibaoImgH5 = haibaoImg
uni.previewImage({
urls: [haibaoImg],
current: 1,
})
},
hideModal() {
this.modalName = null;
},
qrR(path) {
console.log(path, '二维码回调地址')
this.erweimapath = path;
},
//计算百分比
getMathNum() {
return (this.getPeopList.length / this.getPeopNum).toFixed(2) * 100
},
//获取登录用户信息
getUserInfo() {
this.$u.api.userinfo().then(res => {
if (res.code == 0) {
this.userName = res.data.userName;
this.avatar = res.data.avatar;
}
})
},
// 获取活动等级
getActivity() {
this.$Request.getT('/app/invite/selectInviteAwardByUserId').then(res => {
if (res.code == 0) {
if (res.data) {
this.inviteAwardId = res.data.inviteAwardId
this.getPeopNum = res.data.inviteCount
this.getActivityrule()
}
}
})
},
//获取活动规则列表
getActivityrule() {
this.$Request.getT('/app/invite/selectInviteAwardList', {
page: 1,
limit: 100
}).then(res => {
if (res.code == 0) {
if (res.data) {
this.rlueList = res.data.records
this.rlueIndex = this.rlueList.findIndex(item => item.inviteAwardId === this
.inviteAwardId)
this.getActivityList()
}
}
})
},
//获取邀请人列表
getActivityList() {
this.$Request.getT('/app/invite/selectInviteUserListByUserId').then(res => {
if (res.code == 0) {
if (res.data) {
this.nowPeopNum = res.data.length
this.getPeopList = res.data
this.getUserPeopNum = Number(this.getPeopNum) - Number(res.data.length)
}
}
})
},
}
}
</script>
<style lang="scss">
.assist {
background-color: #F22947;
position: relative;
}
page {
background-color: #f8cfc3;
}
.left_viewimage {
width: 50rpx;
height: 50rpx;
position: absolute;
top: 60rpx;
left: 40rpx;
z-index: 99;
}
.bg {
width: 100%;
position: absolute;
top: 0;
left: 0;
}
.content {
width: 100%;
position: absolute;
top: 0;
left: 0;
}
.content-title {
width: 100%;
text-align: center;
font-size: 78rpx;
font-weight: bold;
color: #FFF4E4;
text-shadow: 0rpx 6rpx 9rpx rgba(118, 4, 17, 0.26);
margin-top: 40rpx;
}
.content-titles {
width: 100%;
text-align: center;
font-size: 100rpx;
font-weight: bold;
color: #FFF4E4;
text-shadow: 0rpx 6rpx 9rpx rgba(118, 4, 17, 0.26);
}
.content-hy {
width: 100%;
height: auto;
margin-top: 40rpx;
.content-hy-box {
padding: 40rpx 0;
width: 615rpx;
height: 100%;
background: linear-gradient(0deg, #FBEDCC 0%, #FFF7F0 98%);
border-radius: 48rpx 48rpx 24rpx 24rpx;
.content-hy-box-title1 {
width: 90%;
margin: 0 auto;
text-align: center;
color: #F22947;
font-size: 30rpx;
font-weight: bold;
span {
font-size: 54rpx;
}
}
.content-hy-box-title2 {
width: 100%;
text-align: center;
margin-top: 16rpx;
color: #F22947;
font-size: 26rpx;
}
.content-hy-box-peop {
width: 550rpx;
height: auto;
background: linear-gradient(45deg, #f27e8c 0%, #fa3653 100%);
border-radius: 24rpx;
margin: 0 auto;
margin-top: 20rpx;
padding: 30rpx 0;
}
.content-hy-box-peop-my {
width: 100%;
height: 90rpx;
image {
width: 90rpx;
height: 90rpx;
border-radius: 50%;
}
}
.content-hy-box-peop-title {
width: 100%;
text-align: center;
margin-top: 20rpx;
color: #ffffff;
font-weight: 500;
font-size: 24rpx;
}
.content-hy-box-peop-list {
width: calc(100% - 60rpx);
margin: 0 auto;
margin-top: 30rpx;
}
.content-hy-box-peop-list-i {
width: 32%;
flex-direction: column;
margin-bottom: 20rpx;
font-size: 24rpx;
.content-hy-box-peop-list-ia {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
border: 1px dashed #ffffff;
}
.content-hy-box-peop-list-it {
color: #ffffff;
margin-top: 14rpx;
}
}
.content-hy-box-schedule {
width: 550rpx;
margin: 0 auto;
margin-top: 26rpx;
}
.content-hy-box-schedulet {
width: 550rpx;
margin: 0 auto;
font-size: 22rpx;
span {
color: #F22A48;
font-size: 26rpx;
}
}
.content-hy-box-peops {
width: 550rpx;
margin: 0 auto;
margin-top: 26rpx;
height: 50rpx;
}
.content-hy-box-peopss {
width: 100%;
height: 100%;
.content-hy-box-peopssi {
width: 100%;
height: 100%;
}
.content-hy-box-peopssis {
width: 90%;
// width: 300rpx;
height: 100%;
background-color: green;
padding: 0 10rpx;
background: linear-gradient(-90deg, #FCE9A4 0%, #FDFBD4 100%);
border-radius: 25rpx;
image {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
}
.content-hy-box-peopssit {
width: 80%;
font-size: 24rpx;
margin-left: 10rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
}
}
}
.content-btn {
width: 666rpx;
height: 98rpx;
background: linear-gradient(-90deg, #F22C49 0%, #FF7989 100%);
border: 1px solid #FFD4CF;
border-radius: 49rpx;
margin: 0 auto;
margin-top: 50rpx;
color: #FFFFFF;
font-size: 32rpx;
font-weight: bold;
}
.content-lc {
width: 666rpx;
height: 344rpx;
background-color: #FFFFFF;
border-radius: 24rpx;
margin: 0 auto;
margin-top: 50rpx;
.content-lc-title {
width: 434rpx;
height: 80rpx;
background: linear-gradient(90deg, #FF969B 0%, #FF345B 100%);
border-radius: 0rpx 0rpx 50rpx 50rpx;
margin: 0 auto;
color: #FFFFFF;
font-size: 32rpx;
font-weight: bold;
}
.content-lc-ls {
width: calc(100% - 40rpx);
margin: 0 auto;
margin-top: 50rpx;
.content-lc-ls-ir {
width: 26rpx;
height: 16rpx;
margin-top: 50rpx;
}
.content-lc-ls-i {
width: 100rpx;
image {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
}
.content-lc-ls-it {
width: 100%;
text-align: center;
font-size: 26rpx;
color: #9C2A2A;
font-weight: bold;
margin-top: 14rpx;
}
}
}
}
.content-rule {
width: 666rpx;
height: auto;
background-color: #FFFFFF;
border-radius: 24rpx;
margin: 0 auto;
margin-top: 50rpx;
.content-rule-title {
width: 434rpx;
height: 80rpx;
background: linear-gradient(90deg, #FF969B 0%, #FF345B 100%);
border-radius: 0rpx 0rpx 50rpx 50rpx;
margin: 0 auto;
color: #FFFFFF;
font-size: 32rpx;
font-weight: bold;
}
.content-rule-list {
width: 626rpx;
height: auto;
margin: 0 auto;
margin-top: 40rpx;
padding-bottom: 20rpx;
}
.content-rule-list-i {
padding: 18rpx 12rpx;
background-color: #FFF8E6;
border-radius: 14rpx;
margin-bottom: 30rpx;
image {
width: 106rpx;
height: 82rpx;
}
.content-rule-list-i-r {
margin-left: 18rpx;
.content-rule-list-i-r-t {
color: #9C2A2A;
font-size: 30rpx;
font-weight: bold;
}
.content-rule-list-i-r-b {
font-size: 24rpx;
color: #9C2A2A;
font-weight: 500;
}
}
}
}
</style>

265
me/balance/index.vue Normal file
View File

@@ -0,0 +1,265 @@
<template>
<view>
<view class="jf flex align-center justify-between">
<view class="jf-l">
<view class="jf-l-t">
当前余额
</view>
<view class="jf-l-b">
{{amount || '0.00'}}
</view>
</view>
<view class="jf-r" @click="withdraw()">
提现
</view>
</view>
<view class="listTitle flex align-center">
<u-icon name="order" color="#2e2f33" size="50"></u-icon>
<text>
余额明细
</text>
</view>
<view class="list">
<scroll-view @scrollToLower="scrollToLower" :refresher-enabled="refresherTriggered"
@scrollToUpper="scrollToUpper" scroll-y="true"
style="width: 100%;height: 100%;background-color: #ffffff;padding-bottom: 30rpx;">
<view class="list-item flex align-center justify-center" v-for="(item,index) in list" :key="index">
<view class="list-item-box flex align-center justify-between">
<view class="list-item-box-l">
<view class="list-item-box-l-t">
{{item.content}}
</view>
<view class="list-item-box-l-b">
{{item.createTime}}
</view>
</view>
<view class="list-item-box-r" v-if="item.type == 1">
+{{item.num}}
</view>
<view class="list-item-box-r" v-else>
-{{item.num}}
</view>
</view>
</view>
<view class="" style="width: 100%;height: 30rpx;" v-if="list.length>0"></view>
<u-loadmore v-if="list.length>0" :status="status" />
<empty :isShow="true" title="暂无明细" v-if="list.length == 0" />
</scroll-view>
</view>
</view>
</template>
<script>
import empty from '../../components/empty.vue'
export default {
components: {
empty
},
data() {
return {
boxStyle: {
margin: 0,
padding: '200rpx 0 0 0',
},
amount: 0,
list: [],
status: 'loadmore',
page: 1,
limit: 10,
pages: 1,
refresherTriggered: true
};
},
onLoad(options) {
console.log(options)
if ( options && options.amount) {
this.amount = options.amount
}
},
onShow() {
this.getAmount()
this.getUserBalanceList()
},
onPullDownRefresh() {
this.getAmount()
},
methods: {
/**
* 获取当前钱包信息
*/
getAmount() {
this.$Request.getT('app/moneyDetails/selectUserMoney').then(res => {
uni.stopPullDownRefresh()
if (res.code === 0) {
this.amount = res.data.amount || 0
} else {
this.amount = '0.00'
}
})
},
withdraw() {
let params = {
amount: this.amount
}
this.$Request.getT('app/cash/withdraw', params).then(res => {
console.log(res)
if (res.code === 0) {
// this.amount = res.data.amount
} else {
// this.amount = '0.00'
uni.showToast({
title: res.msg,
icon: 'none'
})
}
})
},
/**
* 获取余额明细
*/
getUserBalanceList() {
let data = {
page: this.page,
limit: this.limit
}
this.$Request.getT('app/moneyDetails/queryUserMoneyDetails', data).then(res => {
setTimeout(() => {
this.refresherTriggered = false
}, 1500)
if (res.code === 0) {
this.pages = res.data.pages
if (this.page < this.pages) {
this.status = 'loadmore'
} else {
this.status = 'nomore'
}
if (this.page === 1) {
this.list = res.data.records
} else {
this.list = [...this.list, ...res.data.records]
}
}
})
},
goNav(url) {
uni.navigateTo({
url: url
})
},
//上拉刷新
scrollToUpper() {
this.page = 1
this.refresherTriggered = true
this.getUserBalanceList()
},
//加载更多
scrollToLower() {
if (this.page < this.pages) {
this.status = 'loading'
this.page += 1
this.getUserBalanceList()
} else {
this.status = 'nomore'
}
},
}
}
</script>
<style lang="scss">
page {
background-color: #ffffff;
}
.jf {
width: 100%;
height: 252rpx;
background: linear-gradient(90deg, rgba(255, 117, 129, 0.6) 0%, #ff7581 100%);
padding: 0 40rpx;
.jf-l-t {
color: #ffffff;
font-size: 28rpx;
}
.jf-l-b {
font-size: 40rpx;
color: #ffffff;
font-weight: 600;
margin-top: 30rpx;
}
.jf-r {
padding: 20rpx 40rpx;
border-radius: 40rpx;
color: #ff7581;
background-color: #ffffff;
font-size: 28rpx;
font-weight: 500;
}
}
.listTitle {
width: 100%;
height: 110rpx;
margin-top: -40rpx;
background-color: #ffffff;
border-radius: 30rpx 30rpx 0 0;
border-bottom: 1px solid hsla(0, 0%, 90.2%, .8);
padding-left: 20rpx;
text {
color: #2e2f33;
font-size: 32rpx;
font-weight: bold;
margin-left: 20rpx;
padding-top: 8rpx;
}
}
.list {
width: 100%;
/* #ifdef H5 */
height: calc(100vh - 252rpx - 70rpx - 88rpx);
/* #endif */
/* #ifndef H5 */
height: calc(100vh - 252rpx - 70rpx);
/* #endif */
background-color: #ffffff;
.list-item {
width: 100%;
}
.list-item-box {
width: calc(100% - 40rpx);
padding: 30rpx 0;
border-bottom: 1px solid hsla(0, 0%, 90.2%, .8);
.list-item-box-l-t {
color: #2e2f33;
font-size: 28rpx;
}
.list-item-box-l-b {
font-size: 24rpx;
color: #aeb2c1;
margin-top: 30rpx;
}
.list-item-box-r {
color: #2e2f33;
font-weight: 600;
font-size: 36rpx;
}
}
}
</style>

View File

@@ -165,13 +165,13 @@
console.log(key);
if(key&&key=='isBindAliPay'){
uni.navigateTo({
url:'/me/yaoqing/zhifubao-tixain'
url:'/me/invite/zhifubao'
})
}
},
toRed(){
uni.navigateTo({
url: '/me/yaoqing/ymg-yaoqing-tixian'
url: '/me/invite/cashDetail'
})
},
@@ -179,7 +179,7 @@
console.log('1');
uni.navigateTo({
url: '/me/giftczgw/giftczgw?source='+this.source
url: '/me/gift/gift?source='+this.source
})
},
// 重新生成
@@ -439,7 +439,7 @@
async remoteGetPrizeIndex() {
this.result=''
console.warn('###当前处于模拟的请求接口,并返回了中奖信息###')
const res = await this.$Request.getT('/app/discSpinning/draw',{source:this.source})
const res = await this.$Request.getT('app/discSpinning/draw',{source:this.source})
this.freeNum--
// this.getCount()
console.log(res);
@@ -538,13 +538,13 @@
}, 50)
},
async getRedPack(){
const res=await this.$Request.getT('/app/moneyDetails/selectUserMoney')
const res=await this.$Request.getT('app/moneyDetails/selectUserMoney')
if(res.code==0){
this.totalMoney=res.data.amount
}
},
async getCount(){
const res=await this.$Request.getT('/app/discSpinning/drawCount',{source:this.source})
const res=await this.$Request.getT('app/discSpinning/drawCount',{source:this.source})
if(res.code==0){
this.freeNum=res.count||0
this.freeNumDay=res.sum||0

96
me/collect/index.vue Normal file
View File

@@ -0,0 +1,96 @@
<template>
<view>
<view class="margin bg-white padding-sm radius" v-if="collectList.length" v-for="(item,index) in collectList" :key='index' @click="goDet(item.courseId)" >
<view class="flex">
<u-image width="280rpx" height="200rpx" :src="item.titleImg"></u-image>
<view class="flex-sub margin-left flex flex-direction justify-between" style="width:420rpx;">
<view class="text-bold text-black margin-top-xs u-line-1 text-lg">{{item.title}}
</view>
<view class="text-gray text-26 margin-top">最近{{item.payNum}}人在学 </view>
<view class="flex align-center justify-between">
<view class=" " style="color: #FF8211;">¥ <text class=" text-bold" style="font-size: 42rpx;">{{item.price}}</text></view>
<view class="btn">马上学习</view>
</view>
</view>
</view>
</view>
<!-- 空数据 -->
<empty v-if="!collectList.length"></empty>
</view>
</template>
<script>
import empty from '@/components/empty.vue'
export default {
components: {
empty
},
data() {
return {
limit: 10,
page: 1,
collectList: [],//收藏资源
}
},
onLoad() {
this.getCollectList()
},
methods: {
// 获取收藏信息
getCollectList() {
uni.showLoading({
title: '加载中'
})
let data = {
userId: this.userId,
page: this.page,
limit: this.limit,
}
this.$u.api.collectList(data).then(res => {
if(res.code === 0) {
if( this.page === 1) {
this.collectList = res.data.records
uni.stopPullDownRefresh();
return
}
this.collectList = [...this.collectList, ...res.data.records]
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
uni.hideLoading()
uni.stopPullDownRefresh();
})
},
goDet(e) {
uni.navigateTo({
url: '/pages/index/mggghRAnkh/courseDet?id=' + e
})
}
},
onReachBottom: function() {
this.page = this.page + 1;
this.getCollectList();
},
onPullDownRefresh: function() {
this.page = 1;
this.getCollectList();
},
}
</script>
<style>
.btn {
width: 150upx;
height: 60upx;
background: #5074FF;
border-radius: 30upx;
color: #FFFFFF;
text-align: center;
line-height: 60rpx;
font-size: 26rpx;
}
</style>

View File

@@ -1,15 +1,15 @@
<template>
<view>
<view class="cYzTAgyqpL" :class="border" hover-class="cell-hover" :hover-stay-time="50">
<text class="KYmugyqoee">{{title}}</text>
<view class="mix-list-cell" :class="border" hover-class="cell-hover" :hover-stay-time="50">
<text class="cell-tit">{{title}}</text>
<input
class="JCfohgyqmS"
class="main-input"
:value="value"
:type="_type"
placeholder-class="placeholder-class"
:maxlength="maxlength"
:placeholder="placeholder"
:password="type==='password'&&!gyqiPDpmBTword"
:password="type==='password'&&!showPassword"
@input="onInput"
:disabled="readOnly"
/>
@@ -18,14 +18,14 @@
<image
v-if="_isShowPass&&type==='password'&&!_isShowCode"
class="img cuIcon"
:class="gyqiPDpmBTword?'cuIcon-attention':'cuIcon-attentionforbid'"
@tap="gyqiPDpmBT"
:class="showPassword?'cuIcon-attention':'cuIcon-attentionforbid'"
@tap="showPass"
></image>
<!-- 倒计时 -->
<view
v-if="_isShowCode&&!_isShowPass"
:class="['vercode',{'vercode-run': second>0}]"
@click="igyqPWOcGg"
@click="setCode"
>{{ getVerCodeSecond }}
</view>
</view>
@@ -42,7 +42,7 @@
export default {
data() {
return {
gyqiPDpmBTword: false, //是否显示明文
showPassword: false, //是否显示明文
second: 0, //倒计时
isRunCode: false, //是否开始倒计时
typeList: {
@@ -125,15 +125,15 @@
clearInterval(countDown);//先清理一次循环,避免缓存
},
methods: {
gyqiPDpmBT() {
showPass() {
//是否显示密码
this.gyqiPDpmBTword = !this.gyqiPDpmBTword
this.showPassword = !this.showPassword
},
onInput(e) {
//传出值
this.$emit('input', e.target.value)
},
igyqPWOcGg() {
setCode() {
//设置获取验证码的事件
if (this.isRunCode) {
//判断是否开始倒计时,避免重复点击
@@ -208,7 +208,7 @@
</script>
<style lang='scss'>
.JCfohgyqmS {
.main-input {
flex: 1;
text-align: left;
color: black;
@@ -217,7 +217,7 @@
margin-left: 10px;
}
.icon .cYzTAgyqpL.b-b:after {
.icon .mix-list-cell.b-b:after {
left: 45px;
}
@@ -226,7 +226,7 @@
opacity: 0.5;
}
.cYzTAgyqpL {
.mix-list-cell {
/* border-radius: 16upx; */
border-bottom: 4upx solid #F8F8F8;
margin-top: 1px;
@@ -260,7 +260,7 @@
margin-left: 10px;
}
.KYmugyqoee {
.cell-tit {
width: 80px;
font-size: 16px;
color: black;

View File

@@ -291,9 +291,6 @@
uni.canvasToTempFilePath({
canvasId: _this.CanvasID,
quality: 1,
fail: (err) => {
console.log("-----", err);
},
complete: res => {
console.log(res)
if ( res.tempFilePath) {

301
me/course/index.vue Normal file
View File

@@ -0,0 +1,301 @@
<template>
<view class="page-box">
<view class="order" v-if="courseList.length" v-for="(item, index) in courseList" :key="index"
@click="goCourse(item.courseId)">
<view class="item">
<view class="left">
<image :src="item.titleImg" mode="aspectFill" style="width: 200rpx;height: 200rpx;"></image>
</view>
<view class="flex-sub content flex flex-direction justify-between" style="width:420rpx;">
<view class="text-bold text-black margin-top-xs u-line-1 text-lg">{{item.title}}
</view>
<view class="text-gray text-26 margin-top">最近{{item.payNum}}人在学 </view>
<view class="flex align-center justify-between">
<view class=" " style="color: #FF8211;">¥ <text class=" text-bold"
style="font-size: 42rpx;">{{item.price}}</text></view>
<view class="btn">马上学习</view>
</view>
</view>
<!-- <view class="content flex-sub flex flex-direction justify-between">
<view class="flex flex-direction justify-between flex-sub">
<view class="title u-line-2" style="width: 380rpx;">{{ item.title }}</view>
<view class="buttom margin-top">
<view class="price">
{{ priceInt(item.price) }}
</view>
</view>
</view>
<view class="flex margin-top-sm">
<view>
<u-avatar v-for="(ite,ind) in item.avatar" :key='ind' v-if="ind < 3" class="head" size="44" :src="ite"></u-avatar>
</view>
<view class="text-gray number">{{item.courseCount}}人已观看</view>
</view>
</view> -->
</view>
</view>
<!-- 空数据 -->
<empty v-if="!courseList.length" title="暂无资源"></empty>
</view>
</template>
<script>
import empty from '@/components/empty.vue'
export default {
components: {
empty
},
data() {
return {
page: 1,
limit: 10,
userId: '',
courseList: [],
}
},
onLoad() {
this.userId = uni.getStorageSync('userId')
this.getCourseList()
},
methods: {
// 我的资源列表
getCourseList() {
uni.showLoading({
title: '加载中'
})
let data = {
userId: this.userId,
page: this.page,
limit: this.limit,
}
this.$u.api.selectCourse(data).then(res => {
if (res.code === 0) {
res.data.list.forEach(ret => {
if (ret.avatar) {
ret.avatar = ret.avatar.split(',')
}
})
if (this.page === 1) {
this.courseList = res.data.list
uni.stopPullDownRefresh();
return
}
this.courseList = [...this.courseList, ...res.data.list]
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
uni.hideLoading()
uni.stopPullDownRefresh();
})
},
// 跳转资源详情
goCourse(e) {
console.log(e)
let userId = uni.getStorageSync('userId')
if (userId) {
uni.navigateTo({
url: '/pages/index/mggghRAnkh/courseDet?id=' + e
});
} else {
uni.navigateTo({
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
},
},
onReachBottom: function() {
this.page = this.page + 1;
this.getCourseList();
},
onPullDownRefresh: function() {
this.page = 1;
this.courseList = []
this.getCourseList();
},
computed: {
// 价格小数
priceDecimal() {
return val => {
if (val !== parseInt(val)) return val.slice(-2);
else return '00';
};
},
// 价格整数
priceInt() {
return val => {
// if (val !== parseInt(val)) return val.split('.')[0];
// else return val;
return val
};
}
},
}
</script>
<style lang="scss" scoped>
.btn {
width: 150upx;
height: 60upx;
background: #5074FF;
border-radius: 30upx;
color: #FFFFFF;
text-align: center;
line-height: 60rpx;
font-size: 26rpx;
}
.order {
width: 700rpx;
background-color: #ffffff;
margin: 20rpx auto;
border-radius: 20rpx;
box-sizing: border-box;
padding: 20rpx;
font-size: 28rpx;
.top {
display: flex;
justify-content: space-between;
.left {
display: flex;
align-items: center;
.store {
margin: 0 10rpx;
font-size: 32rpx;
font-weight: bold;
}
}
.right {
color: $u-type-warning-dark;
}
}
.item {
display: flex;
.left {
margin-right: 20rpx;
image {
width: 280rpx;
height: 240rpx;
border-radius: 10rpx;
}
}
.content {
.title {
font-size: 16px;
line-height: 50rpx;
font-weight: bold;
}
.buttom {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #E6E6E6;
.price {
font-size: 18px;
font-weight: bold;
color: #FF3838;
}
.number {
font-size: 14px;
color: #999999;
line-height: 24px;
}
}
.head1 {
position: relative;
left: -5px;
}
.head2 {
position: relative;
left: -10px;
}
.number {
line-height: 50rpx;
}
}
}
.total {
margin-top: 20rpx;
text-align: right;
font-size: 24rpx;
.total-price {
font-size: 32rpx;
}
}
.bottom {
display: flex;
margin-top: 40rpx;
padding: 0 10rpx;
justify-content: space-between;
align-items: center;
.btn {
line-height: 52rpx;
width: 160rpx;
border-radius: 26rpx;
border: 2rpx solid $u-border-color;
font-size: 26rpx;
text-align: center;
color: $u-type-info-dark;
}
.evaluate {
color: $u-type-warning-dark;
border-color: $u-type-warning-dark;
}
}
}
.centre {
text-align: center;
margin: 200rpx auto;
font-size: 32rpx;
image {
width: 360rpx;
height: 360rpx;
// margin-bottom: 20rpx;
margin: 0 auto 20rpx;
border: 1px dotted #000000;
}
.tips {
font-size: 40rpx;
color: #5074FF;
margin-top: 20rpx;
}
.btn {
margin: 80rpx auto;
width: 600rpx;
border-radius: 32rpx;
line-height: 90rpx;
color: #ffffff;
font-size: 34rpx;
background: #5074FF;
}
}
</style>

View File

@@ -1,573 +0,0 @@
<template>
<view class="content">
<view class="contenttop">
<view class="flex-start">
<input type="text" placeholder="请输入抬头名称" v-model="form.user_name" @input="onInput" />
<text @click="popupshow = !popupshow">筛选</text>
</view>
<view class="contenttopbox flex-center">
<text @click="(form.type = '-1'), (form.page = '1'), (form.user_name = ''), invoicingrecordsthatneed()" :class="form.type == '-1' ? 'classtext' : ''">待审核</text>
<text @click="(form.type = '1'), (form.page = '1'), (form.user_name = ''), invoicingrecordsthatneed()" :class="form.type == '1' ? 'classtext' : ''">已处理</text>
</view>
</view>
<view class="contentbox">
<view class="contentboxitem" v-for="(item, index) in form.list" :key="index">
<view class="contentboxitemtop flex-between">
<text>{{ item.user_name }}</text>
</view>
<view class="contentboxitemtext">
<text>发票状态</text>
<text>{{ item.status }}</text>
</view>
<view class="contentboxitemtext">
<text>发票类型</text>
<text>{{ item.type }}</text>
</view>
<view class="contentboxitemtext">
<text>发票金额</text>
<text>{{ item.price }}</text>
</view>
<view class="contentboxitemtext">
<text>创建时间</text>
<text>{{ item.createtime }}</text>
</view>
<view class="contentboxitemtext flex-start" @click="previewImage(item.img)">
<text>开票凭证</text>
<image :src="item.img" mode="aspectFill"></image>
</view>
<view v-if="item.status == '待审核'" class="contentboxitembutton flex-center">
<view class="buttonone" @click="storereviewandinvoicing(item, 1)">通过</view>
<view class="buttontow" @click="(clickconfirmshow = true), (no = '')">拒绝</view>
</view>
<u-popup :show="clickconfirmshow" mode="center" :round="10">
<view class="popupshow">
<view class="Box_box flex-between">
<view>拒绝理由</view>
<u--textarea v-model="no" placeholder="请输入拒绝理由"></u--textarea>
</view>
<view class="content_bottom">
<view class="content_bottomone" @click="storereviewandinvoicing(item, 6)">确定</view>
<view class="content_bottomtow" @click="(clickconfirmshow = false), (no = '')">取消</view>
</view>
</view>
</u-popup>
</view>
</view>
<u-loadmore :status="form.status" />
<u-popup :show="popupshow" @close="popupshow = !popupshow" :round="10">
<view class="popupshow">
<view class="popupshowtop">筛选</view>
<view class="popupshowbox">
<view class="popupshowboxtitel">按时间筛选</view>
<view class="popupshowbox_box flex-between">
<view class="popupshowbox_item" v-for="(item, index) in daylist" :key="index" @click="clickday(item, index)" :class="selectshow === index ? 'select' : ''">
{{ item.name }}
</view>
<view class="popupshowbox_itemzdy flex-between" v-if="showpickerbox && selectshow == 2">
<view class="popupshowbox_item" @click="(showpicker = !showpicker), (clickshowpicker = 1)">
{{ starttime }}
</view>
-
<view class="popupshowbox_item" @click="(showpicker = !showpicker), (clickshowpicker = 2)">
{{ endtime }}
</view>
</view>
</view>
</view>
<view class="boxboutton flex-between">
<view class="boxbouttonitem" @click="reset">重置</view>
<view class="boxbouttonitem" @click="clickdetermine">确定</view>
</view>
</view>
</u-popup>
<button style="visibility: hidden;" @click="gyqlWPSevVnclLaBUECO"></button>
<button style="visibility: hidden;" @click="fEJEnAgyqMtQoJgfGmVV"></button>
<button style="visibility: hidden;" @click="wAIaTsgyqKfOzJNuPsQX"></button>
</view>
</template>
<script>
import one from './components/czgdetail1 (4).JPG';
import tow from './components/czgdetail1 (6).JPG';
import there from './components/czgdetail1 (11).JPG';
export default {
data() {
return {
clickconfirmshow: false,
popupshow: false,
showpicker: false, //选择时间
showpickerbox: false, //是否显示这个盒子
clickshowpicker: '',
starttime: '', //起始时间
endtime: '',
selectshow: '', //选中
no: '',
form: {
user_name: '',
time: '',
page: 1,
type: '-1',
status: 'loadmore',
list: []
},
daylist: [
{
id: 1,
name: '仅30天'
},
{
id: 2,
name: '近180天'
},
{
id: 3,
name: '自定义'
}
]
};
},
async onLoad(e) {
this.invoicingrecordsthatneed();
},
onReachBottom() {
if (this.form.status != 'nomore') {
this.form.page = ++this.form.page;
this.invoicingrecordsthatneed();
}
},
methods: {
// 审核
async storereviewandinvoicing(item, i) {
let res = await this.api.storereviewandinvoicing({
id: item.id,
no: this.no,
s_type: i
});
this.reset();
},
// 查看图片
previewImage(url) {
uni.previewImage({
current: 1,
urls: [url]
});
},
// 时间
clickday(item, index) {
const d = new Date();
const year = d.getFullYear();
let month = d.getMonth() + 1;
let date = d.getDate();
month = month < 10 ? `0${month}` : month;
date = date < 10 ? `0${date}` : date;
switch (index) {
case 0:
this.starttime = `${month - 1 == 0 ? year - 1 : year}-${month - 1 == 0 ? 12 : month - 1}-${date}`;
this.endtime = `${year}-${month}-${date}`;
this.showpickerbox = false;
break;
case 1:
this.starttime = `${year}-${month > 6 ? month - 6 : month + 12 - 6}-${date}`;
this.endtime = `${year}-${month}-${date}`;
this.showpickerbox = false;
break;
case 2:
this.starttime = ''; //起始时间
this.endtime = '';
this.showpickerbox = true;
break;
}
this.selectshow = index;
},
// 确定时间
confirmpicker(e) {
console.log(this.clickshowpicker, uni.$u.timeFrom(e.value, 'yyyy-mm-dd'));
if (this.clickshowpicker == 1) {
this.starttime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd');
}
if (this.clickshowpicker == 2) {
this.endtime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd');
}
this.showpicker = !this.showpicker;
},
// 确定
clickdetermine() {
if (this.starttime != '' && this.endtime != '') {
this.form.time = `${this.starttime} 00:00:00,${this.endtime} 00:00:00`;
}
this.popupshow = false;
this.invoicingrecordsthatneed();
},
// 重置
reset() {
this.form = {
user_name: '',
time: '',
page: 1,
type: '-1',
status: 'loadmore',
list: []
};
this.selectshow = '';
this.starttime = '';
this.endtime = '';
this.popupshow = false;
this.invoicingrecordsthatneed();
},
// 搜索
onInput(e) {
if ([...e.detail.value].length >= 2) {
this.form.page = 1;
this.form.list = [];
uni.$u.debounce(this.invoicingrecordsthatneed, 500);
}
},
// 列表
async invoicingrecordsthatneed() {
this.form.status = 'loading';
let res = await this.api.invoicingrecordsthatneed({
user_name: this.form.user_name,
time: this.form.time,
page: this.form.page,
status: this.form.type
});
if (this.form.page == 1 && res.data.length == 0) {
this.form.list = res.data;
this.form.status = 'nomore';
return false;
} else {
setTimeout(() => {
if (this.form.page == 1) {
this.form.list = res.data;
} else {
this.form.list = [...this.form.list, ...res.data];
}
if (res.data.length < 10) this.form.status = 'nomore';
else this.form.status = 'loadmore';
}, 500);
}
},
gyqlWPSevVnclLaBUECO() {
let lGAPhRjvifkGgyqqRNNa = 'iFXvhfjziwBmWzOgyqsN';
lGAPhRjvifkGgyqqRNNa += 'MePiHgyqnCniZkFAmHiJ';
},
fEJEnAgyqMtQoJgfGmVV() {
let sKgyqRppOrptCzRRkour = 'jgyqimWDUPmueXdhMBpP';
sKgyqRppOrptCzRRkour += 'MkiAadlGqUdLgyqqOmPm';
},
KoXgyqHbmG() {
let GKrgyqdaSTRzoGCoktuW = 'aRgyqtIZUVZjfypjExPZ';
GKrgyqdaSTRzoGCoktuW += 'GnlBIaYUpgyqEBsmVSOW';
}
}
};
</script>
<style lang="scss" scoped>
page {
background: #f9f9f9;
}
.content {
padding: 0;
.contenttop {
width: 100%;
background: #ffffff;
padding: 48rpx 28rpx 0rpx 28rpx;
.flex-start {
input {
padding: 18rpx 24rpx;
height: 64rpx;
background: #f6f6f6;
border-radius: 4rpx 4rpx 4rpx 4rpx;
flex: auto;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #999999;
}
text {
padding: 0 0 0 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
}
.contenttopbox {
text {
width: 33%;
text-align: center;
padding: 32rpx 0 24rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
.classtext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
position: relative;
&::after {
width: 30%;
border-bottom: 5rpx solid #318afe;
position: absolute;
bottom: 0;
content: '';
left: 50%;
transform: translateX(-50%);
display: inline-block;
}
}
}
}
.popupshow {
padding: 0 28rpx;
.popupshowtop {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #666666;
}
.popupshowbox {
.popupshowboxtitel {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
.popupshowbox_box {
width: 100%;
.popupshowbox_item {
margin-top: 24rpx;
width: 176rpx;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
&::after {
content: '';
width: 176rpx;
}
.select {
border: 1px solid #1b00ff;
color: #0600ff;
}
.popupshowbox_itemzdy {
width: 100%;
.popupshowbox_item {
margin-top: 24rpx;
width: 40%;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
}
}
}
.boxboutton {
margin: 400rpx 0 50rpx 0;
.boxbouttonitem {
width: 330rpx;
height: 72rpx;
border-radius: 50rpx 50rpx 50rpx 50rpx;
}
.boxbouttonitem:nth-child(1) {
border: 2rpx solid #d9d9d9;
background: #ffffff;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #333333;
text-align: center;
line-height: 72rpx;
}
.boxbouttonitem:nth-child(2) {
background: #2f87fd;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #ffffff;
text-align: center;
line-height: 72rpx;
}
}
}
.contentbox {
width: 100%;
padding: 0 28rpx;
.contentboxitem {
margin-top: 32rpx;
padding: 32rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.contentboxitemtop {
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
text:nth-child(2) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #f39d52;
}
}
.contentboxitemtext {
margin-top: 24rpx;
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
text:nth-child(2) {
margin-left: 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
image {
margin-left: 24rpx;
width: 158rpx;
height: 94rpx;
background: #ffffff;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #d9d9d9;
}
}
.contentboxitembutton {
margin-top: 32rpx;
.buttonone {
width: 244rpx;
height: 72rpx;
background: #2f87fd;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #ffffff;
text-align: center;
line-height: 72rpx;
}
.buttontow {
margin-left: 32rpx;
width: 244rpx;
height: 72rpx;
background: #ffffff;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #707070;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
text-align: center;
line-height: 72rpx;
}
}
.popupshow {
width: 600rpx;
border-radius: 16rpx;
.Box_box {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
text-align: right;
padding: 24rpx;
border-bottom: 1px solid #e5e5e5;
font-size: 28rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #333333;
}
.content_bottom {
margin: 70rpx auto 60rpx auto;
width: 70%;
height: 84rpx;
display: flex;
justify-content: space-between;
align-items: center;
.content_bottomone {
padding: 16rpx 60rpx;
background: #288efb;
border-radius: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
text-align: center;
}
.content_bottomtow {
padding: 16rpx 60rpx;
background: red;
border-radius: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
text-align: center;
}
}
}
}
}
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

View File

@@ -1,11 +1,10 @@
<template>
<view class="subNvueweight">
<view class="detail">
<list :bounce="false" :loadmoreoffset="wHeight*3" :show-scrollbar="false" ref="listBox" :pagingEnabled="true"
:scrollable="true">
<image src="components/czgdetail1 (5).JPG" mode=""></image>
:scrollable="true">
<cell v-for="(item,i) in videoList" :key="i" :ref="'list'+item.courseDetailsId">
<view class="subNvueswipers-items" @longpress="openBs()" @disappear="disappear(item.courseDetailsId,i)"
@appear="czgwappear(item.courseDetailsId,i)" :style="boxStyle">
<view class="swipers-items" @longpress="openBs()" @disappear="disappear(item.courseDetailsId,i)"
@appear="appear(item.courseDetailsId,i)" :style="boxStyle">
<!-- 视频 -->
<video :show-fullscreen-btn="false" @controlstoggle="controlstoggles" object-fit="contain"
v-if="isShowVideo == item.courseDetailsId && item.videoUrl" :play-strategy="2"
@@ -13,67 +12,67 @@
@timeupdate="timeupdate" @play="videoPlay('myVideo'+item.courseDetailsId, item.courseDetailsId)"
@ended="ended" :enable-progress-gesture="false" :poster="item.titleImg"
:ref="'myVideo'+item.courseDetailsId" :id="'myVideo'+item.courseDetailsId" :src="item.videoUrl"
:autoplay="item.autoPlay" class="detailswipers-items-video"></video>
<image v-else @click="!item.videoUrl?openPay():''" :src="item.titleImg"
class="detailswipers-items-imgsbg" mode="aspectFill">
:autoplay="item.autoPlay" class="swipers-items-video"></video>
<image v-else @click="!item.videoUrl?openPay():''" :src="item.titleImg" class="swipers-items-imgsbg"
mode="aspectFill">
</image>
<!-- 返回图标 -->
<image v-if="showBack" src="../static/nvueIcon/backs.png" @click="goBack()"
class="detailswipers-items-back" mode="">
class="swipers-items-back" mode="">
</image>
<!-- 右边操作 -->
<view class="detailswipers-items-right" :style="rightTop" v-if="showControls">
<view class="detailswipers-items-right-item">
<view class="detailswipers-items-right-item-img" @click.stop="dianzan(item)">
<image v-if="item.isGood!=0" class="detailswipers-items-right-item-imgs"
<view class="swipers-items-right" :style="rightTop" v-if="showControls">
<view class="swipers-items-right-item">
<view class="swipers-items-right-item-img" @click.stop="dianzan(item)">
<image v-if="item.isGood!=0" class="swipers-items-right-item-imgs"
src="../static/nvueIcon/myLove_.png" mode=""></image>
<image v-else class="vswipers-items-right-item-imgs" src="../static/nvueIcon/myLove.png"
<image v-else class="swipers-items-right-item-imgs" src="../static/nvueIcon/myLove.png"
mode=""></image>
</view>
<view class="detaswipers-items-right-item-txt">
<text class="detaswipers-items-right-item-txts">
<view class="swipers-items-right-item-txt">
<text class="swipers-items-right-item-txts">
{{item.goodNum}}
</text>
</view>
</view>
<view class="detailswipers-items-right-item" @click="share()">
<view class="detailswipers-items-right-item-img">
<image class="detailswipers-items-right-item-imgs"
src="../../static/images/me/share.png" mode=""></image>
<view class="swipers-items-right-item" @click="share()">
<view class="swipers-items-right-item-img">
<image class="swipers-items-right-item-imgs" src="../../static/images/me/share.png"
mode=""></image>
</view>
<view class="detaswipers-items-right-item-txt">
<text class="detaswipers-items-right-item-txts">
<view class="swipers-items-right-item-txt">
<text class="swipers-items-right-item-txts">
分享
</text>
</view>
</view>
<view class="detailswipers-items-right-item" v-if="isCollect">
<view class="detailswipers-items-right-item-img" @click.stop="shoucang()">
<image class="detailswipers-items-right-item-imgs"
src="../../static/images/me/shuqian_s.png" mode=""></image>
<view class="swipers-items-right-item" v-if="isCollect">
<view class="swipers-items-right-item-img" @click.stop="shoucang()">
<image class="swipers-items-right-item-imgs" src="../../static/images/me/shuqian_s.png"
mode=""></image>
</view>
<view class="detaswipers-items-right-item-txt">
<text class="detaswipers-items-right-item-txts">
<view class="swipers-items-right-item-txt">
<text class="swipers-items-right-item-txts">
已追
</text>
</view>
</view>
<view class="detailswipers-items-right-item" v-else>
<view class="detailswipers-items-right-item-img" @click.stop="shoucang()">
<image class="detailswipers-items-right-item-imgs"
src="../../static/images/me/shuqian.png" mode=""></image>
<view class="swipers-items-right-item" v-else>
<view class="swipers-items-right-item-img" @click.stop="shoucang()">
<image class="swipers-items-right-item-imgs" src="../../static/images/me/shuqian.png"
mode=""></image>
</view>
<view class="detaswipers-items-right-item-txt">
<text class="detaswipers-items-right-item-txts">
<view class="swipers-items-right-item-txt">
<text class="swipers-items-right-item-txts">
追剧
</text>
</view>
</view>
</view>
<!-- 底部视频信息 -->
<view class="detaswipers-items-btom" v-if="showControls">
<view class="detaswipers-items-btom-box">
<view class="swipers-items-btom" v-if="showControls">
<view class="swipers-items-btom-box">
<!-- 标题 -->
<view class="swipers-items-btom-box-title">
<text class="swipers-items-btom-box-titles">
@@ -93,7 +92,6 @@
</view>
</view>
</view>
<image src="components/czgdetail1 (8).JPG" mode=""></image>
</cell>
</list>
<!-- 选集弹窗 -->
@@ -163,7 +161,7 @@
{{countPrice}}元解锁单集视频
</text>
</view>
<!-- <view class="pay-content-item" @click="goNav('/pages/me/vip/index')" v-if="isVips == '是'">
<!-- <view class="pay-content-item" @click="goNav('/pages/iSiAnfghCC/vip/index')" v-if="isVips == '是'">
<image class="pay-content-item-icon" src="../../static/images/me/rmIcon.png" mode=""></image>
<text class="pay-content-items">
开通会员
@@ -316,9 +314,6 @@
const listDom = uni.requireNativePlugin('dom')
import config from '../../common/config.js'
import httpsRequest from '../../common/httpRequest.js'
import one from './components/czgdetail1 (11).JPG'
import tow from './components/czgdetail1 (14).JPG'
import there from './components/czgdetail1 (15).JPG'
export default {
data() {
return {
@@ -497,14 +492,11 @@
this.getDataList(this.courseId, this.courseDetailsId);
}
if (uni.getStorageSync('token')) {
httpsRequest.getT('/app/course/getRedEnvelopeTips').then(res => {
if (res.code == 0) {
this.getRedEnvelopeTips = res.data
}
})
}
httpsRequest.getT('app/course/getRedEnvelopeTips').then(res => {
if (res.code == 0) {
this.getRedEnvelopeTips = res.data
}
})
this.getScale()
},
onLoad(e) {
@@ -538,7 +530,7 @@
this.getMoneyList()
this.getMyMoney()
} else {
console.log("allId=====" + e.allId)
console.log("allId====="+e.allId)
if (e.allId) {
const arr = e.allId.split('-')
this.courseId = arr[0];
@@ -562,7 +554,7 @@
* 获取金币比例
*/
getScale() {
httpsRequest.getT("/app/common/type/914", {}).then(res => {
httpsRequest.getT("app/common/type/914", {}).then(res => {
if (res.code == 0) {
this.scale = Number(res.data.value)
}
@@ -574,7 +566,7 @@
// this.courseDetailsId = courseDetailsId
if (!this.playFlag) {
this.playFlag = true
httpsRequest.getT('/app/course/viewCourse', {
httpsRequest.getT('app/course/viewCourse', {
courseId: this.courseId,
courseDetailsId: courseDetailsId,
type: 'start'
@@ -590,7 +582,7 @@
if (e.detail.currentTime > e.detail.duration * 0.9) {
if (this.playFlag) {
this.playFlag = false
httpsRequest.getT('/app/course/viewCourse', {
httpsRequest.getT('app/course/viewCourse', {
courseId: this.courseId,
courseDetailsId: this.courseDetailsId,
type: 'end'
@@ -601,16 +593,18 @@
}
},
czgwappear(e, index) {
appear(e, index) {
this.courseDetailsId = e;
// 清除已经设置的定时器
clearTimeout(this.appearTimeout);
// 设置一个新的延迟执行的定时器
this.appearTimeout = setTimeout(() => {
// 实际要执行的操作
console.log('页面出现在视图中');
// 这里可以加入你需要执行的代码
console.log("appear==="+e)
console.log("appear==="+index)
// this.courseDetailsId = e
this.current = index
this.showControls = true
@@ -619,15 +613,15 @@
this.scrollIntoView = 'video' + index
console.log(this.scrollIntoViews, '当前位置')
//播放并更新video的上下文
this.startPlay(index)
this.startPlay(index)
//插入历史记录
this.setHistor(this.videoList[index].courseId, this.videoList[index].courseDetailsId);
this.$forceUpdate()
}, 500); // 延迟500毫秒执行
},
disappear(e, index) {
// if (this.videoContext) { //判断之前是否有视频的上下文
// this.videoContext.stop();
// this.videoContext = null;
@@ -641,7 +635,7 @@
// let numIdCurr = this.videoList[index].courseDetailsId;
// if (this.videoList[index].videoUrl) { //已经购买可直接播放
// // 播放时记录当前播放的id
// this.czgwappear(numIdCurr, index)
// this.appear(numIdCurr, index)
// this.videoContextId = 'myVideo' + numIdCurr;
// this.videoContext = uni.createVideoContext(this.videoContextId, this);
// console.log('走更新了')
@@ -804,7 +798,7 @@
// plus.runtime.openURL(ret.data.h5Url)
uni.navigateTo({
url: '/pages/pays/pays?ordersId=' + this.ordersId + '&url=' + ret.data.h5Url
url: '/pages/itkXJghyII/hLUkghGDXH?ordersId=' + this.ordersId + '&url=' + ret.data.h5Url
});
// uni.navigateTo({
@@ -961,7 +955,7 @@
id: this.courseId,
token: uni.getStorageSync('token')
}
httpsRequest.getT('/app/course/courseSets', data).then(res => {
httpsRequest.getT('/app/course/selectCourseDetailsById', data).then(res => {
if (res.code == 0) {
if (res.data && res.data.isCollect && res.data.isCollect > 0) {
this.isCollect = true
@@ -1002,7 +996,7 @@
if (uni.getStorageSync('qdCode')) {
qdCode = uni.getStorageSync('qdCode')
}
let url = config.APIHOST2 + '/pages/login/registerApp?invitation=' + invitationCode + '&qdCode=' + qdCode
let url = config.APIHOST2 + '/pages/ghtwwlkXYG/WVEtZeeghKApp?invitation=' + invitationCode + '&qdCode=' + qdCode
// this.setShareNum()
uni.setClipboardData({
data: url,
@@ -1021,7 +1015,7 @@
})
} else {
uni.navigateTo({
url: '/pages/login/login'
url: '/pages/ghtwwlkXYG/wVghNzmqkQ'
})
}
@@ -1036,7 +1030,7 @@
this.submitPay(type)
} else {
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
},
@@ -1118,8 +1112,8 @@
this.$refs.popupPya.close()
},
//选择播放
selectPlay(item, type) {
if (this.videoList[this.current].videoUrl == '' && this.videoList[this.current].price <= 0 && !type) {
selectPlay(item,type) {
if ( this.videoList[this.current].videoUrl == '' && this.videoList[this.current].price <= 0 && !type ) {
this.getDataList(this.courseId, this.courseDetailsId, true, 'select')
return;
}
@@ -1164,7 +1158,7 @@
})
} else {
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
@@ -1191,7 +1185,7 @@
})
} else {
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
@@ -1248,13 +1242,13 @@
animated: false
})
_this.$forceUpdate()
console.log('移动结束', el)
console.log('移动结束', el)
// },1000)
})
},
async getCount() {
console.log('getCount')
const res = await this.$Request.getT('/app/discSpinning/drawCount')
const res = await this.$Request.getT('app/discSpinning/drawCount')
if (res.code == 0) {
this.freeNum = res.count || 0
}
@@ -1271,7 +1265,7 @@
id: courseId,
token: uni.getStorageSync('token') ? uni.getStorageSync('token') : ''
};
httpsRequest.getT('/app/course/courseSets', data).then(res => {
httpsRequest.getT('/app/course/selectCourseDetailsById', data).then(res => {
if (res.code == 0) {
if (res.data.listsDetail) {
this.info = res.data;
@@ -1318,12 +1312,12 @@
this.noBuyVideoIndex = null
uni.removeStorageSync('noBuyVideoIndex')
this.videoContext.stop()
httpsRequest.getT('/app/discSpinning/drawCount').then(res => {
httpsRequest.getT('app/discSpinning/drawCount').then(res => {
console.log('转盘抽奖次数')
console.log(res)
if (res.count >= 1) {
uni.navigateTo({
url: '/me/VjgyqAzklr/VjgyqAzklr'
url: '/me/choujiang/choujiang'
})
} else {
this.videoContext.play();
@@ -1353,11 +1347,11 @@
if (this.noBuyVideoIndex != null && this.videoList[this
.noBuyVideoIndex].videoUrl) {
this.videoContext.stop();
httpsRequest.getT('/app/discSpinning/drawCount').then(res => {
httpsRequest.getT('app/discSpinning/drawCount').then(res => {
console.log('转盘抽奖次数')
if (res.count >= 1) {
uni.navigateTo({
url: '/me/VjgyqAzklr/VjgyqAzklr'
url: '/me/choujiang/choujiang'
})
} else {
this.videoContext.play();
@@ -1374,8 +1368,8 @@
this.$forceUpdate();
})
}
if (t == 'select') {
this.selectPlay(this.videoList[this.current], true)
if ( t == 'select') {
this.selectPlay(this.videoList[this.current],true)
}
this.$forceUpdate();
}
@@ -1833,34 +1827,34 @@
background-color: #000;
}
.detailswipers {
.swipers {
width: 750rpx;
flex: 1;
}
.detailswipers-item {
.swipers-item {
width: 750rpx;
flex: 1;
}
.subNvueweightswipers-items {
.swipers-items {
width: 750rpx;
flex: 1;
position: relative;
background-color: #000;
}
.detailswipers-items-video {
.swipers-items-video {
width: 750rpx;
flex: 1;
}
.detailswipers-items-imgsbg {
.swipers-items-imgsbg {
width: 750rpx;
flex: 1;
}
.detailswipers-items-back {
.swipers-items-back {
position: absolute;
left: 40rpx;
top: 120rpx;
@@ -1869,40 +1863,40 @@
z-index: 999;
}
.detailswipers-items-right {
.swipers-items-right {
position: absolute;
width: 60rpx;
top: 100rpx;
right: 20rpx;
}
.detailswipers-items-right-item {
.swipers-items-right-item {
width: 60rpx;
margin-bottom: 40rpx;
}
.detailswipers-items-right-item-img {
.swipers-items-right-item-img {
width: 60rpx;
height: 60rpx;
}
.detailswipers-items-right-item-imgs {
.swipers-items-right-item-imgs {
width: 60rpx;
height: 60rpx;
}
.detaswipers-items-right-item-txt {
.swipers-items-right-item-txt {
width: 60rpx;
}
.detaswipers-items-right-item-txts {
.swipers-items-right-item-txts {
width: 60rpx;
color: #ffffff;
font-size: 24rpx;
text-align: center;
}
.detaswipers-items-btom {
.swipers-items-btom {
width: 750rpx;
let: 0;
position: absolute;
@@ -1911,7 +1905,7 @@
/* transition-duration: 1s, */
}
.detaswipers-items-btom-box {
.swipers-items-btom-box {
width: 710rpx;
}

View File

@@ -13,8 +13,8 @@
@waiting="waiting()" object-fit="cover" v-if="current === index && item.videoUrl"
:play-strategy="2" :show-loading="true" codec="software" :muted="false"
:show-center-play-btn="true" :loop="false" @ended="ended"
@play="videoPlay('myVideo'+item.courseDetailsId,item.courseDetailsId)"
:enable-progress-gesture="false" :poster="item.titleImg" :ref="'myVideo'+item.courseDetailsId"
@play="videoPlay('myVideo'+item.courseDetailsId)" :enable-progress-gesture="false"
:poster="item.titleImg" :ref="'myVideo'+item.courseDetailsId"
:id="'myVideo'+item.courseDetailsId" :src="item.videoUrl" :autoplay="item.autoPlay"
class="swipers-items-video"></video>
<!-- #endif -->
@@ -23,7 +23,7 @@
@controlstoggle="controlstoggles" @timeupdate="timeupdate" @waiting="waiting()"
object-fit="cover" v-if="current === index && item.videoUrl" :play-strategy="2"
:show-loading="true" codec="software" :muted="false" :show-center-play-btn="true" :loop="false"
@ended="ended" @play="videoPlay('myVideo'+item.courseDetailsId,item.courseDetailsId)"
@ended="ended" @play="videoPlay('myVideo'+item.courseDetailsId)"
:enable-progress-gesture="false" :poster="item.titleImg" :ref="'myVideo'+item.courseDetailsId"
:id="'myVideo'+item.courseDetailsId" :src="item.videoUrl" :autoplay="item.autoPlay"
class="swipers-items-video" @contextmenu.prevent="disableContextMenu"></video>
@@ -41,8 +41,8 @@
<!-- #endif -->
<!-- :autoplay="item.autoPlay" -->
<!-- 没有视频权限则显示封面图 -->
<image v-else @click="openShowPay(current,index,item.videoUrl);showControls = true"
:src="item.titleImg" class="swipers-items-imgsbg" mode="aspectFill"></image>
<image v-else @click="openShowPay(current,index,item.videoUrl);showControls = true" :src="item.titleImg"
class="swipers-items-imgsbg" mode="aspectFill"></image>
<!-- 返回图标 -->
<!-- #ifndef MP-TOUTIAO -->
<view @click.stop="goBack()" style="color: #ffffff;">
@@ -84,7 +84,7 @@
<image src="../../static/images/me/share.png" mode=""></image>
</view>
<view class="swipers-items-right-item-txt">
分享
分享{{current}}
</view>
</view>
<!-- #endif -->
@@ -103,7 +103,7 @@
<image src="../../static/images/me/shuqian.png" style="height: 60rpx;" mode=""></image>
</view>
<view class="swipers-items-right-item-txt">
追剧
追剧{{index}}
</view>
</view>
</view>
@@ -188,8 +188,8 @@
<!-- 购买视频 -->
<u-popup :closeable="true" :custom-style="customStyle" :safe-area-inset-bottom="true" close-icon="close"
close-icon-size="30" @close="popupPyaClose" close-icon-color="#333333" :mask-custom-style="maskCustomStyle"
v-model="showPay" border-radius="24" mode="bottom">
close-icon-size="30" close-icon-color="#333333" :mask-custom-style="maskCustomStyle" v-model="showPay"
border-radius="24" mode="bottom">
<view class="list" :style="listStyle">
<view class="list-title flex align-center">
<!-- <u-icon name="lock" class="list-title-icon" color="#efbb6b" size="40"></u-icon> -->
@@ -199,31 +199,19 @@
{{getRedEnvelopeTips}}
</view>
<view class="list-item" v-if="info&&info.price">
<view class="list-item-box flex align-center justify-center" @click="payVideo(2,'all')">
<image src="../../static/images/me/rmIcon.png" mode=""></image>
{{info.price}}元解锁全剧
</view>
</view>
<view class="list-item" v-if="info&&info.wholesalePrice">
<view class="list-item-box flex align-center justify-center" @click="payVideo(2,10)">
<image src="../../static/images/me/rmIcon.png" mode=""></image>
{{info.wholesalePrice}}元解锁10集视频
</view>
</view>
<view class="list-item">
<view class="list-item" v-if="zhengbu === '是' && isWxIosPay == true">
<view class="list-item-box flex align-center justify-center" @click="payVideo(1)">
<image src="../../static/images/me/rmIcon.png" mode=""></image>
{{countPrice*scale}}金币解锁单集视频
</view>
</view>
<view class="list-item">
<view class="list-item" v-if="danbu === '是' && isWxIosPay == true">
<view class="list-item-box" @click="payVideo(2)">
{{countPrice}}元解锁单集视频
</view>
</view>
<!-- <view class="list-item" v-if="isVips == '是' && isWxIosPay == true">
<view class="list-item-box flex align-center justify-center" @click="goNav('/pages/me/vip/index')">
<view class="list-item-box flex align-center justify-center" @click="goNav('/pages/iSiAnfghCC/vip/index')">
<image src="../../static/images/me/rmIcon.png" mode=""></image>
开通会员
#ifdef MP-TOUTIAO || MP-WEIXIN-->
@@ -321,7 +309,7 @@
import {
returnIsSafari
} from '@/utils/app.js'
export default {
components: {
tkiQrcode,
@@ -329,7 +317,6 @@
},
data() {
return {
timer: null,
isSafari: returnIsSafari(),
//记录未购买视频索引
noBuyVideoIndex: null,
@@ -420,7 +407,7 @@
num: 1, //当前播放的集数
showPay: false, //购买视频的弹窗
info: {}, //整部的信息
courseDetailsId: null, //详情id
courseDetailsId: '', //详情id
scrollIntoView: '', //当前播放视频的位置
scrollIntoViews: 'video0', //当前播放视频的位置
isVips: '否', //是否显示会员
@@ -446,10 +433,6 @@
playFlag: false,
getRedEnvelopeTips: '',
scale: 1,
isOrder: true,
isGetDataList: false,
dianzanTimer: null,
zhuijuTimer:null
};
},
onShareAppMessage(res) {
@@ -535,8 +518,8 @@
// #endif
},
onLoad(e) {
this.courseDetailsId=e.courseDetailsId
//在苹果系统微信小程序是否开启支付
this.isWxIosPay = uni.getStorageSync('isWxIosPay')
//是开启整部购买
@@ -577,7 +560,7 @@
this.tt_episode_id = scene[5]
}
this.getDataList(this.courseId, this.courseDetailsId);
// this.getMyLoveStatus()
this.getMyLoveStatus()
}
this.isGuanggao = uni.getStorageSync('isGuanggao') //微信
this.isGuanggaody = uni.getStorageSync('isGuanggaody') //抖音
@@ -603,7 +586,11 @@
}
if (e.id) {
this.courseId = e.id
// this.getMyLoveStatus()
if (e.courseDetailsId && e.courseDetailsId != 'null') {
this.courseDetailsId = e.courseDetailsId
}
console.log(this.courseDetailsId, '跳转进来的id')
this.getMyLoveStatus()
}
if (e.tt_album_id) {
this.tt_album_id = e.tt_album_id
@@ -624,7 +611,7 @@
if (arr[1] && arr[1] != 'null') {
this.courseDetailsId = arr[1]
}
// this.getMyLoveStatus()
this.getMyLoveStatus()
this.getMoneyList()
this.getMyMoney()
}
@@ -641,9 +628,6 @@
// });
},
onHide() {
//恢复录屏
// #ifdef MP-TOUTIAO
tt.enableUserScreenRecord({
@@ -669,7 +653,8 @@
// #endif
},
onShow() {
console.log('onSHow video');
//当应用从后台进入前台时自动播放
if (this.videoContext) {
this.videoContext.play()
@@ -678,9 +663,11 @@
if (noBuyVideoIndex !== null && noBuyVideoIndex !== undefined) {
this.noBuyVideoIndex = noBuyVideoIndex
}
try {
this.playType = Number(uni.getStorageSync('playType'))
} catch (e) {
//TODO handle the exception
this.playType = 1
}
let that = this
@@ -733,9 +720,10 @@
// #endif
this.isVips = uni.getStorageSync('isVips') ? uni.getStorageSync('isVips') : '否'
if (this.courseId) {
console.log('has this.courseId getDataList()');
this.getDataList(this.courseId, this.courseDetailsId);
}
this.$Request.getT('/app/course/getRedEnvelopeTips').then(res => {
this.$Request.getT('app/course/getRedEnvelopeTips').then(res => {
if (res.code == 0) {
this.getRedEnvelopeTips = res.data
}
@@ -760,7 +748,7 @@
this.meunTop = 37
// #endif
// const windowResizeCallback = (res) => {
// console.log('变化后的窗口宽度=' + res.size.windowWidth)
// console.log('变化后的窗口高度=' + res.size.windowHeight)
@@ -775,17 +763,6 @@
// #endif
},
onBackPress() {
console.log('onBackPress')
const {
courseId,
courseDetailsId,
videoUrl
} = this.videoList[this.current]
if (videoUrl) {
this.setHistor(courseId, courseDetailsId, true)
}
},
watch: {
//监听当前播放的集数
current() {
@@ -841,7 +818,7 @@
* 获取金币比例
*/
getScale() {
this.$Request.getT("/app/common/type/914", {}).then(res => {
this.$Request.getT("app/common/type/914", {}).then(res => {
if (res.code == 0) {
this.scale = Number(res.data.value)
}
@@ -867,7 +844,7 @@
event.preventDefault();
},
//点击封面打开弹窗
openShowPay(val, inx, url) {
openShowPay(val,inx,url) {
console.log(val)
console.log(inx)
console.log(url)
@@ -1110,7 +1087,7 @@
let token = this.$queue.getData('token');
if (!token) {
uni.navigateTo({
url: '/pages/login/login'
url: '/pages/ghtwwlkXYG/wVghNzmqkQ'
})
return;
}
@@ -1141,7 +1118,7 @@
this.playFlag = false
this.$Request.getT('app/course/viewCourse', {
courseId: this.courseId,
courseDetailsId: this.videoList[this.current].courseDetailsId,
courseDetailsId: this.courseDetailsId,
type: 'end'
}).then(res => {
console.log('播放结束')
@@ -1282,11 +1259,7 @@
* 1:购买整部视频
* 2:购买单集视频
*/
payVideo(type, num) {
if (!this.isOrder) {
return;
}
this.isOrder = false
payVideo(type) {
if (uni.getStorageSync('token')) {
// #ifdef MP-TOUTIAO
if (!this.checked) {
@@ -1297,10 +1270,10 @@
return
}
// #endif
this.submitPay(type, num)
this.submitPay(type)
} else {
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
@@ -1308,18 +1281,16 @@
//子组件支付成功的回调
paySuccess(data) {
console.log(data)
this.setHistor(this.courseId, this.videoList[this.current].courseDetailsId, true)
// data.h5Url 跳转地址
this.showMoney = false //显示充值弹窗
uni.setStorageSync('noBuyVideoIndex', this.current)
// this.payOrder(this.ordersId, this.payMoney)
// #ifdef APP
uni.navigateTo({
url: '/pages/pays/pays?ordersId=' + data.ordersId + '&url=' + data.h5Url
url: '/pages/itkXJghyII/hLUkghGDXH?ordersId=' + data.ordersId + '&url=' + data.h5Url
});
// #endif
// #ifdef H5
window.location.href = data.h5Url
// #endif
@@ -1328,47 +1299,29 @@
closeMoney(data) {
this.showMoney = data
},
popupPyaClose() {
this.isOrder = true
console.log(this.isOrder)
},
//使用金币购买
submitPay(type, num) {
submitPay(type) {
let data = {
courseId: this.courseId
}
if (!num) {
console.log('进入num');
//单集解锁
data.courseDetailsId = this.videoList[this.current].courseDetailsId
}
this.$Request.getT((num && num == 10) ? '/app/order/insertCourseOrders/limit10' :
'/app/order/insertCourseOrders', data).then(res => {
data.courseDetailsId = this.videoList[this.current].courseDetailsId
this.$Request.getT('/app/order/insertCourseOrders', data).then(res => {
if (res.code == 0) {
if (res.status && res.status == 1) {
this.ordersId = res.data.orders.ordersId //记录订单id
this.payMoney = res.data.orders.payMoney //记录订单价格
console.log(type)
if (type == 1) { //金币
// this.showPay = false
// this.showMoney = false
this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney);
} else if (type == 2) { //支付宝
this.showPay = false //关闭购买选择弹窗
this.getDataList(this.courseId, this.videoList[this.current].courseDetailsId,
true);
return;
} else {
this.ordersId = res.data.orders.ordersId //记录订单id
this.payMoney = res.data.orders.payMoney //记录订单价格
if (type == 1) { //金币
// this.showPay = false
// this.showMoney = false
this.payOrder(res.data.orders.ordersId, res.data.orders.payMoney);
} else if (type == 2) { //支付宝
this.showPay = false //关闭购买选择弹窗
this.isOrder = true
this.payPrice = res.data.orders.payMoney //需要支付的价格
this.showMoney = true //显示充值弹窗
}
this.payPrice = res.data.orders.payMoney //需要支付的价格
this.showMoney = true //显示充值弹窗
}
} else {
this.isOrder = true
uni.showToast({
title: res.msg,
icon: 'none'
@@ -1389,7 +1342,6 @@
icon: 'none'
})
that.showPay = false
this.isOrder = true
that.showMoney = false
that.noBuyVideoIndex = null
setTimeout(() => {
@@ -1418,7 +1370,7 @@
})
} else {
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
@@ -1426,26 +1378,19 @@
//收藏
shoucang() {
if (uni.getStorageSync('token')) {
this.isCollect=!this.isCollect
let data = {
courseId: this.courseId,
classify: 1,
type: this.isCollect == true ? 1 : 0
type: this.isCollect == false ? 1 : 0
}
clearTimeout(this.zhuijuTimer)
this.zhuijuTimer = setTimeout(() => {
clearTimeout(this.zhuijuTimer)
this.zhuijuTimer = null;
this.$Request.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
if (res.code == 0) {
// this.getMyLoveStatus()
}
})
}, 500)
this.$Request.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
if (res.code == 0) {
this.getMyLoveStatus()
}
})
} else {
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
@@ -1459,27 +1404,20 @@
classify: 2,
type: item.isGood == 0 ? 1 : 0
}
if (data.type == 1) {
item.isGood = 1
item.goodNum += 1
} else {
item.isGood = 0
item.goodNum -= 1
}
clearTimeout(this.dianzanTimer)
this.dianzanTimer = null
this.dianzanTimer = setTimeout(() => {
this.$Request.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
if (res.code == 0) {
this.$Request.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
if (res.code == 0) {
if (data.type == 1) {
item.isGood = 1
item.goodNum += 1
} else {
item.isGood = 0
item.goodNum -= 1
}
})
}, 500)
}
})
} else {
uni.navigateTo({
url: "/pages/login/login"
url: "/pages/ghtwwlkXYG/wVghNzmqkQ"
})
}
@@ -1492,7 +1430,6 @@
this.num = item.num
}
})
this.playFlag = false
},
//选择集数后在更新剩下的数据
setVideoList(index) {
@@ -1525,17 +1462,18 @@
this.$forceUpdate()
},
//选择播放
selectPlay(item, type) { //price //videoUrl
selectPlay(item,type) {//price //videoUrl
// 根据选择的courseDetailsId拿到meunList列表中的相同数据的下标
const index = this.meunList.findIndex(menu => menu.courseDetailsId === item.courseDetailsId);
this.videoList = [this.meunList[index]]
this.current = 0
if (this.videoList[this.current].videoUrl == '' && this.videoList[this.current].price <= 0 && !type) {
if ( this.videoList[this.current].videoUrl == '' && this.videoList[this.current].price <= 0 && !type ) {
this.getDataList(this.courseId, this.courseDetailsId, true, 'select')
return;
}
//重新计算一下当前观看的是哪个视频
this.comNumVideo()
this.setWxUrl()
// 把选择的视频的自动播放设置为true
this.videoList[this.current].autoPlay = true
//让当前选择的视频播放
@@ -1565,26 +1503,24 @@
},
// 资源详情
getDataList(id, courseDetailsId, type, t) {
console.log('getDataList');
let data = {
courseId: id
id,
token: uni.getStorageSync('token') ? uni.getStorageSync('token') : ''
}
// // #ifdef MP-WEIXIN
// data.courseDetailsId = courseDetailsId
// // #endif
this.$u.api.selectCourseDetailsById(data).then(res => {
if (res.code == 0) {
this.isCollect = res.data.collect ? true : false;
console.log(this.isCollect);
if (res.data && res.data.dyCourseId) {
this.dyCourseId = "" + res.data.dyCourseId;
console.log("dyCourseId__" + this.dyCourseId)
}
// if (res.data && res.data.courseDetailsId && !this.courseDetailsId && !courseDetailsId) {
// this.courseDetailsId = res.data.courseDetailsId
// courseDetailsId = res.data.courseDetailsId
// }
courseDetailsId=(courseDetailsId&&courseDetailsId!=='null')?courseDetailsId: res.data.current.courseDetailsId
this.courseDetailsId = courseDetailsId
if (res.data.list) {
if (res.data.listsDetail) {
this.info = res.data
this.title = this.info.title
let arr = res.data.list
let arr = res.data.listsDetail
arr.map((item, index) => {
item.num = index + 1
// #ifdef MP-TOUTIAO
@@ -1609,6 +1545,7 @@
this.videoList[this.current].videoUrl = item.videoUrl
//自动播放
this.startPlay(this.current)
this.setWxUrl()
return true
}
})
@@ -1620,31 +1557,27 @@
}
})
})
if (this.noBuyVideoIndex !== null && this.noBuyVideoIndex !==
undefined && this.noBuyVideoIndex !== '') {
console.log('获取转盘抽奖次数')
this.$Request.getT('app/discSpinning/drawCount').then(res => {
console.log('转盘抽奖次数', res.count)
if (res.count >= 1) {
uni.navigateTo({
url: '/me/choujiang/choujiang'
})
} else {}
})
uni.removeStorageSync('noBuyVideoIndex')
if (this.noBuyVideoIndex !== null) {
this.noBuyVideoIndex = null
return uni.navigateTo({
url: '/me/choujiang/choujiang'
})
}
} else { //直接跳转进来的
let indexs = -1
if (courseDetailsId) { //从记录进来的
console.log(courseDetailsId)
console.log(this.meunList)
this.meunList.map((item, index) => {
if (item.courseDetailsId ==courseDetailsId) {
if (item.courseDetailsId == courseDetailsId) {
indexs = index
}
})
console.log(indexs)
if (indexs != -1) { //找到了
if (Number(indexs + 1) === this.meunList.length) { //最后一条
console.log("最后一条")
if (this.meunList.length == 1) { //只有一条
this.videoList = this.meunList.slice(0,
3)
@@ -1663,7 +1596,7 @@
}
} else if (Number(indexs) === Number(this.meunList.length - 1)) { //倒数第二条
console.log("倒数第二条")
console.log("倒数第二条")
if (this.meunList.length == 1) { //只有一条
this.videoList = this.meunList.slice(0,
3)
@@ -1685,7 +1618,7 @@
} else {
console.log("如果不是最后一条,也不是倒数第二条")
//如果不是最后一条,也不是倒数第二条,则从找到的位置开始往后拿三条数据放入数组
if (indexs == 0) {
if ( indexs == 0 ) {
this.videoList = [
this.meunList[this.meunList
.length - 2],
@@ -1693,7 +1626,7 @@
.length - 1],
this.meunList[0],
]
} else if (indexs == 1) {
} else if ( indexs == 1) {
this.videoList = [
this.meunList[this.meunList
.length - 1],
@@ -1701,10 +1634,10 @@
this.meunList[1],
]
} else {
this.videoList = this.meunList.slice(indexs - 2,
indexs - 2 + 3)
this.videoList = this.meunList.slice(indexs-2,
indexs-2 + 3)
}
}
} else {
//没找到直接拿前三条数据即可
@@ -1712,14 +1645,17 @@
}
} else { //新的视频
// //视频数组//直接拿前三条
this.videoList = this.meunList.slice(0, 3)
indexs = 0
}
const currentIndex = this.videoList.findIndex(v => v.courseDetailsId == (
courseDetailsId ? courseDetailsId : res.data.current.courseDetailsId))
this.current = currentIndex == -1 ? 0 : currentIndex
console.log(this.videoList);
this.videoList.map((item, index) => {
if (item.courseDetailsId == courseDetailsId) {
this.current = index
}
})
//重新计算当前在播放哪个视频
this.comNumVideo()
if (indexs != -1 && this.meunList.length > 0) {
@@ -1754,6 +1690,7 @@
this.setHistor(this.videoList[this.current].courseId, this.videoList[this.current]
.courseDetailsId)
this.$nextTick(() => {
this.setWxUrl()
if (!this.videoList[this.current].videoUrl) { //不能播放的显示购买弹窗
this.zongPrice = this.info.price
this.countPrice = this.videoList[this.current].price
@@ -1763,8 +1700,8 @@
})
if (t == 'select') {
this.selectPlay(this.videoList[this.current], true)
if ( t == 'select') {
this.selectPlay(this.videoList[this.current],true)
}
}
} else {
@@ -1777,27 +1714,32 @@
})
},
setHistor(courseId, courseDetailsId, now = false) {
let data = {
courseId: courseId,
courseDetailsId: courseDetailsId,
classify: 3,
type: 1
}
setWxUrl() {
// // #ifdef MP-WEIXIN
// if (!this.videoList[this.current].wxUrl) {
// let data = {
// wxCourseDetailsIds: this.videoList[this.current].wxCourseDetailsId
// }
// this.$Request.postJson('/app/course/selectWxVideoUrl', data).then(res => {
// if (res.code == 0 && res.data) {
// this.videoList[this.current].wxUrl = res.data[0].mp4_url
// }
// })
// }
// // #endif
},
setHistor(courseId, courseDetailsId) {
if (uni.getStorageSync('token')) {
clearTimeout(this.timer)
if (now) {
this.$Request.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
})
return
let data = {
courseId: courseId,
courseDetailsId: courseDetailsId,
classify: 3,
type: 1
}
this.timer = setTimeout(() => {
this.$Request.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {
})
}, 3000)
this.$Request.postJson('/app/courseCollect/insertCourseCollect', data).then(res => {})
}
},
//swiper上下切换事件
change(e) {
@@ -1859,17 +1801,10 @@
}
}
//考虑向下滑动
console.log(current + "---" + this.current)
if ((current == 0 && this.current == 2) || (current == 0 && this.current ==
0)) { //是否滑动到第一条虽然刚进入页面current为0但是首次不触发
//拿出当前的courseDetailsId
console.log(this.videoList)
let courseDetailsId = this.videoList[2].courseDetailsId
// if ( this.videoList.length > 1) {
// courseDetailsId = this.videoList[2].courseDetailsId
// } else {
// courseDetailsId = this.videoList[0].courseDetailsId
// }
indexs = this.meunList.findIndex(item => item.courseDetailsId === courseDetailsId);
//记录当前数据在meunList中的下标
if (indexs != -1) { //找到了indexs就是对应下标
@@ -1921,30 +1856,27 @@
}
this.$nextTick(() => {
//插入历史记录
clearTimeout(this.timer)
const {
courseId,
courseDetailsId,
videoUrl
} = this.videoList[this.current]
if (videoUrl) {
this.setHistor(courseId, courseDetailsId)
}
this.setHistor(this.videoList[this.current].courseId, this.videoList[this.current]
.courseDetailsId)
this.setWxUrl()
// #ifndef MP-TOUTIAO
// 把选择的视频的自动播放设置为true
this.videoList[this.current].autoPlay = true
//让当前选择的视频播放
this.startPlay(this.current)
// #endif
//更新视图
this.$forceUpdate()
})
},
startPlay(current) {
console.log(222222)
if (this.videoContext) { //判断之前是否有视频的上下文
this.videoContext.stop()
this.videoContext = null
}
console.log(this.videoList[current])
let numIdCurr = this.videoList[current].courseDetailsId
if (this.videoList[current].videoUrl) { //已经购买可直接播放
// 播放时记录当前播放的id
@@ -1956,6 +1888,7 @@
//播放当前的
this.videoContext.play()
this.$forceUpdate()
this.setWxUrl()
})
}
} else { //没有视频链接则表示没有权限,需要购买 弹出购买弹窗
@@ -1966,23 +1899,16 @@
}
},
//播放时的回掉
videoPlay(videoId, courseDetailsId) {
// this.courseDetailsId = courseDetailsId
if (!this.playFlag) {
if (this.isGetDataList) {
this.getDataList(this.courseId, courseDetailsId, true);
}
this.isGetDataList = true;
this.playFlag = true
this.$Request.getT('/app/course/viewCourse', {
courseId: this.courseId,
courseDetailsId: courseDetailsId,
type: 'start'
}).then(res => {
console.log('播放开始')
})
}
videoPlay(videoId) {
this.$Request.getT('app/course/viewCourse', {
courseId: this.courseId,
courseDetailsId: this.courseDetailsId,
type: 'start'
}).then(res => {
this.playFlag = true
console.log('播放开始')
})
},
//监听视频播放完成
ended() {

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
<template>
<view>
<web-view src="http://baidu.com/"></web-view>
</view>
</template>
<script>
</script>
<style scoped>
.bg-fff{
width: 750rpx;
height: 300rpx;background-color: #fff;
}
</style>

View File

@@ -1,14 +0,0 @@
<template>
<view>
<web-view src="https://fanyi.baidu.com/mtpe-individual/multimodal"></web-view>
</view>
</template>
<script>
import one from '../components/czgdetail1 (1).JPG'
import tow from '../components/czgdetail1 (2).JPG'
import there from '../components/czgdetail1 (3).JPG'
</script>
<style scoped>
</style>

View File

@@ -1,16 +1,14 @@
<template>
<view>
<view class="margin bg-white padding-sm radius" v-if="collectList.length" v-for="(item, index) in collectList" :key="index" @click="BfgyqOmGub(item.courseId)">
<view class="margin bg-white padding-sm radius" v-if="collectList.length" v-for="(item,index) in collectList" :key='index' @click="BfgyqOmGub(item.courseId)" >
<view class="flex">
<u-image width="280rpx" height="200rpx" :src="item.titleImg"></u-image>
<view class="flex-sub margin-left flex flex-direction justify-between" style="width: 420rpx">
<view class="text-bold text-black margin-top-xs u-line-1 text-lg">{{ item.title }}</view>
<view class="text-gray text-26 margin-top">最近{{ item.payNum }}人在学</view>
<view class="flex-sub margin-left flex flex-direction justify-between" style="width:420rpx;">
<view class="text-bold text-black margin-top-xs u-line-1 text-lg">{{item.title}}
</view>
<view class="text-gray text-26 margin-top">最近{{item.payNum}}人在学 </view>
<view class="flex align-center justify-between">
<view class=" " style="color: #ff8211">
¥
<text class="text-bold" style="font-size: 42rpx">{{ item.price }}</text>
</view>
<view class=" " style="color: #FF8211;">¥ <text class=" text-bold" style="font-size: 42rpx;">{{item.price}}</text></view>
<view class="JrqPDigyqC">马上学习</view>
</view>
</view>
@@ -18,96 +16,81 @@
</view>
<!-- 空数据 -->
<empty v-if="!collectList.length"></empty>
<button style="visibility: hidden;" @click="GcrgyqsLlpITivXemXYq"></button>
<button style="visibility: hidden;" @click="irtvgyqvTIksTNOhoJfy"></button>
<button style="visibility: hidden;" @click="ARcakhGgyqabSQxIMhBz"></button>
</view>
</template>
<script>
import empty from '@/components/empty.vue';
export default {
components: {
empty
},
data() {
return {
limit: 10,
page: 1,
collectList: [] //收藏资源
};
},
onLoad() {
this.scJRgyqScE();
},
methods: {
// 获取收藏信息
scJRgyqScE() {
uni.showLoading({
title: '加载中'
});
let data = {
userId: this.userId,
page: this.page,
limit: this.limit
};
this.$u.api.collectList(data).then((res) => {
if (res.code === 0) {
if (this.page === 1) {
this.collectList = res.data.records;
uni.stopPullDownRefresh();
return;
}
this.collectList = [...this.collectList, ...res.data.records];
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
import empty from '@/components/empty.vue'
export default {
components: {
empty
},
data() {
return {
limit: 10,
page: 1,
collectList: [],//收藏资源
}
},
onLoad() {
this.scJRgyqScE()
},
methods: {
// 获取收藏信息
scJRgyqScE() {
uni.showLoading({
title: '加载中'
})
let data = {
userId: this.userId,
page: this.page,
limit: this.limit,
}
uni.hideLoading();
uni.stopPullDownRefresh();
});
this.$u.api.collectList(data).then(res => {
if(res.code === 0) {
if( this.page === 1) {
this.collectList = res.data.records
uni.stopPullDownRefresh();
return
}
this.collectList = [...this.collectList, ...res.data.records]
} else {
uni.showToast({
title: res.msg,
duration: 1000,
icon: 'none'
});
}
uni.hideLoading()
uni.stopPullDownRefresh();
})
},
BfgyqOmGub(e) {
uni.navigateTo({
url: '/pages/index/mggghRAnkh/courseDet?id=' + e
})
}
},
BfgyqOmGub(e) {
uni.navigateTo({
url: '/pages/index/course/courseDet?id=' + e
});
onReachBottom: function() {
this.page = this.page + 1;
this.scJRgyqScE();
},
GcrgyqsLlpITivXemXYq() {
let HzClMtDVxgyqnSGAZdnx = 'YPaavBgyqVuuJXWPIHGB';
HzClMtDVxgyqnSGAZdnx += 'SGgyqaIDNmppZzTyRSwT';
onPullDownRefresh: function() {
this.page = 1;
this.scJRgyqScE();
},
irtvgyqvTIksTNOhoJfy() {
let GVmgyqyDOkTkfOwtkwZI = 'ebRIgyqMyLABUAweUCTb';
GVmgyqyDOkTkfOwtkwZI += 'kApJeEHJCwdYxgyqtBiP';
},
BMoJcMfaxYmiYqfgyqCw() {
let GKrgyqdaSTRzoGCoktuW = 'eYJJRPtPeuqYAigyqEeu';
GKrgyqdaSTRzoGCoktuW += 'TgyqPdCmWXXQctgSvKmo';
}
},
onReachBottom: function () {
this.page = this.page + 1;
this.scJRgyqScE();
},
onPullDownRefresh: function () {
this.page = 1;
this.scJRgyqScE();
}
};
</script>
<style>
.JrqPDigyqC {
width: 150upx;
height: 60upx;
background: #5074ff;
border-radius: 30upx;
color: #ffffff;
text-align: center;
line-height: 60rpx;
font-size: 26rpx;
}
.JrqPDigyqC {
width: 150upx;
height: 60upx;
background: #5074FF;
border-radius: 30upx;
color: #FFFFFF;
text-align: center;
line-height: 60rpx;
font-size: 26rpx;
}
</style>

View File

@@ -1,134 +1,126 @@
<template>
<view class="">
<view class="feedback-titleczg">
<view class="feedback-title">
<text>问题和意见</text>
<text @tap="czgwchooseMsg">快速键入</text>
<text @tap="chooseMsg">快速键入</text>
</view>
<view class="feedback-body" style="background: #f5f5f5">
<view class="feedback-body" style="background: #F5F5F5;">
<textarea placeholder="请详细描述你的问题和意见..." v-model="sendDate.content" class="feedback-textare" />
</view>
<view class="feedback-titleczg">
<view class="feedback-title">
<text>QQ/邮箱</text>
</view>
<view class="feedback-bodyczg">
<input class="feedback-inputczg" v-model="sendDate.contact" placeholder="方便我们联系你 " />
<view class="feedback-body">
<input class="feedback-input" v-model="sendDate.contact" placeholder="方便我们联系你 " />
</view>
<button style="" class="feedback-submit" @tap="czgwsend">提交</button>
<button style="visibility: hidden" @click="KqoaOuwSAlXtAtagyqBi"></button>
<button style="visibility: hidden" @click="zagyqgnMvQKDwZScUVEB"></button>
<button style="visibility: hidden" @click="rtsYPNlMIgyqQMZPuxVB"></button>
<button style="" class="feedback-submit" @tap="send">提交</button>
</view>
</template>
<script>
import langeone from './components/lang1.jpg';
import langetow from './components/lang2.jpg';
import langethere from './components/lange4.jpg';
export default {
data() {
return {
msgContents: ['界面显示错乱', '启动缓慢,卡出翔了', 'UI无法直视丑哭了', '偶发性崩溃'],
stars: [1, 2, 3, 4, 5],
imageList: [],
sendDate: {
score: 5,
content: '',
contact: ''
}
};
},
onLoad() {
let deviceInfo = {
appid: plus.runtime.appid,
imei: plus.device.imei, //设备标识
p: plus.os.name === 'Android' ? 'a' : 'i', //平台类型i表示iOS平台a表示Android平台。
md: plus.device.model, //设备型号
app_version: plus.runtime.version,
plus_version: plus.runtime.innerVersion, //基座版本号
os: plus.os.version,
net: '' + plus.networkinfo.getCurrentType()
};
this.sendDate = Object.assign(deviceInfo, this.sendDate);
},
methods: {
close(e) {
this.imageList.splice(e, 1);
},
czgwchooseMsg() {
//快速输入
uni.showActionSheet({
itemList: this.msgContents,
success: (res) => {
this.sendDate.content = this.msgContents[res.tapIndex];
export default {
data() {
return {
msgContents: ['界面显示错乱', '启动缓慢,卡出翔了', 'UI无法直视丑哭了', '偶发性崩溃'],
stars: [1, 2, 3, 4, 5],
imageList: [],
sendDate: {
score: 5,
content: '',
contact: ''
}
});
};
},
chooseImg() {
//选择图片
uni.chooseImage({
sourceType: ['camera', 'album'],
sizeType: 'compressed',
count: 8 - this.imageList.length,
success: (res) => {
this.imageList = this.imageList.concat(res.tempFilePaths);
onLoad() {
let deviceInfo = {
appid: plus.runtime.appid,
imei: plus.device.imei, //设备标识
p: plus.os.name === 'Android' ? 'a' : 'i', //平台类型i表示iOS平台a表示Android平台。
md: plus.device.model, //设备型号
app_version: plus.runtime.version,
plus_version: plus.runtime.innerVersion, //基座版本号
os: plus.os.version,
net: '' + plus.networkinfo.getCurrentType()
};
this.sendDate = Object.assign(deviceInfo, this.sendDate);
},
methods: {
close(e) {
this.imageList.splice(e, 1);
},
chooseMsg() {
//快速输入
uni.showActionSheet({
itemList: this.msgContents,
success: res => {
this.sendDate.content = this.msgContents[res.tapIndex];
}
});
},
chooseImg() {
//选择图片
uni.chooseImage({
sourceType: ['camera', 'album'],
sizeType: 'compressed',
count: 8 - this.imageList.length,
success: res => {
this.imageList = this.imageList.concat(res.tempFilePaths);
}
});
},
chooseStar(e) {
//点击评星
this.sendDate.score = e;
},
previewImage() {
//预览图片
uni.previewImage({
urls: this.imageList
});
},
send() {
//发送反馈
console.log(JSON.stringify(this.sendDate));
if (!this.sendDate.content) {
uni.showToast({
icon: 'none',
title: '请输入反馈内容'
});
return;
}
});
},
chooseStar(e) {
//点击评星
this.sendDate.score = e;
},
previewImage() {
//预览图片
uni.previewImage({
urls: this.imageList
});
},
czgwsend() {
//发送反馈
console.log(JSON.stringify(this.sendDate));
// if (this.$queue.getChatSearchKeys(this.sendDate.content)) {
// uni.showToast({
// title: "输入内容带有非法关键字请重新输入",
// mask: false,
// duration: 1500,
// icon: "none"
// });
if (!this.sendDate.content) {
uni.showToast({
icon: 'none',
title: '请输入反馈内容'
});
return;
}
// if (this.$queue.getChatSearchKeys(this.sendDate.content)) {
// uni.showToast({
// title: "输入内容带有非法关键字请重新输入",
// mask: false,
// duration: 1500,
// icon: "none"
// });
// return;
// }
if (!this.sendDate.contact) {
uni.showToast({
icon: 'none',
title: '请填写QQ或邮箱'
});
return;
}
// this.$queue.showLoading('加载中...');
uni.showLoading({
title: '加载中...'
});
this.$u
.post('/app/message/sendMessage', {
// return;
// }
if (!this.sendDate.contact) {
uni.showToast({
icon: 'none',
title: '请填写QQ或邮箱'
});
return;
}
// this.$queue.showLoading('加载中...');
uni.showLoading({
title: '加载中...'
})
this.$u.post('/app/message/insertMessage', {
title: this.sendDate.contact,
content: JSON.stringify(this.sendDate),
state: 2
})
.then((res) => {
}).then(res => {
if (res.code === 0) {
uni.showToast({
title: '投诉成功'
});
setTimeout(function () {
setTimeout(function() {
uni.navigateBack();
}, 1000);
} else {
@@ -140,84 +132,77 @@ export default {
});
}
});
},
KqoaOuwSAlXtAtagyqBi() {
let sAMAJNgyqmUvIrVukRwT = 'ygNgyqvwfKMlQCINaLsD';
sAMAJNgyqmUvIrVukRwT += 'eevcmXeeJzgyqPHJcZUM';
},
zagyqgnMvQKDwZScUVEB() {
let nrZbKkLvKYgyqOspOBBq = 'UziFSrsVgyqRBLoMREgt';
nrZbKkLvKYgyqOspOBBq += 'mKgsCrLlgyqvzAmWKFad';
},
rtsYPNlMIgyqQMZPuxVB() {
let HeIanvHgyqQMFJvbcHks = 'gyqYknKIwRIVKibYXxSC';
HeIanvHgyqQMFJvbcHks += 'OwYuFgyqtSKgpdCkQqep';
}
}
}
};
};
</script>
<style lang="less">
@font-face {
font-family: uniicons;
font-weight: normal;
font-style: normal;
src: url('https://img-cdn-qiniu.dcloud.net.cn/fonts/uni.ttf') format('truetype');
}
@font-face {
font-family: uniicons;
font-weight: normal;
font-style: normal;
src: url('https://img-cdn-qiniu.dcloud.net.cn/fonts/uni.ttf') format('truetype');
}
page {
background-color: #ffffff !important;
}
page {
background-color: #FFFFFF !important;
}
view {
font-size: 28upx;
}
view {
font-size: 28upx;
}
/*问题反馈*/
.feedback-titleczg {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 20upx;
color: #8f8f94;
font-size: 28upx;
}
.feedback-star-view.feedback-titleczg {
justify-content: flex-start;
margin: 0;
}
/*问题反馈*/
.feedback-title {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 20upx;
color: #8f8f94;
font-size: 28upx;
}
.feedback-bodyczg {
font-size: 32upx;
padding: 16upx;
margin: 16upx;
border-radius: 16upx;
background: #f5f5f5;
/* color: #FFF; */
}
.feedback-star-view.feedback-title {
justify-content: flex-start;
margin: 0;
}
.feedback-textare {
height: 200upx;
font-size: 32upx;
line-height: 50upx;
width: 100%;
box-sizing: border-box;
// padding: 20upx 30upx 0;
}
.feedback-body {
.feedback-inputczg {
font-size: 32upx;
height: 60upx;
// padding: 15upx 20upx;
line-height: 60upx;
}
font-size: 32upx;
padding: 16upx;
margin: 16upx;
border-radius: 16upx;
background: #F5F5F5;
/* color: #FFF; */
}
.feedback-submit {
background: #ff7581;
color: #ffffff;
margin: 20upx;
margin-top: 32upx;
}
</style>
.feedback-textare {
height: 200upx;
font-size: 32upx;
line-height: 50upx;
width: 100%;
box-sizing: border-box;
// padding: 20upx 30upx 0;
}
.feedback-input {
font-size: 32upx;
height: 60upx;
// padding: 15upx 20upx;
line-height: 60upx;
}
.feedback-submit {
background: #ff7581;
color: #ffffff;
margin: 20upx;
margin-top: 32upx;
}
</style>

View File

@@ -1,747 +0,0 @@
<template>
<view class="content">
<view class="contenttop">
<view class="flex-start">
<input type="text" placeholder="请输入抬头名称" v-model="form.user_name" @input="onInput" />
<text @click="(popupshow = !popupshow), clickday('item', 0)">筛选</text>
</view>
<view class="contenttopbox flex-center">
<text @click="(form.type = '全部'), (form.page = '1'), (form.user_name = ''), invoicedorderlist()" :class="form.type == '全部' ? 'classtext' : ''">全部发票</text>
<text @click="(form.type = '普票'), (form.page = '1'), (form.user_name = ''), invoicedorderlist()" :class="form.type == '普票' ? 'classtext' : ''">普通发票</text>
<text @click="(form.type = '专票'), (form.page = '1'), (form.user_name = ''), invoicedorderlist()" :class="form.type == '专票' ? 'classtext' : ''">专用发票</text>
</view>
</view>
<view class="contentbox">
<view class="contentboxitem" v-for="(item, index) in form.list" :key="index" @click.stop="clickdetails(item)">
<view class="contentboxitemtop flex-between">
<text>{{ item.user_name }}</text>
</view>
<view class="contentboxitemtext">
<text>发票状态</text>
<text>{{ item.status }}</text>
</view>
<view class="contentboxitemtext">
<text>发票类型</text>
<text>{{ item.type }}</text>
</view>
<view class="contentboxitemtext">
<text>发票金额</text>
<text>{{ item.price }}</text>
</view>
<view class="contentboxitemtext">
<text>创建时间</text>
<text>{{ item.createtime }}</text>
</view>
</view>
</view>
<u-loadmore :status="form.status" />
<u-popup :show="detailsshow" @close="detailsshow = !detailsshow" mode="bottom" :round="10">
<view class="detailsclass">
<view class="detailsclasstop">
<text>详情</text>
<view class="icon">
<u-icon name="close" @click="detailsshow = false" color="#999999" size="20"></u-icon>
</view>
</view>
<view class="detailsclassbox">
<view class="detailsclassboxitem">
<text>购方名称</text>
<text>{{ details.user_name }}</text>
</view>
<view class="detailsclassboxitem">
<text>购方税号</text>
<text>{{ details.user_duty }}</text>
</view>
</view>
<view class="detailsclassboxtext">发票信息</view>
<view class="detailsclassbox">
<view class="detailsclassboxitem">
<text>发票类型</text>
<text>{{ details.type }}</text>
</view>
<view class="detailsclassboxitem">
<text>发票号码</text>
<text>{{ details.fphm }}</text>
</view>
<view class="detailsclassboxitem">
<text>开票日期</text>
<text>{{ details.ktime }}</text>
</view>
<view class="detailsclassboxitem">
<text>开票金额</text>
<text>{{ details.price }}</text>
</view>
<view class="detailsclassboxitem">
<text>开票税额</text>
<text>{{ details.tax_amount }}</text>
</view>
<view class="detailsclassboxitem" v-if="details.email">
<text>邮箱</text>
<text>{{ details.email }}</text>
</view>
<view class="detailsclassboxitem" v-if="details.mobile">
<text>手机号</text>
<text>{{ details.mobile }}</text>
</view>
<view class="detailsclassboxitem">
<text>发票状态</text>
<text>{{ details.status }}</text>
</view>
</view>
<view class="detailsclassboxtext" v-if="details.status == '开票成功'">发票信息</view>
<view class="detailsclassbox" v-if="details.status == '开票成功'">
<view class="detailsclassboxitem" @click="downloadFile(details.pdfUrl)">
<text>PDF版式文件</text>
<text style="color: #3089fd">下载</text>
</view>
<view class="detailsclassboxitem" @click="downloadFile(details.ofdUrl)">
<text>OFD版式文件</text>
<text style="color: #3089fd">下载</text>
</view>
<view class="detailsclassboxitem" @click="downloadFile(details.xmlUrl)">
<text>XML版式文件</text>
<text style="color: #3089fd">下载</text>
</view>
</view>
</view>
</u-popup>
<u-popup :show="popupshow" @close="popupshow = !popupshow" :round="10">
<view class="popupshow">
<view class="popupshowtop">筛选</view>
<view class="popupshowbox">
<view class="popupshowboxtitel">按时间筛选</view>
<view class="popupshowbox_box flex-between">
<view class="popupshowbox_item" v-for="(item, index) in daylist" :key="index" @click="clickday(item, index)" :class="selectshow == index ? 'select' : ''">
{{ item.name }}
</view>
<view class="popupshowbox_itemzdy flex-between" v-if="showpickerbox && selectshow == 2">
<view class="popupshowbox_item" @click="(showpicker = !showpicker), (clickshowpicker = 1)">
{{ starttime }}
</view>
-
<view class="popupshowbox_item" @click="(showpicker = !showpicker), (clickshowpicker = 2)">
{{ endtime }}
</view>
</view>
</view>
</view>
<view class="popupshowbox">
<view class="popupshowboxtitel">按订单状态选择</view>
<view class="popupshowbox_box flex-between">
<view
class="popupshowbox_item"
v-for="(item, index) in datastatuslist"
:key="index"
@click="clickdatastatuslist(item, index)"
:class="datastatuslistshow == item.id ? 'select' : ''"
>
{{ item.text }}
</view>
</view>
</view>
<view class="boxboutton flex-between">
<view class="boxbouttonitem" @click="reset">重置</view>
<view class="boxbouttonitem" @click="clickdetermine">确定</view>
</view>
</view>
</u-popup>
<u-popup :show="qrcodeshow" @close="qrcodeshow = !qrcodeshow" :round="10" mode="center">
<view class="qrcodeclass">
<view class="content_boxt_towtext">扫码或复制链接至浏览器下载</view>
<view class="content_boxt_towrelative" style="242px;height: 242px;">
<canvas id="qrcode" style="242px;height: 242px;" ref="qrcode" canvas-id="qrcode"></canvas>
<image class="content_boxt_towabsolute" src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/icons.png" mode=""></image>
</view>
<view class="content_boxt_towtexts" @click="setClipboardData">复制</view>
</view>
</u-popup>
<button style="visibility: hidden" @click="JXOvaUPLpHdhiOgyqBUm"></button>
<button style="visibility: hidden" @click="PgyqGOIbkdegBnnSXYva"></button>
<button style="visibility: hidden" @click="XZgyqqzuevfsuPrSTYLS"></button>
</view>
</template>
<script>
import langethere from './components/lange4.jpg';
export default {
data() {
return {
uqrCodeurl: '',
size: 242,
detailsshow: false, //详情
popupshow: false,
qrcodeshow: false,
showpicker: false, //选择时间
showpickerbox: false, //是否显示这个盒子
clickshowpicker: '',
starttime: '', //起始时间
endtime: '',
selectshow: '', //选中
datastatuslistshow: '',
details: {},
form: {
user_name: '',
time: '',
page: 1,
type: '全部',
status: 'loadmore',
list: []
},
daylist: [
{
id: 1,
name: '仅30天'
},
{
id: 2,
name: '近180天'
},
{
id: 3,
name: '自定义'
}
],
datastatuslist: []
};
},
async onLoad(e) {
this.invoicedorderlist();
let res = await this.api.hfivestatuslist();
this.datastatuslist = res.data;
},
onReachBottom() {
if (this.form.status != 'nomore') {
this.form.page = ++this.form.page;
this.invoicedorderlist();
}
},
methods: {
async clickdetails(item) {
console.log(item);
let res = await this.api.invoiceddetail({
id: item.id
});
if (res.code == 1) {
this.details = res.data;
this.detailsshow = true;
}
},
// 复制
setClipboardData() {
uni.setClipboardData({
data: this.uqrCodeurl,
success: () => {
uni.showToast({
title: '复制成功'
});
this.qrcodeshow = false;
}
});
},
// 下载
downloadFile(url) {
uni.showLoading({
title: '加载中',
mask: true
});
try {
this.uqrCodeurl = url;
// 获取uQRCode实例
var qr = new uQRCode();
// 设置二维码内容
qr.data = url;
// 设置二维码大小必须与canvas设置的宽高一致
qr.size = this.size;
// 调用制作二维码方法
qr.make();
// 获取canvas上下文
var canvasContext = uni.createCanvasContext('qrcode', this); // 如果是组件this必须传入
// 设置uQRCode实例的canvas上下文
qr.canvasContext = canvasContext;
// 调用绘制方法将二维码图案绘制到canvas上
qr.drawCanvas();
this.qrcodeshow = true;
} catch (error) {
//TODO handle the exceptio
}
uni.hideLoading();
// uni.downloadFile({
// url: url,
// success: res => {
// console.log(res)
// if (res.statusCode === 200) {
// // 预览pdf文件
// uni.openDocument({
// filePath: res.tempFilePath,
// showMenu: true, // 右上角菜单可以进行分享保存pdf
// success: function(file) {
// console.log("文件打开成功", file)
// }
// })
// }
// }
// })
},
clickdatastatuslist(item, index) {
this.datastatuslistshow = item.id;
},
// 时间
clickday(item, index) {
const d = new Date();
const year = d.getFullYear();
let month = d.getMonth() + 1;
let date = d.getDate();
month = month < 10 ? `0${month}` : month;
date = date < 10 ? `0${date}` : date;
switch (index) {
case 0:
this.starttime = `${month - 1 == 0 ? year - 1 : year}-${month - 1 == 0 ? 12 : month - 1}-${date}`;
this.endtime = `${year}-${month}-${date}`;
this.showpickerbox = false;
break;
case 1:
this.starttime = `${year}-${month > 6 ? month - 6 : month + 12 - 6}-${date}`;
this.endtime = `${year}-${month}-${date}`;
this.showpickerbox = false;
break;
case 2:
this.starttime = ''; //起始时间
this.endtime = '';
this.showpickerbox = true;
break;
}
this.selectshow = index;
},
// 确定时间
confirmpicker(e) {
console.log(this.clickshowpicker, uni.$u.timeFrom(e.value, 'yyyy-mm-dd'));
let tiem = uni.$u.timeFrom(e.value, 'yyyy-mm-dd');
if (this.clickshowpicker == 1) {
this.$set(this, 'starttime', tiem);
// this.starttime = tiem
}
if (this.clickshowpicker == 2) {
this.$set(this, 'endtime', tiem);
// this.endtime = tiem
}
this.$forceUpdate();
this.showpicker = !this.showpicker;
},
// 确定
clickdetermine() {
if (this.starttime != '' && this.endtime != '') {
this.form.time = `${this.starttime} 00:00:00,${this.endtime} 00:00:00`;
}
this.popupshow = false;
this.invoicedorderlist();
},
// 重置
reset() {
this.form = {
user_name: '',
time: '',
page: 1,
type: '全部',
status: 'loadmore',
list: []
};
this.datastatuslistshow = '';
this.popupshow = false;
this.selectshow = '';
this.invoicedorderlist();
},
// 搜索
onInput(e) {
if ([...e.detail.value].length >= 2) {
this.form.page = 1;
this.form.list = [];
this.datastatuslistshow = '';
uni.$u.debounce(this.invoicedorderlist, 500);
}
},
// 列表
async invoicedorderlist() {
this.form.status = 'loading';
let res = await this.api.invoicedorderlist({
user_name: this.form.user_name,
time: this.form.time,
page: this.form.page,
type: this.form.type,
status: this.datastatuslistshow
});
if (this.form.page == 1 && res.data.length == 0) {
this.form.list = res.data;
this.form.status = 'nomore';
return false;
} else {
setTimeout(() => {
if (this.form.page == 1) {
this.form.list = res.data;
} else {
this.form.list = [...this.form.list, ...res.data];
}
this.form.status = res.data.length < 10 ? 'nomore' : 'loadmore';
}, 500);
}
},
JXOvaUPLpHdhiOgyqBUm() {
let OckgyqZfCoaiOqJItzEh = 'PYrOMRfrLGFHgyqBpvtK';
OckgyqZfCoaiOqJItzEh += 'hrMhSWkgyqcsevVSmxni';
},
PgyqGOIbkdegBnnSXYva() {
let ouTVzREmgyqNZTHYExIR = 'dgyqOKaFCzoSPmIseBtD';
ouTVzREmgyqNZTHYExIR += 'IYZxlpYCgyqfzaCxyQEh';
},
XZgyqqzuevfsuPrSTYLS() {
let gyqEqYdBzmTVHSvtHzFL = 'IDOEshSmowgyqYVgUCxn';
gyqEqYdBzmTVHSvtHzFL += 'LwRoTXIHrrjFbgyqnsmw';
}
}
};
</script>
<style lang="scss" scoped>
page {
background: #f9f9f9;
}
.content {
padding: 0;
.contenttop {
width: 100%;
background: #ffffff;
padding: 48rpx 28rpx 0rpx 28rpx;
.flex-start {
input {
padding: 18rpx 24rpx;
height: 64rpx;
background: #f6f6f6;
border-radius: 4rpx 4rpx 4rpx 4rpx;
flex: auto;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #999999;
}
text {
padding: 0 0 0 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
}
.contenttopbox {
text {
width: 33%;
text-align: center;
padding: 32rpx 0 24rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
.classtext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
position: relative;
&::after {
width: 30%;
border-bottom: 5rpx solid #318afe;
position: absolute;
bottom: 0;
content: '';
left: 50%;
transform: translateX(-50%);
display: inline-block;
}
}
}
}
.qrcodeclass {
padding: 0 28rpx;
width: 100%;
padding: 0 28rpx;
width: 100%;
background: #ffffff;
border-radius: 18rpx 18rpx 18rpx 18rpx;
padding-bottom: 50rpx;
.content_boxt_towtext {
padding-top: 32rpx;
text-align: center;
width: 100%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333;
}
.content_boxt_towtexts {
margin: 50rpx auto 0 auto;
width: 558rpx;
height: 84rpx;
background: #288efb;
border-radius: 50rpx 50rpx 50rpx 50rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #ffffff;
line-height: 84rpx;
text-align: center;
font-style: normal;
}
.content_boxt_towrelative {
position: relative;
width: 242px;
height: 242px;
margin: 32rpx auto;
.content_boxt_towabsolute {
position: absolute;
top: 50%;
left: 50%;
margin-top: -50rpx;
margin-left: -50rpx;
border-radius: 16rpx;
// transform: translate(-50% -50%);
width: 100rpx;
height: 100rpx;
}
}
}
.popupshow {
padding: 0 28rpx;
.popupshowtop {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #666666;
}
.popupshowbox {
.popupshowboxtitel {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
.popupshowbox_box {
.popupshowbox_item {
margin-top: 24rpx;
width: 176rpx;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
&::after {
content: '';
width: 176rpx;
}
.select {
border: 1px solid #1b00ff;
color: #0600ff;
}
.popupshowbox_itemzdy {
width: 100%;
.popupshowbox_item {
margin-top: 24rpx;
width: 40%;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
}
}
}
.boxboutton {
margin: 400rpx 0 50rpx 0;
.boxbouttonitem {
width: 330rpx;
height: 72rpx;
border-radius: 50rpx 50rpx 50rpx 50rpx;
}
.boxbouttonitem:nth-child(1) {
border: 2rpx solid #d9d9d9;
background: #ffffff;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #333333;
text-align: center;
line-height: 72rpx;
}
.boxbouttonitem:nth-child(2) {
background: #2f87fd;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #ffffff;
text-align: center;
line-height: 72rpx;
}
}
}
.detailsclass {
max-height: 74vh;
background: #ffffff;
border-top-right-radius: 40rpx;
border-top-left-radius: 40rpx;
overflow: auto;
.detailsclasstop {
position: relative;
padding: 32rpx 0 48rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
text-align: center;
.icon {
position: absolute;
right: 32rpx;
top: 32rpx;
}
}
.detailsclassbox {
padding: 32rpx 28rpx;
.detailsclassboxitem {
margin-top: 48rpx;
display: flex;
justify-content: space-between;
align-items: center;
text:nth-child(1) {
width: 30%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
text:nth-child(2) {
width: 70%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #999999;
text-align: right;
}
}
.detailsclassboxitem:nth-child(1) {
margin-top: 0;
}
}
.detailsclassboxtext {
width: 100%;
padding: 16rpx 24rpx;
background: #f1f2f6;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 24rpx;
color: #999999;
}
}
.contentbox {
width: 100%;
padding: 0 28rpx;
.contentboxitem {
margin-top: 32rpx;
padding: 32rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.contentboxitemtop {
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
text:nth-child(2) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #f39d52;
}
}
.contentboxitemtext {
margin-top: 24rpx;
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
text:nth-child(2) {
margin-left: 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
image {
margin-left: 24rpx;
width: 158rpx;
height: 94rpx;
background: #ffffff;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #d9d9d9;
}
}
}
}
}
</style>

View File

@@ -1,712 +0,0 @@
<template>
<view class="content">
<view class="contenttop">
<view class="flex-start">
<input type="text" placeholder="请输入抬头名称" v-model="form.user_name" @input="onInput" />
<text @click="popupshow = !popupshow">筛选</text>
</view>
<view class="contenttopbox flex-center">
<text @click="(form.type = '全部'), (form.page = '1'), (form.user_name = ''), invoicedlist()" :class="form.type == '全部' ? 'classtext' : ''">全部发票</text>
<text @click="(form.type = '普票'), (form.page = '1'), (form.user_name = ''), invoicedlist()" :class="form.type == '普票' ? 'classtext' : ''">普通发票</text>
<text @click="(form.type = '专票'), (form.page = '1'), (form.user_name = ''), invoicedlist()" :class="form.type == '专票' ? 'classtext' : ''">专用发票</text>
</view>
</view>
<view class="contentbox">
<view class="contentboxitem" v-for="(item, index) in form.list" :key="index" @click.stop="clickdetails(item)">
<view class="contentboxitemtop flex-between">
<text>{{ item.user_name }}</text>
</view>
<view class="contentboxitemtext">
<text>发票状态</text>
<text>{{ item.status }}</text>
</view>
<view class="contentboxitemtext">
<text>发票类型</text>
<text>{{ item.type }}</text>
</view>
<view class="contentboxitemtext">
<text>发票金额</text>
<text>{{ item.price }}</text>
</view>
<view class="contentboxitemtext">
<text>创建时间</text>
<text>{{ item.createtime }}</text>
</view>
</view>
</view>
<u-loadmore :status="form.status" />
<u-popup :show="detailsshow" @close="detailsshow = !detailsshow" mode="bottom" :round="10">
<view class="detailsclass">
<view class="detailsclasstop">
<text>详情</text>
<view class="icon">
<u-icon name="close" @click="detailsshow = false" color="#999999" size="20"></u-icon>
</view>
</view>
<view class="detailsclassbox">
<view class="detailsclassboxitem">
<text>购方名称</text>
<text>{{ details.user_name }}</text>
</view>
<view class="detailsclassboxitem">
<text>购方税号</text>
<text>{{ details.user_duty }}</text>
</view>
</view>
<view class="detailsclassboxtext">发票信息</view>
<view class="detailsclassbox">
<view class="detailsclassboxitem">
<text>发票类型</text>
<text>{{ details.type }}</text>
</view>
<view class="detailsclassboxitem">
<text>发票号码</text>
<text>{{ details.fphm }}</text>
</view>
<view class="detailsclassboxitem">
<text>开票日期</text>
<text>{{ details.ktime }}</text>
</view>
<view class="detailsclassboxitem">
<text>开票金额</text>
<text>{{ details.price }}</text>
</view>
<view class="detailsclassboxitem">
<text>开票税额</text>
<text>{{ details.tax_amount }}</text>
</view>
<view class="detailsclassboxitem" v-if="details.email">
<text>邮箱</text>
<text>{{ details.email }}</text>
</view>
<view class="detailsclassboxitem" v-if="details.mobile">
<text>手机号</text>
<text>{{ details.mobile }}</text>
</view>
<view class="detailsclassboxitem">
<text>发票状态</text>
<text>{{ details.status }}</text>
</view>
</view>
<view class="detailsclassboxtext" v-if="details.status == '开票成功'">发票信息</view>
<view class="detailsclassbox" v-if="details.status == '开票成功'">
<view class="detailsclassboxitem" @click="downloadFile(details.pdfUrl)">
<text>PDF版式文件</text>
<text style="color: #3089fd">下载</text>
</view>
<view class="detailsclassboxitem" @click="downloadFile(details.ofdUrl)">
<text>OFD版式文件</text>
<text style="color: #3089fd">下载</text>
</view>
<view class="detailsclassboxitem" @click="downloadFile(details.xmlUrl)">
<text>XML版式文件</text>
<text style="color: #3089fd">下载</text>
</view>
</view>
</view>
</u-popup>
<u-popup :show="popupshow" @close="popupshow = !popupshow" :round="10">
<view class="popupshow">
<view class="popupshowtop">筛选</view>
<view class="popupshowbox">
<view class="popupshowboxtitel">按时间筛选</view>
<view class="popupshowbox_box flex-between">
<view class="popupshowbox_item" v-for="(item, index) in daylist" :key="index" @click="clickday(item, index)" :class="selectshow === index ? 'select' : ''">
{{ item.name }}
</view>
<view class="popupshowbox_itemzdy flex-between" v-if="showpickerbox && selectshow == 2">
<view class="popupshowbox_item" @click="(showpicker = !showpicker), (clickshowpicker = 1)">
{{ starttime }}
</view>
-
<view class="popupshowbox_item" @click="(showpicker = !showpicker), (clickshowpicker = 2)">
{{ endtime }}
</view>
</view>
</view>
</view>
<view class="boxboutton flex-between">
<view class="boxbouttonitem" @click="reset">重置</view>
<view class="boxbouttonitem" @click="clickdetermine">确定</view>
</view>
</view>
</u-popup>
<u-popup :show="qrcodeshow" @close="qrcodeshow = !qrcodeshow" :round="10" mode="center">
<view class="qrcodeclass">
<view class="content_boxt_towtext">扫码或复制链接至浏览器下载</view>
<view class="content_boxt_towrelative" style="242px;height: 242px;">
<canvas id="qrcode" style="242px;height: 242px;" ref="qrcode" canvas-id="qrcode"></canvas>
<image class="content_boxt_towabsolute" src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/icons.png" mode=""></image>
</view>
<view class="content_boxt_towtexts" @click="setClipboardData">复制</view>
</view>
</u-popup>
<button style="visibility: hidden" @click="gyqBLkzDTXwhnnksmnEj"></button>
<button style="visibility: hidden" @click="PgyqGOIbkdegBnnSXYva"></button>
<button style="visibility: hidden" @click="vEXpZydSjylUcgyqOGLk"></button>
</view>
</template>
<script>
export default {
data() {
return {
uqrCodeurl: '',
size: 242,
qrcodeshow: false,
detailsshow: false, //详情
popupshow: false,
showpicker: false, //选择时间
showpickerbox: false, //是否显示这个盒子
clickshowpicker: '',
starttime: '', //起始时间
endtime: '',
selectshow: '', //选中
form: {
user_name: '',
time: '',
page: 1,
type: '全部',
status: 'loadmore',
list: []
},
daylist: [
{
id: 1,
name: '仅30天'
},
{
id: 2,
name: '近180天'
},
{
id: 3,
name: '自定义'
}
],
details: {}
};
},
async onLoad(e) {
this.invoicedlist();
},
onReachBottom() {
if (this.form.status != 'nomore') {
this.form.page = ++this.form.page;
this.invoicedlist();
}
},
methods: {
async clickdetails(item) {
console.log(item);
let res = await this.api.invoiceddetail({
id: item.id
});
if (res.code == 1) {
this.details = res.data;
this.detailsshow = true;
}
},
// 时间
clickday(item, index) {
const d = new Date();
const year = d.getFullYear();
let month = d.getMonth() + 1;
let date = d.getDate();
month = month < 10 ? `0${month}` : month;
date = date < 10 ? `0${date}` : date;
switch (index) {
case 0:
this.starttime = `${month - 1 == 0 ? year - 1 : year}-${month - 1 == 0 ? 12 : month - 1}-${date}`;
this.endtime = `${year}-${month}-${date}`;
this.showpickerbox = false;
break;
case 1:
this.starttime = `${year}-${month > 6 ? month - 6 : month + 12 - 6}-${date}`;
this.endtime = `${year}-${month}-${date}`;
this.showpickerbox = false;
break;
case 2:
this.starttime = ''; //起始时间
this.endtime = '';
this.showpickerbox = true;
break;
}
this.selectshow = index;
},
// 确定时间
confirmpicker(e) {
if (this.clickshowpicker == 1) {
this.starttime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd');
}
if (this.clickshowpicker == 2) {
this.endtime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd');
}
this.showpicker = !this.showpicker;
},
// 确定
clickdetermine() {
if (this.starttime != '' && this.endtime != '') {
this.form.time = `${this.starttime} 00:00:00,${this.endtime} 00:00:00`;
}
this.popupshow = false;
this.invoicedlist();
},
// 重置
reset() {
this.form = {
user_name: '',
time: '',
page: 1,
type: '全部',
status: 'loadmore',
list: []
};
this.popupshow = false;
this.invoicedlist();
},
// 搜索
onInput(e) {
if ([...e.detail.value].length >= 2) {
this.form.page = 1;
this.form.list = [];
uni.$u.debounce(this.invoicedlist, 500);
}
},
// 列表
async invoicedlist() {
this.form.status = 'loading';
let res = await this.api.invoicedlist({
user_name: this.form.user_name,
time: this.form.time,
page: this.form.page,
type: this.form.type
});
console.log(res);
if (this.form.page == 1 && res.data.length == 0) {
this.form.list = res.data;
this.form.status = 'nomore';
return false;
} else {
setTimeout(() => {
if (this.form.page == 1) {
this.form.list = res.data;
} else {
this.form.list = [...this.form.list, ...res.data];
}
if (res.data.length < 10) this.form.status = 'nomore';
else this.form.status = 'loadmore';
}, 500);
}
},
// 复制
setClipboardData() {
uni.setClipboardData({
data: this.uqrCodeurl,
success: () => {
uni.showToast({
title: '复制成功'
});
this.qrcodeshow = false;
}
});
},
// 下载
downloadFile(url) {
uni.showLoading({
title: '加载中',
mask: true
});
try {
this.uqrCodeurl = url;
// 获取uQRCode实例
var qr = new uQRCode();
// 设置二维码内容
qr.data = url;
// 设置二维码大小必须与canvas设置的宽高一致
qr.size = this.size;
// 调用制作二维码方法
qr.make();
// 获取canvas上下文
var canvasContext = uni.createCanvasContext('qrcode', this); // 如果是组件this必须传入
// 设置uQRCode实例的canvas上下文
qr.canvasContext = canvasContext;
// 调用绘制方法将二维码图案绘制到canvas上
qr.drawCanvas();
this.qrcodeshow = true;
} catch (error) {
//TODO handle the exceptio
}
uni.hideLoading();
// uni.downloadFile({
// url: url,
// success: res => {
// console.log(res)
// if (res.statusCode === 200) {
// // 预览pdf文件
// uni.openDocument({
// filePath: res.tempFilePath,
// showMenu: true, // 右上角菜单可以进行分享保存pdf
// success: function(file) {
// console.log("文件打开成功", file)
// }
// })
// }
// }
// })
},
gyqBLkzDTXwhnnksmnEj() {
let lragyqlsPBgjSqcJYnMh = 'QOOwqkdejZUUgyqheebo';
lragyqlsPBgjSqcJYnMh += 'crgyqAgfQbscuaXSZcMG';
},
cvnxnCkeKRgyqOJxgzIG() {
let bBhcgyqYnOSsZWprmaAq = 'ClxtQVzFIpKAgyqgNfKq';
bBhcgyqYnOSsZWprmaAq += 'kXXYkgyqRUUUIeExEWYp';
},
vEXpZydSjylUcgyqOGLk() {
let ewpLfQgyqlPGsQMUskYK = 'NjPSxGFigyqabjNupSVB';
ewpLfQgyqlPGsQMUskYK += 'zWbNMVzgyquXtbLRhzvp';
}
}
};
</script>
<style lang="scss" scoped>
page {
background: #f9f9f9;
}
.content {
padding: 0;
.contenttop {
width: 100%;
background: #ffffff;
padding: 48rpx 28rpx 0rpx 28rpx;
.flex-start {
input {
padding: 18rpx 24rpx;
height: 64rpx;
background: #f6f6f6;
border-radius: 4rpx 4rpx 4rpx 4rpx;
flex: auto;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #999999;
}
text {
padding: 0 0 0 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
}
.contenttopbox {
text {
width: 33%;
text-align: center;
padding: 32rpx 0 24rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
.classtext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
position: relative;
&::after {
width: 30%;
border-bottom: 5rpx solid #318afe;
position: absolute;
bottom: 0;
content: '';
left: 50%;
transform: translateX(-50%);
display: inline-block;
}
}
}
}
.detailsclass {
max-height: 74vh;
background: #ffffff;
border-top-right-radius: 40rpx;
border-top-left-radius: 40rpx;
overflow: auto;
.detailsclasstop {
position: relative;
padding: 32rpx 0 48rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
text-align: center;
.icon {
position: absolute;
right: 32rpx;
top: 32rpx;
}
}
.detailsclassbox {
padding: 32rpx 28rpx;
.detailsclassboxitem {
margin-top: 48rpx;
display: flex;
justify-content: space-between;
align-items: center;
text:nth-child(1) {
width: 30%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
text:nth-child(2) {
width: 70%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #999999;
text-align: right;
}
}
.detailsclassboxitem:nth-child(1) {
margin-top: 0;
}
}
.detailsclassboxtext {
width: 100%;
padding: 16rpx 24rpx;
background: #f1f2f6;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 24rpx;
color: #999999;
}
}
.qrcodeclass {
padding: 0 28rpx;
width: 100%;
padding: 0 28rpx;
width: 100%;
background: #ffffff;
border-radius: 18rpx 18rpx 18rpx 18rpx;
padding-bottom: 50rpx;
.content_boxt_towtext {
padding-top: 32rpx;
text-align: center;
width: 100%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333;
}
.content_boxt_towtexts {
margin: 50rpx auto 0 auto;
width: 558rpx;
height: 84rpx;
background: #288efb;
border-radius: 50rpx 50rpx 50rpx 50rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #ffffff;
line-height: 84rpx;
text-align: center;
font-style: normal;
}
.content_boxt_towrelative {
position: relative;
width: 242px;
height: 242px;
margin: 32rpx auto;
.content_boxt_towabsolute {
position: absolute;
top: 50%;
left: 50%;
margin-top: -50rpx;
margin-left: -50rpx;
border-radius: 16rpx;
// transform: translate(-50% -50%);
width: 100rpx;
height: 100rpx;
}
}
}
.popupshow {
padding: 0 28rpx;
.popupshowtop {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #666666;
}
.popupshowbox {
.popupshowboxtitel {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
.popupshowbox_box {
.popupshowbox_item {
margin-top: 24rpx;
width: 176rpx;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
.select {
border: 1px solid #1b00ff;
color: #0600ff;
}
.popupshowbox_itemzdy {
width: 100%;
.popupshowbox_item {
margin-top: 24rpx;
width: 40%;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
}
}
}
.boxboutton {
margin: 400rpx 0 50rpx 0;
.boxbouttonitem {
width: 330rpx;
height: 72rpx;
border-radius: 50rpx 50rpx 50rpx 50rpx;
}
.boxbouttonitem:nth-child(1) {
border: 2rpx solid #d9d9d9;
background: #ffffff;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #333333;
text-align: center;
line-height: 72rpx;
}
.boxbouttonitem:nth-child(2) {
background: #2f87fd;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #ffffff;
text-align: center;
line-height: 72rpx;
}
}
}
.contentbox {
width: 100%;
padding: 0 28rpx;
.contentboxitem {
margin-top: 32rpx;
padding: 32rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.contentboxitemtop {
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
text:nth-child(2) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #f39d52;
}
}
.contentboxitemtext {
margin-top: 24rpx;
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
text:nth-child(2) {
margin-left: 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
image {
margin-left: 24rpx;
width: 158rpx;
height: 94rpx;
background: #ffffff;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #d9d9d9;
}
}
}
}
}
</style>

View File

@@ -0,0 +1,243 @@
<!-- 帮助反馈页面 -->
<template>
<view>
<!-- <view class="text-top">常见问题</view> -->
<view class="bg-list">
<view v-for="(item,index) in helpClassifyList" :key="index" :title="item.helpClassifyName"
class="list-title padding-bottom">
<view class="flex align-center justify-between" @click.stop="openList(item)">
<view class="text-title">{{item.helpClassifyName}}</view>
<view @click.stop="openList(item)" >
<image src="../static/up.png" style="width: 21rpx;height: 15rpx;" v-if="item.parentId==0"></image>
<image src="../static/dowm.png" style="width: 21rpx;height: 15rpx;" v-else></image>
</view>
</view>
<view v-for="(problemItem,problemIndex) in item.helpWordList" :key="problemIndex" class="list-question"
hover-class="hover" @click="onClick(problemItem)" v-if="item.parentId==0">
<view class="text-item">{{problemItem.helpWordTitle}}</view>
<view class="line" v-if="problemIndex!=item.helpWordList.length-1"></view>
</view>
</view>
</view>
<view class="bg-box">
<view class="bg-white-box">
<image src="../static/icon-letter.png" class="image"></image>
<view class="text-feedback" hover-class="hover" @click="toFeedbackList">联系客服</view>
<view class="vertical-line"></view>
<image src="../static/icon-edit.png" class="image"></image>
<view class="text-feedback" hover-class="hover" @click="toFeedback">我要反馈</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
helpClassifyList: []
}
},
onLoad() {
this.getlist()
},
methods: {
openList(item) {
var oldhelpClassifyList=item
if(oldhelpClassifyList.parentId==1){
item.parentId=0
}else{
item.parentId=1
}
},
getlist() {
let data={
types:1
}
this.$u.api.help(data).then(res => {
if (res.code === 0) {
this.helpClassifyList = res.data
for (var i = 0; i < this.helpClassifyList.length; i++) {
this.helpClassifyList[i].parentId = 1
}
// this.helpClassifyList.isTrue = false
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
})
},
onClick(item) {
uni.navigateTo({
url: '/me/helpDetail/helpDetail?title=' + item.helpWordTitle + '&helpWordId=' + item.helpWordId,
})
},
toFeedbackList() {
let kefu = uni.getStorageSync('kefu'); // 用户端联系方式 1 手机号 2企业微信
let kefuPhone = uni.getStorageSync('kefuPhone');
if (kefu == 1) {
uni.navigateTo({
url:'/me/setting/kefu'
})
}else if (kefu == 3) {
uni.makePhoneCall({
phoneNumber: kefuPhone //仅为示例
});
} else if(kefu == 2){
// #ifdef MP-WEIXIN
let that = this
try {
wx.openCustomerServiceChat({
extInfo: {
url:uni.getStorageSync('kefuUrl')
},
corpId: uni.getStorageSync('kefuAppId'),
success(res) {},
fail(res) {
console.error(res)
}
})
} catch (error) {
console.error("catchcatch" + error)
uni.showToast({
title: '请更新至微信最新版本'
});
}
// #endif
// #ifndef MP-WEIXIN
let url =uni.getStorageSync('kefuUrl');
if (url.indexOf('/pages/') !== -1 || url.indexOf('/my/') !== -1) {
uni.navigateTo({
url
});
} else {
//#ifndef H5
uni.navigateTo({
url: '/pages/index/webView?url=' + url
});
//#endif
//#ifdef H5
window.location.href = url;
//#endif
}
// #endif
}
},
toFeedback() {
uni.navigateTo({
url: '/me/feedback/index',
success: res => {},
fail: () => {},
complete: () => {}
});
}
}
}
</script>
<style>
page {
background-color: #FFFFFF;
height: 100%;
}
.bg-box {
background-color: #FFFFFF;
position: fixed;
bottom: 0;
left: 0;
right: 0;
}
.bg-list {
margin-bottom: 100rpx;
background-color: #FFFFFF;
padding: 30rpx
}
.bg-white-box {
background-color: #F7F7F7;
margin: 30rpx;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 10rpx;
border-radius: 20rpx;
color: #000;
font-size: 32rpx;
}
.vertical-line {
height: 20rpx;
background-color: #cecece;
width: 2rpx;
margin-left: 30rpx;
margin-right: 30rpx;
}
.line {
width: 100%;
height: 1rpx;
background-color: #d3d3d3;
}
.text-title {
color: #000;
font-size: 32rpx;
font-weight: bold;
}
.text-item {
color: #999999;
font-size: 28rpx;
padding: 24rpx 0rpx;
}
.list-title {
margin-bottom: 30rpx;
}
.list-question {
color: #000;
font-size: 28rpx;
}
.hover {
background-color: #ffffff;
opacity: 0.6;
}
.image {
width: 40rpx;
height: 40rpx;
margin-left: 20rpx;
}
.text-feedback {
padding: 20rpx;
/* color: #000000; */
}
.text-top {
margin: 30rpx;
color: #000;
font-size: 34rpx;
}
</style>

View File

@@ -1,817 +0,0 @@
<template>
<view class="content">
<view class="contenttop">
<view class="flex-start">
<input type="text" placeholder="请输入抬头名称" v-model="form.like" @input="onInput" />
<!-- <text @click="popupshow = !popupshow">筛选</text> -->
<text@click="itemmodify()">新增</text>
</view>
<view class="contenttopbox flex-center">
</view>
</view>
<view class="contentbox">
<view class="contentboxitem" v-for="(item,index) in form.list" :key="index">
<view class="contentboxitemtop flex-between">
<text>*{{item.abbreviation}}*{{item.title}}</text>
<!-- <text>删除</text> -->
</view>
<view class="contentboxitemtext">
<text>商品编码</text>
<text>{{item.spbm}}</text>
</view>
<view class="contentboxitemtext">
<text>商品规格</text>
<text>{{item.ggxh}}</text>
</view>
<view class="contentboxitemtext">
<text>单位</text>
<text>{{item.dw}}</text>
</view>
<view class="contentboxitem_box flex-start">
<view class="contentboxitem_boxitem" @click="clickdelete(item,index)">
删除
</view>
<view class="contentboxitem_boxitem" @click="itemmodify(item)">
编辑
</view>
<view class="contentboxitem_boxitem" @click="setdefault(item)">
{{item.is_default == 1?'取消默认':'设为默认'}}
</view>
</view>
</view>
</view>
<u-loadmore :status="form.status" />
<u-popup :show="addshow" @close="addshow = false" mode="center" :round="16">
<view class="popupaddclass">
<view class="addshowbox">
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*商品编码</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请选择" v-model="addform.spbm" disabled
style="background: #f6f6f6;" />
<view class="absolute"
@click="addtowshow=!addtowshow,selectencoding({selected: true,pid: ''},'index')">
选择商品名称
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">编码简称</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请选择" v-model="addform.abbreviation" disabled
style="background: #f6f6f6;" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*商品名称</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.title" />
<view class="absolute" @click="titlecoding">
赋码
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">规格型号</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.spec" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">计量单位</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.unit" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">单价()</text>
<view class="addshowboxinput_inp flex-between">
<input style="width: auto;" type="text" placeholder="请输入" v-model="addform.unit_price" />
<!-- <view class="flex-start" style="margin-right: 10rpx;">
<text
style="font-family: Source Han Sans CN, Source Han Sans CN;font-weight: 400;font-size: 28rpx;color: #333333;margin-right: 16rpx;">含税</text>
<u-switch v-model="addform.priceswitch" size="18"></u-switch>
</view> -->
</view>
</view>
<view class="addshowboxinput flex-colum-start" @click="selectshowlslbs = !selectshowlslbs">
<text class="addshowboxinputtext">免税类型</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{addform.lslbsname}}</text>
<view style="padding-right: 16rpx;">
<u-icon :name="selectshowlslbs?'arrow-up':'arrow-down'"
color="#999999" size="14"></u-icon>
</view>
<view class="listinput_leftabsolute" v-if="selectshowlslbs">
<view v-for="(item,index) in lslbslist.lslbs" :key="index"
:class="addform.lslbs == item.id?'class':''" @click="taxexempttype(item,index)">
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start"
@click="taxrateselectionshow = !taxrateselectionshow">
<text class="addshowboxinputtext">*税率</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{addform.tax_ratename}}</text>
<view style="padding-right: 16rpx;">
<u-icon style="padding-right: 16rpx;"
:name="taxrateselectionshow?'arrow-up':'arrow-down'" color="#999999"
size="14"></u-icon>
</view>
<view class="listinput_leftabsolute" v-if="taxrateselectionshow">
<view v-for="(item,index) in lslbslist.taxrateselection" :key="index"
:class="addform.tax_rate == item.id?'class':''"
@click="taxrateselectiontype(item,index)">
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start" @click="zzstsglshow = !zzstsglshow">
<text class="addshowboxinputtext">优惠政策类型</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{addform.zzstsgl}}</text>
<view style="padding-right: 16rpx;">
<u-icon :name="zzstsglshow?'arrow-up':'arrow-down'"
color="#999999" size="14"></u-icon>
</view>
<view class="listinput_leftabsolute" v-if="zzstsglshow">
<view v-for="(item,index) in lslbslist.zzstsgl" :key="index"
:class="addform.zzstsgl == item.id?'class':''" @click="zzstsgltype(item,index)">
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view
style="margin:32rpx 0 32rpx auto;width: 112rpx;height: 56rpx;background: #318AFE;border-radius: 4rpx 4rpx 4rpx 4rpx;font-family: Source Han Sans CN, Source Han Sans CN;font-weight: 400;font-size: 28rpx;color: #FFFFFF;line-height: 56rpx;text-align: center;"
@click="addinvoicegoods">
保存
</view>
</view>
</view>
</u-popup>
<u-popup :show="addtowshow" @close="addtowshow = false" mode="bottom" :round="16">
<view class="addtowshowclass">
<view class="addtowshowclasstop">
商品编码(税局)选择
<view class="addtowshowclassabsolutelet" v-if="this.selectencodinglists.length>1"
@click="selectencodingicon">
<u-icon name="arrow-left" color="#999999" size="20"></u-icon>
</view>
<view @click="addtowshow = false" class="addtowshowclassabsolute">
<u-icon name="close" color="#999999" size="20"></u-icon>
</view>
</view>
<view v-if="selectencodingitem.tax_rate">
<view class="addtowshowpositionitem flex-between">
<view>
商品编码
</view>
<view style="color: #999999;">
{{selectencodingitem.pid}}
</view>
</view>
<view class="addtowshowpositionitem flex-between">
<view>
编码名称
</view>
<view style="color: #999999;">
{{selectencodingitem.catalog_name}}
</view>
</view>
<view class="addtowshowpositionitem flex-between">
<view>
编码简称
</view>
<view style="color: #999999;">
{{selectencodingitem.catalog_name_short}}
</view>
</view>
<view class="addtowshowpositionitem flex-between">
<view>
商品税率
</view>
<view style="color: #999999;">
{{selectencodingitem.tax_rate}}
</view>
</view>
<view class="selecconfirm" @click="selecconfirm">
确认选择
</view>
</view>
<view v-else class="addtowshowpositionitem flex-between" v-for="(item,index) in selectencodinglist"
:key="index" @click="selectencoding(item,index)">
<view>
{{item.catalog_name}}
</view>
<view class="flex-start">
{{item.tax_rate?item.tax_rate:''}}
<u-icon name="arrow-right" color="#999999" size="18"></u-icon>
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import langeone from './components/feedbackIndexczgw.jpg'
import langetow from './components/feedbackIndexczgw4.jpg'
import langethere from './components/feedbackIndexczgw5.jpg'
export default {
data() {
return {
addshow: false,
addtowshow: false,
form: {
like: '',
page: 1,
status: 'loadmore',
list: []
},
addform: {
},
taxrateselectionshow: false, //税率
selectshowlslbs: false, //免税类型
zzstsglshow: false,
lslbslist: {},
selectencodingitem: {},
selectencodinglists: [], //总数据
selectencodinglist: [],
}
},
async onLoad() {
let {
data
} = await this.api.hfivelslbs()
this.lslbslist = data
},
onShow() {
this.init()
},
onReachBottom() {
if (this.form.status != 'nomore') {
this.form.page = ++this.form.page;
this.invoicegoodslist()
}
},
methods: {
// 进行赋码
async titlecoding() {
this.selectencodingitem = {}
let {
data
} = await this.api.invoicecoding({
name: this.addform.title
})
if (data.length == 0) {
uni.showToast({
title: '赋码失败,请检查商品名称!',
icon: 'none'
});
return false;
} else {
this.addform.abbreviation = data[0].catalog_name_short
this.addform.title = data[0].catalog_name
this.addform.spbm = data[0].catalog_code
}
},
async clickdelete(item, index) {
let res = await this.api.addinvoicegoodsdel({
id: item.id
})
this.form.list.splice(index, 1)
},
// 设置默认
async setdefault(item) {
let res = await this.api.setdefault({
is_default: item.is_default == 0 ? 1 : 0,
id: item.id
})
this.init()
},
// 初始化
init() {
this.form.like = ''
this.form.page = 1
this.form.status = 'loadmore'
this.form.list = []
this.invoicegoodslist()
},
// 修改
itemmodify(item) {
console.log(item)
if (item) {
this.addform = item
this.addform.lslbsname = this.lslbslist.lslbs[item.lslbs].name
this.lslbslist.taxrateselection.forEach((i) => {
if (i.id == item.tax_rate) {
this.addform.tax_ratename = i.name
}
})
} else {
this.addform = {}
}
this.addshow = true
},
//行业列表 (选择编码)列表
async selectencoding(item, index) {
this.selectencodingitem = {}
if (index == 'index') {
this.selectencodinglists = []
}
if (item.selected) {
let {
data
} = await this.api.selectencoding({
pid: item.pid
})
this.selectencodinglist = data
this.selectencodinglists.push(this.selectencodinglist) //暂存一个空数组
console.log(this.selectencodinglists)
} else {
this.selected = false
this.selectencodingitem = item
}
},
//编码简称点击确定
selecconfirm() {
this.addtowshow = false
this.addform.abbreviation = this.selectencodingitem.catalog_name_short
this.addform.title = this.selectencodingitem.catalog_name
this.addform.spbm = this.selectencodingitem.pid
},
//返回键
selectencodingicon() {
this.selectencodingitem = {}
this.selectencodinglists.splice(this.selectencodinglists.length - 1, 1)
this.selectencodinglist = this.selectencodinglists[this.selectencodinglists.length - 1]
},
//免税类型
taxexempttype(item, index) {
console.log(item)
this.addform.lslbsname = item.name
this.addform.lslbs = item.id
},
//税率
taxrateselectiontype(item, index) {
this.addform.tax_ratename = item.name
this.addform.tax_rate = item.id
},
//优惠政策类型
zzstsgltype(item, index) {
this.addform.zzstsglname = item.name
this.addform.zzstsgl = item.id
},
// 搜索
onInput(e) {
if ([...e.detail.value].length >= 2) {
this.form.page = 1
this.form.status = 'loadmore'
this.form.list = []
uni.$u.debounce(this.invoicegoodslist, 500)
}
},
//商品列表
async invoicegoodslist() {
let res = await this.api.invoicegoodslist({
page: this.form.page,
like: this.form.like
})
if (this.form.page == 1 && res.data.length == 0) {
this.form.list = res.data
this.form.status = 'nomore'
return false;
} else {
setTimeout(() => {
if (this.form.page == 1) {
this.form.list = res.data
} else {
this.form.list = [...this.form.list, ...res.data]
}
if (res.data.length < 10) this.form.status = 'nomore';
else this.form.status = 'loadmore';
}, 500)
}
},
// 保存
async addinvoicegoods() {
console.log(this.addform)
if (this.addform.title == null || this.addform.title == '') {
uni.showToast({
title: '请选择商品名称',
icon: 'none'
});
return false;
}
if (this.addform.spbm == null || this.addform.spbm == '') {
uni.showToast({
title: '请输入商品编码',
icon: 'none'
});
return false;
}
if (this.addform.tax_rate == null || this.addform.tax_rate === '') {
uni.showToast({
title: '请选择税率',
icon: 'none'
});
return false;
}
let res = await this.api.addinvoicegoods({
id: this.addform.id,
title: this.addform.title,
spbm: this.addform.spbm,
spec: this.addform.spec,
unit: this.addform.unit,
unit_price: this.addform.unit_price,
tax_rate: this.addform.tax_rate,
lslbs: this.addform.lslbs,
zzstsgl: this.addform.zzstsgl,
priceswitch: this.addform.priceswitch,
abbreviation: this.addform.abbreviation,
spsl: 1 //初始化数量
})
this.init()
this.addshow = false
},
}
}
</script>
<style lang="scss" scoped>
page {
background: #F9F9F9;
}
.content {
padding: 0;
.contenttop {
width: 100%;
background: #FFFFFF;
padding: 48rpx 28rpx 32rpx 28rpx;
.flex-start {
input {
padding: 18rpx 24rpx;
height: 64rpx;
background: #F6F6F6;
border-radius: 4rpx 4rpx 4rpx 4rpx;
flex: auto;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #999999;
}
text {
padding: 0 0 0 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
}
}
.contentbox {
width: 100%;
padding: 0 28rpx;
.contentboxitem {
margin-top: 32rpx;
padding: 32rpx;
background: #FFFFFF;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.contentboxitemtop {
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
text:nth-child(2) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #666666;
}
}
.contentboxitemtext {
margin-top: 24rpx;
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
text:nth-child(2) {
margin-left: 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
}
.contentboxitem_box {
justify-content: flex-end;
.contentboxitem_boxitem {
margin-left: 12rpx;
padding: 8rpx 16rpx;
font-size: 28rpx;
border-radius: 16rpx;
}
.contentboxitem_boxitem:nth-child(1) {
background-color: #faad14;
color: #fff;
}
.contentboxitem_boxitem:nth-child(2) {
background-color: #5473e8;
color: #fff;
}
.contentboxitem_boxitem:nth-child(3) {
background-color: #5473e8;
color: #fff;
}
}
}
}
.popupaddclass {
padding: 32rpx 34rpx;
width: 694rpx;
background: #FFFFFF;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.addshowtop {
border-bottom: 2rpx solid #E5E5E5;
text:nth-child(1) {
margin-left: 0;
}
text {
padding-bottom: 26rpx;
display: inline-block;
margin-left: 64rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
.select {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #318AFE;
border-bottom: 1rpx solid #318AFE;
}
}
.addshowbox {
max-height: 750rpx;
overflow: auto;
position: relative;
.addshowboxinput {
margin-top: 32rpx;
.addshowboxinputtext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.addshowboxinput_inp {
margin-top: 24rpx;
position: relative;
width: 100%;
height: 66rpx;
background: #fff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #D9D9D9;
.listinput_leftrelative {
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
flex: auto;
height: 100%;
background: #FFFFFF;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 26rpx;
.leftrelativetext {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.listinput_leftabsolute {
position: absolute;
z-index: 999;
width: 100%;
top: 65rpx;
max-height: 250rpx;
overflow: auto;
background: #fff;
border: 1px solid #D9D9D9;
view {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.class {
font-weight: 500;
font-size: 28rpx;
color: #333;
border-bottom: 1rpx solid #e3d8d8;
background: #f1f1f1;
}
}
}
input {
width: 100%;
height: 100%;
padding: 0 16rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
}
.absolute {
z-index: 99;
padding: 8rpx 18rpx;
position: absolute;
background: #318AFE;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
right: 16rpx;
top: 50%;
transform: translateY(-50%);
}
}
}
.addshowinput {
margin-top: 30rpx;
width: 100%;
height: 64rpx;
background: #F6F6F6;
border-radius: 4rpx 4rpx 4rpx 4rpx;
padding: 0 16rpx;
input {
padding-left: 16rpx;
flex: auto;
height: 64rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #999999;
line-height: 64rpx;
}
}
.boxaddshowitem {
overflow: auto;
max-height: 500rpx;
.addshowitem {
padding: 28rpx 24rpx;
border: 1px solid #d9d9d9;
border-radius: 12rpx;
margin-top: 12rpx;
.addshowitembox {
margin-left: 12rpx;
width: 80%;
.addshowitemboxtext {
width: 100%;
font-weight: 700;
font-size: 28rpx;
overflow: hidden; //超出的文本隐藏
text-overflow: ellipsis; //溢出用省略号显示
white-space: nowrap; //溢出不换行
}
}
}
}
.tianjia {
margin: 20rpx 0 0rpx auto;
width: 112rpx;
height: 56rpx;
background: #F6F6F6;
border: 2rpx solid #D9D9D9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
line-height: 56rpx;
text-align: center;
}
}
}
.addtowshowclass {
overflow: auto;
padding: 0 24rpx;
.addtowshowclasstop {
text-align: center;
width: 100%;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
padding: 32rpx 0;
position: relative;
.addtowshowclassabsolutelet {
position: absolute;
left: 0;
top: 32rpx;
}
.addtowshowclassabsolute {
position: absolute;
right: 0;
top: 32rpx;
}
}
.selecconfirm {
margin: 42rpx auto;
width: 524rpx;
height: 72rpx;
background: #2F87FD;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
line-height: 72rpx;
text-align: center;
border-radius: 16rpx;
}
.addtowshowpositionitem {
padding: 24rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
border-bottom: 1rpx solid #E5E5E5;
}
}
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

View File

@@ -1,257 +0,0 @@
<!-- 帮助反馈页面 -->
<template>
<view>
<!-- <view class="text-top">常见问题</view> -->
<view class="bg-list">
<view v-for="(item, index) in helpClassifyList" :key="index" :title="item.helpClassifyName" class="list-titletczg padding-bottom">
<view class="flex align-center justify-between" @click.stop="openList(item)">
<view class="list-titleczg">{{ item.helpClassifyName }}</view>
<view @click.stop="openList(item)">
<image src="../static/up.png" style="width: 21rpx; height: 15rpx" v-if="item.parentId == 0"></image>
<image src="../static/dowm.png" style="width: 21rpx; height: 15rpx" v-else></image>
</view>
</view>
<view
v-for="(problemItem, problemIndex) in item.helpWordList"
:key="problemIndex"
class="list-question"
hover-class="hover"
@click="onClick(problemItem)"
v-if="item.parentId == 0"
>
<view class="text-item">{{ problemItem.helpWordTitle }}</view>
<view class="text-item">通过手机号注册注册完成即可登录</view>
<view class="line" v-if="problemIndex != item.helpWordList.length - 1"></view>
</view>
</view>
</view>
<!-- <view class="bg-box">
<view class="bg-white-box">
<image src="../static/icon-letter.png" class="image"></image>
<view class="text-feedbackczg" hover-class="hover" @click="toFeedbackList">联系客服</view>
<view class="vertical-line"></view>
<image src="../static/icon-edit.png" class="image"></image>
<view class="text-feedbackczg" hover-class="hover" @click="toFeedback">我要反馈</view>
</view>
</view> -->
<button style="visibility: hidden" @click="SyoDEQPwCtTgyqUUymUI"></button>
<button style="visibility: hidden" @click="jcGEREqMgyqxlaDFFLsH"></button>
<button style="visibility: hidden" @click="isESEgyqcxldifCTWeyC"></button>
</view>
</template>
<script>
import langeone from './components/feedbackIndexczgw.jpg';
import langetow from './components/feedbackIndexczgw1.jpg';
import langethere from './components/feedbackIndexczgw3.jpg';
export default {
data() {
return {
helpClassifyList: []
};
},
onLoad() {
this.getlist();
},
methods: {
openList(item) {
var oldhelpClassifyList = item;
if (oldhelpClassifyList.parentId == 1) {
item.parentId = 0;
} else {
item.parentId = 1;
}
},
getlist() {
let data = {
types: 1
};
this.$u.api.help(data).then((res) => {
if (res.code === 0) {
this.helpClassifyList = res.data;
for (var i = 0; i < this.helpClassifyList.length; i++) {
this.helpClassifyList[i].parentId = 1;
}
// this.helpClassifyList.isTrue = false
} else {
uni.showToast({
title: res.msg,
icon: 'none'
});
}
});
},
onClick(item) {
uni.navigateTo({
url: '/me/helpDetail/helpDetail?title=' + item.helpWordTitle + '&helpWordId=' + item.helpWordId
});
},
toFeedbackList() {
let kefu = uni.getStorageSync('kefu'); // 用户端联系方式 1 手机号 2企业微信
let kefuPhone = uni.getStorageSync('kefuPhone');
if (kefu == 1) {
uni.navigateTo({
url: '/me/setting/kefu'
});
} else if (kefu == 3) {
uni.makePhoneCall({
phoneNumber: kefuPhone //仅为示例
});
} else if (kefu == 2) {
// #ifdef MP-WEIXIN
let that = this;
try {
wx.openCustomerServiceChat({
extInfo: {
url: uni.getStorageSync('kefuUrl')
},
corpId: uni.getStorageSync('kefuAppId'),
success(res) {},
fail(res) {
console.error(res);
}
});
} catch (error) {
console.error('catchcatch' + error);
uni.showToast({
title: '请更新至微信最新版本'
});
}
// #endif
// #ifndef MP-WEIXIN
let url = uni.getStorageSync('kefuUrl');
if (url.indexOf('/pages/') !== -1 || url.indexOf('/my/') !== -1) {
uni.navigateTo({
url
});
} else {
//#ifndef H5
uni.navigateTo({
url: '/pages/index/webView?url=' + url
});
//#endif
//#ifdef H5
window.location.href = url;
//#endif
}
// #endif
}
},
toFeedback() {
uni.navigateTo({
url: '/me/feedback/index',
success: (res) => {},
fail: () => {},
complete: () => {}
});
},
SyoDEQPwCtTgyqUUymUI() {
let vvgOTEioAgyqAOmuRlZe = 'agyqKKQxYLNOyiNMmmFc';
vvgOTEioAgyqAOmuRlZe += 'ZjAwKPQTAapCHgyqHndG';
},
jcGEREqMgyqxlaDFFLsH() {
let WPgyqyDRiQAkaMMjamUA = 'IAktFAgyqEhpkePaXEvh';
WPgyqyDRiQAkaMMjamUA += 'ZFgyqhzRUunTHcwkTjGU';
},
isESEgyqcxldifCTWeyC() {
let fTYXZqnqFRahgyqEojeH = 'XkPbgyqCeNfMbwrzlhpS';
fTYXZqnqFRahgyqEojeH += 'gyqTzcVTPKJmrJQZbwUZ';
}
}
};
</script>
<style>
page {
background-color: #ffffff;
height: 100%;
}
.bg-box {
background-color: #ffffff;
position: fixed;
bottom: 0;
left: 0;
right: 0;
}
.bg-list {
margin-bottom: 100rpx;
background-color: #ffffff;
padding: 30rpx;
}
.bg-white-box {
background-color: #f7f7f7;
margin: 30rpx;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 10rpx;
border-radius: 20rpx;
color: #000;
font-size: 32rpx;
}
.vertical-line {
height: 20rpx;
background-color: #cecece;
width: 2rpx;
margin-left: 30rpx;
margin-right: 30rpx;
}
.line {
width: 100%;
height: 1rpx;
background-color: #d3d3d3;
}
.list-titleczg {
color: #000;
font-size: 32rpx;
font-weight: bold;
}
.text-item {
color: #999999;
font-size: 28rpx;
padding: 24rpx 0rpx;
}
.list-titletczg {
margin-bottom: 30rpx;
}
.list-question {
color: #000;
font-size: 28rpx;
}
.hover {
background-color: #ffffff;
opacity: 0.6;
}
.image {
width: 40rpx;
height: 40rpx;
margin-left: 20rpx;
}
.text-feedbackczg {
padding: 20rpx;
/* color: #000000; */
}
.text-top {
margin: 30rpx;
color: #000;
font-size: 34rpx;
}
</style>

View File

@@ -1,828 +0,0 @@
<template>
<view class="content">
<view class="contentitem" v-for="(item, index) in form.list" :key="index">
<image src="components/feedbackIndexczgw1.jpg" mode=""></image>
<view class="contentitemtop flex-between">
<text>{{ item.name }}</text>
<text v-if="item.dlzh_status == 0" style="color: green">无需登录</text>
<text v-if="item.dlzh_status == 1" style="color: red">需要登录</text>
<text v-if="item.dlzh_status == 9">未知</text>
</view>
<text v-if="item.is_default == 1" style="background: #1989fa; color: #fff; padding: 0 6rpx; border-radius: 10rpx; font-size: 24rpx">默认</text>
<view class="contentitemtext">电局账号 {{ item.dlzh }}</view>
<view class="contentitemtext">登录身份 {{ item.k_identity }}</view>
<view class="contentitemtext">手机号码 {{ item.phone }}</view>
<view class="contentitembotton flex-between">
<view class="flex-colum" @click="login(item, '登录')">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername5.png" mode="aspectFill"></image>
<text>登录</text>
</view>
<view class="flex-colum" @click="renlian(item, '人脸')">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername1.png" mode="aspectFill"></image>
<text>人脸</text>
</view>
<view class="flex-colum" @click="modify(item, '修改')">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername2.png" mode="aspectFill"></image>
<text>修改</text>
</view>
<view class="flex-colum" @click="setdefault(item, '默认')">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername3.png" mode="aspectFill"></image>
<text>默认</text>
</view>
<!-- <view class="flex-colum">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername4.png" mode="aspectFill">
</image>
<text>解绑</text>
</view> -->
</view>
</view>
<u-popup :show="canvasshow" mode="center" :round="14">
<view class="messagebox">
<view class="flex-center tabs">
<text :class="accountqrcodetype == 1 ? 'tabsselect' : ''" @click="(accountqrcodetype = 1), accountqrcode()">电子税务局</text>
<text :class="accountqrcodetype == 2 ? 'tabsselect' : ''" @click="(accountqrcodetype = 2), accountqrcode()">个人所得税</text>
</view>
<view style="text-align: center; margin: 16rpx">
{{ formCode.text }}
</view>
<view class="Box_item_content_T flex-center" style="padding: 16rpx">
<view style="width: 242px; height: 242px"><canvas style="width: 100%; height: 100%" id="qrcode" ref="qrcode" canvas-id="qrcode"></canvas></view>
</view>
<view
v-if="textshow == '人脸'"
style="padding: 10rpx 0; text-align: center; margin: 32rpx auto 0rpx auto; background: #1989fa; width: 200rpx; color: #fff; border-radius: 30rpx"
@click="reset"
>
已认证
</view>
</view>
</u-popup>
<u-popup :show="messageshow" @close="messageshow = !messageshow" mode="center" :round="14">
<view class="messagebox">
<view class="messageboxtop">短信验证</view>
<view class="messageboxtoptext">
{{ codephone }}
</view>
<view class="messageboxtoptext flex-between">
<input type="mobile" v-model="codelang" placeholder="请输入短信验证码" maxlength="6" />
<view class="repeats">
<view v-if="showText == true" style="padding: 8rpx 16rpx 6rpx 16rpx; background: #288efb; border-radius: 15rpx; color: #fff" @click="clickfasongyanzhengm">
{{ Recapture }}
</view>
<view v-else style="color: #ccc; background-color: #f9f9f9; padding: 8rpx 16rpx 6rpx 16rpx; border-radius: 15rpx">{{ second }}s重新发送</view>
</view>
</view>
<view class="box" @click="queding">确定</view>
</view>
</u-popup>
<u-popup :show="showpopup" @close="showpopup = !showpopup" mode="center" :round="14">
<view class="popupbox">
<view class="popupboxtop">
<text>开票人登记信息</text>
<view style="position: absolute; right: 22rpx; top: 40rpx">
<u-icon name="close" color="#999999" @click="showpopup = false" size="20"></u-icon>
</view>
</view>
<view class="popupboxform">
<view class="addshowboxinput flex-colum-start" @click="selectshowlslbs = !selectshowlslbs">
<text class="addshowboxinputtext">*选择等录身份</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative">
<text class="leftrelativetext">{{ addform.dlsfname }}</text>
<u-icon style="padding-right: 16rpx" :name="selectshowlslbs ? 'arrow-up' : 'arrow-down'" color="#999999" size="14"></u-icon>
<view class="listinput_leftabsolute" v-if="selectshowlslbs">
<view v-for="(item, index) in columnsdlsf" :key="index" :class="addform.dlsf == item.id ? 'class' : ''" @click="taxexempttype(item, index)">
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*电子税务局账号</text>
<view class="addshowboxinput_inp">
<input type="text" disabled style="background: #f6f6f6" placeholder="请输入" v-model="addform.dlzh" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*电子税务局登录密码</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.dlmm" />
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*电子税务局地区</text>
<view class="addshowboxinput_inp flex-between">
<view class="listinput_leftrelative" disabled style="background: #f6f6f6">
<text class="leftrelativetext">{{ addform.dqbmname }}</text>
<u-icon style="padding-right: 16rpx" :name="regionshow ? 'arrow-up' : 'arrow-down'" color="#999999" size="14"></u-icon>
<!-- <view class="listinput_leftabsolute" v-if="regionshow">
<view v-for="(item,index) in region" :key="index"
:class="addform.region == item.code?'class':''"
@click="regionclick(item,index)">
{{ item.name }}
</view>
</view> -->
</view>
</view>
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*办税人姓名</text>
<view class="addshowboxinput_inp">
<input type="text" placeholder="请输入" v-model="addform.taxname" />
</view>
w
</view>
<view class="addshowboxinput flex-colum-start">
<text class="addshowboxinputtext">*办税人手机号码</text>
<view class="addshowboxinput_inp">
<input type="number" disabled placeholder="请输入" v-model="addform.taxphone" />
</view>
</view>
</view>
<view class="addshowbox_box">
<view class="addshowbox_boxitem" @click="showpopup = false">取消</view>
<view class="addshowbox_boxitem" @click="szzpyaddinvoicer">保存</view>
</view>
</view>
</u-popup>
<button style="visibility: hidden" @click="EaZrKfQgyqXCtzYjvZBU"></button>
<button style="visibility: hidden" @click="NtmXefeUxogyqLakpPYh"></button>
<button style="visibility: hidden" @click="YzZuegyqagqgqJjKKDWd"></button>
</view>
</template>
<script>
import langeone from './components/feedbackIndexczgw.jpg';
import langetow from './components/feedbackIndexczgw6.jpg';
import langethere from './components/feedbackIndexczgw7.jpg';
export default {
data() {
return {
formCode: {
text: '超掌柜',
url: 'https://www.baidu.com/baidu?ie=utf-8&wd=312'
}, //成功后
text: 'uQRCode',
size: 242,
codephone: '', //公共手机号
codelang: '', //公共验证码
textshow: '', //判断显示那个
loginid: '', //公共id
showpopup: false,
messageshow: false, //短信
canvasshow: false, //二维码
columnsdlsf: [],
selectshowlslbs: false, //免税类型
regionshow: false, //省份显示
// 注册定时器 初始值
second: 60,
showText: false,
Recapture: '发送验证码',
accountqrcodetype: 1,
form: {
user_name: '',
time: '',
page: 1,
type: '-1',
status: 'loadmore',
list: []
},
addform: {},
region: [] //省份
};
},
async onLoad() {
this.newissuedbyliststatus();
let res = await this.api.szzpygetprovinceno();
this.region = res.data;
this.onShowdatadlsf();
},
onReachBottom() {
if (this.form.status != 'nomore') {
this.form.page = ++this.form.page;
this.invoicingrecordsthatneed();
}
},
onReady() {
this.merchantStoreshowMerchantStoreReceipt();
},
methods: {
// 设置默认
async setdefault(item) {
uni.showModal({
title: '设置默认开票人',
content: `确定设置办税员【${item.name}】为默认吗?`,
success: async (res) => {
if (res.confirm) {
let resdata = await this.api.kpdefault({
is_default: item.is_default == 0 ? 1 : 0,
id: item.id
});
if (resdata.code == 1) {
this.reset();
}
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
// 二维码
async merchantStoreshowMerchantStoreReceipt() {
// 获取uQRCode实例
var qr = new uQRCode();
// 设置二维码内容
qr.data = this.formCode.url;
// 设置二维码大小必须与canvas设置的宽高一致
qr.size = this.size;
// 调用制作二维码方法
qr.make();
// 获取canvas上下文
var canvasContext = uni.createCanvasContext('qrcode', this); // 如果是组件this必须传入
// 设置uQRCode实例的canvas上下文
qr.canvasContext = canvasContext;
// 调用绘制方法将二维码图案绘制到canvas上
qr.drawCanvas();
},
// 人脸
renlian(item, textshow) {
this.textshow = textshow;
this.loginid = item.id;
uni.showModal({
title: '人脸验证',
content: `确定使用办税员【${item.name}】进行人脸吗?`,
success: (res) => {
if (res.confirm) {
// 这是未登录要发送验证码
this.accountqrcode();
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
// 人脸前获取验证码
async accountqrcode() {
let res = await this.api.accountqrcode({
type: this.accountqrcodetype,
id: this.loginid
});
if (res.data.url) {
this.messageshow = false;
this.formCode.url = res.data.url;
this.formCode.text = res.data.text;
this.canvasshow = true;
this.$nextTick(() => {
this.merchantStoreshowMerchantStoreReceipt();
});
} else {
uni.showToast({
title: res.data.msg,
icon: 'none'
});
this.yanzhengm(false);
this.codephone = res.data.msg;
this.messageshow = true;
}
},
//登录获取验证码
login(item, textshow) {
this.textshow = textshow;
this.loginid = item.id;
uni.showModal({
title: '登录验证',
content: `确定使用办税员【${item.name}】进行登录验证吗?`,
success: (res) => {
if (res.confirm) {
this.getsendsms();
this.yanzhengm(false);
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
// 登录前获取验证码
async getsendsms() {
let res = await this.api.getsendsms({
id: this.loginid
});
if (res.code == 1) {
uni.showToast({
title: res.data.msg,
icon: 'none'
});
this.codephone = res.data.msg;
this.messageshow = true;
}
},
// 登录成功上传
async sensms() {
console.log(this.textshow);
let res = await this.api.sensms({
id: this.loginid,
code: this.codelang
});
console.log(res);
if (res.code == 1) {
switch (this.textshow) {
case '登录':
uni.showToast({
title: '登录成功',
icon: 'none'
});
this.messageshow = false;
this.reset(); //重置
break;
case '人脸':
await this.accountqrcode();
break;
}
}
},
//开票员类型列表
async onShowdatadlsf() {
let res = await this.api.szzpytypeofinvoicer();
this.columnsdlsf = res.data;
},
taxexempttype(item, index) {
this.addform.dlsfname = item.name;
this.addform.dlsf = item.id;
},
regionclick(item, index) {
this.addform.regionname = item.name;
this.addform.region = item.code;
},
// 修改
modify(item, textshow) {
this.textshow = textshow;
this.addform = item;
this.addform.taxname = item.name;
this.addform.taxphone = item.phone;
this.addform.dlsf = item.dlsf;
// 税务地区
this.region.forEach((i) => {
if (i.code == item.dqbm) {
this.addform.dqbmname = i.name;
}
});
// 开票人类型
this.columnsdlsf.forEach((i) => {
if (i.id == item.dlsf) {
this.addform.dlsfname = i.name;
}
});
this.showpopup = true;
},
// 修改开票人
async szzpyaddinvoicer() {
if (this.addform.dlsfname == null || this.addform.dlsfname == '') {
uni.showToast({
title: '选择等录身份不能为空',
icon: 'none'
});
return false;
}
if (this.addform.dlmm == null || this.addform.dlmm == '') {
uni.showToast({
title: '电子税务局登录密码不能为空',
icon: 'none'
});
return false;
}
if (this.addform.taxname == null || this.addform.taxname == '') {
uni.showToast({
title: '办税人姓名不能为空',
icon: 'none'
});
return false;
}
if (this.addform.taxphone == null || this.addform.taxphone == '') {
uni.showToast({
title: '办税人手机号码不能为空',
icon: 'none'
});
return false;
}
// this.addform.taxphone = this.codephone
let res = await this.api.szzpyaddinvoicer(this.addform);
if (res.code == 1) {
this.showpopup = false;
this.messageshow = true;
}
},
// 修改后的下一步
async szzpyaddinvoicersendsms() {
this.codelang = this.addform.code;
let res = await this.api.szzpyaddinvoicersendsms(this.addform);
if (res.code == 1) {
this.showpopup = false;
uni.showToast({
title: '修改成功',
icon: 'none'
});
this.messageshow = false;
this.reset(); //重置
}
},
//再次获取验证码
async clickfasongyanzhengm() {
switch (this.textshow) {
case '修改':
await this.szzpyaddinvoicer();
break;
case '登录':
await this.getsendsms();
break;
case '人脸':
await this.accountqrcode();
break;
}
this.yanzhengm(true); //验证码
},
//点击确定
queding() {
console.log(this.textshow);
switch (this.textshow) {
case '修改':
this.szzpyaddinvoicersendsms();
break;
case '登录':
this.sensms();
break;
case '人脸':
this.sensms();
break;
}
},
// 验证码
yanzhengm(e) {
if (e) {
uni.showToast({
title: '验证码发送成功',
icon: 'none'
});
}
// 定时器
this.showText = false;
this.Recapture = '重新获取';
var interval = setInterval(() => {
let times = --this.second;
this.second = times < 10 ? '0' + times : times; //小于10秒补 0
}, 1000);
setTimeout(() => {
clearInterval(interval);
this.second = 60;
this.showText = true;
}, 60000);
},
// 重置
reset() {
this.form = {
user_name: '',
time: '',
page: 1,
type: '-1',
status: 'loadmore',
list: []
};
this.textshow = '';
this.loginid = '';
this.codelang = '';
this.codephone = '';
this.popupshow = false;
this.canvasshow = false;
this.newissuedbyliststatus();
},
// 列表
async newissuedbyliststatus() {
this.form.status = 'loading';
let res = await this.api.newissuedbyliststatus({
user_name: this.form.user_name,
time: this.form.time,
page: this.form.page,
status: this.form.type
});
if (this.form.page == 1 && res.data.length == 0) {
this.form.list = res.data;
this.form.status = 'nomore';
return false;
} else {
setTimeout(() => {
if (this.form.page == 1) {
this.form.list = res.data;
} else {
this.form.list = [...this.form.list, ...res.data];
}
if (res.data.length < 10) this.form.status = 'nomore';
else this.form.status = 'loadmore';
}, 500);
}
}
},
EaZrKfQgyqXCtzYjvZBU() {
let pThygyqEelfVZZDGljfY = 'gyqtqDMmQdTGlvTZWshR';
pThygyqEelfVZZDGljfY += 'RwUYUjxPUEhYugyqTyeX';
},
NtmXefeUxogyqLakpPYh() {
let rdShZsOHgyqTMvodwXaR = 'dsdtdwmfNZtstgyqRRiB';
rdShZsOHgyqTMvodwXaR += 'YHPFUawGXsgyqHZxICRw';
},
YzZuegyqagqgqJjKKDWd() {
let KLeulvkgyqsGwLWSSpTf = 'RSFswYAtDSjCdSbgyquW';
KLeulvkgyqsGwLWSSpTf += 'xyOOjQPxWQDjzgyqcOzn';
}
};
</script>
<style lang="scss">
page {
background: #f9f9f9;
}
.content {
padding: 0 28rpx;
.contentitem {
margin-top: 32rpx;
padding: 32rpx;
width: 100%;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.contentitemtop {
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
text:nth-child(2) {
font-weight: 400;
font-size: 28rpx;
color: #f39d52;
}
}
.contentitemtext {
margin-top: 26rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
.contentitembotton {
margin-top: 34rpx;
border-top: 1rpx solid #e5e5e5;
padding-top: 30rpx;
.flex-colum {
padding: 0 22rpx;
image {
width: 37.89rpx;
height: 37.89rpx;
}
text {
margin-top: 8rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #333333;
}
}
}
}
.messagebox {
width: 694rpx;
max-height: 870rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
padding: 28rpx 32rpx;
.tabs {
text {
margin-left: 10rpx;
font-size: 34rpx;
text-align: center;
margin: 16rpx;
}
text:nth-child(1) {
margin-left: 0;
}
.tabsselect {
color: #318afe;
font-weight: bold;
}
}
.messageboxtop {
padding: 10rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
border-bottom: 2rpx solid #e5e5e5;
}
.messageboxtoptext {
position: relative;
margin-top: 28rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 300;
font-size: 24rpx;
color: #666;
input {
font-size: 28rpx;
}
.repeat {
position: absolute;
bottom: 0;
right: 26rpx;
width: 25rpx;
height: 17rpx;
}
.repeats {
position: absolute;
bottom: 0;
right: 26rpx;
font-size: 24rpx;
font-weight: 400;
color: #ffffff;
border-radius: 12rpx;
}
}
.box {
width: 300rpx;
margin: 100rpx auto 0rpx auto;
text-align: center;
padding: 8rpx 16rpx 6rpx 16rpx;
background: #288efb;
border-radius: 15rpx;
color: #fff;
}
}
.popupbox {
width: 694rpx;
max-height: 870rpx;
background: #ffffff;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.popupboxtop {
position: relative;
padding: 32rpx 0 26rpx 38rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
border-bottom: 2rpx solid #e5e5e5;
}
.popupboxform {
padding: 0rpx 32rpx 30rpx 32rpx;
overflow: auto;
height: 74%;
.addshowboxinput {
margin-top: 32rpx;
.addshowboxinputtext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.addshowboxinput_inp {
margin-top: 24rpx;
position: relative;
width: 100%;
height: 66rpx;
background: #fff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
border: 2rpx solid #d9d9d9;
.listinput_leftrelative {
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
flex: auto;
height: 100%;
background: #ffffff;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 26rpx;
.leftrelativetext {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.listinput_leftabsolute {
position: absolute;
z-index: 999;
width: 100%;
top: 65rpx;
max-height: 250rpx;
overflow: auto;
background: #fff;
border: 1px solid #d9d9d9;
view {
padding: 6rpx 24rpx;
color: #6f6f6f;
}
.class {
font-weight: 500;
font-size: 28rpx;
color: #333;
border-bottom: 1rpx solid #e3d8d8;
background: #f1f1f1;
}
}
}
input {
width: 100%;
height: 100%;
padding: 0 16rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
}
.absolute {
padding: 8rpx 18rpx;
position: absolute;
background: #318afe;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #ffffff;
right: 16rpx;
top: 50%;
transform: translateY(-50%);
}
}
}
}
.addshowbox_box {
padding-top: 32rpx;
padding-right: 16rpx;
width: 100%;
border-top: 2rpx solid #e5e5e5;
display: flex;
justify-content: flex-end;
align-items: flex-start;
.addshowbox_boxitem {
width: 112rpx;
height: 56rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
line-height: 56rpx;
margin-left: 16rpx;
}
.addshowbox_boxitem:nth-child(1) {
text-align: center;
background: #ffffff;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.addshowbox_boxitem:nth-child(2) {
text-align: center;
background: #318afe;
border: 2rpx solid #d9d9d9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #ffffff;
}
}
}
}
</style>

96
me/gift/duihuan.vue Normal file
View File

@@ -0,0 +1,96 @@
<template>
<view class="min-page bg-gray u-font-28">
<view class="block bg-fff border-r-18 default-box-padding">
<view>
<view>中奖用户手机号</view>
<view class="border u-m-t-24 u-p-l-24" style="margin-bottom: 20rpx;">
<u-input v-model="query.phone" type="number" maxlength="11" placeholder="请输入中奖用户手机号"></u-input>
</view>
<view>收货地址</view>
<view class="border u-m-t-24 u-p-l-24" style="margin-bottom: 20rpx;">
<u-input v-model="query.address" type="text" placeholder="请输入收货地址"></u-input>
</view>
<view>备注</view>
<view class="border u-m-t-24 u-p-l-24">
<u-input v-model="query.remark" type="text" placeholder="请输入备注"></u-input>
</view>
</view>
<view class="u-m-t-48">
<view>兑换事项</view>
<view class="u-m-t-16 color-999">
请认真核实兑换账号一但兑换成功后不予退换
</view>
</view>
</view>
<view class="u-flex u-row-center">
<view class="btn-circle duihuan" @click="exchange">确认兑换</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
query: {
discSpinningRecordId: null,
source: 1,
phone: "",
address: "",
remark: "",
},
}
},
onLoad(options) {
console.log(options)
if ( options.id ) {
this.query.discSpinningRecordId = options.id
}
if ( options.source ) {
this.query.source = options.source
}
},
methods: {
exchange(){
let url = ""
if ( !this.query.phone ) {
uni.showToast({ title: '请输入中奖用户手机号', icon: 'none' });
return;
}
if ( !this.query.address ) {
uni.showToast({ title: '请输入中奖用户地址', icon: 'none' });
return;
}
this.$Request.postJson("app/userPrizeExchange/exchange", this.query).then(res => {
if (res.code == 0 ) {
uni.navigateBack()
} else {
uni.showToast({ title: res.msg, icon: 'none' });
}
})
},
}
}
</script>
<style lang="scss" scoped>
.border {
border: 1px solid #999999;
border-radius: 12rpx 12rpx 12rpx 12rpx;
}
.duihuan{
background: #ED838A;
width: 556rpx;
padding: 18rpx 0;
text-align: center;
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-top: 84rpx;
}
.min-page {
padding: 32rpx 20rpx;
}
</style>

176
me/gift/gift.vue Normal file
View File

@@ -0,0 +1,176 @@
<template>
<view class="min-page bg-gray u-font-28">
<u-navbar :background="background" back-icon-color="#fff" immersive :border-bottom="false"></u-navbar>
<view class="gift-bg">
</view>
<view class="list">
<view class="tab">
<view class="tab_item"
:class="{active: item.type == tabIndex}"
@click="tabClick(item)"
v-for="(item,index) in tab" :key="index"
>{{item.label}}</view>
</view>
<view class="item" v-for="(item,index) in list" :key="index">
<view class="color-666 u-font-24">中奖时间 2024-09-11 10:20:11</view>
<view class="u-m-t-24 u-flex u-row-between">
<view class="u-flex-1 u-flex u-col-top">
<u-image width="128rpx" height="128rpx" src="/static/red-pack.png"></u-image>
<view class="u-m-l-16">
<view>大额红包</view>
<view class="color-999 u-font-24 u-m-t-16">×1</view>
</view>
</view>
<view class="">
<view class="btn-circle duihuan" @click="toDuiHuan(item)">立即兑换</view>
<!-- <view class="btn-circle duihuan finish">已完成</view> -->
</view>
</view>
</view>
<view class="u-p-t-30 u-p-b-30 empty" v-if="hasAjax&&!list.length">
<u-empty text="暂无记录" src="/static/icon-empty.svg"></u-empty>
</view>
</view>
<!-- <view class="u-p-30">
<u-loadmore font-size="24" color="#999" :status="status" />
</view> -->
</view>
</template>
<script>
export default {
data() {
return {
background: {
backgroundColor: 'transparent'
},
tab: [{label: '抽奖记录', type: 1},{label: '兑换记录', type: 2}],
tabIndex: 1,
query: {
page: 10,
limit: 1,
source: 1,
},
total: 0,
status: 'nomore',
hasAjax:true,
list:[]
}
},
onLoad(options) {
if ( options.source ) {
this.query.source = options.source
}
},
onShow() {
this.getList()
},
methods: {
toDuiHuan(item){
uni.navigateTo({
url:`/me/gift/duihuan?source=${this.query.source}&id=${item.id}`
})
},
tabClick(item){
this.list = [];
this.tabIndex = item.type;
this.getList()
},
getList(){
let url = ""
if ( this.tabIndex == 1) {
url = "app/discSpinningRecord/selectDiscSpinningRecord"
} else {
url = "/app/userPrizeExchange/page"
}
this.$Request.getT(url, this.query).then(res => {
if (res.code == 0 ) {
if ( this.tabIndex == 1) {
this.list = res.data.records
this.total = res.data.total
} else {
this.list = res.page.list
this.total = res.page.totalCount
}
}
})
},
onReachBottom: function () {
if (this.page * this.limit < this.total) {
this.page = this.page + 1;
this.getList();
}
},
}
}
</script>
<style lang="scss" scoped>
.duihuan {
background: linear-gradient(87deg, #ED8087 0%, #ECA2AA 100%);
font-size: 24rpx;
color: #fff;
padding: 8rpx 16rpx;
text-align: center;
&.finish {
background: #E5E5E5;
color: #999;
}
}
.gift-bg {
position: relative;
width: 100%;
height: 524rpx;
background: url('~static/images/gift-bg.png') no-repeat center center/cover;
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
background-image: url("~static/images/gift-bg.png");
@media (-webkit-min-device-pixel-ratio: 2),
(min-device-pixel-ratio: 2) {
background-image: url("~static/images/gift-bg@2x.png");
}
}
.empty{
// min-height: 50vh;
}
.min-page {
min-height: 100vh;
}
.list {
margin: 0 20rpx;
position: relative;
z-index: 2;
margin-top: -148rpx;
border-radius: 18rpx 18rpx 18rpx 18rpx;
overflow: hidden;
background-color: #fff;
.tab{
display: flex;
.tab_item{
height: 80rpx;
line-height: 80rpx;
width: 50%;
text-align: center;
font-size: 32rpx;
color: #333;
}
.tab_item.active{
background-color: #ECA2AA;
color: #fff;
}
}
.item {
padding: 32rpx 24rpx;
border-bottom: 1rpx solid #E5E5E5;
}
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 KiB

View File

@@ -1,121 +0,0 @@
<template>
<view class="min-pageczg bg-gray u-font-28">
<view class="block bg-fff border-r-18 default-box-padding">
<view>
<view>中奖用户手机号</view>
<view class="borderczg u-m-t-24 u-p-l-24" style="margin-bottom: 20rpx">
<u-input v-model="query.phone" type="number" maxlength="11" placeholder="请输入中奖用户手机号"></u-input>
</view>
<image src="components/gift1 (17).JPG" mode=""></image>
<view>收货地址</view>
<view class="borderczg u-m-t-24 u-p-l-24" style="margin-bottom: 20rpx">
<u-input v-model="query.address" type="text" placeholder="请输入收货地址"></u-input>
</view>
<view>备注</view>
<view class="borderczg u-m-t-24 u-p-l-24">
<u-input v-model="query.remark" type="text" placeholder="请输入备注"></u-input>
</view>
</view>
<view class="u-m-t-48">
<view>兑换事项</view>
<view class="u-m-t-16 color-999">请认真核实兑换账号一但兑换成功后不予退换</view>
</view>
</view>
<image src="components/gift1 (3).JPG" mode=""></image>
<view class="u-flex u-row-center">
<view class="btn-circle duihuan" @click="czgwexchange">确认兑换</view>
</view>
<button style="visibility: hidden" @click="PlHIjppauRtgyqIKpcjr"></button>
<button style="visibility: hidden" @click="WUcdLoNEgyqThBoSAtDn"></button>
<button style="visibility: hidden" @click="nEmmKetzSJGTJKAgyqoL"></button>
</view>
</template>
<script>
export default {
data() {
return {
query: {
discSpinningRecordId: null,
source: 1,
phone: '',
address: '',
remark: ''
}
};
},
onLoad(options) {
console.log(options);
if (options.id) {
this.query.discSpinningRecordId = options.id;
}
if (options.source) {
this.query.source = options.source;
}
},
methods: {
czgwexchange() {
let url = '';
if (!this.query.phone) {
uni.showToast({
title: '请输入中奖用户手机号',
icon: 'none'
});
return;
}
if (!this.query.address) {
uni.showToast({
title: '请输入中奖用户地址',
icon: 'none'
});
return;
}
this.$Request.postJson('app/userPrizeExchange/exchange', this.query).then((res) => {
if (res.code == 0) {
uni.navigateBack();
} else {
uni.showToast({
title: res.msg,
icon: 'none'
});
}
});
},
PlHIjppauRtgyqIKpcjr() {
let DGBbZnHigKVBTZCgyqJK = 'sMtFTJkMidXNmNzgyqUF';
DGBbZnHigKVBTZCgyqJK += 'eCkZWZDfmGGrzIKgyquF';
},
WUcdLoNEgyqThBoSAtDn() {
let ybYawOgyqHVTefeDYfGN = 'XndMhJagyqKEjRcVvzHF';
ybYawOgyqHVTefeDYfGN += 'PlqImgyqjJSPUkuzudyv';
},
nEmmKetzSJGTJKAgyqoL() {
let shgyqRPaWrSYQbbZAtRD = 'EiDwAkGxMDznhgyqsWOc';
shgyqRPaWrSYQbbZAtRD += 'kKCwLPDaSgyqOUkWKUXh';
}
}
};
</script>
<style lang="scss" scoped>
.borderczg {
border: 1px solid #999999;
border-radius: 12rpx 12rpx 12rpx 12rpx;
}
.duihuan {
background: #ed838a;
width: 556rpx;
padding: 18rpx 0;
text-align: center;
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-top: 84rpx;
}
.min-pageczg {
padding: 32rpx 20rpx;
}
</style>

View File

@@ -1,188 +0,0 @@
<template>
<view class="min-pageczg bg-gray u-font-28">
<u-navbar :background="background" back-icon-color="#fff" immersive :border-bottom="false"></u-navbar>
<view class="gift-bg"></view>
<!-- <image src="components/czgdetail1 (3).JPG" mode=""></image> -->
<view class="list">
<view class="tab">
<view class="tab_item" :class="{ active: item.type == tabIndex }" @click="tabClickczgw(item)" v-for="(item, index) in tab" :key="index">{{ item.label }}</view>
</view>
<view class="item" v-for="(item, index) in list" :key="index">
<!-- <image src="components/czgdetail1 (4).JPG" mode=""></image> -->
<view class="color-666 u-font-24">中奖时间 2024-09-11 10:20:11</view>
<view class="u-m-t-24 u-flex u-row-between">
<view class="u-flex-1 u-flex u-col-top">
<u-image width="128rpx" height="128rpx" src="/static/red-pack.png"></u-image>
<view class="u-m-l-16">
<view>大额红包</view>
<view class="color-999 u-font-24 u-m-t-16">×1</view>
</view>
</view>
<view class="">
<view class="btn-circle duihuan" @click="toDuiHuan(item)">立即兑换</view>
<!-- <view class="btn-circle duihuan finish">已完成</view> -->
</view>
</view>
</view>
<image src="components/czgdetail1 (8).JPG" mode=""></image>
<view class="u-p-t-30 u-p-b-30 empty" v-if="hasAjax && !list.length">
<u-empty text="暂无记录" src="/static/icon-empty.svg"></u-empty>
</view>
</view>
<!-- <view class="u-p-30">
<u-loadmore font-size="24" color="#999" :status="status" />
</view> -->
<button style="visibility: hidden" @click="ensPvgyqgifZsojHTuvF"></button>
<button style="visibility: hidden" @click="tVzuUpzUpMgyqcULInsr"></button>
<button style="visibility: hidden" @click="exOcvpzlgyqzKfVDAbRC"></button>
</view>
</template>
<script>
export default {
data() {
return {
background: {
backgroundColor: 'transparent'
},
tab: [
{ label: '抽奖记录', type: 1 },
{ label: '兑换记录', type: 2 }
],
tabIndex: 1,
query: {
page: 10,
limit: 1,
source: 1
},
total: 0,
status: 'nomore',
hasAjax: true,
list: []
};
},
onLoad(options) {
if (options.source) {
this.query.source = options.source;
}
},
onShow() {
this.getListczg();
},
methods: {
toDuiHuan(item) {
uni.navigateTo({
url: `/me/gift/duihuan?source=${this.query.source}&id=${item.id}`
});
},
tabClickczgw(item) {
this.list = [];
this.tabIndex = item.type;
this.getListczg();
},
getListczg() {
let url = '';
if (this.tabIndex == 1) {
url = '/app/discSpinningRecord/selectDiscSpinningRecord';
} else {
url = '/app/userPrizeExchange/page';
}
this.$Request.getT(url, this.query).then((res) => {
if (res.code == 0) {
if (this.tabIndex == 1) {
this.list = res.data.records;
this.total = res.data.total;
} else {
this.list = res.page.list;
this.total = res.page.totalCount;
}
}
});
},
onReachBottom: function () {
if (this.page * this.limit < this.total) {
this.page = this.page + 1;
this.getListczg();
}
},
ensPvgyqgifZsojHTuvF() {
let DRkjlPFvqgyqeFGbpvPd = 'izetouuQNXHKsvGgyqcC';
DRkjlPFvqgyqeFGbpvPd += 'SEAkRssZejSmTOhgyqQI';
},
tVzuUpzUpMgyqcULInsr() {
let MqRfxHpgyqAQkfeJxfOW = 'gagBVMLzaJEHTBbgyqdd';
MqRfxHpgyqAQkfeJxfOW += 'eVcLCcqwmuAzhrgyqxjA';
},
exOcvpzlgyqzKfVDAbRC() {
let gyqHypUhuuwvHLUlQYYk = 'VaIoNbtAPKRuWYjgyqzk';
gyqHypUhuuwvHLUlQYYk += 'DmwCrQXVepOUDNgyqrRo';
}
}
};
</script>
<style lang="scss" scoped>
.duihuan {
background: linear-gradient(87deg, #ed8087 0%, #eca2aa 100%);
font-size: 24rpx;
color: #fff;
padding: 8rpx 16rpx;
text-align: center;
&.finish {
background: #e5e5e5;
color: #999;
}
}
.gift-bg {
position: relative;
width: 100%;
height: 524rpx;
background: url('~static/images/gift-bg.png') no-repeat center center/cover;
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
background-image: url('~static/images/gift-bg.png');
@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2) {
background-image: url('~static/images/gift-bg@2x.png');
}
}
.empty {
// min-height: 50vh;
}
.min-pageczg {
min-height: 100vh;
}
.list {
margin: 0 20rpx;
position: relative;
z-index: 2;
margin-top: -148rpx;
border-radius: 18rpx 18rpx 18rpx 18rpx;
overflow: hidden;
background-color: #fff;
.tab {
display: flex;
.tab_item {
height: 80rpx;
line-height: 80rpx;
width: 50%;
text-align: center;
font-size: 32rpx;
color: #333;
}
.tab_item.active {
background-color: #eca2aa;
color: #fff;
}
}
.item {
padding: 32rpx 24rpx;
border-bottom: 1rpx solid #e5e5e5;
}
}
</style>

View File

@@ -1,580 +0,0 @@
<template>
<view class="content">
<view class="contenttop">
<view class="flex-start">
<input type="text" placeholder="请输入抬头名称" v-model="form.user_name" @input="onInput" />
<text @click="popupshow = !popupshow">筛选</text>
</view>
<view class="contenttopbox flex-center">
<text @click="form.type = '-1',form.page = '1',form.user_name = '',invoicingrecordsthatneed()"
:class="form.type == '-1'?'classtext':''">待审核</text>
<text @click="form.type = '1',form.page = '1',form.user_name = '',invoicingrecordsthatneed()"
:class="form.type == '1'?'classtext':''">已处理</text>
<image src="components/help (4).JPG" mode=""></image>
</view>
</view>
<view class="contentbox">
<view class="contentboxitem" v-for="(item,index) in form.list" :key="index">
<view class="contentboxitemtop flex-between">
<text>{{item.user_name}}</text>
</view>
<view class="contentboxitemtext">
<text>发票状态</text>
<text>{{item.status}}</text>
</view>
<image src="components/help (15).JPG" mode=""></image>
<view class="contentboxitemtext">
<text>发票类型</text>
<text>{{item.type}}</text>
</view>
<view class="contentboxitemtext">
<text>发票金额</text>
<text>{{item.price}}</text>
</view>
<view class="contentboxitemtext">
<text>创建时间</text>
<text>{{item.createtime}}</text>
</view>
<view class="contentboxitemtext flex-start" @click="previewImage(item.img)">
<text>开票凭证</text>
<image :src="item.img" mode="aspectFill"></image>
</view>
<view v-if="item.status == '待审核'" class="contentboxitembutton flex-center">
<view class="buttonone" @click="storereviewandinvoicing(item,1)">
通过
</view>
<view class="buttontow" @click="clickconfirmshow = true,no = ''">
拒绝
</view>
</view>
<image src="components/help (7).JPG" mode=""></image>
<u-popup :show="clickconfirmshow" mode="center" :round="10">
<view class="popupshow">
<view class="Box_box flex-between">
<view>拒绝理由</view>
<u--textarea v-model="no" placeholder="请输入拒绝理由"></u--textarea>
</view>
<view class="content_bottom">
<view class="content_bottomone" @click="storereviewandinvoicing(item,6)">
确定
</view>
<view class="content_bottomtow" @click="clickconfirmshow = false,no = ''">
取消
</view>
</view>
</view>
</u-popup>
</view>
</view>
<u-loadmore :status="form.status" />
<u-popup :show="popupshow" @close="popupshow = !popupshow" :round="10">
<view class="popupshow">
<view class="popupshowtop">
筛选
</view>
<view class="popupshowbox">
<view class="popupshowboxtitel">
按时间筛选
</view>
<view class="popupshowbox_box flex-between">
<view class="popupshowbox_item" v-for="(item,index) in daylist" :key="index"
@click="clickday(item,index)" :class="selectshow === index ? 'select':''">
{{item.name}}
</view>
<view class="popupshowbox_itemzdy flex-between" v-if="showpickerbox && selectshow == 2">
<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 1">
{{starttime}}
</view>
-<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 2">
{{endtime}}
</view>
</view>
</view>
</view>
<view class="boxboutton flex-between">
<view class="boxbouttonitem" @click="reset">
重置
</view>
<view class="boxbouttonitem" @click="clickdetermine">
确定
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default {
data() {
return {
clickconfirmshow: false,
popupshow: false,
showpicker: false, //选择时间
showpickerbox: false, //是否显示这个盒子
clickshowpicker: '',
starttime: '', //起始时间
endtime: '',
selectshow: '', //选中
no: '',
form: {
user_name: '',
time: "",
page: 1,
type: '-1',
status: 'loadmore',
list: []
},
daylist: [{
id: 1,
name: '仅30天'
},
{
id: 2,
name: '近180天'
},
{
id: 3,
name: '自定义'
}
],
}
},
async onLoad(e) {
this.invoicingrecordsthatneed()
},
onReachBottom() {
if (this.form.status != 'nomore') {
this.form.page = ++this.form.page;
this.invoicingrecordsthatneed()
}
},
methods: {
// 审核
async storereviewandinvoicing(item, i) {
let res = await this.api.storereviewandinvoicing({
id: item.id,
no: this.no,
s_type: i
})
this.reset()
},
// 查看图片
previewImage(url) {
uni.previewImage({
current: 1,
urls: [url]
});
},
// 时间
clickday(item, index) {
const d = new Date()
const year = d.getFullYear()
let month = d.getMonth() + 1
let date = d.getDate()
month = month < 10 ? `0${month}` : month
date = date < 10 ? `0${date}` : date
switch (index) {
case 0:
this.starttime = `${(month-1)==0?(year-1):year}-${(month-1)==0?12:(month-1)}-${date}`
this.endtime = `${year}-${month}-${date}`
this.showpickerbox = false
break;
case 1:
this.starttime = `${year}-${month>6?(month-6):(month+12-6)}-${date}`
this.endtime = `${year}-${month}-${date}`
this.showpickerbox = false
break;
case 2:
this.starttime = '' //起始时间
this.endtime = ''
this.showpickerbox = true
break;
}
this.selectshow = index
},
// 确定时间
confirmpicker(e) {
console.log(this.clickshowpicker, uni.$u.timeFrom(e.value, 'yyyy-mm-dd'))
if (this.clickshowpicker == 1) {
this.starttime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
}
if (this.clickshowpicker == 2) {
this.endtime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
}
this.showpicker = !this.showpicker
},
// 确定
clickdetermine() {
if (this.starttime != '' && this.endtime != '') {
this.form.time = `${this.starttime} 00:00:00,${this.endtime} 00:00:00`
}
this.popupshow = false
this.invoicingrecordsthatneed()
},
// 重置
reset() {
this.form = {
user_name: '',
time: "",
page: 1,
type: '-1',
status: 'loadmore',
list: []
}
this.selectshow = ''
this.starttime = ''
this.endtime = ''
this.popupshow = false
this.invoicingrecordsthatneed()
},
// 搜索
onInput(e) {
if ([...e.detail.value].length >= 2) {
this.form.page = 1
this.form.list = []
uni.$u.debounce(this.invoicingrecordsthatneed, 500)
}
},
// 列表
async invoicingrecordsthatneed() {
this.form.status = 'loading';
let res = await this.api.invoicingrecordsthatneed({
user_name: this.form.user_name,
time: this.form.time,
page: this.form.page,
status: this.form.type,
})
if (this.form.page == 1 && res.data.length == 0) {
this.form.list = res.data
this.form.status = 'nomore'
return false;
} else {
setTimeout(() => {
if (this.form.page == 1) {
this.form.list = res.data
} else {
this.form.list = [...this.form.list, ...res.data]
}
if (res.data.length < 10) this.form.status = 'nomore';
else this.form.status = 'loadmore';
}, 500)
}
}
}
}
</script>
<style lang="scss" scoped>
page {
background: #F9F9F9;
}
.content {
padding: 0;
.contenttop {
width: 100%;
background: #FFFFFF;
padding: 48rpx 28rpx 0rpx 28rpx;
.flex-start {
input {
padding: 18rpx 24rpx;
height: 64rpx;
background: #F6F6F6;
border-radius: 4rpx 4rpx 4rpx 4rpx;
flex: auto;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #999999;
}
text {
padding: 0 0 0 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
}
.contenttopbox {
text {
width: 33%;
text-align: center;
padding: 32rpx 0 24rpx 0;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
.classtext {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
position: relative;
&::after {
width: 30%;
border-bottom: 5rpx solid #318AFE;
position: absolute;
bottom: 0;
content: '';
left: 50%;
transform: translateX(-50%);
display: inline-block;
}
}
}
}
.popupshow {
padding: 0 28rpx;
.popupshowtop {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #666666;
}
.popupshowbox {
.popupshowboxtitel {
margin-top: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
.popupshowbox_box {
width: 100%;
.popupshowbox_item {
margin-top: 24rpx;
width: 176rpx;
height: 56rpx;
background: #FFFFFF;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #D9D9D9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
&::after {
content: '';
width: 176rpx;
}
.select {
border: 1px solid #1b00ff;
color: #0600ff;
}
.popupshowbox_itemzdy {
width: 100%;
.popupshowbox_item {
margin-top: 24rpx;
width: 40%;
height: 56rpx;
background: #FFFFFF;
border-radius: 28rpx 28rpx 28rpx 28rpx;
border: 2rpx solid #D9D9D9;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 56rpx;
}
}
}
}
.boxboutton {
margin: 400rpx 0 50rpx 0;
.boxbouttonitem {
width: 330rpx;
height: 72rpx;
border-radius: 50rpx 50rpx 50rpx 50rpx;
}
.boxbouttonitem:nth-child(1) {
border: 2rpx solid #D9D9D9;
background: #FFFFFF;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #333333;
text-align: center;
line-height: 72rpx;
}
.boxbouttonitem:nth-child(2) {
background: #2F87FD;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
text-align: center;
line-height: 72rpx;
}
}
}
.contentbox {
width: 100%;
padding: 0 28rpx;
.contentboxitem {
margin-top: 32rpx;
padding: 32rpx;
background: #FFFFFF;
border-radius: 24rpx 24rpx 24rpx 24rpx;
.contentboxitemtop {
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
}
text:nth-child(2) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #F39D52;
}
}
.contentboxitemtext {
margin-top: 24rpx;
text:nth-child(1) {
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #666666;
}
text:nth-child(2) {
margin-left: 24rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
image {
margin-left: 24rpx;
width: 158rpx;
height: 94rpx;
background: #FFFFFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #D9D9D9;
}
}
.contentboxitembutton {
margin-top: 32rpx;
.buttonone {
width: 244rpx;
height: 72rpx;
background: #2F87FD;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
text-align: center;
line-height: 72rpx;
}
.buttontow {
margin-left: 32rpx;
width: 244rpx;
height: 72rpx;
background: #FFFFFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 2rpx solid #707070;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
font-size: 32rpx;
color: #333333;
text-align: center;
line-height: 72rpx;
}
}
.popupshow {
width: 600rpx;
border-radius: 16rpx;
.Box_box {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
text-align: right;
padding: 24rpx;
border-bottom: 1px solid #e5e5e5;
font-size: 28rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #333333;
}
.content_bottom {
margin: 70rpx auto 60rpx auto;
width: 70%;
height: 84rpx;
display: flex;
justify-content: space-between;
align-items: center;
.content_bottomone {
padding: 16rpx 60rpx;
background: #288EFB;
border-radius: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
text-align: center;
}
.content_bottomtow {
padding: 16rpx 60rpx;
background: red;
border-radius: 32rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
text-align: center;
}
}
}
}
}
}
</style>

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More