From 39d90ac360f55f8835920c6e12e5cd1e4246bdcc Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期二, 05 七月 2022 19:18:34 +0800
Subject: [PATCH] '风险'
---
src/views/specialWorkSystem/workPlan/workReservation/index.vue | 18
src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue | 23
src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue | 111 +++++-
src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue | 122 +++++-
src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue | 70 +++
src/views/specialWorkSystem/workApplyManagement/workApply/index.vue | 523 +++++++++++++++++++++++++++++++
src/views/homeMenu/homeMenu.vue | 9
src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue | 23 +
src/main.ts | 3
9 files changed, 793 insertions(+), 109 deletions(-)
diff --git a/src/main.ts b/src/main.ts
index b5bd532..bc84b4a 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -12,6 +12,7 @@
import '/@/theme/index.scss';
import mitt from 'mitt';
import VueGridLayout from 'vue-grid-layout';
+import locale from 'element-plus/lib/locale/lang/zh-cn'
const app = createApp(App);
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
@@ -20,6 +21,6 @@
directive(app);
other.elSvg(app);
-app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t }).use(i18n).use(VueGridLayout).mount('#app');
+app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t,locale }).use(i18n).use(VueGridLayout).mount('#app');
app.config.globalProperties.mittBus = mitt();
diff --git a/src/views/homeMenu/homeMenu.vue b/src/views/homeMenu/homeMenu.vue
index 9a9a2a0..c16e22d 100644
--- a/src/views/homeMenu/homeMenu.vue
+++ b/src/views/homeMenu/homeMenu.vue
@@ -96,10 +96,10 @@
await initBackEndControlRoutes();
router.push('/home')
};
- //点击进入特殊作业
- const toSpecialWorkSys = () => {
- router.push('/layoutPage');
- };
+ // //点击进入特殊作业
+ // const toSpecialWorkSys = () => {
+ // router.push('/layoutPage');
+ // };
// 页面加载时
onMounted(() => {
NextLoading.done();
@@ -111,7 +111,6 @@
loginIconTwo,
getThemeConfig,
renderMenu,
- toSpecialWorkSys,
...toRefs(state),
};
},
diff --git a/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue b/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
index 1d7dbe0..e01d0e3 100644
--- a/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
+++ b/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
@@ -1,34 +1,37 @@
<template>
<div class="home-container">
+ <el-scrollbar height="100%">
+ <div class="homeCard">
<el-row>
<el-button type="primary" size="large" @click="addApprove">新建审批环节</el-button>
</el-row>
<el-row>
<el-table :data="tableData" border style="width: 100%">
- <el-table-column prop="id" label="编号" width="180" />
- <el-table-column prop="step" label="环节名称" width="180" />
- <el-table-column prop="type" label="审核类型"/>
+ <el-table-column type="index" label="编号" width="100"/>
+ <el-table-column prop="step" label="环节名称"/>
+ <el-table-column prop="type" label="审核类型" width="180"/>
<el-table-column prop="createTime" label="创建时间" width="180" />
<el-table-column prop="editor" label="最新编辑人" width="180" />
- <el-table-column prop="editorTime" label="最新编辑时间" />
+ <el-table-column prop="editeTime" label="最新编辑时间" width="180" />
<el-table-column fixed="right" label="操作" width="180">
- <template #default>
- <el-button link type="primary" size="small">编辑</el-button>
- <el-button link type="danger" size="small">删除</el-button>
+ <template #default="scope">
+ <el-button link type="primary" size="small" @click="editeRow(scope.$index,scope.row)">编辑</el-button>
+ <el-button link type="danger" size="small" @click="deleteRow(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
- <el-dialog v-model="dialogAddForm" title="新建审批环节">
- <el-form :model="reportForm" label-width="120px">
- <el-form-item label="环节名称">
+ </div>
+ <el-dialog v-model="dialogAddForm" title="新建审批环节" @close="dialogColse">
+ <el-form :model="reportForm" label-width="120px" ref="ruleFormRef" :rules="rules">
+ <el-form-item label="环节名称" prop="step">
<el-select v-model="reportForm.step" placeholder="选择环节名称">
<el-option label="作业负责人审批" value="作业负责人审批" />
<el-option label="作业负责人审批2" value="作业负责人审批2" />
<el-option label="作业负责人审批3" value="作业负责人审批3" />
</el-select>
</el-form-item>
- <el-form-item label="审核类型">
+ <el-form-item label="审核类型" prop="type">
<el-select v-model="reportForm.type" placeholder="选择审核类型">
<el-option label="上报审批意见" value="上报审批意见" />
<el-option label="上报气体检测数据" value="上报气体检测数据" />
@@ -39,11 +42,12 @@
<el-input v-model="reportForm.editor" />
</el-form-item>
<el-form-item>
- <el-button type="primary" @click="onSubmitAddForm" size="default">确认</el-button>
- <el-button size="default">取消</el-button>
+ <el-button type="primary" @click="onSubmitAddForm(ruleFormRef)" size="default">确认</el-button>
+ <el-button size="default" @click="dialogAddForm = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
+ </el-scrollbar>
</div>
</template>
@@ -53,7 +57,8 @@
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {useUserInfo} from "/@/stores/userInfo";
import { Session } from '/@/utils/storage';
- import { ElMessage } from 'element-plus'
+ import type { FormInstance, FormRules } from 'element-plus'
+
let global: any = {
homeChartOne: null,
homeChartTwo: null,
@@ -67,52 +72,100 @@
interface type {
}
+ interface User {
+ step: string,
+ type: string,
+ createTime: string
+ }
export default defineComponent({
name: 'reportTypeSetting',
setup() {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({});
- const tableData = [
+ const tableData = reactive([
{
- id: '0',
step: '作业负责人审批',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
},
{
- id: '1',
step: '作业负责人审批',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
},
{
- id: '2',
step: '作业负责人审批',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
}
- ];
+ ]);
const dialogAddForm = ref(false);
- const reportForm = reactive({
- id: '',
+ const rowIndex = ref(-1)
+ const reportForm = ref({
step: '',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
})
const addApprove = ()=>{
dialogAddForm.value = true
};
- const onSubmitAddForm = () => {
- console.log('submit!')
+ const ruleFormRef = ref<FormInstance>()
+ const rules = reactive<FormRules>({
+ step:[{required: true, message: '该内容不能为空',trigger:'blur'}],
+ type:[{required: true, message: '该内容不能为空',trigger:'blur'}]
+ })
+ const onSubmitAddForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ if(rowIndex.value == -1){
+ reportForm.value.createTime = new Date().toLocaleString()
+ reportForm.value.editeTime = new Date().toLocaleString()
+ tableData.push(reportForm.value)
+ }else{
+ tableData[rowIndex.value] = reportForm.value
+ }
+
+ // reportForm.value = {
+ // step: '',
+ // type: '',
+ // createTime: '',
+ // editor: '',
+ // editeTime: ''
+ // }
+ dialogAddForm.value = false
+ } else {
+ console.log('error submit!', fields)
+ }
+ })
+ }
+ const editeRow = (index: number, row: User) =>{
+ dialogAddForm.value = true
+ rowIndex.value = index
+ reportForm.value = JSON.parse(JSON.stringify(row))
+ reportForm.value.editeTime = new Date().toLocaleString()
+ }
+ const deleteRow = (index)=>{
+ tableData.splice( index,1)
+ }
+ const dialogColse = () =>{
+ reportForm.value = {
+ step: '',
+ type: '',
+ createTime: '',
+ editor: '',
+ editeTime: ''
+ }
+ rowIndex.value = -1
}
// 折线图
const renderMenu = async (value: string) => {
@@ -125,6 +178,12 @@
tableData,
dialogAddForm,
reportForm,
+ ruleFormRef,
+ rules,
+ rowIndex,
+ dialogColse,
+ editeRow,
+ deleteRow,
addApprove,
onSubmitAddForm,
...toRefs(state),
@@ -137,7 +196,14 @@
$homeNavLengh: 8;
.home-container {
overflow: hidden;
- padding: 80px;
+ padding: 20px;
+ height: 100%;
+ .homeCard{
+ width: 100%;
+ padding: 20px;
+ background: #fff;
+ border-radius: 4px;
+ }
.el-row{
margin-bottom: 20px;
}
diff --git a/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue b/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue
index b93d5f4..45e65e2 100644
--- a/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue
+++ b/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue
@@ -1,6 +1,8 @@
<template>
<div class="home-container">
+ <el-scrollbar height="100%">
<el-row>
+ <div class="homeCard">
<el-col :span="12">
<div class="grid-content topInfo">
<div>流程名称</div>
@@ -9,8 +11,9 @@
<el-button plain>重置</el-button>
</div>
</el-col>
+ </div>
</el-row>
- <div class="mainPages">
+ <div class="homeCard">
<div class="main-card">
<el-row class="cardTop">
<el-col :span="12" class="mainCardBtn">
@@ -65,6 +68,7 @@
/>
</div>
</div>
+ </el-scrollbar>
</div>
</template>
@@ -222,19 +226,21 @@
<style scoped lang="scss">
$homeNavLengh: 8;
.home-container {
+ height: 100%;
overflow: hidden;
- padding: 20px 40px;
+ 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;
- }
- .el-col{
- display: flex;
- align-items: center;
- margin: 20px 0;
}
.grid-content{
align-items: center;
@@ -261,12 +267,11 @@
}
.main-card{
width: 100%;
- padding: 20px;
- background: #fff;
.cardTop{
display: flex;
align-items: center;
justify-content: space-between;
+ margin-bottom: 20px;
.mainCardBtn{
margin: 0;
}
diff --git a/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue b/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
index 5d7eae9..33de449 100644
--- a/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
+++ b/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
@@ -1,5 +1,8 @@
<template>
<div class="home-container">
+ <el-scrollbar height="100%">
+ <div class="homeCard">
+ <div>
<div v-for="(item,index) in approveSteps" class="stepItem">
<div class="stepNum">{{index+1}}</div>
<div class="stepCard">
@@ -19,29 +22,31 @@
</el-card>
</div>
</div>
+ </div>
<el-row>
- <el-button type="primary" @click="confirmEdit" size="default">确认</el-button>
- <el-button @click="cancelEdit" size="default">取消</el-button>
+ <el-button type="primary" @click="confirmEdit" size="large">确认</el-button>
+ <el-button @click="cancelEdit" size="large">取消</el-button>
</el-row>
- <el-drawer v-model="showAdd" direction="rtl">
+ </div>
+ <el-drawer v-model="showAdd" direction="rtl" @close="colseDrawer">
<template #title>
<h4>新增审批流</h4>
</template>
<template #default>
- <el-form :model="addProgress" label-width="120px">
- <el-form-item label="审批部门">
+ <el-form :model="addProgress" label-width="120px" ref="ruleFormRef" :rules="ProgressRules">
+ <el-form-item label="审批部门" prop="department">
<el-select v-model="addProgress.department" placeholder="请选择审批部门">
<el-option label="动土" value="动土" />
<el-option label="动火" value="动火" />
</el-select>
</el-form-item>
- <el-form-item label="审批人员">
+ <el-form-item label="审批人员" prop="manager">
<el-select v-model="addProgress.manager" placeholder="请选择审批人员">
<el-option label="人员1" value="人员1" />
<el-option label="人员2" value="人员2" />
</el-select>
</el-form-item>
- <el-form-item label="其他参数">
+ <el-form-item label="其他参数" prop="others">
<el-input v-model="addProgress.others" />
</el-form-item>
</el-form>
@@ -62,6 +67,7 @@
</span>
</template>
</el-dialog>
+ </el-scrollbar>
</div>
</template>
@@ -72,6 +78,7 @@
import {useUserInfo} from "/@/stores/userInfo";
import { Session } from '/@/utils/storage';
import { ElMessage } from 'element-plus'
+ import type { FormInstance, FormRules } from 'element-plus'
let global: any = {
homeChartOne: null,
homeChartTwo: null,
@@ -115,13 +122,24 @@
manager: '',
others: ''
})
- const confirmClick = () => {
- approveSteps.splice(chosenIndex.value+1,0,addProgress.value)
- addProgress.value = {
- department: '',
- manager: '',
- others: ''
- }
+ const ruleFormRef = ref<FormInstance>()
+ const ProgressRules = reactive<FormRules>({
+ department: [{required:true,message: '该选项不能为空',trigger: 'blur'}],
+ manager: [{required:true,message: '该选项不能为空',trigger: 'blur'}]
+ })
+ const confirmClick = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ approveSteps.splice(chosenIndex.value+1,0,addProgress.value)
+ showAdd.value = false
+ } else {
+ console.log('error submit!', fields)
+ }
+ })
+
+ }
+ const cancelClick=()=>{
showAdd.value = false
}
const addFlow = (index) => {
@@ -144,6 +162,13 @@
approveSteps.splice( i,1)
deleteDialog.value = false
}
+ const colseDrawer = ()=>{
+ addProgress.value = {
+ department: '',
+ manager: '',
+ others: ''
+ }
+ }
const cancelEdit = () => {
}
@@ -162,9 +187,13 @@
showAdd,
approveSteps,
addProgress,
+ ruleFormRef,
+ ProgressRules,
chosenIndex,
deleteDialog,
+ colseDrawer,
conFirmDelete,
+ cancelClick,
deleteFlow,
addFlow,
confirmClick,
@@ -179,14 +208,25 @@
<style scoped lang="scss">
$homeNavLengh: 8;
.home-container {
+ height: 100%;
overflow: hidden;
- padding: 80px;
+ padding: 20px;
+ .homeCard{
+ width: 100%;
+ padding: 20px;
+ background: #fff;
+ border-radius: 4px;
+ }
.stepItem{
display: flex;
align-items: flex-start;
margin-bottom: 30px;
+ margin-left: 30px;
padding-bottom: 30px;
border-left: 2px solid #ccc;
+ &:first-of-type{
+ margin-top: 30px;
+ }
&:last-of-type{
margin-bottom: 0;
border-left: none;
diff --git a/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue b/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue
index 5ab484f..49fbc6d 100644
--- a/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue
+++ b/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue
@@ -1,27 +1,30 @@
<template>
<div class="home-container">
+ <el-scrollbar height="100%">
+ <div class="homeCard">
<el-row>
<el-button type="primary" size="large" @click="addReport">新建上报类型</el-button>
</el-row>
<el-row>
<el-table :data="tableData" border style="width: 100%">
- <el-table-column prop="id" label="标识" width="180" />
+ <el-table-column type="index" label="标识" width="100"/>
<el-table-column prop="type" label="上报数据类型名称" width="180" />
<el-table-column prop="founder" label="创建人"/>
<el-table-column prop="createTime" label="创建时间" width="180" />
<el-table-column prop="editor" label="最新编辑人" width="180" />
- <el-table-column prop="editorTime" label="最新编辑时间" />
+ <el-table-column prop="editeTime" label="最新编辑时间" />
<el-table-column fixed="right" label="操作" width="180">
- <template #default>
- <el-button link type="primary" size="small">编辑</el-button>
- <el-button link type="danger" size="small">删除</el-button>
+ <template #default="scope">
+ <el-button link type="primary" size="small" @click="editeRow(scope.$index,scope.row)">编辑</el-button>
+ <el-button link type="danger" size="small" @click="deleteRow(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
- <el-dialog v-model="dialogAddForm" title="新建上报类型">
- <el-form :model="reportForm" label-width="120px">
- <el-form-item label="上报数据类型">
+ </div>
+ <el-dialog v-model="dialogAddForm" title="新建上报类型" @close="dialogColse">
+ <el-form :model="reportForm" label-width="120px" ref="ruleFormRef" :rules="addRules">
+ <el-form-item label="上报数据类型" prop="type">
<el-select v-model="reportForm.type" placeholder="选择上报数据类型">
<el-option label="上报审批意见" value="上报审批意见" />
<el-option label="上报气体监测数据" value="上报气体监测数据" />
@@ -29,20 +32,21 @@
</el-select>
</el-form-item>
<el-form-item label="创建人">
- <el-select v-model="reportForm.founder" placeholder="选择创建人">
+ <el-select v-model="reportForm.founder" property="founder" placeholder="选择创建人">
<el-option label="创建人1" value="创建人1" />
<el-option label="创建人2" value="创建人2" />
</el-select>
</el-form-item>
- <el-form-item label="最新编辑人">
+ <el-form-item label="最新编辑人" prop="editor">
<el-input v-model="reportForm.editor" />
</el-form-item>
<el-form-item>
- <el-button type="primary" @click="onSubmitAddForm" size="default">确认</el-button>
- <el-button size="default">取消</el-button>
+ <el-button type="primary" @click="onSubmitAddForm(ruleFormRef)" size="default">确认</el-button>
+ <el-button size="default" @click="dialogAddForm = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
+ </el-scrollbar>
</div>
</template>
@@ -52,7 +56,7 @@
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {useUserInfo} from "/@/stores/userInfo";
import { Session } from '/@/utils/storage';
- import { ElMessage } from 'element-plus'
+ import { FormInstance, FormRules } from 'element-plus'
let global: any = {
homeChartOne: null,
homeChartTwo: null,
@@ -66,52 +70,93 @@
interface type {
}
+ interface User {
+ type: string,
+ founder: string,
+ editor: string
+ }
export default defineComponent({
name: 'reportTypeSetting',
setup() {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({});
- const tableData = [
+ const tableData =reactive([
{
- id: '0',
type: '上报审批意见',
founder: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
},
{
- id: '1',
type: '上报气体检测数据',
founder: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
},
{
- id: '2',
type: '上报安全措施确认',
founder: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
}
- ];
+ ])
const dialogAddForm = ref(false);
- const reportForm = reactive({
- id: '',
+ const rowIndex = ref(-1)
+ const reportForm = ref({
type: '',
founder: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
})
const addReport = ()=>{
dialogAddForm.value = true
};
- const onSubmitAddForm = () => {
- console.log('submit!')
+ const ruleFormRef = ref<FormInstance>()
+ const addRules = reactive<FormRules>({
+ type:[{required: true, message: '该内容不能为空',trigger:'blur'}],
+ founder:[{required: true, message: '该内容不能为空',trigger:'blur'}],
+ editor:[{required: true, message: '该内容不能为空',trigger:'blur'}]
+ })
+ const onSubmitAddForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ if(rowIndex.value == -1){
+ reportForm.value.createTime = new Date().toLocaleString()
+ reportForm.value.editeTime = new Date().toLocaleString()
+ tableData.push(reportForm.value)
+ }else{
+ tableData[rowIndex.value] = reportForm.value
+ }
+ dialogAddForm.value = false
+ } else {
+ console.log('error submit!', fields)
+ }
+ })
+ }
+ const editeRow = (index: number, row: User) =>{
+ dialogAddForm.value = true
+ rowIndex.value = index
+ reportForm.value = JSON.parse(JSON.stringify(row))
+ reportForm.value.editeTime = new Date().toLocaleString()
+ }
+ const deleteRow = (index)=>{
+ tableData.splice( index,1)
+ }
+ const dialogColse = () =>{
+ reportForm.value = {
+ type: '',
+ founder: '',
+ createTime: '',
+ editor: '',
+ editeTime: ''
+ }
+ rowIndex.value = -1
}
// 折线图
const renderMenu = async (value: string) => {
@@ -124,6 +169,11 @@
tableData,
dialogAddForm,
reportForm,
+ ruleFormRef,
+ addRules,
+ dialogColse,
+ editeRow,
+ deleteRow,
addReport,
onSubmitAddForm,
...toRefs(state),
@@ -135,8 +185,15 @@
<style scoped lang="scss">
$homeNavLengh: 8;
.home-container {
+ height: 100%;
overflow: hidden;
- padding: 80px;
+ padding: 20px;
+ .homeCard{
+ width: 100%;
+ padding: 20px;
+ background: #fff;
+ border-radius: 4px;
+ }
.el-row{
margin-bottom: 20px;
}
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue b/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
index 9bde059..09e11a7 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
+++ b/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
@@ -1,6 +1,8 @@
<template>
<div class="home-container">
- <el-form :model="form" label-width="120px">
+ <el-scrollbar height="100%">
+ <div class="homeCard">
+ <el-form :model="form" label-width="150px">
<el-row>
<el-col :span="8">
<el-form-item label="申请部门">
@@ -12,10 +14,15 @@
</el-col>
<el-col :span="8">
<el-form-item label="申请人">
- <el-select v-model="form.applyName" placeholder="请选择">
- <el-option label="胡海涛" value="胡海涛" />
- <el-option label="其他人" value="其他人" />
- </el-select>
+ <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>
@@ -48,11 +55,332 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="8">
- <el-button type="primary" size="default">添加作业人</el-button>
+ <el-col :span="3"><el-button type="primary" size="default" @click="dialogAddWorker = true">添加作业人</el-button></el-col>
+ <el-col :span="21">
+ <el-table :data="form.workerList" style="width: 100%">
+ <el-table-column type="index" label="序号" width="100"/>
+ <el-table-column prop="worker" label="作业人"/>
+ <el-table-column prop="role" label="作业人角色" width="180" />
+ <el-table-column prop="unit" label="所属单位" width="180" />
+ <el-table-column prop="certificate" label="证书名称" width="180" />
+ <el-table-column prop="certificateId" label="证书号" />
+ <el-table-column fixed="right" label="操作">
+ <template #default="scope">
+ <el-button link type="danger" size="small" @click="deleteRow(scope.$index)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="作业地点">
+ <el-input
+ v-model="form.workLocation"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="作业期限">
+ <el-date-picker
+ v-model="form.workTimeLine"
+ type="daterange"
+ unlink-panels
+ range-separator="至"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ :shortcuts="shortcuts"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="作业内容">
+ <el-input
+ v-model="form.workContent"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="作业单位">
+ <el-input
+ v-model="form.workUnit"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>选择作业单位</template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="作业负责人">
+ <el-input
+ v-model="form.responser"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="监护人">
+ <el-input
+ v-model="form.monitor"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="监护人岗位">
+ <el-input
+ v-model="form.monitorStation"
+ 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="12">
+ <el-form-item label="生产车间负责人">
+ <el-input
+ v-model="form.workhouseLeader"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="申请日期">
+ <el-date-picker
+ size="large"
+ v-model="form.applyDate"
+ type="date"
+ placeholder="请选择"
+ style="width: 100%"
+ ></el-date-picker>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-divider />
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="涉及的其他特殊作业">
+ <el-checkbox-group v-model="form.otherSpecialWorks">
+ <el-checkbox label="动火作业" />
+ <el-checkbox label="受限空间" />
+ <el-checkbox label="高处作业" />
+ <el-checkbox label="吊装作业" />
+ <el-checkbox label="临时用电" />
+ <el-checkbox label="设备检修" />
+ <el-checkbox label="盲板抽堵" />
+ <el-checkbox label="断路作业" />
+ <el-checkbox label="动土作业" />
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col>
+ <el-form-item label="防护用品">
+ <el-cascader
+ v-model="form.protections"
+ :options="protectOption"
+ :props="{expandTrigger: 'hover'}"
+ @change="protectionsChange"
+ placeholder="请选择"
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6"><el-button type="primary" size="default" @click="dialogAddFile = true">点击添加安全交底和风险告知书</el-button></el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="实施安全教育人">
+ <el-input
+ v-model="form.safetyMan"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="被教育人">
+ <el-input
+ v-model="form.educated"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-divider />
+ <el-row>
+ <el-col :span="24" class="submitBtn">
+ <el-button type="primary" size="large" plain>发起申请</el-button>
</el-col>
</el-row>
</el-form>
+ </div>
+ <el-dialog v-model="dialogAddWorker" title="添加作业人">
+ <el-form :model="addWorkerForm" label-width="120px">
+ <el-form-item label="作业人">
+ <el-input
+ v-model="addWorkerForm.worker"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ <el-form-item label="作业人角色">
+ <el-input
+ v-model="addWorkerForm.role"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ <el-form-item label="作业人角色">
+ <el-input
+ v-model="addWorkerForm.unit"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ <el-form-item label="证书名称">
+ <el-input
+ v-model="addWorkerForm.certificate"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ <el-form-item label="证书号">
+ <el-input
+ v-model="addWorkerForm.certificateId"
+ placeholder="请输入"
+ class="input-with-select"
+ >
+ <template #append>
+ <el-button :icon="Search" />
+ </template>
+ </el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="onSubmitAddForm" size="default">确认</el-button>
+ <el-button size="default" @click="cancleAdd">取消</el-button>
+ </el-form-item>
+ </el-form>
+ </el-dialog>
+ <el-dialog v-model="dialogAddFile" title="安全交底和风险告知">
+ <el-form :model="saftyFileForm" label-width="0" ref="ruleFormRef" :rules="saftyFileRules">
+ <el-form-item label="" prop="surrounding">
+ <div>1.作业许可范围及作业环境:</div>
+ <el-input
+ v-model="saftyFileForm.surrounding"
+ :rows="2"
+ type="textarea"
+ placeholder="请输入"
+ />
+ </el-form-item>
+ <el-form-item label="" prop="risk">
+ <div>2.作业风险:</div>
+ <el-input
+ v-model="saftyFileForm.risk"
+ :rows="2"
+ type="textarea"
+ placeholder="请输入"
+ />
+ </el-form-item>
+ <el-form-item label="" prop="protection">
+ <div>3.防范措施(工艺、设备、个体防护等):</div>
+ <el-input
+ v-model="saftyFileForm.protection"
+ :rows="2"
+ type="textarea"
+ placeholder="请输入"
+ />
+ </el-form-item>
+ <el-form-item label="" prop="emergency">
+ <div>4.应急措施:</div>
+ <el-input
+ v-model="saftyFileForm.emergency"
+ :rows="2"
+ type="textarea"
+ placeholder="请输入"
+ />
+ </el-form-item>
+ <el-form-item label="" prop="otherStuff">
+ <div>5.其他注意事项:</div>
+ <el-input
+ v-model="saftyFileForm.otherStuff"
+ :rows="2"
+ type="textarea"
+ placeholder="请输入"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="onSubmitAddFile(ruleFormRef)" size="default">确认</el-button>
+ <el-button size="default" @click="cancleAddFile">取消</el-button>
+ </el-form-item>
+ </el-form>
+ </el-dialog>
+ </el-scrollbar>
</div>
</template>
@@ -62,6 +390,8 @@
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {useUserInfo} from "/@/stores/userInfo";
import { Session } from '/@/utils/storage';
+ import { Search } from '@element-plus/icons-vue'
+ import type { FormInstance, FormRules } from 'element-plus'
let global: any = {
homeChartOne: null,
homeChartTwo: null,
@@ -88,11 +418,141 @@
applyName: '',
level: '',
riskIdentify: '',
- workWay: ''
+ workWay: '',
+ workerList: [],
+ workLocation: '',
+ workTimeLine: '',
+ workContent: '',
+ workUnit: '',
+ responser: '',
+ monitor: '',
+ workMonitor: '',
+ monitorStation: '',
+ workhouseLeader: '',
+ applyDate: '',
+ otherSpecialWorks: [],
+ protections: '',
+ saftyFile: {},
+ safetyMan: '',
+ educated: ''
})
+ const dialogAddWorker = ref(false)
+ const dialogAddFile = ref(false)
+ const addWorkerForm = ref({
+ worker: '',
+ role: '',
+ unit: '',
+ certificate: '',
+ certificateId: ''
+ })
+ const saftyFileForm = reactive({
+ surrounding: '',
+ risk: '',
+ protection: '',
+ emergency: '',
+ otherStuff: ''
+ })
+ const shortcuts = [
+ {
+ text: 'Last week',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ },
+ },
+ {
+ text: 'Last month',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ },
+ },
+ {
+ text: 'Last 3 months',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ },
+ },
+ ]
+ const protectOption = [
+ {
+ value: 'guide',
+ label: 'Guide',
+ children: [
+ {
+ value: 'disciplines',
+ label: 'Disciplines',
+ children: [
+ {
+ value: 'consistency',
+ label: 'Consistency',
+ },
+ {
+ value: 'feedback',
+ label: 'Feedback',
+ }
+ ],
+ },
+ {
+ value: 'navigation',
+ label: 'Navigation',
+ children: [
+ {
+ value: 'side nav',
+ label: 'Side Navigation',
+ }
+ ],
+ },
+ ],
+ }
+ ]
+ const ruleFormRef = ref<FormInstance>()
+ const saftyFileRules = reactive<FormRules>({
+ surrounding: [{required: true,message: '该选项不能为空'}],
+ risk: [{required: true,message: '该选项不能为空'}],
+ protection: [{required: true,message: '该选项不能为空'} ],
+ emergency: [{required: true,message: '该选项不能为空'} ]
+ })
+ const protectionsChange = (value) => {
+ console.log(value)
+ }
- const onSubmit = () => {
- console.log('submit!')
+ const onSubmitAddForm = () => {
+ form.workerList.push(addWorkerForm.value)
+ addWorkerForm.value = {
+ worker: '',
+ role: '',
+ unit: '',
+ certificate: '',
+ certificateId: ''
+ }
+ dialogAddWorker.value = false
+ }
+ const onSubmitAddFile = () =>{
+
+ }
+ const cancleAdd = ()=> {
+ addWorkerForm.value = {
+ worker: '',
+ role: '',
+ unit: '',
+ certificate: '',
+ certificateId: ''
+ }
+ dialogAddWorker.value = false
+ }
+ const cancleAddFile = ()=>{
+
+ }
+ const deleteRow = (index) =>{
+ form.workerList.splice( index,1)
}
// 折线图
const renderMenu = async (value: string) => {
@@ -103,7 +563,21 @@
return {
renderMenu,
form,
- onSubmit,
+ Search,
+ shortcuts,
+ protectOption,
+ dialogAddWorker,
+ dialogAddFile,
+ addWorkerForm,
+ saftyFileForm,
+ ruleFormRef,
+ saftyFileRules,
+ cancleAddFile,
+ deleteRow,
+ cancleAdd,
+ onSubmitAddForm,
+ onSubmitAddFile,
+ protectionsChange,
...toRefs(state),
};
},
@@ -111,10 +585,16 @@
</script>
<style scoped lang="scss">
- $homeNavLengh: 8;
.home-container {
+ height: 100%;
overflow: hidden;
- padding: 40px;
+ padding: 20px;
+ .homeCard{
+ width: 100%;
+ padding: 20px;
+ background: #fff;
+ border-radius: 4px;
+ }
.el-row{
margin-bottom: 20px;
}
@@ -122,9 +602,24 @@
margin-bottom: 0;
}
.el-col{
- display: flex;
align-items: center;
margin-bottom: 10px;
}
+ .el-input{
+ width: 100% !important;
+ }
+ .el-date-editor::v-deep{
+ width: 100%;
+ }
+ .el-select{
+ width: 100%;
+ }
+ .el-cascader{
+ width: 100% !important;
+ }
+ .submitBtn{
+ display: flex;
+ justify-content: center;
+ }
}
</style>
diff --git a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
index f8b7127..a5a527b 100644
--- a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
+++ b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
@@ -1,6 +1,8 @@
<template>
<div class="home-container">
+ <el-scrollbar height="100%">
<el-row>
+ <div class="homeCard">
<el-col :span="6">
<div class="grid-content topInfo">
<div>预约时间:</div>
@@ -31,12 +33,14 @@
</el-col>
<el-col :span="12" class="topBtns">
<div class="grid-content topInfo">
- <div style="margin-right: 20px"><el-button type="primary" plain size="default">查询历史</el-button></div>
- <div><el-button type="primary" @click="dialogChartsVisible = true" size="default">查看统计图表</el-button></div>
+ <div style="margin-right: 20px"><el-button type="primary" plain>查询历史</el-button></div>
+ <div><el-button type="primary" @click="dialogChartsVisible = true">查看统计图表</el-button></div>
</div>
</el-col>
+ </div>
</el-row>
<el-row>
+ <div class="homeCard">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="id" label="编号" width="180" />
<el-table-column prop="time" label="预约时间" width="180" />
@@ -55,6 +59,7 @@
</template>
</el-table-column>
</el-table>
+ </div>
</el-row>
<el-dialog v-model="dialogChartsVisible" title="统计图表">
<el-row>
@@ -65,7 +70,7 @@
v-model="dateRange"
type="daterange"
unlink-panels
- range-separator="To"
+ range-separator="至"
start-placeholder="Start date"
end-placeholder="End date"
:shortcuts="shortcuts"
@@ -89,6 +94,7 @@
</el-row>
<div ref="myChart" style="width: 100%;height:400px;"></div>
</el-dialog>
+ </el-scrollbar>
</div>
</template>
@@ -427,19 +433,24 @@
<style scoped lang="scss">
$homeNavLengh: 8;
.home-container {
+ height: 100%;
overflow: hidden;
- padding: 20px 40px;
+ padding: 20px;
.el-row{
margin-bottom: 20px;
}
.el-row:last-child {
margin-bottom: 0;
}
- .el-col{
+ .homeCard{
+ width: 100%;
display: flex;
align-items: center;
- margin: 40px 0;
+ padding: 20px;
+ background: #fff;
+ border-radius: 4px;
}
+
.grid-content{
display: flex;
align-items: center;
diff --git a/src/views/specialWorkSystem/workPlan/workReservation/index.vue b/src/views/specialWorkSystem/workPlan/workReservation/index.vue
index 52d567c..2378d4c 100644
--- a/src/views/specialWorkSystem/workPlan/workReservation/index.vue
+++ b/src/views/specialWorkSystem/workPlan/workReservation/index.vue
@@ -1,6 +1,8 @@
<template>
<div class="home-container">
+ <el-scrollbar height="100%">
<el-row>
+ <div class="homeCard">
<el-col :span="6">
<div class="grid-content topInfo">
<div>当前所属部门:</div>
@@ -41,8 +43,10 @@
<div><el-button type="success" @click="dialogFormVisible = true">新增预约</el-button></div>
</div>
</el-col>
+ </div>
</el-row>
<el-row>
+ <div class="homeCard">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="id" label="编号" width="120" />
<el-table-column prop="time" label="预约时间" width="150" />
@@ -61,6 +65,7 @@
</template>
</el-table-column>
</el-table>
+ </div>
</el-row>
<el-dialog v-model="dialogFormVisible" title="新增预约">
<el-form :model="reservationForm">
@@ -92,6 +97,7 @@
</span>
</template>
</el-dialog>
+ </el-scrollbar>
</div>
</template>
@@ -219,18 +225,22 @@
<style scoped lang="scss">
$homeNavLengh: 8;
.home-container {
+ height: 100%;
overflow: hidden;
- padding: 20px 40px;
+ padding: 20px;
.el-row{
margin-bottom: 20px;
}
- .el-row:last-child {
+ .el-row:last-of-type {
margin-bottom: 0;
}
- .el-col{
+ .homeCard{
+ width: 100%;
display: flex;
align-items: center;
- margin: 40px 0 20px;
+ padding: 20px;
+ background: #fff;
+ border-radius: 4px;
}
.grid-content{
align-items: center;
--
Gitblit v1.9.2