puzhibing
6 天以前 0db8c9b94a9ac655549d5eba5c2a6c92ac386c06
laboratory/src/views/chemistQa/projectTesting/addDetectionReport.vue
@@ -1,4 +1,4 @@
<template>
<template>
    <div class="add-container" :loading="loading">
        <Card v-loading="loading">
            <div class="header-title" style="width: 100%;">
@@ -126,7 +126,9 @@
                    { required: true, message: '请选择检测项', trigger: 'change' }
                ]
            },
            queryForm: {}
            queryForm: {},
            loadedItemId: '', // 当前已加载记录关联的检测项id,用于keep-alive重新进入时判断是否变化
            loadedReportId: '', // 当前已加载记录的id,用于keep-alive重新进入时判断是否变化
        }
    },
@@ -136,36 +138,62 @@
        this.form.commitPersonId = JSON.parse(sessionStorage.getItem('userInfo')).userId
        this.form.developDate = new Date().toISOString().split('T')[0];
        // this.form.itemId = this.$route.query.itemId
        if (this.$route.query.itemId) {
            getDetail(this.$route.query.itemId).then(res => {
                if (res) {
                    let item = {
                        teamName: res.projectTeamVO.teamName,
                        teamId: res.teamId,
                        remark: res.remark,
                        itemName: res.itemName,
                        itemCode: res.itemCode,
                        createBy: res.createBy,
                        createTime: res.createTime
                    }
                    this.form.itemId = this.$route.query.itemId
                    this.form.teamId = this.$route.query.teamId
                    this.tableData = [{ ...item }]
                }
            })
        }
        if (this.$route.query.id) {
            this.getDetail()
        }
        this.loadRouteData();
    },
    activated() {
        // 页面被 keep-alive 缓存,再次打开其他记录时重新加载,避免显示上一次的旧数据
        this.loadRouteData();
    },
    computed: {
    ...mapState(["tagList", "isFold"]),
  },
    methods: {
        loadRouteData() {
            const routeItemId = this.$route.query.itemId || '';
            const routeId = this.$route.query.id || '';
            if (routeItemId === this.loadedItemId && routeId === this.loadedReportId) {
                return;
            }
            this.loadedItemId = routeItemId;
            this.loadedReportId = routeId;
            // 重置开发人、日期等默认信息
            this.form.developPerson = JSON.parse(sessionStorage.getItem('userInfo')).nickName;
            this.form.developPersonName = JSON.parse(sessionStorage.getItem('userInfo')).nickName;
            this.form.commitPersonId = JSON.parse(sessionStorage.getItem('userInfo')).userId
            this.form.developDate = new Date().toISOString().split('T')[0];
            // 重置表单与文件,防止显示上一次记录的数据
            this.form.itemId = '';
            this.form.teamId = '';
            this.tableData = [];
            this.fileList = [];
            this.form.qaReportFiles = [];
            // 此段逻辑从 mounted() 中抽出,路由参数变化时重新加载
            if (this.$route.query.itemId) {
                getDetail(this.$route.query.itemId).then(res => {
                    if (res) {
                        let item = {
                            teamName: res.projectTeamVO.teamName,
                            teamId: res.teamId,
                            remark: res.remark,
                            itemName: res.itemName,
                            itemCode: res.itemCode,
                            createBy: res.createBy,
                            createTime: res.createTime
                        }
                        this.form.itemId = this.$route.query.itemId
                        this.form.teamId = this.$route.query.teamId
                        this.tableData = [{ ...item }]
                    }
                })
            }
            if (this.$route.query.id) {
                this.getDetail()
            }
        },
        getDetail() {
            getDetailInfo({ id: this.$route.query.id }).then(res => {
                if (res) {