From e2cad5345678266960d40f1ba5e3ffac4d5c85e8 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期三, 13 七月 2022 09:19:05 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt
---
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue | 33
src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue | 111 +-
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue | 34
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue | 44
src/views/specialWorkSystem/workProcessManagement/gasCheckAnalyze/index.vue | 261 +++++++
src/views/specialWorkSystem/workProcessManagement/workCheckinRecord/index.vue | 255 +++++++
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue | 32
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue | 33
src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue | 6
src/views/specialWorkSystem/workPlan/workReservation/index.vue | 6
src/views/specialWorkSystem/approveProcessManagement/approveProcessSetting/index.vue | 0
src/views/specialWorkSystem/afterWorkManagement/workTicketCheck/index.vue | 339 ++++++++++
src/views/specialWorkSystem/workApplyManagement/myApply/index.vue | 280 ++++++++
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue | 32
src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue | 8
src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue | 249 +++++++
src/views/specialWorkSystem/approveProcessManagement/addApproveProcess/index.vue | 0
src/views/specialWorkSystem/approveProcessManagement/reportTypeSetting/index.vue | 0
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue | 33
src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue | 173 ++--
20 files changed, 1,688 insertions(+), 241 deletions(-)
diff --git a/src/views/specialWorkSystem/afterWorkManagement/workTicketCheck/index.vue b/src/views/specialWorkSystem/afterWorkManagement/workTicketCheck/index.vue
new file mode 100644
index 0000000..cba6e83
--- /dev/null
+++ b/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>
diff --git a/src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue b/src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue
new file mode 100644
index 0000000..85657ec
--- /dev/null
+++ b/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>
diff --git a/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue b/src/views/specialWorkSystem/approveProcessManagement/addApproveProcess/index.vue
similarity index 100%
rename from src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
rename to src/views/specialWorkSystem/approveProcessManagement/addApproveProcess/index.vue
diff --git a/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue b/src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue
similarity index 97%
rename from src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue
rename to src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue
index 45e65e2..69764ef 100644
--- a/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue
+++ b/src/views/specialWorkSystem/approveProcessManagement/approveProcessList/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"
diff --git a/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue b/src/views/specialWorkSystem/approveProcessManagement/approveProcessSetting/index.vue
similarity index 100%
rename from src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
rename to src/views/specialWorkSystem/approveProcessManagement/approveProcessSetting/index.vue
diff --git a/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue b/src/views/specialWorkSystem/approveProcessManagement/reportTypeSetting/index.vue
similarity index 100%
rename from src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue
rename to src/views/specialWorkSystem/approveProcessManagement/reportTypeSetting/index.vue
diff --git a/src/views/specialWorkSystem/workApplyManagement/myApply/index.vue b/src/views/specialWorkSystem/workApplyManagement/myApply/index.vue
new file mode 100644
index 0000000..3bf4b98
--- /dev/null
+++ b/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>
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue
index 39513f7..bf26c37 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue
+++ b/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,
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue
index 49e1f46..4a0a5be 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue
+++ b/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,
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue
index ceb729f..4bb6e52 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue
+++ b/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,
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue
index 313ad5c..084f86c 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue
+++ b/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),
};
},
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue
index 858080e..6b36361 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue
+++ b/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),
};
},
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue
index 198b18b..1ae364a 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue
+++ b/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),
};
},
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue
index e5bcb8d..bd92649 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue
+++ b/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),
};
},
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue
index 296b5a1..cc21d11 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue
+++ b/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),
};
},
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue
index 42b3dff..7b0a1e0 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue
+++ b/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);
diff --git a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
index a5a527b..94f0618 100644
--- a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
+++ b/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">
diff --git a/src/views/specialWorkSystem/workPlan/workReservation/index.vue b/src/views/specialWorkSystem/workPlan/workReservation/index.vue
index 2378d4c..0b25a62 100644
--- a/src/views/specialWorkSystem/workPlan/workReservation/index.vue
+++ b/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">
diff --git a/src/views/specialWorkSystem/workProcessManagement/gasCheckAnalyze/index.vue b/src/views/specialWorkSystem/workProcessManagement/gasCheckAnalyze/index.vue
new file mode 100644
index 0000000..b019d19
--- /dev/null
+++ b/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>
diff --git a/src/views/specialWorkSystem/workProcessManagement/workCheckinRecord/index.vue b/src/views/specialWorkSystem/workProcessManagement/workCheckinRecord/index.vue
new file mode 100644
index 0000000..4173575
--- /dev/null
+++ b/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>
--
Gitblit v1.9.2