tianyi 8 hours ago
parent
commit
f9bca4f474
  1. 2
      package2/login/login.vue
  2. 520
      package2/shop/merchantRegister.vue
  3. 93
      package2/shop/orderDetail.vue
  4. 16
      package2/shop/shopOrderList.vue
  5. 2
      package2/shop/shopSettlementDetail.vue

2
package2/login/login.vue

@ -613,7 +613,7 @@
.popup-container { .popup-container {
margin-top: 20rpx; margin-top: 20rpx;
height: 100rpx; height: 100rpx;
border-radius: 10px; border-radius: 20rpx;
background: #088FEB; background: #088FEB;
line-height: 100rpx; line-height: 100rpx;
text-align: center; text-align: center;

520
package2/shop/merchantRegister.vue

@ -1,9 +1,527 @@
<template> <template>
<!-- 商家注册 --> <!-- 商家入驻 -->
<view class="page1">
<view class="content" style="border-top: 1px solid #eee;">
<view class="value">
<view class="name">
店铺名称
</view>
<view class="text">
<input type="text" v-model="formData.shopName" placeholder="输入店铺名称" />
</view>
</view>
<view class="value">
<view class="name">
学生商家
</view>
<view class="text" style="text-align: right;">
<label class="radio" style="padding-right: 20rpx;" @tap="clickRadio(1)">
<radio :checked="formData.isStudent == 1" /><text></text>
</label>
<label class="radio" @tap="clickRadio(0)">
<radio :checked="formData.isStudent == 0" /><text></text>
</label>
</view>
</view>
<view class="value" style="height: 200rpx;">
<view class="name" style="flex: 1;line-height: 200rpx;">
门头图
</view>
<view class="text" style="width: 180rpx;padding-top: 10rpx;" @tap="pictureAdd('mentou')">
<view class="upload-img" v-if="formData.shopIcon ==''" style="background: #eee;text-align: center;line-height: 180rpx;">
<uni-icons type="camera" size="28" color="#777"></uni-icons>
</view>
<img :src="formData.shopIcon" v-if="formData.shopIcon !=''" alt="" class="upload-img">
</view>
</view>
</view>
<view class="content">
<view class="value">
<view class="name">
店铺坐标
</view>
<view class="text" @tap.stop="openPicker" style="text-align: right;">
<uni-icons type="location" color="#00BFFF" size="12"></uni-icons>
<text style="color:#00BFFF;">点击选择地址</text>
</view>
</view>
<view class="value" style="height:120rpx;">
<view class="name">
店铺地址
</view>
<view class="text" style="height:120rpx;line-height: 60rpx;">
<textarea name="" id="" v-model="formData.shopAddress" cols="30" rows="10"></textarea>
</view>
</view>
<view class="value">
<view class="name">
所属区域
</view>
<view class="text" style="text-align: right;">
<uni-data-select class="uni-data-select" :localdata="addressList" v-model="formData.regionId"
placeholder="请选择所属区域" @change="regionChange"></uni-data-select>
</view>
</view>
</view>
<view class="content">
<view class="value">
<view class="name">
联系人
</view>
<view class="text">
<input type="text" v-model="formData.nickname" placeholder="输入联系人" />
</view>
</view>
<view class="value">
<view class="name">
联系电话
</view>
<view class="text">
<input type="text" v-model="formData.mobile" placeholder="输入联系电话" />
</view>
</view>
<view class="value">
<view class="name" style="flex: 1;">
验证码
</view>
<view class="text" style="display: flex;width: 340rpx;">
<input type="number" v-model="formData.code" placeholder="请输入验证码" style="width: 200rpx;text-align: center;" />
<view class="code-btn" style="font-size: 24rpx;" size="mini" type="default" @click="sendLoginSms" :disabled="choose" :class="choose == false ? 'hasChosen':'notChosen'">
{{ choose ? clock + '重新获取' : '获取验证码' }}
</view>
</view>
</view>
</view>
<view class="content">
<view class="value" style="height: 200rpx;">
<view class="name" style="flex: 1;line-height: 200rpx;">
法人身份证正反面
</view>
<view class="text" style="width: 380rpx;display: flex;padding-top: 10rpx;">
<view>
<view class="upload-img" v-if="formData.zhengzhao ==''" @tap="pictureAdd('zheng')"
style="background: #eee;text-align: center;line-height: 180rpx;">
<uni-icons type="camera" size="28" color="#777"></uni-icons>
</view>
<img :src="formData.zhengzhao" v-if="formData.zhengzhao !=''" alt="" class="upload-img">
</view>
<view>
<view class="upload-img" @tap="pictureAdd('fan')" v-if="formData.fanzhao ==''" style="background: #eee;text-align: center;line-height: 180rpx;margin-left: 20rpx;">
<uni-icons type="camera" size="28" color="#777"></uni-icons>
</view>
<img :src="formData.fanzhao" v-if="formData.fanzhao !=''" alt="" class="upload-img" style="margin-left: 20rpx;">
</view>
</view>
</view>
<view class="value">
<view class="name">
法人姓名
</view>
<view class="text">
<input type="text" v-model="formData.shopLename" placeholder="输入法人姓名" />
</view>
</view>
<view class="value">
<view class="name">
法人身份证
</view>
<view class="text">
<input type="text" v-model="formData.shopLecard" placeholder="输入法人身份证" />
</view>
</view>
</view>
<view class="content">
<view class="value" style="height: 200rpx;">
<view class="name" style="flex: 1;line-height: 200rpx;">
营业执照
</view>
<view class="text" style="width: 180rpx;padding-top: 10rpx;" @tap="pictureAdd('yingye')">
<view class="upload-img" v-if="formData.yingyezhizhao ==''" style="background: #eee;text-align: center;line-height: 180rpx;">
<uni-icons type="camera" size="28" color="#777"></uni-icons>
</view>
<img :src="formData.yingyezhizhao" v-if="formData.yingyezhizhao !=''" alt="" class="upload-img">
</view>
</view>
</view>
<view class="content">
<view class="value" style="height: 200rpx;">
<view class="name" style="flex: 1;line-height: 200rpx;">
其他补充证照
</view>
<view class="text" @tap="pictureAdd('qita')" style="width: auto;display: flex;padding-top: 10rpx;position: relative;">
<view class="upload-img" style="background: #eee;text-align: center;line-height: 180rpx;">
<uni-icons type="camera" size="28" color="#777"></uni-icons>
</view>
<img :src="formData.qita[0]" v-if="formData.qita.length>0" alt="" class="upload-img" style="margin-left: 20rpx;">
<view class="red-dot" v-if="formData.qita.length>0">{{formData.qita.length}}</view>
</view>
</view>
</view>
<view class="content">
<view class="value">
<view class="name">
支付宝账户
</view>
<view class="text">
<input type="text" v-model="formData.aliAccount" placeholder="邮箱/手机号" />
</view>
</view>
<view class="value">
<view class="name">
收款人姓名
</view>
<view class="text">
<input type="text" v-model="formData.aliName" placeholder="支付宝账号实名认证的姓名" />
</view>
</view>
</view>
<button @tap.stop="submit()">保存</button>
</view>
</template> </template>
<script> <script>
import {
getArea
} from '@/utils/global.js'
import { reg } from '@/utils/global.js'
export default {
data() {
return {
addressList:[],
formData: {
regionId:'',
region:'',
shopIcon:'',
shopAddress: '',
shopName:'',
aliAccount:'',
aliName:'',
nickname:'',
mobile:uni.getStorageSync('mobile')?uni.getStorageSync('mobile'):'',
code:'',
password:'123456',
zhengzhao:'',
yingyezhizhao:'',
fanzhao:'',
shopLename:'',
shopLecard:'',
qita:[],
shopImages:'',
id:'',
isStudent:0, //1 0
unionid:''
},
choose:false,
isChoose:false,
clock: 60 ,//
};
},
onLoad(option) {
},
onShow(){
this.getRegionList()
},
methods: {
openPicker() {
let that = this;
uni.chooseLocation({
latitude:'38.335974',
longitude:'116.805783',
success: function(res) {
if (res.name != '') {
let aaa = getArea(res.address)
that.formData.shopAddress = aaa.province + aaa.city + aaa.country + aaa.address + res.name
} else {
that.tui.toast("微信地址选择器调用失败,请重新选择!")
}
},
fail: function(res) {
}
});
},
pictureAdd(type) {
let that = this
uni.chooseMedia({
count: type == 'qita'?9:1,
mediaType: ['image'],
sourceType: ['album'],
success(res) {
uni.showLoading({
title: '加载中...',
mask: true
})
for (let i = 0; i < res.tempFiles.length; i++) {
console.log('type是什么',type)
that.upLoadFile(res.tempFiles[i].tempFilePath,type)
}
}
})
},
async upLoadFile(path,type) {
let that = this;
let hiver_token = uni.getStorageSync("hiver_token")
await uni.uploadFile({
url: that.tui.interfaceUrl() + '/upload/file',
filePath: path,
name: 'file',
header: {
"content-type": "multipart/form-data",
'accessToken': hiver_token
},
formData: {},
success: (uploadFileRes) => {
let pathData = JSON.parse(uploadFileRes.data)
if(type == 'zheng'){
that.formData.zhengzhao = pathData.result
}else if(type == 'fan'){
that.formData.fanzhao = pathData.result
}else if(type == 'yingye'){
that.formData.yingyezhizhao = pathData.result
}else if(type == 'mentou'){
that.formData.shopIcon = pathData.result
}else{
that.formData.qita.push(pathData.result)
}
that.$forceUpdate()
},
fail: (err) => {
uni.hideLoading();
uni.showToast({
title: JSON.stringify(err),
icon: 'none'
})
}
});
await setTimeout(res => {
uni.hideLoading();
}, 1000)
},
//
submit() {
let that = this;
let url = ''
let verify = this.verifyField()
if(verify != true){
uni.showToast({
title: verify + '不能为空',
icon: 'none'
})
return
}
if (that.formData.id) {
url = '/app/shop/updateShopIconAndRemark'
} else {
url = '/auth/shopRegister'
}
this.formData.unionid = uni.getStorageSync('unionid')
this.formData.shopImages = this.formData.zhengzhao + '@@' + this.formData.fanzhao + '@@' + this.formData.yingyezhizhao + '@@' + JSON.stringify(this.formData.qita)
that.tui.request(url, "post", this.formData, false, true).then((res1) => {
if (res1.code == 200) {
uni.setStorageSync('schoolShop',res1.result)
uni.showModal({
title: '提示',
content: '提交成功,请等待管理员审核',
success: function (res) {
uni.navigateBack()
}
});
} else {
uni.showToast({
title: res1.message,
icon: 'none'
})
}
})
},
clickRadio(type){
this.formData.isStudent = type
},
//
getRegionList() {
let that = this;
this.tui.request('/app/shopArea/getByParentId/0', 'get', {}, false, false, true).then((res) => {
if (res.code !== 200) return
that.addressList = res.result.map(item => {
return {
value: item.id,
text: item.title
}
})
console.log(that.addressList)
})
},
regionChange(e){
for (let i = 0; i < this.addressList.length; i++) {
if (this.addressList[i].value == e) {
this.formData.regionId = e;
this.formData.region = this.addressList[i].text
}
}
console.log(this.region)
},
sendLoginSms(){ //
this.isChoose = false
if(reg(this.formData.mobile,this.clock) && this.isChoose == false){
this.choose = true
this.setTime()
this.tui.request("/common/captcha/sendRegistSms/"+this.formData.mobile, "GET", {
}).then((res) => {
if (res.code == 200) {
uni.showToast({
title: "发送成功",
icon: 'success'
})
}else{
this.tui.toast(res.message)
}
}).catch((res) => {
this.tui.toast(res)
})
}else if(reg(this.formData.mobile,this.clock) && this.isChoose == true){
}
},
setTime(){//
if(this.clock == 0){
this.clock = 60
this.choose = false
return
}else{
this.clock--
if(this.clock < 10){this.clock = '0'+this.clock}
}
setTimeout(() => { this.setTime() },1000)
},
verifyField(){
let msg = ''
let data = this.formData
if(data.shopAddress == ''){
msg = '地址'
}else if(data.shopName == ''){
msg = '店铺名'
}else if(data.aliAccount == ''){
msg = '支付宝账号'
}else if(data.aliName == ''){
msg = '收款人姓名'
}else if(data.nickname == ''){
msg = '联系人'
}else if(data.mobile == ''){
msg = '联系电话'
}else if(data.code == ''){
msg = '验证码'
}else if(data.zhengzhao == ''){
msg = '法人身份证正面'
}else if(data.yingyezhizhao == ''){
msg = '营业执照'
}else if(data.fanzhao == ''){
msg = '法人身份证反面'
}else if(data.shopLename == ''){
msg = '法人姓名'
}else if(data.shopLecard == ''){
msg = '法人身份证'
}
return msg == ""?true:msg
}
}
}
</script> </script>
<style> <style>
page,.page1{
font-size: 24rpx;
width: 100%;
height: 100%;
background: #eee;
overflow: scroll;
}
.content{
width: 100%;
height: auto;
background: #fff;
margin-bottom: 20rpx;
}
.value{
width: 100%;
height: 80rpx;
display: flex;
line-height: 80rpx;
border-top: 1px solid #eee;
padding: 0 20rpx;
}
.name{
width: 20%;
}
.text{
width: 80%;
}
.text input{
height: 80rpx;
line-height: 80rpx;
text-align: right;
}
.text textarea{
height: 120rpx;
line-height: 40rpx;
padding-top:20rpx;
}
.upload-img {
width: 180rpx;
height: 180rpx;
}
.red-dot{
width: 40rpx;
height: 40rpx;
text-align: center;
line-height: 40rpx;
border-radius: 40rpx;
background: red;
color: #fff;
position: absolute;
top: 10rpx;
right: 0;
}
button {
width:95%;
height: 90rpx;
line-height: 90rpx;
font-size: 36rpx;
color: #fff;
background: #5fd9ee;
border-radius: 20rpx;
margin: 40rpx auto;
}
.hasChosen{
height: 74rpx;
line-height: 74rpx;
color: #fff;
border: none;
background: #5fd9ee;
}
.code-btn{
font-size: 24rpx;
background: #00BFFF;
color: #fff;
height: 60rpx;
line-height: 60rpx;
border-radius: 20rpx;
padding: 0 10rpx;
margin-top: 10rpx;
width: 140rpx;
}
.uni-select{
border: none !important;
padding: 0 !important;
}
.uni-stat__select {
height: 100% !important;
}
</style> </style>

93
package2/shop/orderDetail.vue

@ -12,57 +12,57 @@
</view> </view>
</view> </view>
<view class="content"> <view class="content">
<view class="box1" style="display: flex;font-size: 14px;font-weight: 700;"> <view class="box1" style="display: flex;font-size: 28rpx;font-weight: 700;">
<text>{{'#'+data.numberCode}}</text> <text>{{'#'+data.numberCode}}</text>
<text style="margin: 0 10px;">期望送达</text> <text style="margin: 0 20rpx;">期望送达</text>
<text>明天 06:30</text> <text>明天 06:30</text>
<text style="flex: 1;text-align: right;color: red;"> <text style="flex: 1;text-align: right;color: red;">
{{data.status == 0?'待支付':data.status == 2?'待配送员接单':(data.status == 3 && data.deliveryType == 1 && data.shopMakeTime == null) || (data.status == 3 && data.deliveryType == 2 && data.userRequireMake == 1)?'待出餐':(data.status == 3 && data.deliveryType == 1 && data.shopMakeTime != null)?'待取货':(data.status == 3 && data.deliveryType == 2)?'待消费':data.status == 4?'待送达':data.status == 5?'已完成':data.status == 7?'待同意退款':data.status == 8?'已退款':data.status == 6?'已取消':data.status == 11?'售后中':data.status == 12?'已售后':""}} {{data.status == 0?'待支付':data.status == 2?'待配送员接单':(data.status == 3 && data.deliveryType == 1 && data.shopMakeTime == null) || (data.status == 3 && data.deliveryType == 2 && data.userRequireMake == 1)?'待出餐':(data.status == 3 && data.deliveryType == 1 && data.shopMakeTime != null)?'待取货':(data.status == 3 && data.deliveryType == 2)?'待消费':data.status == 4?'待送达':data.status == 5?'已完成':data.status == 7?'待同意退款':data.status == 8?'已退款':data.status == 6?'已取消':data.status == 11?'售后中':data.status == 12?'已售后':""}}
</text> </text>
</view> </view>
<view class="box1" style="display: flex;height: 50px;line-height: 50px;padding: 0 10px;"> <view class="box1" style="display: flex;height: 100rpx;line-height: 100rpx;padding: 0 20rpx;">
<view style="border: 1px solid #48D1CC;height: 25px;line-height: 25px;padding: 0 10px;border-radius: 10px;margin-top: auto;margin-bottom: auto;color: #48D1CC;font-weight: 700;"> <view style="border: 1px solid #48D1CC;height: 50rpx;line-height: 50rpx;padding: 0 20rpx;border-radius: 20rpx;margin-top: auto;margin-bottom: auto;color: #48D1CC;font-weight: 700;">
{{data.deliveryType == 2?'自取订单':'配送订单'}} {{data.deliveryType == 2?'自取订单':'配送订单'}}
</view> </view>
<view v-if="data.deliveryType == 1" style="display: flex;flex: 1;padding-left: 10px;"> <view v-if="data.deliveryType == 1" style="display: flex;flex: 1;padding-left: 20rpx;">
<text style="flex: 1;">配送员{{data.deliveryInfo.workerName}}</text> <text style="flex: 1;">配送员{{data.deliveryInfo.workerName}}</text>
<view class=""> <view class="">
<img @tap="makeCall(data.deliveryInfo.workerPhone)" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/869a7af6a1c24bf3a0d523c4a18b55c6.png" alt="" style="width: 30px;height: 30px;margin-top: 10px;" /> <img @tap="makeCall(data.deliveryInfo.workerPhone)" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/869a7af6a1c24bf3a0d523c4a18b55c6.png" alt="" style="width: 60rpx;height: 60rpx;margin-top: 20rpx;" />
</view> </view>
</view> </view>
</view> </view>
<view class="box1" v-if="data.deliveryType == 1" style="display: flex;"> <view class="box1" v-if="data.deliveryType == 1" style="display: flex;">
<view style="flex: 1;"> <view style="flex: 1;">
<view style="font-weight: 700;height: 25px;"> <view style="font-weight: 700;height: 50rpx;">
收货人{{data.deliveryInfo.receiverName}} 收货人{{data.deliveryInfo.receiverName}}
</view> </view>
<view style="color: #777;height: 35px;"> <view style="color: #777;height: 70rpx;">
{{data.deliveryInfo.receiverAddress}} {{data.deliveryInfo.receiverAddress}}
</view> </view>
</view> </view>
<view class=""> <view class="">
<img @tap="makeCall(data.deliveryInfo.receiverPhone)" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/869a7af6a1c24bf3a0d523c4a18b55c6.png" alt="" style="width: 30px;height: 30px;margin-top: 14px;" /> <img @tap="makeCall(data.deliveryInfo.receiverPhone)" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/869a7af6a1c24bf3a0d523c4a18b55c6.png" alt="" style="width: 60rpx;height: 60rpx;margin-top: 28rpx;" />
</view> </view>
</view> </view>
<view class="box1"> <view class="box1">
<view style="border-bottom: 1px solid #eee;padding-bottom: 10px;"> <view style="border-bottom: 1px solid #eee;padding-bottom: 20rpx;">
<view style="font-size: 16px;height: 30px;"> <view style="font-size: 32rpx;height: 60rpx;">
商品 <text style="font-size: 14px;color: #777;">{{data.goodsNum}}</text> 商品 <text style="font-size: 28rpx;color: #777;">{{data.goodsNum}}</text>
</view> </view>
<view v-for="(item,index) in data.goodsList" :key="index" style="display: flex;height: 20px;line-height: 20px;"> <view v-for="(item,index) in data.goodsList" :key="index" style="display: flex;height: 40rpx;line-height: 40rpx;">
<view style="flex: 1;"> <view style="flex: 1;">
{{item.productName}} {{item.productName}}
</view> </view>
<view style="width: 30px;"> <view style="width: 60rpx;">
{{'x'+ item.quantity}} {{'x'+ item.quantity}}
</view> </view>
<view style="width: 50px;text-align: right;"> <view style="width: 100rpx;text-align: right;">
{{'¥'+ item.price}} {{'¥'+ item.price}}
</view> </view>
</view> </view>
</view> </view>
<view class=""> <view class="">
<view style="display: flex;height: 30px;line-height: 30px;"> <view style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="flex: 1;"> <view style="flex: 1;">
商品金额 商品金额
</view> </view>
@ -70,7 +70,7 @@
{{'¥' + data.goodsAmount}} {{'¥' + data.goodsAmount}}
</view> </view>
</view> </view>
<view style="display: flex;height: 30px;line-height: 30px;"> <view style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="flex: 1;"> <view style="flex: 1;">
配送费 配送费
</view> </view>
@ -78,7 +78,7 @@
{{'¥' + data.deliveryFee}} {{'¥' + data.deliveryFee}}
</view> </view>
</view> </view>
<view style="display: flex;height: 30px;line-height: 30px;"> <view style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="flex: 1;"> <view style="flex: 1;">
客户实际支付 客户实际支付
</view> </view>
@ -86,7 +86,7 @@
{{'¥'+ data.totalAmount}} {{'¥'+ data.totalAmount}}
</view> </view>
</view> </view>
<view style="display: flex;height: 30px;line-height: 30px;"> <view style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="flex: 1;"> <view style="flex: 1;">
平台服务费 平台服务费
</view> </view>
@ -98,32 +98,32 @@
</view> </view>
<view class="box1"> <view class="box1">
<view class=""> <view class="">
<view style="display: flex;height: 30px;line-height: 30px;"> <view style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="width: 70px;"> <view style="width: 140rpx;">
订单编号 订单编号
</view> </view>
<view style="flex: 1;text-align: right;"> <view style="flex: 1;text-align: right;">
{{data.id}} {{data.id}}
</view> </view>
</view> </view>
<view style="display: flex;height: 30px;line-height: 30px;"> <view style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="width: 70px;"> <view style="width: 140rpx;">
下单时间 下单时间
</view> </view>
<view style="flex: 1;text-align: right;"> <view style="flex: 1;text-align: right;">
{{data.createTime | formatISOTime}} {{data.createTime | formatISOTime}}
</view> </view>
</view> </view>
<view v-if="data.receiverPhone" style="display: flex;height: 30px;line-height: 30px;"> <view v-if="data.receiverPhone" style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="width: 70px;"> <view style="width: 140rpx;">
用户账号 用户账号
</view> </view>
<view style="flex: 1;text-align: right;"> <view style="flex: 1;text-align: right;">
{{data.receiverPhone}} {{data.receiverPhone}}
</view> </view>
</view> </view>
<view v-if="data.orderType != 1" style="display: flex;height: 30px;line-height: 30px;"> <view v-if="data.orderType != 1" style="display: flex;height: 60rpx;line-height: 60rpx;">
<view style="width: 70px;"> <view style="width: 140rpx;">
团购信息 团购信息
</view> </view>
<view @tap="checkGroup" style="flex: 1;text-align: right;"> <view @tap="checkGroup" style="flex: 1;text-align: right;">
@ -134,7 +134,7 @@
</view> </view>
</view> </view>
<view class="bottom"> <view class="bottom">
<view style="height: 30px;line-height: 30px;display: flex;border-bottom: 1px solid #eee;font-size: 14px;"> <view style="height: 60rpx;line-height: 60rpx;display: flex;border-bottom: 1px solid #eee;font-size: 28rpx;">
<view style="flex: 1;"> <view style="flex: 1;">
预计收入 预计收入
</view> </view>
@ -142,7 +142,7 @@
{{(data.yujishouru).toFixed(2)}} {{(data.yujishouru).toFixed(2)}}
</view> </view>
</view> </view>
<view style="margin-top: 10px;"> <view style="margin-top: 20rpx;">
<view class="btn"> <view class="btn">
打印小票 打印小票
</view> </view>
@ -154,12 +154,22 @@
<!-- 拼团信息弹出层 --> <!-- 拼团信息弹出层 -->
<uni-popup ref="groupPopup" background-color="#fff"> <uni-popup ref="groupPopup" background-color="#fff">
<view class="group-content"> <view class="group-content">
<view style="height: 50px;text-align: center;line-height: 50px;font-size: 18px;font-weight: 700;"> <view style="height: 100rpx;text-align: center;line-height: 100rpx;font-size: 36rpx;font-weight: 700;">
<text>{{data.groupInfo.targetMembers}}人团/</text><text>已拼{{data.groupInfo.currentMembers}}</text> <text>{{data.groupInfo.targetMembers}}人团/</text><text>已拼{{data.groupInfo.currentMembers}}</text>
</view> </view>
<view class="kaituan2"> <view class="kaituan2">
<view class="kaituan22" style="display: flex;"> <view class="kaituan22" style="display: flex;">
<img @tap="goDetail(item)" v-for="(item,index) in data.groupInfo.groupIdList" :key="index" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/801c569079da4540990c1cc634186fdd.png" alt="" style="width: 90rpx;height: 90rpx;border-radius: 90rpx;margin: 0 auto;display: block;" /> <view class="" @tap="goDetail(item)" v-for="(item,index) in data.groupInfo.groupIdList" :key="index" style="width: 90rpx;height: 90rpx;margin: 0 auto;position: relative;">
<view style="z-index: 99;position: absolute;top:0;width: 90rpx;height: 90rpx;border-radius: 90rpx;border:4rpx solid #48D1CC"></view>
<view style="">
<img src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/801c569079da4540990c1cc634186fdd.png" alt="" style="width: 90rpx;height: 90rpx;border-radius: 90rpx;display: block;" />
</view>
<view style="background: #fff;position: absolute;bottom: 6rpx;width: 100%;height: 24rpx;font-size: 20rpx;line-height: 24rpx;text-align: center;">
{{item | lastFour}}
</view>
</view>
</view> </view>
<view v-if="(data.groupInfo.targetMembers - data.groupInfo.currentMembers) > 0" class="kaituan22"> <view v-if="(data.groupInfo.targetMembers - data.groupInfo.currentMembers) > 0" class="kaituan22">
<view class="weipincheng"> <view class="weipincheng">
@ -167,7 +177,7 @@
</view> </view>
</view> </view>
</view> </view>
<view style="height: 50px;line-height: 50px;text-align: center;font-weight: 700;"> <view style="height: 100rpx;line-height: 100rpx;text-align: center;font-weight: 700;">
点击头像可查看拼团订单详情 点击头像可查看拼团订单详情
</view> </view>
</view> </view>
@ -193,6 +203,9 @@
const minutes = date.getMinutes().toString().padStart(2, '0'); const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0'); const seconds = date.getSeconds().toString().padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
},
lastFour(str){
return str.slice(-4);
} }
}, },
onShow() { onShow() {
@ -338,27 +351,27 @@
.bottom{ .bottom{
position: fixed; position: fixed;
bottom: 0; bottom: 0;
height: 90px; height: 180rpx;
width: 100%; width: 100%;
background: #fff; background: #fff;
padding: 0 10px; padding: 0 20rpx;
} }
.btn{ .btn{
height: 25px; height: 50rpx;
width: 65px; width: 130rpx;
line-height: 25px; line-height: 50rpx;
background: linear-gradient(90deg, #e3ff96, #a6ffea); background: linear-gradient(90deg, #e3ff96, #a6ffea);
text-align: center; text-align: center;
border-radius: 7px; border-radius: 14rpx;
font-weight: 700; font-weight: 700;
float: right; float: right;
margin-left: 10px; margin-left: 20rpx;
} }
.group-content{ .group-content{
background: #fff; background: #fff;
width: 300px; width: 300px;
height: auto; height: auto;
border-radius: 10px; border-radius: 20rpx;
} }
.weipincheng { .weipincheng {
width: 90rpx; width: 90rpx;

16
package2/shop/shopOrderList.vue

@ -52,10 +52,10 @@
</view> </view>
</view> </view>
</view> </view>
<view style="height: 40px;border-top: 1px solid #eee;display: flex;"> <view style="height: 80rpx;border-top: 1px solid #eee;display: flex;">
<view v-if="item.orderType != 1" style="margin: 10px 0;background: linear-gradient(90deg, #FF4500, #FFA07A);width: 20px;height: 20px;line-height: 20px;text-align: center;border-radius: 5px;color: #fff;"></view> <view v-if="item.orderType != 1" style="margin: 20rpx 0;background: linear-gradient(90deg, #FF4500, #FFA07A);width: 40rpx;height: 40rpx;line-height: 40rpx;text-align: center;border-radius: 10rpx;color: #fff;"></view>
<view style="flex: 1;"></view> <view style="flex: 1;"></view>
<view @tap.stop="mealServing(item)" v-if="currentIndex == 13" class="btn" style="margin: 5px 0 0 10px;"> <view @tap.stop="mealServing(item)" v-if="currentIndex == 13" class="btn" style="margin: 10rpx 0 0 20rpx;">
已出餐 已出餐
</view> </view>
</view> </view>
@ -365,12 +365,12 @@
} }
.btn{ .btn{
background: linear-gradient(90deg, rgba(227, 255, 150, 1), rgba(166, 255, 234, 1)); background: linear-gradient(90deg, rgba(227, 255, 150, 1), rgba(166, 255, 234, 1));
padding:0 5px; padding:0 10rpx;
height: 25px; height: 50rpx;
border-radius: 7px; border-radius: 14rpx;
line-height: 25px; line-height: 50rpx;
text-align: center; text-align: center;
font-weight: 700; font-weight: 700;
margin-top: 10px; margin-top: 20rpx;
} }
</style> </style>

2
package2/shop/shopSettlementDetail.vue

@ -13,7 +13,7 @@
</view> </view>
<view class="content"> <view class="content">
<view class="box1"> <view class="box1">
<view style="font-size: 14px;font-weight: 700;margin-bottom: 10px;"> <view style="font-size: 28rpx;font-weight: 700;margin-bottom: 20rpx;">
2026-04-09 2026-04-09
</view> </view>
<view style="display: flex;font-weight: 700;"> <view style="display: flex;font-weight: 700;">

Loading…
Cancel
Save