<template>
  <div class="page-body myOrder">
    <div style="width: 100%;display: flex;justify-content: space-between">
      <span style="font-size: 20px;font-weight: 400; ">留学就业统计</span>
      <div style="display: flex;align-items: center;">
        <span>
          <q-toggle v-model="msg.Q_NotCollect" label="只看款未收齐订单" class="q-mb-md" false-value="0" true-value="1"
            @input="resetSearch" /></span>
            <div class="page-option" style="margin-left: 10px;">
              <q-btn color="accent" size="sm" class="q-mr-md"  label="导出" @click="goexport()" />
            </div>
      </div>
      
    </div>
    <div class="page-search row items-center">
      <div class="col row wrap q-mr-lg q-col-gutter-md">
        <div class="col-3">
          <q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.OrderId" label="订单号"
            @clear="resetSearch" maxlength="10" />
        </div>
        <div class="col-3">
          <q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.GuestName" label="客户名称"
            @clear="resetSearch" maxlength="20" />
        </div>
        <div class="col-3">
          <q-select @input="msg.OrderState==0?(msg.Q_OrderState = 1):msg.Q_OrderState=0,resetSearch()" standout="bg-primary text-white" option-value="Id" option-label="Name"
            v-model="msg.OrderState" :options="OrderStateList" emit-value map-options label="订单状态" />
        </div>
        <div class="col-3">
          <q-field filled>
             <template v-slot:control>
              <el-date-picker v-model="dateList" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
                 range-separator="至"  start-placeholder="报名开始时间"  end-placeholder="报名结束时间">
                 </el-date-picker>       
            </template>
          </q-field>
        </div>
        <div class="col-3">
          <q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="EmployeeName"
            v-model="msg.EnterID" :options="EmployeeList" emit-value map-options label="业务员" />
        </div>
      </div>
    </div>
    <div class="col row wrap q-gutter-x-md" v-if="data.Statistics">
      <div class="col stics">
        <span class="stics-name">应收款</span>
        <span>{{data.Statistics.PreferPrice?data.Statistics.PreferPrice:0}}</span>
      </div>
      <div class="col stics">
        <span class="stics-name">实收款</span>
        <span>{{data.Statistics.Income}}</span>
      </div>
      <div class="col stics">
        <span class="stics-name">待收款</span>
        <span style="color: #F72E52">{{data.Statistics.DueInMoney}}</span>
      </div>
      <div class="col stics">
        <span class="stics-name">收客人数</span>
        <span style="color:#2961FE;">{{data.Statistics.GuestNum}}人</span>
      </div>
      <div class="col stics">
        <span class="stics-name">取消人数</span>
        <span>{{data.Statistics.CancelNum}}人</span>
      </div>
      <div class="col stics">
        <span class="stics-name">提成金额</span>
        <span>{{data.Statistics.CommissionMoney}}</span>
      </div>
      <div class="col stics">
        <span class="stics-name">额外奖励</span>
        <span>{{data.Statistics.ExtraRewardMoney}}</span>
      </div>
    </div>
    <div class="row col" style="justify-content: flex-end">
      <div class="row tis">
        <div class="tis-k" style="background: #2961FE"></div>
        <span>已打单</span>
      </div>
      <div class="row tis">
        <div class="tis-k" style="background: #02C499"></div>
        <span>平台出纳已审核</span>
      </div>
      <div class="row tis">
        <div class="tis-k" style="background: #F28C1D"></div>
        <span>银行出纳已审核</span>
      </div>
      <div class="row tis">
        <div class="tis-k" style="background: #3FC4FF"></div>
        <span>已通过</span>
      </div>
    </div>
    <div class="page-content">
      <orderlist :dataList="data.List" :authObj="authObj" :modityOrderType="3" @success="refreshClassOrder" ref="orderL">
      </orderlist>
      <div class="row" style="justify-content: flex-end;padding: 5px 20px">
        <q-pagination v-model="msg.pageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
          color="primary" :input="true">
        </q-pagination>
      </div>
    </div>
    <classinfo-form v-if="isShowClassInfo" :seting-obj="classObjOption" @close="closeClass"
      @success="refreshClassOrder">
    </classinfo-form>
  </div>
</template>
<script>
  import {
    getMyStudyOrderStatisticsPageList, //获取订单列表
    getOrderStateEnumList //订单状态
  } from '../../api/sale/sale';
  import {
    queryCourseDropdownList,
  } from '../../api/course/index'
  import myOrderForm from '../../components/sale/myOrder-form'
  import classinfoForm from '../../components/course/classinfo-form';
  import orderlist from '../../components/sale/orderlist'
  import {
    queryEmployee
  } from '../../api/users/user'
  import {
        EduDownLoad,
    } from '../../api/common/common';
  export default {
    meta: {
      title: "留学就业统计"
    },
    components: {
      myOrderForm,
      classinfoForm,
      orderlist
    },
    data() {
      return {
        dialog: false,
        data: {},
        loading: false,
        dateList: [], //报名时间
        dateList2: [], //开班时间
        msg: {
          pageIndex: 1,
          pageSize: 8,
          OrderId: '', //订单号
          GuestName: '', //客人名称
          ClassName: '', //班级名称
          CouseId: 0, //课程id
          StartTime: '', //报名开始时间
          EndTime: '', //报名结束时间
          OPStartTime: '', //开班开始时间
          OPEndTime: '', //开班结束时间
          Q_NotCollect: '0', //查询未收齐 1是 0否
          OrderState: 0, //订单状态 枚举
          Q_OrderState: 1, //查询 1正常订单 2取消订单 (默认传1 如果 选择了订单状态 则传 0)
          Q_OrderBy: 2, //写死 =2
          PlatformTax: 0, //平台税金
          EnterID: "", //业务员id
        },
        //订单状态
        OrderStateList: [],
        pageCount: 0,
        CourseList: [], //关联课程下拉数据
        classObjOption: null,
        isShowClassInfo: false, //是否显示课程信息
        showone: false,
        //权限判断
        authObj: {
          isShowGuestBtn: 0, //显示新增学员名单按钮
          isShowFinanceBtn: false, //显示财务单据按钮
          isShowTransOrder: false, //显示转交订单按钮
          isShowSaleRemark: false, //显示修改销售备注
          isShowBackClass: false, //显示退课按钮
          isShowRenewClass: false, //显示续课按钮
          isShowEdit:false,//不显示修改按钮
          isShowBackClass:false,//不显示退课
          isShowRenewClass:false,//不显示续课
        },
        EmployeeList: [], //业务员

      }
    },
    created() {
      if (this.$route.query.OrderId) {
        this.msg.OrderId = this.$route.query.OrderId;
      }
      this.getOrderState();
      this.getCourseList();
    },
    mounted() {
      this.getList();
      this.getEmployee(0);
    },
    methods: {
      //订单状态
      getOrderState() {
        getOrderStateEnumList({}).then(res => {
          if (res.Code == 1) {
            var tempArray = res.Data;
            if (!tempArray) {
              tempArray = [];
            }
            tempArray.unshift({
              Id: 0,
              Name: "不限"
            })
            this.OrderStateList = tempArray;
          }
        })
      },
      //获取课程
      getCourseList() {
        queryCourseDropdownList({}).then(res => {
          if (res.Code == 1) {
            var tempArray = res.Data;
            if (!tempArray) {
              tempArray = [];
            }
            tempArray.unshift({
              CourseId: 0,
              CourseName: "不限"
            })
            this.CourseList = tempArray;
          }
        })
      },
      //翻页
      changePage(val) {
        if (this.showone == true) {
          this.msg.pageIndex = val;
          this.getList()
        } else {
          this.showone = true
        }
      },
      resetSearch() {
        this.msg.pageIndex = 1;
        this.getList()
      },
      //获取菜单分页列表
      getList() {
        if (this.dateList && this.dateList.length > 0) {
          this.msg.StartTime = this.dateList[0];
          this.msg.EndTime = this.dateList[1];
        } else {
          this.msg.StartTime = '';
          this.msg.EndTime = '';
        }
        if (this.dateList2 && this.dateList2.length > 0) {
          this.msg.OPStartTime = this.dateList2[0];
          this.msg.OPEndTime = this.dateList2[1];
        } else {
          this.msg.OPStartTime = '';
          this.msg.OPEndTime = '';
        }
        let msg = JSON.parse(JSON.stringify(this.msg));
        if (msg.OrderId == '' || msg.OrderId == null) {
          msg.OrderId = 0
        }
        this.loading = true;
        getMyStudyOrderStatisticsPageList(msg).then(res => {
          this.data = res.Data.PageData;
          let OrderIds = []
          this.data.List.forEach(x => {
            OrderIds.push(x.OrderId)
          })
          this.loading = false
          OrderIds = OrderIds.join(',')
          if (this.data.List.length > 0) {
            this.$refs.orderL.getOrderFinanceList(OrderIds, 1)
          }
          this.pageCount = res.Data.PageCount;
        }).catch(() => {
          this.loading = false
        })
      },
      //刷新页面
      refreshClassOrder() {
        this.getList();
      },
      getClassInfo(obj) { //打开班级详情组件
        this.classObjOption = obj;
        this.isShowClassInfo = true;
      },
      //关闭班级信息弹窗
      closeClass() {
        this.isShowClassInfo = false;
      },
      //业务员
      getEmployee(id) {
        var qMsg = {
          Dept_Id: 0
        }
        qMsg.Dept_Id = id;
        queryEmployee(qMsg).then(res => {
          if (res.Code == 1) {
            this.EmployeeList = res.Data;
            let obj = {
              Id: "",
              EmployeeName: "不限"
            }
            this.EmployeeList.unshift(obj)
          }
        }).catch(() => {

        })
      },
      goexport(){//导出
        var msg = JSON.parse(JSON.stringify(this.msg));
            EduDownLoad("/order/GetStudyOrderPageListStatisticsToExcel", msg, "留学就业统计.xls")
      }
    }
  }

</script>
<style>
  li {
    list-style-type: none;
  }

  .myOrder ul {
    padding: 0px
  }

  .myOrder .price-popup {
    border-radius: 4px;
  }

  .myOrder .el-range-editor .el-range-input {
    background: transparent;
  }

  .myOrder .el-range-editor.el-input__inner {
    background-color: transparent;
  }

  .myOrder .q-mb-md {
    margin-bottom: 0;
  }

  .myOrder .stics {
    padding: 10px 20px;
    background: #DDDEE0;
    border-radius: 4px;
    font-size: 14px;
    color: #000000;
    font-weight: bold
  }

  .myOrder .stics .stics-name {
    color: #2D2D2D;
    font-weight: 600;
    margin-right: 10px
  }

  .myOrder .tis {
    margin: 10px 0;
    align-items: center
  }

  .myOrder .tis .tis-k {
    width: 10px;
    height: 10px;
    margin-right: 8px
  }

  .myOrder .tis span {
    font-size: 14px;
    color: #2D2D2D;
    font-weight: 600;
    margin-right: 20px
  }

</style>
