Admin
2022-09-21 999cab6fb3fc6d2a288d365da991351c5a396bf0
src/views/specialWorkSystem/workFlow/approveRule/index.vue
@@ -3,27 +3,23 @@
        <div style="height: 100%">
            <el-row class="homeCard">
                <div class="basic-line">
                    <span>任务类型:</span>
                    <el-select v-model="tableData.params.workType" clearable filterable class="input-box" placeholder="任务类型">
                    <span>规则名称:</span>
                    <el-input v-model="tableData.params.searchParams.ruleName" class="input-box" placeholder="规则名称"> </el-input>
                </div>
                <div class="basic-line">
                    <span>部门:</span>
                    <el-cascader placeholder="部门名称" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" clearable filterable class="input-box" v-model="tableData.params.searchParams.depId"> </el-cascader>
                </div>
                <div class="basic-line">
                    <span>作业类型:</span>
                    <el-select v-model="tableData.params.searchParams.workType" clearable filterable class="input-box" placeholder="作业类型">
                        <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                    </el-select>
                </div>
                <div class="basic-line">
                    <span>任务类型:</span>
                    <el-select v-model="tableData.params.workType" clearable filterable class="input-box" placeholder="任务类型">
                        <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                    </el-select>
                </div>
                <div class="basic-line">
                    <span>任务类型:</span>
                    <el-select v-model="tableData.params.workType" clearable filterable class="input-box" placeholder="任务类型">
                        <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                    </el-select>
                </div>
                <div class="basic-line">
                    <span>任务类型:</span>
                    <el-select v-model="tableData.params.workType" clearable filterable class="input-box" placeholder="任务类型">
                        <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                    <span>作业等级:</span>
                    <el-select v-model="tableData.params.searchParams.workLevel" clearable filterable class="input-box" placeholder="作业等级">
                        <el-option v-for="item in workLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                    </el-select>
                </div>
                <div style="padding-bottom: 10px">
@@ -35,49 +31,37 @@
                <div class="main-card">
                    <el-row class="cardTop">
                        <el-col :span="12" class="mainCardBtn">
                            <el-button type="primary" :icon="Plus" size="default" @click="openApproveRuleDialog('新增', {})">新建</el-button>
                            <!--                            <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>-->
                            <el-button type="primary" :icon="Plus" size="default" @click="openApproveRuleDialog('新增', {})">新增</el-button>
                            <el-button type="danger" :icon="Delete" size="default" @click="deleteMoreApproveRule" plain>批量删除</el-button>
                        </el-col>
                        <el-button type="primary" :icon="Refresh" size="default" />
                    </el-row>
                    <el-table ref="multipleTableRef" :data="tableData.ApproveRuleData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">
                    <el-table ref="multipleTableRef" :data="tableData.approveRuleData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">
                        <el-table-column type="selection" width="55" />
                        <el-table-column property="unitName" label="任务名称" />
                        <el-table-column property="workType" label="任务类型">
                        <el-table-column property="ruleName" label="任务名称" />
                        <el-table-column property="workType" label="作业类型">
                            <template #default="scope">
                                <span>
                                    {{ parseNumber(scope.row.workType, '任务类型') }}
                                    {{ parseNumber(scope.row.workType, '作业类型') }}
                                </span>
                            </template>
                        </el-table-column>
                        <el-table-column property="execClassgroupId" label="巡检班组">
                        <el-table-column property="workLevel" label="作业等级">
                            <template #default="scope">
                                <span>
                                    {{ parseNumber(scope.row.execClassgroupId, '巡检班组') }}
                                    {{ parseNumber(scope.row.workLevel, '作业等级') }}
                                </span>
                            </template>
                        </el-table-column>
                        <el-table-column property="frequency" label="检查频次">
                            <template #default="scope">
                                <span>
                                    {{ scope.row.checkCycle }}
                                </span>
                                <span>
                                    {{ scope.row.checkCycleUnit }}
                                </span>
                            </template>
                        </el-table-column>
                        <el-table-column property="firstStartTime" label="任务开始时间" />
                        <el-table-column prop="createUserName" label="创建人" show-overflow-tooltip></el-table-column>
                        <el-table-column prop="createUname" label="创建人" show-overflow-tooltip></el-table-column>
                        <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column>
                        <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
                        <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column>
                        <el-table-column property="status" label="状态" width="60" />
                        <el-table-column prop="modifiedUname" label="最后修改人" show-overflow-tooltip></el-table-column>
                        <el-table-column prop="gmtModified" label="最后修改时间" show-overflow-tooltip></el-table-column>
                        <el-table-column fixed="right" label="操作" align="center" width="300">
                            <template #default="scope">
                                <el-button link type="primary" size="small" :icon="View" @click="openApproveRuleDialog('查看', scope.row)">查看</el-button>
                                <el-button link type="primary" size="small" :icon="Edit" @click="openApproveRuleDialog('修改', scope.row)">修改</el-button>
                                <el-button link type="danger" size="small" :icon="Delete" @click="deleteApproveRule(scope.row)">删除</el-button>
                                <el-button link type="primary" style="color: red" size="small" :icon="Delete" @click="deleteApproveRule(scope.row)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
