guhongwei преди 4 години
родител
ревизия
e2b956cdef

+ 1 - 1
src/store/topic.js

@@ -24,7 +24,7 @@ const actions = {
     return res;
   },
   async update({ commit }, { id, ...info } = {}) {
-    const res = await this.$axios.$post(`${api.refute}/update/${id}`, {
+    const res = await this.$axios.$post(`${api.topic}/update/${id}`, {
       ...info,
     });
     return res;

+ 1 - 1
src/views/adminCenter/adminCommunity.vue

@@ -9,7 +9,7 @@
             </template>
           </van-nav-bar>
         </el-col>
-        <el-col :span="24" class="info">
+        <el-col :span="24" class="info" :style="{ height: clientHeight + 'px' }">
           <template v-for="(i, index) in list">
             <item :key="`list${index}`" :data="i"></item>
           </template>

+ 1 - 0
src/views/adminCenter/adminServe.vue

@@ -83,6 +83,7 @@ export default {
   .info {
     overflow-x: hidden;
     overflow-y: auto;
+    background-color: #f9f9f9;
   }
   .foot {
     height: 50px;

+ 1 - 1
src/views/adminCenter/refute/edit.vue

@@ -9,7 +9,6 @@
           <van-form ref="form" style="margin-top:30px">
             <van-field v-model="form.title" name="title" label="标题" placeholder="请输入标题" :rules="[{ required: true, message: '请填写标题' }]" />
             <van-field v-model="form.website" name="website" label="网址" placeholder="请输入标题" />
-            <van-field v-model="form.content" rows="2" autosize type="textarea" placeholder="请输入本文内容" />
             <van-field name="uploader" label="封面上传">
               <template #input>
                 <van-uploader :fileList="form.imgUrl" :max-count="1" :after-read="file => toUpload(file, 'imgUrl')" />
@@ -20,6 +19,7 @@
                 <van-uploader :fileList="form.fileUrl" :max-count="1" :after-read="file => toUpload(file, 'fileUrl')" />
               </template>
             </van-field>
+            <van-field v-model="form.content" rows="2" autosize type="textarea" placeholder="请输入本文内容" />
           </van-form>
         </el-col>
         <el-col :span="24" class="foot">

+ 7 - 7
src/views/adminCenter/serve/edit.vue

@@ -7,13 +7,6 @@
         </el-col>
         <el-col :span="24">
           <van-form ref="form">
-            <van-field v-model="form.title" name="title" label="标题" placeholder="请输入标题" :rules="[{ required: true, message: '请填写标题' }]" />
-            <van-field v-model="form.origin" name="origin" label="信息来源" placeholder="请输入信息来源" />
-            <van-cell title="服务联系人" style="text-align:center" />
-            <van-field v-model="form.contact.name" name="contact.name" label="联系人姓名" placeholder="请输入联系人姓名" />
-            <van-field v-model="form.contact.phone" name="contact.phone" label="联系电话" placeholder="请输入联系电话" />
-            <van-field v-model="form.contact.email" name="contact.email" label="电子邮箱" placeholder="请输入电子邮箱" />
-            <van-field v-model="form.contact.address" name="contact.address" label="联系地址" placeholder="请输入联系地址" />
             <van-field name="type" label="文章类型">
               <template #input>
                 <van-radio-group v-model="form.type" direction="horizontal">
@@ -24,6 +17,8 @@
                 </van-radio-group>
               </template>
             </van-field>
+            <van-field v-model="form.title" name="title" label="标题" placeholder="请输入标题" :rules="[{ required: true, message: '请填写标题' }]" />
+            <van-field v-model="form.origin" name="origin" label="信息来源" placeholder="请输入信息来源" />
             <van-field v-if="form.type === '0' || form.type === '1'" v-model="form.content" rows="2" autosize type="textarea" placeholder="请输入本文内容" />
             <van-field v-if="form.type === '1'" name="uploader" label="图片上传">
               <template #input>
@@ -42,6 +37,11 @@
                 />
               </template>
             </van-field>
+            <van-cell title="服务联系人" style="text-align:center" />
+            <van-field v-model="form.contact.name" name="contact.name" label="联系人姓名" placeholder="请输入联系人姓名" />
+            <van-field v-model="form.contact.phone" name="contact.phone" label="联系电话" placeholder="请输入联系电话" />
+            <van-field v-model="form.contact.email" name="contact.email" label="电子邮箱" placeholder="请输入电子邮箱" />
+            <van-field v-model="form.contact.address" name="contact.address" label="联系地址" placeholder="请输入联系地址" />
           </van-form>
         </el-col>
         <el-col :span="24" class="foot">

+ 204 - 179
src/views/adminCenter/serve/list.vue

@@ -1,106 +1,112 @@
 <template>
   <div id="list">
     <el-row>
-      <el-col :span="24" class="main" :style="{ height: clientHeight + 'px' }">
-        <el-col :span="24" class="one" v-if="type == '0'">
-          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
-            <el-col :span="24" class="title">
-              {{ item.title }}
-            </el-col>
-            <el-col :span="24" class="other">
-              <el-col :span="24" class="origin">
-                信息来源:<span>{{ item.origin || '系统管理员' }}</span>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="info" :style="{ height: clientHeight + 'px' }">
+          <el-col :span="24" class="one" v-if="type == '0'">
+            <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
+              <el-col :span="24" class="title">
+                {{ item.title }}
               </el-col>
-              <el-col :span="24" class="date">
-                <el-col :span="20" class="left">
-                  更新时间:<span>{{ item.create_time || item.renew_time || '暂无时间' }}</span>
+              <el-col :span="24" class="other">
+                <el-col :span="24" class="origin">
+                  信息来源:<span>{{ item.origin || '系统管理员' }}</span>
+                </el-col>
+                <el-col :span="24" class="date">
+                  <el-col :span="20" class="left">
+                    更新时间:<span>{{ item.create_time || item.renew_time || '暂无时间' }}</span>
+                  </el-col>
+                  <el-col :span="4" class="right"> <i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }} </el-col>
                 </el-col>
-                <el-col :span="4" class="right"> <i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }} </el-col>
               </el-col>
             </el-col>
           </el-col>
-        </el-col>
-        <el-col :span="24" class="two" v-else-if="type == '1'">
-          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
-            <el-col :span="17" class="title">
-              <el-col :span="24" class="text">
-                {{ item.title }}
-              </el-col>
-              <el-col :span="24" class="other">
-                <el-col :span="20" class="left">
-                  {{ item.origin || '系统管理员' }}
+          <el-col :span="24" class="two" v-else-if="type == '1'">
+            <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
+              <el-col :span="17" class="title">
+                <el-col :span="24" class="text">
+                  {{ item.title }}
+                </el-col>
+                <el-col :span="24" class="other">
+                  <el-col :span="20" class="left">
+                    {{ item.origin || '系统管理员' }}
+                  </el-col>
+                  <el-col :span="4" class="right"> <i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }} </el-col>
                 </el-col>
-                <el-col :span="4" class="right"> <i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }} </el-col>
               </el-col>
-            </el-col>
-            <el-col :span="7" class="image">
-              <el-image :src="item.imgUrl[0].url">
-                <div slot="error" class="image-slot">
-                  <img :src="noImg" alt="" />
-                </div>
-              </el-image>
+              <el-col :span="7" class="image">
+                <el-image :src="item.imgUrl[0].url">
+                  <div slot="error" class="image-slot">
+                    <img :src="noImg" alt="" />
+                  </div>
+                </el-image>
+              </el-col>
             </el-col>
           </el-col>
-        </el-col>
-        <el-col :span="24" class="thr" v-else-if="type == '2'">
-          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
-            <el-col :span="24" class="title">
-              {{ item.title }}
-            </el-col>
-            <el-col :span="24" class="video">
-              <video
-                controls="controls"
-                preload="meta"
-                x-webkit-airplay="true"
-                webkit-playsinline="true"
-                playsinline="true"
-                x5-video-player-type="h5"
-                x5-video-player-fullscreen="true"
-                controlsList="nodownload"
-                :src="item.fileUrl[0].url"
-                loop="loop"
-              >
-                <source src="movie.ogg" type="video/ogg" />
-                <source src="movie.mp4" type="video/mp4" />
-              </video>
-            </el-col>
-            <el-col :span="24" class="other">
-              <el-col :span="20" class="left">{{ item.origin || '系统管理员' }}{{ item.create_time || item.renew_time || '暂无时间' }}</el-col>
-              <el-col :span="4" class="right"><i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }}</el-col>
+          <el-col :span="24" class="thr" v-else-if="type == '2'">
+            <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
+              <el-col :span="24" class="title">
+                {{ item.title }}
+              </el-col>
+              <el-col :span="24" class="video">
+                <video
+                  controls="controls"
+                  preload="meta"
+                  x-webkit-airplay="true"
+                  webkit-playsinline="true"
+                  playsinline="true"
+                  x5-video-player-type="h5"
+                  x5-video-player-fullscreen="true"
+                  controlsList="nodownload"
+                  :src="item.fileUrl[0].url"
+                  loop="loop"
+                  v-if="item.fileUrl.length > 0"
+                >
+                  <source src="movie.ogg" type="video/ogg" />
+                  <source src="movie.mp4" type="video/mp4" />
+                </video>
+                <p v-else>暂无视频</p>
+              </el-col>
+              <el-col :span="24" class="other">
+                <el-col :span="20" class="left">{{ item.origin || '系统管理员' }}{{ item.create_time || item.renew_time || '暂无时间' }}</el-col>
+                <el-col :span="4" class="right"><i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }}</el-col>
+              </el-col>
             </el-col>
           </el-col>
