Commit 97599be2 authored by chuan.liu's avatar chuan.liu

市场线索页面新增

parent 4bfe6d9d
......@@ -719,6 +719,22 @@
"bounce": "none"
}
}
},
{
"path": "pages/breakwords-market/breakwords-market",
"style": {
"app-plus": {
"titleNView": {
"titleAlign": "left",
"titleColor": "#333",
"titleSize": "17px",
"backgroundColor": "transparent",
"titleText": "市场线索",
"autoBackButton": true
}
}
// "enablePullDownRefresh": true
}
}
],
"globalStyle": {
......
<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="navs-block">
<view class="navs-tab">
<view class="navs-tab-item" @click="checkTab(0)">
<text class="navs-tab-item_text" :class="{'item_text-active':activeTabIndex===0}">实名</text>
<view class="tab-item_line" :class="{'tab-item_line-active':activeTabIndex===0}"></view>
</view>
<view class="navs-tab-item"></view>
<view class="navs-tab-item" @click="checkTab(1)">
<text class="navs-tab-item_text" :class="{'item_text-active':activeTabIndex===1}">匿名</text>
<view class="tab-item_line" :class="{'tab-item_line-active':activeTabIndex===1}"></view>
</view>
</view>
<view class="search-block">
<view class="search-type">
<picker class="search-type-text" @change="bindPickerYearChange" mode="date"
:value="condition.RT_GJAHR[0].LOW" fields='year'>
<text class="uni-input-text">{{condition.RT_GJAHR[0].LOW}}</text>
</picker>
<image class="icon-arrow-down" src="@/static/image/arrow_down@3x.png" mode=""></image>
<view class="icon-line"></view>
</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" v-model="condition.search" placeholder="请输入产品名称" />
</view>
</view>
</view>
<list :style="scrollHeight" 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="index">
<view class="scroll-item">
<view class="item-block item-block-code">
<text class="item-block-label">单号:333</text>
</view>
<view class="item-block item-block-name">
<text class="item-block-label item-block__label">2</text>
</view>
<view class="item-block">
<text class="item-block-label-des">2-3</text>
</view>
<view class="block-detal">
<view class="block-detal-item">
<text class="detal-item-label">存货分类</text>
<text class="detal-item-value">sss</text>
</view>
<view class="block-detal-item block-detal-item-last">
<text class="detal-item-label">已占用计划(件)</text>
<text class="detal-item-value">3</text>
</view>
</view>
</view>
</cell>
<cell>
<view class="loading-more" v-if='lists.length>2'>
<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>
</view>
</view>
</template>
<script>
import {
mapState
} from 'vuex'
import {
apiSalesPlanTypesSelect
} from '@/servers/common.js'
import {
apiSalesPlan
} from '@/servers/purchasePlan.js'
import timeFormat from '@/uview-ui/libs/function/timeFormat.js'
export default {
data() {
return {
scrollTop: 0,
isOpened: 'none',
loadingText: '加载中...',
refreshing: false,
condition: {
MV_BP: '0081000010',
ROLE: 'WLYALL',
RT_GJAHR: [{
SIGN: 'I',
OPTION: 'EQ',
LOW: '',
HIGH: ''
}],
RT_PLAN_TYPE: [{
SIGN: 'I',
OPTION: 'EQ',
LOW: '',
HIGH: ''
}]
},
page: {
"PAGE": "1",
"PAGESIZE": "10",
},
loadParams: {
total: 0,
totalPage: 1,
isDone: false,
isRefresh: false
},
selectedSalePlan: {},
selectedSalePlanTypes: [],
typesIndex: 0,
lists: [{
'sss': '2'
}],
activeTabIndex: 0
}
},
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 - 90 }px`
}
},
},
created() {
this.condition.RT_GJAHR[0].LOW = timeFormat(new Date(), 'yyyy')
this.condition.MV_BP = '0081000010' || this.userInfo.code
this.reset()
},
methods: {
async getSalesPlan(isRefresh) {
if (this.loadParams.isDone) {
return
}
const params = {
...this.page,
...this.condition
}
uni.showLoading({
title: '加载中'
});
setTimeout(function() {
uni.hideLoading();
}, 2000);
// const res = await apiSalesPlan(params)
const res = []
uni.hideLoading();
const {
lt_result,
page,
pagesize,
total
} = res
this.page.PAGE = page
this.page.PAGESIZE = pagesize
this.loadParams.total = total
this.loadParams.totalPage = Math.ceil(total * 1 / this.page.PAGESIZE * 1)
const dataMap = lt_result && lt_result.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 = '加载中'
},
async getSalesPlanTypes() {
const res = await apiSalesPlanTypesSelect()
this.selectedSalePlanTypes = res.DATA
this.selectedSalePlan = this.selectedSalePlanTypes[this.typesIndex]
this.condition.RT_PLAN_TYPE[0].LOW = this.selectedSalePlanTypes[this.typesIndex].KEY
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.getSalesPlan()
},
bindPickerYearChange(e) {
console.log('bindPickerYearChange', e.detail.value)
this.condition.RT_GJAHR[0].LOW = 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`
})
},
checkTab(i) {
this.activeTabIndex = i
}
}
}
</script>
<style lang="scss" scoped>
.view {
flex-direction: column;
}
.header-bg {
height: 284rpx;
opacity: 0.72;
margin-top: -88rpx;
background-color: #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;
}
.navs-block {
flex-direction: column;
background-color: #fff;
}
.navs-tab {
display: flex;
flex: 1;
justify-content: center;
height: 50rpx;
border-bottom: 1px solid #F4F5F6;
}
.navs-tab-item {
position: relative;
width: 40px;
height: 50rpx;
}
.navs-tab-item_text {
width: 40px;
text-align: center;
color: #333;
font-size: 28rpx;
}
.item_text-active {
color: #F62C29;
}
.tab-item_line {
position: absolute;
bottom: 0;
left: 0;
width: 40px;
height: 2px;
background: transparent;
border-radius: 1px;
}
.tab-item_line-active {
background: #f62c29;
}
.search-block {
height: 120rpx;
padding: 24rpx 16rpx;
}
.search-type {
width: 220rpx;
display: flex;
padding: 0 32rpx;
align-items: center;
background: #f5f6f7;
border-radius: 8rpx 0 0 8rpx;
}
.search-type-text {
color: #333;
font-size: 28rpx;
}
.icon-arrow-down {
width: 6px;
height: 4px;
margin-left: 10rpx;
}
.icon-line {
width: 2rpx;
height: 23px;
background-color: #dfe1e3;
margin-left: 20rpx;
}
.search-input-block {
display: flex;
flex: 1 1 auto;
align-items: center;
background: #f5f6f7;
border-radius: 0 8rpx 8rpx 0;
}
.icon-search {
width: 13px;
height: 14px;
margin-right: 12rpx;
}
.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;
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;
}
.block-detal {
display: flex;
flex-direction: column;
background: #f8f8f8;
border-radius: 20rpx;
padding: 32rpx;
margin-top: 32rpx;
}
.block-detal-item {
display: flex;
margin-bottom: 32rpx;
justify-content: space-between;
}
.block-detal-item-last {
margin-bottom: 0;
}
.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;
}
.empty-block {
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>
......@@ -22,14 +22,14 @@
<view class="todo-box block">
<text class="title">市场秩序</text>
<view class="amount-block">
<view class="order-amount" @click="entryHandle">
<view class="order-amount" @click="entryHandle('breakwords-clue')">
<view class="order-amount--wrapper">
<image class="entry-icon" src="@/static/image/home_report@3x.png" mode="aspectFit">
</image>
<text class="order-amount--num">提报线索</text>
</view>
</view>
<view class="order-amount" @click="entryHandle">
<view class="order-amount" @click="entryHandle('breakwords-market')">
<view class="order-amount--wrapper">
<image class="entry-icon" src="@/static/image/home_marketclue@3x.png" mode="aspectFit">
</image>
......@@ -275,12 +275,18 @@
change(e) {
this.current = e.detail.current;
},
entryHandle() {
entryHandle(path) {
uni.showToast({
title: '开发中...',
icon: 'none',
duration: 1500
});
return
uni.navigateTo({
url: `/pages/${path}/${path}`
})
}
}
}
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment