<template>
  <div class="app-container">
    <div style="background-color: #fff;padding: 20px;border-radius: 10px;">
      <p style="margin: 0; font-weight: 800;font-size: 16px;color: #343434;display: flex;align-items: center;margin-bottom: 20px;">
        <img src="../../../assets/images/icon_htgl_btzs.png" alt="" style="width: 16px;height: 20px;">
       <span style="margin-left: 10px;">报修管理</span>
      </p>
      <div style="background: #F3F3F3;padding: 20px 15px; padding-bottom: 0;margin-bottom: 20px;">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="88px">
          <el-row>

            <el-col :span="24">
              <el-col :span="8">
                <el-form-item label="报修标题" prop="repairTitle">
                        <el-input
                          v-model="queryParams.repairTitle"
                          placeholder="请输入报修标题"
                          clearable
                          @keyup.enter.native="handleQuery"
                        />
                      </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="手机号码" prop="phoneNumber">
                        <el-input
                          v-model="queryParams.phoneNumber"
                          placeholder="请输入报修用户手机号码"
                          clearable
                          @keyup.enter.native="handleQuery"
                        />
                      </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="报修类别" prop="maintenanceCategory">
                        <el-select v-model="queryParams.maintenanceCategory" placeholder="请选择报修类别" clearable>
                          <el-option
                            v-for="dict in dict.type.baoxiutype"
                            :key="dict.value"
                            :label="dict.label"
                            :value="dict.value"
                          />
                        </el-select>
                      </el-form-item>
              </el-col>
            </el-col>
            <el-col :span="24">
              <el-col :span="8">
                <el-form-item label="报修状态" prop="repairStatus">
                        <el-select v-model="queryParams.repairStatus" placeholder="请选择报修状态" clearable>
                          <el-option
                            v-for="dict in dict.type.repair_status"
                            :key="dict.value"
                            :label="dict.label"
                            :value="dict.value"
                          />
                        </el-select>
                      </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item class="butt bnjle">
                  <el-button type="primary"   @click="handleQuery">搜索</el-button>
                  <el-button   @click="resetQuery">重置</el-button>
                </el-form-item>
              </el-col>
            </el-col>
          </el-row>

        </el-form>
      </div>


      <div class="casr">
              <el-row :gutter="10" class="mb8">
                <!-- <el-col :span="1.5">
                  <div style="font-weight: bold;font-size: 14px;color: #343434; display: flex;align-items: center;">
                    当夜全选
                  </div>
                </el-col> -->
                <el-col :span="1.5">
                  <el-button
                    type="primary"
                    plain
                    size="mini"
                    @click="handleAdd"
                    v-hasPermi="['wuYe:repair:add']"
                  >添加</el-button>
                </el-col>
                <!-- <el-col :span="1.5">
                  <el-button
                    type="success"
                    plain
                    size="mini"
                    :disabled="single"
                    @click="handleUpdate"
                    v-hasPermi="['system:post:edit']"
                  >修改</el-button>
                </el-col>
                <el-col :span="1.5">
                  <el-button
                    type="danger"
                    plain
                    size="mini"
                    :disabled="multiple"
                    @click="handleDelete"
                    v-hasPermi="['system:post:remove']"
                  >删除</el-button>
                </el-col> -->
                <el-col :span="1.5">
                  <el-button
                    type="warning"
                    plain
                    size="mini"
                    @click="handleExport"
                    v-hasPermi="['wuYe:repair:export']"
                  >导出</el-button>
                </el-col>
                <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
              </el-row>
              <div class=" infinite-list" :style="dynamicStyle">
                <el-row :gutter="10" v-if="repairList.length != 0" style="width: 100%;margin-left: 0;">
                  <el-col :span="6" v-for="(item,index) in repairList" :key="index" >
                    <!-- @click="isac(item)" -->
                    <div v-if="isshoe"  :class=" item.isnum ==true ? 'ingwe' :'' " style="position: relative; background-color: #fff;box-shadow: 0px 0px 10px 0px #CDCDCD;border-radius: 4px;margin-bottom: 10px;">
                     <div class="carlist houselist">
                     	<div class="ctop flexc">
                     		<!-- <img src="../../../assets/images/icon_fwgl_yz.png" class="imgs" /> -->
                     		<!-- <image src="../../../assets/images/icon_fwgl_zhs.png" class="imgs" v-if="ite.type==2"></image> -->
                     		<div class="tit">{{item.repairTitle == null?'暂无数据' : item.repairTitle }}</div>
                     		<!-- div class="btn btnbga">预约</div>
                     		<div class="btn btnbgb">已来访</div>
                     		<div class="btn btnbgc">待来访</div> -->
                     		<!-- <div class="flex1"></div> -->
                     		<div class="txt ca" style="width: 25%; text-align: right;cursor: pointer;" @click="daifeng(item)"><dict-tag style=" text-align: right;" :options="dict.type.repair_status" :value="item.repairStatus" /></div>
                     	<!-- 	<div class="txt cb" v-if="ite.type==2">租户</div> -->
                     	</div>
                     	<div class="clists">
                     		<div class="w50 ">
                     			<div class="clist" style="width: 100%;"><div class="tit">报修类别：</div><dict-tag :options="dict.type.baoxiutype" :value="item.maintenanceCategory"/></div>
                     			<div class="clist" style="width: 100%;"><div class="tit">报修门户：</div>{{item.houseAddress == null?'暂无数据' : item.houseAddress}}</div>
                     		</div>
                     		<div class="w50 ">
                     			<div class="clist" style="width: 100%;"><div class="tit">报修时间：</div>{{item.repairTime == null?'暂无数据' : item.repairTime}}</div>
                     			<div class="clist" style="width: 100%;"><div class="tit">完成时间：</div>{{item.completionTime == null?'暂无数据' : item.completionTime}}</div>
                     		</div>

                     		<!-- <div class="clist"><div class="tit">手机号码</div>13656788668</div> -->
                     	</div>
                     </div>
                      <div class="bortt tongty" style="justify-content: space-between;">
                        <p style="cursor: pointer;"><span @click="handleUpdatef(item)" >查看</span></span>  </p>
                        <!-- <span @click="handleUpdatef(item)">查看</span> -->
                        <p v-hasPermi="['wuYe:repair:assign']" style="border-left: 1px solid #DADADA;color:red;cursor: pointer;" @click="handleDelete(item)">删除  </p>
                      </div>
                      <img v-if="item.isnum == true" src="../../../assets/images/icon_htgl_kp_gx.png" alt="" style="width: 35px;height: 35px;position: absolute;bottom: 0;right: 0;">
                    </div>
                  </el-col>
                </el-row>
                <div style="margin-top: 20px;display: flex;justify-content: center;align-items: center;" v-if="repairList.length ==0">
                   <img   src="../../../assets/images/zwshjbig.png" alt="" style="">
                </div>
              </div>
      </div>


      <pagination
        v-show="total>0"
        :total="total"
        :page.sync="queryParams.pageNum"
        :limit.sync="queryParams.pageSize"
        @pagination="getList"
      />
    </div>

    <!-- 添加或修改岗位对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="640px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-row>
          <el-col :span="24" v-if="isnusle == 0">
            <el-form-item label="报修标题" prop="repairTitle">
                      <el-input v-model="form.repairTitle" placeholder="请输入报修标题，简要描述报修内容" />
            </el-form-item>

          </el-col>
          <el-col :span="12" v-if="isnusle == 0">
             <el-form-item label="手机号码" prop="phoneNumber">
                      <el-input v-model="form.phoneNumber" placeholder="请输入报修用户手机号码" />
             </el-form-item>
          </el-col>
          <el-col :span="12" v-if="isnusle == 0">
            <el-form-item label="门牌号" prop="houseAddress">
                 <el-select v-model="form.houseAddress" placeholder="请选择门牌号" clearable>
                   <el-option
                    @click.native="itnegadd(dict)"
                     v-for="dict in houseInfoLise"
                     :key="dict.houseId"
                     :label="dict.detailedAddress"
                     :value="dict.houseId"
                   />
                 </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="24" v-if="isnusle == 0">
             <el-form-item label="报修详情" prop="repairDetails">
                      <el-input v-model="form.repairDetails" type="textarea" placeholder="请输入内容" />
                    </el-form-item>
          </el-col>
          <el-col :span="12" v-if="isnusle == 0">
           <el-form-item label="报修类别" prop="maintenanceCategory">
                     <el-select v-model="form.maintenanceCategory" placeholder="请选择报修类别">
                       <el-option
                         v-for="dict in dict.type.baoxiutype"
                         :key="dict.value"
                         :label="dict.label"
                         :value="dict.value"
                       ></el-option>
                     </el-select>
                   </el-form-item>
          </el-col>
          <el-col :span="12" v-if="isnusle == 0">
            <el-form-item label="报修时间" prop="repairTime">
                      <el-date-picker
                      style="width:100%"
                        v-model="form.repairTime"
                        type="datetime"
                        value-format="yyyy-MM-dd HH:mm:ss"
                        placeholder="请选择报修时间">
                      </el-date-picker>
                    </el-form-item>
          </el-col>
          <el-col :span="24" v-if="isnusle == 0">
            <el-form-item label="备注" prop="remark">
              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
            </el-form-item>
          </el-col>
          <el-col :span="24" v-if="isnusle == 2">
             <el-form-item label="维修详情" prop="repairCompletionDetails">
                      <el-input v-model="form.repairCompletionDetails" type="textarea" placeholder="请输入内容" />
            </el-form-item>
          </el-col>
          <el-col :span="24" class="unimg" v-if="isnusle == 1" >
            <el-form-item label="上门拍照" prop="visitPhoto">
              <image-upload v-model="form.visitPhoto"/>
            </el-form-item>
          </el-col>
          <el-col :span="24" class="unimg" v-if="isnusle == 2">
            <el-form-item label="结束拍照" prop="completionPhoto">
              <image-upload v-model="form.completionPhoto"/>
            </el-form-item>
          </el-col>
        </el-row>



      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog title="指派" :visible.sync="openz" width="640px" append-to-body>
      <el-form ref="formz" :model="formz" :rules="rulesz" label-width="80px">
        <el-row>
          <el-col :span="24" >
            <el-form-item label="选择人员" prop="staffName">
                      <el-select style="width: 100%;" v-model="formz.staffName" placeholder="请选择维修人员">
                        <el-option
                        @click.native="xuanse(dict)"
                          v-for="dict in staffManageList"
                          :key="dict.staffId"
                          :label="dict.staffName + '('+ (dict.status == null?'' : dict.status == 1?'空闲中' : '指派中') + ')'"
                          :value="dict.staffId"
                        ></el-option>
                      </el-select>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitFormz">确 定</el-button>
        <el-button @click="cancelz">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import { listRepair, getRepair, delRepair, addRepair, updateRepair,assign } from "@/api/wuguan/repair";
