Browse Source

添加新页面

v8_master
超级管理员 2 years ago
parent
commit
eb9f36e847
  1. 27
      src/views/sysworkflow/lowcodepage/appPage/appMenus.vue
  2. 176
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue
  3. 4
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue
  4. 1
      src/views/sysworkflow/lowcodepage/appPage/editAppMenuNamePage.vue
  5. 39
      src/views/sysworkflow/lowcodepage/appPage/index.vue

27
src/views/sysworkflow/lowcodepage/appPage/appMenus.vue

@ -45,7 +45,7 @@ const props = defineProps({
} }
}); });
const svgIsShow = ref(false) const svgIsShow = ref(false)
const emits = defineEmits(["update:menusTree"]); const emits = defineEmits(["update:menusTree","openAppPageForm"]);
const appOenMenu = ref<appMenuTreeInfo>({}) const appOenMenu = ref<appMenuTreeInfo>({})
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ -243,6 +243,27 @@ const allowDrop = (draggingNode: Node, dropNode: Node, type: AllowDropType) => {
return true return true
} }
} }
/**
@ 作者: 秦东
@ 时间: 2024-05-17 16:45:40
@ 功能: 打开app表单
*/
const openAppPage = (val:any) =>{
console.log("打开app表单------>",val)
if(val.isLock == 1){
ElMessage({
showClose: true,
message: '该页面为系统内置页面!请到应用层面访问查看!',
type: 'warning',
})
}else{
if(val.type !== 1){
console.log("打开app表单--1---->",val)
emits('openAppPageForm', val)
}
}
}
</script> </script>
<template> <template>
@ -261,7 +282,9 @@ const allowDrop = (draggingNode: Node, dropNode: Node, type: AllowDropType) => {
<div class="appMenuTitle"> <div class="appMenuTitle">
<el-space wrap> <el-space wrap>
<svg-icon prefix="icon" :icon-class="data.svg" @click="setAppMenusSvg(data)" /> <svg-icon prefix="icon" :icon-class="data.svg" @click="setAppMenusSvg(data)" />
<el-text class="w-120px mb-2" truncated>{{node.label}}</el-text> <el-tooltip :content="node.label" placement="top" effect="dark">
<el-text class="w-120px mb-2" truncated @click="openAppPage(data)">{{node.label}}</el-text>
</el-tooltip>
</el-space> </el-space>
<el-dropdown> <el-dropdown>
<svg-icon class="svgBox" prefix="icon" icon-class="set" /> <svg-icon class="svgBox" prefix="icon" icon-class="set" />

176
src/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue

@ -0,0 +1,176 @@
<!--
@ 作者: 秦东
@ 时间: 2024-05-18 09:08:21
@ 备注: 展开应用表单
-->
<script lang='ts' setup>
import { Edit,Picture as IconPicture } from '@element-plus/icons-vue'
import { appMenuTreeInfo,appSetInfo } from "@/api/date/type"
const props = defineProps({
appCont:{
type:Object,
default(){
return {}
}
},
formKey:{
type:String,
default:""
},
menusInfo:{
type:Object,
default(){
return {}
}
},
drawerWith:{
type:Number,
default:0
},
groupKey:{
type:String,
default:""
}
});
/**
@ 作者: 秦东
@ 时间: 2024-05-18 09:32:23
@ 功能: 监听菜单传递数据变化
*/
watch(()=>props.menusInfo,(val:appMenuTreeInfo)=>{
console.log("监听菜单传递数据变化",val)
},{
deep:true
})
const activePage = ref(1) //
/**
@ 作者: 秦东
@ 时间: 2024-05-18 10:13:15
@ 功能:
*/
const handleAppPageClick = () =>{
}
</script>
<template>
<div>
<el-row v-if="props.menusInfo">
<el-col :span="24" class="pageBox pageHeader">
<el-text class="wordFont">{{ props.menusInfo.label }}</el-text>
<el-button type="primary" :icon="Edit">编辑App页面</el-button>
</el-col>
<el-col :span="24" class="pageBox baiDiSe">
<el-tabs v-model="activePage" class="demo-tabs" @tab-click="handleAppPageClick">
<el-tab-pane label="列表预览" :name="1" />
<el-tab-pane label="表单预览" :name="2" />
<el-tab-pane label="流程图" :name="3" />
</el-tabs>
</el-col>
<el-col :span="24" >
<el-scrollbar class="pageBox suojing">
appCont{{ props.appCont }} <br>
formKey{{ props.formKey }} <br>
menusInfo{{ props.menusInfo }} <br>
groupKey{{ props.groupKey }} <br>
groupKey{{ props.groupKey }} <br>
</el-scrollbar>
</el-col>
</el-row>
<el-row v-else>
<el-col :span="24" class="pageBox">
<el-card class="tispMsg" shadow="always">
欢迎使用 {{ props.appCont.appName }}<br>
<div class="demo-image__error">
<el-image :src="props.appCont.appSvg" fit="fit">
<template #error>
<div class="image-slot">
<el-icon><icon-picture /></el-icon>
</div>
</template>
</el-image>
</div>
{{ props.appCont }}
</el-card>
</el-col>
</el-row>
</div>
</template>
<style lang='scss' scoped>
.pageBox{
padding: 0 15px;
.wordFont{
font-size: 20px;
}
.tispMsg{
width: 100%;
margin: 20px 0 0 0;
height: calc(100vh - 80px);
display: flex;
align-items: center;
text-align: center;
justify-content: center;
font-size: 20px;
}
}
.pageHeader{
display: flex;
align-items: center;
justify-content: space-between;
background-color: #FFFFFF;
padding:15px 15px 5px 15px;
}
.baiDiSe{
background-color: #FFFFFF;
border-bottom : 3px solid #dedfe0;
:deep .el-tabs__header{
margin:0px 0 -2px 0;
}
}
.suojing{
height: calc(100vh - 135px);
}
.demo-image__error{
margin-top: 15px;
}
.demo-image__error .block {
padding: 30px 0;
text-align: center;
border-right: solid 1px var(--el-border-color);
display: inline-block;
width: 49%;
box-sizing: border-box;
vertical-align: top;
}
.demo-image__error .demonstration {
display: block;
color: var(--el-text-color-secondary);
font-size: 14px;
margin-bottom: 20px;
}
.demo-image__error .el-image {
padding: 0 5px;
max-width: 300px;
max-height: 200px;
width: 100%;
height: 200px;
}
.demo-image__error .image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
background: var(--el-fill-color-light);
color: var(--el-text-color-secondary);
font-size: 30px;
}
.demo-image__error .image-slot .el-icon {
font-size: 30px;
}
</style>

