| | |
| | | <template> |
| | | <el-dialog v-dialogDrag |
| | | :append-to-body="true" |
| | | :close-on-click-modal="false" |
| | | :destroy-on-close="true" |
| | | :fullscreen="fullscreen" |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :width="width" |
| | | :fullscreen="fullscreen" |
| | | :append-to-body="true" |
| | | top="0" |
| | | class="avue-dialog" |
| | | :destroy-on-close="true" |
| | | :close-on-click-modal="false" |
| | | top="0" |
| | | @close="dialogClose"> |
| | | <basic-form ref="formRef" v-if="paramVOS.form" |
| | | :key="'dialog-'+paramVOS.form" |
| | | <basic-form v-if="paramVOS.form" :key="'dialog-'+paramVOS.form" |
| | | ref="formRef" |
| | | v-loading="loading" |
| | | :formData="form" |
| | | :formItems="formItems" |
| | | :initValue="paramVOS.initvalue" |
| | | :isEdit="true" |
| | | :span="span" |
| | | :style="fullscreen?'':'height:'+height" |
| | | :isEdit="true" |
| | | :formItems="formItems" |
| | | :formData="form" |
| | | :initValue="paramVOS.initvalue" |
| | | :uploadattachment="paramVOS.uploadattachment || false" |
| | | @getFormData="getFormData"> |
| | | </basic-form> |
| | | <ui-view ref="uiViewRef" v-else-if="paramVOS.context" |
| | | :key="'AddEditDialog-'+type" |
| | | :style="fullscreen?'':'height:'+height" |
| | | :btmType="paramVOS.type" |
| | | :context="paramVOS.context" |
| | | :inDialog="true" |
| | | :canEdit="true" |
| | | <ui-view v-else-if="paramVOS.context" :key="'AddEditDialog-'+type" |
| | | ref="uiViewRef" |
| | | :actionType="type" |
| | | :sourceData="sourceData" |
| | | :btmType="paramVOS.type" |
| | | :canEdit="true" |
| | | :context="paramVOS.context" |
| | | :dataStore="dataStore" |
| | | :inDialog="true" |
| | | :paramVOS="paramVOS" |
| | | :sourceData="sourceData" |
| | | :style="fullscreen?'':'height:'+height" |
| | | @getFormData="getFormData" |
| | | ></ui-view> |
| | | <div v-if="showSave" class="dialog-footer avue-dialog__footer"> |
| | | <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 v-if="paramVOS.form" plain size="small" type="primary" @click="formSave">保 存</el-button> |
| | | <el-button v-else plain size="small" type="primary" @click="contextSave">保 存</el-button> |
| | | <el-button size="small" @click="dialogClose">取 消</el-button> |
| | | <el-button size="small" @click="resetValue" v-if="paramVOS.form">重 置</el-button> |
| | | <el-button v-if="paramVOS.form" size="small" @click="resetValue">重 置</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | <script> |
| | | import uiView from "@/views/base/UIContentViewerInDialog" |
| | | import {parseEventByUrl} from "@/components/actions/BaseAction" |
| | | import {getFormDefineById,dataForm} from "@/api/base/ui"; |
| | | import {addSave,editSave} from "@/api/base/actions" |
| | | import {getFormDefineById, dataForm} from "@/api/base/ui"; |
| | | import {addSave, editSave} from "@/api/base/actions" |
| | | import {validatenull} from "@/util/validate" |
| | | |
| | | export default { |
| | | name: "AddEditDialog", |
| | | components:{uiView}, |
| | | components: {uiView}, |
| | | props: { |
| | | sourceData: { |
| | | //所属区域的上一区域选中数据 |
| | |
| | | default: {} |
| | | } |
| | | }, |
| | | data(){ |
| | | data() { |
| | | return { |
| | | type:"add", |
| | | visible:false, |
| | | showSave:this.paramVOS.customBtn || true, |
| | | span:12, |
| | | formItems:[], |
| | | 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'] |
| | | loading: false, |
| | | type: "add", |
| | | visible: false, |
| | | showSave: this.paramVOS.customBtn || true, |
| | | span: 12, |
| | | formItems: [], |
| | | 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:{ |
| | | title(){ |
| | | return this.paramVOS.title || (this.type=='add'?'添加':'修改') |
| | | computed: { |
| | | title() { |
| | | return this.paramVOS.title || (this.type == 'add' ? '添加' : '修改') |
| | | }, |
| | | width() { |
| | | if (!validatenull(this.paramVOS.width)) { |
| | |
| | | return "60%"; |
| | | } |
| | | }, |
| | | height(){ |
| | | height() { |
| | | if (!validatenull(this.paramVOS.height)) { |
| | | if (this.paramVOS.height.includes("px") || this.paramVOS.height.includes("%")) { |
| | | return this.paramVOS.height; |
| | |
| | | return "auto" |
| | | } |
| | | }, |
| | | fullscreen(){ |
| | | if(this.paramVOS.width || this.paramVOS.height){ |
| | | fullscreen() { |
| | | if (this.paramVOS.width || this.paramVOS.height) { |
| | | return false; |
| | | }else if(this.paramVOS.form){ |
| | | } else if (this.paramVOS.form) { |
| | | return false; |
| | | } |
| | | return true; |
| | |
| | | onLoad: function () { |
| | | if (Object.keys(this.sourceData).length > 0) { |
| | | this.loading = true; |
| | | 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; |
| | | 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; |
| | | this.form = this.paramVOS.initvalue; |
| | | } |
| | | if(this.type=="edit") { |
| | | if (this.type == "edit") { |
| | | //加载表单数据 |
| | | let sourceDataMap = {}; |
| | | for (let i in this.sourceData) { |
| | |
| | | formDefineId: this.paramVOS.form, |
| | | oid: this.dataStore[0].oid |
| | | }, sourceDataMap), this.paramVOS.getdataurl, this.paramVOS.getdatamethod).then(res => { |
| | | this.form=res.data.obj; |
| | | this.form = res.data.obj.data; |
| | | this.loading = false; |
| | | }).catch(error => { |
| | | this.$message.error(error); |
| | | this.loading = false; |
| | | }) |
| | | } |
| | | this.loading = false; |
| | | }).catch(error => { |
| | | this.$message.error(error); |
| | | this.loading = false; |
| | |
| | | |
| | | } |
| | | }, |
| | | contextSave(){ |
| | | const useDataType=this.paramVOS["useDataType"] || "form";//使用ui上下文中的哪个类型数据,默认form。值:form、tree、table、TreeTable |
| | | for(let key in this.$refs.uiViewRef.data){ |
| | | if(this.$refs.uiViewRef.data[key].type== useDataType){ |
| | | this.form=this.$refs.uiViewRef.data[key].data; |
| | | this.formDefineId=this.$refs.uiViewRef.data[key].DefineVO.id; |
| | | contextSave() { |
| | | const useDataType = this.paramVOS["useDataType"] || "form";//使用ui上下文中的哪个类型数据,默认form。值:form、tree、table、TreeTable |
| | | for (let key in this.$refs.uiViewRef.data) { |
| | | if (this.$refs.uiViewRef.data[key].type == useDataType) { |
| | | this.form = this.$refs.uiViewRef.data[key].data; |
| | | this.formDefineId = this.$refs.uiViewRef.data[key].DefineVO.id; |
| | | if (this.paramVOS.savebeforeevent) { |
| | | var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent,null,null,'doAction'); |
| | | if(urlobj.params){ |
| | | Object.assign(this.paramVOS,urlobj.params); |
| | | var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent, null, null, 'doAction'); |
| | | if (urlobj.params) { |
| | | Object.assign(this.paramVOS, urlobj.params); |
| | | } |
| | | if(validatenull(urlobj.jsPath)){ |
| | | if (validatenull(urlobj.jsPath)) { |
| | | this.saveBforeHandle(this.paramVOS); |
| | | }else{ |
| | | } else { |
| | | try { |
| | | import(`./${urlobj.jsPath}.js`).then(module => { |
| | | module[urlobj.methodName]({ |
| | | paramVOS: this.paramVOS, |
| | | dataStore: this.dataStore, |
| | | sourceData:this.sourceData |
| | | },this.formSaveHandle); |
| | | sourceData: this.sourceData |
| | | }, this.formSaveHandle); |
| | | }) |
| | | } catch (error) { |
| | | this.$message.error('未找到保存前置事件执行js'); |
| | |
| | | } |
| | | }, |
| | | formSave() { |
| | | let that=this; |
| | | let that = this; |
| | | this.$refs.formRef.validate((valid, done) => { |
| | | if (valid) { |
| | | this.formDefineId=this.paramVOS.form; |
| | | this.formDefineId = this.paramVOS.form; |
| | | if (this.paramVOS.savebeforeevent) { |
| | | var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent,null,null,'doAction'); |
| | | if(urlobj.params){ |
| | | Object.assign(this.paramVOS,urlobj.params); |
| | | var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent, null, null, 'doAction'); |
| | | if (urlobj.params) { |
| | | Object.assign(this.paramVOS, urlobj.params); |
| | | } |
| | | if(validatenull(urlobj.jsPath)){ |
| | | if (validatenull(urlobj.jsPath)) { |
| | | this.saveBforeHandle(this.paramVOS); |
| | | }else{ |
| | | } else { |
| | | try { |
| | | import(`./${urlobj.jsPath}.js`).then(module => { |
| | | module[urlobj.methodName]({ |
| | |
| | | } |
| | | }); |
| | | }, |
| | | formSaveHandle(){ |
| | | let that=this; |
| | | formSaveHandle() { |
| | | let that = this; |
| | | let formValues = this.getValues(); |
| | | if(formValues.otherValue.releaseFileOids){ |
| | | formValues.otherValue.releaseFileOids=formValues.otherValue.releaseFileOids.split(','); |
| | | if (formValues.otherValue.releaseFileOids) { |
| | | formValues.otherValue.releaseFileOids = formValues.otherValue.releaseFileOids.split(','); |
| | | } |
| | | if (!formValues.defaultValues.btmname) { |
| | | formValues.defaultValues.btmname = this.paramVOS.type; |
| | |
| | | afterEvent: this.paramVOS.afterevent, |
| | | beforeServerEvent: this.paramVOS.beforeserverevent, |
| | | afterServerEvent: this.paramVOS.afterserverevent, |
| | | releaseFileOids: formValues.otherValue.releaseFileOids||[], |
| | | 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(() => { |
| | | if (that.type == "add") { |
| | | addSave(datas, that.paramVOS.url, that.paramVOS.method).then(() => { |
| | | that.$message({ |
| | | type: "success", |
| | | message: that.paramVOS.successmsg||"保存成功!" |
| | | message: that.paramVOS.successmsg || "保存成功!" |
| | | }); |
| | | if(that.saveCallback){ |
| | | that.saveCallback(that.type,that.form); |
| | | if (that.saveCallback) { |
| | | that.saveCallback(that.type, that.form); |
| | | } |
| | | if (this.paramVOS.saveafterevent) { |
| | | let urlobj = parseEventByUrl(this.paramVOS.saveafterevent,null,null,'doAction'); |
| | | if(urlobj.params){ |
| | | Object.assign(this.paramVOS,urlobj.params); |
| | | let urlobj = parseEventByUrl(this.paramVOS.saveafterevent, null, null, 'doAction'); |
| | | if (urlobj.params) { |
| | | Object.assign(this.paramVOS, urlobj.params); |
| | | } |
| | | if(validatenull(urlobj.jsPath)){ |
| | | if (validatenull(urlobj.jsPath)) { |
| | | this.saveAfterHandle(this.paramVOS); |
| | | }else{ |
| | | } else { |
| | | try { |
| | | import(`./${urlobj.jsPath}.js`).then(module => { |
| | | module[urlobj.methodName]({ |
| | | paramVOS: this.paramVOS, |
| | | dataStore: this.dataStore, |
| | | sourceData:this.sourceData |
| | | sourceData: this.sourceData |
| | | }); |
| | | }) |
| | | } catch (error) { |
| | |
| | | } |
| | | that.dialogClose(); |
| | | }); |
| | | }else{ |
| | | editSave(datas,that.paramVOS.url,that.paramVOS.method).then(() => { |
| | | } else { |
| | | editSave(datas, that.paramVOS.url, that.paramVOS.method).then(() => { |
| | | that.$message({ |
| | | type: "success", |
| | | message: that.paramVOS.successmsg||"修改成功!" |
| | | message: that.paramVOS.successmsg || "修改成功!" |
| | | }); |
| | | if(that.saveCallback){ |
| | | that.saveCallback(that.type,that.form); |
| | | if (that.saveCallback) { |
| | | that.saveCallback(that.type, that.form); |
| | | } |
| | | if (this.paramVOS.saveafterevent) { |
| | | let urlobj = parseEventByUrl(this.paramVOS.saveafterevent,null,null,'doAction'); |
| | | if(urlobj.params){ |
| | | Object.assign(this.paramVOS,urlobj.params); |
| | | let urlobj = parseEventByUrl(this.paramVOS.saveafterevent, null, null, 'doAction'); |
| | | if (urlobj.params) { |
| | | Object.assign(this.paramVOS, urlobj.params); |
| | | } |
| | | if(validatenull(urlobj.jsPath)){ |
| | | if (validatenull(urlobj.jsPath)) { |
| | | this.saveAfterHandle(this.paramVOS); |
| | | }else{ |
| | | } else { |
| | | try { |
| | | import(`./${urlobj.jsPath}.js`).then(module => { |
| | | module[urlobj.methodName]({ |
| | | paramVOS: this.paramVOS, |
| | | dataStore: this.dataStore, |
| | | sourceData:this.sourceData |
| | | sourceData: this.sourceData |
| | | }); |
| | | }) |
| | | } catch (error) { |
| | |
| | | }); |
| | | } |
| | | }, |
| | | getValues(){ |
| | | getValues() { |
| | | let defaultValues = {}, otherValue = {}; |
| | | for (var key in this.form) { |
| | | if (this.btmDefaultKeys.indexOf(key.toLowerCase()) > -1) { |
| | |
| | | } |
| | | } |
| | | return { |
| | | defaultValues:defaultValues, |
| | | otherValue:otherValue |
| | | defaultValues: defaultValues, |
| | | otherValue: otherValue |
| | | } |
| | | }, |
| | | resetValue() { |
| | |
| | | this.form = form; |
| | | }, |
| | | //保存前置事件 |
| | | saveBforeHandle(params){ |
| | | saveBforeHandle(params) { |
| | | this.$message.info('执行保存前置事件'); |
| | | }, |
| | | //保存后置事件 |
| | | saveAfterHandle(params){ |
| | | saveAfterHandle(params) { |
| | | this.$message.info('保存后置事件执行'); |
| | | }, |
| | | } |