yujialong 1 year ago
parent bb753c0b02
commit cf1162858b
  1. 2
      apis/request.js
  2. 4
      order/addCourse/addCourse.vue
  3. 16
      order/editCourse/editCourse.vue
  4. 257
      order/orderDetail/orderDetail.vue
  5. 7
      order/productDetail/productDetail.vue
  6. 3
      order/products/products.vue
  7. 105
      order/shopCart/shopCart.vue
  8. 6
      pages.json
  9. 12
      pages/index/index.vue
  10. 44
      pages/login/login.vue
  11. 14
      pages/person/person.vue
  12. 60
      pages/reg/reg.vue
  13. BIN
      static/image/tab1-1.png
  14. BIN
      static/image/tab1.png
  15. BIN
      static/image/tab2-1.png
  16. BIN
      static/image/tab2.png
  17. BIN
      static/image/tab3-1.png
  18. BIN
      static/image/tab3.png
  19. BIN
      static/image/tab4-1.png
  20. BIN
      static/image/tab4.png
  21. 4
      team/qrcode/qrcode.vue

@ -41,6 +41,8 @@ const request = options => {
}) })
}, 1500) }, 1500)
reject(data) reject(data)
} else if (status == 10028) { // 用户不存在
resolve(data)
} else if (!status) { } else if (!status) {
resolve(data) resolve(data)
} else { } else {

@ -230,7 +230,9 @@
miniProgramPictureAddress: e.appletIcon || '', // miniProgramPictureAddress: e.appletIcon || '', //
settlementPrice: trial ? 0 : '', // settlementPrice: trial ? 0 : '', //
settlementPriceUnit: e.settlementPrice || 0, // settlementPriceUnit: e.settlementPrice || 0, //
serviceFee: 0 // serviceFee: 0, //
mallNonAssociatedLinks: e.mallNonAssociatedLinks, //
typeName: e.typeName
} }
}, },
// //

@ -16,7 +16,7 @@
<view class="form-list"> <view class="form-list">
<view class="line"> <view class="line">
<view class="name">产品类型</view> <view class="name">产品类型</view>
<view class="val">{{ productTypes.find(e => e.id === item.productType).name }}</view> <view class="val">{{ item.typeName }}</view>
</view> </view>
<view :class="['line req', {err: err === 'periodOfUse' + item.dataOrCourseId + item.authority}]"> <view :class="['line req', {err: err === 'periodOfUse' + item.dataOrCourseId + item.authority}]">
<view class="name">使用期限</view> <view class="name">使用期限</view>
@ -95,20 +95,6 @@
id: 2 id: 2
}], }],
unitText: ['日', '月', '年'], unitText: ['日', '月', '年'],
productTypes: [
{
name: '实训课程',
id: 1
},
{
name: '理论课程',
id: 0
},
{
name: '数据产品',
id: 2
}
],
courses: {} , // courses: {} , //
orderRepeat: [], orderRepeat: [],
repeatMsg: '', repeatMsg: '',

