<!-- 直播抽屉 -->
<template>
  <a-drawer
    :visible="addliveVisible"
    class="drawerStyle addliveDrawer"
    width="80%"
    title="添加直播"
    placement="right"
    @after-visible-change="afterVisibleChange"
  >
    <div class="drawerMain">
      <div class="header">
        <div class="headerTitle">{{ edit ? "编辑" : "添加" }}直播</div>
        <img
          style="width: 29px; height: 29px; cursor: pointer"
          src="../../assets/images/basicinfo/close.png"
          @click="closeDrawer"
        />
      </div>
      <div class="contentMain">
        <div class="main_left">
          <div class="main_item">
            <div class="signbox">
              <div class="sign">
                <img
                  src="@/assets/images/coursewareManage/asterisk.png"
                  alt=""
                />
              </div>
              <span style="margin-right: 3px">直播名称：</span>
            </div>
            <div class="btnbox">
              <a-input
                v-model:value="inputV1"
                style="width: 400px; height: 40px; border-radius: 8px"
                placeholder="请输入直播名称"
                :maxlength="20"
              />
            </div>
          </div>
          <div class="main_item" style="margin-top: -10px">
            <div class="signbox">
              <div class="asterisk_icon">
                <img
                  src="@/assets/images/coursewareManage/asterisk.png"
                  alt=""
                />
              </div>
              <span style="margin-right: 3px">直播链接：</span>
            </div>
            <div class="btnbox">
              <a-input
                v-model:value="inputV4"
                style="width: 400px; height: 40px; border-radius: 8px"
                placeholder="请输入直播链接"
                :maxlength="100"
              />
            </div>
          </div>

          <div class="main_item">
            <div class="signbox">
              <div class="sign">
                <img
                  src="@/assets/images/coursewareManage/asterisk.png"
                  alt=""
                />
              </div>
              <span style="margin-right: 3px">直播时间：</span>
            </div>
            <div class="btnbox">
              <a-range-picker
                :show-time="{ format: 'HH:mm' }"
                :disabled-date="disabledDate"
                :disabled-time="disabledRangeTime"
                style="width: 400px; height: 40px; border-radius: 8px"
                v-model:value="time"
                format="YYYY/MM/DD HH:mm"
                :placeholder="['      开始时间', '        结束时间']"
              />
            </div>
          </div>
          <div class="main_item">
            <div class="signbox">
              <div class="sign">
                <img
                  src="@/assets/images/coursewareManage/asterisk.png"
                  alt=""
                />
              </div>
              <span style="margin-right: 3px">直播时长：</span>
            </div>
            <div class="btnbox">
              <a-input-number
                :min="0"
                :max="300"
                :precision="0"
                style="width: 400px; height: 40px; border-radius: 8px"
                v-model:value="inputV2"
              ></a-input-number>
              <span style="color: #999999; margin-left: 8px">分钟</span>
            </div>
          </div>
          <div class="main_item">
            <div class="signbox">
              <div class="sign">
                <img
                  src="@/assets/images/coursewareManage/asterisk.png"
                  alt=""
                />
              </div>
              <span style="margin-right: 3px">授课老师：</span>
            </div>
            <div class="select" style="width: 400px">
              <ProjectManager
                v-model:value="memberValue.value"
                v-model:name="memberValue.label"
              ></ProjectManager>
            </div>
          </div>
          <div class="mbl_items2">
            <div class="item_nam">
              <div class="asterisk_icon">
                <img
                  src="@/assets/images/coursewareManage/asterisk.png"
                  alt=""
                />
              </div>
              <span style="margin-right: 14px">直播封面：</span>
            </div>
            <div class="item_inp">
              <a-upload
                name="avatar"
                list-type="picture-card"
                class="avatar-uploader"
                :show-upload-list="false"
                :before-upload="beforeUpload"
              >
                <img
                  class="i_upload_img"
                  v-if="imageUrl"
                  :src="imageUrl"
                  alt="avatar"
                />
                <div class="i_upload" v-else>
                  <div class="addimg">
                    <div class="heng"></div>
                    <div class="shu"></div>
                  </div>
                </div>
              </a-upload>
              <div class="i_bottom">
                <div class="tip">
                  <span style="color: #999999; margin-left: 8px"
                    >支持图片格式为jpg/jpeg/png 图片最大为2MB</span
                  >
                </div>
              </div>
            </div>
          </div>
          <div class="main_item2">
            <div class="signbox">
              <div class="asterisk_icon">
                <img
                  src="@/assets/images/coursewareManage/asterisk.png"
                  alt=""
                />
              </div>
              <span style="margin-right: 3px">直播公告：</span>
            </div>
            <div class="textarea">
              <a-textarea
                v-model:value="liveNotice"
                placeholder="请输入直播公告"
                allow-clear
                show-count
                :maxlength="200"
                :rows="6"
              />
            </div>
          </div>

          <div class="main_item">
            <div class="signbox">
              <span style="margin-right: 3px">回放设置：</span>
            </div>
            <div class="btnbox">
              <a-switch v-model:checked="switchC1" />
            </div>
          </div>
          <div v-if="switchC1">
            <div class="main_item">
              <div class="signbox">
                <span style="margin-right: 3px">回放链接：</span>
              </div>
              <div class="btnbox">
                <a-input
                  v-model:value="inputV5"
                  style="width: 400px; height: 40px; border-radius: 8px"
                  placeholder="请输入回放链接"
                  :maxlength="100"
                />
              </div>
            </div>
          </div>

          <div class="main_item2">
            <div class="signbox">
              <span style="margin-right: 3px">直播说明：</span>
            </div>
            <div class="textarea">
              <a-textarea
                v-model:value="textV1"
                placeholder="请输入直播说明"
                allow-clear
                show-count
                :maxlength="200"
                :rows="6"
              />
            </div>
          </div>

          <div class="main_item2">
            <div class="signbox">
              <span style="margin-right: 3px">考勤设置：</span>
            </div>
            <div class="kqszbox">
              <div class="qdqtbox">
                <div class="qdbtn">
                  <div class="btntext">签到</div>
                </div>
              </div>
              <div class="setbox">
                <div class="timerbox">
                  <span>直播开始前：</span>
                  <a-input-number
                    :min="0"
                    :max="30"
                    :precision="0"
                    style="
                      width: 88px;
                      height: 32px;
                      border-radius: 8px;
                      overflow: hidden;
                    "
                    v-model:value="inputV6"
                  ></a-input-number>
                  <span style="color: #999999; margin-left: 8px"
                    >分钟允许签到</span
                  >
                </div>
                <div class="timerbox">
                  <span>直播开始后：</span>
                  <a-input-number
                    :min="0"
                    :max="30"
                    :precision="0"
                    style="
                      width: 88px;
                      height: 32px;
                      border-radius: 8px;
                      overflow: hidden;
                    "
                    v-model:value="inputV7"
                  ></a-input-number>
                  <span style="color: #999999; margin-left: 8px"
                    >分钟允许签到</span
                  >
                </div>
              </div>
              <!-- <div class="qdqtbox">
                <div class="qtbtn"><div class="btntext">签退</div></div>
              </div> -->
              <!-- <div class="setbox">
                <div class="timerbox">
                  <span>结束前：</span>
                  <a-input-number
                    :min="0"
                    :max="30"
                    :precision="0"
                    style="
                      width: 88px;
                      height: 32px;
                      border-radius: 8px;
                      overflow: hidden;
                    "
                    v-model:value="inputV8"
                  ></a-input-number>
                  <span style="color: #999999; margin-left: 8px"
                    >分钟（提前签退则记为早退）</span
                  >
                </div>
              </div> -->
            </div>
          </div>
          <!--
          <div class="main_item">
            <div class="signbox">
              <span style="margin-right: 3px">完成标准设置：</span>
            </div>
            <div class="btnbox">
              <a-radio-group v-model:value="radioV1">
                <a-radio :value="1" @click="cloradio1">仅签到</a-radio>-->
          <!-- <a-radio :value="2" @click="cloradio1"
                  >签到、签退全部完成</a-radio
                > -->
          <!--
              </a-radio-group>
            </div>
          </div>

          <div class="main_item" style="margin-bottom: 28px;">
            <div class="signbox">
              <span style="margin-right: 3px">其他设置：</span>
            </div>
            <div class="btnbox">
              <a-checkbox
                v-model:checked="switchC2"
                @onclick="switchC2 = !switchC2"
                >学员请假后记为任务完成
              </a-checkbox>
            </div>
          </div>
        -->

          <div class="main_item2">
            <div class="signbox">
              <span style="margin-right: 3px">评估：</span>
            </div>
            <div class="btnbox2">
              <a-checkbox
                v-model:checked="needEval"
                @click="needEval = !needEval"
                >需要评估
              </a-checkbox>
            </div>
          </div>
          <div v-if="needEval" class="main_item">
            <div class="signbox"></div>
            <div class="btnbox">
              <button class="xkbtn" @click="showAssessment">选择评估</button>
              <div v-if="assessmentId > 0">
                <a-tag closable @close="removePG" color="processing">
                  <span style="font-size: 14px; line-height: 33px">{{
                    assessmentName
                  }}</span>
                </a-tag>
              </div>
              <AssessmentList
                v-model:assessmentVisible="assessmentVisible"
                v-model:titleTag="titleTag"
                v-model:assessmentId="assessmentId"
                v-model:assessmentName="assessmentName"
              />
            </div>
          </div>
          <div class="main_item" style="height: 30px">
            <div class="signbox">
              <span style="margin-right: 3px"></span>
            </div>
            <div class="btnbox"></div>
          </div>
        </div>
      </div>
      <div class="main_btns">
        <button class="btn1" @click="closeDrawer">取消</button>
        <button class="btn2" @click="updateLiveBroadcast">确定</button>
      </div>
    </div>
  </a-drawer>
