From d7e3c8a813f8f85c89c06782f1e36e8089ffc31b Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期四, 09 一月 2025 11:42:06 +0800
Subject: [PATCH] 集成模块回车查询报错问题

---
 Source/UBCS-WEB/src/views/docking/infoForm.vue |  638 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 464 insertions(+), 174 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/docking/infoForm.vue b/Source/UBCS-WEB/src/views/docking/infoForm.vue
index e450714..589f402 100644
--- a/Source/UBCS-WEB/src/views/docking/infoForm.vue
+++ b/Source/UBCS-WEB/src/views/docking/infoForm.vue
@@ -1,138 +1,212 @@
 <template>
   <el-container>
-    <el-dialog title="绯荤粺闆嗘垚鍩虹淇℃伅" v-dialogDrag :visible.sync="showSubmitDialog" class="avue-dialog avue-dialog--top" append-to-body @close="closeSubmitDialog" width="1000px"
-               style="height: 100vh;" top="-5%">
-      <el-form ref="form" :model="formData" show-message="true" inline size="medium" label-suffix=":"
-               class="dockingForm" :rules="rules" @resetFields="resetForm" status-icon="true">
-        <el-form-item label="鎺ュ彛绫诲瀷" prop="interfaceType">
-          <el-select v-model="formData.interfaceType" placeholder="璇烽�夋嫨鎺ュ彛绫诲瀷" @change="typeSelectChange">
-            <el-option v-for="item in interfaceTypeList" :key="item.value" :label="item.label" :value="item.value">
+    <el-dialog v-dialogDrag :visible.sync="showSubmitDialog" append-to-body class="avue-dialog avue-dialog--top"
+               style="height: 110vh;" title="绯荤粺闆嗘垚鍩虹淇℃伅" top="-5%"
+               width="1000px" @close="closeSubmitDialog">
+      <el-form ref="form" :model="formData" :rules="rules" class="dockingForm" inline label-suffix=":"
+               show-message="true" size="medium" status-icon="true">
+        <el-form-item label="鎺ュ彛绫诲瀷" prop="dataFlowType">
+          <el-select v-model="formData.dataFlowType" :disabled="formData.type == 'edit'" placeholder="璇烽�夋嫨"
+                     @change="dataFlowTypeChange">
+            <el-option v-for="item in dataFlowTypeList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="formData.dataFlowType=='push'?'鎺ㄩ�佺被鍨�':'鎺ユ敹绫诲瀷'" prop="pushType">
+          <el-select v-model="formData.pushType" placeholder="璇烽�夋嫨" @change="pushTypeChange">
+            <el-option v-for="item in pushTypeList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="鍙傛暟绫诲瀷" prop="paramType">
-          <el-select v-model="formData.paramType" placeholder="璇烽�夋嫨鍙傛暟绫诲瀷" @change="typeSelectChange">
+          <el-select v-model="formData.paramType" placeholder="璇烽�夋嫨">
             <el-option v-for="item in paramTypeList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="杩斿洖鍊肩被鍨�" prop="returnType">
-          <el-select v-model="formData.returnType" placeholder="璇烽�夋嫨杩斿洖鍊肩被鍨�" @change="typeSelectChange">
+          <el-select v-model="formData.returnType" placeholder="璇烽�夋嫨">
             <el-option v-for="item in returnTypeList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="鎺ㄩ�佺被鍨�" prop="pushType">
-          <el-select v-model="formData.pushType" placeholder="璇烽�夋嫨鎺ㄩ�佺被鍨�" @change="typeSelectChange">
-            <el-option v-for="item in pushTypeList" :key="item.value" :label="item.label" :value="item.value">
+        <el-form-item label="鍐呭绫诲瀷" prop="contentType">
+          <el-select v-model="formData.contentType" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in contentTypeList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="鍒嗙被閫夋嫨" prop="classifyName">
-          <vciWebRefer
-            :referConfig="{
+        <el-divider></el-divider>
+        <div v-if="formData.dataFlowType=='push'">
+          <el-form-item label="鍒嗙被閫夋嫨" prop="classifyName">
+            <vciWebRefer
+              key="classifyName" :disabled="false"
+              :display="true"
+              :referConfig="{
                   title: '鍒嗙被閫夋嫨',
                   showField: 'classifyName',
                   field: 'classifyOid',
                   fieldMap:{'classifyId':'id'},
                   placeholder: '璇烽�夋嫨鍒嗙被閫夋嫨',
-                  options: {isMuti: false, type: 'tree', url: 'api/ubcs-code/codeClassify/referTree'},
+                  options: {isMuti: false, type: 'tree', url: 'api/ubcs-code/codeClassify/treeCodeClassify'},
                 }"
-            :value="formData.classifyOid"
-            :text="formData.classifyName"
-            :disabled="false"
-            :display="true"
-            @setReferValue="setReferValue"
-          ></vciWebRefer>
-        </el-form-item>
-        <el-form-item label="鎺ㄩ�佺郴缁�" prop="sourceSysName">
-          <vciWebRefer
-            :referConfig="{
-                  title: '鎺ㄩ�佺郴缁�',
-                  showField: 'sourceSysName',
+              :text="formData.classifyName"
+              :value="formData.classifyOid"
+              data-key="classifyName"
+              @setReferValue="setReferValue"
+            ></vciWebRefer>
+          </el-form-item>
+          <el-form-item label="闆嗘垚绯荤粺" prop="targetSystemName">
+            <vciWebRefer
+              key="targetSystemName" :disabled="false"
+              :display="true"
+              :referConfig="{
+                  title: '闆嗘垚绯荤粺',
+                  showField: 'targetSystemName',
+                  field: 'targetSystemOid',
+                  fieldMap:{'targetSystemId':'id'},
+                  placeholder: '璇烽�夋嫨',
+                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/dockingManagement/gridDockingSystem'},
+                }"
+              :text="formData.targetSystemName"
+              :value="formData.targetSystemOid"
+              data-key="targetSystemName"
+              @setReferValue="setReferValue"
+            ></vciWebRefer>
+          </el-form-item>
+        </div>
+        <div v-else>
+          <!--          <el-form-item  label="鍒嗙被閫夋嫨" prop="classifyName" style="display: none">-->
+          <!--          </el-form-item>-->
+          <el-form-item v-if="formData.pushType !='5' && formData.pushType !='6'" label="鍒嗙被閫夋嫨" prop="classifyName">
+            <vciWebRefer
+              key="classifyName" :disabled="false"
+              :display="true"
+              :referConfig="{
+                  title: '鍒嗙被閫夋嫨',
+                  showField: 'classifyName',
+                  field: 'classifyOid',
+                  fieldMap:{'classifyId':'id'},
+                  placeholder: '璇烽�夋嫨鍒嗙被閫夋嫨',
+                  options: {isMuti: false, type: 'tree', url: 'api/ubcs-code/codeClassify/treeCodeClassify'},
+                }"
+              :text="formData.classifyName"
+              :value="formData.classifyOid"
+              data-key="classifyName"
+              @setReferValue="setReferValue"
+            ></vciWebRefer>
+          </el-form-item>
+          <el-form-item label="闆嗘垚绯荤粺" prop="sourceSystemName">
+            <vciWebRefer
+              key="sourceSystemName" :disabled="false"
+              :display="true"
+              :referConfig="{
+                  title: '闆嗘垚绯荤粺',
+                  showField: 'sourceSystemName',
                   field: 'sourceSystemOid',
-                  fieldMap:{'sourceSysId':'id'},
-                  placeholder: '璇烽�夋嫨鎺ㄩ�佺郴缁�',
-                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeClassify/referTree'},
+                  fieldMap:{'sourceSystemId':'id'},
+                  placeholder: '璇烽�夋嫨',
+                  options: {isMuti: false, type: 'default', url: referUrl},
                 }"
-            :value="formData.sourceSystemOid"
-            :text="formData.sourceSysName"
-            :disabled="false"
-            :display="true"
-            @setReferValue="setReferValue"
-          ></vciWebRefer>
+              :text="formData.sourceSystemName"
+              :value="formData.sourceSystemOid"
+              data-key="sourceSystemName"
+              @setReferValue="setReferValue"
+            ></vciWebRefer>
+          </el-form-item>
+          <el-form-item label="鎺ュ彛鏂瑰紡" prop="interfaceType">
+            <el-select v-model="formData.interfaceType" clearable placeholder="璇烽�夋嫨">
+              <el-option v-for="item in interfaceTypeList" :key="item.value" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <el-form-item label="绯荤粺鎻忚堪" prop="description" style="width: 850px;">
+          <el-input v-model="formData.description" :autosize="{ minRows: 2, maxRows: 5}" style="width: 740px;"
+                    type="textarea"></el-input>
         </el-form-item>
