guhongwei 4 年之前
父节点
当前提交
36dca1853f

二进制
src/assets/3.png


二进制
src/assets/emotion/flower.png


二进制
src/assets/emotion/touxiang.png


+ 3 - 4
src/components/upload.vue

@@ -73,10 +73,9 @@ export default {
       this.dialogVisible = false;
     },
     handleRemove(file, fileList) {
-      return true;
-      // let index = fileList.findIndex(f => _.isEqual(f, file));
-      // this.$emit('delete', index);
-      // return false;
+      let index = fileList.findIndex(f => _.isEqual(f, file));
+      this.$emit('delete', index);
+      return false;
     },
     outLimit() {
       this.$message.error(`只允许上传${this.limit}个文件`);

+ 120 - 0
src/components/uploaddock.vue

@@ -0,0 +1,120 @@
+<template>
+  <div id="upload">
+    <el-upload
+      v-if="url"
+      ref="upload"
+      :action="url"
+      :list-type="listType"
+      :file-list="fileList"
+      :limit="limit"
+      :on-exceed="outLimit"
+      :on-preview="handlePictureCardPreview"
+      :before-remove="handleRemove"
+      :on-success="onSuccess"
+      :before-upload="beforeUpload"
+      :show-file-list="showList"
+      :accept="accept"
+    >
+      <el-button size="small" type="primary" v-if="isBtn">点击上传</el-button>
+      <template v-else-if="uploadBtn">
+        <el-button type="danger">选择文件</el-button>
+      </template>
+      <template v-else>
+        <el-button type="primary" size="mini">选择文件</el-button>
+      </template>
+      <template #tip v-if="tip">
+        {{ tip }}
+      </template>
+    </el-upload>
+    <el-dialog :visible.sync="dialogVisible">
+      <img width="100%" :src="dialogImageUrl" alt="" />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'upload',
+  props: {
+    url: { type: null },
+    limit: { type: Number },
+    data: { type: null },
+    type: { type: String },
+    isBtn: { type: Boolean, default: false },
+    uploadBtn: { type: Boolean, default: false },
+    showList: { type: Boolean, default: true },
+    accept: { type: String, default: '' },
+    tip: { type: String, default: undefined },
+    listType: { type: String, default: 'picture-card' },
+  },
+  components: {},
+  data: () => ({
+    dialogVisible: false,
+    dialogImageUrl: '',
+    fileList: [],
+  }),
+  created() {
+    if (this.data) {
+      this.defalutProcess(this.data);
+    }
+  },
+  watch: {
+    data: {
+      handler(val) {
+        this.defalutProcess(val);
+      },
+    },
+  },
+  computed: {},
+  methods: {
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = false;
+    },
+    handleRemove(file, fileList) {
+      console.log(file.url, fileList);
+      // let index = fileList.findIndex(f => _.isEqual(f, file));
+      this.$emit('delete', file.url);
+      // return true;
+    },
+    outLimit() {
+      this.$message.error(`只允许上传${this.limit}个文件`);
+    },
+    onSuccess(response, file, fileList) {
+      //将文件整理好传回父组件
+      this.$emit('upload', { type: this.type, data: { ...response, name: file.name } });
+    },
+    beforeUpload(file) {
+      const sizeLimit = file.size / 1024 / 1024 < 10;
+      if (sizeLimit) return true;
+      else {
+        this.$message.error('文件超出10M!');
+        return false;
+      }
+    },
+    defalutProcess(val) {
+      if (_.isArray(val)) {
+        let newArr = val.map(item => {
+          let object = {};
+          object.name = item.name;
+          object.url = item.url;
+          return object;
+        });
+        this.$set(this, `fileList`, newArr);
+      } else if (_.isObject(val)) {
+        let object = {};
+        if (_.get(val, `url`)) {
+          object.name = val.name;
+          object.url = val.url;
+          this.$set(this, `fileList`, [object]);
+        }
+      } else if (typeof val === 'string') {
+        this.$set(this, `fileList`, [{ name: '附件', url: val }]);
+      }
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 7 - 3
src/views/adminCenter/dockInfo/parts/dockInfo.vue

@@ -57,6 +57,10 @@
           <el-form-item label="视频文件标题">
             <el-input v-model="form.videointro" placeholder="请输入视频文件标题"></el-input>
           </el-form-item>
+          <el-form-item label="视频文件简介">
+            <el-input v-model="form.videointroinfo" type="textarea" placeholder="请输入视频文件简介"></el-input>
+          </el-form-item>
+
           <el-form-item label="状态">
             <el-radio v-model="form.status" label="1">开始</el-radio>
             <el-radio v-model="form.status" label="2">结束</el-radio>
@@ -73,7 +77,7 @@
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
-import upload from '@/components/upload.vue';
+import upload from '@/components/uploaddock.vue';
 const { mapActions: place } = createNamespacedHelpers('place');
 export default {
   name: 'dockInfo',
@@ -130,8 +134,8 @@ export default {
     uploadSuccess({ type, data }) {
       this.$set(this.form, `${type}`, data.uri);
     },
-    uploadDelete() {
-      console.log('AS');
+    uploadDelete(index) {
+      this.$set(this.form, `file_path`, null);
     },
   },
   computed: {

文件差异内容过多而无法显示
+ 0 - 1617
src/views/hall/direct copy.vue


文件差异内容过多而无法显示
+ 517 - 570
src/views/hall/direct.vue


+ 20 - 4
src/views/market/detail/achiDetail.vue

@@ -12,7 +12,10 @@
           </el-col>
           <el-col :span="7" v-else class="achieveImage">
             <el-image :src="achievezb" style="height:345px;"></el-image>
-            <el-col :span="24" class="aName">
+            <el-col :span="24" class="company textOver">
+              {{ detailInfo.company }}
+            </el-col>
+            <el-col :span="24" class="aName textOver">
               {{ detailInfo.name }}
             </el-col>
             <el-col :span="24" class="a-brief">{{ detailInfo.achievebrief }}</el-col>
@@ -94,10 +97,13 @@
             </el-col>
             <el-col :span="12">
               <el-col :span="8" class="otherInfo textOver">
-                电子邮箱
+                联系方式
               </el-col>
               <el-col :span="16" class="otherInfo textOver">
-                {{ detailInfo.email || '暂无' }}
+                <el-tooltip class="item" effect="dark" placement="top">
+                  <div slot="content">{{ detailInfo.email }}/{{ detailInfo.qqwx || '暂无' }}</div>
+                  <p class="textOver">{{ detailInfo.email }}/{{ detailInfo.qqwx || '暂无' }}</p>
+                </el-tooltip>
               </el-col>
             </el-col>
             <el-col :span="24">
@@ -105,7 +111,6 @@
                 项目路演
               </el-col>
               <el-col :span="20" class="otherInfo textOver">
-                <!-- {{ detailInfo.roadshow || '暂无' }} -->
                 <el-link :href="detailInfo.roadshow" :underline="false">{{ detailInfo.roadshow ? '观看演示文件' : '暂无' }}</el-link>
               </el-col>
             </el-col>
@@ -331,6 +336,17 @@ export default {
           white-space: nowrap;
         }
       }
+      .company {
+        position: absolute;
+        top: 15px;
+        left: 30px;
+        width: 86%;
+        color: #ec6c2d;
+        -webkit-text-stroke: 1px #f18d2c;
+        font-style: oblique;
+        -webkit-text-fill-color: #ec6c2d;
+        letter-spacing: 3px;
+      }
     }
   }
   .down {

+ 15 - 1
src/views/market/index.vue

@@ -28,7 +28,10 @@
                     <el-col :span="24" class="achieveImage">
                       <el-image v-if="item.image && item.image.length > 0" :src="item.image[0].url"></el-image>
                       <el-image v-else :src="achievezb"></el-image>
-                      <el-col :span="24" class="name textOver aName">
+                      <el-col :span="24" class="company textOver">
+                        {{ item.company }}
+                      </el-col>
+                      <el-col :span="24" class="aName textOver">
                         {{ item.name }}
                       </el-col>
                       <el-col :span="24" class="a-brief">{{ item.achievebrief }}</el-col>
@@ -805,6 +808,17 @@ export default {
               white-space: nowrap;
             }
           }
+          .company {
+            position: absolute;
+            top: 3px;
+            left: 20px;
+            width: 86%;
+            color: #ec6c2d;
+            -webkit-text-stroke: 1px #f18d2c;
+            font-style: oblique;
+            -webkit-text-fill-color: #ec6c2d;
+            letter-spacing: 3px;
+          }
         }
       }
       .achieveList:hover {