diff --git a/src/views/mdp/form/formField/Index.vue b/src/views/mdp/form/formField/Index.vue index 91c26b9..2165874 100644 --- a/src/views/mdp/form/formField/Index.vue +++ b/src/views/mdp/form/formField/Index.vue @@ -43,9 +43,9 @@ - 数据库表 - AI输出 - API输出 + 数据库表 + AI输出 + API输出 数据字典 @@ -62,45 +62,51 @@ - - - 请输入数据库表名: - - + + + + + + + + + - 关闭 + 关闭 确定 - - - 请从Ai输出的表格配置信息中复制黏贴到此: - - + + + + 请从Ai输出的表格配置信息中复制黏贴到此 + + + - 关闭 + 关闭 确定 - - + + - + - + - + - 使用本系统登陆的token - + 使用本系统登陆的token + - + @@ -112,7 +118,7 @@ - 关闭 + 关闭 确定 @@ -188,10 +194,15 @@ export default { list: [{id:'0',name:'选项0'},{id:'1',name:'选项1'},{id:'2',name:'选项2'}], yesOrNo: [{id:'0',name:'否'},{id:'1',name:'是'}], } - return { - tableName:'', - aiTableInfosStr:'', - apiParams:{ + return { + dbForm:{ + owner:'',//数据库用户 + tableName:'', + }, + aiForm:{ + columnListStr:'',//表格配置信息黏贴 + }, + apiForm:{ url:'', method:'GET', params:'', @@ -365,44 +376,65 @@ export default { return true; }, initFormFieldsByTable(){ - listTableColumn({owner:'adm',tableName:this.tableName}).then(res=>{ - var tips = res.data.tips - if(tips.isOk){ - var columns=res.data.data - columns.forEach(c=>{ - var field=this.transColumnToField(c) - if(field){ - this.selectedFields.push(field) + this.$refs['dbFormRef'].validate(valid=>{ + if(valid==false){ + this.$notify.error('表单验证不通过') + return; + }else{ + var params={owner:this.dbForm.owner,tableName:this.dbForm.tableName} + listTableColumn(params).then(res=>{ + var tips = res.data.tips + if(tips.isOk){ + var columns=res.data.data + columns.forEach(c=>{ + var field=this.transColumnToField(c) + if(field){ + this.selectedFields.push(field) + } + }) + }else{ + this.$notify.error(tips.msg) } }) - }else{ - this.$notify.error(tips.msg) } - }) + }) + }, initFormFieldsByAiTable(){ - var aiTableInfosStr=this.aiTableInfosStr - var datas=aiTableInfosStr.split("\n") - var columns=datas[0].split("\t") - var columnIdIdx=columns.findIndex(k=>k.indexOf('列名')>=0) - var columnTypeIdx=columns.findIndex(k=>k.indexOf('数据类型')>=0) - var columnRemarkIdx=columns.findIndex(k=>k.indexOf('描述')>=0) - var columList=datas.slice(1); - debugger - columList.forEach(k=>{ - var c=k.split("\t") - var field={formId:'formId',id:c[columnIdIdx],showStyle:'origin',fieldId:c[columnIdIdx],fieldIdCamel:c[columnIdIdx],fieldTitle:c[columnRemarkIdx],isDict:'0',dictCode:'',fieldType:'text',fieldLength:12,defaultValue:'',isMultiple:'0',placeholder:'请输入',isRequired:'0',remark:'属性',extFieldType:'',toFlow:'0',flowFieldId:'',isBizKey:'0',fieldQx:''} - var noSelectFieldId=this.fieldIds.find(i=>{ - return !this.selectedFields.some(k=>k.id==i.id); - }) - if(!noSelectFieldId){ - return null; + this.$refs['aiFormRef'].validate(valid=>{ + if(valid==false){ + this.$notify.error('表单验证不通过') + return; + }else{ + var columnListStr=this.aiForm.columnListStr + var datas=columnListStr.split("\n") + var columns=datas[0].split("\t") + var columnIdIdx=columns.findIndex(k=>k.indexOf('列名')>=0) + var columnTypeIdx=columns.findIndex(k=>k.indexOf('数据类型')>=0) + var columnRemarkIdx=columns.findIndex(k=>k.indexOf('描述')>=0) + var columList=datas.slice(1); + columList.forEach(k=>{ + var c=k.split("\t") + var field={formId:'formId',id:c[columnIdIdx],showStyle:'origin',fieldId:c[columnIdIdx],fieldIdCamel:c[columnIdIdx],fieldTitle:c[columnRemarkIdx],isDict:'0',dictCode:'',fieldType:'text',fieldLength:12,defaultValue:'',isMultiple:'0',placeholder:'请输入',isRequired:'0',remark:'属性',extFieldType:'',toFlow:'0',flowFieldId:'',isBizKey:'0',fieldQx:''} + var noSelectFieldId=this.fieldIds.find(i=>{ + return !this.selectedFields.some(k=>k.id==i.id); + }) + if(!noSelectFieldId){ + return null; + } + field.id=noSelectFieldId.id + this.selectedFields.push(field) + }) } - field.id=noSelectFieldId.id - this.selectedFields.push(field) }) + + }, - initFormFieldsByItemCode(item){ + initFormFieldsByItemCode(item){ + if(!item || !item.itemCode){ + this.$notify.error('请选择数据字典') + return; + } this.$mdp.ajaxGetDictOptions(item.itemCode,{}).then(res=>{ var tips = res.tips if(tips.isOk){ @@ -419,37 +451,46 @@ export default { }) }, initFormFieldsByApi(){ - var axiosParams=this.apiParamsToAxiosParams(this.apiParams); - var axiosFun=axios - if(this.apiParams.useMyLoginToken==false){ - var axiosFun=axiosNoAuth; - } - axiosFun(axiosParams).then(res=>{ - var datas=null; - if(this.apiParams.parseDataFunc){ - var func=new Function('res',apiParams.parseDataFunc) - datas=func(res) + this.$refs['apiFormRef'].validate(valid=>{ + if(valid==false){ + this.$notify.error('表单验证不通过') + return; }else{ - datas=res.data.data; - } - if(datas && datas.length>0){ - Object.keys(datas[0]).forEach(k=>{ - var field={formId:'formId',id:k,showStyle:'origin',fieldId:k,fieldIdCamel:k,fieldTitle:k,isDict:'0',dictCode:'',fieldType:'text',fieldLength:12,defaultValue:'',isMultiple:'0',placeholder:'请输入'+k,isRequired:'0',remark:'',extFieldType:'',toFlow:'0',flowFieldId:'',isBizKey:'0',fieldQx:''} - var noSelectFieldId=this.fieldIds.find(i=>{ - return !this.selectedFields.some(k=>k.id==i.id); - }) - if(!noSelectFieldId){ - return; + var axiosParams=this.apiFormToAxiosParams(this.apiForm); + var axiosFun=axios + if(this.apiForm.useMyLoginToken==false){ + var axiosFun=axiosNoAuth; + } + axiosFun(axiosParams).then(res=>{ + var datas=null; + if(this.apiForm.parseDataFunc){ + var func=new Function('res',apiForm.parseDataFunc) + datas=func(res) + }else{ + datas=res.data.data; } - field.id=noSelectFieldId.id - this.selectedFields.push(field) + if(datas && datas.length>0){ + Object.keys(datas[0]).forEach(k=>{ + var field={formId:'formId',id:k,showStyle:'origin',fieldId:k,fieldIdCamel:k,fieldTitle:k,isDict:'0',dictCode:'',fieldType:'text',fieldLength:12,defaultValue:'',isMultiple:'0',placeholder:'请输入'+k,isRequired:'0',remark:'',extFieldType:'',toFlow:'0',flowFieldId:'',isBizKey:'0',fieldQx:''} + var noSelectFieldId=this.fieldIds.find(i=>{ + return !this.selectedFields.some(k=>k.id==i.id); + }) + if(!noSelectFieldId){ + return; + } + field.id=noSelectFieldId.id + this.selectedFields.push(field) + }) + this.$notify({position:'bottom-left',showClose:true,message:'成功',type: 'success'}) + }else{ + this.$notify({position:'bottom-left',showClose:true,message:'失败',type: 'error'}) + + } }) - this.$notify({position:'bottom-left',showClose:true,message:'成功',type: 'success'}) - }else{ - this.$notify({position:'bottom-left',showClose:true,message:'失败',type: 'error'}) + } + }) - } - }) + @@ -478,19 +519,19 @@ export default { return field; }, - apiParamsToAxiosParams(apiParams,env){ - var axiosObj={url:apiParams.url,method:apiParams.method,headers:{}} + apiFormToAxiosParams(apiForm,env){ + var axiosObj={url:apiForm.url,method:apiForm.method,headers:{}} //参数处理 - if(apiParams.params && apiParams.params.indexOf('{')>=0){ - axiosObj.params=JSON.parse(apiParams.params) + if(apiForm.params && apiForm.params.indexOf('{')>=0){ + axiosObj.params=JSON.parse(apiForm.params) } //header处理 - if(apiParams.useMyLoginToken==true){ + if(apiForm.useMyLoginToken==true){ axiosObj.headers['Authorization'] = 'Bearer '+getToken() - }else if(apiParams.headers && apiParams.headers.indexOf("{")>=0){ - axiosObj.headers=JSON.parse(apiParams.headers) + }else if(apiForm.headers && apiForm.headers.indexOf("{")>=0){ + axiosObj.headers=JSON.parse(apiForm.headers) }else { axiosObj.headers={} }