|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div class="upload-file">
|
|
<div class="upload-file">
|
|
|
<div class="file-area">
|
|
<div class="file-area">
|
|
|
- <span class="label-text">{{ labelText }}</span>
|
|
|
|
|
|
|
+ <span class="label-text" v-if="labelText">{{ labelText }}</span>
|
|
|
<div class="upload-box">
|
|
<div class="upload-box">
|
|
|
<el-upload
|
|
<el-upload
|
|
|
ref="upload"
|
|
ref="upload"
|
|
@@ -16,14 +16,14 @@
|
|
|
:on-exceed="handleExceed"
|
|
:on-exceed="handleExceed"
|
|
|
:limit="limit"
|
|
:limit="limit"
|
|
|
>
|
|
>
|
|
|
- <el-button>{{ type === 'h5_games' ? '选择Zip压缩包或单个html文件' : '选取' + labelText + '文件' }}</el-button>
|
|
|
|
|
|
|
+ <el-button>上传附件</el-button>
|
|
|
</el-upload>
|
|
</el-upload>
|
|
|
<el-button size="small" type="primary" @click="uploadFiles"> 上传 </el-button>
|
|
<el-button size="small" type="primary" @click="uploadFiles"> 上传 </el-button>
|
|
|
<el-button size="small" type="primary" @click="useResource"> 使用资源 </el-button>
|
|
<el-button size="small" type="primary" @click="useResource"> 使用资源 </el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-divider v-if="showDivider" />
|
|
|
|
|
<div class="upload-tip">{{ uploadTip }}</div>
|
|
<div class="upload-tip">{{ uploadTip }}</div>
|
|
|
|
|
+ <el-divider v-if="showDivider" />
|
|
|
<ul v-if="fileList.length > 0" slot="file-list" class="file-list">
|
|
<ul v-if="fileList.length > 0" slot="file-list" class="file-list">
|
|
|
<li v-for="(file, i) in fileList" :key="i">
|
|
<li v-for="(file, i) in fileList" :key="i">
|
|
|
<div class="file-name">
|
|
<div class="file-name">
|
|
@@ -72,12 +72,12 @@
|
|
|
</template>
|
|
</template>
|
|
|
</li>
|
|
</li>
|
|
|
</ul>
|
|
</ul>
|
|
|
-
|
|
|
|
|
<SelectResource
|
|
<SelectResource
|
|
|
:visible.sync="visibleResource"
|
|
:visible.sync="visibleResource"
|
|
|
:project-id="projectId"
|
|
:project-id="projectId"
|
|
|
:accept="accept"
|
|
:accept="accept"
|
|
|
:courseware-id="coursewareId"
|
|
:courseware-id="coursewareId"
|
|
|
|
|
+ from-page="remark"
|
|
|
@selectResource="selectResource"
|
|
@selectResource="selectResource"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
@@ -202,12 +202,12 @@ export default {
|
|
|
computed: {
|
|
computed: {
|
|
|
accept() {
|
|
accept() {
|
|
|
let accept = '*';
|
|
let accept = '*';
|
|
|
- if (this.acceptFileType.includes('.mp3')) {
|
|
|
|
|
- accept = 'audio';
|
|
|
|
|
|
|
+ if (this.acceptFileType.includes('.jpg')) {
|
|
|
|
|
+ accept = 'image';
|
|
|
} else if (this.acceptFileType.includes('.mp4')) {
|
|
} else if (this.acceptFileType.includes('.mp4')) {
|
|
|
accept = 'video';
|
|
accept = 'video';
|
|
|
- } else if (this.acceptFileType.includes('.jpg')) {
|
|
|
|
|
- accept = 'image';
|
|
|
|
|
|
|
+ } else if (this.acceptFileType.includes('.mp3')) {
|
|
|
|
|
+ accept = 'audio';
|
|
|
} else if (this.acceptFileType.includes('.zip')) {
|
|
} else if (this.acceptFileType.includes('.zip')) {
|
|
|
accept = 'h5_game';
|
|
accept = 'h5_game';
|
|
|
} else if (this.acceptFileType.includes('.txt')) {
|
|
} else if (this.acceptFileType.includes('.txt')) {
|
|
@@ -404,6 +404,8 @@ export default {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
+ // 选中文件后自动上传
|
|
|
|
|
+ this.uploadFiles();
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
// 显示弹窗
|
|
// 显示弹窗
|
|
@@ -446,98 +448,96 @@ export default {
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
-.module-content {
|
|
|
|
|
- .file-area {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- column-gap: 16px;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
|
|
+.file-area {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ column-gap: 16px;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
|
|
|
- .label-text {
|
|
|
|
|
- font-size: 14px;
|
|
|
|
|
- color: $font-light-color;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- div {
|
|
|
|
|
- flex: 1;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .label-text {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: $font-light-color;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .el-divider {
|
|
|
|
|
- margin: 16px 0;
|
|
|
|
|
|
|
+ div {
|
|
|
|
|
+ flex: 1;
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .upload-tip {
|
|
|
|
|
- margin-bottom: 16px;
|
|
|
|
|
- font-size: 12px;
|
|
|
|
|
- color: #86909c;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.el-divider {
|
|
|
|
|
+ margin: 16px 0;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .upload-box {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: space-between;
|
|
|
|
|
|
|
+.upload-tip {
|
|
|
|
|
+ margin-bottom: 16px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #86909c;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .el-button + .el-button {
|
|
|
|
|
- margin-left: 2px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.upload-box {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
|
|
|
- .file-uploader {
|
|
|
|
|
- flex: 1;
|
|
|
|
|
|
|
+ .el-button + .el-button {
|
|
|
|
|
+ margin-left: 2px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- :deep .el-upload {
|
|
|
|
|
- &--text {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- background-color: $fill-color;
|
|
|
|
|
- border-radius: 2px 0 0 2px;
|
|
|
|
|
|
|
+ .file-uploader {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
|
|
|
- .el-button {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- color: #86909c;
|
|
|
|
|
- text-align: left;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ :deep .el-upload {
|
|
|
|
|
+ &--text {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ background-color: $fill-color;
|
|
|
|
|
+ border-radius: 2px 0 0 2px;
|
|
|
|
|
+
|
|
|
|
|
+ .el-button {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ color: #86909c;
|
|
|
|
|
+ text-align: left;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- .el-button {
|
|
|
|
|
- border-radius: 0 2px 2px 0;
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .old_file_list {
|
|
|
|
|
- margin-top: 16px;
|
|
|
|
|
|
|
+ .el-button {
|
|
|
|
|
+ border-radius: 0 2px 2px 0;
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .file-list {
|
|
|
|
|
|
|
+.old_file_list {
|
|
|
|
|
+ margin-top: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.file-list {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ row-gap: 16px;
|
|
|
|
|
+
|
|
|
|
|
+ li {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- flex-direction: column;
|
|
|
|
|
- row-gap: 16px;
|
|
|
|
|
|
|
+ column-gap: 12px;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
|
|
|
- li {
|
|
|
|
|
|
|
+ .file-name {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- column-gap: 12px;
|
|
|
|
|
|
|
+ column-gap: 14px;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ max-width: 500px; // 360px有点窄
|
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #1d2129;
|
|
|
|
|
+ background-color: #f7f8fa;
|
|
|
|
|
|
|
|
- .file-name {
|
|
|
|
|
|
|
+ span {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
column-gap: 14px;
|
|
column-gap: 14px;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
|
|
- max-width: 500px; // 360px有点窄
|
|
|
|
|
- padding: 8px 12px;
|
|
|
|
|
- font-size: 14px;
|
|
|
|
|
- color: #1d2129;
|
|
|
|
|
- background-color: #f7f8fa;
|
|
|
|
|
-
|
|
|
|
|
- span {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- column-gap: 14px;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .svg-icon {
|
|
|
|
|
- cursor: pointer;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .svg-icon {
|
|
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|