'取消订单'

This commit is contained in:
unknown 2025-10-26 22:20:33 +08:00
parent 0dc0682754
commit dffebe5f02
53 changed files with 63292 additions and 45 deletions

239
components/appointTime.vue Normal file
View File

@ -0,0 +1,239 @@
<template>
<view class="content">
<u-popup :show="dateShow" @open="open" :round="30">
<view class="popBox">
<view class="flex-between" style="padding: 0 49rpx;">
<text class="cancleTitle">预约上门时间</text>
<u-icon name="close" color="#333333" size="16" bold @click="close"></u-icon>
</view>
<view class="tipLabel">请确保您与客户联系确认过上门服务时间哦~</view>
<view class="flex-between">
<view class="leftBox">
<view @click="leftClick(index)" class="leftEle flex-center" :class="{checkLeft: leftIndex==index}" v-for="(item,index) in yuyue_time[0]">
{{item}}
</view>
</view>
<view class="rightBox">
<view @click="rightClick(index)" class="rightEle" v-for="(item,index) in rightList">
{{item}}
</view>
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default {
components: { },
data() {
return {
useraddress:{},
id:0,
xieyi:'',
address_id:0,
weight:-1 ,
typeinfo:'',
detail:[],
remark:'',
weightlist:[],
index:[0,0],
timeflag:'',
yuyue_time:[],
dateShow: false,
leftIndex: 0,
rightList: []
}
},
onShow() {
this.getdata()
let user_address = uni.getStorageSync('user_address');
if (user_address) {
this.useraddress = user_address;
this.address_id = user_address.id;
uni.removeStorageSync('user_address');
}
},
onHide() {
},
mounted(){
console.log('ddddddddddff')
this.getdata()
},
onLoad(options) {
console.log('dddddddddd')
this.id = options.id;
this.getdata()
var token = uni.getStorageSync('userToken');
if (token) {
this.userDefaultaddress();
}
},
onReachBottom (){
},
methods: {
open(){
this.dateShow = true;
},
close(){
this.dateShow = false;
},
leftClick(num){
this.leftIndex = num
// let arr = this.rightList
// this.rightList = []
// setTimeout(()=>{
// this.rightList = arr
// },50)
},
rightClick(index){
// this.$emit('checkTime',{
// date:this.yuyue_time[0][this.leftIndex],
// time: this.rightList[index]
// })
this.$emit('checkTime',this.yuyue_time[0][this.leftIndex]+'-'+this.rightList[index])
this.dateShow = false
},
userDefaultaddress() {
this.$api.userDefaultAddress({}, res => {
if (res.code ==1) {
if(res.data){
this.useraddress = res.data;
this.address_id = this.useraddress.id;
}
}
});
},
goAddress() {
var token = uni.getStorageSync('userToken');
if (!token) {
uni.navigateTo({
url: '/pages/login/authorize'
});
}else{
uni.navigateTo({
url: '/pages/address/list?type=order'
});
}
},
toshow() {
this.$refs.lvvpopref.show();
},
toclose() {
this.$refs.lvvpopref.close();
},
changeWeight(e){
this.weight=e;console.log(e);
},
bindPickerChange(e) {
this.index = e.detail.value
let left = e.detail.value[0]
let right = e.detail.value[1]
if(this.yuyue_time[1].length ==0){
this.timeflag = this.yuyue_time[0][left]
}else{
this.timeflag = this.yuyue_time[0][left] +'-'+this.yuyue_time[1][right]
}
},
getdata(){
let data = {
id:this.id
}
this.$api.typeinit(data,res=>{
if(res.code == '1'){
this.yuyue_time = res.data.yuyue_time
this.rightList = res.data.yuyue_time[1]
this.typeinfo= res.data.typeinfo
this.weightlist= res.data.weight
this.detail= res.data.detail
this.xieyi=res.data.xieyi
}
})
},
createOrder(){
if(this.weight =='-1'){
uni.showToast({ icon: "none", title: '请选择预约重量' })
return false;
}if(this.address_id ==0 || !this.address_id ){
uni.showToast({ icon: "none", title: '请选择回收地址' })
return false;
} if(this.timeflag ==''){
uni.showToast({ icon: "none", title: '请选择回收时间' })
return false;
}
let data = {
id:this.id,
order_time:this.timeflag,
weight:this.weightlist[this.weight],
address_id:this.address_id,
remark:this.remark,
}
this.$api.addorder(data,res=>{
uni.showToast({
title: res.msg,
icon: 'none'
})
if(res.code == '1'){
setTimeout(function() {
uni.switchTab({
url: '/pages/order/order'
})
}, 1500)
} else {
}
})
},
}
}
</script>
<style lang="scss">
page {
background: #eee;
}
.popBox{
padding: 58rpx 0 0;
}
.tipLabel{
font-weight: 400;
font-size: 24rpx;
color: #999999;
padding: 0 49rpx;
margin-top: 10rpx;
margin-bottom: 20rpx;
}
.leftBox{
width: 250rpx;
.leftEle{
width: 100%;
height: 120rpx;
background: #F1F1F1;
font-weight: 500;
font-size: 30rpx;
color: #000000;
}
}
.rightBox{
flex: 1;
height: 720rpx;
overflow: auto;
.rightEle{
width: 100%;
height: 120rpx;
line-height: 120rpx;
padding-left: 88rpx;
}
}
.checkLeft{
background: #fff!important;
}
</style>

