Merge branch 'dev-1021' into tem-fixed

liuqing 1 year ago
commit 831bd88277
  1. BIN
      .DS_Store
  2. 16
      .hbuilderx/launch.json
  3. 1
      .htaccess
  4. 1
      .user.ini
  5. 26
      404.html
  6. 14
      common/api.js
  7. 7
      common/config.js
  8. 39
      index.html
  9. 2
      manifest.json
  10. 28
      pages.json
  11. 2
      pages/ConfirmOrder/ConfirmOrder.vue
  12. 20
      pages/home/home.vue
  13. 505
      pages/my/incomeExpenditureDetail.vue
  14. 50
      pages/my/my.vue
  15. 420
      pages/my/mySign.vue
  16. 495
      pages/my/recharge.vue
  17. 503
      pages/my/singleIncome.vue
  18. 355
      pages/my/withdraw.vue
  19. 4
      pages/qianggou/productDetails.vue
  20. 7
      pages/qianggou/productList.vue
  21. 74
      pages/warehouse/buy.vue
  22. 68
      pages/warehouse/sell.vue
  23. BIN
      static/image/b11.png
  24. BIN
      static/image/b12.png
  25. BIN
      static/image/v1.png
  26. BIN
      static/image/v2.png
  27. BIN
      static/image/v3.png
  28. BIN
      static/image/x1.png
  29. BIN
      static/image/x2.png
  30. 2
      unpackage/dist/build/h5/index.html
  31. BIN
      unpackage/dist/build/h5/static/image/b11.png
  32. BIN
      unpackage/dist/build/h5/static/image/b12.png
  33. BIN
      unpackage/dist/build/h5/static/image/v1.png
  34. BIN
      unpackage/dist/build/h5/static/image/v2.png
  35. BIN
      unpackage/dist/build/h5/static/image/v3.png
  36. BIN
      unpackage/dist/build/h5/static/image/x1.png
  37. BIN
      unpackage/dist/build/h5/static/image/x2.png
  38. 6
      unpackage/dist/build/h5/static/js/chunk-vendors.aabf9ea3.js
  39. 1
      unpackage/dist/build/h5/static/js/index.0afd1cc1.js
  40. 1
      unpackage/dist/build/h5/static/js/index.33b549b2.js
  41. 1
      unpackage/dist/build/h5/static/js/pages-AccountSecurity-AccountSecurity.add04af6.js
  42. 1
      unpackage/dist/build/h5/static/js/pages-AccountSecurity-AccountSecurity.b464766a.js
  43. 1
      unpackage/dist/build/h5/static/js/pages-AccountSecurity-AccountSecurity~pages-AddressEdit-AddressEdit~pages-ChangePassword-ChangePassw~16945390.03e1f47f.js
  44. 1
      unpackage/dist/build/h5/static/js/pages-AccountSecurity-AccountSecurity~pages-AddressEdit-AddressEdit~pages-ChangePassword-ChangePassw~87dbfe28.bff25322.js
  45. 1
      unpackage/dist/build/h5/static/js/pages-AccountSecurity-AccountSecurity~pages-AddressEdit-AddressEdit~pages-ConfirmOrder-ConfirmOrder~~3a70436b.3174608b.js
  46. 1
      unpackage/dist/build/h5/static/js/pages-AccountSecurity-AccountSecurity~pages-AddressEdit-AddressEdit~pages-ConfirmOrder-ConfirmOrder~~9b7ad770.cd9b2a95.js
  47. 1
      unpackage/dist/build/h5/static/js/pages-AddressEdit-AddressEdit.700ce6c4.js
  48. 1
      unpackage/dist/build/h5/static/js/pages-AddressEdit-AddressEdit.7ad2551f.js
  49. 1
      unpackage/dist/build/h5/static/js/pages-AddressList-AddressList.3955cf58.js
  50. 1
      unpackage/dist/build/h5/static/js/pages-AddressList-AddressList.ec5e50d0.js
  51. 1
      unpackage/dist/build/h5/static/js/pages-ChangePassword-ChangePassword.188ac702.js
  52. 1
      unpackage/dist/build/h5/static/js/pages-ChangePassword-ChangePassword.212345c4.js
  53. 1
      unpackage/dist/build/h5/static/js/pages-ChangePassword-ChangePassword~pages-ConfirmOrder-ConfirmOrder~pages-Information-Information~pa~05613995.38ee249c.js
  54. 1
      unpackage/dist/build/h5/static/js/pages-ChangePassword-ChangePassword~pages-ConfirmOrder-ConfirmOrder~pages-Information-Information~pa~3d136d08.bb075b54.js
  55. 1
      unpackage/dist/build/h5/static/js/pages-ConfirmOrder-ConfirmOrder.42fa5b2f.js
  56. 1
      unpackage/dist/build/h5/static/js/pages-ConfirmOrder-ConfirmOrder.8a9c52ec.js
  57. 1
      unpackage/dist/build/h5/static/js/pages-GoodsDetails-GoodsDetails.35be4706.js
  58. 1
      unpackage/dist/build/h5/static/js/pages-GoodsDetails-GoodsDetails.58563d58.js
  59. 1
      unpackage/dist/build/h5/static/js/pages-GoodsEvaluateList-GoodsEvaluateList.49a8e5f8.js
  60. 1
      unpackage/dist/build/h5/static/js/pages-GoodsEvaluateList-GoodsEvaluateList.bb9814c1.js
  61. 1
      unpackage/dist/build/h5/static/js/pages-GoodsOn-GoodsOn.31681993.js
  62. 1
      unpackage/dist/build/h5/static/js/pages-GoodsOn-GoodsOn.3bf94c5d.js
  63. 1
      unpackage/dist/build/h5/static/js/pages-Information-Information.2391ccee.js
  64. 1
      unpackage/dist/build/h5/static/js/pages-Information-Information.9169c5fe.js
  65. 1
      unpackage/dist/build/h5/static/js/pages-Information-Information~pages-OrderDetails-OrderDetails~pages-warehouse-buy.6d7d8203.js
  66. 1
      unpackage/dist/build/h5/static/js/pages-Information-Information~pages-OrderDetails-OrderDetails~pages-warehouse-buy.a1a1f36a.js
  67. 1
      unpackage/dist/build/h5/static/js/pages-MyCoupon-MyCoupon.14c380ae.js
  68. 1
      unpackage/dist/build/h5/static/js/pages-MyCoupon-MyCoupon.af47a2b3.js
  69. 1
      unpackage/dist/build/h5/static/js/pages-MyOrderList-MyOrderList.ba9d53e2.js
  70. 1
      unpackage/dist/build/h5/static/js/pages-MyOrderList-MyOrderList.f77d2aac.js
  71. 1
      unpackage/dist/build/h5/static/js/pages-OrderDetails-OrderDetails.d3eabe79.js
  72. 1
      unpackage/dist/build/h5/static/js/pages-OrderDetails-OrderDetails.deb9628d.js
  73. 1
      unpackage/dist/build/h5/static/js/pages-SearchGoodsList-SearchGoodsList.5fc65433.js
  74. 1
      unpackage/dist/build/h5/static/js/pages-SearchGoodsList-SearchGoodsList.aa6325ec.js
  75. 1
      unpackage/dist/build/h5/static/js/pages-Setting-Setting.01629dc3.js
  76. 1
      unpackage/dist/build/h5/static/js/pages-Setting-Setting.a38508c7.js
  77. 1
      unpackage/dist/build/h5/static/js/pages-bind-bind.0c04bb23.js
  78. 1
      unpackage/dist/build/h5/static/js/pages-bind-bind.a2362b0b.js
  79. 1
      unpackage/dist/build/h5/static/js/pages-bind-bind~pages-my-mySign~pages-my-recharge~pages-my-withdraw.4f063d1f.js
  80. 1
      unpackage/dist/build/h5/static/js/pages-cart-cart.e345650e.js
  81. 1
      unpackage/dist/build/h5/static/js/pages-cart-cart.e838e74a.js
  82. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fans.07948ca9.js
  83. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fans.6d109315.js
  84. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fansOrder.6498d159.js
  85. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fansOrder.e5fa87bb.js
  86. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fenxiao.3b15afa9.js
  87. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fenxiao.9b976ed2.js
  88. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fenxiao~pages-my-incomeExpenditureDetail~pages-my-richText~pages-qianggou-productDetai~3aaf6e4c.9a70890d.js
  89. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fenxiao~pages-my-my.0b5b9d8a.js
  90. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fenxiao~pages-my-my.fb9ff1ca.js
  91. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-fenxiao~pages-my-richText~pages-qianggou-productDetails~pages-qianggou-qianggou~pages-~25a581a4.9b886ff3.js
  92. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-yongjin.14694483.js
  93. 1
      unpackage/dist/build/h5/static/js/pages-fenxiao-yongjin.9a6f51d1.js
  94. 1
      unpackage/dist/build/h5/static/js/pages-home-home.1b424530.js
  95. 1
      unpackage/dist/build/h5/static/js/pages-home-home.30906b49.js
  96. 3
      unpackage/dist/build/h5/static/js/pages-home-sign.7aa3677c.js
  97. 3
      unpackage/dist/build/h5/static/js/pages-home-sign.ddc19a48.js
  98. 1
      unpackage/dist/build/h5/static/js/pages-login-login.16d56b95.js
  99. 1
      unpackage/dist/build/h5/static/js/pages-login-login.eeb08393.js
  100. 1
      unpackage/dist/build/h5/static/js/pages-my-incomeExpenditureDetail.4cf695fc.js
  101. Some files were not shown because too many files have changed in this diff Show More

BIN
.DS_Store vendored

Binary file not shown.