@ -60,7 +60,7 @@
<view class="l-title">{{ c.name }}</view> <view class="l-title">{{ c.name }}</view>
<uni-icons class="arrow" type="top" size="20" color="#007EFF" @click="toggle(c)"></uni-icons> <uni-icons class="arrow" type="top" size="20" color="#007EFF" @click="toggle(c)"></uni-icons>
<ul class="pro-list" v-show="!c.shrink"> <ul class="pro-list" v-show="!c.shrink">
<li v-for="(item, i) in c.list" @click.stop="editCourse(c, i)"> <li v-for="(item, i) in c.list">
<view class="name"> <view class="name">
<view class="left"> <view class="left">
<image class="icon" :src="$util.getIcon(item)" mode="widthFix"></image> <image class="icon" :src="$util.getIcon(item)" mode="widthFix"></image>
@ -73,28 +73,59 @@
</view> </view>
<view class="info"> <view class="info">
<view class="line"> <view class="line">
<view class="label">起始日期</view>
<view v-if="isDetail || isEdit" class="ph">{{ item.endTime ? item.startTime + ' - ' + item.endTime : item.startTime}}</view>
<uni-datetime-picker v-else type="date" v-model="item.startTime" :border="false" @change="calcDate(item)">
<view :class="['ph', {val: item.startTime}]">
{{ item.endTime ? item.startTime + ' - ' + item.endTime : item.startTime}}
</view>
</uni-datetime-picker>
</view>
<view class="line" :class="[ {err: err === 'periodOfUse' + item.dataOrCourseId + item.authority}]">
<view class="label">使用期限</view> <view class="label">使用期限</view>
<view class="val">{{ item.startTime + (item.endTime ? ' - ' + item.endTime : '') }}</view> <view v-if="isDetail" class="ph">{{item.periodOfUse}}{{ units.find(e => e.id === item.options).text }}</view>
<template v-else>
<input class="period" type="number" v-model="item.periodOfUse" placeholder="请输入" @input="calcDate(item, !item.authority)" @change="handleErr(item, 'periodOfUse')">
<view class="val unit" @click="selectUnit(item)">
<text>{{ units.find(e => e.id === item.options).text }}</text>
<image class="icon" src="@/static/image/arrow-down.png" mode="widthFix"></image>
</view>
</template>
</view>
<view :class="['line req', {err: err === 'accountNum' + item.dataOrCourseId + item.authority}]">
<view class="label">数量</view>
<view v-if="item.authority || (!item.authority && isDetail)" class="ph">1</view>
<view v-else class="inline">
<input type="number" v-model="item.accountNum" placeholder="请输入账号数量" @input="calcFinalPrice(item)" @change="handleErr(item, 'accountNum')">
</view>
</view> </view>
<view class="line"> <view class="line">
<view class="label">市场价</view> <view class="label">{{ item.authority ? '市场价' : '市场单价' }}</view>
<view class="val">{{ item.marketValue && item.marketValue + '元' }}</view> <view class="ph">{{ item.marketValue && item.marketValue + '元' }}</view>
</view> </view>
<view class="line"> <view class="line">
<view class="label">结算价</view> <view class="label">结算价</view>
<view class="val">{{ item.settlementPrice && item.settlementPrice + '元' }}</view> <view v-if="isDetail" class="ph">{{ item.settlementPrice }}</view>
<view class="inline" v-else>
<input type="number" v-model="item.settlementPrice" placeholder="请输入" @change="handleErr(item, 'settlementPrice')" @input="updateServiceFee(item)">
</view>
</view> </view>
<view class="line"> <view class="line">
<view class="label">折扣率</view> <view class="label">折扣率</view>
<view class="val">{{ item.discountRate }}</view> <view class="ph">{{ item.discountRate }}</view>
</view> </view>
<view class="line"> <view class="line">
<view class="label">市场服务费</view> <view class="label">市场服务费</view>
<view class="val">{{ item.serviceFee }}</view> <view class="ph">{{ item.serviceFee }}</view>
</view> </view>
<view class="line done"> <view :class="['line req', {err: err === 'finalPrice' + item.dataOrCourseId + item.authority}]">
<view class="val">成交价格</view> <view class="label">成交价</view>
<view class="price">{{ item.finalPrice }}</view> <view v-if="isDetail" class="ph">{{ item.finalPrice }}</view>
<view class="inline" v-else>
<input type="number" v-model="item.finalPrice" placeholder="请输入" @input="calcFinalValue(item)" @change="handleErr(item, 'finalPrice')">
</view>
</view> </view>
</view> </view>
</li> </li>
@ -200,7 +231,19 @@
customerListAll: [], customerListAll: [],
err: '', err: '',
rate: '', rate: '',
shipInfo: '' shipInfo: '',
orderRepeat:[],
units: [{
text: '日',
id: 0
}, {
text: '月',
id: 1
}, {
text: '年',
id: 2
}],
unitText: ['日', '月', '年'],
} }
}, },
watch: { watch: {
@ -234,12 +277,6 @@
} }
this.courseList = store this.courseList = store
this.courses = list this.courses = list
// this.$nextTick(() => {
// uni.pageScrollTo({
// selector: '#products',
// })
// })
try { try {
uni.removeStorageSync('courses') uni.removeStorageSync('courses')
} catch (e) {} } catch (e) {}
@ -459,7 +496,7 @@
} else { } else {
this.calcDiscount(e) this.calcDiscount(e)
this.dealSettlePrice(e) this.dealSettlePrice(e)
this.calcFinalPrice(e) // this.calcFinalPrice(e)
const curPurchase = +e.settlementPrice + +e.serviceFee const curPurchase = +e.settlementPrice + +e.serviceFee
purchase += curPurchase purchase += curPurchase
profit += +e.finalPrice - curPurchase profit += +e.finalPrice - curPurchase
@ -469,15 +506,82 @@
form.profit = profit form.profit = profit
form.orderAmount = (+form.purchaseCost + +form.profit).toFixed(2) form.orderAmount = (+form.purchaseCost + +form.profit).toFixed(2)
}, },
calcDiscount(row) { //
const price = row.authority ? row.finalPrice : row.finalValue calcAmount() {
const { marketValue } = row const { form } = this
// (-)÷ x100% const list = this.courses
if (price) row.discountRate = marketValue != 0 ? ((marketValue - price) / marketValue * 100).toFixed(2) + '%' : '0%' let purchase = 0 //
let profit = 0 //
list.map(e => {
const curPurchase = +e.settlementPrice + +e.serviceFee
purchase += curPurchase
profit += +e.finalPrice - curPurchase
})
form.purchaseCost = Math.round(purchase)
form.profit = Math.round(profit)
form.orderAmount = (+form.purchaseCost + +form.profit).toFixed(2)
console.log(111, this.courseList, this.courses)
},
calcDate(row, fromData) {
clearTimeout(this.timer)
this.timer = setTimeout(() => {
const { periodOfUse, options } = row
let optionsData = 0
if (periodOfUse) {
if (options == 1){
optionsData = periodOfUse === '12' ? 31536000000 : periodOfUse*30*24*60*60*1000
} else if (options == 2){
optionsData = periodOfUse*365*24*60*60*1000
} else {
optionsData = periodOfUse*24*60*60*1000
}
}
let time = new Date(row.startTime).getTime()
let endTime = time + optionsData
row.endTime = time + optionsData
let dt = new Date(endTime)
row.endTime = (dt.getFullYear()) + "-" + (dt.getMonth() + 1) + "-" + (dt.getDate())
let endYear = endTime - time
let endYears = endYear/1000/60/60/24
row.remainingPeriod = endYears
const unit = row.options // 使
const useUnit = row.periodOfUse // 使
//
const price = row.marketPrice || 0 //
// //365,/12)
row.marketValue = (!unit ?
price / 365 * useUnit :
unit === 1 ?
price / 12 * useUnit :
price * useUnit).toFixed(2)
this.dealSettlePrice(row)
// +1
if (!fromData) {
const cId = row.dataOrCourseId
const date = new Date(row.startTime)
const orderRepeat = this.orderRepeat
getOrderOtherTime({
customerId: this.customerId,
id: cId,
startTime: this.$util.formatDate(date, 'yyyy-MM-dd'),
endTime: row.endTime
}).then(res => {
orderRepeat.includes(cId) && orderRepeat.splice(orderRepeat.findIndex(e => e === cId), 1)
if (res.endTime) {
let time = new Date(res.endTime)
time = new Date(time.setDate(time.getDate() + 1))
row.startTime = this.$util.formatDate(time, 'yyyy-MM-dd')
}
}).catch(res => {
this.repeatMsg = res.message
orderRepeat.includes(cId) || orderRepeat.push(cId)
})
}
//
this.calcDiscount(row)
}, 500)
}, },
//
dealSettlePrice(row) { dealSettlePrice(row) {
console.log('row==>',row)
// 0 // 0
if (this.form.orderType != 1) { if (this.form.orderType != 1) {
row.settlementPrice = 0 row.settlementPrice = 0
@ -485,9 +589,10 @@
} else { } else {
const unit = row.options // 使 const unit = row.options // 使
const useUnit = row.periodOfUse // 使 const useUnit = row.periodOfUse // 使
let sPrice = ''
// **/**(1) // **/**(1)
const priceUnit = row.settlementPriceUnit const priceUnit = row.settlementPriceUnit
let sPrice = ((!unit ? sPrice = ((!unit ?
priceUnit / 365 * useUnit : priceUnit / 365 * useUnit :
unit === 1 ? unit === 1 ?
priceUnit / 12 * useUnit : priceUnit / 12 * useUnit :
@ -496,11 +601,41 @@
row.accountNum)).toFixed((2)) row.accountNum)).toFixed((2))
row.settlementPrice = this.$util.handleNaN(sPrice) row.settlementPrice = this.$util.handleNaN(sPrice)
// //
if (row.settlementPrice) { row.serviceFee = (row.finalPrice * (this.rate / 100)).toFixed(2)
row.serviceFee = (row.finalPrice * (this.rate / 100)).toFixed(2) this.calcAmount()
} console.log('row.settlementPrice =>' ,row.settlementPrice,row.settlementPriceUnit,sPrice,row)
} }
}, },
calcDiscount(row) {
const price = row.authority ? row.finalPrice : row.finalValue
const { marketValue } = row
// (-)÷ x100%
if (price) row.discountRate = marketValue != 0 ? ((marketValue - price) / marketValue * 100).toFixed(2) + '%' : '0%'
},
selectUnit(item) {
const that = this
uni.showActionSheet({
title: '标题',
itemList: that.unitText,
success: ({ tapIndex }) => {
item.options = tapIndex
that.calcDate(item)
}
})
},
// ////
calcFinalValue(row) {
clearTimeout(this.timer)
this.timer = setTimeout(() => {
const { authority, periodOfUse, options, accountNum, finalPrice } = row
if (!authority && periodOfUse && accountNum && finalPrice) {
row.finalValue = (finalPrice / accountNum / periodOfUse).toFixed(2)
}
//
this.calcDiscount(row)
this.dealSettlePrice(row)
}, 500)
},
// **// // **//
calcFinalPrice(row) { calcFinalPrice(row) {
clearTimeout(this.timer) clearTimeout(this.timer)
@ -524,6 +659,10 @@
this.dealSettlePrice(row) this.dealSettlePrice(row)
}, 500) }, 500)
}, },
//
updateServiceFee(row) {
options.serviceFee = (row.finalPrice * (this.rate / 100)).toFixed(2)
},
// //
showShip(row) { showShip(row) {
let val = '' let val = ''
@ -661,21 +800,24 @@
color: #333; color: #333;
background: linear-gradient(90deg, #FFF5E5 0%, #FFFFFF 100%); background: linear-gradient(90deg, #FFF5E5 0%, #FFFFFF 100%);
} }
.left {
display: inline-flex;
align-items: center;
max-width: 480rpx;
margin-right: 10rpx;
}
.course-action { .course-action {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
} }
.info-btn { .course-btn {
padding: 0 16rpx; padding: 0 16rpx;
margin-left: 10rpx; margin-right: 10rpx;
font-size: 28rpx; font-size: 28rpx;
white-space: nowrap; white-space: nowrap;
} &.mg {
.left { margin-left: 10rpx;
display: inline-flex; }
align-items: center;
max-width: 480rpx;
margin-right: 10rpx;
} }
.del { .del {
width: 40rpx; width: 40rpx;
@ -697,6 +839,10 @@
font-size: 12px; font-size: 12px;
} }
.label { .label {
font-size: 28rpx;
color: #333;
}
.ph {
font-size: 28rpx; font-size: 28rpx;
color: #999; color: #999;
} }
@ -715,8 +861,15 @@
font-size: 32rpx; font-size: 32rpx;
color: #007EFF; color: #007EFF;
} }
.period {
flex: none;
width: 100rpx;
font-size: 28rpx;
text-align: center;
}
} }
.bottom { .bottom {
z-index: 2;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
padding-bottom: env(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom);
@ -812,6 +965,36 @@
background-color: #007EFF; background-color: #007EFF;
} }
} }
.unit {
display: inline-flex;
align-items: center;
.icon {
width: 28rpx;
margin-left: 20rpx;
}
input {
font-size: 28rpx;
}
text{
font-size: 28rpx;
}
}
.line {
.inline {
display: flex;
align-items: center;
font-size: 28rpx;
input {
text-align: right;
margin-right: 10rpx;
margin-left: 20rpx;
color: #333;
}
}
.edit {
margin-left: 10rpx;
}
}
.ship-info { .ship-info {
height: 400rpx; height: 400rpx;
padding: 20rpx; padding: 20rpx;

@ -88,7 +88,7 @@
<image class="icon" src="@/static/image/product/ppt.png"></image> <image class="icon" src="@/static/image/product/ppt.png"></image>
{{ file.fileName }} {{ file.fileName }}
</view> </view>
<view class="download" @click="download(file)">下载</view> <view v-if="auth('产品:下载')" class="download" @click="download(file)">下载</view>
</view> </view>
</view> </view>
</view> </view>
@ -141,8 +141,8 @@
selectedBorder: '1px rgba(83, 200, 249,0.9) solid' selectedBorder: '1px rgba(83, 200, 249,0.9) solid'
}, },
mpStyle: { mpStyle: {
p: 'font-size: 26rpx !important;font-family: Microsoft Yahei !important;', p: 'font-size: 26rpx !important;font-family: Microsoft Yahei !important;color: #333 !important;',
span: 'font-size: 26rpx !important;font-family: Microsoft Yahei !important;' span: 'font-size: 26rpx !important;font-family: Microsoft Yahei !important;color: #333 !important;'
} }
} }
}, },
@ -446,6 +446,7 @@
left: 0; left: 0;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center;
width: 100%; width: 100%;
padding: 24rpx 32rpx 24rpx 73rpx; padding: 24rpx 32rpx 24rpx 73rpx;
background-color: #fff; background-color: #fff;

