natasha 1 год назад
Родитель
Сommit
8b907d85be

+ 6 - 1
src/views/book/courseware/create/components/base/common/UploadFile.vue

@@ -12,6 +12,7 @@
           :show-file-list="false"
           :show-file-list="false"
           :auto-upload="false"
           :auto-upload="false"
           :on-change="onFileChange"
           :on-change="onFileChange"
+          :limit="limit"
         >
         >
           <el-button>选取{{ labelText }}文件</el-button>
           <el-button>选取{{ labelText }}文件</el-button>
         </el-upload>
         </el-upload>
@@ -20,7 +21,7 @@
     </div>
     </div>
     <el-divider />
     <el-divider />
     <div class="upload-tip">{{ uploadTip }}</div>
     <div class="upload-tip">{{ uploadTip }}</div>
-    <ul slot="file-list" class="file-list">
+    <ul slot="file-list" class="file-list" v-if="fileList.length > 0">
       <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">
           <span>
           <span>
@@ -111,6 +112,10 @@ export default {
       type: Number,
       type: Number,
       default: 1024,
       default: 1024,
     },
     },
+    limit: {
+      type: Number,
+      default: null,
+    },
   },
   },
   data() {
   data() {
     return {
     return {

+ 14 - 0
src/views/book/courseware/create/components/base/upload_preview/UploadPreview.vue

@@ -14,6 +14,7 @@
         :accept-file-type="acceptFileType"
         :accept-file-type="acceptFileType"
         :upload-tip="uploadTip"
         :upload-tip="uploadTip"
         :icon-class="iconClass"
         :icon-class="iconClass"
+        :limit="1"
         @updateFileList="updateFileList"
         @updateFileList="updateFileList"
       />
       />
       <el-form :model="data" label-width="72px" label-position="left">
       <el-form :model="data" label-width="72px" label-position="left">
@@ -49,6 +50,14 @@ export default {
       iconClass: 'picture',
       iconClass: 'picture',
     };
     };
   },
   },
+  watch: {
+    'data.file_list': {
+      handler(val) {
+        console.log(val);
+      },
+      immediate: true,
+    },
+  },
   methods: {
   methods: {
     updateFileList({ file_list, file_id_list, file_info_list }) {
     updateFileList({ file_list, file_id_list, file_info_list }) {
       this.data.file_list = file_list;
       this.data.file_list = file_list;
@@ -58,3 +67,8 @@ export default {
   },
   },
 };
 };
 </script>
 </script>
+<style lang="scss" scoped>
+:deep .file-list {
+  margin-bottom: 16px;
+}
+</style>

+ 10 - 12
src/views/book/courseware/preview/components/upload_preview/UploadPreviewPreview.vue

@@ -11,27 +11,25 @@
 
 
 <script>
 <script>
 import UploadFile from './components/UploadView.vue';
 import UploadFile from './components/UploadView.vue';
+import { getUploadPreviewData } from '@/views/book/courseware/data/uploadPreview';
 
 
 export default {
 export default {
   name: 'UploadControlPreview',
   name: 'UploadControlPreview',
   components: { UploadFile },
   components: { UploadFile },
   data() {
   data() {
     return {
     return {
-      labelText: '文件',
-      acceptFileType: '.png,.jpg,.pdf',
-      uploadTip:
-        'The size of the uploaded image should not exceed 2MB, the size of the uploaded audio file, pdf file, and excel file should not exceed 20MB, and the size of the uploaded audio file should not exceed 20MB',
-      iconClass: 'picture',
-      fileList: [],
-      type: 'upload_control',
+      data: getUploadPreviewData(),
     };
     };
   },
   },
-  methods: {
-    updateFileList({ file_list, file_id_list, file_info_list }) {
-      this.data.file_list = file_list;
-      this.data.file_id_list = file_id_list;
-      this.data.file_info_list = file_info_list;
+  watch: {
+    'data.file_list': {
+      handler(val) {
+        console.log(val);
+      },
+      immediate: true,
     },
     },
   },
   },
+  created() {},
+  methods: {},
 };
 };
 </script>
 </script>