Your Name
2022-07-13 e2cad5345678266960d40f1ba5e3ffac4d5c85e8
Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt
已重命名4个文件
已修改11个文件
已添加5个文件
1929 ■■■■ 文件已修改
src/views/specialWorkSystem/afterWorkManagement/workTicketCheck/index.vue 339 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/addApproveProcess/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/approveProcessSetting/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/reportTypeSetting/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/myApply/index.vue 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue 173 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workPlan/workReservation/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workProcessManagement/gasCheckAnalyze/index.vue 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workProcessManagement/workCheckinRecord/index.vue 255 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/afterWorkManagement/workTicketCheck/index.vue
对比新文件
@@ -0,0 +1,339 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-row class="homeCard">
            <el-col :span="8">
                <div class="grid-content topInfo">
                    <el-input v-model="searchWord" placeholder="作业证编号"></el-input>
                    <el-button type="primary">查询</el-button>
                    <el-button plain>重置</el-button>
                    <el-button plain :icon="Download"></el-button>
                </div>
            </el-col>
        </el-row>
        <div class="homeCard">
            <div class="main-card">
                <el-row class="cardTop">
                    <el-col :span="12" class="mainCardBtn">
                        <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button>
<!--                        <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
                        <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column property="id" label="作业证编号" width="200" sortable/>
                    <el-table-column property="cardName" label="作业证名称" width="180" />
                    <el-table-column property="checkinTime" label="抽检日期" sortable/>
                    <el-table-column property="name" label="抽检人"/>
                    <el-table-column property="result" label="抽检结果"/>
                    <el-table-column property="remark" label="抽检意见"/>
                    <el-table-column fixed="right" label="操作" width="180">
                        <template #default="scope">
                            <el-button link type="primary" size="small" @click="viewRecord(scope.row)">查看</el-button>
                            <el-button link type="danger" size="small" @click="deleteRecord(scope.row)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        </el-scrollbar>
        <el-dialog v-model="dialogDetails" title="作业票抽检" @close="dialogColse">
            <el-form :model="details" label-width="120px">
                <el-form-item label="作业证编号">
                    <el-input
                            v-model="details.id"
                            class="input-with-select"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="抽检人">
                    <el-input
                            v-model="details.name"
                            class="input-with-select"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="抽检结果">
                    <el-input
                            v-model="details.result"
                            class="input-with-select"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="抽检时间">
                    <el-input
                            v-model="details.checkinTime"
                            class="input-with-select"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="抽检意见">
                    <el-input v-model="details.remark" type="textarea" readonly/>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="dialogAddRecord" title="新建作业票抽检" @close="dialogColse">
            <el-form :model="AddRecord" label-width="120px">
                <el-form-item label="作业证编号">
                    <el-input
                            v-model="AddRecord.id"
                            class="input-with-select"
                    >
                        <template #append>
                            <el-button :icon="Search"/>
                        </template>
                    </el-input>
                </el-form-item>
                <el-form-item label="作业证名称">
                    <el-input
                            v-model="AddRecord.cardName"
                            class="input-with-select"
                    >
                        <template #append>
                            <el-button :icon="Search"/>
                        </template>
                    </el-input>
                </el-form-item>
                <el-form-item label="抽检人">
                    <el-input
                            v-model="AddRecord.name"
                            class="input-with-select"
                    >
                        <template #append>
                            <el-button :icon="Search"/>
                        </template>
                    </el-input>
                </el-form-item>
                <el-form-item label="抽检结果">
                    <el-select v-model="AddRecord.result">
                        <el-option label="合格" value="合格" />
                        <el-option label="不合格" value="不合格" />
                    </el-select>
                </el-form-item>
                <el-form-item label="抽检时间">
                    <el-date-picker
                            v-model="AddRecord.checkinTime"
                            type="datetime"
                            placeholder="请选择"
                    />
                </el-form-item>
                <el-form-item label="抽检意见">
                    <el-input v-model="AddRecord.remark" type="textarea"/>
                </el-form-item>
                <el-form-item>
                    <el-button type="warning" @click="dialogDetails = false" size="default" plain>取消</el-button>
                    <el-button type="primary" @click="addRecord" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="deleteDialog" title="提示" width="30%" center>
            <span>您确定要删除该条记录吗?</span>
            <template #footer>
          <span class="dialog-footer">
            <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
            <el-button @click="deleteDialog = false" size="default">取消</el-button>
          </span>
            </template>
        </el-dialog>
    </div>
