|
@@ -13,6 +13,7 @@
|
|
});
|
|
});
|
|
const { proxy } = getCurrentInstance();
|
|
const { proxy } = getCurrentInstance();
|
|
const imageUrl:any = ref([]);
|
|
const imageUrl:any = ref([]);
|
|
|
|
+ const logo:any = ref([]);
|
|
|
|
|
|
const form = ref({
|
|
const form = ref({
|
|
id:"",
|
|
id:"",
|
|
@@ -20,6 +21,7 @@
|
|
imageUrl:"",
|
|
imageUrl:"",
|
|
code: "",
|
|
code: "",
|
|
remark:"",
|
|
remark:"",
|
|
|
|
+ logo: "",
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -69,6 +71,46 @@
|
|
editorRef.value = editor; // 记录 editor 实例,重要!
|
|
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) => {
|
|
const setImageUrl = (url:any) => {
|
|
if (url != null) {
|
|
if (url != null) {
|
|
@@ -154,6 +196,11 @@
|
|
let lite = getLiteMeta(data.imageUrl);
|
|
let lite = getLiteMeta(data.imageUrl);
|
|
setImageUrl(lite);
|
|
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;"
|
|
style="height: 400px; overflow-y: hidden; width:100%; border:1px solid #eee;"
|
|
@onCreated="handleCreated" />
|
|
@onCreated="handleCreated" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+
|
|
<el-form-item label="课程封面">
|
|
<el-form-item label="课程封面">
|
|
<el-upload list-type="picture-card" v-model:file-list="imageUrl"
|
|
<el-upload list-type="picture-card" v-model:file-list="imageUrl"
|
|
:on-preview="handlePictureCardPreview"
|
|
:on-preview="handlePictureCardPreview"
|
|
@@ -198,6 +246,18 @@
|
|
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
|
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
|
</el-upload>
|
|
</el-upload>
|
|
</el-form-item>
|
|
</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>
|
|
<el-form-item>
|
|
<div style="justify-content:end; display:flex;width:100%;">
|
|
<div style="justify-content:end; display:flex;width:100%;">
|
|
<el-button type="primary" @click="saveCourse()">保存</el-button>
|
|
<el-button type="primary" @click="saveCourse()">保存</el-button>
|
|
@@ -209,6 +269,7 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<el-image id="elImageInfo" style="height:0px;width:0px; " :src="form.imageUrl" :preview-src-list="[form.imageUrl]" />
|
|
<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>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<style scoped>
|
|
<style scoped>
|