Browse Source

添加自定义表单图标CURD操作

yjf_v3
超级管理员 2 years ago
parent
commit
aa66e12d8d
  1. 59
      src/components/DesignForm/formControlAttr.vue
  2. 396
      src/components/workflow/drwer/approverDrawer.vue
  3. 69
      src/components/workflow/drwer/promoterDrawer.vue
  4. 19
      src/types/components.d.ts
  5. 15
      src/views/sysworkflow/lowcodepage/lowCodeFormPage.vue
  6. 14
      src/views/sysworkflow/lowcodepage/pageList.vue

59
src/components/DesignForm/formControlAttr.vue

@ -25,6 +25,8 @@
//
import LayoutPage from '@/components/DesignForm/layoutPage/index.vue'
import { Plus } from '@element-plus/icons-vue'
const props = withDefaults( //
defineProps<{
@ -1547,6 +1549,34 @@
}
return false;
}
/**
@ 作者: 秦东
@ 时间: 2024-03-18 11:42:52
@ 功能: 上传图标相关
*/
const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" //
const handleAvatarSuccess: UploadProps['onSuccess'] = (
response,
uploadFile
) => {
// imageUrl.value = URL.createObjectURL(uploadFile.raw!)
formConfig.value.imageUrl = response.data.url
}
const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
console.log("beforeAvatarUpload",rawFile.type)
if (rawFile.type !== 'image/jpeg' && rawFile.type !== 'image/jpg' && rawFile.type !== 'image/png' && rawFile.type !== 'image/gif' && rawFile.type !== 'image/icon') {
ElMessage.error('请上传以下格式的图片(jpg、jpeg、png、gif、icon)!'+rawFile.type)
return false
} else if (rawFile.size / 1024 / 1024 > 2) {
ElMessage.error('图片大小不要大于 2MB!')
return false
}
return true
}
</script>
<template>
<div class="sidebar-tools">
@ -2084,7 +2114,21 @@
/>
</el-form-item>
<el-form-item class="form_cont">
<template #label>
表单图标
</template>
<el-upload
class="avatar-uploader"
:action="imgUploadApiUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<img v-if="formConfig.imageUrl" :src="formConfig.imageUrl" class="avatar" />
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
</el-upload>
</el-form-item>
<template v-if="!state.isSearch">
<el-divider content-position="left">接口数据事件</el-divider>
@ -2323,7 +2367,18 @@
.form_cont{
padding: 0 10px;
}
.avatar-uploader{
width: 100px;
height: 100px;
.avatar{
width: 100px;
height: 100px;
}
.avatar-uploader-icon{
width: 100px;
height: 100px;
}
}
</style>
<style >

396
src/components/workflow/drwer/approverDrawer.vue

