312 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			312 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
    <a-row :gutter="30">
 | 
						|
      <a-col :md="11" :sm="1" >
 | 
						|
        <!-- 查询区域 -->
 | 
						|
        <a-form layout="inline" @keyup.enter.native="gettagTables" style="margin-top: 10px; margin-left: 4px;">
 | 
						|
            <a-row :gutter="24">
 | 
						|
            <a-col :md="10" :sm="1">
 | 
						|
              <a-form-item label="标签类型">
 | 
						|
                    <a-select  placeholder="选择标签类型" option-filter-prop="children" size="large" @change="gattable" v-model="queryRefsParam.tagId" style="width: 200px;">
 | 
						|
                        <a-select-option v-for="d in datatagSources" :key="d.id">
 | 
						|
                        {{ d.tagName }}
 | 
						|
                        </a-select-option>
 | 
						|
                    </a-select>
 | 
						|
                </a-form-item>
 | 
						|
            </a-col>
 | 
						|
            <a-col :md="10" :sm="2">
 | 
						|
              <a-form-item label="关键词">
 | 
						|
                    <a-input placeholder="请输入搜索关键词" v-model="queryRefsParam.tableName"></a-input>
 | 
						|
                </a-form-item>
 | 
						|
            </a-col>
 | 
						|
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
 | 
						|
                <a-col :md="4" :sm="3" >
 | 
						|
                    <a-button type="primary"  style="left: 10px" @click="gettagTables" icon="search">查询</a-button>
 | 
						|
                </a-col>
 | 
						|
            </span>
 | 
						|
            </a-row>
 | 
						|
        </a-form>
 | 
						|
          <!-- table区域-begin -->
 | 
						|
          <div style="height:900px;overflow-y:auto;">
 | 
						|
            <a-table
 | 
						|
              ref="tagtable"
 | 
						|
              size="middle"
 | 
						|
              :loading="tagloading"
 | 
						|
              :row-selection="tagrowSelection"
 | 
						|
              bordered
 | 
						|
              rowKey="id"
 | 
						|
              :pagination="false"
 | 
						|
              :scroll="{ y: 800 }"
 | 
						|
              :columns="tagcolumns"
 | 
						|
              :dataSource="dataRefsSources">
 | 
						|
      <!--        :locale="myLocale"-->
 | 
						|
  
 | 
						|
              <!-- 字符串超长截取省略号显示-->
 | 
						|
            </a-table>
 | 
						|
          </div>
 | 
						|
      </a-col>
 | 
						|
      <a-col :md="2" :sm="2" >
 | 
						|
        <div style="padding-top: 100%; padding-left: 15%;">
 | 
						|
            <a-button type="primary" @click="addtag"> <a-icon type="left" />添加标签 </a-button>
 | 
						|
            <div style="height: 50px;"></div>
 | 
						|
            <a-button type="primary" @click="detag">移除标签<a-icon type="right" /> </a-button>
 | 
						|
        </div>
 | 
						|
      </a-col>
 | 
						|
      <a-col :md="11" :sm="3" >
 | 
						|
        <a-form layout="inline" @keyup.enter.native="getalltable" style="margin-top: 10px; margin-left: 4px;">
 | 
						|
            <a-row :gutter="24">
 | 
						|
            <a-col :md="20" :sm="1">
 | 
						|
                <a-form-item label="关键词">
 | 
						|
                    <a-input placeholder="请输入搜索关键词" v-model="queryParam.tableName"></a-input>
 | 
						|
                </a-form-item>
 | 
						|
            </a-col>
 | 
						|
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
 | 
						|
                <a-col :md="4" :sm="3" >
 | 
						|
                    <a-button type="primary"  style="left: 10px" @click="getalltable" icon="search">查询</a-button>
 | 
						|
                </a-col>
 | 
						|
            </span>
 | 
						|
            </a-row>
 | 
						|
        </a-form>
 | 
						|
          <!-- table区域-begin -->
 | 
						|
          <div style="height:900px;overflow-y:auto;">
 | 
						|
            <a-table
 | 
						|
              ref="table"
 | 
						|
              size="middle"
 | 
						|
              :row-selection="rowSelection"
 | 
						|
              bordered
 | 
						|
              :loading="loading"
 | 
						|
              :rowKey="getRowKey"
 | 
						|
              :pagination="false"
 | 
						|
              :scroll="{ y: 800 }"
 | 
						|
              :columns="columns"
 | 
						|
              :dataSource="dataSource">
 | 
						|
      <!--        :locale="myLocale"-->
 | 
						|
  
 | 
						|
              <!-- 字符串超长截取省略号显示-->
 | 
						|
            </a-table>
 | 
						|
          </div>
 | 
						|
      </a-col>
 | 
						|
    </a-row>
 | 
						|
    
 | 
						|
  </template>
 | 
						|
  
 | 
						|
  <script>
 | 
						|
    import store from '@/store/'
 | 
						|
    import {getAction} from '@/api/manage'
 | 
						|
    import { idcTableTagRef,
 | 
						|
    getTableTagRefs,
 | 
						|
    getAllTable,
 | 
						|
    idcTableTagRefdelete } from '@/api/idcTableTagRef'
 | 
						|
    import { idcTableTaglist } from '@/api/tag'
 | 
						|
