From f84b7cbd4a31c0c3c1c50b7f754429700eb72e6d Mon Sep 17 00:00:00 2001
From: Flex <q1406482700@163.com>
Date: 星期二, 10 六月 2025 15:00:35 +0800
Subject: [PATCH] 修改模板新建,添加数据校验

---
 easegen-front/src/views/digitalcourse/template/TemplateForm.vue |   49 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 38 insertions(+), 11 deletions(-)

diff --git a/easegen-front/src/views/digitalcourse/template/TemplateForm.vue b/easegen-front/src/views/digitalcourse/template/TemplateForm.vue
index b877e91..2f597cf 100644
--- a/easegen-front/src/views/digitalcourse/template/TemplateForm.vue
+++ b/easegen-front/src/views/digitalcourse/template/TemplateForm.vue
@@ -13,7 +13,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="鑳屾櫙鍥剧墖" prop="templateName">
+          <el-form-item label="鑳屾櫙鍥剧墖" prop="bgImage">
             <el-upload
               v-model:file-list="fileList"
               class="upload-demo"
@@ -98,7 +98,6 @@
                 type="checkbox"
                 v-model="isChecked"
                 class="checkbox-input"
-                @click.stop
               />
             </div>
             <div class="image-checkbox-wrapper" @click="toggleCheck1">
@@ -107,7 +106,6 @@
                 type="checkbox"
                 v-model="isChecked1"
                 class="checkbox-input"
-                @click.stop
               />
             </div>
           </div>
@@ -115,8 +113,8 @@
       </el-row>
     </el-form>
     <template #footer>
-      <el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
-      <el-button @click="dialogVisible = false">{{ t('common.cancel') }}</el-button>
+      <el-button v-loading="IsUploadBack" @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button>
+      <el-button @click="cancale">{{ t('common.cancel') }}</el-button>
     </template>
   </Dialog>
 </template>
@@ -131,6 +129,9 @@
 import {updateFile} from "@/api/infra/file";
 import Vue3DraggableResizable from 'vue3-draggable-resizable'
 import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'
+import { ca } from 'element-plus/es/locale';
+import { rule } from 'postcss';
+import { truncate } from 'lodash-es';
 const getUploadUrl = import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL + '/infra/file/upload'
 const fileList = ref([]);
 const lastUploadedFileUrl = ref('');
@@ -142,11 +143,13 @@
 const isChecked1 = ref(false);
 const toggleCheck = () => {
   isChecked.value = !isChecked.value;
+  console.log(isChecked.value)
   if (isChecked.value==true) {
     formData.value.showPpt=1
   }else if (isChecked.value==false) {
     formData.value.showPpt=0
   }
+  console.log(formData.value.showPpt)
 };
 const toggleCheck1 = () => {
   isChecked1.value =!isChecked1.value;
@@ -156,7 +159,10 @@
     formData.value.showDigitalHuman=0
   }
 }
+// 褰撳墠鏄惁鍦ㄤ笂浼犺儗鏅浘
+const IsUploadBack = ref(false)
 const beforeUpload = (file) => {
+  console.log("beforeUpload")
   const isImage = file.type.startsWith('image/');
   const isLt2M = file.size / 1024 / 1024 < 2;
 
@@ -168,13 +174,16 @@
     ElMessage.error('鍥剧墖澶у皬涓嶈兘瓒呰繃2MB!');
     return false;
   }
+  
   return true;
 };
 async function updataImage(formData1) {
+  IsUploadBack.value = truncate
   const response= await updateFile(formData1)
   console.log(response.data)
   if (response) {
     formData.value.bgImage=response.data
+    IsUploadBack.value = false
     ElMessage.success('涓婁紶鎴愬姛');
   }
 }
@@ -207,8 +216,8 @@
   id: undefined,
   showBackground: 1,
   templateName: undefined,
-  showDigitalHuman: undefined,
-  showPpt: undefined,
+  showDigitalHuman: 0,
+  showPpt: 0,
   pptW: 505,
   pptH: 290,
   pptX: 40,
@@ -219,6 +228,7 @@
   humanY: 92,
   bgImage: undefined,
 })
+
 const formRules = reactive({
   templateName: [{ required: true, message: t('template.name') + t('common.notEmpty'), trigger: 'blur' }],
   showBackground: [{ required: true, message: t('template.isShowBackground') + t('common.notEmpty'), trigger: 'blur' }],
@@ -234,6 +244,7 @@
   humanX: [{ required: true, message: t('template.topPositionDigitalPeople') + t('common.notEmpty'), trigger: 'blur' }],
   humanY: [{ required: true, message: t('template.leftPositionDigitalPeople') + t('common.notEmpty'), trigger: 'blur' }],
   zg: [{ required: true, message: '妯℃澘绫诲瀷', trigger: 'blur' }],
+  bgImage: [{ required: true, message: '璇蜂笂浼犺儗鏅浘鐗�', trigger: 'blur' }],
 })
 const formRef = ref() // 琛ㄥ崟 Ref
 let ishasAdminRole = ref(false)
@@ -268,14 +279,20 @@
 /** 鎻愪氦琛ㄥ崟 */
 const emit = defineEmits(['success']) // 瀹氫箟 success 浜嬩欢锛岀敤浜庢搷浣滄垚鍔熷悗鐨勫洖璋�
 const submitForm = async () => {
+  // 鏍¢獙琛ㄥ崟
+  await formRef.value.validate()
+  console.log(formData.value.showPpt)
+  if( formData.value.showPpt === 0 ){
+     message.error(t('common.NeedAddPpt'))
+     return
+  }
+
   const imageFile = await saveAsImage();
   if (imageFile) {
     const formData1 = new FormData();
     formData1.append('file', imageFile);
     const response = await updateFile(formData1);
     formData.value.previewImage = response.data;
-    // 鏍¢獙琛ㄥ崟
-    await formRef.value.validate()
     // 鎻愪氦璇锋眰
     formLoading.value = true
     try {
@@ -313,8 +330,8 @@
   formData.value = {
     id: undefined,
     showBackground: 1,
-    showDigitalHuman: undefined,
-    showPpt: undefined,
+    showDigitalHuman: 0,
+    showPpt: 0,
     pptW: 505,
     pptH: 290,
     pptX: 40,
@@ -329,6 +346,16 @@
   }
   formRef.value?.resetFields()
 }
+// 鍙栨秷鎸夐挳
+const cancale = ()=>{
+  resetForm()
+  // 椤甸潰涓笉鏄剧ず寮圭獥锛岃儗鏅浘锛屾暟瀛椾汉锛宲pt
+  lastUploadedFileUrl.value = ""
+  isChecked.value = false
+  isChecked1.value = false
+  dialogVisible.value = false
+}
+
 const captureElement = ref<HTMLElement | null>(null);
 const saveAsImage = async () => {
   if (!captureElement.value) {

--
Gitblit v1.9.3