<template>
  <div>
    <LHeader :text="text"></LHeader>
    <keep-alive>
      <van-form
        @submit="onSubmit"
        :scroll-to-error="true"
        :show-error="false"
        validate-trigger="onSubmit"
      >
        <div
          style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;"
        >
          <img
            src="@/assets/accidentIcon/bookmark.svg"
            alt=""
            style="position: relative;top: 32%;transform: translateY(-50%);"
          />
          现有风险信息
        </div>
        <van-field
          readonly
          required
          name="userName"
          v-model="form.userName"
          label="评估人"
          placeholder="请输入"
        />
        <van-field
          readonly
          required
          name="projectName"
          v-model="form.projectName"
          label="所属项目"
          placeholder="请输入"
        />
        <van-field
          readonly
          required
          name="buildingName"
          v-model="form.buildingName"
          label="所属建筑物"
          placeholder="请输入 "
        />

        <van-field
          readonly
          required
          clickable
          name="floorName"
          v-model="form.floorName"
          label="所属楼层"
          placeholder="请选择"
          :rules="[{ required: true, message: '所属楼层不能为空' }]"
        />

        <div style="display: flex;">
          <van-field
            readonly
            required
            name="roomName"
            v-model="form.roomName"
            label="所属房间"
            placeholder="请输入"
            :rules="[{ required: true, message: '所属房间不能为空' }]"
          />
        </div>

        <van-field
          readonly
          required
          clickable
          name="name"
          v-model="form.name"
          label="危险源名称"
          placeholder="请输入"
          :rules="[{ required: true, message: '危险源名称不能为空' }]"
        />
        <van-field
          v-model="form.factor"
          readonly
          required
          name="factor"
          label="风险因素"
          placeholder="请选择"
          :rules="[{ required: true, message: '风险因素不能为空' }]"
        />

        <van-field
          readonly
          v-model="form.type"
          required
          name="type"
          label="准事故类型"
          placeholder="请选择"
          :rules="[{ required: true, message: '准事故类型不能为空' }]"
        />

        <van-field
          required
          name="presenceLocation"
          v-model="form.presenceLocation"
          label="存在部位"
          placeholder="请输入"
          :rules="[{ required: true, message: '存在部位不能为空' }]"
        />

        <div
          style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;"
        >
          <img
            src="@/assets/accidentIcon/bookmark.svg"
            alt=""
            style="position: relative;top: 32%;transform: translateY(-50%);"
          />
          风险图片
        </div>
        <van-field name="hdPicture1" label="风险图片">
          <template #input>
            <van-uploader
              @delete="deleteFile(...arguments, 'pictureFile')"
              multiple
              :max-count="5"
              upload-text="最多上传五个"
              v-model="uploaderImg"
            >
              <template slot="default">
                <!-- 11111111111 -->
                <div
                  style="
                                    width: 2.13333rem;
                                    height: 2.13333rem;
                                    background: #f7f8fa;
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-direction: column;
                                "
                >
                  <img
                    src="@/assets/upload/pic.png"
                    alt=""
                    style="width: 0.64rem; height: 0.64rem"
                  />
                  <span class="van-uploader__upload-text">最多上传五个</span>
                </div>
              </template>
            </van-uploader>
          </template>
        </van-field>
        <div
          style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;"
        >
          <img
            src="@/assets/accidentIcon/bookmark.svg"
            alt=""
            style="position: relative;top: 32%;transform: translateY(-50%);"
          />
          已采取的管控措施
        </div>
        <van-field
          label="技术措施"
          v-model="form.measuresProject"
          name="measuresProject"
          type="textarea"
          rows="3"
          autosize
          placeholder="请输入"
        >
        </van-field>
        <van-field name="measuresProjectFile[]" label="技术措施附件">
          <template #input>
            <van-uploader
              multiple
              :max-count="5"
              upload-text="最多上传五个"
              v-model="measuresProjectFile"
              accept="file"
              @delete="deleteFile(...arguments, 'measuresProjectFile')"
            >
              <template slot="default">
                <div
                  style="
                                    width: 2.13333rem;
                                    height: 2.13333rem;
                                    background: #f7f8fa;
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-direction: column;
                                "
                >
                  <img
                    src="@/assets/upload/file.png"
                    alt=""
                    style="width: 0.64rem; height: 0.64rem"
                  />
                  <span class="van-uploader__upload-text">最多上传五个</span>
                </div>
              </template>
            </van-uploader>
          </template>
        </van-field>
        <van-field
          label="管理措施"
          v-model="form.measuresAdministration"
          name="measuresAdministration"
          type="textarea"
          rows="3"
          autosize
          placeholder="请输入"
        >
        </van-field>
        <van-field name="measuresAdministrationFile[]" label="管理措施附件">
          <template #input>
            <van-uploader
              multiple
              :max-count="5"
              upload-text="最多上传五个"
              v-model="measuresAdministrationFile"
              accept="file"
              @delete="deleteFile(...arguments, 'measuresAdministrationFile')"
            >
              <template slot="default">
                <div
                  style="
                                    width: 2.13333rem;
                                    height: 2.13333rem;
                                    background: #f7f8fa;
                                    display: flex;
                                    align-items: center;
                                    justify-content: center;
                                    flex-direction: column;
                                "
                >
                  <img
                    src="@/assets/upload/file.png"
                    alt=""
                    style="width: 0.64rem; height: 0.64rem"
                  />
                  <span class="van-uploader__upload-text">最多上传五个</span>
                </div>
              </template>
            </van-uploader>
          </template>
        </van-field>
        <van-field
          label="应急措施"
          v-model="form.measuresEmergency"
          name="measuresEmergency"
          type="textarea"
          rows="3"
          autosize
          placeholder="请输入"
        >
        </van-field>
        <van-field name="measuresEmergencyFile[]" label="应急措施附件">
          <template #input>
            <van-uploader
              multiple
              :max-count="5"
              upload-text="最多上传五个"
              v-model="measuresEmergencyFile"
              accept="file"
              @delete="deleteFile(...arguments, 'measuresEmergencyFile')"
            >
              <template slot="default">
                <!-- 11111111111 -->
                <div
                  style="
                    width: 2.13333rem;
                    height: 2.13333rem;
                    background: #f7f8fa;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    flex-direction: column;
                "
                >
                  <img
                    src="@/assets/upload/file.png"
                    alt=""
                    style="width: 0.64rem; height: 0.64rem"
                  />
                  <span class="van-uploader__upload-text">最多上传五个</span>
                </div>
              </template>
            </van-uploader>
          </template>
        </van-field>

        <van-field
          v-model="form.measuresDeptName"
          name="measuresDeptName"
          label="管控责任单位 "
          type="input"
          rows="1"
          autosize
          placeholder="请输入"
          list="measure-deptname"
          @input="measuresDeptNameChange"
        />
        <datalist id="measure-deptname">
          <option
            :value="item.measuresDeptName"
            v-for="item in measureDeptList"
            :key="item.measuresDeptName"
          ></option>
        </datalist>
        <van-field
          v-model="form.measuresUserName"
          name="measuresUserName"
          label="管控责任人 "
          type="input"
          rows="1"
          autosize
          placeholder="请输入"
          list="measure-name"
          @input="measuresUserNameChange"
        />
        <datalist id="measure-name">
          <option
            v-for="item in measureNameList"
            :key="item.measuresUserName"
            :value="item.measuresUserName"
          ></option>
        </datalist>
        <van-field
          v-model="form.measuresUserPhone"
          name="measuresUserPhone"
          label="管控责任人联系方式"
          type="input"
          rows="1"
          autosize
          placeholder="请输入"
          maxlength="11"
        />
        <!-- <div
          style="height: 1rem;font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑';font-weight: 700;line-height: 1rem;"
        >
          <img
            src="@/assets/accidentIcon/bookmark.svg"
            alt=""
            style="position: relative;top: 32%;transform: translateY(-50%);"
          />
          判断依据
        </div> -->
        <van-field
          clickable
          name="referenceBasis"
          :value="form.referenceBasis"
          label="判断依据"
          placeholder="请选择"
          @click="selectData('referenceBasis', false)"
        />
        <van-field
          readonly
          v-model="form.level"
          required
          name="level"
          label="风险等级"
          placeholder="请选择"
          @click="seletGrade"
          :rules="[{ required: true, message: '风险等级不能为空' }]"
        />
        <van-dialog
          v-model="showGradeDialog"
          title="风险评测配置"
          :show-cancel-button="false"
          :show-confirm-button="false"
        >
          <div class="dialogContain">
            <van-collapse v-model="activeNames">
              <van-collapse-item title="风险模型" name="1">
                <van-field
                  readonly
                  required
                  name="level"
                  label="当前风险模型"
                  placeholder="LS风险矩阵评估模型"
                />
              </van-collapse-item>
              <van-collapse-item title="风险模型配置" name="2">
                <van-popover
                  v-model="showPopover"
                  trigger="click"
                  :actions="columnsRiskRank"
                  @select="onSelect"
                >
                  <template #reference>
                    <van-field
                      v-model="possibleValue"
                      readonly
                      required
                      name="level"
                      label="发生的可能性"
                      placeholder="请选择"
                    />
                  </template>
                </van-popover>
                <van-popover
                  v-model="showPopoveSetRank"
                  trigger="click"
                  :actions="columnsSetRank"
                  @select="onSelectSetRank"
                >
                  <template #reference>
                    <van-field
                      v-model="severityValue"
                      readonly
                      required
                      name="level"
                      label="后果严重程度"
                      placeholder="请选择"
                    />
                  </template>
                </van-popover>
              </van-collapse-item>
            </van-collapse>
            <van-row type="flex" justify="center" style="margin-top:10px">
              <van-col span="6"
                ><van-button
                  size="small"
                  plain
                  native-type="button"
                  type="info"
                  @click="showGradeDialog = false"
                  >取消</van-button
                ></van-col
              >
              <van-col span="6"
                ><van-button
                  size="small"
                  type="info"
                  native-type="button"
                  @click="goResultPage"
                  >开始测评</van-button
                ></van-col
              >
            </van-row>
          </div>
        </van-dialog>
        <!-- 楼层弹出层 -->
        <van-popup
          v-model="ShowfloorList"
          position="bottom"
          :style="{ height: '100%' }"
        >
          <selectFloor
          v-if="ShowfloorList"
            :listdata="floorSource"
            @closeSlect="closeSlectfloor"
            @saveSlect="saveSlectfloor"
          ></selectFloor>
        </van-popup>

        <!-- 单选弹出层 -->
        <van-popup v-model="showSelect" position="bottom">
          <van-picker
          v-if="showSelect"
            show-toolbar
            value-key="dictValue"
            :columns="columnsData"
            @confirm="saveSelect"
            @cancel="showSelect = false"
          />
        </van-popup>
        <!-- 复选弹出层 -->
        <van-popup
          v-model="showCheckSelect"
          position="bottom"
          :style="{ height: '100%' }"
        >
          <selectList
          v-if="showCheckSelect"
            :listdata="columnsCheckData"
            @closeSlect="showCheckSelect = false"
            @saveSlect="saveCheckSelect"
          ></selectList>
        </van-popup>

        <!-- 房间弹出层 -->
        <van-popup v-model="showSource" position="bottom">
          <van-picker
          v-if="showSource"
            show-toolbar
            value-key="name"
            :columns="columnsSource"
            @confirm="onConSource"
            @cancel="showSource = false"
          />
        </van-popup>
        <!-- 管控责任单位 -->
        <van-popup
          v-model="measuresDept"
          position="bottom"
          :style="{ height: '100%' }"
        >
          <div
            class="van-picker__toolbar"
            style="position: absolute;width: 100%;top: 0;"
          >
            <button
              type="button"
              class="van-picker__cancel"
              v-on:click="
                {
                  form.measuresDeptId = 0;
                  projectDept = false;
                }
              "
            >
              取消</button
            ><button
              type="button"
              class="van-picker__confirm"
              @click="closeDept"
            >
              确认
            </button>
          </div>
          <div style="display:flex;margin-top: 44px;">
            <selectDept @changeDept="changeDept"></selectDept>
          </div>
        </van-popup>
        <!-- 管控责任人 -->
        <van-popup v-model="showTrouble" position="bottom">
          <van-picker
            show-toolbar
            value-key="nickName"
            :columns="columnsTrouble"
            @confirm="onConTrouble"
            @cancel="showTrouble = false"
          />
        </van-popup>
        <div style="margin: 16px 16px 0">
            <van-button
             :loading="loadingStatus"
             :loading-text="loadingTextSave"
              round
              block
              type="info"
              @click="onSubmit('save',$event)"
              >保存</van-button
            >
       </div>
        <div style="margin: 16px 16px 0">
          <van-button
            :loading="loadingStatus"
            :loading-text="loadingText"
            round
            block
            type="info"
            native-type="submit"
            >提交</van-button
          >
        </div>
      </van-form>
    </keep-alive>
    <!-- v-if="this.$route.params.isView"  -->
    <div style="margin: 10px 16px 0px; padding-bottom: 16px">
      <van-button round block type="warning" @click.native="cancel"
        >取消</van-button
      >
    </div>
  </div>
