forked from integrated_whb/integrated_whb_vue
				
			Merge branch 'dev' of http://47.92.113.182:3000/integrated_whb/integrated_whb_vue into dev
						commit
						43298dfa07
					
				| 
						 | 
				
			
			@ -13,7 +13,14 @@ defineOptions({
 | 
			
		|||
const props = defineProps({
 | 
			
		||||
  source: {
 | 
			
		||||
    type: [String, Array],
 | 
			
		||||
    required: true,
 | 
			
		||||
    default: "",
 | 
			
		||||
  },
 | 
			
		||||
  vid: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: "",
 | 
			
		||||
  },
 | 
			
		||||
  playAuth: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: "",
 | 
			
		||||
  },
 | 
			
		||||
  cover: {
 | 
			
		||||
| 
						 | 
				
			
			@ -32,9 +39,9 @@ const props = defineProps({
 | 
			
		|||
const visibility = useDocumentVisibility();
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
  watch(
 | 
			
		||||
    () => props.source,
 | 
			
		||||
    [() => props.source, () => props.vid, () => props.playAuth],
 | 
			
		||||
    () => {
 | 
			
		||||
      if (props.source) fnCreateAliPlayer();
 | 
			
		||||
      if (props.source || (props.vid && props.playAuth)) fnCreateAliPlayer();
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      immediate: true,
 | 
			
		||||
| 
						 | 
				
			
			@ -61,6 +68,8 @@ const fnCreateAliPlayer = async () => {
 | 
			
		|||
    {
 | 
			
		||||
      id: "J_prismPlayer",
 | 
			
		||||
      source: props.source,
 | 
			
		||||
      vid: props.vid,
 | 
			
		||||
      playauth: props.playAuth,
 | 
			
		||||
      cover: props.cover,
 | 
			
		||||
      width: props.width,
 | 
			
		||||
      height: props.height,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,11 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <el-dialog title="视频" v-model="visible">
 | 
			
		||||
    <ali-player :source="fnSrc(src)" ref="playerRef" />
 | 
			
		||||
    <ali-player
 | 
			
		||||
      :source="fnSrc(src)"
 | 
			
		||||
      :vid="vid"
 | 
			
		||||
      :play-auth="playAuth"
 | 
			
		||||
      ref="playerRef"
 | 
			
		||||
    />
 | 
			
		||||
  </el-dialog>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -16,12 +21,20 @@ defineOptions({
 | 
			
		|||
const props = defineProps({
 | 
			
		||||
  src: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    required: true,
 | 
			
		||||
    default: "",
 | 
			
		||||
  },
 | 
			
		||||
  vid: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: "",
 | 
			
		||||
  },
 | 
			
		||||
  playAuth: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: "",
 | 
			
		||||
  },
 | 
			
		||||
  visible: {
 | 
			
		||||
    type: Boolean,
 | 
			
		||||
    default: false,
 | 
			
		||||
    required: true,
 | 
			
		||||
    default: false,
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
const emits = defineEmits(["update:visible"]);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -93,8 +93,15 @@
 | 
			
		|||
        </el-table-column>
 | 
			
		||||
        <el-table-column label="操作" width="200">
 | 
			
		||||
          <template v-slot="{ row }">
 | 
			
		||||
            <el-button type="primary" text link>课件文件</el-button>
 | 
			
		||||
            <!-- todo 查看课件 -->
 | 
			
		||||
            <el-button
 | 
			
		||||
              type="primary"
 | 
			
		||||
              text
 | 
			
		||||
              link
 | 
			
		||||
              v-if="interceptTheSuffix(row.COURSEWAREFILES, '.pdf')"
 | 
			
		||||
              @click="fnPreviewPdf(row.COURSEWAREFILES)"
 | 
			
		||||
            >
 | 
			
		||||
              预览
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <el-button
 | 
			
		||||
              type="primary"
 | 
			
		||||
              text
 | 
			
		||||
| 
						 | 
				
			
			@ -124,6 +131,14 @@
 | 
			
		|||
        </el-table-column>
 | 
			
		||||
      </layout-table>
 | 
			
		||||
    </layout-card>
 | 
			
		||||
    <layout-pdf
 | 
			
		||||
      :src="data.pdfDialog.src"
 | 
			
		||||
      v-model:visible="data.pdfDialog.visible"
 | 
			
		||||
    />
 | 
			
		||||
    <layout-txt
 | 
			
		||||
      :src="data.txtDialog.src"
 | 
			
		||||
      v-model:visible="data.txtDialog.visible"
 | 
			
		||||
    />
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -136,12 +151,14 @@ import {
 | 
			
		|||
} from "@/request/platform_resource_library.js";
 | 
			
		||||
import useListData from "@/assets/js/useListData.js";
 | 
			
		||||
import { reactive } from "vue";
 | 
			
		||||
import { serialNumber } from "@/assets/js/utils.js";
 | 
			
		||||
import { interceptTheSuffix, serialNumber } from "@/assets/js/utils.js";
 | 
			
		||||
import LayoutTable from "@/components/table/index.vue";
 | 
			
		||||
// import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
 | 
			
		||||
import { debounce } from "throttle-debounce";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
import { useRouter } from "vue-router";
 | 
			
		||||
import LayoutPdf from "@/components/pdf/index.vue";
 | 
			
		||||
import LayoutTxt from "@/components/txt/index.vue";
 | 
			
		||||
 | 
			
		||||
const router = useRouter();
 | 
			
		||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
 | 
			
		||||
| 
						 | 
				
			
			@ -152,6 +169,14 @@ const data = reactive({
 | 
			
		|||
    { value: "0", label: "启用" },
 | 
			
		||||
    { value: "1", label: "禁用" },
 | 
			
		||||
  ],
 | 
			
		||||
  pdfDialog: {
 | 
			
		||||
    src: "",
 | 
			
		||||
    visible: false,
 | 
			
		||||
  },
 | 
			
		||||
  txtDialog: {
 | 
			
		||||
    src: "",
 | 
			
		||||
    visible: false,
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// const buttonJurisdiction = await useButtonJurisdiction("courseware"); 原项目没找到在哪用
 | 
			
		||||
| 
						 | 
				
			
			@ -162,6 +187,11 @@ const fnAdd = debounce(1000, async (DATACOURSEWARE_ID) => {
 | 
			
		|||
  ElMessage.success("添加成功");
 | 
			
		||||
  fnResetPagination();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const fnPreviewPdf = (FILEPATH) => {
 | 
			
		||||
  data.pdfDialog.visible = true;
 | 
			
		||||
  data.pdfDialog.src = FILEPATH;
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,8 +104,9 @@
 | 
			
		|||
        <el-table-column prop="NUMEXAMPLE" label="习题数" />
 | 
			
		||||
        <el-table-column label="操作" width="200">
 | 
			
		||||
          <template v-slot="{ row }">
 | 
			
		||||
            <el-button type="primary" text link>课件文件</el-button>
 | 
			
		||||
            <!-- todo 查看课件 -->
 | 
			
		||||
            <el-button type="primary" text link @click="fnOpenVideo(row)">
 | 
			
		||||
              预览
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <el-button
 | 
			
		||||
              type="primary"
 | 
			
		||||
              text
 | 
			
		||||
| 
						 | 
				
			
			@ -150,7 +151,6 @@ import { reactive } from "vue";
 | 
			
		|||
import { serialNumber } from "@/assets/js/utils.js";
 | 
			
		||||
import LayoutTable from "@/components/table/index.vue";
 | 
			
		||||
import { debounce } from "throttle-debounce";
 | 
			
		||||
// import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
import { useRouter } from "vue-router";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -163,16 +163,21 @@ const data = reactive({
 | 
			
		|||
    { value: "0", label: "启用" },
 | 
			
		||||
    { value: "1", label: "禁用" },
 | 
			
		||||
  ],
 | 
			
		||||
  videoVisible: false,
 | 
			
		||||
  videoSource: "",
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// const buttonJurisdiction = await useButtonJurisdiction("courseware"); 原项目没找到在哪用
 | 
			
		||||
 | 
			
		||||
const fnAdd = debounce(1000, async (VIDEOCOURSEWARE_ID) => {
 | 
			
		||||
  await ElMessageBox.confirm("确定要添加吗?", { type: "warning" });
 | 
			
		||||
  await joinMyVideoCourseware({ COURSEWARE_ID: VIDEOCOURSEWARE_ID });
 | 
			
		||||
  ElMessage.success("添加成功");
 | 
			
		||||
  fnResetPagination();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const fnOpenVideo = async () => {
 | 
			
		||||
  // todo
 | 
			
		||||
  ElMessage.info("功能开发中");
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue