マイクロチャンネル達成アプレットは、セルテーブルを編集することができます

最近開発されたアプレットは、固定回線カラム、および任意のセルの内容を変更する必要性を増加させる、編集可能なテーブルを必要と呼びます。

プロジェクト住所:wxTable-sawyersven

ページレイアウト

シミュレートするために、フレックステーブルレイアウトの主な用途は達成しました。Trと各細胞株の代わりに、それぞれのTDと、原因ので、テーブルができ作るためにスクロールビューを使用し、より多くのコンテンツを表示する必要性に
水平にスライドさせます。

<scroll-view scroll-x style="width: 100%" class="table">
    <block wx:for="{{tables}}" wx:for-item="table" wx:for-index="table_index">
        <view class="tr gray" wx:if="{{table_index % 2 == 0}}">
            <view class="td" wx:for="{{table}}" wx:item="item" bindtap="openModal" data-id="{{table_index}}">{{item}}</view>
        </view>
        <view class="tr" wx:else>
            <view class="td" wx:for="{{table}}" wx:item="item" bindtap="openModal" data-id="{{table_index}}">{{item}}</view>
        </view>
    </block>
</scroll-view>

.table {
    border: 0px solid darkgray;
    font-size: 12px;
}

.tr {
    display: flex;
    width: 2700rpx;
    align-items: center;
}

.td {
    width: 400rpx;
    height: 4rem;
    justify-content: center;
    text-align: center;
    word-wrap: break-word;
    flex-shrink: 0;
    line-height: 4rem
}
.gray{
    background:#E6FE3F9;
}

次のような効果があります

[画像ダンプ外側リンク障害(IMG-z7zwNo21-1567648625579)(http://test.td/mock/images/1.png)]

効果はほとんどスクリーンショットであるので、より多くの、各セルの内容のみ二つのセルを示す画面ので、将来のように、残りのセルは、参照右にスライドする必要があります(手動面白いです)

私たちは、次のような効果があり、ユーザーが編集するコンテンツを選択することができ、データおよびタイトルの各セルモーダルボックスショー全体の行の後にポップアップをクリックして、モーダルボックスに編集するテーブルを決めました。

[画像ダンプ外側リンク障害(IMG-ZtWMFvqE-1567648625580)(http://test.td/mock/images/2.png)]

各行ダウン上部からグラフ上の各入力は左側に示さ1-6細胞、テーブル見出しの入力を表す(表のすなわち最初の行)

モーダルボックスコード

<view wx:if="{{show}}" class="mask-form">
    <view class="mask-content-container" wx:for="{{cols}}" wx:for-item="col" wx:for-index="col_index">
        <text class="list-mask-title">{{titles[col_index]}}</text>
        <input class="list-mask-input" type="text" value="{{col}}" data-id="{{col_index}}" bindblur="dataChange" />
    </view>
    <button class="btn btn-confirm" type="success" bindtap="editModel">确认</button>
    <button class="btn btn-cancle" type="default" bindtap="closeModel">取消</button>
</view>

グループのレンダリングのモーダルフレームアウト、タイトルを表示するテキスト、セルの内容となっている入力。

表の編集

レイアウトの終了後、私たちのテーブルの各セルを編集する方法、であるメインイベントを入力します

ある2次元配列である、我々はデータを取得したと仮定します。

page({
    data:{
        tables:[
            ['标题1','标题2','标题3','标题4','标题5','标题6'],
            ['内容1','内容2','内容3','内容4','内容5','内容6'],
            ['内容1','内容2','内容3','内容4','内容5','内容6'],    
            ['内容1','内容2','内容3','内容4','内容5','内容6'],
        ]
    }
})

データを取得するために、セルをクリックしてください

当社は、データ-IDによって、各セルがどのテーブルが配列で指定する所属table_indexで、前のページにされてきました

データは次のようになります。ページがそう:

[画像ダンプ外側リンク障害(IMG-H3k1gZiT-1567648625581)(http://test.td/mock/images/3.png)]

我々はopenModal方法における各細胞に結合し、そして対応する着信データ-IDを介してデータの行全体を取得しています。

 openModel(e) {
        let id = e.target.dataset.id;
        this.setData({
            titles: this.data.tables[0],
            cols: this.data.tables[id],
            id: id,
            show: true
        });
    },

COLS:対応するアレイのIDを通過させることによって得られます

ショーは:モーダルボックスの表示状態を決定します。

ID:取得したデータのIDに格納されています

変更をコミット

配列に格納された入力値の入力後bindblur入力を修正する方法。

  dataChange(e) {
        let cols = this.data.cols;
        cols[e.target.dataset.id] = e.detail.value;
        console.log(cols);
        this.setData({
            cols: cols
        });

    },

確認ボタンは、モードフレームモード、修正ストレージアレイをクリックすると。

editModel(e) {
        let tables = this.data.tables;
        tables[this.data.id] = this.data.cols;

        this.setData({
            tables: tables,
            show: false
        });

    },


最後に、サーバ全体のテーブルのデータが保存されます。

したがって、我々はあなたが、各セルのテーブルを編集することができます実装しました。

あらゆる間違ったかミスがある場合は、そのことを歓迎します。

公開された11元の記事 ウォンの賞賛4 ビュー30000 +

おすすめ

転載: blog.csdn.net/kormondor/article/details/76922167