马宇豪
2025-03-04 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c
src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue
@@ -6,72 +6,86 @@
                    <el-row :gutter="35">
                        <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20">
                            <el-form-item label="排查类型" prop="checkWorkType">
                                <el-select class="input-add" v-model="workForm.checkWorkType" placeholder="请输入排查类型" clearable> <el-option v-for="item in checkWorkTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option></el-select>
                                <el-select class="input-add" :disabled="!disabled" v-model="workForm.checkWorkType" placeholder="请输入排查类型" clearable> <el-option v-for="item in checkWorkTypeList" :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="12" class="mb20">
                            <el-form-item label="排查名称" prop="checkWorkName">
                                <el-input class="input-add" v-model.trim="workForm.checkWorkName" placeholder="请输入排查名称" clearable></el-input>
                                <el-input class="input-add" :disabled="!disabled" v-model.trim="workForm.checkWorkName" 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="depId">
                                <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="workForm.depId"> </el-cascader>
                            </el-form-item>
                        </el-col>
                        <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20">
                            <el-form-item label="执行人" prop="execUserId">
                                <el-select class="input-add" v-model="workForm.execUserId" placeholder="请输入执行人" clearable filterable>
                                    <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="12" class="mb20">
                            <el-form-item label="排查周期" prop="checkCycle">
                                <el-input class="input-add" type="number" v-model.trim="workForm.checkCycle" placeholder="请输入排查周期" clearable></el-input>
                                <el-input class="input-add" :disabled="!disabled" type="number" v-model.trim="workForm.checkCycle" 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="checkCycleUnit">
                                <el-select class="input-add" v-model="workForm.checkCycleUnit" placeholder="请输入时间单位" clearable>
                                <el-select class="input-add" :disabled="!disabled" v-model="workForm.checkCycleUnit" placeholder="请输入时间单位" clearable>
                                    <el-option v-for="item in timeType" :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="12" class="mb20">
                            <el-form-item label="有效时间" prop="validTime">
                                <el-input class="input-add" type="number" v-model.trim="workForm.validTime" placeholder="请输入有效时间" clearable></el-input>
                                <el-input class="input-add" :disabled="!disabled" type="number" v-model.trim="workForm.validTime" 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="validTimeUnit">
                                <el-select class="input-add" v-model="workForm.validTimeUnit" placeholder="请输入时间单位" clearable>
                                <el-select class="input-add" :disabled="!disabled" v-model="workForm.validTimeUnit" placeholder="请输入时间单位" clearable>
                                    <el-option v-for="item in timeType" :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="12" class="mb20">
                            <el-form-item label="提醒时间" prop="noticeTime">
                                <el-input class="input-add" type="number" v-model.trim="workForm.noticeTime" placeholder="请输入提醒时间" clearable></el-input>
                                <el-input class="input-add" :disabled="!disabled" type="number" v-model.trim="workForm.noticeTime" 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="noticeTimeUnit">
                                <el-select class="input-add" v-model="workForm.noticeTimeUnit" placeholder="请输入时间单位" clearable>
                                <el-select class="input-add" :disabled="!disabled" v-model="workForm.noticeTimeUnit" placeholder="请输入时间单位" clearable>
                                    <el-option v-for="item in timeType" :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="12" class="mb20">
                            <el-form-item label="执行部门" prop="execDepId">
                                <el-cascader :disabled="!disabled" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="workForm.execDepId"> </el-cascader>
                            </el-form-item>
                        </el-col>
                        <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20">
                            <el-form-item label="任务单元" prop="taskUnitId">
                                <el-select class="input-add" v-model="workForm.taskUnitId" placeholder="请输入任务单元" clearable filterable>
                                <el-select class="input-add" :disabled="!disabled" v-model="workForm.taskUnitId" placeholder="请输入任务单元" clearable filterable>
                                    <el-option v-for="item in taskUnitList" :key="item.id" :label="item.taskUnitName" :value="item.id"></el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20">
                            <el-form-item label="首次任务开始时间" prop="firstStartTime">
                                <el-date-picker class="input-add" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" v-model="workForm.firstStartTime" placeholder="请选择首次任务开始时间" clearable></el-date-picker>
                                <el-date-picker :disabled="!disabled" class="input-add" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" v-model="workForm.firstStartTime" placeholder="请选择首次任务开始时间" clearable></el-date-picker>
                            </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="workForm.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="workForm.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="workForm.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="workForm.gmtModitify" placeholder="请输入区域位置"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