import { listStaffManage, listStaffManageNoPage,   getStaffManage, delStaffManage, addStaffManage, updateStaffManage } from "@/api/wuguan/staffManage";
import { listHouseInfo,listNoPage, getHouseInfo, delHouseInfo, addHouseInfo, updateHouseInfo } from "@/api/wuguan/houseInfo";
import 'videojs-flash'
export default {
  name: "Repair",
    dicts: ['baoxiutype', 'repair_status'],
  data() {
    return {
      // 遮罩层
      loading: true,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 物业报修表格数据
       repairList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      openz:false,
      houseInfoLise:[],
      // 查询参数
      queryParams: {
        pageNum: 1,
                pageSize: 10,
                portalId: null,
                houseAddress: null,
                repairTime: null,
                phoneNumber: null,
                repairTitle: null,
                maintenanceCategory: null,
                repairDetails: null,
                repairImages: null,
                repairStatus: null,
                staffName: null,
                staffId: null,
                staffPhone: null,
                visitTime: null,
                visitPhoto: null,
                completionTime: null,
                completionPhoto: null,
                repairCompletionDetails: null,
      },
      // 表单参数
      form: {},
      formz: {},
      // 表单校验
      rules: {
        houseAddress: [
                  { required: true, message: "详细门牌号不能为空", trigger: "blur" }
                ],
        repairTime: [
                  { required: true, message: "不能为空", trigger: "blur" }
                ],
        maintenanceCategory: [
                  { required: true, message: "不能为空", trigger: "blur" }
                ],
        phoneNumber: [
                 { required: true, message: "不能为空", trigger: "blur" },
                 {
                   pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
                   message: "请输入正确的手机号码",
                    trigger: "blur"
                   }
               ],

      },
      rulesz: {
        staffName: [
                  { required: true, message: "不能为空", trigger: "blur" }
                ],

      },
      activeName:'first',
      videoState: false, // 视频播放状态
      poster:true,
      controls:true,
      videoData:{},
       player: null,
       isshoe:true,
       isnusle:1,
       staffManageList: [],
       tableMaxHeight:'200',

    };
  },
  computed: {
    dynamicStyle() {
      return {
        overflow:'auto',
        height: this.tableMaxHeight+ 'px',
        paddingTop:'10px'
      }
    }
    },
  created() {
    this.getList();
    this.getstaffManageList()
    this.getListhouvr()
  window.onresize = () => {
  	      this.changeTableMaxHeight()
  	    }
  	    this.changeTableMaxHeight()
  },
  mounted() {
  	window.onresize = () => {
  	          this.changeTableMaxHeight()
  	        }
  	        this.changeTableMaxHeight()
  },
  beforeDestroy() {
      if (this.player) {
        this.player.dispose()
      }
    },
  methods: {
    getListhouvr() {
       listNoPage().then(response => {
         this.houseInfoLise  = response.rows;
       });
     },
    /** 查询岗位列表 */
    getList() {
      this.loading = true;

      listRepair(this.queryParams).then(response => {
        this.repairList  = response.rows;
        this.repairList .filter(rou=>{
          rou.isnum = false
        })
        this.total = response.total;
        this.loading = false;
      });
    },
    getstaffManageList(row){
      let bsdf={'staffCategory':2}
      listStaffManageNoPage(bsdf).then(response => {
        this.staffManageList  = response.rows;
        // this.staffManageList.filrter(rout=>{
        //   rout.lable = rout.staffName + '<p>'
        // })
      });
    },
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // 获取当前时间
    gettime(){
      let nowDate = new Date()
      				  let date = {
      				    year: nowDate.getFullYear(),
      				    month: nowDate.getMonth() + 1,
      				    date: nowDate.getDate()
      				  }

      				   if (parseInt(date.date) < 10) {
      				      date.date = '0' + date.date
      				    }
                  let nghe = date.year + '-' + date.month + '-' + date.date
      				  return nghe

    },
    cancelz() {
      this.openz = false;
    },
    // 表单重置
    reset() {
      this.form = {
              repairId: null,
              portalId: null,
              houseAddress: null,
              repairTime: null,
              phoneNumber: null,
              repairTitle: null,
              maintenanceCategory: null,
              repairDetails: null,
              repairTime:this.gettime() + ' ' + '00:00:00',
              repairImages: null,
              repairStatus: null,
              staffName: null,
              staffId: null,
              staffPhone: null,
              visitTime: null,
              visitPhoto: null,
              completionTime: null,
              completionPhoto: null,
              repairCompletionDetails: null,
              createBy: null,
              createTime: null,
              updateBy: null,
              updateTime: null,
              remark: null
            };
      this.resetForm("form");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.repairId)
      this.single = selection.length!=1
      this.multiple = !selection.length
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.open = true;
      this.isnusle = 0
      this.title = "添加物业报修";
    },
    /** 修改按钮操作 */
    handleUpdate(row,val) {
      this.reset();
            const repairId = row.repairId || this.ids
            getRepair(repairId).then(response => {
              this.form = response.data;
              this.open = true;
              this.title = "报修信息";
              this.isnusle = val
            });
    },
    handleUpdatef(row){
      this.$router.push({
        path: '/wuguan/baoxiuxq',
        query: {
        	'id':row.repairId,
        }
      })
    },
    // 待分配
    daifeng(row){
     if(row.repairStatus ==1){
       // 待分配
       // this.formz.maintenanceCategory = row.maintenanceCategory
       this.openz = true
       this.formz.repairId = row.repairId


     }
    },
    // 待分配提交
    submitFormz(){
      this.$refs["formz"].validate(valid => {
        if (valid) {
          assign(this.formz).then(response => {
            this.$modal.msgSuccess("操作成功");
            this.openz = false;
            this.getList();
          });
        }
        })

    },
    /** 提交按钮 */
    submitForm: function() {
      this.$refs["form"].validate(valid => {
        if (valid) {
                  if (this.form.repairId != null) {
                    updateRepair(this.form).then(response => {
                      this.$modal.msgSuccess("修改成功");
                      this.open = false;
                      this.getList();
                    });
                  } else {
                    this.form.userId = this.$store.getters.id
                    addRepair(this.form).then(response => {
                      this.$modal.msgSuccess("新增成功");
                      this.open = false;
                      this.getList();
                    });
                  }
                  }
      });
    },
    /** 删除按钮操作 */
        handleDelete(row) {
          const repairIds = row.repairId || this.ids;
          this.$modal.confirm('是否确认删除物业报修编号为"' + repairIds + '"的数据项？').then(function() {
            return delRepair(repairIds);
          }).then(() => {
            this.getList();
            this.$modal.msgSuccess("删除成功");
          }).catch(() => {});
        },
    /** 导出按钮操作 */
    handleExport() {
      this.download('wuYe/repair/export', {
        ...this.queryParams
      }, `repair_${new Date().getTime()}.xlsx`)
    },

      handleClick(){

      },
    isac(val){
      console.log(5,val)
      val.isnum = !val.isnum
      this.isshoe = false
      this.isshoe = true
    },
    xuanse(val){
      console.log(val)
     this.formz.staffName = val.staffName
     this.formz.staffId = val.staffId
     this.formz.staffPhone = val.phoneNumber
    },
    itnegadd(item){
      this.form.portalId = item.houseId
      this.form.houseAddress = item.detailedAddress
      console.log(item)
    },
    // 获取屏幕高度
    showFilterForm () {
          this.filterActive = !this.filterActive
          this.changeTableMaxHeight()
        },

        changeTableMaxHeight () {
          let height = document.body.offsetHeight // 网页可视区域高度
          // if (this.filterActive) {
          //   this.tableMaxHeight = height - 320
          // } else {
            this.tableMaxHeight = height - 150
          // }
          console.log(height)
        }

  }
};
</script>
<style  lang="scss">
  .unimg{
    .el-upload--picture-card{
      width:102px;
      height: 102px;
      line-height: 102px;
    }
  }

  .bnjle{
    margin-left: 20px;
  }
  .butt{
    .el-button--small{
      padding: 9px 23px !important;
      font-size: 14px;
    }
  }
  .casr{
    .el-tabs__item.is-active{
      color: #196CFF;
    }
    .el-tabs--card > .el-tabs__header .el-tabs__item{
      padding: 0  30px !important;
    }
  }
  .el-table .el-table__header-wrapper th{
    background-color:#F5F6F8;
    color:#343434;
  }
  .el-table{
    color:#343434;
  }
