From d91fd1557ebed3e9bcb8c051c71b9d41c0e36eef Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 02 四月 2024 16:50:07 +0800
Subject: [PATCH] Default Changelist
---
src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 260 insertions(+), 0 deletions(-)
diff --git a/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue
new file mode 100644
index 0000000..81ab0c6
--- /dev/null
+++ b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue
@@ -0,0 +1,260 @@
+<template>
+ <div class="system-add-menu-container">
+ <el-dialog :title="title" v-model="isShowCheckUnitDialog" append-to-body :close-on-click-modal="false" width="50%">
+ <el-divider></el-divider>
+ <div class="checkUnit-form">
+ <el-form :model="checkUnitForm" :rules="checkUnitFormRules" ref="checkUnitFormRef" size="default" label-width="120px">
+ <el-row :gutter="35">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20">
+ <el-form-item label="任务单元名称" prop="taskUnitName">
+ <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.taskUnitName" placeholder="请输入任务单元名称" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20">
+ <el-form-item label="任务单元说明" prop="note">
+ <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.note" placeholder="请输入任务单元说明" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime">
+ <el-form-item label="创建人" prop="location">
+ <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.createByUserName" placeholder="请输入区域位置"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime">
+ <el-form-item label="创建时间" prop="location">
+ <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.gmtCreate" placeholder="请输入区域位置"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime">
+ <el-form-item label="最后修改人" prop="location">
+ <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.lastEditUserName" placeholder="请输入区域位置"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20" v-show="personTime">
+ <el-form-item label="最后修改时间" prop="location">
+ <el-input class="input-add" :disabled="!disabled" v-model.trim="checkUnitForm.gmtModitify" placeholder="请输入区域位置"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </div>
+
+ <div class="checkUnit-point">
+ <el-tabs class="active" v-model="activeName">
+ <el-tab-pane label="检查项信息" name="checkUnit">
+ <div class="filter-container">
+ <el-button size="default" :disabled="!disabled" type="success" @click="onOpenDialogRef('新增', '')">
+ <el-icon>
+ <ele-FolderAdd />
+ </el-icon>
+ 选择风险管控措施
+ </el-button>
+ </div>
+
+ <el-table :data="measureData" border fit highlight-current-row style="width: 100%">
+ <el-table-column type="index" label="序号" width="60" />
+ <el-table-column prop="checkContent" label="管控内容" show-overflow-tooltip align="center"></el-table-column>
+ <el-table-column label="操作" width="150" align="center">
+ <template #default="scope">
+ <el-button size="small" text :disabled="!disabled" type="danger" @click="onDelCheckUnit(scope.$index, scope.row)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+
+ <template #footer>
+ <span class="dialog-footer" v-show="disabled">
+ <el-button @click="isShowCheckUnitDialog = !isShowCheckUnitDialog" size="default">取 消</el-button>
+ <el-button type="primary" @click="submitCheckUnit" v-throttle size="default">确 定</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ <el-dialog title="选择风险管控措施" v-model="isShowSelectMeasureControlDialog" append-to-body :close-on-click-modal="false" width="70%">
+ <select-measure-control-dialog ref="SelectMeasureControlDialogRef" @receiveRiskControlId="receiveRiskControlId"></select-measure-control-dialog>
+ </el-dialog>
+ </div>
+</template>
+
+<script lang="ts">
+import SelectMeasureControlDialog from './selectMeasureControlDialog.vue';
+import { reactive, toRefs, ref } from 'vue';
+import { checkUnitApi } from '/@/api/doublePreventSystem/checkUnit';
+import { ElMessage } from 'element-plus';
+interface stateType {
+ isShowCheckUnitDialog: Boolean;
+ disabled: Boolean;
+ personTime: Boolean;
+ isShowSelectMeasureControlDialog: Boolean;
+ checkUnitForm: {
+ taskUnitName: string | null;
+ note: string | null;
+ measureList: [];
+ };
+ title: string;
+ activeName: string;
+ measureData: [];
+ checkUnitData: [];
+ checkUnitFormRules: {};
+}
+
+export default {
+ name: 'checkUnitDialog',
+ components: { SelectMeasureControlDialog },
+ setup(props: any, context: any) {
+ const checkUnitFormRef = ref();
+ const riskControlMeasureDialogRef = ref();
+ const state = reactive<stateType>({
+ title: '',
+ disabled: false,
+ personTime: false,
+ activeName: 'checkUnit',
+ measureData: [],
+ checkUnitData: [],
+ isShowCheckUnitDialog: false,
+ isShowSelectMeasureControlDialog: false,
+ checkUnitForm: {
+ taskUnitName: null,
+ note: null,
+ measureList: []
+ },
+ checkUnitFormRules: {
+ taskUnitName: [{ required: true, message: '请填写任务单元名称', trigger: 'blur' }],
+ note: [{ required: true, message: '请填写任务单元说明', trigger: 'change' }]
+ }
+ });
+
+ //打开模态框
+ const openCheckUnitDialog = (type: string, value: object) => {
+ state.isShowCheckUnitDialog = true;
+ setTimeout(() => {
+ checkUnitFormRef.value.clearValidate();
+ });
+ if (type === '新增') {
+ state.disabled = true;
+ state.personTime = false;
+ state.title = '新增隐患排查单元';
+ state.measureData = [];
+ state.checkUnitForm = {
+ taskUnitName: null,
+ note: null,
+ measureList: []
+ };
+ } else if (type === '查看') {
+ state.disabled = false;
+ state.personTime = true;
+ state.title = '查看隐患排查单元';
+ state.checkUnitForm = JSON.parse(JSON.stringify(value));
+ state.measureData = state.checkUnitForm.measureList;
+ } else {
+ state.disabled = true;
+ state.personTime = false;
+ state.title = '修改隐患排查单元';
+ state.checkUnitForm = JSON.parse(JSON.stringify(value));
+ state.measureData = state.checkUnitForm.measureList;
+ }
+ };
+
+ const onOpenDialogRef = () => {
+ state.isShowSelectMeasureControlDialog = true;
+ };
+
+ const onDelCheckUnit = (value: number, scope: object) => {
+ state.measureData.splice(value, 1);
+ };
+
+ const receiveRiskControlId = (value: []) => {
+ state.isShowSelectMeasureControlDialog = false;
+ state.measureData = value;
+ state.checkUnitForm.measureList = JSON.parse(
+ JSON.stringify(
+ value.map((item: { id: number }) => {
+ return item.id;
+ })
+ )
+ );
+ };
+
+ //新增修改提交
+ const submitCheckUnit = async () => {
+ checkUnitFormRef.value.validate(async (valid: Boolean) => {
+ if (valid) {
+ if (state.title === '新增隐患排查单元') {
+ let res = await checkUnitApi().addCheckUnit(state.checkUnitForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '隐患排查单元新增成功',
+ duration: 2000
+ });
+ state.isShowCheckUnitDialog = false;
+ context.emit('refreshCheckUnit');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ } else {
+ let res = await checkUnitApi().modCheckUnit(state.checkUnitForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '隐患排查单元修改成功',
+ duration: 2000
+ });
+ state.isShowCheckUnitDialog = false;
+ context.emit('refreshCheckUnit');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: '请完善基本信息'
+ });
+ }
+ });
+ };
+
+ return {
+ ...toRefs(state),
+ checkUnitFormRef,
+ submitCheckUnit,
+ onDelCheckUnit,
+ onOpenDialogRef,
+ openCheckUnitDialog,
+ receiveRiskControlId,
+ riskControlMeasureDialogRef
+ };
+ }
+};
+</script>
+
+<style scoped>
+::v-deep.el-divider--horizontal {
+ margin-top: 0px !important;
+}
+
+::v-deep.el-dialog__body {
+ padding-top: 10px !important;
+}
+.filter-container {
+ padding: 10px 0px;
+}
+:deep(.el-textarea.is-disabled .el-textarea__inner) {
+ background-color: var(--el-card-bg-color);
+ color: var(--el-input-text-color, var(--el-text-color-regular));
+}
+:deep(.el-input.is-disabled .el-input__inner) {
+ color: var(--el-input-text-color, var(--el-text-color-regular));
+}
+:deep(.el-input.is-disabled .el-input__wrapper) {
+ background-color: var(--el-card-bg-color);
+}
+</style>
--
Gitblit v1.9.2