人生啊人生 3 veckor sedan
förälder
incheckning
22b8a3c3ac
1 ändrade filer med 61 tillägg och 0 borttagningar
  1. 61 0
      user_web/src/components/admin/CourseEditor.vue

+ 61 - 0
user_web/src/components/admin/CourseEditor.vue

@@ -13,6 +13,7 @@
     });
     const { proxy } = getCurrentInstance();
     const imageUrl:any = ref([]);
+    const logo:any = ref([]);
    
     const form = ref({
         id:"",
@@ -20,6 +21,7 @@
         imageUrl:"",
         code: "",
         remark:"",
+        logo: "",
     });
 
 
@@ -69,6 +71,46 @@
         editorRef.value = editor; // 记录 editor 实例,重要!
     }
 
+    const logoPreview = (fx: any) => {
+        document.getElementById("elImageLogo")?.click();
+    }
+    const logoRomoveCover = () => {
+        form.value.logo = "";
+    }
+    const uploadLogo = (fx:any) => {
+        let size = fx.file.size;
+       
+        if (size > 1024*1024) {
+            ElMessage({
+                message: "文件太大,需要小于1M",
+                type: 'warning',
+            });
+            setLogo(null);
+            form.value.logo = "";
+            return;
+        }
+        uploadFileOss(fx.file, "course/cover", null).then(function (e:any) {
+            let lite = getLiteMeta(e);
+            form.value.logo = e;
+            setLogo(lite);
+           
+        }).catch(function (e) {
+            ElMessage({
+                message:e||"上传失败",
+                type: 'warning',
+            });
+        });
+    }
+    const setLogo = (url:any) => {
+        if (url != null) {
+            logo.value = [{
+                name: "",
+                url: url
+            }];
+        } else {
+            logo.value = [];
+        }
+    }
 
     const setImageUrl = (url:any) => {
         if (url != null) {
@@ -154,6 +196,11 @@
                         let lite = getLiteMeta(data.imageUrl);
                         setImageUrl(lite);
                     }
+                    if (data.logo != null) {
+                        setLogo(
+                            getLiteMeta(data.logo)
+                        );
+                    }
                 }
             });
         }
@@ -188,6 +235,7 @@
                             style="height: 400px; overflow-y: hidden; width:100%; border:1px solid #eee;"
                             @onCreated="handleCreated" />
                 </el-form-item>
+
                 <el-form-item label="课程封面">
                     <el-upload list-type="picture-card" v-model:file-list="imageUrl"
                                :on-preview="handlePictureCardPreview"
@@ -198,6 +246,18 @@
                         <el-icon class="avatar-uploader-icon"><Plus /></el-icon>
                     </el-upload>
                 </el-form-item>
+
+                <el-form-item label="logo">
+                    <el-upload list-type="picture-card" v-model:file-list="logo"
+                               :on-preview="logoPreview"
+                               :on-remove="logoRomoveCover"
+                               accept="image/jpeg,image/png"
+                               :http-request="uploadLogo">
+
+                        <el-icon class="avatar-uploader-icon"><Plus /></el-icon>
+                    </el-upload>
+                </el-form-item>
+
                 <el-form-item>
                     <div style="justify-content:end; display:flex;width:100%;">
                         <el-button type="primary" @click="saveCourse()">保存</el-button>
@@ -209,6 +269,7 @@
            
         </div>
         <el-image id="elImageInfo" style="height:0px;width:0px; " :src="form.imageUrl"  :preview-src-list="[form.imageUrl]" />
+        <el-image id="elImageLogo" style="height:0px;width:0px; " :src="form.logo"  :preview-src-list="[form.logo]" />
     </div>
 </template>
 <style scoped>