Browse Source

Merge branch 'devlop' of http://git.qniao.cn/qniao/paper-shopkeeper-H5 into devlop

devlop
buffeyu 4 years ago
parent
commit
a17d71206b
14 changed files with 363 additions and 57 deletions
  1. 11
      apis/commonApi.js
  2. 48
      apis/orderApi.js
  3. 4
      enums/index.js
  4. 3
      manifest.json
  5. 14
      pages.json
  6. 20
      pages/enquiry-list/index.vue
  7. 5
      pages/enterprise-info/index.vue
  8. 2
      pages/mine/index.vue
  9. 84
      pages/notification-page/index.vue
  10. 214
      pages/order-detail/index.vue
  11. 10
      pages/test/index.vue
  12. BIN
      static/imgs/order/camera.png
  13. 2
      utils/hook.js
  14. 3
      utils/http/index.js

11
apis/commonApi.js

@ -96,3 +96,14 @@ export function getFsCredit(data = {}) {
export function getMonthCredit(data = {}) {
return http.get({ url: '/yyt-uec/customer/get/supplier-credit', data })
}
/**
* 转换合同成图片
* @param {object} data 图片地址链接 fileUrl
*/
export function transformFileToImg(data) {
return http.get({
url: '/document/get/enterprise-documents/file-image-base64',
data: data
})
}

48
apis/orderApi.js

@ -60,3 +60,51 @@ export const getClientOrderInfo = (data) => {
data
})
}
/**
* 获取客户订单签署是否成功
* @param {object} data orderId
* @returns {Promise<object>}
*/
export const confirmContract = (data) => {
return http.get({
url: '/base-paper-trading/get/customer/signing/contract/status',
data
})
}
/**
* 客户上传收货凭证
* @param {object} data proofDeliveryUrl[] supplierOrderId
* @returns {Promise<Object>}
*/
export function clientUploadVoucher(data) {
return http.post({
url: '/base-paper-trading/customer/submit/upload/proof/receipt',
data
})
}
/**
* 客户删除收货凭证
* @param {object} data id
* @returns {Promise<Object>}
*/
export function clientDeleteVoucher(data) {
return http.post({
url: '/base-paper-trading/delete/certificate/img?id=' + data.id,
data
})
}
/**
* 客户确认舒活
* @param {object} data supplierOrderId
* @returns {Promise<Object>}
*/
export function clientConfirmOrder(data) {
return http.post({
url: '/base-paper-trading/customer/submit/confirm/receipt',
data
})
}

4
enums/index.js