@ -0,0 +1,16 @@
{ // launch.json configurations app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtypelocalremote, localremote
"version": "0.0",
"configurations": [{
"default" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

@ -0,0 +1 @@
open_basedir=/www/wwwroot/hezhiying/:/tmp/

@ -0,0 +1,26 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>404</title>
<style>
body{
background-color:#444;
font-size:14px;
}
h3{
font-size:60px;
color:#eee;
text-align:center;
padding-top:30px;
font-weight:normal;
}
</style>
</head>
<body>
<h3>404,您请求的文件不存在!</h3>
</body>
</html>

@ -74,4 +74,18 @@ export const orderPay = (params, config = {custom: { auth: true }}) => http.post
export const bindInvitor = (params, config = {custom: { auth: true }}) => http.post('/api/user/bindInvitor', params, config);
//上架
export const payUpGoods = (params, config = {custom: { auth: true }}) => http.post('/api/order/payUpGoods', params, config);
//收支详情
export const incomeDetail = (params, config = {custom: { auth: true }}) => http.get('/api/user/getUserIncomeAndExpandList', {params}, config);
//提交支付凭证
export const submitPingzheng = (params, config = {custom: { auth: true }}) => http.post('/api/user/submitPay', params, config);
//确认收款
export const confirmPay = (params, config = {custom: { auth: true }}) => http.post('/api/user/confirmPay', params, config);
//确认签约
export const confirmSign = (params, config = {custom: { auth: true }}) => http.post('/api/user/updateUserInfo', params, config);
//充值
export const recharge = (params, config = {custom: { auth: true }}) => http.post('/api/user/recharge', params, config);
//提现
export const withdraw = (params, config = {custom: { auth: true }}) => http.post('/api/user/withdraw', params, config);
//充值
export const getWithdrawList = (params, config = {custom: { auth: true }}) => http.post('/api/user/withdrawList', params, config);

@ -1,2 +1,5 @@
export const $apiLinks = "https://admin.hezhiying.com.cn/" // api 接口地址
export const baseUrl = "https://admin.hezhiying.com.cn/"
// export const $apiLinks = "https://admin.hezhiying.com.cn/" // api 接口地址
// export const baseUrl = "https://admin.hezhiying.com.cn/"
export const $apiLinks = "https://huazhiyuadmin.first315.com/" // api 接口地址
export const baseUrl = "https://huazhiyuadmin.first315.com/"

@ -0,0 +1,39 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>恭喜,站点创建成功!</title>
<style>
.container {
width: 60%;
margin: 10% auto 0;
background-color: #f0f0f0;
padding: 2% 5%;
border-radius: 10px
}
ul {
padding-left: 20px;
}
ul li {
line-height: 2.3
}
a {
color: #20a53a
}
</style>
</head>
<body>
<div class="container">
<h1>恭喜, 站点创建成功!</h1>
<h3>这是默认index.html,本页面由系统自动生成</h3>
<ul>
<li>本页面在FTP根目录下的index.html</li>
<li>您可以修改、删除或覆盖本页面</li>
<li>FTP相关信息,请到“面板系统后台 > FTP” 查看</li>
</ul>
</div>
</body>
</html>

@ -1,6 +1,6 @@
{
"name" : "电商模板,纯前端模板,可直接使用",
"appid" : "__UNI__E0663F1",
"appid" : "__UNI__E8DB595",
"description" : "",
"versionName" : "1.0.2",
"versionCode" : "100",

@ -47,6 +47,34 @@
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path" : "pages/my/recharge",
"style" : {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path" : "pages/my/withdraw",
"style" : {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path" : "pages/my/incomeExpenditureDetail",
"style" : {
"navigationBarTitleText": "收支详情",
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path" : "pages/my/mySign",
"style" : {
"navigationBarTitleText": "我的签约",
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path" : "pages/AddressList/AddressList",
"style" : {

@ -186,7 +186,7 @@
}
let params={
address_id:this.addressObj.id,
goods_id:this.productObj.id
seller_order_id:this.productObj.id
}
console.log(params)
createOrder(params).then(res=>{

@ -62,7 +62,10 @@
</view>
</view>
<image src="/static/image/x.png" @click="onSkip('goods','/static/image/x.png')" class="zenxuan" mode=""></image>
<view class="zeng-xuan">
<image mode="widthFix" style="width: 49%;display: block;" src="/static/image/x1.png" @click="onSkip('goods','/static/image/x.png')" class="zenxuan" ></image>
<image mode="widthFix" style="width: 49%;display: block;" src="/static/image/x2.png" @click="onSkip('goods','/static/image/x.png')" class="zenxuan" ></image>
</view>
</view>
<view class="devide"></view>
<view class="new-product">
@ -109,9 +112,8 @@ export default {
use: false
},
swiperList: [
'/static/image/b1.png',
'/static/image/b2.png',
'/static/image/b3.png'
'/static/image/b11.png',
'/static/image/b12.png',
],
slideNum: 0,
@ -123,7 +125,7 @@ export default {
'/static/image/v1.png',
'/static/image/v2.png',
'/static/image/v3.png',
'/static/image/v4.png',
'/static/image/v2.png',
]
}
},
@ -140,7 +142,7 @@ export default {
// #endif
},
onLoad() {
this.H5Login()
// this.H5Login()
},
onPageScroll(e){
let scrollTop = e.scrollTop;
@ -219,7 +221,7 @@ export default {
let code =this.getQueryString('code');
console.log(code,"lldd");
let appid="wx5a2c9f7e82918b85"
let appid="wx15043fd052209ad4"
let redirect_uri = encodeURIComponent(pageUrl);
// let redirect_uri = pageUrl;
@ -240,4 +242,8 @@ export default {
<style scoped lang="scss">
@import 'home.scss';
.zeng-xuan{
display: flex;
justify-content: space-between;
}
</style>

@ -0,0 +1,505 @@
<template>
<view v-if="incomeList !== ''" class="page">
<view v-if="incomeList.length === 0" style="text-align: center;padding-top: 40vh;">暂无数据</view>
<view v-for="item in incomeList" :key="item.id">
<SingleIncome :incomeDetail="item" @submit="submit" @sureIncome="sureIncome"/>
</view>
<!-- <view v-if="incomeDetail.type === 2" class="info" style="padding: 10px 0 10px 10px;position: relative;">
<view style="padding-bottom: 5px;">付款人{{incomeDetail.buyer.nickname}}</view>
<view style="padding-bottom: 5px;">联系电话{{incomeDetail.buyer.mobile}}</view>
<view>付款金额{{incomeDetail.amount}}</view>
<view v-if="incomeDetail.pay_voucher" class="saveBtn other-btn" style="background-color: orange;border: 0;" @click="lookPic">支付凭证</view>
<view class="saveBtn other-btn" style="top: 50px !important" @click="sureIncome">确认收款</view>
</view>
<view v-if="incomeDetail.type === 1" class="info">
<view class="title">测试优先公司</view>
<view>收款人{{incomeDetail.seller.nickname}} <text style="padding-left: 30px;">付款金额{{incomeDetail.amount}}</text></view>
</view>
<view v-if="incomeDetail.type === 1" class="tabs">
<view :class="activeIndex==item.id?'tabsItem active':'tabsItem'" @click="getPay(item)" v-for="item in list4" :key="item.id">
{{item.name}}
</view>
</view>
<view v-if="incomeDetail.type === 1" >
<view class="yhk" v-show="activeIndex==1">
<view class="list-input">
<view class="title">
<text>银行卡姓名</text>
</view>
<view class="content">
<text>{{incomeDetail.seller.bank_realname}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_realname"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>卡号</text>
</view>
<view class="content" >
<text>{{incomeDetail.seller.bank_no}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_no"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>开户行</text>
</view>
<view class="content">
<text>{{incomeDetail.seller.bank_address}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_address"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>支行</text>
</view>
<view class="content">
<text>{{incomeDetail.seller.bank_sub_address}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_sub_address"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
</view>
<view v-show="activeIndex!=1" class="ping-zheng">
<image v-show="activeIndex==2" style="width: 60%;height: 110px;" :src="incomeDetail.buyer.alipay_image||''" mode="aspectFit" ></image>
<image v-show="activeIndex==3" style="width: 60%;height: 110px;" :src="incomeDetail.buyer.wechat_image||''" mode="aspectFit" ></image>
<view>收款码</view>
</view>
<view class="ping-zheng">
<u-upload
:fileList="finishImageList"
:previewFullImage="false"
@afterRead="afterRead"
width="50" height="50"
style="display: none;"
ref="upload"
name="1"
></u-upload>
<image style="width: 40%;height: 70px;" :src="finishImageList[0].url" v-if="finishImageList.length>0" @click="uploadPingzheng" mode="aspectFit"></image>
<image style="width: 40%;height: 70px;" src="/static/image/up_img.png" v-else mode="aspectFit" @click="uploadPingzheng"></image>
<view>上传凭证</view>
</view>
</view>
<view v-if="incomeDetail.type === 1" class="saveBtn" @click="submit">提交</view> -->
<u-popup :show="show" mode="bottom" @close="close" round="10" >
<view style="padding:24rpx;max-height:calc(60vh);overflow: auto;">
<u-parse :content="content" style="margin-top:45px;"></u-parse>
</view>
</u-popup>
<u-toast ref="uToast"></u-toast>
</view>
</template>
<script>
import {getToken} from '@/common/auth.js'
import {incomeDetail,privacyPolicy,submitPingzheng,confirmPay} from '@/common/api.js'
import SingleIncome from './singleIncome.vue'
export default {
data() {
return {
finishImageList:[],
fileList1: [],
num:0,
id:null,
show:false,
content:'',
activeIndex:1,
list4: [{
name: '银行卡',
id:1
}, {
name: '支付宝',
id:2
}, {
name: '微信',
id:3
}],
yhk:{
bank_realname:null,
bank_mobile:null,
bank_no:null,
bank_address:null,
},
pingzhengUrl:'',
wxurl:'',
incomeDetail: '',
incomeList: '',
};
},
onShow() {
this.getOrderDetails()
},
components:{
SingleIncome,
},
methods:{
submit(params){
// if(this.finishImageList.length === 0){
// this.$refs.uToast.show({
// message:''
// })
// return;
// }
submitPingzheng(params).then(res => {
console.log(res,'res')
if(res.code === 1){
this.$refs.uToast.show({
message:'已上传'
})
this.incomeList.forEach((item,index) => {
if(item.id === params.id){
this.incomeList.splice(index, 1);
}
})
// const tem = setTimeout(() => {
// uni.navigateBack({
// delta:1
// })
// clearTimeout(tem)
// },1000)
}
})
},
uploadPingzheng(){
this.finishImageList = []
this.$refs.upload.chooseFile()
},
//
async afterRead(event) {
// multiple true , file
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
status: 'uploading',
message: '上传中'
})
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url)
// this.avatarUrl = JSON.parse(result).data.fullurl;
// this.avatarUrl_short = JSON.parse(result).data.url;
// updateUserInfo({avatar:this.avatarUrl}).then(res=>{
// this.$refs.uToast.show({
// message:''
// })
// })
}
},
//
uploadFilePromise(url) {
uni.showLoading({
title: '上传中'
})
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: this.baseUrl+'api/common/upload',
filePath: url,
name: 'file',
header:{
token:getToken()
},
formData: {
},
success: (res) => {
if(JSON.parse(res.data).code==1){
setTimeout(() => {
uni.hideLoading();
this.finishImageList = [{url:JSON.parse(res.data).data.fullurl,path:JSON.parse(res.data).data.url}]
console.log(this.finishImageList, 'this.finishImageList')
resolve(res.data)
}, 1000)
}else{
uni.hideLoading();
uni.$u.toast(JSON.parse(res.data).msg)
resolve(res.data)
}
},
fail: (res) => {
uni.hideLoading();
console.log(res,"rrr")
}
});
})
},
sureIncome(params){
confirmPay(params).then(res => {
if(res.code === 1){
this.$refs.uToast.show({
message:'确认收款'
})
this.incomeList.forEach((item,index) => {
if(item.id === params.id){
this.incomeList.splice(index, 1);
}
})
// const tem = setTimeout(() => {
// uni.navigateBack({
// delta:1
// })
// clearTimeout(tem)
// },1000)
}
})
},
lookPic(){
uni.previewImage({
urls: [this.incomeDetail.pay_voucher],
success: (res) => {
}
});
},
getPay(item){
this.activeIndex = item.id;
},
onCopyResult(type) {
    if (type==='success') {
this.$refs.uToast.show({
message:'复制成功'
})
    } else {
this.$refs.uToast.show({
message:'复制失败'
})
    }
},
getOrderDetails(){
incomeDetail({custom: { auth: true }}).then(res=>{
console.log(res, 'res');
if(res.data.length > 0){
this.incomeList = res.data
this.incomeDetail = res.data[0]
if(this.incomeDetail.pay_voucher){
this.finishImageList = [{url:this.incomeDetail.pay_voucher,path:this.incomeDetail.pay_voucher}]
}
}else{
this.incomeList = []
this.incomeDetail = {}
}
})
},
close() {
this.show = false
},
getText(){
privacyPolicy({id:4}).then(res=>{
this.content = res.data.content
})
},
},
destroyed() {
},
watch:{
}
}
</script>
<style scoped lang="scss">
.info{
padding: 10px 0 20px 10px;
background: #fff;
.title{
text-align: center;
color: #e0e00e;
margin-bottom: 10px;
}
}
.ping-zheng{
margin-top: 20px;
background-color: #fff;
text-align: center;
padding: 30px 0;
// image{
// img{
// width: 50% !important;
// height: 50% !important;
// }
// }
}
.page{
min-height:calc(100vh - 45px);
background-color: #f5f5f5;
padding:24rpx;
.tabs{
height: 80rpx;
background-color: rgb(35, 96, 48);
padding: 6rpx;
border-radius: 5px;
display: flex;
.tabsItem{
flex:1;
text-align: center;
line-height: 70rpx;
font-size: 26rpx;
color: #ffffff;
}
.active{
background-color: #fff;
font-size: 30rpx;
font-weight: bold;
border-radius: 5px;
color: rgb(35, 96, 48);
}
}
.yhk{
width: 100%;
background-color: #FFFFFF;
margin-top:20rpx;
border-radius: 10px;
.list-input{
display: flex;
align-items: center;
padding: 0 4%;
height: 100rpx;
border-bottom: 2rpx solid #f6f6f6;
.title{
display: flex;
align-items: center;
width: 30%;
height: 100%;
text{
color: #236030;
font-size: 26rpx;
}
}
image{
margin-left:10rpx;
width:30rpx;
height:auto;
}
.content{
display: flex;
align-items: center;
width: 70%;
height: 100%;
justify-content: space-between;
input{
width: 100%;
height: 100%;
font-size: 26rpx;
color: #222222;
}
}
}
.yzmBtn{
background: rgb(35, 96, 48);
color: rgb(255, 255, 255);
margin-bottom: 5px;
padding: 0px;
width: 126px;
overflow: hidden;
font-size: 14px;
height: 38px;
line-height: 38px;
color: #fff;
text-align: center;
border-radius:10rpx;
}
}
.saveBtn{
background: rgb(35, 96, 48);
color: rgb(255, 255, 255);
border: 1px solid rgb(35, 96, 48);
overflow: hidden;
font-size: 28rpx;
height: 44px;
line-height: 44px;
text-align: center;
border-radius: 10rpx;
margin-top:50rpx;
}
.input-info{
padding: 0 6%;
.info{
display: flex;
align-items:center;
justify-content: space-between;
width: 100%;
height: 100rpx;
border-bottom: 2rpx solid #f6f6f6;
input{
width: 70%;
height: 100%;
font-size: 26rpx;
color: #222222;
}
.more{
display: flex;
align-items: center;
justify-content: flex-end;
width: 30%;
height: 100%;
.iconfont{
font-size: 34rpx;
}
.mo{
font-size: 26rpx;
padding-left: 20rpx;
margin-left: 10rpx;
border-left: 2rpx solid #EEEEEE;
}
}
}
}
}
.zfb{
text-align: center;
image{
width:200rpx;
height:200rpx;
margin:100rpx auto;
}
.mesInfo{
margin-top: 26rpx;
font-size: 26rpx;
color: #999;
}
}
.other-btn{
width: 75px !important;
height: 30px !important;
font-size: 13px !important;
line-height: 30px !important;
position: absolute !important;
right: 10px;
top: 10px !important;
margin-top: 0px !important;
}
</style>

@ -113,7 +113,7 @@
买方
</view>
<view class="infoContainer">
<view class="list" @click="goBuyWareHouse(-1)">
<view class="list" @click="goBuyWareHouse('-2')">
<view class="icon">
<image src="../../static/image/c1.png" mode="heightFix"></image>
</view>
@ -121,23 +121,23 @@
<text>我的仓库</text>
</view>
</view>
<view class="list" @click="goBuyWareHouse(0)">
<view class="list" @click="goBuyWareHouse('1')">
<view class="icon">
<image src="../../static/image/c2.png" mode="heightFix"></image>
</view>
<view class="title">
<text>确认付款</text>
<text>付款</text>
</view>
</view>
<view class="list" @click="goBuyWareHouse(1)">
<view class="list" @click="goBuyWareHouse('5')">
<view class="icon">
<image src="../../static/image/c3.png" mode="heightFix"></image>
</view>
<view class="title">
<text>确认收</text>
<text>已提</text>
</view>
</view>
<view class="list" @click="goBuyWareHouse(3)">
<view class="list" @click="goBuyWareHouse('6')">
<view class="icon">
<image src="../../static/image/c4.png" mode="heightFix"></image>
</view>
@ -153,7 +153,7 @@
卖方
</view>
<view class="infoContainer">
<view class="list" @click="goSellWareHouse(-1)">
<view class="list" @click="goSellWareHouse('-2')">
<view class="icon">
<image src="../../static/image/c1.png" mode="heightFix"></image>
</view>
@ -161,23 +161,23 @@
<text>我的仓库</text>
</view>
</view>
<view class="list" @click="goSellWareHouse(0)">
<view class="list" @click="goSellWareHouse('10')">
<view class="icon">
<image src="../../static/image/c2.png" mode="heightFix"></image>
</view>
<view class="title">
<text>确认付款</text>
<text>付款</text>
</view>
</view>
<view class="list" @click="goSellWareHouse(1)">
<view class="list" @click="goSellWareHouse('11')">
<view class="icon">
<image src="../../static/image/c3.png" mode="heightFix"></image>
</view>
<view class="title">
<text>确认收货</text>
<text>上架中</text>
</view>
</view>
<view class="list" @click="goSellWareHouse(3)">
<view class="list" @click="goSellWareHouse('6')">
<view class="icon">
<image src="../../static/image/c4.png" mode="heightFix"></image>
</view>
@ -189,6 +189,10 @@
</view>
<view class="card">
<u-cell-group :border="false">
<u-cell icon="order" :iconStyle="{'color':'#236030'}" @click="onIncome" :titleStyle="{'color':'#236030'}" title="收支详情" :isLink="true" :rightIconStyle="{'color':'#236030'}"></u-cell>
<u-cell icon="gift" :iconStyle="{'color':'#236030'}" @click="onMySign" :titleStyle="{'color':'#236030'}" title="签约中心" :isLink="true" :rightIconStyle="{'color':'#236030'}"></u-cell>
<u-cell icon="rmb-circle" :iconStyle="{'color':'#236030'}" @click="onRecharge" :titleStyle="{'color':'#236030'}" title="充值入口" :isLink="true" :rightIconStyle="{'color':'#236030'}"></u-cell>
<u-cell icon="rmb-circle" :iconStyle="{'color':'#236030'}" @click="onWithdraw" :titleStyle="{'color':'#236030'}" title="提现入口" :isLink="true" :rightIconStyle="{'color':'#236030'}"></u-cell>
<u-cell icon="map" :iconStyle="{'color':'#236030'}" @click="onAddress" :titleStyle="{'color':'#236030'}" title="我的地址" :isLink="true" :rightIconStyle="{'color':'#236030'}"></u-cell>
<u-cell icon="coupon" :iconStyle="{'color':'#236030'}" @click="jump(1)" :titleStyle="{'color':'#236030'}" title="我的优惠券" :isLink="true" :rightIconStyle="{'color':'#236030'}"></u-cell>
<u-cell icon="scan" :iconStyle="{'color':'#236030'}" @click="jump(4)" :titleStyle="{'color':'#236030'}" title="我的邀请二维码" :isLink="true" :rightIconStyle="{'color':'#236030'}"></u-cell>
@ -271,6 +275,28 @@
url: '/pages/login/login'
})
},
onRecharge(){
uni.navigateTo({
url: '/pages/my/recharge',
})
},
onWithdraw(){
uni.navigateTo({
url: '/pages/my/withdraw',
})
},
//
onIncome(){
uni.navigateTo({
url: '/pages/my/incomeExpenditureDetail',
})
},
//
onMySign(){
uni.navigateTo({
url: '/pages/my/mySign',
})
},
/**
* 地址点击
*/

@ -0,0 +1,420 @@
<template>
<view class="qianyue">
<div v-if="showXieyi&&content&&!userInfo.sign_image" style="position: relative;" class="xieyi-content" v-html="content">
</div>
<view v-if="showXieyi&&content&&!userInfo.sign_image" class="interval">{{intervalTime}}</view>
<u-icon v-if="showXieyi&&content&&intervalTime===0&&!userInfo.sign_image" class="close" name="close" color="#909399" size="28" @click="showXieyi=false"></u-icon>
<div v-if="!showXieyi||userInfo.sign_image">
<view v-if="userInfo.sign_status === 1" style="text-align: center;color:green;font-weight: 600;width: 100%;">已签约</view>
<view v-if="userInfo.sign_status === 2" style="text-align: center;color:red;font-weight: 600;width: 100%;">审核不通过</view>
<view v-if="userInfo.sign_status === 0&&userInfo.sign_image" style="text-align: center;color:grey;font-weight: 600;width: 100%;">审核中</view>
<u-form :model="form" ref="uForm" :rules="rules">
<u-form-item label="姓名" prop="bank_username" border-bottom required>
<u-input :border="false" :disabled="userInfo.sign_status === 1||(userInfo.sign_status === 0&&userInfo.sign_image)" placeholder="请输入姓名" v-model="form.bank_username" />
</u-form-item>
<u-form-item :label-width="100" label="银行卡姓名" prop="bank_realname" border-bottom required>
<u-input :border="false" :disabled="userInfo.sign_status === 1||(userInfo.sign_status === 0&&userInfo.sign_image)" placeholder="请输入银行卡姓名" v-model="form.bank_realname" />
</u-form-item>
<u-form-item :label-width="85" label="银行卡号" prop="bank_no" border-bottom required>
<u-input :border="false" :disabled="userInfo.sign_status === 1||(userInfo.sign_status === 0&&userInfo.sign_image)" placeholder="请输入银行卡号" v-model="form.bank_no" />
</u-form-item>
<u-form-item :label-width="70" label="开户行" prop="bank_address" border-bottom required>
<u-input :border="false" :disabled="userInfo.sign_status === 1||(userInfo.sign_status === 0&&userInfo.sign_image)" placeholder="请输入开户行" v-model="form.bank_address" />
</u-form-item>
<u-form-item label="支行" prop="bank_sub_address" border-bottom required>
<u-input :disabled="userInfo.sign_status === 1||(userInfo.sign_status === 0&&userInfo.sign_image)" :border="false" placeholder="请输入支行" v-model="form.bank_sub_address" />
</u-form-item>
<u-form-item label="签字" prop="sign_image" border-bottom required>
<view v-if="!form.sign_image" class="sign-btn" @click="showSign">点击签名</view>
<image v-else style="width: 60vw;" mode="aspectFit" @click="showSign" :src="form.sign_image"></image>
</u-form-item>
</u-form>
</div>
<view v-if="!showXieyi||userInfo.sign_image">
<view v-if="!userInfo.sign_image||userInfo.sign_status === 2" class="saveBtn" @click="submitSign">提交</view>
</view>
<u-toast ref="uToast"></u-toast>
<u-popup :show="show" mode="bottom" @close="show=false" round="10" >
<view style="width: 100vw; height: 60vh;">
<l-signature disableScroll backgroundColor="#ddd"
ref="signatureRef"
:landscape="true"
:openSmooth="openSmooth" ></l-signature>
</view>
<view class="btn">
<button @click="onClick('clear')">清空</button>
<button @click="onClick('undo')">撤消</button>
<button @click="onClick('save')">保存</button>
</view>
</u-popup>
</view>
</template>
<script>
import {getWarehouseList,getUserInfo,privacyPolicy, confirmSign} from '@/common/api.js'
import {getToken} from '@/common/auth.js'
import {updateUserInfo} from '@/common/api.js'
var base64Img = require('base64-img');
export default{
components:{
},
data(){
return{
userInfo: {}, // sign_status 1 2 0 sign_image
showXieyi: true,
form: {
bank_username: '',
bank_realname: '',
bank_no: '',
bank_address: '',
bank_sub_address: '',
sign_image: '',
},
rules: {
bank_username: [
{
required: true,
message: '请输入姓名',
//
trigger: ['change','blur'],
}
],
bank_realname: [
{
required: true,
message: '请输入银行卡姓名',
//
trigger: ['change','blur'],
}
],
bank_no: [
{
required: true,
message: '请输入银行卡号',
//
trigger: ['change','blur'],
}
],
bank_address: [
{
required: true,
message: '请输入开户行',
//
trigger: ['change','blur'],
}
],
bank_address: [
{
required: true,
message: '请输入开户行',
//
trigger: ['change','blur'],
}
],
bank_sub_address: [
{
required: true,
message: '请输入支行',
//
trigger: ['change','blur'],
}
],
},
showList:true,
show:false,
content: '',
intervalTime: 15,
}
},
methods:{
showSign(){
if(this.userInfo.sign_status === 1||(this.userInfo.sign_status === 0&&this.userInfo.sign_image)){
return;
}
this.show = true;
},
submitSign(){
console.log('submit')
console.log(this.$refs.uForm.validate,'submit')
if(!this.form.bank_address||!this.form.bank_no||!this.form.bank_realname||!this.form.bank_sub_address||!this.form.bank_username||!this.form.sign_image){
return
}
confirmSign(this.form).then(res => {
if(res.code === 1){
this.$refs.uToast.show({
message:'签约信息已提交'
})
const tem = setTimeout(() => {
uni.navigateBack({
delta:1
})
clearTimeout(tem)
},1000)
}
})
// this.$refs.uForm.validate(valid => {
// debugger
// console.log(valid, 'ca')
// if (valid) {
// } else {
// console.log('');
// }
// });
},
base64toBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
},
onClick(type) {
console.log(type, 'type')
if(type == 'openSmooth') {
this.openSmooth = !this.openSmooth
return
}
if (type == 'save') {
this.$refs.signatureRef.canvasToTempFilePath({
success: (res) => {
if(res.isEmpty){
uni.$u.toast("请签名")
return;
}
var path = URL.createObjectURL(this.base64toBlob(res.tempFilePath))
uni.uploadFile({
url: this.baseUrl+'api/common/upload',
filePath: path,
name: 'file',
header:{
token:getToken()
},
formData: {
},
success: (res) => {
const data = JSON.parse(res.data)
if(data.code==1){
this.form.sign_image = data.data.fullurl
console.log(data, 'this.form.sign_image')
this.show = false
}else{
uni.$u.toast(JSON.parse(res.data).msg)
}
},
fail: (res) => {
console.log(res,"rrr")
}
});
}
})
return
}
if (this.$refs.signatureRef)
this.$refs.signatureRef[type]()
},
saveSignPic(picurl){
console.log(picurl)
updateUserInfo({sign_image:picurl}).then(res=>{
console.log(res,"ooooo")
if(res.code==1){
uni.switchTab({
url:"/pages/qianyue/qianyue"
})
}
})
}
},
onShow(){
getUserInfo().then(res=>{
this.userInfo =Object.assign(({},this.userInfo,res.data))
if(this.userInfo.sign_image){
this.form = {
bank_username: this.userInfo.bank_username,
bank_realname: this.userInfo.bank_realname,
bank_no: this.userInfo.bank_no,
bank_address: this.userInfo.bank_address,
bank_sub_address: this.userInfo.bank_sub_address,
sign_image: this.userInfo.sign_image,
}
}
})
privacyPolicy({id:2}).then(res => {
console.log(res, 'privacyPolicy');
this.content = res.data.content;
})
const tem = setInterval(() => {
if(this.intervalTime>0){
this.intervalTime --;
}else{
clearInterval(tem)
}
},1000)
this.getUserInfoHandle()
this.show = false
},
onLoad() {
},
onReady() {
},
}
</script>
<style lang="scss" scoped>
.interval{
position: fixed;
top: 40px;
left: 5px;
border-radius: 50%;
height: 40px;
width: 40px;
display: flex;
justify-content: center;
align-items: center;
color: red;
font-size: 25px;
}
.close{
top: 45px;
right: 15px;
position: fixed;
z-index: 99;
}
.qianyue{
padding:24rpx;
.banner{
height: 260rpx;
margin-bottom: 10rpx;
// margin: -200rpx auto 20rpx;
border-radius: 10rpx;
overflow: hidden;
.u-swiper{
background-color: #fff !important;
}
}
.qgList{
.qgItem{
height:286rpx;
width: 100%;
position: relative;
overflow: hidden;
margin-bottom:20rpx;
.bgPic{
width:100%;
}
.qgInfo{
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
height: 100%;
width: 100%;
text-align: center;
background: rgba(0,0,0,.6);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index:99;
.conpany{
display: flex;
align-items: center;
color: rgb(193, 193, 193);;
.line{
height:4rpx;
width:100rpx;
background-color: rgb(193, 193, 193);;
}
.text{
font-size: 30rpx;
color: rgb(193, 193, 193);
margin:0 10rpx;
}
}
.time{
font-size: 38rpx;
color: #fff;
margin-top: 26px;
}
}
}
}
}
.gobottom{
color: rgba(165, 165, 165, 0.5);
font-size: 30rpx;
margin-top:20rpx;
text-align: center;
}
.istruction{
text-align: center;
color:#9f751f;
margin-top:80rpx;
}
.xieyi{
border:1px solid $base;
color:$base;
border-radius: 10rpx;
width:40%;
text-align: center;
margin:30rpx auto;
padding:10rpx 0;
}
.sign{
border:1px solid $base;
color:$base;
border-radius: 10rpx;
width:40%;
text-align: center;
margin:30rpx auto;
padding:10rpx 0;
}
.btn{
// transform: rotate(90deg);
display: flex;
position: fixed;
bottom:10px;
width:100%;
button{
flex:1;
margin:0 10rpx;
background-color: $base;
color:#fff;
font-size: 28rpx;
}
}
.sign-btn{
width: 80px;
height: 30px;
line-height: 30px;
background-color: #fff;
text-align: center;
}
.saveBtn{
background: rgb(35, 96, 48);
color: rgb(255, 255, 255);
border: 1px solid rgb(35, 96, 48);
overflow: hidden;
font-size: 28rpx;
height: 44px;
line-height: 44px;
text-align: center;
border-radius: 10rpx;
margin-top:100rpx;
}
</style>

@ -0,0 +1,495 @@
<template>
<view class="page">
<view class="tabs">
<view :class="activeIndex==item.id?'tabsItem active':'tabsItem'" @click="getPay(item)" v-for="item in list4" :key="item.id">
{{item.name}}
</view>
</view>
<view >
<view class="yhk" v-show="activeIndex==1">
<view class="list-input">
<view class="title">
<text>银行卡姓名</text>
</view>
<view class="content">
<text>{{incomeDetail.bank_realname}}</text>
<image
v-clipboard:copy="incomeDetail.bank_realname"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>卡号</text>
</view>
<view class="content" >
<text>{{incomeDetail.bank_no}}</text>
<image
v-clipboard:copy="incomeDetail.bank_no"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>开户行</text>
</view>
<view class="content">
<text>{{incomeDetail.bank_address}}</text>
<image
v-clipboard:copy="incomeDetail.bank_address"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>支行</text>
</view>
<view class="content">
<text>{{incomeDetail.bank_sub_address}}</text>
<image
v-clipboard:copy="incomeDetail.bank_sub_address"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
</view>
<view v-show="activeIndex!=1" class="ping-zheng">
<image v-show="activeIndex==2" style="width: 60%;height: 110px;" :src="incomeDetail.alipay_image||''" mode="aspectFit" ></image>
<image v-show="activeIndex==3" style="width: 60%;height: 110px;" :src="incomeDetail.wechat_image||''" mode="aspectFit" ></image>
<view>{{activeIndex==2?'支付宝':'微信'}}收款码</view>
</view>
</view>
<view class="saveBtn" @click="show=true">确认充值</view>
<u-modal z-index="99" :show-cancel-button="true" :show="show" title="充值金额" @cancel="show=false" @confirm="submit">
<view class="slot-content">
<u-radio-group style="margin-top: 10px;" v-model="value" @change="radioGroupChange">
<u-radio
@change="radioChange"
style="margin-left: 10px;"
v-for="(item, index) in list" :key="index"
:name="item.name"
:disabled="item.disabled"
>
{{item.name}}
</u-radio>
</u-radio-group>
<u-input type="digit" v-model="amount" style="margin-top: 20px;" placeholder="请输入充值金额"></u-input>
<view v-if="!amount&&validate" style="color: red;">请输入充值金额</view>
</view>
</u-modal>
<u-toast ref="uToast"></u-toast>
</view>
</template>
<script>
import {getToken} from '@/common/auth.js'
import {incomeDetail,privacyPolicy,submitPingzheng,confirmPay,recharge} from '@/common/api.js'
export default {
data() {
return {
finishImageList:[],
fileList1: [],
num:0,
id:null,
show:false,
content:'',
activeIndex:1,
list4: [{
name: '银联',
id:1
}, {
name: '支付宝',
id:2
}, {
name: '微信',
id:3
}],
yhk:{
bank_realname:null,
bank_mobile:null,
bank_no:null,
bank_address:null,
},
pingzhengUrl:'',
wxurl:'',
incomeDetail: {},
list: [
{
name: '银联',
disabled: false
},
{
name: '支付宝',
disabled: false
},
{
name: '微信',
disabled: false
}
],
// u-radio-groupv-modelradioname
value: '银联',
amount: '',
typeMap: {
'银联': 'bank',
'微信': 'wechat',
'支付宝': 'alipay',
},
validate: false,
};
},
onShow() {
// this.getOrderDetails()
},
methods:{
submit(){
if(!this.amount){
this.validate = true
return;
}
recharge({
amount: this.amount,
method: this.typeMap[this.value]
}).then(res => {
console.log(res,'res')
if(res.code === 1){
this.show = false;
this.$refs.uToast.show({
message:'充值记录提交'
})
const tem = setTimeout(() => {
uni.navigateBack({
delta:1
})
clearTimeout(tem)
},2000)
}
})
},
uploadPingzheng(){
this.finishImageList = []
this.$refs.upload.chooseFile()
},
//
async afterRead(event) {
// multiple true , file
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
status: 'uploading',
message: '上传中'
})
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url)
// this.avatarUrl = JSON.parse(result).data.fullurl;
// this.avatarUrl_short = JSON.parse(result).data.url;
// updateUserInfo({avatar:this.avatarUrl}).then(res=>{
// this.$refs.uToast.show({
// message:''
// })
// })
}
},
//
uploadFilePromise(url) {
uni.showLoading({
title: '上传中'
})
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: this.baseUrl+'api/common/upload',
filePath: url,
name: 'file',
header:{
token:getToken()
},
formData: {
},
success: (res) => {
if(JSON.parse(res.data).code==1){
setTimeout(() => {
uni.hideLoading();
this.finishImageList = [{url:JSON.parse(res.data).data.fullurl,path:JSON.parse(res.data).data.url}]
console.log(this.finishImageList, 'this.finishImageList')
resolve(res.data)
}, 1000)
}else{
uni.hideLoading();
uni.$u.toast(JSON.parse(res.data).msg)
resolve(res.data)
}
},
fail: (res) => {
uni.hideLoading();
console.log(res,"rrr")
}
});
})
},
sureIncome(){
confirmPay({
id: this.incomeDetail.id,
}).then(res => {
if(res.code === 1){
this.$refs.uToast.show({
message:'确认收款'
})
const tem = setTimeout(() => {
uni.navigateBack({
delta:1
})
clearTimeout(tem)
},1000)
}
})
},
lookPic(){
uni.previewImage({
urls: [this.incomeDetail.pay_voucher],
success: (res) => {
}
});
},
getPay(item){
this.activeIndex = item.id;
},
onCopyResult(type) {
    if (type==='success') {
this.$refs.uToast.show({
message:'复制成功'
})
    } else {
this.$refs.uToast.show({
message:'复制失败'
})
    }
},
getOrderDetails(){
incomeDetail({custom: { auth: true }}).then(res=>{
console.log(res, 'res');
if(res.data.length > 0){
this.incomeDetail = res.data[0]
if(this.incomeDetail.pay_voucher){
this.finishImageList = [{url:this.incomeDetail.pay_voucher,path:this.incomeDetail.pay_voucher}]
}
}else{
this.incomeDetail = {}
}
})
},
close() {
this.show = false
},
getText(){
privacyPolicy({id:4}).then(res=>{
this.content = res.data.content
})
},
},
destroyed() {
},
watch:{
}
}
</script>
<style scoped lang="scss">
.info{
padding: 10px 0 20px 10px;
background: #fff;
.title{
text-align: center;
color: #e0e00e;
margin-bottom: 10px;
}
}
.ping-zheng{
margin-top: 20px;
background-color: #fff;
text-align: center;
padding: 30px 0;
// image{
// img{
// width: 50% !important;
// height: 50% !important;
// }
// }
}
.page{
min-height:calc(100vh - 45px);
background-color: #f5f5f5;
padding:24rpx;
.tabs{
height: 80rpx;
background-color: rgb(35, 96, 48);
padding: 6rpx;
border-radius: 5px;
display: flex;
.tabsItem{
flex:1;
text-align: center;
line-height: 70rpx;
font-size: 26rpx;
color: #ffffff;
}
.active{
background-color: #fff;
font-size: 30rpx;
font-weight: bold;
border-radius: 5px;
color: rgb(35, 96, 48);
}
}
.yhk{
width: 100%;
background-color: #FFFFFF;
margin-top:20rpx;
border-radius: 10px;
.list-input{
display: flex;
align-items: center;
padding: 0 4%;
height: 100rpx;
border-bottom: 2rpx solid #f6f6f6;
.title{
display: flex;
align-items: center;
width: 30%;
height: 100%;
text{
color: #236030;
font-size: 26rpx;
}
}
image{
margin-left:10rpx;
width:30rpx;
height:auto;
}
.content{
display: flex;
align-items: center;
width: 70%;
height: 100%;
justify-content: space-between;
input{
width: 100%;
height: 100%;
font-size: 26rpx;
color: #222222;
}
}
}
.yzmBtn{
background: rgb(35, 96, 48);
color: rgb(255, 255, 255);
margin-bottom: 5px;
padding: 0px;
width: 126px;
overflow: hidden;
font-size: 14px;
height: 38px;
line-height: 38px;
color: #fff;
text-align: center;
border-radius:10rpx;
}
}
.saveBtn{
background: rgb(35, 96, 48);
color: rgb(255, 255, 255);
border: 1px solid rgb(35, 96, 48);
overflow: hidden;
font-size: 28rpx;
height: 44px;
line-height: 44px;
text-align: center;
border-radius: 10rpx;
margin-top:50rpx;
}
.input-info{
padding: 0 6%;
.info{
display: flex;
align-items:center;
justify-content: space-between;
width: 100%;
height: 100rpx;
border-bottom: 2rpx solid #f6f6f6;
input{
width: 70%;
height: 100%;
font-size: 26rpx;
color: #222222;
}
.more{
display: flex;
align-items: center;
justify-content: flex-end;
width: 30%;
height: 100%;
.iconfont{
font-size: 34rpx;
}
.mo{
font-size: 26rpx;
padding-left: 20rpx;
margin-left: 10rpx;
border-left: 2rpx solid #EEEEEE;
}
}
}
}
}
.zfb{
text-align: center;
image{
width:200rpx;
height:200rpx;
margin:100rpx auto;
}
.mesInfo{
margin-top: 26rpx;
font-size: 26rpx;
color: #999;
}
}
.other-btn{
width: 75px !important;
height: 30px !important;
font-size: 13px !important;
line-height: 30px !important;
position: absolute !important;
right: 10px;
top: 10px !important;
margin-top: 0px !important;
}
</style>

