From f5f8aaedd1d488fb20a293182dd7a40e2e82096e Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期二, 30 四月 2024 12:20:44 +0800 Subject: [PATCH] 添加action --- Source/ProjectWeb/src/components/actions/AddEditDialog.vue | 117 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 82 insertions(+), 35 deletions(-) diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue index 3d288d5..11347ab 100644 --- a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue +++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue @@ -15,7 +15,8 @@ :style="fullscreen?'':'height:'+height" :isEdit="true" :formItems="formItems" - :formData="form"> + :formData="form" + @getFormData="getFormData"> </basic-form> <ui-view ref="uiViewRef" v-else-if="paramVOS.context" :key="'AddEditDialog-'+type" @@ -27,9 +28,11 @@ :sourceData="sourceData" :dataStore="dataStore" :paramVOS="paramVOS" + @getFormData="getFormData" ></ui-view> <div v-if="showSave" class="dialog-footer avue-dialog__footer"> - <el-button type="primary" plain size="small" @click="saveHandler">淇� 瀛�</el-button> + <el-button type="primary" plain size="small" @click="formSave" v-if="paramVOS.form">淇� 瀛�</el-button> + <el-button type="primary" plain size="small" @click="contextSave" v-else>淇� 瀛�</el-button> <el-button size="small" @click="dialogClose">鍙� 娑�</el-button> <el-button size="small" @click="resetValue" v-if="paramVOS.form">閲� 缃�</el-button> </div> @@ -38,6 +41,7 @@ <script> import uiView from "@/views/base/UIContentViewerInDialog" +import {parseEventByUrl} from "@/actions/base/BaseAction" import {getFormDefineById,dataForm} from "@/api/base/ui"; import {addSave,editSave} from "@/api/base/actions" import {validatenull} from "@/util/validate" @@ -68,7 +72,10 @@ showSave:this.paramVOS.customBtn || true, span:12, formItems:[], - form:{} + form:{}, + btmDefaultKeys : ['oid', 'id', 'name', 'description', 'revisionoid', 'nameoid', 'btmname', 'lastr', 'firstr', 'lastv', 'firstv', 'creator', 'createtime', 'lastModifier', 'lastmodifytime', 'revisionrule', 'revisionseq', 'revisionvalue', 'versionrule', 'versionseq', 'versionvalue', 'lcstatus', 'ts', 'owner', 'checkinby', 'checkintime', 'checkoutby', 'checkouttime', 'copyfromversion', 'secretgrade'], + linkDefaultKeys :['oid','creator','createtime','lastmodifier','lastmodifytime','f_oid','foid','f_revisionoid','frevisionoid','f_nameoid','fnameoid','f_btmname','fbtmname','t_oid','toid','t_revisionoid','trevisionoid','t_nameoid','tnameoid','t_btmname','tbtmname','ts'] + } }, computed:{ @@ -160,57 +167,97 @@ } }, - saveHandler() { - if(this.paramVOS.form){ - this.$refs.formRef.validate((valid, done) => { - if (valid) { - this.saveValue(this.form) - } else { - - } - }); - }else{ - //this.$refs.uiViewRef. - debugger; - if(this.saveCallback){ - this.saveCallback({}); - } + contextSave(){ + debugger; + if(this.saveCallback){ + this.saveCallback({}); } - }, - saveValue(savedata){ - if(this.type=="add"){ - addSave(savedata,this.paramVOS.url,this.paramVOS.method).then(() => { - this.$message({ + formSave() { + let that=this; + this.$refs.formRef.validate((valid, done) => { + if (valid) { + if (this.paramVOS.savebeforeevent) { + var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent,null,null,'doAction'); + import("../"+urlobj.jsPath+".js").then(module => { + module[urlobj.methodName]({ + paramVOS: this.paramVOS, + dataStore: this.dataStore, + sourceData:this.sourceData + },that.formSaveHandle); + }) + } else { + that.formSaveHandle(); + } + } else { + return false; + } + }); + }, + formSaveHandle(){ + let that=this; + let formValues = this.getValues(); + if(formValues.otherValue.releaseFileOids){ + formValues.otherValue.releaseFileOids=formValues.otherValue.releaseFileOids.split(','); + } + if (!formValues.defaultValues.btmname) { + formValues.defaultValues.btmname = this.paramVOS.type; + } + let datas = { + formDefineId: this.paramVOS.form, + preEvent: this.paramVOS.preevent, + afterEvent: this.paramVOS.afterevent, + beforeServerEvent: this.paramVOS.beforeserverevent, + afterServerEvent: this.paramVOS.afterserverevent, + releaseFileOids: formValues.otherValue.releaseFileOids||[], + data: formValues.otherValue + } + Object.assign(datas, formValues.defaultValues); + if(that.type=="add"){ + addSave(datas,that.paramVOS.url,that.paramVOS.method).then(() => { + that.$message({ type: "success", message: "淇濆瓨鎴愬姛!" }); - if(this.saveCallback){ - this.saveCallback(savedata); + if(that.saveCallback){ + that.saveCallback(that.form); } - this.dialogClose(); - }).error((e) => { - this.$message.error(e||"淇濆瓨澶辫触") + that.dialogClose(); }); }else{ - editSave(savedata,this.paramVOS.url,this.paramVOS.method).then(() => { - this.$message({ + editSave(that.form,that.paramVOS.url,that.paramVOS.method).then(() => { + that.$message({ type: "success", message: "淇敼鎴愬姛!" }); - if(this.saveCallback){ - this.saveCallback(savedata); + if(that.saveCallback){ + that.saveCallback(that.form); } - this.dialogClose(); - }).error((e) => { - this.$message.error(e||"淇敼澶辫触") + that.dialogClose(); }); + } + }, + getValues(){ + let defaultValues = {}, otherValue = {}; + for (var key in this.form) { + if (this.btmDefaultKeys.indexOf(key.toLowerCase()) > -1) { + defaultValues[key] = this.form[key]; + } else { + otherValue[key] = this.form[key]; + } + } + return { + defaultValues:defaultValues, + otherValue:otherValue } }, resetValue() { if (this.paramVOS.form) { this.$refs.formRef.resetFields(); } + }, + getFormData(form) { + this.form = form; } } } -- Gitblit v1.9.3