-        </el-col>
-        <el-col :span="24" class="thr" v-else-if="type == '3'">
-          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
-            <el-col :span="24" class="title">
-              {{ item.title }}
-            </el-col>
-            <el-col :span="24" class="video">
-              <video
-                controls="controls"
-                preload="meta"
-                x-webkit-airplay="true"
-                webkit-playsinline="true"
-                playsinline="true"
-                x5-video-player-type="h5"
-                x5-video-player-fullscreen="true"
-                controlsList="nodownload"
-                :src="item.fileUrl[0].url"
-                loop="loop"
-              >
-                <source src="movie.ogg" type="video/ogg" />
-                <source src="movie.mp4" type="video/mp4" />
-              </video>
-            </el-col>
-            <el-col :span="24" class="other">
-              <el-col :span="20" class="left">{{ item.origin || '系统管理员' }}{{ item.create_time || item.renew_time || '暂无时间' }}</el-col>
-              <el-col :span="4" class="right"><i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }}</el-col>
+          <el-col :span="24" class="thr" v-else-if="type == '3'">
+            <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
+              <el-col :span="24" class="title">
+                {{ item.title }}
+              </el-col>
+              <el-col :span="24" class="video">
+                <video
+                  controls="controls"
+                  preload="meta"
+                  x-webkit-airplay="true"
+                  webkit-playsinline="true"
+                  playsinline="true"
+                  x5-video-player-type="h5"
+                  x5-video-player-fullscreen="true"
+                  controlsList="nodownload"
+                  :src="item.fileUrl[0].url"
+                  loop="loop"
+                  v-if="item.fileUrl.length > 0"
+                >
+                  <source src="movie.ogg" type="video/ogg" />
+                  <source src="movie.mp4" type="video/mp4" />
+                </video>
+                <p v-else>暂无视频</p>
+              </el-col>
+              <el-col :span="24" class="other">
+                <el-col :span="20" class="left">{{ item.origin || '系统管理员' }}{{ item.create_time || item.renew_time || '暂无时间' }}</el-col>
+                <el-col :span="4" class="right"><i class="el-icon-view"></i>{{ item.read >= 10000 ? '1万+' : item.read }}</el-col>
+              </el-col>
             </el-col>
           </el-col>
         </el-col>
-        <van-sticky container="list" :offset-top="clientHeight + 60">
+        <el-col :span="24" class="foot">
           <page :total="total" :limit="limit" @search="search"></page>
-        </van-sticky>
+        </el-col>
       </el-col>
     </el-row>
   </div>
