hls_crm/pagesA/business/screen.vue

233 lines
6.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="">
<uni-popup ref="popup" type="top" background-color="#fff">
<scroll-view scroll-y class="scrollbox" style="height:600rpx;background:#fff;" >
<!--筛选模块 -->
<view class="screen_content" @tap.stop.prevent>
<view class="fir_li">
<view class="li_label">关联客户</view>
<view class="li_box" @click="toSelectCustomer">
<view class="form_right" style="text-align: center;">
<view :class="customerObj.id ? 'valueActive' : ''">
{{customerObj.id ? customerObj.name : '点击选择'}}
</view>
<view class="iconfont icon-arrows_right"></view>
</view>
</view>
</view>
<view class="fir_li">
<view class="li_label">归属人</view>
<view class="li_box" @click="toSelectStaff">
<view class="form_right">
<view :class="staffObj.id ? 'valueactive' : '' ">
{{staffObj.id ? staffObj.name : '点击选择'}}</view>
<view class="iconfont icon-arrows_right"></view>
</view>
</view>
</view>
<view class="fir_li">
<view class="li_label">成交状态</view>
<view class="li_box">
<picker @change="changeStatus" :range="statusArr" :value="statusIndex" :range-key="'name'">
<view class="form_right">
<view style="flex:1;text-align: center;"
:class="statusArr[statusIndex] ? 'valueactive' : '' ">{{statusArr[statusIndex] ? statusArr[statusIndex].name : '成交状态'}}
</view>
</view>
</picker>
</view>
</view>
<view class="fir_li">
<view class="li_label">时间筛选</view>
<view class="li_box" style="display: flex;">
<picker @change="changeStartTime" mode="date" :end="end_time"
style="width:50%;border-right:1rpx solid #CCCCCC">
<view class="form_right">
<view style="flex:1;text-align: center;"
:class="start_time ? 'valueactive' : '' ">
{{start_time ? start_time : '开始时间'}}</view>
</view>
</picker>
<picker @change="changeEndTime" mode="date" :start="start_time" style="width:50%">
<view class="form_right">
<view style="flex:1;text-align: center;"
:class="end_time ? 'valueactive' : '' ">{{end_time ? end_time : '结束时间'}}
</view>
</view>
</picker>
</view>
</view>
<search-item v-for="(item,index) in searchForm" :key="index" :objInfo="item" @changeSearchData="changeSearchData"></search-item>
</view>
</scroll-view>
<view class="button_bottom">
<view @tap.stop="reset">重置</view>
<view @tap.stop="sureQuery">确定</view>
</view>
</uni-popup>
<select-customer ref="customerChild" @getCustomerinfo="getCustomerinfo"></select-customer>
<select-staff ref="staffChild" @sureStaff="sureStaff"></select-staff>
</view>
</template>
<script>
import selectCustomer from '@/components/selectCustomer.vue'
import selectStaff from '@/components/selectStaff.vue'
import searchItem from '@/components/search/searchitem.vue'
export default{
components:{
selectCustomer,
selectStaff,
searchItem
},
props:{
searchForm:{
type:Array,
default:[]
}
},
data() {
return{
times:'',
staffObj:{},
customerObj:{},
start_time:'',
end_time:'',
showIndex:1,
contract_status:null, //1未成交 2成交
statusArr:[
{id:1,name:'未成交'},
{id:2,name:'已成交'}
],
statusIndex:null,
}
},
methods:{
init(obj) {
this.$refs.popup.open()
if(obj.timeArr && obj.timeArr.length!=0 && this.showIndex == 1){
this.start_time = obj.timeArr[0]
this.end_time = obj.timeArr[1]
}
this.statusIndex = obj.statusIndex
},
close() {
this.$refs.popup.close()
},
changeStatus(e) {
this.statusIndex = e.detail.value
},
toSelectCustomer() {
this.$refs.customerChild.init()
},
getCustomerinfo(obj) {
this.customerObj = obj
},
//选择归属人
toSelectStaff() {
this.$refs.staffChild.init()
},
sureStaff(obj) {
this.staffObj = obj
},
changeStartTime(e) {
this.showIndex = 2
this.start_time = e.detail.value
if(!this.end_time){
this.end_time = e.detail.value
}
},
changeEndTime(e) {
this.showIndex = 2
this.end_time = e.detail.value
if(!this.start_time){
this.start_time = e.detail.value
}
},
changeSearchData(type,key,value){
this.$emit('changeSearchData',type,key,value)
},
reset() {
this.customerObj = {}
this.staffObj = {}
this.start_time = ''
this.end_time = ''
this.statusIndex = null
this.$emit('resetForm')
},
sureQuery() {
let params = {
createtime:(this.start_time && this.end_time) ? (this.start_time + ',' + this.end_time) : '',
customer_id:this.customerObj.id?this.customerObj.id:'',
staff_id:this.staffObj.id?this.staffObj.id:'',
contract_status:this.statusArr[this.statusIndex]?this.statusArr[this.statusIndex].id:'',
}
this.close()
this.$emit('sureParams',params)
}
}
}
</script>
<style lang="scss" scoped>
.screen_content {
width:702rpx;
z-index: 2;
border-top:1rpx solid #CCCCCC;
background-color: #fff;
padding:24rpx;
.fir_li{
margin-bottom:20rpx;
.li_label{
font-size:28rpx;
color:#333333;
margin-bottom:15rpx;
}
.li_box{
border-radius: 15rpx;
border:1rpx solid #CCCCCC;
height:60rpx;
padding:0 35rpx;
line-height: 60rpx;
}
.form_right {
display: flex;
justify-content: space-between;
color:#999;
image {
width: 40rpx;
height: 40rpx;
margin: 28rpx 5rpx 0 0;
}
.rightinput{
height:60rpx;
line-height: 60rpx;
width:100%;
}
}
}
}
.button_bottom {
display: flex;
width: 100%;
height: 90rpx;
background-color: #fff;
line-height: 90rpx;
text-align: center;
font-size: 32rpx;
:first-child {
flex: 1;
color: $uni-text-color;
border-top:1rpx solid #CCCCCC;
}
:last-child {
flex: 1;
background-color: $uni-text-color;
color: #fff;
}
}
</style>