</template>
<script lang="ts" setup>
    import { toRefs, reactive, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Edit, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    // export default defineComponent({
    //     name: 'workCheckinRecord',
    //     setup() {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const currentPage = ref(1)
            const pageSize = ref(10)
            const handleSizeChange = (val: number) => {
                console.log(`${val} items per page`)
            }
            const handleCurrentChange = (val: number) => {
                console.log(`current page: ${val}`)
            }
            const tableData = ref(
                    [
                    {
                        id: '11011',
                        cardName: '动火作业证',
                        checkinTime: '2021-04-22 15:21:31',
                        name: '吴海涛',
                        result: '合格',
                        remark: '没意见'
                    },
                    {
                        id: '11012',
                        cardName: '动火作业证',
                        checkinTime: '2021-04-22 15:21:31',
                        name: '吴沈峰',
                        result: '合格',
                        remark: '有点意见'
                    },
                ]
            )
            const dialogDetails = ref(false)
            const dialogAddRecord = ref(false)
            const deleteDialog = ref(false)
            const AddRecord = ref({})
            const details = ref({})
            const viewRecord = (row) =>{
                details.value = JSON.parse(JSON.stringify(row))
                dialogDetails.value = true
            }
            const deleteRecord = (row) =>{
                deleteDialog.value = true
            }
            const conFirmDelete = (row)=> {
                console.log(row,'row')
                details.value = JSON.parse(JSON.stringify(row))
                console.log(details,'details')
                dialogDetails.value = true
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
                userInfos.value.projectId = value
                await initBackEndControlRoutes();
            };
            // return {
            //     renderMenu,
            //     multipleTableRef,
            //     tableData,
            //     currentPage,
            //     pageSize,
            //     dialogDetails,
            //     details,
            //     deleteDialog,
            //     dialogAddRecord,
            //     viewRecord,
            //     deleteRecord,
            //     handleSizeChange,
            //     handleCurrentChange,
            //     Plus,
            //     Edit,
            //     Delete,
            //     Search,
            //     Download,
            //     handleSelectionChange,
            //     Refresh,
            //     ...toRefs(state),
            // };
    //     },
    // });
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
</style>
src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue
对比新文件
@@ -0,0 +1,249 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-row class="homeCard">
            <el-col :span="12">
                <div class="grid-content topInfo">
                    <el-select v-model="searchType" placeholder="请选择" style="width: 100%">
                        <el-option label="动火作业" value="动火作业" />
                        <el-option label="动土作业" value="动土作业" />
                    </el-select>
                    <el-input v-model="searchWord" placeholder="作业证编号"></el-input>
                    <el-button type="primary">查询</el-button>
                    <el-button plain>重置</el-button>
                    <el-button-group style="display: flex;margin-left: 12px">
                        <el-button plain :icon="Download"></el-button>
                        <el-button plain :icon="Refresh"></el-button>
                    </el-button-group>
                </div>
            </el-col>
        </el-row>
        <div class="homeCard">
            <div class="main-card">
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column property="id" label="作业证编号" width="300" sortable />
                    <el-table-column property="cardName" label="作业证名称" width="300" />
                    <el-table-column property="name" label="申请人" width="300" />
                    <el-table-column property="department" label="申请部门" />
                    <el-table-column property="date" label="归档日期" sortable />
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        <el-dialog v-model="dialogDetails" title="签到记录" @close="dialogColse">
            <el-form :model="details" label-width="120px">
                <el-form-item label="作业证编号">
                    <el-input v-model="details.id" readonly/>
                </el-form-item>
                <el-form-item label="签到人">
                    <el-input
                        v-model="details.worker"
                        class="input-with-select"
                        readonly
                    >
                        <template #append>
                            <el-button :icon="Search" />
                        </template>
                    </el-input>
                </el-form-item>
<!--                <el-form-item label="签到状态">-->
<!--                    <el-select v-model="details.status" readonly>-->
<!--                        <el-option label="已签到" value="已签到" />-->
<!--                        <el-option label="未签到" value="未签到" />-->
<!--                    </el-select>-->
<!--                </el-form-item>-->
                <el-form-item label="签到时间">
                    <el-input v-model="details.checkinTime" readonly/>
                </el-form-item>
                <el-form-item label="备注">
                    <el-input v-model="details.remark" type="textarea" readonly/>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        </el-scrollbar>
    </div>
</template>
<script lang="ts">
    import { toRefs, reactive, defineComponent, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Plus, Edit, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    interface User {
        date: string
        name: string
        address: string
    }
    export default defineComponent({
        name: 'gasCheckAnalyze',
        setup() {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const multipleTableRef = ref<InstanceType<typeof ElTable>>()
            const multipleSelection = ref<User[]>([])
            const handleSelectionChange = (val: User[]) => {
                multipleSelection.value = val
            }
            const currentPage = ref(1)
            const pageSize = ref(10)
            const handleSizeChange = (val: number) => {
                console.log(`${val} items per page`)
            }
            const handleCurrentChange = (val: number) => {
                console.log(`current page: ${val}`)
            }
            const tableData: User[] = [
                {
                    id: '11011',
                    cardName: '动火作业证',
                    name: '吴沈峰',
                    department: '土木部',
                    date: '2021-04-22 15:21:31'
                }
            ]
            const dialogDetails = ref(false)
            const details = ref({})
            const viewDetails = (row)=> {
                console.log(row,'row')
                details.value = JSON.parse(JSON.stringify(row))
                console.log(details,'details')
                dialogDetails.value = true
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
                userInfos.value.projectId = value
                await initBackEndControlRoutes();
            };
            return {
                renderMenu,
                multipleTableRef,
                tableData,
                currentPage,
                pageSize,
                dialogDetails,
                details,
                viewDetails,
                handleSizeChange,
                handleCurrentChange,
                Plus,
                Edit,
                Delete,
                Search,
                Download,
                handleSelectionChange,
                Refresh,
                ...toRefs(state),
            };
        },
    });
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
</style>
src/views/specialWorkSystem/approveProcessManagement/addApproveProcess/index.vue
src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue
文件名从 src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue 修改
@@ -1,9 +1,8 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-row>
            <div class="homeCard">
            <el-col :span="12">
        <el-row class="homeCard">
            <el-col :span="8">
                <div class="grid-content topInfo">
                    <div>流程名称</div>
                    <el-input v-model="searchWord" placeholder="请输入关键词"></el-input>
@@ -11,7 +10,6 @@
                    <el-button plain>重置</el-button>
                </div>
            </el-col>
            </div>
        </el-row>
        <div class="homeCard">
            <div class="main-card">
@@ -21,7 +19,7 @@
                        <el-button type="danger" :icon="Delete" size="default">删除</el-button>
                        <el-button type="success" size="default">设置分类</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" />
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
src/views/specialWorkSystem/approveProcessManagement/approveProcessSetting/index.vue
src/views/specialWorkSystem/approveProcessManagement/reportTypeSetting/index.vue
src/views/specialWorkSystem/workApplyManagement/myApply/index.vue
对比新文件
@@ -0,0 +1,280 @@
<template>
    <div class="home-container">
        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
            <el-tab-pane label="申请中" name="Applying">
                <el-scrollbar height="100%">
                    <el-row class="homeCard">
                            <el-col :span="8">
                                <div class="grid-content topInfo">
                                    <el-input v-model="searchWord" placeholder="作业证名称"></el-input>
                                    <el-button type="primary">查询</el-button>
                                    <el-button plain>重置</el-button>
                                </div>
                            </el-col>
                    </el-row>
                    <div class="homeCard">
                        <div class="main-card">
                            <el-row class="cardTop">
                                <el-col :span="12" class="mainCardBtn">
                                    <el-button type="primary" :icon="Plus" size="default">申请</el-button>
<!--                                    <el-button type="danger" :icon="Delete" size="default">删除</el-button>-->
<!--                                    <el-button type="success" size="default">设置分类</el-button>-->
                                </el-col>
                                <el-button type="primary" :icon="Refresh" size="default"/>
                            </el-row>
                            <el-table
                                    ref="multipleTableRef"
                                    :data="applyData"
                                    style="width: 100%"
                                    :header-cell-style="{background: '#fafafa'}"
                                    @selection-change="handleSelectionChange"
                            >
                                <el-table-column type="selection" width="55" />
                                <el-table-column property="num" label="作业证编号" width="200"/>
                                <el-table-column property="level" label="作业证等级" width="180" sortable />
                                <el-table-column property="applyDate" label="申请日期" sortable />
                                <el-table-column property="name" label="申请人" width="180"/>
                                <el-table-column property="department" label="申请部门" width="180" />
                                <el-table-column label="申请状态" width="180">
                                    <template #default="scope">
                                        <el-tag type="success">{{ scope.row.status }}</el-tag>
                                    </template>
                                </el-table-column>
                            </el-table>
                        </div>
                        <div class="pageBtn">
                            <el-pagination
                                    v-model:currentPage="currentPage"
                                    v-model:page-size="pageSize"
                                    :page-sizes="[10, 15]"
                                    small=false
                                    background
                                    layout="total, sizes, prev, pager, next, jumper"
                                    :total="100"
                                    @size-change="handleSizeChange"
                                    @current-change="handleCurrentChange"
                            />
                        </div>
                    </div>
                </el-scrollbar>
            </el-tab-pane>
            <el-tab-pane label="已通过" name="passed">
                <el-scrollbar height="100%">
                    <el-row>
                        <div class="homeCard">
                            <el-col :span="12">
                                <div class="grid-content topInfo">
                                    <el-input v-model="searchWord" placeholder="作业证名称"></el-input>
                                    <el-button type="primary">查询</el-button>
                                    <el-button plain>重置</el-button>
                                </div>
                            </el-col>
                        </div>
                    </el-row>
                    <div class="homeCard">
                        <div class="main-card">
<!--                            <el-row class="cardTop">-->
<!--                                <el-col :span="12" class="mainCardBtn">-->
<!--                                    <el-button type="primary" :icon="Plus" size="default">申请</el-button>-->
                                    <!--<el-button type="danger" :icon="Delete" size="default">删除</el-button>-->
                                    <!--<el-button type="success" size="default">设置分类</el-button>-->
<!--                                </el-col>-->
<!--                                <el-button type="primary" :icon="Refresh" />-->
<!--                            </el-row>-->
                            <el-table
                                    ref="multipleTableRef"
                                    :data="passedData"
                                    style="width: 100%"
                                    :header-cell-style="{background: '#fafafa'}"
                                    @selection-change="handleSelectionChange"
                            >
                                <el-table-column type="selection" width="55" />
                                <el-table-column property="num" label="作业证编号" width="200"/>
                                <el-table-column property="level" label="作业证等级" width="180" sortable />
                                <el-table-column property="applyDate" label="申请日期" sortable />
                                <el-table-column property="name" label="申请人" width="180"/>
                                <el-table-column property="department" label="申请部门" width="180" />
                                <el-table-column label="申请状态" width="180">
                                    <template #default="scope">
                                        <el-tag type="success">{{ scope.row.status }}</el-tag>
                                    </template>
                                </el-table-column>
                            </el-table>
                        </div>
                        <div class="pageBtn">
                            <el-pagination
                                    v-model:currentPage="currentPage"
                                    v-model:page-size="pageSize"
                                    :page-sizes="[10, 15]"
                                    small=false
                                    background
                                    layout="total, sizes, prev, pager, next, jumper"
                                    :total="100"
                                    @size-change="handleSizeChange"
                                    @current-change="handleCurrentChange"
                            />
                        </div>
                    </div>
                </el-scrollbar>
            </el-tab-pane>
        </el-tabs>
    </div>
</template>
<script lang="ts">
    import { toRefs, reactive, defineComponent, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Plus, Delete, Refresh } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    import type { TabsPaneContext } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    interface User {
        num: string
        level: string
        applyDate: string
        name: string
        department: string
        status: string
    }
    export default defineComponent({
        name: 'myApply',
        setup() {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const activeName = ref('Applying')
            const handleClick = (tab: TabsPaneContext, event: Event) => {
                console.log(tab, event)
            }
            const multipleTableRef = ref<InstanceType<typeof ElTable>>()
            const multipleSelection = ref<User[]>([])
            const handleSelectionChange = (val: User[]) => {
                multipleSelection.value = val
            }
            const currentPage = ref(1)
            const pageSize = ref(10)
            const handleSizeChange = (val: number) => {
                console.log(`${val} items per page`)
            }
            const handleCurrentChange = (val: number) => {
                console.log(`current page: ${val}`)
            }
            const applyData: User[] = []
            const passedData: User[] = []
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
                userInfos.value.projectId = value
                await initBackEndControlRoutes();
            };
            return {
                renderMenu,
                multipleTableRef,
                applyData,
                passedData,
                currentPage,
                pageSize,
                activeName,
                handleClick,
                handleSizeChange,
                handleCurrentChange,
                Plus,
                Delete,
                handleSelectionChange,
                Refresh,
                ...toRefs(state),
            };
        },
    });
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .demo-tabs > .el-tabs__content {
            padding: 32px;
            color: #6b778c;
            font-size: 32px;
            font-weight: 600;
        }
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
</style>
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="bpForm" label-width="180px" :rules="bpFormRules" ref="ruleFormRef">
        <el-form :model="bpForm" label-width="180px" :rules="bpFormRules" ref="bpRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -14,9 +14,9 @@
                    <el-col :span="8">
                        <el-form-item label="申请人" prop="bpApplyName">
                            <el-input
                                    v-model="bpForm.bpApplyName"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpApplyName"
                                placeholder="请输入"
                                class="input-with-select"
                            >
                                <template #append>
                                    <el-button :icon="Search" />
@@ -29,9 +29,9 @@
                    <el-col :span="24">
                        <el-form-item label="设备管道名称" prop="bpTubeName">
                            <el-input
                                    v-model="bpForm.bpTubeName"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpTubeName"
                                placeholder="请输入"
                                class="input-with-select"
                            />
                        </el-form-item>
                    </el-col>
@@ -40,9 +40,9 @@
                    <el-col :span="24">
                        <el-form-item label="主要介质" prop="bpMainMatter">
                            <el-input
                                    v-model="bpForm.bpMainMatter"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpMainMatter"
                                placeholder="请输入"
                                class="input-with-select"
                            />
                        </el-form-item>
                    </el-col>
@@ -51,18 +51,18 @@
                    <el-col :span="8">
                        <el-form-item label="温度" prop="bpTemperature">
                            <el-input
                                    v-model="bpForm.bpTemperature"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpTemperature"
                                placeholder="请输入"
                                class="input-with-select"
                            />
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="压力" prop="bpPressure">
                            <el-input
                                    v-model="bpForm.bpPressure"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpPressure"
                                placeholder="请输入"
                                class="input-with-select"
                            />
                        </el-form-item>
                    </el-col>
@@ -71,9 +71,9 @@
                    <el-col :span="24">
                        <el-form-item label="盲板材质" prop="bpMaterial">
                            <el-input
                                    v-model="bpForm.bpMaterial"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpMaterial"
                                placeholder="请输入"
                                class="input-with-select"
                            />
                        </el-form-item>
                    </el-col>
@@ -82,9 +82,9 @@
                    <el-col :span="24">
                        <el-form-item label="盲板规格" prop="bpFormat">
                            <el-input
                                    v-model="bpForm.bpFormat"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpFormat"
                                placeholder="请输入"
                                class="input-with-select"
                            />
                        </el-form-item>
                    </el-col>
@@ -93,9 +93,9 @@
                    <el-col :span="24">
                        <el-form-item label="盲板编号" prop="bpNum">
                            <el-input
                                    v-model="bpForm.bpNum"
                                    placeholder="请输入"
                                    class="input-with-select"
                                v-model="bpForm.bpNum"
                                placeholder="请输入"
                                class="input-with-select"
                            />
                        </el-form-item>
                    </el-col>
@@ -104,27 +104,27 @@
                    <el-col :span="24">
                        <el-form-item label="盲板位置" prop="bpLocation">
                            <el-input
                                    v-model="bpForm.bpLocation"
                                    placeholder="请输入"
                                    class="input-with-select"
                                    type="textarea"
                                v-model="bpForm.bpLocation"
                                placeholder="请输入"
                                class="input-with-select"
                                type="textarea"
                            />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="24">
                        <el-form-item label="盲板位置图" prop="fileList">
                        <el-form-item label="盲板位置图">
                            <el-upload
                                    v-model:file-list="fileList"
                                    class="upload-demo"
                                    action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
                                    multiple
                                    :on-preview="handlePreview"
                                    :on-remove="handleRemove"
                                    :before-remove="beforeRemove"
                                    :limit="3"
                                    :on-exceed="handleExceed"
                                v-model:file-list="bpForm.picList"
                                class="upload-demo"
                                action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
                                multiple
                                :on-preview="handlePreview"
                                :on-remove="handleRemove"
                                :before-remove="beforeRemove"
                                :limit="3"
                                :on-exceed="handleExceed"
                            >
                                <el-button type="primary">上传附件</el-button>
                                <template #tip>
@@ -150,9 +150,9 @@
                    <el-col :span="24">
                        <el-form-item label="装盲板时间" prop="bpInstallTime">
                        <el-date-picker
                                v-model="bpForm.bpInstallTime"
                                type="datetime"
                                placeholder="请选择"
                            v-model="bpForm.bpInstallTime"
                            type="datetime"
                            placeholder="请选择"
                        />
                        </el-form-item>
                    </el-col>
@@ -207,44 +207,47 @@
    }
    export default defineComponent({
        name: 'blindPanelForm',
        setup() {
        props: {
            bpForm: Object,
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const bpForm = reactive({
                bpDepartment: '',
                bpApplyName: '',
                bpTubeName: '',
                bpMainMatter: '',
                bpTemperature: '',
                bpPressure: '',
                bpMaterial: '',
                bpFormat: '',
                bpNum: '',
                bpLocation: '',
                fileList: [],
                bpPrincipals: [],
                bpInstallTime: '',
                bpDePrincipals: [],
                bpUninstallTime: ''
            })
            const ruleFormRef = ref<FormInstance>()
            const bpForm1 = reactive(props.bpForm)
            // const bpForm = reactive({
            //     bpDepartment: '',
            //     bpApplyName: '',
            //     bpTubeName: '',
            //     bpMainMatter: '',
            //     bpTemperature: '',
            //     bpPressure: '',
            //     bpMaterial: '',
            //     bpFormat: '',
            //     bpNum: '',
            //     bpLocation: '',
            //     fileList: [],
            //     bpPrincipals: [],
            //     bpInstallTime: '',
            //     bpDePrincipals: [],
            //     bpUninstallTime: ''
            // })
            const bpRef = ref<FormInstance>()
            const bpFormRules = reactive<FormRules>({
                bpDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpTubeName: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpMainMatter: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpTemperature: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpPressure: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpMaterial: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpFormat: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpNum: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpLocation: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}],
                bpPrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}],
                bpInstallTime: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                bpDePrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}],
                bpUninstallTime: [{required: true,message: '此处不可为空',trigger: 'blur'}]
                bpDepartment:[{required: true,message: '此处不可为空'}],
                bpApplyName:[{required: true,message: '此处不可为空'}],
                bpTubeName: [{required: true,message: '此处不可为空'}],
                bpMainMatter: [{required: true,message: '此处不可为空'}],
                bpTemperature: [{required: true,message: '此处不可为空'}],
                bpPressure: [{required: true,message: '此处不可为空'}],
                bpMaterial: [{required: true,message: '此处不可为空'}],
                bpFormat: [{required: true,message: '此处不可为空'}],
                bpNum: [{required: true,message: '此处不可为空'}],
                bpLocation: [{required: true,message: '此处不可为空'}],
                bpPrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}],
                bpInstallTime: [{required: true,message: '此处不可为空'}],
                bpDePrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}],
                bpUninstallTime: [{required: true,message: '此处不可为空'}]
            })
            const fileList = ref<UploadUserFile[]>([
                {
@@ -278,6 +281,18 @@
                        () => false
                )
            }
            const validateForm = async () => {
                let flag = null
                await bpRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -286,10 +301,12 @@
            };
            return {
                renderMenu,
                bpForm,
                bpForm1,
                bpFormRules,
                ruleFormRef,
                bpRef,
                fileList,
                Search,
                validateForm,
                handleRemove,
                handlePreview,
                handleExceed,
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="clForm" label-width="180px" :rules="clFormRules" ref="ruleFormRef">
        <el-form :model="clForm" label-width="180px" :rules="clFormRules" ref="clRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -100,18 +100,15 @@
    }
    export default defineComponent({
        name: 'cutLineForm',
        setup() {
        props: {
            clForm: Object
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const clForm = reactive({
                clDepartment: '',
                clApplyName: '',
                clReason: '',
                clUnits: [],
                fileList: []
            })
            const ruleFormRef = ref<FormInstance>()
            const clForm1 = reactive(props.clForm)
            const clRef = ref<FormInstance>()
            const clFormRules = reactive<FormRules>({
                clDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                clApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
@@ -151,6 +148,17 @@
                        () => false
                )
            }
            const validateForm = async () => {
                let flag = null
                await clRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -159,10 +167,12 @@
            };
            return {
                renderMenu,
                clForm,
                clForm1,
                Search,
                clFormRules,
                ruleFormRef,
                clRef,
                fileList,
                validateForm,
                handleRemove,
                handlePreview,
                handleExceed,
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="dwForm" label-width="180px" :rules="dwFormRules" ref="ruleFormRef">
        <el-form :model="dwForm" label-width="180px" :rules="dwFormRules" ref="dwRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -102,18 +102,15 @@
    }
    export default defineComponent({
        name: 'dirtWorkForm',
        setup() {
        props:{
            dwForm: Object
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const dwForm = reactive({
                dwDepartment: '',
                dwApplyName: '',
                dwRange: '',
                dwWay: '',
                fileList: []
            })
            const ruleFormRef = ref<FormInstance>()
            const dwForm1 = reactive(props.dwForm)
            const dwRef = ref<FormInstance>()
            const dwFormRules = reactive<FormRules>({
                dwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                dwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
@@ -153,6 +150,17 @@
                        () => false
                )
            }
            const validateForm = async () => {
                let flag = null
                await dwRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -161,10 +169,11 @@
            };
            return {
                renderMenu,
                dwForm,
                dwForm1,
                dwFormRules,
                ruleFormRef,
                dwRef,
                fileList,
                validateForm,
                handleRemove,
                handlePreview,
                handleExceed,
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="fwForm" label-width="150px" :rules="fwRules" ref="ruleFormRef">
        <el-form :model="fwForm" label-width="150px" :rules="fwRules" ref="fwRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -81,25 +81,33 @@
    }
    export default defineComponent({
        name: 'fireWorkForm',
        setup() {
        props: {
            fwForm: Object
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const fwForm = reactive({
                fwDepartment: '',
                fwApplyName: '',
                fwLevel: '',
                fwRiskIdentify: '',
                fwWorkWay: ''
            })
            const ruleFormRef = ref<FormInstance>()
            const fwForm1 = reactive(props.fwForm)
            const fwRef = ref<FormInstance>()
            const fwRules = reactive<FormRules>({
                fwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                fwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                fwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                fwRiskIdentify: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                fwWorkWay: [{required: true,message: '此处不可为空',trigger: 'blur'}]
                fwDepartment:[{required: true,message: '此处不可为空'}],
                fwApplyName:[{required: true,message: '此处不可为空'}],
                fwLevel: [{required: true,message: '此处不可为空'}],
                fwRiskIdentify: [{required: true,message: '此处不可为空'}],
                fwWorkWay: [{required: true,message: '此处不可为空'}]
            })
            const validateForm = async () => {
                let flag = null
                await fwRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -108,9 +116,11 @@
            };
            return {
                renderMenu,
                fwForm,
                ruleFormRef,
                Search,
                fwForm1,
                fwRules,
                fwRef,
                validateForm,
                ...toRefs(state),
            };
        },
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="hlForm" label-width="180px" :rules="hlFormRules" ref="ruleFormRef">
        <el-form :model="hlForm" label-width="180px" :rules="hlFormRules" ref="hlRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -87,18 +87,15 @@
    }
    export default defineComponent({
        name: 'hangLoadForm',
        setup() {
        props: {
            hlForm: Object
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const hlForm = reactive({
                hlDepartment: '',
                hlApplyName: '',
                hlLevel: '',
                hlWeight: '',
                hlToolsName: ''
            })
            const ruleFormRef = ref<FormInstance>()
            const hlForm1 = reactive(props.hlForm)
            const hlRef = ref<FormInstance>()
            const hlFormRules = reactive<FormRules>({
                hlDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                hlApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
@@ -106,6 +103,17 @@
                hlWeight: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                hlToolsName: [{required: true,message: '此处不可为空',trigger: 'blur'}]
            })
            const validateForm = async () => {
                let flag = null
                await hlRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -114,9 +122,10 @@
            };
            return {
                renderMenu,
                hlForm,
                hlForm1,
                hlFormRules,
                ruleFormRef,
                hlRef,
                validateForm,
                ...toRefs(state),
            };
        },
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="hwForm" label-width="150px" :rules="hwRules" ref="ruleFormRef">
        <el-form :model="hwForm" label-width="150px" :rules="hwRules" ref="hwRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -72,23 +72,32 @@
    }
    export default defineComponent({
        name: 'highWorkForm',
        setup() {
        props:{
            hwForm: Object
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const hwForm = reactive({
                hwDepartment: '',
                hwApplyName: '',
                hwLevel: '',
                hwHeight: ''
            })
            const ruleFormRef = ref<FormInstance>()
            const hwForm1 = reactive(props.hwForm)
            const hwRef = ref<FormInstance>()
            const hwRules = reactive<FormRules>({
                hwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                hwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                hwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                hwHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}]
            })
            const validateForm = async () => {
                let flag = null
                await hwRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -97,9 +106,10 @@
            };
            return {
                renderMenu,
                hwForm,
                ruleFormRef,
                hwForm1,
                hwRef,
                hwRules,
                validateForm,
                ...toRefs(state),
            };
        },
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="lsForm" label-width="180px" :rules="lsFormRules" ref="ruleFormRef">
        <el-form :model="lsForm" label-width="180px" :rules="lsFormRules" ref="lsRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -93,18 +93,15 @@
    }
    export default defineComponent({
        name: 'limitedSpaceForm',
        setup() {
        props: {
            lsForm: Object
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const lsForm = reactive({
                lsDepartment: '',
                lsApplyName: '',
                lsUnitName: '',
                lsUnit: '',
                lsUnitMatterName: ''
            })
            const ruleFormRef = ref<FormInstance>()
            const lsForm1 = reactive(props.lsForm)
            const lsRef = ref<FormInstance>()
            const lsFormRules = reactive<FormRules>({
                lsDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                lsApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
@@ -112,6 +109,17 @@
                lsUnit: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                lsUnitMatterName: [{required: true,message: '此处不可为空',trigger: 'blur'}]
            })
            const validateForm = async () => {
                let flag = null
                await lsRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -120,9 +128,10 @@
            };
            return {
                renderMenu,
                lsForm,
                lsForm1,
                lsFormRules,
                ruleFormRef,
                lsRef,
                validateForm,
                ...toRefs(state),
            };
        },
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue
@@ -1,6 +1,6 @@
<template>
    <div class="comp-container">
        <el-form :model="teForm" label-width="150px" :rules="teRules" ref="ruleFormRef">
        <el-form :model="teForm" label-width="150px" :rules="teRules" ref="teRef">
            <div class="homeCard">
                <el-row>
                    <el-col :span="8">
@@ -72,23 +72,32 @@
    }
    export default defineComponent({
        name: 'tempElectForm',
        setup() {
        props: {
            teForm: Object
        },
        setup(props) {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const teForm = reactive({
                teDepartment: '',
                teApplyName: '',
                teLevel: '',
                teHeight: ''
            })
            const ruleFormRef = ref<FormInstance>()
            const teForm1 = reactive(props.teForm)
            const teRef = ref<FormInstance>()
            const teRules = reactive<FormRules>({
                teDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                teApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}],
                teLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}],
                teHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}]
            })
            const validateForm = async () => {
                let flag = null
                await teRef.value.validate(valid=>{
                    if(valid){
                        flag = true
                    }else{
                        flag = false
                    }
                })
                return flag
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
@@ -97,9 +106,10 @@
            };
            return {
                renderMenu,
                teForm,
                ruleFormRef,
                teForm1,
                teRef,
                teRules,
                validateForm,
                ...toRefs(state),
            };
        },
src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue
@@ -2,60 +2,15 @@
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef2">
<!--            <blind-panel-form></blind-panel-form>-->
            <div class="homeCard">
            <el-row>
                <el-col :span="8">
                    <el-form-item label="申请部门">
                        <el-select v-model="form.department" placeholder="请选择部门">
                            <el-option label="机修班" value="机修班" />
                            <el-option label="火工班" value="火工班" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="8">
                    <el-form-item label="申请人">
                        <el-input
                            v-model="form.applyName"
                            placeholder="请输入"
                            class="input-with-select"
                        >
                            <template #append>
                                <el-button :icon="Search" />
                            </template>
                        </el-input>
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="8">
                    <el-form-item label="作业等级">
                        <el-select v-model="form.level" placeholder="请选择">
                            <el-option label="一" value="一" />
                            <el-option label="二" value="二" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="8">
                    <el-form-item label="危害辨识">
                        <el-select v-model="form.riskIdentify" placeholder="请选择">
                            <el-option label="辨识一" value="辨识一" />
                            <el-option label="辨识二" value="辨识二" />
                        </el-select>
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="8">
                    <el-form-item label="动火方式">
                        <el-select v-model="form.workWay" placeholder="请选择">
                            <el-option label="方式一" value="方式一" />
                            <el-option label="方式二" value="方式二" />
                        </el-select>
                    </el-form-item>
                </el-col>
            </el-row>
            </div>
            <blind-panel-form :bpForm="form.addForm" ref="additionalForm"></blind-panel-form>
<!--            <cut-line-form :clForm="form.addForm" ref="additionalForm"></cut-line-form>-->
<!--            <dirt-work-form :dwForm="form.addForm" ref="additionalForm"></dirt-work-form>-->
<!--            <fire-work-form :fwForm="form.addForm" ref="additionalForm"></fire-work-form>-->
<!--            <hang-load-form :hlForm="form.addForm" ref="additionalForm"></hang-load-form>-->
<!--            <high-work-form :hwForm="form.addForm" ref="additionalForm"></high-work-form>-->
<!--            <limited-space-form :lsForm="form.addForm" ref="additionalForm"></limited-space-form>-->
<!--            <temp-elect-form :teForm="form.addForm" ref="additionalForm"></temp-elect-form>-->
            <div>
            <div class="homeCard">
            <el-row>
                <el-col :span="3"><el-button type="primary" size="default" @click="dialogAddWorker = true">添加作业人</el-button></el-col>
@@ -261,7 +216,8 @@
                </el-col>
            </el-row>
            </div>
            <div class="homeCard applyBtn">
            </div>
            <div class="applyBtn">
            <el-row>
                <el-col :span="24" class="submitBtn">
                    <el-button type="primary" size="large" plain @click="handleApply(ruleFormRef2)">发起申请</el-button>
@@ -327,7 +283,7 @@
                    </el-input>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="onSubmitAddForm" size="default">确认</el-button>
                    <el-button type="primary" @click="onSubmitAddForm(ruleFormRef3)" size="default">确认</el-button>
                    <el-button size="default" @click="cancleAdd">取消</el-button>
                </el-form-item>
            </el-form>
@@ -396,6 +352,7 @@
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Search } from '@element-plus/icons-vue'
    import { ElMessage } from 'element-plus'
    import type { FormInstance, FormRules } from 'element-plus'
    let global: any = {
        homeChartOne: null,
@@ -429,11 +386,7 @@
                homeOne:[{id:1,name:'基础数据权限管理系统'},{id:2,name:'双重预防系统'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}],
            });
            const form = reactive({
                department: '',
                applyName: '',
                level: '',
                riskIdentify: '',
                workWay: '',
                addForm: {},
                workerList: [],
                workLocation: '',
                workTimeLine: '',
@@ -532,6 +485,7 @@
            const ruleFormRef2 = ref<FormInstance>()
            const ruleFormRef3 = ref<FormInstance>()
            const applyRules = reactive<FormRules>({
                extraForm: [{type: 'object', required: true,message: '此处不能为空'}],
                workLocation: [{required: true,message: '此处不能为空'}],
                workTimeLine: [{required: true,message: '此处不能为空'}],
                workContent: [{required: true,message: '此处不能为空'}],
@@ -542,7 +496,7 @@
                monitorStation: [{required: true,message: '此处不能为空'}],
                workhouseLeader: [{required: true,message: '此处不能为空'}],
                applyDate: [{required: true,message: '此处不能为空'}],
                otherSpecialWorks: [{required: true,message: '此处不能为空'}],
                otherSpecialWorks: [{type: 'array', required: true,message: '此处不能为空'}],
                protections: [{required: true,message: '此处不能为空'}],
                safetyMan: [{required: true,message: '此处不能为空'}],
                educated: [{required: true,message: '此处不能为空'}]
@@ -601,15 +555,31 @@
            const deleteRow = (index) =>{
                form.workerList.splice( index,1)
            }
            const isValid = ref(false)
            const additionalForm = ref(null)
            const handleApply = async (formEl: FormInstance | undefined) =>{
                if (!formEl) return
                const flag = additionalForm.value.validateForm()
                await flag.then((res)=>{
                    isValid.value = res
                })
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        console.log('submit!')
                    console.log(valid,'and',isValid.value)
                    if (valid && isValid.value) {
                        console.log('submit',form,fields)
                        ElMessage({
                            message: '提交成功!',
                            type: 'success',
                        })
                    } else {
                        console.log('error submit!', fields)
                        // console.log('error submit!',form,fields)
                        ElMessage({
                            message: '表单未填写完整',
                            type: 'error',
                        })
                    }
                })
            }
            // 折线图
            const renderMenu = async (value: string) => {
@@ -630,9 +600,11 @@
                ruleFormRef,
                ruleFormRef2,
                ruleFormRef3,
                additionalForm,
                addWorkerRules,
                saftyFileRules,
                applyRules,
                isValid,
                handleApply,
                cancleAddFile,
                deleteRow,
@@ -658,11 +630,20 @@
            background: #fff;
            border-radius: 4px;
            margin-bottom: 20px;
            &:last-of-type{
                margin-bottom: 100px;
            }
        }
        .applyBtn{
            position: absolute;
            width: 100%;
            padding: 20px;
            background: #fff;
            bottom: 0;
            left: 0;
            height: 80px;
            z-index: 999;
            margin-bottom: 0;
            border-radius: 0;
            box-shadow: 0 -3px 8px rgba(150,150,150,.1);
src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
@@ -1,8 +1,8 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-row>
            <div class="homeCard">
        <el-row class="homeCard">
<!--            <div class="homeCard">-->
            <el-col :span="6">
                <div class="grid-content topInfo">
                    <div>预约时间:</div>
@@ -37,7 +37,7 @@
                    <div><el-button type="primary" @click="dialogChartsVisible = true">查看统计图表</el-button></div>
                </div>
            </el-col>
            </div>
<!--            </div>-->
        </el-row>
        <el-row>
            <div class="homeCard">
src/views/specialWorkSystem/workPlan/workReservation/index.vue
@@ -1,8 +1,8 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-row>
            <div class="homeCard">
        <el-row class="homeCard">
<!--            <div class="homeCard">-->
            <el-col :span="6">
                <div class="grid-content topInfo">
                    <div>当前所属部门:</div>
@@ -43,7 +43,7 @@
                    <div><el-button type="success" @click="dialogFormVisible = true">新增预约</el-button></div>
                </div>
            </el-col>
        </div>
<!--        </div>-->
        </el-row>
        <el-row>
            <div class="homeCard">
src/views/specialWorkSystem/workProcessManagement/gasCheckAnalyze/index.vue
对比新文件
@@ -0,0 +1,261 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-row class="homeCard">
            <el-col :span="8">
                <div class="grid-content topInfo">
                    <el-input v-model="searchWord" placeholder="作业证编号"></el-input>
                    <el-button type="primary">查询</el-button>
                    <el-button plain>重置</el-button>
                </div>
            </el-col>
        </el-row>
        <div class="homeCard">
            <div class="main-card">
                <el-row class="cardTop">
                    <el-col :span="12" class="mainCardBtn">
                        <el-button type="primary" :icon="Plus" size="default">新建</el-button>
                        <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>
                        <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column property="id" label="作业证编号" width="200" sortable/>
                    <el-table-column property="date" label="日期" width="180" sortable/>
                    <el-table-column property="combustible" label="可燃气%" sortable/>
                    <el-table-column property="oxygen" label="氧气%" sortable/>
                    <el-table-column property="co" label="一氧化碳ppm" sortable/>
                    <el-table-column property="hs" label="硫化氢ppm" sortable/>
                    <el-table-column property="updateTime" label="更新时间" sortable/>
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        <el-dialog v-model="dialogDetails" title="签到记录" @close="dialogColse">
            <el-form :model="details" label-width="120px">
                <el-form-item label="作业证编号">
                    <el-input v-model="details.id" readonly/>
                </el-form-item>
                <el-form-item label="签到人">
                    <el-input
                        v-model="details.worker"
                        class="input-with-select"
                        readonly
                    >
                        <template #append>
                            <el-button :icon="Search" />
                        </template>
                    </el-input>
                </el-form-item>
<!--                <el-form-item label="签到状态">-->
<!--                    <el-select v-model="details.status" readonly>-->
<!--                        <el-option label="已签到" value="已签到" />-->
<!--                        <el-option label="未签到" value="未签到" />-->
<!--                    </el-select>-->
<!--                </el-form-item>-->
                <el-form-item label="签到时间">
                    <el-input v-model="details.checkinTime" readonly/>
                </el-form-item>
                <el-form-item label="备注">
                    <el-input v-model="details.remark" type="textarea" readonly/>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        </el-scrollbar>
    </div>
</template>
<script lang="ts">
    import { toRefs, reactive, defineComponent, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Plus, Edit, Delete, Refresh, Search } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    interface User {
        date: string
        name: string
        address: string
    }
    export default defineComponent({
        name: 'gasCheckAnalyze',
        setup() {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const multipleTableRef = ref<InstanceType<typeof ElTable>>()
            const multipleSelection = ref<User[]>([])
            const handleSelectionChange = (val: User[]) => {
                multipleSelection.value = val
            }
            const currentPage = ref(1)
            const pageSize = ref(10)
            const handleSizeChange = (val: number) => {
                console.log(`${val} items per page`)
            }
            const handleCurrentChange = (val: number) => {
                console.log(`current page: ${val}`)
            }
            const tableData: User[] = [
                {
                    id: '11011',
                    date: '2021-04-22 15:21:31',
                    combustible: 0,
                    oxygen: 21,
                    co: 0,
                    hs: 0,
                    updateTime: '2021-04-22 15:21:31',
                },
                {
                    id: '11011',
                    date: '2021-04-22 15:21:31',
                    combustible: 1,
                    oxygen: 21,
                    co: 0,
                    hs: 0,
                    updateTime: '2021-04-22 15:21:31',
                }
            ]
            const dialogDetails = ref(false)
            const details = ref({})
            const viewDetails = (row)=> {
                console.log(row,'row')
                details.value = JSON.parse(JSON.stringify(row))
                console.log(details,'details')
                dialogDetails.value = true
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
                userInfos.value.projectId = value
                await initBackEndControlRoutes();
            };
            return {
                renderMenu,
                multipleTableRef,
                tableData,
                currentPage,
                pageSize,
                dialogDetails,
                details,
                viewDetails,
                handleSizeChange,
                handleCurrentChange,
                Plus,
                Edit,
                Delete,
                Search,
                handleSelectionChange,
                Refresh,
                ...toRefs(state),
            };
        },
    });
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
</style>
src/views/specialWorkSystem/workProcessManagement/workCheckinRecord/index.vue
对比新文件
@@ -0,0 +1,255 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <el-row class="homeCard">
            <el-col :span="8">
                <div class="grid-content topInfo">
                    <el-input v-model="searchWord" placeholder="作业证编号"></el-input>
                    <el-button type="primary">查询</el-button>
                    <el-button plain>重置</el-button>
                </div>
            </el-col>
        </el-row>
        <div class="homeCard">
            <div class="main-card">
                <el-row class="cardTop">
                    <el-col :span="12" class="mainCardBtn">
                        <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>
                        <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column property="id" label="作业证编号" width="200" sortable/>
                    <el-table-column property="worker" label="签到人" width="180" />
                    <el-table-column property="checkinTime" label="签到时间" sortable/>
                    <el-table-column property="remark" label="备注"/>
                    <el-table-column fixed="right" label="操作" width="180">
                        <template #default="scope">
                            <el-button link type="primary" size="small" @click="viewDetails(scope.row)">查看</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        <el-dialog v-model="dialogDetails" title="签到记录" @close="dialogColse">
            <el-form :model="details" label-width="120px">
                <el-form-item label="作业证编号">
                    <el-input v-model="details.id" readonly/>
                </el-form-item>
                <el-form-item label="签到人">
                    <el-input
                        v-model="details.worker"
                        class="input-with-select"
                        readonly
                    >
                        <template #append>
                            <el-button :icon="Search" />
                        </template>
                    </el-input>
                </el-form-item>
<!--                <el-form-item label="签到状态">-->
<!--                    <el-select v-model="details.status" readonly>-->
<!--                        <el-option label="已签到" value="已签到" />-->
<!--                        <el-option label="未签到" value="未签到" />-->
<!--                    </el-select>-->
<!--                </el-form-item>-->
                <el-form-item label="签到时间">
                    <el-input v-model="details.checkinTime" readonly/>
                </el-form-item>
                <el-form-item label="备注">
                    <el-input v-model="details.remark" type="textarea" readonly/>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        </el-scrollbar>
    </div>
</template>
<script lang="ts">
    import { toRefs, reactive, defineComponent, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Edit, Delete, Refresh, Search } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    interface User {
        date: string
        name: string
        address: string
    }
    export default defineComponent({
        name: 'workCheckinRecord',
        setup() {
            const userInfo = useUserInfo()
            const { userInfos } = storeToRefs(userInfo);
            const state  = reactive<stateType>({});
            const multipleTableRef = ref<InstanceType<typeof ElTable>>()
            const multipleSelection = ref<User[]>([])
            const handleSelectionChange = (val: User[]) => {
                multipleSelection.value = val
            }
            const currentPage = ref(1)
            const pageSize = ref(10)
            const handleSizeChange = (val: number) => {
                console.log(`${val} items per page`)
            }
            const handleCurrentChange = (val: number) => {
                console.log(`current page: ${val}`)
            }
            const tableData: User[] = [
                {
                    id: '11011',
                    worker: '吴海涛',
                    checkinTime: '2021-04-22 15:21:31',
                    remark: ''
                },
                {
                    id: '11012',
                    worker: '吴沈峰',
                    checkinTime: '2021-04-22 15:21:31',
                    remark: ''
                }
            ]
            const dialogDetails = ref(false)
            const details = ref({})
            const viewDetails = (row)=> {
                console.log(row,'row')
                details.value = JSON.parse(JSON.stringify(row))
                console.log(details,'details')
                dialogDetails.value = true
            }
            // 折线图
            const renderMenu = async (value: string) => {
                Session.set('projectId',value)
                userInfos.value.projectId = value
                await initBackEndControlRoutes();
            };
            return {
                renderMenu,
                multipleTableRef,
                tableData,
                currentPage,
                pageSize,
                dialogDetails,
                details,
                viewDetails,
                handleSizeChange,
                handleCurrentChange,
                Edit,
                Delete,
                Search,
                handleSelectionChange,
                Refresh,
                ...toRefs(state),
            };
        },
    });
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
</style>