Browse Source

抖音点赞活动

sunlupeng 7 months ago
parent
commit
6c1c1635d2
3 changed files with 204 additions and 7 deletions
  1. 17 0
      src/api/zanApi.js
  2. 1 1
      src/permission.js
  3. 186 6
      src/views/HomeView/EarnPoints.vue

+ 17 - 0
src/api/zanApi.js

@@ -0,0 +1,17 @@
+// 客户表彰列表
+export function zanList(query) {
+  return request({
+    url: '/mall-video/video/user/page',
+    method: 'get',
+    params:query
+  })
+}
+
+//客户表彰上传
+export function uploadZan(data) {
+  return request({
+    url: '/mall-video/video/upload',
+    method: 'post',
+    data
+  })
+}

+ 1 - 1
src/permission.js

@@ -4,7 +4,7 @@ import { getToken, setToken } from '@/utils/auth' // getToken from cookie
 import { lockStatus,unlock } from "@/api/allApi";
 //路由跳转之前
 router.beforeEach((to, _from, next) => {
-  // setToken('d81e7ea936411452b97803c4a80a89ba');
+  setToken('a487d485f3652cfeb71819467244eda0');
   const path = to.path;
   const Authorization = to.query.Authorization
   if (path.indexOf('auth') != -1 && Authorization) { 

+ 186 - 6
src/views/HomeView/EarnPoints.vue

@@ -201,7 +201,45 @@
           <div v-else v-html="integralRules"></div>
         </el-tab-pane>
         <el-tab-pane label="积分充值" name="fifth">
-          <Ipay></Ipay>
+          <Ipay v-if="activeName=='fifth'"></Ipay>
+        </el-tab-pane>
+        <el-tab-pane label="抖音叶盏点赞活动" name="sixth">
+          <el-table size="small" :data="dataListZan" border style="margin-top: 20px;width: 960px">
+            <el-table-column type="index" width="50" align="center" label="序号"></el-table-column>
+            <el-table-column min-width="100" align="center" label="平台" prop="platformName">
+            </el-table-column>
+            <el-table-column min-width="100" align="center" label="账号" prop="accountName">
+            </el-table-column>
+            <el-table-column min-width="100" align="center" label="视频系列" prop="videoSeries">
+            </el-table-column>
+            <el-table-column min-width="100" align="center" label="第几集" prop="episodeNumber">
+            </el-table-column>
+            <el-table-column min-width="100" align="center" label="视频名称" prop="videoName">
+            </el-table-column>
+            <el-table-column min-width="100" align="center" label="抖音账号" prop="tiktokAccount">
+            </el-table-column>
+            <el-table-column min-width="100" align="center" label="状态" prop="uploadStatus">
+            </el-table-column>
+            <el-table-column min-width="200" align="center" label="附件">
+              <template slot-scope="props">
+                <div v-for="(item, index) in props.row.files" :key="index">
+                  <a style="color: #1e80ff;" target="_blank" :href="item.url">{{ item.oldName }}</a>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column fixed="right" align="center" label="操作" width="80px" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button type="primary" size="small" @click="handleClickView(scope.row.id)">上传</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <!-- 分页 -->
+          <div class="myPage">
+            <el-pagination @size-change="handleSizeChangeZan" @current-change="handleCurrentChangeZan"
+              :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="10"
+              layout="total, sizes, prev, pager, next, jumper" :total="totalZan">
+            </el-pagination>
+          </div>
         </el-tab-pane>
       </el-tabs>
     </div>
@@ -336,11 +374,38 @@
         <el-button size="small" type="primary" @click="submitFormTrain">确 定</el-button>
       </span>
     </el-dialog>
+    <el-dialog title="上传点赞" :visible.sync="dialogVisibleZan" width="40%">
+      <el-form :rules="rulesZan" ref="dataFormZan" :model="dataFormZan" label-width="100px">
+        <el-form-item label="抖音账号:" prop="tiktokAccount">
+          <el-input clearable style="width: 95%;" size="small" v-model="dataFormZan.tiktokAccount"></el-input>
+        </el-form-item>
+        <el-form-item label="事项" prop="matters">
+          <el-checkbox-group v-model="dataFormZan.matters">
+            <el-checkbox v-for="item in typeListZan" :key="item.dictLabel" :label="item.dictLabel" name="type"></el-checkbox>
+          </el-checkbox-group>
+        </el-form-item>
+        <el-form-item label="证明附件:" prop="fileIds">
+          <el-upload :action="fileUrl" :file-list="dataFormZan.files" :on-success="handleAvatarSuccessZan"
+            :before-upload="beforeUploadFileZan" :on-remove="handleRemoveZan">
+            <el-button size="small" type="primary">点击上传</el-button>
+          </el-upload>
+        </el-form-item>
+        <el-form-item label="上传说明:">
+          <el-card shadow="never" style="width: 95%;padding: 0;min-height: 100px;line-height: normal;">
+            <div v-html="remarkHtml"></div>
+          </el-card>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="submitFormZan">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script scoped>
 import Ipay from '@/views/Ipay.vue'
 import { certificatePage, certificateUpload, notice, certificatType, dictList, allUserList, citeList, uploadCite, editCite, trainList, uploadTrain,editTrain,remarkHtml } from "@/api/allApi";
+import { zanList, uploadZan } from "@/api/zanApi";
 import { handleTree } from '@/utils/index'
 export default {
   components: {
@@ -351,6 +416,7 @@ export default {
       currentPage: 1,
       remarkHtml:'',
       citeLogsList:[],
+      typeListZan: [],
       trainLogsList:[],
       integralRules: '',
       typeList: [],
@@ -443,6 +509,26 @@ export default {
         sitePhotos: [],
         content: '',
       },
+
+      dataListZan: [],
+      dialogVisibleZan: false,
+      rulesZan: {
+        tiktokAccount: [{ required: true, message: "请填写抖音账号", trigger: "blur" }],
+        matters: [{ required: true, message: "请选择事项", trigger: "blur" }],
+        fileIds: [{ required: true, message: "请上传附件", trigger: "blur" }],
+      },
+      totalZan: 0,
+      listQueryZan: {
+        page: 1,
+        limit: 10,
+      },
+      dataFormZan: {
+        tiktokAccount: '',
+        matters: [],
+        fileIds: '',
+        files: [],
+      },
+
       dialogStatus:'',
       textMap: {
         create: "上传",
@@ -453,13 +539,13 @@ export default {
   },
   created() {
     this.getTypeListCite();
+    this.getTypeListZan();
     this.getAllUserList();
     this.getDataListCite();
     this.getDataListTrain();
     this.getTypeList();
     this.getDataList();
     this.getIntegralNotice();
-    this.getRemarkHtml('trainrule');
   },
   methods: {
     getRemarkHtml(val) {
@@ -468,6 +554,16 @@ export default {
           this.remarkHtml = response.data.data.content
       })    
     },
+    handleClickCreateZan(id){
+      this.dialogVisibleZan = true;
+      this.dataFormZan = {
+        videoId: id,
+        tiktokAccount: '',
+        matters: [],
+        fileIds: '',
+        files: [],
+      }
+    },
     handleClickCreate(val){
       this.dialogStatus = 'create';
       if(val=='上传表彰'){
@@ -625,6 +721,12 @@ export default {
     },
     handleClick(tab, event) {
       console.log(tab.name, event);
+      if(tab.name=='fourth'){
+        this.getRemarkHtml('trainrule');
+      }
+      if(tab.name=='sixth'){
+        this.getRemarkHtml('zanRule');
+      }
     },
     getIntegralNotice() {
       notice({ noticeType: 'certificatNotice' }).then(response => {
@@ -718,6 +820,11 @@ export default {
         this.typeListCite = response.data.data;
       })
     },
+    getTypeListZan() {
+      dictList({ dictType: 'matter' }).then(response => {
+        this.typeListZan = response.data.data;
+      })
+    },
     getAllUserList() {
       allUserList().then(response => {
         this.recipientsList = response.data.data;
@@ -823,10 +930,7 @@ export default {
     },
 
 
-    handleClickTrain(row, tag) {
-      console.log(row);
 
-    },
     handleRemoveTrain(file, fileList) {
       console.log(file, fileList);
       let fileIds = [];
@@ -960,7 +1064,6 @@ export default {
     },
     getDataListTrain() {
       trainList(this.listQueryCite).then(response => {
-        debugger
         this.dataListTrain = response.data.data.items;
         this.totalTrain = response.data.data.total;
       })
@@ -974,6 +1077,83 @@ export default {
       this.getDataListTrain()
     },
 
+    handleRemoveZan(file, fileList) {
+      console.log(file, fileList);
+      let fileIds = [];
+      for (let i in fileList) {
+        let id = fileList[i].response.data.id;
+        fileIds.push(id);
+      }
+      this.dataFormZan.fileIds = fileIds.join(",");
+    },
+    beforeUploadFileZan(file) {
+      console.log(file);
+      const size = file.size / 1024 / 1024;
+      console.log(size);
+      if (size > 10) {
+        this.$message.error("文件大小不能超过10MB!");
+        return false;
+      }
+    },
+    handleAvatarSuccessZan(res, file, fileList) {
+      console.log(file, fileList);
+      console.log("------", "==========");
+      console.log("res = ", res);
+
+      let fileIds = [];
+      for (let i in fileList) {
+        let response = fileList[i].response;
+        if (response.errno && response.errno != "0") {
+          this.$message.error("该文件上传失败,已被移除,请重新上传!");
+          // 上传失败移除该 file 对象
+          fileList.splice(i, 1);
+        } else {
+          let id = fileList[i].response.data.id;
+          fileIds.push(id);
+        }
+      }
+      this.dataFormZan.fileIds = fileIds.join(",");
+    },
+    submitFormZan() {
+      this.$refs['dataFormZan'].validate((valid) => {
+        if (valid) {
+          uploadZan(this.dataFormZan)
+            .then((response) => {
+              this.dialogVisibleZan = false;
+              this.$notify({
+                title: "成功",
+                message: "上传成功",
+                type: "success",
+                duration: 2000,
+              });
+              this.dataFormZan.tiktokAccount = '';
+              this.dataFormZan.matters = [];
+              this.dataFormZan.fileIds = '';
+              this.dataFormZan.files = [];
+              this.listQueryZan.page = 1;
+              this.getDataListZan();
+            })
+            .catch(() => { });
+        } else {
+          return false;
+        }
+      });
+    },
+    getDataListZan() {
+      zanList(this.listQueryZan).then(response => {
+        this.dataListZan = response.data.data.items;
+        this.totalZan = response.data.data.total;
+      })
+    },
+    handleSizeChangeZan(val) {
+      this.listQueryZan.limit = val
+      this.getDataListZan()
+    },
+    handleCurrentChangeZan(val) {
+      this.listQueryZan.page = val
+      this.getDataListZan()
+    },
+
   },
 };
 </script>