Commit df5e45a9 authored by qipeng's avatar qipeng

Merge branch 'chargeback' into develop

parents 46416077 98c41c05
......@@ -438,7 +438,8 @@ export default {
this.previewData.forEach((item,index)=>{
if(item.checkType==true){
var imgList = {
imgUrl:item.faceSourceUrl||item.faceAiUrl
imgUrl:item.faceSourceUrl||item.faceAiUrl,
imgType:0,
}
orderProductListData.orderImgList.push(imgList)
}
......
......@@ -11,20 +11,21 @@
</view>
<view class="ticket-timer">游玩当日{{orderRefundRuleTimer}}之前未使用可退</view>
</view>
<!-- <view class="apply-user general-Box">
<view class="apply-user general-Box">
<view class="user-title">
<view class="title-name">用户选择</view>
<u-checkbox @change="checkedAll" v-model="applyClickAll" >全选</u-checkbox>
<checkbox-group @change="checkedAll">
<label>
<checkbox value="val" :checked="applyClickAll" style="transform:scale(0.7);" class="list-uCheck" :class="applyClickAll==true?'list-uCheckAct':''" />全选
</label>
</checkbox-group>
</view>
<u-checkbox-group @change="checkboxGroupChange">
<u-checkbox
@change="checkboxChange"
v-model="item.checked"
v-for="(item, index) in applyUserList" :key="index"
:name="item.name"
>{{item.name}}</u-checkbox>
</u-checkbox-group>
</view> -->
<checkbox-group @change="checkboxGroupChange" v-if="applyUserListType">
<label style="margin-right: 15rpx;margin-bottom: 15rpx;" v-for="(item,index) in applyUserList" :key="index">
<checkbox :value="item.id" :checked="item.checkType" style="transform:scale(0.7);" class="list-uCheck" :class="item.checkType==true?'list-uCheckAct':''" />{{item.name}}
</label>
</checkbox-group>
</view>
<view class="apply-moneyBox general-Box">
<view class="moneyBox-list">
<view class="list-name">订单实付</view>
......@@ -32,7 +33,7 @@
</view>
<view class="moneyBox-list">
<view class="list-name">退款金额</view>
<view class="list-money list-clolrOrange">{{parseFloat(orderInfo.pdOrderMoney)-parseFloat(orderInfo.refundFee)}}</view>
<view class="list-money list-clolrOrange">{{orderInfo.unitPrice*refundNum}}</view>
</view>
</view>
<view class="apply-cause general-Box">
......@@ -71,15 +72,17 @@ export default {
merchantId:'',//景区ID
applyClickAll:false,//是否全选
applyUserList:[
{
name:'张三',
checked:false,
},
{
name:'李四',
checked:false,
},
// {
// name:'张三',
// checked:false,
// },
// {
// name:'李四',
// checked:false,
// },
],//用户信息
applyUserListType:true,
refundNum:0,//选择多少人
causeList:[
{
name:'更改出行日期',
......@@ -116,7 +119,7 @@ export default {
onLoad(option) {
this.id = option.orderId||''
this.openId = uni.getStorageSync('openid') //openid oroHZ5FaUQ_SOOC_uQQP92fJpBRE oh2UV1lyYABHMZ1rMlgjhVHyyYDQ
//this.openId = 'oroHZ5FaUQ_SOOC_uQQP92fJpBRE'//oh2UV1lyYABHMZ1rMlgjhVHyyYDQ oroHZ5FaUQ_SOOC_uQQP92fJpBRE
//this.openId = 'oh2UV1lyYABHMZ1rMlgjhVHyyYDQ'//oh2UV1lyYABHMZ1rMlgjhVHyyYDQ oroHZ5FaUQ_SOOC_uQQP92fJpBRE
this.getDetail()
},
methods: {
......@@ -153,15 +156,22 @@ export default {
})
return false
}
var orderTouristVoList = []
this.applyUserList.forEach((item)=>{
if(item.checkType==true){
orderTouristVoList.push(item)
}
})
var data = {
orderId:this.orderInfo.id,
userId:this.openId,
refundReason:this.reason,
refundNum:this.orderInfo.orderNum,
refundMoney:parseFloat(this.orderInfo.pdOrderMoney)-parseFloat(this.orderInfo.depositReceived),
pdRefundMoney:parseFloat(this.orderInfo.pdOrderMoney),
refundNum:this.refundNum,
refundMoney:this.orderInfo.unitPrice*this.refundNum,
pdRefundMoney:this.orderInfo.unitPrice*this.refundNum,
refundType:0,
pdRefundFee:this.orderInfo.depositReceived,
orderTouristVoList:orderTouristVoList,
}
this.$request('order/userOrder/refundTicket',data).then((res)=>{
if(res.code == '00'){
......@@ -223,6 +233,16 @@ export default {
if(this.getNowTime()>this.orderRefundRuleTimer){
this.orderRefundRuleTimerType = true
}
this.orderInfo.orderTouristList.forEach((item)=>{
item['checkType']=false
})
this.applyUserList =[]
this.orderInfo.orderTouristList.forEach((item)=>{
if(item.visitorStatus==0||item.visitorStatus==4){
this.applyUserList.push(item)
}
})
}else{
uni.showToast({
title: res.message,
......@@ -235,32 +255,35 @@ export default {
clickNewFun(labelNum){
this.causeNum = labelNum
},
// // 选中某个复选框时,由checkbox时触发 可以获取当前选择值的所有信息
// checkboxChange(e) {
// // console.log(e)
// },
// // 选中任一checkbox时,由checkbox-group触发 已经选择了多少选项
// checkboxGroupChange(e) {
// // console.log(e)
// if(this.applyUserList.length==e.length){
// this.applyClickAll = true
// }else{
// this.applyClickAll =false
// }
// },
// // 全选
// checkedAll(e) {
// console.log(e)
// if(e.value==true){
// this.applyUserList.map(val => {
// val.checked = true
// })
// }else{
// this.applyUserList.map(val => {
// val.checked = false
// })
// }
// },
checkboxGroupChange(e){//刷新显示
this.applyUserListType = false
this.applyUserList.forEach((item)=>{
item.checkType=false
e.detail.value.forEach(item2=>{
if(item.id==item2){
this.$set(item,'checkType',true)
}
})
})
this.refundNum = e.detail.value.length
this.applyUserListType = true
},
checkedAll(e){//全选
if(this.applyClickAll ==false){
this.applyClickAll = true
this.applyUserList.forEach((item)=>{
item.checkType=true
})
this.refundNum = this.applyUserList.length
}else{
this.applyClickAll = false
this.applyUserList.forEach((item)=>{
item.checkType=false
})
this.refundNum = 0
}
},
getNowTime() {//获取当前时间(HH-MM-SS)
var date = new Date()
var seperator1 = '-'
......@@ -361,6 +384,14 @@ export default {
/deep/ .u-checkbox__label{
width: 160rpx;
}
.list-uCheckAct{
/deep/ .wx-checkbox-input,
/deep/ .uni-checkbox-input{
background-color: #3688FF !important;
border-color: #3688FF !important;
color: #ffffff !important;
}
}
}
.apply-moneyBox{
padding: 0 24rpx 0 24rpx;
......
......@@ -339,10 +339,10 @@
</template>
<template v-else-if="orderInfo.isRefund==2">随时可退</template>
<template v-if="ticketStatus">
<view class="list-btnRefund" v-if="orderInfo.orderStatus==2&&orderInfo.isRefund!=0&&ticketStatus==0" @click="refundJump(orderInfo.id)">退款/售后</view>
<view class="list-btnRefund" v-if="orderInfo.orderStatus==2&&orderInfo.isRefund!=0&&ticketStatus==0||orderInfo.orderStatus==7&&orderInfo.isRefund!=0&&ticketStatus==0" @click="refundJump(orderInfo.id)">退款/售后</view>
</template>
<template v-else>
<view class="list-btnRefund" v-if="orderInfo.orderStatus==2&&orderInfo.isRefund!=0" @click="refundJump(orderInfo.id)">退款/售后</view>
<view class="list-btnRefund" v-if="orderInfo.orderStatus==2&&orderInfo.isRefund!=0||orderInfo.orderStatus==7&&orderInfo.isRefund!=0" @click="refundJump(orderInfo.id)">退款/售后</view>
</template>
</view>
......@@ -635,7 +635,7 @@ export default {
this.ifyukuaiCode = option.ifyukuaiCode||''
//this.id = "z00167956572219584dc15634b62cf75"
this.openId = uni.getStorageSync('openid') //openid oroHZ5FaUQ_SOOC_uQQP92fJpBRE oh2UV1lyYABHMZ1rMlgjhVHyyYDQ
//this.openId = 'oroHZ5FaUQ_SOOC_uQQP92fJpBRE'//'oh2UV1lyYABHMZ1rMlgjhVHyyYDQ' oroHZ5FaUQ_SOOC_uQQP92fJpBRE
//this.openId = 'oh2UV1lyYABHMZ1rMlgjhVHyyYDQ'//'oh2UV1lyYABHMZ1rMlgjhVHyyYDQ' oroHZ5FaUQ_SOOC_uQQP92fJpBRE
this.getDetail()
},
onUnload() {
......
......@@ -147,7 +147,7 @@
<template v-if="item.subOrderType!=4">
<view class="block-button" v-if="item.orderStatus==1||item.orderStatus==2||item.orderStatus==4||item.orderStatus==5||item.orderStatus==10" @click.stop="orderJump(item.id,item.orderType)">{{item.orderStatus==2?'去使用':'查看详情'}}</view>
</template>
<view class="block-button" v-if="item.orderStatus==2&&item.isRefund!=0" @click.stop="refundJump(item.id)">退款/售后</view>
<view class="block-button" v-if="item.orderStatus==2&&item.isRefund!=0||item.orderStatus==7&&item.isRefund!=0" @click.stop="refundJump(item.id)">退款/售后</view>
<view class="block-button" v-if="item.orderStatus==5">评价</view>
</template>
<view class="block-button block-buttonOrange" v-if="item.orderStatus==0">去支付</view>
......@@ -440,7 +440,7 @@ export default {
},
onLoad(option) {
this.openId = uni.getStorageSync('openid')
//this.openId = 'oroHZ5FaUQ_SOOC_uQQP92fJpBRE'//oh2UV1lyYABHMZ1rMlgjhVHyyYDQ oroHZ5FaUQ_SOOC_uQQP92fJpBRE
//this.openId = 'oh2UV1lyYABHMZ1rMlgjhVHyyYDQ'//oh2UV1lyYABHMZ1rMlgjhVHyyYDQ oroHZ5FaUQ_SOOC_uQQP92fJpBRE
this.orderStatus = option.orderStatus||''
this.ifyukuaiCode = option.ifyukuaiCode||''
this.getData(1)
......@@ -686,7 +686,7 @@ export default {
this.configShow =false
},
orderJump(orderId,orderType){//-------------------订单详情跳转
if(orderType==11){
if(orderType==11||orderType==12){
uni.navigateTo({
url: '/pages/album/albumOrderdetail/albumOrderdetail?orderId='+orderId
})
......
......@@ -10,6 +10,9 @@
<text>{{item.merchantName}}</text>
</view>
</view>
<navigator url="../vlogface/vlogface" class="btnn">
<view>点击获取我的Vlog</view>
</navigator>
</view>
<view v-else-if="vlogList.length===0 && show===false" class="empty">
<view class="row">
......@@ -120,6 +123,16 @@ export default {
}
}
}
.btnn {
display: inline-block;
font-size: 28rpx;
border-radius: 40rpx;
background-color: #fff;
padding: 20rpx 40rpx;
margin: 30rpx 0;
font-weight: bold;
color: #333;
}
}
.empty {
......
......@@ -5,10 +5,11 @@
<video class="video" :src="item.productUrl" :poster="item.thumbImageUrl" @error="error" object-fit="fill"
play-btn-position="center" :id="index" @play="playing(index)"></video>
<view class="">
<button v-if="item.shareNumber===0" :data-productUrl="item.productUrl" :data-productId="item.productId" class="btnn"
open-type="share">分享下载</button>
<button v-else class="btnn" @click="handleDownload(item.productUrl)">下载视频</button>
<text class="price">¥<text>0</text></text>
<!-- <button v-if="item.shareNumber===0" :data-productUrl="item.productUrl" :data-productId="item.productId" class="btnn"
open-type="share">分享下载</button> -->
<!-- v-else -->
<button class="btnn" @click="handPayment(item.productUrl,item.isPay,item.sellingPrice)">下载视频</button>
<text class="price">¥<text>{{item.sellingPrice}}</text></text>
</view>
<view style="clear: both;"></view>
</view>
......@@ -17,151 +18,228 @@
</template>
<script>
export default {
export default {
data() {
return {
myVlogList: [], //我的视频列表
merchantId: '', //景区id
}
},
onLoad(options) {
this.merchantId = options.merchantId
this.getMyVlogList()
},
onShow() {
data() {
return {
openid:'',
myVlogList: [], //我的视频列表
merchantId: '', //景区id
merchantIdOrder:'',//下单用merchantId
merchantMessage:[],//景区基础参数
}
},
onLoad(options) {
this.merchantId = options.merchantId
this.merchantIdOrder=options.merchantIdOrder||'z0015605022691a5945bbe463141668c'
this.openid = uni.getStorageSync('openid') //获取openid
this.getMyVlogList()
this.mearchLoadList()//调用参数
},
onShow() {
},
onUnload() { //退出页面
},
onUnload() { //退出页面
},
onHide() {},
onReady() {},
onShareAppMessage(res) { //分享
let productId = res.target.dataset.productid
let productUrl= res.target.dataset.producturl
if (res.from === 'button') {
this.$request('wechatUser/myPage/updateVlogRecord', {
productId,
openid: uni.getStorageSync('openid')
}).then(res => {
if (res.code === '00') {
this.getMyVlogList()
}
})
return {
title: '胖丁旅行',
type: 4,
path: '/pages/vlog/share/share?url='+productUrl,
}
}else{
return {
title: '胖丁旅行',
type: 4,
path: '/pages/vlog/vlogIndex/vlogIndex',
}
}
},
methods: {
getMyVlogList() { //获取景区vlog列表
this.$request('wechatUser/myPage/getVlogRecord', {
openid: uni.getStorageSync('openid'),
productType:0
}).then(res => {
if (res.code === '00') {
res.data.forEach(item => { //获取当前景区视频列表
if (this.merchantId === item.merchantId) {
this.myVlogList = item.vlogList
}
})
}
})
},
playing(e) { //控制只播放当前video
this.myVlogList.forEach((item, index) => {
if (e !== index) {
uni.createVideoContext(index.toString()).pause()
}
})
},
handleDownload(url) { // 下载功能
uni.showLoading({
title: '下载中',
mask: true
})
let fileName = new Date().valueOf() //获取时间戳
uni.downloadFile({ //下载文件资源到本地
url,
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4', //filePath指定文件下载后存储的路径,wx.env.USER_DATA_PATH,时间戳为文件名
success: res => { //下载到本地成功
let filePath = res.filePath
uni.saveVideoToPhotosAlbum({ //保存视频到系统相册。
filePath,
success: file => { //保存成功
//删除本地缓存
let fileMgr = uni.getFileSystemManager()
fileMgr.unlink({
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
})
uni.showToast({
title: '下载成功',
icon: 'success',
mask: true
})
},
fail: err => {
uni.hideLoading()
//拒绝授权时显示
if (err.errMsg === 'saveVideoToPhotosAlbum:fail auth deny') {
uni.showModal({
title: '提示',
content: '需要您授权保存相册',
showCancel: false,
success: data => {
//打开权限设置
uni.openSetting({
success: setting => {
if (setting.authSetting['scope.writePhotosAlbum']) {
uni.showModal({
title: '提示',
content: '获取权限成功,再次点击下载即可保存',
showCancel: false,
})
} else {
uni.showModal({
title: '提示',
ontent: '获取权限失败,将无法保存到相册哦',
showCancel: false
})
}
},
})
}
})
}
}
})
},
fail: err => { //下载失败
uni.hideLoading()
if (err.errMsg == 'downloadFile:fail createDownloadTask:fail url not in domain list') {
uni.showToast({
title: '服务器错误,请联系相关管理员',
icon: 'none',
mask: true
})
}
}
})
},
error(e) { //视频播放出错触发函数
uni.showModal({
content: e.target.errMsg,
showCancel: false
})
},
}
}
},
onHide() {},
onReady() {},
onShareAppMessage(res) { //分享
let productId = res.target.dataset.productid
let productUrl= res.target.dataset.producturl
if (res.from === 'button') {
this.$request('wechatUser/myPage/updateVlogRecord', {
productId,
openid: uni.getStorageSync('openid')
}).then(res => {
if (res.code === '00') {
this.getMyVlogList()
}
})
return {
title: '胖丁旅行',
type: 4,
path: '/pages/vlog/share/share?url='+productUrl,
}
}else{
return {
title: '胖丁旅行',
type: 4,
path: '/pages/vlog/vlogIndex/vlogIndex',
}
}
},
methods: {
getMyVlogList() { //获取景区vlog列表
this.$request('wechatUser/myPage/getVlogRecord', {
openid: uni.getStorageSync('openid'),
productType:0
}).then(res => {
if (res.code === '00') {
res.data.forEach(item => { //获取当前景区视频列表
if (this.merchantId === item.merchantId) {
this.myVlogList = item.vlogList
}
})
}
})
},
playing(e) { //控制只播放当前video
this.myVlogList.forEach((item, index) => {
if (e !== index) {
uni.createVideoContext(index.toString()).pause()
}
})
},
handPayment(productUrl,isPay,sellingPrice){//当前视频是否需要支付下载费用
//isPay 0为未支付 1为已支付
if(isPay==0){//originalPrice 原价 sellingPrice售价 settlementPrice结算价
this.upLoad(sellingPrice,productUrl)
}else{
this.handleDownload(productUrl)
}
},
upLoad(sellingPrice,productUrl){//下单
var data = {
companyId:this.merchantMessage[0].companyId||'',//公司ID
orderMoney:sellingPrice,//订单总价
userId:this.openid,
orderProductVo:{},//下单信息
orderType:12,// vlogTYPE值
orderProductList:[],//景区下单信息
}
var orderProductListData = {
buyNum:1,//购买数量
merchantId:this.merchantMessage[0].merchantId||'',
orderType:12,// 12vlog
productId:this.merchantMessage[0].merchantExtendProjectId||'',
productName:this.merchantMessage[0].merchantExtendProjectName||'',
extendContent:'',
unitPrice:sellingPrice,//产品单价
orderImgList:[],////订单图片
couponList:[],//券信息
}
var imgList = {
imgUrl:productUrl,
imgType:1,
}
orderProductListData.orderImgList.push(imgList)
var extendContentData={
openid:this.openid,
projectAddress:this.merchantMessage[0].projectAddress||'',
projectPhone:this.merchantMessage[0].projectPhone||'',
}
orderProductListData.extendContent = JSON.stringify(extendContentData)
data.orderProductList.push(orderProductListData)
//data.orderProductVo = orderProductVo
this.$request('orderc/photo/photoCreateOrder',data).then((res)=>{
if(res.code=='00'){
uni.navigateTo({
url:'../../payment/orderPayment/orderPayment?orderId='+res.data.id+'&albumOrderdetail=1'
})
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
mearchLoadList(){//调用参数
var merchantIds = []
merchantIds.push(this.merchantIdOrder)
this.$request('scenic/merchantExtendProject/loadList',{
merchantIds:merchantIds,
merchantExtendProjectName:'vlog'
}).then((res)=>{
if(res.code=='00'){
this.merchantMessage = res.data
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
handleDownload(url) { // 下载功能
uni.showLoading({
title: '下载中',
mask: true
})
let fileName = new Date().valueOf() //获取时间戳
uni.downloadFile({ //下载文件资源到本地
url,
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4', //filePath指定文件下载后存储的路径,wx.env.USER_DATA_PATH,时间戳为文件名
success: res => { //下载到本地成功
let filePath = res.filePath
uni.saveVideoToPhotosAlbum({ //保存视频到系统相册。
filePath,
success: file => { //保存成功
//删除本地缓存
let fileMgr = uni.getFileSystemManager()
fileMgr.unlink({
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
})
uni.showToast({
title: '下载成功',
icon: 'success',
mask: true
})
},
fail: err => {
uni.hideLoading()
//拒绝授权时显示
if (err.errMsg === 'saveVideoToPhotosAlbum:fail auth deny') {
uni.showModal({
title: '提示',
content: '需要您授权保存相册',
showCancel: false,
success: data => {
//打开权限设置
uni.openSetting({
success: setting => {
if (setting.authSetting['scope.writePhotosAlbum']) {
uni.showModal({
title: '提示',
content: '获取权限成功,再次点击下载即可保存',
showCancel: false,
})
} else {
uni.showModal({
title: '提示',
ontent: '获取权限失败,将无法保存到相册哦',
showCancel: false
})
}
},
})
}
})
}
}
})
},
fail: err => { //下载失败
uni.hideLoading()
if (err.errMsg == 'downloadFile:fail createDownloadTask:fail url not in domain list') {
uni.showToast({
title: '服务器错误,请联系相关管理员',
icon: 'none',
mask: true
})
}
}
})
},
error(e) { //视频播放出错触发函数
uni.showModal({
content: e.target.errMsg,
showCancel: false
})
},
}
}
</script>
<style lang="scss" scoped>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment