wq 5 years ago
parent
commit
6b15c3e824

+ 103 - 0
src/layout/custom/uploadFile.vue

@@ -0,0 +1,103 @@
+<template>
+  <div id="uploadFile">
+    <el-upload
+            v-if="url"
+            ref="upload"
+            :action="url"
+            :list-type="listType"
+            :file-list="fileList"
+            :limit="limit"
+            :on-exceed="outLimit"
+            :on-preview="handlePictureCardPreview"
+            :on-remove="handleRemove"
+            :on-success="onSuccess"
+            :show-file-list="showList"
+            :accept="accept"
+    >
+      <el-button size="small" class="isBtn" v-if="isBtn">点击上传文件</el-button>
+      <template v-else>
+        <i class="el-icon-plus"></i>
+      </template>
+      <template #tip v-if="tip">
+        <span class="tip">{{ tip }}</span>
+      </template>
+    </el-upload>
+  </div>
+</template>
+
+<script>
+  import _ from 'lodash';
+  export default {
+    name: 'uploadFile',
+    props: {
+      url: { type: null },
+      limit: { type: Number },
+      data: { type: null },
+      isBtn: { type: Boolean, default: false },
+      showList: { type: Boolean, default: true },
+      accept: { type: String },
+      tip: { type: String, default: undefined },
+      listType: { type: String, default: 'text' },
+    },
+    components: {},
+    data: () => ({
+      fileList: [],
+    }),
+    created() {
+    },
+    mounted(){
+    },
+    watch: {
+      data: {
+        handler(val) {
+          this.defaultProcess(val);
+        },
+        deep: true,
+        immediate: true,
+      },
+    },
+    computed: {},
+    methods: {
+      handlePictureCardPreview(file) {
+        let eleLink = document.createElement('a');
+        eleLink.setAttribute("download", file.name);
+        eleLink.href = file.url;
+        eleLink.style.display = 'none';
+        document.body.appendChild(eleLink);
+        eleLink.click();
+        document.body.removeChild(eleLink);
+      },
+      handleRemove(file) {
+        this.$emit('remove', file);
+      },
+      outLimit() {
+        this.$message.error(`只允许上传${this.limit}个文件`);
+      },
+      onSuccess(response, file, fileList) {
+        this.$emit('uploadSuccess', {data: response});
+      },
+      defaultProcess(val) {
+        if(val){
+          this.$set(this, 'fileList',  [{name:val,url:val}]);
+        }else {
+          this.$set(this, 'fileList', []);
+        }
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .isBtn {
+    background-color: #e9021d;
+    color: #ffffff;
+  }
+  .links {
+    margin: 0 0 0 15px;
+  }
+  .tip {
+    padding: 0 10px;
+    display: inline-block;
+    color: #999999;
+  }
+</style>

+ 5 - 0
src/layout/financeclaims/manageLookMoneyForm.vue

@@ -27,6 +27,11 @@
                             <el-input class="mongeyrate" disabled v-model="ruleForm.buymin" placeholder="起购价格"></el-input>元
                         </el-form-item>
                     </el-col>
+                    <el-col :span="24">
+                        <el-form-item label="视频附件" prop="video">
+                            <el-link :href="ruleForm.video"  :download="ruleForm.video">{{ruleForm.video}}</el-link>
+                        </el-form-item>
+                    </el-col>
                     <el-col :span="24">
                         <el-form-item label="产品介绍">
                             <el-input type="textarea" disabled v-model="ruleForm.news" placeholder="请输入产品介绍"></el-input>

+ 24 - 1
src/layout/financeclaims/manageMoneyForm.vue

@@ -16,6 +16,7 @@
               <el-input class="mongeyrates" v-model="ruleForm.min_time" placeholder="产品期限(小)"></el-input>个月~
             </el-form-item>
           </el-col>
+
           <el-col :span="12">
             <el-form-item prop="max_time" class="formItem">
               <el-input class="mongeyrates" v-model="ruleForm.max_time" placeholder="产品期限(大)"></el-input>个月
@@ -26,6 +27,18 @@
               <el-input class="mongeyrate" v-model="ruleForm.buymin" placeholder="起购价格"></el-input>元
             </el-form-item>
           </el-col>
+          <el-col :span="24">
+            <el-form-item label="视频附件" prop="enclosure">
+              <uploadFile
+                      :limit="1"
+                      :data="ruleForm.video"
+                      :isBtn="true"
+                      :url="`/files/financial/custom/upload`"
+                      @uploadSuccess="uploadFileSuccess"
+                      @remove="removeFile"
+              ></uploadFile>
+            </el-form-item>
+          </el-col>
           <el-col :span="24">
             <el-form-item label="产品介绍">
               <el-input type="textarea" v-model="ruleForm.news" placeholder="请输入产品介绍"></el-input>
@@ -43,6 +56,7 @@
 </template>
 
 <script>
+  import uploadFile from '@/layout/custom/uploadFile.vue';
 export default {
   name: 'manageMoneyForm',
   props: {
@@ -50,7 +64,9 @@ export default {
     hkList: null,
     dbList: null,
   },
-  components: {},
+  components: {
+    uploadFile,
+  },
   data: () => ({
     rules: {
       rate: [
@@ -81,6 +97,13 @@ export default {
     resetForm() {
       this.$emit('resetForm');
     },
+    uploadFileSuccess({ data }) {
+      alert(JSON.stringify(data)+"hahah ")
+      this.$set(this.ruleForm, 'video', data.uri);
+    },
+    removeFile(file) {
+      this.$set(this.ruleForm, 'video', '')
+    },
   },
 };
 </script>

+ 1 - 1
src/views/financeclaims/manageMoneyDetail.vue

@@ -34,7 +34,7 @@ export default {
   },
   data: () => ({
     display: 'none',
-    topTitle: '债权产品信息',
+    topTitle: '理财产品信息',
     ruleForm: {},
   }),
   created() {

+ 1 - 1
src/views/financeclaims/manageMoneyLookDetail.vue

@@ -36,7 +36,7 @@
     },
     data: () => ({
       display: 'none',
-      topTitle: '债权产品信息',
+      topTitle: '理财产品信息',
       ruleForm: {},
     }),
     created() {