From 5661eb36d321991a5b17c55178b7044c9c899731 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期五, 09 九月 2022 15:39:20 +0800 Subject: [PATCH] Default Changelist --- src/views/specialWorkSystem/workProcess/workCheck/index.vue | 240 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 119 insertions(+), 121 deletions(-) diff --git a/src/views/specialWorkSystem/workProcess/workCheck/index.vue b/src/views/specialWorkSystem/workProcess/workCheck/index.vue index 282ed9d..6bc2411 100644 --- a/src/views/specialWorkSystem/workProcess/workCheck/index.vue +++ b/src/views/specialWorkSystem/workProcess/workCheck/index.vue @@ -5,13 +5,13 @@ <el-col :span="6" style="display:flex;align-items: center"> <span style="white-space: nowrap">作业证编号:</span> <div class="grid-content topInfo"> - <el-input v-model="searchWord"></el-input> + <el-input v-model="workPermitNo" placeholder="请输入作业证编号"></el-input> </div> </el-col> <el-col :span="6" style="display:flex;align-items: center"> <span style="white-space: nowrap">作业类型:</span> <div class="grid-content topInfo"> - <el-select v-model="searchType" placeholder="请选择作业类型"> + <el-select v-model="workType" placeholder="请选择作业类型"> <el-option v-for="item in workTypeList" :key="item.id" @@ -30,27 +30,26 @@ <el-col :span="12" class="mainCardBtn"> <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button> </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> + <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/> </el-row> <el-table - ref="multipleTableRef" :data="tableData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{background: '#fafafa'}" > - <el-table-column type="index" label="序号" width="200"/> - <el-table-column property="id" label="作业证编号" width="200"/> - <el-table-column property="workType" label="作业类型" width="200"/> - <el-table-column property="checkInfo" label="检查内容"/> - <el-table-column property="result" label="检查结果"> + <el-table-column type="index" label="序号" width="80"/> + <el-table-column property="workPermitNo" label="作业证编号"/> + <el-table-column property="workTypeDesc" label="作业类型"/> + <el-table-column property="checkContent" label="检查内容"/> + <el-table-column property="checkResultDesc" label="检查结果"> <template #default="scope"> - <span :class="scope.row.result == '异常' ? 'red': ''">{{ scope.row.result }}</span> + <span :class="scope.row.checkResultDesc == '异常' ? 'red': ''">{{ scope.row.checkResultDesc}}</span> </template> </el-table-column> - <el-table-column property="desc" label="描述" width="200"/> - <el-table-column property="name" label="分析人"/> - <el-table-column property="updateTime" label="分析时间"/> + <el-table-column property="info" label="描述" show-overflow-tooltip width="200"/> + <el-table-column property="operatorUname" label="分析人"/> + <el-table-column property="operationTime" label="分析时间" width="180"/> <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> @@ -65,7 +64,7 @@ small=false background layout="total, sizes, prev, pager, next, jumper" - :total="100" + :total="totalSize" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> @@ -76,37 +75,42 @@ <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-input v-model="details.workPermitNo" readonly/> </el-form-item> <el-form-item label="作业类型"> - <el-input v-model="details.workType" readonly/> + <el-input v-model="details.workTypeDesc" readonly/> </el-form-item> <el-form-item label="检查内容"> - <el-input v-model="details.checkInfo" readonly/> + <el-input v-model="details.checkContent" readonly/> </el-form-item> <el-form-item label="检查结果"> - <el-input v-model="details.result" readonly/> + <el-input :class="details.checkResultDesc == '异常' ? 'red': ''" v-model="details.checkResultDesc" readonly/> + </el-form-item> + <el-form-item label="现场图片" v-if="details.imagePaths && details.imagePaths.length>0"> + <el-image v-for="item in details.imagePaths" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" /> </el-form-item> <el-form-item label="描述"> - <el-input v-model="details.desc" type="textarea" readonly/> + <el-input v-model="details.info" type="textarea" readonly/> </el-form-item> <el-form-item label="分析人"> - <el-input v-model="details.name" readonly/> + <el-input v-model="details.operatorUname" readonly/> </el-form-item> <el-form-item label="分析时间"> - <el-input v-model="details.updateTime" readonly/> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> + <el-input v-model="details.operationTime" readonly/> </el-form-item> </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button type="primary" @click="dialogDetails = false">确认</el-button> + </span> + </template> </el-dialog> <el-dialog v-model="dialogAddRecord" title="新增" @close="closeAdd" @open="openAdd"> <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="作业证编号" prop="id"> - <el-input v-model="addRecord.id"> + <el-form-item label="作业证编号" prop="workPermitNo"> + <el-input v-model="addRecord.workPermitNo" placeholder="作业编号须为已审批作业的编号,可点击右方按钮查询"> <template #append> - <el-button :icon="Search" /> + <el-button :icon="Search" @click="dialogPermitNo = true"/> </template> </el-input> </el-form-item> @@ -120,16 +124,16 @@ /> </el-select> </el-form-item> - <el-form-item label="检查内容" prop="checkInfo"> - <el-input v-model="addRecord.checkInfo"> </el-input> + <el-form-item label="检查内容" prop="checkContent"> + <el-input v-model="addRecord.checkContent"> </el-input> </el-form-item> - <el-form-item label="检查结果" prop="result"> - <el-select v-model="addRecord.result"> - <el-option label="正常" value="0"/> - <el-option label="异常" value="1"/> + <el-form-item label="检查结果" prop="checkResult"> + <el-select v-model="addRecord.checkResult"> + <el-option label="正常" value="1"/> + <el-option label="异常" value="2"/> </el-select> </el-form-item> - <el-form-item label="现场照片" prop="photos"> + <el-form-item label="现场照片" prop="imagePaths"> <el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl"> <el-icon><Plus /></el-icon> <template #tip> @@ -137,23 +141,34 @@ </template> </el-upload> </el-form-item> - <el-form-item label="描述" prop="desc"> - <el-input v-model="addRecord.desc" type="textarea"> </el-input> - </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">确认</el-button> + <el-form-item label="描述" prop="info"> + <el-input v-model="addRecord.info" type="textarea"> </el-input> </el-form-item> </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> + <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> + </span> + </template> </el-dialog> <el-dialog v-model="dialogVisible"> <img w-full :src="dialogImageUrl" alt="Preview Image" /> + </el-dialog> + <el-dialog v-model="dialogPermitNo" title="选择相应的作业编号"> + <permit-no ref="permitNoInfo"></permit-no> + <template #footer> + <span class="dialog-footer"> + <el-button type="warning" @click="dialogPermitNo = false" size="default" plain>取消</el-button> + <el-button type="primary" @click="confirmPermitNo" size="default">确认</el-button> + </span> + </template> </el-dialog> </div> </template> <script lang="ts"> - import { toRefs, reactive, ref, onMounted } from 'vue'; + import {toRefs, reactive, ref, onMounted, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import { useUserInfo } from '/@/stores/userInfo'; @@ -162,8 +177,9 @@ import { ElTable, ElMessage, ElMessageBox } from 'element-plus' import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus' import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage'; - import {workApplyApi} from "/@/api/specialWorkSystem/workApply"; - import axios from "axios"; + import { workProcessApi } from '/@/api/specialWorkSystem/workProcess'; + import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; + import axios from 'axios'; // 定义接口来定义对象的类型 interface stateType { @@ -178,14 +194,15 @@ deleteArr: Array<any>; dialogDetails: boolean; dialogAddRecord: boolean; + dialogPermitNo: boolean; deleteDialog: boolean; deleteSetDialog: boolean; pageIndex: number; pageSize: number; chosenIndex: null | number; deleteId: null | number; - searchWord: string; - searchType: number | null + workPermitNo: string; + workType: number | null; totalSize: number; addRecord: {}; details: {}; @@ -196,64 +213,42 @@ } export default { name: 'workCheck', - components: {}, + components: { + permitNo: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workProcess/components/dialogPermitNo.vue')) + }, setup() { const userInfo = useUserInfo(); const { userInfos } = storeToRefs(userInfo); - + const permitNoInfo = ref() const state = reactive<stateType>({ pageIndex: 1, pageSize: 10, totalSize: 0, chosenIndex: null, - searchWord: '', - searchType: null, + workPermitNo: '', + workType: null, isOverSize: false, fileList: [], imgLimit: 3, uploadUrl: '', dialogVisible: false, dialogImageUrl: null, - tableData: [ - { - id: 'GTXH-0000001', - workType: '动火作业', - checkInfo: '动火作业检查', - result: '正常', - desc: 'A车间动火作业过程检查', - name: '李羽飞', - updateTime: '2022-08-31 12:00:00' - }, - { - id: 'GTXH-0000002', - workType: '动火作业', - checkInfo: '动火作业检查', - result: '正常', - desc: 'B车间动火作业过程气体检查', - name: '李羽飞', - updateTime: '2022-08-31 16:31:44' - }, - { - id: 'GTXH-0000003', - workType: '动火作业', - checkInfo: '动火作业检查', - result: '异常', - desc: '', - name: '李羽飞', - updateTime: '2022-08-31 17:05:20' - } - ], + tableData: [], multipleSelection: [], dialogDetails: false, dialogAddRecord: false, + dialogPermitNo: false, deleteDialog: false, deleteSetDialog: false, addRecord: { - + workPermitNo: '', + checkContent: '', + checkResult: '', + info: '', + source: 2, + imagePaths: [] }, - details: { - - }, + details: {}, deleteId: null, deleteArr: [], workTypeList: [ @@ -270,34 +265,25 @@ const addRef = ref<FormInstance>(); const addRules = reactive<FormRules>({ - id: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + workPermitNo: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - checkInfo: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - result: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - photos: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - desc: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - updateTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }] + checkContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + checkResult: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + imagePaths: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + info: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], }); // 页面载入时执行方法 onMounted(() => { - // getListByPage(); + getListByPage(); }); - // 分页获取班组管理列表 + // 分页获取作业检查列表 const getListByPage = async () => { - const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { groupName: state.searchWord, containGroupMemberEnable: true } }; - let res = await teamManageApi().getRecordPage(data); + const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { workType: state.workType, workPermitNo: state.workPermitNo } }; + let res = await workProcessApi().getCheckListPage(data); if (res.data.code === '200') { - state.tableData = res.data.data.map((item) => { - if (!item.groupMembers || item.groupMembers == null) { - item.groupMembers = []; - } else { - item.groupMembers = Array.from(item.groupMembers, ({ username }) => username); - } - return item; - }); + state.tableData = res.data.data state.totalSize = res.data.total; } else { ElMessage({ @@ -314,7 +300,17 @@ message: '超出文件上传数量' }); } - + const confirmPermitNo = ()=>{ + if(permitNoInfo.value.workPermitNo == ''){ + ElMessage({ + type: 'warning', + message: '请选择相应的作业编码' + }); + }else{ + state.addRecord.workPermitNo = permitNoInfo.value.workPermitNo + state.dialogPermitNo = false + } + } const handlePreview: UploadProps['onPreview'] = (uploadFile) => { console.log(uploadFile); }; @@ -335,12 +331,15 @@ return false }else{ const res = await workApplyApi().getUploadUrl(rawFile.name); - state.addRecord.photos.push(res.data.data.fileName) + state.addRecord.imagePaths.push(res.data.data.fileName) state.uploadUrl = res.data.data.uploadUrl; + console.log(state.addRecord.imagePaths,state.uploadUrl,6666666666666) } }; const upload = async (params: any) => { + // const formData = new FormData(); + // formData.append('file', state.fileList[0].raw); let reader = new FileReader(); reader.readAsArrayBuffer(params.file); reader.onload = async () => { @@ -367,7 +366,7 @@ }) .then(() => { // console.log(state.workDetail.photos,'path') - const list = JSON.parse(JSON.stringify(state.addRecord.photos)) + const list = JSON.parse(JSON.stringify(state.addRecord.imagePaths)) fileList.map((item,index)=>{ if(item.uid === file.uid){ fileList.splice(index,1) @@ -381,7 +380,7 @@ reject(false); }); }else{ - const list = JSON.parse(JSON.stringify(state.addRecord.photos)) + const list = JSON.parse(JSON.stringify(state.addRecord.imagePaths)) fileList.map((item,index)=>{ if(item.uid === file.uid){ fileList.splice(index,1) @@ -414,7 +413,7 @@ // 关键词查询记录 const searchRecord = async () => { - if (state.searchWord == '') { + if (state.workPermitNo == ''&& state.workType == null) { ElMessage({ type: 'warning', message: '请输入查询关键词' @@ -425,13 +424,15 @@ }; const clearSearch = async () => { - state.searchWord = ''; + state.workPermitNo = ''; + state.workType = null; getListByPage(); }; - // 添加班组管理方法 + + // 添加气体检测方法 const addRecord = async (data: any) => { - let res = await teamManageApi().addRecord(data); + let res = await workProcessApi().postCheckReport(data); if (res.data.code === '200') { ElMessage({ type: 'success', @@ -446,24 +447,15 @@ } }; + // 新增修改记录 const confirmAddRecord = async (formEl: FormInstance | undefined) => { if (!formEl) return; await formEl.validate(async (valid, fields) => { if (valid) { - const data = { - groupName: state.addRecord.groupName, - groupInfo: state.addRecord.groupInfo, - depId: state.addRecord.depId, - groupMemberIds: state.addRecord.groupMembers - }; - if (state.chosenIndex == null) { - await addRecord(data); - } else { - data.groupId = JSON.stringify(state.addRecord.groupId); - await editRecord(data); - } + await addRecord(state.addRecord); state.dialogAddRecord = false; + getListByPage(); } else { console.log('error submit!', fields); } @@ -519,7 +511,9 @@ Refresh, Plus, Search, + permitNoInfo, showTip, + confirmPermitNo, handlePreview, handlePictureCardPreview, getUploadUrl, @@ -546,6 +540,10 @@ $homeNavLengh: 8; .red{ color: red; + + ::v-deep(input){ + color: red; + } } .home-container { height: calc(100vh - 144px); -- Gitblit v1.9.2