<template>
  <div class="app-container">
    <div class="title">{{ vote.pingceName }}</div>
    <div class="title" style="font-size: 22px">{{ vote.voteTitle }}</div>
    <div class="time">时间：{{ vote.sTime }} - {{ vote.eTime }}</div>
    <div class="time" v-if="vote.khitemTypeid===1 && vote.umax">评优最大值为 {{ vote.umax }}</div>
    <div class="des">{{ vote.vDescription }}</div>
    <el-row :gutter="10" class="tou_piao" v-if="vote.khitemTypeid===2||vote.khitemTypeid===3">
      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-for="item in voteList">
        <div class="tou_piao_item">
          <div>
            {{ item.bkhdxName }}
            <el-link type="primary" @click="goPage(item)" icon="el-icon-view"></el-link>
          </div>
          <div class="_desc">参与评分 {{ item.voteNum!==null?item.voteNum: ''}} 人 </div>
          <div class="_desc">均值：{{ item.avgScore!==null?item.avgScore: '' }} </div>
          <div>
            <el-input-number v-model="item.score" :max="vote.maxNum"></el-input-number>
          </div>
        </div>
      </el-col>
    </el-row>

    <el-row :gutter="10" class="tou_piao" v-if="vote.khitemTypeid===1">
      <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-for="item in voteList">
        <div class="tou_piao_item">
          <div>
            {{ item.bkhdxName }}
            <el-link type="primary" @click="goPage(item)" icon="el-icon-view"></el-link>
          </div>
          <div class="_desc">参与评分 {{ item.voteNum!==null?item.voteNum: ''}} 人 </div>
          <div class="_desc">均值：{{ item.avgScore!==null?item.avgScore: '' }} </div>
          <div>
            <el-radio-group v-model="item.option" size="mini">
              <el-radio label="optionA">优秀</el-radio>
              <el-radio label="optionB">合格</el-radio>
              <el-radio label="optionC">基本合格</el-radio>
              <el-radio label="optionD">不合格</el-radio>
            </el-radio-group>
          </div>
        </div>
      </el-col>
    </el-row>

    <div style="text-align: center; margin-top: 40px;">
      <el-button type="primary" icon="el-icon-s-promotion" @click="VoteSubmit" v-hasPermi="['kaohe:vote_emp:edit']">提交评分</el-button>
    </div>

    <!-- 详情对话框 -->
    <el-dialog :title="uploadFJ.title" :visible.sync="uploadFJ.open" width="800px" append-to-body>

      <el-row :gutter="20" v-if="vote.bkhdxType==='0'">
        <el-col :span="24">
          <span>部门名称：</span><span>{{ detail.deptName }}</span>
        </el-col>
      </el-row>

      <el-row :gutter="20" v-if="vote.bkhdxType==='1'">
        <el-col :span="8">
          <span>工号：</span><span>{{ detail.wordId }}</span>
        </el-col>
        <el-col :span="8">
          <span>职工姓名：</span><span>{{ detail.empName }}</span>
        </el-col>
        <el-col :span="8">
          <span>部门名称：</span><span>{{ detail.deptName }}</span>
        </el-col>
      </el-row>

      <el-row class="mt20" :gutter="20" v-for="item in uploadFJ.docDiscripList">
        <el-col :span="24">
          <span>附件主题：</span><span>{{ item.title }}</span>
        </el-col>
        <el-col class="mt5" :span="24">
          <span>附件简介：</span><span>{{ item.docDiscrip }}</span>
        </el-col>
      </el-row>

      <el-card style="margin-bottom: 10px;">
        <div slot="header">
          <span>附件</span>
        </div>
        <div v-for="(item,index) in uploadFJ.fileList" :key="item.url" class="yy_fj_list">
          <a :href="item.url" :download="item.name" target="_blank">{{ item.name }}</a>
        </div>
      </el-card>
      <div slot="footer" class="dialog-footer">
        <el-button @click="uploadFJ.open = false">取 消</el-button>
      </div>
    </el-dialog>

  </div>
</template>

<script>
import { getVote } from "@/api/kaohe/vote"
import { listVote_emp, VoteEmpSubmit } from "@/api/kaohe/vote_emp"
import { getEmployee } from "@/api/kaohe/employee";
import { getDept } from "@/api/system/dept"

export default {
  name: "votepage",
  data() {
    return {
      vote: {},
      loading: null,
      voteList: [],
      // 附件详情参数
      uploadFJ: {
        // 是否显示弹出层
        open: false,
        // 标题
        title: '',
        // 附件上传
        fileList: [],
        // 附件上传
        docDiscripList: []
      },
      // 修改内容行
      detail: {},
    }
  },
  created() {
    this.getVote();
  },
  methods: {
    getVote(){
      this.loading = this.$loading({
        lock: true,
        text: 'Loading',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.7)'
      });
      getVote(this.$route.query.id).then(response => {
        this.vote = response.data;
        this.getList();
      })
    },
    /** 查询投票评测列表 */
    getList() {
      listVote_emp({
        voteId: this.$route.query.id,
        pageNum: 1,
        pageSize: 10000000,
      }).then(response => {
        this.voteList = response.rows;
        this.loading.close()
      })
    },
    VoteSubmit(){
      let voteEmpList = [];
      let flag = true;
      let bkhdxName = '';
      let pyA = 0
      if(this.vote.khitemTypeid===2 || this.vote.khitemTypeid===3){
        this.voteList.forEach(item => {
          voteEmpList.push({
            id: item.id,
            bkhdxName: item.bkhdxName,
            score: item.score,
          })
        })
      }
      if(this.vote.khitemTypeid===1){
        this.voteList.forEach(item => {
          let obj = {
            id: item.id,
            bkhdxName: item.bkhdxName,
            optionA: 0,
            optionB: 0,
            optionC: 0,
            optionD: 0,
          }
          if(item.option){
            obj[item.option] = 1;
          }else {
            flag = false;
            bkhdxName += item.bkhdxName+'，'
          }
          if(item.option&&item.option==='optionA'){
            pyA += 1;
          }
          voteEmpList.push(obj);
        });
        bkhdxName=bkhdxName.slice(0, -1);
      }

      if(pyA>this.vote.umax){
        flag = false;
        this.$alert(`评优数量不能超过评优最大值！`, `提示`, {
          type: 'Danger'
        })
      }
      if(flag){
        if(new Date(this.vote.eTime) > (new Date())){
          VoteEmpSubmit({
            khitemTypeid : this.vote.khitemTypeid,
            voteId : this.vote.id,
            userId : this.$store.state.user.id,
            userName : this.$store.state.user.name,
            uid : 1,
            voteEmpList: voteEmpList
          }).then(response => {
            this.$modal.msgSuccess("提交成功");
            this.$router.go(-1)
          });
        }else {
          this.$alert(`已超时，无法提交评分！`, `提示`, {
            type: 'Danger'
          })
        }
      }else if(bkhdxName){
        this.$alert(`【${ bkhdxName }】未评分，请去评分！`, `提示`, {
          type: 'Danger'
        })
      }
    },
    // 表单重置
    reset() {
      this.detail = {};
      this.uploadFJ = {
        // 是否显示弹出层
        open: false,
        // 附件上传
        fileList: [],
        // 附件上传
        docDiscripList: []
      };
    },
    goPage(row){
      this.reset()
      // 0 组织架构
      if(this.vote.bkhdxType==='0'){
        this.zzjgDetail(row)
      }
      // 1 职工
      if(this.vote.bkhdxType==='1'){
        this.zgDetail(row)
      }
    },
    // 组织架构详情
    zzjgDetail(row){
      getDept(row.bkhdxId).then(response => {
        this.detail = response.data;
        if(this.detail.docs){
          let arr = this.detail.docs.split(';');
          arr.forEach( item => {
            let arr1 = item.split(',');
            this.uploadFJ.fileList.push({
              name: arr1[0],
              url: arr1[1]
            });
          })
        }
        if(this.detail.docDiscrip){
          this.uploadFJ.docDiscripList = JSON.parse(this.detail.docDiscrip);
        }else {
          this.uploadFJ.docDiscripList=[{
            title:'',
            docDiscrip:'',
          }]
        }
        this.uploadFJ.open = true;
        this.uploadFJ.title = '组织架构详情';
      })
    },
    // 职工详情
    zgDetail(row){
      getEmployee(row.bkhdxId).then(response => {
        this.detail = response.data;
        if(this.detail.docs){
          let arr = this.detail.docs.split(';');
          arr.forEach( item => {
            let arr1 = item.split(',');
            this.uploadFJ.fileList.push({
              name: arr1[0],
              url: arr1[1]
            });
          })
        }
        if(this.detail.docDiscrip){
          this.uploadFJ.docDiscripList = JSON.parse(this.detail.docDiscrip);
        }else {
          this.uploadFJ.docDiscripList=[{
            title:'',
            docDiscrip:'',
          }]
        }
        this.uploadFJ.open = true;
        this.uploadFJ.title = '职工详情';
      })
    },
  }
}
</script>

<style scoped lang="scss">
.app-container{
  margin: 0 auto;
  padding: 30px;

  .title{
    font-size: 24px;
    text-align: center;
    margin-bottom: 20px;
  }
  .des{
    padding: 10px;
    color: #666666;
  }
  .time{
    padding: 5px;
    color: #af5e5e;
  }

  .tou_piao{
    font-size: 14px;

    .tou_piao_item{
      border: 1px solid #eee;
      padding: 10px;
      box-sizing: border-box;
      margin-bottom: 10px;

      ._desc{
        font-size: 12px;
        color: #666666;
        margin: 10px 0;
      }

      .el-radio{
        margin-top: 10px;
      }
    }
  }
}

.el-dialog__body{
  padding: 20px;

  .el-card{
    margin-top: 10px;
  }

  .yy_fj_list {
    height: 36px;
    line-height: 36px;
    border-bottom: 1px solid #39CCCC;
  }
}
</style>