@ -65,7 +65,7 @@
<view v-if="auth('产品:购物车')" class="plus"> <view v-if="auth('产品:购物车')" class="plus">
<uni-badge size="small" :text="total" absolute="topRight" type="error"> <uni-badge size="small" :text="total" absolute="topRight" type="error">
<image class="icon" src="@/static/image/product/shop-blue.png" mode="widthFix" @click="$util.to('../shopCart/shopCart')"></image> <image class="icon" src="@/static/image/product/shop-blue1.png" mode="widthFix" @click="$util.to('../shopCart/shopCart')"></image>
</uni-badge> </uni-badge>
</view> </view>
@ -353,6 +353,7 @@
min-width: 58rpx; min-width: 58rpx;
height: 58rpx; height: 58rpx;
margin-right: 20rpx; margin-right: 20rpx;
border-radius: 4px;
} }
} }
.info { .info {

@ -1,18 +1,34 @@
<template> <template>
<view class="page"> <view class="page">
<ul class="list"> <ul class="list">
<li v-for="(item, i) in list"> <uni-swipe-action>
<uni-data-checkbox v-if="item.check" class="check" multiple :value="[1]" :localdata="item.checkData" @change="e => checkChange(e, i)"></uni-data-checkbox> <uni-swipe-action-item
<uni-data-checkbox v-else class="check" multiple v-model="item.check" :localdata="item.checkData" @change="e => checkChange(e, i)"></uni-data-checkbox> v-for="(item, i) in list"
<image class="icon" :src="$util.getIcon(item)" mode="widthFix"></image> :key="i"
{{ item.productName }} :threshold="0"
</li> :right-options="delOption"
@click="del(item)"
>
<li>
<uni-data-checkbox v-if="item.check" class="check" multiple :value="[1]" :localdata="item.checkData" @change="e => checkChange(e, i)"></uni-data-checkbox>
<uni-data-checkbox v-else class="check" multiple v-model="item.check" :localdata="item.checkData" @change="e => checkChange(e, i)"></uni-data-checkbox>
<image class="icon" :src="$util.getIcon(item)"></image>
<view class="texts">
<view class="name">{{ item.productName }}</view>
<view class="price">市场建议价{{ item.marketUnitPrice }}/</view>
</view>
</li>
</uni-swipe-action-item>
</uni-swipe-action>
</ul> </ul>
<uni-load-more :status="status" /> <uni-load-more :status="status" />
<view class="btn-wrap"> <view class="btn-wrap">
<uni-data-checkbox class="check" multiple v-model="checkAll" :localdata="checkAllData" @change="allChange"></uni-data-checkbox> <uni-data-checkbox class="check" multiple v-model="checkAll" :localdata="checkAllData" @change="allChange"></uni-data-checkbox>
<view class="btn" @click="submit">生成订单</view> <view class="btns">
<view class="btn del" @click="batchDel">删除</view>
<view class="btn" @click="submit">生成订单</view>
</view>
</view> </view>
</view> </view>
</template> </template>
@ -40,6 +56,12 @@
value: 1 value: 1
}], }],
checked: [], // checked: [], //
delOption: [{
text: '删除',
style: {
backgroundColor: '#F56C6C'
}
}],
} }
}, },
// //
@ -63,8 +85,7 @@
try { try {
uni.removeStorageSync('orderForm') uni.removeStorageSync('orderForm')
} catch (e) {} } catch (e) {}
this.page = 1 this.initList()
this.getList()
}, },
methods: { methods: {
// //
@ -161,6 +182,43 @@
shopCartId// id shopCartId// id
} }
}, },
//
del(e) {
const that = this
uni.showModal({
title: '提示',
content: '确定要删除吗?',
success(res) {
if (res.confirm) {
delCart([e.id]).then(res => {
that.initList()
}).catch(e => {})
}
}
})
},
//
batchDel() {
const list = this.checked //
if (list.length) {
const that = this
uni.showModal({
title: '提示',
content: '确定要删除吗?',
success(res) {
if (res.confirm) {
delCart(list.map(e => e.id)).then(res => {
that.checkAll = []
that.checked = []
that.initList()
}).catch(e => {})
}
}
})
} else {
this.$util.errMsg('请选择产品!')
}
},
// //
submit() { submit() {
const list = this.checked // const list = this.checked //
@ -184,7 +242,7 @@
this.$util.to(`/order/editCourse/editCourse`) this.$util.to(`/order/editCourse/editCourse`)
}) })
} else { } else {
this.$util.errMsg('请选择产品!') this.$util.errMsg('请先添加产品!')
} }
} }
} }
@ -201,14 +259,24 @@
align-items: center; align-items: center;
padding: 30rpx 24rpx; padding: 30rpx 24rpx;
margin: 16rpx 24rpx; margin: 16rpx 24rpx;
font-size: 30rpx;
color: #333;
background-color: #fff; background-color: #fff;
border-radius: 16rpx; border-radius: 16rpx;
} }
.name {
margin-bottom: 10rpx;
font-size: 30rpx;
color: #333;
}
.price {
font-size: 26rpx;
color: #333;
}
.icon { .icon {
width: 80rpx; width: 100rpx;
min-width: 100rpx;
height: 100rpx;
margin: 0 20rpx; margin: 0 20rpx;
border-radius: 4px;
} }
} }
/deep/.check { /deep/.check {
@ -228,9 +296,16 @@
.btn-wrap { .btn-wrap {
position: fixed; position: fixed;
justify-content: space-between; justify-content: space-between;
.btns {
display: inline-flex;
}
.btn { .btn {
width: 340rpx; width: auto;
margin-left: 27rpx; padding: 0 50rpx;
}
.del {
margin-right: 20rpx;
background-color: #b5b5b5;
} }
} }
</style> </style>

@ -148,7 +148,7 @@
"style" : "style" :
{ {
"navigationBarTitleText": "购物车", "navigationBarTitleText": "购物车",
"enablePullDownRefresh": false "enablePullDownRefresh": true
} }
} }
@ -293,8 +293,8 @@
"selectedColor": "#007FFF", "selectedColor": "#007FFF",
"borderStyle": "white", "borderStyle": "white",
"backgroundColor": "#ffffff", "backgroundColor": "#ffffff",
"fontSize": "16px", "fontSize": "22px",
"iconWidth": "45px", "iconWidth": "20px",
"list": [{ "list": [{
"pagePath": "pages/index/index", "pagePath": "pages/index/index",
"iconPath": "static/image/tab1.png", "iconPath": "static/image/tab1.png",

@ -28,7 +28,7 @@
<view class="title-wrap"> <view class="title-wrap">
<view class="title">热销产品</view> <view class="title">热销产品</view>
<view> <view>
<button class="all" type="primary" @click.stop="toProduct">全部产品</button> <!-- <button class="all" type="primary" @click.stop="toProduct">全部产品</button> -->
</view> </view>
</view> </view>
<view class="list"> <view class="list">
@ -48,7 +48,7 @@
<view class="title-wrap"> <view class="title-wrap">
<view class="title">官方推荐</view> <view class="title">官方推荐</view>
<view> <view>
<button class="all" type="primary" @click.stop="toProduct">全部产品</button> <!-- <button class="all" type="primary" @click.stop="toProduct">全部产品</button> -->
</view> </view>
</view> </view>
<view class="list"> <view class="list">
@ -66,7 +66,7 @@
<view v-if="auth('产品:购物车')" class="plus"> <view v-if="auth('产品:购物车')" class="plus">
<uni-badge size="small" :text="total" absolute="topRight" type="error"> <uni-badge size="small" :text="total" absolute="topRight" type="error">
<image class="icon" src="@/static/image/product/shop-blue.png" mode="widthFix" @click="$util.to('../shopCart/shopCart')"></image> <image class="icon" src="@/static/image/product/shop-blue1.png" mode="widthFix" @click="$util.to('/order/shopCart/shopCart')"></image>
</uni-badge> </uni-badge>
</view> </view>
@ -308,8 +308,8 @@
margin-bottom: 28rpx; margin-bottom: 28rpx;
} }
.pic { .pic {
width: 120rpx; width: 100rpx;
height: 120rpx; height: 100rpx;
margin-right: 20rpx; margin-right: 20rpx;
border-radius: 8px; border-radius: 8px;
} }
@ -323,7 +323,7 @@
} }
.des { .des {
margin: 10rpx 0; margin: 10rpx 0;
font-size: 24rpx; font-size: 22rpx;
color: #666; color: #666;
} }
.meta { .meta {

@ -12,7 +12,7 @@
<image src="@/static/image/wechat.png" mode="widthFix"></image> <image src="@/static/image/wechat.png" mode="widthFix"></image>
微信授权登录 微信授权登录
</view> </view>
<view class="reg" @click="toReg">没有账号申请注册</view> <!-- <view class="reg" @click="toReg">没有账号申请注册</view> -->
</template> </template>
<view class="agree"> <view class="agree">
@ -80,20 +80,38 @@
login({ login({
code, code,
avatarUrl: userInfo.avatarUrl avatarUrl: userInfo.avatarUrl
}).then(({ data }) => { }).then((res) => {
const e = data.sessionKey const { data, status } = res
this.sessionKey = e.session_key
this.openid = e.openid
this.unionid = e.unionid
uni.setStorageSync('sessionKey', e.session_key)
uni.setStorageSync('openid', e.openid)
this.submiting = false this.submiting = false
// //
if (data.state === 'login') { if (status == 10028) {
this.toIndex() // unilogincode
uni.setStorageSync('token', data.token) uni.login({
success: ({ code }) => {
getSessionKey({
code,
}).then(({ sessionKey }) => {
this.sessionKey = sessionKey.session_key
this.openid = sessionKey.openid
this.isLogin = true
}).catch(e => {})
this.isReg = true
}
})
} else { } else {
this.isLogin = true const e = data.sessionKey
this.sessionKey = e.session_key
this.openid = e.openid
this.unionid = e.unionid
uni.setStorageSync('sessionKey', e.session_key)
uni.setStorageSync('openid', e.openid)
//
if (data.state === 'login') {
this.toIndex()
uni.setStorageSync('token', data.token)
} else {
this.isLogin = true
}
} }
}).catch(e => { }).catch(e => {
this.submiting = false this.submiting = false

@ -16,7 +16,14 @@
<view v-if="auth('我的:我的团队')" class="item" @click="$util.to('/team/teams/teams')"> <view v-if="auth('我的:我的团队')" class="item" @click="$util.to('/team/teams/teams')">
<view class="left"> <view class="left">
<image class="icon" src="@/static/image/person4.png" mode=""></image> <image class="icon" src="@/static/image/person4.png" mode=""></image>
<text class="name">我的团队</text> <text class="name">{{ disabled ? '所属团队' : '我的团队' }}</text>
</view>
<uni-icons type="right" size="15" color="#ccc"></uni-icons>
</view>
<view v-if="disabled && auth('我的:我的团队')" class="item" @click="createTeam">
<view class="left">
<image class="icon" src="@/static/image/person4.png" mode=""></image>
<text class="name">创建自己的团队</text>
</view> </view>
<uni-icons type="right" size="15" color="#ccc"></uni-icons> <uni-icons type="right" size="15" color="#ccc"></uni-icons>
</view> </view>
@ -128,7 +135,6 @@
} }
}, },
onShow() { onShow() {
console.log(11, uni.getStorageSync('avatar'))
this.per = true this.per = true
this.initRole() this.initRole()
this.disabled = uni.getStorageSync('team').isTeam == 0 // this.disabled = uni.getStorageSync('team').isTeam == 0 //
@ -177,6 +183,10 @@
} }
}) })
}, },
//
createTeam() {
this.$util.to(`../reg/reg?openid=${uni.getStorageSync('openid')}&phone=${this.my.info.phone}`)
},
// //
toSet() { toSet() {
this.$util.to(`/team/setting/setting`) this.$util.to(`/team/setting/setting`)

@ -57,40 +57,36 @@
methods: { methods: {
// //
checkLogin() { checkLogin() {
if (uni.getStorageSync('token')) { // isTeam 10team
this.toIndex() queryPartnerAccount(this.phone).then(({ team, username }) => {
} else { if (team) {
// isTeam 10team team.teamId && uni.setStorageSync('teamId', team.teamId)
queryPartnerAccount(this.phone).then(({ team, username }) => { this.form.userName = team.userName
if (team) { if (team) this.exist = true
team.teamId && uni.setStorageSync('teamId', team.teamId) if (team.isTeam) {
this.form.userName = team.userName this.form = team
if (team) this.exist = true this.getCity()
if (team.isTeam) { } else {
this.form = team this.form.isTeam = 0
this.getCity() if (team.userName) this.form.userName = team.userName
} else { uni.showModal({
this.form.isTeam = 0 title: '提示',
if (team.userName) this.form.userName = team.userName content: `或然科技城市合伙人,欢迎回来!您已在${team.teamName},是否要创建自己的团队?`,
uni.showModal({ success: function (res) {
title: '提示', if (res.confirm) {
content: `或然科技城市合伙人,欢迎回来!您已在${team.teamName},是否要创建自己的团队?`, console.log('用户点击确定');
success: function (res) { } else if (res.cancel) {
if (res.confirm) { uni.redirectTo({
console.log('用户点击确定'); url: '../login/login'
} else if (res.cancel) { })
uni.redirectTo({
url: '../login/login'
})
}
} }
}) }
} })
} else if (username) { // username
this.form.userName = username
} }
}).catch(e => {}) } else if (username) { // username
} this.form.userName = username
}
}).catch(e => {})
}, },
// //
getProvince() { getProvince() {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

After

Width:  |  Height:  |  Size: 410 B

@ -63,8 +63,8 @@
generateInvitationCode(uni.getStorageSync('team').accountId).then(({ expireTime }) => { generateInvitationCode(uni.getStorageSync('team').accountId).then(({ expireTime }) => {
const date = new Date(Date.now() + expireTime * 1000) // *1000 const date = new Date(Date.now() + expireTime * 1000) // *1000
this.expireTime = `${date.getFullYear()}-${this.$util.preZero(date.getMonth() + 1)}-${this.$util.preZero(date.getDate())} ${this.$util.preZero(date.getHours())}:${this.$util.preZero(date.getMinutes())}:${this.$util.preZero(date.getMinutes())}` this.expireTime = `${date.getFullYear()}-${this.$util.preZero(date.getMonth() + 1)}-${this.$util.preZero(date.getDate())} ${this.$util.preZero(date.getHours())}:${this.$util.preZero(date.getMinutes())}:${this.$util.preZero(date.getMinutes())}`
this.link = `https://huorantech.cn/#/join?accountId=${team.accountId}&id=${team.teamId}&isTeam=0&teamName=${this.my.info.userName}&provinceId=${uni.getStorageSync('provinceId')}&cityId=${uni.getStorageSync('cityId')}` // this.link = `https://huorantech.cn/#/join?accountId=${team.accountId}&id=${team.teamId}&isTeam=0&teamName=${this.my.info.userName}&provinceId=${uni.getStorageSync('provinceId')}&cityId=${uni.getStorageSync('cityId')}`
// this.link = `http://121.37.12.51/backstage/#/join?accountId=${team.accountId}&id=${team.teamId}&isTeam=0&teamName=${this.my.info.userName}&provinceId=${uni.getStorageSync('provinceId')}&cityId=${uni.getStorageSync('cityId')}` this.link = `http://121.37.12.51/backstage/#/join?accountId=${team.accountId}&id=${team.teamId}&isTeam=0&teamName=${this.my.info.userName}&provinceId=${uni.getStorageSync('provinceId')}&cityId=${uni.getStorageSync('cityId')}`
}).catch(e => {}) }).catch(e => {})
}, },
// imageimage // imageimage

Loading…
Cancel
Save