@@ -119,8 +103,14 @@
    workTypeList: Array<type>;
    departmentList: [];
    userList: [];
    workLevelList: Array<type>;
    deleteList: { ids: Array<deleteType> };
    timeType: Array<type>;
}
interface deleteType {
    ruleId: number;
}
interface type {
    id: number;
    name: string;
@@ -157,8 +147,23 @@
                { id: 7, name: '临时用电作业' },
                { id: 8, name: '盲板抽堵作业' }
            ],
            workLevelList: [
                { id: 3, name: '特级动火作业' },
                { id: 1, name: '一级动火作业' },
                { id: 2, name: '二级动火作业' },
                { id: 7, name: '特级高处作业' },
                { id: 4, name: '一级高处作业' },
                { id: 5, name: '二级高处作业' },
                { id: 6, name: '三级高处作业' },
                { id: 8, name: '一级吊装作业' },
                { id: 9, name: '二级吊装作业' },
                { id: 10, name: '三级吊装作业' },
                { id: 11, name: '抽盲板作业' },
                { id: 12, name: '堵盲板作业' }
            ],
            departmentList: [],
            userList: [],
            deleteList: { ids: [] },
            timeType: [
                { id: 1, name: '分' },
                { id: 2, name: '小时' },
@@ -172,8 +177,8 @@
        const getApproveRule = async () => {
            let res = await approveRuleApi().getApproveRuleList(state.tableData.params);
            if (res.data.code === '200') {
                state.tableData.approveRuleData = res.data.data.records;
                state.tableData.total = res.data.data.total;
                state.tableData.approveRuleData = res.data.data;
                state.tableData.total = res.data.total;
            } else {
                ElMessage({
                    type: 'warning',
@@ -210,13 +215,40 @@
        // 删除
        const deleteApproveRule = (row: any) => {
            ElMessageBox.confirm(`此操作将永久删除该任务:“${row.unitName}”,是否继续?`, '提示', {
            ElMessageBox.confirm(`此操作将永久删除该审批规则,是否继续?`, '提示', {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(async () => {
                    let res = await approveRuleApi().deleteApproveRule({ id: row.id });
                    let res = await approveRuleApi().deleteApproveRule({ ids: [row.id] });
                    state.deleteList.ids = [];
                    if (res.data.code === '200') {
                        ElMessage({
                            type: 'success',
                            duration: 2000,
                            message: '删除成功'
                        });
                        await getApproveRule();
                    } else {
                        ElMessage({
                            type: 'warning',
                            message: res.data.msg
                        });
                    }
                })
                .catch(() => {});
        };
        // 批量删除
        const deleteMoreApproveRule = (row: any) => {
            ElMessageBox.confirm(`此操作将永久删除这些审批规则,是否继续?`, '提示', {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(async () => {
                    let res = await approveRuleApi().deleteApproveRule(state.deleteList);
                    if (res.data.code === '200') {
                        ElMessage({
                            type: 'success',
@@ -239,12 +271,18 @@
        };
        const parseNumber = (value: number, type: string) => {
            if (type === '任务类型') {
            if (type === '作业类型') {
                return state.workTypeList.find((item) => item.id === value)?.name;
            } else if (type === '检查频次') {
                return state.timeType.find((item) => item.id == value)?.name;
            } else if (type === '作业等级') {
                return state.workLevelList.find((item) => item.id == value)?.name;
            } else {
            }
        };
        const handleSelectionChange = (val: Array<deleteType>) => {
            state.deleteList.ids = val.map((item) => {
                return item.ruleId;
            }) as [];
        };
        // 分页改变
@@ -288,6 +326,8 @@
            parseNumber,
            deleteApproveRule,
            getApproveRule,
            deleteMoreApproveRule,
            handleSelectionChange,
            onHandleSizeChange,
            onHandleCurrentChange,
            approveRuleDialogRef,
@@ -423,15 +463,6 @@
        border: 2px solid #0098f5;
        color: #0098f5;
    }
}
.el-input {
    width: 100% !important;
}
:deep(.el-date-editor) {
    width: 100%;
}
.el-select {
    width: 100%;
}
:deep(.el-textarea.is-disabled .el-textarea__inner) {
    background-color: var(--el-card-bg-color);