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