<template>
  <view class="content">
    <view class="card">
      <u-cell-group :border="false">
        <u-cell>
          <view slot="title" class="title required">检查题目:</view>
          <view slot="value">
            <u-radio-group v-model="form.INSPECTION_SUBJECT" placement="row" :disabled="disabled">
              <u-radio label="安全" name="安全"></u-radio>
              <u-radio label="环保" name="环保" class="ml-10"></u-radio>
              <u-radio label="综合" name="综合" class="ml-10"></u-radio>
            </u-radio-group>
          </view>
        </u-cell>
        <u-cell>
          <view slot="title" class="title required">被检查单位:</view>
          <view slot="value">
            <text @click="showTree('tkitree')">
              {{ disabled ? form.INSPECTED_CORPINFO_ID_NAME : form.INSPECTED_DEPARTMENT_NAME || '请选择' }}
            </text>
            <tki-tree ref="tkitree" :range="inspectedDepartmentTreeList" rangeKey="name" selectParent
                      @confirm="confirmTree($event,'inspectedSiteuserColumns')"/>
          </view>
        </u-cell>
        <u-cell v-show="form.INSPECTED_DEPARTMENT_NAME">
          <view slot="title" class="title required">被检查单位现场负责人:</view>
          <view slot="value">
            <text @click="disabled ? null : inspectedSiteuserShow = true">{{
                form.INSPECTED_SITEUSER_NAME || '请选择'
              }}
            </text>
            <u-picker :show="inspectedSiteuserShow" :columns="inspectedSiteuserColumns" keyName="NAME"
                      @cancel="inspectedSiteuserShow = false"
                      @confirm="inspectedSiteuserConfirmPicker"></u-picker>
          </view>
        </u-cell>
        <u-cell>
          <view slot="title" class="title required">检查场所:</view>
          <view slot="value">
            <u--input v-model="form.INSPECTION_PLACE" border="none" placeholder="请输入检查场所" inputAlign="right"
                      :disabled="disabled"></u--input>
          </view>
        </u-cell>
        <u-cell>
          <view slot="title" class="title required">检查类型:</view>
          <view slot="value">
            <text @click="showTree('tkitree1')">{{ form.INSPECTION_TYPE_NAME || '请选择' }}</text>
            <tki-tree ref="tkitree1" :range="inspectionTypeTreeList" rangeKey="name" selectParent children-name="nodes"
                      @confirm="confirmTree($event,'inspectionTypeTreeList')"/>
          </view>
        </u-cell>
        <u-cell>
          <view slot="title" class="title required">检查开始时间:</view>
          <view slot="value">
            <text @click="disabled ? null : inspectionTimeStartShow = true">{{
                form.INSPECTION_TIME_START || '请选择'
              }}
            </text>
            <u-datetime-picker :show="inspectionTimeStartShow" :value="form.INSPECTION_TIME_START"
                               @cancel="inspectionTimeStartShow = false"
                               @confirm="inspectionTimeStartConfirm"></u-datetime-picker>
          </view>
        </u-cell>
        <u-cell>
          <view slot="title" class="title required">检查结束时间:</view>
          <view slot="value">
            <text @click="disabled ? null : inspectionTimeEndShow = true">{{
                form.INSPECTION_TIME_END || '请选择'
              }}
            </text>
            <u-datetime-picker :show="inspectionTimeEndShow" :value="form.INSPECTION_TIME_END"
                               @cancel="inspectionTimeEndShow = false"
                               @confirm="inspectionTimeEndConfirm"></u-datetime-picker>
          </view>
        </u-cell>
        <u-cell v-if="disabled">
          <view slot="title" class="title required">记录填写时间:</view>
          <view slot="value">
            <text>{{ form.CREATTIME }}</text>
          </view>
        </u-cell>
        <u-cell>
          <view slot="title" class="title">检查情况:</view>
          <view slot="value">
            <u-button type="primary" text="添加" size="mini" @click="addSituation"
                      v-if="!disabled"></u-button>
          </view>
        </u-cell>
        <u-cell>
          <view slot="label">
            <view class="pr mt-10 textarea-box" v-for="(item,index) in form.situationList" :key="item.id">
              <u--textarea v-model="item.SITUATION" placeholder="请输入检查情况" :disabled="disabled"></u--textarea>
              <u-badge value="X" type="error" :offset="[-9,-10]" absolute
                       @click.native="removeSituation(item,index)" v-if="!disabled"></u-badge>
            </view>
          </view>
        </u-cell>
        <u-cell>
          <view slot="title" class="title">检查人员:</view>
          <view slot="value">
            <u-button type="primary" text="添加" size="mini" @click="addInspector"
                      v-if="!disabled"></u-button>
          </view>
        </u-cell>
        <view class="title-none">
          <u-cell>
            <view slot="value" style="width: 100%">
              <view class="pr mt-10" v-for="(item,index) in form.inspectorList" :key="item.id">
                <u-cell-group :border="false" class="border">
                  <view class="title-show">
                    <u-cell>
                      <view slot="title">{{ index + 1 }}.检查人员单位</view>
                      <view slot="value">
                        <text @click="showTree('tkitreeInspector' + index,'arr')">
                          {{ item.INSPECTION_DEPARTMENT_NAME || '请选择' }}
                        </text>
                        <tki-tree :ref="'tkitreeInspector' + index" :range="inspectionDepartmentTreeList"
                                  rangeKey="name"
                                  selectParent @confirm="confirmTree($event,'inspectorList',index)"/>
                      </view>
                    </u-cell>
                  </view>
                  <view class="title-show">
                    <u-cell :border="false" v-show="item.INSPECTION_DEPARTMENT_NAME">
                      <view slot="title">{{ index + 1 }}.检查人员</view>
                      <view slot="value">
                        <text @click="inspectionUserShowPicker(index)">{{
                            item.INSPECTION_USER_NAME || '请选择'
                          }}
                        </text>
                        <u-picker :show="item.inspectionUserShow" :columns="[inspectorList[0][index]]" keyName="NAME"
                                  @cancel="item.inspectionUserShow = false"
                                  @confirm="inspectionUserConfirmPicker($event,index)"></u-picker>
                      </view>
                    </u-cell>
                  </view>
                </u-cell-group>
                <u-badge value="X" type="error" :offset="[-9,-10]" absolute
                         @click.native="removeInspector(item,index)" v-if="!disabled"></u-badge>
              </view>
            </view>
          </u-cell>
        </view>
        <u-cell>
          <view slot="title" class="title">发现问题:</view>
          <view slot="value">
            <u-button type="primary" text="添加" size="mini" @click="addHidden"
                      v-if="!disabled"></u-button>
          </view>
        </u-cell>
        <view class="title-none">
          <u-cell>
            <view slot="value" style="flex: 1">
              <uni-table border stripe emptyText="暂无更多数据">
                <uni-tr>
                  <uni-th align="center">序号</uni-th>
                  <uni-th align="center">隐患部位</uni-th>
                  <uni-th align="center">隐患描述</uni-th>
                  <uni-th align="center">操作</uni-th>
                </uni-tr>
                <uni-tr v-for="(item,index) in form.hiddenList" :key="item.HIDDEN_ID">
                  <uni-td>{{ index + 1 }}</uni-td>
                  <uni-td>{{ item.HIDDENPART_NAME ? item.HIDDENPART_NAME : item.HIDDENPART }}</uni-td>
                  <uni-td>{{ item.HIDDENDESCR }}</uni-td>
                  <uni-td>
                    <view class="flex-between">
                      <u-icon name="eye-fill" @tap="showHidden(item, index)"></u-icon>
                      <view class="ml-10">
                        <u-icon name="trash-fill" @tap="removeHidden(item, index)"
                                v-if="!disabled"/>
                      </view>
                    </view>
                  </uni-td>
                </uni-tr>
              </uni-table>
            </view>
          </u-cell>
        </view>
        <template v-for="item in form.inspectorVerifyList" v-if="!type||!(type==='add' || type==='edit')">
          <u-cell v-show="item.INSPECTION_USER_OPINION">
            <template #title>
              <view class="title">检查人意见:</view>
            </template>
            <template #label>
              <view class="mt-10 textarea-box">
                <u--textarea v-model="item.INSPECTION_USER_OPINION" disabled
                             placeholder="请输入检查人意见"></u--textarea>
              </view>
            </template>
          </u-cell>
          <u-cell v-show="item.INSPECTION_USER_SIGN_IMG">
            <view slot="title" class="title">签字:</view>
            <view slot="label" class="mt-10">
              <u--image :showLoading="true" :src="$store.state.filePath + item.INSPECTION_USER_SIGN_IMG"
                        width="100%" height="80px" mode="scaleToFill"
                        @click="previewImage($store.state.filePath + item.INSPECTION_USER_SIGN_IMG)"></u--image>
            </view>
          </u-cell>
        </template>
        <template v-if="!type||!(type==='add' || type==='edit')">
          <u-cell v-show="form.INSPECTED_SITEUSER_SIGN_IMG">
            <view slot="title" class="title">被检查人意见:</view>
          </u-cell>
          <u-cell v-show="form.INSPECTED_SITEUSER_SIGN_IMG">
            <view slot="title" class="title">签字:</view>
            <view slot="label" class="mt-10">
              <u--image :showLoading="true" :src="$store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG"
                        width="100%" height="80px" mode="scaleToFill"
                        @click="previewImage($store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG)"></u--image>
            </view>
          </u-cell>
        </template>
        <template v-if="type&&(type==='add' || type==='edit')">
          <u-cell>
            <view slot="title" class="title">检查人意见:</view>
            <view slot="label" class="mt-10 textarea-box">
              <u--textarea v-model="form.INSPECTION_USER_OPINION" placeholder="请输入检查人意见"></u--textarea>
            </view>
          </u-cell>
          <u-cell v-if="form.INSPECTION_USER_OPINION">
            <view slot="title" class="title flex-between">
              签字:
              <view>
                <u-button type="primary" text="手写添加" size="mini" @click="signShow = true"></u-button>
              </view>
            </view>
            <view slot="label" class="mt-10">
              <sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign>
            </view>
          </u-cell>
          <u-cell v-if="form.INSPECTION_USER_SIGN_IMG">
            <view slot="value" class="mt-10 flex-1" v-show="form.INSPECTION_USER_SIGN_IMG">
              <u--image v-show="form.INSPECTION_USER_SIGN_IMG" :showLoading="true" :src="form.INSPECTION_USER_SIGN_IMG"
                        width="100%" height="80px" mode="scaleToFill"
                        @click="previewImage(form.INSPECTION_USER_SIGN_IMG)"></u--image>

            </view>
          </u-cell>
        </template>
        <u-cell :border="false">
          <view slot="label">
            <u-button type="primary" text="提交" @click="$u.debounce(fnSubmit, 1000,true)" v-if="!disabled"></u-button>
          </view>
        </u-cell>
      </u-cell-group>
    </view>
    <u-popup :key="popupShow" :show="popupShow" @close="popupShow = false" mode="right" :closeOnClickOverlay="false"
             :customStyle="{width:'85vw',overflowY:'auto'}">
      <view class="card">
        <u-cell-group :border="false">
          <u-cell>
            <view slot="title" class="title required">隐患照片:</view>
            <view slot="label" class="mt-10">
              <u-upload
                  :disabled="popupDisabled"
                  :deletable="!popupDisabled"
                  uploadIcon="plus"
                  :fileList="hiddenForm.hiddenImgs"
                  @afterRead="afterRead"
                  @delete="deletePic"
                  multiple
                  :maxCount="popupDisabled?hiddenForm.hiddenImgs.length:4"
              ></u-upload>
            </view>
          </u-cell>
          <u-cell v-if="!(popupDisabled && hiddenForm.hiddenVideos.length ===0)">
            <view slot="title" class="title flex-between">
              隐患视频:
              <u-icon v-if="hiddenForm.hiddenVideos.length !== 0 && hiddenForm.hiddenVideos[0].url"
                      name="play-circle-fill" size="30" @click="previewVideo(hiddenForm.hiddenVideos[0].url)"></u-icon>
            </view>
            <view slot="label" class="mt-10">
              <u-upload
                  :disabled="popupDisabled"
                  :deletable="!popupDisabled"
                  accept="video"
                  uploadIcon="plus"
                  :fileList="hiddenForm.hiddenVideos"
                  @afterRead="afterRead1"
                  @delete="deletePic1"
                  multiple
                  :maxCount="1"
              ></u-upload>
              <u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
                <view>
                  <video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
                </view>
              </u-modal>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title required">隐患描述:</view>
            <view slot="label" class="mt-10 textarea-box">
              <u--textarea v-model="hiddenForm.HIDDENDESCR" placeholder="请输入隐患描述"
                           :disabled="popupDisabled"></u--textarea>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title">隐患部位:</view>
            <view slot="value">
              <text @click="showTree('tkitree2')">
                {{ hiddenForm.HIDDENPART_NAME ? hiddenForm.HIDDENPART_NAME : hiddenForm.HIDDENPART || '请选择' }}
              </text>
              <tki-tree ref="tkitree2" :range="hiddenRegionTreeList" rangeKey="name" selectParent children-name="nodes"
                        @confirm="confirmTree($event,'hiddenRegionTreeList')"/>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title required">隐患级别:</view>
            <view slot="value">
              <text @click="showTree('tkitree3')">{{ hiddenForm.HIDDENLEVEL_NAME || '请选择' }}</text>
              <tki-tree ref="tkitree3" :range="hiddenLevelTreeList" rangeKey="name" selectParent children-name="nodes"
                        @confirm="confirmTree($event,'hiddenLevelTreeList')"/>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title required">隐患类型:</view>
            <view slot="value">
              <text @click="showTree('tkitree4')">{{ hiddenForm.HIDDENTYPE_NAME || '请选择' }}</text>
              <tki-tree ref="tkitree4" :range="hiddenTypeTreeList" rangeKey="name" children-name="nodes"
                        @confirm="confirmTree($event,'hiddenTypeTreeList')"/>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title required">是否是相关方:</view>
            <view slot="value">
              <u-radio-group v-model="hiddenForm.ISRELEVANT" placement="row" :disabled="disabled">
                <u-radio label="是" name="1" class="ml-10"></u-radio>
                <u-radio label="否" name="2" class="ml-10"></u-radio>
              </u-radio-group>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title required">隐患发现时间:</view>
            <view slot="value">
              <text @click="popupDisabled ? null : discoveryTimeShow = true">{{
                  hiddenForm.DISCOVERYTIME || '请选择'
                }}
              </text>
              <u-datetime-picker :show="discoveryTimeShow" :value="hiddenForm.DISCOVERYTIME" :minDate="Number(1970)"
                                 @cancel="discoveryTimeShow = false"
                                 @confirm="discoveryTimeConfirm"></u-datetime-picker>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title flex-between">
              隐患上报位置:
              <view>
                <u-button type="primary" text="定位" size="mini" @click="showMapModal"
                          v-if="!popupDisabled"></u-button>
              </view>
            </view>
            <view slot="label" class="mt-10" v-if="hiddenForm.LONGITUDE && hiddenForm.LATITUDE">
              <view>经度:{{ hiddenForm.LONGITUDE }}</view>
              <view>纬度:{{ hiddenForm.LATITUDE }}</view>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title">隐患位置描述:</view>
            <view slot="label" class="mt-10 textarea-box">
              <u--textarea v-model="hiddenForm.POSITIONDESC" placeholder="请输入隐患位置描述"
                           :disabled="popupDisabled"></u--textarea>
            </view>
          </u-cell>
          <u-cell>
            <view slot="title" class="title required">隐患发现人:</view>
            <view slot="value">
              <text @click="popupDisabled ? null : creatorShow = true">{{ hiddenForm.CREATOR_NAME || '请选择' }}</text>
              <u-picker :show="creatorShow" :columns="creatorList" keyName="NAME"
                        @cancel="creatorShow = false"
                        @confirm="creatorConfirmPicker"></u-picker>
            </view>
          </u-cell>
          <u-cell :border="false">
            <view slot="label" class="flex-between">
              <view class="flex1">
                <u-button type="info" text="取消" @click="popupClose"></u-button>
              </view>
              <view class="flex1 ml-10">
                <u-button type="primary" text="保存" @click="popupSave"
                          v-if="!popupDisabled"></u-button>
              </view>
            </view>
          </u-cell>
        </u-cell-group>
      </view>
    </u-popup>
  </view>
