|
@@ -6,6 +6,8 @@ import { Button, Field, showToast } from 'vant';
|
|
|
import MUploader from '@/components/m-uploader';
|
|
|
import { api_userMusicDetail, api_userMusicSave } from '../api';
|
|
|
import { useRoute, useRouter } from 'vue-router';
|
|
|
+import videoBg from '../images/video-bg.png';
|
|
|
+import { postMessage } from '@/helpers/native-message';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'creation-edit',
|
|
@@ -36,6 +38,24 @@ export default defineComponent({
|
|
|
//
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
+ // 截图
|
|
|
+ const onCropper = () => {
|
|
|
+ postMessage(
|
|
|
+ {
|
|
|
+ api: 'videoCrop',
|
|
|
+ content: {
|
|
|
+ url: state.musicDetail.videoUrl
|
|
|
+ }
|
|
|
+ },
|
|
|
+ res => {
|
|
|
+ if (res?.content.videoCover) {
|
|
|
+ state.videoImg = res.content.videoCover;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ };
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
try {
|
|
|
const { data } = await api_userMusicDetail(state.id);
|
|
@@ -53,6 +73,25 @@ export default defineComponent({
|
|
|
<MHeader border={false} />
|
|
|
</MSticky>
|
|
|
|
|
|
+ <div class={[styles.section, styles.sectionVideo]}>
|
|
|
+ <img src={state.videoImg || videoBg} class={styles.videoBg} />
|
|
|
+ <div class={styles.btnGroup}>
|
|
|
+ <MUploader
|
|
|
+ class={styles.btnImg}
|
|
|
+ cropper
|
|
|
+ deletable={false}
|
|
|
+ onUploadChange={img => {
|
|
|
+ if (img.length > 0) {
|
|
|
+ state.videoImg = img[0];
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <div class={styles.btnCropper} onClick={onCropper}>
|
|
|
+ 视频截取封面
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
<div class={styles.section}>
|
|
|
<Field
|
|
|
rows={4}
|