|
@@ -168,6 +168,7 @@ const onSubmit = async () => {
|
|
|
|
|
|
// 当前form 表单数据字符串
|
|
|
let cur_processForm_str = '{}'
|
|
|
+let cur_formStructure = {}
|
|
|
const processChecked = reactive<{ [nodeKey: string]: any }>({})
|
|
|
const modelContentConfig = ref<ModelContentConfig | any>({})
|
|
|
const packageProcess = (data: ModelContentConfig, list = []) => {
|
|
@@ -328,11 +329,44 @@ Promise.all([
|
|
|
// processForm 动态表单
|
|
|
// validateForm.value.rule = [...JSON.parse(cur_processForm_str) /*, { ...workflowItem, value: modelContent_config }*/ /*, { type: 'input', field: 'test_3' }*/]
|
|
|
const { formStructure } = JSON.parse(cur_processForm_str)
|
|
|
+ const formConfig = modelContent_config?.extendConfig?.formConfig || []
|
|
|
+ cur_formStructure = formStructure // 存储一份
|
|
|
+ let newFields = cur_formStructure.fields
|
|
|
+ let newFieldsList = cur_formStructure.list
|
|
|
+ let idx = 0
|
|
|
+ while (idx < newFields.length) {
|
|
|
+ const _field = newFields[idx]
|
|
|
+ const matchingFormItem = formConfig.find(formItem => formItem.id == _field.id)
|
|
|
+ if (matchingFormItem) {
|
|
|
+ // 如果找到匹配的对象,且opera为'2',则删除newFields中的对象
|
|
|
+ if (matchingFormItem.opera === '2') {
|
|
|
+ // fields 配置是准确的
|
|
|
+ newFields.splice(idx, 1)
|
|
|
+ // list 配置是跟随 fields 配置 顺序来(通过id 查找 id 只在第一次创建 才有效(修改编辑不会同步))
|
|
|
+ newFieldsList.splice(idx, 1)
|
|
|
+ idx--
|
|
|
+ } else {
|
|
|
+ // 否则,将opera属性添加到newFields中的对象
|
|
|
+ _field.opera = matchingFormItem.opera
|
|
|
+ // '0': 只读 '1': 编辑 '2': 隐藏
|
|
|
+ _field.options.disabled = ['0', '1'].indexOf(matchingFormItem.opera) > -1 ? !Number(matchingFormItem.opera) : false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ idx++
|
|
|
+ }
|
|
|
+ cur_formStructure = {
|
|
|
+ ...cur_formStructure,
|
|
|
+ fields: newFields,
|
|
|
+ list: newFieldsList
|
|
|
+ }
|
|
|
+
|
|
|
EReditorRef.value.setData(formStructure)
|
|
|
+ validateForm.value.rule = newFields
|
|
|
// validateForm.value.rule = JSON.parse(cur_processForm_str)
|
|
|
})
|
|
|
]).finally(() => {
|
|
|
validateForm.value.loading = false
|
|
|
+ validateForm.value.rule = []
|
|
|
})
|
|
|
</script>
|
|
|
<style lang="scss">
|