<template>
  <div class="app-container calendar-list-container">
    <!-- 查询和其他操作 -->
    <div class="filter-container">
      <el-input clearable class="filter-item" style="width: 200px;" placeholder="抖音"
        v-model="listQuery.platformName"></el-input>
      <el-input clearable class="filter-item" style="width: 200px;" placeholder="视频系列"
        v-model="listQuery.videoSeries"></el-input>
      <el-input clearable class="filter-item" style="width: 200px;" placeholder="视频名称"
        v-model="listQuery.videoName"></el-input>
      <el-input clearable class="filter-item" style="width: 200px;" placeholder="抖音账号"
        v-model="listQuery.tiktokAccount"></el-input>
      <el-select v-model="listQuery.status" clearable placeholder="状态" class="filter-item" style="width: 200px">
        <el-option :key="item.type" v-for="item in statusTypeList" :label="item.name" :value="item.type">
        </el-option>
      </el-select>
      <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
      <el-button class="filter-item" type="primary" v-waves icon="el-icon-download"
        @click="handleDownLoad">导出</el-button>
    </div>

    <!-- 查询结果 -->
    <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
      highlight-current-row>
      <el-table-column type="index" label="序号" header-align="center" align="center">
      </el-table-column>
      <el-table-column align="center" min-width="100px" label="员工号" prop="employeNo">
      </el-table-column>
      <el-table-column align="center" min-width="100px" label="员工姓名" prop="userName">
      </el-table-column>
      <el-table-column align="center" min-width="100px" label="平台" prop="platformName">
      </el-table-column>
      <el-table-column align="center" min-width="100" label="账号" prop="accountName">
      </el-table-column>
      <el-table-column align="center" min-width="100" label="视频系列" prop="videoSeries">
      </el-table-column>
      <el-table-column align="center" min-width="100" label="第几集" prop="episodeNumber">
      </el-table-column>
      <el-table-column align="center" min-width="100" label="视频名称" prop="videoName">
      </el-table-column>
      <el-table-column align="center" min-width="100" label="抖音账号" prop="tiktokAccount">
      </el-table-column>
      <el-table-column align="center" min-width="80px" label="状态" prop="statusName">
      </el-table-column>
      <el-table-column align="center" min-width="200px" 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 align="center" label="操作" width="150px" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button :disabled="scope.row.status == 0 ? false : true" type="primary" size="small"
            @click="handleCreate(scope.row.id,0)">通过</el-button>
          <el-button :disabled="scope.row.status == 0 ? false : true" type="warning" size="small"
            @click="handleCreate(scope.row.id,1)">不通过</el-button>
        </template>
      </el-table-column>
    </el-table>

    <!-- 分页 -->
    <div class="pagination-container">
      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
        :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
        layout="total, sizes, prev, pager, next, jumper" :total="total">
      </el-pagination>
    </div>
    <!-- 添加或修改对话框 -->
    <el-dialog :close-on-click-modal="false" title="点赞审批" :visible.sync="dialogFormVisible" width="40%">
      <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="80px">
        <el-form-item label="积分" prop="integral" v-if="flag == 0">
          <el-input-number :min="0" :step="1" v-model="dataForm.integral" style="width: 100%"></el-input-number>
        </el-form-item>
        <el-form-item label="驳回原因" prop="content" v-else>
          <el-input type="textarea" :rows="2" placeholder="请输入驳回原因" v-model="dataForm.content" style="width: 100%"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取消</el-button>
        <el-button type="primary" @click="handleComplete">确定</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {
  complete,
  list,
} from "@/api/yeZhanManage/likeList";
import waves from "@/directive/waves"; // 水波纹指令
import Tinymce from "@/components/Tinymce";

export default {
  components: { Tinymce },
  directives: { waves },
  data() {
    return {
      uploadInfoId: '',
      flag: '',
      dialogFormVisible: false,
      dataForm: {
        integral:undefined,
        content:undefined,
      },
      rules: {
        integral: [{ required: true, message: "积分不能为空", trigger: "blur" }],
        content: [{ required: true, message: "驳回原因不能为空", trigger: "blur" }],
      },
      statusTypeList: [
        {
          type: 0,
          name: "待审核",
        },
        {
          type: 1,
          name: "已通过",
        },
        {
          type: 2,
          name: "未通过",
        },
      ],
      list: [
      ],
      total: 0,
      listLoading: false,
      listQuery: {
        page: 1,
        limit: 10,
        platformName: '',
        videoSeries: '',
        videoName: '',
        tiktokAccount: '',
        status: "",
      },
    };
  },
  created() {
    this.getList();
  },
  methods: {
    handleDownLoad() {
      window.location.href = process.env.BASE_API + '/mall-video/export/likeList?platformName=' + this.listQuery.platformName + '&videoSeries=' + this.listQuery.videoSeries + '&videoName=' + this.listQuery.videoName + '&tiktokAccount=' + this.listQuery.tiktokAccount + '&status=' + this.listQuery.status;
    },
    getList() {
      this.listLoading = true;
      list(this.listQuery)
        .then((response) => {
          this.list = response.data.data.items;
          this.total = response.data.data.total;
          this.listLoading = false;
        })
        .catch(() => {
          this.list = [];
          this.total = 0;
          this.listLoading = false;
        });
    },

    handleFilter() {
      this.listQuery.page = 1;
      this.getList();
    },

    handleSizeChange(val) {
      this.listQuery.limit = val;
      this.getList();
    },

    handleCurrentChange(val) {
      this.listQuery.page = val;
      this.getList();
    },
    handleCreate(uploadInfoId, flag) {
      this.uploadInfoId = uploadInfoId;
      this.flag = flag;
      this.dialogFormVisible = true;
      this.$nextTick(() => {
        this.dataForm.content = undefined;
        this.dataForm.integral = undefined;
        this.$refs["dataForm"].clearValidate();
      });
    },
    handleComplete() {
      this.$refs["dataForm"].validate((valid) => {
        if (valid) {
          complete({ uploadInfoId: this.uploadInfoId, flag: this.flag, integral: this.dataForm.integral, content: this.dataForm.content }).then(() => {
            this.dialogFormVisible = false;
            this.$notify({
              title: "成功",
              message: "操作成功",
              type: "success",
              duration: 2000,
            });
            this.getList();
          });
        }
      })

    }

  },
};
</script>