Your Name
2022-08-01 1621b3719092d93e6c29f7a27e401529e0454420
src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue
文件名从 src/views/doublePrevent/hiddenManage/hiddenRectify/components/rectifyDialog.vue 修改
@@ -5,27 +5,12 @@
                <el-row :gutter="35">
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改说明" prop="rectifyInfo">
                            <el-input
                                class="input-add"
                                type="textarea"
                                :rows="2"
                                v-model.trim="rectifyForm.rectifyInfo"
                                placeholder="请输入整改说明"
                                clearable
                            ></el-input>
                            <el-input class="input-add" type="textarea" :rows="2" v-model.trim="rectifyForm.rectifyInfo" placeholder="请输入整改说明" clearable></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改时间" prop="applyTime">
                            <el-date-picker
                                type="datetime"
                                value-format="YYYY-MM-DD HH:mm:ss"
                                class="input-add"
                                v-model="rectifyForm.applyTime"
                                placeholder="请选择整改时间"
                                clearable
                            >
                            </el-date-picker>
                            <el-date-picker type="datetime" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" v-model="rectifyForm.applyTime" placeholder="请选择整改时间" clearable> </el-date-picker>
                        </el-form-item>
                    </el-col>
                </el-row>
@@ -42,45 +27,71 @@
                <el-row :gutter="35">
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="延期说明" prop="timeOutDesc">
                            <el-input
                                class="input-add"
                                type="textarea"
                                :rows="2"
                                v-model.trim="delayForm.timeOutDesc"
                                placeholder="请输入延期说明"
                                clearable
                            ></el-input>
                            <el-input class="input-add" type="textarea" :rows="2" v-model.trim="delayForm.timeOutDesc" placeholder="请输入延期说明" clearable></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改期限" prop="rectifyTime">
                            <el-date-picker
                                type="datetime"
                                value-format="YYYY-MM-DD HH:mm:ss"
                                class="input-add"
                                v-model="delayForm.rectifyTime"
                                placeholder="请选择整改期限"
                                clearable
                            >
                            </el-date-picker>
                            <el-date-picker type="datetime" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" v-model="delayForm.rectifyTime" placeholder="请选择整改期限" clearable> </el-date-picker>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
                <span class="dialog-footer">
                <span class="dialog-footer" v-show="disabled">
                    <el-button @click="isShowDelayDialog = !isShowDelayDialog" size="default">取 消</el-button>
                    <el-button type="primary" @click="submitDelay" v-throttle size="default">确 实</el-button>
                </span>
            </template>
        </el-dialog>
        <el-dialog :title="title" v-model="isShowCheckInfoDialog" width="600px">
            <el-form :model="checkInfoForm" ref="checkFormRef" size="default" label-width="120px">
                <el-row :gutter="35">
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改内容说明" prop="rectifyDesc">
                            <el-input class="input-add" type="textarea" :rows="2" v-model.trim="checkInfoForm.rectifyDesc" readonly></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改类型" prop="rectifyType">
                            <el-select class="input-add" v-model="checkInfoForm.rectifyType" readonly>
                                <el-option v-for="item in rectifyTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改部门" prop="rectifyDepId">
                            <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="checkInfoForm.rectifyDepId" readonly> </el-cascader>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改责任人" prop="liablePersonId">
                            <el-select class="input-add" v-model="checkInfoForm.liablePersonId" clearable filterable readonly>
                                <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="整改资金" prop="dangerResult">
                            <el-input class="input-add" type="number" v-model="checkInfoForm.cost" readonly> </el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
        </el-dialog>
    </div>
</template>
<script lang="ts">
import { getUserByDepartment } from '/@/assets/methods';
interface stateType {
    disabled: Boolean;
    isShowRectifyDialog: Boolean;
    isShowDelayDialog: Boolean;
    isShowCheckInfoDialog: Boolean;
    rectifyForm: {
        id: number | null;
        dangerManagerId: number | null;
@@ -94,9 +105,15 @@
        timeOutDesc: string | null;
    };
    title: string;
    departmentList: [];
    userList: [];
    rectifyTypeList: Array<rectifyTypeState>;
    rectifyFormRules: {};
    delayFormRules: {};
    checkInfoForm: {
        rectifyDepId: number | null;
        liablePersonId: number | null;
    };
}
interface rectifyTypeState {
    regionType: string;
@@ -112,7 +129,15 @@
        const rectifyFormRef = ref();
        const state = reactive<stateType>({
            title: '',
            disabled: false,
            rectifyTypeList: [],
            departmentList: [],
            userList: [],
            isShowCheckInfoDialog: false,
            checkInfoForm: {
                rectifyDepId: null,
                liablePersonId: null
            },
            isShowDelayDialog: false,
            isShowRectifyDialog: false,
            rectifyForm: {
@@ -138,16 +163,25 @@
        });
        //打开模态框
        const openRectifyDialog = (type: string, value: object) => {
        const openRectifyDialog = async (type: string, value: object, departmentList: []) => {
            state.departmentList = departmentList;
            if (type === '延期') {
                state.title = '延期';
                state.disabled = true;
                state.isShowDelayDialog = true;
                const delayForm = JSON.parse(JSON.stringify(value));
                state.delayForm.id = delayForm.id;
                state.delayForm.dangerManagerId = delayForm.dangerManagerId;
                state.delayForm.timeOutDesc = null;
                state.delayForm.rectifyTime = null;
            } else if (type === '查看') {
                state.title = '查看';
                state.isShowCheckInfoDialog = true;
                state.checkInfoForm.rectifyDepId = JSON.parse(JSON.stringify(value)).rectifyDepId;
                await achieveUserList();
                state.checkInfoForm = JSON.parse(JSON.stringify(value));
            } else {
                state.disabled = true;
                state.title = '整改';
                state.isShowRectifyDialog = true;
                const rectifyForm = JSON.parse(JSON.stringify(value));
@@ -214,10 +248,17 @@
            });
        };
        const achieveUserList = async () => {
            state.checkInfoForm.liablePersonId = null;
            const user: unknown = await getUserByDepartment(state.checkInfoForm.rectifyDepId);
            state.userList = user as [];
        };
        return {
            ...toRefs(state),
            rectifyFormRef,
            submitDelay,
            achieveUserList,
            submitRectify,
            openRectifyDialog
        };
@@ -225,8 +266,4 @@
};
</script>
<style scoped>
.input-length {
    width: 85%;
}
</style>
<style scoped></style>