</style>
<style scoped lang="scss">
  .flexc{
    display: flex;
    justify-content: space-between;
  }
  	.carlist{background: #FFFFFF;border-radius: 10px;margin-bottom: 14px;
  		.ctop{border-bottom: 1px solid #E5E5E5;padding:13px 12px;
  			.imgs{width: 20px;height: 21px;margin-right: 15px;}
  			.tit{font-size: 16px;color: #272727;font-weight: bold;margin-right: 7px;overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;}
  			.txt{font-weight: 500;font-size: 14px;
  				&.ca{color: #3565ED;}
  				&.cb{color: #FE5A0E;}
  				&.cc{color: #28C529;}
  			}
  			.txta{font-weight: 500;font-size: 14px;color: #AAAAAA;}
  			.num{font-size: 14px;color: #AAAAAA;}
  		}
  		.btn{height: 17px;border-radius: 9px;display: flex;align-items: center;justify-content: center;padding: 0 5px;font-size:12px;margin-right: 12px;
  			&.btna{border: 1px solid #06C770;color: #06C770;}
  			&.btnb{border: 1px solid #3565ED;color: #3565ED;}
  			&.btnc{border: 1px solid #FE5A0E;color: #FE5A0E;}
  			&.btnbga{border: 1px solid #0156FE;color: #3565ED;background: #DFEAFF;height: 18px;}
  			&.btnbgb{border: 1px solid #C1C1C1;color: #666666;background: #F1F1F1;height: 18px;}
  			&.btnbgc{border: 1px solid #FE5A0E;color:#FE5A0E;background:#FFEEE6;height: 18px;}
  		}
  		.clists{padding: 12px 12px 4px;
  			.clist{font-weight: 500;margin-bottom: 8px;
  	font-size: 13px;color: #272727;display: flex;line-height: 17px;
  				.tit{font-size: 14px;color: #AAAAAA;flex: 0 0 auto;margin-right: 8px;text-align-last: justify;}
  				.imgas{display: flex;align-items: center;flex-wrap: wrap;
  					image{width: 71px;height: 71px;margin-right: 15px;margin-top:4px;}
  				}
  			}
  			.w50{
  				.clist{width: 50%;}
  			}
  		}
  	}
  	.houselist{
  		.clists{padding-bottom: 1px !important;}
  		.clist{margin-bottom: 11px !important;}
  	}
  .goe{
    p{
      margin: 0;
      font-weight: 800;
      font-size: 16px;
      color: #161616;
      margin-top: 10px;
      margin-bottom: 3px;
      padding: 0 10px;
      overflow: hidden;
      text-overflow: ellipsis;
      display:-webkit-box; //作为弹性伸缩盒子模型显示。
      -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
      -webkit-line-clamp:1; //显示的行
    }
    p:nth-child(2){

    }
  }
  .ingwe{
    border: 2px solid #196CFF;
  }
  .renyuangs{
    p{
      font-weight: 500;
      font-size: 14px;
      color: #161616;
      padding: 0;
    }
  }
  .tongty{
    display: flex;
    align-items: center;
  }
  .bortt{
    border-top: 1px solid #DADADA;
    margin-top: 15px;

    p{
      margin: 0;
      font-weight: bold;
      font-size: 14px;
      color: #5F8BF4;
      width:50%;
      padding: 10px;
      text-align: center;
    }
  }
  </style>


