|
|
@@ -52,6 +52,24 @@
|
|
|
@close="handlePdfPreviewClose"
|
|
|
/>
|
|
|
|
|
|
+ <!-- 查看版本详情弹窗 -->
|
|
|
+ <CustomDialog v-model="showVersionDetail" title="查看详情" :show-footer="false" width="1000px" close-on-click-modal>
|
|
|
+ <div class="flex gap-2 mb-4" v-if="currentVersionRow">
|
|
|
+ <el-button v-if="currentVersionRow.newReportUrl" type="success" plain @click="handleViewPdfByUrl(currentVersionRow.newReportUrl)">
|
|
|
+ 查看原文件PDF
|
|
|
+ </el-button>
|
|
|
+ <el-button v-if="currentVersionRow.oldReportUrl" type="warning" plain @click="handleViewPdfByUrl(currentVersionRow.oldReportUrl)">
|
|
|
+ 查看旧文件PDF
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <SmartTable
|
|
|
+ v-model:columns="versionColumns"
|
|
|
+ :data="versionCompareList"
|
|
|
+ :is-pagination="false"
|
|
|
+ :show-refresh="false"
|
|
|
+ />
|
|
|
+ </CustomDialog>
|
|
|
+
|
|
|
</template>
|
|
|
|
|
|
<script lang="tsx" setup name="ReportArchivingBoilerDetail">
|
|
|
@@ -421,7 +439,7 @@ const payStatusMap = {
|
|
|
}
|
|
|
const openModalConfig: ModelConfig = {
|
|
|
history: {
|
|
|
- modalUrl: '/pressure2/boiler-task-order-item-report-version/page',
|
|
|
+ modalUrl: '/pressure2/boiler-task-order-item-report-version-archiving/page',
|
|
|
columns: [
|
|
|
{
|
|
|
type: 'index',
|
|
|
@@ -432,10 +450,29 @@ const openModalConfig: ModelConfig = {
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- prop: 'versionNoStr',
|
|
|
+ prop: 'versionNo',
|
|
|
label: '历史版本',
|
|
|
fieldProps: {
|
|
|
align: 'center'
|
|
|
+ },
|
|
|
+ render: (row) => {
|
|
|
+ const label = (row.dynamicTbCode || '') + '-' + (row.versionNo || '')
|
|
|
+ return (
|
|
|
+ <el-button type="primary" link onClick={() => { handleViewPdfByUrl(row.newReportUrl) }}>
|
|
|
+ {label}
|
|
|
+ </el-button>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'reportType',
|
|
|
+ label: '记录/报告',
|
|
|
+ fieldProps: {
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 100
|
|
|
+ },
|
|
|
+ render: (row) => {
|
|
|
+ return row.reportType === 200 ? '报告' : '记录'
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
@@ -443,20 +480,30 @@ const openModalConfig: ModelConfig = {
|
|
|
label: '修改原因',
|
|
|
fieldProps: {
|
|
|
align: 'center'
|
|
|
- },
|
|
|
- render: (_row, value) => {
|
|
|
- return value || '人工修改'
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- prop: 'updateTime',
|
|
|
- label: '修改时间',
|
|
|
+ prop: 'createTime',
|
|
|
+ label: '生效时间',
|
|
|
fieldProps: {
|
|
|
align: 'center'
|
|
|
},
|
|
|
render: (_row, value) => {
|
|
|
return formatDate(value)
|
|
|
}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'operation',
|
|
|
+ label: '操作',
|
|
|
+ fieldProps: {
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 100
|
|
|
+ },
|
|
|
+ render: (row) => {
|
|
|
+ return (
|
|
|
+ <el-button type="primary" link onClick={() => handleShowVersionDetail(row)}>查看详情</el-button>
|
|
|
+ )
|
|
|
+ }
|
|
|
}
|
|
|
],
|
|
|
modalTitle: '历史版本'
|
|
|
@@ -656,9 +703,9 @@ const handleOpenModal = (row: Recordable, type: ModalType) => {
|
|
|
break
|
|
|
case 'history':
|
|
|
config.modalParams = {
|
|
|
- ...config.modalParams,
|
|
|
- businessType: 0,
|
|
|
- orderItemReportId: row.reportId
|
|
|
+ reportId: row.reportId,
|
|
|
+ sortField: 'reportType,versionNo',
|
|
|
+ sortOrder: 'asc,asc'
|
|
|
}
|
|
|
break
|
|
|
case 'nonTaxQuery':
|
|
|
@@ -891,6 +938,29 @@ const handleAttachmentDownload = async (url: string, name?: string) => {
|
|
|
onMounted(() => {
|
|
|
getDetail()
|
|
|
})
|
|
|
+
|
|
|
+// 版本详情对比
|
|
|
+const showVersionDetail = ref(false)
|
|
|
+const currentVersionRow = ref<Recordable | null>(null)
|
|
|
+const versionCompareList = ref<Recordable[]>([])
|
|
|
+const versionColumns = ref([
|
|
|
+ { label: '字段名', prop: 'displayName' },
|
|
|
+ { label: '修改前', prop: 'oldValue', render: (_row: any, value: any) => value || '-' },
|
|
|
+ { label: '修改后', prop: 'newValue', render: (_row: any, value: any) => <el-text type="primary">{value || '-'}</el-text> }
|
|
|
+])
|
|
|
+
|
|
|
+const handleShowVersionDetail = (row: Recordable) => {
|
|
|
+ currentVersionRow.value = row
|
|
|
+ const oldMap = row.oldPrepareJson ? JSON.parse(row.oldPrepareJson) : {}
|
|
|
+ const newMap = row.newPrepareJson ? JSON.parse(row.newPrepareJson) : {}
|
|
|
+ const allKeys = new Set([...Object.keys(oldMap), ...Object.keys(newMap)])
|
|
|
+ versionCompareList.value = [...allKeys].map(key => ({
|
|
|
+ displayName: key,
|
|
|
+ oldValue: oldMap[key] || '-',
|
|
|
+ newValue: newMap[key] || '-'
|
|
|
+ }))
|
|
|
+ showVersionDetail.value = true
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|