| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <template>
- <view class="page">
- <uni-nav-bar :fixed="true" background-color="#FFE05C" :border="false" :statusBar="true" left-icon="left" title="我的业绩" @clickLeft="back" />
- <view class=" tabs ">
- <u-tabs :list="tabList" :scrollable="false" lineWidth="30" lineColor="#FFE05C" :activeStyle="{color: '#333333',fontWeight: 'bold',transform: 'scale(1.05)'}" :current="tabIndex" @click="clickTab"></u-tabs>
- </view>
- <view class="flex-col justify-between" style="margin-top: 20rpx">
- <view v-if="tabIndex == 0" class="flex-row justify-start">
- <view class="flex-col justify-center">
- <text class="selectParam">时间:</text>
- </view>
- <view @click="openDate(1)">
- <u-input v-model="selectStartDate" class="selectParamInput" readonly placeholder="开始时间"></u-input>
- </view>
- <view class="flex-col justify-center">
- <text class="selectParam" style="margin-left: 10rpx">-</text>
- </view>
- <view @click="openDate(2)">
- <u-input v-model="selectEndDate" class="selectParamInput" readonly placeholder="结束时间"></u-input>
- </view>
- </view>
- <view class="flex-row justify-start" style="margin-top: 10rpx;">
- <view class="flex-col justify-center">
- <text class="selectParam">项目:</text>
- </view>
- <view @click="openServicePro">
- <u-input v-model="selectServiceName" class="selectParamInput" readonly placeholder="选择服务项目" ></u-input>
- </view>
- <view class="flex-col justify-center" style="margin-left: 10rpx;">
- <u-button text="清空" type="primary" size="mini" @click="cancelParam"></u-button>
- </view>
- </view>
- </view>
- <!-- 订单列表 -->
- <view :style="{'height':windowHeight}">
- <swiper :style="{'height':windowHeight}" :current="tabIndex" @change="swiperChange">
- <swiper-item class="swiperItem" v-for="(item,index) in tabList" :key="index">
- <view>
- <mescroll-item ref="MescrollItem" :i="index" :index="tabIndex" :tabs="tabList" :height="windowHeight" :selectStartDate="selectStartDate" :selectEndDate="selectEndDate" :selectServiceId="selectServiceId" >
- </mescroll-item>
- </view>
- </swiper-item>
- </swiper>
- </view>
- <u-picker title="服务项目" :show="openServiceProShow" :closeOnClickOverlay="true" :columns="serviceList" :keyName="'serviceName'" @cancel="openServiceProCancel" @confirm="openServiceProConfirm"></u-picker>
- <u-datetime-picker title="服务时间" :show="openDateShow" :closeOnClickOverlay="true" mode="date" @cancel="openDateCancel" @confirm="openDateConfirm"></u-datetime-picker>
- </view>
- </template>
- <script>
- import MescrollItem from "./module/mescrollUni-item.vue";
- export default {
- components: {
- MescrollItem
- },
- data() {
- return {
- tabIndex: 0,
- tabList: [{
- name: '累计服务'
- }, {
- name: '今日业绩'
- }, {
- name: '本月业绩'
- }],
- dateType:1,
- selectStartDate:null,
- selectEndDate:null,
- selectServiceId:null,
- selectServiceName:null,
- windowHeight:'',
- serviceList:[],
- openServiceProShow:false,
- openDateShow:false
- }
- },
- onLoad(e) {
- this.tabIndex = e.index*1
- this.serviceProjectList()
- let sysInfo = uni.getSystemInfoSync()
- if (this.tabIndex == 0){
- this.windowHeight = sysInfo.windowHeight - 74 - 130 + 'px' //除标题栏栏外的屏幕可用高度
- }else {
- this.windowHeight = sysInfo.windowHeight - 74 - 90 + 'px' //除标题栏栏外的屏幕可用高度
- }
- },
- methods: {
- cancelParam(){
- this.selectStartDate = null
- this.selectEndDate = null
- this.selectServiceId = null
- this.selectServiceName = null
- setTimeout(()=>{
- this.$refs.MescrollItem[this.tabIndex].downCallback()
- },100)
- },
- openDate(dateType){
- this.dateType = dateType;
- this.openDateShow = true
- },
- openDateCancel(){
- this.openDateShow = false
- },
- openDateConfirm(e){
- console.log(e)
- const timeFormat = uni.$u.timeFormat;
- if (this.dateType == 1){
- this.selectStartDate = timeFormat(e.value, 'yyyy-mm-dd')
- }
- if (this.dateType == 2){
- this.selectEndDate = timeFormat(e.value, 'yyyy-mm-dd')
- }
- this.openDateShow = false
- setTimeout(()=>{
- this.$refs.MescrollItem[this.tabIndex].downCallback()
- },100)
- },
- openServicePro(){
- console.log('openServicePro')
- this.openServiceProShow = true
- },
- openServiceProCancel(){
- this.openServiceProShow = false
- },
- openServiceProConfirm(e){
- console.log(e)
- this.openServiceProShow = false
- this.selectServiceId = e.value[0].id
- this.selectServiceName = e.value[0].serviceName
- console.log('++++++++++++++this.$refs+++++++++++++',this.$refs);
- setTimeout(()=>{
- this.$refs.MescrollItem[this.tabIndex].downCallback()
- },100)
- },
- serviceProjectList(){
- this.serviceList = [];
- this.$api.service.serviceProjectList().then(res => {
- this.$set(this.serviceList,0, res.data.data)
- })
- },
- back() {
- uni.navigateBack({
- delta: 1
- })
- },
- clickTab(e) {
- this.selectStartDate = null
- this.selectEndDate = null
- this.selectServiceId = null
- this.selectServiceName = null
- this.tabIndex = e.index
- },
- swiperChange(e) {
- this.tabIndex = e.detail.current
- },
- }
- }
- </script>
- <style scoped lang="scss">
- @import './index.rpx.css';
- </style>
|