From 82506dffa47f7372d7444f8fed45a1062d357e7a Mon Sep 17 00:00:00 2001 From: Flex <q1406482700@163.com> Date: 星期五, 30 五月 2025 13:51:57 +0800 Subject: [PATCH] Merge branch 'master' of http://yykjgit.sdyyst.com/r/easegen --- easegen-front/src/views/chooseTemplate/index.vue | 58 +++++++ easegen-front/src/views/digitalcourse/template/TemplateForm.vue | 37 ++++ easegen-front/src/views/digitalcourse/template/index.vue | 270 +++++++++++++++++++++++++++----------- 3 files changed, 272 insertions(+), 93 deletions(-) diff --git a/easegen-front/src/views/chooseTemplate/index.vue b/easegen-front/src/views/chooseTemplate/index.vue index 31bfef9..d8f9558 100644 --- a/easegen-front/src/views/chooseTemplate/index.vue +++ b/easegen-front/src/views/chooseTemplate/index.vue @@ -488,6 +488,17 @@ <div class="template-box template-right" v-if="showTemplateTool"> <div class="tabs-2"> </div> <div class="template-list"> + <div class="tabs-1"> + <div + class="tabs-item" + v-for="item in tabs4" + :key="item.itemValue" + @click="tabs4Click(item)" + > + <div>{{ item.itemName }}</div> + <span v-if="tabs4ActiveNum == item.itemValue"></span> + </div> + </div> <div class="template-item" v-for="(template, index) in templates" @@ -757,10 +768,25 @@ itemValue: '2' } ] - +const tabs4 = [ + { + itemName: t('鎴戠殑'), + itemValue: '2' + }, + { + itemName: t('妯℃澘搴�'), + itemValue: '1' + } +] +const tabs4ActiveNum = ref('2') const tabs1Click = (item) => { tabs1ActiveNum.value = item.itemValue getList() +} +const tabs4Click = (item) => { + tabs4ActiveNum.value = item.itemValue + queryParams1.zg=tabs4ActiveNum.value + getList1() } const tabs2Click = (item) => { @@ -834,8 +860,11 @@ if (item.name == t('courseCenter.digitalPeople')) { tabs1ActiveNum.value = '0' getList() + }else if (item.name == t('courseCenter.template')) { + tabs4ActiveNum.value = '2' + queryParams1.zg=tabs4ActiveNum.value + getList1() } - showHeadImageTool.value = item.name === t('courseCenter.background') showTemplateTool.value = item.name === t('courseCenter.template') showDigitalHumanTool.value = item.name === t('courseCenter.digitalPeople') @@ -1193,7 +1222,11 @@ gender: '', posture: '' }) - +const queryParams1 = reactive({ + pageNo: 1, + pageSize: 100, + zg:'' +}) const selectHost = ref(null) const getList = async () => { @@ -1854,9 +1887,22 @@ uploadFileObj.size = pageInfo ? pageInfo.docInfo.fileSize : '' } } +const getList1 = async () => { + const data = await TemplateApi.getTemplatePage(queryParams1) + if (data) { + TEMPLATE_PRESETS.value = data.list.map((item) => ({ + ...item, + showBackground: item.showBackground === 1, + showDigitalHuman: item.showDigitalHuman === 1, + showPpt: item.showPpt === 1 + })) + templates.value = TEMPLATE_PRESETS.value.map((template) => cloneDeep(template)) + selectTemplate.value = cloneDeep(templates.value[0]) + } +} onMounted(async () => { - let data = await TemplateApi.getTemplatePage(queryParams) + let data = await TemplateApi.getTemplatePage(queryParams1) TEMPLATE_PRESETS.value = data.list.map((item) => ({ ...item, showBackground: item.showBackground === 1, @@ -2171,14 +2217,14 @@ border-bottom: 1px solid #ebeef5; .tabs-item { - width: 30px; + width: 50px; font-size: 14px; text-align: center; cursor: pointer; span { display: block; - width: 30px; + width: 50px; height: 2px; margin-top: 5px; background: #409eff; diff --git a/easegen-front/src/views/digitalcourse/template/TemplateForm.vue b/easegen-front/src/views/digitalcourse/template/TemplateForm.vue index fa62336..c353bee 100644 --- a/easegen-front/src/views/digitalcourse/template/TemplateForm.vue +++ b/easegen-front/src/views/digitalcourse/template/TemplateForm.vue @@ -119,6 +119,16 @@ </el-form-item> </el-col> </el-row> + <el-row v-if="ishasAdminRole==true"> + <el-col :span="12"> + <el-form-item label="妯℃澘绫诲瀷" prop="zg"> + <el-select v-model="formData.zg"> + <el-option label="鍏敤妯℃澘" :value="1">鍏敤妯℃澘</el-option> + <el-option label="鎴戠殑妯℃澘" :value="2">鎴戠殑妯℃澘</el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> <el-row> <el-col :span="12"> <el-form-item :label="t('template.backgroundImage')" prop="bgImage"> @@ -131,6 +141,7 @@ </el-form-item> </el-col> </el-row> + </el-form> <template #footer> <el-button @click="submitForm" type="primary" :disabled="formLoading">{{ t('common.ok') }}</el-button> @@ -141,6 +152,7 @@ <script setup lang="ts"> import { TemplateApi, TemplateVO } from '@/api/digitalcourse/template' import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict' +import {getUserProfile} from "@/api/system/user/profile"; /** 妯℃澘 琛ㄥ崟 */ defineOptions({ name: 'TemplateForm' }) @@ -181,15 +193,27 @@ humanH: [{ required: true, message: t('template.digitalPeopleHeight') + t('common.notEmpty'), trigger: 'blur' }], humanX: [{ required: true, message: t('template.topPositionDigitalPeople') + t('common.notEmpty'), trigger: 'blur' }], humanY: [{ required: true, message: t('template.leftPositionDigitalPeople') + t('common.notEmpty'), trigger: 'blur' }], + zg: [{ required: true, message: '妯℃澘绫诲瀷', trigger: 'blur' }], }) const formRef = ref() // 琛ㄥ崟 Ref - +let ishasAdminRole = ref(false) +let userInfo = ref() /** 鎵撳紑寮圭獥 */ const open = async (type: string, id?: number) => { dialogVisible.value = true dialogTitle.value = t('action.' + type) formType.value = type + //鑾峰彇褰撳墠鐧诲綍浜虹殑淇℃伅 + userInfo.value = await getUserProfile() + let hasAdminRole = userInfo.value.roles.some(role => role.name === '鏁板瓧浜虹鐞嗗憳') + console.log(hasAdminRole) resetForm() + if (hasAdminRole) { + ishasAdminRole=true + }else { + ishasAdminRole=false + formData.value.zg = '2' + } // 淇敼鏃讹紝璁剧疆鏁版嵁 if (id) { formLoading.value = true @@ -250,13 +274,14 @@ showPpt: undefined, pptW: undefined, pptH: undefined, - pptX: undefined, - pptY: undefined, + bgImage: undefined, + pptX: '40', + pptY: '77', humanW: undefined, humanH: undefined, - humanX: undefined, - humanY: undefined, - bgImage: undefined, + humanX: '349', + humanY: '92', + zg:1, } formRef.value?.resetFields() } diff --git a/easegen-front/src/views/digitalcourse/template/index.vue b/easegen-front/src/views/digitalcourse/template/index.vue index 1af6ecb..c1cfed8 100644 --- a/easegen-front/src/views/digitalcourse/template/index.vue +++ b/easegen-front/src/views/digitalcourse/template/index.vue @@ -45,87 +45,178 @@ <!-- 鍒楄〃 --> <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> <!-- 琛ㄥ崟寮圭獥锛氭坊鍔�/淇敼 --> @@ -138,13 +229,14 @@ 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) // 鍒楄〃鐨勬�婚〉鏁� @@ -164,13 +256,18 @@ 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 @@ -189,6 +286,7 @@ /** 閲嶇疆鎸夐挳鎿嶄綔 */ const resetQuery = () => { queryFormRef.value.resetFields() + queryParams.zg = '2' handleQuery() } @@ -225,6 +323,16 @@ 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(() => { -- Gitblit v1.9.3