diff --git a/src/components/DesignForm/assembly/index.ts b/src/components/DesignForm/assembly/index.ts index 5513bbdbd..2d207548e 100644 --- a/src/components/DesignForm/assembly/index.ts +++ b/src/components/DesignForm/assembly/index.ts @@ -14,7 +14,7 @@ const selectOption: any = [ }*/ ] const config: { optionsType: number } = { - optionsType: 0 // 0固定 1数据源 2 接口字典 + optionsType: 0 // 0固定 1数据源 2 接口字典 3系统表单字段 } export default [ { diff --git a/src/components/DesignForm/formControlAttr.vue b/src/components/DesignForm/formControlAttr.vue index d9518656c..1fd76096d 100644 --- a/src/components/DesignForm/formControlAttr.vue +++ b/src/components/DesignForm/formControlAttr.vue @@ -1147,7 +1147,7 @@ //liwenxuan 20240508 checkbox 删除选项时提醒 start let delflag = true let breakFlag = 0 - if(controlData.value.type === 'checkbox'){ + if(controlData.value.type === 'checkbox'&& controlData.value.config.optionsType==0){ for(var i = 0;i < controlData.value.control.glxxszForCheckBox.length;i ++){ if(breakFlag>0){ break @@ -2413,54 +2413,64 @@ watch(()=>controlData.value.control,(newVal) => { //radio,select添加选项时同步配置选项 watch(()=>controlData.value.options, (changedOptions:any) => { - if(controlData.value.type === "radio" || controlData.value.type === "select"){ - if(changedOptions.length===0){ - //删没了option - controlData.value.control.glxxsz = [] - }else{ - if(changedOptions.length < controlData.value.control.glxxsz.length){ - //删除了某个option - controlData.value.control.glxxsz = controlData.value.control.glxxsz.filter((item: { optionValue: any }) => changedOptions.find((bItem: { value: any }) => item.optionValue == bItem.value)) - }else{ - for(var i = 0; i < changedOptions.length; i++){ - if(controlData.value.control.glxxsz[i]===undefined){ - //新增了某个option - controlData.value.control.glxxsz.push( - { - conditionField: controlData.value.name, - optionLabel: changedOptions[i].label, - optionValue: changedOptions[i].value, - tableIndex: i, - id: uuidv4().replaceAll('-','').toString(), - } - ) + + if(controlData.value.type === "radio" || controlData.value.type === "select"){ + if(controlData.value.config.optionsType==0){ + if(changedOptions.length===0){ + //删没了option + controlData.value.control.glxxsz = [] + }else{ + if(changedOptions.length < controlData.value.control.glxxsz.length){ + //删除了某个option + controlData.value.control.glxxsz = controlData.value.control.glxxsz.filter((item: { optionValue: any }) => changedOptions.find((bItem: { value: any }) => item.optionValue == bItem.value)) }else{ - //修改了某个option - controlData.value.control.glxxsz[i].optionLabel = changedOptions[i].label - controlData.value.control.glxxsz[i].optionValue = changedOptions[i].value + for(var i = 0; i < changedOptions.length; i++){ + if(controlData.value.control.glxxsz[i]===undefined){ + //新增了某个option + controlData.value.control.glxxsz.push( + { + conditionField: controlData.value.name, + optionLabel: changedOptions[i].label, + optionValue: changedOptions[i].value, + tableIndex: i, + id: uuidv4().replaceAll('-','').toString(), + } + ) + }else{ + //修改了某个option + controlData.value.control.glxxsz[i].optionLabel = changedOptions[i].label + controlData.value.control.glxxsz[i].optionValue = changedOptions[i].value + } + } } } } + }else if(controlData.value.type === "checkbox"){ + } - }else if(controlData.value.type === "checkbox"){ - - } + + },{ deep: true }) function createRowForGlxxsz(){ - controlData.value.control.glxxszForCheckBox.push( - { - conditionField: controlData.value.name, - selectedOptions:[], - showFields:[], - id: uuidv4().replaceAll('-','').toString(), - } - ) + if(controlData.value.config.optionsType==0){ + controlData.value.control.glxxszForCheckBox.push( + { + conditionField: controlData.value.name, + selectedOptions:[], + showFields:[], + id: uuidv4().replaceAll('-','').toString(), + } + ) + } + } function deleteRowForGlxxsz(row: { id: any }){ - controlData.value.control.glxxszForCheckBox = controlData.value.control.glxxszForCheckBox.filter((item: { id: any }) => item.id!=row.id) + if(controlData.value.config.optionsType==0){ + controlData.value.control.glxxszForCheckBox = controlData.value.control.glxxszForCheckBox.filter((item: { id: any }) => item.id!=row.id) + } } /* */ @@ -2475,6 +2485,11 @@ function handleDetermineoptionsValue3(){ //liwenxuan20240426 单选多选下拉 关联选项设置 end +function optionsTypeChanged(){ + controlData.value.config.optionsFun = '' + controlData.value.options = [] +} + @@ -3086,13 +3101,13 @@ const loadNextPage = () => { -
- 关联选项设置 +
+ 关联选项设置
-
+
关联选项设置
-
+
关联选项设置
{ diff --git a/src/components/DesignForm/formControlPropertiNew.vue b/src/components/DesignForm/formControlPropertiNew.vue index c79898049..9d64982cf 100644 --- a/src/components/DesignForm/formControlPropertiNew.vue +++ b/src/components/DesignForm/formControlPropertiNew.vue @@ -1191,7 +1191,7 @@ const delSelectOption = (index: number, type?: string) => { //liwenxuan 20240508 checkbox 删除选项时提醒 start let delflag = true let breakFlag = 0 - if(controlData.value.type === 'checkbox'){ + if(controlData.value.type === 'checkbox'&& controlData.value.config.optionsType==0){ for(var i = 0;i < controlData.value.control.glxxszForCheckBox.length;i ++){ if(breakFlag>0){ break @@ -2452,30 +2452,32 @@ watch(()=>controlData.value.control,(newVal) => { //radio,select添加选项时同步配置选项 watch(()=>controlData.value.options, (changedOptions:any) => { if(controlData.value.type === "radio" || controlData.value.type === "select"){ - if(changedOptions.length===0){ - //删没了option - controlData.value.control.glxxsz = [] - }else{ - if(changedOptions.length < controlData.value.control.glxxsz.length){ - //删除了某个option - controlData.value.control.glxxsz = controlData.value.control.glxxsz.filter((item: { optionValue: any }) => changedOptions.find((bItem: { value: any }) => item.optionValue == bItem.value)) + if(controlData.value.config.optionsType==0){ + if(changedOptions.length===0){ + //删没了option + controlData.value.control.glxxsz = [] }else{ - for(var i = 0; i < changedOptions.length; i++){ - if(controlData.value.control.glxxsz[i]===undefined){ - //新增了某个option - controlData.value.control.glxxsz.push( - { - conditionField: controlData.value.name, - optionLabel: changedOptions[i].label, - optionValue: changedOptions[i].value, - tableIndex: i, - id: uuidv4().replaceAll('-','').toString(), - } - ) - }else{ - //修改了某个option - controlData.value.control.glxxsz[i].optionLabel = changedOptions[i].label - controlData.value.control.glxxsz[i].optionValue = changedOptions[i].value + if(changedOptions.length < controlData.value.control.glxxsz.length){ + //删除了某个option + controlData.value.control.glxxsz = controlData.value.control.glxxsz.filter((item: { optionValue: any }) => changedOptions.find((bItem: { value: any }) => item.optionValue == bItem.value)) + }else{ + for(var i = 0; i < changedOptions.length; i++){ + if(controlData.value.control.glxxsz[i]===undefined){ + //新增了某个option + controlData.value.control.glxxsz.push( + { + conditionField: controlData.value.name, + optionLabel: changedOptions[i].label, + optionValue: changedOptions[i].value, + tableIndex: i, + id: uuidv4().replaceAll('-','').toString(), + } + ) + }else{ + //修改了某个option + controlData.value.control.glxxsz[i].optionLabel = changedOptions[i].label + controlData.value.control.glxxsz[i].optionValue = changedOptions[i].value + } } } } @@ -2487,18 +2489,22 @@ watch(()=>controlData.value.options, (changedOptions:any) => { function createRowForGlxxsz(){ - controlData.value.control.glxxszForCheckBox.push( - { - conditionField: controlData.value.name, - selectedOptions:[], - showFields:[], - id: uuidv4().replaceAll('-','').toString(), - } - ) + if(controlData.value.config.optionsType==0){ + controlData.value.control.glxxszForCheckBox.push( + { + conditionField: controlData.value.name, + selectedOptions:[], + showFields:[], + id: uuidv4().replaceAll('-','').toString(), + } + ) + } } function deleteRowForGlxxsz(row: { id: any }){ - controlData.value.control.glxxszForCheckBox = controlData.value.control.glxxszForCheckBox.filter((item: { id: any }) => item.id!=row.id) + if(controlData.value.config.optionsType==0){ + controlData.value.control.glxxszForCheckBox = controlData.value.control.glxxszForCheckBox.filter((item: { id: any }) => item.id!=row.id) + } } /* */ @@ -2515,6 +2521,13 @@ function handleDetermineoptionsValue3(){ //liwenxuan20240426 单选多选下拉 关联选项设置 end +function optionsTypeChanged(){ + controlData.value.config.optionsFun = '' + controlData.value.options = [] +} + + + const optionsCss = [ @@ -3122,13 +3135,13 @@ const loadNextPage = () => {
-
+
关联选项设置
-
+
关联选项设置
-
+
关联选项设置
{ diff --git a/src/components/DesignForm/public/form/form.vue b/src/components/DesignForm/public/form/form.vue index b4de962df..f3fc4b8dc 100644 --- a/src/components/DesignForm/public/form/form.vue +++ b/src/components/DesignForm/public/form/form.vue @@ -84,6 +84,7 @@ const emits = defineEmits<{ (e: 'change', val: any): void // 表单组件值发生变化时 (e: 'update:issave', type: boolean): void (e: 'refresh'): void + (e: 'optionsValue3Get3', val: any,fieldName: string): void }>() const route = useRoute() const router = useRouter() @@ -1587,6 +1588,10 @@ const submitEdit = (type: string, res: any) => { } } +function optionsValue3Get2(data: any,fieldName: string){ + emits('optionsValue3Get3',data,fieldName) +} + defineExpose({ setOptions, setValue, @@ -1616,7 +1621,7 @@ defineExpose({ }" > - + diff --git a/src/components/DesignForm/public/form/formGroup.vue b/src/components/DesignForm/public/form/formGroup.vue index 964f27e56..c9076c445 100644 --- a/src/components/DesignForm/public/form/formGroup.vue +++ b/src/components/DesignForm/public/form/formGroup.vue @@ -35,6 +35,7 @@ const props = withDefaults( } ) +let emits = defineEmits(['optionsValue3Get2']); const store = useDesignFormStore() as any //自定义表单存储器 const formProps = inject(constFormProps, {}) as any @@ -307,6 +308,9 @@ const getFormItemLableStyle = (ele: any) => { return AnalysisCss(ele?.labelStyle) } } +function optionsValue3Get1(data: any,fieldName: string){ + emits('optionsValue3Get2',data,fieldName) +}