供应商报价,绑卡,提现页面开发
This commit is contained in:
parent
e0cead7127
commit
aef4b7a279
27
api/supplier.js
Normal file
27
api/supplier.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import request from "@/utils/requestSupplier.js";
|
||||||
|
//报价单列表
|
||||||
|
export const bindCradApi = (data) => {
|
||||||
|
return request.post('user/userbank/add_bank', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
//报价单提交
|
||||||
|
export const bankListApi = (data) => {
|
||||||
|
return request.get('bank/bank/lists', data);
|
||||||
|
}
|
||||||
|
export const amountAccountApi = (data) => {
|
||||||
|
return request.get('user/UserWithdraw/amount_account', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const UserWithdrawApi = (data) => {
|
||||||
|
return request.post('user/UserWithdraw/withdraw', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const UserWithdrawIndexApi = (data) => {
|
||||||
|
return request.get('user/UserWithdraw/index', data);
|
||||||
|
}
|
||||||
|
|
||||||
|
export const UserWithdrawListsApi = (data) => {
|
||||||
|
return request.get('user/UserWithdraw/lists', data);
|
||||||
|
}
|
@ -3,17 +3,7 @@
|
|||||||
<view v-if="newData.status && newData.status.status" style="height: 100rpx;"></view>
|
<view v-if="newData.status && newData.status.status" style="height: 100rpx;"></view>
|
||||||
<view class="foot" v-if="newData.status && newData.status.status">
|
<view class="foot" v-if="newData.status && newData.status.status">
|
||||||
<view class="page-footer" id="target" :style="{'background-color':newData.bgColor.color[0].item}">
|
<view class="page-footer" id="target" :style="{'background-color':newData.bgColor.color[0].item}">
|
||||||
<view class="foot-item" v-for="(item,index) in newData.menuList" :key="index" @click="goRouter(item)">
|
sdafsdfsdfsdfsdfsdf,dsfsdfsdfsdf
|
||||||
<block v-if="item.link == activeRouter">
|
|
||||||
<image :src="item.imgList[0]"></image>
|
|
||||||
<view class="txt" :style="{color:newData.activeTxtColor.color[0].item}">{{item.name}}
|
|
||||||
</view>
|
|
||||||
</block>
|
|
||||||
<block v-else>
|
|
||||||
<image :src="item.imgList[1]"></image>
|
|
||||||
<view class="txt" :style="{color:newData.txtColor.color[0].item}">{{item.name}}</view>
|
|
||||||
</block>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -13,7 +13,7 @@ let VUE_APP_WS_URL = `ws://${location.hostname}?type=user`
|
|||||||
|
|
||||||
let openPlantGrass = '-openPlantGrass-'
|
let openPlantGrass = '-openPlantGrass-'
|
||||||
|
|
||||||
let httpSix, httpApi;
|
let httpSix, httpApi, httpTwo;
|
||||||
|
|
||||||
// const env = 'dev'; // 开发
|
// const env = 'dev'; // 开发
|
||||||
// const env = 'prod'; // 生产
|
// const env = 'prod'; // 生产
|
||||||
@ -23,16 +23,19 @@ switch (env) {
|
|||||||
case 'prod':
|
case 'prod':
|
||||||
httpApi = 'https://shop.lihaink.cn' // 生产
|
httpApi = 'https://shop.lihaink.cn' // 生产
|
||||||
httpSix = 'https://new-worker.lihaink.cn'
|
httpSix = 'https://new-worker.lihaink.cn'
|
||||||
|
httpTwo = 'https://erp.lihaink.cn'
|
||||||
wsApi = 'wss://shop.lihaink.cn'
|
wsApi = 'wss://shop.lihaink.cn'
|
||||||
break;
|
break;
|
||||||
case 'prew':
|
case 'prew':
|
||||||
httpApi = 'https://test.shop.lihaink.cn' //预发布环境
|
httpApi = 'https://test.shop.lihaink.cn' //预发布环境
|
||||||
httpSix = 'https://ceshi-new-wokr.lihaink.cn'
|
httpSix = 'https://ceshi-new-wokr.lihaink.cn'
|
||||||
|
httpTwo = 'https://erp.lihaink.cn'
|
||||||
wsApi = 'wss://test.shop.lihaink.cn'
|
wsApi = 'wss://test.shop.lihaink.cn'
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
httpApi = "https://crmeb-test.shop.lihaink.cn" // 测试
|
httpApi = "https://crmeb-test.shop.lihaink.cn" // 测试
|
||||||
httpSix = 'https://ceshi-new-wokr.lihaink.cn'
|
httpSix = 'https://ceshi-new-wokr.lihaink.cn'
|
||||||
|
httpTwo = 'https://erp.lihaink.cn'
|
||||||
// wsApi = 'ws://192.168.1.22:8324'
|
// wsApi = 'ws://192.168.1.22:8324'
|
||||||
wsApi = 'wss://crmeb-test.shop.lihaink.cn'
|
wsApi = 'wss://crmeb-test.shop.lihaink.cn'
|
||||||
}
|
}
|
||||||
@ -59,6 +62,7 @@ module.exports = {
|
|||||||
VUE_APP_WS_URL: process.env.NODE_ENV == 'development' ? `${wsApi}?type=user` : VUE_APP_WS_URL,
|
VUE_APP_WS_URL: process.env.NODE_ENV == 'development' ? `${wsApi}?type=user` : VUE_APP_WS_URL,
|
||||||
// #endif
|
// #endif
|
||||||
HTTP_REQUEST_URL_SIX: httpSix,
|
HTTP_REQUEST_URL_SIX: httpSix,
|
||||||
|
HTTP_REQUEST_URL_TWO: httpTwo,
|
||||||
openPlantGrass: openPlantGrass,
|
openPlantGrass: openPlantGrass,
|
||||||
ENV: env,
|
ENV: env,
|
||||||
HEADER: {
|
HEADER: {
|
||||||
|
45
pages.json
45
pages.json
@ -55,7 +55,46 @@
|
|||||||
"navigationBarTitleText": "批发",
|
"navigationBarTitleText": "批发",
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"path": "pages/quote/list",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarTitleText": "报价",
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/quote/index",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarTitleText": "报价订单"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/quote/supplierFinancialy",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarTitleText": "提现"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/quote/financialyDeatil",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarTitleText": "提现明细"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/quote/bindAccout",
|
||||||
|
"style": {
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationBarTitleText": "账户绑定"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
"path": "pages/gather/gather",
|
"path": "pages/gather/gather",
|
||||||
"style": {
|
"style": {
|
||||||
"enablePullDownRefresh": true,
|
"enablePullDownRefresh": true,
|
||||||
@ -81,7 +120,7 @@
|
|||||||
"path": "pages/order_addcart/order_addcart",
|
"path": "pages/order_addcart/order_addcart",
|
||||||
"style": {
|
"style": {
|
||||||
"enablePullDownRefresh": true,
|
"enablePullDownRefresh": true,
|
||||||
"navigationBarTitleText": "购物车",
|
"navigationBarTitleText": "报价",
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
@ -1628,7 +1667,7 @@
|
|||||||
"pagePath": "pages/order_addcart/order_addcart",
|
"pagePath": "pages/order_addcart/order_addcart",
|
||||||
"iconPath": "static/tabbar_icon/d.png",
|
"iconPath": "static/tabbar_icon/d.png",
|
||||||
"selectedIconPath": "static/tabbar_icon/d-a.png",
|
"selectedIconPath": "static/tabbar_icon/d-a.png",
|
||||||
"text": "购物车"
|
"text": "报价"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"pagePath": "pages/user/index",
|
"pagePath": "pages/user/index",
|
||||||
|
1581
pages/order_addcart/order_addcart - 副本.vue
Normal file
1581
pages/order_addcart/order_addcart - 副本.vue
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
246
pages/quote/bindAccout.vue
Normal file
246
pages/quote/bindAccout.vue
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="action">
|
||||||
|
<view class="">
|
||||||
|
提现至
|
||||||
|
</view>
|
||||||
|
<view style="font-weight: bold;">
|
||||||
|
{{form.is_own?'对公账户':'个人账户'}}
|
||||||
|
</view>
|
||||||
|
<view style="display: flex;align-items: center;color: #20B128;" @click="showPop1=true">
|
||||||
|
<text>账户绑定</text> <u-icon color="#20B128" name="arrow-right"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="form">
|
||||||
|
<u-form labelPosition="left" borderBottom :label-style="{fontSize:'30rpx'}" labelWidth='70'>
|
||||||
|
<u-form-item label="开户银行" prop="userInfo.name" borderBottom ref="item1" @click="showPop=true">
|
||||||
|
<text style="padding-left: 20rpx;" v-if="form.bank_name">{{form.bank_name}}</text>
|
||||||
|
<text v-else style="color: #20B128;padding-left: 20rpx;">点击选择开户银行</text>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="账户名称" prop="userInfo.name" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="form.name" placeholder="请输入账户名称" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="银行账号" prop="userInfo.name" borderBottom ref="item1">
|
||||||
|
<u-input maxlength="19" style="border: none;" v-model="form.bank_code" type='number'
|
||||||
|
placeholder="请输入银行账号" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="开户网点" prop="userInfo.name" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="form.bank_branch" placeholder="请输入开户网点" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item v-if="!form.is_own" label="身份证" prop="userInfo.name" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="form.id_card" placeholder="请输入身份证" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item v-if="!form.is_own" label="电话" prop="userInfo.name" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="form.phone" placeholder="请输入电话" />
|
||||||
|
</u-form-item>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
<view class="" style="margin-top: 20rpx;color: red;" v-if="false">
|
||||||
|
审核失败,请重新提交审核
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="submit-btn">
|
||||||
|
<u-button text="提交绑定" @click="submit" shape="circle" color="#50C758"></u-button>
|
||||||
|
</view>
|
||||||
|
<u-popup :show="showPop" :round="10" mode="bottom" @close="showPop=false" @open="showPop=true">
|
||||||
|
<view class="popContent">
|
||||||
|
<view style="text-align: center;font-weight: bold;">请选择银行</view>
|
||||||
|
<u-icon name="close" color="#303133" size="24" @click="showPop=false"
|
||||||
|
style="position: absolute;top: 20rpx;right: 20rpx;"></u-icon>
|
||||||
|
<view class="bank-list">
|
||||||
|
<view class="bank-li" v-for="item in bankList" :key='item.id' @click="choseBank(item)">
|
||||||
|
<u-image :show-loading="true" :src="item.image" width="60rpx" height="60rpx"></u-image>
|
||||||
|
<text style="margin-left: 20rpx;">{{item.name}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-popup :show="showPop1" :round="10" mode="bottom" @close="showPop1=false" @open="showPop1=true">
|
||||||
|
<view class="popContent">
|
||||||
|
<view style="text-align: center;font-weight: bold;">请选择提现账户</view>
|
||||||
|
<u-icon name="close" color="#303133" size="24" @click="showPop1=false"
|
||||||
|
style="position: absolute;top: 20rpx;right: 20rpx;"></u-icon>
|
||||||
|
<view class="bank-list">
|
||||||
|
<view class="bank-li" @click="choseAccount(0)">
|
||||||
|
<text>个人账户</text>
|
||||||
|
</view>
|
||||||
|
<view class="bank-li" @click="choseAccount(1)">
|
||||||
|
<text>对公账户</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
bindCradApi
|
||||||
|
} from "@/api/supplier.js"
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
"name": "",
|
||||||
|
"bank_id": 1,
|
||||||
|
"bank_name": '',
|
||||||
|
"bank_code": "",
|
||||||
|
"bank_branch": "",
|
||||||
|
"financial_img": "",
|
||||||
|
"is_own": 0,
|
||||||
|
phone: '',
|
||||||
|
"id_card": "",
|
||||||
|
// "mer_id": userStore?.userInfo?.merchant?.mer_id,
|
||||||
|
// supplier_id: userStore?.userInfo?.supplier?.id,
|
||||||
|
// user_type: userStore?.userInfo?.merchant?.mer_id ? '1' : '2'
|
||||||
|
|
||||||
|
},
|
||||||
|
showPop: false,
|
||||||
|
bankList: [{
|
||||||
|
"id": 2,
|
||||||
|
"name": "农业银行5445",
|
||||||
|
"image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114200646493168.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name": "中国银行",
|
||||||
|
"image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114142858ca3838.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
hasBindAccount: [{
|
||||||
|
"id": 297,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"mer_id": 500,
|
||||||
|
"bank_id": 1,
|
||||||
|
"bank_code": "6213362109985515778",
|
||||||
|
"bank_branch": "迎晖路支行",
|
||||||
|
"name": "赵明军",
|
||||||
|
"id_card": "513701200012105613",
|
||||||
|
"phone": "19130550023",
|
||||||
|
"financial_img": "",
|
||||||
|
"is_own": 0,
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": null,
|
||||||
|
"admin_id": 1,
|
||||||
|
"create_time": "2024-05-14 16:49:31",
|
||||||
|
"update_time": "2024-05-14 16:50:04",
|
||||||
|
"delete_time": null,
|
||||||
|
"bank_name": "中国银行",
|
||||||
|
"bank_image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114142858ca3838.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 298,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"mer_id": 500,
|
||||||
|
"bank_id": 1,
|
||||||
|
"bank_code": "6213362109985515778",
|
||||||
|
"bank_branch": "迎晖路支行",
|
||||||
|
"name": "赵明军",
|
||||||
|
"id_card": "513701200012105613",
|
||||||
|
"phone": "19130550023",
|
||||||
|
"financial_img": "",
|
||||||
|
"is_own": 1,
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": null,
|
||||||
|
"admin_id": 1,
|
||||||
|
"create_time": "2024-05-14 18:16:21",
|
||||||
|
"update_time": "2024-05-14 18:17:21",
|
||||||
|
"delete_time": null,
|
||||||
|
"bank_name": "中国银行",
|
||||||
|
"bank_image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114142858ca3838.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
showPop1: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
navgo(url) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getFormData(form, target) {
|
||||||
|
if (!target) {
|
||||||
|
form.value = {}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
form.name = target.name || ''
|
||||||
|
form.bank_id = target.bank_id || ''
|
||||||
|
form.bank_name = target.bank_name || ''
|
||||||
|
form.bank_code = target.bank_code || ''
|
||||||
|
form.bank_branch = target.bank_branch || ''
|
||||||
|
form.phone = target.phone || ''
|
||||||
|
form.id_card = target.id_card || ''
|
||||||
|
form.is_own = target.is_own
|
||||||
|
},
|
||||||
|
choseAccount(type) {
|
||||||
|
this.getFormData(this.form, this.hasBindAccount[type])
|
||||||
|
this.showPop1 = false
|
||||||
|
},
|
||||||
|
|
||||||
|
choseBank(item) {
|
||||||
|
this.form.bank_name = item.name
|
||||||
|
this.form.bank_id = item.id
|
||||||
|
this.showPop = false
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
bindCradApi({
|
||||||
|
...this.form
|
||||||
|
}).then(res => {
|
||||||
|
uni.navigateBack()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
uni.showTabBar()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.content {
|
||||||
|
padding: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popContent {
|
||||||
|
padding: 20rpx;
|
||||||
|
|
||||||
|
.bank-list {
|
||||||
|
overflow-y: auto;
|
||||||
|
position: relative;
|
||||||
|
max-height: 40vh;
|
||||||
|
|
||||||
|
.bank-li {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 20rpx;
|
||||||
|
border-bottom: 1px solid #F8F9FA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.action {
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form {
|
||||||
|
padding: 28rpx 30rpx;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit-btn {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 146rpx;
|
||||||
|
width: 710rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
520
pages/quote/financialyDeatil.vue
Normal file
520
pages/quote/financialyDeatil.vue
Normal file
@ -0,0 +1,520 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="head">
|
||||||
|
<view class="head_conent">
|
||||||
|
<view class="sum">
|
||||||
|
<view class="text">已提现金额</view>
|
||||||
|
<u-count-to class="num" style="color: #F84221;" :startVal="0" :endVal="total" :decimals="2" bold
|
||||||
|
font-size="22"></u-count-to>
|
||||||
|
</view>
|
||||||
|
<view class="line"></view>
|
||||||
|
<view class="sum">
|
||||||
|
<view class="text">已提现次数</view>
|
||||||
|
<u-count-to class="num" :startVal="0" :endVal="count" bold font-size="22"></u-count-to>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="margin-top: 20rpx; display: flex;align-items: center;" @click="showDate=true">
|
||||||
|
<text>{{formatTimestampToYearMonth(nowTimes) }}</text> <u-icon name="arrow-down"></u-icon>
|
||||||
|
</view>
|
||||||
|
<view class="recoder" v-if="lists.length">
|
||||||
|
<view class="card" v-for="(item,index) in lists" :key="index">
|
||||||
|
<view class="right">
|
||||||
|
<view class="item" style="justify-content: flex-start;">
|
||||||
|
<text class="rest">余额提现至</text>
|
||||||
|
<text v-if="item.merchant_bank_info.bank_code"
|
||||||
|
class="code">({{item.merchant_bank_info.bank_code.substring(item.merchant_bank_info.bank_code.length - 4)}})</text>
|
||||||
|
<text class="withdraw-type legal_company">{{ item.merchant_bank_info.is_own?"对公" :"个人"}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="item_title">
|
||||||
|
<text>{{item.merchant_bank_info.bank_info.name }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="item_money">+{{item.amount}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="item-time">{{item.create_time}}</view>
|
||||||
|
{{item.is_check==1?'审核通过':item.is_check==2?"审核不通过":"待审核" }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="remark" v-if="item.fail_msg">{{item.fail_msg}}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<up-empty v-else mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png">
|
||||||
|
</up-empty>
|
||||||
|
<u-datetime-picker :show="showDate" @confirm='confirmDate' :maxDate='now' @cancel='showDate=false'
|
||||||
|
@close='showDate=false' v-model="nowTimes" mode="year-month"></u-datetime-picker>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
keyword: '',
|
||||||
|
total: "",
|
||||||
|
count: "",
|
||||||
|
nowTimes: '',
|
||||||
|
now: new Date().getTime(),
|
||||||
|
showDate: false,
|
||||||
|
lists: [{
|
||||||
|
"id": 11,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 297,
|
||||||
|
"amount": "80.00",
|
||||||
|
"is_check": 0,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 0,
|
||||||
|
"arrival_proof": null,
|
||||||
|
"create_time": "2024-05-15 10:56:43",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"id": 297,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"mer_id": 500,
|
||||||
|
"bank_id": 1,
|
||||||
|
"bank_code": "6213362109985515778",
|
||||||
|
"bank_branch": "迎晖路支行",
|
||||||
|
"name": "赵明军",
|
||||||
|
"id_card": "513701200012105613",
|
||||||
|
"phone": "19130550023",
|
||||||
|
"financial_img": "",
|
||||||
|
"is_own": 0,
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": null,
|
||||||
|
"admin_id": 1,
|
||||||
|
"create_time": "2024-05-14 16:49:31",
|
||||||
|
"update_time": "2024-05-14 16:50:04",
|
||||||
|
"delete_time": null,
|
||||||
|
"bank_info": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "中国银行",
|
||||||
|
"image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114142858ca3838.png",
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 297,
|
||||||
|
"amount": "58.00",
|
||||||
|
"is_check": 0,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 0,
|
||||||
|
"arrival_proof": null,
|
||||||
|
"create_time": "2024-05-15 10:55:34",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"id": 297,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"mer_id": 500,
|
||||||
|
"bank_id": 1,
|
||||||
|
"bank_code": "6213362109985515778",
|
||||||
|
"bank_branch": "迎晖路支行",
|
||||||
|
"name": "赵明军",
|
||||||
|
"id_card": "513701200012105613",
|
||||||
|
"phone": "19130550023",
|
||||||
|
"financial_img": "",
|
||||||
|
"is_own": 0,
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": null,
|
||||||
|
"admin_id": 1,
|
||||||
|
"create_time": "2024-05-14 16:49:31",
|
||||||
|
"update_time": "2024-05-14 16:50:04",
|
||||||
|
"delete_time": null,
|
||||||
|
"bank_info": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "中国银行",
|
||||||
|
"image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114142858ca3838.png",
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 9,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 297,
|
||||||
|
"amount": "7.00",
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 1,
|
||||||
|
"arrival_proof": "[\"https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240514/20240514112247c16164097.png\", \"https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240514/202405141122478b56c8734.png\", \"https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240514/20240514112247e80105959.png\"]",
|
||||||
|
"create_time": "2024-05-14 21:54:14",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"id": 297,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"mer_id": 500,
|
||||||
|
"bank_id": 1,
|
||||||
|
"bank_code": "6213362109985515778",
|
||||||
|
"bank_branch": "迎晖路支行",
|
||||||
|
"name": "赵明军",
|
||||||
|
"id_card": "513701200012105613",
|
||||||
|
"phone": "19130550023",
|
||||||
|
"financial_img": "",
|
||||||
|
"is_own": 0,
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": null,
|
||||||
|
"admin_id": 1,
|
||||||
|
"create_time": "2024-05-14 16:49:31",
|
||||||
|
"update_time": "2024-05-14 16:50:04",
|
||||||
|
"delete_time": null,
|
||||||
|
"bank_info": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "中国银行",
|
||||||
|
"image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114142858ca3838.png",
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 297,
|
||||||
|
"amount": "12.00",
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 1,
|
||||||
|
"arrival_proof": "[\"https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240514/202405141811330f05a4138.png\", \"https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240514/2024051411224760ab52438.png\"]",
|
||||||
|
"create_time": "2024-05-14 18:20:12",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"id": 297,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"mer_id": 500,
|
||||||
|
"bank_id": 1,
|
||||||
|
"bank_code": "6213362109985515778",
|
||||||
|
"bank_branch": "迎晖路支行",
|
||||||
|
"name": "赵明军",
|
||||||
|
"id_card": "513701200012105613",
|
||||||
|
"phone": "19130550023",
|
||||||
|
"financial_img": "",
|
||||||
|
"is_own": 0,
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": null,
|
||||||
|
"admin_id": 1,
|
||||||
|
"create_time": "2024-05-14 16:49:31",
|
||||||
|
"update_time": "2024-05-14 16:50:04",
|
||||||
|
"delete_time": null,
|
||||||
|
"bank_info": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "中国银行",
|
||||||
|
"image": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240510/20240510114142858ca3838.png",
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 296,
|
||||||
|
"amount": "100.00",
|
||||||
|
"is_check": 1,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 0,
|
||||||
|
"arrival_proof": null,
|
||||||
|
"create_time": "2024-05-14 17:04:13",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"bank_info": "[]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 296,
|
||||||
|
"amount": "100.00",
|
||||||
|
"is_check": 0,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 0,
|
||||||
|
"arrival_proof": null,
|
||||||
|
"create_time": "2024-05-14 17:02:59",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"bank_info": "[]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 296,
|
||||||
|
"amount": "100.00",
|
||||||
|
"is_check": 0,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 0,
|
||||||
|
"arrival_proof": null,
|
||||||
|
"create_time": "2024-05-14 15:51:02",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"bank_info": "[]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"mer_id": 500,
|
||||||
|
"supplier_id": 0,
|
||||||
|
"merchant_bank_id": 296,
|
||||||
|
"amount": "100.00",
|
||||||
|
"is_check": 0,
|
||||||
|
"fail_msg": "",
|
||||||
|
"is_arrival": 0,
|
||||||
|
"arrival_proof": null,
|
||||||
|
"create_time": "2024-05-14 14:35:47",
|
||||||
|
"merchant_bank_info": {
|
||||||
|
"bank_info": "[]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
navgo(url) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
formatTimestampToYearMonth(timestamp) {
|
||||||
|
var date = new Date(timestamp);
|
||||||
|
var year = date.getFullYear();
|
||||||
|
var month = date.getMonth() + 1; // 月份是从0开始的,所以需要加1
|
||||||
|
if (month < 10) {
|
||||||
|
month = '0' + month; // 如果月份小于10,则在前面补零
|
||||||
|
}
|
||||||
|
return year + '-' + month;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
uni.showTabBar()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.content {
|
||||||
|
padding: 20rpx;
|
||||||
|
|
||||||
|
.head {
|
||||||
|
padding: 28rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
box-shadow: 0rpx 4rpx 10rpx 2rpx rgba(161, 161, 161, 0.4);
|
||||||
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
||||||
|
|
||||||
|
.head_conent {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.line {
|
||||||
|
width: 1rpx;
|
||||||
|
height: 70rpx;
|
||||||
|
background-color: #dfdfdf;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sum {
|
||||||
|
flex: 1;
|
||||||
|
text-align: center;
|
||||||
|
color: #737373;
|
||||||
|
font-size: 30rpx;
|
||||||
|
|
||||||
|
.num {
|
||||||
|
font-size: 48.06rpx;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
margin-bottom: 24rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.recoder {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
// padding: 0 28rpx 28rpx 28rpx;
|
||||||
|
|
||||||
|
.time {
|
||||||
|
height: 42rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-family: PingFang SC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 45rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
transform: rotate(90deg);
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
// width: 694rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 21rpx 21rpx 21rpx 21rpx;
|
||||||
|
opacity: 1;
|
||||||
|
padding: 28rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
|
.right {
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
|
.rest {
|
||||||
|
margin-right: 10rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code {
|
||||||
|
margin-right: 10rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal_company {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
background: #72BE53;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
padding: 2rpx 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal_person {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
background: #FF8056;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
padding: 2rpx 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-time {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
&_title {
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
&_money {
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #F55726;
|
||||||
|
}
|
||||||
|
|
||||||
|
&_brank {
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-family: PingFang SC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #737373;
|
||||||
|
line-height: 39rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
&_time {
|
||||||
|
font-size: 23rpx;
|
||||||
|
font-family: PingFang SC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #B3B3B3;
|
||||||
|
line-height: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item_status {
|
||||||
|
border-radius: 6rpx 6rpx 6rpx 6rpx;
|
||||||
|
padding: 2rpx 16rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audit {
|
||||||
|
background: rgba(38, 172, 245, .2);
|
||||||
|
color: #26ACF5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.trans {
|
||||||
|
background: rgba(245, 87, 38, .2);
|
||||||
|
color: #F55726;
|
||||||
|
}
|
||||||
|
|
||||||
|
.done {
|
||||||
|
display: flex;
|
||||||
|
background: rgba(70, 176, 58, .2);
|
||||||
|
color: #46B03A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lose {
|
||||||
|
background: rgba(102, 102, 102, .2);
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-title {
|
||||||
|
justify-content: flex-start;
|
||||||
|
|
||||||
|
text {
|
||||||
|
&:nth-child(1) {
|
||||||
|
width: 198rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 51rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:nth-child(1) {
|
||||||
|
width: 198rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 51rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.remark {
|
||||||
|
word-wrap: break-word;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #F55726;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
672
pages/quote/index.vue
Normal file
672
pages/quote/index.vue
Normal file
@ -0,0 +1,672 @@
|
|||||||
|
<template>
|
||||||
|
<view style="padding: 100rpx 0;">
|
||||||
|
<view class="head">
|
||||||
|
<view class="">
|
||||||
|
<view class="" style="display: flex;justify-content: space-around;margin-top: 24rpx;color:#777777">
|
||||||
|
<view :class="{act: tabIndex==1}" @click="changeTabs(1)">
|
||||||
|
报价列表
|
||||||
|
</view>
|
||||||
|
<view :class="{act: tabIndex==2}" @click="changeTabs(2)">
|
||||||
|
报价记录{{tabIndex}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: 8rpx;" />
|
||||||
|
<view class="line" :style="{left:tabIndex==1?tabsLeft+'px':tabsRight+'px'}" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="content">
|
||||||
|
<u-loading-page v-if="loading" :loading="loading"></u-loading-page>
|
||||||
|
<view v-else>
|
||||||
|
<view class="card" v-for="(item,index) in lists" :key='index'>
|
||||||
|
<view class="head">
|
||||||
|
</view>
|
||||||
|
<view class="card-content">
|
||||||
|
<view class="card-content-l" style="width: 152rpx;height: 152rpx;">
|
||||||
|
<image style="width: 152rpx;height: 152rpx;" :src="item.goods.imgs" mode=""></image>
|
||||||
|
<view class="status">
|
||||||
|
{{tabIndex==1?"未报价":"已报价" }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="card-content-r">
|
||||||
|
<view class="title ellipsis">
|
||||||
|
{{item.goods.name}}
|
||||||
|
</view>
|
||||||
|
<view class="need">
|
||||||
|
需求量: {{item.need_num}}{{item.unit_name}}
|
||||||
|
</view>
|
||||||
|
<view class="ipt">
|
||||||
|
<u--input placeholder="输入报价数量" :readonly="tabIndex==2" v-model="item.nums"
|
||||||
|
style="background-color:#F6F6F6;border: none;"></u--input>
|
||||||
|
<view style="width: 10rpx;">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<u--input style="background-color: #F6F6F6;border: none;" placeholder="输入产品报价"
|
||||||
|
@blur="priceBlur(index)" :readonly="tabIndex==2" v-model="item.price"></u--input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="card-footer" v-if="item.nums && item.price">
|
||||||
|
共{{item.nums}}{{item.unit_name}} 合计:<text
|
||||||
|
style="font-size: 28rpx;color: #FC452F;font-weight: 700;">¥{{(item.nums*item.price).toFixed(2)}}</text>
|
||||||
|
</view>
|
||||||
|
<u-line style="margin-top: 30rpx;" color="#F3F3F3"></u-line>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- <up-empty @click='test2' v-else mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png">
|
||||||
|
</up-empty> -->
|
||||||
|
|
||||||
|
<!-- <view class="detail" @click="navgo('/pageQuota/Balance/index')">
|
||||||
|
提现
|
||||||
|
</view> -->
|
||||||
|
<view class="submit-btn" v-if="tabIndex==1">
|
||||||
|
<u-button shape='circle' color='#20B128' @click="submit" text="提交"></u-button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
OpurchaseGoodsOfferListApi
|
||||||
|
} from "@/api/supplier.js"
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tabIndex: 1,
|
||||||
|
tabsLeft: 0,
|
||||||
|
tabsRight: 0,
|
||||||
|
loading: false,
|
||||||
|
lists: [{
|
||||||
|
"id": 15,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 113,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 400,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 113,
|
||||||
|
"name": "火龙果花",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"497"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "富含维生素C、钙、磷、铁等营养成分",
|
||||||
|
"class": 497,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/202405151405465afc55555.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 14:05:52",
|
||||||
|
"update_time": "2024-05-15 14:05:52",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 112,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 300,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 112,
|
||||||
|
"name": "蛇皮果",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"120"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "富含维生素C、B族维生素",
|
||||||
|
"class": 120,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/20240515135546c2f251314.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 13:55:49",
|
||||||
|
"update_time": "2024-05-15 13:55:49",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 111,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 200,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 111,
|
||||||
|
"name": "红参果",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"121"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "质地柔软丨口感清甜",
|
||||||
|
"class": 121,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/202405151353132038a8389.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 13:53:16",
|
||||||
|
"update_time": "2024-05-15 13:53:16",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 110,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 100,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 110,
|
||||||
|
"name": "仁面果",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"122"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "口感丰富丨果汁丰富",
|
||||||
|
"class": 122,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/202405151349268542d3786.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 13:51:06",
|
||||||
|
"update_time": "2024-05-15 13:51:06",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 15,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 113,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 400,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 113,
|
||||||
|
"name": "火龙果花",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"497"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "富含维生素C、钙、磷、铁等营养成分",
|
||||||
|
"class": 497,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/202405151405465afc55555.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 14:05:52",
|
||||||
|
"update_time": "2024-05-15 14:05:52",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 112,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 300,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 112,
|
||||||
|
"name": "蛇皮果",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"120"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "富含维生素C、B族维生素",
|
||||||
|
"class": 120,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/20240515135546c2f251314.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 13:55:49",
|
||||||
|
"update_time": "2024-05-15 13:55:49",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 111,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 200,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 111,
|
||||||
|
"name": "红参果",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"121"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "质地柔软丨口感清甜",
|
||||||
|
"class": 121,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/202405151353132038a8389.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 13:53:16",
|
||||||
|
"update_time": "2024-05-15 13:53:16",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"supplier_id": 9,
|
||||||
|
"order_id": 2,
|
||||||
|
"goods_id": 110,
|
||||||
|
"price": "",
|
||||||
|
"nums": '',
|
||||||
|
"unit": null,
|
||||||
|
"is_adopt": 0,
|
||||||
|
"is_storage": 0,
|
||||||
|
"create_time": 0,
|
||||||
|
"update_time": 0,
|
||||||
|
"delete_time": null,
|
||||||
|
"need_num": 0,
|
||||||
|
"notes": null,
|
||||||
|
"before_nums": 100,
|
||||||
|
"is_adopt_text": "待报价",
|
||||||
|
"goods": {
|
||||||
|
"id": 110,
|
||||||
|
"name": "仁面果",
|
||||||
|
"py": "",
|
||||||
|
"sys_labels": [
|
||||||
|
"122"
|
||||||
|
],
|
||||||
|
"number": "",
|
||||||
|
"spec": "口感丰富丨果汁丰富",
|
||||||
|
"class": 122,
|
||||||
|
"brand": 0,
|
||||||
|
"unit": 2,
|
||||||
|
"buy": "0.02",
|
||||||
|
"sell": "0.01",
|
||||||
|
"retail": "0.00",
|
||||||
|
"code": "",
|
||||||
|
"warehouse": 1,
|
||||||
|
"location": "",
|
||||||
|
"stocktip": "100.00",
|
||||||
|
"sales": 0,
|
||||||
|
"tax_rate": null,
|
||||||
|
"imgs": "https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240515/202405151349268542d3786.png",
|
||||||
|
"details": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"data": "",
|
||||||
|
"more": "",
|
||||||
|
"create_time": "2024-05-15 13:51:06",
|
||||||
|
"update_time": "2024-05-15 13:51:06",
|
||||||
|
"delete_time": null,
|
||||||
|
"sort": 0,
|
||||||
|
"unit_name": "斤"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getTabsPosi() {
|
||||||
|
const {
|
||||||
|
windowWidth
|
||||||
|
} = uni.getSystemInfoSync();
|
||||||
|
this.tabsLeft = (((windowWidth / 2) - 26) / 2)
|
||||||
|
this.tabsRight = (this.tabsLeft + (windowWidth / 2))
|
||||||
|
},
|
||||||
|
async getLists() {
|
||||||
|
let that = this
|
||||||
|
// that.loading = true
|
||||||
|
// let res = await getLists({})
|
||||||
|
// this.lists = res.lists
|
||||||
|
// that.loading = false
|
||||||
|
that.loading = true
|
||||||
|
setTimeout(() => {
|
||||||
|
that.loading = false
|
||||||
|
}, 1000)
|
||||||
|
},
|
||||||
|
changeTabs(num) {
|
||||||
|
let that = this
|
||||||
|
this.tabIndex = num
|
||||||
|
this.getLists()
|
||||||
|
},
|
||||||
|
priceBlur(i) {
|
||||||
|
this.lists[i].price = (+this.lists[i].price).toFixed(2)
|
||||||
|
},
|
||||||
|
async submit() {
|
||||||
|
let data =
|
||||||
|
this.lists.filter(item => {
|
||||||
|
return (+item.price && +item.nums)
|
||||||
|
}).map(item => {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
nums: item.nums,
|
||||||
|
price: item.price
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!data.length) return
|
||||||
|
this.getLists(2)
|
||||||
|
return
|
||||||
|
let res = await submitApi({
|
||||||
|
...data
|
||||||
|
})
|
||||||
|
this.getLists(2)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getTabsPosi()
|
||||||
|
this.getLists()
|
||||||
|
OpurchaseGoodsOfferListApi()
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.head {
|
||||||
|
padding: 20rpx;
|
||||||
|
background-color: white;
|
||||||
|
position: relative;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
width: 100vw;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
|
.act {
|
||||||
|
color: #20B128;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line {
|
||||||
|
width: 26px;
|
||||||
|
height: 5rpx;
|
||||||
|
background-color: #20B128;
|
||||||
|
border-radius: 50rpx;
|
||||||
|
position: absolute;
|
||||||
|
transition: 300ms;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 20rpx;
|
||||||
|
padding-bottom: 150rpx;
|
||||||
|
|
||||||
|
.card {
|
||||||
|
width: 710rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: white;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.card-content {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.card-content-l {
|
||||||
|
margin-right: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.status {
|
||||||
|
width: 152rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
background-color: rgba(0, 0, 0, .3);
|
||||||
|
text-align: center;
|
||||||
|
color: white;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-content-r {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 30rpx;
|
||||||
|
width: 500rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.need {
|
||||||
|
color: #777777;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ipt {
|
||||||
|
display: flex;
|
||||||
|
height: 56rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-png {
|
||||||
|
position: absolute;
|
||||||
|
right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-footer {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
text-align: right;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #060606;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit-btn {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 70rpx;
|
||||||
|
width: 710rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail {
|
||||||
|
width: 88rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
border-radius: 88rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 88rpx;
|
||||||
|
background-color: #50C758;
|
||||||
|
color: white;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 30px;
|
||||||
|
// right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ellipsis {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
</style>
|
11
pages/quote/list.vue
Normal file
11
pages/quote/list.vue
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
<view class="">
|
||||||
|
list
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
212
pages/quote/supplierFinancialy.vue
Normal file
212
pages/quote/supplierFinancialy.vue
Normal file
@ -0,0 +1,212 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="total">
|
||||||
|
<view class="">
|
||||||
|
账户总余额(元)
|
||||||
|
</view>
|
||||||
|
<view style="font-size: 36rpx;">
|
||||||
|
¥{{balance||0.00}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="action">
|
||||||
|
<view class="">
|
||||||
|
提现至
|
||||||
|
</view>
|
||||||
|
<view style="font-weight: bold;" @click="showPop1=true">
|
||||||
|
{{target_bank.is_own?'对公账户':"个人账户"}}
|
||||||
|
</view>
|
||||||
|
<view style="display: flex;align-items: center;color: #20B128;" @click="navgo('/pages/quote/bindAccout')">
|
||||||
|
<text>更换账户</text> <u-icon color="#20B128" name="arrow-right"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="form" v-if='target_bank.bank_name'>
|
||||||
|
<u-form labelPosition="left" borderBottom :label-style="{fontSize:'30rpx'}" ref="form1" labelWidth='70'>
|
||||||
|
<u-form-item label="银行卡" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="target_bank.bank_name" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="持卡人" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="target_bank.name" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="银行账户" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="target_bank.bank_code" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="开户网点" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="target_bank.bank_branch" />
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="提现金额" borderBottom ref="item1">
|
||||||
|
<u-input style="border: none;" v-model="form.money" placeholder="请输入提现金额" />
|
||||||
|
</u-form-item>
|
||||||
|
<text style="color: #999999;font-size: 24rpx;">
|
||||||
|
说明:用户下单后该订单金额存放在暂存金额中,用户确认收货后次日18:00才可提现该笔订单金额
|
||||||
|
提货付款订单在完成后次日18:00才可提现
|
||||||
|
</text>
|
||||||
|
</u-form>
|
||||||
|
</view>
|
||||||
|
<u-empty mode="data" v-else :text='emptyText'
|
||||||
|
icon="https://lihai001.oss-cn-chengdu.aliyuncs.com/attach/89e93202405131146497294.png" />
|
||||||
|
<view class="detail" @click="navgo('/pages/quote/financialyDeatil')">
|
||||||
|
明细
|
||||||
|
</view>
|
||||||
|
<view class="submit-btn">
|
||||||
|
<u-button text="提现" @click="submit" shape="circle" color="#50C758"></u-button>
|
||||||
|
</view>
|
||||||
|
<u-popup :show="showPop1" :round="10" mode="bottom" @close="showPop1=false" @open="showPop1=true">
|
||||||
|
<view class="popContent">
|
||||||
|
<view style="text-align: center;font-weight: bold;">请选择提现账户</view>
|
||||||
|
<u-icon name="close" color="#303133" size="24" @click="showPop1=false"
|
||||||
|
style="position: absolute;top: 20rpx;right: 20rpx;"></u-icon>
|
||||||
|
<view class="bank-list">
|
||||||
|
<view class="bank-li" @click="choseAccount(0)">
|
||||||
|
<text>个人账户</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="bank-li" @click="choseAccount(1)">
|
||||||
|
<text>对公账户</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
hasBindAccount
|
||||||
|
} from "@/api/supplier.js"
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
balance: '',
|
||||||
|
target_bank: {},
|
||||||
|
emptyText: "撒大声地",
|
||||||
|
form: {
|
||||||
|
money: ''
|
||||||
|
},
|
||||||
|
showPop1: false,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
navgo(url) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
choseAccount(type) {
|
||||||
|
this.target_bank = this.hasBindAccount[type] || {}
|
||||||
|
this.showPop1 = false
|
||||||
|
},
|
||||||
|
async getHasBindBankList() {
|
||||||
|
this.target_bankhasBindAccountt[0]
|
||||||
|
return
|
||||||
|
let res = await amountAccountApi({})
|
||||||
|
this.balance = res.data.balance
|
||||||
|
this.hasBindAccount = res.data.hasBindAccount
|
||||||
|
this.target_bank = res.data.hasBindAccount[0] || {}
|
||||||
|
},
|
||||||
|
async submit() {
|
||||||
|
console.log({
|
||||||
|
"merchant_bank_id": this.target_bank.id,
|
||||||
|
"amount": this.form.money
|
||||||
|
})
|
||||||
|
return
|
||||||
|
await UserWithdrawApi({
|
||||||
|
"merchant_bank_id": this.target_bank.id,
|
||||||
|
"amount": this.form.money
|
||||||
|
})
|
||||||
|
uni.showToast({
|
||||||
|
title: '提交成功',
|
||||||
|
duration: 1500,
|
||||||
|
})
|
||||||
|
uni.$u.sleep(1500).then(res => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/quote/financialyDeatil'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
uni.showTabBar()
|
||||||
|
this.getHasBindBankList()
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.content {
|
||||||
|
padding: 20rpx;
|
||||||
|
min-height: 100vh;
|
||||||
|
|
||||||
|
.total {
|
||||||
|
background-color: #50C758;
|
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||||||
|
color: white;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 42rpx 30rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action {
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form {
|
||||||
|
padding: 28rpx 30rpx;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.popContent {
|
||||||
|
padding: 20rpx;
|
||||||
|
|
||||||
|
.bank-list {
|
||||||
|
overflow-y: auto;
|
||||||
|
position: relative;
|
||||||
|
max-height: 40vh;
|
||||||
|
|
||||||
|
.bank-li {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 20rpx;
|
||||||
|
border-bottom: 1px solid #F8F9FA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.detail {
|
||||||
|
width: 88rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
border-radius: 88rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 88rpx;
|
||||||
|
background-color: #50C758;
|
||||||
|
color: white;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 300rpx;
|
||||||
|
right: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit-btn {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 146rpx;
|
||||||
|
width: 710rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
106
utils/request.js
106
utils/request.js
@ -9,13 +9,17 @@
|
|||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
import {
|
import {
|
||||||
HTTP_REQUEST_URL,
|
HTTP_REQUEST_URL,
|
||||||
|
HTTP_REQUEST_URL_TWO,
|
||||||
HEADER,
|
HEADER,
|
||||||
TOKENNAME
|
TOKENNAME
|
||||||
} from '@/config/app';
|
} from '@/config/app';
|
||||||
import { checkLogin } from '../libs/login';
|
import {
|
||||||
|
checkLogin
|
||||||
|
} from '../libs/login';
|
||||||
import store from '../store';
|
import store from '../store';
|
||||||
import pako from '../plugin/pako/pako.es5.min.js'
|
import pako from '../plugin/pako/pako.es5.min.js'
|
||||||
function toLogin(){
|
|
||||||
|
function toLogin() {
|
||||||
store.commit("LOGOUT");
|
store.commit("LOGOUT");
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '请登录',
|
title: '请登录',
|
||||||
@ -23,40 +27,43 @@ function toLogin(){
|
|||||||
duration: 1000
|
duration: 1000
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function decompress(str) {
|
function decompress(str) {
|
||||||
return pako.inflateRaw(base64ToUint8Array(str), {
|
return pako.inflateRaw(base64ToUint8Array(str), {
|
||||||
to: 'string'
|
to: 'string'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function base64ToUint8Array(base64String) {
|
|
||||||
let padding = '='.repeat((4 - base64String.length % 4) % 4);
|
|
||||||
let base64 = (base64String + padding)
|
|
||||||
.replace(/\-/g, '+')
|
|
||||||
.replace(/_/g, '/');
|
|
||||||
let rawData = atob(base64);
|
|
||||||
let outputArray = new Uint8Array(rawData.length);
|
|
||||||
for (var i = 0; i < rawData.length; ++i) {
|
|
||||||
outputArray[i] = rawData.charCodeAt(i);
|
|
||||||
}
|
|
||||||
return outputArray;
|
|
||||||
}
|
|
||||||
function atob(input) {
|
|
||||||
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
||||||
let str = input.replace(/=+$/, '');
|
|
||||||
let output = '';
|
|
||||||
if (str.length % 4 === 1) {
|
|
||||||
throw new Error('InvalidLengthError');
|
|
||||||
}
|
|
||||||
for (let i = 0, len = str.length; i < len; i += 4) {
|
|
||||||
const a = chars.indexOf(str.charAt(i));
|
|
||||||
const b = chars.indexOf(str.charAt(i + 1));
|
|
||||||
const c = chars.indexOf(str.charAt(i + 2));
|
|
||||||
const d = chars.indexOf(str.charAt(i + 3));
|
|
||||||
const sum = (a << 18) | (b << 12) | (c << 6) | d;
|
|
||||||
output += String.fromCharCode((sum >> 16) & 0xFF, (sum >> 8) & 0xFF, sum & 0xFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
return output;
|
function base64ToUint8Array(base64String) {
|
||||||
|
let padding = '='.repeat((4 - base64String.length % 4) % 4);
|
||||||
|
let base64 = (base64String + padding)
|
||||||
|
.replace(/\-/g, '+')
|
||||||
|
.replace(/_/g, '/');
|
||||||
|
let rawData = atob(base64);
|
||||||
|
let outputArray = new Uint8Array(rawData.length);
|
||||||
|
for (var i = 0; i < rawData.length; ++i) {
|
||||||
|
outputArray[i] = rawData.charCodeAt(i);
|
||||||
|
}
|
||||||
|
return outputArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
function atob(input) {
|
||||||
|
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||||
|
let str = input.replace(/=+$/, '');
|
||||||
|
let output = '';
|
||||||
|
if (str.length % 4 === 1) {
|
||||||
|
throw new Error('InvalidLengthError');
|
||||||
|
}
|
||||||
|
for (let i = 0, len = str.length; i < len; i += 4) {
|
||||||
|
const a = chars.indexOf(str.charAt(i));
|
||||||
|
const b = chars.indexOf(str.charAt(i + 1));
|
||||||
|
const c = chars.indexOf(str.charAt(i + 2));
|
||||||
|
const d = chars.indexOf(str.charAt(i + 3));
|
||||||
|
const sum = (a << 18) | (b << 12) | (c << 6) | d;
|
||||||
|
output += String.fromCharCode((sum >> 16) & 0xFF, (sum >> 8) & 0xFF, sum & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
var HTTP_list = new Map();
|
var HTTP_list = new Map();
|
||||||
@ -67,7 +74,7 @@ var HTTP_list = new Map();
|
|||||||
function baseRequest(url, method, data, {
|
function baseRequest(url, method, data, {
|
||||||
noAuth = false,
|
noAuth = false,
|
||||||
noVerify = false,
|
noVerify = false,
|
||||||
enLoad = false //终止上一个接口相同类型正在请求的接口, 防止快速切换tab时页面抖动
|
enLoad = false //终止上一个接口相同类型正在请求的接口, 防止快速切换tab时页面抖动
|
||||||
}) {
|
}) {
|
||||||
let Url = HTTP_REQUEST_URL,
|
let Url = HTTP_REQUEST_URL,
|
||||||
header = HEADER;
|
header = HEADER;
|
||||||
@ -80,16 +87,16 @@ function baseRequest(url, method, data, {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let URL = Url + '/api/' + url
|
let URL = Url + '/api/' + url
|
||||||
if(enLoad) {
|
if (enLoad) {
|
||||||
let http = HTTP_list.get(URL);
|
let http = HTTP_list.get(URL);
|
||||||
if(http){
|
if (http) {
|
||||||
http.abort();
|
http.abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HTTP_list.delete(URL);
|
HTTP_list.delete(URL);
|
||||||
if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token;
|
if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token;
|
||||||
if(store.state.app.uuid) header['uuid'] = store.state.app.uuid
|
if (store.state.app.uuid) header['uuid'] = store.state.app.uuid
|
||||||
return new Promise((reslove, reject) => {
|
return new Promise((reslove, reject) => {
|
||||||
let http = uni.request({
|
let http = uni.request({
|
||||||
url: URL,
|
url: URL,
|
||||||
@ -98,10 +105,9 @@ function baseRequest(url, method, data, {
|
|||||||
data: data || {},
|
data: data || {},
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
if (res.data && res.data.encode) {
|
if (res.data && res.data.encode) {
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
res.data = JSON.parse(decompress(res.data.data));
|
res.data = JSON.parse(decompress(res.data.data));
|
||||||
}catch(e){
|
} catch (e) {
|
||||||
res.data = decompress(decodeURI(res.data.data));
|
res.data = decompress(decodeURI(res.data.data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -118,18 +124,18 @@ function baseRequest(url, method, data, {
|
|||||||
})
|
})
|
||||||
reject(res.data);
|
reject(res.data);
|
||||||
} else {
|
} else {
|
||||||
console.error("请求失败", res)
|
console.error("请求失败", res)
|
||||||
reject(res.data.message || '系统错误');
|
reject(res.data.message || '系统错误');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fail: (message) => {
|
fail: (message) => {
|
||||||
reject('请求失败');
|
reject('请求失败');
|
||||||
},
|
},
|
||||||
complete: () => {
|
complete: () => {
|
||||||
// if(enLoad) HTTP_list.delete(URL);
|
// if(enLoad) HTTP_list.delete(URL);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if(enLoad) HTTP_list.set(URL, http);
|
if (enLoad) HTTP_list.set(URL, http);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const request = {};
|
const request = {};
|
||||||
|
134
utils/requestSupplier.js
Normal file
134
utils/requestSupplier.js
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Author: CRMEB Team <admin@crmeb.com>
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
import {
|
||||||
|
HTTP_REQUEST_URL_TWO,
|
||||||
|
HEADER,
|
||||||
|
|
||||||
|
} from '@/config/app';
|
||||||
|
import {
|
||||||
|
checkLogin
|
||||||
|
} from '../libs/login';
|
||||||
|
import store from '../store';
|
||||||
|
import pako from '../plugin/pako/pako.es5.min.js'
|
||||||
|
|
||||||
|
let TOKENNAME = 'Token'
|
||||||
|
|
||||||
|
function toLogin() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(HTTP_REQUEST_URL_TWO, 'HTTP_REQUEST_URL_TWO')
|
||||||
|
|
||||||
|
function decompress(str) {
|
||||||
|
return pako.inflateRaw(base64ToUint8Array(str), {
|
||||||
|
to: 'string'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function base64ToUint8Array(base64String) {
|
||||||
|
let padding = '='.repeat((4 - base64String.length % 4) % 4);
|
||||||
|
let base64 = (base64String + padding)
|
||||||
|
.replace(/\-/g, '+')
|
||||||
|
.replace(/_/g, '/');
|
||||||
|
let rawData = atob(base64);
|
||||||
|
let outputArray = new Uint8Array(rawData.length);
|
||||||
|
for (var i = 0; i < rawData.length; ++i) {
|
||||||
|
outputArray[i] = rawData.charCodeAt(i);
|
||||||
|
}
|
||||||
|
return outputArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
function atob(input) {
|
||||||
|
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||||
|
let str = input.replace(/=+$/, '');
|
||||||
|
let output = '';
|
||||||
|
if (str.length % 4 === 1) {
|
||||||
|
throw new Error('InvalidLengthError');
|
||||||
|
}
|
||||||
|
for (let i = 0, len = str.length; i < len; i += 4) {
|
||||||
|
const a = chars.indexOf(str.charAt(i));
|
||||||
|
const b = chars.indexOf(str.charAt(i + 1));
|
||||||
|
const c = chars.indexOf(str.charAt(i + 2));
|
||||||
|
const d = chars.indexOf(str.charAt(i + 3));
|
||||||
|
const sum = (a << 18) | (b << 12) | (c << 6) | d;
|
||||||
|
output += String.fromCharCode((sum >> 16) & 0xFF, (sum >> 8) & 0xFF, sum & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
var HTTP_list = new Map();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送请求
|
||||||
|
*/
|
||||||
|
function baseRequest(url, method, data, {
|
||||||
|
noAuth = false,
|
||||||
|
noVerify = false,
|
||||||
|
enLoad = false //终止上一个接口相同类型正在请求的接口, 防止快速切换tab时页面抖动
|
||||||
|
}) {
|
||||||
|
let Url = HTTP_REQUEST_URL_TWO,
|
||||||
|
header = HEADER;
|
||||||
|
let URL = Url + '/api/' + url
|
||||||
|
if (enLoad) {
|
||||||
|
let http = HTTP_list.get(URL);
|
||||||
|
if (http) {
|
||||||
|
http.abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
HTTP_list.delete(URL);
|
||||||
|
if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token;
|
||||||
|
if (store.state.app.uuid) header['uuid'] = store.state.app.uuid
|
||||||
|
return new Promise((reslove, reject) => {
|
||||||
|
let http = uni.request({
|
||||||
|
url: URL,
|
||||||
|
method: method || 'GET',
|
||||||
|
header: header,
|
||||||
|
data: data || {},
|
||||||
|
success: (res) => {
|
||||||
|
if (res.data && res.data.encode) {
|
||||||
|
try {
|
||||||
|
res.data = JSON.parse(decompress(res.data.data));
|
||||||
|
} catch (e) {
|
||||||
|
res.data = decompress(decodeURI(res.data.data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (noVerify)
|
||||||
|
reslove(res.data, res);
|
||||||
|
else if (res.data.status == 200)
|
||||||
|
reslove(res.data, res);
|
||||||
|
else if ([410000, 410001, 410002, 40000].indexOf(res.data.status) !== -1) {
|
||||||
|
toLogin();
|
||||||
|
reject(res.data);
|
||||||
|
} else if (res.data.status == 501) {
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages/error/index'
|
||||||
|
})
|
||||||
|
reject(res.data);
|
||||||
|
} else {
|
||||||
|
console.error("请求失败", res)
|
||||||
|
reject(res.data.message || '系统错误');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: (message) => {
|
||||||
|
reject('请求失败');
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
// if(enLoad) HTTP_list.delete(URL);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (enLoad) HTTP_list.set(URL, http);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const request = {};
|
||||||
|
['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => {
|
||||||
|
request[method] = (api, data, opt) => baseRequest(api, method, data, opt || {})
|
||||||
|
});
|
||||||
|
export default request;
|
Loading…
x
Reference in New Issue
Block a user