</template>
<script>
import { reactive, toRefs, ref } from "vue";
import { message } from "ant-design-vue";
import * as api from "../../api/indexLiveBroadcast";
import * as apiTask from "../../api/indexTaskadd";
import { toDate } from "@/api/method";
import { RouterEditTask } from "@/api/indexTask";
import { addTempTask } from "../../api/indexTaskadd";
import { getMemberInfo } from "@/api/index1";
import dayjs from "dayjs";
import { fileUp } from "../../api/indexEval";
//import AssessmentList from "./AssessmentList.vue";
import AssessmentList from "@/components/drawers/AssessmentList.vue";
import { debounce } from "lodash-es";
import ProjectManager from "@/components/project/ProjectManagerNew";
import { queryAppraiseDetailById } from "../../api/indexInvist";

// import { useRouter } from "vue-router";
function getBase64(img, callback) {
  const reader = new FileReader();
  reader.addEventListener("load", () => callback(reader.result));
  reader.readAsDataURL(img);
}

export default {
  name: "AddLive",
  components: {
    AssessmentList,
    ProjectManager,
  },
  props: {
    addliveVisible: {
      type: Boolean,
      default: false,
    },
    EditLiveId: {
      type: Number,
      default: null,
    },
    edit: {
      //  是否为编辑
      type: Boolean,
      default: null,
    },
    projectId: {
      type: Number,
      default: null,
    },
    chooseStageId: {
      type: Number,
      default: null,
    },
    routerTaskId: {
      type: Number,
      default: 0,
    },
    isLevel: {
      // 是否是关卡页面触发
      type: Number,
      default: null,
    },
    projectTaskId: {
      // 要编辑的projectId
      type: Number,
      default: null,
    },
    routerId: {
      type: Number,
      default: null,
    },
    isactive: {
      type: Number,
      default: null,
    },
    projectTemplateId: {
      type: Number,
      default: null,
    },
  },
  setup(props, ctx) {
    // const router = useRouter();
    const options = ref([]);
    const state = reactive({
      currentPage: 1,
      tableDataTotal: 100,
      pageSize: 10,
      fetching: false,
      totalPages: 0,
      memberValue: {
        value: "",
        label: "",
      }, // 授课老师关键词
      inputV1: "", //*直播名称
      time: "", //*直播时间
      inputV2: "", //*直播时长
      inputV3: "", //*授课老师
      fileList: [], //直播封面
      inputV4: "", //直播链接
      inputV5: "", //回放链接
      inputV6: "", //活动开始前多少分钟结束签到
      inputV7: "", //活动开始后多少分钟结束签到
      inputV8: "", //结束前多少分钟开始签退
      textV1: "",
      radioV1: "", //标准设置的单选
      imageUrl: "", //上传图片地址
      loading: false,
      switchC1: "",
      checkedC1: false,
      checkedC2: false,
      liveNotice: null,
      assessmentId: null,
      obj: {}, //要传的obj数据
      assessment: [], //评估信息
      assessmentvalue: null,
      needEval: false,
      switchC2: false,
      assessmentVisible: false,
      assessmentName: "",
      isClick: false,
    });
    const closeDrawer = () => {
      ctx.emit("update:addliveVisible", false);
      ctx.emit("update:edit", false);
      state.radioV1 = "";
      state.switchC1 = false;
      state.inputV6 = "";
      state.inputV7 = "";
      state.inputV2 = "";
      state.inputV3 = "";
      state.inputV1 = "";
      state.inputV4 = "";
      state.inputV5 = "";
      state.inputV8 = "";
      state.time = "";
      state.textV1 = "";
      state.switchC1 = "";
      state.imageUrl = "";
      state.needEval = false;
      state.switchC2 = false;
      state.assessmentId = null;
      state.liveNotice = null;
      state.liveTeacherId = null;
      state.memberValue = {};
      ctx.emit("changeData", false);
      localStorage.setItem("stageId", props.chooseStageId);
      localStorage.setItem("chapterId", props.isactive);
    };
    const afterVisibleChange = (bool) => {
      if (props.edit && bool) {
        queryLive();
      }
      api
        .queryAssessmentDetailList({
          assessmentName: "",
          pageNo: 1,
          pageSize: 200,
          releaseStatus: "",
          searchEndTime: "",
          searchStartTime: "",
        })
        .then((res) => {
          res.data.data.rows.forEach((item) => {
            let obj = item;
            obj.value = item.assessmentId;
            obj.label = item.assessmentName;
            state.assessment.push(obj);
          });
        });
    };
    const queryLive = () => {
      let d = props.EditLiveId;
      api
        .getLiveBroadcastInfor({ liveId: d })
        .then((res) => {
          console.log("获取的数据", res);
          state.inputV1 = res.data.data.liveName;
          state.time = [
            dayjs(res.data.data.liveStartTime, "YYYY-MM-DD HH:mm"),
            dayjs(res.data.data.liveEndTime, "YYYY-MM-DD HH:mm"),
          ];
          console.log(state.time);

          state.inputV2 = res.data.data.liveDuration;
          state.inputV3 = res.data.data.liveTeacherId;
          //state.fileList= res.data.data
          state.inputV4 = res.data.data.liveLink;
          state.inputV5 = res.data.data.livePlaybackLink;
          state.inputV6 = res.data.data.beforeSignIn;
          state.inputV7 = res.data.data.afterSignIn;
          state.inputV8 = res.data.data.signOutTime;
          state.textV1 = res.data.data.liveExplain;
          state.radioV1 = Number(res.data.data.standardSettings);
          state.liveNotice = res.data.data.liveNotice;
          state.assessmentId = res.data.data.assessmentId;
          state.imageUrl = res.data.data.liveCover;
          state.switchC1 = res.data.data.livePlayback === "1" ? true : false;
          state.switchC2 = res.data.data.otherSettings == 1 ? true : false;
          state.needEval = res.data.data.isEvaluate == "1" ? true : false;
          state.memberValue = {
            value: res.data.data.liveTeacherId || "",
            label: res.data.data.liveTeacherName || "",
          };
          queryAppraiseDetailById({
            assessmentId: res.data.data.assessmentId,
          }).then((res) => {
            state.assessmentName = res.data.data.assessmentName;
          });
        })
        .catch(() => {
          //message.error(`查询失败`);
        });
    };
    const cloradio1 = (value) => {
      if (state.radioV1 === value.target._value) {
        state.radioV1 = "";
      }
    };
    const handleChange = (info) => {
      if (info.file.status === "uploading") {
        state.loading = true;
        console.log("info", info);
        return;
      }

      if (info.file.status === "done") {
        // Get this url from response in real world.
        getBase64(info.file.originFileObj, (base64Url) => {
          state.imageUrl = base64Url;
          state.loading = false;
          console.log("imgURL", state.imageUrl);
        });
      }
      if (info.file.status === "error") {
        state.loading = false;
        message.destroy();
        message.error("upload error");
      }
    };
    const updateTask = (res) => {
      if (props.isLevel == 1) {
        if (!props.isactive) {
          message.destroy();
          return message.warning("请先选中关卡");
        }
        RouterEditTask({
          chapterId: props.isactive,
          courseId: res.data.data.liveId,
          duration: res.data.data.liveDuration,
          name: res.data.data.liveName,
          routerId: props.routerId,
          routerTaskId: props.routerTaskId || 0,
          type: 6,
        })
          .then(() => {
            //message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
            ctx.emit("changeData", false);
          })
          .catch(() => {
            //message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
          });
      } else if (props.isLevel == 2) {
        apiTask
          .addTask({
            courseId: res.data.data.liveId,
            duration: res.data.data.liveDuration,
            name: res.data.data.liveName,
            projectId: props.projectId,
            projectTaskId: props.projectTaskId || 0,
            stageId: props.chooseStageId || 0,
            type: 6,
          })
          .then(() => {
            //message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
            ctx.emit("changeData", false);
          })
          .catch(() => {
            //message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
          });
      } else if (props.isLevel == 3) {
        console.log("props.projectTemplateId", props.projectTemplateId);
        addTempTask({
          courseId: res.data.data.liveId,
          duration: res.data.data.liveDuration,
          name: res.data.data.liveName,
          projectTemplateId: props.projectTemplateId,
          projectTaskId: props.projectTaskId || 0,
          stageId: props.chooseStageId || 0,
          type: 6,
        })
          .then(() => {
            //message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
            ctx.emit("changeData", false);
          })
          .catch(() => {
            //message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
          });
      }
    };
    const showAssessment = () => {
      state.assessmentVisible = true;
    };
    //创建直播
    const updateLiveBroadcast = () => {
      console.log("hshs======", state.memberValue);
      if (!state.inputV1) {
        message.destroy();
        return message.warning("请输入直播名称");
      }
      if (!state.inputV4) {
        message.destroy();
        return message.warning("请输入直播链接");
      }

      if (!state.time) {
        message.destroy();
        return message.warning("请输入直播时间");
      }
      if (!state.inputV2) {
        message.destroy();
        return message.warning("请输入直播时长");
      }
      if (state.memberValue.value == "") {
        message.destroy();
        return message.warning("请选择授课教师");
      }
      if (!state.imageUrl) {
        message.destroy();
        return message.warning("请上传封面");
      }
      if (!state.liveNotice) {
        message.destroy();
        return message.warning("请输入直播公告");
      }
      if (state.isClick) {
        message.destroy();
        message.error("请勿频繁点击");
        return;
      }
      state.isClick = true;

      const regular = /^[+]{0,1}(\d+)$/;
      if (!regular.test(state.inputV2)) {
        message.destroy();
        return message.warning("直播时长需大于0");
      }
      let startTime = toDate(
        new Date(state.time[0].$d).getTime() / 1000,
        "Y-M-D h:m"
      );
      let endTime = toDate(
        new Date(state.time[1].$d).getTime() / 1000,
        "Y-M-D h:m"
      );
      state.obj = {
        afterSignIn: state.inputV6 ? state.inputV6 : 0,
        beforeSignIn: state.inputV7 ? state.inputV7 : 0,
        assessmentId:
          state.assessmentId == null || state.assessmentId == ""
            ? 0
            : Number(state.assessmentId),
        liveCover: state.imageUrl, //直播封面
        liveDuration: Number(state.inputV2),
        liveEndTime: endTime,
        liveStartTime: startTime,
        liveExplain: state.textV1,
        liveNotice: state.liveNotice,
        liveFlag: "",
        liveId: props.edit ? Number(props.EditLiveId) : 0,
        liveLink: state.inputV4,
        liveName: state.inputV1,
        livePlayback: state.switchC1 ? "1" : "0",
        livePlaybackLink: state.switchC1 ? state.inputV5 : "",
        liveTeacherId: state.memberValue.value,
        liveTeacherName: state.memberValue.label,
        otherSettings: state.switchC2 ? "1" : "0", //1或0
        signOutTime: state.inputV8,
        standardSettings: state.radioV1, //1或2
        isEvaluate: state.needEval ? "1" : "0",
      };
      console.log("我是要更新的数据", state.obj);

      if (props.edit) {
        api
          .updateLiveBroadcastMessage(state.obj)
          .then(async (res) => {
            console.log(res);
            message.destroy();
            message.success("提交成功");
            closeDrawer();
            await updateTask(res);
            state.isClick = false;
          })
          .catch((err) => {
            console.log(err);
            state.isClick = false;
          });
      } else {
        api
          .createLiveBroadcast(state.obj)
          .then(async (res) => {
            message.destroy();
            message.success("提交成功");
            await updateTask(res);
            closeDrawer();
            state.isClick = false;
          })
          .catch(() => {
            state.isClick = false;
          });
      }
    };
    const beforeUpload = (file) => {
      return new Promise((resolve, reject) => {
        const isJpgOrPng =
          file.type === "image/jpg" ||
          file.type === "image/jpeg" ||
          file.type === "image/png" ||
          file.type === "image/svg" ||
          file.type === "image/bmp" ||
          file.type === "image/gif";
        if (!isJpgOrPng) {
          message.destroy();
          message.error("仅支持jpg、gif、png、jpeg、svg、bmp格式!");
          return reject(false);
        }
        let reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = () => {
          const image = new Image();
          image.src = reader.result;
          image.onload = () => {
            const formData = new FormData();
            formData.append("file", file);
            console.log(file);
            fileUp(formData).then((res) => {
              if (res.data.code === 200) {
                state.imageUrl = res.data.data;
              }
            });
            return resolve(true);
          };
        };
        return reject(false);
      });
    };
    const templateScroll = (e) => {
      console.log("滚动", e);
      const { target } = e;
      const scrllHeight = target.scrollHeight - target.scrollTop;
      const clientHeight = target.clientHeight;
      // console.log("scrllHeight", scrllHeight, clientHeight);
      if (scrllHeight === 0 && clientHeight === 0) {
        state.currentPage = 1;
      } else if (scrllHeight - clientHeight == 0) {
        // 下拉到底部时
        if (state.currentPage < state.totalPages) {
          // 如果滑到底部，则加载下一页
          state.currentPage++;
          // queryMember();
        }
      }
    };
    // 获取员工
    const queryMember = () => {
      if (!state.memberValue) return;
      let obj = {
        keyWord: state.memberValue.label,
        id: 0,
        org: 0,
        pageNo: state.currentPage,
        pageSize: state.pageSize,
      };
      getMemberInfo(obj)
        .then((res) => {
          let data = res.data.data.rows;
          state.totalPages = res.data.data.total;
          for (let i in data) {
            options.value.push({
              value: data[i].id,
              label: data[i].realName,
            });
          }
        })
        .catch((err) => {
          message.destroy();
          message.error("获取员工失败" + err);
        });
    };
    const handleSearch = debounce((memberValue) => {
      console.log("fetching user", memberValue);
      options.value = [];
      state.fetching = true;
      state.currentPage = 1;
      state.memberValue.label = memberValue;
      queryMember();
      state.fetching = false;
    }, 300);
    const handleChange2 = (value, label) => {
      console.log(`selected ${value}`);
      state.inputV3 = value;
      state.memberValue = label;
    };
    const handleFocus = () => {
      queryMember();
    };
    const checkRadio = () => {
      if (state.checkedC1) {
        state.discussSettings = "true";
      } else {
        state.discussSettings = "false";
      }
    };

    // 删除评估
    const removePG = () => {
      console.log("11111");
      state.assessmentId = "";
      state.isEvaluate = "0";
    };
    const range = (start, end) => {
      const result = [];

      for (let i = start; i < end; i++) {
        result.push(i);
      }

      return result;
    };
    const disabledDate = (current) => {
      // Can not select days before today and today
      console.log("1111", dayjs().endOf("day"));
      return current && current < dayjs().startOf("day");
    };

    const disabledDateTime = () => {
      return {
        disabledHours: () => range(0, 24).splice(4, 20),
        disabledMinutes: () => range(30, 60),
        disabledSeconds: () => [55, 56],
      };
    };
    return {
      ...toRefs(state),
      afterVisibleChange,
      closeDrawer,
      cloradio1,
      handleChange,
      beforeUpload,
      updateLiveBroadcast,
      handleFocus,
      handleChange2,
      options,
      checkRadio,
      queryMember,
      templateScroll,
      handleSearch,
      showAssessment,
      removePG,
      disabledDateTime,
      disabledDate,
    };
  },
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
  background-color: #fafafa !important;
}

