检查工单
This commit is contained in:
		| @ -113,7 +113,7 @@ | ||||
|  | ||||
|   <!-- </el-card> --> | ||||
|   <div class="dialog-footer"> | ||||
|     <div class="btn-item"> | ||||
|     <div class="btn-item" @click="handleExport"> | ||||
|       <img src="../../../../assets/icons/svg/derived.png" /> | ||||
|       <span>导出</span> | ||||
|     </div> | ||||
| @ -130,7 +130,7 @@ import { QualityConstructionLogVO, QualityConstructionLogQuery, QualityConstruct | ||||
| import { dayjs } from 'element-plus'; | ||||
| import { useUserStoreHook } from '@/store/modules/user'; | ||||
| import { s } from 'node_modules/vite/dist/node/types.d-aGj9QkWt'; | ||||
| import { listByIds } from '@/api/system/oss'; | ||||
| import { downLoadOss, listByIds } from '@/api/system/oss'; | ||||
| const safetyInspectionDetail = ref<QualityConstructionLogVO>(); | ||||
| const checkFileList = ref<any[]>(); | ||||
| // 获取用户 store | ||||
| @ -159,6 +159,9 @@ const get = async () => { | ||||
|     // } | ||||
|   } | ||||
| }; | ||||
| const handleExport = async () => { | ||||
|   await downLoadOss({ id: safetyInspectionDetail.value.id }, '/quality/qualityConstructionLog/export/word', '施工日志.zip'); | ||||
| }; | ||||
|  | ||||
| onMounted(() => { | ||||
|   get(); | ||||
|  | ||||
| @ -47,8 +47,30 @@ | ||||
|         <el-table-column type="selection" width="55" align="center" /> | ||||
|         <el-table-column label="序号" align="center" type="index" width="70" /> | ||||
|  | ||||
|         <el-table-column label="生产情况" align="center" prop="productionStatus" /> | ||||
|         <el-table-column label="技术质量安全工作" align="center" prop="technologyQuality" /> | ||||
|         <el-table-column label="生产情况" align="center" prop="productionStatus" width="410"> | ||||
|           <template #default="scope"> | ||||
|             <el-tooltip placement="top" effect="dark"> | ||||
|               <template #content> | ||||
|                 <div class="w-670px">{{ scope.row.productionStatus }}</div> | ||||
|               </template> | ||||
|               <el-text truncated> | ||||
|                 {{ scope.row.productionStatus }} | ||||
|               </el-text> | ||||
|             </el-tooltip> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="技术质量安全工作" align="center" prop="technologyQuality" width="410"> | ||||
|           <template #default="scope"> | ||||
|             <el-tooltip placement="top" effect="dark"> | ||||
|               <template #content> | ||||
|                 <div class="w-670px">{{ scope.row.technologyQuality }}</div> | ||||
|               </template> | ||||
|               <el-text truncated> | ||||
|                 {{ scope.row.technologyQuality }} | ||||
|               </el-text> | ||||
|             </el-tooltip> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="发生日期" align="center" prop="happenDate" width="180"> | ||||
|           <template #default="scope"> | ||||
|             <span>{{ parseTime(scope.row.happenDate, '{y}-{m}-{d}') }}</span> | ||||
| @ -58,18 +80,10 @@ | ||||
|         <el-table-column label="备注" align="center" prop="remark" /> | ||||
|         <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|           <template #default="scope"> | ||||
|             <el-tooltip content="详情" placement="top"> | ||||
|               <el-button link type="primary" icon="View" @click="handleUpdate(scope.row)"></el-button> | ||||
|             </el-tooltip> | ||||
|             <el-tooltip content="删除" placement="top"> | ||||
|               <el-button | ||||
|                 link | ||||
|                 type="primary" | ||||
|                 icon="Delete" | ||||
|                 @click="handleDelete(scope.row)" | ||||
|                 v-hasPermi="['quality:qualityConstructionLog:remove']" | ||||
|               ></el-button> | ||||
|             </el-tooltip> | ||||
|             <el-button link type="primary" icon="View" @click="handleUpdate(scope.row)">详情</el-button> | ||||
|             <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['quality:qualityConstructionLog:remove']"> | ||||
|               删除 | ||||
|             </el-button> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
| @ -93,9 +107,13 @@ import { | ||||
| } from '@/api/quality/qualityConstructionLog'; | ||||
| import { QualityConstructionLogVO, QualityConstructionLogQuery, QualityConstructionLogForm } from '@/api/quality/qualityConstructionLog/types'; | ||||
| import QualityConstructionDetail from './cpmponent/qualityConstructionDetail.vue'; | ||||
|  | ||||
| import { useUserStoreHook } from '@/store/modules/user'; | ||||
| const { proxy } = getCurrentInstance() as ComponentInternalInstance; | ||||
|  | ||||
| // 获取用户 store | ||||
| const userStore = useUserStoreHook(); | ||||
| // 从 store 中获取项目列表和当前选中的项目 | ||||
| const currentProject = computed(() => userStore.selectedProject); | ||||
| const qualityConstructionLogList = ref<QualityConstructionLogVO[]>([]); | ||||
| const buttonLoading = ref(false); | ||||
| const loading = ref(true); | ||||
| @ -115,7 +133,7 @@ const dialog = reactive<DialogOption>({ | ||||
|  | ||||
| const initFormData: QualityConstructionLogForm = { | ||||
|   id: undefined, | ||||
|   projectId: undefined, | ||||
|   projectId: currentProject.value.id, | ||||
|   happenDate: undefined, | ||||
|   productionStatus: undefined, | ||||
|   technologyQuality: undefined, | ||||
| @ -127,7 +145,7 @@ const data = reactive<PageData<QualityConstructionLogForm, QualityConstructionLo | ||||
|   queryParams: { | ||||
|     pageNum: 1, | ||||
|     pageSize: 10, | ||||
|     projectId: undefined, | ||||
|     projectId: currentProject.value.id, | ||||
|     happenDate: undefined, | ||||
|     params: {} | ||||
|   }, | ||||
| @ -231,6 +249,20 @@ const handleExport = () => { | ||||
|   ); | ||||
| }; | ||||
|  | ||||
| //监听项目id刷新数据 | ||||
| const listeningProject = watch( | ||||
|   () => currentProject.value.id, | ||||
|   (nid, oid) => { | ||||
|     queryParams.value.projectId = nid; | ||||
|     form.value.projectId = nid; | ||||
|     getList(); | ||||
|   } | ||||
| ); | ||||
|  | ||||
| onUnmounted(() => { | ||||
|   listeningProject(); | ||||
| }); | ||||
|  | ||||
| onMounted(() => { | ||||
|   getList(); | ||||
| }); | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
|       <div class="resultIcon"><img :src="'../../../../../src/assets/icons/svg/' + inspectionType + '.png'" alt="" /></div> | ||||
|       <h2 style="text-align: center; margin-top: 5px; font-weight: bold">整改通知单</h2> | ||||
|       <el-row> | ||||
|         <el-col :span="12" style="text-align: left">填报人:{{ safetyInspectionDetail?.creatorName }}</el-col> | ||||
|         <el-col :span="12" style="text-align: left">填报人:{{ safetyInspectionDetail?.createBy }}</el-col> | ||||
|         <el-col :span="12" style="text-align: right">填报时间:{{ safetyInspectionDetail?.createTime }}</el-col> | ||||
|       </el-row> | ||||
|       <el-descriptions :column="2" border style="margin-top: 8px" label-width="160px" size="large"> | ||||
| @ -19,17 +19,19 @@ | ||||
|           {{ safetyInspectionDetail?.correctorName }} | ||||
|         </el-descriptions-item> | ||||
|         <el-descriptions-item label-align="center" label="整改日期" class-name="zebra"> | ||||
|           {{ dayjs(safetyInspectionDetail?.rectificationTime).format('YYYY 年 MM 月 DD 日') }} | ||||
|           {{ safetyInspectionDetail?.rectificationTime }} | ||||
|         </el-descriptions-item> | ||||
|         <el-descriptions-item label-align="center" label="巡检类型" label-class-name="white"> | ||||
|           <dict-tag :options="quality_inspection_check_type" :value="safetyInspectionDetail?.inspectionType" /> | ||||
|         </el-descriptions-item> | ||||
|         <el-descriptions-item label-align="center" label="填报人" label-class-name="white" | ||||
|           >{{ safetyInspectionDetail?.creatorName }} | ||||
|           >{{ safetyInspectionDetail?.createBy }} | ||||
|         </el-descriptions-item> | ||||
|         <el-descriptions-item label-align="center" label="填报日期" class-name="zebra" | ||||
|           >{{ safetyInspectionDetail?.createTime }} | ||||
|         </el-descriptions-item> | ||||
|         <el-descriptions-item label-align="center" label="填报日期" class-name="zebra">{{ safetyInspectionDetail?.checkTime }} </el-descriptions-item> | ||||
|         <el-descriptions-item label-align="center" label="要求回复期限" class-name="zebra" | ||||
|           >{{ safetyInspectionDetail?.replyPeriodDate }} | ||||
|           >{{ parseTime(safetyInspectionDetail?.replyPeriodDate, '{y}-{m}-{d}') }} | ||||
|         </el-descriptions-item> | ||||
|       </el-descriptions> | ||||
|       <el-descriptions border direction="vertical" size="large"> | ||||
| @ -64,7 +66,7 @@ | ||||
|       </el-descriptions> | ||||
|       <el-descriptions :column="2" border label-width="160px" size="large"> | ||||
|         <el-descriptions-item label-align="center" label="整改措施及完成情况" :span="2" label-class-name="white"> | ||||
|           {{ safetyInspectionDetail?.measure }} | ||||
|           {{ safetyInspectionDetail?.verificationResult }} | ||||
|         </el-descriptions-item> | ||||
|         <el-descriptions-item label-align="center" label="整改附件" :span="2" label-class-name="white"> | ||||
|           <el-space wrap> | ||||
| @ -73,7 +75,7 @@ | ||||
|                 <image-preview :src="item.url" width="200px" /> | ||||
|               </span> | ||||
|               <span v-else> | ||||
|                 <el-link :href="`${item.url}`" :underline="false" target="_blank"> | ||||
|                 <el-link :href="`${item.url}`" :underline="false" type="primary" target="_blank"> | ||||
|                   <span> {{ item.originalName }} </span> | ||||
|                 </el-link> | ||||
|               </span> | ||||
| @ -94,7 +96,7 @@ | ||||
|  | ||||
|   <!-- </el-card> --> | ||||
|   <div class="dialog-footer"> | ||||
|     <div class="btn-item"> | ||||
|     <div class="btn-item" @click="handleExport"> | ||||
|       <img src="../../../../assets/icons/svg/derived.png" /> | ||||
|       <span>导出</span> | ||||
|     </div> | ||||
| @ -108,7 +110,7 @@ | ||||
| <script lang="ts" setup> | ||||
| import { getQualityInspection } from '@/api/quality/qualityInspection'; | ||||
| import { QualityInspectionVO } from '@/api/quality/qualityInspection/types'; | ||||
| import { listByIds } from '@/api/system/oss'; | ||||
| import { downLoadOss, listByIds } from '@/api/system/oss'; | ||||
| const { proxy } = getCurrentInstance() as ComponentInternalInstance; | ||||
| import { dayjs } from 'element-plus'; | ||||
| const { quality_inspection_check_type, quality_inspection_status_type } = toRefs<any>( | ||||
| @ -127,8 +129,8 @@ const rectificationFileList = ref<any[]>(); | ||||
| const inspectionType = computed(() => { | ||||
|   let imgName = 'successLogo'; | ||||
|   if (safetyInspectionDetail.value?.inspectionStatus == '2') imgName = 'rectification'; | ||||
|   if (safetyInspectionDetail.value?.inspectionStatus == '1') imgName = 'successVerification'; | ||||
|   if (safetyInspectionDetail.value?.inspectionStatus == '2') imgName = 'danggerVerification'; | ||||
|   if (safetyInspectionDetail.value?.verificationType == '1') imgName = 'successVerification'; | ||||
|   if (safetyInspectionDetail.value?.verificationType == '2') imgName = 'danggerVerification'; | ||||
|   return imgName; | ||||
| }); | ||||
|  | ||||
| @ -149,8 +151,12 @@ const get = async () => { | ||||
|   } | ||||
| }; | ||||
|  | ||||
| const handleExport = async () => { | ||||
|   await downLoadOss({ id: safetyInspectionDetail.value.id }, '/quality/qualityInspection/export/word', '整改通知单.zip'); | ||||
| }; | ||||
|  | ||||
| onMounted(() => { | ||||
|   //   get(); | ||||
|   get(); | ||||
| }); | ||||
|  | ||||
| watch( | ||||
|  | ||||
| @ -55,28 +55,41 @@ | ||||
|       <el-table v-loading="loading" :data="qualityInspectionList" @selection-change="handleSelectionChange"> | ||||
|         <el-table-column type="selection" width="55" align="center" /> | ||||
|         <el-table-column label="主键id" align="center" prop="id" v-if="false" /> | ||||
|         <el-table-column label="填报人" align="center" prop="createBy" /> | ||||
|         <el-table-column label="填报时间" align="center" prop="createTime" width="180"> | ||||
|           <template #default="scope"> | ||||
|             <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {hh}:{mm}:{ss}') }}</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="巡检标题" align="center" prop="inspectionHeadline" /> | ||||
|         <el-table-column label="巡检类型" align="center" prop="inspectionType"> | ||||
|           <template #default="scope"> | ||||
|             <dict-tag :options="quality_inspection_check_type" :value="scope.row.inspectionType" /> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="巡检标题" align="center" prop="inspectionHeadline" /> | ||||
|         <el-table-column label="巡检结果" align="center" prop="inspectionResult" /> | ||||
|         <el-table-column label="工单状态" align="center" prop="inspectionStatus"> | ||||
|         <el-table-column label="巡检结果" align="center" prop="inspectionResult"> | ||||
|           <template #default="scope"> | ||||
|             <el-tooltip placement="top" effect="dark"> | ||||
|               <template #content> | ||||
|                 <div class="max-w-670px">{{ scope.row.inspectionResult }}</div> | ||||
|               </template> | ||||
|               <el-text truncated> | ||||
|                 {{ scope.row.inspectionResult }} | ||||
|               </el-text> | ||||
|             </el-tooltip> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="整改人" align="center" prop="correctorName" /> | ||||
|         <!-- <el-table-column label="工单状态" align="center" prop="inspectionStatus"> | ||||
|           <template #default="scope"> | ||||
|             <dict-tag :options="quality_inspection_status_type" :value="scope.row.inspectionStatus" /> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         </el-table-column> --> | ||||
|         <el-table-column label="备注" align="center" prop="remark" /> | ||||
|         <el-table-column label="创建者" align="center" prop="createBy" /> | ||||
|         <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | ||||
|           <template #default="scope"> | ||||
|             <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|           <template #default="scope"> | ||||
|             <el-tooltip content="验证" placement="top"> | ||||
|             <!-- <el-tooltip content="验证" placement="top"> | ||||
|               <el-button | ||||
|                 link | ||||
|                 type="primary" | ||||
| @ -84,19 +97,13 @@ | ||||
|                 @click="handleUpdate(scope.row)" | ||||
|                 v-hasPermi="['quality:qualityInspection:edit']" | ||||
|               ></el-button> | ||||
|             </el-tooltip> | ||||
|             <el-tooltip content="详情" placement="top"> | ||||
|               <el-button link type="primary" icon="View" @click="handleDetail(scope.row)" v-hasPermi="['quality:qualityInspection:edit']"></el-button> | ||||
|             </el-tooltip> | ||||
|             <el-tooltip content="删除" placement="top"> | ||||
|               <el-button | ||||
|                 link | ||||
|                 type="primary" | ||||
|                 icon="Delete" | ||||
|                 @click="handleDelete(scope.row)" | ||||
|                 v-hasPermi="['quality:qualityInspection:remove']" | ||||
|               ></el-button> | ||||
|             </el-tooltip> | ||||
|             </el-tooltip> --> | ||||
|             <el-button link type="primary" icon="View" @click="handleDetail(scope.row)" v-hasPermi="['quality:qualityInspection:edit']"> | ||||
|               详情 | ||||
|             </el-button> | ||||
|             <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['quality:qualityInspection:remove']"> | ||||
|               删除 | ||||
|             </el-button> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
| @ -191,7 +198,7 @@ const qualityInspectionFormRef = ref<ElFormInstance>(); | ||||
|  | ||||
| const dialog = reactive<DialogOption>({ | ||||
|   visible: false, | ||||
|   details: true, | ||||
|   details: false, | ||||
|   title: '' | ||||
| }); | ||||
|  | ||||
|  | ||||
| @ -211,7 +211,7 @@ const handleSelectionChange = (selection: QuestionUserAnswerVO[]) => { | ||||
| /** 批量下载按钮操作 */ | ||||
| const handleDownload = async () => { | ||||
|   const _ids = ids.value; | ||||
|   await downLoadOss(_ids); | ||||
|   await downLoadOss({ idList: _ids }, '/safety/questionUserAnswer/exportFile', '安全考试.zip'); | ||||
| }; | ||||
| /** 下载单个按钮操作 */ | ||||
| const downloadOssOne = async (row?: QuestionUserAnswerVO) => { | ||||
|  | ||||
| @ -99,7 +99,7 @@ | ||||
|  | ||||
|   <!-- </el-card> --> | ||||
|   <div class="dialog-footer"> | ||||
|     <div class="btn-item"> | ||||
|     <div class="btn-item" @click="handleExport"> | ||||
|       <img src="../../../../assets/icons/svg/derived.png" /> | ||||
|       <span>导出</span> | ||||
|     </div> | ||||
| @ -114,7 +114,7 @@ | ||||
| import { useUserStoreHook } from '@/store/modules/user'; | ||||
| import { SafetyInspectionVO } from '@/api/safety/safetyInspection/types'; | ||||
| import { getSafetyInspection } from '@/api/safety/safetyInspection'; | ||||
| import { listByIds } from '@/api/system/oss'; | ||||
| import { downLoadOss, listByIds } from '@/api/system/oss'; | ||||
| import { OssVO } from '@/api/system/oss/types'; | ||||
| import dayjs from 'dayjs'; | ||||
|  | ||||
| @ -163,6 +163,10 @@ const get = async () => { | ||||
|   loading.value = false; | ||||
| }; | ||||
|  | ||||
| const handleExport = async () => { | ||||
|   await downLoadOss({ id: safetyInspectionDetail.value.id }, '/safety/safetyInspection/export/word', '安全生产监督检查通知书.zip'); | ||||
| }; | ||||
|  | ||||
| onMounted(() => { | ||||
|   console.log('🚀 ~ onMounted ~ props.safetyInspectionId:', props.safetyInspectionId); | ||||
|   get(); | ||||
|  | ||||
| @ -70,7 +70,18 @@ | ||||
|             <dict-tag :options="safety_inspection_violation_type" :value="scope.row.violationType" /> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="巡检结果" align="center" prop="inspectionResult" /> | ||||
|         <el-table-column label="巡检结果" align="center" prop="inspectionResult"> | ||||
|           <template #default="scope"> | ||||
|             <el-tooltip placement="top" effect="dark"> | ||||
|               <template #content> | ||||
|                 <div class="max-w-670px">{{ scope.row.inspectionResult }}</div> | ||||
|               </template> | ||||
|               <el-text truncated> | ||||
|                 {{ scope.row.inspectionResult }} | ||||
|               </el-text> | ||||
|             </el-tooltip> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="整改人" align="center" prop="correctorName" /> | ||||
|         <el-table-column label="复查状态" align="center" prop="reviewType"> | ||||
|           <template #default="scope"> | ||||
|  | ||||
| @ -90,7 +90,7 @@ | ||||
|           <el-date-picker clearable v-model="form.scopeEnd" type="date" value-format="YYYY-MM-DD" placeholder="请选择周期范围结束" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="文件位置" prop="path"> | ||||
|           <file-upload v-model="form.path" :file-size="20" :limit="1" :file-type="['doc', 'docx']" /> | ||||
|           <div><file-upload v-model="form.path" :file-size="20" :limit="1" :file-type="['doc', 'docx']" /></div> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="备注" prop="remark"> | ||||
|           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user