From b57c81c1da4ad71edf2073c21e7cebb38123b961 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 27 十月 2025 17:08:00 +0800
Subject: [PATCH] 页面调整

---
 manager/src/views/video/VideoList.vue |  333 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 295 insertions(+), 38 deletions(-)

diff --git a/manager/src/views/video/VideoList.vue b/manager/src/views/video/VideoList.vue
index 79c7676..8dce271 100644
--- a/manager/src/views/video/VideoList.vue
+++ b/manager/src/views/video/VideoList.vue
@@ -80,6 +80,11 @@
               </FormItem>
             </Col>
             <Col span="12">
+              <FormItem label="鏉冮噸:" :label-width="80">
+                <InputNumber v-model="uploadVideoForm.weight" :min="0" :step="0.1" placeholder="璇疯緭鍏ユ潈閲�"></InputNumber>
+              </FormItem>
+            </Col>
+            <Col span="12">
               <FormItem label="涓婁紶绫诲瀷:" :label-width="80" prpo="videoContentType">
                 <Select v-model="uploadVideoForm.videoContentType" style="width:200px">
                   <Option value="img">鍥剧墖</Option>
@@ -184,12 +189,6 @@
             </Col>
           </Row>
           <Row :gutter="24">
-            <Col span="24">
-              <FormItem label="閫変腑鍟嗗搧" :label-width="80">
-              </FormItem>
-            </Col>
-          </Row>
-          <Row :gutter="24">
             <Col span="12">
               <FormItem label="鍟嗗搧鍒楄〃" :label-width="80">
                 <Input v-model="searchGoodsForm.keyword" style="width:200px" @on-change="searchGoodsList"></Input>
@@ -259,13 +258,13 @@
         :title="playVideoTitle"
         width="800"
         :mask-closable="false"
-        @close="playVideoClose"
+        @on-cancel="playVideoClose"
       >
         <div class="video-warp">
           <video :src="playVideoUrl" autoplay controls style="width: 768px;height: 432px"/>
         </div>
         <div slot="footer">
-          <Button type="text" @click="playVideoClose">鍏抽棴</Button>
+          <Button type="text" @click="playVideoClose">鍏抽棴1</Button>
         </div>
       </Modal>
 
@@ -322,7 +321,6 @@
                 </Row>
               </Col>
             </Row>
-
           </Form-item>
           <Form-item v-if="detail.videoContentType === 'img'" :label-width="0">
             <div style="display: flex;flex-direction: row;flex-wrap: wrap">
@@ -431,8 +429,98 @@
           <Button type="success" size="small" style="margin-right: 5px" v-else-if="row.status === '0'"
                   @click="videoUp(row)">涓婃灦
           </Button>
+          <!-- 娣诲姞鍒犻櫎鎸夐挳 -->
+          <Button type="error" size="small" style="margin-right: 5px" v-if="row.status === '0'"
+                  @click="deleteVideo(row)">鍒犻櫎
+          </Button>
+          <Button type="error" size="small" style="margin-right: 5px"
+                  @click="openComment(row)">
+            鏌ョ湅璇勮
+          </Button>
         </template>
       </Table>
+      <Modal
+        v-model="showVideoComment"
+        title="瑙嗛璇勮"
+        width="1000"
+        :mask-closable="false">
+        <Form :model="commentForm" ref="commentForm">
+          <Row type="flex" :gutter="16">
+            <Col>
+              <FormItem :label-width="70" label="鍐呭锛�" prop="commentContent">
+                <Input style="width: 120px"
+                       v-model="commentForm.commentContent" placeholder="璇疯緭鍏ュ唴瀹�"
+                       @on-clear="commentHandleSearch"
+                       @on-change="commentHandleSearch"></Input>
+              </FormItem>
+            </Col>
+            <Col>
+              <FormItem :label-width="70" label="鐢ㄦ埛鏄电О锛�" prop="nickName">
+                <Input style="width: 120px" v-model="commentForm.nickName" placeholder="璇疯緭鍏ュ唴瀹�"
+                       @on-clear="commentHandleSearch"
+                       @on-change="commentHandleSearch"></Input>
+              </FormItem>
+            </Col>
+            <Col>
+              <FormItem :label-width="70" label="寮�濮嬫椂闂达細" prop="startTime">
+                <DatePicker
+                  v-model="commentForm.startTime"
+                  type="datetime"
+                  placeholder="閫夋嫨寮�濮嬫椂闂�"
+                  style="width: 120px"
+                  @on-change="commentHandleSearch($event)"
+                  @on-clear="commentHandleSearch"
+                ></DatePicker>
+              </FormItem>
+            </Col>
+            <Col>
+              <FormItem :label-width="70" label="缁撴潫鏃堕棿锛�" prop="endTime">
+                <DatePicker
+                  v-model="commentForm.endTime"
+                  type="datetime"
+                  placeholder="閫夋嫨缁撴潫鏃堕棿"
+                  style="width: 120px"
+                  @on-change="commentHandleSearch($event)"
+                  @on-clear="commentHandleSearch"
+                ></DatePicker>
+              </FormItem>
+            </Col>
+          </Row>
+        </Form>
+
+      <div slot="footer">
+        <Button type="text" @click="closeComment">鍏抽棴</Button>
+      </div>
+          <Table
+            :loading="commentLoading"
+            border
+            :columns="commentColumns"
+            :data="commentData"
+            ref="commentTable"
+            sortable="custom"
+            >
+           <template slot-scope="{ row, index }" slot="action">
+              <Button type="error" size="small"
+              @click="removeComment(row)">鍒犻櫎</Button>
+           </template>
+          </Table>
+        <Row type="flex" justify="end" class="page-footer">
+          <Page
+            :current="commentForm.pageNumber"
+            :total="commentTotal"
+            :page-size="commentForm.pageSize"
+            @on-change="commentChangePage"
+            @on-page-size-change="commentChangePageSize"
+            :page-size-opts="[10, 20, 50]"
+            size="small"
+            show-total
+            show-elevator
+            show-sizer
+          ></Page>
+        </Row>
+
+      </Modal>
+
       <Modal
         v-model="showGeneralQrCode"
         title="浜岀淮鐮�"
@@ -479,9 +567,13 @@
   down,
   recreateIndex,
   publish,
-  updatePublish
+  updatePublish,
+  getCommentPage,
+  removeById,
+  deleteVideoById
 } from "@/api/video";
 import {getVideoTagList, recommend, videoGoodsEsPage} from "@/api/videoTag";
+import {addPrizeNum} from "@/api/activity-prize";
 import {getFilePreview, getSts} from "@/api/file";
 import Editor from '@/components/editor/index.vue'
 import GoodsExpandRow from '@/views/video/GoodsExpandRow'
@@ -536,6 +628,50 @@
   },
   data() {
     return {
+      commentTotal:0,
+      commentForm:{
+        commentContent:'',
+        videoId:'',
+        nikeName:'',
+        startTime:'',
+        endTime:'',
+        pageNumber:1,
+        pageSize:10
+      },
+      commentColumns:[
+        // {
+        //   type: 'selection',
+        //   width: 60,
+        //   align: 'center'
+        // },
+        {
+          title: "鐢ㄦ埛鍚�",
+          key: "userNickname",
+          minWidth: 240,
+          tooltip: true,
+        },{
+          title: "鍐呭",
+          key: "commentContent",
+          minWidth: 240,
+          tooltip: true,
+        },{
+          title: "璇勮鏃堕棿",
+          key: "createTime",
+          minWidth: 240,
+          tooltip: true,
+        },{
+          title: "鎿嶄綔",
+          key: "action",
+          slot: "action",
+          align: "center",
+          width: 200,
+          fixed: "right"
+        }
+      ],
+      commentData:[],
+      showVideoComment:false,
+      commentLoading:false,
+
       // https://myk.9village.cn/scanpage/recommend?shareType=videoRecommend&videoId=1948284811844190209
       baseQRCodeUrl: this.QRcodeBaseUrl + '/scanpage/recommend',
       QRCodeUrl: '',
@@ -566,8 +702,8 @@
         showListImages: [],
         tags: [],
         fileInfo: {},
-        goodsList: []
-
+        goodsList: [],
+        weight: 0 // 娣诲姞鏉冮噸瀛楁锛岄粯璁ゅ�间负0
       },
       videoDownForm: {
         id: '',
@@ -744,6 +880,80 @@
     this.getTags('')
   },
   methods: {
+    closeComment(){
+      this.showVideoComment = false
+    },
+    commentChangePage(page) {
+      this.commentForm.pageNumber = page
+      this.commentPage()
+    },
+
+    // 鏀瑰彉鎶ュ悕浜哄憳姣忛〉鏉℃暟
+    commentChangePageSize(pageSize) {
+      this.commentForm.pageNumber = 1
+      this.commentForm.pageSize = pageSize
+      this.commentPage()
+    },
+    commentPage(){
+      //杞崲涓哄瓧绗︿覆
+      let startTime = this.formatDate(this.commentForm.startTime);
+      let endTime = this.formatDate(this.commentForm.endTime);
+      let from = {...this.commentForm};
+      from.startTime = startTime;
+      from.endTime = endTime;
+      this.commentLoading = true;
+      getCommentPage(from).then(res =>{
+        this.commentLoading = false;
+        if (res.code === 200){
+          this.commentData = res.data;
+          this.commentData.forEach(item =>{
+            item.createTime = this.formatDate(item.createTime);
+          })
+
+        }
+      })
+    },
+    commentHandleSearch(){
+      this.commentPage();
+    },
+    removeComment(row){
+      removeById(row.id).then(res=>{
+        if (res.code === 200){
+          this.$Message.success(res.msg);
+        }else {
+          this.$Message.error(res.msg);
+        }
+        this.commentPage();
+      })
+
+    },
+    formatDate(date, format = 'yyyy-MM-dd HH:mm:ss') {
+      if (!date) return '';
+
+      const d = new Date(date);
+      if (isNaN(d.getTime())) return date; // 鏃犳晥鏃ユ湡鐩存帴杩斿洖鍘熷��
+
+      const padZero = (num) => (num < 10 ? `0${num}` : num.toString());
+
+      return format
+        .replace('yyyy', d.getFullYear())
+        .replace('MM', padZero(d.getMonth() + 1))
+        .replace('dd', padZero(d.getDate()))
+        .replace('HH', padZero(d.getHours()))
+        .replace('mm', padZero(d.getMinutes()))
+        .replace('ss', padZero(d.getSeconds()));
+    },
+    commentShowSelect(){
+      // this.selectList = selection.map(item => item.id)
+      // this.selectCount = selection.length
+    },
+    openComment(row){
+      this.$refs.commentForm.resetFields();
+      console.log(row)
+      this.commentForm.videoId = row.id;
+      this.showVideoComment = true;
+      this.commentPage();
+    },
     async editVideo(row) {
       // this.uploadVideoForm = {};
       // this.uploadVideoForm = row;
@@ -755,13 +965,19 @@
         this.videoTagList = res.data;
       })
       this.upLoadVideoShow = true;
-      this.chooseTag = row.tagList.map(item => {
-        return item.tagName
-      })
+      console.log('--------------------->',row.tagList)
+      if (row.tagList){
+        this.chooseTag = row.tagList.map(item => {
+          return item.tagName
+        })
+      }
       console.log('閫変腑鍒楄〃---銆�',row.goodsList)
-      row.goodsList.forEach(item => {
-        item.goodsSkuId = item.id
-      })
+      if (row.goodsList){
+        row.goodsList.forEach(item => {
+          item.goodsSkuId = item.id
+        })
+      }
+
       this.uploadVideoForm = {
         id: '',
         title: '',
@@ -774,23 +990,32 @@
         showListImages: [],
         tags: [],
         fileInfo: {},
-        goodsList: []
+        goodsList: [],
+        weight: 0 // 娣诲姞鏉冮噸瀛楁锛岄粯璁ゅ�间负0
       }
 
 
-      // 閬嶅巻宸查�夋嫨鐨勬爣绛�
-      row.tagList.forEach(tag => {
-        // 妫�鏌ユ爣绛炬槸鍚﹀凡瀛樺湪浜巚ideoTagList涓�
-        const exists = this.videoTagList.some(item => item.tagName === tag.tagName);
-        // 濡傛灉涓嶅瓨鍦紝鍒欐坊鍔犲埌閫夐」鍒楄〃
-        if (!exists) {
-          this.videoTagList.push({
-            id: tag.id, // 鐢熸垚涓存椂ID
-            tagName: tag.tagName
-          });
-        }
-      });
-      this.uploadVideoForm = row
+      if (row.tagList){
+        // 閬嶅巻宸查�夋嫨鐨勬爣绛�
+        row.tagList.forEach(tag => {
+          // 妫�鏌ユ爣绛炬槸鍚﹀凡瀛樺湪浜巚ideoTagList涓�
+          const exists = this.videoTagList.some(item => item.tagName === tag.tagName);
+          // 濡傛灉涓嶅瓨鍦紝鍒欐坊鍔犲埌閫夐」鍒楄〃
+          if (!exists) {
+            this.videoTagList.push({
+              id: tag.id, // 鐢熸垚涓存椂ID
+              tagName: tag.tagName
+            });
+          }
+        });
+      }
+
+      // 淇濈暀鍘熸湁鐨剅ow鏁版嵁锛屼絾瑕佺‘淇漺eight瀛楁瀛樺湪
+      this.uploadVideoForm = Object.assign(this.uploadVideoForm, row);
+      // 纭繚weight瀛楁鏈夐粯璁ゅ��
+      if (this.uploadVideoForm.weight === undefined || this.uploadVideoForm.weight === null) {
+        this.uploadVideoForm.weight = 0;
+      }
       console.log("鎵撳嵃鍊�",this.uploadVideoForm)
       this.uploadVideoForm.fileInfo= {};
       this.uploadVideoForm.videoImgs = JSON.parse(this.uploadVideoForm.videoImgs)
@@ -859,11 +1084,10 @@
       this.upLoadVideoShow = false;
     },
     submitVideoUpload() {
-      console.log(this.uploadVideoForm.coverUrl)
-      if (this.uploadVideoForm.coverUrl === null || this.uploadVideoForm.coverUrl === undefined) {
-        this.$Message.error('鏍囬涓嶈兘涓虹┖');
-        return;
-      }
+      // if (this.uploadVideoForm.coverUrl === null || this.uploadVideoForm.coverUrl === undefined) {
+      //   this.$Message.error('灏侀潰涓嶈兘涓虹┖');
+      //   return;
+      // }
       this.uploadVideoForm.goodsList = this.uploadVideoForm.goodsList.filter(item => {
         return item.goodsNum > 0;
       })
@@ -1105,7 +1329,8 @@
         showListImages: [],
         tags: [],
         fileInfo: {},
-        goodsList: []
+        goodsList: [],
+        weight: 0 // 娣诲姞鏉冮噸瀛楁锛岄粯璁ゅ�间负0
       }
       recommend({
         searchType: "HOT"
@@ -1192,10 +1417,20 @@
       console.log(this.auditingForm, "sb")
       this.$refs.auditingForm.validate((valid) => {
         if (valid) {
+          let currentVideoId = this.auditingForm.id
           auditingVideo(this.auditingForm).then(res => {
             this.$Message.success("瀹℃牳瀹屾垚")
             this.closeAuditing()
             this.getDataList()
+            let param = {
+              addType:"USER_PUBLISH_EXAMINE",
+              userId:this.detail.authorId,
+              extend:""
+            }
+            param.extend = JSON.stringify({
+              videoId:currentVideoId
+            })
+            addPrizeNum(param)
           })
         }
       })
@@ -1351,6 +1586,28 @@
       this.searchGoodsForm.pageSize = v;
       this.getGoodsDataList();
     },
+    // 娣诲姞鍒犻櫎瑙嗛鏂规硶
+    deleteVideo(row) {
+      this.$Modal.confirm({
+        title: "鎿嶄綔纭",
+        content: "鎮ㄧ‘璁よ鍒犻櫎瑙嗛銆� " + row.title + "銆戝悧? 鍒犻櫎鍚庡皢鏃犳硶鎭㈠!",
+        loading: true,
+        onOk: () => {
+          deleteVideoById(row.id).then(res => {
+            this.$Modal.remove();
+            if (res.code === 200) {
+              this.$Message.success("瑙嗛鍒犻櫎鎴愬姛");
+              this.getDataList();
+            } else {
+              this.$Message.error(res.msg || "鍒犻櫎澶辫触");
+            }
+          }).catch(err => {
+            this.$Modal.remove();
+            this.$Message.error("鍒犻櫎澶辫触");
+          });
+        }
+      });
+    },
   }
 }
 </script>

--
Gitblit v1.8.0