-        <el-form-item label="绯荤粺鎻忚堪" >
-          <el-input type="textarea" :rows="2" v-model="formData.description"></el-input>
-        </el-form-item>
-        <el-form-item label="璇锋眰鏂瑰紡" prop="requestMethod">
-          <el-select v-model="formData.requestMethod" placeholder="璇烽�夋嫨璇锋眰鏂瑰紡" @change="typeSelectChange">
+        <el-form-item v-if="formData.interfaceType=='http'" label="璇锋眰鏂瑰紡" prop="requestMethod">
+          <el-select v-model="formData.requestMethod" placeholder="璇烽�夋嫨">
             <el-option v-for="item in requestMethodList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="璇锋眰鍦板潃" prop="requestUrl">
+        <el-form-item v-if="formData.interfaceType=='webService' || formData.interfaceType=='http'" label="璇锋眰鍦板潃"
+                      prop="requestUrl">
           <el-input v-model="formData.requestUrl" type="text"></el-input>
         </el-form-item>
-        <el-form-item label="鎺ュ彛鍑芥暟" prop="interfaceFunction">
+        <el-form-item v-if="formData.interfaceType=='webService'" label="鎺ュ彛鍑芥暟" prop="interfaceFunction">
           <el-input v-model="formData.interfaceFunction"></el-input>
         </el-form-item>
-        <el-form-item label="鍛藉悕绌洪棿" prop="nameSpace">
-          <el-input v-model="formData.namespace"></el-input>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="鍛藉悕绌洪棿" prop="nameSpace">
+          <el-input v-model="formData.nameSpace"></el-input>
         </el-form-item>
-        <el-form-item label="soapaction" prop="soapaction">
-          <el-input v-model="formData.soapaction" ></el-input>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="soapAction" prop="soapAction">
+          <el-input v-model="formData.soapAction"></el-input>
         </el-form-item>
-        <el-form-item label="鍙傛暟鍚嶇О" prop="targName">
-          <el-input v-model="formData.targName" ></el-input>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="鍙傛暟鍚嶇О" prop="targetName">
+          <el-input v-model="formData.targetName"></el-input>
         </el-form-item>
-        <el-form-item label="cxfaxis" prop="cxfaxis">
-          <el-input v-model="formData.soapaction" ></el-input>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="cxfaxis" prop="cxfaxis">
+          <el-input v-model="formData.cxfaxis"></el-input>
         </el-form-item>
-        <el-form-item label="绫昏矾寰�" prop="classPath">
-          <el-input v-model="formData.classPath" ></el-input>
+        <el-form-item v-if="formData.interfaceType=='classPath'" label="绫昏矾寰�" prop="classPath">
+          <el-input v-model="formData.classPath"></el-input>
         </el-form-item>
-        <el-tabs v-model="activeName" @tab-click="handleClick" stretch="true">
+        <el-form-item v-if="showFormItem" :label="GroupLabel" prop="isGroupCodeFlag">
+          <el-switch v-model="groupCode" @change="handleSwitchChange"></el-switch>
+        </el-form-item>
+        <el-tabs v-model="activeName" @tab-click="tabClick">
           <el-tab-pane label="鍙傛暟瀵硅薄" name="paramTab">
-            <avue-crud :option="param.option"
-                       :data="param.data"
+            <avue-crud ref="paramcrud"
                        v-model="formData.sysIntParamVOs"
-                       ref="paramcrud">
+                       :data="formData.sysIntParamVOs"
+                       :option="param.option">
               <template slot="menuLeft">
-                <el-button type="primary"
-                           size="small"
+                <el-button icon="el-icon-plus"
                            plain
-                           icon="el-icon-plus"
+                           size="small"
+                           type="primary"
                            @click="handleParamAdd">娣诲姞琛�
                 </el-button>
               </template>
-              <template slot-scope="scope" slot="menu">
-                <el-button type="text"
-                           icon="el-icon-delete"
-                           size="small"
-                           @click="handleParamDel(scope.row)">绉婚櫎
+              <template slot="menu" slot-scope="{row,index}">
+                <el-button v-if="!row.$cellEdit" icon="el-icon-edit" size="small" type="text"
+                           @click="handleParamEditClick(row,index)">缂栬緫
+                </el-button>
+                <el-button v-if="!row.$cellEdit" icon="el-icon-delete" size="small" type="text"
+                           @click="handleParamDel(row,index)">绉婚櫎
+                </el-button>
+                <el-button v-if="row.$cellEdit" icon="el-icon-check" size="small" type="text"
+                           @click="handleParamEditSave(row,index)">
+                  淇濆瓨
                 </el-button>
               </template>
             </avue-crud>
           </el-tab-pane>
           <el-tab-pane label="header瀵硅薄" name="headerTab">
