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
1574f8de
Commit
1574f8de
authored
Jul 22, 2022
by
chuan.liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
市场秩序提交新增提款银行账户 销售计划类型变更 团购计划类型新增 喷码方式接口变更
parent
a32eb862
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
916 additions
and
24 deletions
+916
-24
manifest.json
manifest.json
+1
-1
pages.json
pages.json
+39
-0
breakwords-clue.vue
pages/breakwords-clue/breakwords-clue.vue
+39
-8
breakwords-market.nvue
pages/breakwords-market/breakwords-market.nvue
+2
-2
group-baseinfo.nvue
pages/group-buy/group-baseinfo.nvue
+2
-0
quota-order.nvue
pages/group-buy/quota-order.nvue
+56
-1
purchase-plan.nvue
pages/purchase-plan/purchase-plan.nvue
+13
-5
select-group-client.vue
pages/select-group-client/select-group-client.vue
+8
-0
select-group-plan.vue
pages/select-group-plan/select-group-plan.vue
+439
-0
select-sale-plan.vue
pages/select-sale-plan/select-sale-plan.vue
+12
-4
select-salesarea-account.nvue
pages/select-salesarea-account/select-salesarea-account.nvue
+282
-0
breakwords.js
servers/breakwords.js
+10
-0
common.js
servers/common.js
+11
-1
.DS_Store
static/.DS_Store
+0
-0
index.js
store/index.js
+2
-2
No files found.
manifest.json
View file @
1574f8de
...
...
@@ -102,7 +102,7 @@
"proxy"
:
{
"/sap"
:
{
//
"target"
:
"http://10.0.135.139/wlySap"
,
"target"
:
"http://10.0.134.
45
:8000"
,
"target"
:
"http://10.0.134.
182
:8000"
,
"changeOrigin"
:
true
},
"/crm-app"
:
{
...
...
pages.json
View file @
1574f8de
...
...
@@ -152,6 +152,28 @@
},
"enablePullDownRefresh"
:
true
}
},
{
"path"
:
"pages/select-group-plan/select-group-plan"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"transparent"
,
"titleText"
:
"计划类型选择"
,
"autoBackButton"
:
true
//
"buttons"
:
[{
//
"type"
:
"none"
,
//
"text"
:
"选择"
,
//
"fontSize"
:
"14px"
,
//
"color"
:
"#555"
//
}]
},
"bounce"
:
"none"
},
"enablePullDownRefresh"
:
true
}
},
{
"path"
:
"pages/select-product/select-product"
,
"style"
:
{
...
...
@@ -800,6 +822,23 @@
},
"enablePullDownRefresh"
:
true
}
},
{
"path"
:
"pages/select-salesarea-account/select-salesarea-account"
,
"style"
:
{
"app-plus"
:
{
"titleNView"
:
{
"titleAlign"
:
"left"
,
"titleColor"
:
"#333"
,
"titleSize"
:
"17px"
,
"backgroundColor"
:
"#fff"
,
"titleText"
:
"联络函信息"
,
"autoBackButton"
:
true
},
"bounce"
:
"none"
},
"enablePullDownRefresh"
:
true
}
}
],
"globalStyle"
:
{
...
...
pages/breakwords-clue/breakwords-clue.vue
View file @
1574f8de
...
...
@@ -188,6 +188,18 @@
<text
class=
"middle-date"
>
终端地址
</text>
<input
class=
"middle-date-des"
type=
"text"
v-model=
"condition.terminalAddress"
placeholder=
""
/>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
银行账户
</text>
<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.salesAreaAccountPk"
placeholder=
"请填写"
/>
</view>
</view>
<image
class=
"icon-arrow"
src=
"@/static/image/arrow_r@3x.png"
mode=
""
></image>
</view>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
稽查时间
</text>
<view
class=
"middle-date-des uni-list picker-year"
>
...
...
@@ -355,9 +367,6 @@
export
default
{
data
()
{
return
{
applyNum
:
100
,
array
:
[
'2021'
,
'2020'
,
'2019'
,
'2018'
],
index
:
0
,
condition
:
{
submitMethod
:
''
,
submitMethodName
:
''
,
...
...
@@ -383,14 +392,15 @@
storeName
:
''
,
storeAddress
:
''
,
marketName
:
''
,
salesAreaAccountPk
:
''
,
auditTime
:
''
,
auditNotes
:
''
,
barcode
:
''
,
receiveAmount
:
''
,
doorPicUrl
:
''
,
productPicUrl
:
''
,
invoicePicUrl
:
''
,
receiptPicUrl
:
''
,
doorPicUrl
:
'
https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF
'
,
productPicUrl
:
'
https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF
'
,
invoicePicUrl
:
'
https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF
'
,
receiptPicUrl
:
'
https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF
'
,
},
pickerIndexs
:
{
submitMethodIndex
:
0
...
...
@@ -450,6 +460,21 @@
_this
.
condition
.
terminalId
=
data
.
selectedClueTerminal
.
id
_this
.
condition
.
terminalAddress
=
data
.
selectedClueTerminal
.
address
})
uni
.
$on
(
'selectSalesAreaAccountInfo'
,
function
(
data
)
{
console
.
log
(
'监听到事件来自 selectSalesAreaAccountInfo ,携带参数 msg 为:'
,
data
);
_this
.
condition
.
salesAreaAccountPk
=
data
.
selectedSalesAreaAccountInfo
.
pk
})
},
onUnload
()
{
console
.
log
(
'onUnload'
)
uni
.
$off
(
'selectClueTerminal'
)
uni
.
$off
(
'selectSalesAreaAccountInfo'
)
},
beforeDestroy
()
{
console
.
log
(
'onUnload2'
)
uni
.
$off
(
'selectClueTerminal'
)
uni
.
$off
(
'selectSalesAreaAccountInfo'
)
},
methods
:
{
async
getDictionary
(
key
)
{
...
...
@@ -511,6 +536,11 @@
url
:
`/pages/select-clue-terminal/select-clue-terminal?keywords=
${
this
.
condition
.
terminalName
}
`
});
},
selectSalesAreaAccountInfo
()
{
uni
.
navigateTo
({
url
:
`/pages/select-salesarea-account/select-salesarea-account?keywords=`
});
},
async
addProductByBarcode
()
{
const
params
=
{
barcode
:
this
.
condition
.
barcode
...
...
@@ -584,7 +614,8 @@
'platformName'
:
this
.
condition
.
platformName
,
'storeName'
:
this
.
condition
.
storeName
,
'marketName'
:
this
.
condition
.
marketName
,
'storeAddress'
:
this
.
condition
.
storeAddress
'storeAddress'
:
this
.
condition
.
storeAddress
,
'salesAreaAccountPk'
:
this
.
condition
.
salesAreaAccountPk
,
}
const
res
=
await
apiClueSubmit
(
params
)
},
...
...
pages/breakwords-market/breakwords-market.nvue
View file @
1574f8de
...
...
@@ -28,7 +28,7 @@
</view>
<view class="search-input-block">
<image class="icon-search" src="@/static/image/search_b@3x.png" mode=""></image>
<input class="search-input" type="text" @blur="getClueList" v-model="condition.product
Name
"
<input class="search-input" type="text" @blur="getClueList" v-model="condition.product
Id
"
placeholder="请输入产品名称" />
</view>
</view>
...
...
@@ -110,7 +110,7 @@
submitSource: 'DISTRIBUTER',
submitUserId: '',
status: '',
product
Name
: '',
product
Id
: '',
submitMethod: '',
pwd: ''
},
...
...
pages/group-buy/group-baseinfo.nvue
View file @
1574f8de
...
...
@@ -234,6 +234,7 @@
uni.$on('selectedPaintDesign', function(data) {
console.log('监听到事件来自 selectedPaintDesign ,携带参数 msg 为:', data);
_this.condition.ZZFLD000098 = data.selectedPaintDesign.zzfld000098
_this.HEADINFO.ZZFLD000098 = data.selectedPaintDesign.zzfld000098
})
},
onUnload() {
...
...
@@ -292,6 +293,7 @@
break;
}
this.condition.PENGMETHOD = this.paintDesignPicker[this.paintDesignIndex].key
this.HEADINFO.PENGMETHOD = this.paintDesignPicker[this.paintDesignIndex].key
},
selectGroupClient() {
uni.navigateTo({
...
...
pages/group-buy/quota-order.nvue
View file @
1574f8de
...
...
@@ -41,6 +41,19 @@
<view class="text-block title-first">
<text class="middle-date title-first__text">{{index+1}}</text>
</view>
<view class="text-block" v-if="isBigSingleProduct === 'TRUE'"
@click="selectPlanOrder(item,index)">
<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="middle-date-des">{{item.ZZFLD00002Q_TEXT}}</text>
</view>
</view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit">
</image>
</view>
</view>
<view class="text-block" @click="selectProduct(index,'inner')">
<text class="middle-date">产品</text>
<view class="middle-date-des uni-list picker-year">
...
...
@@ -116,7 +129,8 @@
'product_info': {}
}],
HEADINFO: {},
productInitInfo: {}
productInitInfo: {},
isBigSingleProduct: "FALSE"
}
},
computed: {
...
...
@@ -158,14 +172,38 @@
_this.updateQuotaData(fromIndex, data.mode, product);
})
uni.$on('selectedGroupPlan', function(data) {
console.log('监听到事件来自 selectedGroupPlan ,携带参数 msg 为:', data);
const fromIndex = data.index * 1
let selectedSalePlan = data.selectedSalePlan
let selectedProductSalePlan = {}
_this.planinnerLists = _this.planinnerLists.map((item, i) => {
if (i === fromIndex) {
item.salesplan_info = {
...selectedSalePlan
}
item.ZZFLD00002Q = selectedSalePlan.PLAN_TYPE
item.ZZFLD00002Q_TEXT = selectedSalePlan.PLAN_TYPE_DESC
selectedProductSalePlan = {
...item
}
}
return item
})
// _this.updateQuotaData(fromIndex, 'inner', selectedProductSalePlan);
})
},
onUnload() {
console.log('onUnload')
uni.$off('selectedProduct')
uni.$off('selectedGroupPlan')
},
beforeDestroy() {
console.log('onUnload2')
uni.$off('selectedProduct')
uni.$off('selectedGroupPlan')
},
created() {
const {
...
...
@@ -210,6 +248,9 @@
INFO
} = res.DATA
// 是否为大单品产品
this.isBigSingleProduct = res.DISPLAY
// let groupOrder = {
// ...this.groupOrder,
// 'INFO': INFO,
...
...
@@ -284,6 +325,20 @@
this.planinnerLists.splice(index, 1)
}
},
// 选择计划类型
selectPlanOrder(product, index, mode = 'inner') {
if (this.isBigSingleProduct === 'TRUE') {
uni.navigateTo({
url: `/pages/select-group-plan/select-group-plan?from=quotaOrder&product=${JSON.stringify((product))}&head=${JSON.stringify(this.HEADINFO)}`
});
} else {
uni.showToast({
title: '请先选择大单品产品',
duration: 2000,
icon: 'none'
});
}
},
selectProduct(index, mode = 'inner') {
this.mode = mode
if (this.salesCenterIndex !== -1) {
...
...
pages/purchase-plan/purchase-plan.nvue
View file @
1574f8de
...
...
@@ -25,11 +25,11 @@
<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="bindPickerTypesChange" range-key='VALUE'
<picker class="picker-block" @change="bindPickerTypesChange" range-key='VALUE
_KT
'
mode="selector" :value="typesIndex" :range="selectedSalePlanTypes">
<view class="uni-input">
<text
class="uni-input-text">{{selectedSalePlanTypes[typesIndex] && selectedSalePlanTypes[typesIndex].VALUE || '请选择'}}</text>
class="uni-input-text">{{selectedSalePlanTypes[typesIndex] && selectedSalePlanTypes[typesIndex].VALUE
_KT
|| '请选择'}}</text>
</view>
</picker>
</view>
...
...
@@ -262,16 +262,24 @@
this.loadingText = '加载中'
},
async getSalesPlanTypes() {
const res = await apiSalesPlanTypesSelect()
const params = {
"object_id": [{
"sign": "I",
"option": "EQ",
"low": "A0002",
"HIGH": ""
}]
}
const res = await apiSalesPlanTypesSelect(params)
this.selectedSalePlanTypes = res.DATA
this.selectedSalePlan = this.selectedSalePlanTypes[this.typesIndex]
this.condition.RT_PLAN_TYPE[0].LOW = this.selectedSalePlanTypes[this.typesIndex].
KEY
this.condition.RT_PLAN_TYPE[0].LOW = this.selectedSalePlanTypes[this.typesIndex].
VALUE_ID
this.getSalesPlan()
},
bindPickerTypesChange(e) {
console.log('bindPickerTypesChange', e.detail.value)
this.typesIndex = e.detail.value
this.condition.RT_PLAN_TYPE[0].LOW = this.selectedSalePlanTypes[this.typesIndex].
KEY
this.condition.RT_PLAN_TYPE[0].LOW = this.selectedSalePlanTypes[this.typesIndex].
VALUE_ID
this.getSalesPlan()
},
bindPickerYearChange(e) {
...
...
pages/select-group-client/select-group-client.vue
View file @
1574f8de
...
...
@@ -253,6 +253,14 @@
this
.
loadingText
=
'加载中'
},
// async getSalesPlanTypes() {
// const params = {
// "object_id": [{
// "sign": "I",
// "option": "EQ",
// "low": "A0002",
// "HIGH": ""
// }]
// }
// const res = await apiSalesPlanTypesSelect()
// this.selectedSalePlanTypes = res.DATA
// console.log('getSalesPlanTypes', res)
...
...
pages/select-group-plan/select-group-plan.vue
0 → 100644
View file @
1574f8de
<
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"
>
<view
class=
"middle view"
>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
计划类型编号
</text>
<input
class=
"middle-date-des"
type=
"text"
v-model=
"condition.PLAN_NUMBER"
placeholder=
"请填写"
/>
</view>
</view>
<view
class=
"planout-block"
>
<button
class=
"btn"
type=
"default"
@
tap=
"search"
>
<text
class=
"btn-text"
>
查询
</text>
</button>
</view>
<scroll-view
class=
"scroll-area"
:style=
'scrollHeight'
scroll-y=
"true"
lower-threshold=
'150'
@
scrolltolower=
'scrolltolower'
>
<!--
<uni-swipe-action
class=
"planout-block-lists"
>
<uni-swipe-action-item
v-for=
"(item,index) in lists"
:key=
'index'
:threshold=
'100'
:auto-close=
"false"
:disabled=
'true'
:show=
"isOpened"
>
-->
<!--
<template
v-slot:left
>
<view
class=
"swipe-right-block"
@
click
.
stop=
"handleChecked($event,item, index)"
><text
class=
"swipe-right-block__text"
:class=
"
{'swipe-right-block__active':item.checked}">
</text>
</view>
</
template
>
-->
<view
class=
"middle view planout-block-item"
v-for=
"(item,index) in lists"
:key=
'index'
@
click=
"handleChecked($event,item, index)"
>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
年度
</text>
<text
class=
"middle-date-des"
>
{{item.GJAHR}}
</text>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
计划类型编号
</text>
<text
class=
"middle-date-des"
>
{{item.PLAN_TYPE}}
</text>
</view>
<view
class=
"text-block"
>
<text
class=
"middle-date"
>
计划类型描述
</text>
<text
class=
"middle-date-des"
>
{{item.PLAN_TYPE_DESC}}
</text>
</view>
</view>
<!-- </uni-swipe-action-item>
</uni-swipe-action> -->
<view
class=
"loading-more"
v-if=
'lists.length>2'
>
<text
class=
"loading-more-text"
>
{{loadingText}}
</text>
</view>
</scroll-view>
</view>
</view>
</template>
<
script
>
import
{
mapState
}
from
'vuex'
import
{
apiGroupPlanTypesSelect
,
}
from
'@/servers/common.js'
import
timeFormat
from
'@/uview-ui/libs/function/timeFormat.js'
export
default
{
data
()
{
return
{
isOpened
:
'none'
,
loadingText
:
'加载中...'
,
condition
:
{
PLAN_NUMBER
:
''
},
page
:
{
"PAGE"
:
"1"
,
"PAGESIZE"
:
"10"
,
},
loadParams
:
{
total
:
0
,
totalPage
:
1
,
isDone
:
false
,
isRefresh
:
false
},
lists
:
[{
GJAHR
:
12
,
PLAN_TYPE
:
'222222'
,
PLAN_TYPE_DESC
:
'的点点滴滴'
,
}],
selectedSalePlan
:
{},
toPageParams
:
{
page
:
''
,
index
:
0
,
product
:
{},
head
:
{}
}
}
},
computed
:
{
...
mapState
([
'sysinfo'
]),
navHeight
()
{
return
{
'height'
:
`
${
this
.
sysinfo
.
safeArea
.
top
+
44
}
px`
}
},
scrollHeight
()
{
return
{
'height'
:
`
${
this
.
sysinfo
.
safeArea
.
height
-
297
-
44
-
20
}
px`
}
}
},
onNavigationBarButtonTap
(
e
)
{
// console.log('onNavigationBarButtonTap:', e, this.isOpened, this.selectedSalePlan);
// if (this.isOpened === 'left' && this.selectedSalePlan && this.selectedSalePlan.PLAN_NUMBER) {
// uni.$emit('selectedSalePlan', {
// selectedSalePlan: this.selectedSalePlan,
// index: this.toPageParams.index
// })
// uni.navigateBack()
// return
// }
// this.isOpened = this.isOpened === 'none' ? 'left' : 'none';
// #ifdef APP-PLUS
// let pages = getCurrentPages()
// let page = pages[pages.length - 1]
// let webView = page.$getAppWebview();
// console.log('webView', webView)
// webView.setTitleNViewButtonStyle(0, {
// text: this.isOpened === 'none' ? '选择' : '完成',
// });
// let titleObj = webView.getStyle().titleNView;
// if(!titleObj.buttons){
// returnl
// }
// titleObj.buttons[0].text = 'dd';
// webView.setStyle({
// titleNView:titleObj
// })
// #endif
},
onLoad
(
option
)
{
console
.
log
(
'select-saleplan'
,
option
)
if
(
option
&&
option
.
from
)
{
const
{
from
,
product
,
head
}
=
option
this
.
toPageParams
.
product
=
JSON
.
parse
(
product
)
this
.
toPageParams
.
page
=
from
this
.
toPageParams
.
head
=
JSON
.
parse
(
head
)
}
},
onPullDownRefresh
()
{
console
.
log
(
'refresh'
);
this
.
reset
()
this
.
getSalesPlan
(
true
)
setTimeout
(
function
()
{
uni
.
stopPullDownRefresh
();
},
600
);
},
created
()
{
this
.
reset
()
this
.
getSalesPlan
(
true
);
},
methods
:
{
async
getSalesPlan
(
isRefresh
)
{
if
(
this
.
loadParams
.
isDone
)
{
return
}
const
{
GJAHR
,
MONAT
,
PLAN_TYPE
}
=
this
.
condition
const
params
=
{
...
this
.
page
,
"ZZFLD000001"
:
this
.
toPageParams
.
head
.
ZZFLD000001
,
"CUSTOMER"
:
this
.
toPageParams
.
head
.
CUSTOMER
,
"ORDERED_PROD"
:
this
.
toPageParams
.
product
.
ORDERED_PROD
,
"PLAN_NUMBER"
:
this
.
condition
.
PLAN_NUMBER
,
}
uni
.
showLoading
({
title
:
'加载中'
});
setTimeout
(
function
()
{
uni
.
hideLoading
();
},
2000
);
const
res
=
await
apiGroupPlanTypesSelect
(
params
)
uni
.
hideLoading
();
const
{
DATA
,
TOTAL
}
=
res
this
.
loadParams
.
total
=
TOTAL
this
.
loadParams
.
totalPage
=
Math
.
ceil
(
TOTAL
*
1
/
this
.
page
.
PAGESIZE
*
1
)
if
(
isRefresh
)
{
this
.
lists
=
DATA
this
.
loadParams
.
isDone
=
false
}
else
{
this
.
lists
=
this
.
lists
.
concat
(
DATA
)
}
},
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
=
'加载中'
},
search
()
{
this
.
reset
()
this
.
getSalesPlan
(
true
);
},
handleChecked
(
e
,
item
,
index
)
{
console
.
log
(
'当前索引:'
,
e
,
index
);
this
.
lists
.
forEach
((
cur
)
=>
{
if
(
cur
.
PLAN_TYPE
===
item
.
PLAN_TYPE
)
{
cur
.
checked
=
!
cur
.
checked
}
else
{
cur
.
checked
=
false
}
})
if
(
item
.
checked
===
true
)
{
this
.
selectedSalePlan
=
item
if
(
this
.
selectedSalePlan
&&
this
.
selectedSalePlan
.
PLAN_TYPE
)
{
uni
.
$emit
(
'selectedGroupPlan'
,
{
selectedSalePlan
:
this
.
selectedSalePlan
,
index
:
this
.
toPageParams
.
index
})
uni
.
navigateBack
()
}
}
else
{
// const selectIndex = this.selectedSalePlan.findIndex((saleplan)=>{
// return saleplan.id === item.id
// })
// this.selectedSalePlan.splice(selectIndex,1)
this
.
selectedSalePlan
=
{}
}
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.view
{
flex-direction
:
column
;
}
.header-bg
{
height
:
284rpx
;
margin-top
:
-88rpx
;
}
.header-bg-img
{
width
:
750rpx
;
}
.lists
{
position
:
relative
;
flex-direction
:
column
;
overflow-y
:
scroll
;
background
:
#f0f4f5
;
height
:
100vh
;
}
.main
{
position
:
relative
;
flex-direction
:
column
;
margin-top
:
-164rpx
;
padding
:
0
16rpx
;
}
.middle
{
background-color
:
#fff
;
border-radius
:
16rpx
;
padding
:
32rpx
64rpx
40rpx
48rpx
;
}
.text-block
{
display
:
flex
;
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
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
color
:
#888
;
}
.picker-year
{
position
:
relative
;
border-radius
:
4px
;
align-items
:
center
;
}
.uni-list-cell
{
flex
:
1
;
}
.uni-list-cell-db
{
flex
:
1
;
}
.picker-block
{
flex
:
1
;
}
.icon-arrow
{
position
:
absolute
;
right
:
0
;
top
:
16px
;
width
:
12rpx
;
height
:
20rpx
;
z-index
:
10
;
}
.planout-block-lists
{
display
:
flex
;
flex-direction
:
column
;
overflow
:
hidden
;
}
.uni-swipe
{
flex
:
1
;
margin-bottom
:
26rpx
;
}
/
deep
/
.uni-swipe_box
{
flex
:
1
;
}
.swipe-right-block
{
display
:
flex
;
width
:
100rpx
;
justify-content
:
center
;
align-items
:
center
;
}
.swipe-right-block__text
{
display
:
inline-block
;
width
:
52rpx
;
height
:
52rpx
;
border-radius
:
50%
;
background-color
:
#fff
;
}
.swipe-right-block__active
{
width
:
52rpx
;
height
:
52rpx
;
border-radius
:
50%
;
background-color
:
$wly-primary-color
;
}
.planout-block
{
display
:
flex
;
justify-content
:
space-between
;
height
:
84rpx
;
margin-top
:
64rpx
;
margin-bottom
:
48rpx
;
padding
:
0
24rpx
;
}
.planout-block-item
{
flex
:
1
;
width
:
750rpx
;
margin-bottom
:
26rpx
;
}
.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-plan/select-sale-plan.vue
View file @
1574f8de
...
...
@@ -39,10 +39,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=
"bindPickerTypesChange"
range-key=
'VALUE'
<picker
class=
"picker-block"
@
change=
"bindPickerTypesChange"
range-key=
'VALUE
_KT
'
mode=
"selector"
:value=
"typesIndex"
:range=
"selectedSalePlanTypes"
>
<view
class=
"uni-input"
>
{{
selectedSalePlanTypes
[
typesIndex
]
&&
selectedSalePlanTypes
[
typesIndex
].
VALUE
||
'请选择'
}}
{{
selectedSalePlanTypes
[
typesIndex
]
&&
selectedSalePlanTypes
[
typesIndex
].
VALUE
_KT
||
'请选择'
}}
</view>
</picker>
</view>
...
...
@@ -293,7 +293,15 @@
this
.
loadingText
=
'加载中'
},
async
getSalesPlanTypes
()
{
const
res
=
await
apiSalesPlanTypesSelect
()
const
params
=
{
"object_id"
:
[{
"sign"
:
"I"
,
"option"
:
"EQ"
,
"low"
:
"A0002"
,
"HIGH"
:
""
}]
}
const
res
=
await
apiSalesPlanTypesSelect
(
params
)
this
.
selectedSalePlanTypes
=
res
.
DATA
},
search
()
{
...
...
@@ -303,7 +311,7 @@
bindPickerTypesChange
(
e
)
{
console
.
log
(
'picker发送选择改变,携带值为'
,
e
.
detail
.
value
)
this
.
typesIndex
=
e
.
detail
.
value
this
.
condition
.
PLAN_TYPE
=
this
.
selectedSalePlanTypes
[
this
.
typesIndex
].
KEY
this
.
condition
.
PLAN_TYPE
=
this
.
selectedSalePlanTypes
[
this
.
typesIndex
].
VALUE_ID
},
bindPickerYearChange
(
e
)
{
console
.
log
(
'picker发送选择改变,携带值为'
,
e
.
detail
.
value
)
...
...
pages/select-salesarea-account/select-salesarea-account.nvue
0 → 100644
View file @
1574f8de
<template>
<view class="order view">
<view class="status_bar" :style="navHeight"></view>
<view class="listview">
<list class="cell-list" v-if="lists.length > 0" :show-scrollbar='false' loadmoreoffset='100'
@loadmore="scrolltolower">
<cell @click="handleChecked(item)" v-for="(item,index) in lists" :key='index'>
<view class="cell-list-block">
<view class="cell-list-block__content">
<view class="list-block-item">
<text class="list-block-item__title1">{{item.bankName}} {{item.accountNumber}}</text>
<text class="list-block-item__label">开户名:{{item.accountName}}</text>
<text class="list-block-item__label">pk:{{item.pk}}</text>
</view>
</view>
</view>
</cell>
<cell>
<view class="loading-more" v-if='lists.length>15'>
<text class="loading-more-text">{{loadingText}}</text>
</view>
</cell>
</list>
<no-data class="no-data" v-else @retry="loadMore"></no-data>
</view>
</view>
</template>
<script>
import {
mapState
} from 'vuex'
import {
apiGetSalesAreaAccountList
} from '@/servers/breakwords.js'
import noData from '@/components/nodata.nvue';
export default {
components: {
noData
},
data() {
return {
loadingText: '加载中...',
condition: {},
loadParams: {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
},
page: {
"currentpage": "1",
"pagesize": "15",
},
lists: [],
selectedSalesAreaAccountInfo: {},
toPageParams: {
keywords: '',
}
}
},
computed: {
navHeight() {
return {
'height': `${this.sysinfo.safeArea.top + 44}px`
}
},
...mapState(['sysinfo'])
},
onLoad(option) {
console.log('select-saleplan', option)
if (option && option.keywords) {
const {
keywords
} = option
this.toPageParams.keywords = keywords || ''
}
},
onPullDownRefresh() {
console.log('refresh');
this.reset()
this.getSalesAreaAccountList()
setTimeout(function() {
uni.stopPullDownRefresh();
}, 600);
},
created() {
this.reset()
this.getSalesAreaAccountList()
},
methods: {
async getSalesAreaAccountList(isRefresh) {
if (this.loadParams.isDone) {
return
}
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
const params = {
salesAreaCode: this.toPageParams.keywords,
...this.page
}
const res = await apiGetSalesAreaAccountList(params)
uni.hideLoading();
const {
totalNumberOfResults,
numberOfPages
} = res.data.pagination
this.loadParams.total = totalNumberOfResults
this.loadParams.totalPage = numberOfPages
if (isRefresh) {
this.lists = res.data.detail
this.loadParams.isDone = false
} else {
this.lists = this.lists.concat(res.data.detail)
}
},
scrolltolower() {
console.log('onReachBottom');
if (this.page.currentpage < this.loadParams.totalPage) {
this.page.currentpage++
this.getSalesAreaAccountList()
} else {
this.loadParams.isDone = true
this.loadingText = '-- 到底了 --'
}
},
reset() {
this.loadParams = {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
}
this.page.currentpage = 1
this.lists = []
this.loadingText = '加载中'
},
handleChecked(item) {
this.selectedSalesAreaAccountInfo = item
uni.$emit('selectSalesAreaAccountInfo', {
selectedSalesAreaAccountInfo: item
})
uni.navigateBack()
},
loadMore() {
this.reset()
this.getSalesAreaAccountList(true)
}
}
}
</script>
<style lang="scss" scoped>
.view {
flex-direction: column;
}
/* #ifndef APP-PLUS */
page {
width: 100%;
min-height: 100%;
display: flex;
background: #fff;
}
.status_bar {
height: var(--status-bar-height);
background: #fff;
}
/* #endif */
.order {
flex: 1;
background: #f0f4f5;
}
.listview {
flex: 1;
flex-direction: column;
padding: 16rpx;
border-radius: 8px;
}
.cell-list {
flex: 1;
flex-direction: column;
background: #fff;
padding: 0 50rpx 40rpx 50rpx;
}
.icon-address {
width: 88rpx;
height: 88rpx;
line-height: 88rpx;
text-align: center;
background: #fff4f4;
font-size: 28rpx;
color: #ff1d32;
font-weight: 500;
border-radius: 50%;
margin-right: 32rpx;
}
.cell-list-block__content {
display: flex;
flex: 1;
flex-direction: column;
}
.list-block-item {
display: flex;
flex-direction: column;
}
.list-block-item__title1 {
color: #333;
font-weight: 400;
font-size: 28rpx;
margin-bottom: 4px;
}
.list-block-item__label {
color: #999999;
font-size: 24rpx;
margin-right: 16rpx;
}
.list-block-item__value {
color: #333333;
font-size: 12px;
}
.cell-list-block__desc {
color: #333;
font-size: 12px;
}
.icon-arrow {
width: 18rpx;
height: 22rpx;
margin-right: 28rpx;
}
.list-block-item__desc {
font-size: 24rpx;
color: #333;
}
.cell-list-block {
display: flex;
flex: 1;
height: 140rpx;
background: #fff;
align-items: center;
border-bottom: 1px solid #f4f5f6;
}
.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/breakwords.js
View file @
1574f8de
...
...
@@ -68,4 +68,14 @@ export async function apiGetClueList(params) {
export
async
function
apiGetClueInfoPwdList
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/wmdpwebservices/clue/info/pwd'
,
params
)
return
res
}
/**
* 联络函打款信息列表查询
* @param name 账户名
* @returns {Promise<AxiosResponse<T>>}
*/
export
async
function
apiGetSalesAreaAccountList
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/wmdpwebservices/salesareaaccountinfo/page/query'
,
params
)
return
res
}
servers/common.js
View file @
1574f8de
...
...
@@ -26,7 +26,17 @@ export async function apiSalesPlanSelect(params) {
* @returns {Promise<AxiosResponse<T>>}
*/
export
async
function
apiSalesPlanTypesSelect
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/sap/bc/ztpm/to_new_crm/transdata/sp_type_ovs'
,
params
)
const
res
=
await
apiHelper
.
post
(
'/sap/bc/ztpm/to_new_crm/transdata/get_dropvalue'
,
params
)
return
res
}
/**
* 获取团购计划类型
* @param captcha 验证码
* @returns {Promise<AxiosResponse<T>>}
*/
export
async
function
apiGroupPlanTypesSelect
(
params
)
{
const
res
=
await
apiHelper
.
post
(
'/sap/bc/ztpm/to_new_crm/transdata/plan_type_ovs'
,
params
)
return
res
}
...
...
static/.DS_Store
View file @
1574f8de
No preview for this file type
store/index.js
View file @
1574f8de
...
...
@@ -39,8 +39,8 @@ const store = new Vuex.Store({
vuex_version
:
'1.0.1'
,
vuex_demo
:
'绛紫'
,
userInfo
:
{
name
:
''
,
code
:
''
name
:
'
测试
'
,
code
:
'
0050000215
'
},
quotaOrder
:
{
'ITEM_INNER'
:
[],
...
...
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