修改新增

master
chen 2021-12-20 16:02:27 +08:00
parent 81626ff788
commit 161fd11009
72 changed files with 1287 additions and 965 deletions

View File

@ -1,6 +1,5 @@
<script>
import toolAll from '@/jsFile/tools.js';
// import {checkSwip} from '@/jsFile/publicAPI.js'
export default {
onLaunch: function() {
toolAll.tools.clearClog();//
@ -16,7 +15,7 @@
setTimeout(()=>{
toolAll.tools.overdue();//
},3000)
// checkSwip()//
toolAll.tools.isVedio();
toolAll.tools.checkQuan();
},
onHide: function() {

View File

@ -102,7 +102,7 @@
}
/* .zhuan{transition: all 1s;transform: rotate(90deg);} */
.nozhuan{transition: all 1s;transform: rotate(0deg);}
.xial-box{top: 100rpx;left: 0;right: 0;z-index: 4;border: 2rpx solid #E0E0E0;}
.xial-box{top: 80rpx;left: 0;right: 0;z-index: 4;border: 2rpx solid #E0E0E0;}
.xial-item-box{max-height: 400rpx;overflow-y: scroll; overflow-x: hidden;}
.doctorx{margin: 0 15rpx;height: 18rpx;border: 2rpx solid #E6E6E6;}
.doctorImg{width: 345rpx;height: 285rpx;border-top-left-radius: 10rpx;border-top-right-radius: 10rpx;}
@ -296,6 +296,9 @@ swiper-item view:last-child .duan-xian{border-bottom: none;}
@media screen and (height:896px){
.blue-img{height: 486rpx;}
}
@media screen and (min-height:926px){
.blue-img{height: 490rpx;}
}

View File

@ -0,0 +1,229 @@
<template>
<view v-if="visible">
<!-- 用户信息授权 -->
<view v-if="userInfo_mobile" @touchmove.stop.prevent="moveHandle" :class="isAnimation==2?'card-box-userinfo':''" class="auth-box">
<view :class="isAnimation==1?'card-box-userinfo':''">
<view class="auth-top">
<image :src="appletImg" mode=""></image>
<view class="auth-top-content">
<view>恒美植发客服代表提醒您</view>
<view>您当前是游客身份</view>
<view>是否选择授权登录</view>
</view>
</view>
<view class="auth-center">申请 获取你的昵称头像地区及性别</view>
<view class="auth-bottom">
<view @tap="chooseBtn(0)" :class="isNo?'isNyin':'noyin'" class="btn btn-no">暂不授权</view>
<view @tap="chooseBtn(1)" :class="isOk?'isOyin':'noyin'" class="btn btn-yes">
<text>立即授权</text>
<button open-type="getUserInfo" @tap="shouq" class="auth-btn">立即授权</button>
</view>
</view>
</view>
</view>
<!-- 手机号授权 -->
<view v-if="!userInfo_mobile" @touchmove.stop.prevent="moveHandle" class="disjcac posAll">
<view class="bacf radius20 width100 tank-box">
<view class="tc tank-box-itemone">请授权绑定手机号</view>
<view class="fon28 colf pad-x30 pad-zy30 tc disjb">
<view class="pad-sx10 radius10 tank-btn" style="background-color: rgba(230, 230, 230,1);color: #000000;">暂不绑定</view>
<view class="pad-sx10 radius10 tank-btn posir pbackc">
立即绑定
<button open-type="getPhoneNumber" @getphonenumber="getphonenumber" class="posia syxzo">立即绑定</button>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name:"empower",
props:{
optionObj:{
type:Object,
default:()=>{
return {}
}
},
appletImg:{//
type:String,
default:'/static/public/like.png'
},
appletName:{//
type:String,
default:''
},
url:{
type:String,
default:''
},
isWhere:{
type:Number,
default:0
}
},
data() {
return {
isOk:false,
isNo:false,
isAnimation:0,
visible:false,
userInfo_mobile:true,
};
},
mounted() {
console.log(this.optionObj);
if(uni.getStorageSync('is_active')!=1){this.visible = true;}
if(this.optionObj.invite_code!='' && this.optionObj.invite_code!=undefined){
this.loginEv(this.optionObj.invite_code);
} else if(this.optionObj.source_code!='' && this.optionObj.source_code!=undefined){
this.loginEv('',this.optionObj.source_code,this.optionObj.channel);
}
},
methods:{
loginEv(invite_code='',source='',channel=''){
uni.login({
provider: 'weixin',
success: (res)=> {
if (res.code) {
var params = {
code:res.code,
invite_code:invite_code,//
source_code:source,
channel:channel
}
this.$requst.post('user/login',params).then(res => {
if(res.data.token!=''){
if(res.data.is_active==0) {
this.visible = true;
}
}
},error => {})
}
},
});
},
moveHandle(){
return false
},
tiaoZ(){//
if(this.isWhere==0) uni.navigateBack({delta:1}) //
if(this.isWhere==1) uni.navigateTo({url:this.url})//
if(this.isWhere!=0 && this.isWhere!=1) return//
this.isOk = false;
},
chooseBtn(index){//
this.$emit('cancleEv',index)//
if(index==0){//
// this.tiaoZ()
uni.navigateTo({
url:'/pages/tabbar/pagehome/pagehome'
})
this.isOk = false
} else {
this.isOk = !this.isOk
this.isNo = false
}
},
shouq(){//
let ya = this;
this.$toolAll.tools.showToast('正在调起授权...')
let code = ''//code
uni.login({// code
provider: 'weixin',
success: function(result) {
uni.hideToast()
code = result.code
},
});
uni.getUserProfile({//
desc: '登录',
lang: 'zh_CN',
success: (res) => {
ya.updateUserInfo(code,res.userInfo);
},
fail: (res) => {
console.log('用户拒绝授权');
this.tiaoZ()
this.$emit('cancleEv',0)
this.isOk = false;
}
});
},
//
updateUserInfo(code,userInfo) {
let ya = this;
uni.showToast({title: '授权中...',icon:'loading',})
var params = {
code:code,
nickname: userInfo.nickName,//
headimgurl: userInfo.avatarUrl,//
country: userInfo.country,//
province: userInfo.province,//
city: userInfo.city,//
gender: userInfo.gender,//
language:userInfo.language,//
is_active:1
}
this.$requst.post('user/login',params).then(res => {
if(res.data.token!=''){
uni.setStorageSync('params',params);
uni.setStorageSync('userId',res.data.account_id);
uni.setStorageSync('token',res.data.token);//token
uni.setStorageSync('expire',res.data.expire);//
uni.setStorageSync('is_active',res.data.is_active);//
uni.setStorageSync('invite_code',res.data.invite_code);
ya.successAfterEv(userInfo);
ya.isAnimation++;
ya.userInfo_mobile = false;
}
},error => {})
},
successAfterEv(userInfo){//
let ya = this
uni.hideToast();
// console.log(uni.getStorageSync('headImg'));
ya.$toolAll.tools.showToast('授权成功','success')
ya.$emit('cancleEv',0)
ya.$emit('buttonH',true)
if(ya.url!=''){
setTimeout(()=>{uni.navigateTo({url:ya.url})},1000)
}
},
getphonenumber(e){//
if(e.detail.errMsg=="getPhoneNumber:ok"){
this.$requst.post('user/bind-phone',{iv:e.detail.iv,encryptedData:e.detail.encryptedData}).then(res=>{
// console.log('',res);
if(res.code==0){
this.$toolAll.tools.showToast('手机号绑定成功','success');
this.visible = false;
}
},error=>{})
} else {
console.log('用户拒绝');
}
},
}
}
</script>
<style>
.auth-box {position: fixed;top: 0;right: 0;left: 0;bottom: 0;display: flex;justify-content: center;align-items: center;z-index: 3;}
.auth-box > view {background-color: #FFFFFF;border-radius: 10rpx;padding: 30rpx;box-shadow: 0rpx 0rpx 20rpx rgba(0,0,0,.5);margin: 0 100rpx;}
.auth-top {display: flex;}
.auth-top image {width: 96rpx;height: 96rpx;flex-shrink: 0;}
.auth-top-content {margin-left: 20rpx;}
.auth-top-content view {font-size: 28rpx;margin-top: 20rpx;color: #999999;}
.auth-top-content view:nth-child(1) {font-size: 30rpx;font-weight: bold;margin-top: 0;}
.auth-center {font-size: 28rpx;margin: 30rpx 0;border-bottom: 1rpx solid #F5F5F5;border-top: 1rpx solid #F5F5F5;padding: 20rpx 0;}
.auth-bottom {display: flex;justify-content: center;align-items: center;font-size: 24rpx;}
.btn {padding: 12rpx 40rpx;border-radius: 4rpx;}
.btn-no {color: #07ad60;background-color: #FFFFFF;border: 1rpx solid #CCCCCC;}
.btn-yes {color: #FFFFFF;background-color: #07ad60;border: 1rpx solid #07ad60;position: relative;margin-left: 20rpx;}
.auth-btn {position: absolute;top: 0;left: 0;right: 0;bottom: 0;opacity: 0;}
.isNyin{box-shadow: 0rpx 3rpx 6rpx rgba(0,0,0,.5);}
.isOyin{box-shadow: 0rpx 3rpx 6rpx rgba(0,0,0,1);}
.card-box-userinfo {transform: rotate(360deg) scale(0);transition: all 1s ease-in-out;}
</style>

View File

@ -2,7 +2,7 @@
<view>
<scroll-view scroll-x >
<view class="" :class="isCenter?'disac':'disjb'">
<view @tap="choosecate(index)"
<view @tap="choosecate(index)" v-if="item.title!='' && item.title!=''"
:style="{
background : newCurrent==index ? activeb:newbmo,
fontSize:newfmo+'px',

View File

@ -1,22 +1,20 @@
<template>
<view @touchmove.stop.prevent="moveHandle" v-if="vision" class="auth-box">
<view>
<view @touchmove.stop.prevent="moveHandle" v-if="vision" style="position: fixed;top: 0;right: 0;left: 0;bottom: 0;display: flex;justify-content: center;align-items: center;z-index: 3;">
<view style="background-color: #FFFFFF;border-radius: 10rpx;padding: 30rpx;box-shadow: 0rpx 0rpx 20rpx rgba(0,0,0,.5);margin: 0 100rpx;">
<view style="display: flex;">
<image :src="appletImg" style="width: 96rpx;height: 96rpx;flex-shrink: 0;" mode=""></image>
<view style="margin-left: 20rpx;">
<view style="font-size: 30rpx;font-weight: bold;">恒美植发客服代表提醒您</view>
<view style="font-size: 28rpx;margin-top: 20rpx;color: #999999;">您当前是游客身份</view>
<view style="font-size: 28rpx;margin-top: 20rpx;color: #999999;">是否选择授权登录</view>
<view class="auth-top">
<image :src="appletImg" mode=""></image>
<view class="auth-top-content">
<view>恒美植发客服代表提醒您</view>
<view>您当前是游客身份</view>
<view>是否选择授权登录</view>
</view>
</view>
<view style="font-size: 28rpx;margin: 30rpx 0;border-bottom: 1rpx solid #F5F5F5;border-top: 1rpx solid #F5F5F5;padding: 20rpx 0;">申请 获取你的昵称头像地区及性别</view>
<view style="display: flex;justify-content: center;align-items: center;font-size: 24rpx;">
<view @tap="chooseBtn(0)" :class="isNo?'isNyin':'noyin'" style="color: #07ad60;background-color: #FFFFFF;padding: 12rpx 40rpx;border-radius: 4rpx;border: 1rpx solid #CCCCCC;">暂不授权</view>
<view @tap="chooseBtn(1)" :class="isOk?'isOyin':'noyin'" style="background-color: #07ad60;padding: 12rpx 40rpx;color: #FFFFFF;margin-left: 20rpx;border: 1rpx solid #07ad60;position: relative;">
<view class="auth-center">申请 获取你的昵称头像地区及性别</view>
<view class="auth-bottom">
<view @tap="chooseBtn(0)" :class="isNo?'isNyin':'noyin'" class="btn btn-no">暂不授权</view>
<view @tap="chooseBtn(1)" :class="isOk?'isOyin':'noyin'" class="btn btn-yes">
<text>立即授权</text>
<button open-type="getUserInfo" @tap="shouq" style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;opacity: 0;">立即授权</button>
</view>
<button open-type="getUserInfo" @tap="shouq" class="auth-btn">立即授权</button>
</view>
</view>
</view>
@ -146,6 +144,19 @@
</script>
<style>
.auth-box {position: fixed;top: 0;right: 0;left: 0;bottom: 0;display: flex;justify-content: center;align-items: center;z-index: 3;}
.auth-box > view {background-color: #FFFFFF;border-radius: 10rpx;padding: 30rpx;box-shadow: 0rpx 0rpx 20rpx rgba(0,0,0,.5);margin: 0 100rpx;}
.auth-top {display: flex;}
.auth-top image {width: 96rpx;height: 96rpx;flex-shrink: 0;}
.auth-top-content {margin-left: 20rpx;}
.auth-top-content view {font-size: 28rpx;margin-top: 20rpx;color: #999999;}
.auth-top-content view:nth-child(1) {font-size: 30rpx;font-weight: bold;margin-top: 0;}
.auth-center {font-size: 28rpx;margin: 30rpx 0;border-bottom: 1rpx solid #F5F5F5;border-top: 1rpx solid #F5F5F5;padding: 20rpx 0;}
.auth-bottom {display: flex;justify-content: center;align-items: center;font-size: 24rpx;}
.btn {padding: 12rpx 40rpx;border-radius: 4rpx;}
.btn-no {color: #07ad60;background-color: #FFFFFF;border: 1rpx solid #CCCCCC;}
.btn-yes {color: #FFFFFF;background-color: #07ad60;border: 1rpx solid #07ad60;position: relative;margin-left: 20rpx;}
.auth-btn {position: absolute;top: 0;left: 0;right: 0;bottom: 0;opacity: 0;}
.isNyin{box-shadow: 0rpx 3rpx 6rpx rgba(0,0,0,.5);}
.isOyin{box-shadow: 0rpx 3rpx 6rpx rgba(0,0,0,1);}
</style>

View File

@ -16,7 +16,7 @@
<!-- 视频标题 -->
<view class="fon30 bold mar-x10 disac" :style="{fontSize:nFon+'px'}">
<view class="clips1">{{item.title}}</view>
<text v-if="item.isVideo" :style="{fontSize:(nFon-2)+'px',marginLeft:nmarz+'px'}" style="border-radius: 5rpx;padding: 0 6rpx;text-align: center;" class="pbackc flexs"></text></view>
<text v-if="item.isVideo && isVedio" :style="{fontSize:(nFon-2)+'px',marginLeft:nmarz+'px'}" style="border-radius: 5rpx;padding: 0 6rpx;text-align: center;" class="pbackc flexs"></text></view>
<!-- 视频描述 -->
<view class="mar-x10 clips1 opc">{{item.content}}</view>
<view class="disac">
@ -26,7 +26,7 @@
<view class="clips1 opc">{{item.name}}</view>
</view>
</view>
<image v-if="item.isVideo" :style="{width:nWidth+'rpx',height:nHeight+'rpx'}" class="posia" style="top: 50%;left: 50%;transform: translate(-50%,-50%);" src="/static/public/video.png" mode=""></image>
<image v-if="item.isVideo && isVedio" :style="{width:nWidth+'rpx',height:nHeight+'rpx'}" class="posia" style="top: 50%;left: 50%;transform: translate(-50%,-50%);" src="/static/public/video.png" mode=""></image>
</view>
</view>
<!-- 右侧列表 -->
@ -44,7 +44,7 @@
<!-- 视频标题 -->
<view class="fon30 bold mar-x10 disac" :style="{fontSize:nFon+'px'}">
<view class="clips1">{{item.title}}</view>
<text v-if="item.isVideo" :style="{fontSize:(nFon-2)+'px',marginLeft:nmarz+'px'}" style="border-radius: 5rpx;padding: 0 6rpx;text-align: center;" class="pbackc flexs"></text>
<text v-if="item.isVideo && isVedio" :style="{fontSize:(nFon-2)+'px',marginLeft:nmarz+'px'}" style="border-radius: 5rpx;padding: 0 6rpx;text-align: center;" class="pbackc flexs"></text>
</view>
<!-- 视频描述 -->
<view class="mar-x10 clips1 opc">{{item.content}}</view>
@ -55,13 +55,13 @@
<view class="clips1 opc">{{item.name}}</view>
</view>
</view>
<image v-if="item.isVideo" :style="{width:nWidth+'rpx',height:nHeight+'rpx'}" class="posia" style="top: 50%;left: 50%;transform: translate(-50%,-50%);" src="/static/public/video.png" mode=""></image>
<image v-if="item.isVideo && isVedio" :style="{width:nWidth+'rpx',height:nHeight+'rpx'}" class="posia" style="top: 50%;left: 50%;transform: translate(-50%,-50%);" src="/static/public/video.png" mode=""></image>
</view>
</view>
</view>
<view v-else class="" style="display: flex;flex-direction: column;align-items: center;">
<image src="/static/public/nothing.png" style="width: 474rpx;height: 273rpx;" mode="aspectFill"></image>
<view class="fon24 col3" style="margin-bottom: 60rpx;">暂无内容</view>
<!-- <view class="fon24 col3" style="margin-bottom: 60rpx;">暂无内容</view> -->
</view>
<!-- 弹框 -->
<pu-po :isShowT="isShowT" :contentVal="pu_content" @comfirmev="comfirmev" @cancleev="cancleev"></pu-po>
@ -111,7 +111,8 @@
isShowT:false,
pu_content:'是否需要取消收藏?',
current:'-1',
jieDuan:false
jieDuan:false,
isVedio:uni.getStorageSync('isVedio')
};
},
methods:{
@ -123,7 +124,6 @@
let isAuth = this.$toolAll.tools.returnAuth()
if(!isAuth){
uni.navigateTo({
// url:'/pagesB/problemDetail/problemDetail?isCate='+this.list[index].isCate
url:'/pagesB/problemDetail/problemDetail?id='+this.list[index].id+'&category_id='+this.list[index].category_id
})
} else this.jieDuan = true
@ -134,7 +134,6 @@
if(this.jieDuan==false){
let isAuth = this.$toolAll.tools.returnAuth()
if(!isAuth){
// this.$emit('chooseLike',this.list[index].id)
this.$emit('chooseLike',index)
this.current = index
if(this.list[index].is_collected==1) {
@ -152,7 +151,6 @@
},
comfirmev(){
// console.log('');
// this.$emit('comfirmev',this.list[this.current].id)
this.$emit('comfirmev',this.current)
this.isShowT = false
},

View File

@ -86,20 +86,7 @@
dataList:{
type:Array,
default:function(){
return [
{
imgSrc:'/static/public/wen-one.png',//
title:'【99皮皮节】【种植发际 线】1000单位FUE技术...',//
zhePrice:'3888',//
yuanPrice:'4205',//
integral:'2888',//
isTuan:false,//
isPing:false,//
isXian:false,//
isIntegral:false,//
grade:0,//
}
]
return []
}
},
iswhere:{
@ -155,12 +142,19 @@
methods:{
destroyev(){
uni.clearInterval(this.timer);
console.log(12);
this.$emit('destroyEv')
},
goPage(id,index){//
let is_activity = 0;
let shopId = 0;
if(this.dataList[index].isTuan==true || this.dataList[index].isPing==true || this.dataList[index].isXian==true) {
is_activity = 1;
shopId = this.dataList[index].activity_id;
} else {
shopId = id;
}
uni.navigateTo({
url:`/pagesB/shopDetail/shopDetail?id=${id}&isIntegral=${this.dataList[index].isIntegral}`
url:`/pagesB/shopDetail/shopDetail?id=${shopId}&isIntegral=${this.dataList[index].isIntegral}&is_activity=${is_activity}`
})
},
}

View File

@ -5,7 +5,7 @@
<swiper-item v-for="(item,index) in bannerList" :key="index">
<view @tap="chooseImg(index)" class="posir">
<image :style="{borderRadius:newRadius+'px',height:newHeight+'px'}" class="img" :src="item.imgSrc" mode="aspectFill"></image>
<image @tap.stop="playVideo(index)" v-if="item.isVideo" class="posia" style="top: 50%;left: 50%;transform: translate(-50%,-50%);width: 126rpx;height: 126rpx;z-index: 1;" src="/static/public/video.png" mode=""></image>
<image @tap.stop="playVideo(index)" v-if="item.isVideo && isVedio" class="posia" style="top: 50%;left: 50%;transform: translate(-50%,-50%);width: 126rpx;height: 126rpx;z-index: 1;" src="/static/public/video.png" mode=""></image>
</view>
</swiper-item>
</swiper>
@ -60,6 +60,7 @@
bcurrent:0,
isShowVideo:false,
autoplay:false,
isVedio:uni.getStorageSync('isVedio')
};
},
methods:{
@ -70,12 +71,22 @@
let imgList = []
this.bannerList.forEach(item=>{
let nurl = ''
let obj = {}
if(this.isVedio) {
item.url=='' ? nurl = item.imgSrc : nurl = item.url
let obj = {
obj = {
url:nurl,
type:item.isVideo?'video':'image',
poster:item.poster
}
} else {
nurl = item.imgSrc
obj = {
url:nurl,
type:'image',
poster:item.poster
}
}
imgList.push(obj)
})
uni.previewMedia({

View File

@ -4,7 +4,7 @@ console.log('当前环境', process.env.NODE_ENV)
const apiHub = {
//开发环境
development: {
BASE_URL: "https://hengmei.scdxtc.cn/api/",
BASE_URL: this.$hostapi,
// BASE_URL: "https://hm.hmzfyy.cn/api/",
IMG_URL: "https://xx",
BASE_UPLOAD_URL: "",

View File

@ -1,4 +1,5 @@
const domainName = 'https://hengmei.scdxtc.cn/api/'//域名配置
// const domainName = 'https://hengmei.scdxtc.cn/api/'//域名配置
const domainName = 'https://hm.hmzfyy.cn/api/'//域名配置
// 统一给参数
const dataObj = (url, params) => {
let options = params

View File

@ -202,7 +202,7 @@ const tools = {
},
escape2Html(str) {//富文本
var arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"' };
return str.replace(/&(lt|gt|nbsp|amp|quot|src);/ig, function (all, t) { return arrEntities[t]; }).replace('<section', '<div').replace(/\<img/g, '<img @tap="pre" style="max-width:100%;height:auto" ').replace(/src=\"/g,'src="https://oss.hmzfyy.cn');
return str.replace(/&(lt|gt|nbsp|amp|quot|src);/ig, function (all, t) { return arrEntities[t]; }).replace('<section', '<div').replace(/\<img/g, '<img @tap="pre" style="max-width:100%!important;height:auto" ').replace(/src=\"/g,'src="https://oss.hmzfyy.cn');
},
setTime(url,title,time){
// console.log(url,title,time);
@ -272,6 +272,7 @@ const tools = {
}
},
loginEv(){//执行登录事件
let that = this;
uni.login({
provider: 'weixin',
success: function(res) {
@ -290,7 +291,7 @@ const tools = {
language:obj.language
}
uni.request({
url: `https://hengmei.scdxtc.cn/api/user/login`,
url: `${that.$hostapi}user/login`,
method: 'post',
data: params,
header: {
@ -381,6 +382,27 @@ const tools = {
}
return newTime;
},
isVedio(){//是否显示视频内容
uni.request({
url: `https://hm.hmzfyy.cn/api/index/base-config`,
method: 'get',
header: {
'Content-Type': 'application/json; charset=UTF-8',
// "content-type": "application/x-www-form-urlencoded;charset=UTF-8",
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
},
success: res => {
if(res.data.code==0){
if(res.data.data.v==0) {
uni.setStorageSync('isVedio',false);
} else {
uni.setStorageSync('isVedio',true);
}
// console.log(uni.getStorageSync('isVedio/'));
}
}
})
}
}

View File

@ -20,6 +20,8 @@ import authPhone from './components/auth-phone.vue'//引入手机授权组件
Vue.component('auth-phone',authPhone)//全局注册手机授权组件
import empower from './components/empower.vue'//引入用户授权组件
Vue.component('empower',empower)//全局注册用户授权组件
import authUserInfoMobile from './components/auth-userInfo-mobile.vue'//引入授权用户信息,授权手机号组件
Vue.component('auth-userInfo-mobile',authUserInfoMobile)//全局注册授权用户信息,授权手机号组件
// 常用工具
@ -30,7 +32,9 @@ import requst from '@/jsFile/requst.js'
Vue.prototype.$requst = requst;
// 域名专治后台仔没有返回http/https的图片
// Vue.prototype.$http = 'https://hm.hmzfyy.cn'
Vue.prototype.$http = 'https://oss.hmzfyy.cn'
Vue.prototype.$http = 'https://oss.hmzfyy.cn';
// Vue.prototype.$newUrl = 'https://hengmei.scdxtc.cn/api/';
Vue.prototype.$hostapi = 'https://hm.hmzfyy.cn/api/';
const {log} = console;
Vue.prototype.$log = log

View File

@ -312,7 +312,13 @@
}
}
//
if(this.page==1) this.dataList = []
if(this.page==1) {
this.dataList = [];
uni.pageScrollTo({
scrollTop:0,
duration:0
})
}
if(res.data.list.list.length!=0){
this.total = res.data.list.total
res.data.list.list.forEach(item=>{
@ -332,10 +338,7 @@
name:item.published_by || '恒美植发',//
isVideo:item.video.includes(".mp4")//
}
if(this.newCurrent==0 && item.category_id==32) this.dataList.push(tObj)
if(this.newCurrent==1 && item.category_id==33) this.dataList.push(tObj)
if(this.newCurrent==2 && item.category_id==34) this.dataList.push(tObj)
if(this.newCurrent==3 && item.category_id==38) this.dataList.push(tObj)
this.dataList.push(tObj);
})
}
}
@ -409,7 +412,7 @@
is_hot:1
}
uni.request({
url:'https://hengmei.scdxtc.cn/api/spu/list',
url:`${this.$hostapi}spu/list`,
data:params,
method:'post',
header:{

View File

@ -28,7 +28,8 @@
<image @tap="tuneUpqr" src="/static/public/staff-qro.png" class="gao-m" mode=""></image>
<!-- 前进键 -->
<view @tap="goNodifyData" class="disac gao-next-box">
<image class="" src="/static/public/next-white.png" mode="aspectFill"></image>
<!-- <image class="" src="/static/public/next-white.png" mode="aspectFill"></image> -->
<image class="" src="/static/public/set-icon.png" mode="aspectFill"></image>
</view>
</view>
</view>
@ -146,10 +147,10 @@
<!-- 底部tab -->
<foot-tab :titleList="titleList" :imgList="imgList" :newcurrent='4'></foot-tab>
<!-- 弹框授权 -->
<empower :vision="vision" @cancleEv="cancleEv"></empower>
<view v-if="isQian" class="sigin-box">
<view>{{contentVal}}</view>
</view>
<auth-userInfo-mobile :optionObj="optionObj"></auth-userInfo-mobile>
</view>
</template>
@ -161,7 +162,6 @@
components:{empower},
data() {
return {
vision:false,
statusHNH:uni.getStorageSync('statusHNH'),
publicColor:uni.getStorageSync('publicColor'),
tongList:[
@ -215,7 +215,6 @@
isQian:false,
bannerList:[],
guangImg:'',
isAuth:'',
guanggao:'',
userToken:'',
contentVal:'',//
@ -227,6 +226,7 @@
customerInfo:'',
times:0,
openSettingBtnHidden: true,//
optionObj:{}
}
},
onUnload: function() {
@ -283,7 +283,8 @@
onUnload() {
this.closeqr();
},
onLoad() {
onLoad(options) {
this.optionObj = options;
if(uni.getStorageSync('gao')==''){
const query = wx.createSelectorQuery()
query.select('.gao').boundingClientRect((rect) => {
@ -472,9 +473,6 @@
}
})
},
cancleEv(e){
if(e==0) this.vision = false
},
checkGM(){//
uni.showToast({
title:'正在生成二维码',
@ -499,6 +497,7 @@
if(res.code==0 && res.data.length!=0) {
this.userInfo = res.data;
uni.setStorageSync('userId',res.data.id);
uni.setStorageSync('phone',this.userInfo.mobile);
this.userPhone = this.$toolAll.tools.hideMPhone(this.userInfo.mobile)
this.tongList[0].num = res.data.score;//
this.tongList[1].num = res.data.coin;//

View File

@ -158,7 +158,6 @@
onShow() {
log('输出的解构')
this.checkNet()
this.$toolAll.tools.overdue()
this.$toolAll.tools.isLogin()
let maiOjb = {
e:6,//
@ -173,7 +172,6 @@
this.isAutoPlay = true;
},
onShareAppMessage(res) {
console.log(uni.getStorageSync('invite_code'));
var ya = this;
let maiOjb = {
e:6,//
@ -182,16 +180,30 @@
this.$toolAll.tools.maiDian(maiOjb)
var shareObj = {
     title: '成都恒美毛发', // (slogan)
     path: `/pages/tabbar/pagehome/pagehome?invite_code=${uni.getStorageSync('invite_code')}}` // 默认是当前页面,必须是以‘/开头的完整路径
     path: `/pages/tabbar/pagehome/pagehome?invite_code=${uni.getStorageSync('invite_code')}` // 默认是当前页面,必须是以‘/开头的完整路径
  };
  return shareObj;
},
onLoad(options) {
if(options.source_code!='' && options.source_code!=undefined){
this.loginEv(options);
} else if(options.q!=undefined){
let newInvite = options.q.slice(options.q.indexOf('invite_code%')+14);
uni.login({
provider: 'weixin',
success: (res)=> {
var params = {
code:res.code,
invite_code:newInvite,//
}
if(options.invite_code!='' && options.invite_code!=undefined){
console.log(newInvite,'邀请码');
this.$requst.post('user/login',params).then(res => {console.log('调用成功');},error => {})
},
});
} else if(options.invite_code!='' && options.invite_code!=undefined){
this.loginEv(options);
} else {
this.$toolAll.tools.overdue()
}
const query = wx.createSelectorQuery()
query.select('.statusHNH').boundingClientRect((rect) => {
@ -213,6 +225,7 @@
},
methods: {
loginEv(option){
console.log(option,'option');
uni.login({
provider: 'weixin',
success: (res)=> {
@ -222,6 +235,7 @@
source_code:option.source_code || '',
channel:option.channel || ''
}
console.log(option.invite_code);
this.$requst.post('user/login',params).then(res => {console.log('调用成功');},error => {})
},
});

View File

@ -304,7 +304,7 @@
disease_id:this.disease_id//ID
}
uni.request({
url:'https://hengmei.scdxtc.cn/api/spu/list',
url:`${this.$hostapi}spu/list`,
data:params,
method:'post',
header:{
@ -349,6 +349,7 @@
activity_end_at:item.activity_end_at,//
activity_group_cover:group_cover,//
activity_group_num:item.activity_group_num,//
activity_id:item.activity_id
}
this.zanArr.push(obj)
})
@ -399,8 +400,16 @@
})
},
goPage(id,index){//
let is_activity = 0;
let shopId = 0;
if(this.dataList[index].isTuan==true || this.dataList[index].isPing==true || this.dataList[index].isXian==true) {
is_activity = 1;
shopId = this.dataList[index].activity_id;
} else {
shopId = id;
}
uni.navigateTo({
url:`/pagesB/shopDetail/shopDetail?id=${id}&isIntegral=${this.dataList[index].isIntegral}`
url:`/pagesB/shopDetail/shopDetail?id=${shopId}&isIntegral=${this.dataList[index].isIntegral}&is_activity=${is_activity}`
})
},
chooseBing(index){//

View File

@ -16,6 +16,7 @@
<view class="mar-s30">活动要求{{item.description}}</view>
<view class="mar-s20">获得奖励{{item.amount}} <span v-if="item.isIcon!=1"></span><span v-else></span></view>
<view class="mar-s20">会员暂无</view>
<view class="mar-s20">开始时间{{item.startTime}}</view>
<view class="mar-s20">结束时间{{item.endTime}}</view>
</view>
<view class="disjcac">
@ -213,6 +214,7 @@
account_status:item.account_status,
member:'',//
isStatus:item.status,
startTime:item.start_at,//
endTime:item.end_at,//
isIcon:nIcon,// 0 1 2 3
ntype:item.type//

View File

@ -150,6 +150,9 @@
}
})
}
if(this.dataList[index].isTiyan==false && this.dataList[index].statusNum==0) {
uni.navigateTo({url:'/pages/tabbar/shop/shop'})
}
if(this.dataList[index].isTiyan==true && this.dataList[index].statusNum==0){
this.tyImg = this.dataList[index].cover;
this.$requst.post('user/exhibition-experience-coupon',{coupon_id:this.dataList[index].id}).then(res=>{
@ -172,6 +175,7 @@
})
},3000)
}
},
closeQuanEv(){
this.isTY = false;

View File

@ -161,6 +161,18 @@
</view>
</view>
</view>
<!-- 分享弹框 -->
<view v-if="isfen" class="posAll disjcac" style="background-color: rgba(0,0,0,.25);z-index: 8;">
<view class="bacf width100 radius20 posir" style="padding: 60rpx 50rpx;margin: 0 70rpx;text-align: center;">
<image @tap="isfen=false" src="../../static/public/closequan.png" class="posia heyan-close" mode=""></image>
<view style="color: #f55255;font-size: 36rpx;">立即完成拼单?</view>
<view style="margin: 50rpx 0;font-size: 26rpx;">点击下方分享给朋友完成拼单</view>
<view class="posir radius15 disjcac pad-sx20" style="background-color: #22cc3e;color: #FFFFFF;font-size: 36rpx;">
分享给朋友
<button open-type="share" class="posia-op">分享给朋友</button>
</view>
</view>
</view>
<!-- 弹框授权 -->
<empower @buttonH="buttonH" :vision="vision" :isWhere="2"></empower>
<!-- 弹框 -->
@ -213,10 +225,29 @@
ntype:'money',//money coin
times:0,//
isCurrent:2,
vision:true,
vision:false,
isShowP:false,
isfen:false,
checkGrounpId:0,
}
},
onShareAppMessage(res) {
var ya = this;
this.$requst.post('user/record',{type:'content',action:'share',id:this.orderList[0].id}).then(res=>{console.log('分享成功:',res);},error=>{})
let maiOjb = {
e:4,//
c:this.orderList[0].id*1,
t:new Date().getTime()//
}
this.$toolAll.tools.maiDian(maiOjb);
if(ya.addressInfo.share_img==null) ya.addressInfo.share_img = ya.addressInfo.cover;
var shareObj = {
     title: `${ya.orderList[0].title}`, // (slogan)
     path: `/pagesB/shopDetail/shopDetail?id=${this.orderList[0].id}&category_id=${this.orderList[0].category_id}&share_id=${this.checkGrounpId}&invite_code=${uni.getStorageSync('invite_code')}&shareCate=${this.orderList[0].cateNum}&checkGrounpId=${this.orderList[0].checkGrounpId}`, // /
     imageUrl: ya.orderList[0].imgSrc//PNGJPG imageUrl 使 5:4
  };
  return shareObj;
},
onShow() {
this.$toolAll.tools.isLogin();
this.checkChoose();//
@ -480,7 +511,7 @@
this.$toolAll.tools.showToast('正在调起支付','loading',1500);
}
uni.request({
url:'https://hengmei.scdxtc.cn/api/order/create',
url:`${this.$hostapi}order/create`,
data:parmas,
method:'post',
header:{
@ -518,8 +549,7 @@
success:(res)=> {
this.$requst.post('order/paid',{order_coding:info.coding}).then(res=>{
if(res.code==0){
uni.removeStorageSync('chooseAddress')
this.isSuccess = true;
this.suseeceEv(info.coding);
} else this.$toolAll.tools.showToast(res.msg);
})
@ -534,10 +564,20 @@
} else {
this.$requst.post('order/paid',{order_coding:info.coding}).then(res=>{
if(res.code==0){
this.suseeceEv(info.coding);
} else this.$toolAll.tools.showToast(res.msg);
})
}
},
suseeceEv(coding){
uni.removeStorageSync('chooseAddress')
this.isSuccess = true;
} else this.$toolAll.tools.showToast(res.msg);
if(this.orderList[0].cateNum==1 && this.orderList.pin_user_id!=0){
this.isfen = true;
this.$requst.post('order/get-group-id',{order_coding:coding}).then(res=>{
if(res.code==0){
this.checkGrounpId = res.data.group_id;
}
})
}
},

View File

@ -77,7 +77,7 @@
isZanw:true,
ntype:'in',
isHave:false,
vision:true,
vision:false,
isShowP:false,
}
},

View File

@ -48,6 +48,12 @@
</view> -->
<view class="fon28 col3">
<view class="mar-sx20 disje"><span v-if="item.isShop==0"><span v-if="item.is_only!=1">{{item.total}}</span><span v-if="item.is_only==1">{{item.total}}</span> <span v-if="item.coin!=0">+{{item.coin}}</span></span><span v-else>{{item.total}}</span></view>
<view class="disjbac">
<view v-if="item.is_only==0 && item.open_one==1 && item.is_group_make==1 && item.open_one_success==0" class="posir disjcac flexs" style="color: #010101;font-size: 24rpx;">
<image src="../../static/public/weix.png" mode="" class="flexs" style="width: 50rpx;height: 50rpx;"></image>
分享给朋友
<button open-type="share" :data-id="index" class="posia-op">分享给朋友</button>
</view>
<view class="width100 disje">
<view @tap="comeing(item.orderNum)" v-if="item.is_only==0 && item.open_one==1 && item.is_group_make==1 && item.open_one_success==0" class="order-btn mar-y20"></view>
<view @tap="transferFrame(index)" v-if="item.orderStatus != 0 && item.orderStatus != 5 && item.virtual_check==0 && item.orderStatus!=5" class="order-cancle"></view>
@ -57,6 +63,7 @@
</view>
</view>
</view>
</view>
<nothing-page v-if="orderList.length==0" :content="`暂无更多订单列表`"></nothing-page>
</view>
<!-- 待核验弹框 -->
@ -139,9 +146,29 @@
colorLight: '#ffffff',
timer:null,
zanArr:[],
timeList:[]
timeList:[],
orderInfo:{},
checkGrounpId:0
}
},
onShareAppMessage(res) {
var ya = this;
let orderIndex = res.target.dataset.id;
this.orderInfo = this.orderList[orderIndex];
this.$requst.post('user/record',{type:'content',action:'share',id:this.orderInfo.childrenList[0].spu_id}).then(res=>{console.log('分享成功:',res);},error=>{})
let maiOjb = {
e:4,//
c:this.orderInfo.childrenList[0].spu_id*1,
t:new Date().getTime()//
}
this.$toolAll.tools.maiDian(maiOjb);
var shareObj = {
     title: `${ya.orderInfo.childrenList[0].title}`, // (slogan)
     path: `/pagesB/shopDetail/shopDetail?id=${ya.orderInfo.childrenList[0].spu_activity_id}&category_id=0&share_id=${ya.orderInfo.group_id}&invite_code=${uni.getStorageSync('invite_code')}&shareCate=1&checkGrounpId=${ya.orderInfo.childrenList[0].spu_activity_id}&is_activity=1`, // /
     imageUrl: ya.orderInfo.childrenList[0].imgSrc//PNGJPG imageUrl 使 5:4
  };
  return shareObj;
},
onReachBottom() {
if(this.total!=this.orderList.length){
this.page++
@ -264,7 +291,9 @@
not_check_num:items.not_check_num,
check_type:items.check_type,
is_virtual:items.is_virtual,
activity_type:items.activity_type
activity_type:items.activity_type,
spu_id:items.spu_id,
spu_activity_id:items.spu_activity_id
}
nchildren.push(objs);
})
@ -282,7 +311,8 @@
open_one:item.open_one,
is_group_make:item.is_group_make,
open_one_success:item.open_one_success,
group_make_end_at:item.group_make_end_at
group_make_end_at:item.group_make_end_at,
group_id:item.group_id
}
this.zanArr.push(obj);
})

View File

@ -87,7 +87,7 @@
size:10,
total:'',//
isZanw:true,
vision:true,
vision:false,
isShowP:false,
}
},

View File

@ -66,7 +66,7 @@
sort_value:'asc',// asc= desc=
cishu:0,
cartNum:0,
vision:true,
vision:false,
isShowP:false,
}
},

View File

@ -115,7 +115,8 @@
onLoad() {
this.category = this.xialone[0]
this.categoryT = this.xialTwo[0]
this.checkZParmas()
this.checkZParmas();
this.lphone = uni.getStorageSync('phone');
// this.$toolAll.tools.weekDate()
},
methods: {

View File

@ -80,7 +80,7 @@
page:1,
size:10,
isScore:'',
vision:true,
vision:false,
isShowP:false,
}
},

View File

@ -67,7 +67,7 @@
isZanw:true,
isSigin:0,
loading:false,
vision:true,
vision:false,
isShowP:false,
}
},

View File

@ -9,16 +9,29 @@
<!-- 问题类型 -->
<view class="disac pad-s32">
<view class="flexs mar-y20 titlel">问题类型</view>
<view @tap="openXial" class="disjbac width100 radius10 pad-zy20 xiala posir">
<radio-group @change="changeCate" class="width100 disac">
<label class="radio disac">
<radio style="transform: scale(.7);" :value="2" checked color="#3875f6"/><text>改进意见/建议</text>
</label>
<label class="radio disac">
<radio style="transform: scale(.7);" :value="1" color="#3875f6"/><text>投诉</text>
</label>
</radio-group>
<!-- <radio-group @change="changeCate" class="width100 disac">
<label class="radio disac" v-for="(iteml,indexl) in xialone" :key="indexl">
<radio style="transform: scale(.7);" :value="iteml.id" :checked="indexl==0" color="#3875f6"/><text>{{iteml.title}}</text>
</label>
</radio-group> -->
<!-- 下拉列表 -->
<!-- <view @tap="openXial" class="disjbac width100 radius10 pad-zy20 xiala posir">
<view>{{category}}</view>
<image :class="isZhuan?'zhuan':'nozhuan'" src="/static/public/sanj.png" mode="aspectFill"></image>
<!-- 下拉列表 -->
<view v-if="isZhuan" class="posia bacf radius10 xial-box">
<view class="pad-zy20 xial-item-box">
<view @tap="chooseXia(indexl)" :class="xialCurrent==indexl?'pcol':''" v-for="(iteml,indexl) in xialone" :key="indexl">{{iteml.title}}</view>
</view>
</view>
</view>
</view> -->
</view>
<!-- 建议意见 -->
<view class="dis mar-s20">
@ -27,7 +40,7 @@
<textarea v-model="tmsg" class="fon28" maxlength="500" style="height: 300rpx;width: auto;" placeholder="请把您的意见及建议填写在这里" placeholder-style="color:#999999;"/>
</view>
</view>
<!-- -->
<!-- -->
<view class="disac mar-s30">
<view class="mar-y20 flexs titlel disjb">
<view></view>
@ -70,16 +83,21 @@
isZhuan:false,
xialCurrent:0,
xialone:[],
btnCon:'立即提交'
btnCon:'立即提交',
}
},
onShow() {
this.$toolAll.tools.isLogin()
},
onLoad() {
this.checkCate()
this.checkCate();
this.tphone = uni.getStorageSync('phone');
},
methods: {
changeCate(e){
console.log(e.detail.value);
this.touId = e.detail.value;
},
checkCate(){
this.$requst.post('user/feedback-types').then(res=>{
// console.log('',res);
@ -101,16 +119,10 @@
submit(){
if(!this.tmsg){
this.$toolAll.tools.showToast('请输入意见及建议')
} else {
if(this.tphone!=''){
if(this.$toolAll.tools.isPhone(this.tphone)){
} else if(this.$toolAll.tools.isPhone(this.tphone)){
this.$toolAll.tools.showToast('请输入正确的手机号')
} else {
this.eventEv()
}
} else {
this.eventEv()
}
this.eventEv();
}
},
eventEv(){

View File

@ -89,7 +89,7 @@
page:1,
total:'',//
isZanw:true,
vision:true,
vision:false,
isShowP:false,
}
},

View File

@ -17,18 +17,18 @@
<view class="bacf radius10 pad20 mar-x20 fon28" v-for="(item,index) in dataList" :key="index">
<view class="col3 bold">客户信息</view>
<view class="mar-sx20 fon24 disjbac col6">
<text>昵称{{item.customer_name}}</text>
<text><text v-if="item.customer_phone!=''">{{item.customer_phone}}</text><text v-else></text></text>
<text class="clips1">昵称{{item.customer_name}}</text>
<text class="flexs mar-z20"><text v-if="item.customer_phone!=''">{{item.customer_phone}}</text><text v-else></text></text>
</view>
<view class="col3 bold">绑定的客服</view>
<view v-if="item.staff!=null" class="mar-s20 fon24 disjbac col6">
<text>昵称{{item.staff.name}}</text>
<text v-if="item.staff.phone!=''">{{item.staff.phone}}</text>
<view v-if="item.service!=null" class="mar-s20 fon24 disjbac col6">
<text class="clips1">昵称{{item.service.name}}</text>
<text class="flexs mar-z20" v-if="item.service.phone!=''">{{item.service.phone}}</text>
</view>
<view v-else class="mar-s20 fon24 disjbac col6">
<!-- <view v-else class="mar-s20 fon24 disjbac col6">
<text>昵称{{item.account.nickname}}</text>
<text><text v-if="item.account.mobile!=''">{{item.account.mobile}}</text><text v-else></text></text>
</view>
</view> -->
</view>
<view v-if="dataList.length==0" class="disjcac fc" style="margin-top: 50%;">
<image class="zanw-img" src="/static/public/nothing.png" mode="aspectFill"></image>
@ -39,6 +39,10 @@
</view>
<!-- 底部客服 -->
<public-customer :nbottom="100"></public-customer>
<!-- 弹框授权 -->
<empower @buttonH="buttonH" :vision="vision" :isWhere="2"></empower>
<!-- 弹框 -->
<auth-phone v-if="isShowP"></auth-phone>
</view>
</template>
@ -55,7 +59,9 @@
size:10,
total:'',//
isZanw:true,
ntype:''// mine=
ntype:'',// mine=
vision:false,
isShowP:false,
}
},
onPageScroll(e) {
@ -73,10 +79,44 @@
onShow() {
this.$toolAll.tools.isLogin()
},
onLoad() {
onLoad(options) {
if(uni.getStorageSync('is_active')!=1){this.vision = true;}
if(options.invite_code!='' && options.invite_code!=undefined){
this.loginEv(options.invite_code);
} else if(options.source_code!='' && options.source_code!=undefined){
this.loginEv('',options.source_code,options.channel);
}
this.checkList()
},
methods: {
loginEv(invite_code='',source='',channel=''){
uni.login({
provider: 'weixin',
success: (res)=> {
if (res.code) {
var params = {
code:res.code,
invite_code:invite_code,//
source_code:source,
channel:channel
}
this.$requst.post('user/login',params).then(res => {
if(res.data.token!=''){
if(res.data.is_active==0) {
this.vision = true;
}
}
},error => {})
}
},
});
},
buttonH(e){//
if(e) {
this.vision = false
this.isShowP = true
}
},
searchEv(){//
if(this.keyword!='') this.ntype = ''
this.page = 1
@ -99,10 +139,11 @@
res.data.list.forEach(item=>{
let obj = {
id:item.account_id,
customer_name:item.customer.nickname,
customer_phone:item.customer.mobile,
staff:item.staff,//
account:item.account//staff
customer_name:item.nickname,
customer_phone:item.mobile,
service:item.service,
// staff:item.staff,//
// account:item.account//staff
}
this.dataList.push(obj)
})

View File

@ -7,7 +7,8 @@
<view :style="{paddingTop: statusHNH+'px'}">
<view v-if="isLoading" class="bacf mar-s20 pad-s20 pad-y32 pad-x40">
<view class="disjb">
<view class="pad-z40">
<image class="radius10 flexs mar-z30" :src="doctorObj.doctor_extra.headimg || moImg" style="width: 300rpx;height: 300rpx;" mode="aspectFill"></image>
<view class="pad-z20 width100">
<view class="fon28 bold col3">{{doctorObj.doctor_extra.name}}</view>
<view class="disac col80 fon24" style="margin: 6rpx 0;">
<view>{{['未知','男','女'][doctorObj.gender]}}</view>
@ -25,12 +26,16 @@
</view>
</view>
</view>
<image class="radius10 flexs" :src="doctorObj.doctor_extra.headimg || moImg" style="width: 246rpx;height: 188rpx;" mode="aspectFill"></image>
</view>
<view class="mar-z32">
<view class="bbot mar-s30"></view>
<view class="fon28 bold col3 mar-sx20">个人简介</view>
<view class="fon26 col3" style="line-height: 37rpx;">{{doctorObj.doctor_extra.summary}}</view>
<view class="fon28 bold col3 mar-sx20">医生简介</view>
<rich-text class="fon26 col3" :nodes="peopleJian"></rich-text>
</view>
<view class="mar-z32">
<view class="bbot mar-s30"></view>
<view class="fon28 bold col3 mar-sx20">医生详情</view>
<rich-text class="fon26 col3" :nodes="detailInfo"></rich-text>
</view>
</view>
<view id="daoh" :class="isTop?'isTop':''" class="isTops" :style="{top:(statusHNH-10)+'px'}">
@ -39,7 +44,7 @@
</view>
</view>
<view class="mar-zy32 mar-s20" v-if="dataList.length!=0"><list-pu @chooseLike="chooseLike" @comfirmev="comfirmev" :list="dataList"></list-pu></view>
<view style="margin-top: 30%;" v-if="dataList.length==0"><list-pu :list="dataList"></list-pu></view>
<view style="margin-top: 8%;" v-if="dataList.length==0"><list-pu :list="dataList"></list-pu></view>
</view>
<view class="pad-zy20 mar-sx30">
<!-- 返回顶部 -->
@ -82,6 +87,8 @@
chuTop:'',
isTop:false,
isLoading:false,
detailInfo:'',
peopleJian:'',
vision:false,
isShowP:false,
}
@ -134,7 +141,6 @@
this.$requst.post('user/login',params).then(res => {
if(res.data.token!=''){
if(res.data.is_active==0) {
this.haveImg = false;
this.vision = true;
}
}
@ -144,7 +150,6 @@
});
},
buttonH(e){//
this.haveImg = e
if(e) {
this.vision = false
this.isShowP = true
@ -168,8 +173,11 @@
this.$requst.post('user/doctor-info',{doctor_id:doctor_id}).then(res=>{
// console.log('',res);
if(res.code==0){
this.doctorObj = res.data
this.isLoading = true
this.doctorObj = res.data;
//
this.peopleJian = this.$toolAll.tools.escape2Html(this.doctorObj.doctor_extra.summary);
this.detailInfo = this.$toolAll.tools.escape2Html(this.doctorObj.doctor_extra.content);
this.isLoading = true;
}
},error=>{})
},
@ -203,12 +211,18 @@
this.cateList = uni.getStorageSync('cateList')
}
//
if(this.page==1) this.dataList = []
if(this.page==1) {
this.dataList = [];
// uni.pageScrollTo({
// scrollTop:0,
// duration:0
// })
}
this.total = res.data.list.total
if(res.data.list.list.length!=0){
res.data.list.list.forEach(item=>{
let fabImg = '';
if(item.published_headimgurl!='' && item.published_headimgurl!=null) fabImg = this.$http + item.published_headimgurl;
if(item.published_headimgurl!='' && item.published_headimgurl!=null) fabImg = this.$http + item.published_headimgurl
let tObj = {
category_id:item.category_id,//ID
id:item.id,
@ -219,14 +233,11 @@
video:this.$http + item.video,//
title:item.title,//
content:item.subtitle,//
head_img: fabImg || '/static/public/logo.png',//
head_img:fabImg || '/static/public/logo.png',//
name:item.published_by || '恒美植发',//
isVideo:item.video.includes(".mp4")//
}
if(this.newCurrent==0 && item.category_id==32) this.dataList.push(tObj)
if(this.newCurrent==1 && item.category_id==33) this.dataList.push(tObj)
if(this.newCurrent==2 && item.category_id==34) this.dataList.push(tObj)
if(this.newCurrent==3 && item.category_id==38) this.dataList.push(tObj)
this.dataList.push(tObj);
})
}
}

View File

@ -11,7 +11,7 @@
<view v-if="dataList.length!=0">
<view v-for="(item,index) in dataList" :key="index">
<view class="fon24 col6 tc mar-sx50">{{item.time}}</view>
<view class="radius10 bacf pad20 mar-x20" v-for="(iteml,indexl) in item.list" :key="indexl">
<view @tap="readMsg(index,indexl)" class="radius10 bacf pad20 mar-x20" v-for="(iteml,indexl) in item.list" :key="indexl">
<view class="disac">
<image v-if="iteml.is_read==0" class="message-img" src="/static/public/unread.png" mode=""></image>
<image v-if="iteml.is_read==1" class="message-img" src="/static/public/read.png" mode=""></image>
@ -94,6 +94,9 @@
this.checkMsg();
},
methods: {
readMsg(index1,index2){
this.dataList[index1].list[index2].is_read = 1;
},
checkMsg(){
this.$requst.post('user/messages',{page:this.page,size:this.size,type:this.ntype}).then(res=>{
// console.log('',res);
@ -102,9 +105,9 @@
this.total = res.data.total;
if(res.data.list.length!=0){
res.data.list.forEach(item=>{
let titleMsg = ''
if(item.type=='notice') titleMsg = "通知"
if(item.type=='system') titleMsg = "系统消息"
let titleMsg = '';
if(item.type=='notice') titleMsg = "通知";
if(item.type=='system') titleMsg = "系统消息";
let msgObj = {
time:item.send_at,
list:[

View File

@ -6,8 +6,8 @@
<!-- 列表 -->
<view>
<view id="daoh" class="bacf pad-zy30 pad-sx20 isTopf fon28 col3 disja" :style="{top:statusHNH+'px'}">
<view @tap="isWen=true" :class="isWen?'isWen':''" class="posir">文章收藏</view>
<view @tap="shopCollection" :class="!isWen?'isWen':''" class="posir">商品收藏</view>
<view @tap="shopCollection(0)" :class="isWen?'isWen':''" class="posir">文章收藏</view>
<view @tap="shopCollection(1)" :class="!isWen?'isWen':''" class="posir">商品收藏</view>
</view>
<view :style="{paddingTop:(statusHNH+chuTop+15)+'px'}">
<view v-if="isWen">
@ -62,7 +62,7 @@
<image v-for="(itemm,indexm) in item1.activity_group_cover" :key="indexm" :src="itemm" mode="" style="width: 40rpx;height: 40rpx;border-radius: 100%;margin-left: -20rpx;"></image>
</view>
</view>
<view v-if="item1.isXian" class="fon24 col80 mar-s20">{{item1.activity_end_at}}</view>
<view v-if="item1.isXian || item1.isPing || item1.isTuan" class="fon24 col80 mar-s20">{{item1.activity_end_at}}</view>
</view>
</view>
</view>
@ -162,6 +162,7 @@
timeList:[],//
vision:false,
isShowP:false,
collectionTime:null
}
},
onPageScroll(e) {
@ -177,11 +178,16 @@
}
},
onUnload() {
uni.removeStorageSync('cateList')
uni.removeStorageSync('cateList');
clearInterval(this.collectionTime);
},
onHide() {
clearInterval(this.collectionTime);
},
onShow() {
this.$toolAll.tools.isLogin()
this.checkConList(this.category_id)
this.checkConList(this.category_id);
this.shopCollection();
},
onLoad(options) {
if(uni.getStorageSync('is_active')!=1){this.vision = true;}
@ -227,10 +233,12 @@
this.isShowP = true
}
},
shopCollection(){//
shopCollection(index){//
clearInterval(this.collectionTime);
if(index==1){
this.isWen = false;
uni.request({
url:'https://hengmei.scdxtc.cn/api/spu/collection',
url:`${this.$hostapi}spu/collection`,
data:{page:this.page,size:this.size},
method:'post',
header:{
@ -289,9 +297,10 @@
})
if(this.timeList!=0){
this.$toolAll.tools.showToast('加载中...')
let timer = setInterval(()=>{//
this.collectionTime = setInterval(()=>{//
if(this.timeList.length!=0){
this.timeList.forEach((item,index)=>{
console.log(item.id,nArr[item.nIndex].id);
if(item.id==nArr[item.nIndex].id){
let endTime = new Date(this.timeList[index].time).getTime();//
this.timeList[index].reponseTime = new Date(this.timeList[index].reponseTime).getTime() + 1000;//
@ -314,6 +323,9 @@
}
}
})
} else {
this.isWen = true;
}
},
checkConList(category_id){//
// this.$toolAll.tools.showToast('...')
@ -368,10 +380,7 @@
name:item.published_by || '恒美植发',//
isVideo:item.video.includes(".mp4")//
}
if(this.newCurrent==0 && item.category_id==32) this.dataList.push(tObj)
if(this.newCurrent==1 && item.category_id==33) this.dataList.push(tObj)
if(this.newCurrent==2 && item.category_id==34) this.dataList.push(tObj)
if(this.newCurrent==3 && item.category_id==38) this.dataList.push(tObj)
this.dataList.push(tObj);
})
}
}

View File

@ -146,7 +146,7 @@
timer:null,
daoTime:'',
timerDao:null,
vision:true,
vision:false,
isShowP:false,
}
},
@ -321,7 +321,6 @@
this.orderInfo = narr;
if(this.orderInfo.group_make_end_at!=null){
this.daoTime = this.$toolAll.tools.dayTime(this.orderInfo.group_make_end_at,new Date().getTime());
console.log(daoTime);
this.timerDao = setInterval(()=>{
if(new Date().getTime()-new Date().getTime(this.orderInfo.group_make_end_at)>0){
this.checkInfo(this.orderInfo.id);

View File

@ -5,6 +5,7 @@
<!-- 自定义二级分类 -->
<!-- 列表 -->
<view :style="{paddingTop: statusHNH+'px'}" class="pad-zy20">
<view class="tc mar-s20 col6 fon28">请选择海报背景后分享</view>
<view v-if="imgList.length!=0">
<view class="mar-s20 disjbac fw">
<image @tap="chooseImg(index)" v-for="(item,index) in imgList" :key="index" class="width100 radius20 mar-x20" :src="item" style="width: 48.5%;max-height: 474rpx" mode="aspectFill" lazy-load></image>

File diff suppressed because it is too large Load Diff

View File

@ -248,10 +248,11 @@
name:item.published_by || '恒美植发',//
isVideo:item.video.includes(".mp4")//
}
if(this.newCurrent==0 && item.category_id==32) this.dataList.push(tObj)
if(this.newCurrent==1 && item.category_id==33) this.dataList.push(tObj)
if(this.newCurrent==2 && item.category_id==34) this.dataList.push(tObj)
if(this.newCurrent==3 && item.category_id==38) this.dataList.push(tObj)
this.dataList.push(tObj);
// if(this.newCurrent==0 && item.category_id==32) this.dataList.push(tObj)
// if(this.newCurrent==1 && item.category_id==33) this.dataList.push(tObj)
// if(this.newCurrent==2 && item.category_id==34) this.dataList.push(tObj)
// if(this.newCurrent==3 && item.category_id==38) this.dataList.push(tObj)
})
}
let obj = {

View File

@ -2,6 +2,13 @@
<view>
<!-- 状态栏 -->
<status-nav v-if="invite_code==''" :titleVal="'商品详情'" :statusTitle="true"></status-nav>
<view v-if="invite_code!=''" class="status-box statusHNH" style="background-color: #FFFFFF;">
<view :style="{height:statusBarHeight+'px'}"></view>
<view class="status-nav">
<!-- 标题 -->
<view class="tab-title tcenter" style="color: #000000;">商品详情</view>
</view>
</view>
<!-- 列表 -->
<view :style="{top: statusHNH+'px'}" v-if="isNei!=3" class="posiszy" style="height: 50px;">
<view class="bacf pad-zy32 pad-sx20">
@ -155,44 +162,9 @@
<view v-if="dataList.length!=0" class="fon30 bold mar-s40 mar-x10 pad-zy50 pcol"></view>
<shopList :dataList="dataList" v-if="dataList.length!=0"></shopList>
</view>
<!-- 案例日记 -->
<view v-show="cateCurrent==1" class="pad-zy20">
<view v-if="listArrone.length!=0">
<list-pu @chooseLike="chooseLike" @comfirmev="comfirmev" :list="listArrone"></list-pu>
<view class="fon24 col3 tc">暂无更多内容</view>
</view>
<view v-else class="disjcac fc" style="margin-top: 40%;">
<image class="zanw-img" src="/static/public/nothing.png" mode="aspectFill"></image>
<view class="fon24 col3">暂无内容</view>
</view>
</view>
<!-- 案例日记 -->
<view v-show="cateCurrent==2" class="pad-zy20">
<view v-if="listArrtwo.length!=0">
<list-pu @chooseLike="chooseLike" @comfirmev="comfirmev" :list="listArrtwo"></list-pu>
<view class="fon24 col3 tc">暂无更多内容</view>
</view>
<view v-else class="disjcac fc" style="margin-top: 40%;">
<image class="zanw-img" src="/static/public/nothing.png" mode="aspectFill"></image>
<view class="fon24 col3">暂无内容</view>
</view>
</view>
<!-- 效果模拟 -->
<view v-show="cateCurrent==3" class="pad-zy20">
<view v-if="listArrthree.length!=0">
<list-pu @chooseLike="chooseLike" @comfirmev="comfirmev" :list="listArrthree"></list-pu>
<view class="fon24 col3 tc">暂无更多内容</view>
</view>
<view v-else class="disjcac fc" style="margin-top: 40%;">
<image class="zanw-img" src="/static/public/nothing.png" mode="aspectFill"></image>
<view class="fon24 col3">暂无内容</view>
</view>
</view>
<!-- 科普视频 -->
<view v-show="cateCurrent==4" class="pad-zy20">
<view v-if="listArrfour.length!=0">
<list-pu @chooseLike="chooseLike" @comfirmev="comfirmev" :list="listArrfour"></list-pu>
<view class="fon24 col3 tc">暂无更多内容</view>
<view v-if="cateCurrent!=isNum">
<view v-if="allList.length!=0" class="pad-zy20">
<list-pu @chooseLike="chooseLike" @comfirmev="comfirmev" :list="allList"></list-pu>
</view>
<view v-else class="disjcac fc" style="margin-top: 40%;">
<image class="zanw-img" src="/static/public/nothing.png" mode="aspectFill"></image>
@ -203,7 +175,7 @@
<!-- 底部导航 -->
<view class="posixzy disjbac bacf pad-zy32 btnBKS">
<view class="posir">
<image @tap="backHome" class="posia backH" src="/static/public/back-home.png" mode="aspectFill"></image>
<image @tap="backHome" class="posia backH" src="/static/public/back-home-02.png" mode="aspectFit"></image>
</view>
<view class="disac fon26 colf">
<view @tap="showTK = true" class="disjcac lianShare addCart-btn"><span v-if="isNei!=1"></span><span v-else></span></view>
@ -364,6 +336,22 @@
isAutoPlay:false,
vision:false,
isShowP:false,
page:1,
size:20,
total:0,
isZanw:true,
allList:[]
}
},
onReachBottom() { //
if(this.cateCurrent!=this.isNum){
if(this.total!=this.allList.length){
this.page++
this.checkList(this.cateCurrent)//
} else {
if(this.isZanw) this.$toolAll.tools.showToast('暂无更多列表','none',1000)
this.isZanw = false
}
}
},
onPageScroll(e) {
@ -415,7 +403,6 @@
this.$toolAll.tools.isLogin()
}
}
// this.checkDetail(this.conid)
if(options.share_id!=undefined) this.share_id = options.share_id
let maiOjb = {
e:4,//
@ -424,10 +411,39 @@
}
this.$toolAll.tools.maiDian(maiOjb);
if(options.isIntegral=="true"){this.isScore = 3;}
console.log(options.id,options.is_activity,'123');
this.checkDetail(options.id,options.is_activity);
this.cartNumEv();
//
if(options.shareCate==1) {
// options.checkGrounpIid
// options.share_id:id
this.sharePin(options.checkGrounpId,options.share_id);
}
},
methods: {
sharePin(id,u_id){
// id:id
this.$requst.post('spu/group-list',{id:id}).then(res=>{
if(res.code==0){
if(res.data.length){
res.data.forEach(item=>{
console.log(item.id,u_id);
if(item.id==u_id){
this.pinInfo = {
id:item.id,
imgSrc:item.cover,
name:item.name,
num:item.num
}
this.showPD = true;
this.detailPTime(item.time);
}
})
}
} else this.$toolAll.tools.showToast(res.msg);
})
},
loginEv(invite_code='',source='',channel=''){
uni.login({
provider: 'weixin',
@ -469,7 +485,7 @@
},
checkPTList(id){//
uni.request({
url:'https://hengmei.scdxtc.cn/api/spu/group-list',
url:`${this.$hostapi}spu/group-list`,
data:{id:id},
method:'post',
header:{
@ -529,7 +545,11 @@
is_score:this.detailObj.is_score,
group_id:this.ispt,//0 1 2
is_only:this.ispt,
pin_user_id:this.pinUserId//ID
pin_user_id:this.pinUserId,//ID
category_id:this.category_id,//ID
cateNum:this.isNei,
checkGrounpId:this.detailObj.id,//ID
}
let newList = [params];
uni.setStorageSync('orderList',newList);
@ -566,6 +586,19 @@
}
},1000)
},
detailPTime(endtime){
this.pinDao = this.$toolAll.tools.dayTime(endtime,new Date());
this.timerp = setInterval(()=>{
if((new Date(endtime).getTime()) - (new Date().getTime())<=0){
this.pinDao = '已结束';
this.checkPTList(this.detailObj.id);
this.showPD = false;
clearInterval(this.timerp);
} else {
this.pinDao = this.$toolAll.tools.dayTime(endtime,new Date());
}
},1000)
},
atOnceSpellOrder(index){//
if(index==1){
this.showTK = true;
@ -598,52 +631,25 @@
// } else this.jieDuan = true
// }
},
chooseLike(e){//
let cateId = ''
let newArr = []
if(this.cateCurrent==1) {
newArr = this.listArrone
cateId = newArr[e].id
}
if(this.cateCurrent==2) {
newArr = this.listArrtwo
cateId = newArr[e].id
}
if(this.cateCurrent==3) {
newArr = this.listArrthree
cateId = newArr[e].id
}
if(this.cateCurrent==4) {
newArr = this.listArrfour
cateId = newArr[e].id
}
if(newArr[e].is_collected==0){
newArr[e].is_collected = 1
chooseLike(e) { //
// console.log(this.dataList[e].is_collected);
if (this.allList[e].is_collected == 0) {
this.allList[e].is_collected = 1
//
collectionShopEV({action:'collect',id:cateId})
collectionEV({
action: 'collect',
archive_id: this.allList[e].id
})
}
},
comfirmev(e){//
let cateId = ''
if(this.cateCurrent==1) {
this.listArrone[e].is_collected = 0
cateId = this.listArrone[e].id
}
if(this.cateCurrent==2) {
this.listArrtwo[e].is_collected = 0
cateId = this.listArrtwo[e].id
}
if(this.cateCurrent==3) {
this.listArrthree[e].is_collected = 0
cateId = this.listArrthree[e].id
}
if(this.cateCurrent==4) {
this.listArrfour[e].is_collected = 0
cateId = this.listArrfour[e].id
}
this.$toolAll.tools.showToast('正在取消...','loading')
comfirmev(e) { //
this.allList[e].is_collected = 0;
this.$toolAll.tools.showToast('正在取消...', 'loading')
//
cancleCollectionShopEV({action:'collect',id:cateId})
cancleCollectionEV({
action: 'collect',
archive_id: this.allList[e].id
})
},
backHome(){
uni.navigateTo({
@ -657,7 +663,7 @@
},
checkDetail(newId,is_activity){
uni.request({
url:'https://hengmei.scdxtc.cn/api/spu/detail',
url:`${this.$hostapi}spu/detail`,
data:{id:newId,is_activity:is_activity},
method:'post',
header:{
@ -795,7 +801,7 @@
disease_id:''//ID
}
uni.request({
url:'https://hengmei.scdxtc.cn/api/spu/list',
url:`${this.$hostapi}spu/list`,
data:params,
method:'post',
header:{
@ -835,6 +841,7 @@
activity_end_at:item.activity_end_at,//
activity_group_cover:group_cover,//
activity_group_num:item.activity_group_num,//
activity_id:item.activity_id
}
this.dataList.push(obj)
})
@ -856,45 +863,49 @@
})
},
choosecateEv(e){//
this.cateCurrent = e
this.$requst.post('archives/category',{category_id:this.cateList[e].id,page:1,size:2000}).then(res=>{
this.$requst.post('archives/category', {
category_id: this.cateList[e].id,
keyword: '',
page:this.page,
size:this.size
}).then(res => {
// console.log('',res);
if(res.code==0){
if(e==1 && this.active!=e) this.listArrone = []
if(e==2 && this.active!=e) this.listArrtwo = []
if(e==3 && this.active!=e) this.listArrthree = []
if(e==4 && this.active!=e) this.listArrfour = []
if(res.data.list.list.length!=0){
res.data.list.list.forEach(item=>{
let fabImg = '';
if(item.published_headimgurl!='' && item.published_headimgurl!=null) fabImg = this.$http + item.published_headimgurl;
if (res.code == 0) {
if(this.page==1) {
if(this.active != e) this.allList = [];
uni.pageScrollTo({
scrollTop:0,
duration:0
})
}
this.total = res.data.list.total;
if (res.data.list.list.length != 0) {
res.data.list.list.forEach(item => {
let num = item.video.search(".mp4")
let isVideo = false
if(num!='-1') isVideo = true
if (num != '-1') isVideo = true
let arrObj = {
category_id:item.category_id,//ID
id:item.id,
is_collected:item.is_collected,//
collects:item.collects,//
views:item.views,//
main_img:this.$http + item.cover,//
video:this.$http + item.video,//
title:item.title,//
content:item.subtitle,//
head_img: fabImg || '/static/public/logo.png',//
name:item.published_by || '恒美植发',//
isVideo:isVideo//
category_id: item.category_id, //ID
id: item.id,
is_collected: item.is_collected, //
collects: item.collects, //
views: item.views, //
main_img: this.$http + item.cover, //
video: this.$http + item.video, //
title: item.title, //
content: item.subtitle, //
head_img: '/static/public/logo.png', //
name: '恒美植发', //
isVideo: isVideo //
}
if(item.cover!=''){
if(e==1 && this.active!=e) this.listArrone.push(arrObj)
if(e==2 && this.active!=e) this.listArrtwo.push(arrObj)
if(e==3 && this.active!=e) this.listArrthree.push(arrObj)
if(e==4 && this.active!=e) this.listArrfour.push(arrObj)
if (item.cover != '') {
this.allList.push(arrObj);
}
})
}
}
},error=>{})
this.cateCurrent = e;
} else this.$toolAll.tools.showToast(res.msg);
}, error => {})
},
tapConllection(){//
let isLikeCon = 'collect';

View File

@ -180,7 +180,7 @@
timeList:[],
zanArr:[],
timer:'',
vision:true,
vision:false,
isShowP:false,
}
},
@ -274,7 +274,7 @@
size:this.size,
}
uni.request({
url:'https://hengmei.scdxtc.cn/api/spu/list',
url:`${this.$hostapi}spu/list`,
data:params,
method:'post',
header:{

View File

@ -53,7 +53,7 @@
size:10,
total:'',//
isZanw:true,
vision:true,
vision:false,
isShowP:false,
}
},

View File

@ -1,13 +1,13 @@
<template>
<div class="">
<image class="" @tap="backEv" :style="{top:statusHNH/2+'px'}" src="/static/public/videoBack.png" style="width: 33rpx;height: 33rpx;position: fixed;z-index: 10;left: 20rpx;" mode="aspectFill"></image>
<video id="myVideo" style="width: 100%;" :style="{height:newHeight+'px'}"
<video id="myVideo" style="width: 100%;" :style="{height:newHeight+'px'}" autoplay="true"
:src="videoSrc" :enable-play-gesture="dans" :poster="posterSrc"
:controls="isControls" :show-center-play-btn="isCenterImg" :show-play-btn="isBottomImg" :show-fullscreen-btn="isFull"
@play="comePlay" @pause="comePause"></video>
<!-- 封面图 -->
<image v-if="isPlayImg" @tap="playEv" src="/static/public/video.png" style="position: fixed;top: 50%;left: 50%;
width: 126rpx;height: 126rpx;transform: translate(-50%, -50%);" mode="aspectFill"></image>
<!-- <image v-if="isPlayImg" @tap="playEv" src="/static/public/video.png" style="position: fixed;top: 50%;left: 50%;
width: 126rpx;height: 126rpx;transform: translate(-50%, -50%);" mode="aspectFill"></image> -->
</div>
</template>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
static/public/set-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long