Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
W
wly-APP
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘川
wly-APP
Commits
a4a4a4c2
Commit
a4a4a4c2
authored
Apr 25, 2024
by
xiangzj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
以酒促酒功能
parent
d4d6c62f
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
873 additions
and
425 deletions
+873
-425
pages.json
pages.json
+18
-3
order-item.nvue
pages/my-purchase/order-item.nvue
+9
-6
order-detail-quota.nvue
pages/order-detail-quota/order-detail-quota.nvue
+20
-4
out-web-site.vue
pages/out-web-site/out-web-site.vue
+2
-1
purchase-main.nvue
pages/purchase-main/purchase-main.nvue
+4
-0
purchase-plan-detail.vue
pages/purchase-plan-detail/purchase-plan-detail.vue
+50
-0
purchase-plan.nvue
pages/purchase-plan/purchase-plan.nvue
+17
-1
purchase-receive.nvue
pages/purchase-receive/purchase-receive.nvue
+5
-4
purchase-list.nvue
pages/purchase/purchase-list.nvue
+611
-0
purchase.nvue
pages/purchase/purchase.nvue
+58
-384
order-upload.nvue
pages/quota/order-upload.nvue
+19
-3
quota-order.nvue
pages/quota/quota-order.nvue
+32
-11
select-sale-plan.vue
pages/select-sale-plan/select-sale-plan.vue
+4
-0
order-item.nvue
pages/ticket-order/order-item.nvue
+19
-8
purchaseList.js
servers/purchaseList.js
+5
-0
No files found.
pages.json
View file @
a4a4a4c2
...
@@ -303,8 +303,8 @@
...
@@ -303,8 +303,8 @@
"titleAlign"
:
"left"
,
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"
#fff
"
,
"backgroundColor"
:
"
transparent
"
,
"titleText"
:
"
未发货产品
"
,
"titleText"
:
"
选择要货类型
"
,
"autoBackButton"
:
false
,
"autoBackButton"
:
false
,
"splitLine"
:
true
"splitLine"
:
true
}
}
...
@@ -324,7 +324,22 @@
...
@@ -324,7 +324,22 @@
//
}
//
}
//
}
//
}
//
}
//
}
},
{
},{
"path"
:
"pages/purchase/purchase-list"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"未发货产品"
,
"autoBackButton"
:
true
}
}
}
},
{
"path"
:
"pages/purchase/purchase-apply"
,
"path"
:
"pages/purchase/purchase-apply"
,
"style"
:
{
"style"
:
{
"app-plus"
:
{
"app-plus"
:
{
...
...
pages/my-purchase/order-item.nvue
View file @
a4a4a4c2
...
@@ -65,6 +65,10 @@
...
@@ -65,6 +65,10 @@
<text class="detal-item-label">未发货件数</text>
<text class="detal-item-label">未发货件数</text>
<text class="detal-item-value">{{ele.undeliveredQuantity}}</text>
<text class="detal-item-value">{{ele.undeliveredQuantity}}</text>
</view>
</view>
<view class="block-detal-item">
<text class="detal-item-label">未发货瓶数</text>
<text class="detal-item-value">{{ele.availableBot}}</text>
</view>
<!-- <view class="block-detal-item">
<!-- <view class="block-detal-item">
<text class="detal-item-label">传统当月计划量</text>
<text class="detal-item-label">传统当月计划量</text>
<text class="detal-item-value">{{ele.applyNum}}</text>
<text class="detal-item-value">{{ele.applyNum}}</text>
...
@@ -207,7 +211,7 @@
...
@@ -207,7 +211,7 @@
receiveInfoHeightComputed() {
receiveInfoHeightComputed() {
console.log(this.receiveInfoHeight - 0,'[][]')
console.log(this.receiveInfoHeight - 0,'[][]')
if(this.receiveInfoHeight - 0 === 0){
if(this.receiveInfoHeight - 0 === 0){
const height = this.allFiles.length > 0 ? 485 :
385
const height = this.allFiles.length > 0 ? 485 :
0
return { "minHeight": height + "px" }
return { "minHeight": height + "px" }
}else{
}else{
return {
return {
...
@@ -242,8 +246,8 @@
...
@@ -242,8 +246,8 @@
// 获取arraybuffer格式数据
// 获取arraybuffer格式数据
let res = await uni.request({
let res = await uni.request({
method: "POST",
method: "POST",
url: `https://crm.wuliangye.com.cn/crm-app/attachmentDownFile?id=`+item.id, //生产
//
url: `https://crm.wuliangye.com.cn/crm-app/attachmentDownFile?id=`+item.id, //生产
//
url: `http://221.10.127.60:5000/crm-app/attachmentDownFile?id=`+item.id,
url: `http://221.10.127.60:5000/crm-app/attachmentDownFile?id=`+item.id,
params: {
params: {
id: item.id
id: item.id
},
},
...
@@ -500,8 +504,7 @@
...
@@ -500,8 +504,7 @@
display: flex;
display: flex;
flex-direction: column;
flex-direction: column;
margin-top: 40rpx;
margin-top: 40rpx;
height: 240rpx;
min-height: 240rpx;
overflow: hidden;
// padding-bottom: 96rpx;
// padding-bottom: 96rpx;
}
}
...
@@ -556,7 +559,7 @@
...
@@ -556,7 +559,7 @@
}
}
.upload-block {
.upload-block {
display: flex;
display: flex;
height:
3
88rpx;
height: 88rpx;
border-radius: 4px;
border-radius: 4px;
margin-top: 20rpx;
margin-top: 20rpx;
flex-direction: column;
flex-direction: column;
...
...
pages/order-detail-quota/order-detail-quota.nvue
View file @
a4a4a4c2
...
@@ -64,17 +64,29 @@
...
@@ -64,17 +64,29 @@
<text class="detal-item-value">{{item.ZZFLD00000F}}</text>
<text class="detal-item-value">{{item.ZZFLD00000F}}</text>
</view>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">总计划量</text>
<text class="detal-item-label">总计划量
(件)
</text>
<text class="detal-item-value">{{item.ZZFLD00000H}}</text>
<text class="detal-item-value">{{item.ZZFLD00000H}}</text>
</view>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">本次占用计划数量</text>
<text class="detal-item-label">本次占用计划数量
(件)
</text>
<text class="detal-item-value">{{item.ZZFLD00000R}}</text>
<text class="detal-item-value">{{item.ZZFLD00000R}}</text>
</view>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">剩余可用计划量</text>
<text class="detal-item-label">剩余可用计划量
(件)
</text>
<text class="detal-item-value">{{item.ZZFLD00000P}}</text>
<text class="detal-item-value">{{item.ZZFLD00000P}}</text>
</view>
</view>
<view class="block-detal-item">
<text class="detal-item-label">总计划量(瓶)</text>
<text class="detal-item-value">{{item.TOTAL_BOT}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">本次占用计划数量(瓶)</text>
<text class="detal-item-value">{{item.CURNT_ATPBOT}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">剩余可用计划量(瓶)</text>
<text class="detal-item-value">{{item.REMAIN_BOT}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="order-middle view" :class="{'order-middle-auto':ishowReceiveDetail}"
<view class="order-middle view" :class="{'order-middle-auto':ishowReceiveDetail}"
...
@@ -100,9 +112,13 @@
...
@@ -100,9 +112,13 @@
<text class="detal-item-label">件数</text>
<text class="detal-item-label">件数</text>
<text class="detal-item-value">{{item.ZZFLD000009}}</text>
<text class="detal-item-value">{{item.ZZFLD000009}}</text>
</view>
</view>
<view class="block-detal-item">
<text class="detal-item-label">瓶数</text>
<text class="detal-item-value">{{item.USE_BOT}}</text>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">数量</text>
<text class="detal-item-label">数量</text>
<text class="detal-item-value">{{item.
ZZFLD000009*item.ZZFLD00002W
}}</text>
<text class="detal-item-value">{{item.
QUANTITY
}}</text>
</view>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">单价</text>
<text class="detal-item-label">单价</text>
...
...
pages/out-web-site/out-web-site.vue
View file @
a4a4a4c2
...
@@ -33,7 +33,8 @@
...
@@ -33,7 +33,8 @@
async
getClientByApp
(){
async
getClientByApp
(){
const
res
=
await
getClientByApp
({
code
:
this
.
userInfo
.
code
})
const
res
=
await
getClientByApp
({
code
:
this
.
userInfo
.
code
})
if
(
res
){
if
(
res
){
this
.
src
=
'https://yingxiao.wuliangye.com.cn/webroot/login/jxsLogin.html?'
+
res
this
.
src
=
'https://yingxiao.wuliangye.com.cn/webroot/login/jxsLogin_test.html?'
+
res
//测试环境
// this.src = 'https://yingxiao.wuliangye.com.cn/webroot/login/jxsLogin.html?'+res //生产环境
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
title
:
'权限校验不通过'
,
title
:
'权限校验不通过'
,
...
...
pages/purchase-main/purchase-main.nvue
View file @
a4a4a4c2
...
@@ -112,6 +112,10 @@
...
@@ -112,6 +112,10 @@
<text class="middle-date">未发货件数</text>
<text class="middle-date">未发货件数</text>
<text class="middle-date-des">{{ele.undeliveredQuantity}}</text>
<text class="middle-date-des">{{ele.undeliveredQuantity}}</text>
</view>
</view>
<view class="text-block">
<text class="middle-date">未发货瓶数</text>
<text class="middle-date-des">{{ele.availableBot}}</text>
</view>
<!-- <view class="text-block">
<!-- <view class="text-block">
<text class="middle-date">传统当月计划量</text>
<text class="middle-date">传统当月计划量</text>
<text class="middle-date-des">{{ele.planQuantity}}</text>
<text class="middle-date-des">{{ele.planQuantity}}</text>
...
...
pages/purchase-plan-detail/purchase-plan-detail.vue
View file @
a4a4a4c2
...
@@ -127,6 +127,56 @@
...
@@ -127,6 +127,56 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
总计划量(瓶)
</text>
<view
class=
"middle-date-des uni-list picker-year"
>
<view
class=
"uni-list-cell"
>
<view
class=
"uni-list-cell-db"
>
<text
class=
"uni-input"
>
{{
clueDetail
.
total_bot
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
初始计划量(瓶)
</text>
<view
class=
"middle-date-des uni-list picker-year"
>
<view
class=
"uni-list-cell"
>
<view
class=
"uni-list-cell-db"
>
<text
class=
"uni-input"
>
{{
clueDetail
.
initplan_bot
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
已开票计划量(瓶)
</text>
<view
class=
"middle-date-des uni-list picker-year"
>
<view
class=
"uni-list-cell"
>
<view
class=
"uni-list-cell-db"
>
<text
class=
"uni-input"
>
{{
clueDetail
.
billing_bot
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
已占用计划量(瓶)
</text>
<view
class=
"middle-date-des uni-list picker-year"
>
<view
class=
"uni-list-cell"
>
<view
class=
"uni-list-cell-db"
>
<text
class=
"uni-input"
>
{{
clueDetail
.
atp_bot
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
剩余可用计划量(瓶)
</text>
<view
class=
"middle-date-des uni-list picker-year"
>
<view
class=
"uni-list-cell"
>
<view
class=
"uni-list-cell-db"
>
<text
class=
"uni-input"
>
{{
clueDetail
.
remain_bot
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"text-block"
>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
总计划额(万元)
</text>
<text
class=
"middle-date"
>
总计划额(万元)
</text>
<view
class=
"middle-date-des uni-list picker-year"
>
<view
class=
"middle-date-des uni-list picker-year"
>
...
...
pages/purchase-plan/purchase-plan.nvue
View file @
a4a4a4c2
...
@@ -106,10 +106,26 @@
...
@@ -106,10 +106,26 @@
<text class="detal-item-label">已开票计划(件)</text>
<text class="detal-item-label">已开票计划(件)</text>
<text class="detal-item-value">{{item.billing_qty}}</text>
<text class="detal-item-value">{{item.billing_qty}}</text>
</view>
</view>
<view class="block-detal-item
block-detal-item-last
">
<view class="block-detal-item">
<text class="detal-item-label">已占用计划(件)</text>
<text class="detal-item-label">已占用计划(件)</text>
<text class="detal-item-value">{{item.atp_qty}}</text>
<text class="detal-item-value">{{item.atp_qty}}</text>
</view>
</view>
<view class="block-detal-item">
<text class="detal-item-label">总计划(瓶)</text>
<text class="detal-item-value">{{item.total_bot}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">初始计划(瓶)</text>
<text class="detal-item-value">{{item.initplan_bot}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">已开票计划(瓶)</text>
<text class="detal-item-value">{{item.billing_bot}}</text>
</view>
<view class="block-detal-item block-detal-item-last">
<text class="detal-item-label">已占用计划(瓶)</text>
<text class="detal-item-value">{{item.atp_bot}}</text>
</view>
</view>
</view>
</view>
</view>
</cell>
</cell>
...
...
pages/purchase-receive/purchase-receive.nvue
View file @
a4a4a4c2
...
@@ -350,8 +350,8 @@
...
@@ -350,8 +350,8 @@
// 获取arraybuffer格式数据
// 获取arraybuffer格式数据
let res = await uni.request({
let res = await uni.request({
method: "POST",
method: "POST",
url: `https://crm.wuliangye.com.cn/crm-app/attachmentDownFile?id=`+item.id, // 生产
//
url: `https://crm.wuliangye.com.cn/crm-app/attachmentDownFile?id=`+item.id, // 生产
//
url: `http://221.10.127.60:5000/crm-app/attachmentDownFile?id=`+item.id,
url: `http://221.10.127.60:5000/crm-app/attachmentDownFile?id=`+item.id,
params: {
params: {
id: item.id
id: item.id
},
},
...
@@ -506,8 +506,8 @@
...
@@ -506,8 +506,8 @@
data.tempFilePaths.forEach((item,idx) => {
data.tempFilePaths.forEach((item,idx) => {
console.log('idx',data.tempFilePaths[idx],data.tempFiles[idx].file.name)
console.log('idx',data.tempFilePaths[idx],data.tempFiles[idx].file.name)
uni.uploadFile({
uni.uploadFile({
url: `https://crm.wuliangye.com.cn/crm-app/webUpload/ajaxUpload`, //生产
//
url: `https://crm.wuliangye.com.cn/crm-app/webUpload/ajaxUpload`, //生产
//
url: `http://221.10.127.60:5000/crm-app/webUpload/ajaxUpload`,
url: `http://221.10.127.60:5000/crm-app/webUpload/ajaxUpload`,
filePath: data.tempFilePaths[idx],
filePath: data.tempFilePaths[idx],
name: 'file',
name: 'file',
formData: {
formData: {
...
@@ -918,6 +918,7 @@
...
@@ -918,6 +918,7 @@
padding: 0 32rpx;
padding: 0 32rpx;
justify-content: space-between;
justify-content: space-between;
align-items: center;
align-items: center;
background: #fff;
}
}
.btn {
.btn {
...
...
pages/purchase/purchase-list.nvue
0 → 100644
View file @
a4a4a4c2
<template>
<view class="lists">
<view class="status_bar" :style="navHeight"></view>
<view class="header-bg">
<image class="header-bg-img" src="@/static/image/nav_bg@3x.png" mode="scaleToFill"></image>
</view>
<view class="main" :class="{'source-main':sourceType ==='wine'}" :style="mainHeight">
<list ref="list" class="scroll-area view" loadmoreoffset='100' @loadmore="scrolltolower"
:show-scrollbar='false'>
<refresh @refresh="refresh" :display="refreshing ? 'show' : 'hide'">
<!-- <loading-indicator></loading-indicator> -->
</refresh>
<cell v-for="(item,index) in lists" :key="item.plan_number">
<view class="scroll-item">
<view class="checkBox" v-if="sourceType ==='wine'">
<checkbox-group @change="handleCheck(index,item)">
<label>
<checkbox :disabled='item.disabled' value="cb" :checked="item.checked" />
</label>
</checkbox-group>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">年度</text>
<text class="item-block-value">{{item.annual}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">计划类型</text>
<text class="item-block-value">{{item.zZFLD00002QTextView}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">制票类型</text>
<text class="item-block-value">{{item.infTypeTextView}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">营销单元</text>
<text class="item-block-value">{{item.zzfld000001TextView}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">发票号</text>
<text class="item-block-value">{{item.invoId}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">产品</text>
<text class="item-pro-value">{{item.productDesc}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">开票总量</text>
<text class="item-block-value">{{item.invoiceQty}}件</text>
</view>
<view class="item-block item-block-code" v-if="sourceType ==='wine'">
<text class="item-block-label">开票总量</text>
<text class="item-block-value">{{item.useBot}}瓶</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">已发数量</text>
<text class="item-block-value">{{item.deliveryQty}}件</text>
</view>
<view class="item-block item-block-code" v-if="sourceType ==='wine'">
<text class="item-block-label">已发数量</text>
<text class="item-block-value">{{item.deliverBot}}瓶</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">剩余数量</text>
<text class="item-block-value">{{handleNum(item)}}</text>
</view>
<view class="bottom" v-if="sourceType ==='common'">
<view class="bottom-btn">
<button class="btn btn-l" type="default" @tap="purchaseBtn(item)">
<text class="btn-text btn-text-l">立即要货</text>
</button>
</view>
</view>
</view>
</cell>
<cell>
<view class="loading-more" v-if='lists.length>2'>
<text class="loading-more-text">{{loadingText}}</text>
</view>
</cell>
<cell v-if='lists.length===0'>
<view class="empty-block" v-if='lists.length===0'>
<image class="icon-empty" src="@/static/image/no_data@3x.png" mode=""></image>
<text class="empty-text">暂无数据</text>
</view>
</cell>
<!-- <view class="planout-block-item__last"> </view> -->
</list>
<view class="bottom-box" v-if="sourceType ==='wine'">
<button class="btn" type="default" @tap="nextStep">
<text class="btn-text">立即要货</text>
</button>
</view>
</view>
</view>
</template>
<script>
import {
mapState
} from 'vuex'
import {
apiPurchaseList,
apiGetUnFinishedInvByPromote
} from '@/servers/purchaseList.js'
import timeFormat from '@/uview-ui/libs/function/timeFormat.js'
export default {
data() {
return {
cb:'',
scrollTop: 0,
isOpened: 'none',
loadingText: '加载中...',
refreshing: false,
page: {
"page": "1",
"pagesize": "10",
},
loadParams: {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
},
selectedSalePlan: {},
typesIndex: 0,
lists: [],
sourceType: 'wine',
checkedArr: []
}
},
computed: {
...mapState(['sysinfo', 'userInfo']),
navHeight() {
return {
'height': `${this.sysinfo.safeArea.top + 44}px`
}
},
mainHeight() {
return {
'height': `${this.sysinfo.safeArea.height - 44 - 30 }px`,
}
},
scrollHeight() {
return {
'height': `${this.sysinfo.safeArea.height - 44 - 156 }px`
}
},
},
onShow() {
},
created() {
// this.sourceType = this.$route.query.type
// this.getSalesPlanTypes(true)
},
onLoad(option) {
this.sourceType = option.type
this.lists = []
if(this.sourceType ==='wine'){
this.getWineList()
this.reset()
return
}
this.reset()
this.getSalesPlan()
},
methods: {
nextStep(){
if(this.checkedArr.length === 0){
uni.showToast({
title: '请先选择要货单',
duration: 2000,
icon: 'none'
});
return
}
// 两条数据件数瓶数累加除去箱装盒数大于1才能下一步
let qtyNum = 0
let botNum = 0
this.checkedArr.forEach((ele,index) => {
qtyNum += ele.availableQty - 0
botNum += ele.availableBot - 0
});
qtyNum = qtyNum + parseInt(botNum/Number(this.checkedArr[0].xzhs))
botNum = botNum%Number(this.checkedArr[0].xzhs)
const row = {
...this.checkedArr[0],
availableQty: qtyNum,
availableBot: botNum
}
if(row.availableQty - 0 === 0){
return Message.warning('选择的酒不够一件')
}
uni.navigateTo({
url: `/pages/purchase/purchase-apply?order=${JSON.stringify(row)}&sourceType=purchase`
})
},
handleCheck(idx,row){
this.lists[idx].checked = !this.lists[idx].checked
this.checkedArr = []
this.lists.forEach((ele,index) => {
if(idx !== index){
if(ele.productCode !== this.lists[idx].productCode || ele.zzfld000001 !== this.lists[idx].zzfld000001){
ele.disabled = true
}else{
ele.disabled = false
}
}
if(ele.checked){
this.checkedArr.push(row)
}
})
this.lists.forEach((ele,index) => {
if(this.checkedArr.length === 0){
ele.disabled = false
}
})
},
handleNum(row){
const qty = row.availableQty ? row.availableQty + '件' : ''
const bot = row.availableBot ? row.availableBot + '瓶' : ''
return qty + bot
},
purchaseBtn(item) {
uni.navigateTo({
url: `/pages/purchase/purchase-apply?order=${JSON.stringify(item)}&sourceType=purchase`
})
},
async getSalesPlan(isRefresh) {
// const params = {
// ...this.page,
// }
const params = `?page=${this.page.page}&pagesize=${this.page.pagesize}`
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
const res = await apiPurchaseList(params)
uni.hideLoading();
const {
data,
} = res
this.page.page = data.page * 1
// this.page.pagesize = 20 * 1
this.loadParams.total = data.Total * 1
this.loadParams.totalPage = Math.ceil(data.Total * 1 / this.page.pagesize * 1)
const dataMap = data && data.Rows.length>0 && data.Rows.map((item) => {
item.checked = false
item.disabled = false
return item
}) || []
if (isRefresh) {
this.lists = dataMap
this.loadParams.isDone = false
} else {
this.lists = this.lists.concat(dataMap)
}
setTimeout(() => {
this.refreshing = false;
}, 300)
},
async getWineList(isRefresh){
const params = `?page=${this.page.page}&pagesize=${this.page.pagesize}`
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
const res = await apiGetUnFinishedInvByPromote(params)
uni.hideLoading();
const {
data,
} = res
this.page.page = data.page * 1
// this.page.pagesize = 20 * 1
this.loadParams.total = data.Total * 1
this.loadParams.totalPage = Math.ceil(data.Total * 1 / this.page.pagesize * 1)
const dataMap = data && data.Rows.length>0 && data.Rows.map((item) => {
item.checked = false
item.disabled = false
return item
}) || []
this.checkedArr = []
if (isRefresh) {
this.lists = dataMap
this.loadParams.isDone = false
} else {
this.lists = this.lists.concat(dataMap)
}
setTimeout(() => {
this.refreshing = false;
}, 300)
},
refresh(e) {
this.refreshing = true;
this.reset()
this.getSalesPlanTypes(true)
// this.getSalesPlan(true)
// #ifdef APP-NVUE
try {
// console.log('-------', this.$refs.list)
this.$refs.list.resetLoadmore();
} catch (e) {
console.log('onrefresh', e)
}
// #endif
},
scrolltolower() {
console.log('onReachBottom');
if (this.page.page < this.loadParams.totalPage) {
this.page.page++
this.getSalesPlanTypes()
// this.getSalesPlan()
} else {
this.loadParams.isDone = true
this.loadingText = '-- 到底了 --'
}
},
reset() {
this.loadParams = {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
}
this.page.page = 1
this.lists = []
this.loadingText = '加载中'
},
getSalesPlanTypes(type=null) {
if(this.sourceType ==='wine'){
this.getWineList(type)
return
}
this.getSalesPlan(type)
},
}
}
</script>
<style lang="scss" scoped>
.view {
flex-direction: column;
}
.header-bg {
height: 284rpx;
opacity: 0.72;
margin-top: -88rpx;
}
.header-bg-img {
width: 750rpx;
}
.lists {
position: relative;
flex-direction: column;
background: #f0f4f5;
flex: 1;
}
.main {
position: relative;
flex-direction: column;
margin-top: -164rpx;
padding: 0 16rpx;
}
.scroll-area {
overflow-y: scroll;
}
.middle {
background-color: #fff;
border-radius: 16rpx;
padding: 32rpx 64rpx 40rpx 48rpx;
}
.text-block {
overflow: hidden;
height: 96rpx;
margin-bottom: 14rpx;
border-bottom: 1px solid #f4f5f6;
}
.text-block-last {
margin-bottom: 0;
border-bottom: 0;
}
.middle-date {
flex: 2;
font-size: 28rpx;
line-height: 96rpx;
color: #333;
margin-bottom: 8rpx;
}
.middle-date-des {
flex: 3;
font-size: 28rpx;
line-height: 96rpx;
height: 96rpx;
overflow: hidden;
text-overflow: ellipsis;
color: #888;
}
.picker-year {
position: relative;
border-radius: 4px;
align-items: center;
line-height: normal;
}
.uni-list-cell {
flex: 1;
}
.uni-list-cell-db {
flex: 1;
}
.picker-block {
flex: 1;
}
.uni-input-text {
font-size: 14px;
color: #888;
}
.icon-arrow {
position: absolute;
right: 0;
top: 16px;
width: 12rpx;
height: 20rpx;
z-index: 10;
}
.planout-block-lists {
display: flex;
flex-direction: column;
}
.planout-block-item {
margin-bottom: 32rpx;
}
.scroll-item {
flex: 1;
display: flex;
flex-direction: column;
margin-bottom: 32rpx;
background-color: #fff;
border-radius: 16rpx;
padding: 32rpx 64rpx 40rpx 48rpx;
}
.planout-block-item__last {
height: 40px;
}
.item-block {
overflow: hidden;
}
.item-block-label {
font-size: 24rpx;
color: #999;
flex: 3;
line-height: 56rpx;
}
.item-block-value {
align-items: center;
flex: 5.5;
font-size: 24rpx;
color: $text-base-color;
line-height: 56rpx;
}
.item-pro-value{
color: $text-base-color;
font-size: 24rpx;
width: 200%;
flex: 5.5;
text-align: left;
}
.item-block-code {
}
.item-block-label-des {
flex: 1;
text-align: left;
font-size: 28rpx;
color: #333;
}
.detal-item-label {
color: #999;
font-size: 24rpx;
}
.detal-item-value {
color: #333;
font-size: 28rpx;
}
.btn {
flex: 1;
height: 92rpx;
background: $wly-primary-color;
border-radius: 46rpx;
}
.btn-text {
color: #fff;
font-size: 34rpx;
}
.loading-more {
flex: 1;
align-items: center;
justify-content: center;
padding-top: 14px;
padding-bottom: 14px;
text-align: center;
}
.loading-more-text {
font-size: 12px;
color: #999;
}
.bottom {
margin-top: 36rpx;
flex: 1;
justify-content: center;
}
.bottom-box {
position: fixed;
display: flex;
bottom: 0;
left: 0;
z-index: 10;
width: 750rpx;
height: 140rpx;
justify-content: space-around;
align-items: center;
background: #fff;
}
.bottom-btn{
width: 328rpx;
height: 92rpx;
border-radius: 50%;
justify-content: space-between;
align-items: center;
}
.btn {
flex: 1;
background: $wly-primary-color;
}
.btn-text {
color: #fff;
font-size: 34rpx;
}
.empty-block {
width: 750rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.icon-empty {
width: 150rpx;
height: 150rpx;
margin-top: 300rpx;
}
.empty-text {
color: #999;
margin-top: 56rpx;
font-size: 28rpx;
}
.checkBox{
display: flex;
justify-content: flex-end;
float: right;
text-align: right;
}
.source-main{
padding-bottom: 100rpx;
}
</style>
pages/purchase/purchase.nvue
View file @
a4a4a4c2
<template>
<template>
<view class="
lists
">
<view class="
order view
">
<view class="status_bar" :style="navHeight"></view>
<view class="status_bar" :style="navHeight"></view>
<view class="header-bg">
<view class="listview">
<image class="header-bg-img" src="@/static/image/nav_bg@3x.png" mode="scaleToFill"></image>
<view class="cell-list">
</view>
<view class="cell-list-block" @click="goOrder('purchase-list','common')">
<view class="main" :style="mainHeight">
<image class="icon-address" src="@/static/image/order_quota@3x.png" mode="aspectFit"></image>
<list ref="list" class="scroll-area view" loadmoreoffset='100' @loadmore="scrolltolower"
<view class="cell-list-block__content">
:show-scrollbar='false'>
<text class="cell-list-block__title">普通要货</text>
<refresh @refresh="refresh" :display="refreshing ? 'show' : 'hide'">
<!-- <loading-indicator></loading-indicator> -->
</refresh>
<cell v-for="(item,index) in lists" :key="item.plan_number">
<view class="scroll-item">
<view class="item-block item-block-code">
<text class="item-block-label">年度</text>
<text class="item-block-value">{{item.annual}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">计划类型</text>
<text class="item-block-value">{{item.zZFLD00002QTextView}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">制票类型</text>
<text class="item-block-value">{{item.infTypeTextView}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">营销单元</text>
<text class="item-block-value">{{item.zzfld000001TextView}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">产品</text>
<text class="item-pro-value">{{item.productDesc}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">开票总量</text>
<text class="item-block-value">{{item.invoiceQty}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">已发数量</text>
<text class="item-block-value">{{item.deliveryQty}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">剩余数量</text>
<text class="item-block-value">{{item.availableQty}}</text>
</view>
<view class="bottom">
<view class="bottom-btn">
<button class="btn btn-l" type="default" @tap="purchaseBtn(item)">
<text class="btn-text btn-text-l">立即要货</text>
</button>
</view>
</view>
</view>
</cell>
<cell>
<view class="loading-more" v-if='lists.length>2'>
<text class="loading-more-text">{{loadingText}}</text>
</view>
</view>
</cell>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
<cell v-if='lists.length===0'>
</view>
<view class="empty-block" v-if='lists.length===0'>
<view class="cell-list-block" @click="goOrder('purchase-list','wine')">
<image class="icon-empty" src="@/static/image/no_data@3x.png" mode=""></image>
<image class="icon-address" src="@/static/image/order_noquota@3x.png" mode="aspectFit"></image>
<text class="empty-text">暂无数据</text>
<view class="cell-list-block__content">
<text class="cell-list-block__title">以酒促酒要货</text>
</view>
</view>
</cell>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
<!-- <view class="planout-block-item__last"> </view> -->
</view>
</list>
</view>
</view>
</view>
</view>
</view>
</template>
</template>
...
@@ -77,143 +28,26 @@
...
@@ -77,143 +28,26 @@
} from 'vuex'
} from 'vuex'
import {
apiPurchaseList
} from '@/servers/purchaseList.js'
import timeFormat from '@/uview-ui/libs/function/timeFormat.js'
export default {
export default {
data() {
data() {
return {
return {
scrollTop: 0,
isOpened: 'none',
loadingText: '加载中...',
refreshing: false,
page: {
"page": "1",
"pagesize": "10",
},
loadParams: {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
},
selectedSalePlan: {},
typesIndex: 0,
lists: [],
}
}
},
},
computed: {
computed: {
...mapState(['sysinfo', 'userInfo']),
navHeight() {
navHeight() {
return {
return {
'height': `${this.sysinfo.safeArea.top + 44}px`
'height': `${this.sysinfo.safeArea.top + 44}px`
}
}
},
},
mainHeight() {
...mapState(['sysinfo'])
return {
'height': `${this.sysinfo.safeArea.height - 44 - 30 }px`,
}
},
scrollHeight() {
return {
'height': `${this.sysinfo.safeArea.height - 44 - 156 }px`
}
},
},
onShow() {
this.lists = []
this.reset()
this.getSalesPlanTypes(true)
},
created() {
// this.reset()
// this.getSalesPlan(true)
},
},
methods: {
methods: {
purchaseBtn(ite
m) {
goOrder(type,nu
m) {
uni.navigateTo({
uni.navigateTo({
url: `/pages/purchase/purchase-apply?order=${JSON.stringify(item)}&sourceType=purchase`
url: `/pages/purchase/${type}?type=${num}`
})
},
async getSalesPlan(isRefresh) {
// const params = {
// ...this.page,
// }
const params = `?page=${this.page.page}&pagesize=${this.page.pagesize}`
uni.showLoading({
title: '加载中'
});
});
setTimeout(function() {
}
uni.hideLoading();
}, 2000);
const res = await apiPurchaseList(params)
uni.hideLoading();
const {
data,
} = res
this.page.page = data.page * 1
// this.page.pagesize = 20 * 1
this.loadParams.total = data.Total * 1
this.loadParams.totalPage = Math.ceil(data.Total * 1 / this.page.pagesize * 1)
const dataMap = data && data.Rows.length>0 && data.Rows.map((item) => {
item.checked = false
return item
}) || []
if (isRefresh) {
this.lists = dataMap
this.loadParams.isDone = false
} else {
this.lists = this.lists.concat(dataMap)
}
setTimeout(() => {
this.refreshing = false;
}, 300)
},
refresh(e) {
this.refreshing = true;
this.reset()
this.getSalesPlan(true)
// #ifdef APP-NVUE
try {
// console.log('-------', this.$refs.list)
this.$refs.list.resetLoadmore();
} catch (e) {
console.log('onrefresh', e)
}
// #endif
},
scrolltolower() {
console.log('onReachBottom');
if (this.page.page < this.loadParams.totalPage) {
this.page.page++
this.getSalesPlan()
} else {
this.loadParams.isDone = true
this.loadingText = '-- 到底了 --'
}
},
reset() {
this.loadParams = {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
}
this.page.page = 1
this.lists = []
this.loadingText = '加载中'
},
getSalesPlanTypes() {
this.getSalesPlan()
},
}
}
}
}
</script>
</script>
...
@@ -223,234 +57,74 @@
...
@@ -223,234 +57,74 @@
flex-direction: column;
flex-direction: column;
}
}
.header-bg {
/* #ifndef APP-PLUS */
height: 284rpx;
page {
opacity: 0.72;
width: 100%;
margin-top: -88rpx;
min-height: 100%;
}
display: flex;
background: #fff;
.header-bg-img {
width: 750rpx;
}
.lists {
position: relative;
flex-direction: column;
background: #f0f4f5;
flex: 1;
}
.main {
position: relative;
flex-direction: column;
margin-top: -164rpx;
padding: 0 16rpx;
}
.scroll-area {
overflow-y: scroll;
}
.middle {
background-color: #fff;
border-radius: 16rpx;
padding: 32rpx 64rpx 40rpx 48rpx;
}
.text-block {
overflow: hidden;
height: 96rpx;
margin-bottom: 14rpx;
border-bottom: 1px solid #f4f5f6;
}
.text-block-last {
margin-bottom: 0;
border-bottom: 0;
}
.middle-date {
flex: 2;
font-size: 28rpx;
line-height: 96rpx;
color: #333;
margin-bottom: 8rpx;
}
.middle-date-des {
flex: 3;
font-size: 28rpx;
line-height: 96rpx;
height: 96rpx;
overflow: hidden;
text-overflow: ellipsis;
color: #888;
}
}
.picker-year {
.status_bar {
position: relative;
height: var(--status-bar-height);
border-radius: 4px;
align-items: center;
line-height: normal;
}
}
.uni-list-cell {
/* #endif */
flex: 1;
}
.
uni-list-cell-db
{
.
order
{
flex: 1;
flex: 1;
background: #fff;
padding: 0 32rpx;
}
}
.
picker-block
{
.
listview
{
flex: 1;
flex: 1;
}
.uni-input-text {
font-size: 14px;
color: #888;
}
.icon-arrow {
position: absolute;
right: 0;
top: 16px;
width: 12rpx;
height: 20rpx;
z-index: 10;
}
.planout-block-lists {
display: flex;
flex-direction: column;
flex-direction: column;
padding-top: 64rpx;
}
}
.planout-block-item {
.cell-list {
margin-bottom: 32rpx;
}
.scroll-item {
flex: 1;
display: flex;
flex-direction: column;
flex-direction: column;
margin-bottom: 32rpx;
background-color: #fff;
border-radius: 16rpx;
padding: 32rpx 64rpx 40rpx 48rpx;
}
}
.planout-block-item__last {
.icon-address {
height: 40px;
width: 88rpx;
height: 88rpx;
margin-right: 24rpx;
}
}
.item-block {
.cell-list-block__content {
overflow: hidden;
display: flex;
}
.item-block-label {
font-size: 24rpx;
color: #999;
flex: 3;
line-height: 56rpx;
}
.item-block-value {
align-items: center;
flex: 5.5;
font-size: 24rpx;
color: $text-base-color;
line-height: 56rpx;
}
.item-pro-value{
color: $text-base-color;
font-size: 24rpx;
width: 200%;
flex: 5.5;
text-align: left;
}
.item-block-code {
}
.item-block-label-des {
flex: 1;
flex: 1;
text-align: left;
flex-direction: column;
font-size: 28rpx;
color: #333;
}
.detal-item-label {
color: #999;
font-size: 24rpx;
}
}
.
detal-item-valu
e {
.
cell-list-block__titl
e {
color: #333;
color: #333;
font-size: 28rpx;
font-size: 28rpx;
}
font-weight: 500;
.btn {
flex: 1;
height: 92rpx;
background: $wly-primary-color;
border-radius: 46rpx;
}
.btn-text {
color: #fff;
font-size: 34rpx;
}
.loading-more {
flex: 1;
flex: 1;
align-items: center;
align-items: center;
justify-content: center;
margin-bottom: 4rpx;
padding-top: 14px;
padding-bottom: 14px;
text-align: center;
}
}
.loading-more-text {
.cell-list-block__desc {
color: #acacac;
font-size: 12px;
font-size: 12px;
color: #999;
}
.bottom {
margin-top: 36rpx;
flex: 1;
justify-content: center;
}
.bottom-btn{
width: 328rpx;
height: 92rpx;
border-radius: 50%;
justify-content: space-between;
align-items: center;
}
.btn {
flex: 1;
background: $wly-primary-color;
}
}
.
btn-text
{
.
icon-arrow
{
color: #fff
;
width: 12rpx
;
font-size: 34
rpx;
height: 20
rpx;
}
}
.empty-block {
width: 750rpx;
.cell-list-block {
display: flex;
display: flex;
flex-direction: column;
height: 77px;
margin-bottom: 24rpx;
background: #f8f9fa;
border-radius: 8px;
padding: 0 36rpx 0 16rpx;
align-items: center;
align-items: center;
}
}
.icon-empty {
width: 150rpx;
height: 150rpx;
margin-top: 300rpx;
}
.empty-text {
color: #999;
margin-top: 56rpx;
font-size: 28rpx;
}
</style>
</style>
pages/quota/order-upload.nvue
View file @
a4a4a4c2
...
@@ -37,6 +37,10 @@
...
@@ -37,6 +37,10 @@
<text class="detal-item-label">数量(件)</text>
<text class="detal-item-label">数量(件)</text>
<text class="detal-item-value">{{item.quantity}}</text>
<text class="detal-item-value">{{item.quantity}}</text>
</view>
</view>
<view class="block-detal-item">
<text class="detal-item-label">数量(瓶)</text>
<text class="detal-item-value">{{item.USE_BOT}}</text>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">单价</text>
<text class="detal-item-label">单价</text>
<text class="detal-item-value">{{item.NET_PRICE}}</text>
<text class="detal-item-value">{{item.NET_PRICE}}</text>
...
@@ -84,17 +88,29 @@
...
@@ -84,17 +88,29 @@
<text class="detal-item-value">{{item.ZZFLD00000F}}</text>
<text class="detal-item-value">{{item.ZZFLD00000F}}</text>
</view>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">总计划量</text>
<text class="detal-item-label">总计划量
(件)
</text>
<text class="detal-item-value">{{item.ZZFLD00000H}}</text>
<text class="detal-item-value">{{item.ZZFLD00000H}}</text>
</view>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">本次占用计划数量</text>
<text class="detal-item-label">本次占用计划数量
(件)
</text>
<text class="detal-item-value">{{item.ZZFLD00000R}}</text>
<text class="detal-item-value">{{item.ZZFLD00000R}}</text>
</view>
</view>
<view class="block-detal-item">
<view class="block-detal-item">
<text class="detal-item-label">剩余可用计划量</text>
<text class="detal-item-label">剩余可用计划量
(件)
</text>
<text class="detal-item-value">{{item.ZZFLD00000P}}</text>
<text class="detal-item-value">{{item.ZZFLD00000P}}</text>
</view>
</view>
<view class="block-detal-item">
<text class="detal-item-label">总计划量(瓶)</text>
<text class="detal-item-value">{{item.TOTAL_BOT}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">本次占用计划数量(瓶)</text>
<text class="detal-item-value">{{item.CURNT_ATPBOT}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">剩余可用计划量(瓶)</text>
<text class="detal-item-value">{{item.REMAIN_BOT}}</text>
</view>
</view>
</view>
<view class="middle summary">
<view class="middle summary">
<view class="summary-block">
<view class="summary-block">
...
...
pages/quota/quota-order.nvue
View file @
a4a4a4c2
...
@@ -93,7 +93,18 @@
...
@@ -93,7 +93,18 @@
<!-- <text class="mustPosIcon">*</text> -->
<!-- <text class="mustPosIcon">*</text> -->
<!-- <text class="middle-date">数量(件)</text> -->
<!-- <text class="middle-date">数量(件)</text> -->
<input class="middle-date-des" type="number" :value="item.quantity"
<input class="middle-date-des" type="number" :value="item.quantity"
@input="calcInnerTotal($event,item,index)"
@input="calcInnerTotal($event,item,index,'qty')"
@blur="updateQuotaData(index,'inner',item)" placeholder="请填写" />
</view>
<view class="text-block">
<view class="middle-date">
<text class="mustPosIcon">*</text>
<text class="middle-date">数量(瓶)</text>
</view>
<!-- <text class="mustPosIcon">*</text> -->
<!-- <text class="middle-date">数量(件)</text> -->
<input class="middle-date-des" type="number" :value="item.USE_BOT"
@input="calcInnerTotal($event,item,index,'bot')"
@blur="updateQuotaData(index,'inner',item)" placeholder="请填写" />
@blur="updateQuotaData(index,'inner',item)" placeholder="请填写" />
</view>
</view>
<view class="text-block">
<view class="text-block">
...
@@ -372,7 +383,7 @@
...
@@ -372,7 +383,7 @@
// 销售计划编号、产品编号和件数 都有才请求
// 销售计划编号、产品编号和件数 都有才请求
if (!(productAfterInit?.product_info?.PRODUCT_ID && productAfterInit?.salesplan_info?.PLAN_NUMBER &&
if (!(productAfterInit?.product_info?.PRODUCT_ID && productAfterInit?.salesplan_info?.PLAN_NUMBER &&
productAfterInit?.ZZFLD000009
)) {
(productAfterInit?.ZZFLD000009 || productAfterInit?.USE_BOT)
)) {
return
return
}
}
...
@@ -492,8 +503,8 @@
...
@@ -492,8 +503,8 @@
return obj
return obj
},
},
// 计算小计
// 计算小计
calcInnerTotal(e, item, i) {
calcInnerTotal(e, item, i
,type
) {
// console.log('sss', item, e
)
console.log('sss', e, item, i
)
let value = 0
let value = 0
if (e.target.value) {
if (e.target.value) {
value = e.target.value
value = e.target.value
...
@@ -502,13 +513,23 @@
...
@@ -502,13 +513,23 @@
value = e.detail.value
value = e.detail.value
e.detail.value = value * 1
e.detail.value = value * 1
}
}
if(type === 'qty'){
this.planinnerLists.forEach((product, index) => {
// 件数
if (i === index) {
this.planinnerLists.forEach((product, index) => {
product.quantity = value * 1
if (i === index) {
product.total = value * item.NET_VALUE * 1 || 0
product.quantity = value * 1
}
product.total = (value * product.ZZFLD00002W + product.USE_BOT) * item.NET_PRICE * 1 || 0
})
}
})
}else{
// 瓶数
this.planinnerLists.forEach((product, index) => {
if (i === index) {
product.USE_BOT = value * 1
product.total = (value + product.quantity * product.ZZFLD00002W) * item.NET_PRICE * 1 || 0
}
})
}
// value = `${value}`.replace(/[^0-9]/g, '') // 正则判断只能输入数字
// value = `${value}`.replace(/[^0-9]/g, '') // 正则判断只能输入数字
},
},
// 计算小计
// 计算小计
...
...
pages/select-sale-plan/select-sale-plan.vue
View file @
a4a4a4c2
...
@@ -99,6 +99,10 @@
...
@@ -99,6 +99,10 @@
<text
class=
"middle-date"
>
可用件数
</text>
<text
class=
"middle-date"
>
可用件数
</text>
<text
class=
"middle-date-des"
>
{{item.REMAIN_QTY}}
</text>
<text
class=
"middle-date-des"
>
{{item.REMAIN_QTY}}
</text>
</view>
</view>
<view
class=
"text-block text-block-last"
>
<text
class=
"middle-date"
>
可用瓶数
</text>
<text
class=
"middle-date-des"
>
{{item.REMAIN_BOT}}
</text>
</view>
</view>
</view>
<!-- </uni-swipe-action-item>
<!-- </uni-swipe-action-item>
...
...
pages/ticket-order/order-item.nvue
View file @
a4a4a4c2
...
@@ -37,33 +37,44 @@
...
@@ -37,33 +37,44 @@
</view>
</view>
<view class="text-block-2">
<view class="text-block-2">
<view class="text-block text-block-1">
<view class="text-block text-block-1">
<text class="middle-date-des">开票件数
({{item.zzfld00002t}})
</text>
<text class="middle-date-des">开票件数</text>
<text class="middle-date">{{item.use_zzfld9}}</text>
<text class="middle-date">{{item.use_zzfld9}}</text>
</view>
</view>
<view class="text-block">
<view class="text-block">
<text class="middle-date-des">
数量(瓶)
</text>
<text class="middle-date-des">
开票瓶数
</text>
<text class="middle-date">{{item.use_
quantity
}}</text>
<text class="middle-date">{{item.use_
bot
}}</text>
</view>
</view>
</view>
</view>
<view class="text-block-2">
<view class="text-block-2">
<view class="text-block text-block-1">
<view class="text-block text-block-1">
<text class="middle-date-des">
单价
</text>
<text class="middle-date-des">
总共数量(瓶)
</text>
<text class="middle-date">{{item.
net_price
}}</text>
<text class="middle-date">{{item.
use_quantity
}}</text>
</view>
</view>
<view class="text-block">
<view class="text-block">
<text class="middle-date-des">
价税合计
</text>
<text class="middle-date-des">
单价
</text>
<text class="middle-date">{{item.net_
valu
e}}</text>
<text class="middle-date">{{item.net_
pric
e}}</text>
</view>
</view>
</view>
</view>
<view class="text-block-2">
<view class="text-block-2">
<view class="text-block text-block-1">
<view class="text-block text-block-1">
<text class="middle-date-des">价税合计</text>
<text class="middle-date">{{item.net_value}}</text>
</view>
<view class="text-block">
<text class="middle-date-des">税率</text>
<text class="middle-date-des">税率</text>
<text class="middle-date">{{item.zzfld00002e}}</text>
<text class="middle-date">{{item.zzfld00002e}}</text>
</view>
</view>
<view class="text-block">
</view>
<view class="text-block-2">
<view class="text-block text-block-1">
<text class="middle-date-des">剩余开票件数</text>
<text class="middle-date-des">剩余开票件数</text>
<text class="middle-date">{{item.remain_zzfld9}}</text>
<text class="middle-date">{{item.remain_zzfld9}}</text>
</view>
</view>
<view class="text-block">
<text class="middle-date-des">剩余开票瓶数</text>
<text class="middle-date">{{item.remain_bot}}</text>
</view>
</view>
</view>
<!-- <view class="text-block-2"> -->
<!-- <view class="text-block-2"> -->
<!-- <view class="text-block text-block-1">
<!-- <view class="text-block text-block-1">
...
...
servers/purchaseList.js
View file @
a4a4a4c2
...
@@ -10,6 +10,11 @@ export async function apiPurchaseList(params) {
...
@@ -10,6 +10,11 @@ export async function apiPurchaseList(params) {
const
res
=
await
apiHelper
.
post
(
'/crm-app/Invinfo/getUnFinishedInv'
+
params
)
const
res
=
await
apiHelper
.
post
(
'/crm-app/Invinfo/getUnFinishedInv'
+
params
)
return
res
return
res
}
}
// 以酒促酒
export
async
function
apiGetUnFinishedInvByPromote
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/Invinfo/getUnFinishedInvByPromote'
+
params
)
return
res
}
export
async
function
querySysDictionaryDetailsByCode
(
params
)
{
export
async
function
querySysDictionaryDetailsByCode
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/dictionary/querySysDictionaryDetailsByCode'
,
params
,
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/dictionary/querySysDictionaryDetailsByCode'
,
params
,
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment