<template>
  <div id="register_merge">
    <el-tabs type="border-card" class="tabs">
      <!-- 弹屏存在多用户的情况 -->
      <div class='moreUser' style='position: absolute;right: 0px;z-index: 2;border: solid 1px rgba(128,128,128,0.2);' v-if='userInfoList&&userInfoList.length>1'>
        <el-table highlight-current-row :data="userInfoList" stripe @row-click="changeUserInfo" style="width: 100%">
          <el-table-column prop="address" header-align="center" label="用户地址" width="200"> </el-table-column>
        </el-table>
      </div>
      <el-tab-pane label="工单登记" style="height: 100%">
        <RegisterMerges
          ref="RegisterMerges"
          :data="editData"
          :arrearsFlag='arrearsFlag'
          :work-order-type="workOrderType"
          :acceptance-department="acceptanceDepartment"
          :phone-number="phoneNumber"
          :register-formdata="registerForm"
          :number="number"
          :download="true"
          :is-rxlx="true"
          :change-user-table="true"
          @remind="remind"
          @getKhbh="getKhbh"
        />
      </el-tab-pane>
      <el-tab-pane label="人员情况" style="height: 100%">
        <currentWorkInfo />
      </el-tab-pane>
    </el-tabs>
    <el-tabs type="border-card" class="tabs" style="margin-top: 10px">
      <el-tab-pane label="来电记录" style="height: 100%">
        <CallRecords :phone-number="phoneNumber" />
      </el-tab-pane>
      <el-tab-pane label="历史工单" style="height: 100%">
        <Historical :phone-number="phoneNumber" />
      </el-tab-pane>
    </el-tabs>
    <!-- <el-tabs type="border-card" class="tabs" style="margin-top: 10px">
      <el-tab-pane label="用户信息" style="height: 100%">
        <message :userId="userId"/>
      </el-tab-pane>
    </el-tabs> -->
  </div>
</template>

<script>
import { getNames, getRegisterList, getPhoneUserInfo } from "@/api/work";
import RegisterMerges from "@/views/currentSystem/work/order/register/register_merge";
import Historical from "./components/historical";
import CallRecords from "./components/callRecords";
import { getSXJList } from "@/utils/request";
import { getMail } from "@/api/hotline";
import axios from 'axios'
import { lcInfo } from "staticPub/config";
import currentWorkInfo from "./currentWorkInfo.vue";
import message from "./message.vue";
import commonMe from '@/utils/common'
export default {
  name: "RegisterMerge",
  components: {
    currentWorkInfo,
    RegisterMerges,
    Historical,
    CallRecords,
    message,
  },
  props: {
    data: {
      // 编辑的数据
      type: Object,
      required: true,
    },
    disabled: {
      type: Boolean,
    },
    callNum: {
      type: Number,
      default: 0,
    },
    phoneNumber: {
      type: Number,
      default: 0,
    },
    workOrderType: {
      // 工单类型
      type: Array,
      required: true,
    },
    acceptanceDepartment: {
      // 部门
      type: Array,
      required: true,
    },
    modeltitle: {
      type: String,
      default: "工单登记",
    },
    code: {
      type: String,
      default: "1001",
    },
  },
  data() {
    return {
      userId: "",
      arrearsFlag:false,
      getMail: getMail,
      getUserList: getSXJList,
      rules: {
        gdlx: [{ required: true, message: " ", trigger: "change" }],
        gdxq: [{ required: true, message: " ", trigger: "change" }],
        jjcd: [{ required: true, message: " ", trigger: "change" }],
        slbm: [{ required: true, message: " ", trigger: "change" }],
        slry: [{ required: true, message: " ", trigger: "change" }],
        gddjZt: [{ required: true, message: " ", trigger: "change" }],
        gdms: [{ required: true, message: " ", trigger: "blur" }],
        lczzyy: [{ required: true, message: " ", trigger: "blur" }],
      },
      cxnr: "",
      cxtj: "",
      //  工单细分
      subdivide1: [],
      subdivide2: [],
      indexNum: 0,
      indexNumT: 0,
      number: 1,
      // 优先级别
      emergencyDegree: [
        {
          id: 82,
          cname: "一般",
        },
        {
          id: 83,
          cname: "重要",
        },
        {
          id: 84,
          cname: "非常急",
        },
      ],
      // 受理人员
      receiver: [],
      recordtotal: 0,
      totals: 0,
      pagination: { current: 1, size: 10 }, // 分页参数信息
      paginations: { current: 1, size: 10 }, // 分页参数信息
      recordpagination: { current: 1, size: 10, telephone: "" },
      total: 0,
      list: [],
      djryName: "",
      djsj: "",
      pageInfoShow:true,
      cellStyle: [
        {
          style: { color: "#67C23A", textAlign: "center" }, // 样式 绿
          field: "jjcdName",
          value: "一般",
          index: 4,
        },
        {
          style: { color: "#E6A23C", textAlign: "center" },
          field: "jjcdName",
          value: "紧急",
          index: 4,
        },
        {
          style: { color: "#F56C6C", textAlign: "center" }, // 样式 红
          field: "jjcdName",
          value: "重要",
          index: 4,
        },
      ],
      column: [
        {
          label: "客户编号",
          prop: "khbh",
        },
        {
          label: "客户姓名",
          prop: "khxm",
        },
        {
          label: "客户地址",
          prop: "khdz",
        },
        {
          label: "接单时限",
          prop: "wcsx",
        },
        {
          label: "联系电话",
          prop: "lxdh",
        },
      ],
      rejectedList: [],
      registerForm: {
        intabManName:'',
        id: "",
        gdbh: "",
        ldhm: "",
        slbm: "",
        slry: "",
        gdlx: "",
        gdxf: "",
        gdxf1: "",
        gdxf2: "",
        jjcd: "",
        rzsx: "",
        wcsx: "",
        gddjZt: "",
        gdms: "",
        khbh: "",
        khxm: "",
        lxdh: "",
        khdz: "",
        lcid: "",
        djsj: "",
        djryName: "",
        lczzyy: "",
        ysxz: "",
        sbbh: "",
        sbkj: "",
        sjdh: "",
        // 抢维修
        qwxTime: undefined, // 抢维修时间
        startTime: "", // 开始时间
        endTime: "", // 结束时间
        orderSource: "", // 工单来源 字典编码表,0计划、1自建、2热线
        typeId: "", // 维修类型,关联表TF_YWPN_REPAIRTYPE_D的关键值,查询维修类型
        respUser: "", // 维修人ID,主要负责人,查询维修人员接口
      },
      allLcjd: "",
      menuId: "",
      jdsx: "",
      wcsx: "",
      dialogVisible: false,
      clientDialog: false,
      difference: false,
      editData: {},
      dataform: {
        object: {
          CBPQ: "",
          CBB: "",
          YHBH: "",
          YHXM: "",
          YHDZ: "",
          LXDH: "",
          YHZT: "",
          SBBH: "",
          SING: "",
          ACTION: "query",
        },
        url: `api/Business/GetCustomerData`,
      },
      recordlist: [],
      recordcolumn: [
        {
          label: "被叫号码",
          prop: "sysphone",
          sortable: true,
        },
        {
          label: "主叫号码",
          prop: "telephone",
        },
        {
          label: "呼叫时间",
          prop: "callTime",
        },
        {
          label: "挂机时间",
          prop: "hangupTime",
        },
        {
          label: "接通时长(秒)",
          prop: "times",
        },
        {
          label: "呼叫类型",
          prop: "callTypeName",
        },
        {
          label: "处理工号",
          prop: "empName",
        },
      ],
      columns: [
        {
          label: "工单编号",
          prop: "gdbh",
          sortable: true,
        },
        {
          label: "工单状态",
          prop: "lcjdName",
        },
        {
          label: "工单类型",
          prop: "gdlxName",
        },
        {
          label: "工单细分",
          prop: "gdxf1Name",
        },
        {
          label: "优先级别",
          prop: "jjcdName",
        },
        {
          label: "登记人员",
          prop: "djryName",
        },
        {
          label: "登记时间",
          prop: "djsj",
        },
        {
          label: "接单时限",
          prop: "jdsx",
        },
      ],
      lists: [],
      userInfoList:[],
    };
  },
  computed: {},
  created() {
    var aData = new Date();
    this.djsj =
      aData.getFullYear() +
      "-" +
      (aData.getMonth() + 1) +
      "-" +
      aData.getDate() +
      " " +
      aData.getHours() +
      ":" +
      aData.getMinutes();

      this.fetchDatas();

    if (this.phoneNumber !== 0) {
      this.fetchData({ tel: this.phoneNumber });
    }
    this.difference = JSON.stringify(this.data) !== "{}";
    if (this.difference) {
      this.handleEdit();
      this.fetchReject();
    } else {
      this.registerForm.gddjZt = 54;
      this.registerForm.jjcd = 82;
      this.registerForm.ldhm = this.phoneNumber;
    }
    if (this.phoneNumber === 1) {
      this.registerForm.ldhm = "";
    }
    this.getSubdivide1();
    this.getSubdivide2();
    if (this.difference) {
      this.handleEdit();
    }
    this.recordpagination.telephone = this.phoneNumber;
    this.fetchDataPhone(this.recordpagination);
  },
  methods: {
    getKhbh(val) {
      this.userId = val;
    },
    handleCurrentChange(currentPage) {
      this.paginations.current = currentPage;
      this.fetchData();
    },
    handleSizeChange(pagesize) {
      this.paginations.size = pagesize;
      this.fetchData();
    },
    recordhandleCurrentChange(currentPage) {
      this.pagination.current = currentPage;
      this.fetchDatas();
    },
    recordhandleSizeChange(pagesize) {
      this.pagination.size = pagesize;
      this.fetchDatas();
    },
    // getReceiver() {
    //   switch (this.allLcjd[1]) {
    //     case '2':
    //       this.menuId = 2002
    //       break
    //     case '3':
    //       this.menuId = 2003
    //       break
    //     case '4':
    //       this.menuId = 2004
    //       break
    //     case '5':
    //       this.menuId = 2005
    //       break
    //     case '6':
    //       this.menuId = 4097
    //       break
    //     default:
    //       break
    //   }
    //   const data = {
    //     ids: this.menuId,
    //     departmentId: this.registerForm.slbm
    //   }
    //   if (this.registerForm.slbm) {
    //     getPersonnel(data).then(res => {
    //       this.receiver = res.result
    //       const arr = this.receiver.map(val => {
    //         return val.id
    //       })
    //       if (arr.indexOf(this.registerForm.slry) === -1) {
    //         this.registerForm.slry = ''
    //       }
    //     })
    //   }
    // },
    // 三级工单
    getSubdivide1() {
      this.subdivide1 = [];
      this.subdivide2 = [];
      this.registerForm.gdxf1 = "";
      this.registerForm.gdxf2 = "";
      for (let i = 0; i < this.workOrderType.length; i++) {
        if (this.workOrderType[i].id === this.registerForm.gdlx) {
          this.indexNum = i;
          break;
        }
      }

      this.subdivide1 = this.workOrderType[this.indexNum].gdglproblemdetails;
    },
    getSubdivide2() {
      this.subdivide2 = [];
      this.registerForm.gdxf2 = "";
      for (let i = 0; i < this.subdivide1.length; i++) {
        if (this.subdivide1[i].id === this.registerForm.gdxf1) {
          this.indexNumT = i;
          break;
        }
      }

      this.subdivide2 = this.subdivide1[this.indexNumT].gdglproblemdetails;
    },
    async fetchData(data) {
      // this.pageInfoShow=false;
      try {
        const newaxios = axios.create({
          withCredentials: true, // 跨域请求时发送cookiesokies
          timeout: 60000, // 请求超时
        });
        this.registerForm.lxdh=data.tel
        newaxios({
          method: "get",
          url: lcInfo.otherUrlUserdetail,
          headers: {
            "Content-Type": "application/x-www-form-urlencoded",
            Appkey: "oievemzt7bowa9v9sf2iczmg",
            AppSecret: "9rbbnwcs3idyyzfpvs2xv9aqr2g28hd7",
            // Appkey: "sz8ihx4tyyf56h2jn1zunhj7",
            // AppSecret: "ihzzm4cgog275557bw84jqfwwn2dggxt",
          },
          params: {
            start: 1,
            limit: 100,
            tel1:data.tel,
            // userid: "0101012064",
          },
        }).then((res) => {
          const tempData=res.data.result;
          this.userInfoList=[];
          console.log("接电话信息1-------",res);
          if(res&&res.data&&res.data.result&&tempData.data){
            let tableList = tempData.data;
            this.userInfoList=tableList;
            console.log("接电话信息2-------",this.userInfoList)
            this.userInfoList.forEach((item,index)=>{
              item.currentNum=index;
            })
            const currentNum=0;
            //子组件监听的是number,故最后改变number。先对registerForm进行赋值
            this.setRegisterForm(currentNum)
          }else{
            this.pageInfoShow=true;
          }
        });
      } catch (err) {
        console.log(err);
      }
    },
    /*改变用户*/
    changeUserInfo(data){
      this.setRegisterForm(data.currentNum);
    },
    /**赋值*/
    setRegisterForm(number){
      const data=this.userInfoList[number];
      const startTime = commonMe.getDayAppend(commonMe.getPreYaerDate('day'), 'start')
      const endTime = commonMe.getDayAppend(commonMe.getCurrentDate('day'), 'end')
      const newaxios = axios.create({
          withCredentials: true, // 跨域请求时发送cookiesokies
          timeout: 60000, // 请求超时
        });
        newaxios({
          method: "get",
          url: lcInfo.getWaterUserInfosDetails2,
          headers: {
            // "Content-Type": "application/x-www-form-urlencoded",
            Appkey: lcInfo.client_id2,
            AppSecret: lcInfo.client_secret2,
            // Appkey: "sz8ihx4tyyf56h2jn1zunhj7",
            // AppSecret: "ihzzm4cgog275557bw84jqfwwn2dggxt",
          },
          params: {
          userId: data.userid,
          startTime: startTime,
          endTime: endTime
            // userid: "0101012064",
          },
        }).then(res=>{
          let tempData = JSON.parse(res.data.result);
          console.log(tempData,'tempdata')
          // let lastChange = tempData.data[0].LastChange
          // let nowChange = tempData.data[0].NowChange
          // if(nowChange ==0){
          //   if(lastChange==0){
          //     this.registerForm.yue = 0
          //     this.arrearsFlag = false
          //   }else{
          //     this.registerForm.yue = lastChange
          //     this.arrearsFlag = true  
          //   }
          // }else{
          //   this.registerForm.yue = nowChange
          //   this.arrearsFlag = false
          // }
          // this.pageInfoShow=true;
          // this.number=number;
          this.registerForm.intabManName = tempData.data[0].InTabManName
          this.number=number;
          let lastChange = tempData.data[0].LastChange
          let totalMoney = tempData.data[0].TotMoneyDX
          let payMoney = tempData.data[0].PayMoney
          let yue = (lastChange + payMoney - totalMoney).toFixed(2)
          if(yue>=0){
            this.registerForm.yue = yue
            this.number=number;
          }else{
            this.registerForm.yue = yue
            this.arrearsFlag = true  
            this.number=number;
          }
          // this.pageInfoShow=true;
          // this.number=number;
        }
        ).catch(e=>{
          // this.pageInfoShow=true;
          this.number=number;
        })
        this.registerForm.khbh = data.userid;
        this.registerForm.khxm = data.username;
        this.registerForm.khdz =data.address;
        this.registerForm.sbbh = data.watertabid;
        this.registerForm.metertype = data.metertype;
        this.registerForm.lxdh = data.tel1;
        this.registerForm.ysxz = data.watertype1;
        debugger
        this.registerForm.sbkj=data.caliber
        this.registerForm.kaihutime=data.kaihutime;
        
    },
    /**
     * @description 来电记录
     */
    async fetchDataPhone(data) {
      try {
        const tableData = await this.getMail(data);
        this.recordlist = tableData.result.records;
        this.recordtotal = tableData.result.total;
        console.log(tableData);
        if (tableData.result.message) {
          this.$message(tableData.result.message);
        }
      } catch (err) {
        console.log(err);
      }
    },
    /**
     * @description 历史工单
     */
    fetchDatas() {
      const data = {
        current: this.paginations.current,
        size: this.paginations.size,
        ldhm: this.phoneNumber,
      };
      getRegisterList(data).then((res) => {
        this.totals = res.result.total;
        this.lists = res.result.records;
        for (var i = 0; i < this.lists.length; i++) {
          if (!this.lists[i].djsj) {
            this.lists[i].djsj = "无";
          }
        }
      });
    },

    search() {
      // debugger
      if (this.cxtj !== "" && this.cxnr !== "") {
        const data = {
          object: {
            CBPQ: "",
            CBB: "",
            YHBH: "0",
            YHXM: "",
            YHDZ: "",
            LXDH: "",
            YHZT: "",
            SBBH: "",
            SING: "",
            ACTION: "query",
          },
          url: "api/Business/GetCustomerData",
        };
        if (this.cxtj === 1) {
          data.object.YHBH = this.cxnr;
        } else if (this.cxtj === 2) {
          data.object.LXDH = this.cxnr;
        }

        getNames(data).then((res) => {
          console.log(res);
          if (res.code === 1) {
            this.list = res.result.records.map((v) => {
              return {
                khbh: v.YHBH,
                khxm: v.YHXM,
                lxdh: v.LXDH,
                khdz: v.YHDZ,
              };
            });
          }
        });
      } else {
        this.$message.error("请选择查询条件,并且输入6位以上查询");
      }
    },

    // 选择客户
    nameBtn() {
      this.clientDialog = true;
    },
    // 获取客户信息
    clientBtn(val) {
      this.clientDialog = false;
      this.registerForm = {
        ...this.registerForm,
        ...JSON.parse(JSON.stringify(val)),
      };
    },
    // 赋值
    handleEdit() {
      const data = JSON.parse(JSON.stringify(this.data));
      console.log("处理llllllllllllllllll", data);
      this.djryName = data.djryName;
      this.djsj = data.djsj;
      Object.keys(this.registerForm).forEach((key) => {
        this.registerForm[key] = data[key];
      });
    },
    // // 移除重置
    // resetFields() {
    //   this.$refs.registerForm.resetFields()
    // },
    // 工单等级提交
    submitForm() {
      this.$refs.RegisterMerges.submitForm(1);
    },
    remind() {
      this.$emit("remind", "成功");
    },
    // // 修改提交
    // editSubmit(data) {
    //   const _this = this

    //   editRegister(data).then((res) => {
    //     if (res.code === 1) {
    //       _this.$message.success('处理成功!')
    //       _this.$emit('remind', '成功')
    //       _this.resetFields()
    //     }
    //   })
    // }
  },
};
</script>

<style lang="scss" scoped>
#register_merge {
  .wrap {
    border: 1px solid rgba(57, 153, 243, 0.15);
    >>> .el-collapse-item__header {
      background: rgba(57, 153, 243, 0.15);
      font-size: 14px;
      height: 28px;
    }
  }
  .dialog_style {
    width: 100%;
    overflow-y: auto;
    /deep/ .el-table {
      text-align: center;
      vertical-align: middle;
    }
  }
  /deep/ .el-form-item {
    margin-bottom: 5px;
  }
  /deep/ .el-collapse-item__wrap {
    margin-top: 10px;
  }
}

.btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 230px;
  height: 90px;
  line-height: 90px;
  text-align: center;
  color: #fff;
  font-size: 25px;
  text-transform: uppercase;
  cursor: pointer;
  background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
  background-size: 400%;
  border-radius: 60px;
}

.btn:hover {
  animation: animate 8s linear infinite;
}

@keyframes animate {
  0% {
    background-position: 0%;
  }

  100% {
    background-position: 400%;
  }
}

.btn::before {
  content: "";
  position: absolute;
  top: -5px;
  left: -5px;
  right: -5px;
  bottom: -5px;
  z-index: -1;
  background: linear-gradient(90deg, #03a9f4, #f441a5, #ffeb3b, #03a9f4);
  background-size: 400%;
  border-radius: 40px;
  opacity: 0;
  transition: 0.5s;
}

.btn:hover::before {
  filter: blur(20px);
  opacity: 1;
  animation: animate 8s linear infinite;
}
</style>