隐患整改
							parent
							
								
									09eab40055
								
							
						
					
					
						commit
						be35580a81
					
				
							
								
								
									
										13
									
								
								api/api.js
								
								
								
								
							
							
						
						
									
										13
									
								
								api/api.js
								
								
								
								
							| 
						 | 
				
			
			@ -9,4 +9,17 @@ export const setRefreshToken = (params) => post("/sys/refreshToken", params ); /
 | 
			
		|||
export const setEntryV1 = (params) => post("/app/sys/user/entry", params ); // 入职
 | 
			
		||||
export const resignV1 = (params) => post("/app/sys/user/resign", params ); // 离职
 | 
			
		||||
export const getStudentInfoApi = (params) => post("/app/student/getStudentInfo", params ); // 获取学员信息
 | 
			
		||||
export const getHiddenList = (params) => post("/app/hidden/list", params); // 隐患列表
 | 
			
		||||
export const getHiddenInfo = (params) => post("/app/hidden/goEdit", params); // 隐患信息
 | 
			
		||||
export const setFileDelete = (params) => post("/app/imgfiles/delete", params); // 删除图片
 | 
			
		||||
export const getPersonnelList = (params) => post("/app/sys/listUser", params); // 人员
 | 
			
		||||
export const setHiddenNuRectificationSubmit = (params) =>
 | 
			
		||||
    post("/app/hiddenexamine/special", params);
 | 
			
		||||
export const setHiddenRectificationSubmit = (params) =>
 | 
			
		||||
    post("/app/hidden/rectify", params); // 隐患整改提交
 | 
			
		||||
