Browse Source

1.0.3更新

devlop
mo-bai 4 years ago
parent
commit
92d708c398
24 changed files with 819 additions and 46 deletions
  1. BIN
      .DS_Store
  2. 41
      apis/clientListApi.js
  3. 50
      apis/commonApi.js
  4. 11
      apis/orderApi.js
  5. 20
      components/business-components/packingStationItem.vue
  6. 133
      components/qn-select/qn-select.vue
  7. 14
      enums/index.js
  8. 16
      pages.json
  9. 4
      pages/add-paper/index.vue
  10. 177
      pages/client-list/index.vue
  11. 22
      pages/mine/index.vue
  12. 175
      pages/my-client/index.vue
  13. 162
      pages/my-receipt-code/index.vue
  14. 37
      pages/order-detail/index.vue
  15. 2
      pages/paper-detail/index.vue
  16. 1
      pages/switching-mall/index.vue
  17. BIN
      static/.DS_Store
  18. BIN
      static/imgs/.DS_Store
  19. BIN
      static/imgs/general/camera-icon.png
  20. BIN
      static/imgs/general/close-icon.png
  21. BIN
      static/imgs/mine/credit-record.png
  22. BIN
      static/imgs/mine/my-client.png
  23. BIN
      static/imgs/mine/my-receipt-code.png
  24. BIN
      static/imgs/mine/设置税点.sketch

BIN
.DS_Store

41
apis/clientListApi.js

@ -12,3 +12,44 @@ export function getCompanyList(data) {
}
)
}
/**
* 获取我的客户
* @param {object} data mallSupplierId
* @returns 印包厂列表
*/
export function getMyClientList(data) {
return http.get(
{
url: '/yyt-uec/get/my/zzg-customer/page',
data
},
{
hideLoading: true
}
)
}
/**
* 查询客户税点
* @param {object} data supplierId customerEnterpriseId
* @returns 税点
*/
export function getClientTaxPoint(data) {
return http.get({
url: '/yyt-uec/supllier/get/tax-point/for-customer',
data
})
}
/**
* 修改/新增客户税点
* @param {object} data supplierId customerEnterpriseId taxPoint
* @returns 税点
*/
export function editClientTaxPoint(data) {
return http.post({
url: '/yyt-uec/supllier/create/tax-point/for-customer?supplierId=' + data.supplierId,
data
})
}

50
apis/commonApi.js

