From 59765cab961847dfd101e69ae6d8d1d501a5284c Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期二, 04 六月 2024 11:10:28 +0800
Subject: [PATCH] 1、ice配置文件上传
---
Source/ProjectWeb/src/components/actions/AddEditDialog.vue | 246 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 194 insertions(+), 52 deletions(-)
diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
index 54343ca..0ddfd45 100644
--- a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
+++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
@@ -1,39 +1,53 @@
<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"
+ :style="fullscreen?'':'height:'+height"
+ :isEdit="true"
:formItems="formItems"
- :formData="form">
+ :formData="form"
+ :initValue="paramVOS.initvalue"
+ :uploadattachment="paramVOS.uploadattachment || false"
+ @getFormData="getFormData">
</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"
+ :style="fullscreen?'':'height:'+height"
:btmType="paramVOS.type"
:context="paramVOS.context"
:inDialog="true"
- :key="'AddEditDialog-'+type"
+ :canEdit="true"
+ :actionType="type"
:sourceData="sourceData"
:dataStore="dataStore"
:paramVOS="paramVOS"
+ @getFormData="getFormData"
></ui-view>
- <div slot="footer" class="dialog-footer avue-dialog__footer">
- <el-button type="primary" plain size="small" @click="saveHandler">淇� 瀛�</el-button>
+ <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 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>
<script>
import uiView from "@/views/base/UIContentViewerInDialog"
+import {parseEventByUrl} from "@/components/actions/base/BaseAction"
import {getFormDefineById,dataForm} from "@/api/base/ui";
import {addSave,editSave} from "@/api/base/actions"
+import {validatenull} from "@/util/validate"
export default {
name: "AddEditDialog",
@@ -52,30 +66,60 @@
paramVOS: {
type: Object,
default: {}
- },
- width: {
- type: String,
- default:'60%'
}
},
data(){
return {
type:"add",
visible:false,
+ 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:{
title(){
return this.paramVOS.title || (this.type=='add'?'娣诲姞':'淇敼')
+ },
+ width() {
+ if (!validatenull(this.paramVOS.width)) {
+ if (this.paramVOS.width.includes("px") || this.paramVOS.width.includes("%")) {
+ return this.paramVOS.width;
+ } else {
+ return this.paramVOS.width + "px";
+ }
+ } else {
+ return "60%";
+ }
+ },
+ height(){
+ if (!validatenull(this.paramVOS.height)) {
+ if (this.paramVOS.height.includes("px") || this.paramVOS.height.includes("%")) {
+ return this.paramVOS.height;
+ } else {
+ return this.paramVOS.height + "px";
+ }
+ } else {
+ return "auto"
+ }
+ },
+ fullscreen(){
+ if(this.paramVOS.width || this.paramVOS.height){
+ return false;
+ }else if(this.paramVOS.form){
+ return false;
+ }
+ return true;
}
},
created() {
},
watch: {
- sourceData: {
+ paramVOS: {
handler(val) {
if (this.paramVOS.form) {
this.onLoad();
@@ -95,19 +139,28 @@
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"){
+ if(this.type=="edit") {
//鍔犺浇琛ㄥ崟鏁版嵁
- dataForm(this.params,this.paramVOS.getdataurl,this.paramVOS.getdatamethod).then(res => {
- this.form = res.data.obj;
+ let sourceDataMap = {};
+ for (let i in this.sourceData) {
+ const item = this.sourceData[i]
+ if (item.constructor === Object) return;
+ sourceDataMap['sourceData["' + i + '"]'] = item;
+ }
+ dataForm(Object.assign({
+ btmname: this.paramVOS.type,
+ formDefineId: this.paramVOS.form,
+ oid: this.dataStore[0].oid
+ }, sourceDataMap), 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);
@@ -116,50 +169,139 @@
}
},
- saveHandler() {
+ contextSave(){
+ const useDataType=this.paramVOS["useDataType"] || "form";//浣跨敤ui涓婁笅鏂囦腑鐨勫摢涓被鍨嬫暟鎹紝榛樿form銆傚�硷細form銆乼ree銆乼able銆乀reeTable
+ 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');
+ import(`./${urlobj.jsPath}.js`).then(module => {
+ module[urlobj.methodName]({
+ paramVOS: this.paramVOS,
+ dataStore: this.dataStore,
+ sourceData:this.sourceData
+ },this.formSaveHandle);
+ })
+ } else {
+ this.formSaveHandle();
+ }
+ return;
+ }
+ }
+ },
+ formSave() {
+ let that=this;
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||"淇敼澶辫触")
- });
+ this.formDefineId=this.paramVOS.form;
+ 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.formDefineId,
+ 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: that.paramVOS.successmsg||"淇濆瓨鎴愬姛!"
+ });
+ if(that.saveCallback){
+ that.saveCallback(that.type,that.form);
+ }
+ if (this.paramVOS.saveafterevent) {
+ let urlobj = parseEventByUrl(this.paramVOS.saveafterevent,null,null,'doAction');
+ import(`./${urlobj.jsPath}.js`).then(module => {
+ module[urlobj.methodName]({
+ paramVOS: this.paramVOS,
+ dataStore: this.dataStore,
+ sourceData:this.sourceData
+ });
+ })
+ }
+ that.dialogClose();
+ });
+ }else{
+ editSave(datas,that.paramVOS.url,that.paramVOS.method).then(() => {
+ that.$message({
+ type: "success",
+ message: that.paramVOS.successmsg||"淇敼鎴愬姛!"
+ });
+ if(that.saveCallback){
+ that.saveCallback(that.type,that.form);
+ }
+ if (this.paramVOS.saveafterevent) {
+ let urlobj = parseEventByUrl(this.paramVOS.saveafterevent,null,null,'doAction');
+ import(`./${urlobj.jsPath}.js`).then(module => {
+ module[urlobj.methodName]({
+ paramVOS: this.paramVOS,
+ dataStore: this.dataStore,
+ sourceData:this.sourceData
+ });
+ })
+ }
+ 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() {
- this.$refs.formRef.resetFields();
+ if (this.paramVOS.form) {
+ this.$refs.formRef.resetFields();
+ }
+ },
+ getFormData(form) {
+ this.form = form;
}
}
}
</script>
<style scoped>
-.avue-dialog__footer{
- margin-bottom: 20px;
-}
+
</style>
--
Gitblit v1.9.3