From f5f8aaedd1d488fb20a293182dd7a40e2e82096e Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 30 四月 2024 12:20:44 +0800
Subject: [PATCH] 添加action

---
 Source/ProjectWeb/src/components/actions/AddEditDialog.vue |  117 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 82 insertions(+), 35 deletions(-)

diff --git a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
index 3d288d5..11347ab 100644
--- a/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
+++ b/Source/ProjectWeb/src/components/actions/AddEditDialog.vue
@@ -15,7 +15,8 @@
                 :style="fullscreen?'':'height:'+height"
                 :isEdit="true"
                 :formItems="formItems"
-                :formData="form">
+                :formData="form"
+                @getFormData="getFormData">
     </basic-form>
     <ui-view ref="uiViewRef" v-else-if="paramVOS.context"
              :key="'AddEditDialog-'+type"
@@ -27,9 +28,11 @@
              :sourceData="sourceData"
              :dataStore="dataStore"
              :paramVOS="paramVOS"
+             @getFormData="getFormData"
     ></ui-view>
     <div v-if="showSave" class="dialog-footer avue-dialog__footer">
-      <el-button type="primary" plain size="small" @click="saveHandler">淇� 瀛�</el-button>
+      <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" v-if="paramVOS.form">閲� 缃�</el-button>
     </div>
@@ -38,6 +41,7 @@
 
 <script>
 import uiView from "@/views/base/UIContentViewerInDialog"
+import {parseEventByUrl} from "@/actions/base/BaseAction"
 import {getFormDefineById,dataForm} from "@/api/base/ui";
 import {addSave,editSave} from "@/api/base/actions"
 import {validatenull} from "@/util/validate"
@@ -68,7 +72,10 @@
       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:{
@@ -160,57 +167,97 @@
 
       }
     },
-    saveHandler() {
-      if(this.paramVOS.form){
-        this.$refs.formRef.validate((valid, done) => {
-          if (valid) {
-            this.saveValue(this.form)
-          } else {
-
-          }
-        });
-      }else{
-        //this.$refs.uiViewRef.
-        debugger;
-        if(this.saveCallback){
-          this.saveCallback({});
-        }
+    contextSave(){
+      debugger;
+      if(this.saveCallback){
+        this.saveCallback({});
       }
-
     },
-    saveValue(savedata){
-      if(this.type=="add"){
-        addSave(savedata,this.paramVOS.url,this.paramVOS.method).then(() => {
-          this.$message({
+    formSave() {
+      let that=this;
+      this.$refs.formRef.validate((valid, done) => {
+        if (valid) {
+          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.paramVOS.form,
+        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: "淇濆瓨鎴愬姛!"
           });
-          if(this.saveCallback){
-            this.saveCallback(savedata);
+          if(that.saveCallback){
+            that.saveCallback(that.form);
           }
-          this.dialogClose();
-        }).error((e) => {
-          this.$message.error(e||"淇濆瓨澶辫触")
+          that.dialogClose();
         });
       }else{
-        editSave(savedata,this.paramVOS.url,this.paramVOS.method).then(() => {
-          this.$message({
+        editSave(that.form,that.paramVOS.url,that.paramVOS.method).then(() => {
+          that.$message({
             type: "success",
             message: "淇敼鎴愬姛!"
           });
-          if(this.saveCallback){
-            this.saveCallback(savedata);
+          if(that.saveCallback){
+            that.saveCallback(that.form);
           }
-          this.dialogClose();
-        }).error((e) => {
-          this.$message.error(e||"淇敼澶辫触")
+          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() {
       if (this.paramVOS.form) {
         this.$refs.formRef.resetFields();
       }
+    },
+    getFormData(form) {
+      this.form = form;
     }
   }
 }

--
Gitblit v1.9.3