| | |
| | | <template> |
| | | <el-dialog v-dialogDrag |
| | | :title="paramVOS.title" |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :width="width" |
| | | :style="'height:'+height || 'auto'" |
| | | :fullscreen="fullscreen" |
| | | :append-to-body="true" |
| | | class="avue-dialog avue-dialog--top" |
| | | top="0" |
| | | class="avue-dialog" |
| | | :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" |
| | | :key="'dialog-'+paramVOS.form" |
| | | :span="span" |
| | | :formItems="formItems" |
| | | :formData="form"> |
| | | </basic-form> |
| | | <ui-view ref="uiViewRef" v-else-if="paramVOS.context" |
| | | :key="'AddEditDialog-'+type" |
| | | :btmType="paramVOS.type" |
| | | :context="paramVOS.context" |
| | | :inDialog="true" |
| | | :sourceData="sourceData" |
| | | :dataStore="dataStore" |
| | | :paramVOS="paramVOS" |
| | | ></ui-view> |
| | | <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" v-if="paramVOS.form">重 置</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import uiView from "@/views/base/UIContentViewerInDialog" |
| | | import {dataForm} from "@/api/base/ui"; |
| | | import {getFormDefineById,dataForm} from "@/api/base/ui"; |
| | | import {addSave,editSave} from "@/api/base/actions" |
| | | |
| | | export default { |
| | | name: "AddEditDialog", |
| | |
| | | paramVOS: { |
| | | type: Object, |
| | | default: {} |
| | | }, |
| | | width: { |
| | | type: String, |
| | | default:'70%' |
| | | }, |
| | | height: { |
| | | type: String, |
| | | default:'500px' |
| | | }, |
| | | } |
| | | }, |
| | | data(){ |
| | | return { |
| | | visible:false |
| | | type:"add", |
| | | visible:false, |
| | | span:12, |
| | | formItems:[], |
| | | form:{} |
| | | } |
| | | }, |
| | | 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() { |
| | | |
| | | }, |
| | | watch: { |
| | | sourceData: { |
| | | handler(val) { |
| | | if (this.paramVOS.form) { |
| | | this.onLoad(); |
| | | } |
| | | }, |
| | | deep: true, |
| | | immediate: true |
| | | }, |
| | | }, |
| | | methods: { |
| | | dialogClose() { |
| | | this.visible = false; |
| | | }, |
| | | onLoad: function () { |
| | | if (Object.keys(this.sourceData).length > 0 && this.isShow) { |
| | | if (Object.keys(this.sourceData).length > 0) { |
| | | this.loading = true; |
| | | dataForm(this.params).then(res => { |
| | | this.form = res.data.obj; |
| | | this.loading = false; |
| | | getFormDefineById(this.paramVOS.type,this.paramVOS.form).then(result => { |
| | | this.formItems=result.data.obj.items; |
| | | this.span=result.data.obj.columnOneRow?(24/result.data.obj.columnOneRow) : 12; |
| | | |
| | | if (this.paramVOS.initvalue) { |
| | | this.form=this.paramVOS.initvalue; |
| | | } |
| | | if(this.type=="edit"){ |
| | | //加载表单数据 |
| | | dataForm(this.params,this.paramVOS.getdataurl,this.paramVOS.getdatamethod).then(res => { |
| | | this.form = res.data.obj; |
| | | this.loading = false; |
| | | }).catch(error => { |
| | | this.$message.error(error); |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | }).catch(error => { |
| | | this.$message.error(error); |
| | | this.loading = false; |
| | | }); |
| | | |
| | | } |
| | | }, |
| | | saveHandler() { |
| | | this.dialogClose(); |
| | | 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({}); |
| | | } |
| | | } |
| | | |
| | | }, |
| | | escHandler() { |
| | | this.dialogClose(); |
| | | 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.resetValue(); |
| | | if (this.paramVOS.form) { |
| | | this.$refs.formRef.resetFields(); |
| | | } |
| | | } |
| | | } |
| | | } |