From 1eb0eed9133cc73fd06d0ee98d7cc19bc87de761 Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期三, 29 六月 2022 18:46:28 +0800
Subject: [PATCH] 添加页面

---
 src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue |  465 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 459 insertions(+), 6 deletions(-)

diff --git a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
index 61c3448..29eeb55 100644
--- a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
+++ b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
@@ -1,13 +1,466 @@
 <template>
-    <div>作业预约汇总</div>
+	<div class="home-container">
+		<el-row>
+			<el-col :span="6">
+				<div class="grid-content topInfo">
+					<div>预约时间:</div>
+					<div class="block">
+						<el-date-picker
+								v-model="searchTime"
+								type="date"
+								placeholder=""
+								size="large"
+						/>
+					</div>
+				</div>
+			</el-col>
+			<el-col :span="6">
+				<div class="grid-content topInfo">
+					<div>预约类型:</div>
+					<div>
+						<el-select v-model="typeValue" class="m-2" placeholder="Select" size="large">
+							<el-option
+									v-for="item in reserveOptions"
+									:key="item.value"
+									:label="item.label"
+									:value="item.value"
+							/>
+						</el-select>
+					</div>
+				</div>
+			</el-col>
+			<el-col :span="6"></el-col>
+			<el-col :span="6">
+				<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>
+			</el-col>
+		</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="high" label="高处" />
+				<el-table-column prop="block" label="盲板抽堵" width="180" />
+				<el-table-column prop="tempUse" label="临时用电" width="180" />
+				<el-table-column fixed 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-row>
+				<div class="grid-content">
+					<div>日期查询:</div>
+					<div class="block">
+						<el-date-picker
+							v-model="dateRange"
+							type="daterange"
+							unlink-panels
+							range-separator="To"
+							start-placeholder="Start date"
+							end-placeholder="End date"
+							:shortcuts="shortcuts"
+							size="large"
+						/>
+					</div>
+				</div>
+			</el-row>
+			<el-row>
+				<div class="grid-content">
+					<div>部门查询:</div>
+					<div>
+						<el-cascader
+								v-model="departmentName"
+								:options="departmentOptions"
+								:props="props"
+								@change="handleChange"
+						/>
+					</div>
+				</div>
+			</el-row>
+			<div id="main" style="width: 600px;height:400px;"></div>
+		</el-dialog>
+	</div>
 </template>
 
-<script>
-    export default {
-        name: "index"
-    }
+<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 * as echarts from 'echarts/core';
+	import { TooltipComponent, TooltipComponentOption, GridComponent, GridComponentOption, LegendComponent, LegendComponentOption } from 'echarts/components';
+	import { BarChart, BarSeriesOption } from 'echarts/charts';
+	import { CanvasRenderer } from 'echarts/renderers';
+	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 searchTime = ref('');
+			const typeValue = ref('');
+			const departmentName = ref('');
+			const reserveOptions = [
+				{
+					value: 'Option1',
+					label: 'Option1',
+				},
+				{
+					value: 'Option2',
+					label: 'Option2',
+				},
+				{
+					value: 'Option3',
+					label: 'Option3',
+				},
+				{
+					value: 'Option4',
+					label: 'Option4',
+				},
+				{
+					value: 'Option5',
+					label: 'Option5',
+				},
+			];
+			const tableData = [
+				{
+					id: '10801920',
+					time: '2022-06-29',
+					department: '电工部',
+					dirtyWork: '',
+					fireWork: '',
+					hangWork: '',
+					spaceWork: '',
+					cut: '',
+					high: '',
+					block: '',
+					tempUse: ''
+				},
+				{
+					id: '10801920',
+					time: '2022-06-29',
+					department: '电工部',
+					dirtyWork: '',
+					fireWork: '',
+					hangWork: '',
+					spaceWork: '',
+					cut: '',
+					high: '',
+					block: '',
+					tempUse: ''
+				},
+				{
+					id: '10801920',
+					time: '2022-06-29',
+					department: '',
+					dirtyWork: '',
+					fireWork: '',
+					hangWork: '',
+					spaceWork: '',
+					cut: '',
+					high: '',
+					block: '',
+					tempUse: ''
+				}
+			];
+			const dialogChartsVisible = ref(false);
+			const dateRange = ref('')
+			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 props = {
+				expandTrigger: 'hover',
+			};
+			const departmentOptions = [
+				{
+					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',
+								},
+								{
+									value: 'top nav',
+									label: 'Top Navigation',
+								},
+							],
+						},
+					],
+				},
+				{
+					value: 'component',
+					label: 'Component',
+				},
+				{
+					value: 'resource',
+					label: 'Resource',
+					children: [
+						{
+							value: 'axure',
+							label: 'Axure Components',
+						},
+						{
+							value: 'sketch',
+							label: 'Sketch Templates',
+						},
+						{
+							value: 'docs',
+							label: 'Design Documentation',
+						},
+					],
+				},
+			];
+			const handleChange = (value) => {
+				console.log(value)
+			};
+			const state  = reactive<stateType>({
+				homeOne:[{id:1,name:'基础数据权限管理系统'},{id:2,name:'双重预防系统'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}],
+			});
+
+			// 分布图
+			echarts.use([
+				TooltipComponent,
+				GridComponent,
+				LegendComponent,
+				BarChart,
+				CanvasRenderer
+			]);
+
+			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) => {
+				Session.set('projectId',value)
+				userInfos.value.projectId = value
+				await initBackEndControlRoutes();
+			};
+			return {
+				renderMenu,
+				searchTime,
+				typeValue,
+				reserveOptions,
+				tableData,
+				dialogChartsVisible,
+				dateRange,
+				shortcuts,
+				departmentName,
+				departmentOptions,
+				props,
+				handleChange,
+				...toRefs(state),
+			};
+		},
+	});
 </script>
 
-<style scoped>
+<style scoped lang="scss">
+	$homeNavLengh: 8;
+	.home-container {
+		overflow: hidden;
+		padding: 20px 40px;
+		.el-col{
+			display: flex;
+			align-items: center;
+		}
+		.grid-content{
+			align-items: center;
+		}
 
+		.topInfo{
+			display: flex;
+			align-items: center;
+			font-size: 16px;
+			font-weight: bold;
+
+			.demo-datetime-picker {
+				display: flex;
+				width: 100%;
+				padding: 0;
+				flex-wrap: wrap;
+			}
+			.demo-datetime-picker .block {
+				padding: 30px 0;
+				text-align: center;
+				border-right: solid 1px var(--el-border-color);
+				flex: 1;
+			}
+		}
+		.el-button--text {
+			margin-right: 15px;
+		}
+		.el-select {
+			width: 300px;
+		}
+		.el-input {
+			width: 300px;
+		}
+		.dialog-footer button:first-child {
+			margin-right: 10px;
+		}
+	}
 </style>

--
Gitblit v1.9.2