-            <avue-crud :option="header.option"
-                       :data="header.data"
+            <avue-crud ref="headercrud"
                        v-model="formData.sysIntHeaderVOs"
-                       ref="paramcrud">
+                       :data="formData.sysIntHeaderVOs"
+                       :option="header.option">
               <template slot="menuLeft">
-                <el-button type="primary"
-                           size="small"
+                <el-button icon="el-icon-plus"
                            plain
-                           icon="el-icon-plus"
+                           size="small"
+                           type="primary"
                            @click="handleHeaderAdd">娣诲姞琛�
                 </el-button>
               </template>
-              <template slot-scope="scope" slot="menu">
-                <el-button type="text"
-                           icon="el-icon-delete"
-                           size="small"
-                           @click="handleHeaderDel(scope.row)">绉婚櫎
+              <template slot="menu" slot-scope="{row,index}">
+                <el-button v-if="!row.$cellEdit" icon="el-icon-edit" size="small" type="text"
+                           @click="handleHeaderEditClick(row,index)">缂栬緫
+                </el-button>
+                <el-button v-if="!row.$cellEdit" icon="el-icon-delete" size="small" type="text"
+                           @click="handleHeaderDel(row,index)">绉婚櫎
+                </el-button>
+                <el-button v-if="row.$cellEdit" icon="el-icon-check" size="small" type="text"
+                           @click="handleHeaderEditSave(row,index)">
+                  淇濆瓨
                 </el-button>
               </template>
             </avue-crud>
@@ -141,7 +215,6 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitAttribute">纭畾</el-button>
-        <el-button @click="cancelSubmit">鍙栨秷</el-button>
       </div>
     </el-dialog>
 
@@ -149,20 +222,27 @@
 </template>
 
 <script>