@ -43,8 +43,8 @@ export const fddEnterpriseStatus = {
* 上传地址
*/
export const uploadUrl = {
image: `https://api-ops-yyt${urlEnv}.qniao.cn/yyt-uec/file-uploading/upload/image`,
file: `https://api-ops-yyt${urlEnv}.qniao.cn/yyt-uec/file-uploading/upload/file`
image: `https://api-client-yyt${urlEnv}.qniao.cn/yyt-uec/file-uploading/upload/image`,
file: `https://api-client-yyt${urlEnv}.qniao.cn/yyt-uec/file-uploading/upload/file`
}
/**
* 结算周期1月结30飞算1期2月结453月结60飞算2期4月结755月结90飞算3期

3
manifest.json

@ -53,7 +53,8 @@
"appid" : "",
"UniversalLinks" : ""
}
}
},
"ad" : {}
}
},
"uniStatistics" : {

14
pages.json

@ -43,6 +43,13 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/notification-page/index",
"style": {
"navigationBarTitleText": "统一第三方通知页面",
"enablePullDownRefresh": false
}
},
{
"path": "pages/enterprise-info/index",
"style": {
@ -106,6 +113,13 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/enquiry-list/index",
"style": {
"navigationBarTitleText": "询价列表",
"enablePullDownRefresh": false
}
},
{
"path": "pages/for-comparison/index",
"style": {

20
pages/enquiry-list/index.vue

@ -0,0 +1,20 @@
<template>
<view>
<uni-nav-bar left-icon="back" @clickLeft="back" statusBar fixed title="询价列表"></uni-nav-bar>
</view>
</template>
<script>
import { go2, back } from '@/utils/hook.js'
export default {
data() {
return {}
},
methods: {
go2,
back
}
}
</script>
<style lang="scss" scoped></style>

5
pages/enterprise-info/index.vue

@ -317,9 +317,10 @@ export default {
if (res) {
this.form.id = enterpriseId
this.form.name = res.name
//
this.reflectiveCompany(res)
// watchname
setTimeout(() => {
//
this.reflectiveCompany(res)
this.hasSelected = true
}, 0)
}

2
pages/mine/index.vue

@ -99,7 +99,7 @@
<image class="icon" src="/static/imgs/mine/account-icon.png"></image>
<text class="label">账号管理</text>
</view>
<view class="icon-item" style="margin-right: 64rpx">
<view class="icon-item" style="margin-right: 64rpx" @click="go2('enquiry-list')">
<image class="icon" src="/static/imgs/mine/enquiry-icon.png"></image>
<text class="label">我的询价</text>
</view>

84
pages/notification-page/index.vue

@ -0,0 +1,84 @@
<template>
<view></view>
</template>
<script>
import { go2, back } from '@/utils/hook.js'
import { confirmContract } from '@/apis/orderApi.js'
export default {
data() {
return {
//
retry: true
}
},
methods: {
go2,
back,
//
certifySign(orderId) {
if (!orderId) {
this.handleParamError()
return
}
uni.showToast({
title: '正在查询结果,请稍候~',
icon: 'none',
duration: 3000,
success: () => {
setTimeout(() => {
confirmContract({ orderId: orderId }).then((res) => {
if (res) {
go2('order-detail', { orderId: orderId }, true)
} else {
this.handleResultError({ fn: this.certifySign, data: orderId, errType: '订单合同签约' })
}
})
}, 3000)
}
})
},
//
handleParamError() {
uni.showToast({
title: '页面参数校验失败',
icon: 'none',
success: () => {
setTimeout(() => {
g2('store', {}, true)
}, 2000)
}
})
},
//
handleResultError({ fn, data, errType }) {
if (this.retry) {
this.retry = false
fn(data)
} else {
uni.showToast({
title: `${errType}结果校验失败,正在跳转`,
icon: 'error',
success: () => {
setTimeout(() => {
g2('store', {}, true)
}, 1000)
}
})
}
}
},
onLoad(option) {
if (option.type) {
//
if (option.type === 'signSuccess') {
this.certifySign(option.data)
}
} else {
this.handleParamError()
}
}
}
</script>
<style lang="scss" scoped></style>

214
pages/order-detail/index.vue

@ -27,10 +27,12 @@
<!-- 待收货展示 -->
<view v-if="supplierOrder.status == supplierOrderStatusEnum.WAIT_RECEIVE" class="button-item" @click="confirmReceive(supplierOrder)">确认收货</view>
<!-- 待借款展示 -->
<view v-if="supplierOrder.status == supplierOrderStatusEnum.WAIT_CLIENT_LOAN" class="button-item" @click="goBorrowing(supplierOrder)">去借款</view>
<view v-else-if="supplierOrder.status == supplierOrderStatusEnum.WAIT_CLIENT_LOAN" class="button-item" @click="goBorrowing(supplierOrder)">
去借款
</view>
<!-- 飞算支付且待还款状态 -->
<view
v-if="orderInfo.paymentMethod == paymentMethodEnum.FLY_PAY && supplierOrder.status == supplierOrderStatusEnum.WAIT_CLIENT_REPAY"
v-else-if="orderInfo.paymentMethod == paymentMethodEnum.FLY_PAY && supplierOrder.status == supplierOrderStatusEnum.WAIT_CLIENT_REPAY"
class="button-item"
@click="goRepaying(supplierOrder)"
>
@ -64,9 +66,9 @@
</view>
<view style="padding: 24rpx 10rpx">
<uni-steps
:options="transformStep(order.outboundProcessList)"
:options="transformStep(order.outboundProcessList, order.pieceQuantity)"
active-color="#1890FF"
:active="order.outboundProcessList.length > 0 ? order.outboundProcessList.length : -1"
:active="order.outboundProcessList.length > 0 ? order.outboundProcessList.length - 1 : -1"
></uni-steps>
</view>
</view>
@ -80,20 +82,29 @@
</view>
</view>
<view class="imgs flex-row-start-start">
<image style="width: 120rpx; height: 120rpx; margin-right: 12rpx" src=""></image>
<view v-for="item in supplierOrder.proofDelivery" :key="item.id" class="upload_img">
<image style="width: 120rpx; height: 120rpx" :src="item.imgUrl"></image>
</view>
</view>
</view>
<!-- 收货凭证 -->
<view v-if="showReceiveImgs(supplierOrder.status)" class="footer" :style="showList.includes(`${index}_receive`) ? '' : 'height:88rpx;'">
<view class="header flex-row-center-space">
<text style="font-size: 28rpx; font-weight: 600">货凭证</text>
<text style="font-size: 28rpx; font-weight: 600">货凭证</text>
<view class="flex-row-center-end" @click="changeShowIndex(`${index}_receive`)">
<text style="font-size: 28rpx; margin-right: 8rpx">{{ showList.includes(`${index}_receive`) ? '收起' : '展开' }}</text>
<uni-icons :type="showList.includes(`${index}_receive`) ? 'top' : 'bottom'" size="16"></uni-icons>
</view>
</view>
<view class="imgs flex-row-start-start">
<image style="width: 120rpx; height: 120rpx; margin-right: 12rpx" src=""></image>
<view v-for="item in supplierOrder.proofReceipt" :key="item.id" class="upload_img">
<uni-icons type="clear" size="16" class="close-icon" @click="deleteVoucher(item.id)"></uni-icons>
<image style="width: 120rpx; height: 120rpx" :src="item.imgUrl"></image>
</view>
<view class="default-upload" @click="uploadVoucher(supplierOrder.supplierOrderId)">
<image src="/static/imgs/order/camera.png" class="icon"></image>
<text style="font-size: 26rpx; color: #4c4a58">上传凭证</text>
</view>
</view>
</view>
</view>
@ -127,15 +138,16 @@
</view>
<qn-footer fixed height="120rpx">
<view class="flex-row-center-end" style="padding: 0 32rpx">
<view class="button">查看合同</view>
<view class="button" @click="viewContract">查看合同</view>
</view>
</qn-footer>
</view>
</template>
<script>
import { go2, back } from '@/utils/hook.js'
import { getClientOrderInfo } from '@/apis/orderApi.js'
import { go2, back, uploadImage } from '@/utils/hook.js'
import { getClientOrderInfo, clientUploadVoucher, clientDeleteVoucher, clientConfirmOrder } from '@/apis/orderApi.js'
import { transformFileToImg } from '@/apis/commonApi.js'
import { orderStatusEnum, supplierOrderStatusMap, supplierOrderStatusEnum, paymentMethodMap, paymentMethodEnum } from '@/enums/index.js'
const statusImg = {
[orderStatusEnum.WAIT_SUPPLIER_CONFIRM]: '待供应商确认',
@ -143,6 +155,17 @@ const statusImg = {
[orderStatusEnum.FINISHED]: '已完成',
[orderStatusEnum.CANCELED]: '已取消'
}
const showVoucherStatus = [
supplierOrderStatusEnum.WAIT_RECEIVE,
supplierOrderStatusEnum.WAIT_CLIENT_LOAN,
supplierOrderStatusEnum.PAYING,
supplierOrderStatusEnum.WAIT_CLIENT_PAY,
supplierOrderStatusEnum.PAY_FAIL,
supplierOrderStatusEnum.FINISHED,
supplierOrderStatusEnum.WAIT_CLIENT_REPAY,
supplierOrderStatusEnum.REPAYING,
supplierOrderStatusEnum.CANCELED
]
export default {
data() {
return {
@ -160,13 +183,7 @@ export default {
},
onLoad(option) {
if (option.orderId) {
getClientOrderInfo({
customerOrderId: option.orderId
}).then((res) => {
if (res) {
this.orderInfo = res
}
})
this.init(option.orderId)
} else {
uni.showToast({
title: '订单信息错误',
@ -182,6 +199,15 @@ export default {
methods: {
go2,
back,
init(orderId) {
getClientOrderInfo({
customerOrderId: orderId
}).then((res) => {
if (res) {
this.orderInfo = res
}
})
},
transformAddress(address) {
let res = ''
if (address) {
@ -190,11 +216,13 @@ export default {
return res
},
//
transformStep(list) {
transformStep(list, quantity) {
//
let step1 = [],
step2 = [],
step3 = []
//
let outboundQuantity = 0
if (list && list.length > 0) {
list.forEach((item) => {
if (item.status == '30301') {
@ -207,6 +235,7 @@ export default {
title: '出库',
desc: item.userName + item.quantity + '\n\r' + item.createTime
})
outboundQuantity += item.quantity
} else if (item.status == '30303') {
step3.push({
title: '完成',
@ -226,6 +255,12 @@ export default {
title: '出库',
desc: '未完成'
})
} else if (outboundQuantity < quantity) {
//
step2.push({
title: '出库',
desc: '未完成'
})
}
if (step3.length == 0) {
step3.push({
@ -245,37 +280,38 @@ export default {
},
//
showSendImgs(status) {
let list = [
supplierOrderStatusEnum.WAIT_RECEIVE,
supplierOrderStatusEnum.WAIT_CLIENT_LOAN,
supplierOrderStatusEnum.PAYING,
supplierOrderStatusEnum.WAIT_CLIENT_PAY,
supplierOrderStatusEnum.PAY_FAIL,
supplierOrderStatusEnum.FINISHED,
supplierOrderStatusEnum.WAIT_CLIENT_REPAY,
supplierOrderStatusEnum.REPAYING,
supplierOrderStatusEnum.CANCELED
]
return list.includes(status)
return showVoucherStatus.includes(status)
},
//
showReceiveImgs(status) {
let list = [
supplierOrderStatusEnum.WAIT_CLIENT_LOAN,
supplierOrderStatusEnum.PAYING,
supplierOrderStatusEnum.WAIT_CLIENT_PAY,
supplierOrderStatusEnum.PAY_FAIL,
supplierOrderStatusEnum.FINISHED,
supplierOrderStatusEnum.WAIT_CLIENT_REPAY,
supplierOrderStatusEnum.REPAYING,
supplierOrderStatusEnum.CANCELED
]
return list.includes(status)
return showVoucherStatus.includes(status)
},
//
goBorrowing(order) {},
//
confirmReceive(order) {},
confirmReceive(order) {
uni.showModal({
title: '提示',
content: '确认收货后,将不能修改,确认收货吗?',
success: (res) => {
if (res.confirm) {
clientConfirmOrder({
supplierOrderId: order.supplierOrderId
}).then((res) => {
if (res) {
uni.showToast({
title: '确认收货成功',
icon: 'success',
success: () => {
this.init(this.orderInfo.orderId)
}
})
}
})
}
}
})
},
goRepaying(order) {},
clip(content) {
uni.setClipboardData({
@ -288,6 +324,62 @@ export default {
})
}
})
},
//
deleteVoucher(id) {
clientDeleteVoucher({ id }).then((res) => {
if (res) {
uni.showToast({
title: '删除成功',
icon: 'success',
success: () => {
setTimeout(() => {
this.init(this.orderInfo.orderId)
}, 1000)
}
})
}
})
},
//
uploadVoucher(supplierOrderId) {
uploadImage(['album'], 5)
.then((urls) => {
if (urls) {
clientUploadVoucher({
supplierOrderId,
proofDeliveryUrl: urls
}).then((res) => {
if (res) {
uni.showToast({
title: '上传成功',
icon: 'success',
success: () => {
setTimeout(() => {
this.init(this.orderInfo.orderId)
}, 1000)
}
})
}
})
}
})
.catch((e) => {
console.log('上传失败:', e)
uni.showToast({
title: '上传失败',
icon: 'fail'
})
})
},
//
viewContract() {
let url = this.orderInfo.contractUrl
if (url) {
transformFileToImg({ fileUrl: url }).then((res) => {
uni.previewImage({ urls: [res.imgUrl], current: res.imgUrl })
})
}
}
}
}
@ -304,7 +396,7 @@ export default {
width: 750rpx;
background-color: #ffffff;
.footer {
padding: 24rpx 32rpx;
padding: 24rpx 0;
background-color: #ffffff;
border-top: 1px solid #e5e5e5;
}
@ -382,7 +474,7 @@ export default {
}
.button-item {
padding: 0rpx 24rpx;
height: 42rpx;
height: 46rpx;
display: flex;
justify-content: center;
align-items: center;
@ -391,4 +483,38 @@ export default {
font-size: 26rpx;
color: #ffffff;
}
.default-upload {
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
background-color: #dcdee0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.icon {
width: 56rpx;
height: 56rpx;
margin-bottom: 8rpx;
}
}
.upload_img {
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
background-color: #dcdee0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
margin-right: 12rpx;
overflow: hidden;
.close-icon {
position: absolute;
top: 0;
right: 0;
z-index: 5;
}
}
</style>

10
pages/test/index.vue

@ -24,18 +24,18 @@ export default {
})
},
getDetail() {
getPaperDetail({ productId: '680401985190629376' })
getPaperDetail({ productId: '678972506887032832' })
},
purchase() {
let form = {
orderGoodsList: [
{
buyTon: 2,
buyTon: 1,
gramWeight: 200,
length: 1000,
mallSupplierId: '678289470268772352',
pieceQuantity: 10000,
productId: '680401985190629376',
mallSupplierId: '677166944742412288',
pieceQuantity: 5000,
productId: '678972506887032832',
productSkuId: '678972507222577152',
unitPrice: 10000,
width: 1000

BIN
static/imgs/order/camera.png

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

2
utils/hook.js

@ -100,7 +100,7 @@ export function exit() {
export function uploadImage(sourceType = ['album', 'camera'], count = 1) {
return new Promise((resolve, reject) => {
uni.chooseImage({
count: 1,
count: count,
sizeType: ['original', 'compressed'],
sourceType: sourceType,
success: (res) => {

3
utils/http/index.js

@ -8,7 +8,8 @@ const xappid = '503258978847966404'
const prefixList = {
'/yyt-uec': `https://api-client-yyt${urlEnv}.qniao.cn`,
'/base-paper-trading': `https://api-client-yyt${urlEnv}.qniao.cn`,
'/uec': `https://api-client-uec${urlEnv}.qniao.cn`
'/uec': `https://api-client-uec${urlEnv}.qniao.cn`,
'/document': `https://api-ops-yyt${urlEnv}.qniao.cn`
}
const config = {

Loading…
Cancel
Save