Files
zgty-mas-m/pages/device/periodCheckList/detail.vue
2025-11-27 16:12:25 +08:00

119 lines
3.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<up-popup :show="visible" mode="right" closeable @close="handleClose" @open="handleOpen">
<uni-section titleFontSize="20px" type="line" title="设备期间核查信息"> </uni-section>
<scroll-view scroll-y="true" class="content">
<up-row class="flex-wrap">
<up-col :span="gridCol"
>核查对象
<text class="value">{{ detailInfo.deviceName }}</text>
</up-col>
<up-col span="4"
>别名
<text class="value">{{ detailInfo.alias }}</text>
</up-col>
<up-col span="4"
>核查日期
<text class="value">{{ detailInfo.checkDate }}</text>
</up-col>
<up-col :span="gridCol"
>核查方法
<text class="value">{{ detailInfo.checkAccording }}</text>
</up-col>
</up-row>
<up-row class="flex-wrap">
<up-col span="12"
>核查方法描述
<text class="value">{{ detailInfo.checkAccordingRemark }}</text>
</up-col>
<up-col span="12"
>核查记录
<up-parse style="background: #f3f4f6" :content="processedContent"></up-parse>
</up-col>
</up-row>
<up-row>
<up-col span="12"
>备注
<text class="value">{{ detailInfo.checkRemark }}</text>
</up-col>
</up-row>
<wf-comment :commentWf="commentWf" />
</scroll-view>
</up-popup>
</template>
<script setup>
import { ref, reactive, onMounted, watch, computed } from 'vue'
import { getImgBaseUrl } from '@/defaultBaseUrl'
import { useGridCol } from '@/nx/hooks/useGridCol'
const { gridCol } = useGridCol([700], [6, 4])
const props = defineProps({
show: {
type: Boolean,
default: false
},
checkInfo: {
type: Object
}
})
const visible = ref(props.show)
// 监听外部传入的show属性变化
watch(
() => props.show,
newVal => {
visible.value = newVal
}
)
let detailInfo = ref({})
// / 处理富文本内容
const processedContent = computed(() => {
if (!detailInfo.value.checkContent) {
return ''
}
return detailInfo.value.checkContent.replace(
/<img([^>]+?)src="((?!http)[^"]*?)(file\/[^"]*)"/gi,
(match, attributes, prefix, filePath) => {
return `<img${attributes}src="${getImgBaseUrl()}/${filePath}"`
}
)
})
const emit = defineEmits(['close', 'open'])
function handleClose() {
emit('close')
}
let commentWf = ref([])
function handleOpen() {
detailInfo.value = props.checkInfo
if (props.checkInfo.commentJson) {
try {
commentWf.value = JSON.parse(props.checkInfo.commentJson)
} catch (error) {
uni.showToast({
title: '解析数据错误',
icon: 'none'
})
}
}
}
</script>
<style lang="scss" scoped>
.content {
font-size: 18px;
height: 85vh;
width: 80vw;
padding: 10px;
.u-row {
border-bottom: 1px solid #eee;
padding: 10px 0;
}
.value {
color: #666;
font-size: 16px;
}
}
:deep(.uicon-close) {
font-size: 22px !important;
}
</style>