|
|
@ -44,6 +44,8 @@ const props = withDefaults( |
|
|
data: FormList |
|
|
data: FormList |
|
|
modelValue?: any // 子表和弹性布局时时有传 |
|
|
modelValue?: any // 子表和弹性布局时时有传 |
|
|
tProp?: string // 子表时的form-item的prop值,用于子表校验用 |
|
|
tProp?: string // 子表时的form-item的prop值,用于子表校验用 |
|
|
|
|
|
nodeKey?:string |
|
|
|
|
|
purview?:any[] |
|
|
}>(), |
|
|
}>(), |
|
|
{} |
|
|
{} |
|
|
) |
|
|
) |
|
|
@ -175,6 +177,7 @@ const editDisabled = computed(() => { |
|
|
if (type.value === 2 && config.value.editDisabled) { |
|
|
if (type.value === 2 && config.value.editDisabled) { |
|
|
return true // 编辑模式 |
|
|
return true // 编辑模式 |
|
|
} |
|
|
} |
|
|
|
|
|
// return judgeIsDisabled(key) |
|
|
return control.value.disabled |
|
|
return control.value.disabled |
|
|
}) |
|
|
}) |
|
|
// 返回当前item项的校验规则 |
|
|
// 返回当前item项的校验规则 |
|
|
@ -521,10 +524,89 @@ const getFormItemInputStyle = (ele: any,sty:number) => { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2024-07-27 14:17:16 |
|
|
|
|
|
@ 功能: 判断此组件是否可见 |
|
|
|
|
|
*/ |
|
|
|
|
|
const judgeIsShow = (key:string) => { |
|
|
|
|
|
console.log("判断此组件是否可见---->",props.nodeKey,props.purview) |
|
|
|
|
|
if(props.nodeKey != undefined && props.purview != undefined && props.purview != null && props.purview != null && props.purview != "" && props.purview != "") { |
|
|
|
|
|
if(props.purview.length < 1){ |
|
|
|
|
|
return true; |
|
|
|
|
|
}else{ |
|
|
|
|
|
let isShow = false; |
|
|
|
|
|
props.purview.forEach((item)=>{ |
|
|
|
|
|
if(item.nodeKey == props.nodeKey){ |
|
|
|
|
|
|
|
|
|
|
|
if(item.powerAry && item.powerAry.length > 0){ |
|
|
|
|
|
item.powerAry.forEach((itm)=>{ |
|
|
|
|
|
if(itm.id == key){ |
|
|
|
|
|
console.log("判断此组件是否可见",itm,itm.id == key,"--------->",itm.isLook) |
|
|
|
|
|
isShow = itm.isLook |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
return isShow |
|
|
|
|
|
} |
|
|
|
|
|
}else{ |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2024-07-27 15:11:42 |
|
|
|
|
|
@ 功能: 判断是否禁用 |
|
|
|
|
|
*/ |
|
|
|
|
|
const judgeIsDisabled = (key:string) => { |
|
|
|
|
|
if (type.value === 3) { |
|
|
|
|
|
return true // 查看模式,为不可编辑状态 |
|
|
|
|
|
} |
|
|
|
|
|
if (type.value === 1 && config.value.addDisabled) { |
|
|
|
|
|
return true |
|
|
|
|
|
} |
|
|
|
|
|
if (type.value === 2 && config.value.editDisabled) { |
|
|
|
|
|
return true // 编辑模式 |
|
|
|
|
|
} |
|
|
|
|
|
if(props.nodeKey != undefined && props.purview != undefined && props.purview != null && props.purview != null && props.purview != "" && props.purview != "") { |
|
|
|
|
|
if(props.purview.length < 1){ |
|
|
|
|
|
return false; |
|
|
|
|
|
}else{ |
|
|
|
|
|
let isShow = true; |
|
|
|
|
|
props.purview.forEach((item)=>{ |
|
|
|
|
|
if(item.nodeKey == props.nodeKey){ |
|
|
|
|
|
|
|
|
|
|
|
if(item.powerAry && item.powerAry.length > 0){ |
|
|
|
|
|
item.powerAry.forEach((itm)=>{ |
|
|
|
|
|
if(itm.id == key){ |
|
|
|
|
|
console.log("判断此组件是否禁用",itm,itm.id == key,"--------->",itm.isLook) |
|
|
|
|
|
isShow = !itm.isEdit |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
return isShow |
|
|
|
|
|
} |
|
|
|
|
|
}else{ |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
<template> |
|
|
<template> |
|
|
|
|
|
|
|
|
<el-form-item |
|
|
<el-form-item |
|
|
v-bind="data.item" |
|
|
v-bind="data.item" |
|
|
|
|
|
v-if="judgeIsShow(data.name)" |
|
|
|
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
:prop="tProp || data.name" |
|
|
:prop="tProp || data.name" |
|
|
:class="config.className" |
|
|
:class="config.className" |
|
|
:rules="itemRules as any" |
|
|
:rules="itemRules as any" |
|
|
@ -537,24 +619,26 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
</template> |
|
|
</template> |
|
|
<template #label v-else> |
|
|
<template #label v-else> |
|
|
<span :style="getFormItemLableStyle(configStyle)" >{{ getLabel(data.item) }}</span> |
|
|
<span :style="getFormItemLableStyle(configStyle)" >{{ getLabel(data.item) }}</span> |
|
|
|
|
|
{{editDisabled}} |
|
|
</template> |
|
|
</template> |
|
|
<div class="form-value" v-if="type === 4" v-html="value"></div> |
|
|
<div class="form-value" v-if="type === 4" v-html="value"></div> |
|
|
<template v-else> |
|
|
<template v-else> |
|
|
<el-input |
|
|
<el-input |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
:type="data.type === 'password' ? 'password' : 'text'" |
|
|
:type="data.type === 'password' ? 'password' : 'text'" |
|
|
:style="getFormItemInputStyle(configStyle,2)" |
|
|
:style="getFormItemInputStyle(configStyle,2)" |
|
|
:input-style="getFormItemInputStyle(configStyle,3)" |
|
|
:input-style="getFormItemInputStyle(configStyle,3)" |
|
|
v-if="['input', 'password'].includes(data.type)" |
|
|
v-if="['input', 'password'].includes(data.type)" |
|
|
:placeholder="data.control.placeholder?data.control.placeholder:'请输入'+getLabel(data.item)" |
|
|
:placeholder="data.control.placeholder?data.control.placeholder:'请输入'+getLabel(data.item)" |
|
|
|
|
|
|
|
|
> |
|
|
> |
|
|
<template #prepend v-if="config.prepend"> |
|
|
<template #prepend v-if="config.prepend"> |
|
|
<div v-if="getInputSlot('p')"> |
|
|
<div v-if="getInputSlot('p')"> |
|
|
<AKSelect |
|
|
<AKSelect |
|
|
:data="getInputSlot('p')" |
|
|
:data="getInputSlot('p')" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
:transform-option="transformOption" |
|
|
:transform-option="transformOption" |
|
|
@change="inputSlotChange" |
|
|
@change="inputSlotChange" |
|
|
type="slot" |
|
|
type="slot" |
|
|
@ -566,7 +650,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
<div v-if="getInputSlot()"> |
|
|
<div v-if="getInputSlot()"> |
|
|
<AKSelect |
|
|
<AKSelect |
|
|
:data="getInputSlot()" |
|
|
:data="getInputSlot()" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
:transform-option="transformOption" |
|
|
:transform-option="transformOption" |
|
|
type="slot" |
|
|
type="slot" |
|
|
@change="inputSlotChange" |
|
|
@change="inputSlotChange" |
|
|
@ -578,7 +662,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
<el-input |
|
|
<el-input |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
type="textarea" |
|
|
type="textarea" |
|
|
:placeholder="data.control.placeholder?data.control.placeholder:'请输入'+getLabel(data.item)" |
|
|
:placeholder="data.control.placeholder?data.control.placeholder:'请输入'+getLabel(data.item)" |
|
|
:style="getFormItemInputStyle(configStyle,2)" |
|
|
:style="getFormItemInputStyle(configStyle,2)" |
|
|
@ -587,7 +671,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
/> |
|
|
/> |
|
|
<el-radio-group |
|
|
<el-radio-group |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
v-if="data.type === 'radio'" |
|
|
v-if="data.type === 'radio'" |
|
|
:style="getFormItemInputStyle(configStyle,4)" |
|
|
:style="getFormItemInputStyle(configStyle,4)" |
|
|
@ -603,7 +687,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
<el-checkbox-group |
|
|
<el-checkbox-group |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
v-if="data.type === 'checkbox'" |
|
|
v-if="data.type === 'checkbox'" |
|
|
:style="getFormItemInputStyle(configStyle,4)" |
|
|
:style="getFormItemInputStyle(configStyle,4)" |
|
|
@ -621,7 +705,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
data.type === 'select' || (type === 5 && data.type === 'inputSlot') |
|
|
data.type === 'select' || (type === 5 && data.type === 'inputSlot') |
|
|
" |
|
|
" |
|
|
:data="data" |
|
|
:data="data" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
:options="props.data.options" |
|
|
:options="props.data.options" |
|
|
:remote-method="getAxiosOptions" |
|
|
:remote-method="getAxiosOptions" |
|
|
@ -634,7 +718,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
:action="uploadUrl" |
|
|
:action="uploadUrl" |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
:name="control.file || 'file'" |
|
|
:name="control.file || 'file'" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
:file-list="fileList as any" |
|
|
:file-list="fileList as any" |
|
|
:class="{limit: control.limit <= fileList.length}" |
|
|
:class="{limit: control.limit <= fileList.length}" |
|
|
:on-error="uploadError" |
|
|
:on-error="uploadError" |
|
|
@ -655,7 +739,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
v-if="['cascader', 'treeSelect'].includes(data.type)" |
|
|
v-if="['cascader', 'treeSelect'].includes(data.type)" |
|
|
:is="currentComponent" |
|
|
:is="currentComponent" |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
:options="options" |
|
|
:options="options" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
/> |
|
|
/> |
|
|
@ -676,7 +760,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
" |
|
|
" |
|
|
:is="currentComponent" |
|
|
:is="currentComponent" |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
:placeholder="data.control.placeholder?data.control.placeholder:'请选择'+getLabel(data.item)" |
|
|
:placeholder="data.control.placeholder?data.control.placeholder:'请选择'+getLabel(data.item)" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
/> |
|
|
/> |
|
|
@ -688,7 +772,7 @@ const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|
|
<tinymce-edit |
|
|
<tinymce-edit |
|
|
v-bind="control" |
|
|
v-bind="control" |
|
|
:config="config" |
|
|
:config="config" |
|
|
:disabled="editDisabled" |
|
|
:disabled="judgeIsDisabled(data.name)" |
|
|
v-model="value" |
|
|
v-model="value" |
|
|
v-if="[1, 2, 3].includes(type as number)" |
|
|
v-if="[1, 2, 3].includes(type as number)" |
|
|
/> |
|
|
/> |
|
|
|