</template>

<script>
import {
  getDeptUser,
  getHiddenLevel,
  getHiddenRegion,
  getHiddenType,
  getInspectedDepartment,
  getInspectionDepartment,
  getInspectionType,
  getInspectors,
  getSafetyenvironmentalGoEdit,
  setImgFilesAdd,
  setSafetyenvironmentalAdd, setSafetyenvironmentalAdd_plus,
  setSafetyenvironmentalEdit, setSafetyenvironmentalEdit_plus,
  setVideoAdd
} from "../../../api";

export default {
  data() {
    return {
      form: {
        INSPECTION_SUBJECT: '',
        INSPECTED_DEPARTMENT_NAME: '',
        INSPECTED_CORPINFO_ID_NAME: '',
        INSPECTED_DEPARTMENT_ID: '',
        INSPECTED_SITEUSER_NAME: '',
        INSPECTED_SITEUSER_ID: '',
        INSPECTION_PLACE: '',
        INSPECTION_TYPE_NAME: '',
        INSPECTION_TYPE_OTHER: '',
        INSPECTION_TIME_START: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
        INSPECTION_TIME_END: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
        situationList: [{id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: ''}],
        inspectorList: [{
          id: Math.random(),
          inspectionUserShow: false,
          INSPECTION_INSPECTOR_ID: '',
          INSPECTION_DEPARTMENT_ID: '',
          INSPECTION_DEPARTMENT_NAME: '',
          INSPECTION_USER_ID: '',
          INSPECTION_USER_NAME: ''
        }],
        hiddenList: [],
        CREATTIME: '',
        INSPECTION_USER_OPINION: '',
        INSPECTION_USER_SIGN_IMG: ''
      },
      rules: {
        'INSPECTION_SUBJECT': {required: true, message: '请选择检查题目'},
        'INSPECTED_DEPARTMENT_NAME': {required: true, message: '请选择被检查单位'},
        'INSPECTED_SITEUSER_NAME': {required: true, message: '请选择被检查单位现场负责人'},
        'INSPECTION_PLACE': {required: true, message: '请输入检查场所'},
        'INSPECTION_TYPE_NAME': {required: true, message: '请选择检查类型'},
        'INSPECTION_TIME_START': {required: true, message: '请选择检查开始时间'},
        'INSPECTION_TIME_END': {required: true, message: '请选择检查结束时间'},
      },
      inspectedDepartmentTreeList: [],
      inspectionDepartmentTreeList: [],
      inspectionTypeTreeList: [],
      inspectedSiteuserShow: false,
      inspectionTimeStartShow: false,
      inspectionTimeEndShow: false,
      inspectedSiteuserColumns: [
        []
      ],
      inspectorList: [[]],
      INSPECTION_ID: '',
      vector: '',
      disabled: false,
      delSituations: [],
      delInspectors: [],
      popupShow: false,
      popupDisabled: false,
      hiddenForm: {
        id: Math.random(),
        ISRELEVANT: '2',//隐患类型
        hiddenImgs: [],
        hiddenVideos: [],
        HIDDENDESCR: '',
        HIDDENPART_NAME: '',
        HIDDENPART: '',
        HIDDENLEVEL_NAME: '',
        HIDDENLEVEL: '',
        HIDDENTYPE_NAME: '',
        HIDDENTYPE: '',
        DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
        LONGITUDE: '',
        LATITUDE: '',
        CREATOR_NAME: '',
        CREATOR: '',
        POSITIONDESC: '',
        SOURCE: '4',
        CORPINFO_ID: '',
        HIDDENFINDDEPT: ''
      },
      hiddenFormRules: {
        'hiddenImgs': {required: true, message: '请上传隐患照片'},
        'HIDDENDESCR': {required: true, message: '请输入隐患描述'},
        'HIDDENLEVEL_NAME': {required: true, message: '请选择隐患级别'},
        'HIDDENTYPE_NAME': {required: true, message: '请选择隐患类型'},
        'DISCOVERYTIME': {required: true, message: '请选择隐患发现时间'},
        'CREATOR_NAME': {required: true, message: '请选择隐患发现人'},
      },
      hiddenRegionTreeList: [],
      hiddenLevelTreeList: [
        {id: 'hiddenLevel1004', name: '轻微隐患'},
        {id: 'hiddenLevel1002', name: '一般隐患'},
      ],
      hiddenTypeTreeList: [],
      creatorList: [],
      delHiddens: [],
      delHiddenFiles: [],
      discoveryTimeShow: false,
      creatorShow: false,
      modalShow: false,
      videoUrl: '',

      signShow: false,
      type: ''
    }
  },
  async onLoad(event) {
    this.INSPECTION_ID = event.INSPECTION_ID
    this.vector = event.vector
    this.disabled = !(event.type === 'add' || event.type === 'edit');
    if (this.INSPECTION_ID) {
      await this.fnGetSafetyenvironmentalGoEdit()
    }
    this.type = event.type
    if (event.type === 'add' || event.type === 'edit') {
      await this.fnGetInspectedDepartment()
      await this.fnGetInspectionDepartment()
      await this.fnGetHiddenRegion()
      await this.fnGetHiddenType()
      // this.fnGetHiddenLevel()
      await this.fnGetInspectionType()
    }
  },
  computed: {
    userInfo() {
      return this.$store.getters.getUserInfo
    }
  },
  methods: {
    async fnGetInspectedDepartment() {
      let resData = await getInspectedDepartment({'CORPINFO_ID': ''});
      this.inspectedDepartmentTreeList = JSON.parse(resData.zTreeNodes);
    },
    async fnGetInspectionDepartment() {
      let resData = await getInspectionDepartment();
      this.inspectionDepartmentTreeList = JSON.parse(resData.zTreeNodes);
    },
    async fnGetHiddenRegion(id) {
      if (!id) {
        id = {parentId: '0', DEPARTMENT_ID: this.form.INSPECTED_DEPARTMENT_ID}
      }
      let resData = await getHiddenRegion(id);
      this.hiddenRegionTreeList = JSON.parse(resData.zTreeNodes);
    },
    async fnGetHiddenType() {
      let resData = await getHiddenType();
      this.hiddenTypeTreeList = JSON.parse(resData.zTreeNodes);
    },
    async fnGetHiddenLevel() {
      let resData = await getHiddenLevel();
      this.hiddenLevelTreeList = JSON.parse(resData.zTreeNodes);
    },
    async fnGetInspectionType() {
      let resData = await getInspectionType();
      this.inspectionTypeTreeList = JSON.parse(resData.zTreeNodes);
    },
    async fnGetDeptUser(detpId) {
      let resData = await getDeptUser({'DEPARTMENT_ID': detpId});
      return resData.userList;
    },
    async fnGetInspectors(detpId) {
      let resData = await getInspectors({'DEPARTMENT_ID': detpId});
      return resData.userList;
    },
    async fnGetSafetyenvironmentalGoEdit() {
      let resData = await getSafetyenvironmentalGoEdit({INSPECTION_ID: this.INSPECTION_ID})
      for (let i = 0; i < resData.pd.hiddenList.length; i++) {
        for (let j = 0; j < resData.pd.hiddenList[i].hiddenImgs.length; j++) {
          resData.pd.hiddenList[i].hiddenImgs[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenImgs[j].FILEPATH
        }
        for (let j = 0; j < resData.pd.hiddenList[i].hiddenVideos.length; j++) {
          resData.pd.hiddenList[i].hiddenVideos[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenVideos[j].FILEPATH
        }
      }
      console.log(resData.pd.inspectorVerifyList)
      this.form = resData.pd
    },
    showTree(ref, type) {
      if (this.popupDisabled) return;
      if (this.disabled) return;
      if (type === 'arr') this.$refs[ref][0]._show();
      else this.$refs[ref]._show()
    },
    confirmTree(e, list, index) {
      if (list === 'inspectedSiteuserColumns') {
        this.form.INSPECTED_DEPARTMENT_ID = e[0].id
        this.form.INSPECTED_DEPARTMENT_NAME = e[0].name
        this.form.INSPECTED_SITEUSER_NAME = ''
        this.form.INSPECTED_SITEUSER_ID = ''
        this.fnGetHiddenRegion({parentId: '0', DEPARTMENT_ID: e[0].id})
        this.fnGetDeptUser(e[0].id).then(res => {
          this.$set(this.inspectedSiteuserColumns, 0, res)
        })
      }
      if (list === 'inspectionTypeTreeList') {
        this.form.INSPECTION_TYPE = e[0].id
        this.form.INSPECTION_TYPE_NAME = e[0].name
      }
      if (list === 'inspectorList') {
        this.form.inspectorList[index].INSPECTION_DEPARTMENT_ID = e[0].id
        this.form.inspectorList[index].INSPECTION_DEPARTMENT_NAME = e[0].name
        this.form.inspectorList[index].INSPECTION_USER_NAME = ''
        this.form.inspectorList[index].INSPECTION_USER_ID = ''
        this.fnGetInspectors(e[0].id).then(res => {
          this.$set(this.inspectorList[0], index, res)
        })
      }
      if (list === 'hiddenRegionTreeList') {
        this.hiddenForm.HIDDENPART = e[0].id
        this.hiddenForm.HIDDENPART_NAME = e[0].name
      }
      if (list === 'hiddenLevelTreeList') {
        this.hiddenForm.HIDDENLEVEL = e[0].id
        this.hiddenForm.HIDDENLEVEL_NAME = e[0].name
      }
      if (list === 'hiddenTypeTreeList') {
        this.hiddenForm.HIDDENTYPE = e[0].id
        this.hiddenForm.HIDDENTYPE_NAME = e[0].name
      }
    },
    inspectedSiteuserConfirmPicker(e) {
      this.form.INSPECTED_SITEUSER_NAME = e.value[0].NAME
      this.form.INSPECTED_SITEUSER_ID = e.value[0].USER_ID
      this.inspectedSiteuserShow = false;
    },
    inspectionTimeStartConfirm(e) {
      this.form.INSPECTION_TIME_START = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
      this.inspectionTimeStartShow = false;
    },
    inspectionTimeEndConfirm(e) {
      this.form.INSPECTION_TIME_END = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
      this.inspectionTimeEndShow = false;
    },
    addSituation() {
      this.form.situationList.push({id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: ''})
    },
    removeSituation(item, index) {
      uni.showModal({
        title: '提示',
        cancelText: '确认',
        confirmText: '取消',
        content: '确定删除检查情况吗?',
        success: (res) => {
          if (res.cancel) {
            this.form.situationList.splice(index, 1)
            if (item.INSPECTION_SITUATION_ID) {
              this.delSituations.push(item.INSPECTION_SITUATION_ID)
            }
          }
        }
      });
    },
    addInspector() {
      this.form.inspectorList.push(
          {
            id: Math.random(),
            inspectionUserShow: false,
            INSPECTION_INSPECTOR_ID: '',
            INSPECTION_DEPARTMENT_ID: '',
            INSPECTION_DEPARTMENT_NAME: '',
            INSPECTION_USER_ID: '',
            INSPECTION_USER_INDEX: '',
            INSPECTION_USER_NAME: ''
          }
      )
      console.info(this.form.inspectorList)
    },
    removeInspector(item, index) {
      uni.showModal({
        title: '提示',
        cancelText: '确认',
        confirmText: '取消',
        content: '确定移除检查人员吗?',
        success: (res) => {
          if (res.cancel) {
            this.form.inspectorList.splice(index, 1);
            if (item.INSPECTION_INSPECTOR_ID) {
              this.delInspectors.push(item.INSPECTION_INSPECTOR_ID)
            }
          }
        }
      });
    },
    inspectionUserShowPicker(index) {
      if (this.disabled) return;
      this.form.inspectorList[index].inspectionUserShow = true
    },
    inspectionUserConfirmPicker(e, index) {
      this.form.inspectorList[index].INSPECTION_USER_ID = e.value[0].USER_ID
      this.form.inspectorList[index].INSPECTION_USER_NAME = e.value[0].NAME
      this.form.inspectorList[index].inspectionUserShow = false
      this.form.inspectorList[index].USER_SIDE = e.value[0].USER_SIDE
    },
    async fnSubmit() {
      for (const key in this.rules) {
        if (!this.form[key]) {
          uni.showToast({
            title: this.rules[key].message,
            icon: "none"
          })
          return;
        }
      }
      for (let i = 0; i < this.form.situationList.length; i++) {
        if (!this.form.situationList[i].SITUATION) {
          uni.showToast({
            title: `请填写第${i + 1}项检查情况`,
            icon: 'none'
          })
          return
        }
      }
      for (let i = 0; i < this.form.inspectorList.length; i++) {
        if (!this.form.inspectorList[i].INSPECTION_USER_NAME) {
          uni.showToast({
            title: `请选择第${i + 1}项检查人员`,
            icon: 'none'
          })
          return
        }
      }
      if (this.form.INSPECTION_USER_OPINION) {
        if (!this.form.INSPECTION_USER_SIGN_IMG) {
          uni.showToast({
            title: `您还未签字`,
            icon: 'none'
          })
          return
        }
      }
      let vector = 0
      for (let x in this.form.inspectorList) {
        vector = 0
        for (let y in this.form.inspectorList) {
          if (this.form.inspectorList[y].INSPECTION_USER_ID === this.form.inspectorList[x].INSPECTION_USER_ID) vector++
        }
        if (vector > 1) {
          uni.showToast({
            title: '检查人重复!请检查数据',
            icon: "none"
          })
          return
        }
      }
      uni.showLoading({
        title: '加载中'
      });
      let index = this.form.inspectorList.findIndex(item => {
        return item.INSPECTION_USER_ID === this.userInfo.USER_ID
      })
      if (index < 0) {
        this.form.inspectorList.push(
            {
              INSPECTION_INSPECTOR_ID: '',	//检查人员主键
              INSPECTION_DEPARTMENT_ID: this.userInfo.DEPARTMENT_ID,	//检查人员部门ID
              INSPECTION_DEPARTMENT_NAME: this.userInfo.DEPARTMENT_NAME,
              INSPECTION_USER_ID: this.userInfo.USER_ID,		//检查人员ID
              INSPECTION_USER_INDEX: '',
              INSPECTION_USER_NAME: this.userInfo.NAME
            }
        )
      }
      let resData
      if (this.form.INSPECTION_USER_SIGN_IMG) {
        let params = {
          filePath: this.form.INSPECTION_USER_SIGN_IMG,
          name: 'FFILE',
          formData: {
            ...this.form,
            INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID,
            INSPECTION_STATUS: '1',
            delInspectors: this.delInspectors.join(','),
            delSituations: this.delSituations.join(','),
            delHiddens: this.delHiddens.join(','),
            delHiddenFiles: this.delHiddenFiles.join(','),
            INSPECTORJSON: JSON.stringify(this.form.inspectorList),
            SITUATIONJSON: JSON.stringify(this.form.situationList),
            HIDDENJSON: JSON.stringify(this.form.hiddenList),
            loading: false
          }
        }
        resData = this.INSPECTION_ID ? await setSafetyenvironmentalEdit_plus(params) : await setSafetyenvironmentalAdd_plus(params)
      } else {
        let params = {
          ...this.form,
          INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID,
          INSPECTION_STATUS: '1',
          delInspectors: this.delInspectors.join(','),
          delSituations: this.delSituations.join(','),
          delHiddens: this.delHiddens.join(','),
          delHiddenFiles: this.delHiddenFiles.join(','),
          INSPECTORJSON: JSON.stringify(this.form.inspectorList),
          SITUATIONJSON: JSON.stringify(this.form.situationList),
          HIDDENJSON: JSON.stringify(this.form.hiddenList),
          loading: false
        }
        resData = this.INSPECTION_ID ? await setSafetyenvironmentalEdit(params) : await setSafetyenvironmentalAdd(params)
      }

      let PromiseArr = []
      for (let i = 0; i < resData.pd.hiddenList.length; i++) {
        for (let j = 0; j < this.form.hiddenList[i].hiddenImgs.length; j++) {
          let imgFiles = []
          imgFiles.push({
            uri: this.form.hiddenList[i].hiddenImgs[j].url,
            FFILE: this.form.hiddenList[i].hiddenImgs[j].url,
          })
          PromiseArr.push(this.fnSetImgFilesAdd(imgFiles, resData.pd.hiddenList[i].HIDDEN_ID))
        }
        for (let j = 0; j < this.form.hiddenList[i].hiddenVideos.length; j++) {
          PromiseArr.push(this.fnSetVideoAdd(this.form.hiddenList[i].hiddenVideos[j].url, resData.pd.hiddenList[i].HIDDEN_ID))
        }
      }
      Promise.all(PromiseArr).then(() => {
        uni.hideLoading()
        uni.showToast({
          title: this.INSPECTION_ID ? '修改成功' : '添加成功',
        })
        if (this.vector !== 'list') {
          uni.$u.route({
            type: 'navigateBack'
          })
        } else {
          uni.$u.route({
            type: 'navigateBack',
            delta: 2
          })
        }
      }).catch((e) => {
        uni.showToast({
          title: '添加失败!',
          icon: 'error',
          duration: 2000
        });
      })
    },
    async fnSetImgFilesAdd(imgFiles, FOREIGN_KEY) {
      if (imgFiles[0].uri.indexOf('qgqy.qhdsafety.com') > 0) {
        return await function () {
          console.log('ok')
        }
      }
      return await setImgFilesAdd({
        files: imgFiles,
        formData: {
          FOREIGN_KEY,
          TYPE: '3'
        },
        loading: false
      })
    },
    async fnSetVideoAdd(filePath, FOREIGN_KEY) {
      if (filePath && filePath.indexOf('qgqy.qhdsafety.com') > 0) {
        return await function () {
          console.log('ok')
        }
      }
      return await setVideoAdd({
        filePath,
        name: 'FFILE',
        formData: {
          FOREIGN_KEY,
          TYPE: 102,
          CORPINFO_ID: this.userInfo.CORPINFO_ID,
        },
        loading: false
      })
    },
    addHidden() {
      this.clearHiddenForm()
      this.creatorList = [[{NAME: this.userInfo.NAME, USER_ID: this.userInfo.USER_ID}]]
      this.form.inspectorList.forEach(item => {
        let index = this.creatorList[0].findIndex(items => items.USER_ID === item.INSPECTION_USER_ID)
        if (index < 0) {
          this.creatorList[0].push({
            USER_ID: item.INSPECTION_USER_ID,
            NAME: item.INSPECTION_USER_NAME,
            DEPARTMENT_ID: item.INSPECTION_DEPARTMENT_ID
          })
        }
      })
      this.popupShow = true
      this.popupDisabled = false
    },
    showHidden(item) {
      this.clearHiddenForm()
      this.creatorList = [[]]
      this.form.inspectorList.forEach(item => {
        this.creatorList[0].push({
          USER_ID: item.INSPECTION_USER_ID,
          NAME: item.INSPECTION_USER_NAME,
          DEPARTMENT_ID: item.INSPECTION_DEPARTMENT_ID
        })
      })
      this.hiddenForm = item
      this.popupShow = true
      this.popupDisabled = true
    },
    clearHiddenForm() {
      this.hiddenForm = {
        id: Math.random(),
        ISRELEVANT: '2',//隐患类型
        hiddenImgs: [],
        hiddenVideos: [],
        HIDDENDESCR: '',
        HIDDENPART_NAME: '',
        HIDDENPART: '',
        HIDDENLEVEL_NAME: '',
        HIDDENLEVEL: '',
        HIDDENTYPE_NAME: '',
        HIDDENTYPE: '',
        DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
        LONGITUDE: '',
        LATITUDE: '',
        CREATOR_NAME: '',
        CREATOR: '',
        POSITIONDESC: '',
        SOURCE: '4'
      }
    },
    removeHidden(item, index) {
      uni.showModal({
        title: '提示',
        cancelText: '确认',
        confirmText: '取消',
        content: '确定移除发现问题吗?',
        success: (res) => {
          if (res.cancel) {
            this.form.hiddenList.splice(index, 1);
            if (item.HIDDEN_ID) {
              this.delHiddens.push(item.HIDDEN_ID)
            }
          }
        }
      });
    },
    afterRead(event) {
      this.hiddenForm.hiddenImgs = [...this.hiddenForm.hiddenImgs, ...event.file]
    },
    deletePic(event) {
      if (this.hiddenForm.hiddenImgs[event.index].IMGFILES_ID) {
        this.delHiddenFiles.push(this.hiddenForm.hiddenImgs[event.index].FILEPATH)
      }
      this.hiddenForm.hiddenImgs = this.hiddenForm.hiddenImgs.filter(item => item.url !== event.file.url)
    },
    afterRead1(event) {
      this.hiddenForm.hiddenVideos = [...this.hiddenForm.hiddenVideos, ...event.file]
    },
    deletePic1(event) {
      this.hiddenForm.hiddenVideos = this.hiddenForm.hiddenVideos.filter(item => item.url !== event.file.url)
    },
    discoveryTimeConfirm(e) {
      this.hiddenForm.DISCOVERYTIME = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
      this.discoveryTimeShow = false;
    },
    showMapModal() {
      let _this = this
      uni.navigateTo({
        url: '/pages/map/map',
        events: {
          acceptDataFromOpenedPage: function (e) {
            _this.hiddenForm.LONGITUDE = e.data.longitue;
            _this.hiddenForm.LATITUDE = e.data.latitude;
          }
        },
        success: function (res) {
          res.eventChannel.emit('acceptDataFromOpenerPage', {data: {title: '安全环保检查发起'}})
        }
      })
    },
    creatorConfirmPicker(e) {
      this.hiddenForm.CREATOR = e.value[0].USER_ID
      this.hiddenForm.CREATOR_NAME = e.value[0].NAME
      this.hiddenForm.HIDDENFINDDEPT = e.value[0].DEPARTMENT_ID
      this.creatorShow = false;
    },
    popupClose() {
      this.popupShow = false
    },
    popupSave() {
      for (const key in this.hiddenFormRules) {
        if (!this.hiddenForm[key]) {
          uni.showToast({
            title: this.hiddenFormRules[key].message,
            icon: "none"
          })
          return;
        }
      }
      this.hiddenForm.SOURCE = 4
      this.form.hiddenList.push(this.hiddenForm)
      this.popupClose()
    },
    previewImage(current) {
      if (false) {
        uni.previewImage({
          urls: [current],
          current
        });
      }
    },
    previewVideo(videoUrl) {
      this.modalShow = true;
      this.videoUrl = videoUrl;
    },
    signConfirm({path}) {
      this.form.INSPECTION_USER_SIGN_IMG = path
    },
  },
}
</script>

<style scoped>
.flex-1 {
  flex: 1;
}

.title {
  min-width: 170rpx;
}

.textarea-box {
  width: 100%;
}
</style>