123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479 |
- <template>
- <view>
- <view class="bg ">
- <view class="" style="width: 100%;text-align: center;position: relative;" @click="saveImgs(order.massageImg)">
- <image class="" style="width: 750upx;height: 480upx;" mode="widthFix" :src="order.massageImg"></image>
- <view class="govip_view" v-if="!isVip && hyCheck != '否'">
- <view class="icon-box">
- <image style="width: 48rpx;height: 48rpx;"
- src="/static/image/vip.png">
- </image>
- <view style="font-weight: bold;font-size: 32rpx;color: #975A0B;">开通会员立享会员折扣价</view>
- </view>
- <view class="btn-box" @tap="goVip">
- <view class="btn">去开通</view>
- <image style="width: 30rpx;height: 30rpx;margin-left: 20rpx;"
- src="/static/image/vip_btn.png">
- </image>
- </view>
- </view>
- </view>
- <view class="padding-lr padding-top-sm padding-bottom" style="background: #fff;position: relative;margin-top:20rpx;z-index: 9;border-radius: 32rpx 32rpx 0rpx 0rpx;">
- <view class="margin-right-xs text-bold padding-bottom-sm"
- style="letter-spacing: 3rpx; font-size: 35rpx;">
- {{order.title}}
- </view>
- <view class="padding-bottom flex justify-between ">
- <view class="flex align-center" v-if="!isVip">
- <view style="color:#FF6E98;font-size:28rpx;font-weight: bold;">
- ¥<text style="font-size: 40upx;">{{order.price}}</text>
- <text class="oldPrice_view">¥{{order.oldPrice}}</text>
- </view>
- <view class="flex align-center margin-left-sm">
- <image src="../../../static/time.png"
- style="width: 24rpx;height: 24rpx;margin-right: 5rpx;"></image>
- <view style="color: #999999;font-size: 26rpx;">{{order.duration}}分钟</view>
- </view>
- </view>
- <view class="flex align-center" style="color:#26C278;font-size: 24upx;" v-else>
- <view class="box">会员价</view>
- <view style="color:#FF1200;font-size:26upx;font-weight: bold;">
- ¥<text style="font-size: 40upx;">{{order.memberPrice}}</text>
- </view>
- <view class="flex align-center margin-left-sm">
- <image src="../../../static/time.png"
- style="width: 24rpx;height: 24rpx;margin-right: 5rpx;"></image>
- <view style="color: #999999;font-size: 26rpx;">{{order.duration}}分钟</view>
- </view>
- </view>
- <view style="color: #999999;font-size: 26rpx;">已售{{order.sales}}</view>
- </view>
- <view class="flex align-center padding-tb-sm padding-lr "
- style="background: #EDFAF7;border-radius: 24rpx;">
- <view class="rir">
- <!-- 安心购 -->
- <image
- src="/static/image/text_axg.png"
- style="width: 87rpx;height:29rpx;"></image>
- </view>
- <view class="flex align-center" style="margin-right: 30upx;">
- <image src="../../../static/images/index/renz1.png" style="width: 24rpx;height: 24rpx;"></image>
- <text class="margin-left-xs" style="font-size: 24rpx;color: #222222;">实名认证</text>
- </view>
- <view class="flex align-center" style="margin-right: 30upx;">
- <image src="../../../static/images/index/renz2.png" style="width: 24rpx;height: 24rpx;"></image>
- <text class="margin-left-xs" style="font-size: 24rpx;color: #222222;">资质认证</text>
- </view>
- <view class="flex align-center">
- <image src="../../../static/images/index/renz3.png" style="width: 24rpx;height: 24rpx;"></image>
- <text class="margin-left-xs" style="font-size: 24rpx;color: #222222;">平台担保</text>
- </view>
- </view>
-
- </view>
- </view>
- <view class="bg padding margin-top-sm">
- <view class=" text-bold padding-bottom" style="font-size: 34rpx;">
- 适用说明
- </view>
- <view class="flex padding-bottom-sm">
- <view style="color: #666666;">性别限制</view>
- <view class="margin-left">{{order.isSex}}</view>
- </view>
- <view class="flex padding-bottom-xs">
- <view style="color: #666666;">适用人群</view>
- <view class="margin-left">{{order.applyPeople}}</view>
- </view>
- </view>
- <view class="bg padding margin-top-sm" v-if="order.content">
- <view class=" text-bold padding-bottom" style="font-size: 34rpx;">
- 服务内容:
- </view>
- <view v-html="order.content"></view>
- </view>
- <view class="margin-top-sm bg radius ">
- <view class="padding text-bold" style="font-size: 34rpx;">项目详情</view>
- <view v-for="(item,index) in order.contentImg" :key="index" style="width: 100%;"
- @click="saveImg(order.contentImg,index)">
- <image :src="item" style="width: 750upx;height: 963upx;" mode="widthFix"></image>
- </view>
- </view>
-
- <view class=" padding bg u-skeleton-fillet margin-top-sm" style="padding-bottom: 100rpx;">
- <view class=" text-bold padding-bottom-sm" style="font-size: 34rpx;">
- 用户评价({{commentList.length}})
- </view>
- <view v-if="commentList.length<=0" class=""> 暂无评价</view>
- <view class="margin-bottom-sm padding-tb-sm" style="border-bottom: 1upx solid #f0f0f0;"
- v-for="(item, index) in commentList" :key='index' v-else>
- <view class="flex justify-between">
- <u-avatar src="/static/logo.png" size="48"></u-avatar>
- <view class="flex-sub margin-left-sm" style="line-height: 46upx;">匿名</view>
- <view class="flex">
- <u-icon v-for="ite in item.score" :key='ite' color="#FFAA01" name="star-fill"></u-icon>
- </view>
- </view>
- <view class="margin-top-sm">{{item.content}}</view>
- </view>
- </view>
-
- <view class=" text-lg cu-bar foot bg padding-lr" v-if="XCXIsSelect !='否'">
- <view class="text-center" v-if="order.classifyName === '足浴按摩'"
- style="width: 686upx;line-height: 100rpx;background: linear-gradient( 143deg, #FFE6EE 0%, #FF9AB2 100%);border-radius: 86rpx;margin: 0 auto;font-weight: bold;font-size: 32rpx;color: #222222;"
- @click="goNav(order.massageTypeId,order.classifyId)">
- 选择技师
- </view>
- <view class="text-center" v-if="order.classifyName === '健身私教'"
- style="width: 665upx;line-height: 78upx;background: #2FB57A;border-radius: 39upx;margin: 0 auto;color: #FFFFFF;"
- @click="goNav(order.massageTypeId,order.classifyId)">
- 选择教练
- </view>
- <view class="text-center" v-if="order.classifyName != '健身私教' && order.classifyName != '足浴按摩'"
- style="width: 665upx;line-height: 78upx;background: #2FB57A;border-radius: 39upx;margin: 0 auto;color: #FFFFFF;"
- @click="goNav(order.massageTypeId,order.classifyId)">
- 选择师傅
- </view>
- </view>
- <!-- <u-picker v-model="show" mode="time" :params="params" @confirm="statusChange"></u-picker> -->
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- game: [],
- customStyle: {
- width: '400upx',
- color: '#FFFFFF',
- background: "#005DFF",
- border: 0
- },
- massageTypeId: '',
- orderDet: {},
- page: 1,
- limit: 10,
- order: {},
- isFollow: false,
- myId: '',
- isVip: false,
- AUDIO: uni.createInnerAudioContext(),
- isPlay: false,
- show: false,
- params: {
- year: false,
- month: true,
- day: true,
- hour: true,
- minute: true,
- second: true,
- timestamp: true
- },
- startTime: '',
- mobile: '',
- name: '',
- cityaddress: '',
- detailaddress: '',
- latitude: '',
- longitude: '',
- province: '',
- city: '',
- district: '',
- age: '',
- tabs: [{
- name: '服务',
- status: 0
- }, {
- name: '评价',
- status: 1
- }, {
- name: '资质证书',
- status: 2
- }],
- tabIndex: 0, // tab下标
- fwIndex: 0,
- fw: [],
- count: 5,
- value: 4,
- XCXIsSelect: '否',
- hyCheck:'否',
- commentList: [],
- page: 1,
- limit: 10,
- imgArr:[]
- }
- },
- onLoad(option) {
- console.log(option)
- this.$queue.showLoading("加载中...");
- this.massageTypeId = option.massageTypeId
- this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
- this.getDet()
- this.getOrderComment()
- this.myId = uni.getStorageSync('userId')
- this.hyCheck = this.$queue.getData('hyCheck');
- if(this.hyCheck != '否'){
- this.isVip = uni.getStorageSync('isVIP')
- }
- },
- onShow() {
- if(this.massageTypeId){
- this.getDet()
- this.hyCheck = this.$queue.getData('hyCheck');
- if(this.hyCheck != '否'){
- this.isVip = uni.getStorageSync('isVIP')
- }
- this.myId = uni.getStorageSync('userId')
- this.getDet()
- }
- },
- onReady() {
- this.AUDIO.onEnded(function(res) {
- this.isPlay = false;
- });
- },
- methods: {
- goVip(){
- uni.navigateTo({
- url: '/my/vip/index'
- });
- },
- // 评价
- getOrderComment() {
- this.$Request.get("/app/takingComment/selectOrderTakingComment", {
- massageTypeId: this.massageTypeId,
- page: this.page,
- limit: this.limit
- }).then(res => {
- if (res.code == 0) {
- this.commentList = [...this.commentList, ...res.data.list]
- }
- });
- },
- // 切换菜单
- tabChange(index) {
- this.tabIndex = index
- this.fwIndex = index
- },
- // 详情
- getDet() {
- this.$Request.get("/app/artificer/selectMassageTypeById", {
- massageTypeId: this.massageTypeId,
- }).then(res => {
- if (res.code == 0) {
- this.order = res.data
- if (this.order.isSex == 1) {
- this.order.isSex = '男';
- } else if (this.order.isSex == 2) {
- this.order.isSex = '女';
- } else {
- this.order.isSex = '不限性别';
- }
- this.order.contentImg = this.order.contentImg.split(",");
- this.selectFollow()
- }
- uni.hideLoading();
- });
- },
- // 是否关注
- selectFollow() {
- this.$Request.get("/app/userFollow/selectFollowUser", {
- followUserId: this.order.userId
- }).then(res => {
- if (res.data == true) {
- this.isFollow = true
- } else {
- this.isFollow = false
- }
- });
- },
- playVoice() {
- console.log(this.isPlay)
- this.AUDIO.src = this.order.voiceIntroduce;
- if (this.isPlay) {
- this.AUDIO.stop();
- } else {
- this.AUDIO.play();
- }
- this.isPlay = !this.isPlay;
- },
- goNav(massageTypeId, classifyId) {
- uni.navigateTo({
- url: '/pages/therapist/therapistList?massageTypeId=' + massageTypeId + '&classifyId=' +
- classifyId
- })
- },
- goMsg() {
- let data = {
- userId: this.myId,
- focusedUserId: this.order.userId
- }
- this.$Request.postJson('/app/chat/insertChatConversation ', data).then(res => {
- if (res.code == 0) {
- let id = this.order.userId == res.data.userId ? res.data.focusedUserId : this.order.userId
- uni.navigateTo({
- url: '/pages/msg/im?chatConversationId=' + res.data.chatConversationId +
- '&byUserId=' + id
- })
- }
- })
- },
- // 关注
- follow() {
- let that = this
- that.$Request.get("/app/userFollow/insert", {
- followUserId: that.order.userId
- }).then(res => {
- uni.showToast({
- title: res.msg,
- icon: 'none'
- })
- setTimeout(function() {
- that.selectFollow()
- }, 500)
- });
- },
- saveImg(imgs, index) {
- let that = this;
- let imgArr = imgs
- // imgArr.push(imgs);
- // //预览图片
- uni.previewImage({
- urls: imgArr,
- current: imgArr[index]
- });
- },
- saveImgs(imgs) {
- console.log(imgs,this.imgArr)
- // let that = this
- // let imgArr = imgs
- this.imgArr.push(imgs);
- console.log(this.imgArr)
- // //预览图片
- uni.previewImage({
- urls: this.imgArr,
- current: this.imgArr[0]
- });
- },
- }
- }
- </script>
- <style lang="scss">
- page {
- background-color: #F7F7F7;
- }
- .bgs {
- background-color: #FFFFFF;
- }
- .bg {
- background-color: #FFFFFF;
- }
- .govip_view {
- width: 750rpx;
- height: 148rpx;
- background: linear-gradient( 104deg, #FFEDC4 0%, #FFD061 100%);
- border-radius: 32rpx 32rpx 0rpx 0rpx;
- position: absolute;
- bottom: -80rpx;
- left: 0;
- display: flex;
- justify-content: space-between;
- padding: 24rpx 32rpx;
- .icon-box{
- display: flex;
- align-items: center;
- height: 44rpx;
- }
- .btn-box{
- display: flex;
- align-items: center;
- height: 44rpx;
- .btn{
- font-weight: bold;
- font-size: 32rpx;
- color: #975A0B;
-
- }
- }
-
-
-
- }
- .wrap {
- padding: 20upx 23upx;
- }
- .oldPrice_view {
- font-family: PingFang SC;
- text-decoration: line-through;
- margin-left: 8rpx;
- font-size: 24rpx;
- color: #AAAAAA;
- }
- .rir {
- font-size: 30upx;
- font-family: DFZongYi-Bd-80-Win-GB;
- font-weight: 800;
- color: #30B47A;
- margin-right: 30rpx;
- }
- .line_s {
- display: inline-flex;
- width: 14rpx;
- height: 14rpx;
- background: #1AD566;
- border-radius: 50%;
- margin-right: 10rpx;
- }
- .line_x {
- display: inline-flex;
- width: 14rpx;
- height: 14rpx;
- background: #000000;
- border-radius: 50%;
- margin-right: 10rpx;
- }
- .tab>view {
- border-bottom: 2upx solid #F5F5F2;
- }
- .tab>view:last-of-type {
- border: none;
- }
- .box {
- background: #E8FAE1;
- color: #2FB57A;
- padding: 5rpx 15rpx;
- font-size: 26rpx;
- letter-spacing: 2rpx;
- border-radius: 8rpx;
- // margin-top: 10rpx;
- margin-right: 8upx;
- }
- </style>
|