View File

@ -43,7 +43,46 @@ const post = (url, data, returndata) => {
});
}
const upload = (url, data, returndata) => {
console.log(data)
var token =uni.getStorageSync('userToken');
uni.uploadFile({
url: api_url + url+"?token="+token,
filePath: data,
name: "file",
// data: data.formData,
success: (response) => {
const result = response.data;
if (result.code == 401) {
uni.removeStorageSync('userToken');
uni.showToast({
title: result.msg,
icon: 'none'
})
setTimeout(function() {
uni.navigateTo({
url: '/pages/login/login'
})
}, 1000)
}
console.log(result,'kkkkkkkkk')
returndata(JSON.parse(result));
},
fail: (error) => {
uni.showLoading({
title: '网络错误'
});
uni.hideLoading();
if (error && error.response) {
uni.showToast({ title: error.response , icon: 'none' })
} else {
}
},
});
}
@ -103,3 +142,4 @@ export const applyCertification = (data, callback) => post('api/recover/person/a
export const checkPayPassword = (data, callback) => post('api/recover/person/checkPayPassword', data, callback);
export const verifyPayPassword = (data, callback) => post('api/recover/person/verifyPayPassword', data, callback);
export const priceList = (data, callback) => post('api/recover/personmoneylog/index', data, callback);
export const uploadImg = (data, callback) => upload('api/feedback/upload', data, callback);

View File

@ -10,7 +10,7 @@
<view class="checkBox">
<image v-if="cancleType==item.id" @click="selecCancle(0)"
:src="path+'/assets/img/icon/selected.png'" class="checkIcon"></image>
<image v-else @click="selecCancle(item.id)" :src="path+'/assets/img/icon/noSelected.png'"
<image v-else @click="selecCancle(item.id,item.name)" :src="path+'/assets/img/icon/noSelected.png'"
class="checkIcon"></image>
<view class="checkText" :class="{checkEle:cancleType==item.id}">
{{item.name}}
@ -30,7 +30,7 @@
</view>
<view class="flex-around" style="margin-top: 20rpx;">
<view class="cancleBtn flex-center" @click="close">取消</view>
<view class="conformBtn flex-center">确认</view>
<view class="conformBtn flex-center" @click="conform2">确认</view>
</view>
</view>
</u-popup>
@ -77,7 +77,9 @@
id: 7,
name: '其他'
}
]
],
imgList: [],
reasonName: ''
}
},
onShow() {
@ -92,9 +94,23 @@
},
onReachBottom() {},
methods: {
selecCancle(id) {
conform2(){
let data = {
id: this.cancleType,
name: this.reasonName
}
console.log('dsss')
if(this.cancleType == 4){
data.list = this.imgList;
this.$emit('cancleReason', data)
}else{
this.$emit('cancleReason', data)
}
},
selecCancle(id,name) {
console.log('ddddddd')
this.cancleType = id;
this.reasonName = name
},
open(){
@ -135,15 +151,17 @@
},
uploadFilePromise(url) {
console.log(url, 'dfff')
let _this = this;
return new Promise((resolve, reject) => {
this.$api.uploadImg(url,res=>{
_this.$api.uploadImg(url,res=>{
console.log(res,'=====')
if(res.code == '1'){
setTimeout(() => {
resolve(res.data.data);
}, 1000);
// resolve(res.data);
this.imgList= this.imgList.concat([res.data.full_url])
this.imgList= this.imgList.concat([res.data.url])
// this.$emit('uploadImg',this.imgList)
console.log(res.data, this.imgList, '-----------')
}else{
uni.showToast({ title: res.msg , icon: 'fail' })

View File

@ -89,7 +89,7 @@
<image src="/static/img/39.png" class="userImg"></image>
<view>{{item.accept_name}}</view>
</view>
<view class="userBtn flex-center">
<view class="userBtn flex-center" @click.stop="setorder(item.id)">
抢单
</view>
</view>
@ -109,7 +109,7 @@
</view>
<view style="height: 195rpx;"></view>
<!-- {{recycleList}} -->
<view class="orderBox" v-for="item in recycleList" @click="goDetail(item.id)">
<view class="orderBox" v-show="item.status==tabCur || tabCur=='0'" v-for="item in recycleList" @click="goDetail(item.id)">
<view class="flex-between">
<view class="flex-center">
<view class="timeLabel">36分钟内</view>
@ -154,29 +154,33 @@
</view>
<view class="lineEle"></view>
<view class="flex-between userBox">
<!-- <view class="flex-center statusText1">
期望时间(10:17)
</view> -->
<view class="flex-center statusText1">
<view @click="moreShow=!moreShow">更多操作</view>
<view class="flex-center statusText1" v-show="item.status==7">
期望时间{{item.order_time_text}}
</view>
<view class="flex-center statusText1" v-show="item.status==2">
<view @click.stop="moreShow=!moreShow">更多操作</view>
<view class="floatBtnBox" v-show="moreShow">
<view class="floatBtnEle" @click="cancleClickOrder">取消订单</view>
<view class="floatBtnEle" @click.stop="cancleClickOrder(item.id)">取消订单</view>
<view class="btnLine"></view>
<view class="floatBtnEle" @click="changeClickOrder">改派订单</view>
<view class="floatBtnEle" @click.stop="changeClickOrder">改派订单</view>
</view>
</view>
<view class="flex-center">
<view class="userBtn2 flex-center">
<view @click.stop="updateTime(item.id)" v-show="item.status==2" class="userBtn2 flex-center">
修改预约
</view>
<view class="userBtn flex-center">
抢单
<view @click.stop="signIn(item.id)" v-show="item.status==2" class="userBtn flex-center">
上门签到
</view>
<view v-show="item.status==7" class="userBtn flex-center" @click.stop="selectTime(item.id)">
预约上门
</view>
</view>
</view>
</view>
</view>
<appointTime ref="timeRef" @checkTime="checkTime"></appointTime>
<!-- <view class='pinlei' >
<view class='pinlei-title' >请选择回收品类</view>
</view>
@ -323,7 +327,7 @@
</view>
</view>
</u-popup>
<cancleOrder :cancleShow="cancleShow" @closeCancle="cancleShow=false"></cancleOrder>
<cancleOrder @cancleReason="cancleReason" :cancleShow="cancleShow" @closeCancle="cancleShow=false"></cancleOrder>
<custom-tab-bar :current-page="0" />
</view>
</template>
@ -331,6 +335,7 @@
<script>
import CustomTabBar from '@/components/CustomTabBar.vue';
import cancleOrder from './cancleOrder.vue';
import appointTime from '@/components/appointTime.vue';
export default {
data() {
return {
@ -368,7 +373,7 @@
},
{
id: 3,
name: '待服务'
name: '已上门'
},
{
id: 4,
@ -381,6 +386,10 @@
{
id: 6,
name: '已取消'
},
{
id: 7,
name: '已接单'
}
],
tabCur: 0,
@ -394,12 +403,15 @@
pop3Show: false,
pop4Show: false,
notesText: '',
moreShow: false
moreShow: false,
orderId: '',
statusToast: ''
}
},
components: {
CustomTabBar,
cancleOrder
cancleOrder,
appointTime
},
computed: {
countTime: function(){
@ -428,14 +440,16 @@
});
// this.getdata()
// this.config()
this.recycleOrderList()
this.qiangdanlist()
},
onHide() {
},
onLoad() {
// this.getdata()
// this.getquestion()
this.recycleOrderList()
this.qiangdanlist()
// this.recycleOrderList()
// this.qiangdanlist()
},
onShareAppMessage(res) {
if (res.from === 'button') {
@ -448,12 +462,128 @@
onReachBottom (){
},
methods: {
cancleReason(obj){
console.log('ddd')
let data = {
status: 6,
order_id: this.orderId,
cancel_reason: obj.name
}
if(obj.id == 4){
data.cancel_image = obj.list
}
console.log(data,'jjjjjjjjj')
this.$api.cancelorder(data,res=>{
if(res.code == '1'){
uni.showToast({ title: this.statusToast , icon: 'success' })
this.recycleOrderList()
this.cancleShow = false
setTimeout(()=>{
this.menuNum = 2
this.tabCur = 6;
},2000)
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
},
signIn(id){
let _this = this;
let data = {
status: 3,
order_id: id
}
uni.getLocation({
type: 'wgs84',
geocode: true,
success: function (res) {
console.log('当前位置的经度:' + JSON.stringify(res));
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
data.checkin_latitude = res.latitude
data.checkin_longitude = res.longitude
_this.$api.setorder(data,res=>{
if(res.code == '1'){
_this.tabCur = 3;
uni.showToast({ title: '签到成功' , icon: 'success' })
_this.recycleOrderList()
setTimeout(()=>{
_this.menuNum = 2
},2000)
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
}
});
// this.$api.setorder(data,res=>{
// if(res.code == '1'){
// this.tabCur = 2;
// uni.showToast({ title: this.statusToast , icon: 'success' })
// this.recycleOrderList()
// setTimeout(()=>{
// this.menuNum = 2
// },2000)
// }else{
// uni.showToast({ title: res.msg , icon: 'none' })
// }
// })
},
updateTime(id){
this.statusToast = '修改预约成功'
this.orderId = id
this.$refs.timeRef.open()
},
selectTime(id){
this.statusToast = '预约成功'
this.orderId = id
this.$refs.timeRef.open()
},
checkTime(val){
console.log(val,'kkkkkkk')
let data = {
status: 2,
order_id: this.orderId,
order_person_time: val
}
this.$api.setorder(data,res=>{
if(res.code == '1'){
this.tabCur = 2;
uni.showToast({ title: this.statusToast , icon: 'success' })
this.recycleOrderList()
setTimeout(()=>{
this.menuNum = 2
},2000)
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
},
setorder(id){
let data = {
status: 7,
order_id: id
}
this.$api.setorder(data,res=>{
if(res.code == '1'){
this.tabCur = 7;
uni.showToast({ title: '抢单成功' , icon: 'success' })
this.recycleOrderList()
setTimeout(()=>{
this.menuNum = 2
},2000)
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
},
goDetail(id){
uni.navigateTo({
url:'../order/detail?id=' + id
})
},
cancleClickOrder(){
cancleClickOrder(id){
this.orderId = id
this.cancleShow = true
this.moreShow = false
},
@ -464,7 +594,7 @@
selectTab(id){
this.page=1
this.tabCur = id
this.recycleList = []
// this.recycleList = []
},
recycleOrderList(){
console.log('fffffffff')
@ -977,8 +1107,11 @@
z-index: 999;
padding: 10rpx 10rpx;
top: calc(207rpx + var(--status-bar-height));
overflow: auto;
}
.navItem{
width: 116rpx;
flex-shrink:0;
background: #FFF;
border-radius: 10rpx;
border: 1px solid #FFF;
@ -986,6 +1119,7 @@
font-size: 28rpx;
color: #333333;
padding: 23rpx 15rpx;
margin: 0 10rpx;
}
.navItemCheck{
border: 1px solid #FFD39E;

View File

@ -31,9 +31,14 @@
</view>
</view>
<view class="specsBox">
<text class="specsText">规格</text>
<text>{{deelData(orderInfo.spec_value)}}</text>
<view class="specsBox flex-between">
<view class="flex-center">
<text class="specsText">规格</text>
<u-icon name="arrow-right" color="#282F38" size="10"></u-icon>
</view>
<view class="updateBtn">更改</view>
<!-- <text class="specsText">规格</text>
<text>{{deelData(orderInfo.spec_value)}}</text> -->
<!-- <text v-for="item in orderInfo.spec_value">{{item}}</text> -->
<!-- <u-icon name="arrow-right" color="#282F38" size="10"></u-icon> -->
</view>
@ -65,25 +70,58 @@
<view class="bgHead">
用户信息
</view>
<view class="infoBox">
<view style="border-bottom: 1px solid #DEDEDE;">
<view class="infoBox" style="padding-bottom: 29rpx;">
<view style="border-bottom: 1px solid #DEDEDE;padding-bottom: 30rpx;">
<text class="infoText1">{{orderInfo.accept_name}}</text>
<text class="infoText2">{{orderInfo.accept_mobile}}</text>
<view class="infoAddress" style="margin-top: 10rpx;">{{orderInfo.area_name}}{{orderInfo.accept_address}}</view>
</view>
</view>
<view class="funBtnBox flex-between">
<view class="leftBtn flex-center">
<image :src="path+'/assets/img/icon/phone2.png'" class="btnIcon"></image>
<text>联系用户</text>
</view>
<view class="rightBtn flex-center">
<image :src="path+'/assets/img/icon/send2.png'" class="btnIcon"></image>
<text>联系用户</text>
</view>
</view>
</view>
<view class="infoWrap" style="border-radius: 30rpx;background: #fff;margin-top: 20rpx;">
<view class="bgHead">
预约上门时间
<text class="infoTip2">待师傅与您确认哦~</text>
<view class="bgHead flex-between">
<view>
预约上门时间
<text class="start" style="line-height: 59rpx; color:#FF5F5F">*</text>
<text class="infoTip2">先与客户确认哦~</text>
</view>
<text class="recordLable">预约记录</text>
</view>
<view class="infoBox">
<view class="flex-between">
<!-- <view class="flex-between">
<text class="infoDate">请选择上门服务时间</text>
<view class="infoTip3">此项由师傅填写</view>
<u-icon name="arrow-right" color="#333333" size="13"></u-icon>
</view> -->
<!-- <view class="flex-between">
<view class="infoDate2 flex-center">
<view>今日</view>
<view style="margin-left: 28rpx;">09:00-11:00</view>
</view>
<view class="flex-center">
<view class="updateLable">更改</view>
<u-icon name="arrow-right" color="#333333" size="13"></u-icon>
</view>
</view> -->
<view class="flex-between">
<view class="infoDate3 flex-center">
<view>今日</view>
<view style="margin-left: 28rpx;">09:00-11:00</view>
</view>
<view class="flex-center">
<u-icon name="arrow-right" color="#333333" size="13"></u-icon>
</view>
</view>
<view class="infoAddress">期望上门时间{{orderInfo.order_time}}</view>
<view class="toDoorDate">期望上门时间{{orderInfo.order_time}}</view>
</view>
</view>
<view class="detailBox">
@ -186,11 +224,14 @@
</view>
</view>
</view> -->
<view style="height:100px"></view>
<view style="height:120px"></view>
</view>
<view class="button-bottom" v-if="orderInfo.status==1 || orderInfo.status==2">
<button class='btn btn-default flex-center' v-if="orderInfo.status == 1 || orderInfo.status == 2" @click="cancelOrder()">取消订单</button>
<view class="buttonEdit flex-center">修改订单</view>
<view class="tipBox">请先与客户确认上门服务时间哦~</view>
<view class="buttonEdit flex-center">改派</view>
<button class='btn flex-center' v-if="orderInfo.status == 1 || orderInfo.status == 2" @click="cancelOrder()">取消订单</button>
<view class="buttonType2 flex-center">上门签到</view>
<!-- <view class="buttonType2 flex-center">去付款</view> -->
</view>
</view>
</template>
@ -459,11 +500,12 @@ export default {
font-weight: 500;
font-size: 22rpx;
color: #333333;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
// display: flex;
// flex-direction: row;
// justify-content: flex-start;
// align-items: center;
padding-left: 33rpx;
padding-right: 25rpx;
.specsText{
font-weight: 500;
font-size: 22rpx;
@ -471,6 +513,17 @@ export default {
margin-right: 18rpx;
margin-top: -5rpx;
}
.updateBtn{
width: 91rpx;
height: 51rpx;
line-height: 51rpx;
background: #FFFFFF;
border-radius: 26rpx;
font-weight: 500;
font-size: 22rpx;
color: #FF8E3B;
text-align: center;
}
}
.countBox{
display: flex;
@ -583,4 +636,74 @@ export default {
margin-top: 41rpx;
}
}
.funBtnBox{
padding-bottom: 45rpx;
.leftBtn{
height: 58rpx;
width: 50%;
border-right: 1rpx solid #B0B0B0;;
}
.rightBtn{
height: 58rpx;
width: 50%;
}
.btnIcon{
width: 33rpx;
height: 33rpx;
margin-right: 15rpx;
}
}
.toDoorDate{
font-weight: 400;
font-size: 28rpx;
color: #999999;
margin-top: 40rpx;
}
.recordLable{
font-weight: 400;
font-size: 28rpx;
color: #333333;
margin-right: 30rpx;
}
.infoDate2{
font-weight: bold;
font-size: 32rpx;
color: #FF7F18;
}
.infoDate3{
font-weight: bold;
font-size: 32rpx;
color: #333333;
}
.updateLable{
font-weight: 400;
font-size: 28rpx;
color: #333333;
margin-right: 15rpx;
}
.buttonType2{
width: 224rpx;
height: 90rpx;
background: linear-gradient(45deg, #FFAD38 0%, #FF9023 100%);
border-radius: 45rpx;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
margin-left: 24rpx;
}
.tipBox{
position: absolute;
left: 0;
height: 60rpx;
width: 100%;
text-align: left;
line-height: 60rpx;
// bottom: 100rpx;
padding-left: 56rpx;
top: -60rpx;
font-weight: 400;
font-size: 26rpx;
color: #FF8C27;
background: #FFF8F3;
}
</style>

View File

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>

View File

@ -0,0 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/index/index","pages/mine/mine","pages/mine/edituser","pages/type/type","pages/login/authorize","pages/login/login","pages/address/list","pages/address/detail","pages/about/about","pages/person/add","pages/person/edit","pages/person/orderlist","pages/person/qiangdan","pages/person/orderinfo","pages/order/order","pages/order/detail","pages/exchange/createorder","pages/exchange/orderdetail","pages/exchange/orderlist","pages/exchange/goodslist","pages/exchange/goodsdetail","pages/mine/point_list","pages/question/index","pages/mine/orderConfig","pages/mine/priceRecord","pages/mine/apply","pages/feedback/index","pages/mine/editInfo","pages/order/pay"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app1","navigationBarBackgroundColor":"#fff","backgroundColor":"#fff"},"tabBar":{"color":"#333333","selectedColor":"#00a73b","backgroundColor":"#ffffff","list":[{"pagePath":"pages/index/index","text":"首页","iconPath":"static/img/home.png","selectedIconPath":"static/img/home_select.png"},{"pagePath":"pages/order/order","text":"订单","iconPath":"static/img/order.png","selectedIconPath":"static/img/order_select.png"},{"pagePath":"pages/mine/mine","text":"我的","iconPath":"static/img/mine.png","selectedIconPath":"static/img/mine1.png"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"回收小程序","compilerVersion":"4.76","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false,"navigationStyle":"custom"}},{"path":"/pages/mine/mine","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"我的","navigationStyle":"custom"}},{"path":"/pages/mine/edituser","meta":{},"window":{"navigationBarTitleText":"用户信息","enablePullDownRefresh":false}},{"path":"/pages/type/type","meta":{},"window":{"navigationBarTitleText":"回收预约","enablePullDownRefresh":false}},{"path":"/pages/login/authorize","meta":{},"window":{"navigationBarTitleText":"登录","enablePullDownRefresh":false}},{"path":"/pages/login/login","meta":{},"window":{"navigationBarTitleText":"登录","enablePullDownRefresh":false,"navigationStyle":"custom"}},{"path":"/pages/address/list","meta":{},"window":{"navigationBarTitleText":"地址管理"}},{"path":"/pages/address/detail","meta":{},"window":{"navigationBarTitleText":"修改地址"}},{"path":"/pages/about/about","meta":{},"window":{"navigationBarTitleText":"关于我们"}},{"path":"/pages/person/add","meta":{},"window":{"navigationBarTitleText":"成为回收员"}},{"path":"/pages/person/edit","meta":{},"window":{"navigationBarTitleText":"回收员信息"}},{"path":"/pages/person/orderlist","meta":{},"window":{"navigationBarTitleText":"回收员订单"}},{"path":"/pages/person/qiangdan","meta":{},"window":{"navigationBarTitleText":"抢单大厅","enablePullDownRefresh":false}},{"path":"/pages/person/orderinfo","meta":{},"window":{"navigationBarTitleText":"订单详情","enablePullDownRefresh":false}},{"path":"/pages/order/order","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"用户订单","enablePullDownRefresh":false}},{"path":"/pages/order/detail","meta":{},"window":{"navigationBarTitleText":"订单详情","enablePullDownRefresh":false}},{"path":"/pages/exchange/createorder","meta":{},"window":{"navigationBarTitleText":"兑换订单","enablePullDownRefresh":false}},{"path":"/pages/exchange/orderdetail","meta":{},"window":{"navigationBarTitleText":"订单详情","enablePullDownRefresh":false}},{"path":"/pages/exchange/orderlist","meta":{},"window":{"navigationBarTitleText":"订单列表","enablePullDownRefresh":false}},{"path":"/pages/exchange/goodslist","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/exchange/goodsdetail","meta":{},"window":{"navigationBarTitleText":"详情","enablePullDownRefresh":false}},{"path":"/pages/mine/point_list","meta":{},"window":{"navigationBarTitleText":"积分明细","enablePullDownRefresh":false}},{"path":"/pages/question/index","meta":{},"window":{"navigationBarTitleText":"常见问题","enablePullDownRefresh":false}},{"path":"/pages/mine/orderConfig","meta":{},"window":{"navigationBarTitleText":"接单设置","enablePullDownRefresh":false}},{"path":"/pages/mine/priceRecord","meta":{},"window":{"navigationBarTitleText":"资金记录","enablePullDownRefresh":false}},{"path":"/pages/mine/apply","meta":{},"window":{"navigationBarTitleText":"代理加盟","enablePullDownRefresh":false}},{"path":"/pages/feedback/index","meta":{},"window":{"navigationBarTitleText":"意见反馈","enablePullDownRefresh":false}},{"path":"/pages/mine/editInfo","meta":{},"window":{"navigationBarTitleText":"信息编辑","enablePullDownRefresh":false}},{"path":"/pages/order/pay","meta":{},"window":{"navigationBarTitleText":"支付订单","enablePullDownRefresh":false}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

View File

@ -0,0 +1,154 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ resolves.push(installedChunks[chunkId][0]);
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
/******/
/******/ // add entry modules from loaded chunk to deferred list
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ // run deferred modules when all chunks ready
/******/ return checkDeferredModules();
/******/ };
/******/ function checkDeferredModules() {
/******/ var result;
/******/ for(var i = 0; i < deferredModules.length; i++) {
/******/ var deferredModule = deferredModules[i];
/******/ var fulfilled = true;
/******/ for(var j = 1; j < deferredModule.length; j++) {
/******/ var depId = deferredModule[j];
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
/******/ }
/******/ if(fulfilled) {
/******/ deferredModules.splice(i--, 1);
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ }
/******/ }
/******/
/******/ return result;
/******/ }
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // Promise = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "app-config": 0
/******/ };
/******/
/******/ var deferredModules = [];
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/";
/******/
/******/ var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || [];
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ jsonpArray.push = webpackJsonpCallback;
/******/ jsonpArray = jsonpArray.slice();
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ // run deferred modules from other chunks
/******/ checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ([]);

39504
unpackage/dist/dev/app-plus/app-service.js vendored Normal file

File diff suppressed because one or more lines are too long

22660
unpackage/dist/dev/app-plus/app-view.js vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -0,0 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__0B7E65B","name":"回收小程序","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#fff"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.76","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#333333","selectedColor":"#00a73b","backgroundColor":"#ffffff","list":[{"pagePath":"pages/index/index","text":"首页","iconPath":"static/img/home.png","selectedIconPath":"static/img/home_select.png"},{"pagePath":"pages/order/order","text":"订单","iconPath":"static/img/order.png","selectedIconPath":"static/img/order_select.png"},{"pagePath":"pages/mine/mine","text":"我的","iconPath":"static/img/mine.png","selectedIconPath":"static/img/mine1.png"}],"borderStyle":"rgba(0,0,0,0.4)","height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}

View File

@ -0,0 +1,320 @@
body {
background-color: #FFFFFF;
font-size: 32upx;
}
view {
box-sizing: border-box;
}
image {
background-size: 100% 100%;
height: auto;
}
button {
height: auto;
border: none;
line-height: 2.55555556;
padding: 0 28upx;
}
input {
background: none;
padding: 0;
}
.fsz24 {
font-size: 24rpx !important;
}
.fsz26 {
font-size: 26rpx !important;
}
.fsz28 {
font-size: 28rpx !important;
}
.fsz30 {
font-size: 30rpx !important;
}
.fsz32 {
font-size: 32rpx !important;
}
.fsz34 {
font-size: 34rpx !important;
}
.fsz36 {
font-size: 36rpx !important;
}
.fsz38 {
font-size: 38rpx !important;
}
.fsz50 {
font-size: 50rpx !important;
}
.clearfix{
overflow: hidden;
}
.fl{
float: left;
}
.fr{
float: right;
}
.overflow1{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.overflow2{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.w1{
width: 94%;
margin: 0 auto;
margin-top: 30rpx;
}
.w{
width: 94%;
margin: 0 auto;
}
.none{
display: none;
}
.zanwu{
text-align: center;
font-size: 30rpx;
margin-top: 50%;
margin-bottom: 30%;
}
.width{
width: 30%;
margin-right: 5%;
}
.width:nth-child(3n){
margin-right: 0;
}
.bglv{background-color: #46b45d;}
.lv{color: #46b45d;}
.icon {
width: 50upx;
height: 50upx;
}
.btn {
display: inline-block;
box-sizing: border-box;
border-radius: 0;
font-size: 28upx;
transform: scale(1);
transition: all .5s;
}
.btn::after {
border: none;
}
.content-top {
margin-bottom: 116upx;
}.button-bottom {
background-color: #fff;
position: fixed;
bottom: 0;
height: 90upx;
width: 100%;
display: flex;
z-index: 66;
box-shadow: 0 0 10px #ccc;
}
.button-bottom .btn {
flex: 1;
}.navbar {
position: fixed;
top: 0;
/* #ifdef H5 */
top: 40px;
/* #endif */
left: 0;
width: 100%;
height: 106rpx;
background-color: #FFFFFF;
z-index: 9; display: flex;
justify-content: space-between;
display: flex;
-webkit-box-lines: multiple;
-moz-box-lines: multiple;
-o-box-lines: multiple; line-height: 48px;
justify-content: space-around;
-webkit-justify-content: space-around;
flex-wrap: wrap
}
.navbar .item {
border-top: 5rpx solid transparent;
border-bottom: 5rpx solid transparent;
font-size: 30rpx;
color: #999999;
}
.navbar .on {
border-bottom-color: #E93323;
color: #282828;
}
.img-grids {
overflow: hidden;
}
.hs-di {
position: relative;
display: flex;
}
.ro-text {
position: relative;
font-size: 24upx;
}
.little-img {
width: 140upx;
height: 140upx;
}
.zanwuimg{
width: 100%;
flex-direction: column;
display: flex;
align-items: center;
justify-content: center;
justify-items: center;
height: 70vh;
}
.zanwuimg image{width: 200rpx!important;}
.zanwuimg view{padding-bottom: 30rpx;
padding-top: 20rpx;
font-size: 28rpx;
color: #999999;}
.red-price {
color: red !important;
} .lidiv-ft {
display: flex;
align-items: center;
}
.right-img .lidiv-ft {
right: 8upx;
height: 50upx;
position: absolute;
}.hs-fttext {
font-size: 28upx;
float: right;
position: relative;
line-height: 50upx;
}
.gongli{color:#00a73b}
.hs_box {background-color: #fff;}
.hs-row {
padding: 20upx 26upx 20upx 0;
width: 724upx;
margin-left: 26upx;
border-bottom: 2upx solid #f3f3f3;
position: relative;
background-color: #fff;
color: #333;
display: flex;
min-height: 90upx;
align-items: center;
justify-content: space-between;
}
.hs-row-hd {
display: flex;
align-items: center;
font-size: 28upx;
position: relative;
}.hs-row-bd {
display: flex;
margin-left: 20upx;
min-height: 30upx;
overflow: hidden;
align-items: center;
padding-right: 50upx;
}.hs-hd-title {
display: inline-block;
position: relative;
}.hs-input {
display: inline-block;
float: left;
font-size: 26upx;
}
.btn-primary{ color: #333;
background-color: #fff;
padding: 0rpx 40rpx;
height: 90rpx;
line-height: 90rpx;
min-width: 150rpx;
border: none !important;
}
.fr {
float: right;
}
.btn-default{
border: 2rpx solid #949494;
color: #888;
background-color: #fff;
padding: 0rpx 20rpx;
height: 60rpx;
line-height: 60rpx;
min-width: 140rpx;margin-right: 10px;
text-align: center;
font-size: 22rpx;border-radius: 6px;}
.margin20 {
margin: 20upx 0;
}
.btn-success{
background-color: #00a65c;
color: #fff;
padding: 0rpx 40rpx;
height: 90rpx;
line-height: 90rpx;
min-width: 150rpx;
border: none !important;
}
.flex{display:flex}.mr8{margin-top:16rpx}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

1
unpackage/dist/dev/app-plus/view.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long