From 46c673f0bf4a22ae108e90cfcf1bdeb4f0b6a45c Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 07 五月 2024 17:48:19 +0800
Subject: [PATCH] 添加action,数据联动
---
Source/ProjectWeb/src/actions/base/AddAction.js | 8 ++--
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue | 4 -
Source/ProjectWeb/src/actions/base/BaseAction.js | 9 ++--
Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue | 10 ++--
Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue | 4 +
Source/ProjectWeb/src/views/base/UIContentArea.vue | 2 -
Source/ProjectWeb/src/components/actions/AddEditDialog.vue | 4 +
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue | 13 ++++--
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 17 ++++++--
Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue | 15 +++++--
Source/ProjectWeb/src/actions/base/EditAction.js | 10 ++--
11 files changed, 58 insertions(+), 38 deletions(-)
diff --git a/Source/ProjectWeb/src/actions/base/AddAction.js b/Source/ProjectWeb/src/actions/base/AddAction.js
index 965a7e2..688f26a 100644
--- a/Source/ProjectWeb/src/actions/base/AddAction.js
+++ b/Source/ProjectWeb/src/actions/base/AddAction.js
@@ -17,8 +17,8 @@
options.sourceData = options.sourceData || {};
callPreEvent(options, doBefore, function (options) {
- doAdd(options, function () {
- callPostEvent(options, doAfter, callback);
+ doAdd(options, function (type,formData) {
+ callPostEvent(options, doAfter, callback,type);
});
});
};
@@ -72,9 +72,9 @@
* @param options 鎸夐挳鐨勯厤缃俊鎭�
* @param callback 鍥炶皟
*/
-export const doAfter = (options,callback)=> {
+export const doAfter = (options,callback,actionType)=> {
Vue.prototype.$message.success('鎵ц澧炲姞鍚庣疆浜嬩欢');
if(callback){
- callback(options);
+ callback(actionType);
}
}
diff --git a/Source/ProjectWeb/src/actions/base/BaseAction.js b/Source/ProjectWeb/src/actions/base/BaseAction.js
index c46ad97..6fbbc0b 100644
--- a/Source/ProjectWeb/src/actions/base/BaseAction.js
+++ b/Source/ProjectWeb/src/actions/base/BaseAction.js
@@ -18,6 +18,7 @@
values.forEach((item,i) => {
if(isShow){
item = item.replace(':', '=');
+ debugger;
if (item.indexOf('${') > -1) {
if (item.split('=')[1].indexOf('.') > -1) {
//initvaluenull=true鍏佽鍒濆鍊间负绌�
@@ -189,16 +190,16 @@
* @param callback 鍥炶皟锛屽鏋滃瓨鍦ㄥ悗缃簨浠讹紝浼氬湪鎵ц瀹屾垚鍚庢墽琛屽洖璋冿紝鍚﹀垯鐩存帴鍥炶皟
* @param preEventName 鍚庣疆浜嬩欢鍚嶇О锛岄粯璁� afterevent
*/
-export const callPostEvent = (options,fnTarget,callback,postEventName)=>{
+export const callPostEvent = (options,fnTarget,callback,actionType,postEventName)=>{
let afterEvent = options.paramVOS[postEventName || 'afterevent'];
if(afterEvent) {
let buttonParse = parseEventByUrl(afterEvent,options,false);
if(validatenull(buttonParse.jsPath)){
- fnTarget(buttonParse,callback);
+ fnTarget(buttonParse,callback,actionType);
}else{
try {
import("../"+buttonParse.jsPath+".js").then(module => {
- module[buttonParse.methodName](options,callback);
+ module[buttonParse.methodName](options,callback,actionType);
})
} catch (error) {
Vue.prototype.$message.error('鏈壘鍒板悗缃簨浠舵墽琛宩s');
@@ -206,7 +207,7 @@
}
}else{
if(callback){
- callback(options);
+ callback(actionType);
}
}
};
diff --git a/Source/ProjectWeb/src/actions/base/EditAction.js b/Source/ProjectWeb/src/actions/base/EditAction.js
index 6dbadff..2c0e519 100644
--- a/Source/ProjectWeb/src/actions/base/EditAction.js
+++ b/Source/ProjectWeb/src/actions/base/EditAction.js
@@ -6,7 +6,7 @@
import Vue from "vue";
import AddEditDialog from "@/components/actions/AddEditDialog";
-export const doAction = (options) => {
+export const doAction = (options,callback) => {
const paramVOS = Object.assign({
getdataurl: '/api/uiDataController/dataFormQuery',
getdatamethod: 'post',
@@ -42,8 +42,8 @@
}
}
callPreEvent(options, doBefore, function (options) {
- doAdd(options, function () {
- callPostEvent(options, doAfter, options.callback);
+ doAdd(options, function (type,formData) {
+ callPostEvent(options, doAfter,type, callback);
});
});
};
@@ -95,9 +95,9 @@
* @param options 鎸夐挳鐨勯厤缃俊鎭�
* @param callback 鍥炶皟
*/
-export const doAfter = (options,callback)=> {
+export const doAfter = (options,callback,actionType)=> {
Vue.prototype.$message.success('鎵ц淇敼鍚庣疆浜嬩欢');
if(callback){
- callback(options);
+ callback(actionType);
}
}
diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
index 165aa34..7e74447 100644
--- a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
+++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
@@ -172,6 +172,7 @@
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 => {
@@ -192,6 +193,7 @@
let that=this;
this.$refs.formRef.validate((valid, done) => {
if (valid) {
+ this.formDefineId=this.paramVOS.form;
if (this.paramVOS.savebeforeevent) {
var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent,null,null,'doAction');
import("../"+urlobj.jsPath+".js").then(module => {
@@ -219,7 +221,7 @@
formValues.defaultValues.btmname = this.paramVOS.type;
}
let datas = {
- formDefineId: this.paramVOS.form || "",
+ formDefineId: this.formDefineId,
preEvent: this.paramVOS.preevent,
afterEvent: this.paramVOS.afterevent,
beforeServerEvent: this.paramVOS.beforeserverevent,
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
index 58dacf5..0f9ca1a 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -153,9 +153,7 @@
dataStore: this.dataStore || [],
sourceData: this.sourceData || {}
}, function (actionType,data) {
- if (that.$parent.handleRefresh) {
- that.$parent.handleRefresh(actionType,data)
- }
+ that.$emit("afterMethod",actionType,data);
});
}
},
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
index 2d6c692..f96eff4 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
@@ -95,7 +95,9 @@
//婧愭暟鎹湁鍙樺寲鏃跺彉鏇村綋鍓嶅尯鍩熸暟鎹�
console.log(this.areasName);
console.log(newval);
- }
+ },
+ deep: true,
+ immediate: true
}
},
computed: {},
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
index 3e6a6b5..1792005 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
@@ -1,7 +1,8 @@
<template>
<div :id="'UI-dynamic-'+areasName+componentVO.oid" class="UI-dynamic">
<dynamic-button v-if="componentVO && componentVO.buttons" :key="areasName+'buttons-'+componentVO.oid"
- :componentVO="componentVO" :butttonList="componentVO.buttons" :dataStore="[form]" :sourceData="sourceData" type="form"></dynamic-button>
+ :componentVO="componentVO" :butttonList="componentVO.buttons" :dataStore="[form]" :sourceData="sourceData"
+ @afterMethod="handleRefresh" type="form"></dynamic-button>
<basic-form :key="areasName+'basicForm-'+componentVO.oid"
:span="this.componentVO.formDefineVO.columnOneRow?(24/this.componentVO.formDefineVO.columnOneRow) : 12"
:formItems="this.componentVO.formDefineVO && this.componentVO.formDefineVO.items"
@@ -92,11 +93,13 @@
this.$emit("setData", {
area: this.areasName,
type:this.componentVO.uiComponentType,
- btmType:this.currentDefineVO.btmType,
+ currentDefineVO:this.currentDefineVO,
data:newval
});
}
- }
+ },
+ deep: true,
+ immediate: true
},
sourceData: {
handler(newval) {
@@ -104,7 +107,9 @@
this.sourceDataMapParams=this.sourceDataMap();
this.getParams();
this.handleRefresh();
- }
+ },
+ deep: true,
+ immediate: true
}
},
created() {
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
index ce6fe70..f5693d6 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -19,12 +19,15 @@
<dynamic-button :componentVO="componentVO"
:key="areasName+'buttons-'+componentVO.oid"
:butttonList="componentVO.buttons" :dataStore="selectList" LocationType="top" :sourceData="sourceData"
+ @afterMethod="handleRefresh"
type="table"></dynamic-button>
</template>
<!--menu鍖哄煙鎸夐挳-->
<template slot="menu" slot-scope="scope">
- <dynamic-button :componentVO="componentVO" :butttonList="componentVO.buttons" :scope="scope" :dataStore="selectList" :sourceData="sourceData" LocationType="menu"
+ <dynamic-button :componentVO="componentVO" :butttonList="componentVO.buttons" :scope="scope" :dataStore="selectList" :sourceData="sourceData"
+ LocationType="menu"
+ @afterMethod="handleRefresh"
type="table"></dynamic-button>
</template>
</avue-crud>
@@ -176,11 +179,13 @@
this.$emit("setData", {
area: this.areasName,
type:this.componentVO.uiComponentType,
- btmType:this.currentDefineVO.btmType,
+ currentDefineVO:this.currentDefineVO,
data:newval
});
}
- }
+ },
+ deep: true,
+ immediate: true
},
'sourceData':{
handler(newval) {
@@ -189,7 +194,9 @@
this.getParams();
this.handleRefresh();
}
- }
+ },
+ deep: true,
+ immediate: true
}
},
created() {
@@ -341,7 +348,7 @@
}
},
- handleRefresh() {
+ handleRefresh(type) {
this.onLoad(this.page, this.query);
}
}
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
index 3d80d3a..0e77ec6 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
@@ -3,6 +3,7 @@
<dynamic-button v-if="componentVO.buttons && componentVO.buttons.length>0" :componentVO="componentVO"
:key="areasName+'buttons-'+componentVO.oid"
:butttonList="componentVO.buttons" :dataStore="checkDatas"
+ @afterMethod="handleRefresh"
:sourceData="sourceData" type="tree" style="margin-bottom: 5px;"></dynamic-button>
<el-input
placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
@@ -104,7 +105,9 @@
dataStore:newval
});
}
- }
+ },
+ deep: true,
+ immediate: true
},
data:{
handler(newval) {
@@ -112,11 +115,13 @@
this.$emit("setData", {
area: this.areasName,
type:this.componentVO.uiComponentType,
- btmType:this.componentVO.treeDefineVO.btmType,
+ currentDefineVO:this.componentVO.treeDefineVO,
data:newval
});
}
- }
+ },
+ deep: true,
+ immediate: true
},
sourceData:{
handler(newval) {
@@ -124,7 +129,9 @@
this.sourceDataMapParams=this.sourceDataMap();
this.getParams();
this.handleRefresh();
- }
+ },
+ deep: true,
+ immediate: true
}
},
data() {
diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue
index c9f0c92..a52160e 100644
--- a/Source/ProjectWeb/src/views/base/UIContentArea.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue
@@ -205,8 +205,6 @@
}
})
this.newAreasData = newAreasData;
- }else {
- this.newAreasData=this.areasData;
}
},
checkDisplayExpression(displayExpressionStr) {
diff --git a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
index 0bd27af..2b4043b 100644
--- a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
@@ -143,22 +143,22 @@
data:{
northAreaInDialog:{
type:'',
- btmType:'',
+ DefineVO:null,
data:null
},
westAreaInDialog:{
type:'',
- btmType:'',
+ DefineVO:null,
data:null
},
centerAreaInDialog:{
type:'',
- btmType:'',
+ DefineVO:null,
data:null
},
southAreaInDialog:{
type:'',
- btmType:'',
+ DefineVO:null,
data:null
}
},
@@ -202,7 +202,7 @@
}
},
setData(value) {
- this.data[value.area].btmType = value.btmType;
+ this.data[value.area].DefineVO = value.currentDefineVO;
this.data[value.area].data = value.data;
this.data[value.area].type = value.type;
},
--
Gitblit v1.9.3