<!--
 * @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" value-key="value"
                :options="[{ label: '请选择内容分类', value: '' }, ...calssifyList]" />
            </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";
import * as api1 from "@/api/index1";
import { toDate } from "../../api/method";

export default {
  name: "CoursereViewed",

  setup() {
    const state = reactive({
      calssifyList: [], //分类字典
      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",
          customRender: ({ text }) => state.calssifyList.find(e => e.value == text)?.label,
        },
        {
          title: "审核状态",
          dataIndex: "status",
          key: "status",
          align: "center",
        },
        {
          title: "创建人",
          dataIndex: "creater",
          key: "creater",
          align: "center",
        },
        {
          title: "审核时间",
          dataIndex: "time",
          key: "time",
          align: "center",
          customRender: (time) => {
            return <div style="color:#387DF7">{toDate(time.record.time, "Y-M-D h:m")}</div>;
          },

        },
        {
          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: Number(state.valueproj),
        createName: state.valuecreater,
        name: state.valuename,
        pageNo: state.currentPage,
        pageSize: 10,
      };
      console.log(objn)
      courseListView(objn)
        .then((res) => {
          console.log("获取已审核课程成功", res.data.data);
          state.total = res.data.data.total;
          setTableData(res.data.data.rows);
        })
        .catch((err) => {
          console.log("获取已审核课程失败", err);
        });
    };
    const setTableData = (table) => {
      if (!table || !table.length) {
        state.tableData1 = []
        return
      }
      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: item.createTime,
          msg: item.description || "-",
        };
        array.push(obj);
      });
      state.tableData1 = array;
    };
    const reset = () => {
      (state.valueproj = ''),
        (state.valuecreater = null),
        (state.valuename = null),
        getList();
    };
    const changePagination = (pagina) => {
      state.currentPage = pagina;
      getList();
    };
    const getDictList = (param) => api1.getDict({
      pageNo: 1,
      pageSize: 20,
      setCode: param
    }).then((res) => res.data.data.rows)

    onMounted(async () => {
      getList();
      //获取分类列表
      state.calssifyList = (await getDictList("faceclassClass")).map(e => ({ label: e.dictName, value: e.dictCode }))
    });
    return {
      ...toRefs(state),
      getList,
      setTableData,
      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>
