From b367f29698fa0631173b939355803c22a9dba651 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期一, 08 八月 2022 12:14:48 +0800 Subject: [PATCH] 添加修改页面 --- src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue | 312 +++++++++++++++++++++++++++++++++++----------------- 1 files changed, 210 insertions(+), 102 deletions(-) diff --git a/src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue b/src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue index 69764ef..ecc00ac 100644 --- a/src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue +++ b/src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue @@ -1,11 +1,10 @@ <template> <div class="home-container"> - <el-scrollbar height="100%"> + <div style="height: 100%"> <el-row class="homeCard"> <el-col :span="8"> <div class="grid-content topInfo"> - <div>流程名称</div> - <el-input v-model="searchWord" placeholder="请输入关键词"></el-input> + <el-input v-model="searchWord" placeholder="流程名称"></el-input> <el-button type="primary">查询</el-button> <el-button plain>重置</el-button> </div> @@ -15,9 +14,9 @@ <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-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true" v-throttle>新建</el-button> + <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> + <el-button type="success" size="default" plain>设置分类</el-button> </el-col> <el-button type="primary" :icon="Refresh" size="default"/> </el-row> @@ -25,6 +24,7 @@ ref="multipleTableRef" :data="tableData" style="width: 100%" + height="calc(100% - 100px)" :header-cell-style="{background: '#fafafa'}" @selection-change="handleSelectionChange" > @@ -43,41 +43,90 @@ </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-table-column fixed="right" label="操作" align="center" width="250"> + <template #default="scope"> + <el-button link type="primary" :icon="Edit" size="small" @click="editRecord(scope.$index ,scope.row)" v-throttle>修改</el-button> <el-button link type="success" size="small">发布</el-button> - <el-button link type="danger" size="small">删除</el-button> + <el-button link type="danger" :icon="Delete" size="small" @click="deleteRecord(scope.$index)">删除</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 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> - </el-scrollbar> + </div> + <el-dialog v-model="dialogAddRecord" title="审批流程编辑" @close="closeAdd"> + <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> + <el-form-item label="流程名称" prop="name"> + <el-input + v-model="addRecord.name" + placeholder="流程名称" + /> + </el-form-item> + <el-form-item label="流程key" prop="flowKey"> + <el-input + v-model="addRecord.flowKey" + placeholder="流程key" + > + </el-input> + </el-form-item> + <el-form-item label="分类" prop="sort"> + <el-select v-model="addRecord.sort" placeholder="请选择"> + <el-option label="临时用电" value="临时用电" /> + <el-option label="设备检修" value="设备检修" /> + </el-select> + </el-form-item> + <el-form-item label="版本" prop="version"> + <el-input + v-model="addRecord.version" + placeholder="请选择工种" + > + </el-input> + </el-form-item> + <el-form-item label="状态" prop="status"> + <el-select v-model="addRecord.status" placeholder="请选择"> + <el-option label="已发布" value="已发布" /> + <el-option label="未发布" value="未发布" /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> + <el-button type="primary" @click="confirmAddRecord(addRef)" size="default" v-throttle>确认</el-button> + </el-form-item> + </el-form> + </el-dialog> + <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> + <span>您确定要删除该条记录吗?</span> + <template #footer> + <span class="dialog-footer"> + <el-button @click="deleteDialog = false" size="default">取消</el-button> + <el-button type="primary" @click="conFirmDelete" size="default" v-throttle>确认</el-button> + </span> + </template> + </el-dialog> </div> </template> -<script lang="ts"> +<script lang="ts" setup> 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' + import { Plus, Delete, Refresh, Edit } from '@element-plus/icons-vue' + import { ElTable, FormInstance, FormRules } from 'element-plus' let global: any = { homeChartOne: null, homeChartTwo: null, @@ -96,26 +145,25 @@ 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[] = [ + 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 chosenIndex = ref(-1) + const handleSizeChange = (val: number) => { + console.log(`${val} items per page`) + } + const handleCurrentChange = (val: number) => { + console.log(`current page: ${val}`) + } + const tableData = reactive( + [ { name: '风险点复评预警', flowKey: 'process111', @@ -197,41 +245,132 @@ 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), - }; - }, - }); + ) + + // 时间格式化 + const timeForm = { + hour12: false, + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + } + const addRef = ref<FormInstance>() + const addRules = reactive<FormRules>({ + name:[{required: true, message: '该内容不能为空',trigger:'blur'}], + flowKey:[{required: true, message: '该内容不能为空',trigger:'blur'}], + sort:[{required: true, message: '该内容不能为空',trigger:'blur'}], + version:[{required: true, message: '该内容不能为空',trigger:'blur'}], + status:[{required: true, message: '该内容不能为空',trigger:'blur'}], + updateTime:[{required: true, message: '该内容不能为空',trigger:'blur'}] + }) + const dialogDetails = ref(false) + const dialogAddRecord = ref(false) + const deleteDialog = ref(false) + const addRecord = ref({}) + const details = ref({}) + + // 查看记录 + const viewRecord = (row) =>{ + details.value = JSON.parse(JSON.stringify(row)) + dialogDetails.value = true + } + + // 删除记录 + const deleteRecord = (index) =>{ + chosenIndex.value = index + deleteDialog.value = true + } + const conFirmDelete = ()=> { + tableData.splice(chosenIndex.value,1) + deleteDialog.value = false + } + + // 修改记录 + const editRecord =(index, row)=>{ + dialogAddRecord.value = true + chosenIndex.value = index + addRecord.value = JSON.parse(JSON.stringify(row)) + } + + // 新增修改记录确认 + const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ + if (!formEl) return + await formEl.validate((valid, fields) => { + if (valid) { + if(chosenIndex.value == -1){ + addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') + tableData.unshift(addRecord.value) + }else{ + addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') + tableData[chosenIndex.value] = addRecord.value + } + dialogAddRecord.value =false + } else { + console.log('error submit!', fields) + } + }) + + } + const closeAdd =()=>{ + addRecord.value={} + chosenIndex.value = -1 + } + const indexClear = ()=>{ + chosenIndex.value = -1 + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; </script> <style scoped lang="scss"> $homeNavLengh: 8; .home-container { - height: 100%; + height: calc(100vh - 114px); + box-sizing: border-box; overflow: hidden; - padding: 20px; .homeCard{ width: 100%; padding: 20px; + box-sizing: border-box; background: #fff; border-radius: 4px; + + .main-card{ + width: 100%; + height: 100%; + .cardTop{ + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 20px; + .mainCardBtn{ + margin: 0; + } + } + .pageBtn{ + height: 60px; + display: flex; + align-items: center; + justify-content: right; + + .demo-pagination-block + .demo-pagination-block { + margin-top: 10px; + } + .demo-pagination-block .demonstration { + margin-bottom: 16px; + } + } + } + &:last-of-type{ + height: calc(100% - 100px); + } } .el-row{ display: flex; @@ -255,37 +394,6 @@ white-space: nowrap; margin-right: 20px; } - } - } - .mainPages{ - height: 100%; - display: flex; - flex-direction: column; - justify-content: space-between; - } - .main-card{ - width: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .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; } } } -- Gitblit v1.9.2