From 1c141330187ca025f6861f1d931fa235992cf852 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期三, 27 七月 2022 15:16:36 +0800 Subject: [PATCH] 更新 --- src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue | 273 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 171 insertions(+), 102 deletions(-) diff --git a/src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue b/src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue index 85657ec..13b184e 100644 --- a/src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue +++ b/src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue @@ -4,22 +4,26 @@ <el-row class="homeCard"> <el-col :span="12"> <div class="grid-content topInfo"> - <el-select v-model="searchType" placeholder="请选择" style="width: 100%"> + <el-select v-model="searchType"> <el-option label="动火作业" value="动火作业" /> <el-option label="动土作业" value="动土作业" /> </el-select> - <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> - <el-button-group style="display: flex;margin-left: 12px"> - <el-button plain :icon="Download"></el-button> - <el-button plain :icon="Refresh"></el-button> - </el-button-group> </div> </el-col> </el-row> <div class="homeCard"> <div class="main-card"> + <el-row class="cardTop"> + <el-col :span="12" class="mainCardBtn"> + <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button> +<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> + <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> + </el-col> + <el-button type="primary" :icon="Refresh" size="default"/> + </el-row> <el-table ref="multipleTableRef" :data="tableData" @@ -28,11 +32,17 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" /> - <el-table-column property="id" label="作业证编号" width="300" sortable /> - <el-table-column property="cardName" label="作业证名称" width="300" /> - <el-table-column property="name" label="申请人" width="300" /> - <el-table-column property="department" label="申请部门" /> - <el-table-column property="date" label="归档日期" sortable /> + <el-table-column property="id" label="作业证编号" width="200" sortable/> + <el-table-column property="cardName" label="作业证名称" width="180" /> + <el-table-column property="name" label="申请人"/> + <el-table-column property="department" label="申请部门"/> + <el-table-column property="date" label="归档日期" sortable/> + <el-table-column fixed="right" label="操作" align="center" width="250"> + <template #default="scope"> + <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> + <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> + </template> + </el-table-column> </el-table> </div> <div class="pageBtn"> @@ -49,51 +59,67 @@ /> </div> </div> - <el-dialog v-model="dialogDetails" title="签到记录" @close="dialogColse"> + </el-scrollbar> + <el-dialog v-model="dialogDetails" title="作业票查看"> <el-form :model="details" label-width="120px"> <el-form-item label="作业证编号"> - <el-input v-model="details.id" readonly/> - </el-form-item> - <el-form-item label="签到人"> <el-input - v-model="details.worker" - class="input-with-select" - readonly - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> + v-model="details.id" + readonly + /> </el-form-item> -<!-- <el-form-item label="签到状态">--> -<!-- <el-select v-model="details.status" readonly>--> -<!-- <el-option label="已签到" value="已签到" />--> -<!-- <el-option label="未签到" value="未签到" />--> -<!-- </el-select>--> -<!-- </el-form-item>--> - <el-form-item label="签到时间"> - <el-input v-model="details.checkinTime" readonly/> + <el-form-item label="作业证名称"> + <el-input + v-model="details.cardName" + readonly + /> </el-form-item> - <el-form-item label="备注"> - <el-input v-model="details.remark" type="textarea" readonly/> + <el-form-item label="申请人"> + <el-input + v-model="details.name" + readonly + /> + </el-form-item> + <el-form-item label="申请部门"> + <el-input + v-model="details.department" + class="input-with-select" + readonly + /> + </el-form-item> + <el-form-item label="归档日期"> + <el-input + v-model="details.date" + class="input-with-select" + readonly + /> </el-form-item> <el-form-item> <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> </el-form-item> </el-form> </el-dialog> - </el-scrollbar> + <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"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; +<script lang="ts" setup> + import { toRefs, reactive, ref } from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; import { Session } from '/@/utils/storage'; - import { Plus, Edit, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' + import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' import { ElTable } from 'element-plus' + import { FormInstance, FormRules } from 'element-plus' let global: any = { homeChartOne: null, homeChartTwo: null, @@ -107,75 +133,109 @@ interface type { } - interface User { - date: string - name: string - address: string + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + + // 分页 + const currentPage = ref(1) + const pageSize = ref(10) + + // 顶部查询 + const searchType = ref('') + const searchWord = ref('') + + // 判断编辑和新增 + const chosenIndex = ref(-1) + + const handleSizeChange = (val: number) => { + console.log(`${val} items per page`) } - export default defineComponent({ - name: 'gasCheckAnalyze', - 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 handleCurrentChange = (val: number) => { + console.log(`current page: ${val}`) + } + const tableData = reactive( + [ + { + id: '11011', + cardName: '动火作业证', + name: '吴海涛', + department: '动火部门', + date: '2021-04-22 15:21:31' + }, + { + id: '11011', + cardName: '动火作业证', + name: '吴海涛', + department: '动火部门', + date: '2021-04-22 15:21:31' } - 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[] = [ - { - id: '11011', - cardName: '动火作业证', - name: '吴沈峰', - department: '土木部', - date: '2021-04-22 15:21:31' + ] + ) + const addRef = ref<FormInstance>() + const addRules = reactive<FormRules>({ + id:[{required: true, message: '该内容不能为空',trigger:'blur'}], + cardName:[{required: true, message: '该内容不能为空',trigger:'blur'}], + name:[{required: true, message: '该内容不能为空',trigger:'blur'}], + department:[{required: true, message: '该内容不能为空',trigger:'blur'}], + date:[{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 confirmAddRecord = async (formEl: FormInstance | undefined) =>{ + if (!formEl) return + await formEl.validate((valid, fields) => { + if (valid) { + if(chosenIndex.value == -1){ + tableData.unshift(addRecord.value) + }else{ + tableData[chosenIndex.value] = addRecord.value } - ] - const dialogDetails = ref(false) - const details = ref({}) - const viewDetails = (row)=> { - console.log(row,'row') - details.value = JSON.parse(JSON.stringify(row)) - console.log(details,'details') - dialogDetails.value = true + dialogAddRecord.value =false + } else { + console.log('error submit!', fields) } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - multipleTableRef, - tableData, - currentPage, - pageSize, - dialogDetails, - details, - viewDetails, - handleSizeChange, - handleCurrentChange, - Plus, - Edit, - Delete, - Search, - Download, - handleSelectionChange, - Refresh, - ...toRefs(state), - }; - }, - }); + }) + + } + // 新增弹窗关闭时的数据初始化处理 + 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"> @@ -246,4 +306,13 @@ } } } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } </style> -- Gitblit v1.9.2