@ -45,13 +45,13 @@ function syncStore(res) {
fddEnterpriseStatus: supplierInfo.fddEnterpriseStatus,
supplierId: supplierInfo.supplier.id,
isVip,
vipExpireTime,
vipExpireTime
})
let userInfo = {
name: supplierInfo.employeeName, // 没有企业就没有name,
userId: res.userId,
mobile: res.mobile,
avatar: null,
avatar: null
}
store.commit('setUserInfo', userInfo)
} else {
@ -59,7 +59,7 @@ function syncStore(res) {
name: '', // 没有企业就没有name,
userId: res.userId,
mobile: res.mobile,
avatar: null,
avatar: null
}
store.commit('setUserInfo', userInfo)
// 移除企业信息
@ -105,7 +105,7 @@ export function getVerifyUrl(data = {}) {
export function getGuaranteeContract(data = {}) {
return http.post({
url: `/yyt-uec/create/supplier/guarantee-contract?mallSupplierId=${data.mallSupplierId}&customerEnterpriseId=${data.customerEnterpriseId}`,
data,
data
})
}
@ -116,7 +116,7 @@ export function getGuaranteeContract(data = {}) {
export function transformFileToImg(data) {
return http.get({
url: '/document/get/enterprise-documents/file-image-base64',
data: data,
data: data
})
}
@ -127,7 +127,7 @@ export function transformFileToImg(data) {
export function pushCustomerBind(cid, platformType = 'android', appId = XAPPID) {
return http.post({
url: '/base-paper-trading/user/binding/geTui/cid',
data: { cid, appId, platformType },
data: { cid, appId, platformType }
})
}
@ -138,7 +138,7 @@ export function pushCustomerBind(cid, platformType = 'android', appId = XAPPID)
export function pushCustomerOff(cid, platformType = 'android', appId = XAPPID) {
return http.post({
url: '/base-paper-trading/user/geTui/offline',
data: { cid, appId, platformType },
data: { cid, appId, platformType }
})
}
@ -148,7 +148,7 @@ export function pushCustomerOff(cid, platformType = 'android', appId = XAPPID) {
export function getLicenseOcr(data = {}) {
return http.post({
url: '/base-paper-trading/ocr/business-license',
data: data,
data: data
})
}
@ -158,7 +158,7 @@ export function getLicenseOcr(data = {}) {
export function getFrontIdCardOcr(data = {}) {
return http.post({
url: '/base-paper-trading/ocr/id-card/face',
data: data,
data: data
})
}
@ -170,7 +170,7 @@ export function getFrontIdCardOcr(data = {}) {
export function checkUpdate(data = {}) {
return http.get({
url: '/base-paper-trading/get/app/version',
data: data,
data: data
})
}
@ -183,7 +183,7 @@ export function checkUpdate(data = {}) {
export function openVip(data = {}) {
return http.post({
url: `/yyt-uec/supplier/apply/for/vip?type=${data.type}&mallSupplierId=${data.mallSupplierId}`,
data: data,
data: data
})
}
@ -196,6 +196,32 @@ export function openVip(data = {}) {
export function openVipPay(data = {}) {
return http.post({
url: PAY_URL,
data: data,
data: data
})
}
/**
* 获取账号下纸盘商首款吗列表
* @param {object} data
* @value {string} mallSupplierId
* @value {string} payeeCodeUrl
*/
export function getReciptCodeList(data = {}) {
return http.get({
url: '/yyt-uec/get/mall/supplier/payee/code/list',
data: data
})
}
/**
* 纸盘商绑定收款码
* @param {object} data
* @value {string} mallSupplierId
* @value {string} payeeCodeUrl
*/
export function bindingReciptCode(data = {}) {
return http.post({
url: '/yyt-uec/save/mall/supplier/payee/code',
data: data
})
}

11
apis/orderApi.js

@ -140,3 +140,14 @@ export function getCooperationList(data) {
data
})
}
/**
* 获取已签署合同企业列表
* @param {object} data supplierOrderId
*/
export function supplierConfirmWxpay(data) {
return http.post({
url: '/base-paper-trading/supplier/submit/confirm/cash/payment',
data
})
}

20
components/business-components/packingStationItem.vue

@ -55,7 +55,7 @@
</view>
</view>
</view>
<view class="other">
<view class="other" @click="selected">
<view class="box">
<image class="icon" src="/static/imgs/client-list/navigation-icon.png"></image>
<text class="text" style="width: 248rpx">{{ info.detailedAddress || '未知' }}</text>
@ -75,20 +75,7 @@ export default {
props: {
info: {
type: Object,
default: () => ({
enterpriseName: '广州市金骏彩色印务有限公司',
enterpriseLogo: '',
business: '生产画册、书刊、包装盒、手提袋子、快递箱',
whetherCooperation: 1,
monthlyPurchaseQuantity: 100,
monthlyTradingQuota: 200,
lastTradingDate: '2020-12-12',
openingDate: '2020-12-12',
legalPerson: '张三',
registeredCapital: 1000,
contactNumber: '13888888888',
detailedAddress: '广州市天河区天河路'
})
default: () => ({})
}
},
methods: {
@ -124,6 +111,9 @@ export default {
}
}
return ''
},
selected() {
this.$emit('selected', this.info)
}
},
computed: {

133
components/qn-select/qn-select.vue

@ -0,0 +1,133 @@
<template>
<view>
<view class="select-mask" v-show="visible" @click="hideOption"></view>
<view class="select-section" @click="showOption">
<text :class="text ? '' : 'placeholder'">{{ text || placeholder }}</text>
<view class="icon"></view>
<view class="options-area" v-show="visible">
<slot>
<view class="option" v-for="item in options" :key="item.value" @click.stop="handleSelect(item)">
<text>{{ item.label }}</text>
<view v-if="value == item.value" class="icon"></view>
</view>
</slot>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
value: {
default: ''
},
placeholder: {
type: String,
default: '请选择'
},
options: {
type: Array,
default: () => []
}
},
data() {
return {
visible: false,
text: ''
}
},
methods: {
handleSelect(item) {
this.text = item.label
this.$emit('input', item.value)
this.hideOption()
},
showOption() {
this.visible = true
},
hideOption() {
console.log('hideOption')
this.visible = false
}
},
watch: {
value(val) {
let target = this.options.find((o) => o.value === val)
this.text = target?.label || ''
}
}
}
</script>
<style lang="scss" scoped>
.select-section {
width: 100%;
height: 100%;
min-height: 64rpx;
position: relative;
transform: translateX(0);
z-index: 300;
display: flex;
align-items: center;
justify-content: space-between;
color: rgb(51, 51, 51);
font-size: 28rpx;
line-height: 40rpx;
white-space: nowrap;
padding: 12rpx 24rpx;
background-color: rgb(245, 245, 245);
border-radius: 8rpx;
.icon {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAAgCAYAAABHA7voAAACtklEQVRYhdXYOW8TQRgG4CcxBHIQTA5uCCDRICSoKChB3MefBYmjpYCCDjokEnIQEDRIiPsqPltJjGe8a++G8EpWJPvLeB7P7OzsDGEIZ3AK27GEx/js/8oUzmMWH/EU80M4i3MdxR9wB582s4cDZB+uiwFan7sNXMBIxwc7cRQv8aP27g2WWYHrNEBj2N/qdpq4IbBbNTOij91wMNLAtJi/3TKKQ2Ikf1bevcEyJXA7MjXPG3iD45nCMVsP2cQt+dm1iCcNcY3N45g0chwHBPJXdf3sK7sFbjRTs4yH+NVovfEdC5iTRk5gv3+LnBS48UzNMh5ozbbGug++CWRuJHdhrxjxzUZOCNxEpmYDjo1AiiEnxeo1j999drZsxnFb/MCptKflhnWiE0gx5G6x+m4GckyM3GSmpo37657dDUgxZLP1WlAfclTgmpmaJI40kEC+EreQ1I10j/hlF3r1tI/sxM3Wd6SSxZEHsjaSOeSUuDZe9WirTHYI3HSmZkUPHL2BFENOi4VgsUB7vTIicDOZmhWxWvbcJxcBUgw5I6bVUsE2u2VEbJxnMzWFcRQHsnZNHpNG7hWb9+US7bazHdfEo08qpXCUA8JXvReefa12V0q0uw1XxXYwldI4ygMphtzf+rtasA9XxIY+ldf6wLUb7ydFkAfFruJNj++/jCOZmte4r88H736BFEMeEhv5t10+G8YlcXKQykA4BgMSyEWckD4ZOIwveLfuvWFcFAtWKgPjGBzI2kjmkEfFAdZ7cYp3oVWfSiU4qgFSDDknjvNO42SmrcpwxK9ZZZpiFzLW5/9XiqO6EWzni7gmj0uPZCqrKsZRPZA1ZG66dmYV99RwBlsHkHLI2nDUB6QYspZpuT51Agnkku4b9Pbe8nudHagbSCBfiOfFMfFU8gyPbJ2D5P83fwA+SqvvLFrSmAAAAABJRU5ErkJggg==')
no-repeat center center/cover;
width: 28rpx;
height: 16rpx;
}
}
.select-mask {
width: 750rpx;
height: 100vh;
background-color: transparent;
position: fixed;
z-index: 200;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.options-area {
z-index: 400;
position: fixed;
top: 100%;
left: 0rpx;
right: 0rpx;
height: 184rpx;
border-radius: 6rpx;
border: 2rpx solid #f5f5f5;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
background-color: #fff;
overflow-y: auto;
.option {
height: 60rpx;
line-height: 60rpx;
// max-width: 500rpx;
// overflow-x: hidden;
// text-overflow: ellipsis;
padding: 0 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1rpx solid #f5f5f5;
.icon {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABa0lEQVRYhe2Tu0oDQRSG/zNYmNmnsDVlouJ7xIAgWIigWCiCZoPiFdyNCgGLgBDwhqCxt/ARMpvHSYLF7rHKhewk7iZxbeavBuYcvm+YcwATE5N/DiUBWSp+z/u+f8wsHhs3s1/9dzNJwAMENQikgWAZwFz/vUgCzsxpACDw02DNn32BBn6pXOskEYFBuCC+qjvWka526gLhl6OkXGkPq5+qQAhOuFWOPBjVExLI2s0zIpFDwBeqJGvjwgGUPVfu/9YX2gIikWPmNBPeFwrttXHgRLiLAtcLMJ93zkz8kj1sb8SBM1BRjtyNAtcK1F35IYB8r4KrmUJzOwocRPcNV+5EhWsFdBJEVMkWW3uj4ASqek5qKw58qIBOAoxyxm4VtHDiB+WmNuPCgQhruGi3VgKguw3EdAqBfG/a+dlzrfVx4JEEdBLdZsKrcmSkTZlIQCtBePMcuToJPJZAR8IHrgF8xp12ExMTk2H5ASlkxc57+JuCAAAAAElFTkSuQmCC')
no-repeat center center/cover;
width: 32rpx;
height: 32rpx;
}
}
}
.placeholder {
color: #ccc;
}
</style>

14
enums/index.js

@ -200,3 +200,17 @@ export const contractTypeMap = {
[contractTypeEnum.ORDER_CONTRACT]: '订单合同',
[contractTypeEnum.GUARANTEE_CONTRACT]: '担保合同'
}
/**
* 订单是否开票 1:开票 0:不开票
* 默认开票
*/
export const invoiceStatusEnum = {
INVOICE: 1,
NO_INVOICE: 0
}
export const invoiceStatusMap = {
[invoiceStatusEnum.INVOICE]: '开票',
[invoiceStatusEnum.NO_INVOICE]: '不开票'
}

16
pages.json

@ -356,6 +356,22 @@
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "pages/my-client/index",
"style": {
"navigationBarTitleText": "我的客户",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "pages/my-receipt-code/index",
"style": {
"navigationBarTitleText": "我的收款码",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {

4
pages/add-paper/index.vue

@ -139,7 +139,7 @@
<view class="paper-price-item">
<view class="label">
<uni-icons custom-prefix="iconfont" type="icon-required" size="14" color="#F5222D"></uni-icons>
<text class="label_text">含税价格</text>
<text class="label_text">现款单价</text>
</view>
<view class="label_value flex">
<qn-easyinput
@ -148,7 +148,7 @@
v-model="item.listPrice"
:inputBorder="false"
text="right"
placeholder="请输入含税价格"
placeholder="请输入现款单价"
></qn-easyinput>
<view class="paper-price-title text-left">/{{ item.stockUnit === 1 ? '张' : '吨' }}</view>
</view>

177
pages/client-list/index.vue

@ -17,15 +17,41 @@
</qn-header>
<view class="content">
<scroll-list ref="list" :option="option" @load="upCallback" @refresh="downCallback">
<packingStationItem style="margin-bottom: 20rpx" v-for="item in list" :key="item.enterpriseId" :info="item"></packingStationItem>
<packingStationItem @selected="showModal" style="margin-bottom: 20rpx" v-for="item in list" :key="item.enterpriseId" :info="item"></packingStationItem>
</scroll-list>
</view>
<uni-popup ref="popup" type="bottom" @maskClick="closeModal">
<view class="flex-col section_7">
<view class="flex-col">
<view class="flex-col group_16">
<view class="justify-between group_17">
<text class="text_23">供应企业</text>
<image src="/static/imgs/general/close-icon.png" class="image_15" />
</view>
<qn-select :options="mallSupplierList" v-model="popupInfo.mallSupplierId" placeholder="请选择当前账号下的供应商"></qn-select>
</view>
<view class="flex-col group_18">
<view class="flex-row group_19">
<text class="text_25">税点(%)</text>
<text class="text_26">(例如12=12%)</text>
</view>
<view class="bottom-section">
<qn-easyinput type="number" :maxlength="4" v-model="popupInfo.taxPoint" :inputBorder="false" text="left" placeholder="请输入税点"></qn-easyinput>
</view>
</view>
</view>
<view class="flex-col items-center button" @click="savaTax">
<text>保存税点</text>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import qnHeader from '@/components/qn-header/qn-header.vue'
import { getCompanyList } from '@/apis/clientListApi'
import { getCompanyList, getClientTaxPoint, editClientTaxPoint } from '@/apis/clientListApi'
import { getBaseInfo } from '@/apis/commonApi'
import scrollList from '@/components/scroll-list/scroll-list.vue'
import packingStationItem from '@/components/business-components/packingStationItem.vue'
export default {
@ -68,7 +94,15 @@ export default {
auto: true,
emptyText: '暂无数据~',
background: '#F7F8FA'
}
},
popupInfo: {
enterpriseId: '',
mallSupplierId: '',
mallSupplierName: '',
taxPoint: '',
id: null
},
mallSupplierList: []
}
},
methods: {
@ -81,7 +115,7 @@ export default {
getCompanyList({ ...this.params, ...this.pagination })
.then((res) => {
if (res) {
if (res.current == 1) {
if (res.current <= 1) {
this.list = res.records
} else {
this.list = this.list.concat(res.records)
@ -115,6 +149,66 @@ export default {
.catch(() => {
this.$refs.list.loadFail()
})
},
showModal(company) {
this.popupInfo.enterpriseId = company.enterpriseId
if (this.mallSupplierList.length == 0) {
getBaseInfo({}, true).then((res) => {
if (res) {
this.mallSupplierList = res.enterpriseList.map((item) => ({
value: item.supplier.id,
label: item.name
}))
this.$refs.popup.open('bottom')
}
})
} else {
this.$refs.popup.open('bottom')
}
},
closeModal() {
this.popupInfo = {
enterpriseId: null,
mallSupplierId: null,
mallSupplierName: '',
taxPoint: null,
id: null
}
this.$refs.popup.close()
},
addCustomer() {
console.log('addCustomer', this.popupInfo)
this.closeModal()
},
savaTax() {
if (!this.popupInfo.mallSupplierId) {
uni.showToast({
title: '请先选择纸盘商',
icon: 'none'
})
return
}
if (this.popupInfo.taxPoint === '') {
uni.showToast({
title: '请输入税点',
icon: 'none'
})
return
}
editClientTaxPoint({
supplierId: this.popupInfo.mallSupplierId,
customerEnterpriseId: this.popupInfo.enterpriseId,
taxPoint: this.popupInfo.taxPoint / 100,
id: this.popupInfo.id
}).then((res) => {
if (res) {
uni.showToast({
title: '保存成功',
icon: 'none'
})
this.closeModal()
}
})
}
},
watch: {
@ -123,6 +217,16 @@ export default {
this.getList()
},
deep: true
},
['popupInfo.mallSupplierId'](val) {
if (val) {
getClientTaxPoint({ supplierId: val, customerEnterpriseId: this.popupInfo.enterpriseId }).then((res) => {
if (res && res.taxPoint) {
this.popupInfo.taxPoint = res.taxPoint * 100
this.popupInfo.id = res.id
}
})
}
}
},
computed: {
@ -140,7 +244,7 @@ export default {
}
</script>
<style lang="scss">
<style lang="scss" scoped>
.page {
display: flex;
flex-direction: column;
@ -155,4 +259,67 @@ export default {
.qn-picker {
border: none;
}
.section_7 {
width: 750rpx;
padding: 3rpx 32rpx 12rpx;
background-color: rgb(255, 255, 255);
border-radius: 20rpx 20rpx 0px 0px;
.button {
margin-top: 455rpx;
padding: 23rpx 0;
color: rgb(255, 255, 255);
font-size: 36rpx;
font-weight: 500;
line-height: 50rpx;
white-space: nowrap;
background-color: rgb(0, 122, 255);
border-radius: 10rpx;
}
.group_16 {
padding-bottom: 28rpx;
border-bottom: solid 6rpx rgb(216, 216, 216);
.group_17 {
padding: 31rpx 0 24rpx;
color: rgb(51, 51, 51);
font-size: 30rpx;
line-height: 42rpx;
white-space: nowrap;
.text_23 {
margin-top: 6rpx;
}
.image_15 {
margin-right: 4rpx;
width: 40rpx;
height: 40rpx;
}
}
}
.group_18 {
padding-bottom: 32rpx;
.group_19 {
padding: 31rpx 0 24rpx;
.text_25 {
color: rgb(51, 51, 51);
font-size: 30rpx;
line-height: 42rpx;
white-space: nowrap;
}
.text_26 {
margin: 5rpx 0 5rpx 16rpx;
color: rgb(136, 136, 136);
font-size: 24rpx;
line-height: 33rpx;
white-space: nowrap;
}
}
}
.bottom-section {
line-height: 40rpx;
// padding: 12rpx 24rpx;
border-radius: 8rpx;
background-color: rgb(245, 245, 245);
width: 100%;
height: 64rpx;
}
}
</style>

22
pages/mine/index.vue

@ -20,7 +20,7 @@
<image v-if="userInfo.fddEnterpriseStatus === fddStatus.CERTIFIED_SUCCESS" class="image" src="/static/imgs/mine/certified-icon.png"></image>
<image v-else class="image" @click="certifyCompany()" src="/static/imgs/mine/non-certified-icon.png"></image>
</view>
<view style="margin-top: 10rpx">
<view style="margin-top: 16rpx">
<text
style="font-size: 26rpx; color: #fff; font-weight: 400; word-break: break-all"
@click="loginGo2(hasCompany ? 'enterprise-info-edit' : 'enterprise-info')"
@ -105,6 +105,10 @@
<text style="font-size: 30rpx; color: rgba(0, 0, 0, 0.85); font-weight: 600">其他工具</text>
</view>
<view class="icon-area">
<view class="icon-item" @click="loginGo2('trade')">
<image class="icon" src="/static/imgs/mine/order-icon.png"></image>
<text class="label">订单管理</text>
</view>
<view class="icon-item" @click="handleJump('credit-order-list')">
<image class="icon" src="/static/imgs/mine/finance-icon.png"></image>
<text class="label">账期订单融资</text>
@ -118,12 +122,16 @@
<text class="label">征信管理</text>
</view>
<view class="icon-item" @click="loginGo2('client-credit-list')">
<image class="icon" src="/static/imgs/mine/credit-icon.png"></image>
<image class="icon" src="/static/imgs/mine/credit-record.png"></image>
<text class="label">授信记录</text>
</view>
<view class="icon-item" @click="loginGo2('trade')">
<image class="icon" src="/static/imgs/mine/order-icon.png"></image>
<text class="label">订单列表</text>
<view class="icon-item" @click="loginGo2('my-client')">
<image class="icon" src="/static/imgs/mine/my-client.png"></image>
<text class="label">客户列表</text>
</view>
<view class="icon-item" @click="loginGo2('my-receipt-code')">
<image class="icon" src="/static/imgs/mine/my-receipt-code.png"></image>
<text class="label">收款码</text>
</view>
</view>
</view>
@ -581,14 +589,14 @@ export default {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
justify-content: flex-start;
flex-wrap: wrap;
.icon-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-width: 140rpx;
min-width: 154rpx;
margin-bottom: 36rpx;
.icon {
width: 68rpx;

175
pages/my-client/index.vue

@ -0,0 +1,175 @@
<template>
<view class="content">
<uni-nav-bar left-icon="back" statusBar @clickLeft="back" fixed title="我的客户"></uni-nav-bar>
<scroll-list ref="list" :option="option" @load="upCallback" @refresh="downCallback">
<view class="list-item flex-col" :key="item.id" v-for="item in list">
<view class="top-group flex-col items-end">
<view class="text-wrapper flex-col items-center" :style="{ backgroundColor: item.haveUser ? '' : 'rgb(226, 134, 134)' }">
<text>{{ item.haveUser ? '已注册' : '未注册' }}</text>
</view>
<view class="group_5 flex-row">
<image src="/static/imgs/client/client-default.png" class="image_4" />
<view class="right-group flex-col">
<text class="text_5">{{ item.enterpriseName }}</text>
<text class="text_6">{{ item.bizScope }}</text>
</view>
</view>
</view>
<view class="bottom-group justify-between">
<text class="text_7">{{ item.foundDate | dateFormat }}</text>
<text class="text_9" @click="go2('client-detail', { id: item.enterpriseId })">查看详情</text>
</view>
</view>
</scroll-list>
</view>
</template>
<script>
import { go2, back } from '@/utils/hook.js'
import { getMyClientList } from '@/apis/clientListApi.js'
export default {
data() {
return {
pagination: {
pageNum: 0, //
pageSize: 10
},
condition: {
mallSupplierId: this.$store.state.supplierInfo.supplierId
},
list: [],
option: {
size: 10,
auto: true,
emptyText: '暂无数据~',
background: '#F7F8FA'
}
}
},
methods: {
go2,
back,
getList() {
return new Promise((resolve, reject) => {
getMyClientList({ ...this.condition, ...this.pagination })
.then((res) => {
if (res) {
if (res.current == 1) {
this.list = res.records
} else {
this.list = this.list.concat(res.records)
}
resolve({ list: this.list, total: res.total })
} else {
reject()
}
})
.catch((err) => {
reject(err)
})
})
},
downCallback() {
this.pagination.pageNum = 1
this.getList()
.then(({ list, total }) => {
this.$refs.list.refreshSuccess({ list, total })
})
.catch(() => {
this.$refs.list.refreshFail()
})
},
upCallback(page) {
this.pagination.pageNum++
this.getList()
.then(({ list, total }) => {
this.$refs.list.loadSuccess({ list, total })
})
.catch(() => {
this.$refs.list.loadFail()
})
}
},
filters: {
dateFormat(value) {
if (!value) {
return ''
}
return value.replace(/-/g, '/')
}
}
}
</script>
<style lang="scss" scoped>
.content {
width: 750rpx;
}
.list-item {
background-color: rgb(255, 255, 255);
margin-bottom: 20rpx;
.top-group {
padding-bottom: 114rpx;
border-bottom: solid 2rpx rgb(221, 221, 221);
position: relative;
.text-wrapper {
padding: 5rpx 0;
color: rgb(255, 255, 255);
font-size: 28rpx;
font-weight: 500;
line-height: 40rpx;
white-space: nowrap;
background-color: rgb(134, 226, 223);
border-radius: 0px 0px 0px 20rpx;
width: 124rpx;
}
.group_5 {
position: absolute;
left: 32rpx;
right: 52rpx;
top: 24rpx;
.image_4 {
width: 100rpx;
height: 100rpx;
}
.right-group {
margin-left: 20rpx;
flex: 1 1 auto;
.text_5 {
color: rgb(51, 51, 51);
font-size: 30rpx;
font-weight: 500;
line-height: 42rpx;
white-space: nowrap;
}
.text_6 {
margin-top: 24rpx;
color: rgb(51, 51, 51);
font-size: 26rpx;
line-height: 37rpx;
white-space: nowrap;
width: 560rpx;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
.bottom-group {
padding: 19rpx 32rpx 20rpx;
.text_7 {
color: rgb(136, 136, 136);
font-size: 28rpx;
line-height: 40rpx;
white-space: nowrap;
}
.text_9 {
color: rgb(0, 122, 255);
font-size: 28rpx;
line-height: 40rpx;
white-space: nowrap;
}
}
}
</style>

162
pages/my-receipt-code/index.vue

@ -0,0 +1,162 @@
<template>
<view>
<uni-nav-bar left-icon="back" @clickLeft="back" statusBar fixed title="收款码"></uni-nav-bar>
<view class="container">
<view class="top-section flex-col" v-for="(item, index) in list" :key="item.mallSupplierId">
<view class="flex-col section_1" v-show="item.payeeCodeUrl">
<view class="flex-col items-center group_5">
<image :src="item.payeeCodeUrl" mode="aspectFit" class="image_4" @click="previewCode(item.payeeCodeUrl)" />
<view class="justify-evenly section_2" @click="deleteCode(index)">
<image src="/static/imgs/general/close-icon.png" class="image_5" />
<text>删除</text>
</view>
</view>
</view>
<view class="flex-col items-center section_3" v-show="!item.payeeCodeUrl" @click="uploadCode(item)">
<view class="flex-col items-center image-wrapper">
<image src="/static/imgs/general/camera-icon.png" class="image_6" />
</view>
<text class="text_9">点击上传收款码</text>
</view>
<view class="bottom-group flex-col">
<text class="text_5">{{ item.name }}</text>
<text class="text_7">收款码</text>
</view>
</view>
</view>
</view>
</template>
<script>
import { back, uploadImage } from '@/utils/hook.js'
import { bindingReciptCode, getReciptCodeList } from '@/apis/commonApi'
export default {
data() {
return {
list: []
}
},
created() {
this.getList()
},
methods: {
back,
uploadCode(item) {
uploadImage().then((res) => {
if (res.length > 0) {
bindingReciptCode({
mallSupplierId: item.mallSupplierId,
payeeCodeUrl: res[0]
}).then((result) => {
if (result) {
item.payeeCodeUrl = res[0]
console.log('payeeCodeUrl', res[0])
}
})
}
})
},
deleteCode(item) {
item.payeeCodeUrl = null
},
previewCode(url) {
uni.previewImage({ urls: [url], current: url })
},
getList() {
getReciptCodeList().then((res) => {
if (res) {
this.list = res
}
})
}
}
}
</script>
<style lang="scss" scoped>
.container {
width: 750rpx;
padding: 0 32rpx;
}
.top-section {
margin-top: 20rpx;
background-color: rgb(255, 255, 255);
box-shadow: 0px 2rpx 14rpx 0px rgba(220, 220, 220, 0.5);
border-radius: 32rpx;
.section_1 {
color: rgb(255, 255, 255);
font-size: 30rpx;
line-height: 42rpx;
white-space: nowrap;
border-radius: 32rpx 32rpx 0px 0px;
.group_5 {
overflow: hidden;
border-radius: 32rpx 32rpx 0 0;
height: 438rpx;
width: 686rpx;
position: relative;
.image_4 {
border-radius: 32rpx 32rpx 0 0;
overflow: hidden;
width: 686rpx;
height: 438rpx;
}
.section_2 {
padding: 7rpx 24rpx 7rpx 26rpx;
background-color: rgba(255, 0, 0, 0.61);
border-radius: 0px 10rpx 0px 10rpx;
width: 154rpx;
position: absolute;
right: 0;
top: 0;
.image_5 {
margin: 3rpx 0 4rpx;
width: 35rpx;
height: 35rpx;
}
}
}
}
.bottom-group {
padding: 28rpx 24rpx 29rpx;
.text_5 {
color: rgb(0, 0, 0);
font-size: 36rpx;
font-weight: 500;
line-height: 50rpx;
white-space: nowrap;
}
.text_7 {
margin-top: 4rpx;
color: rgb(136, 136, 136);
font-size: 26rpx;
line-height: 37rpx;
white-space: nowrap;
}
}
}
.section_3 {
padding: 131rpx 0;
color: rgb(76, 74, 88);
font-size: 26rpx;
line-height: 37rpx;
white-space: nowrap;
border-radius: 32rpx 32rpx 0 0;
background-image: url('https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/611dd17441a9be0011f45822/620ccb0962a7d90011fe5c8f/16472372926943168687.png');
background-size: 100% 100%;
background-repeat: no-repeat;
.image-wrapper {
padding: 39rpx 0 40rpx;
background-color: rgba(0, 122, 255, 0.79);
border-radius: 50%;
width: 120rpx;
.image_6 {
width: 48rpx;
height: 41rpx;
}
}
.text_9 {
margin-top: 20rpx;
}
}
</style>

37
pages/order-detail/index.vue

@ -100,6 +100,10 @@
</view>
</view>
<view class="order-footer">
<view class="flex-row-center-space order-line">
<text class="label">是否开票</text>
<text class="value">{{ invoiceStatusMap[orderInfo.invoiceOrNot] || '开票' }}</text>
</view>
<view class="flex-row-center-space order-line">
<text class="label">订单备注</text>
<text class="value">{{ orderInfo.remark || '无' }}</text>
@ -132,6 +136,9 @@
取消订单
</view>
<view class="button button_contact" @click="viewContract">查看合同</view>
<view class="button button_confirm" v-show="orderInfo.status === supplierOrderStatusEnum.WAIT_CLIENT_PAY" @click="confirmWxpay" style="width: 220rpx">
确认微信收款
</view>
<view class="button button_confirm" v-show="orderInfo.status === supplierOrderStatusEnum.WAIT_DELIVERY" @click="delivery" style="width: 220rpx">
确认发货
</view>
@ -183,9 +190,10 @@ import {
supplierUploadVoucher,
supplierDelivery,
supplierDeleteVoucher,
supplierConfirmRepay
supplierConfirmRepay,
supplierConfirmWxpay
} from '@/apis/orderApi.js'
import { supplierOrderStatusMap, supplierOrderStatusEnum, paymentMethodEnum } from '@/enums/index.js'
import { supplierOrderStatusMap, supplierOrderStatusEnum, paymentMethodEnum, invoiceStatusMap } from '@/enums/index.js'
import { transformFileToImg } from '@/apis/commonApi.js'
export default {
data() {
@ -203,7 +211,8 @@ export default {
quantity: 0,
max: 0,
index: 0
}
},
invoiceStatusMap: Object.freeze(invoiceStatusMap)
}
},
onLoad(option) {
@ -272,6 +281,28 @@ export default {
}
})
},
//
confirmWxpay() {
uni.showModal({
title: '提示',
content: '确定已经收到微信款项?',
success: (res) => {
if (res.confirm) {
supplierConfirmWxpay({
supplierOrderId: this.orderInfo.orderId
}).then((res) => {
if (res) {
uni.showToast({
title: '确认成功',
icon: 'success'
})
this.init(this.orderInfo.orderId)
}
})
}
}
})
},
//
transformStep(list, quantity) {
//

2
pages/paper-detail/index.vue

@ -33,7 +33,7 @@
<!-- 表头行 -->
<uni-tr class="paper-table-title">
<uni-th align="left" width="55">克重</uni-th>
<uni-th align="left" width="65">含税单价</uni-th>
<uni-th align="left" width="65">现款单价</uni-th>
<uni-th align="left" width="65">库存</uni-th>
<uni-th align="left" width="75">是否特价</uni-th>
</uni-tr>

1
pages/switching-mall/index.vue

@ -49,7 +49,6 @@ export default {
back,
queryData() {
getStoreList().then((res) => {
console.log('==', res)
this.enterpriseList = res
})
},

BIN
static/.DS_Store

BIN
static/imgs/.DS_Store

BIN
static/imgs/general/camera-icon.png

Before After
Width: 64  |  Height: 64  |  Size: 1.5 KiB

BIN
static/imgs/general/close-icon.png

Before After
Width: 62  |  Height: 62  |  Size: 1.7 KiB

BIN
static/imgs/mine/credit-record.png

Before After
Width: 68  |  Height: 68  |  Size: 7.7 KiB

BIN
static/imgs/mine/my-client.png

Before After
Width: 74  |  Height: 75  |  Size: 7.5 KiB

BIN
static/imgs/mine/my-receipt-code.png

Before After
Width: 60  |  Height: 60  |  Size: 6.7 KiB

BIN
static/imgs/mine/设置税点.sketch

Loading…
Cancel
Save