<!--
 * @Author: lixg lixg@dongwu-inc.com
 * @Date: 2022-11-16 20:59:06
 * @LastEditors: lixg lixg@dongwu-inc.com
 * @LastEditTime: 2022-11-16 21:08:27
 * @FilePath: /fe-manage/src/views/examine/CourseReviewed.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
-->
<!-- 已审核课程页面 -->
<template>
  <div class="coursereviewed">
    <div class="tmpl">
      <div class="tmpl_header">
        <div class="tmplh_inp">
          <div class="inpbox">
            <div class="inpbox1">
              <a-select
                v-model:value="valueproj"
                placeholder="请选择内容分类"
                @change="handleChangeproj"
                :options="optionsproj"
              />
            </div>
            <div class="inpbox1">
              <a-input
                v-model:value="valuecreater"
                style="
                  width: 270px;
                  height: 40px;
                  border-radius: 8px;
                  margin-right: 14px;
                "
                placeholder="请输入创建人"
              />
            </div>
            <div class="inpbox1">
              <a-input
                v-model:value="valuename"
                style="
                  width: 270px;
                  height: 40px;
                  border-radius: 8px;
                  margin-right: 14px;
                "
                placeholder="请输入名称"
              />
            </div>
          </div>
        </div>
        <div class="tmplh_btn">
          <div class="btn btn1" @click="getList">
            <div class="search"></div>
            <div class="btnText btnText1">搜索</div>
          </div>
          <div class="btn btn2" @click="reset">
            <div class="search"></div>
            <div class="btnText btnText2">重置</div>
          </div>
        </div>
      </div>
      <div class="tmpl_body">
        <div class="tmpl_tabbox">
          <a-table
            :columns="columns1"
            :data-source="tableData1"
            :loading="tableDataTotal === -1 ? true : false"
            expandRowByClick="true"
            @expand="expandTable"
            :scroll="{ x: 1300 }"
            :pagination="false"
          />
        </div>
        <div class="tableBox">
          <div class="pa">
            <a-pagination
              v-if="total > 10"
              showSizeChanger="true"
              show-quick-jumper
              :pageSize="pageSize"
              v-model:current="currentPage"
              :total="total"
              class="pagination"
              @change="changePagination"
            />
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import { reactive, toRefs, onMounted } from "vue";
import { courseListView } from "../../api/indexAudit";
export default {
  name: "CoursereViewed",

  setup() {
    const state = reactive({
      optionsproj: [
        {
          value: "0",
          label: "Jack",
        },
        {
          value: "1",
          label: "rose",
        },
      ],
      valueproj: "",
      valuecreater: "",
      valuename: "",
      currentPage: 1,
      total: null,
      pageSize: 10,
      columns1: [
        {
          title: "序号",
          dataIndex: "number",
          key: "number",
          align: "center",
        },
        {
          title: "名称",
          dataIndex: "name",
          key: "name",
          align: "center",
        },
        {
          title: "类型",
          dataIndex: "type",
          key: "type",
          align: "center",
        },
        {
          title: "内容分类",
          dataIndex: "content",
          key: "content",
          align: "center",
        },
        {
          title: "审核状态",
          dataIndex: "status",
          key: "status",
          align: "center",
        },
        {
          title: "创建人",
          dataIndex: "creater",
          key: "creater",
          align: "center",
        },
        {
          title: "审核时间",
          dataIndex: "time",
          key: "time",
          align: "center",
        },
        {
          title: "审核说明",
          dataIndex: "msg",
          key: "msg",
          align: "center",
        },
        {
          title: "操作",
          dataIndex: "opt",
          key: "opt",
          align: "center",
          customRender: () => {
            return <div style="color:#387DF7">审核日志</div>;
          },
        },
      ],
      tableData1: [
        // {
        //   number: "1",
        //   name: "课程1",
        //   type: "在线",
        //   content: "领导力/领导业务",
        //   status: "通过",
        //   creater: "-",
        //   time: "-",
        //   msg: "-",
        // },
      ],
    });
    const getList = () => {
      let objn = {
        auditStatus: 0,
        categoryId: 0,
        createName: state.valuecreater,
        name: state.valuename,
        pageNo: state.currentPage,
        pageSize: 10,
      };
      courseListView(objn)
        .then((res) => {
          console.log("获取已审核课程成功", res.data.data);
          let result = res.data.data.rows;
          state.total = res.data.data.total;
          if (res.data.data.total > 0) {
            setTableData(result);
          }
        })
        .catch((err) => {
          console.log("获取已审核课程失败", err);
        });
    };
    const setTableData = (table) => {
      let data = table;
      let array = [];
      data.map((item) => {
        let obj = {
          number: item.offcourseId,
          name: item.name || "- ",
          type: item.type == 1 ? "线上" : "线下",
          content: item.categoryId,
          status:
            item.auditStatus == 0
              ? "未提交"
              : item.auditStatus == 1
              ? "提交待审核"
              : item.auditStatus == 2
              ? "通过"
              : item.auditStatus == -1
              ? "拒绝"
              : "-",
          creater: item.createName,
          time: "-",
          msg: item.description || "-",
        };
        array.push(obj);
      });
      state.tableData1 = array;
    };
    const reset = () => {
      (state.valueproj = null),
        (state.valuecreater = null),
        (state.valuename = null),
        getList();
    };
    const handleChangeproj = (value, item) => {
      console.log(value, item);
      state.valueproj = item.value;
    };
    const changePagination = (pagina) => {
      state.currentPage = pagina;
      getList();
    };
    onMounted(() => {
      getList();
    });
    return {
      ...toRefs(state),
      getList,
      setTableData,
      handleChangeproj,
      reset,
      changePagination,
    };
  },
};
</script>
<style lang="scss">
.coursereviewed {
  width: 100%;
  .tmpl {
    width: 100%;
    .tmpl_header {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin-bottom: 32px;

      margin-left: 32px;
      margin-right: 32px;
      .tmplh_inp {
        .inpbox {
          display: flex;
          margin-top: 32px;
          flex-wrap: wrap;
          .inpbox1 {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 24px;
            margin-top: 10px;
            .ant-select-selector {
              border-radius: 8px;
              width: 270px;
              height: 40px;
              padding-top: 5px;
            }
            span {
              white-space: nowrap;
            }
          }
        }
      }
      .tmplh_btn {
        display: flex;
        // margin-left: 38px;
        margin-top: 42px;
        .btn {
          padding: 0px 26px 0px 26px;
          height: 38px;
          border-radius: 8px;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-right: 14px;
          cursor: pointer;
          flex-shrink: 0;
          .search {
            background-size: 100%;
          }
          .btnText {
            font-size: 14px;
            font-weight: 400;
            line-height: 36px;
            margin-left: 5px;
          }
          .btnText1 {
            color: rgb(255, 255, 255);
          }
          .btnText2 {
            color: rgba(64, 158, 255, 1);
          }
        }
        .btn1 {
          background: #409eff;
          .search {
            width: 15px;
            height: 17px;
            background-image: url("../../assets/images/courseManage/search0.png");
          }
        }
        .btn2 {
          background: #ffffff;
          border: 1px solid #388be1;
          .search {
            width: 16px;
            height: 18px;
            background-image: url("../../assets/images/courseManage/reset1.png");
          }
        }
        .btn1:hover {
          background: rgb(255, 255, 255);
          border: 1px solid #388be1;
          .search {
            background-image: url("../../assets/images/courseManage/search1.png");
          }
          .btnText {
            color: rgba(64, 158, 255, 1);
          }
        }
        .btn2:hover {
          background: rgba(64, 158, 255, 1);
          .search {
            background-image: url("../../assets/images/courseManage/reset0.png");
          }
          .btnText {
            color: #ffffff;
          }
        }
      }
    }
    .tmpl_body {
      padding: 0px 30px;
      .tmpl_tabbox {
        .operation {
          display: flex;
          justify-content: center;
          align-items: center;
          color: #4ea6ff;
          .nselect {
            justify-content: center;
            align-items: center;
            display: flex;
            .jc {
              margin-left: 20px;
              white-space: nowrap;
              cursor: pointer;
            }
          }
        }
      }
      .pa {
        width: 100%;
        margin-top: 20px;
        display: flex;
        justify-content: center;
      }
    }
  }
}
</style>