@ -101,13 +101,23 @@ const matrixIsShow = ref(false)
watch(approverConfig1, (val:any)=>{
val.value.attribute = val.value.attribute*1
// console.log("directormaxlevel",val.value)
console.log("directormaxlevel",val.value)
matrixIsShow.value = false
approverConfig.value = val.value
if(val.type == 3){
nodeTitle.value = "执行人设置"
if(val.value.nodeName != ""){
nodeTitle.value = val.value.nodeName+"设置"
}else{
nodeTitle.value = "执行人设置"
}
}else{
nodeTitle.value = "审批人设置"
if(val.value.nodeName != ""){
nodeTitle.value = val.value.nodeName+"设置"
}else{
nodeTitle.value = "审批人设置"
}
}
isExecutor.value = false
// approverConfig.attribute = approverConfig.attribute*1
@ -217,12 +227,12 @@ const saveApprover = ()=> {
}
});
}
console.log("正确",formData.value)
// console.log("",formData.value)
if(formData.value.purview){
console.log("正确")
// console.log("")
let isNew = true
formData.value.purview.forEach((item:any)=>{
console.log("正确---->",item.nodeKey)
// console.log("---->",item.nodeKey)
if(item.nodeKey == approverConfig1.value.value.nodeNumber){
item.powerAry=powerAry
isNew = false
@ -299,6 +309,7 @@ watch(()=>visible.value,(val:boolean)=>{
jieForm();
}
})
const nodeSetUp = ref("first")
</script>
<template>
@ -307,183 +318,180 @@ watch(()=>visible.value,(val:boolean)=>{
<div class="demo-drawer__content">
<!--审批人设置主体-->
<div class="drawer_content">
<div class="approver_content">
<el-radio-group v-model="approverConfig.settype" class="clear" @change="changeType">
<template v-for="({value, label}) in setTypes" :key="value">
<el-radio v-if="isShowRatify(value)" :label="value" style="width:auto">{{label}}</el-radio>
<el-tabs v-model="nodeSetUp" class="demo-tabs">
<el-tab-pane name="first">
<template #label>
<span class="wordKeyCss">属性设置</span>
</template>
</el-radio-group>
</div>
<!--指定成员-->
<el-divider v-if="approverConfig.settype==1" content-position="left">指定成员</el-divider>
<div v-if="approverConfig.settype==1" class="approver_manager">
<el-button type="primary" @click="addApprover">添加/修改成员</el-button>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</div>
<!--主管-->
<el-divider v-if="approverConfig.settype==2" content-position="left">主管</el-divider>
<div v-if="approverConfig.settype==2" class="approver_manager">
<p>
<el-row :gutter="10">
<el-col v-if="isExecutor" :span="6">
<select v-model="approverConfig.attribute" style="width:100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
</select>
</el-col>
<el-col :span="18">
<select v-model="approverConfig.directorLevel">
<option v-for="item in props.directormaxlevel" :key="item" :value="item">{{item==1?'直接':''+item+''}}主管</option>
</select>
</el-col>
</el-row>
</p>
<p class="tip">找不到主管时由上级主管代审批</p>
</div>
<!--行政岗位-->
<el-divider v-if="approverConfig.settype==3" content-position="left">指定行政岗位</el-divider>
<div v-if="approverConfig.settype==3" class="approver_manager">
<el-row>
<el-col :span="18">
<el-button type="primary" @click="addApproverPost">添加/修改行政岗位</el-button>
</el-col>
<el-col :span="6">
<select v-if="isExecutor" v-model="approverConfig.attribute" style="width:100%">
<!-- <el-divider content-position="left">节点属性</el-divider> -->
<div class="approver_content">
<el-radio-group v-model="approverConfig.settype" class="clear" @change="changeType">
<template v-for="({value, label}) in setTypes" :key="value">
<el-radio v-if="isShowRatify(value)" :label="value" style="width:auto">{{label}}</el-radio>
</template>
</el-radio-group>
</div>
<!--指定成员-->
<el-divider v-if="approverConfig.settype==1" content-position="left">指定成员</el-divider>
<div v-if="approverConfig.settype==1" class="approver_manager">
<el-button type="primary" @click="addApprover">添加/修改成员</el-button>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</div>
<!--主管-->
<el-divider v-if="approverConfig.settype==2" content-position="left">主管</el-divider>
<div v-if="approverConfig.settype==2" class="approver_manager">
<p>
<el-row :gutter="10">
<el-col v-if="isExecutor" :span="6">
<select v-model="approverConfig.attribute" style="width:100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
</select>
</el-col>
<el-col :span="18">
<select v-model="approverConfig.directorLevel">
<option v-for="item in props.directormaxlevel" :key="item" :value="item">{{item==1?'直接':''+item+''}}主管</option>
</select>
</el-col>
</el-row>
</p>
<p class="tip">找不到主管时由上级主管代审批</p>
</div>
<!--行政岗位-->
<el-divider v-if="approverConfig.settype==3" content-position="left">指定行政岗位</el-divider>
<div v-if="approverConfig.settype==3" class="approver_manager">
<el-row>
<el-col :span="18">
<el-button type="primary" @click="addApproverPost">添加/修改行政岗位</el-button>
</el-col>
<el-col :span="6">
<select v-if="isExecutor" v-model="approverConfig.attribute" style="width:100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
</select>
</el-col>
</el-row>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</div>
<!--发起人自选-->
<el-divider v-if="approverConfig.settype==4" content-position="left">发起人自选</el-divider>
<div v-show="approverConfig.settype==4" class="approver_self_select">
<el-radio-group v-model="approverConfig.selectMode" style="width: 100%;">
<el-radio v-for="({value, label}) in selectModes" :key="value" :label="value">{{label}}</el-radio>
</el-radio-group>
<h3>选择范围</h3>
<el-radio-group v-model="approverConfig.selectRange" style="width: 100%;" @change="changeRange">
<el-radio v-for="({value, label}) in selectRanges" :key="value" :label="value" >{{label}}</el-radio>
</el-radio-group>
<template v-if="approverConfig.selectRange==2||approverConfig.selectRange==3">
<el-button v-if="approverConfig.selectRange==2" type="primary" @click="addApprover">添加/修改成员</el-button>
<el-button v-else type="primary" @click="addRoleApprover">添加/修改角色</el-button>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0&&approverConfig.selectRange!=1" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</template>
</div>
<!--发起人自己-->
<el-divider v-if="approverConfig.settype==5" content-position="left">发起人自选</el-divider>
<div v-if="approverConfig.settype==5" class="approver_self">
<p>该审批节点设置发起人自己审批人默认为发起人</p>
</div>
<!--连续多级主管-->
<el-divider v-if="approverConfig.settype==6" content-position="left">连续多级主管</el-divider>
<div v-if="approverConfig.settype==6" class="approver_manager">
<p style="padding-bottom:20px">
<el-row :gutter="10">
<el-col v-if="isExecutor" :span="6">
<select v-model="approverConfig.attribute" style="width:100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
</select>
</el-col>
<el-col :span="10">
<select v-model="approverConfig.examineEndDirectorLevel">
<option v-for="item in props.directormaxlevel" :key="item" :value="item">{{item==1?'直接':''+item+''}}主管</option>
</select>
</el-col>
</el-row>
</p>
</div>
<!--指定审批节点为本节点设置审批人-->
<el-divider v-if="approverConfig.settype==7" content-position="left">可选节点列表</el-divider>
<div v-if="approverConfig.settype==7" class="approver_manager">
<p>可选节点列表</p>
<el-radio-group v-model="approverConfig.customNode" class="clear">
<el-radio label="beginnode" >发起人</el-radio>
<el-radio v-for="item in nodeOptional" :key="item.nodeNumber" :label="item.nodeNumber" class="nodeGroupRadio">{{ item.nodeName }}编号{{ item.nodeNumber }}</el-radio>
</el-radio-group>
</div>
<!--根据关联表单设置指定审批字段-->
<el-divider v-if="approverConfig.settype==8" content-position="left">指定审批字段</el-divider>
<div v-if="approverConfig.settype==8" class="approver_manager">
<el-button type="primary" @click="formTableField">添加/修改审批字段</el-button>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</div>
<!--权限矩阵-->
<div v-if="approverConfig.settype==9" class="approver_manager">
<select v-if="isExecutor" v-model="approverConfig.attribute" style="width:100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
<option value="2">执行人</option>
</select>
</el-col>
</el-row>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</div>
<!--发起人自选-->
<el-divider v-if="approverConfig.settype==4" content-position="left">发起人自选</el-divider>
<div v-show="approverConfig.settype==4" class="approver_self_select">
<el-radio-group v-model="approverConfig.selectMode" style="width: 100%;">
<el-radio v-for="({value, label}) in selectModes" :key="value" :label="value">{{label}}</el-radio>
</el-radio-group>
<h3>选择范围</h3>
<el-radio-group v-model="approverConfig.selectRange" style="width: 100%;" @change="changeRange">
<el-radio v-for="({value, label}) in selectRanges" :key="value" :label="value" >{{label}}</el-radio>
</el-radio-group>
<template v-if="approverConfig.selectRange==2||approverConfig.selectRange==3">
<el-button v-if="approverConfig.selectRange==2" type="primary" @click="addApprover">添加/修改成员</el-button>
<el-button v-else type="primary" @click="addRoleApprover">添加/修改角色</el-button>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0&&approverConfig.selectRange!=1" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</template>
</div>
<!--发起人自己-->
<el-divider v-if="approverConfig.settype==5" content-position="left">发起人自选</el-divider>
<div v-if="approverConfig.settype==5" class="approver_self">
<p>该审批节点设置发起人自己审批人默认为发起人</p>
</div>
<!--连续多级主管-->
<el-divider v-if="approverConfig.settype==6" content-position="left">连续多级主管</el-divider>
<div v-if="approverConfig.settype==6" class="approver_manager">
<p style="padding-bottom:20px">
<el-row :gutter="10">
<el-col v-if="isExecutor" :span="6">
<select v-model="approverConfig.attribute" style="width:100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
</select>
</el-col>
<el-col :span="10">
<select v-model="approverConfig.examineEndDirectorLevel">
<option v-for="item in props.directormaxlevel" :key="item" :value="item">{{item==1?'直接':''+item+''}}主管</option>
</select>
</el-col>
</el-row>
</p>
</div>
<!--指定审批节点为本节点设置审批人-->
<el-divider v-if="approverConfig.settype==7" content-position="left">可选节点列表</el-divider>
<div v-if="approverConfig.settype==7" class="approver_manager">
<p>可选节点列表</p>
<el-radio-group v-model="approverConfig.customNode" class="clear">
<el-radio label="beginnode" >发起人</el-radio>
<el-radio v-for="item in nodeOptional" :key="item.nodeNumber" :label="item.nodeNumber" class="nodeGroupRadio">{{ item.nodeName }}编号{{ item.nodeNumber }}</el-radio>
</el-radio-group>
</div>
<!--根据关联表单设置指定审批字段-->
<el-divider v-if="approverConfig.settype==8" content-position="left">指定审批字段</el-divider>
<div v-if="approverConfig.settype==8" class="approver_manager">
<el-button type="primary" @click="formTableField">添加/修改审批字段</el-button>
<p class="selected_list">
<el-tag v-for="(item,index) in approverConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(approverConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="approverConfig.nodeUserList.length!=0" type="danger" effect="dark" @click="approverConfig.nodeUserList=[]">清除</el-tag>
</p>
</div>
<!--权限矩阵-->
<div v-if="approverConfig.settype==9" class="approver_manager">
<select v-if="isExecutor" v-model="approverConfig.attribute" style="width:100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
</select>
</div>
<MatrixPage
v-if="approverConfig.settype==9"
v-model:isshow="matrixIsShow"
:data="matrixFieldList"
@change="updateMatrix"
/>
<!--补充审批信息-->
<el-divider v-if="(approverConfig.settype==1&&approverConfig.nodeUserList.length>1)||approverConfig.settype==2||approverConfig.settype==6||(approverConfig.settype==4&&approverConfig.selectMode==2)||approverConfig.settype==8||approverConfig.settype==9" content-position="left">多人审批时采用的审批方式</el-divider>
<div v-if="(approverConfig.settype==1&&approverConfig.nodeUserList.length>1)||approverConfig.settype==2||approverConfig.settype==6||(approverConfig.settype==4&&approverConfig.selectMode==2)||approverConfig.settype==8||approverConfig.settype==9" class="approver_some">
<el-radio-group v-model="approverConfig.examineMode" class="clear">
<el-radio :label="1">依次审批</el-radio>
<el-radio v-if="approverConfig.settype!=2" :label="2">会签(须所有审批人同意)</el-radio>
<el-radio v-if="approverConfig.settype!=2" :label="3">或签(有一位审批人同意即可)</el-radio>
</el-radio-group>
</div>
<el-divider v-if="approverConfig.settype==2||approverConfig.settype==6||approverConfig.settype==9" content-position="left">审批人为空时</el-divider>
<div v-if="approverConfig.settype==2||approverConfig.settype==6||approverConfig.settype==9" class="approver_some">
<el-radio-group v-model="approverConfig.noHanderAction" class="clear">
<el-radio :label="1">自动审批通过/不允许发起</el-radio>
<br/>
<el-radio :label="2">转交给审核管理员</el-radio>
</el-radio-group>
</div>
<el-divider content-position="left">退回设置</el-divider>
<div class="approver_some">
<el-radio-group v-model="approverConfig.sendBackNode" class="clear">
<el-radio label="beginnode" >发起人</el-radio>
<el-radio v-for="item in nodeOptional" :key="item.nodeNumber" :label="item.nodeNumber" >{{ item.nodeName }}编号{{ item.nodeNumber }}</el-radio>
</el-radio-group>
</div>
<el-divider content-position="left">操作权限</el-divider>
<div class="info_box">
<div class="table_name"><el-text class="mx-1" type="primary">主表</el-text></div>
<el-table v-if="powerUnitAry.recUnitAry.masterUnitList" :data="powerUnitAry.recUnitAry.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}" class="customer-no-border-table" >
<el-table-column prop="name" label="字段" />
<el-table-column label="可见" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isLook" label="" />
</template>
</el-table-column>
<el-table-column label="可编辑" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isEdit" label="" />
</template>
</el-table-column>
</el-table>
<el-row v-if="powerUnitAry.recUnitAry.sunUnitList" v-for="(item,index) in powerUnitAry.recUnitAry.sunUnitList" :key="index">
<el-col :span="24" class="table_name"><el-text class="mx-1" type="primary">{{item.name}}</el-text></el-col>
<el-col :span="24">
<el-table v-if="item.masterUnitList" :data="item.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}">
</div>
<MatrixPage
v-if="approverConfig.settype==9"
v-model:isshow="matrixIsShow"
:data="matrixFieldList"
@change="updateMatrix"
/>
<!--补充审批信息-->
<el-divider v-if="(approverConfig.settype==1&&approverConfig.nodeUserList.length>1)||approverConfig.settype==2||approverConfig.settype==6||(approverConfig.settype==4&&approverConfig.selectMode==2)||approverConfig.settype==8||approverConfig.settype==9" content-position="left">多人审批时采用的审批方式</el-divider>
<div v-if="(approverConfig.settype==1&&approverConfig.nodeUserList.length>1)||approverConfig.settype==2||approverConfig.settype==6||(approverConfig.settype==4&&approverConfig.selectMode==2)||approverConfig.settype==8||approverConfig.settype==9" class="approver_some">
<el-radio-group v-model="approverConfig.examineMode" class="clear">
<el-radio :label="1">依次审批</el-radio>
<el-radio v-if="approverConfig.settype!=2" :label="2">会签(须所有审批人同意)</el-radio>
<el-radio v-if="approverConfig.settype!=2" :label="3">或签(有一位审批人同意即可)</el-radio>
</el-radio-group>
</div>
<el-divider v-if="approverConfig.settype==2||approverConfig.settype==6||approverConfig.settype==9" content-position="left">审批人为空时</el-divider>
<div v-if="approverConfig.settype==2||approverConfig.settype==6||approverConfig.settype==9" class="approver_some">
<el-radio-group v-model="approverConfig.noHanderAction" class="clear">
<el-radio :label="1">自动审批通过/不允许发起</el-radio>
<br/>
<el-radio :label="2">转交给审核管理员</el-radio>
</el-radio-group>
</div>
<el-divider content-position="left">退回设置</el-divider>
<div class="approver_some">
<el-radio-group v-model="approverConfig.sendBackNode" class="clear">
<el-radio label="beginnode" >发起人</el-radio>
<el-radio v-for="item in nodeOptional" :key="item.nodeNumber" :label="item.nodeNumber" >{{ item.nodeName }}编号{{ item.nodeNumber }}</el-radio>
</el-radio-group>
</div>
</el-tab-pane>
<el-tab-pane name="second">
<template #label>
<span class="wordKeyCss">操作权限</span>
</template>
<!-- <el-divider content-position="left">操作权限</el-divider> -->
<div class="info_box">
<div class="table_name"><el-text class="mx-1" type="primary">主表</el-text></div>
<el-table v-if="powerUnitAry.recUnitAry.masterUnitList" :data="powerUnitAry.recUnitAry.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}" class="customer-no-border-table" >
<el-table-column prop="name" label="字段" />
<el-table-column label="可见" align="center" width="80">
<template #default="scope">
@ -496,10 +504,27 @@ watch(()=>visible.value,(val:boolean)=>{
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</div>
<el-row v-if="powerUnitAry.recUnitAry.sunUnitList" v-for="(item,index) in powerUnitAry.recUnitAry.sunUnitList" :key="index">
<el-col :span="24" class="table_name"><el-text class="mx-1" type="primary">{{item.name}}</el-text></el-col>
<el-col :span="24">
<el-table v-if="item.masterUnitList" :data="item.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}">
<el-table-column prop="name" label="字段" />
<el-table-column label="可见" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isLook" label="" />
</template>
</el-table-column>
<el-table-column label="可编辑" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isEdit" label="" />
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="demo-drawer__footer clear">
@ -631,4 +656,7 @@ watch(()=>visible.value,(val:boolean)=>{
.info_box{
padding: 0 20px;
}
.wordKeyCss{
padding: 0 20px;
}
</style>

69
src/components/workflow/drwer/promoterDrawer.vue

@ -169,38 +169,33 @@ watch(()=>visible.value,(val:boolean)=>{
jieForm();
}
})
const nodeSetUp = ref("first")
</script>
<template>
<el-drawer v-model="visible" :append-to-body="true" title="发起人" class="set_promoter" :show-close="false" :size="550" :before-close="closeDrawer">
<div class="demo-drawer__content">
<div class="promoter_content drawer_content">
<el-divider content-position="left">节点属性</el-divider>
<div class="info_box">
<p>{{ $func.arrToStr(flowPermission) || '所有人' }}</p>
<el-button type="primary" @click="addPromoter">添加/修改发起人</el-button>
</div>
<el-tabs v-model="nodeSetUp" class="demo-tabs">
<el-tab-pane name="first">
<template #label>
<span class="wordKeyCss">属性设置</span>
</template>
<el-divider content-position="left">操作权限</el-divider>
<div class="info_box">
<div class="table_name"><el-text class="mx-1" type="primary">主表</el-text></div>
<el-table v-if="powerUnitAry.recUnitAry.masterUnitList" :data="powerUnitAry.recUnitAry.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}" class="customer-no-border-table" >
<el-table-column prop="name" label="字段" />
<el-table-column label="可见" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isLook" label="" />
</template>
</el-table-column>
<el-table-column label="可编辑" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isEdit" label="" />
</template>
</el-table-column>
</el-table>
<el-row v-if="powerUnitAry.recUnitAry.sunUnitList" v-for="(item,index) in powerUnitAry.recUnitAry.sunUnitList" :key="index">
<el-col :span="24" class="table_name"><el-text class="mx-1" type="primary">{{item.name}}</el-text></el-col>
<el-col :span="24">
<el-table v-if="item.masterUnitList" :data="item.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}">
<!-- <el-divider content-position="left">节点属性</el-divider> -->
<div class="info_box">
<p>{{ $func.arrToStr(flowPermission) || '所有人' }}</p>
<el-button type="primary" @click="addPromoter">添加/修改发起人</el-button>
</div>
</el-tab-pane>
<el-tab-pane name="second">
<template #label>
<span class="wordKeyCss">操作权限</span>
</template>
<!-- <el-divider content-position="left">操作权限</el-divider> -->
<div class="info_box">
<div class="table_name"><el-text class="mx-1" type="primary">主表</el-text></div>
<el-table v-if="powerUnitAry.recUnitAry.masterUnitList" :data="powerUnitAry.recUnitAry.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}" class="customer-no-border-table" >
<el-table-column prop="name" label="字段" />
<el-table-column label="可见" align="center" width="80">
<template #default="scope">
@ -213,9 +208,27 @@ watch(()=>visible.value,(val:boolean)=>{
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</div>
<el-row v-if="powerUnitAry.recUnitAry.sunUnitList" v-for="(item,index) in powerUnitAry.recUnitAry.sunUnitList" :key="index">
<el-col :span="24" class="table_name"><el-text class="mx-1" type="primary">{{item.name}}</el-text></el-col>
<el-col :span="24">
<el-table v-if="item.masterUnitList" :data="item.masterUnitList" size="small" style="width: 100%; --el-table-border-color: none;" :header-cell-style="{background:'#eef1f6',color:'#606266'}">
<el-table-column prop="name" label="字段" />
<el-table-column label="可见" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isLook" label="" />
</template>
</el-table-column>
<el-table-column label="可编辑" align="center" width="80">
<template #default="scope">
<el-checkbox v-model="scope.row.isEdit" label="" />
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
<!-- {{formData}} -->
</div>

19
src/types/components.d.ts

@ -22,23 +22,19 @@ declare module '@vue/runtime-core' {
DiyIconfont: typeof import('./../components/DesignForm/public/expand/diy-iconfont.vue')['default']
DragControl: typeof import('./../components/DesignForm/dragControl.vue')['default']
ElAffix: typeof import('element-plus/es')['ElAffix']
ElAside: typeof import('element-plus/es')['ElAside']
ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
ElCard: typeof import('element-plus/es')['ElCard']
ElCarousel: typeof import('element-plus/es')['ElCarousel']
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
ElCascader: typeof import('element-plus/es')['ElCascader']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol']
ElCollapse: typeof import('element-plus/es')['ElCollapse']
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
ElContainer: typeof import('element-plus/es')['ElContainer']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
@ -55,14 +51,11 @@ declare module '@vue/runtime-core' {
ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink']
ElMain: typeof import('element-plus/es')['ElMain']
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover']
ElProgress: typeof import('element-plus/es')['ElProgress']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
@ -70,7 +63,6 @@ declare module '@vue/runtime-core' {
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSelectV2: typeof import('element-plus/es')['ElSelectV2']
ElSlider: typeof import('element-plus/es')['ElSlider']
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElSwitch: typeof import('element-plus/es')['ElSwitch']
@ -105,19 +97,8 @@ declare module '@vue/runtime-core' {
HeadToolsNew: typeof import('./../components/DesignForm/public/headToolsNew.vue')['default']
IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
IEpClose: typeof import('~icons/ep/close')['default']
IEpDelete: typeof import('~icons/ep/delete')['default']
IEpEdit: typeof import('~icons/ep/edit')['default']
IEpMessageBox: typeof import('~icons/ep/message-box')['default']
IEpOperation: typeof import('~icons/ep/operation')['default']
IEpPicture: typeof import('~icons/ep/picture')['default']
IEpPlus: typeof import('~icons/ep/plus')['default']
IEpRefresh: typeof import('~icons/ep/refresh')['default']
IEpSearch: typeof import('~icons/ep/search')['default']
IEpSetting: typeof import('~icons/ep/setting')['default']
IEpUser: typeof import('~icons/ep/user')['default']
IEpView: typeof import('~icons/ep/view')['default']
LangSelect: typeof import('./../components/LangSelect/index.vue')['default']
LayoutPage: typeof import('./../components/DesignForm/layoutPage/index.vue')['default']
List: typeof import('./../components/DesignForm/public/form/components/list.vue')['default']

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

@ -11,6 +11,7 @@ import { getProductionMarkForm } from '@/api/DesignForm/requestapi'
// import PageDesign from "@/views/sysworkflow/lowcodepage/pageDesign.vue"
import PageDesignEs from "@/views/sysworkflow/lowcodepage/pageDesignes.vue"
import WorkFlow from "@/views/sysworkflow/lowcodepage/workFlow.vue"
import PageList from "@/views/sysworkflow/lowcodepage/pageList.vue"
@ -190,7 +191,7 @@ const runNextWindows = (val:number) => {
tabsActive.value = val
}
onMounted(()=>{
// formKeyStr.value = "16"
formKeyStr.value = "16"
})
</script>
<template>
@ -199,15 +200,19 @@ onMounted(()=>{
<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">
{{creetTabsActive}} == {{tabsActive}}
<PageDesignEs v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" :formconfigcont="formConfigCont" @judgeFormIsEdit="judgeFormIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
</el-tab-pane>
<el-tab-pane label="流程设计" :name="2">
{{creetTabsActive}} == {{tabsActive}}
<WorkFlow v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" @judgeFlowIsEdit="judgeFlowIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
</el-tab-pane>
<el-tab-pane label="列表设计" :name="3">{{creetTabsActive}} == {{tabsActive}}</el-tab-pane>
<el-tab-pane label="页面设置" :name="4"></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>
<el-tab-pane label="页面设置" :name="4">
{{creetTabsActive}} == {{tabsActive}}
</el-tab-pane>
</el-tabs>
</el-drawer>
</div>

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

@ -0,0 +1,14 @@
<!--
@ 作者: 秦东
@ 时间: 2024-03-18 11:32:14
@ 备注: 自定义表单列表
-->
<script lang='ts' setup>
</script>
<template>
<div></div>
</template>
<style lang='scss' scoped>
</style>
Loading…
Cancel
Save