4
src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue

@ -385,14 +385,14 @@ const editAppFormTable = () => {
<div v-loading="state.loading" class="main_form"> <div v-loading="state.loading" class="main_form">
<div v-if="state.formData.list.length === 0" class="empty-tips"> <div v-if="state.formData.list.length === 0" class="empty-tips">
从左侧拖拽来添加组件<br> 从左侧拖拽来添加组件<br>
appCont{{ props.appCont }} <br> <!-- appCont{{ props.appCont }} <br>
formKey{{ props.formKey }} <br> formKey{{ props.formKey }} <br>
appPageKey{{ props.appPageKey }} <br> appPageKey{{ props.appPageKey }} <br>
groupKey{{ props.groupKey }} <br> groupKey{{ props.groupKey }} <br>
formVersion{{ props.formVersion }} <br> formVersion{{ props.formVersion }} <br>
formconfigcont{{ props.formconfigcont }} <br> formconfigcont{{ props.formconfigcont }} <br>
state{{ props.state }} <br> state{{ props.state }} <br>
menuId{{ props.menuId }} <br> menuId{{ props.menuId }} <br> -->
</div> </div>
<FormDesign <FormDesign
:type="5" :type="5"

1
src/views/sysworkflow/lowcodepage/appPage/editAppMenuNamePage.vue

@ -69,6 +69,7 @@ const saveMenuData = () => {
editAppMenuLable({id:appMenuInfo.value.id, label:appMenuInfo.value.label}) editAppMenuLable({id:appMenuInfo.value.id, label:appMenuInfo.value.label})
.then((data) =>{ .then((data) =>{
console.log("提交数据", data) console.log("提交数据", data)
emits("updateMenu")
ElMessage({ ElMessage({
message: data.msg, message: data.msg,
type: 'success', type: 'success',

39
src/views/sysworkflow/lowcodepage/appPage/index.vue

@ -12,6 +12,9 @@ import SvgIcon from "@/components/SvgIcon/index.vue";
import AppMenus from "@/views/sysworkflow/lowcodepage/appPage/appMenus.vue" import AppMenus from "@/views/sysworkflow/lowcodepage/appPage/appMenus.vue"
import AppMenuGroup from "@/views/sysworkflow/lowcodepage/appPage/appMenuGroup.vue" import AppMenuGroup from "@/views/sysworkflow/lowcodepage/appPage/appMenuGroup.vue"
import CreateAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue" import CreateAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue"
import OpenAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue"
const props = defineProps({ const props = defineProps({
drawerWith:{ drawerWith:{
@ -59,6 +62,7 @@ const handleClick = () =>{}
const closeAppDraw = () =>{ const closeAppDraw = () =>{
emits("update:isShow",false) emits("update:isShow",false)
emits("refreshPage") emits("refreshPage")
checkedMenu.value = ""
} }
onMounted(() =>{ onMounted(() =>{
// gainAppContent() // gainAppContent()
@ -111,6 +115,17 @@ const saveAppFormIsShow = ref(false)
const addAppPageForm = (key?:string) => { const addAppPageForm = (key?:string) => {
saveAppFormIsShow.value = true saveAppFormIsShow.value = true
} }
/**
@ 作者: 秦东
@ 时间: 2024-05-18 09:00:00
@ 功能: 操作表单页面
*/
const checkedMenu = ref<appMenuTreeInfo>("")
const openAppPageForm = (val:appMenuTreeInfo) => {
checkedMenu.value = val
}
</script> </script>
<template> <template>
<div class="drawerClass"> <div class="drawerClass">
@ -144,7 +159,7 @@ const addAppPageForm = (key?:string) => {
<el-button type="danger" size="small" @click="closeAppDraw">关闭</el-button> <el-button type="danger" size="small" @click="closeAppDraw">关闭</el-button>
</div> </div>
</el-header> </el-header>
<el-container> <el-container v-if="tabsActive==1">
<el-aside class="asideBox"> <el-aside class="asideBox">
<el-row> <el-row>
<el-col :span="24" class="asideBoxSearch"> <el-col :span="24" class="asideBoxSearch">
@ -259,7 +274,7 @@ const addAppPageForm = (key?:string) => {
</el-menu-item> </el-menu-item>
</el-menu> --> </el-menu> -->
<AppMenus :form-Key="props.formKey" v-model:menus-tree="menusTree" :group-key="props.groupKey" :app-cont="appCont" :drawer-with="props.drawerWith" /> <AppMenus :form-Key="props.formKey" v-model:menus-tree="menusTree" :group-key="props.groupKey" :app-cont="appCont" :drawer-with="props.drawerWith" @openAppPageForm="openAppPageForm" />
<CreateAppFormPage v-if="saveAppFormIsShow" v-model:is-show="saveAppFormIsShow" :drawer-with="props.drawerWith" :form-Key="props.formKey" :app-cont="appCont" :group-key="props.groupKey" :menu-id="props.formKey" @gainSunAppContent="gainAppContent" /> <CreateAppFormPage v-if="saveAppFormIsShow" v-model:is-show="saveAppFormIsShow" :drawer-with="props.drawerWith" :form-Key="props.formKey" :app-cont="appCont" :group-key="props.groupKey" :menu-id="props.formKey" @gainSunAppContent="gainAppContent" />
@ -267,10 +282,24 @@ const addAppPageForm = (key?:string) => {
</el-aside> </el-aside>
<el-main class="mainBox"> <el-main class="mainBox">
<el-scrollbar class="scroBox"> <el-scrollbar class="scroBox">
<svg-icon icon-class="0213-lmp" /> <OpenAppFormPage :form-Key="props.formKey" :group-key="props.groupKey" :app-cont="appCont" :drawer-with="props.drawerWith" :menus-info="checkedMenu" />
</el-scrollbar> </el-scrollbar>
</el-main> </el-main>
</el-container> </el-container>
<el-container v-if="tabsActive==2">
集成与自动化
</el-container>
<el-container v-if="tabsActive==3">
应用设置
</el-container>
<el-container v-if="tabsActive==4">
应用发布
</el-container>
</el-container> </el-container>
</div> </div>
<AppMenuGroup v-model:is-show="menuGroupShow" :menu-parent-key="menuParentKey" :app-cont="appCont" @updateMenu="gainAppContent" /> <AppMenuGroup v-model:is-show="menuGroupShow" :menu-parent-key="menuParentKey" :app-cont="appCont" @updateMenu="gainAppContent" />
@ -342,9 +371,9 @@ const addAppPageForm = (key?:string) => {
} }
.mainBox{ .mainBox{
background-color: #F1F2F3; background-color: #F1F2F3;
padding:0px;
.scroBox{ .scroBox{
height: calc(100vh - 60px); height: calc(100vh - 40px);
} }
} }
} }

Loading…
Cancel
Save