export const fileUpload = (params) => upload("/app/file/upload", params);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,68 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <next-tree
 | 
			
		||||
      ref="nextTreeRef"
 | 
			
		||||
      check-strictly
 | 
			
		||||
      func-mode="radio"
 | 
			
		||||
      select-parent
 | 
			
		||||
      :if-search="false"
 | 
			
		||||
      :tree-data="treeData"
 | 
			
		||||
      :is-show-clear="isShowClear"
 | 
			
		||||
      theme-color="#3377ff"
 | 
			
		||||
      page-height="92vh"
 | 
			
		||||
      label-key="name"
 | 
			
		||||
      value-key="id"
 | 
			
		||||
      children-key="children"
 | 
			
		||||
      @confirm="fnTreeConfirm"
 | 
			
		||||
      @cancel="visible = false"
 | 
			
		||||
  />
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {getDepartmentTree} from "@/api";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
    visible: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      required: true,
 | 
			
		||||
    },
 | 
			
		||||
    value: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    isShowClear: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      treeData: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  async mounted() {
 | 
			
		||||
    await this.fnGetData();
 | 
			
		||||
    this.$watch("visible", (newVal) => {
 | 
			
		||||
      if (newVal) {
 | 
			
		||||
        this.$refs.nextTreeRef && this.$refs.nextTreeRef._show();
 | 
			
		||||
        this.$refs.nextTreeRef && this.$refs.nextTreeRef.checkedFunc(this.value);
 | 
			
		||||
      } else this.$refs.nextTreeRef && this.$refs.nextTreeRef._hide();
 | 
			
		||||
    }, {immediate: true})
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fnTreeConfirm(event) {
 | 
			
		||||
      this.$emit("confirm", event);
 | 
			
		||||
      this.$emit("update:visible", false);
 | 
			
		||||
    },
 | 
			
		||||
    async fnGetData() {
 | 
			
		||||
      const resData = await getDepartmentTree({
 | 
			
		||||
        loading: false,
 | 
			
		||||
        postMethod: 'application/json',
 | 
			
		||||
      });
 | 
			
		||||
      this.treeData = JSON.parse(resData.zTreeNodes);
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,105 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view>
 | 
			
		||||
    <u-form-item
 | 
			
		||||
        :label="label"
 | 
			
		||||
        :prop="prop"
 | 
			
		||||
        :required="required"
 | 
			
		||||
        @click="()=>{
 | 
			
		||||
          !disabled ? (visible = true) : null
 | 
			
		||||
        }"
 | 
			
		||||
    >
 | 
			
		||||
      <view class="select_content">
 | 
			
		||||
        <u-input
 | 
			
		||||
            :value="name || '请选择'"
 | 
			
		||||
            border="none"
 | 
			
		||||
            input-align="right"
 | 
			
		||||
            readonly
 | 
			
		||||
        />
 | 
			
		||||
        <u-icon name="arrow-right"></u-icon>
 | 
			
		||||
      </view>
 | 
			
		||||
    </u-form-item>
 | 
			
		||||
    <u-line/>
 | 
			
		||||
    <department
 | 
			
		||||
        :visible.sync="visible"
 | 
			
		||||
        :value="id"
 | 
			
		||||
        :is-show-clear="isShowClear"
 | 
			
		||||
        @confirm="fnConfirm"
 | 
			
		||||
    />
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import Department from "./department.vue";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    Department,
 | 
			
		||||
  },
 | 
			
		||||
  props: {
 | 
			
		||||
    name: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    id: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    form: {
 | 
			
		||||
      type: Object,
 | 
			
		||||
      default: () => ({}),
 | 
			
		||||
    },
 | 
			
		||||
    label: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "部门",
 | 
			
		||||
    },
 | 
			
		||||
    prop: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    required: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
    clearKey: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    disabled: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
    isShowClear: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      visible: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fnConfirm(event) {
 | 
			
		||||
      if (event.length > 0) {
 | 
			
		||||
        this.$emit('update:name', event[0].name)
 | 
			
		||||
        this.$emit('update:id', event[0].id)
 | 
			
		||||
      } else {
 | 
			
		||||
        this.$emit('update:name', '')
 | 
			
		||||
        this.$emit('update:id', '')
 | 
			
		||||
      }
 | 
			
		||||
      if (JSON.stringify(this.form) !== "{}" && this.clearKey) {
 | 
			
		||||
        const clearKey = this.clearKey.split(",");
 | 
			
		||||
        const form = uni.$u.deepClone(this.form)
 | 
			
		||||
        for (let i = 0; i < clearKey.length; i++) {
 | 
			
		||||
          form[clearKey[i]] = "";
 | 
			
		||||
        }
 | 
			
		||||
        this.$emit("update:form", form);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,329 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view>
 | 
			
		||||
    <u-cell-group>
 | 
			
		||||
          <u-cell title="隐患描述" :label="info.HIDDENDESCR"/>
 | 
			
		||||
          <u-cell title="隐患来源" :value="HIDDEN_SOURCE[info.SOURCE]"/>
 | 
			
		||||
          <block v-if="info.SOURCE === '2'">
 | 
			
		||||
            <u-cell title="风险点(单元)" :value="info.RISK_UNIT"/>
 | 
			
		||||
            <u-cell title="辨识部位" :value="info.IDENTIFICATION"/>
 | 
			
		||||
            <u-cell title="存在风险" :value="info.RISK_DESCR"/>
 | 
			
		||||
            <u-cell title="风险分级" :value="info.LEVEL"/>
 | 
			
		||||
            <u-cell title="检查内容" :value="info.CHECK_CONTENT"/>
 | 
			
		||||
          </block>
 | 
			
		||||
          <u-cell title="隐患上报位置(经纬度)">
 | 
			
		||||
            <template #label>
 | 
			
		||||
              <view v-if="info.LONGITUDE && info.LATITUDE">
 | 
			
		||||
                <view>经度:{{ info.LONGITUDE }}</view>
 | 
			
		||||
                <view>纬度:{{ info.LATITUDE }}</view>
 | 
			
		||||
              </view>
 | 
			
		||||
            </template>
 | 
			
		||||
          </u-cell>
 | 
			
		||||
          <u-cell title="隐患部位" :value="info.hregionName || info.HIDDENPART"/>
 | 
			
		||||
          <u-cell title="隐患位置描述" :value="info.POSITIONDESC"/>
 | 
			
		||||
          <u-cell title="隐患类型" :value="info.HIDDENTYPENAME"/>
 | 
			
		||||
          <u-cell title="隐患级别" :value="info.HIDDENLEVELNAME"/>
 | 
			
		||||
          <u-cell title="隐患发现人" :value="hiddenFindPeople.map((item) => item.NAME).join('、')"/>
 | 
			
		||||
          <u-cell title="隐患发现时间" :value="info.DISCOVERYTIME"/>
 | 
			
		||||
          <block v-if="info.RECTIFICATIONTYPE">
 | 
			
		||||
            <u-cell title="整改类型">
 | 
			
		||||
              <template #value>
 | 
			
		||||
                <text v-if="info.RECTIFICATIONTYPE === '1'">立即整改</text>
 | 
			
		||||
                <text v-else-if="info.RECTIFICATIONTYPE === '2'">限期整改</text>
 | 
			
		||||
              </template>
 | 
			
		||||
            </u-cell>
 | 
			
		||||
            <u-cell title="整改负责部门" :value="info.editDeptName"/>
 | 
			
		||||
            <u-cell title="整改负责人" :value="info.editUserName"/>
 | 
			
		||||
            <block v-if="info.RECTIFICATIONTYPE === '2'">
 | 
			
		||||
              <u-cell title="整改期限" :value="info.editRectificationDeadline"/>
 | 
			
		||||
            </block>
 | 
			
		||||
          </block>
 | 
			
		||||
          <u-cell title="是否相关方">
 | 
			
		||||
            <template #value>
 | 
			
		||||
              <text v-if="info.ISRELEVANT === '1'">是</text>
 | 
			
		||||
              <text v-else-if="info.ISRELEVANT === '2'">否</text>
 | 
			
		||||
            </template>
 | 
			
		||||
          </u-cell>
 | 
			
		||||
          <app-preview-image :files="hImgs" label="隐患照片"/>
 | 
			
		||||
          <block v-if="hiddenVideo.length > 0">
 | 
			
		||||
            <u-cell title="隐患视频">
 | 
			
		||||
              <template #value>
 | 
			
		||||
                <u-icon
 | 
			
		||||
                    name="play-circle-fill"
 | 
			
		||||
                    size="24"
 | 
			
		||||
                    @click="fnPreviewVideo(hiddenVideo[0].FILEPATH)"
 | 
			
		||||
                />
 | 
			
		||||
              </template>
 | 
			
		||||
            </u-cell>
 | 
			
		||||
          </block>
 | 
			
		||||
          <view v-for="(item, index) in hiddenExamineList" :key="index">
 | 
			
		||||
            <block v-if="item.TYPE === 4">
 | 
			
		||||
              <u-divider text-position="left" text="隐患确认"></u-divider>
 | 
			
		||||
              <u-cell title="隐患级别" :value="item.editLevelName"/>
 | 
			
		||||
              <u-cell title="整改负责人部门" :value="item.editDeptName"/>
 | 
			
		||||
              <u-cell title="整改负责人" :value="item.editUserName"/>
 | 
			
		||||
              <u-cell title="整改完成期限" :value="item.spare3"/>
 | 
			
		||||
              <u-cell title="隐患确认人" :value="info.conUserName"/>
 | 
			
		||||
              <u-cell title="隐患确认时间" :value="info.CONFIRM_TIME"/>
 | 
			
		||||
            </block>
 | 
			
		||||
            <block v-if="item.TYPE === 6 && item.spare5 !== '1'">
 | 
			
		||||
              <u-cell title="隐患状态" value="确认打回"/>
 | 
			
		||||
              <u-cell title="打回原因" :label="item.REPULSE_CAUSE"/>
 | 
			
		||||
              <u-cell title="打回时间" :value="item.CREATTIME"/>
 | 
			
		||||
            </block>
 | 
			
		||||
            <block v-if="item.TYPE === 2">
 | 
			
		||||
              <u-divider text-position="left" text="延期信息"></u-divider>
 | 
			
		||||
              <u-cell title="申请延期日期" :value="item.CREATTIME"/>
 | 
			
		||||
              <u-cell title="延期日期" :value="formatDate(item.DELAY_TIME)"/>
 | 
			
		||||
              <u-cell title="审核人" :value="info.conUserName"/>
 | 
			
		||||
              <u-cell title="处置方案" :value="item.DISPOSAL_PLAN"/>
 | 
			
		||||
              <block v-if="item.DISPOSAL_FILE">
 | 
			
		||||
                <u-cell title="处置方案附件">
 | 
			
		||||
                  <template #value>
 | 
			
		||||
                    <u-button
 | 
			
		||||
                        type="primary"
 | 
			
		||||
                        size="mini"
 | 
			
		||||
                        shape="circle"
 | 
			
		||||
                        :custom-style="{ width: 'auto' }"
 | 
			
		||||
                        text="下载"
 | 
			
		||||
                        @click="fnPreviewFile(item.DISPOSAL_FILE)"
 | 
			
		||||
                    />
 | 
			
		||||
                  </template>
 | 
			
		||||
                </u-cell>
 | 
			
		||||
              </block>
 | 
			
		||||
              <u-cell title="延期审核状态">
 | 
			
		||||
                <template #value>
 | 
			
		||||
                  <text v-if="item.STATE === -1">待审核</text>
 | 
			
		||||
                  <text v-if="item.STATE === 1">通过</text>
 | 
			
		||||
                  <text v-if="item.STATE === 2">未通过</text>
 | 
			
		||||
                </template>
 | 
			
		||||
              </u-cell>
 | 
			
		||||
              <block v-if="item.STATE !== -1">
 | 
			
		||||
                <u-cell title="审核时间" :value="item.OPERATTIME"/>
 | 
			
		||||
              </block>
 | 
			
		||||
            </block>
 | 
			
		||||
            <block v-if="item.TYPE === 1">
 | 
			
		||||
              <u-divider text-position="left" text="特殊处理审核信息"></u-divider>
 | 
			
		||||
              <u-cell title="无法整改原因" :label="item.EXAMINE"/>
 | 
			
		||||
              <u-cell title="特殊处置审核状态">
 | 
			
		||||
                <template #value>
 | 
			
		||||
                  <!-- 是否通过审核 ,1未通过。2通过 -1(初始)16隐患确认打回 -->
 | 
			
		||||
                  <text v-if="item.STATE === -1">待审核</text>
 | 
			
		||||
                  <text v-if="item.STATE === 1">不通过</text>
 | 
			
		||||
                  <text v-if="item.STATE === 2">通过</text>
 | 
			
		||||
                </template>
 | 
			
		||||
              </u-cell>
 | 
			
		||||
              <block v-if="item.STATE === 1">
 | 
			
		||||
                <u-cell title="处置方案" :value="item.DISPOSAL_PLAN"/>
 | 
			
		||||
                <block v-if="item.DISPOSAL_FILE">
 | 
			
		||||
                  <u-cell title="处置方案附件">
 | 
			
		||||
                    <template #value>
 | 
			
		||||
                      <u-button
 | 
			
		||||
                          type="primary"
 | 
			
		||||
                          size="mini"
 | 
			
		||||
                          shape="circle"
 | 
			
		||||
                          :custom-style="{ width: 'auto' }"
 | 
			
		||||
                          text="下载"
 | 
			
		||||
                          @click="fnPreviewFile(item.DISPOSAL_FILE)"
 | 
			
		||||
                      />
 | 
			
		||||
                    </template>
 | 
			
		||||
                  </u-cell>
 | 
			
		||||
                </block>
 | 
			
		||||
              </block>
 | 
			
		||||
              <block v-if="item.STATE !== -1">
 | 
			
		||||
                <u-cell title="审核时间" :value="item.OPERATTIME"/>
 | 
			
		||||
                <u-cell title="审核人" :value="info.conUserName"/>
 | 
			
		||||
              </block>
 | 
			
		||||
              <block v-if="item.STATE === 2">
 | 
			
		||||
                <u-cell title="是否更换整改负责人" :value="item.spare1 === '1' ? '是' : '否'"/>
 | 
			
		||||
                <block v-if="item.spare1 === '1'">
 | 
			
		||||
                  <u-cell title="整改负责人" :value="item.editUserName"/>
 | 
			
		||||
                </block>
 | 
			
		||||
              </block>
 | 
			
		||||
            </block>
 | 
			
		||||
            <block v-if="item.TYPE === 3">
 | 
			
		||||
              <u-divider text-position="left" text="验收打回信息"></u-divider>
 | 
			
		||||
              <u-cell title="验收打回意见" :label="item.EXAMINE"/>
 | 
			
		||||
              <u-cell title="验收人" :value="item.CREATORNAME"/>
 | 
			
		||||
              <u-cell title="验收时间" :value="item.CREATTIME"/>
 | 
			
		||||
            </block>
 | 
			
		||||
          </view>
 | 
			
		||||
          <block v-if="info.REJECTREASON">
 | 
			
		||||
            <u-divider text-position="left" text="隐患复查"></u-divider>
 | 
			
		||||
            <u-cell title="复查驳回原因" :label="info.REJECTREASON"/>
 | 
			
		||||
          </block>
 | 
			
		||||
          <block v-if="info.STATE === '2' || info.STATE === '4' || (info.STATE === '-2' && info.RECTIFICATIONTYPE === '1') || info.STATE === '10'">
 | 
			
		||||
            <u-divider text-position="left" text="整改信息"></u-divider>
 | 
			
		||||
            <u-cell title="整改描述" :label="info.RECTIFYDESCR"/>
 | 
			
		||||
            <u-cell title="整改部门" :value="info.RECTIFICATIONDEPTNAME"/>
 | 
			
		||||
            <u-cell title="整改人" :value="info.RECTIFICATIONORNAME"/>
 | 
			
		||||
            <u-cell title="整改时间" :value="info.RECTIFICATIONTIME"/>
 | 
			
		||||
            <u-cell title="投入资金" :value="info.INVESTMENT_FUNDS === undefined ? '' : info.INVESTMENT_FUNDS + '元'"/>
 | 
			
		||||
            <app-preview-image :files="rImgs" label="整改后图片"/>
 | 
			
		||||
            <u-cell title="整改方案">
 | 
			
		||||
              <template #value>
 | 
			
		||||
                <text v-if="info.HAVESCHEME === '0'">无</text>
 | 
			
		||||
                <text v-else-if="info.HAVESCHEME === '1'">有</text>
 | 
			
		||||
              </template>
 | 
			
		||||
            </u-cell>
 | 
			
		||||
            <block v-if="info.HAVESCHEME === '1'">
 | 
			
		||||
              <u-cell title="排查日期" :value="rectificationPlanInfo.SCREENINGDATE"/>
 | 
			
		||||
              <block v-if="rectificationPlanInfo.LISTNAME">
 | 
			
		||||
                <u-cell title="隐患清单" :value="rectificationPlanInfo.LISTNAME"/>
 | 
			
		||||
              </block>
 | 
			
		||||
              <u-cell title="治理标准要求" :value="rectificationPlanInfo.GOVERNSTANDARDS"/>
 | 
			
		||||
              <u-cell title="治理方法" :value="rectificationPlanInfo.GOVERNMETHOD"/>
 | 
			
		||||
              <u-cell title="经费和物资的落实" :value="rectificationPlanInfo.EXPENDITURE"/>
 | 
			
		||||
              <u-cell title="负责治理人员" :value="rectificationPlanInfo.PRINCIPAL"/>
 | 
			
		||||
              <u-cell title="工时安排" :value="rectificationPlanInfo.PROGRAMMING"/>
 | 
			
		||||
              <u-cell title="时限要求" :value="rectificationPlanInfo.TIMELIMITFOR"/>
 | 
			
		||||
              <u-cell title="工作要求" :value="rectificationPlanInfo.JOBREQUIREMENT"/>
 | 
			
		||||
              <u-cell title="其他事项" :value="rectificationPlanInfo.OTHERBUSINESS"/>
 | 
			
		||||
              <app-preview-image :files="sImgs" label="方案图片"/>
 | 
			
		||||
            </block>
 | 
			
		||||
          </block>
 | 
			
		||||
          <block v-if="info.STATE === '4'">
 | 
			
		||||
            <u-divider text-position="left" text="验收信息"></u-divider>
 | 
			
		||||
            <block v-if="info.RECTIFICATIONTYPE === '1'">
 | 
			
		||||
              <u-cell title="验收人" :value="info.CHECKORNAME" />
 | 
			
		||||
            </block>
 | 
			
		||||
            <block v-else>
 | 
			
		||||
              <view v-for="(item, index) in checkList" :key="index">
 | 
			
		||||
                <u-cell title="验收描述" :label="item.CHECKDESCR" />
 | 
			
		||||
                <u-cell title="是否合格" :value="item.STATUS === 1 ? '是' : '否'" />
 | 
			
		||||
                <u-cell title="验收部门" :value="item.CHECKDEPTNAME" />
 | 
			
		||||
                <u-cell title="验收人" :value="item.CHECKORNAME" />
 | 
			
		||||
                <u-cell title="验收时间" :value="item.CHECK_TIME" />
 | 
			
		||||
                <app-preview-image :files="item.cImgs" label="验收图片" />
 | 
			
		||||
              </view>
 | 
			
		||||
            </block>
 | 
			
		||||
          </block>
 | 
			
		||||
        </u-cell-group>
 | 
			
		||||
    <u-modal
 | 
			
		||||
        :show="videoDialog.visible"
 | 
			
		||||
        title="视频预览"
 | 
			
		||||
        :show-confirm-button="false"
 | 
			
		||||
        show-cancel-button
 | 
			
		||||
        cancel-text="关闭"
 | 
			
		||||
        @cancel="fnCloseVideoDialog"
 | 
			
		||||
    >
 | 
			
		||||
      <video
 | 
			
		||||
          v-if="videoDialog.src"
 | 
			
		||||
          :src="videoDialog.src"
 | 
			
		||||
          style="width: 100%; height: 200px; margin: 10px"
 | 
			
		||||
          autoplay
 | 
			
		||||
      />
 | 
			
		||||
    </u-modal>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AppPreviewImage from '@/components/preview_image/index.vue'
 | 
			
		||||
import dayjs from "dayjs";
 | 
			
		||||
import {getHiddenInfo} from "@/api/api";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    AppPreviewImage,
 | 
			
		||||
  },
 | 
			
		||||
  props: {
 | 
			
		||||
    hiddenId: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      HIDDEN_SOURCE: {
 | 
			
		||||
        1: "隐患快报",
 | 
			
		||||
        2: "清单排查",
 | 
			
		||||
        3: "清单排查",
 | 
			
		||||
        4: "安全环保检查(监管端)",
 | 
			
		||||
        5: "安全环保检查(企业端)",
 | 
			
		||||
        6: "消防检查",
 | 
			
		||||
      },
 | 
			
		||||
      info: {},
 | 
			
		||||
      hiddenFindPeople: [],
 | 
			
		||||
      hImgs: [],
 | 
			
		||||
      hiddenVideo: [],
 | 
			
		||||
      hiddenExamineList: [],
 | 
			
		||||
      rImgs: [],
 | 
			
		||||
      rectificationPlanInfo: {},
 | 
			
		||||
      sImgs: [],
 | 
			
		||||
      checkList: [],
 | 
			
		||||
      videoDialog: {
 | 
			
		||||
        visible: false,
 | 
			
		||||
        src: ''
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.fnGetData()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    async fnGetData(){
 | 
			
		||||
      if (!this.hiddenId) return;
 | 
			
		||||
      const filePath = this.$filePath
 | 
			
		||||
      const resData = await getHiddenInfo({
 | 
			
		||||
        HIDDEN_ID: this.hiddenId,
 | 
			
		||||
        postMethod: 'application/json',
 | 
			
		||||
      });
 | 
			
		||||
      for (let i = 0; i < resData.hImgs.length; i++) {
 | 
			
		||||
        resData.hImgs[i].FILEPATH = filePath + resData.hImgs[i].FILEPATH;
 | 
			
		||||
      }
 | 
			
		||||
      for (let i = 0; i < resData.rImgs.length; i++) {
 | 
			
		||||
        resData.rImgs[i].FILEPATH = filePath + resData.rImgs[i].FILEPATH;
 | 
			
		||||
      }
 | 
			
		||||
      for (let i = 0; i < resData.sImgs.length; i++) {
 | 
			
		||||
        resData.sImgs[i].FILEPATH = filePath + resData.sImgs[i].FILEPATH;
 | 
			
		||||
      }
 | 
			
		||||
      for (let i = 0; i < resData.hiddenVideo.length; i++) {
 | 
			
		||||
        resData.hiddenVideo[i].FILEPATH =
 | 
			
		||||
            filePath + resData.hiddenVideo[i].FILEPATH;
 | 
			
		||||
      }
 | 
			
		||||
      for (let i = 0; i < resData.checkList.length; i++) {
 | 
			
		||||
        for (let j = 0; j < resData.checkList[i].cImgs.length; j++) {
 | 
			
		||||
          resData.checkList[i].cImgs[j].FILEPATH =
 | 
			
		||||
              filePath + resData.checkList[i].cImgs[j].FILEPATH;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      this.info = resData.pd;
 | 
			
		||||
      this.rectificationPlanInfo = resData.hs;
 | 
			
		||||
      this.hiddenFindPeople = resData.hiddenFindPeople;
 | 
			
		||||
      this.hImgs = resData.hImgs;
 | 
			
		||||
      this.rImgs = resData.rImgs;
 | 
			
		||||
      this.sImgs = resData.sImgs;
 | 
			
		||||
      this.checkList = resData.checkList;
 | 
			
		||||
      this.hiddenVideo = resData.hiddenVideo;
 | 
			
		||||
      this.hiddenExamineList = resData.hiddenExa;
 | 
			
		||||
      this.$emit("throw-basic-info", resData)
 | 
			
		||||
    },
 | 
			
		||||
    formatDate(date) {
 | 
			
		||||
      return dayjs(date).format('YYYY-MM-DD')
 | 
			
		||||
    },
 | 
			
		||||
    fnPreviewVideo(src) {
 | 
			
		||||
      this.videoDialog.visible = true;
 | 
			
		||||
      this.videoDialog.src = src;
 | 
			
		||||
    },
 | 
			
		||||
    fnCloseVideoDialog() {
 | 
			
		||||
      this.videoDialog.visible = false;
 | 
			
		||||
      this.videoDialog.src = '';
 | 
			
		||||
    },
 | 
			
		||||
    fnPreviewFile(src) {
 | 
			
		||||
      uni.downloadFile({
 | 
			
		||||
        url: this.$filePath + src,
 | 
			
		||||
        success: (res) => {
 | 
			
		||||
          uni.openDocument({
 | 
			
		||||
            filePath: res.tempFilePath,
 | 
			
		||||
          });
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
.ml-10:first-child {
 | 
			
		||||
  margin-left: 0;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,137 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view>
 | 
			
		||||
    <u-form-item
 | 
			
		||||
        :label="label"
 | 
			
		||||
        :prop="prop"
 | 
			
		||||
        :required="required"
 | 
			
		||||
        @click="fnShowPicker"
 | 
			
		||||
    >
 | 
			
		||||
      <view class="select_content">
 | 
			
		||||
        <u-input
 | 
			
		||||
            :value="name || '请选择'"
 | 
			
		||||
            border="none"
 | 
			
		||||
            input-align="right"
 | 
			
		||||
            readonly
 | 
			
		||||
        />
 | 
			
		||||
        <u-icon name="arrow-right"></u-icon>
 | 
			
		||||
      </view>
 | 
			
		||||
    </u-form-item>
 | 
			
		||||
    <u-line/>
 | 
			
		||||
    <u-picker
 | 
			
		||||
        :show="visible"
 | 
			
		||||
        :columns="[columns]"
 | 
			
		||||
        key-name="NAME"
 | 
			
		||||
        :default-index="[defaultIndex]"
 | 
			
		||||
        @cancel="visible = false"
 | 
			
		||||
        @confirm="fnConfirm"
 | 
			
		||||
    />
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {getPersonnelList} from "@/api/api";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
    name: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    id: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    label: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "人员",
 | 
			
		||||
    },
 | 
			
		||||
    prop: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    required: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
    disabled: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
    departmentId: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: false,
 | 
			
		||||
    },
 | 
			
		||||
    corpInfoId: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: false,
 | 
			
		||||
    },
 | 
			
		||||
    // 是否允许选择当前登录人
 | 
			
		||||
    isAllowSelectionCurrentPerson: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      visible: false,
 | 
			
		||||
      columns:[],
 | 
			
		||||
      defaultIndex:0
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    async fnGetData() {
 | 
			
		||||
      const resData = await getPersonnelList({
 | 
			
		||||
        DEPARTMENT_ID: this.departmentId,
 | 
			
		||||
        NOMAIN: "1",
 | 
			
		||||
        loading: false,
 | 
			
		||||
        postMethod: 'application/json',
 | 
			
		||||
      });
 | 
			
		||||
      this.columns = resData.userList;
 | 
			
		||||
    },
 | 
			
		||||
    fnShowPicker(){
 | 
			
		||||
      if (this.disabled) return;
 | 
			
		||||
      if (this.columns.length === 0) {
 | 
			
		||||
        uni.showToast({
 | 
			
		||||
          title: "暂无可选人员",
 | 
			
		||||
          icon: "none",
 | 
			
		||||
        });
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.defaultIndex = 0;
 | 
			
		||||
      for (let i = 0; i < this.columns.length; i++) {
 | 
			
		||||
        if (this.columns[i].USER_ID === this.id) {
 | 
			
		||||
          this.defaultIndex = i;
 | 
			
		||||
          break;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    fnConfirm(event){
 | 
			
		||||
      if (!this.isAllowSelectionCurrentPerson) {
 | 
			
		||||
        if (event.value[0].USER_ID === this.$store.getters.getUserInfo.USER_ID) {
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            title: "不能选择当前登录人",
 | 
			
		||||
            icon: "none",
 | 
			
		||||
          });
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      this.$emit("update:id", event.value[0].USER_ID);
 | 
			
		||||
      this.$emit("update:name", event.value[0].NAME);
 | 
			
		||||
      this.$emit("confirm", event.value[0]);
 | 
			
		||||
      this.visible = false;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  watch:{
 | 
			
		||||
    departmentId(val) {
 | 
			
		||||
      if (val) this.fnGetData();
 | 
			
		||||
      else this.columns = [];
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <u-cell :title="label">
 | 
			
		||||
    <template #label>
 | 
			
		||||
      <view class="mt-10 flex-start">
 | 
			
		||||
        <view v-for="(item, index) in files" :key="index" class="ml-10">
 | 
			
		||||
          <u-image
 | 
			
		||||
            show-loading
 | 
			
		||||
            width="100rpx"
 | 
			
		||||
            height="100rpx"
 | 
			
		||||
            :src="item.FILEPATH"
 | 
			
		||||
            @click="fnPreviewImage(item.FILEPATH, files)"
 | 
			
		||||
          />
 | 
			
		||||
        </view>
 | 
			
		||||
      </view>
 | 
			
		||||
    </template>
 | 
			
		||||
  </u-cell>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
    files: {
 | 
			
		||||
      type: Array,
 | 
			
		||||
      required: true,
 | 
			
		||||
    },
 | 
			
		||||
    label: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "图片",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fnPreviewImage(src, srcArr) {
 | 
			
		||||
      const urls = srcArr.map((item) => item.FILEPATH);
 | 
			
		||||
      uni.previewImage({
 | 
			
		||||
        urls,
 | 
			
		||||
        current: src,
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view>
 | 
			
		||||
    <u-form-item
 | 
			
		||||
        :label="label"
 | 
			
		||||
        :prop="prop"
 | 
			
		||||
        :required="required"
 | 
			
		||||
        :label-position="labelPosition"
 | 
			
		||||
        @click="fnShowPicker"
 | 
			
		||||
    >
 | 
			
		||||
      <view class="select_content">
 | 
			
		||||
        <u-input
 | 
			
		||||
            :value="value || '请选择'"
 | 
			
		||||
            border="none"
 | 
			
		||||
            input-align="right"
 | 
			
		||||
            readonly
 | 
			
		||||
        />
 | 
			
		||||
        <u-icon name="arrow-right"></u-icon>
 | 
			
		||||
      </view>
 | 
			
		||||
    </u-form-item>
 | 
			
		||||
    <u-line/>
 | 
			
		||||
    <u-datetime-picker
 | 
			
		||||
        v-model="currentValue"
 | 
			
		||||
        :show="visible"
 | 
			
		||||
        :max-date="maxDate"
 | 
			
		||||
        :min-date="minDate"
 | 
			
		||||
        :mode="mode"
 | 
			
		||||
        @cancel="visible = false"
 | 
			
		||||
        @confirm="fnConfirm"
 | 
			
		||||
    />
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import dayjs from "dayjs";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
    value: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    label: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "时间",
 | 
			
		||||
    },
 | 
			
		||||
    prop: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    mode: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "datetime",
 | 
			
		||||
    },
 | 
			
		||||
    labelPosition: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "left",
 | 
			
		||||
    },
 | 
			
		||||
    required: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
    maxDate: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: dayjs().add(10, "year").valueOf(),
 | 
			
		||||
    },
 | 
			
		||||
    minDate: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: dayjs().subtract(10, "year").valueOf(),
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      visible: false,
 | 
			
		||||
      currentValue: this.value ? dayjs(this.value).valueOf() : new Date().getTime(),
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fnShowPicker() {
 | 
			
		||||
      this.visible = true
 | 
			
		||||
    },
 | 
			
		||||
    fnConfirm({mode, value}) {
 | 
			
		||||
      if (mode === "datetime")
 | 
			
		||||
        this.$emit('input', dayjs(value).format("YYYY-MM-DD HH:mm"))
 | 
			
		||||
      else if (mode === "date")
 | 
			
		||||
        this.$emit('input', dayjs(value).format("YYYY-MM-DD"))
 | 
			
		||||
      else if (mode === "year-month")
 | 
			
		||||
        this.$emit('input', dayjs(value).format("YYYY-MM"))
 | 
			
		||||
      this.visible = false;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,128 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view>
 | 
			
		||||
    <u-form-item
 | 
			
		||||
        :label="label"
 | 
			
		||||
        :label-position="labelPosition"
 | 
			
		||||
        :prop="prop"
 | 
			
		||||
        :required="required"
 | 
			
		||||
    >
 | 
			
		||||
      <view class="mt-10" style="flex: 1">
 | 
			
		||||
        <u-upload
 | 
			
		||||
            :file-list="value"
 | 
			
		||||
            :multiple="multiple"
 | 
			
		||||
            :max-count="maxCount"
 | 
			
		||||
            width="76"
 | 
			
		||||
            height="76"
 | 
			
		||||
            :accept="accept"
 | 
			
		||||
            :disabled="disabled"
 | 
			
		||||
            :deletable="!deletable"
 | 
			
		||||
            :capture="capture"
 | 
			
		||||
            @afterRead="fnAfterRead"
 | 
			
		||||
            @delete="fnDelete"
 | 
			
		||||
        />
 | 
			
		||||
      </view>
 | 
			
		||||
    </u-form-item>
 | 
			
		||||
    <u-line/>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {setFileDelete} from "@/api/api";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
    value: {
 | 
			
		||||
      type: Array,
 | 
			
		||||
      required: true,
 | 
			
		||||
      default: () => [],
 | 
			
		||||
    },
 | 
			
		||||
    label: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "图片",
 | 
			
		||||
    },
 | 
			
		||||
    labelPosition: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "top",
 | 
			
		||||
    },
 | 
			
		||||
    prop: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "",
 | 
			
		||||
    },
 | 
			
		||||
    required: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
    multiple: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
    maxCount: {
 | 
			
		||||
      type: Number,
 | 
			
		||||
      default: 4,
 | 
			
		||||
    },
 | 
			
		||||
    accept: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      default: "image",
 | 
			
		||||
    },
 | 
			
		||||
    defineUpload: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
    defineDelete: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true,
 | 
			
		||||
    },
 | 
			
		||||
    disabled: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
    deletable: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
    capture: {
 | 
			
		||||
      type: Array,
 | 
			
		||||
      default: () => ["album", "camera"],
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fnAfterRead(event) {
 | 
			
		||||
      if (this.multiple) {
 | 
			
		||||
        if (this.defineUpload) {
 | 
			
		||||
          this.$emit('input', [...this.value, ...event.file])
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        if (this.defineUpload) {
 | 
			
		||||
          this.$emit('input', [...this.value, event.file])
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      this.$emit('after-read', event.file)
 | 
			
		||||
    },
 | 
			
		||||
    fnDelete(event) {
 | 
			
		||||
      uni.showModal({
 | 
			
		||||
        title: "提示",
 | 
			
		||||
        content: "是否删除该图片",
 | 
			
		||||
        success: async (res) => {
 | 
			
		||||
          if (res.confirm) {
 | 
			
		||||
            if (this.defineDelete) {
 | 
			
		||||
              if (event.file.IMGFILES_ID) {
 | 
			
		||||
                await setFileDelete({
 | 
			
		||||
                  IMGFILES_ID: event.file.IMGFILES_ID,
 | 
			
		||||
                  postMethod: 'application/json',
 | 
			
		||||
                });
 | 
			
		||||
              }
 | 
			
		||||
              const value = uni.$u.deepClone(this.value)
 | 
			
		||||
              value.splice(event.index, 1)
 | 
			
		||||
              this.$emit('input', value)
 | 
			
		||||
            } else {
 | 
			
		||||
              this.$emit('delete', event)
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
							
								
								
									
										12
									
								
								pages.json
								
								
								
								
							
							
						
						
									
										12
									
								
								pages.json
								
								
								
								
							| 
						 | 
				
			
			@ -423,6 +423,18 @@
 | 
			
		|||
			"style": {
 | 
			
		||||
				"navigationBarTitleText": "开始考试"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"path": "pages/hidden_rectification/index",
 | 
			
		||||
			"style": {
 | 
			
		||||
				"navigationBarTitleText": "隐患整改"
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"path": "pages/hidden_rectification/rectification",
 | 
			
		||||
			"style": {
 | 
			
		||||
				"navigationBarTitleText": "隐患整改"
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	],
 | 
			
		||||
	"globalStyle": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,126 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="content">
 | 
			
		||||
    <u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
 | 
			
		||||
      <u-list-item v-for="(item, index) in list" :key="index">
 | 
			
		||||
        <view>
 | 
			
		||||
          <view class="flex-between main-title">
 | 
			
		||||
            <view class="u-line-1">{{ item.HIDDENDESCR || "暂无" }}</view>
 | 
			
		||||
            <view :class="HIDDEN_LEVEL_COlOR[item.HIDDENLEVEL]">
 | 
			
		||||
              {{ item.HIDDENLEVELNAME }}
 | 
			
		||||
            </view>
 | 
			
		||||
          </view>
 | 
			
		||||
          <view class="flex-between mt-10 subtitle">
 | 
			
		||||
            <view>来源:{{ HIDDEN_SOURCE[item.SOURCE] }}</view>
 | 
			
		||||
          </view>
 | 
			
		||||
          <view class="flex-between subtitle mt-5">
 | 
			
		||||
            <view>隐患发现人:{{ item.findUserNames || "暂无" }}</view>
 | 
			
		||||
            <view>
 | 
			
		||||
              隐患发现时间:{{ item.DISCOVERYTIME ? formatDate(item.DISCOVERYTIME) : "暂无" }}
 | 
			
		||||
            </view>
 | 
			
		||||
          </view>
 | 
			
		||||
          <view class="flex-between subtitle mt-5">
 | 
			
		||||
            <view>隐患确认人:{{ item.confirmUserName || "暂无" }}</view>
 | 
			
		||||
            <view>
 | 
			
		||||
              隐患确认时间:{{ item.CONFIRM_TIME ? formatDate(item.CONFIRM_TIME) : "暂无" }}
 | 
			
		||||
            </view>
 | 
			
		||||
          </view>
 | 
			
		||||
          <view class="flex-between mt-10 subtitle">
 | 
			
		||||
            <view></view>
 | 
			
		||||
            <view class="flex-between">
 | 
			
		||||
              <u-button type="primary" text="整改" size="mini" @click="fnRectification(item.HIDDEN_ID)"></u-button>
 | 
			
		||||
            </view>
 | 
			
		||||
          </view>
 | 
			
		||||
        </view>
 | 
			
		||||
      </u-list-item>
 | 
			
		||||
    </u-list>
 | 
			
		||||
    <empty v-else></empty>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {getHiddenList} from "../../api/api";
 | 
			
		||||
import dayjs from 'dayjs'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      pageSize: 10,
 | 
			
		||||
      currentPage: 1,
 | 
			
		||||
      totalPage: 0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      HIDDEN_LEVEL_COlOR: {
 | 
			
		||||
        hiddenLevel1001: "yellow-bg",
 | 
			
		||||
        hiddenLevel1002: "yellow-bg",
 | 
			
		||||
        hiddenLevel1004: "yellow-bg",
 | 
			
		||||
        hiddenLevel2001: "red-bg",
 | 
			
		||||
        hiddenLevel2002: "red-bg",
 | 
			
		||||
      },
 | 
			
		||||
      HIDDEN_SOURCE: {
 | 
			
		||||
        1: "隐患快报",
 | 
			
		||||
        2: "清单排查",
 | 
			
		||||
        3: "清单排查",
 | 
			
		||||
        4: "安全环保检查(监管端)",
 | 
			
		||||
        5: "安全环保检查(企业端)",
 | 
			
		||||
        6: "消防检查",
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.resetList()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    async getData() {
 | 
			
		||||
      let resData = await getHiddenList({
 | 
			
		||||
        DISPOSESTATE: 2,
 | 
			
		||||
        isIndex: 2,
 | 
			
		||||
        USERDEPT: this.$store.getters.getUserInfo.DEPARTMENT_ID,
 | 
			
		||||
        SELFUSERID: this.$store.getters.getUserInfo.USER_ID,
 | 
			
		||||
        currentPage: this.currentPage,
 | 
			
		||||
        showCount: this.pageSize,
 | 
			
		||||
        totalResult: 0,
 | 
			
		||||
        postMethod: 'application/json',
 | 
			
		||||
        CORPINFO_ID:''
 | 
			
		||||
      });
 | 
			
		||||
      this.list = [...this.list, ...resData.varList];
 | 
			
		||||
      this.totalPage = resData.page.totalPage;
 | 
			
		||||
    },
 | 
			
		||||
    resetList() {
 | 
			
		||||
      this.pageSize = 10
 | 
			
		||||
      this.currentPage = 1
 | 
			
		||||
      this.list = []
 | 
			
		||||
      this.getData()
 | 
			
		||||
    },
 | 
			
		||||
    scrolltolower() {
 | 
			
		||||
      this.currentPage++;
 | 
			
		||||
      if (this.totalPage >= this.currentPage) this.getData();
 | 
			
		||||
    },
 | 
			
		||||
    formatDate(date) {
 | 
			
		||||
      return dayjs(date).format("YYYY-MM-DD")
 | 
			
		||||
    },
 | 
			
		||||
    fnRectification(HIDDEN_ID) {
 | 
			
		||||
      uni.$u.route({
 | 
			
		||||
        url: '/pages/hidden_rectification/rectification',
 | 
			
		||||
        params: {HIDDEN_ID,}
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
.yellow-bg {
 | 
			
		||||
  color: #fbbd08;
 | 
			
		||||
  background-color: #fef2ce;
 | 
			
		||||
  padding: 10rpx 20rpx;
 | 
			
		||||
  font-size: 24rpx;
 | 
			
		||||
  border-radius: 10rpx;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.red-bg {
 | 
			
		||||
  color: #e54d42;
 | 
			
		||||
  background-color: #fadbd9;
 | 
			
		||||
  padding: 10rpx 20rpx;
 | 
			
		||||
  font-size: 24rpx;
 | 
			
		||||
  border-radius: 10rpx;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,507 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <view class="content">
 | 
			
		||||
    <view class="card">
 | 
			
		||||
      <app-hidden-view
 | 
			
		||||
          :hidden-id="hiddenId"
 | 
			
		||||
          @throw-basic-info="info = $event.pd"
 | 
			
		||||
      />
 | 
			
		||||
      <view class="card">
 | 
			
		||||
        <u-form
 | 
			
		||||
            ref="formRef"
 | 
			
		||||
            label-position="left"
 | 
			
		||||
            :model="form"
 | 
			
		||||
            :rules="rules"
 | 
			
		||||
            label-width="auto"
 | 
			
		||||
        >
 | 
			
		||||
          <u-form-item label="是否正常整改" prop="IS_NORMAL" required>
 | 
			
		||||
            <u-radio-group v-model="form.IS_NORMAL" direction="horizontal">
 | 
			
		||||
              <u-radio name="1" label="是" value="1"/>
 | 
			
		||||
              <u-radio name="2" label="否" value="2"/>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </u-form-item>
 | 
			
		||||
          <u-line/>
 | 
			
		||||
          <block v-if="form.IS_NORMAL === '2'">
 | 
			
		||||
            <u-form-item
 | 
			
		||||
                label="无法整改原因"
 | 
			
		||||
                label-position="top"
 | 
			
		||||
                prop="disposalPlan"
 | 
			
		||||
                required
 | 
			
		||||
            >
 | 
			
		||||
              <u-textarea
 | 
			
		||||
                  v-model="form.disposalPlan"
 | 
			
		||||
                  placeholder="请输入无法整改原因"
 | 
			
		||||
                  border="none"
 | 
			
		||||
                  auto-height
 | 
			
		||||
              />
 | 
			
		||||
            </u-form-item>
 | 
			
		||||
            <u-line/>
 | 
			
		||||
          </block>
 | 
			
		||||
          <block v-if="form.IS_NORMAL === '1'">
 | 
			
		||||
            <u-divider text-position="left" text="隐患整改"></u-divider>
 | 
			
		||||
            <u-form-item
 | 
			
		||||
                label="隐患整改详细描述"
 | 
			
		||||
                label-position="top"
 | 
			
		||||
                prop="RECTIFYDESCR"
 | 
			
		||||
                required
 | 
			
		||||
            >
 | 
			
		||||
              <u-textarea
 | 
			
		||||
                  v-model="form.RECTIFYDESCR"
 | 
			
		||||
                  placeholder="请输入隐患整改详细描述"
 | 
			
		||||
                  border="none"
 | 
			
		||||
                  auto-height
 | 
			
		||||
              />
 | 
			
		||||
            </u-form-item>
 | 
			
		||||
            <u-line/>
 | 
			
		||||
            <app-time
 | 
			
		||||
                v-model="form.RECTIFICATIONTIME"
 | 
			
		||||
                prop="RECTIFICATIONTIME"
 | 
			
		||||
                mode="date"
 | 
			
		||||
                label="整改日期"
 | 
			
		||||
            />
 | 
			
		||||
            <u-form-item label="投入资金(元)" prop="INVEST_FUNDS" required>
 | 
			
		||||
              <u-input
 | 
			
		||||
                  v-model="form.INVEST_FUNDS"
 | 
			
		||||
                  placeholder="请输入投入资金"
 | 
			
		||||
                  border="none"
 | 
			
		||||
                  type="number"
 | 
			
		||||
                  input-align="right"
 | 
			
		||||
              />
 | 
			
		||||
            </u-form-item>
 | 
			
		||||
            <u-line/>
 | 
			
		||||
            <app-upload
 | 
			
		||||
                v-model="form.afterRectificationFile"
 | 
			
		||||
                label="整改后照片"
 | 
			
		||||
                prop="afterRectificationFile"
 | 
			
		||||
            />
 | 
			
		||||
            <view>
 | 
			
		||||
              <u-form-item label="验收人员">
 | 
			
		||||
                <u-button
 | 
			
		||||
                    custom-style="width: 100rpx;margin-right:0"
 | 
			
		||||
                    type="primary"
 | 
			
		||||
                    size="mini"
 | 
			
		||||
                    text="添加"
 | 
			
		||||
                    @click="fnAddAcceptanceList"
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <view
 | 
			
		||||
                  v-for="(item, index) in acceptanceList"
 | 
			
		||||
                  :key="item.id"
 | 
			
		||||
                  style="
 | 
			
		||||
                  position: relative;
 | 
			
		||||
                  border: 1px dashed #ccc;
 | 
			
		||||
                  padding: 20rpx 20rpx 20rpx 40rpx;
 | 
			
		||||
                "
 | 
			
		||||
                  class="mt-10"
 | 
			
		||||
              >
 | 
			
		||||
                <app-department
 | 
			
		||||
                    :id.sync="item.DEPARTMENT_ID"
 | 
			
		||||
                    :name.sync="item.DEPARTMENT_NAME"
 | 
			
		||||
                    :form.sync="acceptanceList[index]"
 | 
			
		||||
                    clear-key="USER_NAME,USER_ID"
 | 
			
		||||
                    label="验收部门"
 | 
			
		||||
                />
 | 
			
		||||
                <app-personnel
 | 
			
		||||
                    :id.sync="item.USER_ID"
 | 
			
		||||
                    :name.sync="item.USER_NAME"
 | 
			
		||||
                    :department-id="item.DEPARTMENT_ID"
 | 
			
		||||
                    :is-allow-selection-current-person="false"
 | 
			
		||||
                    label="验收人"
 | 
			
		||||
                />
 | 
			
		||||
                <u-icon
 | 
			
		||||
                    v-if="index !== 0"
 | 
			
		||||
                    name="close-circle-fill"
 | 
			
		||||
                    color="#ff2929"
 | 
			
		||||
                    size="20"
 | 
			
		||||
                    custom-style="position: absolute;right: -20rpx;top: -20rpx"
 | 
			
		||||
                    @click="acceptanceList.splice(index, 1)"
 | 
			
		||||
                />
 | 
			
		||||
              </view>
 | 
			
		||||
            </view>
 | 
			
		||||
            <u-form-item label="是否有整改方案" prop="HAVESCHEME" required>
 | 
			
		||||
              <u-radio-group v-model="form.HAVESCHEME" direction="horizontal">
 | 
			
		||||
                <u-radio name="1" label="是"/>
 | 
			
		||||
                <u-radio name="0" label="否"/>
 | 
			
		||||
              </u-radio-group>
 | 
			
		||||
            </u-form-item>
 | 
			
		||||
            <u-line/>
 | 
			
		||||
            <block v-if="form.HAVESCHEME === '1'">
 | 
			
		||||
              <u-cell-group :border="false">
 | 
			
		||||
                <u-cell title="排查日期" :value="info.CREATTIME"/>
 | 
			
		||||
                <u-cell title="隐患清单" :value="info.LIST_NAME"/>
 | 
			
		||||
              </u-cell-group>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="治理标准"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="GOVERNSTANDARDS"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.GOVERNSTANDARDS"
 | 
			
		||||
                    placeholder="请输入治理标准"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="治理方法"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="GOVERNMETHOD"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.GOVERNMETHOD"
 | 
			
		||||
                    placeholder="请输入治理方法"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="经费落实"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="EXPENDITURE"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.EXPENDITURE"
 | 
			
		||||
                    placeholder="请输入经费落实"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="负责人员"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="PRINCIPAL"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.PRINCIPAL"
 | 
			
		||||
                    placeholder="请输入负责人员"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="工时安排"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="PROGRAMMING"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.PROGRAMMING"
 | 
			
		||||
                    placeholder="请输入工时安排"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="时限要求"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="TIMELIMITFOR"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.TIMELIMITFOR"
 | 
			
		||||
                    placeholder="请输入时限要求"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="工作要求"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="JOBREQUIREMENT"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.JOBREQUIREMENT"
 | 
			
		||||
                    placeholder="请输入工作要求"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <u-form-item
 | 
			
		||||
                  label="其它事项"
 | 
			
		||||
                  label-position="top"
 | 
			
		||||
                  prop="OTHERBUSINESS"
 | 
			
		||||
                  required
 | 
			
		||||
              >
 | 
			
		||||
                <u-textarea
 | 
			
		||||
                    v-model="form.OTHERBUSINESS"
 | 
			
		||||
                    placeholder="请输入其它事项"
 | 
			
		||||
                    border="none"
 | 
			
		||||
                    auto-height
 | 
			
		||||
                />
 | 
			
		||||
              </u-form-item>
 | 
			
		||||
              <u-line/>
 | 
			
		||||
              <app-upload
 | 
			
		||||
                  v-model="form.programmeFile"
 | 
			
		||||
                  label="方案照片"
 | 
			
		||||
                  prop="programmeFile"
 | 
			
		||||
              />
 | 
			
		||||
            </block>
 | 
			
		||||
          </block>
 | 
			
		||||
          <view class="mt-10">
 | 
			
		||||
            <u-button
 | 
			
		||||
                type="primary"
 | 
			
		||||
                shape="circle"
 | 
			
		||||
                text="提交"
 | 
			
		||||
                :throttle-time="1000"
 | 
			
		||||
                @click="fnSubmit"
 | 
			
		||||
            />
 | 
			
		||||
          </view>
 | 
			
		||||
        </u-form>
 | 
			
		||||
      </view>
 | 
			
		||||
    </view>
 | 
			
		||||
  </view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AppHiddenView from '@/components/hidden_view/index.vue'
 | 
			
		||||
import AppTime from "@/components/time/index.vue";
 | 
			
		||||
import AppUpload from "@/components/upload/index.vue";
 | 
			
		||||
import AppDepartment from "@/components/department/index.vue";
 | 
			
		||||
import AppPersonnel from "@/components/personnel/index.vue";
 | 
			
		||||
import {fileUpload, setHiddenNuRectificationSubmit, setHiddenRectificationSubmit} from "@/api/api";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    AppHiddenView,
 | 
			
		||||
    AppTime,
 | 
			
		||||
    AppUpload,
 | 
			
		||||
    AppDepartment,
 | 
			
		||||
    AppPersonnel,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      hiddenId: '',
 | 
			
		||||
      info: {},
 | 
			
		||||
      form: {
 | 
			
		||||
        IS_NORMAL: "1",
 | 
			
		||||
        disposalPlan: "",
 | 
			
		||||
        RECTIFYDESCR: "",
 | 
			
		||||
        RECTIFICATIONTIME: "",
 | 
			
		||||
        INVEST_FUNDS: "",
 | 
			
		||||
        afterRectificationFile: [],
 | 
			
		||||
        HAVESCHEME: "0",
 | 
			
		||||
        GOVERNSTANDARDS: "",
 | 
			
		||||
        GOVERNMETHOD: "",
 | 
			
		||||
        EXPENDITURE: "",
 | 
			
		||||
        PRINCIPAL: "",
 | 
			
		||||
        PROGRAMMING: "",
 | 
			
		||||
        TIMELIMITFOR: "",
 | 
			
		||||
        JOBREQUIREMENT: "",
 | 
			
		||||
        OTHERBUSINESS: "",
 | 
			
		||||
        programmeFile: [],
 | 
			
		||||
      },
 | 
			
		||||
      rules: {
 | 
			
		||||
        IS_NORMAL: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请选择是否正常整改",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        disposalPlan: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入无法整改原因",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        RECTIFYDESCR: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入隐患整改详细描述",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        RECTIFICATIONTIME: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请选择整改日期",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        INVEST_FUNDS: {
 | 
			
		||||
          type: "number",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入投入资金",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        afterRectificationFile: {
 | 
			
		||||
          type: "array",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请上传整改后照片",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        HAVESCHEME: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请选择是否有整改方案",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        GOVERNSTANDARDS: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入治理标准",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        GOVERNMETHOD: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入治理方法",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        EXPENDITURE: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入经费落实",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        PRINCIPAL: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入负责人员",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        PROGRAMMING: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入工时安排",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        TIMELIMITFOR: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入时限要求",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        JOBREQUIREMENT: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入工作要求",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        OTHERBUSINESS: {
 | 
			
		||||
          type: "string",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请输入其它事项",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
        programmeFile: {
 | 
			
		||||
          type: "array",
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: "请上传方案照片",
 | 
			
		||||
          trigger: ["blur", "change"],
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
      acceptanceList: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    this.hiddenId = query.HIDDEN_ID
 | 
			
		||||
    this.fnAddAcceptanceList()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fnAddAcceptanceList() {
 | 
			
		||||
      this.acceptanceList.push({
 | 
			
		||||
        DEPARTMENT_NAME: "",
 | 
			
		||||
        DEPARTMENT_ID: "",
 | 
			
		||||
        USER_NAME: "",
 | 
			
		||||
        USER_ID: "",
 | 
			
		||||
        id: uni.$u.guid(),
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    async fnSubmit() {
 | 
			
		||||
      const isValidate = await this.$refs.formRef.validate()
 | 
			
		||||
      if (!isValidate) return;
 | 
			
		||||
      if (this.form.IS_NORMAL === 1 || this.form.IS_NORMAL === "1") {
 | 
			
		||||
        for (let i = 0; i < this.acceptanceList.length; i++) {
 | 
			
		||||
          if (
 | 
			
		||||
              !this.acceptanceList[i].DEPARTMENT_NAME ||
 | 
			
		||||
              !this.acceptanceList[i].USER_NAME
 | 
			
		||||
          ) {
 | 
			
		||||
            uni.showToast({
 | 
			
		||||
              icon: "none",
 | 
			
		||||
              title: "请选择部门人员",
 | 
			
		||||
            });
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        await setHiddenRectificationSubmit({
 | 
			
		||||
          HIDDEN_ID: this.hiddenId,
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          SCREENINGDATE: this.info.CREATTIME,
 | 
			
		||||
          LISTNAME: this.info.LIST_NAME,
 | 
			
		||||
          OTHER: JSON.stringify(this.acceptanceList),
 | 
			
		||||
        });
 | 
			
		||||
        for (let i = 0; i < this.form.afterRectificationFile.length; i++) {
 | 
			
		||||
          await this.fnUploadFile(
 | 
			
		||||
              this.form.afterRectificationFile[i].url,
 | 
			
		||||
              this.hiddenId,
 | 
			
		||||
              4
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
        for (let i = 0; i < this.form.programmeFile.length; i++) {
 | 
			
		||||
          await this.fnUploadFile(this.form.programmeFile[i].url, this.hiddenId, 8);
 | 
			
		||||
        }
 | 
			
		||||
        uni.showToast({
 | 
			
		||||
          icon: "none",
 | 
			
		||||
          title: "提交成功",
 | 
			
		||||
        });
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
          uni.navigateBack();
 | 
			
		||||
        }, 1000);
 | 
			
		||||
      } else {
 | 
			
		||||
        if (!this.form.disposalPlan) {
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            icon: "none",
 | 
			
		||||
            title: "请输入无法整改原因",
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
        const data = await setHiddenNuRectificationSubmit({
 | 
			
		||||
          disposalPlan: this.form.disposalPlan,
 | 
			
		||||
          HIDDEN_ID: this.hiddenId,
 | 
			
		||||
          USER_ID: this.$store.getters.getUserInfo.USER_ID,
 | 
			
		||||
          USERNAME: this.$store.getters.getUserInfo.USERNAME,
 | 
			
		||||
          postMethod: 'application/json',
 | 
			
		||||
        });
 | 
			
		||||
        if (data.result === "success") {
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            icon: "none",
 | 
			
		||||
            title: data.msg,
 | 
			
		||||
          });
 | 
			
		||||
          setTimeout(() => {
 | 
			
		||||
            uni.navigateBack();
 | 
			
		||||
          }, 1000);
 | 
			
		||||
        } else {
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            icon: "none",
 | 
			
		||||
            title: "系统异常:" + data.msg,
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    async fnUploadFile(filePath, FOREIGN_KEY, TYPE) {
 | 
			
		||||
      await fileUpload({
 | 
			
		||||
        filePath,
 | 
			
		||||
        name: "file",
 | 
			
		||||
        formData: {
 | 
			
		||||
          foreignKey: FOREIGN_KEY,
 | 
			
		||||
          corpInfoId: this.$store.getters.getUserInfo.CORPINFO_ID,
 | 
			
		||||
          type: TYPE,
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -89,6 +89,11 @@
 | 
			
		|||
						img: require('../../static/icon-apps/app_icons8.png'),
 | 
			
		||||
						title: '培训管理',
 | 
			
		||||
						url: '/pages/train_management/index'
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						img: require('../../static/icon-apps/app_icons9.png'),
 | 
			
		||||
						title: '隐患整改',
 | 
			
		||||
						url: '/pages/hidden_rectification/index'
 | 
			
		||||
					}
 | 
			
		||||
				],
 | 
			
		||||
				classInfo: null,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 5.6 KiB  | 
| 
						 | 
				
			
			@ -96,6 +96,12 @@
 | 
			
		|||
  justify-content: flex-end;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.flex-start {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  justify-content: flex-start;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.flex-warp {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: row;
 | 
			
		||||
| 
						 | 
				
			
			@ -128,3 +134,28 @@
 | 
			
		|||
    font-weight: normal;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.u-form-item__body__right__content__slot {
 | 
			
		||||
  position: relative;
 | 
			
		||||
 | 
			
		||||
  .u-radio-group--row {
 | 
			
		||||
    justify-content: flex-end;
 | 
			
		||||
    gap: 20rpx;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .flex-start {
 | 
			
		||||
    .u-radio-group--row {
 | 
			
		||||
      justify-content: flex-start;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .select_content {
 | 
			
		||||
    flex: 1;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.u-form-item__body__right__message {
 | 
			
		||||
  margin-bottom: 10rpx;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue