diff --git a/html/src/app.js b/html/src/app.js index b841482e..c766e9b7 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -22427,10 +22427,13 @@ speechSynthesis.getVoices(); $app.data.friendsListSearchFilters = []; $app.data.friendsListSelectAllCheckbox = false; $app.data.friendsListBulkUnfriendMode = false; + $app.data.friendsListBulkUnfriendForceUpdate = 0; - $app.watch.friendsListBulkUnfriendMode = (newV) => { - if (!newV) { - $app.friendsListTable.data.forEach((i) => delete i.$selected); + $app.methods.toggleFriendsListBulkUnfriendMode = function () { + if (!this.friendsListBulkUnfriendMode) { + this.friendsListTable.data.forEach((ref) => { + ref.$selected = false; + }); } }; @@ -22520,8 +22523,8 @@ speechSynthesis.getVoices(); if (typeof ctx.ref === 'undefined') { continue; } - if (typeof ctx.$selected === 'undefined') { - ctx.$selected = false; + if (typeof ctx.ref.$selected === 'undefined') { + ctx.ref.$selected = false; } if (this.friendsListSearchFilterVIP && !ctx.isVIP) { continue; diff --git a/html/src/mixins/tabs/friendsList.pug b/html/src/mixins/tabs/friendsList.pug index 83d19562..9b4f3860 100644 --- a/html/src/mixins/tabs/friendsList.pug +++ b/html/src/mixins/tabs/friendsList.pug @@ -8,7 +8,7 @@ mixin friendsListTab() //- el-button(size="small" @click="showBulkUnfriendAllConfirm" style="margin-right:5px") Bulk Unfriend All div(style="display:inline-block;margin-right:10px") span.name {{ $t('view.friend_list.bulk_unfriend') }} - el-switch(v-model="friendsListBulkUnfriendMode" style="margin-left:5px") + el-switch(@change="toggleFriendsListBulkUnfriendMode" v-model="friendsListBulkUnfriendMode" style="margin-left:5px") span {{ $t('view.friend_list.load') }} template(v-if="friendsListLoading") span(v-text="friendsListLoadingProgress" style="margin-left:5px") @@ -29,10 +29,10 @@ mixin friendsListTab() el-tooltip(placement="top" :content="$t('view.friend_list.clear_tooltip')" :disabled="hideTooltips") el-button(type="default" @click="friendsListTable.data = []" icon="el-icon-delete" circle style="flex:none;margin-left:5px") data-tables(v-bind="friendsListTable" @row-click="selectFriendsListRow" style="margin-top:10px;cursor:pointer") - el-table-column(v-if="friendsListBulkUnfriendMode" width="55" prop="$selected") + el-table-column(width="55" prop="$selected" v-if="friendsListBulkUnfriendMode" :key="friendsListBulkUnfriendForceUpdate") template(v-once #default="scope") el-button(type="text" size="mini" @click.stop) - el-checkbox(@change="$app.$set(scope.row, '$selected', $event)" :value="'$selected' in scope.row?scope.row.$selected:false") + el-checkbox(v-model="scope.row.$selected" @change="friendsListBulkUnfriendForceUpdate++") el-table-column(:label="$t('table.friendList.no')" width="70" prop="$friendNum" sortable="custom") el-table-column(:label="$t('table.friendList.avatar')" width="70" prop="photo") template(v-once #default="scope")