修复崩溃问题

This commit is contained in:
wangchengming 2025-11-21 15:52:04 +08:00
parent f81e56e167
commit 7a7d550a77

View File

@ -215,6 +215,8 @@ export default {
},
data() {
return {
// ID
currentEditId: null,
formGroup,
AEform: {
formModel: {
@ -242,12 +244,26 @@ export default {
this.getMediaType();
const rawData = await cityDataCache.getCityData();
this.cityList = Object.freeze(rawData);
if (this.$route.query.id) {
this.getDetailData()
}
},
mounted() {
if (this.$route.query.id) {
this.getDetailData()
}
},
watch: {
'$route.query.id': {
immediate: true,
handler(newId) {
if (newId !== this.currentEditId) {
this.getDetailData();
}
}
}
},
computed: {
contractMoney() {
// 使
@ -263,53 +279,82 @@ export default {
},
},
methods: {
resetFormData() {
this.AEform.formModel = {};
this.mediaTableData = [];
this.paymentTableData = [];
// key
this.mediaTableKey = Date.now();
this.paymentTableKey = Date.now();
this.formKey = Date.now();
//
this.$nextTick(() => {
const resetFileUpload = (ref) => {
if (ref && ref.setFileList) {
ref.setFileList([]);
}
};
resetFileUpload(this.$refs.contractAccess);
resetFileUpload(this.$refs.detectPicAttr);
resetFileUpload(this.$refs.upPrint);
resetFileUpload(this.$refs.nextPrint);
resetFileUpload(this.$refs.exchangePrint);
resetFileUpload(this.$refs.mediaLink);
});
},
async getDetailData() {
try {
const res = await getAction(`/system/purchase/${this.$route.query.id}`);
if (this.$route.query.id) {
this.resetFormData()
this.currentEditId = this.$route.query.id;
const res = await getAction(`/system/purchase/${this.$route.query.id}`);
// 使
const formModel = { ...res.data };
// 使
const formModel = { ...res.data };
// 使 Object.freeze
if (formModel.purchaseMediaVoList) {
const mediaData = formModel.purchaseMediaVoList.map(item => ({
...item,
cityIds: item.cityIds ? item.cityIds.split(',').map(id => Number(id)) : []
}));
this.mediaTableData = Object.freeze(mediaData);
delete formModel.purchaseMediaVoList;
} else {
this.mediaTableData = Object.freeze([]);
// 使 Object.freeze
if (formModel.purchaseMediaVoList) {
const mediaData = formModel.purchaseMediaVoList.map(item => ({
...item,
cityIds: item.cityIds ? item.cityIds.split(',').map(id => Number(id)) : []
}));
this.mediaTableData = Object.freeze(mediaData);
delete formModel.purchaseMediaVoList;
} else {
this.mediaTableData = Object.freeze([]);
}
if (formModel.conPurchasePaymentVo) {
this.paymentTableData = Object.freeze([...formModel.conPurchasePaymentVo]);
delete formModel.conPurchasePaymentVo;
} else {
this.paymentTableData = Object.freeze([]);
}
//
this.AEform.formModel = formModel;
// 线
this.$nextTick(() => {
if (this._isDestroyed) return;
const setFileList = (ref, list) => {
if (ref && list) {
ref.setFileList(list);
}
};
setFileList(this.$refs.contractAccess, res.data.contractAccessList);
setFileList(this.$refs.detectPicAttr, res.data.detectPicAttrList);
setFileList(this.$refs.upPrint, res.data.upPrintList);
setFileList(this.$refs.nextPrint, res.data.nextPrintList);
setFileList(this.$refs.exchangePrint, res.data.exchangePrintList);
setFileList(this.$refs.mediaLink, res.data.mediaLinkList);
});
}
if (formModel.conPurchasePaymentVo) {
this.paymentTableData = Object.freeze([...formModel.conPurchasePaymentVo]);
delete formModel.conPurchasePaymentVo;
} else {
this.paymentTableData = Object.freeze([]);
}
//
this.AEform.formModel = formModel;
// 线
this.$nextTick(() => {
if (this._isDestroyed) return;
const setFileList = (ref, list) => {
if (ref && list) {
ref.setFileList(list);
}
};
setFileList(this.$refs.contractAccess, res.data.contractAccessList);
setFileList(this.$refs.detectPicAttr, res.data.detectPicAttrList);
setFileList(this.$refs.upPrint, res.data.upPrintList);
setFileList(this.$refs.nextPrint, res.data.nextPrintList);
setFileList(this.$refs.exchangePrint, res.data.exchangePrintList);
setFileList(this.$refs.mediaLink, res.data.mediaLinkList);
});
} catch (error) {
console.error('获取详情失败:', error);
}