|
|
|
@ -12,6 +12,8 @@ import { constFormBtnEvent,constFormProps } from '@/api/lowCode/utils'; |
|
|
|
import { useDesignFormStore } from '@/utils/pinia/stores/lowCode/designForm' |
|
|
|
import { AnalysisCss,AnalysisInputCss } from '@/api/common/cssInfo' |
|
|
|
import { useAttrs,computed, onMounted, nextTick,ref,watch,onBeforeMount} from 'vue' |
|
|
|
import { nodePoweInfo,powerAryInfo } from "@/api/taskapi/types"; |
|
|
|
import { formTableInfo } from '@/utils/pinia/stores/lowCode/entry' |
|
|
|
|
|
|
|
const props = withDefaults( |
|
|
|
defineProps<{ |
|
|
|
@ -539,6 +541,50 @@ const linksIf = (obj: FormList) => { |
|
|
|
} |
|
|
|
return true; |
|
|
|
}; |
|
|
|
|
|
|
|
const allNodePwoer = inject('flowNodePower') as any |
|
|
|
const currentNodePowerKey = inject('currentNodeKey') as any |
|
|
|
|
|
|
|
//获取当前节点授权 |
|
|
|
const curNodePowerAry = () => { |
|
|
|
if(currentNodePowerKey && currentNodePowerKey.value && currentNodePowerKey.value != ""){ |
|
|
|
if(allNodePwoer.value && Array.isArray(allNodePwoer.value) && allNodePwoer.value.length > 0){ |
|
|
|
let powerAry: any[] = [] |
|
|
|
allNodePwoer.value.forEach((item:nodePoweInfo) => { |
|
|
|
if(item.nodeKey == currentNodePowerKey.value){ |
|
|
|
powerAry = item.powerAry |
|
|
|
} |
|
|
|
}) |
|
|
|
return powerAry |
|
|
|
}else{ |
|
|
|
return [] |
|
|
|
} |
|
|
|
}else{ |
|
|
|
return [] |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2025-11-06 14:03:21 |
|
|
|
@ 功能: 判断此组件是否可见 |
|
|
|
*/ |
|
|
|
const judgeIsShow = (key: string) => { |
|
|
|
let myPower = curNodePowerAry() //获取权限数组 |
|
|
|
if(Array.isArray(myPower) && myPower.length > 0){ |
|
|
|
let isOk = true |
|
|
|
myPower.forEach((item:powerAryInfo) => { |
|
|
|
if(key == item.id){ |
|
|
|
isOk = item.isLook |
|
|
|
} |
|
|
|
}) |
|
|
|
return isOk |
|
|
|
}else{ |
|
|
|
return true |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</script> |
|
|
|
<template> |
|
|
|
|
|
|
|
@ -551,17 +597,19 @@ const linksIf = (obj: FormList) => { |
|
|
|
v-bind="element.control" |
|
|
|
:class="[element.config?.className]" |
|
|
|
> |
|
|
|
<el-tab-pane |
|
|
|
v-for="(item, tIndex) in element.columns" |
|
|
|
:label="item.label" |
|
|
|
:key="tIndex" |
|
|
|
> |
|
|
|
<FormItemGroup :data="item.list" :tableinfo="tableinfo" :org-and-man-tree="orgAndManTree" data-type="not-nested" /> |
|
|
|
|
|
|
|
</el-tab-pane> |
|
|
|
<template v-for="(item, tIndex) in element.columns"> |
|
|
|
<el-tab-pane |
|
|
|
:label="item.label" |
|
|
|
:key="tIndex" |
|
|
|
v-if="judgeIsShow(item.name)" |
|
|
|
> |
|
|
|
<FormItemGroup :data="item.list" :tableinfo="tableinfo" :org-and-man-tree="orgAndManTree" data-type="not-nested" /> |
|
|
|
|
|
|
|
</el-tab-pane> |
|
|
|
</template> |
|
|
|
</el-tabs> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'title'"> |
|
|
|
<template v-else-if="element.type === 'title' && judgeIsShow(element.name)"> |
|
|
|
<!--标题--> |
|
|
|
<div |
|
|
|
class="title" |
|
|
|
@ -576,7 +624,7 @@ const linksIf = (obj: FormList) => { |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'txt'"> |
|
|
|
<template v-else-if="element.type === 'txt' && judgeIsShow(element.name)"> |
|
|
|
<!--文字--> |
|
|
|
<div |
|
|
|
v-bind="element.control" |
|
|
|
@ -585,12 +633,12 @@ const linksIf = (obj: FormList) => { |
|
|
|
> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'table'"> |
|
|
|
<template v-else-if="element.type === 'table' && judgeIsShow(element.name)"> |
|
|
|
<el-divider v-if="element.item&&element.item.label" content-position="left" >{{element.item.label}}</el-divider> |
|
|
|
<!-- <el-text class="tableTitle" v-if="element.item&&element.item.label">{{element.item.label}}</el-text> --> |
|
|
|
<TablePage :data="element" :tableinfo="tableinfo" :org-and-man-tree="orgAndManTree" :type="type" @asf-value-changed="asfValueChanged" /> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'grid'"> |
|
|
|
<template v-else-if="element.type === 'grid' && judgeIsShow(element.name)"> |
|
|
|
<el-row class="form-row" :style="type === 15?'padding: 0 0 20px 0;':''" :class="[element.className]"> |
|
|
|
|
|
|
|
<el-col |
|
|
|
@ -617,7 +665,7 @@ const linksIf = (obj: FormList) => { |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'card'"> |
|
|
|
<template v-else-if="element.type === 'card' && judgeIsShow(element.name)"> |
|
|
|
<el-collapse model-value="1"> |
|
|
|
<el-collapse-item :title="element.item.label" name="1"> |
|
|
|
<template #title v-if="element.help"> |
|
|
|
@ -628,11 +676,11 @@ const linksIf = (obj: FormList) => { |
|
|
|
</el-collapse-item> |
|
|
|
</el-collapse> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'divider'"> |
|
|
|
<template v-else-if="element.type === 'divider' && judgeIsShow(element.name)"> |
|
|
|
<!--分割线--> |
|
|
|
<el-divider v-bind="element.control">{{ element.item && element.item.label }}</el-divider> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'div'"> |
|
|
|
<template v-else-if="element.type === 'div' && judgeIsShow(element.name)"> |
|
|
|
<!--div容器--> |
|
|
|
<div |
|
|
|
class="div-layout " |
|
|
|
@ -648,7 +696,7 @@ const linksIf = (obj: FormList) => { |
|
|
|
|
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<template v-else-if="element.type === 'flex'"> |
|
|
|
<template v-else-if="element.type === 'flex' && judgeIsShow(element.name)"> |
|
|
|
|
|
|
|
<!----> |
|
|
|
<FormItemGroup :tableinfo="props.tableinfo" :data="element.list" :alldata="props.alldata" data-type="not-flex" v-if="type === 15" /> |
|
|
|
|