| | |
| | | |
| | | <!-- 列表 --> |
| | | <ContentWrap> |
| | | <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> |
| | | <el-table-column :label="t('table.index')" align="center" type='index' width="60"/> |
| | | <el-table-column :label="t('template.name')" align="center" prop="templateName" /> |
| | | <el-table-column :label="t('template.isShowBackground')" align="center" prop="showBackground" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showBackground" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="t('template.isShowDigitalPeople')" align="center" prop="showDigitalHuman" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showDigitalHuman" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="t('template.isShowPPt')" align="center" prop="showPpt" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showPpt" /> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="ppt宽" align="center" prop="pptW" /> |
| | | <el-table-column label="ppt高" align="center" prop="pptH" /> |
| | | <el-table-column label="ppt距离顶部位置" align="center" prop="pptX" /> |
| | | <el-table-column label="ppt距离左侧位置" align="center" prop="pptY" /> |
| | | <el-table-column label="数字人宽" align="center" prop="humanW" /> |
| | | <el-table-column label="数字人高" align="center" prop="humanH" /> |
| | | <el-table-column label="数字人距离顶部位置" align="center" prop="humanX" /> |
| | | <el-table-column label="数字人距离左侧位置" align="center" prop="humanY" />--> |
| | | <el-table-column label="背景图片" align="center" prop="bgImage"> |
| | | <template #default="scope"> |
| | | <el-image |
| | | :src="scope.row.bgImage" |
| | | :preview-src-list="[scope.row.bgImage]" |
| | | fit="cover" |
| | | preview-teleported |
| | | <el-tabs v-model="activeName" class="demo-tabs" @click="iszg"> |
| | | <el-tab-pane label="我的模板" name="first"> |
| | | <el-table :default-sort="{ prop: 'createTime', order: 'descending' }" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> |
| | | <el-table-column :label="t('table.index')" align="center" type='index' width="60"/> |
| | | <el-table-column :label="t('template.name')" align="center" prop="templateName" /> |
| | | <el-table-column :label="t('template.isShowBackground')" align="center" prop="showBackground" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showBackground" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="t('template.isShowDigitalPeople')" align="center" prop="showDigitalHuman" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showDigitalHuman" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="t('template.isShowPPt')" align="center" prop="showPpt" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showPpt" /> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="ppt宽" align="center" prop="pptW" /> |
| | | <el-table-column label="ppt高" align="center" prop="pptH" /> |
| | | <el-table-column label="ppt距离顶部位置" align="center" prop="pptX" /> |
| | | <el-table-column label="ppt距离左侧位置" align="center" prop="pptY" /> |
| | | <el-table-column label="数字人宽" align="center" prop="humanW" /> |
| | | <el-table-column label="数字人高" align="center" prop="humanH" /> |
| | | <el-table-column label="数字人距离顶部位置" align="center" prop="humanX" /> |
| | | <el-table-column label="数字人距离左侧位置" align="center" prop="humanY" />--> |
| | | <el-table-column label="背景图片" align="center" prop="bgImage"> |
| | | <template #default="scope"> |
| | | <el-image |
| | | :src="scope.row.bgImage" |
| | | :preview-src-list="[scope.row.bgImage]" |
| | | fit="cover" |
| | | preview-teleported |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="预览图片" align="center" prop="previewImage"> |
| | | <template #default="scope"> |
| | | <el-image |
| | | :src="scope.row.previewImage" |
| | | :preview-src-list="[scope.row.previewImage]" |
| | | fit="cover" |
| | | preview-teleported |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | :label="t('table.createTime')" |
| | | align="center" |
| | | prop="createTime" |
| | | sortable |
| | | :formatter="dateFormatter" |
| | | width="180px" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="预览图片" align="center" prop="previewImage"> |
| | | <template #default="scope"> |
| | | <el-image |
| | | :src="scope.row.previewImage" |
| | | :preview-src-list="[scope.row.previewImage]" |
| | | fit="cover" |
| | | preview-teleported |
| | | <el-table-column :label="t('table.action')" align="center" min-width="120px"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | link |
| | | type="primary" |
| | | @click="openForm('update', scope.row.id)" |
| | | v-hasPermi="['digitalcourse:template:update']" |
| | | > |
| | | {{ t('action.edit') }} |
| | | </el-button> |
| | | <el-button |
| | | link |
| | | type="danger" |
| | | @click="handleDelete(scope.row.id)" |
| | | v-hasPermi="['digitalcourse:template:delete']" |
| | | > |
| | | {{ t('action.del') }} |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 分页 --> |
| | | <Pagination |
| | | :total="total" |
| | | v-model:page="queryParams.pageNo" |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="模板库模板" name="second"> |
| | | <el-table :default-sort="{ prop: 'createTime', order: 'descending' }" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> |
| | | <el-table-column :label="t('table.index')" align="center" type='index' width="60"/> |
| | | <el-table-column :label="t('template.name')" align="center" prop="templateName" /> |
| | | <el-table-column :label="t('template.isShowBackground')" align="center" prop="showBackground" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showBackground" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="t('template.isShowDigitalPeople')" align="center" prop="showDigitalHuman" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showDigitalHuman" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :label="t('template.isShowPPt')" align="center" prop="showPpt" > |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.IS_OR_NOT" :value="scope.row.showPpt" /> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="ppt宽" align="center" prop="pptW" /> |
| | | <el-table-column label="ppt高" align="center" prop="pptH" /> |
| | | <el-table-column label="ppt距离顶部位置" align="center" prop="pptX" /> |
| | | <el-table-column label="ppt距离左侧位置" align="center" prop="pptY" /> |
| | | <el-table-column label="数字人宽" align="center" prop="humanW" /> |
| | | <el-table-column label="数字人高" align="center" prop="humanH" /> |
| | | <el-table-column label="数字人距离顶部位置" align="center" prop="humanX" /> |
| | | <el-table-column label="数字人距离左侧位置" align="center" prop="humanY" />--> |
| | | <el-table-column label="背景图片" align="center" prop="bgImage"> |
| | | <template #default="scope"> |
| | | <el-image |
| | | :src="scope.row.bgImage" |
| | | :preview-src-list="[scope.row.bgImage]" |
| | | fit="cover" |
| | | preview-teleported |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="预览图片" align="center" prop="previewImage"> |
| | | <template #default="scope"> |
| | | <el-image |
| | | :src="scope.row.previewImage" |
| | | :preview-src-list="[scope.row.previewImage]" |
| | | fit="cover" |
| | | preview-teleported |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | :label="t('table.createTime')" |
| | | align="center" |
| | | prop="createTime" |
| | | sortable |
| | | :formatter="dateFormatter" |
| | | width="180px" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | :label="t('table.createTime')" |
| | | align="center" |
| | | prop="createTime" |
| | | :formatter="dateFormatter" |
| | | width="180px" |
| | | /> |
| | | <el-table-column :label="t('table.action')" align="center" min-width="120px"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | link |
| | | type="primary" |
| | | @click="openForm('update', scope.row.id)" |
| | | v-hasPermi="['digitalcourse:template:update']" |
| | | > |
| | | {{ t('action.edit') }} |
| | | </el-button> |
| | | <el-button |
| | | link |
| | | type="danger" |
| | | @click="handleDelete(scope.row.id)" |
| | | v-hasPermi="['digitalcourse:template:delete']" |
| | | > |
| | | {{ t('action.del') }} |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 分页 --> |
| | | <Pagination |
| | | :total="total" |
| | | v-model:page="queryParams.pageNo" |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | <el-table-column :label="t('table.action')" align="center" min-width="120px" v-if="hasAdminRole"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | link |
| | | type="primary" |
| | | @click="openForm('update', scope.row.id)" |
| | | v-hasPermi="['digitalcourse:template:update']" |
| | | > |
| | | {{ t('action.edit') }} |
| | | </el-button> |
| | | <el-button |
| | | link |
| | | type="danger" |
| | | @click="handleDelete(scope.row.id)" |
| | | v-hasPermi="['digitalcourse:template:delete']" |
| | | > |
| | | {{ t('action.del') }} |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 分页 --> |
| | | <Pagination |
| | | :total="total" |
| | | v-model:page="queryParams.pageNo" |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | |
| | | |
| | | </ContentWrap> |
| | | |
| | | <!-- 表单弹窗:添加/修改 --> |
| | |
| | | import { TemplateApi, TemplateVO } from '@/api/digitalcourse/template' |
| | | import TemplateForm from './TemplateForm.vue' |
| | | import {DICT_TYPE} from "@/utils/dict"; |
| | | import type { TabsPaneContext } from 'element-plus' |
| | | import {getUserProfile} from "@/api/system/user/profile"; |
| | | |
| | | /** 模板 列表 */ |
| | | defineOptions({ name: 'Template' }) |
| | | |
| | | const message = useMessage() // 消息弹窗 |
| | | const { t } = useI18n() // 国际化 |
| | | |
| | | const activeName = ref('first') |
| | | const loading = ref(true) // 列表的加载中 |
| | | const list = ref<TemplateVO[]>([]) // 列表的数据 |
| | | const total = ref(0) // 列表的总页数 |
| | |
| | | humanY: undefined, |
| | | bgImage: undefined, |
| | | createTime: [], |
| | | zg: 2 |
| | | }) |
| | | const queryFormRef = ref() // 搜索的表单 |
| | | const exportLoading = ref(false) // 导出的加载中 |
| | | let userInfo = ref() |
| | | let hasAdminRole = ref(false) |
| | | |
| | | /** 查询列表 */ |
| | | const getList = async () => { |
| | | loading.value = true |
| | | userInfo.value = await getUserProfile() |
| | | hasAdminRole = userInfo.value.roles.some(role => role.name === '数字人管理员') |
| | | try { |
| | | const data = await TemplateApi.getTemplatePage(queryParams) |
| | | list.value = data.list |
| | |
| | | /** 重置按钮操作 */ |
| | | const resetQuery = () => { |
| | | queryFormRef.value.resetFields() |
| | | queryParams.zg = '2' |
| | | handleQuery() |
| | | } |
| | | |
| | |
| | | exportLoading.value = false |
| | | } |
| | | } |
| | | const iszg = () => { |
| | | console.log(activeName) |
| | | if (activeName.value == 'first') { |
| | | queryParams.zg = 2 |
| | | getList() |
| | | }else if (activeName.value == 'second') { |
| | | queryParams.zg = 1 |
| | | getList() |
| | | } |
| | | } |
| | | |
| | | /** 初始化 **/ |
| | | onMounted(() => { |