| | |
| | | */ |
| | | export const doAdd = (options,callback)=> { |
| | | const paramVOS = options.paramVOS; |
| | | if (!paramVOS['form'] && !paramVOS['context']&& !paramVOS['content']) { |
| | | if (!paramVOS['form'] && !paramVOS['context'] && !paramVOS['content']) { |
| | | Vue.prototype.$message.error("æé®é
ç½®ä¸æ£ç¡®"); |
| | | return false; |
| | | } |
| | | |
| | | const dialogConstructor = Vue.extend(AddEditDialog); |
| | | let instance = new dialogConstructor(); |
| | | instance.props={ |
| | | sourceData:options.sourceData, |
| | | dataStore:options.dataStore, |
| | | paramVOS:paramVOS |
| | | } |
| | | const vm = instance.$mount(); |
| | | vm.visible=true; |
| | | vm.dialogClose=function (){ |
| | | instance.sourceData = options.sourceData; |
| | | instance.dataStore = options.dataStore; |
| | | instance.paramVOS = paramVOS |
| | | |
| | | instance.type = 'add'; |
| | | instance.dialogClose = function () { |
| | | vm.visible = false; |
| | | document.body.removeChild(vm.$el); |
| | | instance.$destroy(); |
| | | instance = null; |
| | | }; |
| | | vm.prototype.saveCallback=function (){ |
| | | if (callback) { |
| | | callback(options); |
| | | } |
| | | if (callback) { |
| | | instance.saveCallback = callback(options); |
| | | } |
| | | let vm = instance.$mount(); |
| | | document.body.appendChild(vm.$el); |
| | | instance.visible = true; |
| | | |
| | | } |
| | | /** |
| | |
| | | |
| | | if(button.url && button.url!='null'){ |
| | | //æé
ç½®actionè·¯å¾ï¼ä½¿ç¨è·¯å¾å¯¹åºçjs |
| | | let buttonParse = parseEventByUrl(button.url,options,false); |
| | | import("../"+buttonParse.jsPath+".js").then(module => { |
| | | import("../"+button.url+".js").then(module => { |
| | | module.doAction(options); |
| | | }) |
| | | }else { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/router/axios'; |
| | | |
| | | // æ°å¢ |
| | | export const addSave = (url,method,data) => { |
| | | url='/api/'+(url||"uiDataController/addSave"); |
| | | return request({ |
| | | url: url, |
| | | method: method || 'post', |
| | | data |
| | | }) |
| | | } |
| | | // ä¿®æ¹ |
| | | export const edit = (data) => { |
| | | return request({ |
| | | url: '/api/uiDataController/edit-save', |
| | | method: 'put', |
| | | data |
| | | }) |
| | | } |
| | | // å é¤ |
| | | export const del = (data) => { |
| | | let url = '/api/uiDataController/remove' |
| | | return request({ |
| | | url, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | |
| | | :title="paramVOS.title" |
| | | :visible.sync="visible" |
| | | :width="width" |
| | | :style="'height:'+height || 'auto'" |
| | | :fullscreen="paramVOS.content || paramVOS.context" |
| | | :append-to-body="true" |
| | | class="avue-dialog avue-dialog--top" |
| | | :destroy-on-close="true" |
| | | @close="dialogClose"> |
| | | dialog |
| | | <basic-form ref="formRef" v-if="paramVOS.form"></basic-form> |
| | | <ui-view ref="uiViewRef" v-else-if="paramVOS.content || paramVOS.context"></ui-view> |
| | | <div v-if="paramVOS.form" class="avue-dialog__footer"> |
| | | <el-button type="primary" @click="saveHandler">ä¿ å</el-button> |
| | | <el-button @click="escHandler">å æ¶</el-button> |
| | | <el-button @click="resetValue">é ç½®</el-button> |
| | | <basic-form ref="formRef" v-if="paramVOS.form"> |
| | | </basic-form> |
| | | <ui-view ref="uiViewRef" v-else-if="paramVOS.content || paramVOS.context" |
| | | :btmType="paramVOS.type" |
| | | :context="paramVOS.context" |
| | | :inDialog="true" |
| | | :key="'AddEditDialog-'+type" |
| | | :sourceData="sourceData" |
| | | :dataStore="dataStore" |
| | | :paramVOS="paramVOS" |
| | | ></ui-view> |
| | | <div slot="footer" class="dialog-footer avue-dialog__footer"> |
| | | <el-button type="primary" plain size="small" @click="saveHandler">ä¿ å</el-button> |
| | | <el-button size="small" @click="dialogClose">å æ¶</el-button> |
| | | <el-button size="small" @click="resetValue">é ç½®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | <script> |
| | | import uiView from "@/views/base/UIContentViewerInDialog" |
| | | import {dataForm} from "@/api/base/ui"; |
| | | import {addSave} from "@/api/base/actions" |
| | | |
| | | export default { |
| | | name: "AddEditDialog", |
| | |
| | | }, |
| | | width: { |
| | | type: String, |
| | | default:'70%' |
| | | }, |
| | | height: { |
| | | type: String, |
| | | default:'500px' |
| | | }, |
| | | default:'60%' |
| | | } |
| | | }, |
| | | data(){ |
| | | return { |
| | | type:"add", |
| | | visible:false |
| | | } |
| | | }, |
| | | computed:{ |
| | | title(){ |
| | | return this.paramVOS.title || (this.type=='add'?'æ·»å ':'ä¿®æ¹') |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | watch: { |
| | | sourceData: { |
| | | handler(val) { |
| | | if (this.paramVOS.form) { |
| | | this.onLoad(); |
| | | } |
| | | }, |
| | | deep: true, |
| | | immediate: true |
| | | }, |
| | | }, |
| | | methods: { |
| | | dialogClose() { |
| | |
| | | } |
| | | }, |
| | | saveHandler() { |
| | | this.dialogClose(); |
| | | }, |
| | | escHandler() { |
| | | this.dialogClose(); |
| | | this.$refs.formRef.validate((valid, done) => { |
| | | if (valid) { |
| | | addSave(this.paramVOS.url,this.paramVOS.method,this.form).then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "å建æå!" |
| | | }); |
| | | if(this.saveCallback){ |
| | | this.saveCallback(); |
| | | } |
| | | this.dialogClose(); |
| | | }).error((e) => { |
| | | this.$message.error(e||"å建失败") |
| | | }); |
| | | |
| | | } else { |
| | | |
| | | } |
| | | }); |
| | | }, |
| | | resetValue() { |
| | | this.$refs.formRef.resetValue(); |
| | | this.$refs.formRef.resetFields(); |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <!--UIä¸ä¸æçå±ç¤ºå¨--> |
| | | <div style="height:calc(100% - 4px);min-width:1200px" > |
| | | <div style="height:calc(100% - 4px);" > |
| | | <el-header v-if="uiDefineVO.northAreas && uiDefineVO.northAreas.length>0"> |
| | | <UIContentArea :key="'northArea-'+uiDefineVO.oid" |
| | | :uiBtmType="btmType" |
| | |
| | | </UIContentArea> |
| | | </el-aside> |
| | | <el-container style="height: 100%;display: block"> |
| | | <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'min-height: 300px;height: '+centerHeight"> |
| | | <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'min-height: 200px;height: '+centerHeight"> |
| | | <UIContentArea :key="'centerArea-'+uiDefineVO.oid" |
| | | :uiBtmType="btmType" |
| | | :uiContext="context" |
| | |
| | | </UIContentArea> |
| | | </el-main> |
| | | <el-footer v-if="uiDefineVO.southAreas && uiDefineVO.southAreas.length>0" height="35%" |
| | | style="min-height: 150px;"> |
| | | style="min-height: 100px;"> |
| | | <UIContentArea :key="'southArea-'+uiDefineVO.oid" |
| | | :uiBtmType="btmType" |
| | | :uiContext="context" |