線のポップアップウィンドウの背景色を変更します

  今日、新しいタスクを受け取りました。パスの詳細に新しいヒントが必要です。シリアル番号がrouter_idに変更され、最初のデータの現在のノードと次のノードが同じである必要があります。同じでない場合、リストの背景色が変わります。router_idは、1から継続して表示する必要があります。そうしないと、背景色を変更するためのプロンプトも実行されます。長い間考えていたのですが、ようやく同僚の助けを借りて完成しました。IQが心配です。

バックグラウンドからデータを取得する方法:

loadDetailData(routerid) {
    
    
          if(!this.url.list){
    
    
            this.$message.error("请设置url.list属性!")
            return
          }
          //加载数据 若传入参数1则加载第一页的内容
          this.ipagination.current = 1;
          var params = Object.assign({
    
    routerId: routerid}, this.isorter);
          params.pageNo = this.ipagination.current;
          params.pageSize = this.ipagination.pageSize;
          this.loading = true;
          getAction(this.url.list, params).then((res) => {
    
    
            if (res.success) {
    
    
              this.dataSource = res.result.records;
              this.ipagination.total = res.result.total;
              // 校验连贯
              let len = this.dataSource.length
              console.log(len)
              for(var i = 0; i< len - 1; i++){
    
    
                if(this.dataSource[i].nextNode !== this.dataSource[i+1].curNode){
    
    
                  // 不连贯
                  console.log( '不连贯,i=' + i);
                  this.$message.warning('路径节点不连贯')
                  break;
                }
              }
            }
            if(res.code===510){
    
    
              this.$message.warning(res.message)
            }
            this.loading = false;
          })
        },

主な検証部分:

// 校验连贯
              let len = this.dataSource.length
              console.log(len)
              for(var i = 0; i< len - 1; i++){
    
    
                if(this.dataSource[i].nextNode !== this.dataSource[i+1].curNode){
    
    
                  // 不连贯
                  console.log( '不连贯,i=' + i);
                  this.$message.warning('路径节点不连贯')
                  break;
                }
              }

i <len-1;は境界処理であり、2つのコンテンツが比較されます。1つ減らさない方法では、配列が境界を越えます。
this.dataSource [i] .nextNodeは、現在のパスの次のノードパラメータです
。this.dataSource[i + 1] .curNodeは、次のパスの現在のノードパラメータです。
等しくないと判断された場合、メッセージプロンプトが表示されます。

テーブル変更の背景色メソッド
属性にaテーブルを追加します:rowClassName = "rowClassName"

<a-table
          ref="table"
          size="middle"
          bordered
          rowKey="id"
          :columns="columns"
          :dataSource="dataSource"
          :pagination="ipagination"
          :loading="loading"
          :rowClassName="rowClassName"
          @change="handleTableChange"
        >
        </a-table>

js:

methods: {
    
    
        rowClassName(record,index){
    
    
			//判定数字连续
            console.log(record)
            let j = index+1;//index从0开始,序号从一开始
            if(record.routerNo != j){
    
    
              return "blue-back";
            }
			//判定站点连续
          if(index>0 && this.dataSource[index-1].nextNode != record.curNode){
    
    
              // console.log('执行到了2')
                return "blue-back";
          }
          // return ""
        },

rowClassName(record、index)、recordは現在の行データ、indexは添え字
index> 0は2番目のデータ、2番目のデータが最初のデータノードと同じかどうかを判断します

CSS:

<style lang="less" scoped>
  /deep/.blue-back {
    
    
    background-color: #ffff00;
  }
</style>

完成した効果:
ここに画像の説明を挿入
ノードが連続していない:
ここに画像の説明を挿入
シリアル番号が連続していない:
ここに画像の説明を挿入
さらに:上下に移動するために2つのボタンを追加する必要もあります。ここでは、バックグラウンド送信データがシリアル番号に従って大きいものから小さいものへとソートされています。 、したがって、ボタンシフトはほとんど効果がありません。

おすすめ

転載: blog.csdn.net/sinat_33940108/article/details/115329533