Browse Source

自定义应用的表单添加

v8_master
超级管理员 2 years ago
parent
commit
5e26d1b217
  1. 11
      src/api/DesignForm/requestapi.ts
  2. 31
      src/views/sysworkflow/lowcodepage/appPage/appMenus.vue
  3. 17
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue
  4. 24
      src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue
  5. 6
      src/views/sysworkflow/lowcodepage/appPage/index.vue
  6. 160
      vite.config.ts.timestamp-1715758967884-c31382d141ed8.mjs

11
src/api/DesignForm/requestapi.ts

@ -34,10 +34,11 @@ export function getCustomerFormList(queryParams: SearchForm): AxiosPromise<Custo
});
}
//生成表单基本信息
export function getProductionMarkForm(): AxiosPromise<customerFormConfig> {
export function getProductionMarkForm(data?: any): AxiosPromise<customerFormConfig> {
return request({
url: '/systemapi/customer_form/production_mark_form',
method: 'post',
data: data
});
}
//保存自定义表单
@ -415,3 +416,11 @@ export function delAppMenu(data: any) {
data: data
});
}
//写入app表单菜单
export function createAppForm(data: any) {
return request({
url: '/systemapi/app/createAppForm',
method: 'post',
data: data
});
}

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

@ -73,7 +73,11 @@ const handleDrop = (
dropType: NodeDropType,
ev: DragEvents
) => {
console.log('树移动完毕后执行的操作====1========>',draggingNode)
console.log('树移动完毕后执行的操作=====2=======>',dropNode)
console.log('树移动完毕后执行的操作=====3=======>',dropType)
console.log('树移动完毕后执行的操作=====4=======>',ev)
return false;
let sendCont = {
id:props.appCont.uuid,
menuTree:appMenuTree.value
@ -118,8 +122,8 @@ const setAppMenusSvg = (val:any) =>{
svgIsShow.value = true;
}
watch(()=>svgName.value,(val:string)=>{
console.log("监听----svgName--->",val)
console.log("监听----threeShiyanData--->",threeShiyanData)
// console.log("----svgName--->",val)
// console.log("----threeShiyanData--->",threeShiyanData)
diguiData(treeList.value)
})
@ -227,23 +231,37 @@ const createNewPage = (val?:string) => {
creetMenuId.value = val.toString();
saveAppFormIsShow.value = true;
}
/**
@ 作者: 秦东
@ 时间: 2024-05-17 14:22:12
@ 功能: 判断能否拖入此节点
*/
const allowDrop = (draggingNode: Node, dropNode: Node, type: AllowDropType) => {
if (dropNode.data.type === 2) {
return false
} else {
return true
}
}
</script>
<template>
<CreateAppFormPage v-if="saveAppFormIsShow" v-model:is-show="saveAppFormIsShow" :drawer-with="props.drawerWith" :form-Key="props.formKey" :app-cont="props.appCont" :group-key="props.groupKey" :menu-id="creetMenuId" />
<el-tree
:data="appMenuTree"
draggable
default-expand-all
node-key="id"
:allow-drop="allowDrop"
:expand-on-click-node="false"
@node-drop="handleDrop"
@node-drag-start="startDrop"
>
<template #default="{ node, data }">
<div class="appMenuTitle">
<el-space wrap>
<svg-icon prefix="icon" :icon-class="data.svg" @click="setAppMenusSvg(data)" />
<el-text>{{node.label}}</el-text>
<el-text class="w-120px mb-2" truncated>{{node.label}}</el-text>
</el-space>
<el-dropdown>
<svg-icon class="svgBox" prefix="icon" icon-class="set" />
@ -267,6 +285,7 @@ const createNewPage = (val?:string) => {
<AppMenuSvgPage v-model:is-show="svgIsShow" v-model:svg-name="svgName" :svg-id="svgId" :icon-list="allIconNames" />
<AppMenuGroup v-model:is-show="menuGroupShow" :menu-parent-key="menuParentKey" :app-cont="props.appCont" @updateMenu="gainSunAppContent" />
<EditAppMenuNamePage v-model:is-show="editAppMenuNameShow" :menu-cont="appOenMenu" @updateMenu="gainSunAppContent" />
<CreateAppFormPage v-if="saveAppFormIsShow" v-model:is-show="saveAppFormIsShow" :drawer-with="props.drawerWith" :form-Key="props.formKey" :app-cont="props.appCont" :group-key="props.groupKey" :menu-id="creetMenuId" @gainSunAppContent="gainSunAppContent" />
</template>
<style lang='scss' scoped>
.appMenuTitle{

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

@ -9,7 +9,7 @@ import { useRoute, useRouter } from 'vue-router'
import { json2string,objToStringify,string2json,stringToObj } from '@/utils/DesignForm/form'
import { customerFormVersionCont } from '@/api/DesignForm/type'
import { FormData,formStruct,DrawerStruct, VideoMsg } from '@/api/DesignForm/types'
import { saveProductionForm,getOneProductionForm,haveCustomerFormVersion,editCustomerFormInfo,saveAsNewVersion,enableVersion,judgeSubmitCancel } from '@/api/DesignForm/requestapi'
import { saveProductionForm,getOneProductionForm,haveCustomerFormVersion,editCustomerFormInfo,saveAsNewVersion,enableVersion,judgeSubmitCancel,createAppForm } from '@/api/DesignForm/requestapi'
//
@ -41,6 +41,10 @@ const props = defineProps({
type:String,
default:""
},
menuId:{
type:String,
default:""
},
formconfigcont:{
type:Object,
default(){
@ -335,12 +339,18 @@ const saveAppFormData = () => {
data: objToStringify(state.value.formData),
source: state.value.formOtherData.source, //
name: state.value.formOtherData.formName, //
type: 3, // 1 2 3:app
type: 4, // 1 2 3:app 4app
dict: json2string(state.value.formDict),
appKey:appFormKeyVal.value,
groupKey:props.groupKey
groupKey:props.groupKey,
menuId:props.menuId,
appSignCode:props.formconfigcont.signCode
}
console.log("写入自建应用App表单",sendData)
createAppForm(sendData)
.then((data:any) => {
console.log("写入自建应用App表单--->",data)
})
}
/**
@ 作者: 秦东
@ -382,6 +392,7 @@ const editAppFormTable = () => {
formVersion{{ props.formVersion }} <br>
formconfigcont{{ props.formconfigcont }} <br>
state{{ props.state }} <br>
menuId{{ props.menuId }} <br>
</div>
<FormDesign
:type="5"

24
src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue

@ -5,7 +5,8 @@
-->
<script lang='ts' setup>
import { useRoute, useRouter } from 'vue-router'
import { customerFormConfig,formStruct } from '@/api/DesignForm/types'
import { formStruct } from '@/api/DesignForm/types'
import { customerFormConfig } from '@/api/DesignForm/type'
import { getProductionMarkForm } from '@/api/DesignForm/requestapi'
import PageForm from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue"
@ -39,12 +40,13 @@ const props = defineProps({
default:""
}
});
const emits = defineEmits(["update:isShow"]);
const emits = defineEmits(["update:isShow","gainSunAppContent"]);
const tabsActive = ref(1)
const route: any = useRoute().query || {}
const formConfigCont = reactive<customerFormConfig>({
formName:"",
formlogo:""
formlogo:"",
signCode:""
})
//ID
const formVersion = ref<string>("")
@ -84,13 +86,19 @@ const state = reactive<formStruct>({
*/
const closeSavePageForm = () =>{
emits("update:isShow",false)
emits("gainSunAppContent",false)
}
onBeforeMount(() => {
getProductionMarkForm()
let send = {
types:3
}
getProductionMarkForm(send)
.then(({data})=>{
formConfigCont.formlogo = data.formlogo
formConfigCont.formName = data.formname
formConfigCont.signCode = data.signCode
state.formData.form.name = data.formlogo
state.formData.form.formName = data.formname
state.formOtherData.formName = data.formname
@ -138,14 +146,14 @@ onBeforeMount(() => {
</el-tabs>
</div>
<div class="headRight">
{{props.groupKey}}
<el-button type="danger" size="small" @click="closeSavePageForm" >关闭</el-button>
</div>
</el-header>
<el-container>
<PageForm v-if="tabsActive==1" :form-Key="props.formKey" :app-cont="props.appCont" :group-key="props.groupKey" v-model:state="state" v-model:form-version="formVersion" :formconfigcont="formConfigCont" />
<PageFlow v-if="tabsActive==2" :form-Key="props.formKey" :app-cont="props.appCont" :group-key="props.groupKey" />
<PageList v-if="tabsActive==3" :form-Key="props.formKey" :app-cont="props.appCont" :group-key="props.groupKey" />
<PageForm v-if="tabsActive==1" :form-Key="props.formKey" :app-cont="props.appCont" :menu-id="menuId" :group-key="props.groupKey" v-model:state="state" v-model:form-version="formVersion" :formconfigcont="formConfigCont" />
<PageFlow v-if="tabsActive==2" :form-Key="props.formKey" :app-cont="props.appCont" :menu-id="menuId" :group-key="props.groupKey" />
<PageList v-if="tabsActive==3" :form-Key="props.formKey" :app-cont="props.appCont" :menu-id="menuId" :group-key="props.groupKey" />
</el-container>
</el-container>
</div>

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

@ -11,6 +11,7 @@ import { Search } from '@element-plus/icons-vue'
import SvgIcon from "@/components/SvgIcon/index.vue";
import AppMenus from "@/views/sysworkflow/lowcodepage/appPage/appMenus.vue"
import AppMenuGroup from "@/views/sysworkflow/lowcodepage/appPage/appMenuGroup.vue"
import CreateAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue"
const props = defineProps({
drawerWith:{
@ -106,8 +107,9 @@ const addMenu = (key?:string) => {
@ 时间: 2024-05-06 11:09:44
@ 功能: 创建页面
*/
const saveAppFormIsShow = ref(false)
const addAppPageForm = (key?:string) => {
saveAppFormIsShow.value = true
}
</script>
<template>
@ -259,7 +261,7 @@ const addAppPageForm = (key?:string) => {
<AppMenus :form-Key="props.formKey" v-model:menus-tree="menusTree" :group-key="props.groupKey" :app-cont="appCont" :drawer-with="props.drawerWith" />
<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" />
</el-scrollbar>
</el-aside>

160
vite.config.ts.timestamp-1715758967884-c31382d141ed8.mjs

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save