@ -0,0 +1,503 @@
<template>
<view v-if="incomeDetail !== ''" class="single-page">
<view v-if="!incomeDetail.id" style="text-align: center;padding-top: 40vh;">暂无数据</view>
<view v-if="incomeDetail.type === 2" class="info" style="padding: 10px 0 10px 10px;position: relative;">
<view style="padding-bottom: 5px;">付款人{{incomeDetail.buyer.nickname}}</view>
<view style="padding-bottom: 5px;">联系电话{{incomeDetail.buyer.mobile}}</view>
<view>付款金额{{incomeDetail.amount}}</view>
<view v-if="incomeDetail.pay_voucher" class="saveBtn other-btn" style="background-color: orange;border: 0;" @click="lookPic">支付凭证</view>
<view class="saveBtn other-btn" style="top: 50px !important" @click="sureIncome">确认收款</view>
</view>
<view v-if="incomeDetail.type === 1" class="info">
<!-- <view class="title">测试优先公司</view> -->
<view>收款人{{incomeDetail.seller.nickname}} <text style="padding-left: 30px;">付款金额{{incomeDetail.amount}}</text></view>
</view>
<view v-if="incomeDetail.type === 1" class="tabs">
<view :class="activeIndex==item.id?'tabsItem active':'tabsItem'" @click="getPay(item)" v-for="item in list4" :key="item.id">
{{item.name}}
</view>
</view>
<view v-if="incomeDetail.type === 1" >
<view class="yhk" v-show="activeIndex==1">
<view class="list-input">
<view class="title">
<text>银行卡姓名</text>
</view>
<view class="content">
<text>{{incomeDetail.seller.bank_realname}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_realname"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>卡号</text>
</view>
<view class="content" >
<text>{{incomeDetail.seller.bank_no}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_no"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>开户行</text>
</view>
<view class="content">
<text>{{incomeDetail.seller.bank_address}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_address"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
<view class="list-input">
<view class="title">
<text>支行</text>
</view>
<view class="content">
<text>{{incomeDetail.seller.bank_sub_address}}</text>
<image
v-clipboard:copy="incomeDetail.seller.bank_sub_address"
    v-clipboard:success="(type) => onCopyResult('success')"
    v-clipboard:error="(type) => onCopyResult('error')"
src="../../static/image/copy.png" mode="widthFix"></image>
</view>
</view>
</view>
<view v-show="activeIndex!=1" class="ping-zheng">
<image v-show="activeIndex==2" style="width: 60%;height: 110px;" :src="incomeDetail.buyer.alipay_image||''" mode="aspectFit" ></image>
<image v-show="activeIndex==3" style="width: 60%;height: 110px;" :src="incomeDetail.buyer.wechat_image||''" mode="aspectFit" ></image>
<view>收款码</view>
</view>
<view class="ping-zheng">
<u-upload
:fileList="finishImageList"
:previewFullImage="false"
@afterRead="afterRead"
width="50" height="50"
style="display: none;"
ref="upload"
name="1"
></u-upload>
<image style="width: 40%;height: 70px;" :src="finishImageList[0].url" v-if="finishImageList.length>0" @click="uploadPingzheng" mode="aspectFit"></image>
<image style="width: 40%;height: 70px;" src="/static/image/up_img.png" v-else mode="aspectFit" @click="uploadPingzheng"></image>
<view>上传凭证</view>
</view>
</view>
<view v-if="incomeDetail.type === 1" class="saveBtn" @click="submit">提交</view>
<u-popup :show="show" mode="bottom" @close="close" round="10" >
<view style="padding:24rpx;max-height:calc(60vh);overflow: auto;">
<u-parse :content="content" style="margin-top:45px;"></u-parse>
</view>
</u-popup>
<u-toast ref="uToast"></u-toast>
</view>
</template>
<script>
import {getToken} from '@/common/auth.js'
import {incomeDetail,privacyPolicy,submitPingzheng,confirmPay} from '@/common/api.js'
export default {
data() {
return {
finishImageList:[],
fileList1: [],
num:0,
id:null,
show:false,
content:'',
activeIndex:1,
list4: [{
name: '银行卡',
id:1
}, {
name: '支付宝',
id:2
}, {
name: '微信',
id:3
}],
yhk:{
bank_realname:null,
bank_mobile:null,
bank_no:null,
bank_address:null,
},
pingzhengUrl:'',
wxurl:'',
// incomeDetail: '',
};
},
props:{
incomeDetail:{
type: Object,
defalut: () => {}
}
},
onShow() {
this.getOrderDetails()
},
methods:{
submit(){
if(this.finishImageList.length === 0){
this.$refs.uToast.show({
message:'请上传支付凭证'
})
return;
}
this.$emit('submit',{
id: this.incomeDetail.id,
pay_voucher: this.finishImageList[0].url
})
// submitPingzheng({
// id: this.incomeDetail.id,
// pay_voucher: this.finishImageList[0].url
// }).then(res => {
// console.log(res,'res')
// if(res.code === 1){
// this.$refs.uToast.show({
// message:''
// })
// const tem = setTimeout(() => {
// uni.navigateBack({
// delta:1
// })
// clearTimeout(tem)
// },1000)
// }
// })
},
uploadPingzheng(){
this.finishImageList = []
this.$refs.upload.chooseFile()
},
//
async afterRead(event) {
// multiple true , file
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
status: 'uploading',
message: '上传中'
})
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url)
// this.avatarUrl = JSON.parse(result).data.fullurl;
// this.avatarUrl_short = JSON.parse(result).data.url;
// updateUserInfo({avatar:this.avatarUrl}).then(res=>{
// this.$refs.uToast.show({
// message:''
// })
// })
}
},
//
uploadFilePromise(url) {
uni.showLoading({
title: '上传中'
})
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: this.baseUrl+'api/common/upload',
filePath: url,
name: 'file',
header:{
token:getToken()
},
formData: {
},
success: (res) => {
if(JSON.parse(res.data).code==1){
setTimeout(() => {
uni.hideLoading();
this.finishImageList = [{url:JSON.parse(res.data).data.fullurl,path:JSON.parse(res.data).data.url}]
console.log(this.finishImageList, 'this.finishImageList')
resolve(res.data)
}, 1000)
}else{
uni.hideLoading();
uni.$u.toast(JSON.parse(res.data).msg)
resolve(res.data)
}
},
fail: (res) => {
uni.hideLoading();
console.log(res,"rrr")
}
});
})
},
sureIncome(){
this.$emit('sureIncome', {
id: this.incomeDetail.id,
})
// confirmPay({
// id: this.incomeDetail.id,
// }).then(res => {
// if(res.code === 1){
// this.$refs.uToast.show({
// message:''
// })
// const tem = setTimeout(() => {
// uni.navigateBack({
// delta:1
// })
// clearTimeout(tem)
// },1000)
// }
// })
},
lookPic(){
uni.previewImage({
urls: [this.incomeDetail.pay_voucher],
success: (res) => {
}
});
},
getPay(item){
this.activeIndex = item.id;
},
onCopyResult(type) {
    if (type==='success') {
this.$refs.uToast.show({
message:'复制成功'
})
    } else {
this.$refs.uToast.show({
message:'复制失败'
})
    }
},
getOrderDetails(){
incomeDetail({custom: { auth: true }}).then(res=>{
console.log(res, 'res');
if(res.data.length > 0){
this.incomeDetail = res.data[0]
if(this.incomeDetail.pay_voucher){
this.finishImageList = [{url:this.incomeDetail.pay_voucher,path:this.incomeDetail.pay_voucher}]
}
}else{
this.incomeDetail = {}
}
})
},
close() {
this.show = false
},
getText(){
privacyPolicy({id:4}).then(res=>{
this.content = res.data.content
})
},
},
destroyed() {
},
watch:{
}
}
</script>
<style scoped lang="scss">
.info{
padding: 10px 0 20px 10px;
background: #fff;
.title{
text-align: center;
color: #e0e00e;
margin-bottom: 10px;
}
}
.ping-zheng{
margin-top: 20px;
background-color: #fff;
text-align: center;
padding: 30px 0;
// image{
// img{
// width: 50% !important;
// height: 50% !important;
// }
// }
}
.single-page{
// min-height:calc(100vh - 45px);
background-color: #f5f5f5;
padding:24rpx;
.tabs{
height: 80rpx;
background-color: rgb(35, 96, 48);
padding: 6rpx;
border-radius: 5px;
display: flex;
.tabsItem{
flex:1;
text-align: center;
line-height: 70rpx;
font-size: 26rpx;
color: #ffffff;
}
.active{
background-color: #fff;
font-size: 30rpx;
font-weight: bold;
border-radius: 5px;
color: rgb(35, 96, 48);
}
}
.yhk{
width: 100%;
background-color: #FFFFFF;
margin-top:20rpx;
border-radius: 10px;
.list-input{
display: flex;
align-items: center;
padding: 0 4%;
height: 100rpx;
border-bottom: 2rpx solid #f6f6f6;
.title{
display: flex;
align-items: center;
width: 30%;
height: 100%;
text{
color: #236030;
font-size: 26rpx;
}
}
image{
margin-left:10rpx;
width:30rpx;
height:auto;
}
.content{
display: flex;
align-items: center;
width: 70%;
height: 100%;
justify-content: space-between;
input{
width: 100%;
height: 100%;
font-size: 26rpx;
color: #222222;
}
}
}
.yzmBtn{
background: rgb(35, 96, 48);
color: rgb(255, 255, 255);
margin-bottom: 5px;
padding: 0px;
width: 126px;
overflow: hidden;
font-size: 14px;
height: 38px;
line-height: 38px;
color: #fff;
text-align: center;
border-radius:10rpx;
}
}
.saveBtn{
background: rgb(35, 96, 48);
color: rgb(255, 255, 255);
border: 1px solid rgb(35, 96, 48);
overflow: hidden;
font-size: 28rpx;
height: 44px;
line-height: 44px;
text-align: center;
border-radius: 10rpx;
margin-top:50rpx;
}
.input-info{
padding: 0 6%;
.info{
display: flex;
align-items:center;
justify-content: space-between;
width: 100%;
height: 100rpx;
border-bottom: 2rpx solid #f6f6f6;
input{
width: 70%;
height: 100%;
font-size: 26rpx;
color: #222222;
}
.more{
display: flex;
align-items: center;
justify-content: flex-end;
width: 30%;
height: 100%;
.iconfont{
font-size: 34rpx;
}
.mo{
font-size: 26rpx;
padding-left: 20rpx;
margin-left: 10rpx;
border-left: 2rpx solid #EEEEEE;
}
}
}
}
}
.zfb{
text-align: center;
image{
width:200rpx;
height:200rpx;
margin:100rpx auto;
}
.mesInfo{
margin-top: 26rpx;
font-size: 26rpx;
color: #999;
}
}
.other-btn{
width: 75px !important;
height: 30px !important;
font-size: 13px !important;
line-height: 30px !important;
position: absolute !important;
right: 10px;
top: 10px !important;
margin-top: 0px !important;
}
</style>

@ -0,0 +1,355 @@
<template>
<view class="page">
<view class="totalContent">
<view class="totalitem">
<view class="price">
<text></text>
<text class="num">{{info.available_commission_amount}}</text>
</view>
<view class="descText">
可提现金额
</view>
</view>
<view class="withdraw-btn" @click="show=true">提现</view>
<!-- <view class="totalitem" style="border-left:1px solid #fff;">
<view class="price">
<text class="num">{{info.distribute_order_num}}</text>
</view>
<view class="descText">
订单数
</view>
</view> -->
</view>
<view class="yongjinTitle">
提现明细
</view>
<!-- 佣金明细 -->
<view class="record-list" v-show="tableData.length>0">
<view class="list" v-for="(item,index) in tableData" :key="index">
<!-- <image :src="baseUrl+item.avatar" mode="aspectFill" class="avatarPic"></image> -->
<view class="outer">
<view class="title-date">
<view class="title">
<text>提现金额</text>{{item.amount}}
</view>
<view class="date">
<text>提现时间</text>{{item.update_time_text}}
</view>
</view>
</view>
<view class="integral">
<text style="color: #22AA44;">{{item.total_commission_amount}}</text>
</view>
</view>
</view>
<view class="empty" v-show="tableData.length==0">
<image src="../../static/image/mescroll-empty.png" mode="widthFix"></image>
<view class="emptyText">
暂无数据
</view>
</view>
<u-modal z-index="99" :show="show" title="提现" :show-cancel-button="true" @cancel="show=false" @confirm="submit">
<view class="slot-content">
<u-radio-group style="margin-top: 10px;" v-model="value" @change="radioGroupChange">
<u-radio
@change="radioChange"
style="margin-left: 10px;"
v-for="(item, index) in list" :key="index"
:name="item.name"
:disabled="item.disabled"
>
{{item.name}}
</u-radio>
</u-radio-group>
<u-input type="digit" v-model="amount" style="margin-top: 20px;" placeholder="请输入充值金额"></u-input>
<view v-if="validate" style="color: red;">{{amount?'提现金额不能大于可提现金额':'请输入充值金额'}}</view>
</view>
</u-modal>
<u-toast ref="uToast"></u-toast>
</view>
</template>
<script>
import {getUserInfo,getWithdrawList,withdraw} from '@/common/api.js'
export default {
data() {
return {
tabList:[
{id:1,name:'已到账'},
{id:0,name:'未到账'},
],
activeIndex:1,
info:{
},
page:1,
limit:10,
tableData:[],
total:0,
show: false,
value: '银联',
amount: '',
list: [
{
name: '银联',
disabled: false
},
{
name: '支付宝',
disabled: false
},
{
name: '微信',
disabled: false
}
],
typeMap: {
'银联': 'bank',
'微信': 'wechat',
'支付宝': 'alipay',
},
validate: false,
};
},
methods:{
submit(){
console.log(Number(this.info.available_commission_amount), 'this.amount')
if(!this.amount||Number(this.amount) > Number(this.info.available_commission_amount)){
this.validate = true
return;
}
withdraw({
amount: this.amount,
method: this.typeMap[this.value]
}).then(res => {
console.log(res,'res')
if(res.code === 1){
this.show = false;
this.$refs.uToast.show({
message:'申请已提交'
})
const tem = setTimeout(() => {
uni.navigateBack({
delta:1
})
clearTimeout(tem)
},2000)
}
})
},
getInfo(){
getUserInfo({status:this.activeIndex}).then(res=>{
this.info = res.data
})
},
getList(val){
let params={
page:this.page,
limit:this.limit,
}
getWithdrawList(params).then(res=>{
console.log(res, 'list')
if(val){
this.tableData.push(...res.data.data)
}else{
this.tableData = res.data.data;
this.total = res.data.total
}
})
},
getItem(item){
this.page = 1;
this.activeIndex = item.id;
this.getInfo();
this.getList()
},
},
onReachBottom() {
if(this.tableData.length<this.total){
this.page++;
this.getList('over')
}
},
mounted(){
this.getInfo()
this.getList()
}
}
</script>
<style scoped lang="scss">
.page{
// position: absolute;
// left: 0;
// top: 0;
// width: 100%;
// height: 100%;
// background-color: #FFFFFF;
}
.tabs{
height: 80rpx;
background-color: rgb(35, 96, 48);
padding: 6rpx;
border-radius: 5px;
display: flex;
margin:0 24rpx;
.tabsItem{
flex:1;
text-align: center;
line-height: 70rpx;
font-size: 26rpx;
color: #ffffff;
}
.active{
background-color: #fff;
font-size: 30rpx;
font-weight: bold;
border-radius: 5px;
color: rgb(35, 96, 48);
}
}
.withdraw-btn{
width: 60px;
height: 30px;
line-height: 30px;
background: #fff;
border-radius: 30px;
font-size: 12px;
font-weight: 500;
color: #9f751f;
position: absolute;
right: 15px;
top: 20px;
text-align: center;
}
.totalContent{
height: 160rpx;
background: url('../../static/image/total-bg.png');
background-size: cover;
background-repeat: no-repeat;
border-radius: 6px;
overflow: hidden;
position: relative;
// width:94%;
// margin:20rpx auto 0 auto;
display: flex;
padding:40rpx 0;
margin:20rpx 24rpx;
.totalitem{
flex:1;
text-align: center;
display: flex;
flex-direction: column;
// justify-content: center;
.price{
display: flex;
align-items: center;
justify-content: center;
text{
font-size: 30rpx;
color:#fff;
}
.num{
font-size: 48rpx;
}
}
.descText{
text-align: center;
font-size: 28rpx;
color:#fff;
}
}
}
.yongjinTitle{
padding: 13px 0 4px 0;
font-size: 30rpx;
color: #9f751f;
margin:0 24rpx;
}
.record-list{
// width: 100%;
background-color: #FFFFFF;
padding:0 24rpx;
margin:0 24rpx;
border-radius: 10rpx;
.list{
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 2rpx solid #f6f6f6;
.avatarPic{
width:100rpx;
height:100rpx;
border-radius: 50%;
}
.outer{
flex:1;
margin-left:20rpx;
padding:20rpx 0;
}
.title-date{
height: 100%;
.title{
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 50rpx;
text{
font-size: 28rpx;
font-weight: bold;
// color: #236030;
color: #959595;
}
}
.date{
display: flex;
align-items: center;
width: 100%;
height: 60rpx;
display: flex;
align-items: center;
justify-content: space-between;
text{
font-size: 28rpx;
font-weight: bold;
color: #959595;
}
}
}
.integral{
display: flex;
align-items: center;
height: 100%;
text{
font-size: 36rpx;
font-weight: bold;
color: $base;
}
}
}
}
.empty{
text-align: center;
image{
width:50%;
height:auto
}
.emptyText{
text-align: center;
margin-top:20rpx;
color:#aaa;
}
}
</style>

