Admin
2022-09-13 e4dc5994adb768d2c3f8309efc23e5e957ec6116
Default Changelist
已修改4个文件
已添加1个文件
323 ■■■■■ 文件已修改
src/api/specialWorkSystem/workPlan/workAppoint/index.ts 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/specialWorkSystem/workPlan/workReservation/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workAlert/alertRecord/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workPlan/workAppoint/index.vue 246 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workPlan/workReservation/index.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/specialWorkSystem/workPlan/workAppoint/index.ts
对比新文件
@@ -0,0 +1,41 @@
import request from '/@/utils/request';
export function workAppointApi() {
    return {
        // 分页获取列表
        getAppointListPage: (data: object) => {
            return request({
                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/listAll`,
                method: 'post',
                data: data
            });
        },
        // 新增列表
        addRecord: (data: object) => {
            return request({
                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/save`,
                method: 'post',
                data: data
            });
        },
        //修改列表
        editRecord: (data: object) => {
            return request({
                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/update`,
                method: 'post',
                data: data
            });
        },
        //删除列表
        deleteRecord: (data: object) => {
            return request({
                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/delete`,
                method: 'post',
                data: data
            });
        }
    };
}
src/api/specialWorkSystem/workPlan/workReservation/index.ts
@@ -5,7 +5,7 @@
        // 分页获取列表
        getReserveListPage: (data: object) => {
            return request({
                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/listAll`,
                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/listByDep`,
                method: 'post',
                data: data
            });
src/views/specialWorkSystem/workAlert/alertRecord/index.vue
@@ -39,17 +39,17 @@
            </el-row>
            <div class="homeCard">
                <div class="main-card">
                    <el-row class="cardTop">
                        <el-col :span="12" class="mainCardBtn">
<!--                    <el-row class="cardTop">-->
<!--                        <el-col :span="12" class="mainCardBtn">-->
<!--                            <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>-->
                        </el-col>
                        <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>
                    </el-row>
<!--                        </el-col>-->
<!--                        <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>-->
<!--                    </el-row>-->
                    <el-table
                            ref="multipleTableRef"
                            :data="tableData"
                            style="width: 100%"
                            height="calc(100% - 100px)"
                            height="calc(100% - 48px)"
                            :header-cell-style="{background: '#fafafa'}"
                    >
                        <el-table-column type="index" label="序号" width="80"/>
src/views/specialWorkSystem/workPlan/workAppoint/index.vue
@@ -5,16 +5,16 @@
                <el-col :span="6" style="display:flex;align-items: center">
                    <span style="white-space: nowrap">申请部门:</span>
                    <div class="grid-content topInfo">
                        <el-input v-model="workPermitNo" placeholder="请输入部门名称"></el-input>
                        <el-cascader v-model="searchDep" :options="departmentList" :props="casProps" :show-all-levels="false"/>
                    </div>
                </el-col>
                <el-col :span="6" style="display:flex;align-items: center">
                    <span style="white-space: nowrap">预约日期:</span>
                <el-col :span="6" style="display:flex;align-items: center;">
                    <span style="white-space: nowrap;margin-left: 20px">预约日期:</span>
                    <div class="grid-content topInfo">
                        <el-date-picker
                                v-model="searchDate"
                                type="datetime"
                                format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
                                type="date"
                                format="YYYY-MM-DD" value-format="YYYY-MM-DD"
                        />
                    </div>
                </el-col>
@@ -23,37 +23,37 @@
            </el-row>
            <div class="homeCard">
                <div class="main-card">
                    <el-row class="cardTop">
                        <el-col :span="12" class="mainCardBtn">
<!--                    <el-row class="cardTop">-->
<!--                        <el-col :span="12" class="mainCardBtn">-->
<!--                            <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>-->
                        </el-col>
                        <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>
                    </el-row>
<!--                        </el-col>-->
<!--                        <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>-->
<!--                    </el-row>-->
                    <el-table
                            :data="tableData"
                            style="width: 100%"
                            height="calc(100% - 100px)"
                            height="calc(100% - 48px)"
                            :header-cell-style="{background: '#fafafa'}"
                    >
<!--                        <el-table-column type="selection" width="55" />-->
                        <el-table-column type="index" label="序号" width="80" />
                        <el-table-column prop="department" label="申请部门"/>
                        <el-table-column prop="time" label="预约时间"/>
                        <el-table-column prop="fireWork" label="动火作业"/>
                        <el-table-column prop="spaceWork" label="受限空间作业"/>
                        <el-table-column prop="hangWork" label="吊装作业"/>
                        <el-table-column prop="dirtyWork" label="动土作业"/>
                        <el-table-column prop="cut" label="断路作业"/>
                        <el-table-column prop="high" label="高处作业" />
                        <el-table-column prop="tempUse" label="临时用电作业"/>
                        <el-table-column prop="block" label="盲板抽堵作业"/>
                        <el-table-column fixed="right" label="操作" align="center" width="250">
                            <template #default="scope">
                                <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                                <el-button link type="primary" size="small" :icon="Edit" @click="editRecordBtn(scope.$index, scope.row)">修改</el-button>
                                <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">删除</el-button>
                            </template>
                        </el-table-column>
                        <el-table-column prop="applyDepName" align="center" label="申请部门"/>
                        <el-table-column prop="appointmentTime" align="center" label="预约时间"/>
                        <el-table-column prop="hotWork" align="center" label="动火作业"/>
                        <el-table-column prop="confinedSpaceOper" align="center" label="受限空间作业"/>
                        <el-table-column prop="liftingOper" align="center" label="吊装作业"/>
                        <el-table-column prop="groundBreakingOper" align="center" label="动土作业"/>
                        <el-table-column prop="openCircuitOper" align="center" label="断路作业"/>
                        <el-table-column prop="workAtHeight" align="center" label="高处作业" />
                        <el-table-column prop="temporaryPowerOper" align="center" label="临时用电作业"/>
                        <el-table-column prop="blindPlatePluggingOper" align="center" label="盲板抽堵作业"/>
<!--                        <el-table-column fixed="right" label="操作" align="center" width="250">-->
<!--                            <template #default="scope">-->
<!--                                <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>-->
<!--                                <el-button link type="primary" size="small" :icon="Edit" @click="editRecordBtn(scope.$index, scope.row)">修改</el-button>-->
<!--                                <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">删除</el-button>-->
<!--                            </template>-->
<!--                        </el-table-column>-->
                    </el-table>
                    <div class="pageBtn">
                        <el-pagination
@@ -75,61 +75,61 @@
            <el-form :model="details" label-width="120px">
                <el-form-item label="申请部门">
                    <el-input
                            v-model="details.department"
                            v-model="details.applyDepName"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="预约时间">
                    <el-input
                            v-model="details.time"
                            v-model="details.appointmentTime"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="动火作业">
                    <el-input
                            v-model="details.fireWork"
                            v-model="details.hotWork"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="受限空间作业">
                    <el-input
                            v-model="details.spaceWork"
                            v-model="details.confinedSpaceOper"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="吊装作业">
                    <el-input
                            v-model="details.hangWork"
                            v-model="details.liftingOper"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="动土作业">
                    <el-input
                            v-model="details.dirtyWork"
                            v-model="details.groundBreakingOper"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="断路作业">
                    <el-input
                            v-model="details.cut"
                            v-model="details.openCircuitOper"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="高处作业">
                    <el-input
                            v-model="details.high"
                            v-model="details.workAtHeight"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="临时用电作业">
                    <el-input
                            v-model="details.tempUse"
                            v-model="details.temporaryPowerOper"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="盲板抽堵作业">
                    <el-input
                            v-model="details.block"
                            v-model="details.blindPlatePluggingOper"
                            readonly
                    />
                </el-form-item>
@@ -140,56 +140,57 @@
              </span>
            </template>
        </el-dialog>
        <el-dialog v-model="dialogAddRecord" title="作业预约编辑" @close="closeAdd" @open="openAdd">
        <el-dialog v-model="dialogAddRecord" title="作业预约编辑" @close="closeAdd">
            <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
                <el-form-item label="申请部门" prop="department">
                    <el-cascader v-model="addRecord.department" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
                <el-form-item label="申请部门" prop="applyDepId">
                    <el-cascader :disabled = isDisabled v-model="addRecord.applyDepId" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
                </el-form-item>
                <el-form-item label="预约时间" prop="time">
                <el-form-item label="预约时间" prop="appointmentTime">
                    <el-date-picker
                            v-model="addRecord.time"
                            type="datetime"
                            format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
                            v-model="addRecord.appointmentTime"
                            type="date"
                            format="YYYY-MM-DD" value-format="YYYY-MM-DD"
                            :disabled = isDisabled
                    />
                </el-form-item>
                <el-form-item label="动火作业">
                <el-form-item label="动火作业" prop="hotWork">
                    <el-input
                            v-model="addRecord.fireWork"
                            v-model="addRecord.hotWork"
                    />
                </el-form-item>
                <el-form-item label="受限空间作业">
                <el-form-item label="受限空间作业" prop="confinedSpaceOper">
                    <el-input
                            v-model="addRecord.spaceWork"
                            v-model="addRecord.confinedSpaceOper"
                    />
                </el-form-item>
                <el-form-item label="吊装作业">
                <el-form-item label="吊装作业" prop="liftingOper">
                    <el-input
                            v-model="addRecord.hangWork"
                            v-model="addRecord.liftingOper"
                    />
                </el-form-item>
                <el-form-item label="动土作业">
                <el-form-item label="动土作业" prop="groundBreakingOper">
                    <el-input
                            v-model="addRecord.dirtyWork"
                            v-model="addRecord.groundBreakingOper"
                    />
                </el-form-item>
                <el-form-item label="断路作业">
                <el-form-item label="断路作业" prop="openCircuitOper">
                    <el-input
                            v-model="addRecord.cut"
                            v-model="addRecord.openCircuitOper"
                    />
                </el-form-item>
                <el-form-item label="高处作业">
                <el-form-item label="高处作业" prop="workAtHeight">
                    <el-input
                            v-model="addRecord.high"
                            v-model="addRecord.workAtHeight"
                    />
                </el-form-item>
                <el-form-item label="临时用电作业">
                <el-form-item label="临时用电作业" prop="temporaryPowerOper">
                    <el-input
                            v-model="addRecord.tempUse"
                            v-model="addRecord.temporaryPowerOper"
                    />
                </el-form-item>
                <el-form-item label="盲板抽堵作业">
                <el-form-item label="盲板抽堵作业" prop="blindPlatePluggingOper">
                    <el-input
                            v-model="addRecord.block"
                            v-model="addRecord.blindPlatePluggingOper"
                    />
                </el-form-item>
            </el-form>
@@ -198,6 +199,15 @@
                <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
                <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
              </span>
            </template>
        </el-dialog>
        <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
            <span>您确定要删除该条记录吗?</span>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="deleteDialog = false" size="default">取消</el-button>
                    <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
@@ -212,13 +222,13 @@
    import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
    import { ElTable, ElMessage, ElMessageBox } from 'element-plus'
    import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
    import { workAppointApi } from '/@/api/specialWorkSystem/workPlan/workAppoint';
    import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
    // 定义接口来定义对象的类型
    interface stateType {
        tableData: Array<any>;
        departmentList: Array<any>;
        department:string;
        casProps: {};
        multipleSelection: Array<any>;
        deleteArr: Array<any>;
@@ -230,8 +240,9 @@
        pageSize: number;
        chosenIndex: null | number;
        deleteId: null | number;
        workPermitNo: string;
        searchDep: number | null;
        searchDate: string;
        isDisabled:boolean;
        totalSize: number;
        addRecord: {
@@ -253,11 +264,11 @@
                pageSize: 10,
                totalSize: 0,
                chosenIndex: null,
                workPermitNo: '',
                searchDep: null,
                searchDate: '',
                isDisabled: false,
                tableData: [],
                departmentList: [],
                department: '',
                casProps: {
                    expandTrigger: 'hover',
                    emitPath: false,
@@ -288,18 +299,21 @@
            const addRef = ref<FormInstance>();
            const addRules = reactive<FormRules>({
                workPermitNo: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                combustible: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                oxygen: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                carbonMonoxide: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                hydrogenSulfide: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                info: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
                applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                appointmentTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                hotWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                groundBreakingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                blindPlatePluggingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                temporaryPowerOper    : [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                workAtHeight: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                openCircuitOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                liftingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
                confinedSpaceOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
            });
            // 页面载入时执行方法
            onMounted(() => {
                // getListByPage()
                getListByPage()
                getAllDepartment()
            });
@@ -318,9 +332,8 @@
            // 分页获取气体检测列表
            const getListByPage = async () => {
                getAll()
                const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { workType: state.workType, workPermitNo: state.workPermitNo } };
                let res = await workProcessApi().getDetectionListPage(data);
                const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { applyDepId: state.searchDep, appointmentTime: state.searchDate } };
                let res = await workAppointApi().getAppointListPage(data);
                if (res.data.code === '200') {
                    state.tableData = JSON.parse(JSON.stringify(res.data.data))
                    state.totalSize = res.data.total;
@@ -332,22 +345,9 @@
                }
            };
            // 获取用户列表
            const getAll = async ()=>{
                const res = await workApplyApi().getAllUsers()
                if (res.data.code === '200') {
                    state.workerList = JSON.parse(JSON.stringify(res.data.data))
                } else {
                    ElMessage({
                        type: 'warning',
                        message: res.data.msg
                    });
                }
            };
            // 关键词查询记录
            const searchRecord = async () => {
                if (state.workPermitNo == ''&& state.workType == null) {
                if (state.searchDep == null && state.searchDate == '') {
                    ElMessage({
                        type: 'warning',
                        message: '请输入查询关键词'
@@ -358,14 +358,31 @@
            };
            const clearSearch = async () => {
                state.workPermitNo = '';
                state.workType = null;
                state.searchDep = null;
                state.searchDate = '';
                getListByPage();
            };
            // 添加气体检测方法
            // 添加记录方法
            const addRecord = async (data: any) => {
                let res = await workProcessApi().postDetectionReport(data);
                let res = await workAppointApi().addRecord(data);
                if (res.data.code === '200') {
                    ElMessage({
                        type: 'success',
                        message: res.data.msg
                    });
                    getListByPage();
                } else {
                    ElMessage({
                        type: 'warning',
                        message: res.data.msg
                    });
                }
            };
            // 修改记录方法
            const editRecord = async (data: any) => {
                let res = await workAppointApi().editRecord(data);
                if (res.data.code === '200') {
                    ElMessage({
                        type: 'success',
@@ -385,7 +402,7 @@
                state.dialogAddRecord = true;
                state.chosenIndex = index;
                state.addRecord = JSON.parse(JSON.stringify(row));
                console.log(state.addRecord, 'state.addRecord');
                state.isDisabled = true
            };
            // 新增修改记录
@@ -394,15 +411,23 @@
                await formEl.validate(async (valid, fields) => {
                    if (valid) {
                        const data = {
                            workPermitNo: state.addRecord.workPermitNo,
                            info: state.addRecord.info,
                            combustible: Number(state.addRecord.combustible),
                            oxygen: Number(state.addRecord.oxygen),
                            carbonMonoxide: Number(state.addRecord.carbonMonoxide),
                            hydrogenSulfide: Number(state.addRecord.hydrogenSulfide),
                            source: 2,
                            applyDepId: state.addRecord.applyDepId,
                            appointmentTime: state.addRecord.appointmentTime,
                            hotWork: Number(state.addRecord.hotWork),
                            groundBreakingOper: Number(state.addRecord.groundBreakingOper),
                            blindPlatePluggingOper: Number(state.addRecord.blindPlatePluggingOper),
                            temporaryPowerOper: Number(state.addRecord.temporaryPowerOper),
                            workAtHeight: Number(state.addRecord.workAtHeight),
                            openCircuitOper: Number(state.addRecord.openCircuitOper),
                            liftingOper: Number(state.addRecord.liftingOper),
                            confinedSpaceOper: Number(state.addRecord.confinedSpaceOper),
                        };
                        await addRecord(data);
                        if (state.chosenIndex == null) {
                            await addRecord(data);
                        } else {
                            data.id = state.addRecord.id
                            await editRecord(data);
                        }
                        state.dialogAddRecord = false;
                        getListByPage();
                    } else {
@@ -432,9 +457,9 @@
            };
            // 删除班组策略方法
            // 删除方法
            const deleteRecord = async (data: any) => {
                let res = await teamStrategyApi().deleteRecord(data);
                let res = await workAppointApi().deleteRecord(data);
                if (res.data.code === '200') {
                    ElMessage({
                        type: 'success',
@@ -450,12 +475,12 @@
            };
            const deleteRecordBtn = (row) => {
                state.deleteId = row.groupStrategyId;
                state.deleteId = row.id;
                state.deleteDialog = true;
            };
            const conFirmDelete = () => {
                deleteRecord({ groupStrategyId: state.deleteId });
                deleteRecord({ id: state.deleteId });
                state.deleteDialog = false;
            };
@@ -463,13 +488,9 @@
            const closeAdd = () => {
                state.addRecord = {};
                state.chosenIndex = null;
                state.isDisabled = false
            };
            const openAdd = () => {
                if (state.chosenIndex == null) {
                    state.addRecord.info = '';
                }
            };
            const indexClear = () => {
                state.deleteId = null;
            };
@@ -501,7 +522,6 @@
                handleCurrentChange,
                confirmAddRecord,
                closeAdd,
                openAdd,
                indexClear,
                ...toRefs(state)
            };
src/views/specialWorkSystem/workPlan/workReservation/index.vue
@@ -37,16 +37,16 @@
                    >
<!--                        <el-table-column type="selection" width="55" />-->
                        <el-table-column type="index" label="序号" width="80" />
                        <el-table-column prop="applyDepName" label="申请部门"/>
                        <el-table-column prop="appointmentTime" label="预约时间"/>
                        <el-table-column prop="hotWork" label="动火作业"/>
                        <el-table-column prop="confinedSpaceOper" label="受限空间作业"/>
                        <el-table-column prop="liftingOper" label="吊装作业"/>
                        <el-table-column prop="groundBreakingOper" label="动土作业"/>
                        <el-table-column prop="openCircuitOper" label="断路作业"/>
                        <el-table-column prop="workAtHeight" label="高处作业" />
                        <el-table-column prop="temporaryPowerOper" label="临时用电作业"/>
                        <el-table-column prop="blindPlatePluggingOper" label="盲板抽堵作业"/>
                        <el-table-column prop="applyDepName" align="center" label="申请部门"/>
                        <el-table-column prop="appointmentTime" align="center" label="预约时间"/>
                        <el-table-column prop="hotWork" align="center" label="动火作业"/>
                        <el-table-column prop="confinedSpaceOper" align="center" label="受限空间作业"/>
                        <el-table-column prop="liftingOper" align="center" label="吊装作业"/>
                        <el-table-column prop="groundBreakingOper" align="center" label="动土作业"/>
                        <el-table-column prop="openCircuitOper" align="center" label="断路作业"/>
                        <el-table-column prop="workAtHeight" align="center" label="高处作业" />
                        <el-table-column prop="temporaryPowerOper" align="center" label="临时用电作业"/>
                        <el-table-column prop="blindPlatePluggingOper" align="center" label="盲板抽堵作业"/>
                        <el-table-column fixed="right" label="操作" align="center" width="250">
                            <template #default="scope">
                                <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
@@ -224,7 +224,7 @@
    import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
    import { workReserveApi } from '/@/api/specialWorkSystem/workPlan/workReservation';
    import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
    import {holidayGroupApi} from "/@/api/systemManage/basicDateManage/personShiftManage/holidayTimeGroup";
    // 定义接口来定义对象的类型
    interface stateType {
        tableData: Array<any>;