|  | @@ -0,0 +1,473 @@
 | 
	
		
			
				|  |  | +<!--事后的检查登记-->
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="app-container">
 | 
	
		
			
				|  |  | +    <el-form
 | 
	
		
			
				|  |  | +      ref="point_baseInfo"
 | 
	
		
			
				|  |  | +      :model="info"
 | 
	
		
			
				|  |  | +      :rules="baseInfoRules"
 | 
	
		
			
				|  |  | +      label-width="120px"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <el-row>
 | 
	
		
			
				|  |  | +        <el-col :span="6">
 | 
	
		
			
				|  |  | +          <el-form-item label="任务名称" prop="taskName">
 | 
	
		
			
				|  |  | +            <el-input
 | 
	
		
			
				|  |  | +              v-model="info.taskName"
 | 
	
		
			
				|  |  | +              placeholder="请输入任务名称"
 | 
	
		
			
				|  |  | +              maxlength="50"
 | 
	
		
			
				|  |  | +            ></el-input> </el-form-item
 | 
	
		
			
				|  |  | +        ></el-col>
 | 
	
		
			
				|  |  | +        <el-col :span="6"
 | 
	
		
			
				|  |  | +          ><el-form-item label="检查主体" prop="checkOrgId">
 | 
	
		
			
				|  |  | +            <orgDropDown
 | 
	
		
			
				|  |  | +              v-model="info.checkOrgId"
 | 
	
		
			
				|  |  | +              placeholder="选择检查主体"
 | 
	
		
			
				|  |  | +              @select="onCheckOrgSelect"
 | 
	
		
			
				|  |  | +              orgTreeType="org"
 | 
	
		
			
				|  |  | +            /> </el-form-item
 | 
	
		
			
				|  |  | +        ></el-col>
 | 
	
		
			
				|  |  | +        <el-col :span="6">
 | 
	
		
			
				|  |  | +          <el-form-item label="检查人员" prop="checkRoleId">
 | 
	
		
			
				|  |  | +            <el-select
 | 
	
		
			
				|  |  | +              v-model="info.checkRoleId"
 | 
	
		
			
				|  |  | +              placeholder="请选择检查人员"
 | 
	
		
			
				|  |  | +              style="width: 100%"
 | 
	
		
			
				|  |  | +              clearable
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              <el-option
 | 
	
		
			
				|  |  | +                v-for="role in roleOptions"
 | 
	
		
			
				|  |  | +                :key="role.id"
 | 
	
		
			
				|  |  | +                :label="role.name"
 | 
	
		
			
				|  |  | +                :value="role.id"
 | 
	
		
			
				|  |  | +              ></el-option>
 | 
	
		
			
				|  |  | +            </el-select> </el-form-item
 | 
	
		
			
				|  |  | +        ></el-col>
 | 
	
		
			
				|  |  | +      </el-row>
 | 
	
		
			
				|  |  | +      <el-row>
 | 
	
		
			
				|  |  | +        <el-col :span="6">
 | 
	
		
			
				|  |  | +          <el-form-item label="受检机构" prop="beCheckedOrgId">
 | 
	
		
			
				|  |  | +            <orgDropDown
 | 
	
		
			
				|  |  | +              v-model="info.beCheckedOrgId"
 | 
	
		
			
				|  |  | +              placeholder="选择受检机构"
 | 
	
		
			
				|  |  | +              @select="onBecheckOrgSelect"
 | 
	
		
			
				|  |  | +              orgTreeType="org"
 | 
	
		
			
				|  |  | +            />
 | 
	
		
			
				|  |  | +          </el-form-item>
 | 
	
		
			
				|  |  | +        </el-col>
 | 
	
		
			
				|  |  | +        <el-col :span="6">
 | 
	
		
			
				|  |  | +          <el-form-item label="检查组成员" prop="checkTeam">
 | 
	
		
			
				|  |  | +            <el-input
 | 
	
		
			
				|  |  | +              style="width: 100%"
 | 
	
		
			
				|  |  | +              placeHolder="请输入检查组成员"
 | 
	
		
			
				|  |  | +              v-model="info.checkTeam"
 | 
	
		
			
				|  |  | +              maxlength="100"
 | 
	
		
			
				|  |  | +              clearable
 | 
	
		
			
				|  |  | +            ></el-input> </el-form-item
 | 
	
		
			
				|  |  | +        ></el-col>
 | 
	
		
			
				|  |  | +        <el-col :span="6">
 | 
	
		
			
				|  |  | +          <el-form-item label="检查日期" prop="planStartTime">
 | 
	
		
			
				|  |  | +            <el-date-picker
 | 
	
		
			
				|  |  | +              style="width: 100%"
 | 
	
		
			
				|  |  | +              v-model="info.planStartTime"
 | 
	
		
			
				|  |  | +              type="date"
 | 
	
		
			
				|  |  | +              placeholder="选择检查日期"
 | 
	
		
			
				|  |  | +              clearable
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +            </el-date-picker>
 | 
	
		
			
				|  |  | +          </el-form-item>
 | 
	
		
			
				|  |  | +        </el-col>
 | 
	
		
			
				|  |  | +      </el-row>
 | 
	
		
			
				|  |  | +    </el-form>
 | 
	
		
			
				|  |  | +    <div style="margin-left: 42px">
 | 
	
		
			
				|  |  | +      <span style="margin-right: 20px">检查区域</span>
 | 
	
		
			
				|  |  | +      <el-button type="primary" size="mini" @click="onAddPoint()"
 | 
	
		
			
				|  |  | +        >选择检查内容</el-button
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +    <div class="content">
 | 
	
		
			
				|  |  | +      <div class="area_content" v-for="area in info.checkList">
 | 
	
		
			
				|  |  | +        <div>
 | 
	
		
			
				|  |  | +          {{ area.areaName }}
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        <div>
 | 
	
		
			
				|  |  | +          <div class="safetycheck_item" v-for="(item, index) in area.itemList">
 | 
	
		
			
				|  |  | +            <span>{{ index + 1 }}、{{ item.itemName }}</span>
 | 
	
		
			
				|  |  | +            <div class="safetycheck_point" v-for="point in item.pointList">
 | 
	
		
			
				|  |  | +              <div>
 | 
	
		
			
				|  |  | +                <div class="pointName">
 | 
	
		
			
				|  |  | +                  <i class="circle" />
 | 
	
		
			
				|  |  | +                  <pre>{{ point.pointName }}</pre>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <el-radio-group v-model="point.status" style="margin-top: 5px">
 | 
	
		
			
				|  |  | +                  <el-radio :label="0">正常</el-radio>
 | 
	
		
			
				|  |  | +                  <el-radio :label="1">异常</el-radio>
 | 
	
		
			
				|  |  | +                </el-radio-group>
 | 
	
		
			
				|  |  | +                <div>
 | 
	
		
			
				|  |  | +                  <el-button
 | 
	
		
			
				|  |  | +                    type="danger"
 | 
	
		
			
				|  |  | +                    size="mini"
 | 
	
		
			
				|  |  | +                    v-if="point.isAdd"
 | 
	
		
			
				|  |  | +                    style="margin-left: 50px"
 | 
	
		
			
				|  |  | +                    @click="onDeletePoint(area, item, point)"
 | 
	
		
			
				|  |  | +                    >删除</el-button
 | 
	
		
			
				|  |  | +                  >
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +              <div v-if="point.status == 1">
 | 
	
		
			
				|  |  | +                <el-form
 | 
	
		
			
				|  |  | +                  :ref="'point_' + point.pointId"
 | 
	
		
			
				|  |  | +                  :model="point"
 | 
	
		
			
				|  |  | +                  :rules="exceptionRules"
 | 
	
		
			
				|  |  | +                  label-width="100px"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                  <el-form-item label="情况描述" prop="remark">
 | 
	
		
			
				|  |  | +                    <el-input
 | 
	
		
			
				|  |  | +                      v-model="point.remark"
 | 
	
		
			
				|  |  | +                      style="width: 250px"
 | 
	
		
			
				|  |  | +                      placeholder="请输入情况描述"
 | 
	
		
			
				|  |  | +                      maxlength="255"
 | 
	
		
			
				|  |  | +                    ></el-input>
 | 
	
		
			
				|  |  | +                  </el-form-item>
 | 
	
		
			
				|  |  | +                  <el-form-item label="整改期限" prop="rectificationDeadline">
 | 
	
		
			
				|  |  | +                    <el-select
 | 
	
		
			
				|  |  | +                      v-model="point.rectificationDeadline"
 | 
	
		
			
				|  |  | +                      placeholder="请选择整改期限"
 | 
	
		
			
				|  |  | +                    >
 | 
	
		
			
				|  |  | +                      <el-option
 | 
	
		
			
				|  |  | +                        v-for="item in dict.type.rectification_deadline"
 | 
	
		
			
				|  |  | +                        :key="item.value"
 | 
	
		
			
				|  |  | +                        :value="item.value"
 | 
	
		
			
				|  |  | +                        :label="item.label"
 | 
	
		
			
				|  |  | +                      ></el-option>
 | 
	
		
			
				|  |  | +                    </el-select>
 | 
	
		
			
				|  |  | +                  </el-form-item>
 | 
	
		
			
				|  |  | +                  <el-form-item label="异常图片" prop="image">
 | 
	
		
			
				|  |  | +                    <imgUpload
 | 
	
		
			
				|  |  | +                      type="more"
 | 
	
		
			
				|  |  | +                      :value="
 | 
	
		
			
				|  |  | +                        point.imgData
 | 
	
		
			
				|  |  | +                          ? point.imgData.map((d) => d.imgPath).join(',')
 | 
	
		
			
				|  |  | +                          : ''
 | 
	
		
			
				|  |  | +                      "
 | 
	
		
			
				|  |  | +                      @input="onImageChanged(point, $event)"
 | 
	
		
			
				|  |  | +                    ></imgUpload>
 | 
	
		
			
				|  |  | +                  </el-form-item>                  
 | 
	
		
			
				|  |  | +                </el-form>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <div class="dialog-footer">
 | 
	
		
			
				|  |  | +      <el-button @click="onClose">取消</el-button>
 | 
	
		
			
				|  |  | +      <!-- <el-button @click="onSave" v-if="showSaveBtn">保存</el-button> -->
 | 
	
		
			
				|  |  | +      <el-button
 | 
	
		
			
				|  |  | +        type="primary"
 | 
	
		
			
				|  |  | +        @click="onSubmit()"
 | 
	
		
			
				|  |  | +        v-hasPermi="['core:safetycheck:tempregister']"
 | 
	
		
			
				|  |  | +        >提交</el-button
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +    <SelectPoint
 | 
	
		
			
				|  |  | +      ref="SelectPoint"
 | 
	
		
			
				|  |  | +      :orgType="[info.beCheckOrgType]"
 | 
	
		
			
				|  |  | +      @select="onSelectPoint"
 | 
	
		
			
				|  |  | +    ></SelectPoint>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import { mapGetters } from "vuex";
 | 
	
		
			
				|  |  | +import * as api from "@/api/safetycheck/checkRegister.js";
 | 
	
		
			
				|  |  | +import dayjs from "dayjs";
 | 
	
		
			
				|  |  | +import SelectPoint from "../../ruleManager/dialog.select.point.vue";
 | 
	
		
			
				|  |  | +import imgUpload from "@/components/ImageUpload/index.vue";
 | 
	
		
			
				|  |  | +import { getLabel } from "@/views/commonOption.js";
 | 
	
		
			
				|  |  | +import { getNamesByOrgId } from "@/api/system/role.js";
 | 
	
		
			
				|  |  | +import orgDropDown from "@/components/orgTree/orgDropDown.vue";
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  name: "safetyCheckRegister",
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      info: {
 | 
	
		
			
				|  |  | +        taskName: null,
 | 
	
		
			
				|  |  | +        checkOrgId: null,
 | 
	
		
			
				|  |  | +        checkRoleId: null,
 | 
	
		
			
				|  |  | +        beCheckedOrgId: null,
 | 
	
		
			
				|  |  | +        beCheckOrgType: null,
 | 
	
		
			
				|  |  | +        planStartTime: new Date(),
 | 
	
		
			
				|  |  | +        checkTeam: null,
 | 
	
		
			
				|  |  | +        checkList: [],
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      roleOptions: [],
 | 
	
		
			
				|  |  | +      prevCheckOrgType: null, //上一个选中检查机构的类型
 | 
	
		
			
				|  |  | +      prevBecheckedOrgType: null, //上一个受检机构的类型
 | 
	
		
			
				|  |  | +      exceptionRules: {
 | 
	
		
			
				|  |  | +        remark: [{ required: true, message: "请输入情况描述" }],
 | 
	
		
			
				|  |  | +        rectificationDeadline: [{ required: true, message: "请选择整改期限" }],
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      baseInfoRules: {
 | 
	
		
			
				|  |  | +        taskName: [{ required: true, message: "请输入任务名称" }],
 | 
	
		
			
				|  |  | +        checkOrgId: [{ required: true, message: "请选择检查主体" }],
 | 
	
		
			
				|  |  | +        checkRoleId: [{ required: true, message: "请选择检查人员" }],
 | 
	
		
			
				|  |  | +        beCheckedOrgId: [{ required: true, message: "请选择受检机构" }],
 | 
	
		
			
				|  |  | +        planStartTime: [{ required: true, message: "请选择检查日期" }],
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      pointIdsWhenAdd: [],
 | 
	
		
			
				|  |  | +      mode: null,
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  dicts: ["rectification_deadline", "sys_user_is_lock"],
 | 
	
		
			
				|  |  | +  components: { SelectPoint, imgUpload, orgDropDown },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    ...mapGetters(["orgId", "roleList", "userId"]),
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    this.info.checkOrgId = this.orgId;
 | 
	
		
			
				|  |  | +    this.info.checkRoleId = this.roleList[0].roleId;
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    dayjs,
 | 
	
		
			
				|  |  | +    getLabel,
 | 
	
		
			
				|  |  | +    onCheckOrgSelect(node) {
 | 
	
		
			
				|  |  | +      if (node == null) {
 | 
	
		
			
				|  |  | +        this.prevCheckOrgType = null;
 | 
	
		
			
				|  |  | +        this.roleOptions = [];
 | 
	
		
			
				|  |  | +        this.checkRoleId = null;
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (node.type == this.prevCheckOrgType) {
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      getNamesByOrgId(node.id).then((r) => {
 | 
	
		
			
				|  |  | +        this.roleOptions = r.data;
 | 
	
		
			
				|  |  | +        this.prevCheckOrgType = node.type;
 | 
	
		
			
				|  |  | +        if (!this.roleOptions.find((op) => op.id == this.info.checkRoleId)) {
 | 
	
		
			
				|  |  | +          this.info.checkRoleId = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onBecheckOrgSelect(node) {
 | 
	
		
			
				|  |  | +      if (node == null) {
 | 
	
		
			
				|  |  | +        this.prevBecheckedOrgType = null;
 | 
	
		
			
				|  |  | +        this.info.checkList = [];
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if (node.type == this.prevBecheckedOrgType) {
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      this.info.checkList = [];
 | 
	
		
			
				|  |  | +      this.prevBecheckedOrgType = node.type;
 | 
	
		
			
				|  |  | +      this.info.beCheckOrgType = node.type;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onAddPoint() {
 | 
	
		
			
				|  |  | +      if (!this.info.beCheckedOrgId) {
 | 
	
		
			
				|  |  | +        this.$message.info("请先选择受检机构");
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (!this.info.beCheckOrgType) {
 | 
	
		
			
				|  |  | +        this.$message.warning("受检机构的机构类型未知");
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.pointIdsWhenAdd = [];
 | 
	
		
			
				|  |  | +      this.info.checkList.forEach((a) => {
 | 
	
		
			
				|  |  | +        a.itemList.forEach((i) => {
 | 
	
		
			
				|  |  | +          i.pointList.forEach((p) => {
 | 
	
		
			
				|  |  | +            this.pointIdsWhenAdd.push(p.pointId);
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      this.$refs.SelectPoint.show(this.pointIdsWhenAdd);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onSelectPoint(selectedList) {
 | 
	
		
			
				|  |  | +      let hasNew = false;
 | 
	
		
			
				|  |  | +      for (let index in selectedList) {
 | 
	
		
			
				|  |  | +        let p = selectedList[index];
 | 
	
		
			
				|  |  | +        if (this.pointIdsWhenAdd.indexOf(p.id) >= 0) {
 | 
	
		
			
				|  |  | +          continue;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let info = this.info;
 | 
	
		
			
				|  |  | +        let area = info.checkList.find((a) => a.areaId === p.areaId);
 | 
	
		
			
				|  |  | +        if (!area) {
 | 
	
		
			
				|  |  | +          area = { areaId: p.areaId, areaName: p.areaName, itemList: [] };
 | 
	
		
			
				|  |  | +          info.checkList.push(area);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        let item = area.itemList.find((i) => i.itemId == p.itemId);
 | 
	
		
			
				|  |  | +        if (!item) {
 | 
	
		
			
				|  |  | +          item = { itemId: p.itemId, itemName: p.itemName, pointList: [] };
 | 
	
		
			
				|  |  | +          area.itemList.push(item);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        let point = item.pointList.find((i) => i.pointId == p.id);
 | 
	
		
			
				|  |  | +        if (!point) {
 | 
	
		
			
				|  |  | +          point = {
 | 
	
		
			
				|  |  | +            pointId: p.id,
 | 
	
		
			
				|  |  | +            pointName: p.pointName,
 | 
	
		
			
				|  |  | +            mustCheck: 1,
 | 
	
		
			
				|  |  | +            isAdd: 1,
 | 
	
		
			
				|  |  | +            status: 0,
 | 
	
		
			
				|  |  | +            remark: null,
 | 
	
		
			
				|  |  | +            imgData: null,
 | 
	
		
			
				|  |  | +            rectificationDeadline: null,
 | 
	
		
			
				|  |  | +            submitBy: null,
 | 
	
		
			
				|  |  | +            submitTime: null,
 | 
	
		
			
				|  |  | +          };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          item.pointList.push(point);
 | 
	
		
			
				|  |  | +          hasNew = true;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if (!hasNew) {
 | 
	
		
			
				|  |  | +        this.$message.info("没有可新增的检查内容");
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    onDeletePoint(area, item, point) {
 | 
	
		
			
				|  |  | +      if (point.isAdd === 0) {
 | 
	
		
			
				|  |  | +        this.$message.warning("不可删除计划的检查内容");
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let index = item.pointList.indexOf(point);
 | 
	
		
			
				|  |  | +      if (index >= 0) {
 | 
	
		
			
				|  |  | +        item.pointList.splice(index, 1);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if (item.pointList.length === 0) {
 | 
	
		
			
				|  |  | +        index = area.itemList.indexOf(item);
 | 
	
		
			
				|  |  | +        area.itemList.splice(index, 1);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if (area.itemList.length === 0) {
 | 
	
		
			
				|  |  | +        index = this.info.checkList.indexOf(area);
 | 
	
		
			
				|  |  | +        this.info.checkList.splice(index, 1);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onImageChanged(point, value) {
 | 
	
		
			
				|  |  | +      point.imgData = value
 | 
	
		
			
				|  |  | +        .split(",")
 | 
	
		
			
				|  |  | +        .map((img) => ({ id: null, imgPath: img }));
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onClose() {
 | 
	
		
			
				|  |  | +      this.$tab.closePageAndPushPrev();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onSave() {
 | 
	
		
			
				|  |  | +      this.info.isSubmit = 0;
 | 
	
		
			
				|  |  | +      api.tempSubmit(this.info).then((r) => {
 | 
	
		
			
				|  |  | +        this.$message.info("保存成功");
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    async onSubmit() {
 | 
	
		
			
				|  |  | +      let isOk = true;
 | 
	
		
			
				|  |  | +      let rs = this.$refs;
 | 
	
		
			
				|  |  | +      for (let p in this.$refs) {
 | 
	
		
			
				|  |  | +        if (p.startsWith("point")) {
 | 
	
		
			
				|  |  | +          try {
 | 
	
		
			
				|  |  | +            let form = this.$refs[p];
 | 
	
		
			
				|  |  | +            if (form.length) {
 | 
	
		
			
				|  |  | +              isOk &= await this.$refs[p][0].validate();
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              isOk &= await this.$refs[p].validate();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          } catch (e) {
 | 
	
		
			
				|  |  | +            isOk &= false;
 | 
	
		
			
				|  |  | +            console.error(e);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (isOk) {
 | 
	
		
			
				|  |  | +        this.info.isSubmit = 1;
 | 
	
		
			
				|  |  | +        let data = { ...this.info };
 | 
	
		
			
				|  |  | +        data.checkRoles = [{ id: this.info.checkRoleId }];
 | 
	
		
			
				|  |  | +        api.tempSubmit(data).then((r) => {
 | 
	
		
			
				|  |  | +          this.$message.info("提交成功");
 | 
	
		
			
				|  |  | +          this.$tab.closePageAndPushPrev();
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +<style lang="scss" scoped>
 | 
	
		
			
				|  |  | +.content {
 | 
	
		
			
				|  |  | +  max-height: calc(100% - 300px);
 | 
	
		
			
				|  |  | +  overflow-y: auto;
 | 
	
		
			
				|  |  | +  margin-bottom: 20px;
 | 
	
		
			
				|  |  | +  margin-top: 20px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.area_content {
 | 
	
		
			
				|  |  | +  border: #b8bdc0 1px solid;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  flex-direction: row;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.content > .area_content:first-child {
 | 
	
		
			
				|  |  | +  border-bottom: none;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.content > .area_content:last-child {
 | 
	
		
			
				|  |  | +  border-bottom: #b8bdc0 1px solid;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.area_content > div:nth-child(1) {
 | 
	
		
			
				|  |  | +  background-color: #e6e6e6;
 | 
	
		
			
				|  |  | +  border-right: #b8bdc0 1px solid;
 | 
	
		
			
				|  |  | +  padding-top: auto;
 | 
	
		
			
				|  |  | +  width: 15%;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  flex-direction: column;
 | 
	
		
			
				|  |  | +  justify-content: center;
 | 
	
		
			
				|  |  | +  text-align: center;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.area_content > div:nth-child(2) {
 | 
	
		
			
				|  |  | +  width: 80%;
 | 
	
		
			
				|  |  | +  padding-left: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.safetycheck_item {
 | 
	
		
			
				|  |  | +  margin: 10px;
 | 
	
		
			
				|  |  | +  margin-bottom: 20px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.safetycheck_point {
 | 
	
		
			
				|  |  | +  padding-top: 10px;
 | 
	
		
			
				|  |  | +  padding-left: 30px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  & > div {
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    flex-direction: row;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.pointName {
 | 
	
		
			
				|  |  | +  width: 200px;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  flex-direction: row;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.dialog-footer {
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  text-align: right;
 | 
	
		
			
				|  |  | +  border-top: #b8bdc0 1px solid;
 | 
	
		
			
				|  |  | +  padding-top: 10px;
 | 
	
		
			
				|  |  | +  padding-right: 30px;
 | 
	
		
			
				|  |  | +  position: absolute;
 | 
	
		
			
				|  |  | +  bottom: 30px;
 | 
	
		
			
				|  |  | +  right: 0px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.circle {
 | 
	
		
			
				|  |  | +  display: inline-block;
 | 
	
		
			
				|  |  | +  width: 5px;
 | 
	
		
			
				|  |  | +  height: 5px;
 | 
	
		
			
				|  |  | +  border-radius: 5px;
 | 
	
		
			
				|  |  | +  background-color: #000;
 | 
	
		
			
				|  |  | +  border: none;
 | 
	
		
			
				|  |  | +  margin-top: 10px;
 | 
	
		
			
				|  |  | +  margin-right: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |