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
d1fab0db
Commit
d1fab0db
authored
Sep 29, 2022
by
xiangzj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
要货和市场秩序
parent
499ee3b5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1403 additions
and
277 deletions
+1403
-277
pages.json
pages.json
+74
-4
breakwords-clue-detail.vue
pages/breakwords-clue-detail/breakwords-clue-detail.vue
+6
-6
breakwords-clue.vue
pages/breakwords-clue/breakwords-clue.vue
+21
-5
breakwords-mission-detail.nvue
.../breakwords-mission-detail/breakwords-mission-detail.nvue
+5
-5
logistics.nvue
pages/logistics/logistics.nvue
+47
-29
my-purchase.nvue
pages/my-purchase/my-purchase.nvue
+29
-6
order-item.nvue
pages/my-purchase/order-item.nvue
+58
-51
order-page.nvue
pages/my-purchase/order-page.nvue
+31
-55
purchase-main.nvue
pages/purchase-main/purchase-main.nvue
+74
-75
purchase-receive.nvue
pages/purchase-receive/purchase-receive.nvue
+69
-31
purchase-apply.nvue
pages/purchase/purchase-apply.nvue
+15
-6
purchase.nvue
pages/purchase/purchase.nvue
+24
-1
select-customer.nvue
pages/select-customer/select-customer.nvue
+449
-0
select-sale-place.nvue
pages/select-sale-place/select-sale-place.nvue
+433
-0
api.helper.js
servers/api.helper.js
+1
-1
breakwords.js
servers/breakwords.js
+1
-1
http.interceptor.js
servers/http.interceptor.js
+1
-1
purchaseList.js
servers/purchaseList.js
+65
-0
No files found.
pages.json
View file @
d1fab0db
...
...
@@ -304,14 +304,84 @@
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"
要货
"
,
"titleText"
:
"
未发货产品
"
,
"autoBackButton"
:
false
,
"splitLine"
:
true
}
}
}
//
},
{
//
"path"
:
"pages/purchase-main/purchase-main"
,
//
"style"
:
{
//
"app-plus"
:
{
//
"titleNView"
:
{
//
"titleAlign"
:
"left"
,
//
"titleColor"
:
"#333"
,
//
"titleSize"
:
"17px"
,
//
"backgroundColor"
:
"#fff"
,
//
"titleText"
:
"要货"
,
//
"autoBackButton"
:
true
//
}
//
}
//
}
},
{
"path"
:
"pages/purchase/purchase-apply"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"要货"
,
"autoBackButton"
:
true
}
}
}
},
{
"path"
:
"pages/select-customer/select-customer"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"客户选择"
,
"autoBackButton"
:
true
}
}
}
},
{
"path"
:
"pages/select-shunt-list/select-shunt-list"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"分流经销商"
,
"autoBackButton"
:
true
}
}
}
},
{
"path"
:
"pages/select-shunt-adress/select-shunt-adress"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"分流收货单位"
,
"autoBackButton"
:
true
}
}
}
},
{
"path"
:
"pages/
purchase-receive/purchase-receiv
e"
,
"path"
:
"pages/
select-sale-place/select-sale-plac
e"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
...
...
@@ -319,7 +389,7 @@
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"
收货信息
"
,
"titleText"
:
"
KA卖场
"
,
"autoBackButton"
:
true
}
}
...
...
@@ -965,4 +1035,4 @@
}
]
}
}
}
pages/breakwords-clue-detail/breakwords-clue-detail.vue
View file @
d1fab0db
...
...
@@ -155,7 +155,7 @@
<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
.
salesAreaAccount
Pk
}}
</text>
<text
class=
"uni-input"
>
{{
clueDetail
.
salesAreaAccount
Info
.
accountNumber
}}
</text>
</view>
</view>
</view>
...
...
@@ -179,10 +179,10 @@
</view>
<view
class=
"middle view"
>
<
!--
<
view
class=
"middle view"
>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
物流码行项目
</text>
<
!--
<
view
class=
"middle-date-des middle-date-buttons"
>
<view
class=
"middle-date-des middle-date-buttons"
>
<button
class=
"diy-entry"
type=
"default"
@
click=
"handleScan"
>
<image
class=
"diy-icon"
src=
"@/static/image/scan@3x.png"
mode=
""
>
</image>
...
...
@@ -198,9 +198,9 @@
</image>
<text
class=
"diy-entry-text"
>
删除
</text>
</button>
</view>
-->
</view>
</view>
</view>
</view>
-->
<view
class=
"middle view planout-block-item"
v-for=
"(productByBarcode,index2) in clueDetail.entries"
:key=
"index2"
>
...
...
@@ -531,4 +531,4 @@
height
:
140rpx
;
margin-top
:
12rpx
;
}
</
style
>
</
style
>
pages/breakwords-clue/breakwords-clue.vue
View file @
d1fab0db
...
...
@@ -193,7 +193,7 @@
<view
class=
"middle-date-des uni-list picker-year"
@
click=
"selectSalesAreaAccountInfo"
>
<view
class=
"uni-list-cell"
>
<view
class=
"uni-list-cell-db"
>
<input
class=
"middle-date-des"
type=
"text"
v-model=
"condition.salesAreaAccount
Pk
"
<input
class=
"middle-date-des"
type=
"text"
v-model=
"condition.salesAreaAccount
Info.accountNumber
"
placeholder=
"请填写"
/>
</view>
</view>
...
...
@@ -391,7 +391,7 @@
storeName
:
''
,
storeAddress
:
''
,
marketName
:
''
,
salesAreaAccount
Pk
:
''
,
salesAreaAccount
Info
:
{}
,
auditTime
:
''
,
auditNotes
:
''
,
barcode
:
''
,
...
...
@@ -462,7 +462,13 @@
uni
.
$on
(
'selectSalesAreaAccountInfo'
,
function
(
data
)
{
console
.
log
(
'监听到事件来自 selectSalesAreaAccountInfo ,携带参数 msg 为:'
,
data
);
_this
.
condition
.
salesAreaAccountPk
=
data
.
selectedSalesAreaAccountInfo
.
pk
_this
.
condition
.
salesAreaAccountInfo
=
{
"bankName"
:
data
.
selectedSalesAreaAccountInfo
.
bankName
,
"accountName"
:
data
.
selectedSalesAreaAccountInfo
.
accountName
,
"accountNumber"
:
data
.
selectedSalesAreaAccountInfo
.
accountNumber
,
"contact"
:
data
.
selectedSalesAreaAccountInfo
.
contact
,
"contactPhone"
:
data
.
selectedSalesAreaAccountInfo
.
contactPhone
}
})
},
onUnload
()
{
...
...
@@ -601,7 +607,7 @@
'provinceName'
:
this
.
condition
.
provinceName
,
'pwdInfo'
:
this
.
condition
.
pwdInfo
,
'receiptPicUrl'
:
this
.
condition
.
receiptPicUrl
,
'receiveAmount'
:
this
.
condition
.
receiveAmount
,
'receiveAmount'
:
this
.
condition
.
receiveAmount
-
0
,
'submitMethod'
:
this
.
condition
.
submitMethod
,
'submitSource'
:
'DISTRIBUTER'
,
'submitUserId'
:
this
.
userInfo
.
code
,
...
...
@@ -614,9 +620,19 @@
'storeName'
:
this
.
condition
.
storeName
,
'marketName'
:
this
.
condition
.
marketName
,
'storeAddress'
:
this
.
condition
.
storeAddress
,
'salesAreaAccount
Pk'
:
this
.
condition
.
salesAreaAccountPk
,
'salesAreaAccount
Info'
:
this
.
condition
.
salesAreaAccountInfo
,
}
const
res
=
await
apiClueSubmit
(
params
)
if
(
res
.
result
===
'S'
){
uni
.
showToast
({
title
:
'提报成功'
,
duration
:
2000
,
icon
:
'none'
});
uni
.
navigateBack
({
delta
:
1
});
}
},
handleScan
()
{
uni
.
scanCode
({
...
...
pages/breakwords-mission-detail/breakwords-mission-detail.nvue
View file @
d1fab0db
...
...
@@ -56,7 +56,7 @@
<view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell">
<view class="uni-list-cell-db">
<text class="uni-input-text">{{ contactLetterDetail.contact
User
}}</text>
<text class="uni-input-text">{{ contactLetterDetail.contact}}</text>
</view>
</view>
</view>
...
...
@@ -66,7 +66,7 @@
<view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell">
<view class="uni-list-cell-db">
<text class="uni-input-text">{{ contactLetterDetail.
receiveC
ontactPhone}}</text>
<text class="uni-input-text">{{ contactLetterDetail.
c
ontactPhone}}</text>
</view>
</view>
</view>
...
...
@@ -192,7 +192,7 @@
taskAssignmentId: '',
bundledProducts: 'false',
receiveAddress: '',
contact
User
: '',
contact: '',
receiveContactPhone: '',
expectInsuredValue: '',
expectLogistics: '',
...
...
@@ -245,7 +245,7 @@
// "contact": "联系人",
// "contactPhone": "联系电话",
// "receiveAddress": "收货地址",
// "contact
User
": "收获联系人",
// "contact": "收获联系人",
// "receiveContactPhone": "联系人电话",
// "expectInsuredValue": "期望保价",
// "expectLogistics": "期望物流公司",
...
...
@@ -505,4 +505,4 @@
color: #fff;
font-size: 34rpx;
}
</style>
</style>
pages/logistics/logistics.nvue
View file @
d1fab0db
...
...
@@ -7,43 +7,38 @@
<view class="steps">
<view class="steps__row-container">
<view class="steps__row-line-item">
<!-- <view class="steps__row-line steps__row-line--before steps__row-line--hide"></view> -->
<view class="steps__row-check">
<i class="icon-dot icon-dot-active"></i>
</view>
<view class="steps__row-line steps__row-line--after steps__row-line--active"></view>
</view>
<view class="steps__row-line-item">
<view class="steps__row-line steps__row-line--before"
:class="{'steps__row-line--active':deliveryListBeforeLineShow}"></view>
<view class="steps__row-check steps__row-circle">
<i class="icon-dot" :class="{'icon-dot-active':deliveryListBeforeLineShow}"></i>
<uni-cell class="step-style" v-for="(item,index) in dataList" key="index" >
<view class="steps__row-line-item" v-if="index - 0 !== 0 && index - 0 !== dataList.length - 1">
<view class="steps__row-line steps__row-line--before"
:class="{'steps__row-line--active':deliveryListBeforeLineShow}"></view>
<view class="steps__row-check steps__row-circle">
<i class="icon-dot" :class="{'icon-dot-active':deliveryListBeforeLineShow}"></i>
</view>
<view class="steps__row-line steps__row-line--after"
:class="{'steps__row-line--active':deliveryListBeforeLineShow}"></view>
</view>
<view class="steps__row-line steps__row-line--after"
:class="{'steps__row-line--active':deliveryListBeforeLineShow}"></view>
</view>
<view class="steps__row-line-item">
<view class="steps__row-line steps__row-line--before"
:class="{'steps__row-line--active':deliveryCheckLineShow}"></view>
<view class="steps__row-check steps__row-circle">
<i class="icon-dot " :class="{'icon-dot-active':deliveryCheckLineShow}"></i>
<view class="steps__row-line-item" v-if="index - 0 !== 0 && index - 0 === dataList.length - 1">
<view class="steps__row-line steps__row-line--before"
:class="{'steps__row-line--active':deliveryListBeforeLineShow}"></view>
<view class="steps__row-check steps__row-circle">
<i class="icon-dot " :class="{'icon-dot-active':deliveryListBeforeLineShow}"></i>
</view>
<view class="steps__row-line steps__row-line--after steps__row-line--hide"></view>
</view>
<view class="steps__row-line steps__row-line--after steps__row-line--hide"></view>
</view>
</uni-cell>
</view>
<view class="steps__row-text-container">
<view class="steps__row-text">
<text class="steps__row-title steps__row-title--active">装车</text>
<text class="steps__row-desc">2021.7.21 9:00</text>
</view>
<view class="steps__row-text">
<text class="steps__row-title" :class="{'steps__row-title--active':deliveryListAfterLineShow}">起运</text>
<text class="steps__row-desc">预计 2021.7.21 9:00</text>
</view>
<view class="steps__row-text">
<text class="steps__row-title" :class="{'steps__row-title--active':deliveryCheckLineShow}">到达宣化中转仓</text>
<text class="steps__row-desc">预计 2021.7.21 9:00</text>
</view>
<uni-cell class="step-style" v-for="(item,index) in dataList" key="index" >
<view class="steps__row-text">
<text class="steps__row-title" :class="{'steps__row-title--active':deliveryListAfterLineShow}">{{item.nodeStatus}}</text>
<text class="steps__row-desc">{{item.nodeTime}}</text>
</view>
</uni-cell>
</view>
</view>
</view>
...
...
@@ -54,10 +49,14 @@
import {
mapState
} from 'vuex'
import { queryLogistics } from '@/servers/purchaseList.js'
export default {
data() {
return {
deliveryStatus: 'doing'
deliveryStatus: 'doing',
dataList: [],
logisticno: ''
}
},
computed: {
...
...
@@ -78,6 +77,19 @@
},
onBackPress() {
},
created() {
this.getLogistics()
},
onLoad(option) {
this.logisticno = option.logisticno
},
methods: {
async getLogistics(){
const formdata = {"wantGoodsId": this.logisticno}
const res = await queryLogistics(formdata)
this.dataList = res.data[0].nodes.reverse()
}
}
}
</script>
...
...
@@ -191,4 +203,10 @@
.steps__row-line--hide {
background-color: transparent;
}
.steps__row-text{
flex-direction: column;
}
.step-style{
flex-direction: column;
}
</style>
pages/my-purchase/my-purchase.nvue
View file @
d1fab0db
...
...
@@ -61,7 +61,7 @@
<swiper ref="swiper1" class="tab-box" :current="tabIndex" :duration="300" @change="onswiperchange"
@transition="onswiperscroll" @animationfinish="animationfinish" @onAnimationEnd="animationfinish">
<swiper-item class="swiper-item" v-for="(page, index) in tabList" :key="index">
<orderPage :ref="'page' + index" class="page-item" :nid="page.newsid"></orderPage>
<orderPage :ref="'page' + index" class="page-item" :nid="page.newsid"
:condition='condition'
></orderPage>
</swiper-item>
</swiper>
</view>
...
...
@@ -72,7 +72,11 @@
import {
mapState
} from 'vuex'
import {
timeRangeFormat
} from '@/utils/date.js'
// #ifdef APP-PLUS
const dom = weex.requireModule('dom');
// #endif
...
...
@@ -94,15 +98,15 @@
tabList: [{
id: "tab01",
name: '全部',
newsid:
0
newsid:
1
}, {
id: "tab02",
name: '待审批',
newsid: 2
3
newsid: 2
}, {
id: "tab03",
name: '已审批',
newsid:
22
3
newsid: 3
}],
tabIndex: 0,
cacheTab: [],
...
...
@@ -119,6 +123,13 @@
_touchTabIndex: 0,
ishowDetail: false,
filterActiveIndex: 0,
condition: {
"endDate": "",
"page": 1,
"pagesize": 20,
"startDate": "",
"status": "0"
}
}
},
computed: {
...
...
@@ -156,6 +167,8 @@
this.pageList.push(item)
}
}
// this.condition.endDate = this.handleDate(timeRangeFormat('week'))
// this.condition.startDate = this.handleDate(timeRangeFormat('now'))
this.switchTab(this.tabIndex);
this.selectorQuery();
...
...
@@ -163,6 +176,7 @@
methods: {
ontabtap(e) {
let index = e.target.dataset.current || e.currentTarget.dataset.current;
this.condition.status = index
//let offsetIndex = this._touchTabIndex = Math.abs(index - this._lastTabIndex) > 1;
// #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-QQ
...
...
@@ -325,11 +339,20 @@
handleFilter(item) {
if (item === 'week') {
this.filterActiveIndex = 0
this.condition.startDate = this.handleDate(timeRangeFormat('week'))
} else {
this.filterActiveIndex = item
this.condition.startDate = this.handleDate(timeRangeFormat(item))
}
this.condition.endDate = this.handleDate(timeRangeFormat('now'))
this.pageList[this.tabIndex].refreshData()
}
},
handleDate(date){
const str1 = date.slice(0,4)
const str2 = date.slice(4,6)
const str3 = date.slice(6,8)
return str1+'-'+str2+'-'+str3
},
}
}
</script>
...
...
pages/my-purchase/order-item.nvue
View file @
d1fab0db
<template>
<view class="order view">
<view class="top">
<text class="title-no">要货单号:
TP10000021
</text>
<text class="title-no">要货单号:
{{newsItem.wantCode}}
</text>
<view class="title-info">
<button class="title-info__status" type="default"><text class="item-block-btn__text">
待审批
</text></button>
<button class="title-info__status" type="default"><text class="item-block-btn__text">
{{newsItem.billStatusTextView}}
</text></button>
</view>
</view>
<view class="middle view">
<view class="middle-title">
<text class="middle-title__text">发货单号:
FH200333222
</text>
<image @click="checkLogistics" class="icon-car" src="@/static/image/order_car@3x.png" mode="aspectFit">
<text class="middle-title__text">发货单号:
{{newsItem.logisticno}}
</text>
<image @click="checkLogistics
(newsItem.logisticno)
" class="icon-car" src="@/static/image/order_car@3x.png" mode="aspectFit">
</image>
</view>
<view class="text-block">
<text class="middle-date">
苏州新川商贸公司
</text>
<text class="middle-date">
{{newsItem.customerName}}
</text>
<text class="middle-date-des">客户名称</text>
</view>
<view class="text-block-box">
<view class="text-block text-block-last">
<text class="middle-date">
2021-08-06 05:14
</text>
<text class="middle-date">
{{newsItem.createdDate}}
</text>
<text class="middle-date-des">申请时间</text>
</view>
<view class="text-block text-block-last">
<view class="middle-date-right">
<text class="dot"></text>
<text class="middle-date">
一般
</text>
<text class="middle-date">
{{newsItem.significanceTextView}}
</text>
</view>
<text class="middle-date-des middle-date-right">重要程度</text>
</view>
...
...
@@ -39,75 +39,77 @@
</view>
</view>
<view v-if="ishowDetail" class="bottom-content">
<view class="block-detal">
<view class="block-detal-item">
<text class="detal-item-label">品牌</text>
<text class="detal-item-value">尖庄2101</text>
<uni-cell class="cell-list" v-for="(ele, index) in newsItem.list" :key="ele.id">
<view class="block-detal">
<view class="block-detal-item">
<text class="detal-item-label">品牌</text>
<text class="detal-item-value">{{ele.brandBqTextView}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">产品</text>
<text class="detal-item-value">{{ele.productDesc}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">未发货件数</text>
<text class="detal-item-value">{{ele.undeliveredQuantity}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">传统当月计划量</text>
<text class="detal-item-value">{{ele.applyNum}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">传统当月剩余量</text>
<text class="detal-item-value">{{ele.monthLeftQty}}</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">传统当年剩余量</text>
<text class="detal-item-value">{{ele.annualLeftQty}}</text>
</view>
<view class="block-detal-item block-detal-item-last">
<text class="detal-item-label">本次要货件数</text>
<text class="detal-item-value">{{ele.wantQuantity}}</text>
</view>
</view>
<view class="block-detal-item">
<text class="detal-item-label">产品</text>
<text class="detal-item-value">1618五粮液 500ml*6</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">未发货件数</text>
<text class="detal-item-value">220</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">传统当月计划量</text>
<text class="detal-item-value">7</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">传统当月剩余量</text>
<text class="detal-item-value">100</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">传统当年剩余量</text>
<text class="detal-item-value">100</text>
</view>
<view class="block-detal-item block-detal-item-last">
<text class="detal-item-label">本次要货件数</text>
<text class="detal-item-value">200</text>
</view>
</view>
</uni-cell>
</view>
<view class="receive-info" ref='receiveInfo' :style="
receiveInfoHeightComputed
"
<view class="receive-info" ref='receiveInfo' :style=""
:class="{'receive-info-auto':ishowReceiveDetail}">
<view class="block-detal-item">
<text class="detal-item-label detal-item-title">收货信息</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">是否分流</text>
<text class="detal-item-value detal-item-value2">
否
</text>
<text class="detal-item-value detal-item-value2">
{{newsItem.isShuntTextView}}
</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">分流经销商</text>
<text class="detal-item-value detal-item-value2"></text>
<text class="detal-item-value detal-item-value2">
{{newsItem.shuntDealer}}
</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">收货单位</text>
<text class="detal-item-value detal-item-value2">
步步高
</text>
<text class="detal-item-value detal-item-value2">
{{newsItem.receiveUnitName}}
</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">喷码单位</text>
<text class="detal-item-value detal-item-value2">
步步高
</text>
<text class="detal-item-value detal-item-value2">
{{newsItem.spurtCodeUnitName}}
</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">联系人电话</text>
<text class="detal-item-value detal-item-value2">
738-14581240
</text>
<text class="detal-item-value detal-item-value2">
{{newsItem.contactNumber}}
</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">收货地址</text>
<text class="detal-item-value detal-item-value2">
黑龙江省黑河市嫩江县芒涌大道775号
</text>
<text class="detal-item-value detal-item-value2">
{{newsItem.receiveAddress}}
</text>
</view>
<view class="block-detal-item">
<text class="detal-item-label">备注</text>
<text class="detal-item-value detal-item-value2">
快点发货
</text>
<text class="detal-item-value detal-item-value2">
{{newsItem.remark}}
</text>
</view>
<view class="block-detal-item attach-block">
<
!-- <
view class="block-detal-item attach-block">
<text class="detal-item-label">附件</text>
<image class="attach-file" src="@/static/image/avatar@3x.png" mode="aspectFit"></image>
</view>
</view>
-->
<view class="float-btn-block">
<view class="float-btn" @click="handleShowReceiveDetail">
<text class="float-btn__text">{{ishowReceiveDetail?'收起':'展示完整信息'}}</text>
...
...
@@ -117,7 +119,6 @@
</view>
</view>
</view>
</view>
</template>
...
...
@@ -189,8 +190,9 @@
}
},
checkLogistics() {
const num = 'dfb0ebae8103034ccb863d3702e22eb6'
uni.navigateTo({
url:
"/pages/logistics/logistics"
url:
`/pages/logistics/logistics?logisticno=${num}`
})
}
}
...
...
@@ -230,7 +232,7 @@
}
.title-info__status {
width: 1
2
0rpx;
width: 1
3
0rpx;
height: 48rpx;
line-height: 48rpx;
background: #f61d30;
...
...
@@ -246,7 +248,7 @@
}
.middle {
position: relative;
//
position: relative;
padding: 26rpx 32rpx;
}
...
...
@@ -292,6 +294,7 @@
.text-block-box {
display: flex;
height: 120rpx;
justify-content: space-between;
}
...
...
@@ -299,6 +302,7 @@
display: flex;
align-items: center;
justify-content: flex-end;
text-align: right;
}
.dot {
...
...
@@ -392,7 +396,7 @@
margin-top: 40rpx;
height: 240rpx;
overflow: hidden;
padding-bottom:
60
rpx;
padding-bottom:
96
rpx;
}
.receive-info-auto {
...
...
@@ -441,4 +445,7 @@
.float-btn__text {
font-size: 24rpx;
}
.cell-list {
flex-direction: column;
}
</style>
pages/my-purchase/order-page.nvue
View file @
d1fab0db
...
...
@@ -31,7 +31,7 @@
import uniLoadMore from '@/components/uni-load-more.vue';
import noData from '@/components/nodata.nvue';
import orderItem from './order-item.nvue';
import { findAppGoodsSingle } from '@/servers/purchaseList.js'
export default {
components: {
uniList,
...
...
@@ -45,6 +45,10 @@
nid: {
type: [Number, String],
default: ''
},
condition: {
type: Object,
default: () => {}
}
},
data() {
...
...
@@ -88,7 +92,7 @@
// #endif
},
methods: {
loadData(refresh) {
async
loadData(refresh) {
if (this.isLoading) {
return;
}
...
...
@@ -98,61 +102,33 @@
this.requestParams.time = new Date().getTime() + '';
var startTime = new Date();
uni.request({
// url: this.$host + 'api/news',
url: 'https://unidemo.dcloud.net.cn/api/news',
data: this.requestParams,
success: (result) => {
var endTime = new Date();
const data = result.data;
this.isNoData = (data.length <= 0);
const data_list = data.map((news) => {
return {
id: this.newGuid() + news.id,
newsid: news.id,
article_type: 1,
datetime: (new Date(news.published_at.replace(/\-/g, '/')).getTime()),
title: news.title,
image_url: news.cover,
source: news.author_name,
comment_count: news.comments_count,
post_id: news.post_id
};
});
if (refresh) {
this.dataList = data_list;
this.requestParams.minId = 0;
} else {
this.dataList = this.dataList.concat(data_list);
this.requestParams.minId = data[data.length - 1].id;
}
if (this.dataList.length > 0 && this._isWidescreen && this.dataList.length <= 10) {
this.goDetail(this.dataList[0]);
}
},
fail: (err) => {
if (this.dataList.length == 0) {
this.isNoData = true;
}
},
complete: (e) => {
this.isLoading = false;
if (refresh) {
this.refreshing = false;
this.refreshFlag = false;
this.refreshText = "已刷新";
if (this.pullTimer) {
clearTimeout(this.pullTimer);
}
this.pullTimer = setTimeout(() => {
this.pulling = false;
}, 1000);
const res = await findAppGoodsSingle(this.condition)
if(res.status - 1 === 0){
this.isLoading = false;
if (refresh) {
this.refreshing = false;
this.refreshFlag = false;
this.refreshText = "已刷新";
if (this.pullTimer) {
clearTimeout(this.pullTimer);
}
this.pullTimer = setTimeout(() => {
this.pulling = false;
}, 1000);
}
});
}else{
this.isNoData = true;
}
if (refresh) {
this.dataList = res.data.Rows;
this.requestParams.minId = 0;
} else {
this.dataList = this.dataList.concat(res.data.Rows);
}
if (this.dataList.length > 0 && this._isWidescreen && this.dataList.length <= 10) {
this.goDetail(this.dataList[0]);
}
},
loadMore(e) {
this.loadData();
...
...
pages/purchase-main/purchase-main.nvue
View file @
d1fab0db
This diff is collapsed.
Click to expand it.
pages/purchase-receive/purchase-receive.nvue
View file @
d1fab0db
...
...
@@ -24,14 +24,14 @@
<view class="middle-date-des uni-list picker-year" >
<view class="uni-list-cell">
<view class="uni-list-cell-db">
<text class="uni-input">{{orderItem.shunt
ingCustomer
}}</text>
<text class="uni-input">{{orderItem.shunt
DealerName
}}</text>
</view>
</view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view>
</view>
<view class="text-block text-block-last" v-if="orderItem.
shuntCode
- 1 === 0">
<view class="text-block text-block-last" v-if="orderItem.
isShunt
- 1 === 0">
<text class="middle-date">分流渠道</text>
<view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell">
...
...
@@ -48,12 +48,12 @@
</view>
<view class="middle view">
<view class="text-block" v-if="orderItem.
shuntCode
- 1 === 0" @click="handleShuntAdress">
<view class="text-block" v-if="orderItem.
isShunt
- 1 === 0" @click="handleShuntAdress">
<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">{{orderItem.
shuntingCustomerAdress
}}</text>
<text class="uni-input">{{orderItem.
receiveUnitName
}}</text>
</view>
</view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
...
...
@@ -78,13 +78,10 @@
<view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell">
<view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange" :value="index"
:range="array">
<text class="uni-input">{{array[index]}}</text>
</picker>
<text class="uni-input">{{orderItem.spurtCodeUnitName}}</text>
</view>
</view>
<
image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image
>
<
!-- <image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image> --
>
</view>
</view>
<view class="text-block text-block-last">
...
...
@@ -105,10 +102,10 @@
<text class="middle-date">备注</text>
</view>
<view class="remark">
<textarea class="remark-text" v-model="remark" />
<textarea class="remark-text" v-model="
orderItem.
remark" />
</view>
<view class="text-block title-first">
<
!-- <
view class="text-block title-first">
<text class="middle-date title-first__text">上传文件</text>
</view>
<view class="upload-block">
...
...
@@ -117,7 +114,7 @@
@fail='fail'>
<text>+</text>
</uni-file-picker>
</view>
</view>
-->
</view>
<!-- <text class="receive-record">历史收货信息</text>
...
...
@@ -149,7 +146,9 @@
import {
querySysDictionaryDetailsByCode,
getReceipt,
findByCustomer
findByCustomer,
startProcessInstanceByKey,
advance
} from '@/servers/purchaseList.js'
export default {
...
...
@@ -158,14 +157,14 @@
// orderItem: {
// shuntTypeCode: '',
// shuntTypeName: ' ',
//
shuntCode
: '',
//
isShunt
: '',
// shuntName: ' ',
// receiveUnitName: ' ',
// contactNumber: '',
// contacPerson: '',
// receiveAddress: '',
// shunt
ingCustomer
: '',
//
shuntingCustomerAdress
: ''
// shunt
DealerName
: '',
//
receiveUnitName
: ''
// },
receiveUnitArr: [],
shuntArr: [],
...
...
@@ -188,11 +187,12 @@
},
},
watch: {
'orderItem.
shuntCode
' :function (newName,oldName){
'orderItem.
isShunt
' :function (newName,oldName){
console.log(newName,'newName')
if(newName - 0 === 0){
this.orderItem.shuntTypeName = ''
this.orderItem.shuntingCustomerAdress = ''
this.orderItem.shuntChannelsType = ''
this.orderItem.receiveUnitName = ''
}
}
},
...
...
@@ -230,11 +230,17 @@
let _this = this
uni.$on('selectShuntAccountInfo', function(data) {
console.log('监听到事件来自 selectShuntAccountInfo ,携带参数 msg 为:', data);
_this.orderItem.shuntingCustomer = data.selectShuntAccountInfo.shuntingCustomer
_this.orderItem.shuntDealerName = data.selectShuntAccountInfo.shuntingCustomer
_this.orderItem.shuntDealer = data.selectShuntAccountInfo.shuntingCustomer
})
uni.$on('selectShuntAdressAccountInfo', function(data) {
console.log('监听到事件来自 selectShuntAdressAccountInfo ,携带参数 msg 为:', data);
_this.orderItem.shuntingCustomerAdress = data.selectShuntAdressAccountInfo.partner_name
_this.orderItem.receiveUnitName = data.selectShuntAdressAccountInfo.partner_name
_this.orderItem.receiveUnitCode = data.selectShuntAdressAccountInfo.partner
_this.orderItem.receiveCityCode = data.selectShuntAdressAccountInfo.city_code
_this.orderItem.receiveCityName = data.selectShuntAdressAccountInfo.city_name
})
},
...
...
@@ -255,13 +261,18 @@
// this.queryData()
},
methods: {
handleCustomer() {
uni.navigateTo({
url: `/pages/select-customer/select-customer?order=${JSON.stringify(this.orderItem)}`
})
},
handleShunt() {
uni.navigateTo({
url: `/pages/select-shunt-list/select-shunt-list?order=${JSON.stringify(this.orderItem)}`
})
},
handleShuntAdress() {
if(this.orderItem.shunt
ingCustomer
){
if(this.orderItem.shunt
DealerName
){
uni.navigateTo({
url: `/pages/select-shunt-adress/select-shunt-adress?order=${JSON.stringify(this.orderItem)}`
})
...
...
@@ -276,23 +287,24 @@
// 查询
async queryData() {
const params = {
'customerCode': this.orderItem.
orderCust
,
'customerCode': this.orderItem.
customerCode
,
'type': '2',
}
const { data } = await findByCustomer(params)
},
async getReceipt(){
const params = {
'partner': this.orderItem.
orderCust
,
'partner': this.orderItem.
customerCode
,
'role': "WLY001"
}
const res = await getReceipt(params)
this.receiveUnitArr = res.data
this.orderItem.receiveUnitName = this.receiveUnitArr[0].partner_name
this.orderItem.contactNumber = this.receiveUnitArr[0].tel_number
this.orderItem.contacPerson = this.receiveUnitArr[0].c_o_name
this.orderItem.receiveAddress = this.receiveUnitArr[0].street
if(this.orderItem.receiveUnitName == ' '){
this.orderItem.receiveUnitName = this.receiveUnitArr[0].partner_name
this.orderItem.contactNumber = this.receiveUnitArr[0].tel_number
this.orderItem.contacPerson = this.receiveUnitArr[0].c_o_name
this.orderItem.receiveAddress = this.receiveUnitArr[0].street
}
},
getSelectDictDataOrigin(dictcode) {
querySysDictionaryDetailsByCode({'code': dictcode})
...
...
@@ -318,11 +330,11 @@
const index = e.detail.value || 0
switch (type) {
case 'shunt':
this.orderItem.
shuntCode
= this.shuntArr[index].value
this.orderItem.
isShunt
= this.shuntArr[index].value
this.orderItem.shuntName = this.shuntArr[index].name
break;
case 'shuntType':
this.orderItem.shunt
TypeCod
e = this.shuntTypeArr[index].id
this.orderItem.shunt
ChannelsTyp
e = this.shuntTypeArr[index].id
this.orderItem.shuntTypeName = this.shuntTypeArr[index].name
break;
case 'receive':
...
...
@@ -376,6 +388,32 @@
// url: '/pages/purchase-main/purchase-main'
// })
this.$emit('click', 'purchaseMain')
},
async nextStep() {
try {
const params = JSON.parse(JSON.stringify(this.orderItem))
params.wantGoodsDetailList = JSON.stringify(params.wantGoodsDetailList)
const { data, status } = await startProcessInstanceByKey(params)
if (status == 1) {
Object.assign(params, data.bizData)
params.bizId = data.bizId
params.procInstId = data.procInstId
params.taskId = data.taskId
// 提交
const res = await advance(params)
if (res.status == 1) {
uni.showToast({
title: '要货成功',
duration: 2000,
icon: 'none'
});
uni.switchTab({
url: '/pages/purchase/purchase'
})
}
}
} catch (e) {
}
}
}
}
...
...
@@ -594,4 +632,4 @@
.btn-text-l {
color: $wly-primary-color;
}
</style>
</style>
pages/purchase/purchase-apply.nvue
View file @
d1fab0db
...
...
@@ -2,7 +2,7 @@
<view class="apply-history view" :style="winHeight">
<view class="status_bar" :style="navHeight"></view>
<view class="apply-history-wrapper view">
<component :style="componentHeight" :orderItem='
orderItem
' :is="currentTabComponent" @click="changeComponent" @submit="submit"></component>
<component :style="componentHeight" :orderItem='
detail
' :is="currentTabComponent" @click="changeComponent" @submit="submit"></component>
</view>
</view>
</template>
...
...
@@ -10,6 +10,7 @@
import {
mapState
} from 'vuex'
import { initAppWantGoods } from '@/servers/purchaseList.js'
import purchaseMain from '../purchase-main/purchase-main'
import purchaseReceive from '../purchase-receive/purchase-receive'
...
...
@@ -27,6 +28,7 @@
return {
currentTabComponent: 'purchaseMain',
topHeight: '',
detail: {},
orderItem: {
ticketTypeVal: '',
deliveryPlanCode: '',
...
...
@@ -73,7 +75,7 @@
// this.navHeight = `height:${this.sysinfo.safeArea.top + 44}px`;
// #ifdef APP-NVUE
let queryTabSize = uni.createSelectorQuery().in(this);
queryTabSize.select('#top').boundingClientRect();
//
queryTabSize.select('#top').boundingClientRect();
queryTabSize.exec(rects => {
console.log('rects',rects);
rects.forEach((rect) => {
...
...
@@ -83,9 +85,9 @@
// #endif
// #ifdef H5
uni.createSelectorQuery().in(this).select('#top').boundingClientRect( (res) => {
this.topHeight = res.height;
}).exec();
//
uni.createSelectorQuery().in(this).select('#top').boundingClientRect( (res) => {
//
this.topHeight = res.height;
//
}).exec();
// #endif
},
onBackPress(event) {
...
...
@@ -108,11 +110,18 @@
},
onLoad(option) {
this.orderItem = {
...this.orderItem,
//
...this.orderItem,
...JSON.parse(option.order)
}
},
created() {
this.getDetail()
},
methods: {
async getDetail(){
const res = await initAppWantGoods(this.orderItem)
this.detail = {'shuntTypeName': ' ','shuntName': ' ','channelTypeName': '',...res.data}
},
changeComponent(com) {
this.currentTabComponent = com;
},
...
...
pages/purchase/purchase.nvue
View file @
d1fab0db
...
...
@@ -50,6 +50,12 @@
<text class="loading-more-text">{{loadingText}}</text>
</view>
</cell>
<cell>
<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>
...
...
@@ -151,7 +157,7 @@
const dataMap = data && data.Rows.length>0 && data.Rows.map((item) => {
item.checked = false
return item
})
})
|| []
if (isRefresh) {
this.lists = dataMap
...
...
@@ -426,5 +432,22 @@
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;
}
</style>
pages/select-customer/select-customer.nvue
0 → 100644
View file @
d1fab0db
<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" :style="mainHeight">
<view class="middle view planout-block-item">
<view class="text-block text-block-last">
<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">
<input class="middle-date-des" type="text" v-model="searchCode" placeholder="请填写" />
</view>
</view>
</view>
</view>
<view class="text-block text-block-last">
<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">
<input class="middle-date-des" type="text" v-model="searchName" placeholder="请填写" />
</view>
</view>
</view>
</view>
</view>
<view class="planout-block">
<button class="btn" type="default" @tap="search">
<text class="btn-text">查询</text>
</button>
</view>
<list ref="list" class="scroll-area view" loadmoreoffset='100' @loadmore="scrolltolower"
:show-scrollbar='false'>
<refresh @refresh="refresh" :display="refreshing ? 'show' : 'hide'">
</refresh>
<cell v-for="(item,index) in lists" :key="item.guid" @click="handleChecked(item)">
<view class="scroll-item">
<view class="item-block item-block-code">
<text class="item-block-label">客户编号:{{item.partner}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">客户名称:{{item.partner_name}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">客户类型:{{item.partner_name}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">旧编码:{{item.c_o_name}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">法人姓名:{{item.tel_number}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">电话:{{item.street}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">统一社会信用代码:{{item.street}}</text>
</view>
</view>
</cell>
<cell>
<view class="loading-more" v-if='lists.length>2'>
<text class="loading-more-text">{{loadingText}}</text>
</view>
</cell>
<view class="planout-block-item__last"> </view>
</list>
</view>
</view>
</template>
<script>
import {
mapState
} from 'vuex'
import {
getCustomerList
} from '@/servers/purchaseList.js'
import timeFormat from '@/uview-ui/libs/function/timeFormat.js'
export default {
data() {
return {
scrollTop: 0,
isOpened: 'none',
loadingText: '加载中...',
refreshing: false,
page: {
"PAGE": "1",
"PAGESIZE": "10",
},
loadParams: {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
},
typesIndex: 0,
lists: [],
searchName: '',
orderItem: {},
selectShuntAdressAccountInfo: {}
}
},
computed: {
...mapState(['sysinfo', 'userInfo']),
navHeight() {
return {
'height': `${this.sysinfo.safeArea.top + 44}px`
}
},
mainHeight() {
return {
'height': `${this.sysinfo.safeArea.height - 44 }px`,
}
},
scrollHeight() {
return {
'height': `${this.sysinfo.safeArea.height - 44 - 156 }px`
}
},
},
onLoad(option) {
console.log('select-saleplan', option)
this.orderItem = {
...JSON.parse(option.order)
}
},
created() {
this.reset()
this.getSalesPlanTypes(true);
},
methods: {
handleChecked(item) {
this.selectShuntAdressAccountInfo = item
uni.$emit('selectShuntAdressAccountInfo', {
selectShuntAdressAccountInfo: item
})
uni.navigateBack()
},
search() {
this.reset()
this.getSalesPlan(true, this.searchName);
},
async getSalesPlan(isRefresh, customerCode = this.orderItem.shuntingCustomer) {
if (this.loadParams.isDone) {
return
}
const params = {
'partner': customerCode,
'role': "WLY001"
}
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
const res = await getCustomerList(params)
uni.hideLoading();
if (isRefresh) {
this.lists = res.data
this.loadParams.isDone = false
} else {
this.lists = this.lists.concat(res.data)
}
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 = '加载中'
},
async getSalesPlanTypes() {
this.getSalesPlan()
},
bindPickerTypesChange(e) {
console.log('bindPickerTypesChange', e.detail.value)
this.typesIndex = e.detail.value
this.getSalesPlan()
},
bindPickerYearChange(e) {
console.log('bindPickerYearChange', e.detail.value)
this.getSalesPlan()
},
handleClick(e, content, index) {
console.log('click当前索引:', e, content, index);
},
nextStep() {
this.$emit('click', 'orderUpload')
},
preStep() {
uni.switchTab({
url: `/pages/go-order/go-order`
})
},
}
}
</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;
}
.planout-block {
display: flex;
justify-content: space-between;
margin-bottom: 48rpx;
padding: 0 24rpx;
}
.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: #333;
}
.item-block__label {
flex: 1;
text-align: left;
font-size: 32rpx;
color: #333;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
}
.item-block-code {
padding-bottom: 16rpx;
}
.item-block-name {
padding-top: 24rpx;
padding-bottom: 32rpx;
}
.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;
}
</style>
pages/select-sale-place/select-sale-place.nvue
0 → 100644
View file @
d1fab0db
<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" :style="mainHeight">
<view class="middle view planout-block-item">
<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">
<input class="middle-date-des" type="text" v-model="searchShortName" placeholder="请填写" />
</view>
</view>
</view>
</view>
<view class="text-block text-block-last">
<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">
<input class="middle-date-des" type="text" v-model="searchFullName" placeholder="请填写" />
</view>
</view>
</view>
</view>
</view>
<view class="planout-block">
<button class="btn" type="default" @tap="search">
<text class="btn-text">查询</text>
</button>
</view>
<list ref="list" class="scroll-area view" loadmoreoffset='100' @loadmore="scrolltolower"
:show-scrollbar='false'>
<refresh @refresh="refresh" :display="refreshing ? 'show' : 'hide'">
</refresh>
<cell v-for="(item,index) in lists" :key="item.guid" @click="handleChecked(item)">
<view class="scroll-item">
<view class="item-block item-block-code">
<text class="item-block-label">KA卖场简称:{{item.shortName}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">KA卖场全称:{{item.fullName}}</text>
</view>
<view class="item-block item-block-code">
<text class="item-block-label">所属品牌:{{item.brand}}</text>
</view>
</view>
</cell>
<cell>
<view class="loading-more" v-if='lists.length>2'>
<text class="loading-more-text">{{loadingText}}</text>
</view>
</cell>
<view class="planout-block-item__last"> </view>
</list>
</view>
</view>
</template>
<script>
import {
mapState
} from 'vuex'
import {
listKAStore
} from '@/servers/purchaseList.js'
import timeFormat from '@/uview-ui/libs/function/timeFormat.js'
export default {
data() {
return {
scrollTop: 0,
isOpened: 'none',
loadingText: '加载中...',
refreshing: false,
page: {
"PAGE": "1",
"PAGESIZE": "10",
},
loadParams: {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
},
typesIndex: 0,
lists: [],
searchShortName: '',
searchFullName: '',
orderItem: {},
selectSalePlaceAccountInfo: {}
}
},
computed: {
...mapState(['sysinfo', 'userInfo']),
navHeight() {
return {
'height': `${this.sysinfo.safeArea.top + 44}px`
}
},
mainHeight() {
return {
'height': `${this.sysinfo.safeArea.height - 44 }px`,
}
},
scrollHeight() {
return {
'height': `${this.sysinfo.safeArea.height - 44 - 156 }px`
}
},
},
onLoad(option) {
console.log('select-saleplan', option)
this.orderItem = {
...JSON.parse(option.order)
}
},
created() {
this.reset()
this.getSalesPlanTypes(true);
},
methods: {
handleChecked(item) {
this.selectSalePlaceAccountInfo = item
uni.$emit('selectSalePlaceAccountInfo', {
selectSalePlaceAccountInfo: item
})
uni.navigateBack()
},
search() {
this.reset()
this.getSalesPlan(true, this.searchName);
},
async getSalesPlan(isRefresh, customerCode = this.orderItem.shuntingCustomer) {
if (this.loadParams.isDone) {
return
}
const params = {
'fullName': this.searchFullName,
'page': 1,
'pagesize': 50,
'shortName': this.searchShortName,
'totalCount': 0
}
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
const res = await listKAStore(params)
uni.hideLoading();
if (isRefresh) {
this.lists = res.data.Rows
this.loadParams.isDone = false
} else {
this.lists = this.lists.concat(res.data.Rows)
}
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 = '加载中'
},
async getSalesPlanTypes() {
this.getSalesPlan()
},
bindPickerTypesChange(e) {
console.log('bindPickerTypesChange', e.detail.value)
this.typesIndex = e.detail.value
this.getSalesPlan()
},
bindPickerYearChange(e) {
console.log('bindPickerYearChange', e.detail.value)
this.getSalesPlan()
},
handleClick(e, content, index) {
console.log('click当前索引:', e, content, index);
},
}
}
</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;
}
.planout-block {
display: flex;
justify-content: space-between;
margin-bottom: 48rpx;
padding: 0 24rpx;
}
.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: #333;
}
.item-block__label {
flex: 1;
text-align: left;
font-size: 32rpx;
color: #333;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
}
.item-block-code {
padding-bottom: 16rpx;
}
.item-block-name {
padding-top: 24rpx;
padding-bottom: 32rpx;
}
.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;
}
</style>
servers/api.helper.js
View file @
d1fab0db
...
...
@@ -204,7 +204,7 @@ class Request {
// 请求后的拦截
response
:
(
res
)
=>
{
console
.
log
(
'helper--iinterceptor---response-----'
,
res
)
if
(
res
.
MSGTYPE
===
'S'
||
res
.
msgtype
===
'S'
||
res
.
status
===
1
||
res
.
result
===
"S"
||
if
(
res
.
MSGTYPE
===
'S'
||
res
.
msgtype
===
'S'
||
res
.
status
===
1
||
res
.
status
===
0
||
res
.
result
===
"S"
||
res
.
Status
===
'Success'
)
{
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
...
...
servers/breakwords.js
View file @
d1fab0db
...
...
@@ -168,4 +168,4 @@ export async function apiGetProcessOrderDetail(params) {
export
async
function
apiGetProcessOrderAppeal
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/wmdpwebservices/processOrder/trigger/appeal'
,
params
)
return
res
}
}
servers/http.interceptor.js
View file @
d1fab0db
...
...
@@ -67,7 +67,7 @@ const install = (Vue, vm) => {
// 如果把originalData设置为了true,这里得到将会是服务器返回的所有的原始数据
// 判断可能变成了res.statueCode,或者res.data.code之类的,请打印查看结果
console
.
log
(
'http.interceptor---response-----'
,
res
)
if
(
res
.
MSGTYPE
===
'S'
||
res
.
msgtype
===
'S'
||
res
.
status
===
1
||
res
.
result
===
'S'
||
res
if
(
res
.
MSGTYPE
===
'S'
||
res
.
msgtype
===
'S'
||
res
.
status
===
1
||
res
.
status
===
0
||
res
.
result
===
'S'
||
res
.
Status
===
'Success'
)
{
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
...
...
servers/purchaseList.js
0 → 100644
View file @
d1fab0db
import
apiHelper
from
'./api.helper.js'
/**
*
* @param name
* @returns {Promise<AxiosResponse<T>>}
*/
export
async
function
apiPurchaseList
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/Invinfo/getUnFinishedInv'
,
params
)
return
res
}
export
async
function
querySysDictionaryDetailsByCode
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/dictionary/querySysDictionaryDetailsByCode'
,
params
,
{
'Content-Type'
:
"application/x-www-form-urlencoded"
})
return
res
}
export
async
function
getProdDeliveryPlan
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/wantgoods/getProdDeliveryPlan'
,
params
)
return
res
}
export
async
function
getReceipt
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/sap/bc/ztpm/to_new_crm/transdata/get_bp_sh_addr'
,
params
)
return
res
}
export
async
function
findByCustomer
(
params
)
{
const
res
=
await
apiHelper
.
get
(
'/crm-app/setShunting/findByCustomer'
,
params
,
{
'Content-Type'
:
'application/json'
})
return
res
}
export
async
function
findAppGoodsSingle
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/wantgoods/findAppGoodsSingle'
,
params
)
return
res
}
export
async
function
queryLogistics
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/logistics/queryLogistics'
,
params
,
{
'Content-Type'
:
'application/x-www-form-urlencoded'
})
return
res
}
export
async
function
initAppWantGoods
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/wantgoods/initAppWantGoods'
,
params
)
return
res
}
export
async
function
getCustomerList
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/sap/bc/ztpm/to_new_crm/transdata/bp_search'
,
params
)
return
res
}
export
async
function
getChannelType
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/wantgoods/getChannelType'
,
params
)
return
res
}
export
async
function
listKAStore
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/kastore/listKAStore'
,
params
)
return
res
}
export
async
function
startProcessInstanceByKey
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/workflow/startProcessInstanceByKey'
,
params
,
{
'Content-Type'
:
'application/x-www-form-urlencoded'
})
return
res
}
export
async
function
advance
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/crm-app/workflow/advance'
,
params
,
{
'Content-Type'
:
'application/x-www-form-urlencoded'
})
return
res
}
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