From 647ef6974a149e21bc88e4b559ba9badaafe367e Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期一, 11 七月 2022 18:02:28 +0800
Subject: [PATCH] 添加我的申请tab切换页面,优化组件表单的校验
---
src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue | 119 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 91 insertions(+), 28 deletions(-)
diff --git a/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue b/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
index 0e834a1..e01d0e3 100644
--- a/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
+++ b/src/views/specialWorkSystem/approvalProcess/addApproveProcess/index.vue
@@ -1,35 +1,37 @@
<template>
<div class="home-container">
<el-scrollbar height="100%">
+ <div class="homeCard">
<el-row>
<el-button type="primary" size="large" @click="addApprove">新建审批环节</el-button>
</el-row>
<el-row>
<el-table :data="tableData" border style="width: 100%">
- <el-table-column prop="id" label="编号" width="180" />
- <el-table-column prop="step" label="环节名称" width="180" />
- <el-table-column prop="type" label="审核类型"/>
+ <el-table-column type="index" label="编号" width="100"/>
+ <el-table-column prop="step" label="环节名称"/>
+ <el-table-column prop="type" label="审核类型" width="180"/>
<el-table-column prop="createTime" label="创建时间" width="180" />
<el-table-column prop="editor" label="最新编辑人" width="180" />
- <el-table-column prop="editorTime" label="最新编辑时间" />
+ <el-table-column prop="editeTime" label="最新编辑时间" width="180" />
<el-table-column fixed="right" label="操作" width="180">
- <template #default>
- <el-button link type="primary" size="small">编辑</el-button>
- <el-button link type="danger" size="small">删除</el-button>
+ <template #default="scope">
+ <el-button link type="primary" size="small" @click="editeRow(scope.$index,scope.row)">编辑</el-button>
+ <el-button link type="danger" size="small" @click="deleteRow(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
- <el-dialog v-model="dialogAddForm" title="新建审批环节">
- <el-form :model="reportForm" label-width="120px">
- <el-form-item label="环节名称">
+ </div>
+ <el-dialog v-model="dialogAddForm" title="新建审批环节" @close="dialogColse">
+ <el-form :model="reportForm" label-width="120px" ref="ruleFormRef" :rules="rules">
+ <el-form-item label="环节名称" prop="step">
<el-select v-model="reportForm.step" placeholder="选择环节名称">
<el-option label="作业负责人审批" value="作业负责人审批" />
<el-option label="作业负责人审批2" value="作业负责人审批2" />
<el-option label="作业负责人审批3" value="作业负责人审批3" />
</el-select>
</el-form-item>
- <el-form-item label="审核类型">
+ <el-form-item label="审核类型" prop="type">
<el-select v-model="reportForm.type" placeholder="选择审核类型">
<el-option label="上报审批意见" value="上报审批意见" />
<el-option label="上报气体检测数据" value="上报气体检测数据" />
@@ -40,8 +42,8 @@
<el-input v-model="reportForm.editor" />
</el-form-item>
<el-form-item>
- <el-button type="primary" @click="onSubmitAddForm" size="default">确认</el-button>
- <el-button size="default">取消</el-button>
+ <el-button type="primary" @click="onSubmitAddForm(ruleFormRef)" size="default">确认</el-button>
+ <el-button size="default" @click="dialogAddForm = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
@@ -55,7 +57,8 @@
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {useUserInfo} from "/@/stores/userInfo";
import { Session } from '/@/utils/storage';
- import { ElMessage } from 'element-plus'
+ import type { FormInstance, FormRules } from 'element-plus'
+
let global: any = {
homeChartOne: null,
homeChartTwo: null,
@@ -69,52 +72,100 @@
interface type {
}
+ interface User {
+ step: string,
+ type: string,
+ createTime: string
+ }
export default defineComponent({
name: 'reportTypeSetting',
setup() {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({});
- const tableData = [
+ const tableData = reactive([
{
- id: '0',
step: '作业负责人审批',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
},
{
- id: '1',
step: '作业负责人审批',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
},
{
- id: '2',
step: '作业负责人审批',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
}
- ];
+ ]);
const dialogAddForm = ref(false);
- const reportForm = reactive({
- id: '',
+ const rowIndex = ref(-1)
+ const reportForm = ref({
step: '',
type: '',
createTime: '',
editor: '',
- editorTime: ''
+ editeTime: ''
})
const addApprove = ()=>{
dialogAddForm.value = true
};
- const onSubmitAddForm = () => {
- console.log('submit!')
+ const ruleFormRef = ref<FormInstance>()
+ const rules = reactive<FormRules>({
+ step:[{required: true, message: '该内容不能为空',trigger:'blur'}],
+ type:[{required: true, message: '该内容不能为空',trigger:'blur'}]
+ })
+ const onSubmitAddForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ if(rowIndex.value == -1){
+ reportForm.value.createTime = new Date().toLocaleString()
+ reportForm.value.editeTime = new Date().toLocaleString()
+ tableData.push(reportForm.value)
+ }else{
+ tableData[rowIndex.value] = reportForm.value
+ }
+
+ // reportForm.value = {
+ // step: '',
+ // type: '',
+ // createTime: '',
+ // editor: '',
+ // editeTime: ''
+ // }
+ dialogAddForm.value = false
+ } else {
+ console.log('error submit!', fields)
+ }
+ })
+ }
+ const editeRow = (index: number, row: User) =>{
+ dialogAddForm.value = true
+ rowIndex.value = index
+ reportForm.value = JSON.parse(JSON.stringify(row))
+ reportForm.value.editeTime = new Date().toLocaleString()
+ }
+ const deleteRow = (index)=>{
+ tableData.splice( index,1)
+ }
+ const dialogColse = () =>{
+ reportForm.value = {
+ step: '',
+ type: '',
+ createTime: '',
+ editor: '',
+ editeTime: ''
+ }
+ rowIndex.value = -1
}
// 折线图
const renderMenu = async (value: string) => {
@@ -127,6 +178,12 @@
tableData,
dialogAddForm,
reportForm,
+ ruleFormRef,
+ rules,
+ rowIndex,
+ dialogColse,
+ editeRow,
+ deleteRow,
addApprove,
onSubmitAddForm,
...toRefs(state),
@@ -139,8 +196,14 @@
$homeNavLengh: 8;
.home-container {
overflow: hidden;
- padding: 40px;
+ padding: 20px;
height: 100%;
+ .homeCard{
+ width: 100%;
+ padding: 20px;
+ background: #fff;
+ border-radius: 4px;
+ }
.el-row{
margin-bottom: 20px;
}
--
Gitblit v1.9.2