From 6d5dbde08fc4c167ed253f8607d591a17f32b718 Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期四, 30 六月 2022 18:29:14 +0800
Subject: [PATCH] 添加页面

---
 src/views/specialWorkSystem/workPlan/workReservation/index.vue              |   17 +
 src/views/loginPage/loginPage.vue                                           |    5 
 src/assets/loginPage/login-bg.jpg                                           |    0 
 src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue |  234 ++++++++++++++++++++++++++
 src/views/homeMenu/homeMenu.vue                                             |    4 
 src/assets/loginPage/login-bg.png                                           |    0 
 src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue           |  235 ++++++++++++++------------
 7 files changed, 380 insertions(+), 115 deletions(-)

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/views/homeMenu/homeMenu.vue b/src/views/homeMenu/homeMenu.vue
index 79c6862..2581053 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">
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/approveProcessSetting/index.vue b/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
new file mode 100644
index 0000000..703ba60
--- /dev/null
+++ b/src/views/specialWorkSystem/approvalProcess/approveProcessSetting/index.vue
@@ -0,0 +1,234 @@
+<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-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 @click="cancelClick">取消</el-button>
+					<el-button type="primary" @click="confirmClick(ruleFormRef)">确认</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 @click="deleteDialog = false">取消</el-button>
+				<el-button type="primary" @click="conFirmDelete">确认</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 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,
+				...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/workPlan/workAppointSummary/index.vue b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
index 29eeb55..471eff5 100644
--- a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
+++ b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
@@ -29,8 +29,7 @@
 					</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>
@@ -57,7 +56,7 @@
 				</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..4775b0a 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>
@@ -62,7 +62,7 @@
 				</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="" />
@@ -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;
 		}
 		.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