检查工单
This commit is contained in:
@ -1,4 +1,6 @@
|
|||||||
export interface QualityInspectionVO {
|
export interface QualityInspectionVO {
|
||||||
|
verificationType: string;
|
||||||
|
measure: string;
|
||||||
/**
|
/**
|
||||||
* 巡检类型
|
* 巡检类型
|
||||||
*/
|
*/
|
||||||
|
@ -28,6 +28,6 @@ export function delOss(ossId: string | number | Array<string | number>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 下载OSS对象存储
|
// 下载OSS对象存储
|
||||||
export function downLoadOss(ossId: string | number | Array<string | number>) {
|
export function downLoadOss(ossId: { id?: string | number; idList?: string | number | Array<string | number> }, url: string, fileName: string) {
|
||||||
return download('/safety/questionUserAnswer/exportFile', { idList: ossId }, '安全考试.zip');
|
return download(url, ossId, fileName);
|
||||||
}
|
}
|
||||||
|
@ -19,11 +19,12 @@
|
|||||||
:data="data"
|
:data="data"
|
||||||
>
|
>
|
||||||
<slot>
|
<slot>
|
||||||
|
<div>
|
||||||
<!-- 上传按钮 -->
|
<!-- 上传按钮 -->
|
||||||
<el-button v-if="!isConstruction && !isImportInfo" type="primary">选取文件</el-button>
|
<el-button v-if="!isConstruction && !isImportInfo" type="primary">选取文件</el-button>
|
||||||
<el-button v-if="isImportInfo" type="warning" plain icon="Edit">导入员工资料 </el-button>
|
<el-button v-if="isImportInfo" type="warning" plain icon="Edit">导入员工资料 </el-button>
|
||||||
<!-- 上传提示 -->
|
<!-- 上传提示 -->
|
||||||
<div v-if="showTip" class="el-upload__tip">
|
<div v-if="showTip" class="el-upload__tip" @click.stop>
|
||||||
请上传
|
请上传
|
||||||
<template v-if="fileSize">
|
<template v-if="fileSize">
|
||||||
大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
|
大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
|
||||||
@ -39,6 +40,7 @@
|
|||||||
class="upload-file-list el-upload-list el-upload-list--text"
|
class="upload-file-list el-upload-list el-upload-list--text"
|
||||||
name="el-fade-in-linear"
|
name="el-fade-in-linear"
|
||||||
tag="ul"
|
tag="ul"
|
||||||
|
@click.stop
|
||||||
>
|
>
|
||||||
<li v-for="(file, index) in fileList" :key="file.uid" class="el-upload-list__item ele-upload-list__item-content">
|
<li v-for="(file, index) in fileList" :key="file.uid" class="el-upload-list__item ele-upload-list__item-content">
|
||||||
<el-link :href="`${file.url}`" :underline="false" target="_blank">
|
<el-link :href="`${file.url}`" :underline="false" target="_blank">
|
||||||
@ -49,6 +51,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
|
</div>
|
||||||
</slot>
|
</slot>
|
||||||
|
|
||||||
<el-icon v-if="isConstruction"><Plus /></el-icon>
|
<el-icon v-if="isConstruction"><Plus /></el-icon>
|
||||||
@ -214,6 +217,8 @@ const handleUploadSuccess = (res: any, file: UploadFile) => {
|
|||||||
|
|
||||||
// 删除文件
|
// 删除文件
|
||||||
const handleDelete = async (index: string | number, type?: string) => {
|
const handleDelete = async (index: string | number, type?: string) => {
|
||||||
|
console.log('🚀 ~ handleDelete ~ index:', index);
|
||||||
|
|
||||||
await proxy?.$modal.confirm('是否确认删除此文件?').finally();
|
await proxy?.$modal.confirm('是否确认删除此文件?').finally();
|
||||||
if (type === 'ossId') {
|
if (type === 'ossId') {
|
||||||
delOss(index);
|
delOss(index);
|
||||||
|
@ -113,7 +113,7 @@
|
|||||||
|
|
||||||
<!-- </el-card> -->
|
<!-- </el-card> -->
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<div class="btn-item">
|
<div class="btn-item" @click="handleExport">
|
||||||
<img src="../../../../assets/icons/svg/derived.png" />
|
<img src="../../../../assets/icons/svg/derived.png" />
|
||||||
<span>导出</span>
|
<span>导出</span>
|
||||||
</div>
|
</div>
|
||||||
@ -130,7 +130,7 @@ import { QualityConstructionLogVO, QualityConstructionLogQuery, QualityConstruct
|
|||||||
import { dayjs } from 'element-plus';
|
import { dayjs } from 'element-plus';
|
||||||
import { useUserStoreHook } from '@/store/modules/user';
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
import { s } from 'node_modules/vite/dist/node/types.d-aGj9QkWt';
|
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 safetyInspectionDetail = ref<QualityConstructionLogVO>();
|
||||||
const checkFileList = ref<any[]>();
|
const checkFileList = ref<any[]>();
|
||||||
// 获取用户 store
|
// 获取用户 store
|
||||||
@ -159,6 +159,9 @@ const get = async () => {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const handleExport = async () => {
|
||||||
|
await downLoadOss({ id: safetyInspectionDetail.value.id }, '/quality/qualityConstructionLog/export/word', '施工日志.zip');
|
||||||
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
get();
|
get();
|
||||||
|
@ -47,8 +47,30 @@
|
|||||||
<el-table-column type="selection" width="55" align="center" />
|
<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" type="index" width="70" />
|
||||||
|
|
||||||
<el-table-column label="生产情况" align="center" prop="productionStatus" />
|
<el-table-column label="生产情况" align="center" prop="productionStatus" width="410">
|
||||||
<el-table-column label="技术质量安全工作" align="center" prop="technologyQuality" />
|
<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">
|
<el-table-column label="发生日期" align="center" prop="happenDate" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.happenDate, '{y}-{m}-{d}') }}</span>
|
<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" prop="remark" />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tooltip content="详情" placement="top">
|
<el-button link type="primary" icon="View" @click="handleUpdate(scope.row)">详情</el-button>
|
||||||
<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-tooltip>
|
删除
|
||||||
<el-tooltip content="删除" placement="top">
|
</el-button>
|
||||||
<el-button
|
|
||||||
link
|
|
||||||
type="primary"
|
|
||||||
icon="Delete"
|
|
||||||
@click="handleDelete(scope.row)"
|
|
||||||
v-hasPermi="['quality:qualityConstructionLog:remove']"
|
|
||||||
></el-button>
|
|
||||||
</el-tooltip>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -93,9 +107,13 @@ import {
|
|||||||
} from '@/api/quality/qualityConstructionLog';
|
} from '@/api/quality/qualityConstructionLog';
|
||||||
import { QualityConstructionLogVO, QualityConstructionLogQuery, QualityConstructionLogForm } from '@/api/quality/qualityConstructionLog/types';
|
import { QualityConstructionLogVO, QualityConstructionLogQuery, QualityConstructionLogForm } from '@/api/quality/qualityConstructionLog/types';
|
||||||
import QualityConstructionDetail from './cpmponent/qualityConstructionDetail.vue';
|
import QualityConstructionDetail from './cpmponent/qualityConstructionDetail.vue';
|
||||||
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
|
// 获取用户 store
|
||||||
|
const userStore = useUserStoreHook();
|
||||||
|
// 从 store 中获取项目列表和当前选中的项目
|
||||||
|
const currentProject = computed(() => userStore.selectedProject);
|
||||||
const qualityConstructionLogList = ref<QualityConstructionLogVO[]>([]);
|
const qualityConstructionLogList = ref<QualityConstructionLogVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -115,7 +133,7 @@ const dialog = reactive<DialogOption>({
|
|||||||
|
|
||||||
const initFormData: QualityConstructionLogForm = {
|
const initFormData: QualityConstructionLogForm = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
projectId: undefined,
|
projectId: currentProject.value.id,
|
||||||
happenDate: undefined,
|
happenDate: undefined,
|
||||||
productionStatus: undefined,
|
productionStatus: undefined,
|
||||||
technologyQuality: undefined,
|
technologyQuality: undefined,
|
||||||
@ -127,7 +145,7 @@ const data = reactive<PageData<QualityConstructionLogForm, QualityConstructionLo
|
|||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
projectId: undefined,
|
projectId: currentProject.value.id,
|
||||||
happenDate: undefined,
|
happenDate: undefined,
|
||||||
params: {}
|
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(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<div class="resultIcon"><img :src="'../../../../../src/assets/icons/svg/' + inspectionType + '.png'" alt="" /></div>
|
<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>
|
<h2 style="text-align: center; margin-top: 5px; font-weight: bold">整改通知单</h2>
|
||||||
<el-row>
|
<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-col :span="12" style="text-align: right">填报时间:{{ safetyInspectionDetail?.createTime }}</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-descriptions :column="2" border style="margin-top: 8px" label-width="160px" size="large">
|
<el-descriptions :column="2" border style="margin-top: 8px" label-width="160px" size="large">
|
||||||
@ -19,17 +19,19 @@
|
|||||||
{{ safetyInspectionDetail?.correctorName }}
|
{{ safetyInspectionDetail?.correctorName }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label-align="center" label="整改日期" class-name="zebra">
|
<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>
|
||||||
<el-descriptions-item label-align="center" label="巡检类型" label-class-name="white">
|
<el-descriptions-item label-align="center" label="巡检类型" label-class-name="white">
|
||||||
<dict-tag :options="quality_inspection_check_type" :value="safetyInspectionDetail?.inspectionType" />
|
<dict-tag :options="quality_inspection_check_type" :value="safetyInspectionDetail?.inspectionType" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label-align="center" label="填报人" label-class-name="white"
|
<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>
|
||||||
<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"
|
<el-descriptions-item label-align="center" label="要求回复期限" class-name="zebra"
|
||||||
>{{ safetyInspectionDetail?.replyPeriodDate }}
|
>{{ parseTime(safetyInspectionDetail?.replyPeriodDate, '{y}-{m}-{d}') }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<el-descriptions border direction="vertical" size="large">
|
<el-descriptions border direction="vertical" size="large">
|
||||||
@ -64,7 +66,7 @@
|
|||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<el-descriptions :column="2" border label-width="160px" size="large">
|
<el-descriptions :column="2" border label-width="160px" size="large">
|
||||||
<el-descriptions-item label-align="center" label="整改措施及完成情况" :span="2" label-class-name="white">
|
<el-descriptions-item label-align="center" label="整改措施及完成情况" :span="2" label-class-name="white">
|
||||||
{{ safetyInspectionDetail?.measure }}
|
{{ safetyInspectionDetail?.verificationResult }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label-align="center" label="整改附件" :span="2" label-class-name="white">
|
<el-descriptions-item label-align="center" label="整改附件" :span="2" label-class-name="white">
|
||||||
<el-space wrap>
|
<el-space wrap>
|
||||||
@ -73,7 +75,7 @@
|
|||||||
<image-preview :src="item.url" width="200px" />
|
<image-preview :src="item.url" width="200px" />
|
||||||
</span>
|
</span>
|
||||||
<span v-else>
|
<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>
|
<span> {{ item.originalName }} </span>
|
||||||
</el-link>
|
</el-link>
|
||||||
</span>
|
</span>
|
||||||
@ -94,7 +96,7 @@
|
|||||||
|
|
||||||
<!-- </el-card> -->
|
<!-- </el-card> -->
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<div class="btn-item">
|
<div class="btn-item" @click="handleExport">
|
||||||
<img src="../../../../assets/icons/svg/derived.png" />
|
<img src="../../../../assets/icons/svg/derived.png" />
|
||||||
<span>导出</span>
|
<span>导出</span>
|
||||||
</div>
|
</div>
|
||||||
@ -108,7 +110,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getQualityInspection } from '@/api/quality/qualityInspection';
|
import { getQualityInspection } from '@/api/quality/qualityInspection';
|
||||||
import { QualityInspectionVO } from '@/api/quality/qualityInspection/types';
|
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;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
import { dayjs } from 'element-plus';
|
import { dayjs } from 'element-plus';
|
||||||
const { quality_inspection_check_type, quality_inspection_status_type } = toRefs<any>(
|
const { quality_inspection_check_type, quality_inspection_status_type } = toRefs<any>(
|
||||||
@ -127,8 +129,8 @@ const rectificationFileList = ref<any[]>();
|
|||||||
const inspectionType = computed(() => {
|
const inspectionType = computed(() => {
|
||||||
let imgName = 'successLogo';
|
let imgName = 'successLogo';
|
||||||
if (safetyInspectionDetail.value?.inspectionStatus == '2') imgName = 'rectification';
|
if (safetyInspectionDetail.value?.inspectionStatus == '2') imgName = 'rectification';
|
||||||
if (safetyInspectionDetail.value?.inspectionStatus == '1') imgName = 'successVerification';
|
if (safetyInspectionDetail.value?.verificationType == '1') imgName = 'successVerification';
|
||||||
if (safetyInspectionDetail.value?.inspectionStatus == '2') imgName = 'danggerVerification';
|
if (safetyInspectionDetail.value?.verificationType == '2') imgName = 'danggerVerification';
|
||||||
return imgName;
|
return imgName;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -149,8 +151,12 @@ const get = async () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleExport = async () => {
|
||||||
|
await downLoadOss({ id: safetyInspectionDetail.value.id }, '/quality/qualityInspection/export/word', '整改通知单.zip');
|
||||||
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// get();
|
get();
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
@ -55,28 +55,41 @@
|
|||||||
<el-table v-loading="loading" :data="qualityInspectionList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="qualityInspectionList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<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="主键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">
|
<el-table-column label="巡检类型" align="center" prop="inspectionType">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="quality_inspection_check_type" :value="scope.row.inspectionType" />
|
<dict-tag :options="quality_inspection_check_type" :value="scope.row.inspectionType" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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="inspectionResult" />
|
<template #default="scope">
|
||||||
<el-table-column label="工单状态" align="center" prop="inspectionStatus">
|
<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">
|
<template #default="scope">
|
||||||
<dict-tag :options="quality_inspection_status_type" :value="scope.row.inspectionStatus" />
|
<dict-tag :options="quality_inspection_status_type" :value="scope.row.inspectionStatus" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column label="备注" align="center" prop="remark" />
|
<el-table-column label="备注" align="center" prop="remark" />
|
||||||
<el-table-column label="创建者" align="center" prop="createBy" />
|
<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">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tooltip content="验证" placement="top">
|
<!-- <el-tooltip content="验证" placement="top">
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -84,19 +97,13 @@
|
|||||||
@click="handleUpdate(scope.row)"
|
@click="handleUpdate(scope.row)"
|
||||||
v-hasPermi="['quality:qualityInspection:edit']"
|
v-hasPermi="['quality:qualityInspection:edit']"
|
||||||
></el-button>
|
></el-button>
|
||||||
</el-tooltip>
|
</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 link type="primary" icon="View" @click="handleDetail(scope.row)" v-hasPermi="['quality:qualityInspection:edit']"></el-button>
|
详情
|
||||||
</el-tooltip>
|
</el-button>
|
||||||
<el-tooltip content="删除" placement="top">
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['quality:qualityInspection:remove']">
|
||||||
<el-button
|
删除
|
||||||
link
|
</el-button>
|
||||||
type="primary"
|
|
||||||
icon="Delete"
|
|
||||||
@click="handleDelete(scope.row)"
|
|
||||||
v-hasPermi="['quality:qualityInspection:remove']"
|
|
||||||
></el-button>
|
|
||||||
</el-tooltip>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -191,7 +198,7 @@ const qualityInspectionFormRef = ref<ElFormInstance>();
|
|||||||
|
|
||||||
const dialog = reactive<DialogOption>({
|
const dialog = reactive<DialogOption>({
|
||||||
visible: false,
|
visible: false,
|
||||||
details: true,
|
details: false,
|
||||||
title: ''
|
title: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ const handleSelectionChange = (selection: QuestionUserAnswerVO[]) => {
|
|||||||
/** 批量下载按钮操作 */
|
/** 批量下载按钮操作 */
|
||||||
const handleDownload = async () => {
|
const handleDownload = async () => {
|
||||||
const _ids = ids.value;
|
const _ids = ids.value;
|
||||||
await downLoadOss(_ids);
|
await downLoadOss({ idList: _ids }, '/safety/questionUserAnswer/exportFile', '安全考试.zip');
|
||||||
};
|
};
|
||||||
/** 下载单个按钮操作 */
|
/** 下载单个按钮操作 */
|
||||||
const downloadOssOne = async (row?: QuestionUserAnswerVO) => {
|
const downloadOssOne = async (row?: QuestionUserAnswerVO) => {
|
||||||
|
@ -99,7 +99,7 @@
|
|||||||
|
|
||||||
<!-- </el-card> -->
|
<!-- </el-card> -->
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<div class="btn-item">
|
<div class="btn-item" @click="handleExport">
|
||||||
<img src="../../../../assets/icons/svg/derived.png" />
|
<img src="../../../../assets/icons/svg/derived.png" />
|
||||||
<span>导出</span>
|
<span>导出</span>
|
||||||
</div>
|
</div>
|
||||||
@ -114,7 +114,7 @@
|
|||||||
import { useUserStoreHook } from '@/store/modules/user';
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
import { SafetyInspectionVO } from '@/api/safety/safetyInspection/types';
|
import { SafetyInspectionVO } from '@/api/safety/safetyInspection/types';
|
||||||
import { getSafetyInspection } from '@/api/safety/safetyInspection';
|
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 { OssVO } from '@/api/system/oss/types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
|
|
||||||
@ -163,6 +163,10 @@ const get = async () => {
|
|||||||
loading.value = false;
|
loading.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleExport = async () => {
|
||||||
|
await downLoadOss({ id: safetyInspectionDetail.value.id }, '/safety/safetyInspection/export/word', '安全生产监督检查通知书.zip');
|
||||||
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log('🚀 ~ onMounted ~ props.safetyInspectionId:', props.safetyInspectionId);
|
console.log('🚀 ~ onMounted ~ props.safetyInspectionId:', props.safetyInspectionId);
|
||||||
get();
|
get();
|
||||||
|
@ -70,7 +70,18 @@
|
|||||||
<dict-tag :options="safety_inspection_violation_type" :value="scope.row.violationType" />
|
<dict-tag :options="safety_inspection_violation_type" :value="scope.row.violationType" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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="correctorName" />
|
||||||
<el-table-column label="复查状态" align="center" prop="reviewType">
|
<el-table-column label="复查状态" align="center" prop="reviewType">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
<el-date-picker clearable v-model="form.scopeEnd" type="date" value-format="YYYY-MM-DD" placeholder="请选择周期范围结束" />
|
<el-date-picker clearable v-model="form.scopeEnd" type="date" value-format="YYYY-MM-DD" placeholder="请选择周期范围结束" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="文件位置" prop="path">
|
<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>
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
|
Reference in New Issue
Block a user