From 506b5b59e3899d8dd40a61cc8b9a575bbde3caaa Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 06 五月 2024 18:24:33 +0800
Subject: [PATCH] 添加action
---
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue | 7 -
Source/ProjectWeb/src/actions/base/BaseAction.js | 18 +++-
Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue | 42 +++++++++-
Source/ProjectWeb/src/components/dynamic-components/index.vue | 7 +
Source/ProjectWeb/src/views/base/UIContentArea.vue | 6 +
Source/ProjectWeb/src/components/actions/AddEditDialog.vue | 33 ++++++--
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue | 14 ++
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 12 +++
Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue | 20 +++-
Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue | 58 +++++++++++---
10 files changed, 170 insertions(+), 47 deletions(-)
diff --git a/Source/ProjectWeb/src/actions/base/BaseAction.js b/Source/ProjectWeb/src/actions/base/BaseAction.js
index 2482fde..c46ad97 100644
--- a/Source/ProjectWeb/src/actions/base/BaseAction.js
+++ b/Source/ProjectWeb/src/actions/base/BaseAction.js
@@ -20,22 +20,30 @@
item = item.replace(':', '=');
if (item.indexOf('${') > -1) {
if (item.split('=')[1].indexOf('.') > -1) {
- if (options.sourceData.length < 1 || !options.sourceData.oid) {
+ //initvaluenull=true鍏佽鍒濆鍊间负绌�
+ if ((options.sourceData.length < 1 || !options.sourceData.oid) && options.paramVOS['initvaluenull']!=true && options.paramVOS['initvaluenull']!="true") {
isShow = false;
Vue.prototype.$message.error("璇峰厛閫夋嫨涓�鏉℃潵婧愭暟鎹�")
return false;
}
let name = item.split('=')[1].split('.')[1].replace('${', '').replace('}', '');
- initValues[item.split('=')[0]] = options.sourceData[name]
+ if(options.sourceData){
+ initValues[item.split('=')[0]] = options.sourceData[name]
+ }else {
+ initValues[item.split('=')[0]]=""
+ }
} else {
- if (options.dataStore.length < 1) {
+ if (options.dataStore.length < 1 && options.paramVOS['initvaluenull'] != true && options.paramVOS['initvaluenull'] != "true") {
isShow = false;
Vue.prototype.$message.error("璇峰厛閫夋嫨涓�鏉℃暟鎹�");
return false;
}
let name = item.split('=')[1].replace('${', '').replace('}', '');
- initValues[item.split('=')[0]] = options.dataStore[0][name];
-
+ if (options.dataStore[0]) {
+ initValues[item.split('=')[0]] = options.dataStore[0][name];
+ } else {
+ initValues[item.split('=')[0]] = "";
+ }
}
}
}
diff --git a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
index c8c67c8..718ae8f 100644
--- a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
+++ b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
@@ -70,7 +70,11 @@
//琛ㄥ崟鏄惁鍙紪杈�
type:Boolean,
default:true
- }
+ },
+ initValue:{
+ type: Object,
+ default: () => {},
+ },
},
data() {
return {
@@ -103,10 +107,13 @@
watch: {
formItems: {
handler(val) {
- if(val[0] &&val[0].column && val[0].column.isArray()){
+ if (val[0] && val[0].column && val[0].column.isArray()) {
this.getInitGroup(val);
- }else{
+ } else {
this.getInit(val);
+ }
+ if (this.initValue) {
+ Object.assign(this.form, this.initValue);
}
},
immediate: true,
@@ -154,7 +161,6 @@
code = this.initItem(code);
column.push(code);
this.allColumn.push(code);
- console.log('allColumn',this.allColumn)
}
this.option.column = column;
},
@@ -220,9 +226,9 @@
if(col.data && col.data.length>0){
col.dicData = col.data.map((d) => {
return {
- label: d.value,
- key: d.key,
- value: d.key,
+ label: d.key,
+ key: d.value,
+ value: d.value,
attributes:d.attributes
};
});
diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
index 11347ab..165aa34 100644
--- a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
+++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
@@ -16,6 +16,7 @@
:isEdit="true"
:formItems="formItems"
:formData="form"
+ :initValue="paramVOS.initvalue"
@getFormData="getFormData">
</basic-form>
<ui-view ref="uiViewRef" v-else-if="paramVOS.context"
@@ -116,7 +117,7 @@
created() {
},
watch: {
- sourceData: {
+ paramVOS: {
handler(val) {
if (this.paramVOS.form) {
this.onLoad();
@@ -136,7 +137,6 @@
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;
}
@@ -153,7 +153,7 @@
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;
this.loading = false;
}).catch(error => {
this.$message.error(error);
@@ -168,9 +168,24 @@
}
},
contextSave(){
- debugger;
- if(this.saveCallback){
- this.saveCallback({});
+ 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;
+ 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() {
@@ -204,7 +219,7 @@
formValues.defaultValues.btmname = this.paramVOS.type;
}
let datas = {
- formDefineId: this.paramVOS.form,
+ formDefineId: this.paramVOS.form || "",
preEvent: this.paramVOS.preevent,
afterEvent: this.paramVOS.afterevent,
beforeServerEvent: this.paramVOS.beforeserverevent,
@@ -220,7 +235,7 @@
message: "淇濆瓨鎴愬姛!"
});
if(that.saveCallback){
- that.saveCallback(that.form);
+ that.saveCallback(that.type,that.form);
}
that.dialogClose();
});
@@ -231,7 +246,7 @@
message: "淇敼鎴愬姛!"
});
if(that.saveCallback){
- that.saveCallback(that.form);
+ that.saveCallback(that.type,that.form);
}
that.dialogClose();
});
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
index 1341289..58dacf5 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -134,7 +134,7 @@
const paramVOS = buttonitem.paramVOS;
const DefineVO = this.componentVO.treeDefineVO || this.componentVO.tableDefineVO || this.componentVO.treeTableDefineVO || this.componentVO.formDefineVO;
if (!paramVOS['title']) {
- paramVOS['title'] = buttonitem.name + (DefineVO.title || this.componentVO.description || '');
+ paramVOS['title'] = buttonitem.name + (DefineVO.title || '');
}
if (!paramVOS['type']) {
@@ -148,14 +148,13 @@
const that = this;
//paramVOS.customBtn //寮圭獥榛樿鏈変繚瀛樻寜閽�,customBtn涓簍rue鏃跺唴瀹瑰睍绀鸿嚜瀹氫箟鎸夐挳
- paramVOS.form = "editknowledgefolderall"
doAction(buttonitem, {
paramVOS: paramVOS,
dataStore: this.dataStore || [],
sourceData: this.sourceData || {}
- }, function () {
+ }, function (actionType,data) {
if (that.$parent.handleRefresh) {
- that.$parent.handleRefresh()
+ that.$parent.handleRefresh(actionType,data)
}
});
}
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
index 91f77bb..3e6a6b5 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
@@ -8,6 +8,7 @@
:disabled="!inDialog"
:isEdit="canEdit"
:formData="form"
+ :initValue="paramVOS.initvalue"
@getFormData="getFormData">
</basic-form>
</div>
@@ -85,8 +86,14 @@
this.$emit("setDataStore", {
area: this.areasName,
type:this.componentVO.uiComponentType,
- btmType:this.componentVO.treeDefineVO.btmType,
+ btmType:this.currentDefineVO.btmType,
dataStore:[newval]
+ });
+ this.$emit("setData", {
+ area: this.areasName,
+ type:this.componentVO.uiComponentType,
+ btmType:this.currentDefineVO.btmType,
+ data:newval
});
}
}
@@ -145,10 +152,11 @@
const sourceDataMapList = this.sourceDataMapParams;
this.params = Object.assign({},formParams, sourceDataMapList);
- console.log(this.params)
},
onLoad:function () {
- debugger;
+ if (this.paramVOS.initvalue) {
+ this.form=this.paramVOS.initvalue;
+ }
if (Object.keys(this.sourceData).length>0 && this.isShow) {
this.loading = true;
dataForm(this.params).then(res => {
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
index 886e7f7..ce6fe70 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -170,6 +170,18 @@
}
}
},
+ tableList:{
+ handler(newval) {
+ if(newval) {
+ this.$emit("setData", {
+ area: this.areasName,
+ type:this.componentVO.uiComponentType,
+ btmType:this.currentDefineVO.btmType,
+ data:newval
+ });
+ }
+ }
+ },
'sourceData':{
handler(newval) {
if(newval) {
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
index 191c5e3..3d80d3a 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
@@ -106,6 +106,18 @@
}
}
},
+ data:{
+ handler(newval) {
+ if(newval) {
+ this.$emit("setData", {
+ area: this.areasName,
+ type:this.componentVO.uiComponentType,
+ btmType:this.componentVO.treeDefineVO.btmType,
+ data:newval
+ });
+ }
+ }
+ },
sourceData:{
handler(newval) {
//婧愭暟鎹湁鍙樺寲鏃跺彉鏇村綋鍓嶅尯鍩熸暟鎹�
@@ -219,39 +231,57 @@
parentOid = parentOid.split('@vcitreesep@')[1];
}
const parentBtmName = (node.level === 0) ? '' : node.data.attributes.btmname;
- const params=this.params;
- if(node.level === 0){
- params.queryRoot= true;
- }else {
+ const params = this.params;
+ if (node.level === 0) {
+ params.queryRoot = true;
+ } else {
delete params.queryRoot;
}
getTree(parentOid, parentBtmName, params).then(res => {
resolve(res.data.treeData)
+ this.$nextTick(()=>{
+ if (this.isRefresh) {
+ this.$refs.tree.setCurrentKey(this.currentClickNode.data.oid);
+ this.isRefresh=false;
+ }
+ })
+
}).catch(error => {
this.$message.error(error);
})
},
checkNode(checkedNode, checkedData) {
if (this.isMuti) {
- this.checkDatas = checkedData.checkedNodes;
+ let checkDatas = [];
+ checkedData.checkedNodes.forEach(item=>{
+ checkDatas.push(item.attributes)
+ })
+ this.checkDatas=checkDatas;
}
},
changeNode(data, node) {
if (!this.isMuti) {
- this.checkDatas = [data];
+ this.checkDatas = [data.attributes];
}
},
clickNode(data, node) {
this.currentClickNode = node;
},
- handleRefresh() {
- if (!this.lazy) {
- this.initData();
- } else {
- if (this.currentClickNode) {
- let node = this.currentClickNode.parent;
- node.loaded = false;
- node.expand();
+ handleRefresh(type,data) {
+ //type:add\edit\delete
+ if(type=="delete"){
+ this.$refs.tree.remove(this.currentClickNode);
+ this.currentClickNode=null;
+ }else{
+ if (!this.lazy) {
+ this.initData();
+ } else {
+ if (this.currentClickNode) {
+ let node = this.currentClickNode.parent;
+ node.loaded = false;
+ node.expand();
+ this.isRefresh=true;
+ }
}
}
this.checkDatas = [];
diff --git a/Source/ProjectWeb/src/components/dynamic-components/index.vue b/Source/ProjectWeb/src/components/dynamic-components/index.vue
index 5f62cb1..7660ba1 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/index.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/index.vue
@@ -11,6 +11,7 @@
:dataStore="dataStore"
:areasName="areasName"
:paramVOS="paramVOS"
+ @setData="setData"
@setDataStore="setDataStore"
:isShow="isShow">
@@ -27,6 +28,7 @@
:dataStore="dataStore"
:areasName="areasName"
:paramVOS="paramVOS"
+ @setData="setData"
@setDataStore="setDataStore"
:isShow="isShow">
@@ -43,6 +45,7 @@
:dataStore="dataStore"
:areasName="areasName"
:paramVOS="paramVOS"
+ @setData="setData"
@setDataStore="setDataStore"
:isShow="isShow">
</dynamic-tree>
@@ -58,6 +61,7 @@
:dataStore="dataStore"
:areasName="areasName"
:paramVOS="paramVOS"
+ @setData="setData"
@setDataStore="setDataStore"
:isShow="isShow">
@@ -129,6 +133,9 @@
setDataStore(value) {
this.$emit("setDataStore", value);
this.dataStore = value.dataStore;
+ },
+ setData(value) {
+ this.$emit("setData", value);
}
}
}
diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue
index 4ae0be8..c9f0c92 100644
--- a/Source/ProjectWeb/src/views/base/UIContentArea.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue
@@ -32,6 +32,7 @@
:dataStore="dataStore"
:areasName="areasName"
:paramVOS="paramVOS"
+ @setData="setData"
@setDataStore="setDataStore"
:isShow="activeName==(areasName+'-Tab-'+index)?true:false"></compoent-index>
</div>
@@ -55,6 +56,7 @@
:dataStore="dataStore"
:areasName="areasName"
:paramVOS="paramVOS"
+ @setData="setData"
@setDataStore="setDataStore"
:isShow="collapseActiveNames.indexOf(areasName+'-collapse-'+componentIndex)!=-1?true:false"></compoent-index>
</div>
@@ -72,6 +74,7 @@
:dataStore="dataStore"
:areasName="areasName"
:paramVOS="paramVOS"
+ @setData="setData"
@setDataStore="setDataStore"
:isShow="true"></compoent-index>
</div>
@@ -239,6 +242,9 @@
handleChange(val) {
//console.log(val);
},
+ setData(value) {
+ this.$emit("setData", value);
+ },
setDataStore(value) {
this.$emit("setDataStore", value);
this.dataStore = value.dataStore;
diff --git a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
index c54bf61..0bd27af 100644
--- a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
@@ -12,7 +12,8 @@
:canEdit="canEdit"
:sourceData="sourceData"
:sourceBtmType="btmType"
- areas-name="northArea"
+ areas-name="northAreaInDialog"
+ @setData="setData"
@setDataStore="setDataStore">
</UIContentArea>
</el-header>
@@ -31,8 +32,9 @@
:canEdit="canEdit"
:sourceData="sourceData"
:sourceBtmType="btmType"
- areas-name="westArea"
+ areas-name="westAreaInDialog"
cradStyle=""
+ @setData="setData"
@setDataStore="setDataStore">
</UIContentArea>
</el-aside>
@@ -48,8 +50,9 @@
:canEdit="canEdit"
:sourceData="checkedData.westAreaInDialog.data[checkedData.westAreaInDialog.data.length-1]"
:sourceBtmType="checkedData.westAreaInDialog.DefineVOBtmType"
- areas-name="centerArea"
+ areas-name="centerAreaInDialog"
cradStyle=""
+ @setData="setData"
@setDataStore="setDataStore">
</UIContentArea>
</el-main>
@@ -65,8 +68,9 @@
:canEdit="canEdit"
:sourceData="checkedData.centerAreaInDialog.data[checkedData.centerAreaInDialog.data.length-1]"
:sourceBtmType="checkedData.centerAreaInDialog.DefineVOBtmType"
- areas-name="southArea"
+ areas-name="southAreaInDialog"
cradStyle=""
+ @setData="setData"
@setDataStore="setDataStore">
</UIContentArea>
</el-footer>
@@ -116,8 +120,8 @@
},
data() {
return {
+ //鍚勫尯鍩熺殑閫変腑鏁版嵁
checkedData:{
- //鍚勫尯鍩熼�変腑鏁版嵁
northAreaInDialog:{
DefineVOBtmType:'',
data:[{}]
@@ -133,6 +137,29 @@
southAreaInDialog:{
DefineVOBtmType:'',
data:[{}]
+ }
+ },
+ //鍚勫尯鍩熸暟鎹�
+ data:{
+ northAreaInDialog:{
+ type:'',
+ btmType:'',
+ data:null
+ },
+ westAreaInDialog:{
+ type:'',
+ btmType:'',
+ data:null
+ },
+ centerAreaInDialog:{
+ type:'',
+ btmType:'',
+ data:null
+ },
+ southAreaInDialog:{
+ type:'',
+ btmType:'',
+ data:null
}
},
uiDefineVO: {},
@@ -174,6 +201,11 @@
this.centerHeight = '100%';
}
},
+ setData(value) {
+ this.data[value.area].btmType = value.btmType;
+ this.data[value.area].data = value.data;
+ this.data[value.area].type = value.type;
+ },
setDataStore(value) {
this.checkedData[value.area].DefineVOBtmType = value.btmType;
this.checkedData[value.area].data = value.dataStore;
--
Gitblit v1.9.3