qa-prevention-xgf-app/hiddenManageSubPackages/pages/hidden_rectification/rectification.vue

465 lines
11 KiB
Vue

<!-- 整改详情页 -->
<template>
<view class="container">
<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="是" />
<u-radio name="2" label="否" />
</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
:model-value="form.RECTIFICATIONTIME"
prop="RECTIFICATIONTIME"
mode="date"
label="整改日期"
@fn-confirm-emit="fnConfirmEmit"
/>
<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>
<view class="mt-10 flex-end">
<u-button
custom-style="width: 100rpx;margin:0"
type="primary"
size="mini"
text="添加"
@click="fnAddAcceptanceList"
/>
</view>
<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="item.DEPARTMENT_ID"
:name="item.DEPARTMENT_NAME"
:form="acceptanceList[index]"
clear-key="USER_NAME,USER_ID"
label="验收部门"
/>
<app-personnel
:id="item.USER_ID"
:name="item.USER_NAME"
:department-id="item.DEPARTMENT_ID"
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
:model-value="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 dayjs from "dayjs";
import AppHiddenView from "@/components/hiddenView/index.vue";
import AppTime from "@/components/time/index.vue";
import AppUpload from "@/components/upload/index.vue";
import useFormValidate from "@/utils/useFormValidate";
import AppDepartment from "@/components/department/index.vue";
import AppPersonnel from "@/components/personnel/index.vue";
export default {
components: {
AppHiddenView,
AppTime,
AppUpload,
AppDepartment,
AppPersonnel,
},
onLoad(query) {
this.hiddenId = query.HIDDEN_ID;
this.fnAddAcceptanceList();
},
data() {
return {
hiddenId: "",
form: {
IS_NORMAL: "1",
disposalPlan: "",
RECTIFYDESCR: "",
RECTIFICATIONTIME: "",
INVEST_FUNDS: "",
AfterRectificationFile: [],
HAVESCHEME: "0",
GOVERNSTANDARDS: "",
GOVERNMETHOD: "",
EXPENDITURE: "",
PRINCIPAL: "",
PROGRAMMING: "",
TIMELIMITFOR: "",
JOBREQUIREMENT: "",
OTHERBUSINESS: "",
programmeFile: [],
},
acceptanceList: [],
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"],
},
},
};
},
mounted() {},
methods: {
/** 添加验收列表的方法 */
fnAddAcceptanceList() {
this.acceptanceList.push({
DEPARTMENT_NAME: "",
DEPARTMENT_ID: "",
USER_NAME: "",
USER_ID: "",
id: uni.$u.guid(20),
});
},
/** 提交按钮方法 */
async fnSubmit() {
await useFormValidate(this.$refs.formRef);
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;
}
}
},
fnConfirmEmit({ mode, value }) {
if (mode === "datetime") {
this.form = {
...this.form,
RECTIFICATIONTIME: dayjs(value).format("YYYY-MM-DD HH:mm"),
};
} else if (mode === "date") {
this.form = {
...this.form,
RECTIFICATIONTIME: dayjs(value).format("YYYY-MM-DD"),
};
} else if (mode === "year-month") {
this.form = {
...this.form,
RECTIFICATIONTIME: dayjs(value).format("YYYY-MM"),
};
}
},
},
};
</script>
<style scoped lang="scss"></style>