@@ -81,7 +95,7 @@
            <template #footer>
                <span class="dialog-footer" v-show="disabled">
                    <el-button @click="isShowWorkDialog = !isShowWorkDialog" size="default">取 消</el-button>
                    <el-button type="primary" @click="submitWork" v-throttle size="default">确 实</el-button>
                    <el-button type="primary" @click="submitWork" v-throttle size="default">确 定</el-button>
                </span>
            </template>
        </el-dialog>
@@ -94,18 +108,18 @@
interface stateType {
    disabled: Boolean;
    isShowWorkDialog: Boolean;
    personTime: Boolean;
    workForm: {
        checkWorkType: number | null;
        checkWorkName: string | null;
        taskUnitId: number | null;
        execUserId: number | null;
        execDepId: number | null;
        checkCycle: number | null;
        checkCycleUnit: number | null;
        validTime: number | null;
        validTimeUnit: number | null;
        noticeTime: number | null;
        noticeTimeUnit: number | null;
        depId: number | null;
        firstStartTime: string | null;
    };
    title: string;
@@ -131,6 +145,7 @@
        const state = reactive<stateType>({
            title: '',
            disabled: false,
            personTime: false,
            activeName: 'inspectionPoint',
            checkWorkTypeList: [],
            departmentList: [],
@@ -148,15 +163,14 @@
                checkWorkType: null,
                checkWorkName: null,
                taskUnitId: null,
                execUserId: null,
                execDepId: null,
                checkCycle: null,
                checkCycleUnit: null,
                validTime: null,
                validTimeUnit: null,
                noticeTime: null,
                noticeTimeUnit: null,
                firstStartTime: null,
                depId: null
                firstStartTime: null
            },
            workFormRules: {
                checkWorkType: [{ required: true, message: '请填写排查作业类型', trigger: 'change' }],
@@ -185,32 +199,30 @@
            });
            if (type === '新增') {
                state.disabled = true;
                state.personTime = false;
                state.title = '新增排查任务';
                state.workForm = {
                    checkWorkType: null,
                    checkWorkName: null,
                    taskUnitId: null,
                    execUserId: null,
                    execDepId: null,
                    checkCycle: null,
                    checkCycleUnit: null,
                    validTime: null,
                    validTimeUnit: null,
                    noticeTime: null,
                    noticeTimeUnit: null,
                    firstStartTime: null,
                    depId: null
                    firstStartTime: null
                };
            } else if (type === '查看') {
                state.disabled = false;
                state.personTime = true;
                state.title = '查看排查任务';
                state.workForm.depId = JSON.parse(JSON.stringify(value)).depId;
                await achieveUserList();
                state.workForm = JSON.parse(JSON.stringify(value));
            } else {
                state.disabled = true;
                state.personTime = false;
                state.title = '修改排查任务';
                state.workForm.depId = JSON.parse(JSON.stringify(value)).depId;
                await achieveUserList();
                state.workForm = JSON.parse(JSON.stringify(value));
            }
        };
@@ -261,18 +273,17 @@
            });
        };
        const achieveUserList = async () => {
            state.workForm.execUserId = null;
            const user: unknown = await getUserByDepartment(state.workForm.depId);
            state.userList = user as [];
        };
        // const achieveUserList = async () => {
        //     state.workForm.execUserId = null;
        //     const user: unknown = await getUserByDepartment(state.workForm.depId);
        //     state.userList = user as [];
        // };
        return {
            ...toRefs(state),
            workFormRef,
            submitWork,
            openWorkDialog,
            achieveUserList
            openWorkDialog
        };
    }
};
@@ -289,4 +300,14 @@
.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>