<template> 
 | 
  <GlobalWindow 
 | 
    :title="title" 
 | 
    :visible.sync="visible" 
 | 
    :withFooter="false" 
 | 
    width="calc(100% - 250px)" 
 | 
    :confirm-working="isWorking" 
 | 
    @close="close" 
 | 
    @confirm="confirm"> 
 | 
    <div style="width: calc(100% - 32px); position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white"> 
 | 
      <div style="display: flex;background: #e4ecfe;padding: 20px"> 
 | 
        <div style="width: 60px;"> 
 | 
          <div class="home_title" v-if="info"> 
 | 
            <el-image v-if="info.fullCoverImage" style="width: 50px; height: 50px;border-radius: 50%;margin-right: 10px" :src="info.fullCoverImage" 
 | 
                      :preview-src-list="[info.fullCoverImage]"> 
 | 
            </el-image> 
 | 
            <el-image v-else style="width: 50px; height: 50px;border-radius: 50%;margin-right: 10px" src="avatar/man.png" > 
 | 
            </el-image> 
 | 
          </div> 
 | 
        </div> 
 | 
        <div style="width: calc(100% - 60px);"> 
 | 
          <div class="home_title" v-if="info"> 
 | 
            <div class="left"> 
 | 
              <span class="m10">昵称:{{info.nickName }}  <span class="ml10 bluebtn" :title="'姓名:'+(info.name||'未设置姓名')"  >({{(info.name||'未设置姓名') }})</span></span> 
 | 
              <el-tag type="primary" class="mr10 tag1">发单方</el-tag> 
 | 
              <el-tag type="success" class="mr10 tag1" v-if="info.workerIdentity == 2 || info.driverIdentity == 2 || info.chefIdentity == 2">接单方</el-tag> 
 | 
            </div> 
 | 
          </div> 
 | 
          <div class="remark" v-if="info"> 
 | 
            <el-button  class="bluebtn" icon="el-icon-phone" title="手机号"> {{info.telephone||'未设置' }}</el-button> 
 | 
            <el-button  class="yellowbtn" icon="el-icon-star-on"  title="平均评分"> {{info.score||'0' }}分</el-button> 
 | 
            <el-button  class="redbtn" icon="el-icon-coin"  title="账号余额(元)"> {{(info.amount||0).toFixed(2)}}元</el-button> 
 | 
          </div> 
 | 
        </div> 
 | 
      </div> 
 | 
      <div class="tabs"> 
 | 
        <div class="tab" :class="{ active: activeTabs === 0 }" @click="tabsClick(0)">余额明细</div> 
 | 
        <div class="tab" :class="{ active: activeTabs === 1 }" @click="tabsClick(1)">评价记录</div> 
 | 
        <div class="tab" :class="{ active: activeTabs === 2 }" @click="tabsClick(2)">认证信息</div> 
 | 
      </div> 
 | 
    </div> 
 | 
    <div class="main" v-if="activeTabs === 0 && info"> 
 | 
      <div class="title" > 
 | 
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> 
 | 
          <el-form-item label="交易流水号"  style="width: 200px;" label-width="100px" prop="transactionNo"> 
 | 
            <el-input v-model="searchForm.transactionNo" style="width: 100px"  clearable placeholder="请输入" ></el-input> 
 | 
          </el-form-item> 
 | 
          <el-form-item label="收支类型" prop="type"  style="width: 200px;" label-width="100px" > 
 | 
            <el-select v-model="searchForm.optType"  style="width: 100px"  clearable placeholder="请选择类型"  > 
 | 
              <el-option :value="1" label="收入"></el-option> 
 | 
              <el-option :value="-1" label="支出"></el-option> 
 | 
            </el-select> 
 | 
          </el-form-item> 
 | 
          <el-form-item label="收支时间" prop="eventType"  style="width: 380px;" label-width="100px" > 
 | 
            <el-date-picker type="datetime"  style="width: 120px"  v-model="searchForm.startTime" clearable value-format="yyyy-MM-dd HH:mm:ss" 
 | 
                            placeholder="开始时间" />- 
 | 
            <el-date-picker type="datetime"  style="width: 120px"  v-model="searchForm.endTime" clearable value-format="yyyy-MM-dd HH:mm:ss" 
 | 
                            placeholder="结束时间" /> 
 | 
          </el-form-item> 
 | 
          <section  style="width: 280px;display: inline-block" > 
 | 
            <el-button type="primary" @click="handleCurrentChange0(0)">搜索</el-button> 
 | 
            <el-button @click="reset0">重置</el-button> 
 | 
            <el-button type="primary" @click="exportExcel0" :loading="export0">导出</el-button> 
 | 
          </section> 
 | 
        </el-form> 
 | 
      </div> 
 | 
      <el-table 
 | 
          v-loading="isWorking.search" 
 | 
          :data="tableData.records" 
 | 
          stripe 
 | 
      > 
 | 
        <el-table-column prop="type" label="收入/支出"  width="80px" align="center" > 
 | 
          <template slot-scope="{row}"> 
 | 
            <span style="cursor: pointer;color: #3acf18" v-if="row.optType ==1">收入</span> 
 | 
            <span style="cursor: pointer;color: #a10e0e" v-else>支出</span> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
        <el-table-column prop="amountInfo" label="金额(元)" width="120px"  align="center"> 
 | 
          <template slot-scope="{row}"> 
 | 
            <span class="yellowbtn">{{ row.amountInfo || 0 }}</span> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
        <el-table-column prop="createTime" label="收支时间" min-width="150px"  align="center"></el-table-column> 
 | 
        <el-table-column prop="typeName" label="业务类型" min-width="100px"  align="center"></el-table-column> 
 | 
        <el-table-column prop="transactionNo" label="订单/交易号" min-width="100px"  align="center">  </el-table-column> 
 | 
      </el-table> 
 | 
      <el-pagination 
 | 
          @current-change="handleCurrentChange0" 
 | 
          :current-page="page0" 
 | 
          :page-size="pageSize" 
 | 
          layout="total, prev, pager, next, jumper" 
 | 
          :total="tableData.total"> 
 | 
      </el-pagination> 
 | 
    </div> 
 | 
    <div class="main"   v-if="activeTabs === 1 && info"> 
 | 
      <el-radio-group v-model="type" @change="changeType" style="margin-bottom: 20px;"> 
 | 
        <el-radio-button :label="0">收到的评价</el-radio-button> 
 | 
        <el-radio-button :label="1">发布的评价</el-radio-button> 
 | 
      </el-radio-group> 
 | 
      <el-table 
 | 
          v-loading="isWorking.search" 
 | 
          :data="tableData1.records" 
 | 
          stripe 
 | 
      > 
 | 
        <el-table-column prop="commentTime" label="评价时间" min-width="150px"  align="center"> 
 | 
          <template slot-scope="{row}"> 
 | 
            <span >{{ row.commentTime  }}</span> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
        <el-table-column prop="commentLevel" label="评分" width="120px"  align="center"> 
 | 
          <template slot-scope="{row}"> 
 | 
            <span class="yellowbtn">{{ row.commentLevel || 0 }}分</span> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
        <el-table-column prop="commentInfo" label="评价内容" min-width="100px"  align="center"></el-table-column> 
 | 
        <el-table-column prop="code" label="订单号" min-width="100px"  align="center">  </el-table-column> 
 | 
        <el-table-column prop="type" label="订单类型" min-width="100px"  align="center"> 
 | 
          <template slot-scope="{row}"> 
 | 
            <span v-if="row.type ==0" >用工单 
 | 
                <span v-if="row.workType ==0">/采摘工</span> 
 | 
                <span v-if="row.workType ==1">/分拣工</span> 
 | 
                <span v-if="row.workType ==2">/包装工</span> 
 | 
            </span> 
 | 
            <span v-if="row.type ==1" >运货单</span> 
 | 
            <span v-if="row.type ==2"  >订餐单</span> 
 | 
          </template> 
 | 
        </el-table-column> 
 | 
      </el-table> 
 | 
      <el-pagination 
 | 
          @current-change="handleCurrentChange0" 
 | 
          :current-page="page1" 
 | 
          :page-size="pageSize" 
 | 
          layout="total, prev, pager, next, jumper" 
 | 
          :total="tableData1.total"> 
 | 
      </el-pagination> 
 | 
    </div> 
 | 
    <div class="main" v-if="activeTabs === 2 && info"> 
 | 
      <div class="renzheng"   v-for="item in tableData2"> 
 | 
          <div class="info" > 
 | 
              <span class="m10" v-if="item.type ==0">用工认证</span> 
 | 
              <span class="m10" v-if="item.type ==1">货运认证</span> 
 | 
              <span class="m10" v-if="item.type ==2">供餐认证</span> 
 | 
              <el-tag type="primary" class="ml10 tag2" v-if="item.auditStatus == 1">申请中</el-tag> 
 | 
              <el-tag type="success" class="ml10 tag2" v-if="item.auditStatus == 2">认证通过</el-tag> 
 | 
              <el-tag type="danger" class="ml10 tag2" v-if="item.auditStatus == 3">认证失败</el-tag> 
 | 
          </div> 
 | 
          <div class="detail" > 
 | 
            <div class="line"> 
 | 
              <span class="label"> 认证类型:</span> <span class="txt">{{item.authType == 0? '个人':'企业' }}</span> 
 | 
              <span class="label"> 联系人:</span> <span class="txt">{{item.linkName || '' }}</span> 
 | 
              <span class="label"> 联系方式:</span> <span class="txt">{{item.telephone || '' }}</span> 
 | 
              <span class="label"> 申请时间:</span> <span class="txt">{{item.createTime || '' }}</span> 
 | 
            </div> 
 | 
            <template v-if="item.authType ==1"> 
 | 
              <div class="line"> 
 | 
                <span class="label">接单位置:</span><span class="txt">{{item.location || '' }}</span> 
 | 
                <span class="label">单位名称:</span><span class="txt">{{item.companyName || '' }}</span> 
 | 
              </div> 
 | 
              <div class="line"> <span class="label">认证资料:</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">无</span> </div> 
 | 
            </template> 
 | 
            <template v-else> 
 | 
              <div class="line"> 
 | 
                <span class="label">接单位置:</span><span class="txt">{{item.location || '' }}</span> 
 | 
              </div> 
 | 
              <div class="line"> 
 | 
                <span class="label">身份信息:</span> <span v-if="!item.imgList || item.imgList.length==0" class="txt">无</span> 
 | 
              </div> 
 | 
            </template> 
 | 
              <div class="line" v-if="item.imgList && item.imgList.length>0"> 
 | 
                <div v-for="info in item.imgList" style="display: inline-block"> 
 | 
                  <el-image v-if="info" style="width: 50px; height: 50px; margin-right: 10px" :src="info" 
 | 
                            :preview-src-list="[info]"> 
 | 
                  </el-image> 
 | 
                </div> 
 | 
              </div> 
 | 
            <div class="line" v-if="item.auditStatus == 3 || item.auditStatus == 2" :style="'background-color: '+(item.auditStatus==2?'#eff8ea':'rgb(253 226 226)')+';padding: 20px'"> 
 | 
              <span class="label"> 审核人:</span> <span class="txt">{{item.editorName}} </span><span class="label">{{item.auditTime || '' }} </span> 
 | 
              <div  style="margin-top: 20px"> <span class="label">  审核信息:</span> <span class="txt">{{item.auditRemark || '' }}</span></div> 
 | 
          </div> 
 | 
          </div> 
 | 
        </div> 
 | 
    </div> 
 | 
  </GlobalWindow> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import GlobalWindow from '@/components/common/GlobalWindow' 
 | 
import BaseOpera from '@/components/base/BaseOpera' 
 | 
import { getById } from '@/api/business/member' 
 | 
import { fetchList as yueList, exportExcel as yueExportExcel } from '@/api/business/memberRevenue' 
 | 
import { fetchList as commentList } from '@/api/business/orders' 
 | 
import { allList as renzhengList} from '@/api/business/identityInfo' 
 | 
export default { 
 | 
  components: { 
 | 
    GlobalWindow 
 | 
  }, 
 | 
  extends: BaseOpera, 
 | 
  data () { 
 | 
    return { 
 | 
      id: '', 
 | 
      visible: false, 
 | 
      activeTabs: 0, 
 | 
      type: 0, 
 | 
      info: {}, 
 | 
      pageSize: 10, 
 | 
      page: 1, 
 | 
      total: 0, 
 | 
      tableData: {}, 
 | 
      tableData1: {}, 
 | 
      tableData2:[], 
 | 
      page0: 1, 
 | 
      page1: 1, 
 | 
      loading: false, 
 | 
      export0: false, 
 | 
      searchForm: { 
 | 
        type: 0, 
 | 
        startTime: null, 
 | 
        endTime: null, 
 | 
        optType: null, 
 | 
        acceptMemberId: -1, 
 | 
        releaseMemberId: -1, 
 | 
        transactionNo: null 
 | 
      } 
 | 
    } 
 | 
  }, 
 | 
  methods: { 
 | 
    open (title, id) { 
 | 
      this.title = title 
 | 
      this.visible = true 
 | 
      this.activeTabs = 0 
 | 
      this.type = 0 
 | 
      this.page0 = 1 
 | 
      this.pageSize = 10 
 | 
      this.tableData = {} 
 | 
      this.tableData1 = {} 
 | 
      this.tableData2 = [] 
 | 
      this.id = id 
 | 
      this.searchForm = { 
 | 
        type: 0, 
 | 
        startTime: null, 
 | 
        endTime: null, 
 | 
        optType: null, 
 | 
        acceptMemberId: -1, 
 | 
        releaseMemberId: -1, 
 | 
        transactionNo: null 
 | 
      } 
 | 
      this.getData() 
 | 
    }, 
 | 
    getData () { 
 | 
      getById(this.id) 
 | 
        .then(res => { 
 | 
          this.info = res 
 | 
          this.visible = true 
 | 
          this.handleCurrentChange0(1) 
 | 
          this.changeType(0) 
 | 
          this.getRenzhengList() 
 | 
        }) 
 | 
    }, 
 | 
    exportExcel0 () { 
 | 
      this.$dialog.exportConfirm('确认导出吗?') 
 | 
        .then(() => { 
 | 
          this.export0 = true 
 | 
          yueExportExcel({ 
 | 
            page: 1, 
 | 
            capacity: 1000000, 
 | 
            model: { 
 | 
              memberId: this.info.id || -1, 
 | 
              startTime: this.searchForm.startTime, 
 | 
              endTime: this.searchForm.endTime, 
 | 
              optType: this.searchForm.optType, 
 | 
              transactionNo: this.searchForm.transactionNo 
 | 
            } 
 | 
          }).then(response => { 
 | 
            this.download(response) 
 | 
          }) 
 | 
            .catch(e => { 
 | 
              this.$tip.apiFailed(e) 
 | 
            }) 
 | 
            .finally(() => { 
 | 
              this.export0 = false 
 | 
            }) 
 | 
        }) 
 | 
        .catch(() => {}) 
 | 
    }, 
 | 
    reset0 () { 
 | 
      this.searchForm.startTime = null 
 | 
      this.searchForm.endTime = null 
 | 
      this.searchForm.optType = null 
 | 
      this.searchForm.transactionNo = null 
 | 
      this.page0 = 0 
 | 
      this.getYueList() 
 | 
    }, 
 | 
    handleCurrentChange0 (page) { 
 | 
      this.page0 = page 
 | 
      this.getYueList() 
 | 
    }, 
 | 
    handleCurrentChange1 (page) { 
 | 
      this.page1 = page 
 | 
      this.getCommentList() 
 | 
    }, 
 | 
    getYueList () { 
 | 
      this.loading = true 
 | 
      yueList({ 
 | 
        capacity: this.pageSize, 
 | 
        page: this.page0, 
 | 
        model: { 
 | 
          memberId: this.info.id || -1, 
 | 
          startTime: this.searchForm.startTime, 
 | 
          endTime: this.searchForm.endTime, 
 | 
          optType: this.searchForm.optType, 
 | 
          transactionNo: this.searchForm.transactionNo 
 | 
        } 
 | 
      }).then(res => { 
 | 
        this.loading = false 
 | 
        this.tableData = res 
 | 
        console.log(this.tableData) 
 | 
      }).catch(e => { 
 | 
        this.$tip.apiFailed(e) 
 | 
      }).finally(() => { 
 | 
        this.loading = false 
 | 
      }) 
 | 
    }, 
 | 
    getCommentList () { 
 | 
      this.loading = true 
 | 
      commentList({ 
 | 
        capacity: this.pageSize, 
 | 
        page: this.page1, 
 | 
        model: { 
 | 
          acceptMemberId: this.searchForm.acceptMemberId, 
 | 
          releaseMemberId: this.searchForm.releaseMemberId, 
 | 
          commentStatus: 1 
 | 
        } 
 | 
      }).then(res => { 
 | 
        this.loading = false 
 | 
        this.tableData1 = res 
 | 
        console.log(this.tableData1) 
 | 
      }).catch(e => { 
 | 
        this.$tip.apiFailed(e) 
 | 
      }).finally(() => { 
 | 
        this.loading = false 
 | 
      }) 
 | 
    }, 
 | 
    close () { 
 | 
  
 | 
    }, 
 | 
    getRenzhengList () { 
 | 
      this.loading = true 
 | 
      renzhengList({ 
 | 
        memberId: this.id || -1 
 | 
      }).then(res => { 
 | 
        this.loading = false 
 | 
        this.tableData2 = res 
 | 
      }).catch(e => { 
 | 
        this.$tip.apiFailed(e) 
 | 
      }).finally(() => { 
 | 
        this.loading = false 
 | 
      }) 
 | 
    }, 
 | 
    changeType (e) { 
 | 
      this.searchForm.acceptMemberId = -1 
 | 
      this.searchForm.releaseMemberId = -1 
 | 
      if (e == 0) { 
 | 
        this.searchForm.releaseMemberId = this.info.id || -1 
 | 
        this.searchForm.acceptMemberId = null 
 | 
      } else { 
 | 
        this.searchForm.acceptMemberId = this.info.id || -1 
 | 
        this.searchForm.releaseMemberId =null 
 | 
      } 
 | 
      this.page1 = 1 
 | 
      this.tableData1 = {} 
 | 
      this.handleCurrentChange1(0) 
 | 
    }, 
 | 
    tabsClick (val) { 
 | 
      this.activeTabs = val 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
@import '@/assets/style/variables.scss'; 
 | 
.renzheng{ 
 | 
  margin: 0px 0px 50px 20px; 
 | 
  width: calc(100% - 60px); 
 | 
  .detail{ 
 | 
    font-size: 14px; 
 | 
    .label{ 
 | 
      color: #8c939d; 
 | 
    } 
 | 
    .txt{ 
 | 
      margin-right: 30px; 
 | 
    } 
 | 
    .line{ 
 | 
      margin-top: 15px; 
 | 
    } 
 | 
  } 
 | 
  .ml10{ 
 | 
    margin-left: 10px; 
 | 
  } 
 | 
  .info{ 
 | 
    font-size: 14px; 
 | 
    font-weight: bold; 
 | 
  } 
 | 
  .tag2{ 
 | 
    font-size: 12px; 
 | 
  } 
 | 
} 
 | 
.home_title { 
 | 
  .mr10{ 
 | 
    margin-right: 10px; 
 | 
  } 
 | 
  .m10{ 
 | 
    margin: 10px; 
 | 
  } 
 | 
  .bluebtn{ 
 | 
    color: #2985f7; 
 | 
  } 
 | 
  .tag1{ 
 | 
    border-radius: 10px; 
 | 
    font-size: 10px; 
 | 
    padding: 0px 15px; 
 | 
    height: 24px; 
 | 
  } 
 | 
  display: flex; 
 | 
  justify-content: space-between; 
 | 
  align-items: center; 
 | 
  .left { 
 | 
    font-weight: 500; 
 | 
    font-size: 14px; 
 | 
    margin-right: 10px; 
 | 
    display: flex; 
 | 
    align-items: center; 
 | 
    .status { 
 | 
      padding: 0 6px; 
 | 
      height: 22px; 
 | 
      line-height: 22px; 
 | 
      border-radius: 2px; 
 | 
      border: 1px solid #00BA92; 
 | 
      color: #00BA92; 
 | 
      font-weight: 400; 
 | 
      font-size: 12px; 
 | 
      color: #00BA92; 
 | 
    } 
 | 
  } 
 | 
} 
 | 
.tab{ 
 | 
  width: 20%; 
 | 
} 
 | 
.remark { 
 | 
  //background: #E8EBF7; 
 | 
  border-radius: 2px; 
 | 
  font-size: 14px; 
 | 
  margin: 10px 10px 0px -10px; 
 | 
  button{ 
 | 
    border: none; 
 | 
    cursor: default; 
 | 
    margin-right: 20px; 
 | 
    background: #e4ecfe; 
 | 
  } 
 | 
} 
 | 
.bluebtn{ 
 | 
  font-weight: bold; 
 | 
  color: #2985f7; 
 | 
} 
 | 
  
 | 
.redbtn{ 
 | 
  font-weight: bold; 
 | 
  color: #ff1b1b; 
 | 
} 
 | 
.yellowbtn{ 
 | 
  font-weight: bold; 
 | 
  color: #fc9d20; 
 | 
} 
 | 
  
 | 
.tabs { 
 | 
  border-bottom: 1px solid #DFE2E8; 
 | 
  display: flex; 
 | 
  margin-bottom: 20px; 
 | 
  .tab { 
 | 
    height: 58px; 
 | 
    line-height: 58px; 
 | 
    font-size: 14px; 
 | 
    color: #666666; 
 | 
    margin-right: 30px; 
 | 
    cursor: pointer; 
 | 
  } 
 | 
  
 | 
  .active { 
 | 
    font-weight: 500; 
 | 
    color: $primary-color; 
 | 
    border-bottom: 2px solid $primary-color; 
 | 
  } 
 | 
} 
 | 
  
 | 
.main { 
 | 
  padding: 12px 16px; 
 | 
  .title { 
 | 
    font-weight: 500; 
 | 
    font-size: 12px; 
 | 
    color: $primary-color; 
 | 
    margin-bottom: 15px; 
 | 
  } 
 | 
  /deep/ .el-form-item__label{ 
 | 
    font-size: 12px; 
 | 
  } 
 | 
  .list { 
 | 
    display: flex; 
 | 
    flex-wrap: wrap; 
 | 
    /*background: #F7F7F7;*/ 
 | 
    border-radius: 2px; 
 | 
    /*padding: 15px 20px;*/ 
 | 
    margin-bottom: 20px; 
 | 
  
 | 
    .item { 
 | 
      font-size: 14px; 
 | 
      width: 25%; 
 | 
      margin-bottom: 16px; 
 | 
  
 | 
      .la { 
 | 
        color: #7f7f7f; 
 | 
        margin-bottom: 10px; 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
} 
 | 
  
 | 
/deep/ .window__body { 
 | 
  padding: 0px !important; 
 | 
} 
 | 
</style> 
 |