From b5069cc8ebdb8bc51f1b45f0c49a7e385490a32a Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期一, 04 七月 2022 11:17:28 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt
---
src/assets/loginPage/login-bg.jpg | 0
src/views/layoutPage/index.vue | 182 ++++++
src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue | 289 ++++++++++
src/views/specialWorkSystem/workApplyManagement/workApply/index.vue | 130 ++++
src/assets/loginPage/login-bg.png | 0
src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue | 241 ++++---
src/main.ts | 5
src/views/specialWorkSystem/workPlan/workReservation/index.vue | 43
/dev/null | 182 ------
src/views/loginPage/loginPage.vue | 5
src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue | 147 +++++
src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue | 148 +++++
src/assets/menu/bg_home1.jpg | 0
package.json | 2
src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue | 246 ++++++++
src/views/homeMenu/homeMenu.vue | 34
16 files changed, 1,324 insertions(+), 330 deletions(-)
diff --git a/package.json b/package.json
index 56ddfa6..a092f0e 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/"
},
"dependencies": {
- "@element-plus/icons-vue": "^2.0.3",
+ "@element-plus/icons-vue": "^2.0.6",
"@wangeditor/editor": "^5.1.1",
"axios": "^0.27.2",
"countup.js": "^2.2.0",
diff --git a/src/assets/loginPage/login-bg.jpg b/src/assets/loginPage/login-bg.jpg
new file mode 100644
index 0000000..6427cb6
--- /dev/null
+++ b/src/assets/loginPage/login-bg.jpg
Binary files differ
diff --git a/src/assets/loginPage/login-bg.png b/src/assets/loginPage/login-bg.png
new file mode 100644
index 0000000..71fd539
--- /dev/null
+++ b/src/assets/loginPage/login-bg.png
Binary files differ
diff --git a/src/assets/menu/bg_home1.jpg b/src/assets/menu/bg_home1.jpg
new file mode 100644
index 0000000..b4389fb
--- /dev/null
+++ b/src/assets/menu/bg_home1.jpg
Binary files differ
diff --git a/src/main.ts b/src/main.ts
index acd3d24..b5bd532 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -7,13 +7,16 @@
import other from '/@/utils/other';
import ElementPlus from 'element-plus';
+import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import 'element-plus/dist/index.css';
import '/@/theme/index.scss';
import mitt from 'mitt';
import VueGridLayout from 'vue-grid-layout';
const app = createApp(App);
-
+for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+ app.component(key, component)
+}
directive(app);
other.elSvg(app);
diff --git a/src/views/homeMenu/homeMenu.vue b/src/views/homeMenu/homeMenu.vue
index 79c6862..1b8ad74 100644
--- a/src/views/homeMenu/homeMenu.vue
+++ b/src/views/homeMenu/homeMenu.vue
@@ -3,9 +3,9 @@
<div class="topPanel">
<div class="topPanelCont">
<div class="topTit">
- <div>新疆国泰新华安</div>
+ <div>新疆国泰新华</div>
<span></span>
- <div>全风险预警监测系统</div>
+ <div>安全风险预警监测系统</div>
</div>
<div class="userInfo">
<div class="avator">
@@ -20,7 +20,7 @@
<div class="menuGrid">
<div class="gridCont">
- <el-row :gutter="16">
+ <el-row :gutter="20">
<el-col :span="6"><div class="grid-content" @click="renderMenu('2')"><div class="itemTit">双重预防系统</div><img class="iconImg" src="../../assets/menu/icon4.png"><img class="bgImg" src="../../assets/menu/card4.png"></div></el-col>
<el-col :span="6"><div class="grid-content" @click="renderMenu('3')"><div class="itemTit">特殊作业系统</div><img class="iconImg" src="../../assets/menu/icon7.png"><img class="bgImg" src="../../assets/menu/card7.png"></div></el-col>
<el-col :span="6"><div class="grid-content" @click="renderMenu('4')"><div class="itemTit">智能巡检系统</div><img class="iconImg" src="../../assets/menu/icon8.png"><img class="bgImg" src="../../assets/menu/card8.png"></div></el-col>
@@ -34,13 +34,13 @@
</div>
</el-col>
</el-row>
- <el-row :gutter="16">
+ <el-row :gutter="20">
<el-col :span="6"><div class="grid-content grid-content-2" @click="renderMenu('6')"><div class="itemTit">应急管理系统</div><img class="iconImg" src="../../assets/menu/icon5.png"><img class="bgImg" src="../../assets/menu/card5.png"></div></el-col>
<el-col :span="6"><div class="grid-content grid-content-2" @click="renderMenu('7')"><div class="itemTit">目标责任管理系统</div><img class="iconImg" src="../../assets/menu/icon2.png"><img class="bgImg" src="../../assets/menu/card2.png"></div></el-col>
<el-col :span="6"><div class="grid-content grid-content-2" @click="renderMenu('8')"><div class="itemTit">事故管理系统</div><img class="iconImg" src="../../assets/menu/icon6.png"><img class="bgImg" src="../../assets/menu/card6.png"></div></el-col>
<el-col :span="6"><div class="grid-content grid-content-2" @click="renderMenu('9')"><div class="itemTit">设备综合管控系统</div><img class="iconImg" src="../../assets/menu/icon9.png"><img class="bgImg" src="../../assets/menu/card9.png"></div></el-col>
</el-row>
- <el-row :gutter="16">
+ <el-row :gutter="20">
<el-col :span="6"><div class="grid-content grid-content-3" @click="renderMenu('10')"><div class="itemTit">安全知识图谱系统</div><img class="iconImg" src="../../assets/menu/icon3.png"><img class="bgImg" src="../../assets/menu/card3.png"></div></el-col>
<el-col :span="9"><div class="grid-content grid-content-3" @click="renderMenu('11')"><div class="itemTit">危险化学品全生命周期安全<br>管理系统</div><img class="iconImg" src="../../assets/menu/icon10.png"><img class="bgImg" src="../../assets/menu/card10.png"></div></el-col>
<el-col :span="9"><div class="grid-content grid-content-3" @click="renderMenu('1')"><div class="itemTit">基础数据权限管理系统</div><img class="iconImg" src="../../assets/menu/icon11.png"><img class="bgImg" src="../../assets/menu/card11.png"></div></el-col>
@@ -94,11 +94,11 @@
Session.set('projectId',value)
userInfos.value.projectId = value
await initBackEndControlRoutes();
- router.push('./')
+ router.push('/layoutPage')
};
//点击进入特殊作业
const toSpecialWorkSys = () => {
- router.push('/workReservation');
+ router.push('/layoutPage');
};
// 页面加载时
onMounted(() => {
@@ -123,7 +123,7 @@
width: 100%;
height: 100%;
position: relative;
- background: url("../../assets/menu/bg_home.jpg") no-repeat center;
+ background: url("../../assets/menu/bg_home1.jpg") no-repeat center;
.topPanel{
position: absolute;
width: 100%;
@@ -218,7 +218,7 @@
.gridCont{
width: 1200px;
.el-row {
- margin-bottom: 16px;
+ margin-bottom: 20px;
}
.el-row:last-child {
margin-bottom: 0;
@@ -228,11 +228,11 @@
}
.grid-content {
- border-radius: 8px;
+ border-radius: 10px;
height: 234px;
padding: 32px;
position: relative;
- background-image: linear-gradient(135deg,#00C0F5,#147AEA);
+ background-image: linear-gradient(135deg,#00C0F5,#44b1ff);
overflow: hidden;
cursor: pointer;
transition: .3s;
@@ -263,13 +263,13 @@
}
}
- .grid-content-2{
- background-image: linear-gradient(135deg,#0098F5,#1461EA);
- }
+ /*.grid-content-2{*/
+ /* background-image: linear-gradient(135deg,#0098F5,#1461EA);*/
+ /*}*/
- .grid-content-3{
- background-image: linear-gradient(135deg,#006DF5,#1450EA);
- }
+ /*.grid-content-3{*/
+ /* background-image: linear-gradient(135deg,#006DF5,#1450EA);*/
+ /*}*/
}
}
diff --git a/src/views/layoutPage/index.vue b/src/views/layoutPage/index.vue
new file mode 100644
index 0000000..fc2ab10
--- /dev/null
+++ b/src/views/layoutPage/index.vue
@@ -0,0 +1,182 @@
+<template>
+ <div class="home-container">
+ <el-row :gutter="15" class="home-card-one mb15">
+ <el-col
+ :xs="24"
+ :sm="12"
+ :md="12"
+ :lg="4"
+ :xl="4"
+ v-for="(v, k) in homeOne"
+ :key="k"
+ :class="{ 'home-media home-media-lg': k > 1, 'home-media-sm': k === 1 }"
+ >
+ <div class="home-card-item flex" >
+ <el-button @click="renderMenu(v.id)">{{v.name}}</el-button>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row :gutter="15" class="home-card-two mb15">
+ <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16">
+ <div class="home-card-item">
+ <div style="height: 100%">
+ <el-button @click="renderMenu('6')">{{'应急管理系统'}}</el-button>
+ </div>
+ </div>
+ </el-col>
+ <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8" class="home-media">
+ <div class="home-card-item">
+ <div style="height: 100%">
+ <el-button @click="renderMenu('7')">{{'目标责任管理系统'}}</el-button>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row :gutter="15" class="home-card-three">
+ <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8">
+ <div class="home-card-item">
+ <el-button @click="renderMenu('8')">{{'事故管理系统'}}</el-button>
+ </div>
+ </el-col>
+ <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16" class="home-media">
+ <div class="home-card-item">
+ <div style="height: 100%">
+ <el-button @click="renderMenu('9')">{{'设备综合管控系统'}}</el-button>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+</template>
+
+<script lang="ts">
+import { toRefs, reactive, defineComponent, } from 'vue';
+import { storeToRefs } from 'pinia';
+import { initBackEndControlRoutes } from '/@/router/backEnd';
+import {useUserInfo} from "/@/stores/userInfo";
+import { Session } from '/@/utils/storage';
+let global: any = {
+ homeChartOne: null,
+ homeChartTwo: null,
+ homeCharThree: null,
+ dispose: [null, '', undefined],
+};
+
+interface stateType {
+ homeOne: Array <type>
+}
+interface type {
+ id:number,
+ name: string
+}
+export default defineComponent({
+ name: 'layoutPage',
+ setup() {
+ const userInfo = useUserInfo()
+ const { userInfos } = storeToRefs(userInfo);
+ const state = reactive<stateType>({
+ homeOne:[{id:1,name:'基础数据权限管理系统'},{id:2,name:'双重预防系统'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}],
+ });
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ ...toRefs(state),
+ };
+ },
+});
+</script>
+
+<style scoped lang="scss">
+$homeNavLengh: 8;
+.home-container {
+ overflow: hidden;
+ .home-card-one,
+ .home-card-two,
+ .home-card-three {
+ .home-card-item {
+ width: 100%;
+ height: 130px;
+ border-radius: 4px;
+ transition: all ease 0.3s;
+ padding: 20px;
+ overflow: hidden;
+ background: var(--el-color-white);
+ color: var(--el-text-color-primary);
+ border: 1px solid var(--next-border-color-light);
+ &:hover {
+ box-shadow: 0 2px 12px var(--next-color-dark-hover);
+ transition: all ease 0.3s;
+ }
+ &-icon {
+ width: 70px;
+ height: 70px;
+ border-radius: 100%;
+ flex-shrink: 1;
+ i {
+ color: var(--el-text-color-placeholder);
+ }
+ }
+ &-title {
+ font-size: 15px;
+ font-weight: bold;
+ height: 30px;
+ }
+ }
+ }
+ .home-card-one {
+ @for $i from 0 through 3 {
+ .home-one-animation#{$i} {
+ opacity: 0;
+ animation-name: error-num;
+ animation-duration: 0.5s;
+ animation-fill-mode: forwards;
+ animation-delay: calc($i/10) + s;
+ }
+ }
+ }
+ .home-card-two,
+ .home-card-three {
+ .home-card-item {
+ height: 400px;
+ width: 100%;
+ overflow: hidden;
+ .home-monitor {
+ height: 100%;
+ .flex-warp-item {
+ width: 25%;
+ height: 111px;
+ display: flex;
+ .flex-warp-item-box {
+ margin: auto;
+ text-align: center;
+ color: var(--el-text-color-primary);
+ display: flex;
+ border-radius: 5px;
+ background: var(--next-bg-color);
+ cursor: pointer;
+ transition: all 0.3s ease;
+ &:hover {
+ background: var(--el-color-primary-light-9);
+ transition: all 0.3s ease;
+ }
+ }
+ @for $i from 0 through $homeNavLengh {
+ .home-animation#{$i} {
+ opacity: 0;
+ animation-name: error-num;
+ animation-duration: 0.5s;
+ animation-fill-mode: forwards;
+ animation-delay: calc($i/10) + s;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+</style>
diff --git a/src/views/loginPage/loginPage.vue b/src/views/loginPage/loginPage.vue
index 66c68bc..5346db8 100644
--- a/src/views/loginPage/loginPage.vue
+++ b/src/views/loginPage/loginPage.vue
@@ -82,7 +82,8 @@
display: flex;
align-items: center;
justify-content: center;
- background-image: radial-gradient(at center, #0075c3, #000b61);
+ background: url("../../assets/loginPage/login-bg.jpg") no-repeat center;
+ /*background-image: radial-gradient(at center, #0075c3, #000b61);*/
canvas {
display: block;
@@ -113,7 +114,7 @@
.loginContL{
font-size: 48px;
font-weight: bold;
- padding-top: 20px;
+ padding-top: 80px;
margin-right: 30px;
.apTitleT{
diff --git a/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue b/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
new file mode 100644
index 0000000..1d7dbe0
--- /dev/null
+++ b/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
@@ -0,0 +1,148 @@
+<template>
+ <div class="home-container">
+ <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 prop="createTime" label="创建时间" width="180" />
+ <el-table-column prop="editor" label="最新编辑人" width="180" />
+ <el-table-column prop="editorTime" 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>
+ </el-table-column>
+ </el-table>
+ </el-row>
+ <el-dialog v-model="dialogAddForm" title="新建审批环节">
+ <el-form :model="reportForm" label-width="120px">
+ <el-form-item label="环节名称">
+ <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-select v-model="reportForm.type" placeholder="选择审核类型">
+ <el-option label="上报审批意见" value="上报审批意见" />
+ <el-option label="上报气体检测数据" value="上报气体检测数据" />
+ <el-option label="上报安全措施确认" value="上报安全措施确认" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="最新编辑人">
+ <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-form-item>
+ </el-form>
+ </el-dialog>
+ </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 { ElMessage } 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: 'reportTypeSetting',
+ setup() {
+ const userInfo = useUserInfo()
+ const { userInfos } = storeToRefs(userInfo);
+ const state = reactive<stateType>({});
+ const tableData = [
+ {
+ id: '0',
+ step: '作业负责人审批',
+ type: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ },
+ {
+ id: '1',
+ step: '作业负责人审批',
+ type: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ },
+ {
+ id: '2',
+ step: '作业负责人审批',
+ type: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ }
+ ];
+ const dialogAddForm = ref(false);
+ const reportForm = reactive({
+ id: '',
+ step: '',
+ type: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ })
+ const addApprove = ()=>{
+ dialogAddForm.value = true
+ };
+ const onSubmitAddForm = () => {
+ console.log('submit!')
+ }
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ tableData,
+ dialogAddForm,
+ reportForm,
+ addApprove,
+ onSubmitAddForm,
+ ...toRefs(state),
+ };
+ },
+ });
+</script>
+
+<style scoped lang="scss">
+ $homeNavLengh: 8;
+ .home-container {
+ overflow: hidden;
+ padding: 80px;
+ .el-row{
+ margin-bottom: 20px;
+ }
+ .el-row:last-child {
+ margin-bottom: 0;
+ }
+ }
+</style>
diff --git a/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue b/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue
new file mode 100644
index 0000000..b93d5f4
--- /dev/null
+++ b/src/views/specialWorkSystem/approvalProcess/approveProcessManagement/index.vue
@@ -0,0 +1,289 @@
+<template>
+ <div class="home-container">
+ <el-row>
+ <el-col :span="12">
+ <div class="grid-content topInfo">
+ <div>流程名称</div>
+ <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="mainPages">
+ <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="tableData"
+ style="width: 100%"
+ :header-cell-style="{background: '#fafafa'}"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55" />
+ <el-table-column property="name" label="流程名称" width="200" />
+ <el-table-column property="flowKey" label="流程key" width="180" />
+ <el-table-column property="sort" label="分类"/>
+ <el-table-column label="版本" width="180">
+ <template #default="scope">
+ <el-tag>{{ scope.row.version }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column label="流程状态" width="180">
+ <template #default="scope">
+ <el-tag type="success">{{ scope.row.status }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column property="updateTime" label="更新时间"/>
+ <el-table-column fixed="right" label="操作" width="180">
+ <template #default>
+ <el-button link type="primary" size="small">修改</el-button>
+ <el-button link type="success" size="small">发布</el-button>
+ <el-button link type="danger" size="small">删除</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>
+ </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'
+ 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: 'reportTypeSetting',
+ 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[] = [
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ },
+ {
+ name: '风险点复评预警',
+ flowKey: 'process111',
+ sort: '未设置',
+ version: 'V:4',
+ status: '已发布',
+ updateTime: '2021-04-22 15:21:31'
+ }
+ ]
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ multipleTableRef,
+ tableData,
+ currentPage,
+ pageSize,
+ handleSizeChange,
+ handleCurrentChange,
+ Plus,
+ Delete,
+ handleSelectionChange,
+ Refresh,
+ ...toRefs(state),
+ };
+ },
+ });
+</script>
+
+<style scoped lang="scss">
+ $homeNavLengh: 8;
+ .home-container {
+ overflow: hidden;
+ padding: 20px 40px;
+ .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;
+ 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%;
+ padding: 20px;
+ background: #fff;
+ .cardTop{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .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/approveProcessSetting/index.vue b/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
new file mode 100644
index 0000000..5d7eae9
--- /dev/null
+++ b/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
@@ -0,0 +1,246 @@
+<template>
+ <div class="home-container">
+ <div v-for="(item,index) in approveSteps" class="stepItem">
+ <div class="stepNum">{{index+1}}</div>
+ <div class="stepCard">
+ <el-card class="box-card" shadow="hover">
+ <template #header>
+ <div class="card-header">
+ <div>步骤<span>{{index+1}}</span></div>
+ <div>
+ <el-button type="primary" size="default" @click="addFlow(index)">新增</el-button>
+ <el-button type="danger" size="default" @click="deleteFlow(index)">删除</el-button>
+ </div>
+ </div>
+ </template>
+ <div class="text item">审批部门:<span>{{item.department}}</span></div>
+ <div class="text item">审批人员:<span>{{item.manager}}</span></div>
+ <div class="text item">其他参数:<span>{{item.others}}</span></div>
+ </el-card>
+ </div>
+ </div>
+ <el-row>
+ <el-button type="primary" @click="confirmEdit" size="default">确认</el-button>
+ <el-button @click="cancelEdit" size="default">取消</el-button>
+ </el-row>
+ <el-drawer v-model="showAdd" direction="rtl">
+ <template #title>
+ <h4>新增审批流</h4>
+ </template>
+ <template #default>
+ <el-form :model="addProgress" label-width="120px">
+ <el-form-item label="审批部门">
+ <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-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-input v-model="addProgress.others" />
+ </el-form-item>
+ </el-form>
+ </template>
+ <template #footer>
+ <div style="flex: auto">
+ <el-button type="primary" @click="confirmClick(ruleFormRef)" size="default">确认</el-button>
+ <el-button @click="cancelClick" size="default">取消</el-button>
+ </div>
+ </template>
+ </el-drawer>
+ <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">
+ 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 { ElMessage } 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: 'approveProcessSetting',
+ setup() {
+ const userInfo = useUserInfo()
+ const { userInfos } = storeToRefs(userInfo);
+ const approveSteps = [
+ {
+ department: '动土',
+ manager: '',
+ others: ''
+ },
+ {
+ department: '动土',
+ manager: '',
+ others: ''
+ },
+ {
+ department: '动土',
+ manager: '',
+ others: ''
+ }
+ ];
+ const showAdd = ref(false)
+ const deleteDialog = ref(false)
+ const chosenIndex = ref('')
+ const addProgress = ref({
+ department: '',
+ manager: '',
+ others: ''
+ })
+ const confirmClick = () => {
+ approveSteps.splice(chosenIndex.value+1,0,addProgress.value)
+ addProgress.value = {
+ department: '',
+ manager: '',
+ others: ''
+ }
+ showAdd.value = false
+ }
+ const addFlow = (index) => {
+ showAdd.value = true
+ chosenIndex.value = index
+ }
+ const deleteFlow = (index) => {
+ if(approveSteps.length>1){
+ deleteDialog.value = true
+ chosenIndex.value = index
+ }else{
+ ElMessage({
+ message: '抱歉最后一条无法删除',
+ type: 'warning',
+ })
+ }
+ }
+ const conFirmDelete = () => {
+ const i = chosenIndex.value
+ approveSteps.splice( i,1)
+ deleteDialog.value = false
+ }
+ const cancelEdit = () => {
+
+ }
+ const confirmEdit = () =>{
+
+ }
+ const state = reactive<stateType>({});
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ showAdd,
+ approveSteps,
+ addProgress,
+ chosenIndex,
+ deleteDialog,
+ conFirmDelete,
+ deleteFlow,
+ addFlow,
+ confirmClick,
+ cancelEdit,
+ confirmEdit,
+ ...toRefs(state),
+ };
+ },
+ });
+</script>
+
+<style scoped lang="scss">
+ $homeNavLengh: 8;
+ .home-container {
+ overflow: hidden;
+ padding: 80px;
+ .stepItem{
+ display: flex;
+ align-items: flex-start;
+ margin-bottom: 30px;
+ padding-bottom: 30px;
+ border-left: 2px solid #ccc;
+ &:last-of-type{
+ margin-bottom: 0;
+ border-left: none;
+ }
+ .stepNum {
+ width: 30px;
+ height: 30px;
+ border-radius: 15px;
+ box-sizing: border-box;
+ color: #333;
+ border: 2px solid #999;
+ line-height: 26px;
+ text-align: center;
+ margin-right: 40px;
+ margin-left: -16px;
+ margin-top: -30px;
+ }
+ .stepCard {
+ margin-top: -30px;
+
+ .box-card {
+ width: 480px;
+
+ .card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ span{
+ font-weight: bold;
+ margin-left: 10px;
+ }
+ }
+
+ .text {
+ font-size: 14px;
+ }
+
+ .item {
+ margin-bottom: 18px;
+ }
+ }
+ }
+ &:hover .card-header{
+ color: #0098F5;
+ }
+ &:hover .stepNum{
+ border: 2px solid #0098F5;
+ color: #0098F5;
+ }
+ }
+
+ .el-form{
+ padding: 40px 20px;
+ }
+ }
+</style>
diff --git a/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue b/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue
new file mode 100644
index 0000000..5ab484f
--- /dev/null
+++ b/src/views/specialWorkSystem/approvalProcess/reportTypeSetting/index.vue
@@ -0,0 +1,147 @@
+<template>
+ <div class="home-container">
+ <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 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 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>
+ </el-table-column>
+ </el-table>
+ </el-row>
+ <el-dialog v-model="dialogAddForm" title="新建上报类型">
+ <el-form :model="reportForm" label-width="120px">
+ <el-form-item label="上报数据类型">
+ <el-select v-model="reportForm.type" placeholder="选择上报数据类型">
+ <el-option label="上报审批意见" value="上报审批意见" />
+ <el-option label="上报气体监测数据" value="上报气体监测数据" />
+ <el-option label="上报安全措施确认" value="上报安全措施确认" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="创建人">
+ <el-select v-model="reportForm.founder" placeholder="选择创建人">
+ <el-option label="创建人1" value="创建人1" />
+ <el-option label="创建人2" value="创建人2" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="最新编辑人">
+ <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-form-item>
+ </el-form>
+ </el-dialog>
+ </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 { ElMessage } 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: 'reportTypeSetting',
+ setup() {
+ const userInfo = useUserInfo()
+ const { userInfos } = storeToRefs(userInfo);
+ const state = reactive<stateType>({});
+ const tableData = [
+ {
+ id: '0',
+ type: '上报审批意见',
+ founder: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ },
+ {
+ id: '1',
+ type: '上报气体检测数据',
+ founder: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ },
+ {
+ id: '2',
+ type: '上报安全措施确认',
+ founder: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ }
+ ];
+ const dialogAddForm = ref(false);
+ const reportForm = reactive({
+ id: '',
+ type: '',
+ founder: '',
+ createTime: '',
+ editor: '',
+ editorTime: ''
+ })
+ const addReport = ()=>{
+ dialogAddForm.value = true
+ };
+ const onSubmitAddForm = () => {
+ console.log('submit!')
+ }
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ tableData,
+ dialogAddForm,
+ reportForm,
+ addReport,
+ onSubmitAddForm,
+ ...toRefs(state),
+ };
+ },
+ });
+</script>
+
+<style scoped lang="scss">
+ $homeNavLengh: 8;
+ .home-container {
+ overflow: hidden;
+ padding: 80px;
+ .el-row{
+ margin-bottom: 20px;
+ }
+ .el-row:last-child {
+ margin-bottom: 0;
+ }
+ }
+</style>
diff --git a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue b/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
new file mode 100644
index 0000000..9bde059
--- /dev/null
+++ b/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
@@ -0,0 +1,130 @@
+<template>
+ <div class="home-container">
+ <el-form :model="form" label-width="120px">
+ <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-select v-model="form.applyName" 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.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>
+ <el-row>
+ <el-col :span="8">
+ <el-button type="primary" size="default">添加作业人</el-button>
+ </el-col>
+ </el-row>
+ </el-form>
+ </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';
+ let global: any = {
+ homeChartOne: null,
+ homeChartTwo: null,
+ homeCharThree: null,
+ dispose: [null, '', undefined],
+ };
+
+ interface stateType {
+ homeOne: Array <type>
+ }
+ interface type {
+
+ }
+ export default defineComponent({
+ name: 'workApply',
+ setup() {
+ const userInfo = useUserInfo()
+ const { userInfos } = storeToRefs(userInfo);
+ const state = reactive<stateType>({
+ 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: ''
+ })
+
+ const onSubmit = () => {
+ console.log('submit!')
+ }
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ form,
+ onSubmit,
+ ...toRefs(state),
+ };
+ },
+ });
+</script>
+
+<style scoped lang="scss">
+ $homeNavLengh: 8;
+ .home-container {
+ overflow: hidden;
+ padding: 40px;
+ .el-row{
+ margin-bottom: 20px;
+ }
+ .el-row:last-child {
+ margin-bottom: 0;
+ }
+ .el-col{
+ display: flex;
+ align-items: center;
+ margin-bottom: 10px;
+ }
+ }
+</style>
diff --git a/src/views/specialWorkSystem/workPlan/departAppointStatistics/index.vue b/src/views/specialWorkSystem/workPlan/departAppointStatistics/index.vue
deleted file mode 100644
index 8afa077..0000000
--- a/src/views/specialWorkSystem/workPlan/departAppointStatistics/index.vue
+++ /dev/null
@@ -1,182 +0,0 @@
-<template>
- <div class="home-container">
- <el-row :gutter="15" class="home-card-one mb15">
- <el-col
- :xs="24"
- :sm="12"
- :md="12"
- :lg="4"
- :xl="4"
- v-for="(v, k) in homeOne"
- :key="k"
- :class="{ 'home-media home-media-lg': k > 1, 'home-media-sm': k === 1 }"
- >
- <div class="home-card-item flex" >
- <el-button @click="renderMenu(v.id)">{{v.name}}</el-button>
- </div>
- </el-col>
- </el-row>
- <el-row :gutter="15" class="home-card-two mb15">
- <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16">
- <div class="home-card-item">
- <div style="height: 100%">
- <el-button @click="renderMenu('6')">{{'应急管理系统'}}</el-button>
- </div>
- </div>
- </el-col>
- <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8" class="home-media">
- <div class="home-card-item">
- <div style="height: 100%">
- <el-button @click="renderMenu('7')">{{'目标责任管理系统'}}</el-button>
- </div>
- </div>
- </el-col>
- </el-row>
- <el-row :gutter="15" class="home-card-three">
- <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8">
- <div class="home-card-item">
- <el-button @click="renderMenu('8')">{{'事故管理系统'}}</el-button>
- </div>
- </el-col>
- <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16" class="home-media">
- <div class="home-card-item">
- <div style="height: 100%">
- <el-button @click="renderMenu('9')">{{'设备综合管控系统'}}</el-button>
- </div>
- </div>
- </el-col>
- </el-row>
- </div>
-</template>
-
-<script lang="ts">
- import { toRefs, reactive, defineComponent, } from 'vue';
- import { storeToRefs } from 'pinia';
- import { initBackEndControlRoutes } from '/@/router/backEnd';
- import {useUserInfo} from "/@/stores/userInfo";
- import { Session } from '/@/utils/storage';
- let global: any = {
- homeChartOne: null,
- homeChartTwo: null,
- homeCharThree: null,
- dispose: [null, '', undefined],
- };
-
- interface stateType {
- homeOne: Array <type>
- }
- interface type {
- id:number,
- name: string
- }
- export default defineComponent({
- name: 'home',
- setup() {
- const userInfo = useUserInfo()
- const { userInfos } = storeToRefs(userInfo);
- const state = reactive<stateType>({
- homeOne:[{id:1,name:'基础数据权限管理系统'},{id:2,name:'双重预防系统'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}],
- });
- // 折线图
- const renderMenu = async (value: string) => {
- Session.set('projectId',value)
- userInfos.value.projectId = value
- await initBackEndControlRoutes();
- };
- return {
- renderMenu,
- ...toRefs(state),
- };
- },
- });
-</script>
-
-<style scoped lang="scss">
- $homeNavLengh: 8;
- .home-container {
- overflow: hidden;
- .home-card-one,
- .home-card-two,
- .home-card-three {
- .home-card-item {
- width: 100%;
- height: 130px;
- border-radius: 4px;
- transition: all ease 0.3s;
- padding: 20px;
- overflow: hidden;
- background: var(--el-color-white);
- color: var(--el-text-color-primary);
- border: 1px solid var(--next-border-color-light);
- &:hover {
- box-shadow: 0 2px 12px var(--next-color-dark-hover);
- transition: all ease 0.3s;
- }
- &-icon {
- width: 70px;
- height: 70px;
- border-radius: 100%;
- flex-shrink: 1;
- i {
- color: var(--el-text-color-placeholder);
- }
- }
- &-title {
- font-size: 15px;
- font-weight: bold;
- height: 30px;
- }
- }
- }
- .home-card-one {
- @for $i from 0 through 3 {
- .home-one-animation#{$i} {
- opacity: 0;
- animation-name: error-num;
- animation-duration: 0.5s;
- animation-fill-mode: forwards;
- animation-delay: calc($i/10) + s;
- }
- }
- }
- .home-card-two,
- .home-card-three {
- .home-card-item {
- height: 400px;
- width: 100%;
- overflow: hidden;
- .home-monitor {
- height: 100%;
- .flex-warp-item {
- width: 25%;
- height: 111px;
- display: flex;
- .flex-warp-item-box {
- margin: auto;
- text-align: center;
- color: var(--el-text-color-primary);
- display: flex;
- border-radius: 5px;
- background: var(--next-bg-color);
- cursor: pointer;
- transition: all 0.3s ease;
- &:hover {
- background: var(--el-color-primary-light-9);
- transition: all 0.3s ease;
- }
- }
- @for $i from 0 through $homeNavLengh {
- .home-animation#{$i} {
- opacity: 0;
- animation-name: error-num;
- animation-duration: 0.5s;
- animation-fill-mode: forwards;
- animation-delay: calc($i/10) + s;
- }
- }
- }
- }
- }
- }
- }
-</style>
diff --git a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
index 29eeb55..f8b7127 100644
--- a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
+++ b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
@@ -29,11 +29,10 @@
</div>
</div>
</el-col>
- <el-col :span="6"></el-col>
- <el-col :span="6">
+ <el-col :span="12" class="topBtns">
<div class="grid-content topInfo">
- <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 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>
</el-col>
</el-row>
@@ -50,14 +49,14 @@
<el-table-column prop="high" label="高处" />
<el-table-column prop="block" label="盲板抽堵" width="180" />
<el-table-column prop="tempUse" label="临时用电" width="180" />
- <el-table-column fixed label="操作">
+ <el-table-column fixed="right" label="操作">
<template #default>
<el-button link type="primary" size="small">操作</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
- <el-dialog v-model="dialogChartsVisible" title="Shipping address">
+ <el-dialog v-model="dialogChartsVisible" title="统计图表">
<el-row>
<div class="grid-content">
<div>日期查询:</div>
@@ -88,13 +87,13 @@
</div>
</div>
</el-row>
- <div id="main" style="width: 600px;height:400px;"></div>
+ <div ref="myChart" style="width: 100%;height:400px;"></div>
</el-dialog>
</div>
</template>
<script lang="ts">
- import { toRefs, reactive, defineComponent, ref } from 'vue';
+ import { toRefs, reactive, defineComponent, ref, onMounted } from 'vue';
import { storeToRefs } from 'pinia';
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {useUserInfo} from "/@/stores/userInfo";
@@ -103,6 +102,13 @@
import { TooltipComponent, TooltipComponentOption, GridComponent, GridComponentOption, LegendComponent, LegendComponentOption } from 'echarts/components';
import { BarChart, BarSeriesOption } from 'echarts/charts';
import { CanvasRenderer } from 'echarts/renderers';
+ echarts.use([
+ TooltipComponent,
+ GridComponent,
+ LegendComponent,
+ BarChart,
+ CanvasRenderer
+ ]);
let global: any = {
homeChartOne: null,
homeChartTwo: null,
@@ -286,112 +292,111 @@
const state = reactive<stateType>({
homeOne:[{id:1,name:'基础数据权限管理系统'},{id:2,name:'双重预防系统'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}],
});
+ const myChart = ref<HTMLElement>()
+ const myCharts = ref<any>()
+ setTimeout(()=>{
+ type EChartsOption = echarts.ComposeOption<
+ | TooltipComponentOption
+ | GridComponentOption
+ | LegendComponentOption
+ | BarSeriesOption
+ >;
+ myCharts.value = echarts.init(myChart.value!);
+ const option: EChartsOption = {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ // Use axis to trigger tooltip
+ type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+ }
+ },
+ legend: {},
+ grid: {
+ left: '3%',
+ right: '3%',
+ bottom: '3%',
+ containLabel: true
+ },
+ xAxis: {
+ type: 'value'
+ },
+ yAxis: {
+ type: 'category',
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+ },
+ series: [
+ {
+ name: 'Direct',
+ type: 'bar',
+ stack: 'total',
+ label: {
+ show: true
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ data: [320, 302, 301, 334, 390, 330, 320]
+ },
+ {
+ name: 'Mail Ad',
+ type: 'bar',
+ stack: 'total',
+ label: {
+ show: true
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ data: [120, 132, 101, 134, 90, 230, 210]
+ },
+ {
+ name: 'Affiliate Ad',
+ type: 'bar',
+ stack: 'total',
+ label: {
+ show: true
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ data: [220, 182, 191, 234, 290, 330, 310]
+ },
+ {
+ name: 'Video Ad',
+ type: 'bar',
+ stack: 'total',
+ label: {
+ show: true
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ data: [150, 212, 201, 154, 190, 330, 410]
+ },
+ {
+ name: 'Search Engine',
+ type: 'bar',
+ stack: 'total',
+ label: {
+ show: true
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ data: [820, 832, 901, 934, 1290, 1330, 1320]
+ }
+ ]
+ };
+ option && myCharts.value.setOption(option);
+ },2000)
// 分布图
- echarts.use([
- TooltipComponent,
- GridComponent,
- LegendComponent,
- BarChart,
- CanvasRenderer
- ]);
+ // onMounted(()=>{
+ // setTimeout(() => {
+ // drawChart()
+ // },1000)
+ // });
- type EChartsOption = echarts.ComposeOption<
- | TooltipComponentOption
- | GridComponentOption
- | LegendComponentOption
- | BarSeriesOption
- >;
-
- const chartDom = document.getElementById('main')!;
- const myChart = echarts.init(chartDom);
- const option: EChartsOption = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- // Use axis to trigger tooltip
- type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
- }
- },
- legend: {},
- grid: {
- left: '3%',
- right: '4%',
- bottom: '3%',
- containLabel: true
- },
- xAxis: {
- type: 'value'
- },
- yAxis: {
- type: 'category',
- data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
- },
- series: [
- {
- name: 'Direct',
- type: 'bar',
- stack: 'total',
- label: {
- show: true
- },
- emphasis: {
- focus: 'series'
- },
- data: [320, 302, 301, 334, 390, 330, 320]
- },
- {
- name: 'Mail Ad',
- type: 'bar',
- stack: 'total',
- label: {
- show: true
- },
- emphasis: {
- focus: 'series'
- },
- data: [120, 132, 101, 134, 90, 230, 210]
- },
- {
- name: 'Affiliate Ad',
- type: 'bar',
- stack: 'total',
- label: {
- show: true
- },
- emphasis: {
- focus: 'series'
- },
- data: [220, 182, 191, 234, 290, 330, 310]
- },
- {
- name: 'Video Ad',
- type: 'bar',
- stack: 'total',
- label: {
- show: true
- },
- emphasis: {
- focus: 'series'
- },
- data: [150, 212, 201, 154, 190, 330, 410]
- },
- {
- name: 'Search Engine',
- type: 'bar',
- stack: 'total',
- label: {
- show: true
- },
- emphasis: {
- focus: 'series'
- },
- data: [820, 832, 901, 934, 1290, 1330, 1320]
- }
- ]
- };
-
- option && myChart.setOption(option);
// 折线图
const renderMenu = async (value: string) => {
@@ -411,6 +416,7 @@
departmentName,
departmentOptions,
props,
+ myChart,
handleChange,
...toRefs(state),
};
@@ -423,12 +429,21 @@
.home-container {
overflow: hidden;
padding: 20px 40px;
+ .el-row{
+ margin-bottom: 20px;
+ }
+ .el-row:last-child {
+ margin-bottom: 0;
+ }
.el-col{
display: flex;
align-items: center;
+ margin: 40px 0;
}
.grid-content{
+ display: flex;
align-items: center;
+ min-height: 36px;
}
.topInfo{
@@ -450,6 +465,10 @@
flex: 1;
}
}
+ .topBtns{
+ display: flex;
+ justify-content: right;
+ }
.el-button--text {
margin-right: 15px;
}
diff --git a/src/views/specialWorkSystem/workPlan/workReservation/index.vue b/src/views/specialWorkSystem/workPlan/workReservation/index.vue
index 71d014f..52d567c 100644
--- a/src/views/specialWorkSystem/workPlan/workReservation/index.vue
+++ b/src/views/specialWorkSystem/workPlan/workReservation/index.vue
@@ -35,7 +35,7 @@
</div>
</div>
</el-col>
- <el-col :span="6">
+ <el-col :span="6" class="topBtns">
<div class="grid-content topInfo">
<div style="margin-right: 20px"><el-button type="primary" plain>查询历史</el-button></div>
<div><el-button type="success" @click="dialogFormVisible = true">新增预约</el-button></div>
@@ -44,25 +44,25 @@
</el-row>
<el-row>
<el-table :data="tableData" border style="width: 100%">
- <el-table-column prop="id" label="编号" width="180" />
- <el-table-column prop="time" label="预约时间" width="180" />
- <el-table-column prop="department" label="预约部门" />
- <el-table-column prop="dirtyWork" label="动土作业" width="180" />
- <el-table-column prop="fireWork" label="动火作业" width="180" />
- <el-table-column prop="hangWork" label="吊装作业" />
- <el-table-column prop="spaceWork" label="受限空间作业" width="180" />
- <el-table-column prop="cut" label="断路" width="180" />
+ <el-table-column prop="id" label="编号" width="120" />
+ <el-table-column prop="time" label="预约时间" width="150" />
+ <el-table-column prop="department" label="预约部门" width="180" />
+ <el-table-column prop="dirtyWork" label="动土作业" width="100" />
+ <el-table-column prop="fireWork" label="动火作业" width="100" />
+ <el-table-column prop="hangWork" label="吊装作业" width="100" />
+ <el-table-column prop="spaceWork" label="受限空间作业"/>
+ <el-table-column prop="cut" label="断路"/>
<el-table-column prop="high" label="高处" />
- <el-table-column prop="block" label="盲板抽堵" width="180" />
- <el-table-column prop="tempUse" label="临时用电" width="180" />
- <el-table-column fixed label="操作">
+ <el-table-column prop="block" label="盲板抽堵"/>
+ <el-table-column prop="tempUse" label="临时用电"/>
+ <el-table-column fixed="right" label="操作">
<template #default>
<el-button link type="primary" size="small">操作</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
- <el-dialog v-model="dialogFormVisible" title="Shipping address">
+ <el-dialog v-model="dialogFormVisible" title="新增预约">
<el-form :model="reservationForm">
<el-form-item label="我的当前部门" :label-width="formLabelWidth">
<el-input v-model="reservationForm.department" placeholder="" />
@@ -87,8 +87,8 @@
</el-form>
<template #footer>
<span class="dialog-footer">
- <el-button @click="dialogFormVisible = false">取消</el-button>
- <el-button type="primary" @click="dialogFormVisible = false">确认</el-button>
+ <el-button @click="dialogFormVisible = false" size="default">取消</el-button>
+ <el-button type="primary" @click="dialogFormVisible = false" size="default">确认</el-button>
</span>
</template>
</el-dialog>
@@ -205,7 +205,6 @@
renderMenu,
searchTime,
typeValue,
- defaultTime,
reserveOptions,
tableData,
dialogFormVisible,
@@ -222,12 +221,20 @@
.home-container {
overflow: hidden;
padding: 20px 40px;
+ .el-row{
+ margin-bottom: 20px;
+ }
+ .el-row:last-child {
+ margin-bottom: 0;
+ }
.el-col{
display: flex;
align-items: center;
+ margin: 40px 0 20px;
}
.grid-content{
align-items: center;
+ min-height: 36px;
}
.topInfo{
@@ -249,6 +256,10 @@
flex: 1;
}
}
+ .topBtns{
+ display: flex;
+ justify-content: right;
+ }
.el-button--text {
margin-right: 15px;
}
--
Gitblit v1.9.2