You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
425 lines
10 KiB
425 lines
10 KiB
2 years ago
|
<template>
|
||
|
<view class="newselecompany_body">
|
||
|
<view v-if="typeData.type=='send'" class="newselecompany_tip">请选择分发类型<br />与发起方公司...</view>
|
||
|
<view v-if="typeData.type=='receive'" class="newselecompany_tip">请选择对应<br />接收方公司...</view>
|
||
|
<view style=" overflow: hidden;" class="newselecompany_container ">
|
||
|
<view class="sele_Bar mar">
|
||
|
<view :style="{transform:`translateX(calc(${barIndex}*100%))`}" class="move_item"></view>
|
||
|
<view @tap="seleBarFn(0)" :style="{color:barIndex==0? 'white' : ''}" class="sele_Bar_item">柴油</view>
|
||
|
<view @tap="seleBarFn(1)" :style="{color:barIndex==1? 'white' : ''}" class="sele_Bar_item">天然气</view>
|
||
|
<view @tap="seleBarFn(2)" :style="{color:barIndex==2? 'white' : ''}" class="sele_Bar_item">尿素</view>
|
||
|
</view>
|
||
|
<view class="newselecompany_seach mar">
|
||
|
<view class="newselecompany_seach_title">查找企业</view>
|
||
|
<view class="newselecompany_seach_input">
|
||
|
<uni-easyinput v-model="seachValue" placeholder="请输入企业名称或id" prefixIcon="search" confirmType='search' @confirm='seachFn'/>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view style=" overflow: hidden;" class="newselecompany_container_list">
|
||
|
<view v-if="!scrollY&&typeData.type=='send'" class="newselecompany_container_list_tip mar">最近选择</view>
|
||
|
<view style="flex: 1; margin-top:26rpx; overflow: hidden; ">
|
||
|
<scroll-view v-if="list.length!==0" style="height: 100%;overflow: hidden; " :scroll-y="scrollY" @scrolltolower='scrolltolower'>
|
||
|
<view v-for="(item,index) in list " :key="index" @click="seleFn(item)"
|
||
|
class="newselecompany_container_list_item mar">
|
||
|
<view class="newselecompany_container_list_lable">
|
||
|
<text>{{item.parentMark==0?'主公司':'分公司'}}</text></view>
|
||
|
<view class="newselecompany_container_list_name">
|
||
|
<text>{{item.name}}</text>
|
||
|
<text
|
||
|
class="newselecompany_container_list_identification">{{item.companyType|companyType}}</text>
|
||
|
</view>
|
||
|
<view class="companyDetails">
|
||
|
<text class="smallText">{{item.id}}</text>
|
||
|
<text class="listtext">账户余额 <text
|
||
|
style="margin-left: 5rpx;font-size: 27rpx;">{{item.balance||'0'}}</text> </text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</scroll-view>
|
||
|
<view v-if="list.length==0"
|
||
|
style="width: 100vw; height: 100%; display: flex;align-items: center;justify-content: center;">
|
||
|
<image src="../../static/qx.png" style="width: 536rpx; height: 399rpx;"></image>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import scroll from '@/components/scroll'
|
||
|
import driverManagement from '@/api/driverManagement'
|
||
|
export default {
|
||
|
components: {
|
||
|
scroll
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
typeData: '',
|
||
|
scrollY:false,
|
||
|
timer: null,
|
||
|
barIndex: 0,
|
||
|
seachValue: '',
|
||
|
seleBarData:[
|
||
|
{
|
||
|
lable:'柴油',
|
||
|
value:0
|
||
|
},
|
||
|
{
|
||
|
lable:'天然气',
|
||
|
value:1
|
||
|
},
|
||
|
{
|
||
|
lable:'尿素',
|
||
|
value:2
|
||
|
}
|
||
|
],
|
||
|
lately: [],
|
||
|
list: [],
|
||
|
selecompany: null,
|
||
|
page: {
|
||
|
currentPage: 1,
|
||
|
pageSize: 10,
|
||
|
index: "0",
|
||
|
params: {
|
||
|
companyType: "",
|
||
|
nameOrCid: "",
|
||
|
parentId: "",
|
||
|
parentMark: ""
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
onLoad(e) {
|
||
|
if (e.jsData) {
|
||
|
this.typeData = JSON.parse(e.jsData)
|
||
|
// if(this.typeData.type=='send'){
|
||
|
// this.getflist()
|
||
|
// }else{
|
||
|
// this.getzlist()
|
||
|
// }
|
||
|
if(this.typeData.type!=='send'){
|
||
|
console.log(this.typeData.data.companyType,'****************')
|
||
|
this.barIndex = Number(this.typeData.data.companyType)== 0?Number(this.typeData.data.companyType):Number(this.typeData.data.companyType)== 2?1:2
|
||
|
}
|
||
|
}
|
||
|
this.initFn()
|
||
|
},
|
||
|
filters: {
|
||
|
companyType(e) {
|
||
|
switch (Number(e)) {
|
||
|
case 0:
|
||
|
return 'FUEL'
|
||
|
case 1:
|
||
|
return 'OIL'
|
||
|
case 2:
|
||
|
return 'LNG'
|
||
|
case 3:
|
||
|
return 'SCR'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
async initFn() {
|
||
|
let lately = uni.getStorageSync(this.typeData.type)
|
||
|
// if (lately) {
|
||
|
// for (let i = 0; i < lately.length; i++) {
|
||
|
// console.log(lately[i])
|
||
|
// let data = {
|
||
|
// companyType:lately[i].companyType,
|
||
|
// nameOrCid: lately[i].id,
|
||
|
// parentId: lately[i].parentMark == 0 ? null: lately[i].parentId,
|
||
|
// parentMark: lately[i].parentMark == 0 ? null: 1
|
||
|
// }
|
||
|
// this.page.params = Object.assign(this.page.params, data)
|
||
|
// if (this.typeData.type == 'send') {
|
||
|
// await driverManagement.findAllByField(this.page).then(res => {
|
||
|
// if(res.code!==20000)return
|
||
|
// this.list.push(res.data.list[0])
|
||
|
// })
|
||
|
// } else {
|
||
|
// await driverManagement.findAllByField(this.page).then(res => {
|
||
|
// if(res.code!==20000)return
|
||
|
// this.list.push(res.data.list[0])
|
||
|
// })
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
if (this.typeData.type == 'send') {
|
||
|
driverManagement.findThreeDataByIds(lately?lately:[]).then(res=>{
|
||
|
if(res.code!==20000)return
|
||
|
this.list = res.data?res.data:[]
|
||
|
})
|
||
|
} else {
|
||
|
this.getzlist()
|
||
|
}
|
||
|
|
||
|
},
|
||
|
setLately(e) {
|
||
|
let lately = uni.getStorageSync(this.typeData.type) ? uni.getStorageSync(this.typeData.type) : []
|
||
|
console.log(' %c look ↓', 'color:red;font-size:50px')
|
||
|
console.log(lately)
|
||
|
if (lately.length !== 0) {
|
||
|
let open = false
|
||
|
lately.forEach(item => {
|
||
|
if (item.id == e.id) {
|
||
|
console.log(item.id == e.id)
|
||
|
open = true
|
||
|
}
|
||
|
})
|
||
|
if(!open){
|
||
|
if (lately.length == 3) {
|
||
|
lately.splice(2, 1)
|
||
|
}
|
||
|
lately.unshift(e.id)
|
||
|
uni.setStorageSync(this.typeData.type, lately)
|
||
|
}
|
||
|
} else {
|
||
|
lately.unshift(e.id)
|
||
|
uni.setStorageSync(this.typeData.type, lately)
|
||
|
}
|
||
|
|
||
|
},
|
||
|
seleFn(e) {
|
||
|
clearTimeout(this.timer)
|
||
|
this.selecompany = e
|
||
|
this.selecompany.type = this.typeData.type
|
||
|
this.setLately(e)
|
||
|
uni.$emit('company', this.selecompany)
|
||
|
this.timer = setTimeout(() => {
|
||
|
uni.navigateBack()
|
||
|
}, 200)
|
||
|
},
|
||
|
getflist() {
|
||
|
this.scrollY = true
|
||
|
let data = {
|
||
|
companyType: this.barIndex == 0 ? this.barIndex : this.barIndex == 1 ? 2 : 3,
|
||
|
nameOrCid: this.seachValue,
|
||
|
parentId: null,
|
||
|
parentMark: null
|
||
|
}
|
||
|
this.page.params = Object.assign(this.page.params, data)
|
||
|
driverManagement.findAllByField(this.page).then(res => {
|
||
|
if (res.code != 20000) return
|
||
|
if (res.data.list.length == 0) {
|
||
|
uni.showToast({
|
||
|
title: '没有数据了哦',
|
||
|
icon: 'none'
|
||
|
})
|
||
|
}
|
||
|
if (this.page.currentPage !== 1) {
|
||
|
this.list = this.list.concat(res.data.list);
|
||
|
return
|
||
|
}
|
||
|
this.list = res.data.list
|
||
|
})
|
||
|
},
|
||
|
getzlist() {
|
||
|
this.scrollY = true
|
||
|
let data = {
|
||
|
companyType:this.barIndex == 0 ? this.barIndex : this.barIndex == 1 ? 2 : 3,
|
||
|
nameOrCid: this.seachValue,
|
||
|
parentId: this.typeData.data.parentMark == 0 ? this.typeData.data.id : this.typeData.data.parentId,
|
||
|
parentMark: 1
|
||
|
}
|
||
|
this.page.params = Object.assign(this.page.params, data)
|
||
|
driverManagement.findAllByField(this.page).then(res => {
|
||
|
if (res.code != 20000) return
|
||
|
if (res.data.list.length == 0) {
|
||
|
uni.showToast({
|
||
|
title: '没有数据了哦',
|
||
|
icon: 'none'
|
||
|
})
|
||
|
}
|
||
|
if (this.page.currentPage !== 1) {
|
||
|
this.list = this.list.concat(res.data.list);
|
||
|
return
|
||
|
}
|
||
|
this.list = res.data.list
|
||
|
})
|
||
|
},
|
||
|
scrolltolower() {
|
||
|
this.page.currentPage += 1
|
||
|
if (this.typeData.type == 'send') {
|
||
|
this.getflist()
|
||
|
} else {
|
||
|
this.getzlist()
|
||
|
}
|
||
|
},
|
||
|
seachFn() {
|
||
|
this.scrollY = true
|
||
|
this.page.currentPage = 1
|
||
|
if (this.typeData.type == 'send') {
|
||
|
this.getflist()
|
||
|
} else {
|
||
|
this.getzlist()
|
||
|
}
|
||
|
|
||
|
},
|
||
|
seleBarFn(e) {
|
||
|
this.page.currentPage = 1
|
||
|
if (this.typeData.type == 'send') {
|
||
|
this.barIndex = e
|
||
|
this.getflist()
|
||
|
} else {
|
||
|
this.getzlist()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style scoped>
|
||
|
.newselecompany_container_list_identification {
|
||
|
color: #BBBBBB;
|
||
|
font-size: 48rpx;
|
||
|
position: absolute;
|
||
|
right: 0;
|
||
|
top: -21rpx;
|
||
|
font-weight: 600;
|
||
|
line-height: 56rpx;
|
||
|
}
|
||
|
|
||
|
.newselecompany_container_list_name {
|
||
|
margin-top: 21rpx;
|
||
|
font-size: 28rpx;
|
||
|
color: #666666;
|
||
|
display: flex;
|
||
|
justify-content: space-between;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
.listtext {
|
||
|
font-size: 28rpx;
|
||
|
color: #666666;
|
||
|
}
|
||
|
|
||
|
.smallText {
|
||
|
font-size: 20rpx;
|
||
|
color: #BBBBBB;
|
||
|
}
|
||
|
|
||
|
.companyDetails {
|
||
|
display: flex;
|
||
|
justify-content: space-between;
|
||
|
margin-top: 36rpx;
|
||
|
}
|
||
|
|
||
|
.newselecompany_container_list_lable {
|
||
|
font-size: 16rpx;
|
||
|
width: 80rpx;
|
||
|
height: 40rpx;
|
||
|
display: flex;
|
||
|
justify-content: center;
|
||
|
align-items: center;
|
||
|
background-color: #9F43CC;
|
||
|
color: white;
|
||
|
|
||
|
}
|
||
|
|
||
|
.newselecompany_container_list_item {
|
||
|
background-color: white;
|
||
|
padding: 0 40rpx 20rpx 40rpx;
|
||
|
border-radius: 15rpx;
|
||
|
margin-bottom: 20rpx;
|
||
|
}
|
||
|
|
||
|
.newselecompany_container_list_tip {
|
||
|
margin-top: 60rpx;
|
||
|
font-size: 28rpx;
|
||
|
color: #BBBBBB;
|
||
|
}
|
||
|
|
||
|
.newselecompany_container_list {
|
||
|
flex: 1;
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
|
||
|
.newselecompany_seach_input {
|
||
|
background-color: white;
|
||
|
overflow: hidden;
|
||
|
border-radius: 20rpx;
|
||
|
margin-top: 30rpx;
|
||
|
}
|
||
|
|
||
|
.newselecompany_seach_title {
|
||
|
font-size: 35rpx;
|
||
|
}
|
||
|
|
||
|
.newselecompany_seach {
|
||
|
background-color: #2866FF;
|
||
|
padding: 40rpx;
|
||
|
border-radius: 10px;
|
||
|
color: white;
|
||
|
margin-top: 60rpx;
|
||
|
}
|
||
|
|
||
|
.move_item {
|
||
|
position: absolute;
|
||
|
left: 10rpx;
|
||
|
width: calc((100% - 20rpx) / 3);
|
||
|
height: 60rpx;
|
||
|
background: #2866FF;
|
||
|
border-radius: 10rpx;
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: center;
|
||
|
color: #999999;
|
||
|
z-index: 0;
|
||
|
transition: all .3s;
|
||
|
}
|
||
|
|
||
|
.mar {
|
||
|
margin-left: 42rpx;
|
||
|
margin-right: 42rpx;
|
||
|
}
|
||
|
|
||
|
.sele_Bar_item {
|
||
|
/* width: 287rpx; */
|
||
|
flex: 1;
|
||
|
height: 60rpx;
|
||
|
/* background: #2866FF; */
|
||
|
border-radius: 10rpx;
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: center;
|
||
|
color: #999999;
|
||
|
z-index: 1;
|
||
|
transition: color .4s;
|
||
|
}
|
||
|
|
||
|
.sele_Bar {
|
||
|
/* background-color: #18B566; */
|
||
|
/* margin: 31rpx 40rpx; */
|
||
|
padding: 10rpx;
|
||
|
display: flex;
|
||
|
position: relative;
|
||
|
background-color: #FFFFFF;
|
||
|
border-radius: 10px;
|
||
|
}
|
||
|
|
||
|
.newselecompany_container {
|
||
|
flex: 1;
|
||
|
/* padding: 0 42rpx; */
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
|
||
|
.newselecompany_tip {
|
||
|
font-size: 48rpx;
|
||
|
color: #666666;
|
||
|
margin-top: 100rpx;
|
||
|
margin-left: 70rpx;
|
||
|
margin-bottom: 60rpx;
|
||
|
}
|
||
|
|
||
|
.newselecompany_body {
|
||
|
width: 100%;
|
||
|
height: calc(100vh - var(--status-bar-height));
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
position: relative;
|
||
|
/* overflow: hidden; */
|
||
|
}
|
||
|
</style>
|