diff --git a/src/views/contract/launch/components/mixedSignModal.vue b/src/views/contract/launch/components/mixedSignModal.vue index 19bca5f..a06d61e 100644 --- a/src/views/contract/launch/components/mixedSignModal.vue +++ b/src/views/contract/launch/components/mixedSignModal.vue @@ -15,6 +15,9 @@ wrap-class-name="seal-full-modal" >
+
+ +
@@ -688,6 +691,7 @@ function getResponseMessage(res, fallback = "操作失败") { } const visible = ref(false); +const modalLoading = ref(false); const businessRecord = ref(null); const emit = defineEmits(["business-updated"]); const completeSignDate = ref(""); @@ -1018,6 +1022,7 @@ function resetModalState(record = null) { } async function showModal(contractIdParam, businessRecordParam) { + modalLoading.value = true; let contractIdToLoad = ""; let contextRecord = null; @@ -1040,6 +1045,7 @@ async function showModal(contractIdParam, businessRecordParam) { await loadContract(contractIdToLoad); await nextTick(); calcDisplaySize(); + modalLoading.value = false; return; } @@ -1060,6 +1066,7 @@ async function showModal(contractIdParam, businessRecordParam) { } } catch {} } + modalLoading.value = false; } defineExpose({ showModal }); @@ -1866,6 +1873,17 @@ watch(visible, (value) => { overflow: hidden; display: flex; flex-direction: column; + position: relative; +} + +.platform-loading-mask { + position: absolute; + inset: 0; + z-index: 999; + display: flex; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.7); } .platform-layout {