wangting
2023-08-24 94619d90359419a070f80f65c2f0163382b67fc1
接口配置页面
已修改9个文件
709 ■■■■■ 文件已修改
Source/UBCS-WEB/src/App.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/docking/info.js 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/docking/info.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/docking/infoForm.vue 448 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/App.vue
@@ -28,4 +28,7 @@
.avue--detail .el-col{
  margin-bottom: 0;
}
.avue-dialog .el-dialog__body {
  margin-bottom: 10px
}
</style>
Source/UBCS-WEB/src/api/docking/info.js
@@ -2,7 +2,7 @@
export const getList = (page, size, params) => {
  return request({
    url: '/api/ubcs-code/dockingManagement/gridLoge',
    url: '/api/ubcs-code/dockingManagement/gridDockingSystem',
    method: 'get',
    params: {
      ...params,
@@ -15,7 +15,7 @@
// 新增
export const add = (data) => {
  return request({
    url: '/api/ubcs-code/dockingManagement/submit',
    url: '/api/ubcs-code/dockingManagement/addSaveSystemConfig',
    method: 'post',
    data
  })
@@ -23,18 +23,18 @@
// 修改
export const edit = (data) => {
  return request({
    url: '/api/ubcs-code/dockingManagement/edit-save',
    method: 'put',
    url: '/api/ubcs-code/dockingManagement/editSystemConfig',
    method: 'post',
    data
  })
}
// 删除
export const del = (data) => {
  let url = '/api/ubcs-code/dockingManagement/remove'
  let url = '/api/ubcs-code/dockingManagement/deleteSystemConfigsById'
  return request({
    url,
    method: 'post',
    method: 'delete',
    data
  })
}
@@ -43,8 +43,8 @@
// 同步
export const push = (data) => {
  return request({
    url: '/api/ubcs-code/dockingManagement/push',
    method: 'put',
    url: '/api/ubcs-code/dockingManagement/pushData',
    method: 'post',
    data
  })
}
@@ -53,7 +53,7 @@
export const updateStatus = (data) => {
  return request({
    url: '/api/ubcs-code/dockingManagement/updateStatus',
    method: 'put',
    method: 'post',
    data
  })
}
Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -542,6 +542,12 @@
          message = "请输入";
          trigger = "blur";
        }
        let fieldMapKey=''
        if( formItem.type == "refer"){
          if(!formItem.fieldMap){
            fieldMapKey=formItem.field+'Id'
          }
        }
        let columnItem = {
          label: formItem.text,
          labelslot: true,
@@ -572,8 +578,9 @@
                  title: formItem.text,
                  showField: formItem.showField || formItem.field,
                  field: formItem.field,
                  fieldMap:formItem.fieldMap || {fieldMapKey:'id'},
                  placeholder: formItem.inputTip,
                  options: formItem.referConfig,
                  options: formItem.referConfig
                }
              : {},
          span: formItem.span ? formItem.span : formItem.type === "textarea" ? 24 : this.trendsSpan,
@@ -723,6 +730,42 @@
      if (data.field) {
        this.form[data.field] = data.value || "";
        this.form[data.showField] = data.text || "";
        if (data.fieldMap) {
          //说明需要映射
          for (let key in data.fieldMap) {
            let mapFields = data.fieldMap[key].split(",");
            let value = [];
            data.rawData.forEach(_item => {
              var temp;
              if (!_item.attributes) {
                _item.attributes = _item;
              }
              if (mapFields.length == 1) {
                var mapField = mapFields[0];
                if (mapField.indexOf("attribute.") > -1) {
                  temp = _item['attributes'][mapField.subString("attribute.".length)];
                } else {
                  temp = _item['attributes'][mapField] || _item[mapField];
                }
              } else {
                //有多个
                var mutiTemp = [];
                layui.each(mapFields, function (_indexField, _itemField) {
                  if (_itemField.indexOf("attribute.") > -1) {
                    mutiTemp.push(_item['attributes'][_itemField.subString("attribute.".length)]);
                  } else {
                    mutiTemp.push(_item['attributes'][_itemField] || _item[_itemField]);
                  }
                });
                temp = mutiTemp.join(' ');
              }
              if (temp != null && temp != '') {
                value.push(temp);
              }
            })
            this.form[key] = value.join(',');
          }
        }
        this.$emit("getFormData", this.form);
        this.$emit("referConfigDataUpdate", data);
      }
Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -134,10 +134,10 @@
      showCodeApply: false,
      showResembleQuery: false,
      selfColumnType: {
        codefixedsec: "combox",
        codeclassifysec: "refer",
        codevariablesec: "text",
        coderefersec: "refer",
        codefixedsec: "combox",//固定码段
        codeclassifysec: "refer",//分类码段
        codevariablesec: "text",//可变码段
        coderefersec: "refer",//引用码段
      },
      selfColumnConfig: {
        function: {
@@ -294,6 +294,8 @@
        if (item.parentClassifySecOid === field) {
          this.$refs.CodeApply.form[item.oid] = undefined;
          this.$refs.CodeApply.form[item.name] = undefined;
          item.readOnly=false;
          item.referConfig.extraParams.parentClassifyValueOid=data.value;
        }
        return item;
      });
@@ -407,6 +409,7 @@
    getReferConfig(item) {
      let params = {};
      if (item.secType == "codeclassifysec") {
        //分类码段
        params = {
          isMuti: false,
          type: "grid",
@@ -451,6 +454,7 @@
          },
        };
      } else if (item.secType == "coderefersec") {
        //引用码段
        params = JSON.parse(item.referValueInfo);
      }
      return params;
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -48,6 +48,8 @@
      deep: true,
      immediate: true,
      handler(newV) {
        this.text=newV.text;
        this.value=newV.value;
        this.$emit("setReferValue", newV);
      }
    }
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -179,11 +179,15 @@
        debugger;
        this.option.column = this.options.tableConfig.cols.map(item => {
          if (item.field != 'LAY_TABLE_INDEX' && item.field != 'LAY_CHECKED') {
            let formatter=item.template || item.templet;
            if(typeof formatter == "string" && formatter !=''){
              formatter=eval("(" + formatter + ")")
            }
            return {
              ...item,
              label: item.title,
              prop: item.field,
              formatter:item.template,
              formatter:formatter,
              search:this.options.tableConfig.queryColumns.some(qItem=>{
                return qItem.field==item.field
              })
@@ -285,8 +289,8 @@
          }
        }
        getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url, this.method).then(res => {
          this.data = res.data.records;
          this.page.total=res.data.total
          this.data = res.data.records || res.data.data.records;
          this.page.total=res.data.total || res.data.data.total;
          this.loading = false;
          this.selectionClear();
        }).catch(error=>{
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -242,11 +242,15 @@
          //说明传递了的
          this.option.column= this.options.tableConfig.cols.map(item => {
            if (item.field != 'LAY_TABLE_INDEX' && item.field != 'LAY_CHECKED') {
              let formatter=item.template || item.templet;
              if(typeof formatter == "string" && formatter !=''){
                formatter=eval("(" + formatter + ")")
              }
              return {
                ...item,
                label: item.title,
                prop: item.field,
                formatter:item.template,
                formatter:formatter,
                search: this.options.tableConfig.queryColumns.some(qItem=>{
                  return qItem.field==item.field
                })
@@ -343,8 +347,8 @@
          }
        }
        getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url).then(res => {
          this.data = res.data.records;
          this.page.total=res.data.total
          this.data = res.data.records || res.data.data.records;
          this.page.total=res.data.total || res.data.data.total;
          this.loading = false;
          this.selectionClear();
        }).catch(error=>{
Source/UBCS-WEB/src/views/docking/info.vue
@@ -49,19 +49,43 @@
  components:{infoForm},
  data() {
    return {
      //接口类型下拉
      interfaceTypeList: [{
        label: 'webService', value: 'webService'
      }, {
        label: '类路径', value: 'classPath'
      }, {
        label: 'Http', value: 'http'
      }],
      //参数类型下拉
      paramTypeList: [{
        label: 'xml', value: 'xml'
      }, {
        label: 'Json', value: 'json'
      }],
      //返回值类型下拉
      returnTypeList: [{
        label: 'xml', value: 'xml'
      }, {
        label: 'Json', value: 'json'
      }],
      //推送类型
      pushTypeList: [{value: '1', label: '数据推送'},
        {value: '2', label: '分类推送'},
        {value: '3', label: '编码申请'},
        {value: '4', label: '编码更改(状态、回收)'},
        {value: '5', label: '分类查询'},
        {value: '6', label: '含规则信息的分类查询'},
        {value: '7', label: '数据查询'}],
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 100
      },
      selectRow: "",
      selectRow: {},
      data: [],
      form: {},
      attribute: {
        nullable: true
      },
      editAttribute: {},
      applyRangeData: [],
      selectionList: [],
      option: {
        height: "auto",
@@ -85,26 +109,21 @@
        columnBtn: false,
        column: [{
          label: '推送类型',
          field: 'pushTypeText',
          prop: 'pushType',
          sortable: true,
          width: 150,
          type: 'select',
          dicData: this.pushType,
          props: {
            label: "value",
            value: "key"
          },
          formatter:function (d){
            return this.pushTypeList[d.pushType]
          }
        }, {
          label: '系统名称',
          prop: 'sysbasename',
          prop: 'sysBaseName',
          sortable: true,
          search: true,
          width: 150
        }, {
          label: '系统编号',
          prop: 'sysbaseid',
          prop: 'sysBaseId',
          sortable: true,
          search: true,
          width: 150
        }, {
          label: '接口函数',
@@ -113,12 +132,12 @@
          width: 150
        }, {
          label: '命名空间',
          prop: 'namespace',
          prop: 'nameSpace',
          sortable: true,
          width: 150
        }, {
          label: 'soapAction',
          prop: 'soapaction',
          prop: 'soapAction',
          sortable: true,
          width: 150
        }, {
@@ -133,35 +152,27 @@
          width: 150
        }, {
          label: '请求地址',
          prop: 'requesturl',
          prop: 'requestUrl',
          sortable: true,
          width: 150
        }, {
          label: '参数类型',
          prop: 'paramtype',
          prop: 'paramType',
          sortable: true,
          width: 150
          width: 150,
          formatter:function (d){
            return this.paramTypeList[d.paramType]
          }
        }, {
          label: '返回值类型',
          prop: 'returntype',
          prop: 'returnType',
          sortable: true,
          width: 150
          width: 150,
          formatter:function (d){
            return this.returnTypeList[d.returnType]
          }
        }]
      },
      itemForm: {
        itemData: {},
        activeName: "referTab",
        enumInitFlag: false,
        referInitFlag: false,
        form: {}
      },
      pushType: [{key: '1', value: '数据推送'},
        {key: '2', value: '分类推送'},
        {key: '3', value: '编码申请'},
        {key: '4', value: '编码更改(状态、回收)'},
        {key: '5', value: '分类查询'},
        {key: '6', value: '含规则信息的分类查询'},
        {key: '7', value: '数据查询'}],
      // 高级查询对话框相关参数
      advancedQueryParam: {
        ref: 'advancedQuery',
@@ -197,14 +208,10 @@
    selectionChange(list) {
      this.selectionList = list;
      if(this.selectionList.length <= 0){
        this.itemForm.itemData = null
        this.selectRow = null
        this.attribute = null
      }
      if (this.selectionList.length > 0) {
        this.itemForm.itemData = this.selectionList[list.length-1];
        this.selectRow = this.selectionList[list.length-1].$index;
        this.attribute = this.selectionList[list.length-1];
      }
    },
    selectionClear() {
@@ -222,25 +229,23 @@
    },
    addSave() {
      this.$refs.infoForm.showSubmitDialog = true;
      const newAttr = {};
      newAttr.nullable = true;
      this.$refs.infoForm.formData = newAttr;
      this.$refs.infoForm.formData = {
        dataFlowType:'push',
        pushType:'1',
        sysIntParamVOs:[],
        sysIntHeaderVOs:[]
      };
    },
    updateSave(row,index) {
      this.selectRow = index;
      var json = JSON.stringify(row);
      this.editAttribute = JSON.parse(json);
      this.editAttribute.nullable = row.nullable == 'true' ? true : false;
      this.$refs.infoForm.attribute = this.editAttribute;
      this.selectRow = row;
      this.editAttribute = row;
      this.editAttribute.sysIntParamVOs = row.sysIntParamVOs||[];
      this.editAttribute.sysIntHeaderVOs = row.sysIntHeaderVOs||[];
      this.$refs.infoForm.formData = this.editAttribute;
      this.$refs.infoForm.showSubmitDialog = true;
      this.checkUsingReferDict(row);
      this.$refs.infoForm.activeName = this.itemForm.activeName;
      this.$refs.infoForm.enumInitFlag = this.itemForm.enumInitFlag;
      this.$refs.infoForm.referInitFlag = this.itemForm.referInitFlag;
      // this.refreshChange()
    },
    deleteSave(row,index) {
      this.$confirm("删除元数据将无法被恢复, 是否继续?", "提示", {
      this.$confirm("删除数据将无法被恢复, 是否继续?", "提示", {
        iconClass: 'el-icon-question',
        confirmButtonText: "确定",
        cancelButtonText: "取消",
@@ -287,7 +292,7 @@
    },
    PUSH(){
      if (this.selectionList.length != 1) {
        this.$message.error('请选择一条数据')
        this.$message.error('请选择数据')
        return false;
      }
      this.$confirm("是否要"+ (this.selectionList[0].pushType == "1" ? "推送数据" : "推送分类"), {
@@ -315,56 +320,12 @@
        this.data = data.records;
        this.loading = false;
        this.data = res.data.data.records;
        this.itemData = this.data[0];
      });
    },
    rowClick(row) {
      this.itemForm.itemData = row;
      this.selectRow = row;
      this.attribute = row;
      this.$refs.crud.toggleSelection();
      this.$refs.crud.toggleRowSelection(row); //选中当前行
      //this.checkUsingReferDict(row);
    },
    checkUsingReferDict(row){
      if (row.referToId !== null && row.referToId !== ""){
        this.itemForm.activeName = 'referTab';
        this.itemForm.referInitFlag = true;
        this.itemForm.enumInitFlag = false;
      }else if (row.usingDict === 'true'){
        this.itemForm.activeName = 'enumTab';
        this.itemForm.referInitFlag = false;
        this.itemForm.enumInitFlag = true;
        getDictionary({code: row.dictCode}).then(res => {
          this.editAttribute.dictValue = res.data.data[0].label;
          this.itemForm.itemData.dictValue = this.editAttribute.dictValue;
          this.$refs.infoForm.dictEnums = res.data.data;
        })
      }else {
        this.itemForm.activeName = 'referTab';
        this.itemForm.referInitFlag = true;
        this.itemForm.enumInitFlag = false;
      }
    },
    selectBtmType() {
      this.referType.display = true;
      this.referType.title = "请选择" + this.referType.value;
    },
    applyRangeOpen() {
      if (!this.selectRow && this.selectRow != 0) {
        this.$message({
          type: "warning",
          message: "请先选择属性"
        });
      }
      var oid = this.data[this.selectRow].oid;
      getApplyRange(oid).then(res => {
        this.applyRangeData = res.data.data;
        this.$refs.applyRange.rangeData = this.applyRangeData;
        this.$refs.applyRange.showDialog = true;
      });
    },
    /** 高级查询对话框组件,组件返回的值是condtionMap[field]形式的查询条件,保留了和之前一样的方式 */
    echoSeniorContionMap(conditionMaps){
Source/UBCS-WEB/src/views/docking/infoForm.vue
@@ -1,30 +1,30 @@
<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%">
               style="height: 110vh;" 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">
               class="dockingForm" :rules="rules" status-icon="true">
        <el-form-item label="dataFlowType" prop="dataFlowType">
          <el-select v-model="formData.dataFlowType" 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-option>
          </el-select>
        </el-form-item>
@@ -36,7 +36,7 @@
                  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"
@@ -45,57 +45,126 @@
            @setReferValue="setReferValue"
          ></vciWebRefer>
        </el-form-item>
        <el-form-item label="推送系统" prop="sourceSysName">
        <el-form-item v-if="formData.dataFlowType=='push'" label="集成系统" prop="targetSystemName">
          <vciWebRefer
            :referConfig="{
                  title: '推送系统',
                  showField: 'sourceSysName',
                  field: 'sourceSystemOid',
                  fieldMap:{'sourceSysId':'id'},
                  placeholder: '请选择推送系统',
                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeClassify/referTree'},
                  title: '集成系统',
                  showField: 'targetSystemName',
                  field: 'targetSystemOid',
                  fieldMap:{'targetSystemId':'id'},
                  placeholder: '请选择',
                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
                }"
            :value="formData.sourceSystemOid"
            :text="formData.sourceSysName"
            :value="formData.targetSystemOid"
            :text="formData.targetSystemName"
            :disabled="false"
            :display="true"
            @setReferValue="setReferValue"
          ></vciWebRefer>
        </el-form-item>
        <el-form-item label="系统描述" >
          <el-input type="textarea" :rows="2" v-model="formData.description"></el-input>
        <el-form-item v-if="formData.dataFlowType=='push'" label="编码系统" prop="sourceSystemName">
          <vciWebRefer
            :referConfig="{
                  title: '编码系统',
                  showField: 'sourceSystemName',
                  field: 'sourceSystemOid',
                  fieldMap:{'sourceSystemId':'id'},
                  placeholder: '请选择',
                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
                }"
            :value="formData.sourceSystemOid"
            :text="formData.sourceSystemName"
            :disabled="false"
            :display="true"
            @setReferValue="setReferValue"
          ></vciWebRefer>
        </el-form-item>
        <el-form-item label="请求方式" prop="requestMethod">
          <el-select v-model="formData.requestMethod" placeholder="请选择请求方式" @change="typeSelectChange">
        <el-form-item v-if="formData.dataFlowType=='accept'" label="编码系统" prop="targetSystemName">
          <vciWebRefer
            :referConfig="{
                  title: '编码系统',
                  showField: 'targetSystemName',
                  field: 'targetSystemOid',
                  fieldMap:{'targetSystemId':'id'},
                  placeholder: '请选择',
                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
                }"
            :value="formData.targetSystemOid"
            :text="formData.targetSystemName"
            :disabled="false"
            :display="true"
            @setReferValue="setReferValue"
          ></vciWebRefer>
        </el-form-item>
        <el-form-item v-if="formData.dataFlowType=='accept'" label="集成系统" prop="sourceSystemName">
          <vciWebRefer
            :referConfig="{
                  title: '集成系统',
                  showField: 'sourceSystemName',
                  field: 'sourceSystemOid',
                  fieldMap:{'sourceSystemId':'id'},
                  placeholder: '请选择',
                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
                }"
            :value="formData.sourceSystemOid"
            :text="formData.sourceSystemName"
            :disabled="false"
            :display="true"
            @setReferValue="setReferValue"
          ></vciWebRefer>
        </el-form-item>
        <el-form-item v-if="formData.pushType=='1'" label="是否推送集团码" prop="isGroupCodeFlag">
          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
        </el-form-item>
        <el-form-item v-if="formData.pushType=='3'" label="是否申请集团码" prop="isGroupCodeFlag">
          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
        </el-form-item>
        <el-form-item  v-if="formData.pushType=='4'" label="是否维护集团码" prop="isGroupCodeFlag">
          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
        </el-form-item>
        <el-form-item  v-if="formData.pushType=='7'" label="是否查询集团码" prop="isGroupCodeFlag">
          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
        </el-form-item>
        <el-form-item label="系统描述"  style="width: 850px;">
          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 5}" v-model="formData.description" style="width: 740px;"></el-input>
        </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>
        <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-form-item v-if="formData.interfaceType=='webService'" label="参数名称" prop="targName">
          <el-input v-model="formData.targName" ></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-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-tabs v-model="activeName" @tab-click="tabClick">
          <el-tab-pane label="参数对象" name="paramTab">
            <avue-crud :option="param.option"
                       :data="param.data"
                       :data="formData.sysIntParamVOs"
                       v-model="formData.sysIntParamVOs"
                       ref="paramcrud">
              <template slot="menuLeft">
@@ -106,20 +175,22 @@
                           @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 icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="handleParamEditClick(row,index)">编辑
                </el-button>
                <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit" @click="handleParamDel(row,index)">移除
                </el-button>
                <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @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"
                       :data="formData.sysIntHeaderVOs"
                       v-model="formData.sysIntHeaderVOs"
                       ref="paramcrud">
                       ref="headercrud">
              <template slot="menuLeft">
                <el-button type="primary"
                           size="small"
@@ -128,11 +199,13 @@
                           @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 icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="handleHeaderEditClick(row,index)">编辑
                </el-button>
                <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit"  @click="handleHeaderDel(row,index)">移除
                </el-button>
                <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="handleHeaderEditSave(row,index)">
                  保存
                </el-button>
              </template>
            </avue-crud>
@@ -149,6 +222,7 @@
</template>
<script>
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";
@@ -157,7 +231,11 @@
  name: 'infoForm',
  props: {
    formData: {
      type: Object
      type: Object,
      default:{
        sysIntParamVOs:[],
        sysIntHeaderVOs:[]
      }
    },
  },
  components: { vciWebRefer },
@@ -173,36 +251,32 @@
        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'
      }],
      dataFlowTypeList: [{
        label: 'push', value: 'push'
      }, {
        label: 'accept', 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 +285,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: 'sbumit'}
        ],
        sourceSysName: [
          {required: true, message: '请选择分类选择', trigger: 'blur'}
        sourceSystemName: [
          {required: true, message: '请选择', trigger: 'sbumit'}
        ],
        targetSystemName: [
          {required: true, message: '请选择', trigger: 'sbumit'}
        ],
        classPath: [
          {required: true, message: '请输入类路径', trigger: 'blur'}
@@ -235,8 +315,8 @@
        nameSpace: [
          {required: true, message: '请输入命名空间', trigger: 'blur'}
        ],
        soapaction: [
          {required: true, message: '请输入soapaction', trigger: 'blur'}
        soapAction: [
          {required: true, message: '请输入soapAction', trigger: 'blur'}
        ],
        targName: [
          {required: true, message: '请输入参数名称', trigger: 'blur'}
@@ -249,62 +329,71 @@
      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: ''
        },
@@ -314,7 +403,27 @@
  },
  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=''
    }else {
      this.pushTypeList=[{value: '1', label: '数据推送'},
        {value: '2', label: '分类推送'}]
      this.formData.pushType='1'
    }
  },
  methods: {
    closeSubmitDialog() {
@@ -323,12 +432,10 @@
    },
    resetForm() {
      this.formData = {
        nullable: true,
        referTypeKey: '',
        sysIntParamVOs: [],
        sysIntHeaderVOs: []
      };
      this.referToFlag = true;
      this.$refs.form.resetFields();
      this.dictEnums = [];
    },
    setReferValue(data) {
      if (data.field) {
@@ -371,46 +478,49 @@
          this.formData[key] = value.join(',');
        }
      }
    }
    ,
    },
    submitAttribute() {
      const that = this;
      this.$refs.form.validate(function (pass, field) {
        if (pass) {
      let pass=true
      if(validatenull(this.formData.classifyName)||validatenull(this.formData.sourceSystemName)||validatenull(this.formData.targetSystemName)){
        that.$message.error('必填项不能为空');
        pass=false
        return;
      }
      this.$refs.form.validateField(['paramType','returnType','dataFlowType','pushType','classPath','requestMethod','requestUrl',
        'interfaceFunction','nameSpace','soapAction','targName','cxfaxis'],function (errormsg, field) {
        if (errormsg) {
          pass=false
        }
      })
      this.$nextTick(function (){
        if(pass){
          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
            }
          })
          add(that.formData).then(res => {
            that.$message.success("保存成功");
            that.showSubmitDialog = false;
            that.formData = {};
            this.formData = {
              sysIntParamVOs: [],
              sysIntHeaderVOs: []
            };
            that.$emit('refreshTable');
          });
        } 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,15 +535,75 @@
        }
      });
    },
    handleClick(tab) {
      // 因为只能参照和枚举二选一。所以在切换的时候把属性给清空。
      if (tab.name === 'enumTab') {
        this.enumInitFlag = true;
        this.referInitFlag = false;
      } else {
        this.enumInitFlag = false;
        this.referInitFlag = true;
    dataFlowTypeChange(value){
      if(value=='push'){
        this.pushTypeList=[{value: '1', label: '数据推送'},
          {value: '2', label: '分类推送'}]
        this.formData.pushType='数据推送'
      }else if(value=='accept'){
        this.pushTypeList=[
          {value: '3', label: '编码申请'},
          {value: '4', label: '编码更改(状态、回收)'},
          {value: '5', label: '分类查询'},
          {value: '6', label: '含规则信息的分类查询'},
          {value: '7', label: '数据查询'}]
        this.formData.pushType=''
      }else{
        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;
    }
  }
}
@@ -448,10 +618,10 @@
  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__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>