@@ -129,7 +135,7 @@ export default {
     this.search();
   },
   mounted() {
-    let clientHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 150;
+    let clientHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 184;
     this.$set(this, `clientHeight`, clientHeight);
   },
   methods: {
@@ -161,56 +167,16 @@ export default {
 .main {
   margin: 10px 0 0 0;
   padding: 0 5px;
-  .one {
-    .list {
-      background-color: #fff;
-      margin: 0 0 10px 0;
-      padding: 8px;
-      border-radius: 5px;
-      .title {
-        font-size: 16px;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        -webkit-line-clamp: 2;
-        word-break: break-all;
-        display: -webkit-box;
-        -webkit-box-orient: vertical;
-        margin: 0 0 4px 0;
-      }
-      .other {
-        .origin {
-          font-size: 14px;
-          color: #666;
-          margin: 0 0 5px 0;
-          span {
-            color: #000;
-          }
-        }
-        .date {
-          font-size: 14px;
-          color: #666;
-          margin: 0 0 5px 0;
-          span {
-            color: #000;
-          }
-          .right {
-            text-align: right;
-            color: #000;
-          }
-        }
-      }
-    }
-  }
-  .two {
-    .list {
-      background-color: #fff;
-      margin: 0 0 10px 0;
-      padding: 8px;
-      border-radius: 5px;
-      position: relative;
-      .title {
-        padding: 0 5px 0 0;
-        .text {
+  .info {
+    overflow-x: hidden;
+    overflow-y: auto;
+    .one {
+      .list {
+        background-color: #fff;
+        margin: 0 0 10px 0;
+        padding: 8px;
+        border-radius: 5px;
+        .title {
           font-size: 16px;
           overflow: hidden;
           text-overflow: ellipsis;
@@ -219,62 +185,121 @@ export default {
           display: -webkit-box;
           -webkit-box-orient: vertical;
           margin: 0 0 4px 0;
-          padding: 0 5px 0 0;
         }
         .other {
-          font-size: 14px;
-          color: #666;
-          position: relative;
-          top: 25px;
-          .right {
-            text-align: right;
-            height: 20px;
-            line-height: 25px;
+          .origin {
+            font-size: 14px;
+            color: #666;
+            margin: 0 0 5px 0;
+            span {
+              color: #000;
+            }
+          }
+          .date {
+            font-size: 14px;
+            color: #666;
+            margin: 0 0 5px 0;
+            span {
+              color: #000;
+            }
+            .right {
+              text-align: right;
+              color: #000;
+            }
           }
         }
       }
-      .image {
-        .el-image {
-          float: right;
-          width: 100%;
-          height: 100%;
-          border-radius: 5px;
+    }
+    .two {
+      .list {
+        background-color: #fff;
+        margin: 0 0 10px 0;
+        padding: 8px;
+        border-radius: 5px;
+        position: relative;
+        .title {
+          padding: 0 5px 0 0;
+          .text {
+            font-size: 16px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            -webkit-line-clamp: 2;
+            word-break: break-all;
+            display: -webkit-box;
+            -webkit-box-orient: vertical;
+            margin: 0 0 4px 0;
+            padding: 0 5px 0 0;
+          }
+          .other {
+            font-size: 14px;
+            color: #666;
+            position: relative;
+            top: 25px;
+            .right {
+              text-align: right;
+              height: 20px;
+              line-height: 25px;
+            }
+          }
         }
-        /deep/.image-slot img {
-          width: 100%;
-          height: 100%;
-          vertical-align: top;
+        .image {
+          .el-image {
+            float: right;
+            width: 100%;
+            height: 70px;
+            border-radius: 5px;
+          }
+          /deep/.image-slot img {
+            width: 100%;
+            height: 70px;
+            vertical-align: top;
+          }
         }
       }
     }
-  }
-  .thr {
-    .list {
-      background-color: #fff;
-      margin: 0 0 10px 0;
-      padding: 8px;
-      border-radius: 5px;
-      .title {
-        font-size: 15px;
-        margin: 0 0 5px 0;
-      }
-      .video {
-        margin: 0 0 5px 0;
-        border: 1px solid #f1f1f1;
-        video {
-          float: left;
-          width: 100%;
-          height: 100%;
+    .thr {
+      .list {
+        background-color: #fff;
+        margin: 0 0 10px 0;
+        padding: 8px;
+        border-radius: 5px;
+        .title {
+          font-size: 15px;
+          margin: 0 0 5px 0;
         }
-      }
-      .other {
-        font-size: 14px;
-        color: #666;
-        .right {
-          text-align: right;
+        .video {
+          margin: 0 0 5px 0;
+          border: 1px solid #f1f1f1;
+          video {
+            float: left;
+            width: 100%;
+            height: 100%;
+          }
+          p {
+            text-align: center;
+            height: 200px;
+            line-height: 200px;
+            font-size: 20px;
+            font-weight: bold;
+          }
+        }
+        .other {
+          font-size: 14px;
+          color: #666;
+          .right {
+            text-align: right;
+          }
         }
       }
     }
   }
+  .foot {
+    height: 40px;
+    overflow: hidden;
+    border-top: 1px solid #f1f1f1;
+  }
+}
+/deep/.van-sticky--fixed {
+  background-color: #fff;
 }
 </style>

+ 1 - 1
src/views/adminCenter/topic/edit.vue

@@ -34,7 +34,7 @@
             </van-field>
             <van-field v-model="form.origin" name="origin" label="信息来源" placeholder="请输入信息来源" />
             <van-field v-model="form.website" name="website" label="网址" placeholder="请输入网址" />
-            <van-field v-model="form.content" rows="2" autosize label="文章内容" type="textarea" maxlength="200" placeholder="请输入本文内容" show-word-limit />
+            <van-field v-model="form.content" rows="2" autosize label="文章内容" type="textarea" placeholder="请输入本文内容" />
           </van-form>
         </el-col>
         <el-col :span="24" class="foot">

+ 2 - 2
src/views/adminCenter/topic/item.vue

@@ -65,7 +65,7 @@ export default {
 .item {
   border-bottom: 1px solid #f1f1f1;
   padding: 10px;
-  .title {
+  .content {
     font-size: 16px;
     overflow: hidden;
     text-overflow: ellipsis;
@@ -87,7 +87,7 @@ export default {
       margin: 0 10px 0 0;
       border-radius: 5px;
       border: 1px solid #f1f1f1;
-      height: 150px;
+      height: 200px;
     }
     img:nth-child(2n) {
       margin: 0 0 0 0;