import get from 'lodash.get'
 | 
						|
    export default {
 | 
						|
      name: "dataManage",
 | 
						|
      components: {
 | 
						|
      },
 | 
						|
      data () {
 | 
						|
        return {
 | 
						|
          description: '标准库',
 | 
						|
          contentList:[],
 | 
						|
          percent:0,
 | 
						|
          websock:{},
 | 
						|
          queryRefsParam: {
 | 
						|
            tableName :"",
 | 
						|
            tagId:"",
 | 
						|
            pageNum :1,
 | 
						|
            pageSize:9999999,
 | 
						|
          },
 | 
						|
          queryParam: {
 | 
						|
            tableName :"",
 | 
						|
            tagId:"",
 | 
						|
            pageNum :1,
 | 
						|
            pageSize:9999999,
 | 
						|
          },
 | 
						|
          datatagSources: [],
 | 
						|
          dataRefsSources:[],
 | 
						|
          dataSource:[
 | 
						|
          ],
 | 
						|
          tagloading:false,
 | 
						|
          loading:false,
 | 
						|
          columns: [
 | 
						|
            {
 | 
						|
              title: '表名',
 | 
						|
              align:"left",
 | 
						|
              dataIndex: 'tableName',
 | 
						|
            },
 | 
						|
            {
 | 
						|
              title: '报文名',
 | 
						|
              align:"left",
 | 
						|
              dataIndex: 'tableMessName'
 | 
						|
            },
 | 
						|
          ],
 | 
						|
          tagcolumns: [
 | 
						|
            {
 | 
						|
              title: '#',
 | 
						|
              dataIndex: '',
 | 
						|
              key:'id',
 | 
						|
              width:60,
 | 
						|
              align:"center",
 | 
						|
              customRender:function (t,r,index) {
 | 
						|
                return parseInt(index)+1;
 | 
						|
              }
 | 
						|
            },
 | 
						|
            {
 | 
						|
              title: '表名',
 | 
						|
              align:"left",
 | 
						|
              dataIndex: 'tableName',
 | 
						|
            },
 | 
						|
            {
 | 
						|
              title: '报文名',
 | 
						|
              align:"left",
 | 
						|
              dataIndex: 'tableMessName'
 | 
						|
            },
 | 
						|
          ],
 | 
						|
          tagqueryParam: {
 | 
						|
            pageNum :1,
 | 
						|
            pageSize:20,
 | 
						|
            tagName:""
 | 
						|
          },
 | 
						|
          selectedRowKeys: [],
 | 
						|
          tagselectedRowKeys: [],
 | 
						|
          selectedRowData: [],
 | 
						|
          tagselectedRowData: [],
 | 
						|
        }
 | 
						|
      },
 | 
						|
      mounted() { 
 | 
						|
          this.getdatatagSources()
 | 
						|
      },
 | 
						|
      computed: {
 | 
						|
        getRowKey(record) {
 | 
						|
           return `${record.schemaName}_${record.tableName}`
 | 
						|
        },
 | 
						|
        rowSelection() {
 | 
						|
            return {
 | 
						|
              selectedRowKeys: this.selectedRowKeys,
 | 
						|
              onChange: this.handleSelectChange,
 | 
						|
              preserveSelectedRowKeys: true,  // 保持选中项key
 | 
						|
              type: 'checkbox',  // 多选模式
 | 
						|
              columnWidth: 60,   // 选择列宽度
 | 
						|
              getCheckboxProps: record => ({
 | 
						|
                // 可以在这里设置禁用条件
 | 
						|
                // disabled: record.disabled  
 | 
						|
              })
 | 
						|
            }
 | 
						|
        },
 | 
						|
        tagrowSelection() {
 | 
						|
            return {
 | 
						|
              selectedRowKeys: this.tagselectedRowKeys,
 | 
						|
              onChange: this.taghandleSelectChange,
 | 
						|
              preserveSelectedRowKeys: true,  // 保持选中项key
 | 
						|
              type: 'checkbox',  // 多选模式
 | 
						|
              columnWidth: 60,   // 选择列宽度
 | 
						|
              getCheckboxProps: record => ({
 | 
						|
                // 可以在这里设置禁用条件
 | 
						|
                // disabled: record.disabled  
 | 
						|
              })
 | 
						|
            }
 | 
						|
        }
 | 
						|
      },
 | 
						|
      destroyed: function () { 
 | 
						|
      },
 | 
						|
      created () {
 | 
						|
  
 | 
						|
      },
 | 
						|
      methods: {
 | 
						|
        handleSelectChange(selectedRowKeys,row) {
 | 
						|
          this.selectedRowKeys = selectedRowKeys
 | 
						|
          this.selectedRowData = row
 | 
						|
        },
 | 
						|
        taghandleSelectChange(selectedRowKeys,row) {
 | 
						|
          this.tagselectedRowKeys = selectedRowKeys
 | 
						|
          this.tagselectedRowData = row
 | 
						|
        },
 | 
						|
        gattable(){
 | 
						|
          this.getalltable();
 | 
						|
          this.gettagTables();
 | 
						|
        },
 | 
						|
        getdatatagSources(){
 | 
						|
          idcTableTaglist(this.tagqueryParam).then((res) => {
 | 
						|
              if (res.success) {
 | 
						|
                  this.datatagSources = res.result.records;
 | 
						|
                  this.queryRefsParam.tagId = res.result.records[0].id;
 | 
						|
                  this.gattable();
 | 
						|
              } else {
 | 
						|
                  this.$message.warning(res.message);
 | 
						|
              }
 | 
						|
          });
 | 
						|
        },
 | 
						|
        dataAdd(){
 | 
						|
          getAction("/dataSpecial/special").then((res) => {
 | 
						|
              if (res.success) {
 | 
						|
                  this.$message.success(res.message);
 | 
						|
              }
 | 
						|
          });
 | 
						|
        },
 | 
						|
 | 
						|
        addtag(){
 | 
						|
          var that = this;
 | 
						|
          this.selectedRowData.forEach(item => { 
 | 
						|
            idcTableTagRef({
 | 
						|
              "tagId": that.queryParam.tagId, 
 | 
						|
              "tableName": item.tableName, 
 | 
						|
              "schemaName": item.schemaName
 | 
						|
            }).then((res) => {
 | 
						|
              if (res.success) {
 | 
						|
                that.gattable();
 | 
						|
              } else {
 | 
						|
                that.$message.warning(res.message);
 | 
						|
              }
 | 
						|
            });
 | 
						|
          })
 | 
						|
        },
 | 
						|
        detag(){
 | 
						|
          var that = this;
 | 
						|
          this.tagselectedRowKeys.forEach(item => {
 | 
						|
            idcTableTagRefdelete({id: item}).then((res) => {
 | 
						|
              if (res.success) {
 | 
						|
                that.gattable();
 | 
						|
              } else {
 | 
						|
                that.$message.warning(res.message);
 | 
						|
              }
 | 
						|
            });
 | 
						|
          });
 | 
						|
        },
 | 
						|
        getalltable(){
 | 
						|
          this.queryParam.tagId  = this.queryRefsParam.tagId 
 | 
						|
          this.loading = true;
 | 
						|
          getAllTable(this.queryParam).then((res) => {
 | 
						|
              if (res.success) {
 | 
						|
                  this.dataSource = res.result;
 | 
						|
              } else {
 | 
						|
                  this.$message.warning(res.message);
 | 
						|
              }
 | 
						|
              this.loading = false;
 | 
						|
          });
 | 
						|
        },
 | 
						|
        gettagTables(){
 | 
						|
          this.tagloading = true;
 | 
						|
          getTableTagRefs(this.queryRefsParam).then((res) => {
 | 
						|
              if (res.success) {
 | 
						|
                  this.dataRefsSources = res.result.records;
 | 
						|
              } else {
 | 
						|
                  this.$message.warning(res.message);
 | 
						|
              }
 | 
						|
              this.tagloading = false;
 | 
						|
          });
 | 
						|
        },
 | 
						|
      }
 | 
						|
    }
 | 
						|
  </script>
 | 
						|
  <style scoped>
 | 
						|
    @import '~@assets/less/common.less';
 | 
						|
    /deep/.ant-checkbox-inner {
 | 
						|
      border: 1px solid #000 !important;
 | 
						|
    }
 | 
						|
    /deep/.ant-checkbox-checked .ant-checkbox-inner {
 | 
						|
      background-color: #fff !important; /* 将背景颜色修改为白色 */
 | 
						|
      border-color: #000 !important; /* 将边框颜色修改为黑色 */
 | 
						|
    }
 | 
						|
    /deep/.ant-checkbox-checked .ant-checkbox-inner::after {
 | 
						|
      border-bottom: 2px solid #000;
 | 
						|
      border-right: 2px solid #000;
 | 
						|
    }
 | 
						|
  </style> |