Browse Source

Merge branch 'mdp-lcode-ui-web-2.0.0-qqkj-inner'

master
陈裕财 2 years ago
parent
commit
8cc6ddb236
  1. 6
      README.md
  2. 6
      src/api/mdp/lcode/dev.js
  3. 7
      src/api/mdp_pub/mdp_api_base.js
  4. 114
      src/views/mdp/lcode/formDef/Form.vue
  5. 7
      src/views/mdp/lcode/formDef/Index.vue

6
README.md

@ -16,6 +16,12 @@
👉 <a target="_blank" href="https://maimengcloud.com/lcode/m1/">https://maimengcloud.com</a> 👈
</p>
## 快速导航
- [唛盟-后端开发底座](https://gitee.com/qingqinkj/mdp-core)
- [前端组件](https://e.gitee.com/qingqinkj/repos/qingqinkj/mdp-lcode-ui-web/sources)
- [后端服务](https://e.gitee.com/qingqinkj/repos/qingqinkj/mdp-lcode-backend/sources)
- [体验环境](https://maimengcloud.com/lcode/m1/)
登陆界面上选择演示账号登陆或者直接扫码登陆,无须注册
## 📢 简介[唛盟低代码开发平台mdp-lcode](/)
唛盟低代码开发平台简称唛盟或者mdp.

6
src/api/mdp/lcode/dev.js

@ -5,4 +5,8 @@ import axios from '@/utils/request'
let base = config.getLcodeContext();
//在线生成crud代码并下载
export const crudCodeGen = params => { return axios.get(`${base}/mdp/dev/code/gen`, {params:params}); };
export const crudCodeGen = params => { return axios.get(`${base}/mdp/dev/code/gen`, {params:params}); };
//查询数据源列表
export const dataSourceList = params => { return axios.get(`${base}/mdp/dev/db/dataSource/list`, {params:params}); };

7
src/api/mdp_pub/mdp_api_base.js

@ -69,6 +69,7 @@ clearDictCache:function(itemCode,params){
**/
ajaxGetDictOptions:function(itemCode, params)
{
debugger;
var codeKey=funcs.getCodeKey(itemCode,params);
return new Promise((resolve,reject)=>{
var data=funcs.getDictOptionsFromCache(codeKey,itemCode,params)
@ -108,7 +109,11 @@ ajaxGetDictOptions:function(itemCode, params)
sessionStorage.setItem(lockKey,"1")
funcs.getDicts(params).then(res=>{
if(res.data.tips && res.data.tips.isOk && res.data.data && res.data.data.length>0){
if(res.data.tips && res.data.tips.isOk){
if(!res.data.data || res.data.data.length==0){
resolve({tips:res.data.tips,data:{}})
return;
}
var item=res.data.data[0]
if(item.options && item.options.length>0){
item.options.forEach(k=>{

114
src/views/mdp/lcode/formDef/Form.vue

@ -20,7 +20,7 @@
</slot>
<mdp-dialog ref="formSetDialog">
<template v-slot="{visible,data,dialog}">
<el-form v-model="editForm" label-width="120px" label-position="right">
<el-form :model="editForm" label-width="120px" label-position="right" ref="editFormRef">
<el-form-item label="表单名称">
<el-input v-model="editForm.formName"></el-input>
</el-form-item>
@ -36,24 +36,32 @@
<el-form-item label="主键" prop="pks">
<mdp-select show-style="tag" :multiple="true" v-model="editForm.pks" :plus-options="pkOptions" :props="{id:'id',name:'title'}" split="," @change2="onPksChange"></mdp-select>
</el-form-item>
<span v-if="['2','3'].some(k=>k==editForm.dataType)">
<el-form-item label="表名">
<span v-if="['2'].some(k=>k==editForm.dataType)">
<el-form-item label="表名" prop="tableName" :rules="{required:true,message:'此项必填',trigger:'change'}">
<el-input v-model="editForm.tableName" placeholder="请保持与数据库表名一致"></el-input>
</el-form-item>
<el-form-item label="存储字段">
<el-form-item label="数据存储字段">
<el-input v-model="editForm.dataField" placeholder="非驼峰命名,默认ext_infos对应数据库字段ext_infos"></el-input>
</el-form-item>
<el-form-item label="数据库用户" v-if="editForm.dataType=='3'">
<el-input v-model="editForm.tableOwner" ></el-input>
</el-form-item>
</el-form-item>
</span>
<span v-if="['3'].some(k=>k==editForm.dataType)">
<el-form-item label="表名" prop="tableName" :rules="{required:true,message:'此项必填',trigger:'change'}">
<el-input v-model="editForm.tableName" placeholder="请保持与数据库表名一致"></el-input>
</el-form-item>
<el-form-item label="数据源名称" :rules="{required:true,message:'此项必填',trigger:'change'}">
<mdp-select v-model="editForm.tableOwner" :load-fun="dataSourceList" ></mdp-select>
</el-form-item>
<el-form-item label="建表方式" :rules="{required:true,message:'此项必填',trigger:'change'}">
<mdp-select v-model="editForm.ctType" item-code="lcode_create_table_type"></mdp-select>
</el-form-item>
</span>
<mdp-form-expand v-if="showExpand" label-width="120px" label-position="right" v-model="editForm.extInfos" :expand-id="expandId"></mdp-form-expand>
</el-form>
</template>
<template #footer="{visible,data,dialog}">
<el-row slot="footer" class="footer">
<el-button @click="dialog.close()">关闭</el-button>
<el-button @click="$refs['formSetDialog'].close()">关闭</el-button>
<el-button type="primary" @click="saveSubmit">确认</el-button>
</el-row>
</template>
@ -72,6 +80,7 @@ import { mapGetters } from 'vuex'
import { MdpFormMixin } from '@/components/mdp-ui/mixin/MdpFormMixin.js';
import FormField from '../formField/Index'
import MdpSource from '../source/Index'
import {dataSourceList} from '@/api/mdp/lcode/dev'
export default {
name:'formDefForm',
mixins:[MdpFormMixin],
@ -123,7 +132,7 @@ export default {
]
},
editForm: {
id:'',tableName:'',tableOwner:'',isCreateTable:'0',formName:'',userid:'',deptid:'',formType:'',isTemplate:'',bizType:'',ctime:'',branchId:'',categoryId:'',tagIds:'',tagNames:'',username:'',deptName:'',groupsJson:'',pks:'',dataType:'1',dataField:'extInfos'
id:'',tableName:'',tableOwner:'',isCreateTable:'0',formName:'',userid:'',deptid:'',formType:'',isTemplate:'',bizType:'',ctime:'',branchId:'',categoryId:'',tagIds:'',tagNames:'',username:'',deptName:'',groupsJson:'',pks:'',dataType:'1',dataField:'ext_infos',ctType:'2'
},
//()
apis:{
@ -138,6 +147,7 @@ export default {
}
},
methods: {
dataSourceList,
//(mounted+onOpen)
initCurrData(){
if(!this.formId){
@ -201,49 +211,57 @@ export default {
return true;
},
saveSubmit: function () {
if(this.editForm.formName==''){
this.$notify({position:'bottom-left',showClose:true,message: '表单名称不能为空', type: 'error' });
return;
}
var formFields=this.$refs.formFields.getFieldList();
if(formFields.length==0 ){
this.$notify({position:'bottom-left',showClose:true,message: '最少需要定义一个字段', type: 'error' });
return;
}
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.load.edit=true
let formDef = Object.assign({}, this.editForm);
if(this.currOpType=='add'){
formDef.deptid=this.userInfo.deptid
formDef.branchId=this.userInfo.branchId
this.$refs['editFormRef'].validate(valid=>{
if(valid==false){
this.$notify({position:'bottom-left',showClose:true,message: '表单验证不通过', type: 'error' });
return;
}
this.$refs.formFields.setPrimaryKeys();
formFields.forEach((i,index)=>{i.seq=index});
var params={formDef:formDef,formFields:formFields};
if(!this.preParamCheck(params)){
this.load.edit=false
if(this.editForm.formName==''){
this.$notify({position:'bottom-left',showClose:true,message: '表单名称不能为空', type: 'error' });
return;
}
var func=this.apis.add
if(this.currOpType=='edit'){
func=this.apis.edit
var formFields=this.$refs.formFields.getFieldList();
if(formFields.length==0 ){
this.$notify({position:'bottom-left',showClose:true,message: '最少需要定义一个字段', type: 'error' });
return;
}
func(params).then((res) => {
this.load.edit=false
var tips=res.data.tips;
if(tips.isOk){
this.$mdp.removeFormFieldsCache(formDef.id)
this.currOpType='edit'
var data=res.data.data
Object.assign(this.editForm,data.formDef)
this.formFields=data.formFields
this.afterSubmit(res,tips.isOk,this.currOpType);
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.load.edit=true
let formDef = Object.assign({}, this.editForm);
if(this.currOpType=='add'){
formDef.deptid=this.userInfo.deptid
formDef.branchId=this.userInfo.branchId
}
this.$refs.formFields.setPrimaryKeys();
formFields.forEach((i,index)=>{i.seq=index});
var params={formDef:formDef,formFields:formFields};
if(!this.preParamCheck(params)){
this.load.edit=false
return;
}
var func=this.apis.add
if(this.currOpType=='edit'){
func=this.apis.edit
}
this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err =>this.load.edit=false);
});
func(params).then((res) => {
this.load.edit=false
var tips=res.data.tips;
if(tips.isOk){
this.$mdp.removeFormFieldsCache(formDef.id)
this.currOpType='edit'
var data=res.data.data
Object.assign(this.editForm,data.formDef)
this.formFields=data.formFields
this.afterSubmit(res,tips.isOk,this.currOpType);
}
this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err =>this.load.edit=false);
});
})
},
goToFormDefIndex(){
this.$router.push({path:'/mdp/lcode/index'})

7
src/views/mdp/lcode/formDef/Index.vue

@ -117,11 +117,6 @@
<mdp-input show-style="tag" v-model="scope.row.tableOwner" :maxlength="20" @change="editSomeFields(scope.row,'tableOwner',$event)" :disabled="!editable || disabledJudge('tableOwner')"/>
</template>
</el-table-column>
<el-table-column prop="isCreateTable" label="是否已经创建库表" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('isCreateTable')">
<template slot-scope="scope">
<mdp-input show-style="tag" v-model="scope.row.isCreateTable" :maxlength="1" @change="editSomeFields(scope.row,'isCreateTable',$event)" :disabled="!editable || disabledJudge('isCreateTable')"/>
</template>
</el-table-column>
<el-table-column prop="pks" label="主键列表" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('pks')">
<template slot-scope="scope">
<mdp-input show-style="tag" v-model="scope.row.pks" :maxlength="255" @change="editSomeFields(scope.row,'pks',$event)" :disabled="!editable || disabledJudge('pks')"/>
@ -136,7 +131,7 @@
<el-button :disabled="disabledJudge('editBtn') || !checkBtnQx('editBtn',menuDefId) || !checkFormDefQx(scope.row,'editBtn') " type="primary" @click="toDesign(scope.row)" icon="el-icon-edit" title="修改一条数据">设计</el-button>
<el-button :disabled="disabledJudge('delBtn') || !checkBtnQx('delBtn',menuDefId) || !checkFormDefQx(scope.row,'editBtn') " type="danger" @click="handleDel2(scope.row,scope.$index)" icon="el-icon-delete" title="删除一条数据"/>
<el-button :disabled="disabledJudge('editBtn') || !checkBtnQx('editBtn',menuDefId) || !checkFormDefQx(scope.row,'editBtn') " @click="$refs['formQxDialog'].open({formData:scope.row})">权限</el-button>
<el-button v-if="!scope.row.dataType||scope.row.dataType=='1'" @click="openRoute({formId:scope.row.id,title:scope.row.formName})">数据</el-button>
<el-button @click="openRoute({formId:scope.row.id,title:scope.row.formName})">数据</el-button>
</template>

Loading…
Cancel
Save