From 948a8b5fba4baf0a19493ae6d7b8a1dee0d4101a Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 14 五月 2024 17:01:19 +0800
Subject: [PATCH] 修改action实现机制,配置文档
---
Source/ProjectWeb/src/components/actions/handlers.js | 49 +++++++++------
Source/ProjectWeb/src/components/actions/base/BaseAction.js | 15 ++---
Source/ProjectWeb/src/configDoc/Action/img_edit.png | 0
Source/ProjectWeb/src/components/actions/AddEditDialog.vue | 5 +
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue | 25 ++++----
Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue | 9 +++
Source/ProjectWeb/src/configDoc/Action.md | 24 +++++++
7 files changed, 82 insertions(+), 45 deletions(-)
diff --git a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
index b6db326..ca5e5b4 100644
--- a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
+++ b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
@@ -75,6 +75,11 @@
type: Object,
default: () => {},
},
+ uploadattachment:{
+ //鏄惁鏄剧ず涓婁紶闄勪欢
+ type:Boolean,
+ default:false
+ },
},
data() {
return {
@@ -225,6 +230,10 @@
this.subitemName = col.field;
}else if(col.type === 'upload'){
console.log('col',col)
+ }else if(col.type=="multiFile"){
+ if(this.uploadattachment == "false" || this.uploadattachment == false){
+ col.display=false
+ }
}
if (col.type === "select") {
if(col.data && col.data.length>0){
diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
index 552c258..233e001 100644
--- a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
+++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
@@ -17,6 +17,7 @@
:formItems="formItems"
:formData="form"
:initValue="paramVOS.initvalue"
+ :uploadattachment="paramVOS.uploadattachment || false"
@getFormData="getFormData">
</basic-form>
<ui-view ref="uiViewRef" v-else-if="paramVOS.context"
@@ -176,7 +177,7 @@
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 => {
+ import(`./${urlobj.jsPath}.js`).then(module => {
module[urlobj.methodName]({
paramVOS: this.paramVOS,
dataStore: this.dataStore,
@@ -197,7 +198,7 @@
this.formDefineId=this.paramVOS.form;
if (this.paramVOS.savebeforeevent) {
var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent,null,null,'doAction');
- import("../"+urlobj.jsPath+".js").then(module => {
+ import(`./${urlobj.jsPath}.js`).then(module => {
module[urlobj.methodName]({
paramVOS: this.paramVOS,
dataStore: this.dataStore,
diff --git a/Source/ProjectWeb/src/components/actions/base/BaseAction.js b/Source/ProjectWeb/src/components/actions/base/BaseAction.js
index b560c29..1c336ee 100644
--- a/Source/ProjectWeb/src/components/actions/base/BaseAction.js
+++ b/Source/ProjectWeb/src/components/actions/base/BaseAction.js
@@ -1,6 +1,6 @@
import {validatenull} from "@/util/validate";
import Vue from 'vue';
-import {handlers} from '../handlers';
+import {handlerAction} from '../handlers';
/**
* 鎸夐挳鐨勫熀纭�鏈嶅姟
@@ -61,15 +61,12 @@
}
if (button.url && button.url != 'null') {
//鏈夐厤缃產ction璺緞锛屼娇鐢ㄨ矾寰勫搴旂殑js
- import("../" + button.url + ".js").then(module => {
+ import(`../${button.url}`).then(module => {
module.doAction(options, callback);
})
} else {
- if (handlers[button.actionVO.id.toLowerCase()]) {
- handlers[button.actionVO.id.toLowerCase()]()
- } else {
- Vue.prototype.$message.error('鏈壘鍒板搴攁ction锛岃閲嶆柊閰嶇疆鎸夐挳锛�');
- }
+ //鎵ц閫氱敤action
+ handlerAction(button.actionVO.id.toLowerCase(),options, callback)
}
};
@@ -151,7 +148,7 @@
fnTarget(buttonParse,callback);
}else{
try {
- import("../"+buttonParse.jsPath+".js").then(module => {
+ import(`../${buttonParse.jsPath}.js`).then(module => {
module[buttonParse.methodName](options,callback);
})
} catch (error) {
@@ -179,7 +176,7 @@
fnTarget(buttonParse,callback,actionType);
}else{
try {
- import("../"+buttonParse.jsPath+".js").then(module => {
+ import(`../${buttonParse.jsPath}.js`).then(module => {
module[buttonParse.methodName](options,callback,actionType);
})
} catch (error) {
diff --git a/Source/ProjectWeb/src/components/actions/handlers.js b/Source/ProjectWeb/src/components/actions/handlers.js
index d6cd036..6380539 100644
--- a/Source/ProjectWeb/src/components/actions/handlers.js
+++ b/Source/ProjectWeb/src/components/actions/handlers.js
@@ -1,22 +1,31 @@
//棰勭疆action
-export const handlers = {
- //鏌ョ湅
- view: () => {import("@/components/actions/base/ViewAction").then(module => {
- module.doAction(options,callback);
- })},
- //鍒涘缓
- add: () => {import("@/components/actions/base/AddAction").then(module => {
- module.doAction(options,callback);
- })},
- //淇敼
- edit: () => {import("@/components/actions/base/EditAction").then(module => {
- module.doAction(options,callback);
- })},
- //鍒犻櫎
- delete: () => {import("@/components/actions/base/DeleteAction").then(module => {
- module.doAction(options,callback);
- })}, //鍒犻櫎
- del: () => {import("@/components/actions/base/DeleteAction").then(module => {
- module.doAction(options,callback);
- })},
+import Vue from "vue";
+
+export const handlerAction=function (type,options, callback) {
+ const handlers = {
+ //鏌ョ湅
+ view: () => {import("@/components/actions/base/ViewAction").then(module => {
+ module.doAction(options,callback);
+ })},
+ //鍒涘缓
+ add: () => {import("@/components/actions/base/AddAction").then(module => {
+ module.doAction(options,callback);
+ })},
+ //淇敼
+ edit: () => {import("@/components/actions/base/EditAction").then(module => {
+ module.doAction(options,callback);
+ })},
+ //鍒犻櫎
+ delete: () => {import("@/components/actions/base/DeleteAction").then(module => {
+ module.doAction(options,callback);
+ })}, //鍒犻櫎
+ del: () => {import("@/components/actions/base/DeleteAction").then(module => {
+ module.doAction(options,callback);
+ })},
+ };
+ if (handlers[type]) {
+ handlers[type]()
+ } else {
+ Vue.prototype.$message.error('鏈壘鍒板搴攁ction锛岃閲嶆柊閰嶇疆鎸夐挳锛�');
+ }
};
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
index e08c6b3..4cadbbc 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
@@ -10,6 +10,7 @@
:isEdit="canEdit"
:formData="form"
:initValue="paramVOS.initvalue"
+ :uploadattachment="paramVOS.uploadattachment || false"
@getFormData="getFormData">
</basic-form>
</div>
@@ -160,18 +161,6 @@
dataForm(this.params, this.paramVOS.getdataurl, this.paramVOS.getdatamethod).then(res => {
this.form = res.data.obj.data;
this.loading = false;
- this.$emit("setDataStore", {
- area: this.areasName,
- type: this.componentVO.uiComponentType,
- btmType: this.currentDefineVO.btmType,
- dataStore: [this.form]
- });
- this.$emit("setData", {
- area: this.areasName,
- type: this.componentVO.uiComponentType,
- currentDefineVO: this.currentDefineVO,
- data: this.form
- });
}).catch(error => {
this.loading = false;
});
@@ -183,6 +172,18 @@
},
getFormData(form) {
this.form = form;
+ this.$emit("setDataStore", {
+ area: this.areasName,
+ type: this.componentVO.uiComponentType,
+ btmType: this.currentDefineVO.btmType,
+ dataStore: [this.form]
+ });
+ this.$emit("setData", {
+ area: this.areasName,
+ type: this.componentVO.uiComponentType,
+ currentDefineVO: this.currentDefineVO,
+ data: this.form
+ });
}
}
}
diff --git a/Source/ProjectWeb/src/configDoc/Action.md b/Source/ProjectWeb/src/configDoc/Action.md
index 4ab6656..47a5102 100644
--- a/Source/ProjectWeb/src/configDoc/Action.md
+++ b/Source/ProjectWeb/src/configDoc/Action.md
@@ -6,13 +6,33 @@
鍙傛暟鍙湪鍙傛暟鍒楄〃閰嶇疆锛屼篃鍙湪鎸夐挳浣跨敤鏃堕厤缃�傚弬鏁颁俊鎭細
>* type锛氬垱寤虹晫闈㈢殑涓氬姟绫诲瀷锛屽繀濉�
->* context锛氬垱寤虹晫闈㈢殑UI涓婁笅鏂囷紝鏈塮orm鍙傛暟鏃惰鍊兼棤鏁堛�傝嫢UI涓婁笅鏂囦粎閰嶆湁琛ㄥ崟灞曠ず锛屽垯娣诲姞寮圭獥浼氶粯璁ゆ湁淇濆瓨鎸夐挳
>* form锛氭坊鍔犵殑琛ㄥ崟瀵硅薄锛屽繀椤昏閰嶇疆form鎴栬�卌ontext锛屼紭鍏堜娇鐢╢orm
+>* context锛氬垱寤虹晫闈㈢殑UI涓婁笅鏂囷紝鏈塮orm鍙傛暟鏃惰鍊兼棤鏁堛�傝嫢UI涓婁笅鏂囦粎閰嶆湁琛ㄥ崟灞曠ず锛屽垯娣诲姞寮圭獥浼氶粯璁ゆ湁淇濆瓨鎸夐挳
+>* useDataType锛氫娇鐢║I涓婁笅鏂囦腑鐨勫摢涓被鍨嬫暟鎹�,鍊兼湁form銆乼ree銆乼able銆乀reeTable锛屼笉濉椂榛樿涓篺orm
>* initvalue锛氳〃鍗曢璁緑alue锛岄潪蹇呭~銆傛牸寮忕ず渚嬶細rootoid=root.${oid}&rootname=root.${name}&name=${name}銆乻ourceoid=sourceData.${oid}&sourcename=sourceData.${name}&oid=${oid}&name=${name}
>* needselect锛氭槸鍚﹀繀椤婚�夋嫨鏁版嵁锛屼笌initvalue閰嶅悎浣跨敤銆�
鍊间负false鏃跺厑璁竔nitvalue瀵瑰簲鐨勫睘鎬у�间负绌恒��
鍊间负true鎴栬�呮湭閰嶇疆鍙傛暟鍒欏繀椤绘湁涓婁笅鏂囩殑sourceData鎴杁ataStore锛岀敤浠ヤ笌initvalue寤虹珛鏄犲皠鍏崇郴
-
+>* url: 鍒涘缓鐣岄潰鐨勪繚瀛樻寜閽姹傝矾寰勶紝榛樿'uiDataController/addSave'
+>* method: 鍒涘缓鐣岄潰鐨勪繚瀛樻寜閽姹傝矾寰勭被鍨嬶紝榛樿'post'
+>* uploadfileurl: 鏈夋枃浠朵笂浼犳椂鍙厤缃紝榛樿'vciFileUploadController/uploadFile'
+>* accept锛氭湁鏂囦欢涓婁紶鏃跺彲閰嶇疆
+>* exts锛氭湁鏂囦欢涓婁紶鏃跺彲閰嶇疆
+>* uploadattachment锛氭湁闄勪欢涓婁紶鏃堕』閰嶇疆锛屾槸鍚︽樉绀轰笂浼犻檮浠讹紝榛樿false
+>* preevent锛氬脊绐楀墠缃簨浠讹紝閰嶇疆鍓嶇疆浜嬩欢鐨刯s鍦板潃锛屽"preevent.js"銆佲�渪xx/preevent.js鈥濓紝鏂囦欢鏀惧湪src/components/actions涓�>* preevent锛氬脊绐楀墠缃簨浠讹紝閰嶇疆鍓嶇疆浜嬩欢鐨刯s鍦板潃锛屽"preevent.js"銆佲�渪xx/preevent.js鈥濓紝鏂囦欢鏀惧湪src/components/actions涓�
+>* afterevent锛氬脊绐楀悗缃簨浠讹紝閰嶇疆鍚庣疆浜嬩欢鐨刯s鍦板潃锛屽"afterevent.js"銆佲�渪xx/afterevent.js鈥濓紝鏂囦欢鏀惧湪src/components/actions涓�
+>*
### edit锛屼慨鏀�
+
+>* type锛氫慨鏀圭晫闈㈢殑涓氬姟绫诲瀷锛屽繀濉�
+>* form锛氫慨鏀圭殑琛ㄥ崟瀵硅薄锛屽繀椤昏閰嶇疆form鎴栬�卌ontext锛屼紭鍏堜娇鐢╢orm
+>* context锛氫慨鏀圭晫闈㈢殑UI涓婁笅鏂囷紝鏈塮orm鍙傛暟鏃惰鍊兼棤鏁堛�傝嫢UI涓婁笅鏂囦粎閰嶆湁琛ㄥ崟灞曠ず锛屽垯淇敼寮圭獥浼氶粯璁ゆ湁淇濆瓨鎸夐挳
+>* useDataType锛氫娇鐢║I涓婁笅鏂囦腑鐨勫摢涓被鍨嬫暟鎹�,鍊兼湁form銆乼ree銆乼able銆乀reeTable锛屼笉濉椂榛樿涓篺orm
+>* initvalue锛氳〃鍗曢璁緑alue锛岄潪蹇呭~銆傛牸寮忕ず渚嬶細rootoid=root.${oid}&rootname=root.${name}&name=${name}銆乻ourceoid=sourceData.${oid}&sourcename=sourceData.${name}&oid=${oid}&name=${name}
+>* needselect锛氭槸鍚﹀繀椤婚�夋嫨鏁版嵁锛屼笌initvalue閰嶅悎浣跨敤銆�
+ 鍊间负false鏃跺厑璁竔nitvalue瀵瑰簲鐨勫睘鎬у�间负绌恒��
+ 鍊间负true鎴栬�呮湭閰嶇疆鍙傛暟鍒欏繀椤绘湁涓婁笅鏂囩殑sourceData鎴杁ataStore锛岀敤浠ヤ笌initvalue寤虹珛鏄犲皠鍏崇郴
+
### del锛屽垹闄�
+
### view锛屾煡鐪�
diff --git a/Source/ProjectWeb/src/configDoc/Action/img_edit.png b/Source/ProjectWeb/src/configDoc/Action/img_edit.png
new file mode 100644
index 0000000..de52bd7
--- /dev/null
+++ b/Source/ProjectWeb/src/configDoc/Action/img_edit.png
Binary files differ
--
Gitblit v1.9.3