@ -157,6 +157,10 @@ export default {
getDetailsHandle(id){
getgoodsDetail({id:id,custom: { auth: true }}).then(res=>{
res.data = {
...res.data.goods,
...res.data
}
this.swiperList.push({
url: res.data.image
})

@ -94,6 +94,13 @@ export default {
getGoodsList(){
this.pagesList=[]
getGoodsList({page:this.page,limit:20,warehouse_id:this.warehouse_id}).then(res=>{
res.data.data.forEach((item,index) => {
res.data.data[index] = {
...(item.goods),
...item,
}
})
console.log(res.data.data, 'res.data.data')
this.goodsList = res.data.data;
this.total = res.data.total;

@ -2,11 +2,11 @@
<view class="page">
<!-- 订单tab -->
<view class="order-tab">
<view class="tab" :class="{'action':status==-1}" @click="onOrderTab(-1)">
<text>我的仓库</text>
<view v-for="(item,index) in tabList" :key="index" class="tab" :class="{'action':item.status.join(',') === status.join(',')}" @click="onOrderTab(item.status)">
<text>{{item.name}}</text>
<text class="line"></text>
</view>
<view class="tab" :class="{'action':status==0}" @click="onOrderTab(0)">
<!-- <view class="tab" :class="{'action':status==0}" @click="onOrderTab(0)">
<text>付款确认</text>
<text class="line"></text>
</view>
@ -21,7 +21,7 @@
<view class="tab" :class="{'action':status==4}" @click="onOrderTab(4)">
<text>发货状态</text>
<text class="line"></text>
</view>
</view> -->
</view>
<!-- 订单列表 -->
<view class="order-list">
@ -54,7 +54,7 @@
</view>
</view>
</view>
<view class="status-btn" v-if="item.status==0">
<!-- <view class="status-btn" v-if="item.status==0">
<view class="btn" style="margin:0;" @click.native.stop="cancelOrderHandle(item)">取消订单</view>
<view class="btnGroup">
<view class="btn" @click.native.stop="uploadPay(item,index)">上传凭证</view>
@ -62,22 +62,22 @@
<view class="btn" @click.native.stop="confirmPay(item)">支付确认</view>
</view>
</view>
</view> -->
<view class="status-btn" v-if="item.status==2">
<view class="btn" style="margin:0;" @click.native.stop="changeStatusHandle(item)">取货</view>
<view class="btn" style="margin:0;" @click.native.stop="changeStatusHandle(item)">提物</view>
<view class="btnGroup">
<view class="btn" @click.native.stop="weituoHandle(item)">委托上架</view>
</view>
</view>
<view class="status-btn" v-if="item.status==4">
<!-- <view class="status-btn" v-if="item.status==4">
<view class="btnGroup">
<view class="btn" @click.native.stop="tixingHandle(item)">提醒发货</view>
</view>
</view>
</view> -->
</view>
</view>
@ -117,7 +117,7 @@
return {
page:1,
limit:10,
status:null,
status:[-2],
tableData:[],
total:0,
content:'确定取消订单',
@ -128,19 +128,37 @@
tiquSelected:{},
tool:'',
statusList:[
{id:0,name:'待付'},
{id:1,name:'待确认'},
{id:2,name:'待委托'},
{id:3,name:'已投诉'},
{id:4,name:'待发货'},
{id:5,name:'待收货'},
{id:0,name:'待付'},
{id:1,name:'已付款'},
{id:2,name:'待转售'},
{id:3,name:'委卖中'},
{id:4,name:'提货中'},
{id:5,name:'已提货'},
{id:-1,name:'已取消'},
{id:7,name:'已上架'},
{id:6,name:'已完成'},
],
tabList:[
{name:'全部',status:[-2]},
{name:'待付款',status:[0]},
{name:'已付款',status:[1]},
{name:'待转售',status:[2]},
{name:'提货中/已提货',status:[4,5]},
{name:'已结束',status:[6]},
{name:'已取消',status:[-1]},
]
};
},
onLoad(params) {
this.status = params.type;
let arr = params.type.split(',');
if(arr.length > 0){
arr.forEach((item,index) => {
arr[index] = Number(item)
});
}else{
arr = [-2]
}
console.log(arr, 'arr')
this.status = arr;
this.getList()
},
methods:{
@ -169,7 +187,7 @@
let params={
page:this.page,
limit:this.limit,
status:this.status==-1?'':this.status
status:this.status==-2?'':this.status.join(',')
}
getBuyerOrderList({...params,custom: { auth: true }}).then(res=>{
if(val){
@ -255,11 +273,12 @@
* 订单tab点击
*/
onOrderTab(type){
if(type==4){
this.status="4,5"
}else{
this.status = type;
}
this.status = type;
// if(type==4){
// this.status="4,5"
// }else{
// this.status = type;
// }
this.getList()
},
/**
@ -341,15 +360,18 @@
z-index: 10;
display: flex;
align-items: center;
width: 100%;
// width: 100%;
overflow-x: auto;
height: 90rpx;
background: rgb(35, 96, 48);
.tab{
position: relative;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
width: 20%;
padding: 0 20px;
// width: 20%;
height: 80%;
text{
font-size: 26rpx;

@ -2,24 +2,8 @@
<view class="page">
<!-- 订单tab -->
<view class="order-tab">
<view class="tab" :class="{'action':status==-1}" @click="onOrderTab(-1)">
<text>我的仓库</text>
<text class="line"></text>
</view>
<view class="tab" :class="{'action':status==0}" @click="onOrderTab(0)">
<text>付款确认</text>
<text class="line"></text>
</view>
<view class="tab" :class="{'action':status==1}" @click="onOrderTab(1)">
<text>收款确认</text>
<text class="line"></text>
</view>
<view class="tab" :class="{'action':status==3}" @click="onOrderTab(3)">
<text>投诉订单</text>
<text class="line"></text>
</view>
<view class="tab" :class="{'action':status==4}" @click="onOrderTab(4)">
<text>发货状态</text>
<view v-for="(item,index) in tabList" :key="index" class="tab" :class="{'action':item.status.join(',') === status.join(',')}" @click="onOrderTab(item.status)">
<text>{{item.name}}</text>
<text class="line"></text>
</view>
</view>
@ -53,21 +37,21 @@
</view>
</view>
</view>
<view class="status-btn" v-show="item.status==1">
<!-- <view class="status-btn" v-show="item.status==1">
<view class="btnGroup">
<view class="btn" @click.native.stop="confirmPay(item,3)">投诉</view>
<view class="btn" @click.native.stop="confirmPay(item,2)">确认收款</view>
</view>
</view>
<view class="status-btn" v-show="item.status==3">
</view> -->
<!-- <view class="status-btn" v-show="item.status==3">
<view class="btnGroup">
<view class="btn" @click.native.stop="confirmPay(item,2)">取消投诉</view>
</view>
</view>
</view> -->
</view>
</view>
<view class="empty" v-else>
@ -87,24 +71,39 @@
return {
page:1,
limit:10,
status:null,
status:[-2],
tableData:[],
total:0,
tool:'',
statusList:[
{id:0,name:'待付'},
{id:1,name:'待确认'},
{id:2,name:'待委托'},
{id:3,name:'已投诉'},
{id:4,name:'待发货'},
{id:5,name:'待收货'},
{id:0,name:'待付'},
{id:1,name:'已付款'},
{id:2,name:'待转售'},
{id:3,name:'委卖中'},
{id:4,name:'提货中'},
{id:5,name:'已提货'},
{id:-1,name:'已取消'},
{id:7,name:'已上架'},
{id:6,name:'已完成'},
],
tabList:[
{name:'全部',status:[-2]},
{name:'待付款',status:[10]},
{name:'上架中',status:[11]},
{name:'已结束',status:[6]},
]
};
},
onLoad(params) {
this.status = params.type;
let arr = params.type.split(',');
if(arr.length > 0){
arr.forEach((item,index) => {
arr[index] = Number(item)
});
}else{
arr = [-2]
}
console.log(arr, 'arr')
this.status = arr;
this.getList()
},
methods:{
@ -122,7 +121,7 @@
let params={
page:this.page,
limit:this.limit,
status:this.status==-1?'':this.status
status:this.status==-2?'':this.status.join(',')
}
getSellerOrderList({...params,custom: { auth: true }}).then(res=>{
if(val){
@ -195,14 +194,17 @@
display: flex;
align-items: center;
width: 100%;
// overflow-x: auto;
height: 90rpx;
background: rgb(35, 96, 48);
.tab{
position: relative;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
width: 20%;
padding: 0 20px;
width: 25%;
height: 80%;
text{
font-size: 26rpx;

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 964 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>商城</title><script>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><link rel=stylesheet href=/static/index.97465e7b.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/static/js/chunk-vendors.a1e8ef11.js></script><script src=/static/js/index.33b549b2.js></script></body></html>
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><link rel=stylesheet href=/static/index.97465e7b.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/static/js/chunk-vendors.aabf9ea3.js></script><script src=/static/js/index.0afd1cc1.js></script></body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 964 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save