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 = () => { -