You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							736 lines
						
					
					
						
							19 KiB
						
					
					
				
			
		
		
	
	
							736 lines
						
					
					
						
							19 KiB
						
					
					
				@@master_page.html | 
						|
<style> | 
						|
  .filed-container { | 
						|
    width: 100%; | 
						|
    height: 100%; | 
						|
    background-color: #fff; | 
						|
    padding: 20px; | 
						|
    position: relative; | 
						|
    display: flex; | 
						|
    flex-flow: column nowrap; | 
						|
    gap: 20px; | 
						|
  } | 
						|
 | 
						|
  .filed-container::before { | 
						|
    content: ""; | 
						|
    position: absolute; | 
						|
    top: 0; | 
						|
    left: 50%; | 
						|
    width: 2px; | 
						|
    height: 100%; | 
						|
    background-image: linear-gradient(to bottom, #e6f3ff, #fff7e6); | 
						|
    border-radius: 50%; | 
						|
  } | 
						|
 | 
						|
  .info-container { | 
						|
    display: flex; | 
						|
    align-items: center; | 
						|
  } | 
						|
 | 
						|
  .info-item { | 
						|
    flex: 1; | 
						|
    display: flex; | 
						|
    justify-content: center; | 
						|
    align-items: center; | 
						|
    flex-flow: column; | 
						|
    gap: 20px; | 
						|
  } | 
						|
 | 
						|
  .footer { | 
						|
    display: flex; | 
						|
    justify-content: space-between; | 
						|
  } | 
						|
 | 
						|
  .footer-item { | 
						|
    display: flex; | 
						|
    align-items: center; | 
						|
    gap: 10px; | 
						|
  } | 
						|
 | 
						|
  .info-item-title { | 
						|
    display: flex; | 
						|
    align-items: center; | 
						|
    font-weight: bold; | 
						|
    font-size: 16px; | 
						|
    display: flex; | 
						|
    gap: 10px; | 
						|
  } | 
						|
 | 
						|
  .info-item-upload { | 
						|
    display: flex; | 
						|
    align-items: center; | 
						|
    gap: 5px; | 
						|
    cursor: pointer; | 
						|
    font-weight: initial; | 
						|
    font-size: 14px; | 
						|
    color: #419ff8; | 
						|
    border-bottom: 1px solid #419ff8; | 
						|
  } | 
						|
 | 
						|
  .info-item-input-container { | 
						|
    display: flex; | 
						|
    align-items: center; | 
						|
    gap: 5px; | 
						|
  } | 
						|
 | 
						|
  .info-item-input { | 
						|
    width: 200px; | 
						|
    height: 32px; | 
						|
    padding: 4px 11px; | 
						|
    border: 1px solid #d9d9d9; | 
						|
    border-radius: 4px; | 
						|
    transition: all 0.3s; | 
						|
    font-size: 14px; | 
						|
    color: #333; | 
						|
    outline: none; | 
						|
    box-sizing: border-box; | 
						|
  } | 
						|
 | 
						|
  .info-form-container { | 
						|
    display: flex; | 
						|
    flex-flow: row nowrap; | 
						|
    align-items: center; | 
						|
    gap: 10px; | 
						|
  } | 
						|
 | 
						|
  .table { | 
						|
    width: 100%; | 
						|
    table-layout: fixed; | 
						|
    border-collapse: collapse; | 
						|
  } | 
						|
 | 
						|
  .table th, | 
						|
  .table td { | 
						|
    overflow: hidden; | 
						|
    text-overflow: ellipsis; | 
						|
    white-space: nowrap; | 
						|
  } | 
						|
 | 
						|
  .table th:nth-child(1), | 
						|
  .table td:nth-child(1) { | 
						|
    width: 70px; | 
						|
  } | 
						|
 | 
						|
  .table th:nth-child(2), | 
						|
  .table td:nth-child(2), | 
						|
  .table th:nth-child(6), | 
						|
  .table td:nth-child(6) { | 
						|
    width: 125px; | 
						|
  } | 
						|
 | 
						|
  .table th:nth-child(3), | 
						|
  .table td:nth-child(3), | 
						|
  .table th:nth-child(7), | 
						|
  .table td:nth-child(7) { | 
						|
    width: 120px; | 
						|
  } | 
						|
 | 
						|
  .table th:nth-child(4), | 
						|
  .table td:nth-child(4), | 
						|
  .table th:nth-child(8), | 
						|
  .table td:nth-child(8) { | 
						|
    width: 100px; | 
						|
  } | 
						|
 | 
						|
  .table th:nth-child(5), | 
						|
  .table td:nth-child(5), | 
						|
  .table th:nth-child(9), | 
						|
  .table td:nth-child(9) { | 
						|
    width: 100px; | 
						|
  } | 
						|
 | 
						|
  .table th:nth-child(10), | 
						|
  .table td:nth-child(10) { | 
						|
    width: 70px; | 
						|
    text-align: center; | 
						|
  } | 
						|
 | 
						|
  .footer-item-button { | 
						|
    display: flex; | 
						|
    align-items: center; | 
						|
    justify-content: center; | 
						|
    padding: 8px 16px; | 
						|
    border-radius: 999px; | 
						|
    font-size: 14px; | 
						|
    cursor: pointer; | 
						|
    transition: all 0.3s; | 
						|
    border: none; | 
						|
    color: #333; | 
						|
    gap: 5px; | 
						|
  } | 
						|
 | 
						|
  .table-row { | 
						|
    display: flex; | 
						|
    flex-flow: row nowrap; | 
						|
    align-items: center; | 
						|
    justify-content: center; | 
						|
  } | 
						|
 | 
						|
  .local-park, | 
						|
  .third-park { | 
						|
    width: 100%; | 
						|
    flex: 1; | 
						|
    display: flex; | 
						|
    flex-flow: row nowrap; | 
						|
    align-items: center; | 
						|
    justify-content: center; | 
						|
  } | 
						|
 | 
						|
  .local-park th, | 
						|
  .third-park th { | 
						|
    flex: 1; | 
						|
  } | 
						|
 | 
						|
  .table-item-input { | 
						|
    width: 100%; | 
						|
    padding: 8px 12px; | 
						|
    border-radius: 4px; | 
						|
    border: none; | 
						|
    font-size: 14px; | 
						|
    color: #606266; | 
						|
    background-color: #fff; | 
						|
    transition: border-color 0.2s ease; | 
						|
    outline: none; | 
						|
    box-sizing: border-box; | 
						|
 | 
						|
    &:disabled { | 
						|
      background-color: #f5f7fa; | 
						|
      border-color: #e4e7ed; | 
						|
      color: #c0c4cc; | 
						|
      cursor: not-allowed; | 
						|
    } | 
						|
 | 
						|
    &::placeholder { | 
						|
      color: #c0c4cc; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  .table-item-select { | 
						|
    width: 100%; | 
						|
    padding: 8px 12px; | 
						|
    border: 1px solid #dcdfe6; | 
						|
    border-radius: 4px; | 
						|
    font-size: 14px; | 
						|
    color: #606266; | 
						|
    outline: none; | 
						|
    box-sizing: border-box; | 
						|
    border: none; | 
						|
 | 
						|
    &:disabled { | 
						|
      background-color: #f5f7fa; | 
						|
      border-color: #e4e7ed; | 
						|
      color: #c0c4cc; | 
						|
      cursor: not-allowed; | 
						|
    } | 
						|
 | 
						|
    &::placeholder { | 
						|
      color: #c0c4cc; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  .table-item-button { | 
						|
    display: inline-flex; | 
						|
    align-items: center; | 
						|
    justify-content: center; | 
						|
    border-radius: 50%; | 
						|
    border: none; | 
						|
    padding: 8px; | 
						|
    background-color: transparent; | 
						|
    color: #606266; | 
						|
    cursor: pointer; | 
						|
    transition: all 0.2s ease; | 
						|
    height: 32px; | 
						|
    width: 32px; | 
						|
 | 
						|
    &:hover { | 
						|
      background-color: #f2f6fc; | 
						|
      color: #409eff; | 
						|
    } | 
						|
 | 
						|
    &:active { | 
						|
      background-color: #ecf5ff; | 
						|
    } | 
						|
 | 
						|
    .mdi { | 
						|
      font-size: 20px; | 
						|
    } | 
						|
 | 
						|
    &[title="保存"] { | 
						|
      color: #67c23a; | 
						|
 | 
						|
      &:hover { | 
						|
        background-color: #f0f9eb; | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    &[title="取消"] { | 
						|
      color: #909399; | 
						|
 | 
						|
      &:hover { | 
						|
        background-color: #f4f4f5; | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    &[title="删除"] { | 
						|
      color: #f56c6c; | 
						|
 | 
						|
      &:hover { | 
						|
        background-color: #fef0f0; | 
						|
      } | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  .info-item-upload-name { | 
						|
    color: #01c853; | 
						|
  } | 
						|
</style> | 
						|
<div id="apibox" class="card"> | 
						|
  <section class="filed-container"> | 
						|
    <section class="info-container"> | 
						|
      <section class="info-item"> | 
						|
        <section class="info-item-title"> | 
						|
          本地表 | 
						|
          <section class="info-item-upload-name" v-show="localJosnName"> | 
						|
            {{`(${localJosnName})`}} | 
						|
          </section> | 
						|
          <section class="info-item-upload" @click="uploadLocalFile"> | 
						|
            <input | 
						|
              type="file" | 
						|
              style="opacity: 0; display: none" | 
						|
              id="localFile" | 
						|
              accept=".json" | 
						|
            /> | 
						|
            <i class="mdi mdi-cloud-upload"></i> | 
						|
            导入本地表 | 
						|
          </section> | 
						|
        </section> | 
						|
        <section class="info-form-container"> | 
						|
          <section class="info-item-input-container"> | 
						|
            表名<input | 
						|
              type="text" | 
						|
              class="info-item-input" | 
						|
              v-model="cachesData.SYSTEM_TABLE_NAME" | 
						|
              placeholder="请输入表名" | 
						|
            /> | 
						|
          </section> | 
						|
          <section class="info-item-input-container"> | 
						|
            表注释<input | 
						|
              type="text" | 
						|
              class="info-item-input" | 
						|
              v-model="cachesData.SYSTEM_TABLE_CNNAME" | 
						|
              placeholder="请输入表注释" | 
						|
            /> | 
						|
          </section> | 
						|
        </section> | 
						|
      </section> | 
						|
      <section class="info-item"> | 
						|
        <section class="info-item-title"> | 
						|
          三方表 | 
						|
          <section class="info-item-upload-name" v-show="thirdJsonName"> | 
						|
            ({{thirdJsonName}}) | 
						|
          </section> | 
						|
          <section class="info-item-upload" @click="uploadThirdFile"> | 
						|
            <input | 
						|
              type="file" | 
						|
              style="opacity: 0; display: none" | 
						|
              id="thirdFile" | 
						|
              accept=".json" | 
						|
            /> | 
						|
            <i class="mdi mdi-cloud-upload"></i> | 
						|
            导入三方表 | 
						|
          </section> | 
						|
        </section> | 
						|
        <section class="info-form-container"> | 
						|
          <section class="info-item-input-container"> | 
						|
            表名<input | 
						|
              type="text" | 
						|
              class="info-item-input" | 
						|
              v-model="cachesData.OBJECT_TABLE_NAME" | 
						|
              placeholder="请输入表名" | 
						|
            /> | 
						|
          </section> | 
						|
          <section class="info-item-input-container"> | 
						|
            表注释<input | 
						|
              type="text" | 
						|
              class="info-item-input" | 
						|
              v-model="cachesData.OBJECT_TABLE_CNNAME" | 
						|
              placeholder="请输入表注释" | 
						|
            /> | 
						|
          </section> | 
						|
        </section> | 
						|
      </section> | 
						|
    </section> | 
						|
    <table class="table"> | 
						|
      <thead> | 
						|
        <tr> | 
						|
          <th>序号</th> | 
						|
          <th style="background-color: #e6f3ff">字段名</th> | 
						|
          <th style="background-color: #e6f3ff">字段注释</th> | 
						|
          <th style="background-color: #e6f3ff">字段类型</th> | 
						|
          <th style="background-color: #e6f3ff">字典名称</th> | 
						|
          <th style="background-color: #fff7e6">字段名</th> | 
						|
          <th style="background-color: #fff7e6">字段注释</th> | 
						|
          <th style="background-color: #fff7e6">字段类型</th> | 
						|
          <th style="background-color: #fff7e6">字典名称</th> | 
						|
          <th>操作</th> | 
						|
        </tr> | 
						|
      </thead> | 
						|
      <tbody> | 
						|
        <tr v-for="(item, index) in data" :key="index"> | 
						|
          <td style="width: 150px">{{index + 1}}</td> | 
						|
          <td style="background-color: #f5f9ff; position: relative"> | 
						|
            {{item.SYSTEM_FIELD}} | 
						|
          </td> | 
						|
          <td style="background-color: #f5f9ff">{{item.SYSTEM_NAME}}</td> | 
						|
          <td style="background-color: #f5f9ff">{{item.SYSTEM_FIELD_TYPE}}</td> | 
						|
          <td style="background-color: #f5f9ff">{{item.SYSTEM_DICT_NAME}}</td> | 
						|
          <td style="background-color: #fffbf2">{{item.INTERFACE_FIELD}}</td> | 
						|
          <td style="background-color: #fffbf2">{{item.INTERFACE_NAME}}</td> | 
						|
          <td style="background-color: #fffbf2">{{item.OBJECT_FIELD_TYPE}}</td> | 
						|
          <td style="background-color: #fffbf2">{{item.OBJECT_DICT_NAME}}</td> | 
						|
          <td> | 
						|
            <button | 
						|
              @click="deleteField(index)" | 
						|
              class="table-item-button" | 
						|
              title="删除" | 
						|
            > | 
						|
              <i class="mdi mdi-delete"></i> | 
						|
            </button> | 
						|
          </td> | 
						|
        </tr> | 
						|
        <tr v-show="isEditing"> | 
						|
          <td style="width: 150px">{{data.length + 1}}</td> | 
						|
          <td style="background-color: #f5f9ff; position: relative"> | 
						|
            <input | 
						|
              v-model="submitData.SYSTEM_FIELD" | 
						|
              class="table-item-select" | 
						|
              placeholder="请输入字段名" | 
						|
              style=" | 
						|
                z-index: 1; | 
						|
                position: absolute; | 
						|
                top: 50%; | 
						|
                left: 0%; | 
						|
                width: 80%; | 
						|
                border: none; | 
						|
                transform: translateY(-50%) translateX(10%); | 
						|
              " | 
						|
            /> | 
						|
            <select | 
						|
              id="localSelect" | 
						|
              class="table-item-select" | 
						|
              style=" | 
						|
                position: absolute; | 
						|
                z-index: 0; | 
						|
                top: 50%; | 
						|
                left: 0%; | 
						|
                width: 90%; | 
						|
                transform: translateY(-50%) translateX(10%); | 
						|
              " | 
						|
              title="请选择字段名称" | 
						|
              @change="localChange" | 
						|
            > | 
						|
              <option | 
						|
                v-for="(type,index) in Object.keys(localJsonData)" | 
						|
                :key="index" | 
						|
                :value="type" | 
						|
              > | 
						|
                <section>{{type}}</section> | 
						|
              </option> | 
						|
            </select> | 
						|
          </td> | 
						|
          <td style="background-color: #f5f9ff"> | 
						|
            <input | 
						|
              v-model="submitData.SYSTEM_NAME" | 
						|
              class="table-item-input" | 
						|
              placeholder="请输入字段名" | 
						|
            /> | 
						|
          </td> | 
						|
          <td style="background-color: #f5f9ff"> | 
						|
            <select | 
						|
              v-model="submitData.SYSTEM_FIELD_TYPE" | 
						|
              class="table-item-input" | 
						|
              placeholder="请选择字段类型" | 
						|
            > | 
						|
              <option | 
						|
                v-for="type in dict.filedType" | 
						|
                :key="type.VALUE" | 
						|
                :value="type.VALUE" | 
						|
              > | 
						|
                {{type.LABEL}} | 
						|
              </option> | 
						|
            </select> | 
						|
          </td> | 
						|
          <td style="background-color: #f5f9ff"> | 
						|
            <input | 
						|
              v-model="submitData.SYSTEM_DICT_NAME" | 
						|
              class="table-item-input" | 
						|
              placeholder="请输入字典名称" | 
						|
              :style="{display: submitData.SYSTEM_FIELD_TYPE == 'dict' ? 'block' : 'none'}" | 
						|
            /> | 
						|
          </td> | 
						|
          <td style="background-color: #fffbf2; position: relative"> | 
						|
            <input | 
						|
              v-model="submitData.INTERFACE_FIELD" | 
						|
              class="table-item-select" | 
						|
              placeholder="请输入字段名" | 
						|
              style=" | 
						|
                z-index: 1; | 
						|
                position: absolute; | 
						|
                top: 50%; | 
						|
                left: 0%; | 
						|
                width: 80%; | 
						|
                border: none; | 
						|
                transform: translateY(-50%) translateX(10%); | 
						|
              " | 
						|
            /> | 
						|
            <select | 
						|
              id="thridSelect" | 
						|
              class="table-item-select" | 
						|
              style=" | 
						|
                position: absolute; | 
						|
                z-index: 0; | 
						|
                top: 50%; | 
						|
                left: 0%; | 
						|
                width: 90%; | 
						|
                transform: translateY(-50%) translateX(10%); | 
						|
              " | 
						|
              title="请选择字段名称" | 
						|
              @change="thridChange" | 
						|
            > | 
						|
              <option | 
						|
                v-for="(type,index) in Object.keys(thirdJsonData)" | 
						|
                :key="index" | 
						|
                :value="type" | 
						|
              > | 
						|
                {{type}} | 
						|
              </option> | 
						|
            </select> | 
						|
          </td> | 
						|
          <td style="background-color: #fffbf2"> | 
						|
            <input | 
						|
              v-model="submitData.INTERFACE_NAME" | 
						|
              class="table-item-input" | 
						|
              placeholder="请输入字段注释" | 
						|
            /> | 
						|
          </td> | 
						|
          <td style="background-color: #fffbf2"> | 
						|
            <select | 
						|
              v-model="submitData.OBJECT_FIELD_TYPE" | 
						|
              class="table-item-input" | 
						|
              placeholder="请选择字段类型" | 
						|
            > | 
						|
              <option | 
						|
                v-for="type in dict.filedType" | 
						|
                :key="type.VALUE" | 
						|
                :value="type.VALUE" | 
						|
              > | 
						|
                {{type.LABEL}} | 
						|
              </option> | 
						|
            </select> | 
						|
          </td> | 
						|
          <td style="background-color: #fffbf2"> | 
						|
            <input | 
						|
              v-model="submitData.OBJECT_DICT_NAME" | 
						|
              class="table-item-input" | 
						|
              placeholder="请输入字典名称" | 
						|
              :style="{display: submitData.OBJECT_FIELD_TYPE == 'dict' ? 'block' : 'none'}" | 
						|
            /> | 
						|
          </td> | 
						|
          <td> | 
						|
            <button | 
						|
              @click="saveField(index)" | 
						|
              class="table-item-button" | 
						|
              title="保存" | 
						|
            > | 
						|
              <i class="mdi mdi-content-save"></i> | 
						|
            </button> | 
						|
            <button | 
						|
              @click="cancelField(index)" | 
						|
              class="table-item-button" | 
						|
              title="取消" | 
						|
            > | 
						|
              <i class="mdi mdi-cancel"></i> | 
						|
            </button> | 
						|
          </td> | 
						|
        </tr> | 
						|
      </tbody> | 
						|
    </table> | 
						|
    <section class="footer"> | 
						|
      <section class="footer-item"> | 
						|
        <button | 
						|
          class="footer-item-button" | 
						|
          style="background-color: #419ff8; color: #fff" | 
						|
          @click="addNewField" | 
						|
        > | 
						|
          <i class="mdi mdi-plus"></i> 新增字段 | 
						|
        </button> | 
						|
      </section> | 
						|
      <section class="footer-item"> | 
						|
        <button | 
						|
          class="footer-item-button" | 
						|
          style="background-color: #ff8903; color: #fff" | 
						|
          @click="cancelAll" | 
						|
        > | 
						|
          <i class="mdi mdi-close"></i>取消 | 
						|
        </button> | 
						|
        <button | 
						|
          class="footer-item-button" | 
						|
          style="background-color: #01c853; color: #fff" | 
						|
          @click="saveAll" | 
						|
        > | 
						|
          <i class="mdi mdi-check"></i>保存 | 
						|
        </button> | 
						|
      </section> | 
						|
    </section> | 
						|
  </section> | 
						|
</div> | 
						|
<script> | 
						|
  var vueObj = new Vue({ | 
						|
    el: "#apibox", | 
						|
    data() { | 
						|
      return { | 
						|
        dict: { | 
						|
          filedType: [], | 
						|
        }, | 
						|
        isEditing: true, | 
						|
        data: [ | 
						|
           | 
						|
          | 
						|
        ], | 
						|
        localJsonData: {}, | 
						|
        localJosnName: "", | 
						|
        thirdJsonData: {}, | 
						|
        thirdJsonName: "", | 
						|
        submitData: { | 
						|
          SYSTEM_NAME: "", | 
						|
          SYSTEM_FIELD: "", | 
						|
          INTERFACE_NAME: "", | 
						|
          INTERFACE_FIELD: "", | 
						|
          SYSTEM_FIELD_TYPE: "value", | 
						|
          SYSTEM_DICT_NAME: "", | 
						|
          OBJECT_FIELD_TYPE: "value", | 
						|
          OBJECT_DICT_NAME: "", | 
						|
        }, | 
						|
          cachesData: { | 
						|
            | 
						|
          OBJECT_TABLE_NAME: "", | 
						|
          OBJECT_TABLE_CNNAME: "", | 
						|
          SYSTEM_TABLE_CNNAME: "", | 
						|
          SYSTEM_TABLE_NAME: "", | 
						|
        }, | 
						|
      }; | 
						|
    }, | 
						|
    created() { | 
						|
      this.getDictOption(); | 
						|
    }, | 
						|
    mounted() {}, | 
						|
    methods: { | 
						|
      getDictOption() { | 
						|
        axios | 
						|
          .get("/dict_data/simpleList?type=std_filed_type", jwHeader) | 
						|
          .then((res) => { | 
						|
            this.dict.filedType = res.data; | 
						|
          }); | 
						|
      }, | 
						|
      uploadLocalFile() { | 
						|
        document.getElementById("localFile").click(); | 
						|
        document.getElementById("localFile").onchange = () => { | 
						|
          const file = document.getElementById("localFile").files[0]; | 
						|
          this.localJosnName = file.name; | 
						|
          const reader = new FileReader(); | 
						|
          reader.readAsText(file); | 
						|
          reader.onload = () => { | 
						|
            this.localJsonData = JSON.parse(reader.result); | 
						|
          }; | 
						|
        }; | 
						|
      }, | 
						|
      uploadThirdFile() { | 
						|
        document.getElementById("thirdFile").click(); | 
						|
        document.getElementById("thirdFile").onchange = () => { | 
						|
          const file = document.getElementById("thirdFile").files[0]; | 
						|
          this.thirdJsonName = file.name; | 
						|
          const reader = new FileReader(); | 
						|
          reader.readAsText(file); | 
						|
          reader.onload = () => { | 
						|
            this.thirdJsonData = JSON.parse(reader.result); | 
						|
          }; | 
						|
        }; | 
						|
      }, | 
						|
      addNewField() { | 
						|
        this.submitData = { | 
						|
          SYSTEM_NAME: "", | 
						|
          SYSTEM_FIELD: "", | 
						|
          INTERFACE_NAME: "", | 
						|
          INTERFACE_FIELD: "", | 
						|
          SYSTEM_FIELD_TYPE: "value", | 
						|
          SYSTEM_DICT_NAME: "", | 
						|
          OBJECT_FIELD_TYPE: "value", | 
						|
          OBJECT_DICT_NAME: "", | 
						|
        }; | 
						|
        this.isEditing = true; | 
						|
      }, | 
						|
      saveField(index) { | 
						|
        this.data.push(this.submitData); | 
						|
        this.isEditing = false; | 
						|
      }, | 
						|
      cancelField(index) { | 
						|
        this.submitData = { | 
						|
          SYSTEM_NAME: "", | 
						|
          SYSTEM_FIELD: "", | 
						|
          INTERFACE_NAME: "", | 
						|
          INTERFACE_FIELD: "", | 
						|
          SYSTEM_FIELD_TYPE: "value", | 
						|
          SYSTEM_DICT_NAME: "", | 
						|
          OBJECT_FIELD_TYPE: "value", | 
						|
          OBJECT_DICT_NAME: "", | 
						|
        }; | 
						|
        this.isEditing = false; | 
						|
      }, | 
						|
      deleteField(index) { | 
						|
        this.data.splice(index, 1); | 
						|
      }, | 
						|
      thridChange(e) { | 
						|
        this.submitData.INTERFACE_FIELD = e.target.value; | 
						|
      }, | 
						|
      localChange(e) { | 
						|
        this.submitData.SYSTEM_FIELD = e.target.value; | 
						|
      }, | 
						|
      saveAll() { | 
						|
        if ( | 
						|
          this.cachesData.SYSTEM_TABLE_NAME === "" || | 
						|
          this.cachesData.OBJECT_TABLE_NAME === "" | 
						|
        ) { | 
						|
          tools.alert("请输入表名"); | 
						|
          return; | 
						|
        } | 
						|
        if (this.data.length === 0) { | 
						|
          tools.alert("请输入字段"); | 
						|
          return; | 
						|
        } | 
						|
        const data = this.data.map((i) => { | 
						|
          return { | 
						|
            ...this.cachesData, | 
						|
            ...i, | 
						|
          }; | 
						|
        }); | 
						|
        console.log(data); | 
						|
        axios | 
						|
          .post( | 
						|
            `/api/200100/stdobjectmappingcontroller/insertlist`, | 
						|
            { list: data }, | 
						|
            jwHeader | 
						|
          ) | 
						|
          .then((res) => { | 
						|
            tools.highlightErrorFields(res.data); | 
						|
            // window.location.href = './std_filed_map.html' | 
						|
          }) | 
						|
          .catch((error) => { | 
						|
            tools.alert(error.message); | 
						|
          }); | 
						|
      }, | 
						|
      cancelAll() { | 
						|
        window.location.href = "./std_filed_map.html"; | 
						|
      }, | 
						|
    }, | 
						|
  }); | 
						|
</script>
 | 
						|
 |