-import { getDictionary, getParentList } from '@/api/omd/enum'
-import {add,edit} from "@/api/docking/info"
+import {validatenull} from "@/util/validate";
+import {getDictionary, getParentList} from '@/api/omd/enum'
+import {add, edit} from "@/api/docking/info"
 import vciWebRefer from "@/components/refer/vciWebRefer.vue";
 
 export default {
   name: 'infoForm',
   props: {
     formData: {
-      type: Object
+      type: Object,
+      default: {
+        sysIntParamVOs: [],
+        sysIntHeaderVOs: []
+      }
     },
   },
-  components: { vciWebRefer },
+  components: {vciWebRefer},
   data() {
     return {
+      groupCode: false,
+      referUrl: '/api/ubcs-code/dockingManagement/gridDockingSystem',
       showSubmitDialog: false,
       //鎺ュ彛绫诲瀷涓嬫媺
       interfaceTypeList: [{
@@ -173,36 +253,40 @@
         label: 'Http', value: 'http'
       }],
       //鍙傛暟绫诲瀷涓嬫媺
-      paramTypeList:[ {
-          label: 'xml', value: 'xml'
-        }, {
-          label: 'Json', value: 'json'
-        }],
-      //杩斿洖鍊肩被鍨嬩笅鎷�
-      returnTypeList:[ {
+      paramTypeList: [{
         label: 'xml', value: 'xml'
       }, {
         label: 'Json', value: 'json'
       }],
+      //杩斿洖鍊肩被鍨嬩笅鎷�
+      returnTypeList: [{
+        label: 'xml', value: 'xml'
+      }, {
+        label: 'Json', value: 'json'
+      }],
+      //鍐呭绫诲瀷
+      contentTypeList: [{
+        label: 'application/json', value: 'application/json'
+      }, {
+        label: 'application/x-www-form-urlencoded', value: 'application/x-www-form-urlencoded'
+      }, {
+        label: 'multipart/form-data', value: 'multipart/form-data'
+      }],
+      dataFlowTypeList: [{
+        label: '鎺ㄩ��', value: 'push'
+      }, {
+        label: '鎺ユ敹', value: 'accept'
+      }],
       //鎺ㄩ�佺被鍨�
-      pushTypeList: [{key: '1', value: '鏁版嵁鎺ㄩ��'},
-        {key: '2', value: '鍒嗙被鎺ㄩ��'},
-        {key: '3', value: '缂栫爜鐢宠'},
-        {key: '4', value: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
-        {key: '5', value: '鍒嗙被鏌ヨ'},
-        {key: '6', value: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
-        {key: '7', value: '鏁版嵁鏌ヨ'}],
+      pushTypeList: [{value: '1', label: '鏁版嵁鎺ㄩ��'},
+        {value: '2', label: '鍒嗙被鎺ㄩ��'}],
       //璇锋眰鏂瑰紡
-      requestMethodList:[{key: 'post', value: 'post'},
+      requestMethodList: [{key: 'post', value: 'post'},
         {key: 'get', value: 'get'},
         {key: 'delete', value: 'delete'},
         {key: 'put', value: 'put'}],
       // 榛樿鐨勯〉绛�
       activeName: 'paramTab',
-      // 灞炴�х被鍨嬩笅鎷夋鏁版嵁
-      typeList: [],
-      // 鍙傜収涓嬫媺妗嗘槸鍚﹀彲鐢�
-      referToFlag: true,
       // 琛ㄥ崟鏍¢獙瑙勫垯
       rules: {
         paramType: [
@@ -211,14 +295,20 @@
         returnType: [
           {required: true, message: '璇烽�夋嫨杩斿洖鍊肩被鍨�', trigger: 'blur'}
         ],
+        dataFlowType: [
+          {required: true, message: '璇烽�夋嫨', trigger: 'change'}
+        ],
         pushType: [
-          {required: true, message: '璇烽�夋嫨鎺ㄩ�佺被鍨�', trigger: 'change'}
+          {required: true, message: '璇烽�夋嫨鎺ㄩ�佺被鍨�', trigger: 'blur'}
         ],
         classifyName: [
-          {required: true, message: '璇烽�夋嫨鎺ㄩ�佺郴缁�', trigger: 'blur'}
+          {required: true, message: '璇烽�夋嫨', trigger: 'submit'}
         ],
-        sourceSysName: [
-          {required: true, message: '璇烽�夋嫨鍒嗙被閫夋嫨', trigger: 'blur'}
+        sourceSystemName: [
+          {required: true, message: '璇烽�夋嫨', trigger: 'submit'}
+        ],
+        targetSystemName: [
+          {required: true, message: '璇烽�夋嫨', trigger: 'submit'}
         ],
         classPath: [
           {required: true, message: '璇疯緭鍏ョ被璺緞', trigger: 'blur'}
@@ -235,100 +325,209 @@
         nameSpace: [
           {required: true, message: '璇疯緭鍏ュ懡鍚嶇┖闂�', trigger: 'blur'}
         ],
-        soapaction: [
-          {required: true, message: '璇疯緭鍏oapaction', trigger: 'blur'}
+        soapAction: [
+          {required: true, message: '璇疯緭鍏oapAction', trigger: 'blur'}
         ],
-        targName: [
+        targetName: [
           {required: true, message: '璇疯緭鍏ュ弬鏁板悕绉�', trigger: 'blur'}
         ],
         cxfaxis: [
           {required: true, message: '璇疯緭鍏xfaxis', trigger: 'blur'}
+        ],
+        contentType: [
+          {required: true, message: '璇烽�夋嫨contentType', trigger: 'submit'}
         ]
       },
       // 琛ㄦ牸閰嶇疆
       param: {
         option: {
           height: 200,
+          index: true,
           addBtn: false,
           viewBtn: false,
           delBtn: false,
           editBtn: false,
           refreshBtn: false,
           columnBtn: false,
-          menu: false,
           border: true,
+          menuWidth: 150,
           searchShowBtn: false,
+          align: 'center',
           column: [{
             label: '鍙傛暟鍚�',
-            prop: 'paramKey'
+            prop: 'paramKey',
+            cell: true
           }, {
             label: '鍙傛暟鍊�',
-            prop: 'paramValue'
+            prop: 'paramValue',
+            cell: true
           }, {
             label: '鏄惁浣跨敤',
             prop: 'usedFlag',
-            dicData: [{
-              label: '鏄�', value: 'true'
-            }, {
-              label: '鍚�', value: 'false'
-            }]
+            formatter: function (row, column) {
+              return row.usedFlag == 'true' || row.usedFlag == '1' ? '鏄�' : '鍚�'
+            },
+            width: 150,
+            type: 'switch',
+            cell: true
           }]
         },
-        data: [],
         selectRow: {}
       },
       // 鏋氫妇鍙傜収琛ㄦ牸閰嶇疆
       header: {
         option: {
           height: 200,
+          index: true,
           addBtn: false,
           viewBtn: false,
           delBtn: false,
           editBtn: false,
           refreshBtn: false,
-          menu: false,
+          columnBtn: false,
           border: true,
+          menuWidth: 150,
           searchShowBtn: false,
+          align: 'center',
           column: [{
             label: '澶村弬鏁板悕绉�',
-            prop: 'headerKey'
+            prop: 'headerKey',
+            cell: true
           }, {
             label: '澶村弬鏁板��',
-            prop: 'headerValue'
+            prop: 'headerValue',
+            cell: true
           }, {
             label: '鏄惁浣跨敤',
             prop: 'usedFlag',
-            dicData: [{
-              label: '鏄�', value: 'true'
-            }, {
-              label: '鍚�', value: 'false'
-            }]
+            formatter: function (row, column) {
+              return row.usedFlag == 'true' || row.usedFlag == '1' ? '鏄�' : '鍚�'
+            },
+            width: 150,
+            type: 'switch',
+            cell: true
           }],
-          data: [],
           // 閫夊畾琛�
           selectRow: ''
         },
-        dictEnums: []
+        dictEnums: [],
+
       }
     }
   },
+  watch: {
+    formData: {
+      handler(newval, oldval) {
+        // console.log(newval)
+        if (newval && newval.type === 'edit') {
+          if (this.formData.dataFlowType == 'accept') {
+            this.pushTypeList = [
+              {value: '3', label: '缂栫爜鐢宠'},
+              {value: '4', label: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
+              {value: '5', label: '鍒嗙被鏌ヨ'},
+              {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
+              {value: '7', label: '鏁版嵁鏌ヨ'}
+            ];
+            this.$nextTick(() => {
+              // this.formData.pushType = '';
+              this.formData.targetSystemName = '缂栫爜绯荤粺';
+              this.formData.targetSystemOid = 'code00000001';
+              this.formData.targetSystemId = 'CODE';
+
+              // this.formData.sourceSystemName = '';
+              // this.formData.sourceSystemOid = '';
+              // this.formData.sourceSystemId = '';
+            });
+          } else {
+            this.pushTypeList = [
+              {value: '1', label: '鏁版嵁鎺ㄩ��'},
+              {value: '2', label: '鍒嗙被鎺ㄩ��'}
+            ];
+            this.$nextTick(() => {
+              this.formData.pushType = '1';
+              this.formData.sourceSystemName = '缂栫爜绯荤粺';
+              this.formData.sourceSystemOid = 'code00000001';
+              this.formData.sourceSystemId = 'CODE';
+              // this.formData.targetSystemName = '';
+              // this.formData.targetSystemOid = '';
+              // this.formData.targetSystemId = '';
+            });
+          }
+        }
+      }
+    },
+  },
+  computed: {
+    showFormItem() {
+      return ["1", "3", "4", "7"].includes(this.formData.pushType);
+    },
+    GroupLabel() {
+      if (this.formData.pushType === "1") {
+        return "鏄惁鎺ㄩ�侀泦鍥㈢爜";
+      } else if (this.formData.pushType === "3") {
+        return "鏄惁鐢宠闆嗗洟鐮�";
+      } else if (this.formData.pushType === "4") {
+        return "鏄惁缁存姢闆嗗洟鐮�";
+      } else if (this.formData.pushType === "7") {
+        return "鏄惁鏌ヨ闆嗗洟鐮�";
+      }
+    },
+  },
   created() {
     //this.geDictData('interfaceType', this.interfaceTypeList)
+  },
+  mounted() {
+    if (!this.formData.sysIntParamVOs) {
+      this.formData.sysIntParamVOs = [];
+    }
+    if (!this.formData.sysIntHeaderVOs) {
+      this.formData.sysIntHeaderVOs = [];
+    }
+    if (this.formData.dataFlowType == 'accept') {
+      this.pushTypeList = [
+        {value: '3', label: '缂栫爜鐢宠'},
+        {value: '4', label: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
+        {value: '5', label: '鍒嗙被鏌ヨ'},
+        {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
+        {value: '7', label: '鏁版嵁鏌ヨ'}]
+      // this.formData.pushType=''
+      this.formData.targetSystemName = '缂栫爜绯荤粺';
+      this.formData.targetSystemOid = 'code00000001';
+      this.formData.targetSystemId = 'CODE';
 
+      this.formData.sourceSystemName = '';
+      this.formData.sourceSystemOid = '';
+      this.formData.sourceSystemId = '';
+    } else {
+      this.pushTypeList = [{value: '1', label: '鏁版嵁鎺ㄩ��'},
+        {value: '2', label: '鍒嗙被鎺ㄩ��'}]
+      this.formData.pushType = '1';
+      this.formData.sourceSystemName = '缂栫爜绯荤粺';
+      this.formData.sourceSystemOid = 'code00000001';
+      this.formData.sourceSystemId = 'CODE';
+      this.formData.targetSystemName = '';
+      this.formData.targetSystemOid = '';
+      this.formData.targetSystemId = '';
+    }
   },
   methods: {
+    handleSwitchChange(newValue) {
+      this.groupCode = newValue;
+      this.formData.isGroupCodeFlag = newValue.toString();
+    },
     closeSubmitDialog() {
-      this.resetForm();
+      // this.resetForm();
       this.showSubmitDialog = false;
+      // this.$refs.form.resetFields()
+      this.formData = {}
+      this.$refs.form.clearValidate()
     },
     resetForm() {
       this.formData = {
-        nullable: true,
-        referTypeKey: '',
+        sysIntParamVOs: [],
+        sysIntHeaderVOs: []
       };
-      this.referToFlag = true;
       this.$refs.form.resetFields();
-      this.dictEnums = [];
     },
     setReferValue(data) {
       if (data.field) {
@@ -371,46 +570,59 @@
           this.formData[key] = value.join(',');
         }
       }
-    }
-    ,
+    },
     submitAttribute() {
       const that = this;
-      this.$refs.form.validate(function (pass, field) {
+      let pass = true
+      if (this.formData.dataFlowType == 'push' && (validatenull(this.formData.classifyName) || validatenull(this.formData.targetSystemName))) {
+        that.$message.error('蹇呭~椤逛笉鑳戒负绌�');
+        pass = false
+        return;
+      }
+      if (this.formData.dataFlowType == 'accept' && (validatenull(this.formData.sourceSystemName))) {
+        that.$message.error('闆嗘垚绯荤粺涓嶈兘涓虹┖');
+        pass = false
+        return;
+      }
+      this.$refs.form.validateField(['paramType', 'returnType', 'dataFlowType', 'pushType', 'classPath', 'requestMethod', 'requestUrl',
+        'interfaceFunction', 'nameSpace', 'soapAction', 'targetName', 'cxfaxis'], function (errormsg, field) {
+        if (errormsg) {
+          pass = false
+        }
+      })
+      this.$nextTick(function () {
         if (pass) {
-          add(that.formData).then(res => {
-            that.$message.success("淇濆瓨鎴愬姛");
+          that.formData.sysIntParamDTOS = this.formData.sysIntParamVOs.map(item => {
+            return {
+              ...item,
+              ordernNo: item.$index
+            }
+          })
+          that.formData.sysIntHeaderDTOS = this.formData.sysIntHeaderVOs.map(item => {
+            return {
+              ...item,
+              ordernNo: item.$index
+            }
+          })
+          const apiCall = that.formData.type == 'edit' ? edit : add;
+          const Message = that.formData.type == 'edit' ? "淇敼鎴愬姛" : "淇濆瓨鎴愬姛";
+          // console.log( that.formData)
+          apiCall(that.formData).then(res => {
+            that.$message.success(Message);
             that.showSubmitDialog = false;
-            that.formData = {};
+            this.$refs.form.resetFields();
+            this.formData = {
+              sysIntParamVOs: [],
+              sysIntHeaderVOs: []
+            };
             that.$emit('refreshTable');
+            that.formData.type = null;
           });
-        } else {
-          that.$message.error('蹇呭~');
         }
       })
     },
     cancelSubmit() {
       this.closeSubmitDialog();
-    },
-    // 灞炴�х被鍨嬩笅鎷夋閫夋嫨浜嬩欢
-    typeSelectChange(value) {
-      if (value == 'VTString') {
-        this.$set(this.formData, "maxLength", 150)
-      } else if (value == 'VTInteger') {
-        this.$set(this.formData, "maxLength", 50)
-      } else if (value == 'VTBoolean') {
-        this.$set(this.formData, "maxLength", 5)
-      } else if (value == 'VTDouble') {
-        this.$set(this.formData, "maxLength", 26)
-        this.$set(this.formData, "precision", 8)
-      } else if (value == 'VTLong') {
-        this.$set(this.formData, "maxLength", 150)
-      } else if (value == 'VTDate' || value == 'VTTime' || value == 'VTDateTime') {
-        this.$set(this.formData, "maxLength", 6)
-      } else {
-        this.$set(this.formData, "maxLength", 50)
-      }
-      this.formData.typeCode = 'attributeType';
-      this.formData.typeKey = value;
     },
     // 寮傛鑾峰彇瀛楀吀鏁版嵁
     geDictData(dictKey, list) {
@@ -425,33 +637,111 @@
         }
       });
     },
-    handleClick(tab) {
-      // 鍥犱负鍙兘鍙傜収鍜屾灇涓句簩閫変竴銆傛墍浠ュ湪鍒囨崲鐨勬椂鍊欐妸灞炴�х粰娓呯┖銆�
-      if (tab.name === 'enumTab') {
-        this.enumInitFlag = true;
-        this.referInitFlag = false;
+    dataFlowTypeChange(value) {
+      if (value == 'push') {
+        this.pushTypeList = [{value: '1', label: '鏁版嵁鎺ㄩ��'},
+          {value: '2', label: '鍒嗙被鎺ㄩ��'}]
+        this.formData.pushType = '1';
+        this.formData.sourceSystemName = '缂栫爜绯荤粺';
+        this.formData.sourceSystemOid = 'code00000001';
+        this.formData.sourceSystemId = 'CODE';
+        this.formData.targetSystemName = '';
+        this.formData.targetSystemOid = '';
+        this.formData.targetSystemId = '';
+      } else if (value == 'accept') {
+        this.pushTypeList = [
+          {value: '3', label: '缂栫爜鐢宠'},
+          {value: '4', label: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
+          {value: '5', label: '鍒嗙被鏌ヨ'},
+          {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
+          {value: '7', label: '鏁版嵁鏌ヨ'}]
+        this.formData.pushType = '';
+        this.formData.targetSystemName = '缂栫爜绯荤粺';
+        this.formData.targetSystemOid = 'code00000001';
+        this.formData.targetSystemId = 'CODE';
+
+        this.formData.sourceSystemName = '';
+        this.formData.sourceSystemOid = '';
+        this.formData.sourceSystemId = '';
       } else {
-        this.enumInitFlag = false;
-        this.referInitFlag = true;
+        this.pushTypeList = [];
       }
+      this.$refs.form.clearValidate()
+    },
+    pushTypeChange(value) {
+      this.$refs.form.clearValidate()
+    },
+    tabClick(tab) {
+      if (tab.name === 'paramTab') {
+        this.$nextTick(function () {
+          this.$refs.paramcrud.doLayout()
+        })
+      } else {
+        this.$nextTick(function () {
+          this.$refs.headercrud.doLayout()
+        })
+      }
+    },
+    handleParamAdd() {
+      this.formData.sysIntParamVOs.push({
+        usedFlag: true,
+        $cellEdit: true
+      })
+      this.$nextTick(function () {
+        this.$refs.paramcrud.doLayout()
+      })
+    },
+    handleParamEditClick(row) {
+      row.$cellEdit = true;
+    },
+    handleParamDel(row, index) {
+      this.formData.sysIntParamVOs.splice(index, 1);
+    },
+    // 鍒楄〃缂栬緫淇濆瓨
+    handleParamEditSave(row, index) {
+      row.$cellEdit = false;
+    },
+    handleHeaderAdd() {
+      this.formData.sysIntHeaderVOs.push({
+        usedFlag: true,
+        $cellEdit: true
+      })
+      this.$nextTick(function () {
+        this.$refs.headercrud.doLayout()
+      })
+    },
+    handleHeaderEditClick(row) {
+      row.$cellEdit = true;
+    },
+    handleHeaderDel(row, index) {
+      this.formData.sysIntHeaderVOs.splice(index, 1);
+    },
+    // 鍒楄〃缂栬緫淇濆瓨
+    handleHeaderEditSave(row, index) {
+      row.$cellEdit = false;
     }
   }
 }
 </script>
 
 <style>
-.btmTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
+.btmTable > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu {
   display: none !important;
 }
 
-.enumTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
+.enumTable > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu {
   display: none !important;
 }
-.dockingForm .el-form-item__label{width: 130px;}
-.dockingForm .el-form-item__content .el-input>.el-input__inner,.dockingForm .el-input-number--medium {
+
+.dockingForm .el-form-item__label {
+  width: 130px;
+}
+
+.dockingForm .el-form-item__content, .dockingForm .el-form-item__content .el-input > .el-input__inner, .dockingForm .el-input-number--medium {
   width: 300px !important;
 }
-.dockingForm .el-form-item__content{
-  width :300px !important;
+
+.dockingForm .cell .el-form-item__content, .dockingForm .cell .el-form-item__content .el-input > .el-input__inner {
+  width: 100% !important;
 }
 </style>

--
Gitblit v1.9.3