Browse Source

合并秦东V7分支

lwx_v5
超级管理员 2 years ago
parent
commit
1e4df55917
  1. 8
      src/api/DesignForm/requestapi.ts
  2. 7
      src/api/DesignForm/type.ts
  3. 3
      src/types/components.d.ts
  4. 34
      src/views/sysworkflow/lowcodepage/appFormList.vue
  5. 32
      src/views/sysworkflow/lowcodepage/lowCodeFormPage.vue
  6. 7
      src/views/sysworkflow/lowcodepage/pageDesignes.vue
  7. 75
      src/views/sysworkflow/lowcodepage/pageList.vue

8
src/api/DesignForm/requestapi.ts

@ -309,3 +309,11 @@ export function editFormGroupState(data?:any){
data: data
});
}
//获取表格字段
export function gainFormTableField(data?:any){
return request({
url: '/systemapi/customer_form/gainFormTableField',
method: 'post',
data: data
});
}

7
src/api/DesignForm/type.ts

@ -123,6 +123,7 @@ export interface formTabelStruct{
extra:string;
privileges:string;
comment:string;
pattern:string;
}
//获取表单结构
export interface getFormTableStruct{
@ -195,3 +196,9 @@ export interface editFlowFormStatus{
id:string;
status:number;
}
//自定义列表字段
export interface formTableField{
masterTable:formTabelStruct[];
sunTable?:any;
}

3
src/types/components.d.ts

@ -128,9 +128,12 @@ declare module '@vue/runtime-core' {
IEpRefreshLeft: typeof import('~icons/ep/refresh-left')['default']
IEpSearch: typeof import('~icons/ep/search')['default']
IEpSetting: typeof import('~icons/ep/setting')['default']
<<<<<<< HEAD
IEpTop: typeof import('~icons/ep/top')['default']
IEpUploadFilled: typeof import('~icons/ep/upload-filled')['default']
IEpUser: typeof import('~icons/ep/user')['default']
=======
>>>>>>> v7_master
IEpView: typeof import('~icons/ep/view')['default']
LangSelect: typeof import('./../components/LangSelect/index.vue')['default']
LayoutPage: typeof import('./../components/DesignForm/layoutPage/index.vue')['default']

34
src/views/sysworkflow/lowcodepage/appFormList.vue

@ -5,7 +5,7 @@
-->
<script lang='ts' setup>
import { customerFormCont } from "@/api/DesignForm/type";
import { getCustomerFormList } from '@/api/DesignForm/requestapi'
import { getCustomerFormList,editProductionFormStatus } from '@/api/DesignForm/requestapi'
import {Delete,Edit,View,MoreFilled} from '@element-plus/icons-vue'
import LowCodeFormPage from "@/views/sysworkflow/lowcodepage/lowCodeFormPage.vue"
@ -38,6 +38,7 @@ const formKeyStr = computed({
emits('update:formKey', val)
}
});
const editIds = reactive<string[]>([]); //
const formId = ref<string>("")
const versionTitle = ref<string>("") //
const versionId = ref<string>("") //
@ -89,6 +90,33 @@ const editFormApp = (id:string) => {
}
/**
@ 作者: 秦东
@ 时间: 2024-03-22 08:20:23
@ 功能: 删除表单
*/
const delFormApp = (id:string) => {
ElMessageBox.confirm(
'请问是否真的删除?删除后数据将无法找回!',
'温馨提示!',
{
confirmButtonText: '删除',
cancelButtonText: '取消',
type: 'warning',
draggable: true,
}
)
.then(() => {
editProductionFormStatus({id:[id.toString()],status:3,is_delete:false})
.then(({data})=>{
getFormAppList()
// editIds.splice(0,editIds.length);
})
})
.catch(() => {
getFormAppList()
})
}
/**
@ 作者: 秦东
@ 时间: 2024-03-09 09:06:44
@ 功能: 刷新页面
*/
@ -120,7 +148,7 @@ onMounted(()=>{
@click.top="startUsing(item.id,item.name)"
/>
<div class="cardhead">
<el-text class="w-150px mb-2" truncated :title="item.name" @click.top="startUsing(item.id,item.name)">{{item.name}}</el-text>
<el-text class="w-150px mb-2" truncated :title="item.name" @click.top="startUsing(item.id,item.name)">{{item.id}}{{item.name}}</el-text>
</div>
<el-row>
<el-col :span="8" class="but_centent">
@ -130,7 +158,7 @@ onMounted(()=>{
<el-button size="small" circle class="button" :icon="Edit" @click="editFormApp(item.idStr)"></el-button>
</el-col>
<el-col :span="8" class="but_centent">
<el-button size="small" circle class="button" :icon="Delete" @click="() => deleteCard(index)"></el-button>
<el-button size="small" circle class="button" :icon="Delete" @click="delFormApp(item.idStr)"></el-button>
</el-col>
</el-row>
</el-card>

32
src/views/sysworkflow/lowcodepage/lowCodeFormPage.vue

@ -83,8 +83,9 @@ const formKeyStr = computed({
//ID
const formVersion = ref<string>("")
const judgeFormIsEdit = (val:boolean) => {
const judgeFormIsEdit = (val:boolean,wval:boolean) => {
pageDesignIsWrite.value = val;
flowIsWrite.value = wval
}
const handleClick = (tab: TabsPaneContext, event: Event) =>{
@ -204,37 +205,36 @@ onMounted(()=>{
<div class="drawerClass">
<el-drawer v-model="drawerOpenOrClose" title="设置/编辑自定义表单" :with-header="false" :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true" :size="props.drawerWith">
<el-tabs v-model="tabsActive" @tab-click="handleClick" stretch class="tabsMain">
<el-tab-pane label="页面设计" :name="1">
<PageDesignEs v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" :formconfigcont="formConfigCont" @judgeFormIsEdit="judgeFormIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
<el-tabs v-model="tabsActive" @tab-click="handleClick" :stretch="true" class="tabsMain">
<el-tab-pane label="① 页面设计" :name="1">
</el-tab-pane>
<el-tab-pane label="流程设计" :name="2">
<WorkFlow v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" @judgeFlowIsEdit="judgeFlowIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
<el-tab-pane label="② 流程设计" :name="2">
</el-tab-pane>
<el-tab-pane label="列表设计" :name="3">
<PageList v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" />
<el-tab-pane label="③ 列表设计" :name="3">
</el-tab-pane>
<el-tab-pane label="页面设置" :name="4">
<el-tab-pane label="页面设置" :name="4">
{{creetTabsActive}} == {{tabsActive}}
</el-tab-pane>
</el-tabs>
<PageDesignEs v-if="tabsActive==1" v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" :formconfigcont="formConfigCont" @judgeFormIsEdit="judgeFormIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
<WorkFlow v-if="tabsActive==2" v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" @judgeFlowIsEdit="judgeFlowIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
<PageList v-if="tabsActive==3" v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" :tabs-active="tabsActive" />
</el-drawer>
</div>
</template>
<style lang='scss' scoped>
.drawerClass{
.tabsMain{
::v-deep .el-tabs__header{
margin: 0px;
}
::v-deep .el-tabs__nav-scroll{
width: 50%!important;
margin: 0 auto!important;
}
::v-deep .el-drawer__body{
padding: 0;
}
}
</style>
<style>
::v-deep
</style>

7
src/views/sysworkflow/lowcodepage/pageDesignes.vue

@ -522,7 +522,12 @@ const getInitData = () => {
//
formControlAttrEl.value.getFormFieldBySource(result.source)
}
emits('judgeFormIsEdit', false)
if(result.flowIsOpen != 1){
emits('judgeFormIsEdit', false,false)
}else{
emits('judgeFormIsEdit', false,true)
}
}else{
ElMessage.error(res.msg || '加载异常')
}

75
src/views/sysworkflow/lowcodepage/pageList.vue

@ -6,6 +6,8 @@
<script lang='ts' setup>
import { json2string,objToStringify,string2json,stringToObj } from '@/utils/DesignForm/form'
import { analysisForm,setFlowFormKeyPower } from '@/api/workflowapi/index'
import { gainFormTableField } from '@/api/DesignForm/requestapi'
import { formTableField,formTabelStruct } from "@/api/DesignForm/type";
import tempOtherUnit from '@/components/DesignForm/pageList/types'
@ -22,6 +24,10 @@ const props = defineProps({
type:String,
default:""
},
tabsActive:{
type:Number,
default:1
},
state:{
type:Object,
default(){
@ -48,7 +54,7 @@ const statePro = computed({
}
});
const formTableActive = ref(1)
const pageLoading = ref(false)
//
const state = reactive({
@ -119,27 +125,42 @@ const powerUnitAry = ref<any>({
unitAllState:[]
}
})
const formTableField = reactive<formTableField>({})
/**
@ 作者: 秦东
@ 时间: 2024-03-13 08:24:54
@ 功能: 解析表单
*/
const jieForm = () => {
analysisForm({nodeKey:"begin",nodeJson:JSON.stringify(statePro.value.formData)})
.then((data)=>{
if(data.code == 0){
powerUnitAry.value = data.data
}
})
// analysisForm({nodeKey:"begin",nodeJson:JSON.stringify(statePro.value.formData)})
// .then((data)=>{
// if(data.code == 0){
// powerUnitAry.value = data.data
// }
// })
if(props.formKey != ""){
gainFormTableField({id:props.formKey.toString()})
.then((data)=>{
console.log('解析表单--->',data)
formTableField.masterTable=data.data.masterTable
formTableField.sunTable=data.data.sunTable
})
}
}
const handleSelectionChange = (val: User[]) => {
console.log('表单选中--->',val)
}
watch(()=>statePro.value,()=>{
jieForm()
},
{
deep: true
// watch(()=>statePro.value,()=>{
// jieForm()
// },
// {
// deep: true
// })
watch(()=>props.tabsActive,(val:number)=>{
if(val == 3){
jieForm()
}
})
onMounted(()=>{
jieForm()
@ -147,7 +168,7 @@ onMounted(()=>{
</script>
<template>
<div ref="container" class="design-containers design-table" v-loading="pageLoading">
<div class="components-list">
<!-- <div class="components-list">
<el-divider content-position="left">表格列字段</el-divider>
<el-table
ref="multipleTableRef"
@ -160,7 +181,7 @@ onMounted(()=>{
<template #default="scope">{{ scope.row.name }}</template>
</el-table-column>
</el-table>
</div>
</div> -->
<div class="main-body">
<div class="header">
<div class="field">
@ -170,9 +191,30 @@ onMounted(()=>{
</div>
<div class="sidebar-tools">
{{props.formKey}}
<el-tabs ref="multipleTableRef" v-model="formTableActive" class="form_tabs" @tab-click="handleClick">
<el-tab-pane label="字段设置" :name="1">
<el-divider content-position="left">查询设置</el-divider>
<el-divider content-position="left">列表字段</el-divider>
<el-table :data="formTableField.masterTable" border style="width: 100%">
<el-table-column fixed type="selection" width="40" align="center" />
<el-table-column prop="name" label="字段" />
<el-table-column fixed="right" label="设置" width="55" align="center">
<template #default="scope">
<el-icon title="设置"><Setting /></el-icon>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="列表设置" :name="2">
<el-divider content-position="left">批量操作</el-divider>
<el-divider content-position="left">功能按钮</el-divider>
</el-tab-pane>
</el-tabs>
<!-- {{props.formKey}}
<br>
{{props.formVersion}}
<br>
{{formTableField}} -->
</div>
</div>
</template>
@ -191,4 +233,7 @@ onMounted(()=>{
border-right: 1px solid #e0e0e0;
}
}
.form_tabs > .el-tabs__content{
padding: 0;
}
</style>

Loading…
Cancel
Save