From c4d9e7a20dac267c5496ad3586c5053be279a17a Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 26 四月 2024 20:09:59 +0800 Subject: [PATCH] 添加action,表单组件 --- Source/ProjectWeb/src/components/actions/AddEditDialog.vue | 115 ++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 69 insertions(+), 46 deletions(-) diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue index 54343ca..a051c80 100644 --- a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue +++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue @@ -1,31 +1,33 @@ <template> <el-dialog v-dialogDrag - :title="paramVOS.title" + :title="title" :visible.sync="visible" :width="width" - :fullscreen="paramVOS.content || paramVOS.context" + :fullscreen="fullscreen" :append-to-body="true" - class="avue-dialog avue-dialog--top" + top="0" + class="avue-dialog" :destroy-on-close="true" @close="dialogClose"> <basic-form ref="formRef" v-if="paramVOS.form" + :key="'dialog-'+paramVOS.form" :span="span" :formItems="formItems" :formData="form"> </basic-form> - <ui-view ref="uiViewRef" v-else-if="paramVOS.content || paramVOS.context" + <ui-view ref="uiViewRef" v-else-if="paramVOS.context" + :key="'AddEditDialog-'+type" :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"> + <div 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> + <el-button size="small" @click="resetValue" v-if="paramVOS.form">閲� 缃�</el-button> </div> </el-dialog> </template> @@ -52,10 +54,6 @@ paramVOS: { type: Object, default: {} - }, - width: { - type: String, - default:'60%' } }, data(){ @@ -70,6 +68,20 @@ computed:{ title(){ return this.paramVOS.title || (this.type=='add'?'娣诲姞':'淇敼') + }, + width(){ + return this.paramVOS.width || "60%" + }, + height(){ + return this.paramVOS.height || "500px" + }, + fullscreen(){ + if(this.paramVOS.width || this.paramVOS.height){ + return false; + }else if(this.paramVOS.form){ + return false; + } + return false; } }, created() { @@ -117,49 +129,60 @@ } }, saveHandler() { - this.$refs.formRef.validate((valid, done) => { - if (valid) { - if(this.type=="add"){ - addSave(this.form,this.paramVOS.url,this.paramVOS.method).then(() => { - this.$message({ - type: "success", - message: "淇濆瓨鎴愬姛!" - }); - if(this.saveCallback){ - this.saveCallback(); - } - this.dialogClose(); - }).error((e) => { - this.$message.error(e||"淇濆瓨澶辫触") - }); - }else{ - editSave(this.form,this.paramVOS.url,this.paramVOS.method).then(() => { - this.$message({ - type: "success", - message: "淇敼鎴愬姛!" - }); - if(this.saveCallback){ - this.saveCallback(); - } - this.dialogClose(); - }).error((e) => { - this.$message.error(e||"淇敼澶辫触") - }); - } - } else { + if(this.paramVOS.form){ + this.$refs.formRef.validate((valid, done) => { + if (valid) { + this.saveValue(this.form) + } else { + } + }); + }else{ + //this.$refs.uiViewRef. + if(this.saveCallback){ + this.saveCallback({}); } - }); + } + + }, + saveValue(savedata){ + if(this.type=="add"){ + addSave(savedata,this.paramVOS.url,this.paramVOS.method).then(() => { + this.$message({ + type: "success", + message: "淇濆瓨鎴愬姛!" + }); + if(this.saveCallback){ + this.saveCallback(savedata); + } + this.dialogClose(); + }).error((e) => { + this.$message.error(e||"淇濆瓨澶辫触") + }); + }else{ + editSave(savedata,this.paramVOS.url,this.paramVOS.method).then(() => { + this.$message({ + type: "success", + message: "淇敼鎴愬姛!" + }); + if(this.saveCallback){ + this.saveCallback(savedata); + } + this.dialogClose(); + }).error((e) => { + this.$message.error(e||"淇敼澶辫触") + }); + } }, resetValue() { - this.$refs.formRef.resetFields(); + if (this.paramVOS.form) { + this.$refs.formRef.resetFields(); + } } } } </script> <style scoped> -.avue-dialog__footer{ - margin-bottom: 20px; -} + </style> -- Gitblit v1.9.3