<template>
  <div class="Add">
    <div class="item mar-b16">
      <div class="label">
        <span class="tips"></span>区域选择
      </div>
      <div class="value">
        <AiAreaPicker v-model="form.areaId" :areaId="user.areaId" @select="areaSelect" :name.sync="form.areaName" style="color: #666" selectRoot>
          <span style="margin-left: 4px" v-if="areaName">{{ form.areaName }}</span>
          <span v-else class="color-999">请选择</span>
          <u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" />
        </AiAreaPicker>
      </div>
    </div>
    <div class="info mar-b16">
      <div class="item solid">
        <div class="label">
          <span class="tips">*</span>管控对象
        </div>
        <div class="value">{{form.name}}</div>
      </div>
      <div class="item solid">
        <div class="label">
          <span class="tips">*</span>手机号
        </div>
        <div class="value">{{form.phone}}</div>
      </div>
      <div class="item solid">
        <div class="label">
          <span class="tips">*</span>身份证号
        </div>
        <div class="value">{{form.idNumber}}</div>
      </div>
      <div class="item solid">
        <div class="label">
          <span class="tips">*</span>居家状态
        </div>
        <div class="value" @click="dictSelectClick('EP_homeStatus2', 'homeStatus')">
          <span :class="form.homeStatus === '' ? 'color-999' : ''">{{ $dict.getLabel('EP_homeStatus2', form.homeStatus) || '请选择'}}</span>
          <u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" />
        </div>
      </div>
      <div class="item solid">
        <div class="label">
          <span class="tips">*</span>隔离时间
        </div>
        <div class="value" @click="showDateSelect=true">
          <span class="color-999" v-if="!form.quarantineBeginTime">请选择</span>
          <span v-else>{{form.quarantineBeginTime}}至{{form.quarantineEndTime}}</span>
          <u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" />
        </div>
      </div>
      <div class="item">
        <div class="label">
          <span class="tips">*</span>隔离策略
        </div>
        <div class="value" @click="dictSelectClick('EP_quarantineStrategy', 'quarantineStrategy')">
          <span :class="form.quarantineStrategy === '' ? 'color-999' : ''">{{ $dict.getLabel('EP_quarantineStrategy', form.quarantineStrategy) || '请选择'}}</span>
          <u-icon name="arrow-right" color="#999" size="16" style="margin-left: 4px" />
        </div>
      </div>
    </div>
    <div class="info mar-b16">
      <div class="item solid">
        <div class="label">
          <span class="tips">*</span>管控人
        </div>
        <div class="value">
          <u-input placeholder="请输入" input-align="right" height="32" maxlength="6" v-model="form.controllerUserName" />
        </div>
      </div>
      <div class="item solid">
        <div class="label">
          <span class="tips">*</span>联系方式
        </div>
        <div class="value">
          <u-input placeholder="请输入" type="number" input-align="right" height="32" maxlength="11" v-model="form.controllerUserPhone" />
        </div>
      </div>
      <div class="item">
        <div class="label">
          <span class="tips"></span>管控内容
        </div>
      </div>
      <textarea placeholder="请输入详细描述信息" v-model="form.controllerContent"></textarea>
    </div>
    <div class="info" style="padding-bottom: 24px;">
      <div class="item">
        <div class="label">
          <span class="tips">*</span>图片
        </div>
      </div>
      <div>
        <AiUploader :def.sync="form.fileList" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
      </div>
    </div>
    <div class="btn-height"></div>
    <div class="footer">
      <div class="cancel" @click="submit('2')">解除管理</div>
      <div class="confirm" @click="submit('')">保存</div>
    </div>
    <u-calendar v-model="showDateSelect" mode="range" min-year="2020" max-date="2050-12-31" @change="dateConfirm"></u-calendar>
    <u-select v-model="showDictSelect" :list="$dict.getDict(selectDictName)" label-name="dictName" value-name="dictValue" @confirm="dictConfirm"></u-select>
  </div>
</template>

<script>
import { mapState } from 'vuex'

export default {
  data() {
    return {
      areaId: '',
      areaName: '',
      files: [],

      id: '',
      form: {
        homeStatus: '',
        quarantineBeginTime: '',
        quarantineStrategy: ''
      },
      showDateSelect: false,
      showDictSelect: false,
      selectDictName: '',
      selectFormName: '',
    }
  },
  computed: {
    ...mapState(['user']),
  },
  onLoad(option) {
    this.id = option.id
    this.$dict.load('EP_homeStatus2', 'EP_quarantineStrategy').then(() => {
      this.id = option.id
      this.getDetail()
    })
  },
  onShow() {
    document.title = '排查管理'
  },
  methods: {
    submit(status) {
      if(this.form.homeStatus === '') {
        return this.$u.toast('请选择居家状态')
      }
      if(!this.form.quarantineBeginTime) {
        return this.$u.toast('请选择隔离时间')
      }
      if(this.form.quarantineStrategy === '') {
        return this.$u.toast('请选择隔离策略')
      }
      if(!this.form.controllerUserName) {
        return this.$u.toast('请输入管控人姓名')
      }
      if(!this.form.controllerUserPhone) {
        return this.$u.toast('请输入联系方式')
      }
      if(this.form.controllerUserPhone &&  !/^1[0-9]{10,10}$/.test(this.form.controllerUserPhone)) {
        return this.$u.toast("请输入正确的手机号码");
      }
      if( !this.form.fileList.length) {
        return this.$u.toast('请上传图片')
      }
      this.form.status = status
      this.form.id = this.id

      this.$http.post(`/app/appepidemicpreventionregisterinfo/riskDisposal`, this.form).then((res) => {
        if (res.code == 0) {
          this.$u.toast('提交成功')
          uni.$emit('updateDetail')
          uni.$emit('updateList')
          uni.navigateBack()
        }
      })
      

    },
    getDetail() {
      this.$http.post(`/app/appepidemicpreventioncommunitymanagement/queryDetailById?id=${this.id}`).then((res) => {
        if (res.code == 0) {
          this.form = res.data
        }
      })
    },
    dateConfirm(e) {
      this.form.quarantineBeginTime = e.startDate
      this.form.quarantineEndTime = e.endDate
    },
    dictSelectClick(dictName, formName) {
      this.selectDictName = dictName
      this.selectFormName = formName
      this.showDictSelect = true
    },
    dictConfirm(e) {
      this.form[this.selectFormName] = e[0].value
    },
    areaSelect(e) {
      this.form.areaId = e
    },
  },
}
</script>

<style scoped lang="scss">
.Add {
  background-color: #F3F6F9;
  padding-top: 16px;
  .item {
    background-color: #fff;
    display: flex;
    padding: 40px 0 40px 32px;
    .label {
      width: 200px;
      line-height: 48px;
      font-family: PingFangSC-Medium;
      font-weight: 500;
      font-size: 34px;
      color: #666;
      .tips {
        display: inline-block;
        font-family: PingFangSC-Medium;
        font-weight: 700;
        font-size: 34px;
        color: #F46;
        margin-right: 8px;
        vertical-align: text-top;
      }
    }
    .value {
      width: calc(100% - 200px);
      padding-right: 32px;
      text-align: right;
      font-family: PingFangSC-Regular;
      font-size: 34px;
      color: #333;
      .color-999 {
        color: #999;
        font-size: 30px;
      }
    }
    textarea {
      width: 100%;
    }
  }
  ::v-deep uni-textarea{
    width: calc(100% - 32px);
  }
  .info {
    padding-left: 32px;
    background-color: #fff;
    .item {
      padding-left: 0;
    }
    .solid {
      border-bottom: 1px solid #ddd;
      box-sizing: border-box;
    }
  }
  .mar-b16 {
    margin-bottom: 16px;
  }
  .btn-height{
    height: 130px;
  }
  .footer {
    width: 100%;
    height: 128px;
    background: #FFF;
    box-shadow: inset 0 0 0 0 #D4D4D4;
    padding: 24px 32px;
    box-sizing: border-box;
    display: flex;
    position: fixed;
    bottom: 0;
    div {
      flex: 1;
      height: 80px;
      line-height: 80px;
      background: #FFF;
      border-radius: 8px;
      font-family: PingFangSC-Regular;
      font-size: 32px;
      text-align: center;
    }
    .cancel {
      color: #f46;
      line-height: 76px;
      border: 1px solid #CCCCCC;
      box-sizing: border-box;
      margin-right: 32px;
    }
    .confirm {
      background-color: #1365DD;
      color: #fff;
    }
  }
}
</style>
