[新增]新增自定义tabbar组件

This commit is contained in:
唐明明
2020-12-30 10:16:26 +08:00
36 changed files with 2582 additions and 393 deletions

View File

@@ -153,8 +153,29 @@ const signed = (active_id) => req({
method: "POST"
})
// 获取项目订单
const orderList = (url, page) => req({
url: url,
data: {
page: page
}
})
//订单-详情
const getOrderInfo = (orderId) => req({
url: "crowdorders/" + orderId
})
// 退款售后详情
const getRefundInfo = (refundId) => req({
url: "refunds/" + refundId
})
// 退款进度查询
const getRefundLogsInfo = (refundId) => req({
url: "refunds/" + refundId + '/logs'
})
export default ({
@@ -178,4 +199,8 @@ export default ({
users, // 更多员工列表
userActives, //活动列表
signed, //活动签到
orderList, //获取项目订单
getOrderInfo, //根id 获取订单详情
getRefundInfo, //根id 获取退款详情
getRefundLogsInfo,//退款进度查询
})

View File

@@ -33,6 +33,11 @@
"pages/live/index",
"pages/ticket/goods/goods",
"pages/ticket/index",
"pages/user/companyMine/projectPay/projectPay",
"pages/user/companyMine/projectRefund/projectRefund",
"pages/user/companyMine/projectDetailFunds/projectDetailFunds",
"pages/user/companyMine/refundInfo/refundInfo",
"pages/user/companyMine/projectDetail/projectDetail",
"pages/home/index",
"pages/home/companyInfo/companyInfo",
"pages/home/noticeDetail/noticeDetail",

View File

@@ -34,7 +34,7 @@ Component({
*/
actives(){
if(this.data.has_more){
wx.$api.companyModule.actives('company',this.data.company_id,this.data.page).then(res=>{
wx.$api.companyModule.actives('company',wx.getStorageSync('company_id'),this.data.page).then(res=>{
console.log(res)
if(res.page.has_more){
this.setData({

View File

@@ -11,10 +11,10 @@ Component({
* 组件的初始数据
*/
data: {
lists:[],//列表
company_id:wx.getStorageSync('company_id'),
page:1,
has_more:true,
lists: [], //列表
company_id: wx.getStorageSync('company_id'),
page: 1,
has_more: true,
},
/**
@@ -24,34 +24,34 @@ Component({
/**
* 跳转到详情
*/
toUrl(e){
toUrl(e) {
wx.navigateTo({
url: '/pages/home/noticeDetail/noticeDetail?id='+e.currentTarget.dataset.id,
url: '/pages/home/noticeDetail/noticeDetail?id=' + e.currentTarget.dataset.id,
})
},
/**
* 企业活动列表
*/
actives(){
if(this.data.has_more){
wx.$api.companyModule.dynamics(this.data.company_id,this.data.page).then(res=>{
actives() {
if (this.data.has_more) {
wx.$api.companyModule.dynamics(wx.getStorageSync('company_id'), this.data.page).then(res => {
console.log(res)
if(res.page.has_more){
var lists = this.data.lists.concat(res.data);
if (res.page.has_more) {
this.setData({
has_more:true,
page:this.data.page+1,
})
}else{
this.setData({
has_more:false
})
}
var lists=this.data.lists.concat(res.data);
this.setData({
lists:lists
has_more: true,
page: this.data.page + 1,
})
} else {
this.setData({
has_more: false
})
}
this.setData({
lists: lists
})
}
})
}
}
}
})

View File

@@ -52,7 +52,7 @@ Component({
* 请求项目筹集分类接口
*/
crowdfundcategory(company_id){
wx.$api.companyModule.crowdfundcategory(company_id).then(res=>{
wx.$api.companyModule.crowdfundcategory(wx.getStorageSync('company_id')).then(res=>{
console.log(res)
this.setData({
categoryList:res,
@@ -67,7 +67,7 @@ Component({
*/
crowdfunds(){
if(this.data.has_more){
wx.$api.companyModule.crowdfunds(this.data.company_id,this.data.category_id,this.data.page).then(res=>{
wx.$api.companyModule.crowdfunds(wx.getStorageSync('company_id'),this.data.category_id,this.data.page).then(res=>{
console.log(res)
if(res.page.has_more){
this.setData({

View File

@@ -5,13 +5,13 @@ Page({
*/
data: {
selectMenuId: 0, //默认是企业信息0 视频1 活动2 项目筹集3
company_id: wx.getStorageSync('company_id'), //企业Id,
company_id: '', //企业Id,
info: '', //企业信息
loaded: false
},
onLoad(e) {},
onShow() {
this.company(wx.getStorageSync('company_id'))
onLoad(e) {
var that = this
that.company()
},
onUnload: function () {
wx.removeStorageSync('company_id')
@@ -55,19 +55,19 @@ Page({
/**
* 请求项目筹集分类接口
*/
company() {
company(id) {
wx.showLoading({
title: 'title',
mask: 'true'
})
wx.$api.companyModule.company(this.data.company_id, this.data.page).then(res => {
wx.$api.companyModule.company(wx.getStorageSync('company_id'), this.data.page).then(res => {
this.setData({
info: res,
loaded: true,
})
wx.hideLoading({})
}).catch(res => {
if(res.status_code=='404'){
if (res.status_code == '404') {
// this.company(wx.getStorageSync('company_id'))
}
})
@@ -86,7 +86,7 @@ Page({
*/
goMall(e) {
console.log('1111')
wx.navigateTo({
wx.switchTab({
url: '/pages/mall/index',
})
}

View File

@@ -78,7 +78,7 @@ Page({
*/
goCompany(e) {
wx.navigateTo({
url: '/pages/home/index' ,
url: '/pages/home/index?companyId='+e.currentTarget.dataset.id ,
})
wx.setStorageSync('company_id', e.currentTarget.dataset.id)
}

View File

@@ -5,23 +5,125 @@ Page({
* 页面的初始数据
*/
data: {
type: 0, //全部0 待付款1 待发货2 待收货3 退款/售后4
company_id:wx.getStorageSync('company_id')
state: 'index', //全部index 待付款unpaid 待发货 paid 待收货delive 退款/售后refund
lists: [], //列表
page: 1,
has_more: true,
},
onLoad() {
this.orderList();
},
/**
* 点击按钮触发事件
*/
menuSelect: function (e) {
console.log(e.currentTarget.dataset.id);
if (this.data.type != e.currentTarget.dataset.id) {
if (this.data.state != e.currentTarget.dataset.state) {
this.setData({
type: e.currentTarget.dataset.id
state: e.currentTarget.dataset.state,
page: 1,
lists: [],
has_more: true
})
this.orderList()
}
},
// 全部index 待付款 unpaid 待发货 paid 待收货 delive 退款/售后 refund
orderList() {
var url = 'crowdorders'
if (this.data.state == 'index') {
url = 'crowdorders'
} else if (this.data.state == 'unpaid') {
url = 'crowdorders/unpaid'
} else if (this.data.state == 'paid') {
url = 'crowdorders/paid'
} else if (this.data.state == 'delive') {
url = 'crowdorders/delivered '
} else if (this.data.state == 'refund') {
url = 'refunds/crowdfunds'
}
wx.$api.companyModule.orderList(url, this.data.page).then(res => {
console.log(res)
setTimeout(() => {
wx.hideLoading({})
}, 1000);
var lists = this.data.lists.concat(res.data)
if (res.page.has_more) {
this.setData({
has_more: res.page.has_more,
page: this.data.page + 1,
lists: lists
})
} else {
this.setData({
has_more: res.page.has_more,
lists: lists
})
}
})
},
// 触底加载更多
onReachBottom() {
if (this.data.has_more) {
this.orderList();
} else {
wx.showToast({
icon: 'none',
title: '没有更多',
})
}
},
/**
* 订单支付
*/
orderPay(e) {
let orderId = e.currentTarget.dataset.orderid
wx.navigateTo({
url: './projectPay/projectPay?orderid=' + orderId,
})
},
/**
* 取消订单
*/
orderDelete(e) {
wx.showModal({
title: '提示',
content: '是否确认取消订单',
success: res => {
if (res.confirm) {
wx.showLoading({
title: '取消中',
})
let orderId = e.currentTarget.dataset.orderid
wx.$api.order.cancel(orderId).then(res => {
// 获取列表
this.setData({
lists: [],
has_more: true,
page: 1
})
this.orderList()
})
}
}
})
},
/**
* 签收订单
*/
orderSign(e) {
let orderId = e.currentTarget.dataset.orderid
wx.$api.order.sign(orderId).then(res => {
// 获取列表
this.setData({
lists: [],
has_more: true,
page: 1
})
this.orderList()
})
},
})

View File

@@ -1,36 +1,57 @@
<!-- 滚动菜单 -->
<view class="scroll_menu">
<scroll-view class="scroll-view_H" scroll-x="true" bindscroll="scroll" style="width: 100%">
<view id="menu1" catchtap="menuSelect" data-id='0' class="scroll-view-item_H {{type==0?'scroll_view_select':''}}">全部
<view id="menu1" catchtap="menuSelect" data-state="index"
class="scroll-view-item_H {{state=='index'?'scroll_view_select':''}}">全部
</view>
<view id="menu2" catchtap="menuSelect" data-id='1' class="scroll-view-item_H {{type==1?'scroll_view_select':''}}">
<view id="menu2" catchtap="menuSelect" data-state="unpaid"
class="scroll-view-item_H {{state=='unpaid'?'scroll_view_select':''}}">
待付款</view>
<view id="menu3" catchtap="menuSelect" data-id='2' class="scroll-view-item_H {{type==2?'scroll_view_select':''}}">
<view id="menu3" catchtap="menuSelect" data-state="paid"
class="scroll-view-item_H {{state=='paid'?'scroll_view_select':''}}">
待发货</view>
<view id="menu4" catchtap="menuSelect" data-id='3' class="scroll-view-item_H {{type==3?'scroll_view_select':''}}">
<view id="menu4" catchtap="menuSelect" data-state="delive"
class="scroll-view-item_H {{state=='delive'?'scroll_view_select':''}}">
待收货</view>
<view id="menu4" catchtap="menuSelect" data-id='4' class="scroll-view-item_H {{type==4?'scroll_view_select':''}}">
<view id="menu4" catchtap="menuSelect" data-state="refund"
class="scroll-view-item_H {{state=='refund'?'scroll_view_select':''}}">
退款/售后</view>
</scroll-view>
</view>
<!-- 列表 -->
<view class="lists">
<view class="top">
<view class="ctime">2020-11-22 13:30:00 <span>待付款</span> </view>
<view class="content">
<image src="/static/images/company_bg4.png" mode="aspectFill"></image>
<view style="margin-left:20rpx;flex:1;">
<view class="title"><span class="title1">亲自跑到义乌,待会今年就新鲜上线亲自跑到义乌,待会今年就新鲜上线</span><span>¥60.00</span></view>
<view class="title"><span class="title1">小饼干</span><span>*4</span></view>
<block wx:if='{{lists.length>0}}'>
<view class="lists" wx:for='{{lists}}' :key='{{index}}'>
<view class="top">
<view class="ctime">{{item.created_at}} <span>{{item.state_text}}</span> </view>
<view class="content">
<image src="{{item.items[0].cover}}" mode="aspectFill"></image>
<view style="margin-left:20rpx;flex:1;">
<view class="title"><span class="title1">{{item.items[0].title}}</span><span
class="num">¥{{item.items[0].price}}</span>
</view>
<view class="title mt10">{{item.items[0].value}} x {{item.items[0].qty}}</view>
</view>
</view>
<view class="total">
<view>共<span class="num"> {{item.items[0].qty}} </span>件商品 实付:¥<span class="num"> {{item.items[0].price}}
</span></view>
<view class="time">项目结束时间:{{item.crowdfund_end_at}}</view>
</view>
</view>
<view>
<view>共<span>1</span>件商品 实付:<span>¥202.00</span></view>
<view>项目结束时间2020-10-29</view>
<view class="bottom">
<view class="cancel" wx:if="{{item.canCancel == true}}" data-orderid="{{item.orderid}}" bindtap="orderDelete">取消订单
</view>
<view class="pay" wx:if="{{item.canPay == true}}" data-orderid="{{item.orderid}}" bindtap="orderPay">立即付款</view>
<view class="sign" wx:if="{{item.canSign == true}}" data-orderid="{{item.orderid}}" bindtap="orderSign">立即签收
</view>
<navigator class="detail" wx:if='{{state!="refund"}}' hover-class="none" url="./projectDetail/projectDetail?orderId={{item.orderid}}">订单详情</navigator>
<navigator class="detail" wx:if='{{state=="refund"}}' hover-class="none" url="./projectDetailFunds/projectDetailFunds?refundId={{item.refund_id}}">订单详情(退)</navigator>
<navigator class="refund" wx:if="{{item.canRefund == true}}" url="/pages/user/companyMine/projectRefund/projectRefund?orderId={{item.orderid}}">申请退款</navigator>
</view>
</view>
<view class="bottom">
<span>取消订单</span>
<span>立即付款</span>
</view>
</block>
<view wx:else class="pack-center pages-hint">
<image src="/static/images/no_list.png"></image>
<view>暂无订单</view>
</view>

View File

@@ -1,9 +1,17 @@
page {
padding-top: 100rpx;
}
/* 滚动菜单 */
.scroll_menu {
background-color: #fff;
box-shadow: 0 0rpx 10px rgba(0, 0, 0, 0.1);
font-size: 28rpx;
margin-bottom: 20rpx;
position: fixed;
top: 0;
left: 0;
width: 100%;
}
.scroll-view_H {
@@ -34,6 +42,7 @@
/* 列表 */
.lists {
background-color: #fff;
margin-top: 10rpx;
}
.top {
@@ -42,8 +51,8 @@
}
.top image {
width: 150rpx;
height: 150rpx;
width: 90rpx;
height: 90rpx;
border-radius: 10rpx;
}
@@ -55,6 +64,8 @@
align-items: center;
box-sizing: border-box;
padding: 20rpx 30rpx;
font-size: 26rpx;
color: #999;
}
.top .ctime span {
@@ -85,3 +96,85 @@
white-space: nowrap;
width: 400rpx;
}
.top .mt10 {
margin-top: 10rpx;
}
.top .title .num {
font-size: 32rpx;
color: #333;
font-weight: 600;
}
.total {
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
box-sizing: border-box;
font-size: 24rpx;
padding: 10rpx 30rpx;
border-bottom: solid 1rpx #f9f9f9;
}
.total .num {
color: #000;
font-weight: 600;
}
.total .time {
color: #999;
font-weight: normal;
margin-top: 10rpx;
}
.bottom {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
box-sizing: border-box;
padding: 20rpx 30rpx;
font-size: 26rpx;
}
.bottom .pay {
background-color: #378fff;
color: #fff;
padding: 10rpx 30rpx;
border-radius: 50rpx;
margin-left: 10rpx;
}
.bottom .cancel {
background-color: #f9f9f9;
color: #333;
padding: 10rpx 30rpx;
border-radius: 50rpx;
margin-left: 10rpx;
}
.bottom .sign {
background-color: #3677a5;
color: #fff;
padding: 10rpx 30rpx;
margin-left: 10rpx;
border-radius: 50rpx;
}
.bottom .refund {
background-color: #227586;
color: #fff;
padding: 10rpx 30rpx;
margin-left: 10rpx;
border-radius: 50rpx;
}
.bottom .detail {
background-color: #246cb6;
color: #fff;
padding: 10rpx 30rpx;
margin-left: 10rpx;
border-radius: 50rpx;
}

View File

@@ -1,108 +0,0 @@
/*
* 手太欠
* 企获客商城
*/
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
stateType : 'all', //订单类型
orderArr : [], //订单列表
},
/**
* 生命周期函数--监听页面加载
*/
onLoad (options) {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
if(wx.getStorageSync("token") == ""){
wx.navigateTo({
url: '/pages/login/login'
})
return
}
// 获取订单列表
this.orderInfo()
},
/**
* 订单tab
*/
orderTab(e){
this.setData({
stateType: e.currentTarget.dataset.state
})
this.orderInfo()
},
/**
* 订单列表
*/
orderInfo(){
let stateType = this.data.stateType
if(stateType == 'all') {
wx.$api.order.index().then(res=>{
this.setData({
orderArr : res.data
})
})
} else if(stateType == 'unpaid') {
wx.$api.order.unpaid().then(res=>{
this.setData({
orderArr : res.data
})
})
} else if(stateType == 'paid') {
wx.$api.order.paid().then(res=>{
this.setData({
orderArr : res.data
})
})
} else if(stateType == 'delive') {
wx.$api.order.delive().then(res=>{
this.setData({
orderArr : res.data
})
})
} else if(stateType == 'refunds') {
wx.$api.order.refund().then(res=>{
this.setData({
orderArr : res.data
})
})
}
},
/**
* 订单支付
*/
orderPay(e){
let orderId = e.currentTarget.dataset.orderid
wx.navigateTo({
url: '/pages/mall/mall_pay/mall_pay?orderid=' + orderId,
})
},
/**
* 取消订单
*/
orderDelete(e) {
let orderId = e.currentTarget.dataset.orderid
wx.$api.orders.cancel(orderId).then(res=>{
// 获取列表
this.orderInfo()
})
},
})

View File

@@ -1,54 +0,0 @@
<!-- 订单tab -->
<view class="order-tab">
<view class="order-tab-item {{stateType == 'all' ? 'active':''}}" data-state="all" bindtap="orderTab">
全部
</view>
<view class="order-tab-item {{stateType == 'unpaid' ? 'active':''}}" data-state="unpaid" bindtap="orderTab">
待支付
</view>
<view class="order-tab-item {{stateType == 'paid' ? 'active':''}}" data-state="paid" bindtap="orderTab">
待发货
</view>
<view class="order-tab-item {{stateType == 'delive' ? 'active':''}}" data-state="delive" bindtap="orderTab">
待收货
</view>
<view class="order-tab-item {{stateType == 'refunds' ? 'active':''}}" data-state="refunds" bindtap="orderTab">
已完成 <!-- 退款 -->
</view>
</view>
<view class="order-content" wx:if="{{orderArr != ''}}">
<view class="order-list" wx:for="{{orderArr}}" wx:key="orderArr" wx:for-item="goods">
<view class="order-company">
<view class="order-company-name">
<image class="order-logo" src="/static/mall_icon/mallDetails_user.png"></image>
{{goods.orderid}}
<image class="order-arrow" src="/static/mall_icon/mall_arrow.png"></image>
</view>
<view class="order-company-state">
{{goods.state_text}}
</view>
</view>
<view class="order-goods" wx:for="{{goods.items}}" wx:key="items">
<image class="order-goods-img" src="{{item.cover}}" mode="aspectFill"></image>
<view class="order-goods-text">
<view class="nowrap-multi order-goods-name">{{item.title}}</view>
<view class="order-goods-price">
<text>¥{{item.price}}</text>
共{{item.qty}}件
</view>
</view>
</view>
<view class="order-footer">
<view class="order-footer-btn order-footer-btn-back" wx:if="{{goods.canPay == true}}" data-orderid="{{goods.orderid}}"
bindtap="orderPay">立即支付</view>
<view class="order-footer-btn" wx:if="{{goods.canCancel == true}}" data-orderid="{{goods.orderid}}"
bindtap="orderDelete">取消订单</view>
<navigator hover-class="none" url="/pages/mall/mall_order_data/mall_order_data?orderId={{goods.orderid}}" class="order-footer-btn">订单详情</navigator>
</view>
</view>
</view>
<view wx:else class="pack-center pages-hint">
<image src="/static/images/no_list.png"></image>
<view>暂无订单</view>
</view>

View File

@@ -1,154 +0,0 @@
page {
background-color: #eee;
}
/* 订单tab */
.order-tab{
position: fixed;
left: 0;
top: 0;
width: 100%;
display: flex;
height: 80rpx;
line-height: 80rpx;
z-index: 9;
background: white;
}
.order-tab-item{
font-size: 28rpx;
width: 20%;
text-align: center;
border-bottom: solid 2rpx #f7f7f7;
color: #464854;
background: white;
position: relative;
}
.order-tab-item:after {
position: absolute;
content: '';
left: calc(50% - 30rpx);
bottom: 0;
background-color: transparent;
width: 60rpx;
height: 8rpx;
border-radius: 50rpx;
color: #666666;
}
.order-tab-item.active{
color:#000;
font-weight: 600;
}
.order-tab-item.active:after {
background-color: #378fff;
}
/* 订单列表 */
.order-content{
border-bottom: solid 100rpx transparent;
padding: 80rpx 0 20rpx 0;
}
.order-list {
background-color: white;
margin: 30rpx 0;
}
.order-company {
display: flex;
line-height: 50rpx;
margin-bottom: 20rpx;
padding: 20rpx 30rpx;
box-sizing: border-box;
}
.order-company-name {
font-weight: 600;
flex: 1;
display: flex;
}
.order-logo {
width: 50rpx;
height: 50rpx;
margin-right: 20rpx;
}
.order-arrow {
width: 28rpx;
height: 28rpx;
margin: 10rpx 0 10rpx 20rpx;
}
.order-company-state {
color: #378fff;
}
.order-goods {
position: relative;
padding: 0 30rpx;
box-sizing: border-box;
}
.order-goods-img {
width: 160rpx;
height: 160rpx;
border-radius: 10rpx;
}
.order-goods-text {
position: absolute;
padding-left: 220rpx;
padding-right: 30rpx;
right: 0;
top: 0;
left: 0;
width: 100%;
box-sizing: border-box;
}
.order-goods-name {
height: 80rpx;
margin-bottom: 30rpx;
}
.order-goods-price {
display: flex;
font-size: 28rpx;
color: #999999;
}
.order-goods-price text {
flex: 1;
display: block;
font-size: 32rpx;
color: #000;
}
.order-footer {
border-top: 2rpx solid #eee;
margin-top: 20rpx;
padding: 30rpx;
overflow: hidden;
}
.order-footer-btn {
margin-left: 20rpx;
height: 60rpx;
line-height: 56rpx;
box-sizing: border-box;
border: solid 1rpx #dddddd;
padding: 0 20rpx;
font-size: 26rpx;
border-radius: 40rpx;
float: right;
}
.order-footer-btn-back {
border-color: #378fff;
color: #378fff;
}

View File

@@ -0,0 +1,136 @@
/*
* 手太欠
* 企获客商城
*/
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
logisticsPop: false, //物流弹出框状态
orderData: '', //商品详情
orderId: ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
orderId: options.orderId
})
this.orderData(options.orderId)
},
/**
* 订单详情
*/
orderData(orderId) {
wx.$api.companyModule.getOrderInfo(orderId).then(res => {
console.log(res)
this.setData({
orderData: res
})
})
},
/**
* 物流弹出
*/
logisticsShow() {
this.setData({
logisticsPop: !this.data.logisticsPop
})
},
/**
* 物流隐藏
*/
logisticsHide() {
this.setData({
logisticsPop: !this.data.logisticsPop
})
},
/**
* 返回订单
*/
orderRun() {
wx.navigateBack({
delta: 1,
})
},
/**
* 订单支付
*/
orderPay(e) {
let orderId = e.currentTarget.dataset.orderid
wx.navigateTo({
url: '../projectPay/projectPay?orderid=' + orderId,
})
},
/**
* 取消订单
*/
orderDelete(e) {
let orderId = e.currentTarget.dataset.orderid
wx.showModal({
title: '提示',
content: '是否确认取消订单',
success: res => {
if (res.confirm) {
wx.showLoading({
title: '取消中',
})
wx.$api.order.cancel(orderId).then(res => {
console.log(res);
wx.showToast({
title: '取消成功',
icon:'none',
duration:1000
})
setTimeout(() => {
this.orderData(this.data.orderId)
}, 1000);
})
}
}
})
},
/**
* 签收订单
*/
orderSign(e) {
let orderId = e.currentTarget.dataset.orderid
wx.showModal({
title: '提示',
content: '是否确认签收订单',
success: res => {
if (res.confirm) {
wx.showLoading({
title: '签收中',
})
wx.$api.order.sign(orderId).then(res => {
console.log(res);
wx.showToast({
title: '签收成功',
icon:'none',
duration:1000
})
setTimeout(() => {
this.orderData(this.data.orderId)
}, 1000);
})
}
}
})
},
})

View File

@@ -0,0 +1,6 @@
{
"usingComponents" : {},
"navigationBarTitleText" : "订单详情",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#378fff"
}

View File

@@ -0,0 +1,140 @@
<!-- 订单详情 -->
<view class="orderData">
<view class="orderBack">
<image src="/static/images/wl.png" mode="widthFix"></image>{{orderData.state_text}}
</view>
<view class="orderCont">
<view class="orderSite">
<view class="orderSite-laebl">
<image src="/static/mall_icon/mallAddress_00.png"></image>
<view class="orderSite-laeb-name">{{orderData.express.name}}<text>{{orderData.express.mobile}}</text>
</view>
</view>
<view class="orderSite-laebl">
<image src="/static/mall_icon/mallAddress_02.png"></image>
<view class="orderSite-laeb-address">{{orderData.express.address}}</view>
</view>
</view>
<view class="orderGoods">
<view class="top">
<view class="ctime">{{orderData.created_at}} <span>{{orderData.state_text}}</span> </view>
<view class="content">
<image src="{{orderData.items[0].cover}}" mode="aspectFill"></image>
<view style="margin-left:20rpx;flex:1;">
<view class="title"><span class="title1">{{orderData.items[0].title}}</span><span
class="num">¥{{orderData.items[0].price}}</span>
</view>
<view class="title mt10">{{orderData.items[0].value}} x {{orderData.items[0].qty}}</view>
</view>
</view>
<view class="total">
<view>共<span class="num"> {{orderData.items[0].qty}} </span>件商品 实付:¥<span class="num">
{{orderData.items[0].price}}
</span></view>
<view class="time">项目结束时间:{{orderData.crowdfund_end_at}}</view>
</view>
<view class="title pt10"><span class="title1">应付</span><span
class="num2">¥{{orderData.items[0].price}}</span>
</view>
<view class="title pt10"><span class="title1">实付</span><span
class="num2">¥{{orderData.items[0].price}}</span>
</view>
</view>
</view>
<view class="orderLabel">
<view class="title">订单详情</view>
<view class="order-input" wx:if='{{orderData.orderid}}'><label>订单编号:</label> <text>{{orderData.orderid}}</text> </view>
<view class="order-input" wx:if='{{orderData.created_at}}'><label>创建时间:</label> <text>{{orderData.created_at}}</text></view>
<view class="order-input" wx:if='{{orderData.paid_at}}'><label>支付时间:</label> <text>{{orderData.paid_at}}</text></view>
<view class="order-input" wx:if='{{orderData.deliver_at}}'><label>发货时间:</label> <text>{{orderData.deliver_at}}</text></view>
<view class="order-input" wx:if='{{orderData.receive_at}}'><label>签收时间:</label> <text>{{orderData.receive_at}}</text></view>
<view class="order-input"><label>订单备注:</label> <text>{{orderData.remark || '暂无'}}</text></view>
</view>
<view class="orderLabel" wx:if='{{orderData.express.company}}'>
<view class="title">物流信息</view>
<view class="order-input" wx:if='{{orderData.orderid}}'><label>快递名称:</label> <text>{{orderData.express.company}}</text> </view>
<view class="order-input" wx:if='{{orderData.created_at}}'><label>快递单号:</label> <text>{{orderData.express.number}}</text></view>
</view>
</view>
</view>
<!-- 订单工具 -->
<view class="orderFooter">
<view class="orderFooter-btn" wx:if="{{orderData.canCancel == true}}" data-orderid="{{orderData.orderid}}"
bindtap="orderDelete">
取消订单
</view>
<view class="orderFooter-btn orderFooter-btn-back" wx:if="{{orderData.canPay == true}}"
data-orderid="{{orderData.orderid}}" bindtap="orderPay">
立即支付
</view>
<view class="orderFooter-btn" wx:if="{{orderData.canSign == true}}" data-orderid="{{orderData.orderid}}"
bindtap="orderSign">
立即签收
</view>
<navigator class="orderFooter-btn" wx:if="{{orderData.canRefund == true}}"
url="../projectRefund/projectRefund?orderId={{orderData.orderid}}">申请退款</navigator>
<!-- <view class="orderFooter-btn" bindtap="logisticsShow">查看物流</view> -->
<view class="orderFooter-btn" bindtap="orderRun">返回订单</view>
</view>
<!-- 物流 -->
<view class="logistics-back {{logisticsPop ? 'active':''}}" bindtap="logisticsHide"></view>
<view class="logistics-cont {{logisticsPop ? 'active':''}}">
<image class="logistics-close" src="/static/mall_icon/mall_close.png" bindtap="logisticsHide"></image>
<view class="nowrap-multi logistics-title">
<view class="logistics-title-icon">
<image src="/static/mall_icon/mallAddress_02.png"></image>
</view>
收货地址黑龙江省哈尔滨市测试区域测试地址123
</view>
<view class="logistics-list">
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】
</view>
<view class="logistics-label">
您的快件由【青岛】准备发往【上海】111
</view>
</view>
</view>

View File

@@ -0,0 +1,467 @@
/*
* 手太欠
* 企获客商城
*/
image {
height: auto;
}
page {
background-color: #f1f1f1;
}
.orderData {
border-bottom: solid 110rpx transparent;
}
/* 订单地址 */
.orderCont {
margin-top: -30rpx;
}
.orderSite {
background-color: white;
border-radius: 20rpx;
margin-bottom: 20rpx;
padding: 20rpx 0;
}
.orderSite-laebl {
display: flex;
padding: 10rpx 30rpx;
box-sizing: border-box;
}
.orderSite-laebl image {
width: 34rpx;
height: 34rpx;
margin: 4rpx 20rpx 0 0;
}
.orderSite-laeb-name {
font-weight: 600;
}
.orderSite-laeb-name text {
padding-left: 30rpx;
}
.orderSite-laeb-address {
font-size: 28rpx;
color: #666666;
}
/* 订单商品 */
.orderGoods,
.orderLabel {
background-color: white;
border-radius: 20rpx;
margin: 20rpx 0;
padding: 20rpx 0;
}
.orderLabel .title {
font-weight: 600;
padding-left: 30rpx;
}
.orderGoods {
padding: 30rpx;
box-sizing: border-box;
}
.orderGoods-company {
display: flex;
line-height: 50rpx;
font-weight: 600;
margin-bottom: 40rpx;
}
.orderGoods-logo {
width: 50rpx;
height: 50rpx;
margin-right: 20rpx;
}
.orderGoods-arrow {
width: 28rpx;
height: 28rpx;
margin: 10rpx 0 10rpx 20rpx;
}
.orderGoods-goods-li {
position: relative;
border-bottom: solid 1rpx #f2f2f2;
min-height: 160rpx;
background: white;
}
.orderGoods-goods-li:last-child {
border-bottom: none;
}
.orderGoods-img {
position: absolute;
top: 0;
left: 0;
height: 200rpx;
width: 200rpx;
border-radius: 10rpx;
background: #f5f6fa;
}
.orderGoods-body {
padding-left: 240rpx;
}
.orderGoods-params {
font-size: 28rpx;
color: #999999;
margin-top: 10rpx;
}
.orderGoods-name {
text-emphasis: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.orderGoods-price {
color: #e92344;
margin-top: 20rpx;
}
/* 订单标签 */
.order-total {
border-top: 2rpx solid #eee;
border-bottom: 2rpx solid #eee;
}
.order-total-li {
padding: 20rpx 30rpx;
display: flex;
position: relative;
}
.order-total-name {
flex: 1;
}
.order-total-li text {
color: #999;
}
.coupon-picker-red {
color: #ea4e2f;
}
.order-input {
padding: 20rpx 30rpx 0 30rpx;
position: relative;
font-size: 28rpx;
}
/* .order-input label {
width: 220rpx;
position: absolute;
left: 30rpx;
top: 0;
display: flex;
color: #666666;
} */
.order-input image {
width: 36rpx;
height: 36rpx;
margin: 24rpx 20rpx 0 0;
}
.order-input text {
padding-left: 20rpx;
font-size: 28rpx;
}
/* 订单状态 */
.orderBack {
display: flex;
flex-direction: row;
justify-content: start;
align-items: center;
background-image: linear-gradient(to left, #378fff, #378fff);
color: #fff;
text-align: center;
padding: 50rpx 0 70rpx;
font-size: 34rpx;
}
.orderBack image {
width: 120rpx;
vertical-align: middle;
margin-right: 30rpx;
}
/* 底部工具栏 */
.orderFooter {
position: fixed;
bottom: 0;
left: 0;
right: 0;
border-top: solid 1rpx #f2f2f2;
padding-top: 17rpx;
padding-right: 30rpx;
padding-left: 30rpx;
height: 90rpx;
background: white;
display: flex;
flex-wrap: wrap;
flex-direction: row-reverse;
}
.orderFooter-btn {
margin-left: 20rpx;
height: 60rpx;
line-height: 60rpx;
box-sizing: border-box;
border: solid 1rpx #747788;
padding: 0 20rpx;
font-size: 26rpx;
border-radius: 40rpx;
margin-top: 10rpx;
}
.orderFooter-btn-back {
border-color: #eb532a;
color: #eb532a;
}
/* 物流信息 */
.logistics-back {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background-color: rgba(0, 0, 0, .7);
z-index: 101;
display: none;
}
.logistics-back.active {
display: block;
}
.logistics-cont {
position: fixed;
width: 100%;
background-color: white;
left: 0;
bottom: -100%;
z-index: 102;
border-radius: 20rpx 20rpx 0 0;
padding: 90rpx 30rpx 30rpx;
box-sizing: border-box;
transition: .2s;
height: 40vh;
}
.logistics-cont.active {
bottom: 0;
}
.logistics-close {
position: absolute;
right: 20rpx;
top: 20rpx;
z-index: 103;
width: 45rpx;
height: 45rpx;
}
.logistics-list,
.logistics-title {
position: relative;
padding-left: 80rpx;
padding-right: 20rpx;
}
.logistics-list::before,
.logistics-title::before {
position: absolute;
left: 30rpx;
top: 0;
content: "";
width: 2rpx;
height: 100%;
background: #eeeeee;
z-index: 2;
}
.logistics-list {
height: calc(100% - 80rpx);
overflow-y: scroll;
}
.logistics-title {
font-size: 30rpx;
}
.logistics-label {
position: relative;
padding-top: 20rpx;
padding-bottom: 20rpx;
font-size: 26rpx;
color: #aeaeae;
border-bottom: solid 2rpx #f2f2f2;
}
.logistics-label:nth-child(1) {
color: #000;
font-weight: 600;
font-size: 30rpx;
}
.logistics-label::before {
position: absolute;
left: -58rpx;
top: calc(50% - 7rpx);
content: "";
width: 14rpx;
height: 14rpx;
border: solid 2rpx #fff;
background: #c1c1c1;
z-index: 9;
border-radius: 50%;
}
.logistics-label:nth-child(1)::before {
border: solid 2rpx #dd3835;
background: #dd3835;
}
.logistics-label:nth-child(1)::after {
position: absolute;
left: 0rpx;
top: 0;
content: "";
width: 2rpx;
height: calc(50% - 7rpx);
background: #fff;
z-index: 3;
border-radius: 50%;
}
.logistics-title-icon {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
background-color: #dddddd;
position: absolute;
left: 0;
z-index: 102;
top: 0;
}
.logistics-title-icon image {
width: 34rpx;
height: 34rpx;
margin: 13rpx;
}
.top {
font-size: 28rpx;
color: #333;
}
.top image {
width: 90rpx;
height: 90rpx;
border-radius: 10rpx;
}
.top .ctime {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 0 0 20rpx 0;
font-size: 26rpx;
color: #999;
}
.top .ctime span {
color: #666;
}
.top .content {
padding: 20rpx 0;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
box-sizing: border-box;
}
.top .title {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
}
.top .title .title1 {
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
width: 400rpx;
}
.top .mt10 {
margin-top: 10rpx;
}
.top .title .num {
font-size: 32rpx;
color: #333;
font-weight: 600;
}
.total {
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
box-sizing: border-box;
font-size: 24rpx;
padding: 10rpx 0 20rpx 0;
border-bottom: solid 1rpx #f9f9f9;
}
.total .num {
color: #000;
font-weight: 600;
}
.total .time {
color: #999;
font-weight: normal;
margin-top: 10rpx;
}
.pt10 {
padding-top: 20rpx;
}
.num2 {
color: #000;
font-weight: 400;
}

View File

@@ -0,0 +1,56 @@
/*
* 手太欠
* 企获客商城
*/
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
logisticsPop: false, //物流弹出框状态
orderData: '', //商品详情
refundId: ''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
refundId: options.orderId
})
this.orderData(options.refundId)
},
/**
* 订单详情
*/
orderData(refundId) {
wx.$api.companyModule.getRefundInfo(refundId).then(res => {
console.log(res)
this.setData({
orderData: res
})
})
},
/**
* 退款记录
*/
refunds(e) {
wx.navigateTo({
url: '/pages/user/companyMine/refundInfo/refundInfo?refundId='+e.currentTarget.dataset.refundid,
})
},
/**
* 返回订单
*/
orderRun() {
wx.navigateBack({
delta: 1,
})
},
})

View File

@@ -0,0 +1,6 @@
{
"usingComponents" : {},
"navigationBarTitleText" : "订单详情",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#378fff"
}

View File

@@ -0,0 +1,64 @@
<!-- 订单详情 -->
<view class="orderData">
<view class="orderBack">
<image src="/static/images/wl.png" mode="widthFix"></image>{{orderData.state.remark}}
</view>
<view class="orderCont">
<view class="orderSite">
<view class="orderSite-laebl">
<image src="/static/mall_icon/mallAddress_00.png"></image>
<view class="orderSite-laeb-name">{{orderData.express.name}}<text>{{orderData.express.mobile}}</text>
</view>
</view>
<view class="orderSite-laebl">
<image src="/static/mall_icon/mallAddress_02.png"></image>
<view class="orderSite-laeb-address">{{orderData.express.address}}</view>
</view>
</view>
<view class="orderGoods">
<view class="top">
<view class="ctime">{{orderData.created_at}} <span>{{orderData.state_text}}</span> </view>
<view class="content">
<image src="{{orderData.items[0].cover}}" mode="aspectFill"></image>
<view style="margin-left:20rpx;flex:1;">
<view class="title"><span class="title1">{{orderData.items[0].title}}</span><span
class="num">¥{{orderData.items[0].price}}</span>
</view>
<view class="title mt10">{{orderData.items[0].value}} x {{orderData.items[0].qty}}</view>
</view>
</view>
<view class="total">
<view>共<span class="num"> {{orderData.items[0].qty}} </span>件商品 实付:¥<span class="num">
{{orderData.items[0].price}}
</span></view>
<view class="time">项目结束时间:{{orderData.order.crowdfund_end_at}}</view>
</view>
<view class="title pt10"><span class="title1">应付</span><span
class="num2">¥{{orderData.items[0].price}}</span>
</view>
<view class="title pt10"><span class="title1">实付</span><span
class="num2">¥{{orderData.items[0].price}}</span>
</view>
</view>
</view>
<view class="orderLabel">
<view class="title">订单详情</view>
<view class="order-input" wx:if='{{orderData.orderid}}'><label>订单编号:</label>
<text>{{orderData.orderid}}</text> </view>
<view class="order-input" wx:if='{{orderData.created_at}}'><label>创建时间:</label>
<text>{{orderData.created_at}}</text></view>
<view class="order-input" wx:if='{{orderData.order.paid_at}}'><label>支付时间:</label>
<text>{{orderData.order.paid_at}}</text></view>
<view class="order-input"><label>订单备注:</label> <text>{{orderData.remark || '暂无'}}</text></view>
</view>
</view>
</view>
<!-- 订单工具 -->
<view class="orderFooter">
<view class="orderFooter-btn" bindtap="orderRun">返回订单</view>
<view class="orderFooter-btn" data-refundid="{{orderData.refund_id}}" bindtap="refunds">
退款进度
</view>
</view>

View File

@@ -0,0 +1,467 @@
/*
* 手太欠
* 企获客商城
*/
image {
height: auto;
}
page {
background-color: #f1f1f1;
}
.orderData {
border-bottom: solid 110rpx transparent;
}
/* 订单地址 */
.orderCont {
margin-top: -30rpx;
}
.orderSite {
background-color: white;
border-radius: 20rpx;
margin-bottom: 20rpx;
padding: 20rpx 0;
}
.orderSite-laebl {
display: flex;
padding: 10rpx 30rpx;
box-sizing: border-box;
}
.orderSite-laebl image {
width: 34rpx;
height: 34rpx;
margin: 4rpx 20rpx 0 0;
}
.orderSite-laeb-name {
font-weight: 600;
}
.orderSite-laeb-name text {
padding-left: 30rpx;
}
.orderSite-laeb-address {
font-size: 28rpx;
color: #666666;
}
/* 订单商品 */
.orderGoods,
.orderLabel {
background-color: white;
border-radius: 20rpx;
margin: 20rpx 0;
padding: 20rpx 0;
}
.orderLabel .title {
font-weight: 600;
padding-left: 30rpx;
}
.orderGoods {
padding: 30rpx;
box-sizing: border-box;
}
.orderGoods-company {
display: flex;
line-height: 50rpx;
font-weight: 600;
margin-bottom: 40rpx;
}
.orderGoods-logo {
width: 50rpx;
height: 50rpx;
margin-right: 20rpx;
}
.orderGoods-arrow {
width: 28rpx;
height: 28rpx;
margin: 10rpx 0 10rpx 20rpx;
}
.orderGoods-goods-li {
position: relative;
border-bottom: solid 1rpx #f2f2f2;
min-height: 160rpx;
background: white;
}
.orderGoods-goods-li:last-child {
border-bottom: none;
}
.orderGoods-img {
position: absolute;
top: 0;
left: 0;
height: 200rpx;
width: 200rpx;
border-radius: 10rpx;
background: #f5f6fa;
}
.orderGoods-body {
padding-left: 240rpx;
}
.orderGoods-params {
font-size: 28rpx;
color: #999999;
margin-top: 10rpx;
}
.orderGoods-name {
text-emphasis: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.orderGoods-price {
color: #e92344;
margin-top: 20rpx;
}
/* 订单标签 */
.order-total {
border-top: 2rpx solid #eee;
border-bottom: 2rpx solid #eee;
}
.order-total-li {
padding: 20rpx 30rpx;
display: flex;
position: relative;
}
.order-total-name {
flex: 1;
}
.order-total-li text {
color: #999;
}
.coupon-picker-red {
color: #ea4e2f;
}
.order-input {
padding: 20rpx 30rpx 0 30rpx;
position: relative;
font-size: 28rpx;
}
/* .order-input label {
width: 220rpx;
position: absolute;
left: 30rpx;
top: 0;
display: flex;
color: #666666;
} */
.order-input image {
width: 36rpx;
height: 36rpx;
margin: 24rpx 20rpx 0 0;
}
.order-input text {
padding-left: 20rpx;
font-size: 28rpx;
}
/* 订单状态 */
.orderBack {
display: flex;
flex-direction: row;
justify-content: start;
align-items: center;
background-image: linear-gradient(to left, #378fff, #378fff);
color: #fff;
text-align: center;
padding: 50rpx 0 70rpx;
font-size: 34rpx;
}
.orderBack image {
width: 120rpx;
vertical-align: middle;
margin-right: 30rpx;
}
/* 底部工具栏 */
.orderFooter {
position: fixed;
bottom: 0;
left: 0;
right: 0;
border-top: solid 1rpx #f2f2f2;
padding-top: 17rpx;
padding-right: 30rpx;
padding-left: 30rpx;
height: 90rpx;
background: white;
display: flex;
flex-wrap: wrap;
flex-direction: row-reverse;
}
.orderFooter-btn {
margin-left: 20rpx;
height: 60rpx;
line-height: 60rpx;
box-sizing: border-box;
border: solid 1rpx #747788;
padding: 0 20rpx;
font-size: 26rpx;
border-radius: 40rpx;
margin-top: 10rpx;
}
.orderFooter-btn-back {
border-color: #eb532a;
color: #eb532a;
}
/* 物流信息 */
.logistics-back {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background-color: rgba(0, 0, 0, .7);
z-index: 101;
display: none;
}
.logistics-back.active {
display: block;
}
.logistics-cont {
position: fixed;
width: 100%;
background-color: white;
left: 0;
bottom: -100%;
z-index: 102;
border-radius: 20rpx 20rpx 0 0;
padding: 90rpx 30rpx 30rpx;
box-sizing: border-box;
transition: .2s;
height: 40vh;
}
.logistics-cont.active {
bottom: 0;
}
.logistics-close {
position: absolute;
right: 20rpx;
top: 20rpx;
z-index: 103;
width: 45rpx;
height: 45rpx;
}
.logistics-list,
.logistics-title {
position: relative;
padding-left: 80rpx;
padding-right: 20rpx;
}
.logistics-list::before,
.logistics-title::before {
position: absolute;
left: 30rpx;
top: 0;
content: "";
width: 2rpx;
height: 100%;
background: #eeeeee;
z-index: 2;
}
.logistics-list {
height: calc(100% - 80rpx);
overflow-y: scroll;
}
.logistics-title {
font-size: 30rpx;
}
.logistics-label {
position: relative;
padding-top: 20rpx;
padding-bottom: 20rpx;
font-size: 26rpx;
color: #aeaeae;
border-bottom: solid 2rpx #f2f2f2;
}
.logistics-label:nth-child(1) {
color: #000;
font-weight: 600;
font-size: 30rpx;
}
.logistics-label::before {
position: absolute;
left: -58rpx;
top: calc(50% - 7rpx);
content: "";
width: 14rpx;
height: 14rpx;
border: solid 2rpx #fff;
background: #c1c1c1;
z-index: 9;
border-radius: 50%;
}
.logistics-label:nth-child(1)::before {
border: solid 2rpx #dd3835;
background: #dd3835;
}
.logistics-label:nth-child(1)::after {
position: absolute;
left: 0rpx;
top: 0;
content: "";
width: 2rpx;
height: calc(50% - 7rpx);
background: #fff;
z-index: 3;
border-radius: 50%;
}
.logistics-title-icon {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
background-color: #dddddd;
position: absolute;
left: 0;
z-index: 102;
top: 0;
}
.logistics-title-icon image {
width: 34rpx;
height: 34rpx;
margin: 13rpx;
}
.top {
font-size: 28rpx;
color: #333;
}
.top image {
width: 90rpx;
height: 90rpx;
border-radius: 10rpx;
}
.top .ctime {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 0 0 20rpx 0;
font-size: 26rpx;
color: #999;
}
.top .ctime span {
color: #666;
}
.top .content {
padding: 20rpx 0;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
box-sizing: border-box;
}
.top .title {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
}
.top .title .title1 {
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
width: 400rpx;
}
.top .mt10 {
margin-top: 10rpx;
}
.top .title .num {
font-size: 32rpx;
color: #333;
font-weight: 600;
}
.total {
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
box-sizing: border-box;
font-size: 24rpx;
padding: 10rpx 0 20rpx 0;
border-bottom: solid 1rpx #f9f9f9;
}
.total .num {
color: #000;
font-weight: 600;
}
.total .time {
color: #999;
font-weight: normal;
margin-top: 10rpx;
}
.pt10 {
padding-top: 20rpx;
}
.num2 {
color: #000;
font-weight: 400;
}

View File

@@ -0,0 +1,76 @@
/*
* 手太欠
* 企获客商城
*/
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
orderData: '', //订单详情
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options.orderid)
this.orderInfo(options.orderid)
},
/**
* 订单支付
*/
orderInfo(orderId) {
wx.$api.order.paymen(orderId).then(res => {
this.setData({
orderData: res
})
})
},
/**
* 订单支付
*/
payment() {
// 获取code
wx.login({
success: res => {
wx.$api.mall.wechat({
code: res.code,
trade_no: this.data.orderData.trade_no
}).then(res => {
let payInfo = JSON.parse(res)
wx.requestPayment({
timeStamp: payInfo.timeStamp,
nonceStr: payInfo.nonceStr,
package: payInfo.package,
paySign: payInfo.paySign,
signType: payInfo.signType,
success: res => {
if (res.errMsg == "requestPayment:ok") {
wx.showToast({
title: '支付成功',
icon: 'success'
})
setTimeout(() => {
wx.navigateBack({
delta: 0,
})
}, 2000)
}
},
fail: res => {
wx.navigateBack({
delta: 0,
})
}
})
})
}
})
}
})

View File

@@ -1,6 +1,6 @@
{
"usingComponents": {},
"navigationBarTitleText": "项目预购",
"navigationBarTitleText": "订单支付",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#378fff"
}

View File

@@ -0,0 +1,41 @@
<!-- 支付 -->
<view class="order-content">
<view class="order-title">订单信息</view>
<view class="order-total">
<view class="order-total-li order-total-number">
<view class="order-total-name">订单编号</view>
{{orderData.trade_no}}
</view>
<view class="order-total-li">
<view class="order-total-name">商品总价</view>
¥{{orderData.amount}}
</view>
<view class="order-total-li">
<view class="order-total-name">运费</view>
¥{{orderData.freight}}
</view>
<view class="order-total-li">
<view class="order-total-name">应付总价</view>
<view class="coupon-picker-red">
¥{{orderData.total}}
</view>
</view>
</view>
<view class="order-title">支付方式</view>
<view class="payContList">
<radio-group bindchange="radioChange">
<view class="payContList-label">
<view class="payContList-label-name">
<image class="payContList-label-img" src="/static/mall_icon/pay_00.png"></image>
<view>微信支付</view>
</view>
<radio class="radio" checked></radio>
</view>
</radio-group>
</view>
</view>
<view class="address-footer">
<text bindtap="payment">立即支付</text>
</view>

View File

@@ -0,0 +1,116 @@
/*
* 手太欠
* 企获客商城
*/
page {
background-color: #f7f7f7;
}
.order-content {
border-bottom: solid 100rpx transparent;
}
/* 订单支付 */
.order-title {
font-weight: 600;
padding: 30rpx;
}
.order-total {
background: white;
margin-bottom: 30rpx;
border-top: 2rpx solid #eee;
border-bottom: 2rpx solid #eee;
}
.order-total-number {
border-bottom: 2rpx solid #eee;
line-height: 54rpx;
}
.order-total-li {
padding: 20rpx 30rpx;
display: flex;
position: relative;
}
.order-total-name {
flex: 1;
}
.order-total-li text {
color: #999;
}
.coupon-picker-red {
color: #378fff;
}
.order-total-textarea {
width: 200rpx;
height: 80rpx;
}
.order-total-li textarea {
line-height: 50rpx;
height: 100rpx;
}
/* 支付类型 */
.payContList {
border-top: 2rpx solid #eee;
border-bottom: 2rpx solid #eee;
padding: 30rpx;
background: #fff;
}
.payContList-label {
height: 60rpx;
line-height: 60rpx;
display: flex;
}
.payContList-label-name {
flex: 1;
display: flex;
}
.payContList-label-img {
width: 60rpx;
height: 60rpx;
margin-right: 20rpx;
}
/* 支付按钮 */
.address-footer{
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding-left: 30rpx;
padding-right: 30rpx;
background: white;
border-top: 2rpx solid #eeeeee;
z-index: 9;
height: 130rpx;
}
.address-footer text{
display: block;
width: 100%;
line-height: 90rpx;
height: 90rpx;
margin: 20rpx 0;
text-align: center;
background: #378fff;
font-size: 30rpx;
color: white;
border-radius: 60rpx;
}

View File

@@ -0,0 +1,87 @@
<form bindsubmit="refundSign">
<view class="refund-content">
<!-- 退货产品 -->
<view class="refund-goods">
<view class="refund-good" wx:for="{{orderData.items}}" wx:key="index">
<image class="refund-good-cover" src="{{item.cover}}"></image>
<view class="refund-good-info">
<view class="refund-good-title nowrap">{{item.title}}</view>
<view class="refund-good-value nowrap">{{item.value}}</view>
<view class="refund-good-price nowrap">单价:<text>{{item.price}}</text> X {{item.qty}}</view>
</view>
</view>
</view>
<!-- 产品信息 -->
<view class="refund-statistical">
<view class="refund-statistical-item">
商品总金额
<label class="refund-statistical-item-label">¥{{orderData.amount || '0.00'}}</label>
</view>
<view class="refund-statistical-item">
运费
<label class="refund-statistical-item-label">¥{{orderData.freight || '0.00'}}</label>
</view>
<view class="refund-statistical-item">
优惠券抵扣
<label class="refund-statistical-item-label">¥{{orderData.coupons_all_price || '0.00'}}</label>
</view>
<view class="refund-statistical-item">
实际支付金额
<label class="refund-statistical-item-label">¥{{orderData.total || '0'}}</label>
</view>
</view>
<!-- 退款原因 -->
<view class="refund-statistical refund-info">
<view class="refund-statistical-item">
退款金额
<label
class="refund-statistical-item-label refund-info-item-label">¥{{orderData.total || '0.00'}}</label>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-statistical-item refundTitle-item">
选择退款原因
<picker bindchange="refundChange" range-key="remark" value="{{refundIndex}}" range="{{refundTitle}}">
<view class="picker">
{{refundTitle[refundIndex].remark}}
</view>
</picker>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-statistical-item">
退款类型
<label class="refund-statistical-item-label">{{refundType[1]}}</label>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-info-item-text">
退款原因
<textarea class="refund-info-item-textarea" placeholder="输入退款原因" name="remark"></textarea>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-info-item-text">
添加图片
<view class="issue-info-img">
<view class="issue-info-img-itme issue-info-img-tag" wx:for="{{imgs}}" wx:key="imgs">
<image class="form-img" mode="aspectFill" src="{{item}}"></image>
<text class="issue-info-img-remove" data-index="{{index}}" bindtap="removeImg">×</text>
</view>
<view class="issue-info-img-itme" wx:if="{{imgs.length < 9}}">
<view class="issue-info-img-add" bindtap="formUploadFile">
<image src="/static/images/images_add.png" mode="widthFix"></image>
<view>添加图片</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="refund-footer">
<button class="refund-footer-btn" size="mini" form-type="submit">提交</button>
</view>
</form>

View File

@@ -0,0 +1,131 @@
/*
* 手太欠
* 企获客商城
*/
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
orderId : '', //商品id
orderData : '', //退货商品
refundTitle : [], //退货理由
refundType : '', //退货类型
refundIndex : 0, //退货理由index
title : '', //退款原因
typeIndex : 0, //退货类型index
imgs : [], //图片页面显示
paths : [], //图片上传服务器
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
orderId: options.orderId
})
wx.$api.order.goosRefund(options.orderId).then(res => {
console.log(res)
this.setData({
orderData : res.order,
refundTitle : res.refund_title,
refundType : res.refund_type
})
})
},
/**
*选择退款原因
*/
refundChange(e) {
this.setData({
refundIndex : e.detail.value
})
},
/**
* 上传图片
*/
formUploadFile(){
let count = 9 - this.data.imgs.length
wx.chooseImage({
count : count,
success : res=>{
// 上传图片
if (res.tempFilePaths){
let pathArr = res.tempFilePaths
wx.showLoading({
title: '上传中',
})
for (let i = 0; i < pathArr.length; i++){
wx.$api.file.uploadImg(pathArr[i], {}).then(res=>{
let imgArr = this.data.imgs,
pathArr = this.data.paths
imgArr.push(res.showpath)
pathArr.push(res.path)
this.setData({
imgs : imgArr,
paths: pathArr
})
})
if (i == pathArr.length - 1) {
wx.hideLoading()
}
}
}else{
wx.showToast({
title: '上传图片失败',
icon : 'none'
})
}
}
})
},
/**
* 删除图片
*/
removeImg(e){
let imgArr = this.data.imgs,
pathArr = this.data.paths,
index = e.currentTarget.dataset.index
imgArr.splice(index, 1)
pathArr.splice(index, 1)
this.setData({
imgs : imgArr,
paths : pathArr
})
},
/**
* 申请退货
*/
refundSign(e) {
let refundTitle = this.data.refundTitle,
refundIndex = this.data.refundIndex,
remark = e.detail.value.remark,
paths = this.data.paths
console.log(paths)
wx.$api.order.formRefund(this.data.orderId,{
title : refundTitle[refundIndex].title,
remark : remark,
type : 1,
pictures: paths
}).then(res => {
wx.redirectTo({
url: '/pages/mall/mall_order/mall_order',
})
})
},
})

View File

@@ -0,0 +1,6 @@
{
"usingComponents" : {},
"navigationBarTitleText": "申请退款",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#378fff"
}

View File

@@ -0,0 +1,89 @@
<form bindsubmit="refundSign">
<view class="refund-content">
<!-- 退货产品 -->
<view class="refund-goods">
<view class="refund-good" wx:for="{{orderData.items}}" wx:key="index">
<image class="refund-good-cover" src="{{item.cover}}"></image>
<view class="refund-good-info">
<view class="refund-good-title nowrap">{{item.title}}</view>
<view class="refund-good-value nowrap">{{item.value}}</view>
<view class="refund-good-price nowrap">单价:<text>{{item.price}}</text> X {{item.qty}}</view>
</view>
</view>
</view>
<!-- 产品信息 -->
<view class="refund-statistical">
<view class="refund-statistical-item">
商品总金额
<label class="refund-statistical-item-label">¥{{orderData.amount || '0.00'}}</label>
</view>
<view class="refund-statistical-item">
运费
<label class="refund-statistical-item-label">¥{{orderData.freight || '0.00'}}</label>
</view>
<view class="refund-statistical-item">
优惠券抵扣
<label class="refund-statistical-item-label">¥{{orderData.coupons_all_price || '0.00'}}</label>
</view>
<view class="refund-statistical-item">
实际支付金额
<label class="refund-statistical-item-label">¥{{orderData.total || '0'}}</label>
</view>
</view>
<!-- 退款原因 -->
<view class="refund-statistical refund-info">
<view class="refund-statistical-item">
退款金额
<label
class="refund-statistical-item-label refund-info-item-label">¥{{orderData.total || '0.00'}}</label>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-statistical-item refundTitle-item">
选择退款原因
<picker bindchange="refundChange" range-key="remark" value="{{refundIndex}}" range="{{refundTitle}}">
<view class="picker">
{{refundTitle[refundIndex].remark}}
</view>
</picker>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-statistical-item">
退款类型
<label class="refund-statistical-item-label">{{refundType[1]}}</label>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-info-item-text">
退款原因
<textarea class="refund-info-item-textarea" placeholder="输入退款原因" name="remark"></textarea>
</view>
</view>
<view class="refund-statistical refund-info">
<view class="refund-info-item-text">
添加图片
<view class="issue-info-img">
<view class="issue-info-img-itme issue-info-img-tag" wx:for="{{imgs}}" wx:key="imgs">
<image class="form-img" mode="aspectFill" src="{{item}}"></image>
<text class="issue-info-img-remove" data-index="{{index}}" bindtap="removeImg">×</text>
</view>
<view class="issue-info-img-itme" wx:if="{{imgs.length < 9}}">
<view class="issue-info-img-add" bindtap="formUploadFile">
<image src="/static/images/images_add.png" mode="widthFix"></image>
<view>添加图片</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="refund-footer">
<button class="refund-footer-btn" size="mini" form-type="submit">提交</button>
</view>
</form>
1111111111

View File

@@ -0,0 +1,223 @@
.refund-content {
padding-bottom: 190rpx;
}
.refund-goods {
background-color: white;
}
.refund-good {
position: relative;
padding: 15rpx 30rpx;
min-height: 198rpx;
}
.refund-good::before {
position: absolute;
left: 30rpx;
right: 0;
height: 1rpx;
bottom: 1rpx;
content: " ";
background-color: #f5f5f5;
z-index: 9;
}
.refund-good-cover {
height: 178rpx;
width: 178rpx;
background: #f6f6f6;
position: absolute;
left: 30rpx;
top: 15rpx;
}
.refund-good-info {
padding-left: 198rpx;
}
.refund-good-title {
font-weight: bold;
margin: 15rpx 0;
font-size: 32rpx;
}
.refund-good-value {
line-height: 40rpx;
font-size: 28rpx;
color: gray;
}
.refund-good-price {
line-height: 40rpx;
color: gray;
font-size: 28rpx;
padding-top: 10rpx;
}
.refund-good-price text {
color: #378fff;
font-weight: bold;
font-size: 32rpx;
}
/* 统计信息 */
.refundTitle-item {
display: flex;
}
.refundTitle-item picker {
flex: 1;
text-align: right;
color: #000;
}
.refund-statistical {
background: white;
}
.refund-statistical-item {
position: relative;
padding: 0 30rpx;
line-height: 90rpx;
color: gray;
}
.refund-statistical-item::before {
position: absolute;
left: 30rpx;
right: 0;
height: 1rpx;
bottom: 1rpx;
content: " ";
background-color: #f5f5f5;
z-index: 9;
}
.refund-statistical-item:last-child::before {
display: none;
}
.refund-statistical-item-label {
position: absolute;
right: 30rpx;
top: 0;
width: 300rpx;
text-align: right;
color: #000;
}
/* 退款 */
.refund-info {
margin-top: 20rpx;
}
.refund-info-item-label {
color: #378fff;
font-weight: bold;
}
.refund-info-item-text {
padding: 30rpx 30rpx 30rpx 30rpx;
}
.refund-info-item-textarea {
width: 100%;
height: 150rpx;
margin-top: 20rpx;
}
/* footer */
.refund-footer {
background: white;
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 20rpx 30rpx 30rpx 30rpx;
width: 100%;
box-sizing: border-box;
z-index: 9999;
}
.refund-footer-btn[size="mini"] {
background: #378fff;
width: 100%;
height: 90rpx;
line-height: 90rpx;
color: white;
font-size: 32rpx;
}
/* 多图上传 */
.issue-info-img {
padding: 20rpx 0;
display: flex;
flex-wrap: wrap;
margin: 0 -10rpx;
}
.issue-info-img-itme {
width: calc(33.33% - 20rpx);
padding-top: calc(33.33% - 20rpx);
box-sizing: border-box;
position: relative;
margin: 10rpx;
}
.issue-info-img-itme>image {
width: 100%;
height: calc(100% - 20rpx);
height: -webkit-calc(100% - 20rpx);
position: absolute;
top: 10rpx;
left: 0;
}
.issue-info-img-remove {
position: absolute;
z-index: 5;
top: -5rpx;
right: -6rpx;
height: 36rpx;
width: 36rpx;
text-align: center;
line-height: 34rpx;
background: #ec202c;
color: white;
font-size: 28rpx;
font-weight: bold;
border-radius: 50%;
}
.issue-info-img-add {
position: absolute;
top: 10rpx;
bottom: 10rpx;
width: 100%;
left: 0;
text-align: center;
background: #f3f4f8;
color: #8d8d8d;
font-size: 24rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
}
.issue-info-img-add image {
width: 100rpx;
height: 100rpx;
vertical-align: bottom;
margin-bottom: 15rpx;
margin-top: 15rpx;
}
.issue-info-img-hint {
line-height: 60rpx;
color: #666;
font-size: 26rpx;
padding: 0 30rpx 15rpx 30rpx;
}

View File

@@ -0,0 +1,27 @@
// pages/user/companyMine/refundInfo/refundInfo.js
Page({
/**
* 页面的初始数据
*/
data: {
info:[],//进度
},
onLoad: function (options) {
this.setData({
refundId: options.refundId
})
this.getInfo()
},
/**
* 进度详情
*/
getInfo() {
wx.$api.companyModule.getRefundLogsInfo(this.data.refundId).then(res => {
console.log(res)
this.setData({
info: res
})
})
},
})

View File

@@ -0,0 +1,6 @@
{
"usingComponents": {},
"navigationBarTitleText": "退款进度",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#378fff"
}

View File

@@ -0,0 +1,24 @@
<!-- 退款进度详情 -->
<view class="content">
<block wx:for='{{info}}' :key='{{index}}'>
<view class="item" wx:if="{{item.state!='REFUND_APPLY'}}">
<view class='left'></view>
<view class="line"></view>
<view class="right">
<view class="title">{{item.state_text}}</view>
<view class="time">处理时间:{{item.created_at}}</view>
</view>
</view>
<view class="item" wx:else>
<view class='left'></view>
<view class="right">
<view class="title">{{item.state_text}}</view>
<view class="time">处理时间:{{item.created_at}}</view>
<view class="detail mt20">退款类型:仅退款</view>
<view class="detail ">退款金额:¥{{item.refund_total}}</view>
<view class="detail ">退款原因:{{item.title}}</view>
<view class="detail ">退款描述:{{item.remark}}</view>
</view>
</view>
</block>
</view>

View File

@@ -0,0 +1,69 @@
/* pages/user/companyMine/refundInfo/refundInfo.wxss */
.content {
padding: 120rpx 30rpx;
background-color: #fff;
}
.item {
display: flex;
flex-direction: row;
justify-content: start;
align-items: flex-start;
box-sizing: border-box;
}
.left {
width: 30rpx;
height: 30rpx;
background-color: #378fff;
border-radius: 50%;
position: relative;
top: 6rpx;
z-index: 3;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
box-sizing: border-box;
color: #fff;
font-size: 24rpx;
}
.right {
margin-left: 30rpx;
z-index: 3;
position: relative;
}
.title {
color: #333;
font-weight: 600;
font-size: 30rpx;
}
.time {
color: #999;
font-size: 24rpx;
margin-top: 6rpx;
}
.line {
background-color: #378fff;
height: 172rpx;
width: 1rpx;
position: relative;
left: -16rpx;
top: 6rpx;
z-index: 2;
opacity: 0.3;
}
.detail {
color: #666;
font-size: 24rpx;
margin-top: 10rpx;
}
.mt20 {
margin-top: 30rpx;
}

View File

@@ -10,7 +10,7 @@
"postcss": true,
"preloadBackgroundData": false,
"minified": true,
"newFeature": false,
"newFeature": true,
"coverView": true,
"nodeModules": true,
"autoAudits": false,
@@ -31,7 +31,7 @@
"enableEngineNative": false,
"bundle": false,
"useIsolateContext": true,
"useCompilerModule": true,
"useCompilerModule": false,
"userConfirmedUseCompilerModuleSwitch": false,
"userConfirmedBundleSwitch": false,
"packNpmManually": false,
@@ -39,13 +39,12 @@
"minifyWXSS": true
},
"compileType": "miniprogram",
"libVersion": "2.14.0",
"appid": "wxd931d03dfe955254",
"projectname": "%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%B0%8F%E7%A8%8B%E5%BA%8F",
"libVersion": "2.13.2",
"appid": "wx49efb36db851933d",
"projectname": "%E8%A1%8C%E4%B8%9A%E7%89%88Saas",
"debugOptions": {
"hidedInDevtools": []
},
"scripts": {},
"isGameTourist": false,
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
@@ -60,8 +59,7 @@
"list": []
},
"miniprogram": {
"list": [
{
"list": [{
"name": "登录",
"pathName": "pages/login/login",
"query": "",
@@ -80,15 +78,39 @@
"scene": null
},
{
"name": "企业广场",
"pathName": "pages/company/index",
"name": "pages/user/index",
"pathName": "pages/user/index",
"query": "",
"scene": null
},
{
"name": "分享进入",
"pathName": "pages/config/config",
"query": "",
"name": "pages/user/companyMine/companyOrder",
"pathName": "pages/user/companyMine/companyOrder",
"query": "orderid=20201229132338964625",
"scene": null
},
{
"name": "pages/user/companyMine/companyOrder",
"pathName": "pages/user/companyMine/companyOrder",
"query": "orderid=20201229132338964625",
"scene": null
},
{
"name": "pages/user/companyMine/projectDetail/projectDetail",
"pathName": "pages/user/companyMine/projectDetail/projectDetail",
"query": "orderid=20201229132338964625",
"scene": null
},
{
"name": "pages/user/companyMine/refundInfo/refundInfo",
"pathName": "pages/user/companyMine/refundInfo/refundInfo",
"query": "orderid=20201229132338964625",
"scene": null
},
{
"name": "pages/home/index",
"pathName": "pages/home/index",
"query": "orderid=20201229132338964625",
"scene": null
}
]

BIN
static/images/wl.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB