Browse Source

优化

master
陈裕财 2 years ago
parent
commit
e3cdb4c750
  1. 4
      config/index.js
  2. 3
      src/api/mdp/form/formField.js
  3. 2
      src/views/mdp/form/formDef/Index.vue
  4. 184
      src/views/mdp/form/formField/Index.vue

4
config/index.js

@ -10,7 +10,7 @@ module.exports = {
assetsSubDirectory: '', assetsSubDirectory: '',
assetsPublicPath: '/', assetsPublicPath: '/',
proxyTable: { proxyTable: {
/**
'/api/m1/form': { '/api/m1/form': {
target: 'http://localhost:7013', target: 'http://localhost:7013',
changeOrigin: true, changeOrigin: true,
@ -18,7 +18,7 @@ module.exports = {
'^/api/m1/form': '/form' '^/api/m1/form': '/form'
} }
}, },
/**
'/api/m1/xm': { '/api/m1/xm': {
target: 'http://localhost:7067', target: 'http://localhost:7067',
changeOrigin: true, changeOrigin: true,

3
src/api/mdp/form/formField.js

@ -14,6 +14,9 @@ let base = config.getFormContext();
//普通查询 条件之间and关系 //普通查询 条件之间and关系
export const listFormField = params => { return axios.get(`${base}/mdp/form/formField/list`, { params: params }); }; export const listFormField = params => { return axios.get(`${base}/mdp/form/formField/list`, { params: params }); };
//查询数据库表的字段列表
export const listTableColumn = params => { return axios.get(`${base}/mdp/dev/db/table/column/list`, { params: params }); };
//模糊查询表单字段定义 条件之间or关系 //模糊查询表单字段定义 条件之间or关系
//export const listFormFieldKey = params => { return axios.get(`${base}/mdp/form/formField/listKey`, { params: params }); }; //export const listFormFieldKey = params => { return axios.get(`${base}/mdp/form/formField/listKey`, { params: params }); };

2
src/views/mdp/form/formDef/Index.vue

@ -312,7 +312,7 @@ export default {
toDesignAdd(){ toDesignAdd(){
if(!this.$route.params.expandId){ if(!this.$route.params.expandId){
this.$router.push({path:'/mdp/form/design/'})
this.$router.push({path:'/mdp/form/create'})
}else{ }else{
this.$router.push({path:'/mdp/form/design/'+this.$route.params.expandId}) this.$router.push({path:'/mdp/form/design/'+this.$route.params.expandId})
} }

184
src/views/mdp/form/formField/Index.vue

@ -90,17 +90,29 @@
<mdp-select item-code="request_method" v-model="apiParams.method" placeholder="如 get/post/"></mdp-select> <mdp-select item-code="request_method" v-model="apiParams.method" placeholder="如 get/post/"></mdp-select>
</el-form-item> </el-form-item>
<el-form-item label="请求参数" prop="params"> <el-form-item label="请求参数" prop="params">
<el-input type="textarea" :rows="10" v-model="apiParams.params" placeholder="如 { userid:xxxx }"></el-input>
<el-input type="textarea" :rows="10" v-model="apiParams.params" placeholder='如 { userid:"xxxx" }'></el-input>
</el-form-item> </el-form-item>
<el-form-item label="授权信息" prop="header"> <el-form-item label="授权信息" prop="header">
<el-checkbox v-model="apiParams.useMyLoginToken">使用本系统登陆的token</el-checkbox> <el-checkbox v-model="apiParams.useMyLoginToken">使用本系统登陆的token</el-checkbox>
<el-input v-if="apiParams.useMyLoginToken==false" type="textarea" :rows="10" v-model="apiParams.header" placeholder="格式 如 Authorization:Bearer jwtTokenXXadkfdfdadfd"></el-input>
<el-input v-if="apiParams.useMyLoginToken==false" type="textarea" :rows="10" v-model="apiParams.header" placeholder='格式 如 {Authorization:"Bearer jwtTokenXXadkfdfdadfd"}'></el-input>
</el-form-item>
<el-form-item label="取数函数JS" prop="parseDataFunc">
<el-input type="textarea" :rows="10" v-model="apiParams.parseDataFunc" placeholder="请求结果,默认取res.data.data的数据,如果返回结构不一致,请在此用js写取值逻辑"></el-input>
</el-form-item>
<el-form-item label="例子">
if(res.data.tips.isOk){<br/>
&nbsp;&nbsp;return res.data.data;<br/>
}else{<br/>
&nbsp;&nbsp;return null;<br/>
}<br/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row slot="footer"> <el-row slot="footer">
<el-button @click="$refs['apiDialog'].close()">关闭</el-button> <el-button @click="$refs['apiDialog'].close()">关闭</el-button>
<el-button type="primary" @click="initFormFieldsByAiTable">确定</el-button>
<el-button type="primary" @click="initFormFieldsByApi">确定</el-button>
</el-row> </el-row>
</mdp-dialog> </mdp-dialog>
<mdp-dialog ref="itemDialog" title="选择数据组" width="80%" :modal="false"> <mdp-dialog ref="itemDialog" title="选择数据组" width="80%" :modal="false">
@ -115,10 +127,15 @@
</template> </template>
<script> <script>
import draggable from 'vuedraggable'
import { mapGetters } from 'vuex'
import MdpField from './Field.vue'
export default {
import axios from '@/utils/request'
import axiosNoAuth from '@/utils/requestNoAuth'
import { getToken} from '@/utils/auth'
import draggable from 'vuedraggable'
import { mapGetters } from 'vuex'
import MdpField from './Field.vue'
import {listTableColumn} from '@/api/mdp/form/FormField.js'
export default {
computed: { computed: {
...mapGetters([ ...mapGetters([
'userInfo' 'userInfo'
@ -175,10 +192,11 @@
aiTableInfosStr:'', aiTableInfosStr:'',
apiParams:{ apiParams:{
url:'', url:'',
method:'',
method:'GET',
params:'', params:'',
header:'Authorization:Bearer jwtTokenXXadkfdfdadfd',
headers:'',//{Authorization:"Bearer jwtTokenXXadkfdfdadfd"}
useMyLoginToken:true, useMyLoginToken:true,
parseDataFunc:'',
}, },
filters:{ filters:{
users:[] users:[]
@ -240,22 +258,22 @@
metaItemSelected:{},// metaItemSelected:{},//
itemOptionMngVisible:false,// itemOptionMngVisible:false,//
fieldIds: [ fieldIds: [
{fieldId:'zero',fieldIdCamel:'zero'},
{fieldId:'one',fieldIdCamel:'one'},
{fieldId:'two',fieldIdCamel:'two'},
{fieldId:'three',fieldIdCamel:'three'},
{fieldId:'four',fieldIdCamel:'four'},
{fieldId:'five',fieldIdCamel:'five'},
{fieldId:'six',fieldIdCamel:'six'},
{fieldId:'seven',fieldIdCamel:'seven'},
{fieldId:'eight',fieldIdCamel:'eight'},
{fieldId:'nine',fieldIdCamel:'nine'},
{fieldId:'ten',fieldIdCamel:'ten'},
{fieldId:'eleven',fieldIdCamel:'eleven'},
{fieldId:'twelve',fieldIdCamel:'twelve'},
{fieldId:'thirteen',fieldIdCamel:'thirteen'},
{fieldId:'fourteen',fieldIdCamel:'fourteen'},
{fieldId:'fifteen',fieldIdCamel:'fifteen'}
{id:'zero',fieldId:'zero',fieldIdCamel:'zero'},
{id:'one',fieldId:'one',fieldIdCamel:'one'},
{id:'two',fieldId:'two',fieldIdCamel:'two'},
{id:'three',fieldId:'three',fieldIdCamel:'three'},
{id:'four',fieldId:'four',fieldIdCamel:'four'},
{id:'five',fieldId:'five',fieldIdCamel:'five'},
{id:'six',fieldId:'six',fieldIdCamel:'six'},
{id:'seven',fieldId:'seven',fieldIdCamel:'seven'},
{id:'eight',fieldId:'eight',fieldIdCamel:'eight'},
{id:'nine',fieldId:'nine',fieldIdCamel:'nine'},
{id:'ten',fieldId:'ten',fieldIdCamel:'ten'},
{id:'eleven',fieldId:'eleven',fieldIdCamel:'eleven'},
{id:'twelve',fieldId:'twelve',fieldIdCamel:'twelve'},
{id:'thirteen',fieldId:'thirteen',fieldIdCamel:'thirteen'},
{id:'fourteen',fieldId:'fourteen',fieldIdCamel:'fourteen'},
{id:'fifteen',fieldId:'fifteen',fieldIdCamel:'fifteen'}
], ],
// //
showData: { showData: {
@ -265,6 +283,8 @@
id:'',two:'',three:'',four:'',five:'',six:'',seven:'',eight:'',nine:'',ten:'',lastTime:'',one:'',zero:'',remark:'',formId:'',userid:'',eleven:'',twelve:'',thirteen:'',fourteen:'',fifteen:'',sixteen:'',seventeen:'',eighteen:'',nineteen:'',twenty:'',deptid:'',branchId:'' id:'',two:'',three:'',four:'',five:'',six:'',seven:'',eight:'',nine:'',ten:'',lastTime:'',one:'',zero:'',remark:'',formId:'',userid:'',eleven:'',twelve:'',thirteen:'',fourteen:'',fifteen:'',sixteen:'',seventeen:'',eighteen:'',nineteen:'',twenty:'',deptid:'',branchId:''
}, },
primaryKeys:[], primaryKeys:[],
defaultField:{formId:'formId',id:'22',showStyle:'origin',fieldId:'four',fieldIdCamel:'four',fieldTitle:'布局-列1',isDict:'0',dictCode:'',fieldType:'text',fieldLength:12,defaultValue:'',isMultiple:'0',placeholder:'请输入',isRequired:'0',remark:'属性',extFieldType:'',toFlow:'0',flowFieldId:'',isBizKey:'0',fieldQx:''},
/**end 在上面加自定义属性**/ /**end 在上面加自定义属性**/
}//end return }//end return
},//end data },//end data
@ -311,12 +331,10 @@
let item=this.selectedFields[evt.newIndex]; let item=this.selectedFields[evt.newIndex];
item.isNewAdd='1' item.isNewAdd='1'
var item2=JSON.parse(JSON.stringify(item)) var item2=JSON.parse(JSON.stringify(item))
if(item2.fieldLength==24){
item2.fieldLength=12
}
var noSelectFieldId=this.fieldIds.find(i=>{ var noSelectFieldId=this.fieldIds.find(i=>{
return !this.selectedFields.some(k=>k.fieldId==i.fieldId && k.isNewAdd!='1');
return !this.selectedFields.some(k=>k.id==i.id && k.isNewAdd!='1');
}) })
item2.id=noSelectFieldId.id
item2.fieldId=noSelectFieldId.fieldId item2.fieldId=noSelectFieldId.fieldId
item2.fieldIdCamel=noSelectFieldId.fieldIdCamel item2.fieldIdCamel=noSelectFieldId.fieldIdCamel
item2.isNewAdd='0' item2.isNewAdd='0'
@ -346,15 +364,117 @@
return true; return true;
}, },
initFormFieldsByTable(){ initFormFieldsByTable(){
this.$mdp.getTableInfos({tableName:this.tableName}).then(res=>{
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)
}
})
}else{
this.$notify.error(tips.msg)
}
}) })
}, },
initFormFieldsByAiTable(){ initFormFieldsByAiTable(){
}, },
initFormFieldsByItemCode(item){ initFormFieldsByItemCode(item){
this.$mdp.ajaxGetDictOptions(item.itemCode,{}).then(res=>{
var tips = res.tips
if(tips.isOk){
var options=res.data.options
options.forEach(o=>{
var field=this.transOptionToField(o)
if(field){
this.selectedFields.push(field)
}
})
}else{
this.$notify.error(tips.msg)
}
})
},
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)
}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;
}
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'})
}
})
},
transColumnToField(o){
var field={formId:'formId',id:o.columnName,showStyle:'origin',fieldId:o.columnName,fieldIdCamel:o.camelsColumnName,fieldTitle:o.chinaName,isDict:'0',dictCode:'',fieldType:'text',fieldLength:12,defaultValue:'',isMultiple:'0',placeholder:'请输入'+o.name,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
return field;
},
transOptionToField(o){
var field={formId:'formId',id:o.id,showStyle:'origin',fieldId:o.id,fieldIdCamel:o.id,fieldTitle:o.name,isDict:'0',dictCode:'',fieldType:'text',fieldLength:12,defaultValue:'',isMultiple:'0',placeholder:'请输入'+o.name,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
return field;
},
apiParamsToAxiosParams(apiParams,env){
var axiosObj={url:apiParams.url,method:apiParams.method,headers:{}}
//
if(apiParams.params && apiParams.params.indexOf('{')>=0){
axiosObj.params=JSON.parse(apiParams.params)
}
//header
if(apiParams.useMyLoginToken==true){
axiosObj.headers['Authorization'] = 'Bearer '+getToken()
}else if(apiParams.headers && apiParams.headers.indexOf("{")>=0){
axiosObj.headers=JSON.parse(apiParams.headers)
}else {
axiosObj.headers={}
}
return axiosObj
} }
/**end 在上面加自定义方法**/ /**end 在上面加自定义方法**/
@ -373,7 +493,7 @@
} }
}//end mounted }//end mounted
}
}
</script> </script>

Loading…
Cancel
Save