</template>

<script>
import LHeader from "@/components/header.vue";
import selectDept from "@/components/selectDept/index.vue";
import SelectList from "@/components/selectList.vue";
import selectFloor from "@/components/selectFloor.vue";
import { getUserInfo, getLocalUserInfo } from "@/utils/userInfo";
import { getFun, postFun } from "@/service/table.js";

export default {
  name: "addPresent",
  components: {
    LHeader,
    selectDept,
    SelectList,
    selectFloor
  },
  // 退出前，将测评模型数据清空
  beforeRouteLeave(to,_,next){
    if(to.name!='assessModelStep1'){
      this.$store.commit('SET_ASSESS_STEP2',"") 
      this.$store.commit('SET_ASSESS_STEP1',"") 
      this.$store.commit('SET_ASSESS_RESULT',{
         level: "",
          score: "",
      }) 
    }
    next()
  },
  data() {
    return {
      loadingStatus: false,
      loadingText: "提交...",
      loadingTextSave: "保存...",
      measureNameList: [],
      measureDeptList: [],
      isEdit: false,
      existingId: 0,
      measuresDept: false,
      ShowfloorList: false,
      floorSource: [],
      dataName: "",
      // 单选
      showSelect: false,
      columnsData: [],

      // 多选
      showCheckSelect: false,
      columnsCheckData: [],
      ShowAccidentList: false,
      ShowSelectList: false,
      columnsAccident: [],
      showPopoveSetRank: false,
      activeNames: ["1"],
      showPopover: false,
      showGradeDialog: false,
      taskId: "",
      text: "添加现状风险",
      id: "",
      isTimely: 1,
      active: 0,
      form: {},
      projectId: "", // 所属工程
      projectName: "", // 所属工程
      projectDirectorName: "", // 所属工程
      projectDirector: "", // 所属工程
      showProjectName: false,
      show: false,
      columnsProjectName: [],
      factor: "", //风险因素
      showFactor: false,
      source: "", //风险源
      userPrefix: "", //风险源
      showSource: false,
      columnsSource: [],
      trouble: "", //事故类型
      showTrouble: false,
      columnsTrouble: [],
      setRank: "", //风险定级
      showSetRank: false,
      columnsSetRank: ["矩阵式定级", "其他定级方式"],
      riskRank: "", // 风险等级
      showRiskRank: false,
      columnsRiskRank: ["重大风险", "较大风险", "一般风险", "低风险"],
      showSetRankMode: false, // 是否显示定级方式
      setRankMode: "", // 定级方式文字
      setRankModeImg: [], // 定级方式图片
      uploaderImg: [], // 定级方式图片
      location: "", //风险部位
      control: "", //管控层级
      riskName: "", //管控层级
      showControl: false,
      columnsControl: ["项目级", "企业级"],
      mainDutyDept: "", // 主责部门
      mainDutyDeptId: "",
      showMainDutyDept: false,
      columnsMainDutyDept: [],
      mainDutyPeopLe: "", // 主责人员
      mainDutyPeopLeId: "",
      showMainDutyPeopLe: false,
      columnsMainDutyPeopLe: [],
      technology: "", //技术措施文字
      technologyImg: [], //技术措施图片
      administration: "", //管理措施文字
      measuresAdministrationFile: [], //管理措施图片
      measuresProjectFile: [], //管理措施图片
      measuresEmergencyFile: [], //管理措施图片
      urgent: "", //应急措施文字
      urgentImg: [], //应急措施图片
      returnCause: "", // 退回原因
      isShowreturnCause: false,
      possibleValue: "",
      possibleScore: 0,
      severityValue: "",
      severityScore: 0
    };
  },
  created() {
    this.isEdit = this.$route.params.isEdit;
    this.existingId = this.$route.params.existingId;
    this.inherentId = this.form.inherentId =
      this.$route.params.inherentId || sessionStorage.getItem("inherentId");
  },
  mounted() {
    if (sessionStorage.getItem("presentForm")) {
      this.form = JSON.parse(sessionStorage.getItem("presentForm"));
      const {level,score} = this.$store.state.assessModel.result
      this.form.level =level;
      this.form.levelScore =score;
      const getImg = (key)=>this.$store.getters.present(key)
      this.uploaderImg = getImg('uploaderImg')||[];
      this.measuresAdministrationFile = getImg('measuresAdministrationFile');
      this.measuresEmergencyFile = getImg('measuresEmergencyFile');
      this.measuresProjectFile = getImg('measuresProjectFile');
      this.$store.commit('CLEAR_PRESENT_IMG')
      sessionStorage.removeItem("presentForm");
    } else {
      this.postReturnEcho();
    }
  },
  methods: {

    // 开始评测
    goResultPage() {
      sessionStorage.setItem("presentForm", JSON.stringify(this.form));
      /* measuresAdministrationFile: [], //管理措施图片
      measuresProjectFile: [], //管理措施图片
      measuresEmergencyFile: [], //管理措施图片 */
      this.$store.commit('SET_PRESENT_IMG',[{
        key:'uploaderImg',
        value:this.uploaderImg
      },{
        key:'measuresAdministrationFile',
        value:this.measuresAdministrationFile
      },{
        key:'measuresProjectFile',
        value:this.measuresProjectFile
      },{
        key:'measuresEmergencyFile',
        value:this.measuresEmergencyFile
      },])
      this.$router.push({
        name: "resultPage",
        params: {
          score: this.severityScore * this.possibleScore,
          possibleValue:this.possibleValue,
          severityValue:this.severityValue,
        }
      });
    },
    measuresUserNameChange(e) {
      getFun(
        `/risk/plan/inherent/getResponsibilityPersons?personName=${e}&projectId=${this.form.projectId}`
      ).then(res => {
        this.measureNameList = res.data;
        this.measureNameList.forEach(item => {
          if (item.measuresUserName == e)
            this.form.measuresUserPhone = item.measuresUserPhone;
        });
      });
    },
    measuresDeptNameChange(e) {
      getFun(
        `/risk/plan/inherent/getResponsibilityUnits?unitName=${e}&projectId=${this.form.projectId}`
      ).then(res => {
        this.measureDeptList = res.data;
      });
    },
    // 请求详情数据
    postReturnEcho() {
      this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });

      if (this.isEdit) {
        getFun(`/risk/plan/existing/details/${this.existingId}`)
          .then(res => {
            this.form = res.data;
            this.$store.commit('SET_ASSESS_STEP1',this.form.factorItems)
            this.$store.commit('SET_ASSESS_STEP2',this.form.evaluationItemIds)

            this.uploaderImg = (res.data.pictureFile || []).map(item => {
              return {
                ...item,
                url: item.filePath
              };
            });
            this.measuresProjectFile = (res.data.measuresProjectFile || []).map(
              item => {
                return {
                  ...item,
                  url: item.filePath
                };
              }
            );
            this.measuresAdministrationFile = (
              res.data.measuresAdministrationFile || []
            ).map(item => {
              return {
                ...item,
                url: item.filePath
              };
            });
            this.measuresEmergencyFile = (
              res.data.measuresEmergencyFile || []
            ).map(item => {
              return {
                ...item,
                url: item.filePath
              };
            });
          })
          .catch(() => {
            this.$toast.clear();
          });
      } else {
        getFun(`/risk/plan/inherent/details/${this.inherentId}`)
          .then(res => {
            this.form.userId = res.data.userId;
            this.form.userName = res.data.userName;
            this.form.projectId = res.data.projectId;
            this.form.projectName = res.data.projectName;
            this.form.buildingId = res.data.buildingId;
            this.form.buildingName = res.data.buildingName;
            this.form.floorId = res.data.floorId;
            this.form.floorName = res.data.floorName;
            this.form.roomId = res.data.roomId;
            this.form.roomName = res.data.roomName;
            this.form.name = res.data.name;
            this.form.factor = res.data.factor;
            this.form.type = res.data.type;
            this.form.planId = res.data.planId;

            /* 下面这些值还要可以输入，用上面的方法赋值后没有办法输入新的值*/
            const {
              measuresProject,
              measuresEmergency,
              measuresAdministration,
              measuresDeptName,
              measuresUserName,
              measuresUserPhone,
              presenceLocation
            } = res.data;
            const formValue = {
              measuresProject,
              measuresEmergency,
              measuresAdministration,
              measuresDeptName,
              measuresUserName,
              measuresUserPhone,
              presenceLocation
            };
            this.form = {
              ...this.form,
              ...formValue
            };
          })
          .catch(() => {
            this.$toast.clear();
          });
      }
    },
    // 项目负责人
    onConTrouble(value) {
      if (!value) {
        this.showTrouble = false;
        return;
      }
      this.form[this.userPrefix + "Id"] = value.userId;
      this.form[this.userPrefix + "Name"] = value.nickName;
      this.showTrouble = false;
    },
    getUserData(e) {
      this.userPrefix = e;
      if (!this.form.measuresDeptId) {
        this.$toast({
          title: "提示",
          message: "请选择管控责任单位!"
        });
        return false;
      }
      this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      getFun(`/risk/plan/user/list/${this.form.measuresDeptId}`).then(res => {
        if (res.code == 200) {
          this.columnsTrouble = res.data;
          // 对数据进行赋值
          this.$toast.clear();
          this.showTrouble = true;
        } else {
          this.$toast.clear();
        }
      });
    },
    changeDept(id, name) {
      this.form.measuresDeptId = id;
      this.form.measuresDeptName = name;
    },
    closeDept() {
      this.measuresDept = false;
    },
    selectData(dataName, isSinge) {
      this.dataName = dataName;
      getFun(
        `/risk/plan/dict/data/list?dictType=risk_plan_${dataName.toLowerCase()}`
      )
        .then(res => {
          if (isSinge) {
            this.columnsData = res.data;
            this.showSelect = true;
          } else {
            this.columnsCheckData = res.data;
            this.showCheckSelect = true;
          }
        })
        .catch(() => {
          this.$toast.fail("加载失败,请稍后再试");
        });
    },
    saveSelect(data) {
      this.form[this.dataName] = data.dictValue;
      this.showSelect = false;
    },
    saveCheckSelect(data) {
      this.form[this.dataName] = data.join(",");
      this.showCheckSelect = false;
    },
    seletFloor(name) {
      this.ShowfloorList = true;
      this.userPrefix = name;
    },
    seletRoom(name) {
      this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      this.userPrefix = name;
      getFun(`/risk/plan/room/list/${this.form.floorId}`)
        .then(res => {
          this.$toast.clear();
          this.showSource = true;
          this.columnsSource = res.data;
        })
        .catch(() => {
          this.$toast.fail("加载失败,请稍后再试");
        });
    },
    //风险因素
    seletFactor(name) {
      // this.showTrouble = true;
      this.riskName = name;
      this.ShowSelectList = true;
    },
    //准事故类型
    seletType(name) {
      // this.showTrouble = true;
      this.riskName = name;
      this.ShowAccidentList = true;
    },
    //开始测评 
    seletGrade(name) {
      this.saveFormData()
      // this.getGradeList("possibility");
      // this.getGradeList("severity");
      // this.showGradeDialog = true;
      this.$router.push('/assess/model/step1')
    },
    //风险模型配置
    getGradeList(type) {
      // possibility 可能性 severity 严重性
      getFun(`/risk/plan/matrix/${type}/list`).then(res => {
        let arr = [];
        res.data.forEach(item => {
          arr.push({
            text: item.title,
            type: item.type,
            sort: item.sort,
            score: item.score
          });
        });
        if (type === "possibility") {
          this.columnsRiskRank = arr;
        } else {
          this.columnsSetRank = arr;
        }
      });
    },
    closeSlectfloor() {
      this.ShowfloorList = false;
    },
    saveSlectfloor(data) {
      this.form.floorId = data.id;
      this.form.floorName = data.text;
      this.ShowfloorList = false;
    },
    closeSlect() {
      this.ShowSelectList = false;
    },
    saveSlect(data) {
      this.form.factor = data.join(",");
      this.ShowSelectList = false;
    },
    closeSlectAccident() {
      this.ShowAccidentList = false;
    },
    saveSlectAccident(data) {
      this.form.type = data.join(",");
      this.ShowAccidentList = false;
    },
    onSelect(data) {
      this.possibleValue = data.text;
      this.possibleScore = data.score;
    },
    onSelectSetRank(data) {
      this.severityValue = data.text;
      this.severityScore = data.score;
    },
    // 防止跳转页面后数据丢失
    saveFormData() {  
      sessionStorage.setItem("presentForm", JSON.stringify(this.form));
      /* measuresAdministrationFile: [], //管理措施图片
      measuresProjectFile: [], //管理措施图片
      measuresEmergencyFile: [], //管理措施图片 */
      this.$store.commit('SET_PRESENT_IMG',[{
        key:'uploaderImg',
        value:this.uploaderImg
      },{
        key:'measuresAdministrationFile',
        value:this.measuresAdministrationFile
      },{
        key:'measuresProjectFile',
        value:this.measuresProjectFile
      },{
        key:'measuresEmergencyFile',
        value:this.measuresEmergencyFile
      },])
      // this.$router.push({
      //   name: "resultPage",
      //   params: {
      //     score: this.severityScore * this.possibleScore
      //   }
      // });
    },
    performTasks() {},
    // 点击预览图
    clickPre(e) {
      console.log(e);
      if (e.filePath) {
        this.videoUrl = e.filePath;
      } else {
        this.videoUrl = e.content;
      }
    },
    async deleteFile(val, detail, key) {
      // console.log(val,detail)
      if (val.fileId) {
        let formdata = new FormData();
        formdata.append("key", val["fileId"]);
        let res = await postFun("/mobile/remove", formdata);
        if (res) {
          this.$toast({
            title: "提示",
            message: "删除成功!"
          });
        } else {
          console.log("删除失败");
          this[key].splice(detail.index, 0, val);
        }
      }
    },
    jsonToFormData(config) {
      const formData = new FormData();
      //循环传入的值转换formData
      Object.keys(config).forEach(key => {
        formData.append(key, config[key]);
      });
      return formData;
    },
   onSubmit(values,event) {
      if(values=='save'){
        event.preventDefault();
      }
      // console.log('%c [ values ]-592', 'font-size:13px; background:pink; color:#bf2c9f;', values)
      var formDataJson = this.jsonToFormData(this.form);

      const assessModel = this.$store.state.assessModel;
      formDataJson.append('factorItems',assessModel.step1)
      formDataJson.append('evaluationItemIds',assessModel.step2)
      // let url = "/risk/plan/inherent";
      this.loadingStatus = true;
      let url = "/risk/plan/existing";
      // values.hdPicture1.forEach(item => {
      //   if (item.file) {
      //     formDataJson.append("pictureFile[]", item.file);
      //   } else {
      //     formDataJson.append("pictureFile[]", item.fileId);
      //   }
      // });
      // values["measuresProjectFile[]"].forEach(item => {
      //   if (item.file) {
      //     formDataJson.append("measuresProjectFile[]", item.file);
      //   } else {
      //     formDataJson.append("measuresProjectFile[]", item.fileId);
      //   }
      // });
      // values["measuresEmergencyFile[]"].forEach(item => {
      //   if (item.file) {
      //     formDataJson.append("measuresEmergencyFile[]", item.file);
      //   } else {
      //     formDataJson.append("measuresEmergencyFile[]", item.fileId);
      //   }
      // });
      // values["measuresAdministrationFile[]"].forEach(item => {
      //   if (item.file) {
      //     formDataJson.append("measuresAdministrationFile[]", item.file);
      //   } else {
      //     formDataJson.append("measuresAdministrationFile[]", item.fileId);
      //   }
      // });
       this.uploaderImg.forEach(item => {
        if (item.file) {
          formDataJson.append("pictureFile[]", item.file);
        } else {
          formDataJson.append("pictureFile[]", item.fileId);
        }
      });
      this.measuresAdministrationFile.forEach(item => {
        if (item.file) {
          formDataJson.append("measuresProjectFile[]", item.file);
        } else {
          formDataJson.append("measuresProjectFile[]", item.fileId);
        }
      });
      this.measuresEmergencyFile.forEach(item => {
        if (item.file) {
          formDataJson.append("measuresEmergencyFile[]", item.file);
        } else {
          formDataJson.append("measuresEmergencyFile[]", item.fileId);
        }
      });
      this.measuresAdministrationFile.forEach(item => {
        if (item.file) {
          formDataJson.append("measuresAdministrationFile[]", item.file);
        } else {
          formDataJson.append("measuresAdministrationFile[]", item.fileId);
        }
      });
      postFun(url, formDataJson)
        .then(res => {
          this.$toast.clear();
          this.$toast.success({
            message: "提交成功",
            duration: 2000
          });
          this.loadingStatus = false;
          history.go(-1);
        })
        .catch(() => {
          this.$toast.clear();
          this.$toast.fail("提交失败,请稍后再试");
          this.loadingStatus = false;
        });
      this.$toast.clear();
    },
    // 所属项目
    onConProjectName(value) {
      if (!value) {
        this.showProjectName = false;
        return;
      }
      this.projectId = value.id;
      this.projectName = value.projectName;
      this.showProjectName = false;
    },
    // 风险因素
    onConFactor(value) {
      if (!value) {
        this.showFactor = false;
        return;
      }
      this.factor = value.factorType;
      this.showFactor = false;
      this.source = "";
      this.trouble = "";
      // 请求风险源
      postHdSource(`/riskMain/showSourceName?factorType=${this.factor}`).then(
        res => {
          this.columnsSource = res.data;
        }
      );
    },
    // 风险源
    onConSource(value) {
      if (!value) {
        this.showSource = false;
        return;
      }
      this.form[this.userPrefix + "Id"] = value.id;
      this.form[this.userPrefix + "Name"] = value.name;
      this.showSource = false;
    },
    // 风险定级
    onConSetRank(value) {
      this.showSetRank = false;
      this.setRank = value;
      this.riskRank = "";
      if (this.setRank == "矩阵式定级") {
        this.showSetRank = false;
        this.$router.push({
          name: "matrix-grad"
        });
      }
    },
    // 自己定义风险等级点击方法
    myRiskRank() {
      if (this.setRank == "") {
        this.$toast("请先选择风险定级");
      } else if (this.setRank == "其他定级方式") {
        this.showRiskRank = true;
      }
    },
    // 风险等级
    onConRiskRank(value) {
      this.riskRank = value;
      this.showRiskRank = false;
    },

    // 管控层级
    onConControl(value) {
      this.control = value;
      this.showControl = false;
    },
    // 主责部门
    onConMainDutyDept(value) {
      this.mainDutyDeptId = value.deptId;
      this.mainDutyDept = value.deptName;
      this.showMainDutyDept = false;
      this.mainDutyPeopLe = "";
      // 请求主责人员
      let formdata = new FormData();
      formdata.append("organizationId", this.mainDutyDeptId);
      postHdPeople(`/riskMain/getUserList`, formdata).then(res => {
        this.columnsMainDutyPeopLe = res.data;
      });
    },
    // 主责人员
    onConMainDutyPeopLe(value) {
      this.mainDutyPeopLeId = value.userId;
      this.mainDutyPeopLe = value.userName;
      this.showMainDutyPeopLe = false;
    },

    cancel() {
      this.$router.go(-1);
    },

    // 选择作业人
    goSelPeoTwo(val) {
      this.peopleName = val;
      this.show = true;
    },
    onClose() {
      this.show = false;
    },
    onSave(e) {
      this.projectDirector = e[0].loginName;
      this.projectDirectorName = e[0].userName;
      this.show = false;
    }
  },
  watch: {
    // setRank(newVal, oldVal) {
    //     if (newVal == "其他定级方式") {
    //         this.showSetRankMode = true;
    //     } else {
    //         this.showSetRankMode = false;
    //     }
    // },
  }
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
  padding: 0;
  background-color: #f0f1f5;

  .van-cell-group--inset {
    margin: 0;
    margin-bottom: 0.26667rem;
    padding: 0.25rem;
    font-size: 0.4rem;
    position: relative;
    border-radius: 4%;
    box-shadow: 0px 0px 10px 2px #f3f3f3;
    width: 90%;
    margin: 0.4rem auto;

    .van-row {
      font-size: 0.4rem;
      line-height: 0.8rem;
      margin-bottom: 0;
    }

    .van-overlay {
      position: absolute;

      .wrapper {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        height: 100%;
      }
    }
  }
}

.dialogContain {
  width: 100%;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
}
</style>