.addliveDrawer {
  .drawerMain {
    .header {
      height: 73px;
      border-bottom: 1px solid #e8e8e8;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-shrink: 0;

      .headerTitle {
        font-size: 18px;
        font-weight: 600;
        color: #333333;
        line-height: 25px;
        margin-left: 24px;
      }
    }

    .contentMain {
      display: flex;
      justify-content: space-between;

      .main_left {
        padding-right: 30px;
        flex: 1;
        border-right: 1px solid #e8e8e8;
        margin-top: 32px;

        .main_item {
          display: flex;
          align-items: center;
          margin-top: 32px;
          margin-bottom: 32px;

          .signbox {
            width: 120px;
            display: flex;
            justify-content: end;
            align-items: center;

            .sign {
              margin-right: 5px;
            }
          }

          .btnbox {
            display: flex;
            flex: 1;
            align-items: center;

            .xkbtn {
              cursor: pointer;
              width: 130px;
              height: 40px;
              background: #4ea6ff;
              border-radius: 8px;
              border: 0;
              margin-right: 8px;
              color: #fff;
            }
          }
        }

        .main_item2 {
          display: flex;
          align-items: flex-start;
          margin-bottom: 32px;
          .textarea {
            width: 400px;

            .ant-input {
              width: 100%;
            }

            .ant-input-textarea-show-count {
              position: relative;
            }

            .ant-input-textarea-show-count::after {
              position: absolute;
              right: 10px;
              bottom: 0px;
            }

            .ant-input {
              border-radius: 8px;
            }
          }
          .signbox {
            width: 120px;
            display: flex;
            justify-content: end;
            align-items: center;

            .sign {
              margin-right: 5px;
            }
          }

          .kqszbox {
            .qdqtbox {
              margin-left: 5px;
              cursor: pointer;
            }

            .qdbtn,
            .qtbtn {
              width: 75px;
              height: 24px;
              background: rgba(56, 139, 225, 0.16);
              border-radius: 2px;
              border: 1px solid #387df7;
              display: flex;
              align-items: center;
              justify-content: center;

              .btntext {
                color: #387df7;
              }
            }

            .setbox {
              flex-wrap: wrap;
              margin-top: 10px;
              margin-bottom: 6px;

              .timerbox {
                margin-top: 22px;
                margin-right: 32px;
                display: flex;
                align-items: center;
                flex-wrap: nowrap;
              }
            }
          }

          .btnbox2 {
            display: flex;
            flex-direction: column;
            justify-content: flex-start;

            .xkbtn {
              cursor: pointer;
              width: 130px;
              height: 40px;
              background: #4ea6ff;
              border-radius: 8px;
              border: 0;
              margin-right: 16px 8px 32px 0;
              color: #fff;
              margin-top: 16px;
              margin-bottom: 60px;
            }
          }
        }

        .mbl_items2 {
          display: flex;
          align-items: start;
          margin-top: 10px;
          margin-bottom: 10px;

          .i_bottom {
            margin-bottom: 30px;
          }

          .item_nam {
            width: 120px;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            white-space: nowrap;

            .asterisk_icon {
              width: 10px;
              height: 10px;
              margin-right: 5px;
              margin-top: -15px;
            }
          }

          .item_inp {
            flex: 1;

            .i_upload_img {
              width: 100px;
              height: 100px;
              border-radius: 8px;
            }

            .i_upload {
              width: 100px;
              height: 100px;
              border: 1px solid #4ea6ff;
              border-radius: 8px;
              text-align: center;
              align-items: center;
              cursor: pointer;

              .addimg {
                position: relative;

                .heng {
                  position: absolute;
                  top: 50px;
                  left: 25px;
                  width: 50px;
                  border: 1px solid #4ea6ff;
                }

                .shu {
                  position: absolute;
                  top: 25px;
                  left: 50px;
                  height: 50px;
                  border: 1px solid #4ea6ff;
                }
              }
            }
            .ant-upload.ant-upload-select-picture-card {
              border: 0px !important;
            }
          }
        }
      }
    }

    .main_btns {
      height: 72px;
      width: 100%;
      bottom: 0;
      left: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);

      .btn1 {
        width: 100px;
        height: 40px;
        border: 1px solid #4ea6ff;
        border-radius: 8px;
        color: #4ea6ff;
        background-color: #fff;
        cursor: pointer;
      }

      .btn2 {
        cursor: pointer;
        width: 100px;
        height: 40px;
        background: #4ea6ff;
        border-radius: 8px;
        border: 0;
        margin-left: 15px;
        color: #fff;
      }
    }
  }
}
</style>