Commit 33b5b1f2 authored by 潘永坪's avatar 潘永坪

Merge remote-tracking branch 'remotes/origin/album' into develop

parents 78d0702e b382ed0c
...@@ -371,6 +371,15 @@ ...@@ -371,6 +371,15 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}
,{
"path" : "purchasedPhotoAlbum/purchasedPhotoAlbum",
"style" :
{
"navigationBarTitleText": "我的影集",
"enablePullDownRefresh": false
}
} }
] ]
} }
......
<template> <template>
<view class="big-box" :style="{'padding-top': statusBarHeight + 'px'}"> <view class="big-box" :style="{'padding-top': statusBarHeight + 'px'}" v-show="show">
<view class="nav-bar" :style="{'top': statusBarHeight + 'px', 'height': navHeight + 'px','line-height': navHeight + 'px'}"> <view class="nav-bar" :style="{'top': statusBarHeight + 'px', 'height': navHeight + 'px','line-height': navHeight + 'px'}">
摄影/旅拍 摄影/旅拍
</view> </view>
...@@ -92,6 +92,7 @@ export default { ...@@ -92,6 +92,7 @@ export default {
statusBarHeight: 0, statusBarHeight: 0,
capsule: 0, capsule: 0,
navHeight: 0, navHeight: 0,
show: false,//是否显示首页
list: [ list: [
{ {
title: '精彩瞬间', title: '精彩瞬间',
...@@ -129,14 +130,15 @@ export default { ...@@ -129,14 +130,15 @@ export default {
image: './static/album/customPic.png', image: './static/album/customPic.png',
color: '#D48D46' color: '#D48D46'
} }
] ],
options: {}//路由参数
} }
}, },
methods: { methods: {
jumpToScanFaceClick() {//---跳转扫脸页面 jumpToScanFaceClick() {//---跳转扫脸页面
const openid = uni.getStorageSync('openid') const openid = uni.getStorageSync('openid')
this.$request('wechatUser/pdFace/checkScanFace',{openid}).then(res => {//创建任务 this.$request('wechatUser/pdFace/checkScanFace',{openid}).then(res => {
if (res.code === '00') { if (res.code === '00') {
if(res.data.isScanFace === 0) {//未扫脸 if(res.data.isScanFace === 0) {//未扫脸
uni.navigateTo({ uni.navigateTo({
...@@ -156,7 +158,6 @@ export default { ...@@ -156,7 +158,6 @@ export default {
}) })
}, },
jumptoVlog() {//---跳转到vlog页面 jumptoVlog() {//---跳转到vlog页面
console.log('fdsa')
uni.redirectTo({ uni.redirectTo({
url: '/pages/vlog/vlogIndex/vlogIndex' url: '/pages/vlog/vlogIndex/vlogIndex'
}) })
...@@ -166,15 +167,88 @@ export default { ...@@ -166,15 +167,88 @@ export default {
this.jumpToScanFaceClick() this.jumpToScanFaceClick()
} }
}, },
judgeWhether(url, data) {//---判断是否成功的封装函数
return new Promise((resolve, reject) => {
this.$request(url, data).then(res => {
if (res.code === '00') {
resolve(res.data)
}else{
reject(false)
}
})
})
},
async handleWhetherToVotePage() {//---判断是否跳转投票页面
// 1.获取调查列表
const surveyQueryData = {
pageCode: 'albumIndex',//默认前端写死
channelId: this.options.channelId//游客扫码携带的channelId或者是胖丁登录时的公司id
}
const surveyList = await this.judgeWhether('scenic/market/findPageMarket', surveyQueryData)
// 2.判断商店是否在做投票活动
let surveyIds
let surveyResult = []
if(surveyList.length) {
surveyIds = surveyList.map(item => item.surveyId)
surveyResult = await this.judgeWhether('scenic/albumConfig/getSurveyConfig', { surveyIds })
}
// 3.判断用户是否已经投过票
let voteObj = {}// 用户投票信息
if(surveyResult.length) {
// 默认保存第一个商店id到缓存
uni.setStorageSync('merchantId', surveyResult[0].merchantId)
const votedQueryData = {
merchantId: surveyResult[0].merchantId,
openid: uni.getStorageSync('openid')
}
voteObj = await this.judgeWhether('wechatUser/pdAlbum/checkVisitorSurvey', votedQueryData)
}
// 4.判断是否跳转投票页面
if(voteObj.alreadySurvey === 0) {// 未投过票
uni.navigateTo({
url: `./chooseFavorite?surveyConfig=${JSON.stringify(surveyResult)}`
})
}else if(voteObj.alreadySurvey === 1) {// 已投票
this.show = true
}
},
recordDeviceInfo() {//---记录设备信息 recordDeviceInfo() {//---记录设备信息
this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight // 状态栏高度 this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight // 状态栏高度
this.capsule = uni.getMenuButtonBoundingClientRect() // 胶囊大小、位置数据 this.capsule = uni.getMenuButtonBoundingClientRect() // 胶囊大小、位置数据
this.navHeight = (this.capsule.top - this.statusBarHeight) * 2 + this.capsule.height // 导航栏高度 this.navHeight = (this.capsule.top - this.statusBarHeight) * 2 + this.capsule.height // 导航栏高度
} }
}, },
onLoad(option) { onLoad(options) {
if(option.tip === 'true') this.showtip = true
this.recordDeviceInfo() this.recordDeviceInfo()
this.options = options
if(this.options.tip === 'true') {
this.show = true
this.showtip = true
}else {
this.handleWhetherToVotePage()
}
if(uni.getStorageSync('location')) return
uni.getLocation({//获取定位
type: 'wgs84',
success: res => {
uni.setStorageSync('location', JSON.stringify(res))
},
fail() {
uni.showToast({
title: '获取经纬度失败',
icon: 'none'
})
}
})
} }
} }
</script> </script>
......
<template> <template>
<view class="big-box" :style="{'padding-top': statusBarHeight + 'px'}"> <view class="big-box" :style="{'padding-top': statusBarHeight + 'px'}">
<view class="nav-bar" :style="{'height': navHeight + 'px'}"> <view class="nav-bar" :style="{'height': navHeight + 'px'}">
<picker mode="selector" @change="companyChage" :value="index" :range="companyArr" range-key="name"> <picker mode="selector" @change="companyChage" :value="index" :range="companyArr" range-key="merchantName">
<view class="company">{{companyArr[index] ? companyArr[index].name : '请选择公司'}}</view> <view class="company">{{companyArr[index] ? companyArr[index].merchantName : '请选择公司'}}</view>
</picker> </picker>
<u-icon name="arrow-down"></u-icon> <u-icon name="arrow-down"></u-icon>
</view> </view>
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
<image class="start" src="./static/album/star.png"></image> <image class="start" src="./static/album/star.png"></image>
</view> </view>
<view class="img-box"> <view class="img-box">
<view class="item" @click="imageChange(item)" v-for="(item, index) in imgArr" :key="item.id"> <view class="item" @click="imageChange(item)" v-for="(item, index) in imgArr" :key="item.templateId">
<image class="img" :src="item.url" mode="aspectFill"></image> <image class="img" :src="item.templateUrl" mode="aspectFill"></image>
<u-checkbox class="checkbox" v-model="item.value" shape="circle"></u-checkbox> <u-checkbox class="checkbox" v-model="item.value" shape="circle"></u-checkbox>
</view> </view>
</view> </view>
...@@ -39,20 +39,27 @@ export default { ...@@ -39,20 +39,27 @@ export default {
index: 0,// 选中的公司索引-默认选中第一个 index: 0,// 选中的公司索引-默认选中第一个
companyArr: [],// 公司枚举 companyArr: [],// 公司枚举
imgArr: [],//图片 imgArr: [],//图片
value: true,
location: {},//位置信息
option: {},//路由传参 option: {},//路由传参
} }
}, },
methods: { methods: {
saveClick() {//---提交 saveClick() {//---提交
const selectedPic = this.imgArr.filter(item => item.value) const templateIds = this.imgArr.map(item => {
if(item.value) return item.templateId
}) || []
if(!templateIds.length) return uni.showToast({
title: '您还没有选择模板哟!',
icon: 'none'
})
const data = { const data = {
id: selectedPic[0].id,// 图片id merchantId: this.companyArr[this.index].merchantId,//商店id
merchantId: selectedPic[0].merchantId openid: uni.getStorageSync('openid'), //openid
templateIds//模板Id
} }
uni.setStorageSync('merchantId', data.merchantId) uni.setStorageSync('merchantId', data.merchantId)
this.$request('scenic/V2merchant/submitChoose', data).then(res => {//创建任务 this.$request('wechatUser/pdAlbum/saveVisitorSurvey', data).then(res => {
if (res.code === '00') { if (res.code === '00') {
uni.showToast({ uni.showToast({
title: '提交成功', title: '提交成功',
...@@ -71,99 +78,30 @@ export default { ...@@ -71,99 +78,30 @@ export default {
}, },
companyChage(e) {//---公司变化 companyChage(e) {//---公司变化
this.index = Number(e.detail.value) this.index = Number(e.detail.value)
const merchantId = this.companyArr[this.index].id this.imgArr = this.companyArr[this.index].templateDetailList
this.getPic(merchantId)
}, },
imageChange(item) {//---图片选择 imageChange(item) {//---图片选择
this.imgArr.forEach(item => item.value = false) this.$set(item, 'value', !item.value)
item.value = true this.$forceUpdate()
// item.value = !item.value
}, },
recordDeviceInfo() {//---记录设备信息 recordDeviceInfo() {//---记录设备信息
this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight // 状态栏高度 this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight // 状态栏高度
this.capsule = uni.getMenuButtonBoundingClientRect() // 胶囊大小、位置数据 this.capsule = uni.getMenuButtonBoundingClientRect() // 胶囊大小、位置数据
this.navHeight = (this.capsule.top - this.statusBarHeight) * 2 + this.capsule.height // 导航栏高度 this.navHeight = (this.capsule.top - this.statusBarHeight) * 2 + this.capsule.height // 导航栏高度
},
getCompany(nearbyId) {//---获取景区列表
this.$request('scenic/newMerchant/findAllMerchant').then(res => {//创建任务
if (res.code === '00') {
if(!res.data.length) return
const id = this.option.merchantId || nearbyId
let index = res.data.findIndex(item => item.id === id)
this.index = index === -1 ? 0 : index
this.companyArr = res.data
this.getPic(this.companyArr[this.index].id)
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
getPic(merchantId) {//---获取景区图片
this.$request('scenic/V2merchant/getImgList',{ merchantId }).then(res => {//创建任务
if (res.code === '00') {
res.data.forEach(item => item.value = false)
this.imgArr = res.data
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
},
getNearByCompany() {//---获取最近的景区
const data = {
merchantType: 1,
userlatitude: this.location.latitude,//纬度
userlongitude: this.location.longitude//经度
}
this.$request('scenic/newMerchant/findAllMerchant', data).then(res => {//创建任务
if (res.code === '00') {
if(!res.data.length) {
this.getCompany()
return uni.showToast({
title: '获取最近景点失败',
icon: 'none'
})
}
this.getCompany(res.data[0].id)
}else{
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
} }
}, },
onLoad(option) { onLoad(option) {
this.option = option
this.recordDeviceInfo() this.recordDeviceInfo()
uni.getLocation({//获取定位 this.option = option
type: 'wgs84',
success: res => {
this.location = res
uni.setStorageSync('location', JSON.stringify(res))
if(this.option.merchantId) {//扫码进入则直接加载景区列表,默认显示传入的景区 this.companyArr = JSON.parse(option.surveyConfig)
this.getCompany() const imgArr = []
}else {//否则获取并显示距离最近的景点 this.companyArr.forEach(item => {
this.getNearByCompany() imgArr.push(...item.templateDetailList)
}
},
fail() {
this.getCompany()
uni.showToast({
title: '获取经纬度失败',
icon: 'none'
})
}
}) })
imgArr.forEach(item => this.$set(item, 'value', false))
this.imgArr = this.companyArr[0].templateDetailList
} }
} }
</script> </script>
......
...@@ -6,106 +6,76 @@ ...@@ -6,106 +6,76 @@
<view class="left-name">照片来源</view> <view class="left-name">照片来源</view>
<view class="left-picker" @click="orderShow=true"> <view class="left-picker" @click="orderShow=true">
<i>{{cityName}}</i> <i>{{cityName}}</i>
<image src="../../../static/img/album/myPhoto01.png"></image> <image src="../static/album/myPhoto01.png"></image>
</view> </view>
<u-picker mode="selector" v-model="orderShow" :default-selector="[orderType]" :range="option" range-key="cateName" @confirm="industrysTypeConfirm($event)" @cancel="cancel"></u-picker> <u-picker mode="selector" v-model="orderShow" :default-selector="[orderType]" :range="option" range-key="areaName" @confirm="industrysTypeConfirm($event)" @cancel="cancel"></u-picker>
<view class="left-project" :class="[projectCheck==0?'left-projectDe':'']" @click="projectClick(0)" > <view v-for="(item,index) in merchantList" :key="index" class="left-project" :class="[projectCheck==0?'left-projectDe':'']" @click="projectClick(index,item.id)">
长江索道 {{item.name}}
<i>6</i> <i>{{previewData.length}}</i>
</view> </view>
<view class="left-project" :class="[projectCheck==1?'left-projectDe':'']" @click="projectClick(1)" >
定制旅拍
<i>8</i>
</view> </view>
</view> <view class="address-right" @click="projectMoreFun()" v-if="merchantList.length>2">
<view class="address-right" @click="projectMoreFun()">
<u-icon name="more-dot-fill"></u-icon> <u-icon name="more-dot-fill"></u-icon>
</view> </view>
</view> </view>
<!--头部更多--> <!--头部更多-->
<view class="album-addressMore" v-if="projectMoreType==true"> <view class="album-addressMore" v-if="projectMoreType==true">
<view class="addressMore-name">长江索道(6)</view> <view class="addressMore-name" v-for="(item,index) in merchantList" :key="index" >{{item.name}}({{previewData.length}})</view>
<view class="addressMore-name">定制旅拍(8)</view>
</view> </view>
<!--全选按钮--> <!--全选按钮-->
<view class="album-checkAll"> <view class="album-checkAll">
<u-checkbox v-model="checkProjectAll" >全选</u-checkbox> <u-checkbox v-model="checkProjectAll" @change="checkProjectAllFun()">全选</u-checkbox>
<view class="checkAll-tips">未下载影像保留15天</view> <view class="checkAll-tips">未下载影像保留15天</view>
</view> </view>
<!--主体循环--> <!--主体循环-->
<view class="album-subject"> <view class="album-subject">
<view class="subject-List"> <view class="subject-List" v-for="(item,index) in previewData" :key="index" @click="projectCheckPhoto(index)" >
<image class="list-image" src="../../../static/img/hghg/dialog.png"></image> <image class="list-image" :src="item.faceSourceUrl||item.faceAiUrl" ></image>
<u-checkbox v-model="checkProjectAll" shape="circle" class="list-uCheck" ></u-checkbox> <u-checkbox v-model="item.checkType" v-if="checkTypeFun==true" @click.stop.native="()=>{}" @change="stopPhoto(index)" shape="circle" class="list-uCheck"></u-checkbox>
<view class="list-mask">预览</view>
</view>
<view class="subject-List">
<image class="list-image" src="../../../static/img/hghg/dialog.png"></image>
<u-checkbox v-model="checkProjectAll" shape="circle" class="list-uCheck" ></u-checkbox>
<view class="list-mask">预览</view>
</view>
<view class="subject-List">
<image class="list-image" src="../../../static/img/hghg/dialog.png"></image>
<u-checkbox v-model="checkProjectAll" shape="circle" class="list-uCheck" ></u-checkbox>
<view class="list-mask">预览</view>
</view>
<view class="subject-List">
<image class="list-image" src="../../../static/img/hghg/dialog.png"></image>
<u-checkbox v-model="checkProjectAll" shape="circle" class="list-uCheck" ></u-checkbox>
<view class="list-mask">预览</view>
</view>
<view class="subject-List">
<image class="list-image" src="../../../static/img/hghg/dialog.png"></image>
<u-checkbox v-model="checkProjectAll" shape="circle" class="list-uCheck" ></u-checkbox>
<view class="list-mask">预览</view>
</view>
<view class="subject-List">
<image class="list-image" src="../../../static/img/hghg/dialog.png"></image>
<u-checkbox v-model="checkProjectAll" shape="circle" class="list-uCheck" ></u-checkbox>
<view class="list-mask">预览</view> <view class="list-mask">预览</view>
</view> </view>
</view> </view>
<!--脚部--> <!--脚部-->
<view class="album-bottom"> <view class="album-bottom">
<view class="bottom-left" v-if="maskDetail==false"> <view class="bottom-left" v-if="maskDetail==false">
<view class="left-oldMoney">15.00</view> <view class="left-oldMoney">{{originalPrice}}</view>
<view class="left-newMoney">10.00</view> <view class="left-newMoney">{{sellingPrice}}</view>
<view class="left-detail" @click="maskDetail=true"> <view class="left-detail" @click="maskDetail=true">
<text>明细</text> <text>明细</text>
<u-icon name="arrow-up"></u-icon> <u-icon name="arrow-up"></u-icon>
</view> </view>
<view class="left-num">1</view> <view class="left-num" v-if="priceNum>0">{{priceNum}}</view>
<view class="left-mask"> <view class="left-mask" v-if="priceNum>0">
多够更省 多够更省
<view class="mask-transparent"></view> <view class="mask-transparent"></view>
</view> </view>
</view> </view>
<view class="bottom-Detail" v-if="maskDetail==true"> <view class="bottom-Detail" v-if="maskDetail==true">
<view class="detail-total">合计:¥8.00</view> <view class="detail-total">合计:¥{{sellingPrices}}</view>
<view class="detail-favorable">优惠减:¥2.00</view> <view class="detail-favorable">优惠减:¥{{favorablePrice}}</view>
</view> </view>
<view class="bootom-btn">去下载</view> <view class="bootom-btn" @click="upLoad()">去下载</view>
</view> </view>
<!--预览--> <!--预览-->
<view class="album-maskPreview"> <view class="album-maskPreview" v-if="maskPreviewType==true" @click="maskPreviewType=false">
<view class="maskPreview-Num">{{previewNum+1}}/{{previewData.length}}</view> <view class="maskPreview-Num">{{previewNum+1}}/{{previewData.length}}</view>
<view class="maskPreview-img" @touchstart="start" @touchend="end" @touchmove="move"> <view class="maskPreview-img" @touchstart="start" @touchend="end" @touchmove="move">
<template v-if="previewData.length==1"> <template v-if="previewData.length==1">
<image class="img-center" :src="previewData[previewNum].src"></image> <image class="img-center" :src="previewData[previewNum].faceSourceUrl"></image>
</template> </template>
<template v-else> <template v-else>
<image class="img-left" v-if="previewNum==0" :src="previewData[previewData.length-1].src"></image> <image class="img-left" :style="{left:touchLeft0 +'rpx'}" v-if="previewNum==0" :src="previewData[previewData.length-1].faceSourceUrl||previewData[previewData.length-1].faceAiUrl"></image>
<image class="img-left" v-else :src="previewData[previewNum-1].src"></image> <image class="img-left" :style="{left:touchLeft0 +'rpx'}" v-else :src="previewData[previewNum-1].faceSourceUrl||previewData[previewNum-1].faceAiUrl"></image>
<image class="img-center" :style="{'right':touchRight,'left':touchLeft}" :src="previewData[previewNum].src"></image> <image class="img-center" :style="{right:touchRight +'rpx',left:touchLeft +'rpx'}" :src="previewData[previewNum].faceSourceUrl||previewData[previewNum].faceAiUrl"></image>
<image class="img-right" v-if="previewNum==previewData.length-1" :src="previewData[0].src"></image> <image class="img-right" :style="{right:touchRight2 +'rpx'}" v-if="previewNum==previewData.length-1" :src="previewData[0].faceSourceUrl||previewData[0].faceAiUrl"></image>
<image class="img-right" v-else :src="previewData[previewNum+1].src"></image> <image class="img-right" :style="{right:touchRight2 +'rpx'}" v-else :src="previewData[previewNum+1].faceSourceUrl||previewData[previewNum+1].faceAiUrl"></image>
</template> </template>
</view> </view>
<view class="maskPreview-check"> <view class="maskPreview-check" v-if="checkTypeFun==true">
<u-checkbox v-model="previewData[previewNum].type" shape="circle" class="maskPreview-Check" ></u-checkbox> <u-checkbox v-model="previewData[previewNum].checkType" @click.stop.native="()=>{}" @change="stopPhoto(previewNum)" shape="circle" class="maskPreview-Check"></u-checkbox>
</view> </view>
</view> </view>
<!--明细--> <!--明细-->
...@@ -113,19 +83,20 @@ ...@@ -113,19 +83,20 @@
<view class="maskDetail-content"> <view class="maskDetail-content">
<view class="content-title"> <view class="content-title">
明细 明细
<u-icon class="title-close" name="close-circle" @click="maskDetail=false" ></u-icon> <u-icon class="title-close" name="close-circle" @click="maskDetail=false"></u-icon>
</view> </view>
<view class="content-label">我的相片</view> <view class="content-label">我的相片</view>
<view class="content-money"> <view class="content-money">
<view class="money-name">相片</view> <view class="money-name">相片</view>
<view class="money-text">1*10.00=10.00</view> <view class="money-text">{{priceNum}}*{{sellingPrice}}={{sellingPrices}}</view>
</view> </view>
<view class="content-favorable"> <view class="content-favorable">
<view class="favorable-name">优惠</view> <view class="favorable-name">优惠</view>
<view class="favorable-text">-¥2.00</view> <view class="favorable-text">-¥{{favorablePrice}}</view>
</view> </view>
</view> </view>
</view> </view>
<u-toast ref="uToast" />
</view> </view>
</template> </template>
...@@ -133,118 +104,305 @@ ...@@ -133,118 +104,305 @@
import uPicker from '@/uview-ui/components/u-picker/u-picker.vue' import uPicker from '@/uview-ui/components/u-picker/u-picker.vue'
import uCheckboxGroup from '@/uview-ui/components/u-checkbox-group/u-checkbox-group.vue' import uCheckboxGroup from '@/uview-ui/components/u-checkbox-group/u-checkbox-group.vue'
import uCheckbox from '@/uview-ui/components/u-checkbox/u-checkbox' import uCheckbox from '@/uview-ui/components/u-checkbox/u-checkbox'
import uToast from '@/uview-ui/components/u-toast/u-toast.vue'
export default { export default {
components: { components: {
uPicker, uPicker,
uCheckboxGroup, uCheckboxGroup,
uCheckbox, uCheckbox,
uToast
}, },
data() { data() {
return { return {
orderShow:false,//头部城市选择 faceIds: [], //查询照片ID
option: [ openid:'',
{ cateName: '全部', id: 0 }, orderShow: false, //头部城市选择
{ cateName: '景区', id: 1 }, option: [],//城市
{ cateName: '酒店', id: 2 }, cityName: '重庆',
{ cateName: '餐饮', id: 3 }, areaId:'100500000',//城市ID
{ cateName: '特产', id: 4 }, merchantId:'',//商户ID
// { cateName: '运营车', id: 5 }, location: {},//位置信息
// { cateName: '组合订单', id: 10 }, projectCheck: 0, //当前选择的产品
], merchantList:[],//头部列表
cityName:'重庆', projectMoreType: false, //是否显示更多产品
projectCheck:0,//当前选择的产品 checkProjectAll: false, //所有产品全选
projectMoreType:false,//是否显示更多产品 maskDetail: false,
checkProjectAll:false,//所有产品全选 maskPreviewType:false,//遮罩预览
maskDetail:false, previewData: [ //图片预览
previewData:[//图片预览 // {
{ // type: false,
type:false, // src: '../static/album/customPic.png'
src:'../../../static/img/hghg/dialog.png' // },
},
{
type:false,
src:'../../../static/img/coupon/coupon.jpg'
},
{
type:false,
src:'../../../static/img/common/getTicketBg.jpg'
},
], ],
previewNum:0,//当前是第几张图片 previewNum: 0, //当前是第几张图片
checkTypeFun:true,//刷新选项
//左右滑动监听开始 //左右滑动监听开始
startData: { startData: {
clientX: '', clientX: '',
clientY: '', clientY: '',
}, },
transition:'', transition: '',
touch: {}, touch: {},
touchLeft:0, touchLeft0: -466,
touchRight:0, touchLeft: 0,
touchRight: 0,
touchRight2: -466,
touchType: 0, //向左0++ 向右1--
//左右滑动 监听结束 //左右滑动 监听结束
originalPrice:0,//原价单价
originalPrices:0,//原价
sellingPrice:0,//售价单价
sellingPrices:0,//售价
favorablePrice:0,//优惠
priceNum:0,//选购了多少照片
} }
}, },
onLoad(option) { onLoad(option) {
this.openid = uni.getStorageSync('openid') //获取openid
this.faceIds = JSON.parse(option.faceIds)
this.location = JSON.parse(uni.getStorageSync('location'))
this.merchantId = uni.getStorageSync('merchantId')// 'z0015605022691a5945bbe463141668c'
this.obtainProvince()//获取省市区
this.inquireMerchant()//查询所有商户
this.getPhotos()//照片列表
}, },
methods: { methods: {
industrysTypeConfirm(e) {//单列----分类 点击确定 城市 obtainProvince(){//获取省列表
this.cityName = this.option[e].cateName this.$request('scenic/search/loadAreaByCity',{
areaLevel:1,
inChina:0
}).then((res)=>{
if(res.code=='00'){
this.option = res.data
}else{
this.$refs.uToast.show({
title: res.message,
type: 'error',
})
}
})
},
inquireMerchant(){//查询所有商户
var data = {
id:this.merchantId,//商户ID
province:this.areaId,//省市ID
areaCode:this.areaId,//省市ID
userlatitude:this.location.latitude,//纬度
userlongitude:this.location.longitude,//经度
merchantType:1,//
}
this.$request('scenic/newMerchant/findAllMerchant',data).then((res)=>{
if(res.code=='00'){
this.merchantList = res.data
}else{
this.$refs.uToast.show({
title: res.message,
type: 'error',
})
}
})
},
getPhotos(){//照片
var data = {
faceIds:this.faceIds,//照片ID
openid:this.openid,
merchantId:this.merchantId,//商户ID
}
this.$request('wechatUser/pdFace/list',data).then((res)=>{
if(res.code=='00'){
this.previewData = res.data
this.previewData.forEach((item,index)=>{
item['checkType'] = false
this.originalPrice = item.originalPrice//原价.
this.sellingPrice = item.sellingPrice//售价
})
}else{
this.$refs.uToast.show({
title: res.message,
type: 'error',
})
}
})
}, },
cancel() {//单列 点击取消 industrysTypeConfirm(e) { //单列----分类 点击确定 城市
this.cityName = this.option[e].areaName
this.areaId = this.option[e].areaId
this.inquireMerchant()
},
cancel() { //单列 点击取消
this.orderShow = false this.orderShow = false
}, },
projectClick(num){//产品选择 projectClick(num,id) { //商户选择
this.projectCheck = num this.projectCheck = num
this.merchantId = id
this.inquireMerchant()
}, },
projectMoreFun(){//更多产品显示 projectCheckPhoto(index){//点击预览
if(this.projectMoreType==false){ this.previewNum = index
this.projectMoreType = true this.maskPreviewType = true
},
stopPhoto(index){//刷新显示
if(this.checkProjectAll==true){
this.checkProjectAll=false
}
if(this.previewData[index].checkType==false){
this.previewData[index].checkType = true
}else{
this.previewData[index].checkType = false
}
this.checkTypeFun = false
this.checkTypeFun = true
this.checkMonkey()
},
checkProjectAllFun(){//是否全选
if(this.checkProjectAll==true){
this.checkProjectAll = false
this.previewData.forEach((item,index)=>{
item.checkType = false
})
}else{ }else{
this.checkProjectAll = true
this.previewData.forEach((item,index)=>{
item.checkType = true
})
}
this.checkMonkey()
},
checkMonkey(){//明细价格计算
this.originalPrices = 0//原价
this.sellingPrices = 0//售价
this.priceNum = 0
this.previewData.forEach((item,index)=>{
if(item.checkType==true){
this.originalPrices += item.originalPrice//原价
this.sellingPrices += item.sellingPrice//售价
this.priceNum++
}
})
},
projectMoreFun() { //更多产品显示
if (this.projectMoreType == false) {
this.projectMoreType = true
} else {
this.projectMoreType = false this.projectMoreType = false
} }
}, },
// 触摸touch事件 // 触摸touch事件
start(e){ //@touchstart 触摸开始 start(e) { //@touchstart 触摸开始
this.transition = '.1s' this.transition = '.1s'
this.startData.clientX = e.changedTouches[0].clientX //手指按下时的X坐标 this.startData.clientX = e.changedTouches[0].clientX //手指按下时的X坐标
this.startData.clientY = e.changedTouches[0].clientY //手指按下时的Y坐标 this.startData.clientY = e.changedTouches[0].clientY //手指按下时的Y坐标
}, },
end(e){ //@touchend触摸结束 end(e) { //@touchend触摸结束
this.transition = '.5s' this.transition = '.5s'
if(Math.abs(this.touch.clientX-this.startData.clientX) > 100) { //在事件结束时,判断滑动的距离是否达到出发需要执行事件的要求 if (Math.abs(this.touch.clientX - this.startData.clientX) > 100) { //在事件结束时,判断滑动的距离是否达到出发需要执行事件的要求
console.log('执行查看跳转事件') console.log('执行查看跳转事件')
// this.touch = {}; // this.touch = {};
//动画结束后回到原位 切换图片
this.touchLeft0 = -466
this.touchLeft = 0
this.touchRight = 0
this.touchRight2 = -466
//判断当前应该显示哪张照片
if (this.touchType == 1) {
if (this.previewNum == 0) {
this.previewNum = this.previewData.length - 1
} else {
this.previewNum--
}
} else {
if (this.previewNum == this.previewData.length - 1) {
this.previewNum = 0
} else {
this.previewNum++
}
}
} else { } else {
console.log('滑动距离不够,不执行跳转') console.log('滑动距离不够,不执行跳转')
// this.touch = {}; // this.touch = {};
//动画结束后回到原位
this.touchLeft0 = -466
this.touchRight0 = 0
this.touchLeft = 0
this.touchRight = 0
this.touchLeft2 = 0
this.touchRight2 = -466
} }
}, },
move(event) { //@touchmove触摸移动 move(event) { //@touchmove触摸移动
let touch = event.touches[0] //滑动过程中,手指滑动的坐标信息 返回的是Objcet对象 let touch = event.touches[0] //滑动过程中,手指滑动的坐标信息 返回的是Objcet对象
this.touch = touch this.touch = touch
let data = touch.clientX - this.startData.clientX let data = touch.clientX - this.startData.clientX
if(touch.clientX < this.startData.clientX) { //向左移动 if (touch.clientX < this.startData.clientX) { //向左移动
console.log('左滑动') console.log('左滑动')
console.log(touch.clientX) //方向RPX值
console.log(this.startData.clientX) this.touchRight = this.startData.clientX - touch.clientX
this.touchRight = touch.clientX-this.startData.clientX this.touchLeft0 = this.touchLeft0 + this.startData.clientX - touch.clientX
this.touchRight2 = this.touchRight2 + this.startData.clientX - touch.clientX
this.touchType = 0
} }
if(touch.clientX > this.startData.clientX) { //向右移动 if (touch.clientX > this.startData.clientX) { //向右移动
console.log('右滑动') console.log('右滑动')
console.log(touch.clientX) //方向RPX值
console.log(this.startData.clientX) this.touchLeft = touch.clientX - this.startData.clientX
this.touchLeft = touch.clientX-this.startData.clientX this.touchLeft0 = this.touchLeft0 + this.startData.clientX - touch.clientX
this.touchRight2 = this.touchRight2 + this.startData.clientX - touch.clientX
this.touchType = 1
} }
}, },
upLoad(){//下单
var data = {
orderMoney:this.sellingPrices,//订单总价
orderProductVo:{},//下单信息
}
var orderProductVo = {
buyNum:this.priceNum,//购买数量
orderImgList:[],//订单图片
orderType:1,//订单类型(0其他,1景区,2酒店,3餐饮,4特产,5运营车,10组合订单)
postage:0,//邮费
couponList:[],//产品券信息 游客使用券信息后传
unitPrice:this.sellingPrice,//产品单价
}
this.previewData.forEach((item,index)=>{
if(item.checkType==true){
var imgList = {
imgUrl:item.faceSourceUrl||item.faceAiUrl
}
orderProductVo.orderImgList.push(imgList)
}
})
data.orderProductVo = orderProductVo
this.$request('orderc/photo/photoCreateOrder',data).then((res)=>{
if(res.code=='00'){
uni.navigateTo({
// url: `./myPhotoAlbum/myPhotoAlbum?faceIds=${JSON.stringify(res.data.faceIds)}`
url:'../../payment/orderPayment/orderPayment?orderId='+res.data.id+'&albumOrderdetail=1'
})
}else{
this.$refs.uToast.show({
title: res.message,
type: 'error',
})
}
})
},
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
page{ page {
background-color: #F7F7F7; background-color: #F7F7F7;
} }
.albumBox{ // 76=16 - 44 - 16 98 =34 - 32 - 32
.albumBox {
// 76=16 - 44 - 16 98 =34 - 32 - 32
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
...@@ -252,8 +410,9 @@ page{ ...@@ -252,8 +410,9 @@ page{
padding-bottom: 98rpx; padding-bottom: 98rpx;
padding-top: 174rpx; padding-top: 174rpx;
overflow: auto; overflow: auto;
} }
.album-address{
.album-address {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
width: 100%; width: 100%;
...@@ -266,37 +425,43 @@ page{ ...@@ -266,37 +425,43 @@ page{
top: 0; top: 0;
left: 0; left: 0;
z-index: 20; z-index: 20;
.address-left{
.address-left {
display: flex; display: flex;
flex: 1; flex: 1;
box-shadow: inset -16px 0px 8px 0px rgba(255, 255, 255, 0.2); box-shadow: inset -16px 0px 8px 0px rgba(255, 255, 255, 0.2);
overflow-x: auto; overflow-x: auto;
.left-name{
.left-name {
font-size: 32rpx; font-size: 32rpx;
color: #999999; color: #999999;
line-height: 76rpx; line-height: 76rpx;
margin-right: 48rpx margin-right: 48rpx
} }
.left-picker{
.left-picker {
display: flex; display: flex;
font-size: 32rpx; font-size: 32rpx;
color: #333333; color: #333333;
line-height: 76rpx; line-height: 76rpx;
margin-right: 24rpx; margin-right: 24rpx;
image{
image {
width: 26rpx; width: 26rpx;
height: 26rpx; height: 26rpx;
margin-top: 25rpx; margin-top: 25rpx;
margin-left: 8rpx; margin-left: 8rpx;
} }
} }
.left-project{
.left-project {
font-size: 32rpx; font-size: 32rpx;
color: #333333; color: #333333;
line-height: 76rpx; line-height: 76rpx;
margin-right: 48rpx; margin-right: 48rpx;
position: relative; position: relative;
i{
i {
display: block; display: block;
width: 24rpx; width: 24rpx;
height: 24rpx; height: 24rpx;
...@@ -311,20 +476,24 @@ page{ ...@@ -311,20 +476,24 @@ page{
right: -24rpx; right: -24rpx;
} }
} }
.left-projectDe{
.left-projectDe {
color: #3688FF; color: #3688FF;
font-weight: bold; font-weight: bold;
} }
} }
.address-right{
.address-right {
display: flex; display: flex;
} }
} }
.album-address::-webkit-scrollbar{
.album-address::-webkit-scrollbar {
display: none; display: none;
} }
.album-addressMore{
.album-addressMore {
width: 232rpx; width: 232rpx;
padding: 24rpx 24rpx 0 24rpx; padding: 24rpx 24rpx 0 24rpx;
box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.1);
...@@ -332,14 +501,16 @@ page{ ...@@ -332,14 +501,16 @@ page{
top: 76rpx; top: 76rpx;
right: 0; right: 0;
z-index: 20; z-index: 20;
.addressMore-name{
.addressMore-name {
font-size: 32rpx; font-size: 32rpx;
color: #333333; color: #333333;
line-height: 44rpx; line-height: 44rpx;
margin-bottom: 24rpx; margin-bottom: 24rpx;
} }
} }
.album-checkAll{
.album-checkAll {
display: flex; display: flex;
width: 100%; width: 100%;
height: 98rpx; height: 98rpx;
...@@ -349,39 +520,46 @@ page{ ...@@ -349,39 +520,46 @@ page{
top: 76rpx; top: 76rpx;
left: 0; left: 0;
z-index: 20; z-index: 20;
/deep/ .u-checkbox{
/deep/ .u-checkbox {
line-height: 34rpx !important; line-height: 34rpx !important;
} }
/deep/ .u-checkbox__label{
/deep/ .u-checkbox__label {
font-size: 24rpx !important; font-size: 24rpx !important;
} }
.checkAll-tips{
.checkAll-tips {
font-size: 24rpx; font-size: 24rpx;
color: #999999; color: #999999;
line-height: 46rpx; line-height: 46rpx;
margin-left: 24rpx; margin-left: 24rpx;
} }
} }
.album-subject{
.album-subject {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
flex: 1; flex: 1;
padding: 0 24rpx 0 24rpx; padding: 0 24rpx 0 24rpx;
overflow: auto; overflow: auto;
.subject-List{
.subject-List {
width: 344rpx; width: 344rpx;
height: 460rpx; height: 460rpx;
margin-bottom: 24rpx; margin-bottom: 24rpx;
border-radius: 16rpx; border-radius: 16rpx;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
.list-image{
.list-image {
display: block; display: block;
width: 344rpx; width: 344rpx;
height: 460rpx; height: 460rpx;
} }
.list-mask{
.list-mask {
width: 344rpx; width: 344rpx;
height: 64rpx; height: 64rpx;
background-color: rgba(0, 0, 0, 0.2); background-color: rgba(0, 0, 0, 0.2);
...@@ -393,52 +571,60 @@ page{ ...@@ -393,52 +571,60 @@ page{
left: 0; left: 0;
bottom: 0; bottom: 0;
} }
.list-uCheck{
.list-uCheck {
position: absolute; position: absolute;
right: 0; right: 0;
top: 24rpx; top: 24rpx;
} }
} }
} }
.album-bottom{
.album-bottom {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
width: 100%; width: 100%;
height: 98rpx; height: 98rpx;
padding: 0 0 0 24rpx; padding: 0 0 0 24rpx;
box-shadow: 0rpx -2rpx 8rpx 2rpx rgba(0,0,0,0.08); box-shadow: 0rpx -2rpx 8rpx 2rpx rgba(0, 0, 0, 0.08);
position: fixed; position: fixed;
bottom: 0; bottom: 0;
left: 0; left: 0;
z-index: 22; z-index: 25;
.bottom-left{
.bottom-left {
flex: 1; flex: 1;
display: flex; display: flex;
line-height: 98rpx; line-height: 98rpx;
.left-oldMoney{
.left-oldMoney {
font-size: 24rpx; font-size: 24rpx;
color: #999999; color: #999999;
text-decoration: line-through; text-decoration: line-through;
line-height: 110rpx; line-height: 110rpx;
margin-right: 8rpx; margin-right: 8rpx;
} }
.left-newMoney{
.left-newMoney {
font-size: 40rpx; font-size: 40rpx;
color: #EE520E; color: #EE520E;
font-weight: bold; font-weight: bold;
margin-right: 68rpx; margin-right: 68rpx;
} }
.left-detail{
.left-detail {
display: flex; display: flex;
color: #333333; color: #333333;
margin-right: 20rpx; margin-right: 20rpx;
text{
text {
font-size: 28rpx; font-size: 28rpx;
line-height: 98rpx; line-height: 98rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
} }
.left-num{
.left-num {
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
border-radius: 50%; border-radius: 50%;
...@@ -450,7 +636,8 @@ page{ ...@@ -450,7 +636,8 @@ page{
color: #fff; color: #fff;
margin-top: 34rpx; margin-top: 34rpx;
} }
.left-mask{
.left-mask {
width: 128rpx; width: 128rpx;
height: 48rpx; height: 48rpx;
font-size: 24rpx; font-size: 24rpx;
...@@ -461,13 +648,16 @@ page{ ...@@ -461,13 +648,16 @@ page{
border-radius: 28rpx; border-radius: 28rpx;
opacity: 0.5; opacity: 0.5;
position: absolute; position: absolute;
left: 350rpx; left: 230rpx;
top: -24rpx; top: -24rpx;
.mask-transparent{ z-index: 23;
width:0px;
height:0px; .mask-transparent {
border:10rpx solid transparent;/*以下四个样式对应四种三角形,任选其一即可实现*/ width: 0px;
border-top-color:#EE520E; height: 0px;
border: 10rpx solid transparent;
/*以下四个样式对应四种三角形,任选其一即可实现*/
border-top-color: #EE520E;
/* border-left-color:lightseagreen; */ /* border-left-color:lightseagreen; */
/* border-right-color:lightseagreen; */ /* border-right-color:lightseagreen; */
// border-bottom-color:lightseagreen; // border-bottom-color:lightseagreen;
...@@ -477,24 +667,28 @@ page{ ...@@ -477,24 +667,28 @@ page{
} }
} }
} }
.bottom-Detail{
.bottom-Detail {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.detail-total{
.detail-total {
font-size: 28rpx; font-size: 28rpx;
line-height: 40rpx; line-height: 40rpx;
color: 191919; color: 191919;
margin-bottom: 4rpx; margin-bottom: 4rpx;
margin-top: 16rpx; margin-top: 16rpx;
} }
.detail-favorable{
.detail-favorable {
font-size: 16rpx; font-size: 16rpx;
color: #FF4308; color: #FF4308;
line-height: 22rpx; line-height: 22rpx;
} }
} }
.bootom-btn{
.bootom-btn {
width: 240rpx; width: 240rpx;
height: 98rpx; height: 98rpx;
background-color: #3688FF; background-color: #3688FF;
...@@ -504,16 +698,18 @@ page{ ...@@ -504,16 +698,18 @@ page{
text-align: center; text-align: center;
line-height: 98rpx; line-height: 98rpx;
} }
} }
.album-maskDetail{
.album-maskDetail {
position: fixed; position: fixed;
top: 0; top: 0;
right: 0; right: 0;
bottom: 98rpx; bottom: 98rpx;
left: 0; left: 0;
z-index: 19; z-index: 24;
background-color: rgba(0,0,0,.3); background-color: rgba(0, 0, 0, .3);
.maskDetail-content{
.maskDetail-content {
width: 100%; width: 100%;
padding: 32rpx; padding: 32rpx;
background-color: #fff; background-color: #fff;
...@@ -521,7 +717,8 @@ page{ ...@@ -521,7 +717,8 @@ page{
position: fixed; position: fixed;
left: 0; left: 0;
bottom: 98rpx; bottom: 98rpx;
.content-title{
.content-title {
width: 100%; width: 100%;
font-size: 36rpx; font-size: 36rpx;
color: #333333; color: #333333;
...@@ -530,60 +727,70 @@ page{ ...@@ -530,60 +727,70 @@ page{
text-align: center; text-align: center;
font-weight: bold; font-weight: bold;
position: relative; position: relative;
.title-close{
.title-close {
position: absolute; position: absolute;
top: 8rpx; top: 8rpx;
right: 0; right: 0;
} }
} }
.content-label{
.content-label {
font-size: 36rpx; font-size: 36rpx;
color: #191919; color: #191919;
font-weight: bold; font-weight: bold;
line-height: 50rpx; line-height: 50rpx;
margin-bottom: 32rpx; margin-bottom: 32rpx;
} }
.content-money{
.content-money {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 8rpx; margin-bottom: 8rpx;
.money-name{
.money-name {
font-size: 32rpx; font-size: 32rpx;
color: #191919; color: #191919;
line-height: 44rpx; line-height: 44rpx;
} }
.money-text{
.money-text {
font-size: 32rpx; font-size: 32rpx;
color: #333333; color: #333333;
line-height: 44rpx; line-height: 44rpx;
font-weight: bold; font-weight: bold;
} }
} }
.content-favorable{
.content-favorable {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.favorable-name{
.favorable-name {
font-size: 28rpx; font-size: 28rpx;
color: #FC771D; color: #FC771D;
line-height: 40rpx; line-height: 40rpx;
} }
.favorable-text{
.favorable-text {
font-size: 28rpx; font-size: 28rpx;
color: #FC771D; color: #FC771D;
line-height: 40rpx; line-height: 40rpx;
} }
} }
} }
} }
.album-maskPreview{
.album-maskPreview {
position: fixed; position: fixed;
top: 0; top: 0;
right: 0; right: 0;
bottom: 98rpx; bottom: 98rpx;
left: 0; left: 0;
z-index: 22; z-index: 22;
background-color: rgba(0,0,0,.3); background-color: rgba(0, 0, 0, .3);
.maskPreview-Num{
.maskPreview-Num {
font-size: 28rpx; font-size: 28rpx;
color: #FFFFFF; color: #FFFFFF;
line-height: 40rpx; line-height: 40rpx;
...@@ -591,14 +798,16 @@ page{ ...@@ -591,14 +798,16 @@ page{
top: 72rpx; top: 72rpx;
right: 32rpx; right: 32rpx;
} }
.maskPreview-img{
.maskPreview-img {
display: flex; display: flex;
width: 100%; width: 100%;
height: 794rpx; height: 794rpx;
position: fixed; position: fixed;
top: 152rpx; top: 152rpx;
left: 0; left: 0;
.img-left{
.img-left {
width: 520rpx; width: 520rpx;
height: 692rpx; height: 692rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx; border-radius: 16rpx 16rpx 16rpx 16rpx;
...@@ -608,7 +817,8 @@ page{ ...@@ -608,7 +817,8 @@ page{
top: 0; top: 0;
bottom: 0; bottom: 0;
} }
.img-right{
.img-right {
width: 520rpx; width: 520rpx;
height: 692rpx; height: 692rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx; border-radius: 16rpx 16rpx 16rpx 16rpx;
...@@ -618,7 +828,8 @@ page{ ...@@ -618,7 +828,8 @@ page{
top: 0; top: 0;
bottom: 0; bottom: 0;
} }
.img-center{
.img-center {
width: 596rpx; width: 596rpx;
height: 794rpx; height: 794rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx; border-radius: 16rpx 16rpx 16rpx 16rpx;
...@@ -630,7 +841,8 @@ page{ ...@@ -630,7 +841,8 @@ page{
left: 0; left: 0;
} }
} }
.maskPreview-check{
.maskPreview-check {
width: 48rpx; width: 48rpx;
height: 48rpx; height: 48rpx;
margin: auto; margin: auto;
...@@ -638,12 +850,13 @@ page{ ...@@ -638,12 +850,13 @@ page{
top: 968rpx; top: 968rpx;
left: 0; left: 0;
right: 0; right: 0;
/deep/ .u-checkbox__icon-wrap{
/deep/ .u-checkbox__icon-wrap {
width: 50rpx !important; width: 50rpx !important;
height: 50rpx !important; height: 50rpx !important;
color: #fff !important; color: #fff !important;
border:solid 2px #fff; border: solid 2px #fff;
}
} }
} }
}
</style> </style>
\ No newline at end of file
<template>
<view class="albumBox">
<!--头部-->
<view class="album-address">
<view class="address-left">
<view class="left-picker" @click="orderShow=true">
<i>{{cityName}}</i>
<image src="../static/album/myPhoto01.png"></image>
</view>
<u-picker mode="selector" v-model="orderShow" :default-selector="[orderType]" :range="option" range-key="areaName" @confirm="industrysTypeConfirm($event)" @cancel="cancel"></u-picker>
</view>
</view>
<!--主体循环-->
<view class="album-subject">
<view class="subject-List" v-for="(item,index) in previewData" :key="index" @click="projectCheckPhoto(index)" >
<image class="list-image" :src="item.faceSourceUrl" ></image>
<u-checkbox v-model="item.checkType" v-if="checkTypeFun==true" @click.stop.native="()=>{}" @change="stopPhoto(index)" shape="circle" class="list-uCheck"></u-checkbox>
<view class="list-mask">预览</view>
</view>
</view>
<!--脚部-->
<view class="album-bottom">
<view class="bottom-left" v-if="maskDetail==false">
<!--全选按钮-->
<view class="album-checkAll">
<u-checkbox v-model="checkProjectAll" @change="checkProjectAllFun()">全选</u-checkbox>
<view class="checkAll-tips">未下载影像保留15天</view>
</view>
</view>
<view class="bootom-btn" @click="upLoad()">去下载</view>
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
import uPicker from '@/uview-ui/components/u-picker/u-picker.vue'
import uCheckboxGroup from '@/uview-ui/components/u-checkbox-group/u-checkbox-group.vue'
import uCheckbox from '@/uview-ui/components/u-checkbox/u-checkbox'
import uToast from '@/uview-ui/components/u-toast/u-toast.vue'
export default {
components: {
uPicker,
uCheckboxGroup,
uCheckbox,
uToast
},
data() {
return {
faceIds: [], //查询照片ID
openid:'',
orderShow: false, //头部城市选择
option: [],//城市
cityName: '全部',
areaId:'',//城市ID
merchantId:'',//商户ID
location: {},//位置信息
projectCheck: 0, //当前选择的产品
merchantList:[],//商户列表
merchantName:'全部',//商户名称
projectMoreType: false, //是否显示更多产品
checkProjectAll: false, //所有产品全选
maskDetail: false,
maskPreviewType:false,//遮罩预览
previewData: [ //图片预览
// {
// type: false,
// src: '../static/album/customPic.png'
// },
],
previewNum: 0, //当前是第几张图片
checkTypeFun:true,//刷新选项
//左右滑动监听开始
startData: {
clientX: '',
clientY: '',
},
transition: '',
touch: {},
touchLeft: 0,
touchRight: 0,
touchType: 0, //向左0++ 向右1--
//左右滑动 监听结束
originalPrice:0,//原价单价
originalPrices:0,//原价
sellingPrice:0,//售价单价
sellingPrices:0,//售价
favorablePrice:0,//优惠
priceNum:0,//选购了多少照片
}
},
onLoad(option) {
this.openid = uni.getStorageSync('openid') //获取openid
//this.merchantId = 'z0015605022691a5945bbe463141668c'//uni.getStorageSync('merchantId')
this.obtainProvince()//获取省市区
this.inquireMerchant()//查询所有商户
this.getPhotos()//照片列表
},
methods: {
obtainProvince(){//获取省列表
this.$request('scenic/search/loadAreaByCity',{
areaLevel:1,
inChina:0
}).then((res)=>{
if(res.code=='00'){
this.option = res.data
}else{
this.$refs.uToast.show({
title: res.message,
type: 'error',
})
}
})
},
inquireMerchant(){//查询所有商户
var data = {
id:this.merchantId,//商户ID
province:this.areaId,//省市ID
areaCode:this.areaId,//省市ID
merchantType:1,//
}
this.$request('scenic/newMerchant/findAllMerchant',data).then((res)=>{
if(res.code=='00'){
this.merchantList = res.data
}else{
this.$refs.uToast.show({
title: res.message,
type: 'error',
})
}
})
},
getPhotos(){//照片
var data = {
openid:this.openid,
merchantId:this.merchantId,//商户ID
}
this.$request('wechatUser/pdFace/getAlbumList',data).then((res)=>{
if(res.code=='00'){
this.previewData = res.data
this.previewData.forEach((item,index)=>{
item['checkType'] = false
this.originalPrice = item.originalPrice//原价.
this.sellingPrice = item.sellingPrice//售价
})
}else{
this.$refs.uToast.show({
title: res.message,
type: 'error',
})
}
})
},
industrysTypeConfirm(e) { //单列----分类 点击确定 城市
this.cityName = this.option[e].areaName
this.areaId = this.option[e].areaId
this.inquireMerchant()
},
cancel() { //单列 点击取消
this.orderShow = false
},
projectCheckPhoto(index){//点击预览
this.previewNum = index
this.maskPreviewType = true
},
stopPhoto(index){//刷新显示
if(this.checkProjectAll==true){
this.checkProjectAll=false
}
if(this.previewData[index].checkType==false){
this.previewData[index].checkType = true
}else{
this.previewData[index].checkType = false
}
this.checkTypeFun = false
this.checkTypeFun = true
},
checkProjectAllFun(){//是否全选
if(this.checkProjectAll==true){
this.checkProjectAll = false
this.previewData.forEach((item,index)=>{
item.checkType = false
})
}else{
this.checkProjectAll = true
this.previewData.forEach((item,index)=>{
item.checkType = true
})
}
},
upLoad(){//下单
},
}
}
</script>
<style scoped lang="scss">
page {
background-color: #F7F7F7;
}
.albumBox {
// 76=16 - 44 - 16 98 =34 - 32 - 32
display: flex;
flex-direction: column;
height: 100%;
background-color: #F7F7F7;
padding-bottom: 98rpx;
padding-top: 174rpx;
overflow: auto;
}
.album-address {
display: flex;
justify-content: space-between;
width: 100%;
height: 76rpx;
padding: 0 24rpx 0 24rpx;
background-color: #FFFFFF;
box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.1);
overflow: hidden;
position: fixed;
top: 0;
left: 0;
z-index: 20;
.address-left {
display: flex;
flex: 1;
box-shadow: inset -16px 0px 8px 0px rgba(255, 255, 255, 0.2);
overflow-x: auto;
.left-picker {
display: flex;
font-size: 32rpx;
color: #333333;
line-height: 76rpx;
margin-right: 24rpx;
image {
width: 26rpx;
height: 26rpx;
margin-top: 25rpx;
margin-left: 8rpx;
}
}
}
}
.album-address::-webkit-scrollbar {
display: none;
}
.album-subject {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
flex: 1;
padding: 0 24rpx 0 24rpx;
overflow: auto;
.subject-List {
width: 344rpx;
height: 460rpx;
margin-bottom: 24rpx;
border-radius: 16rpx;
overflow: hidden;
position: relative;
.list-image {
display: block;
width: 344rpx;
height: 460rpx;
}
.list-mask {
width: 344rpx;
height: 64rpx;
background-color: rgba(0, 0, 0, 0.2);
font-size: 28rpx;
color: #fff;
line-height: 64rpx;
text-align: center;
position: absolute;
left: 0;
bottom: 0;
}
.list-uCheck {
position: absolute;
right: 0;
top: 24rpx;
}
}
}
.album-bottom {
display: flex;
justify-content: space-between;
width: 100%;
height: 98rpx;
padding: 0 0 0 24rpx;
box-shadow: 0rpx -2rpx 8rpx 2rpx rgba(0, 0, 0, 0.08);
position: fixed;
bottom: 0;
left: 0;
z-index: 25;
.bottom-left {
flex: 1;
display: flex;
line-height: 98rpx;
.album-checkAll {
width: 100%;
height: 98rpx;
padding: 32rpx 24rpx 0 24rpx;
overflow: hidden;
/deep/ .u-checkbox {
line-height: 34rpx !important;
}
/deep/ .u-checkbox__label {
font-size: 24rpx !important;
}
.checkAll-tips {
font-size: 24rpx;
color: #999999;
line-height: 46rpx;
margin-left: 24rpx;
}
}
}
.bootom-btn {
width: 240rpx;
height: 98rpx;
background-color: #3688FF;
font-size: 32rpx;
color: #fff;
font-weight: bold;
text-align: center;
line-height: 98rpx;
}
}
</style>
\ No newline at end of file
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