|
@@ -38,7 +38,7 @@
|
|
|
<div class="tips">*账号用于登录ETA试用平台:https://exptest.hzinsights.com/</div>
|
|
|
<div class="right-header">
|
|
|
<span>已选{{ selectedTotal }}</span>
|
|
|
- <t-checkbox :indeterminate="isIndeterminate" v-model="isCheckAll" @change="listCheckAllChange" style="margin-left: 40px;">列表全选</t-checkbox>
|
|
|
+ <t-checkbox :indeterminate="indeterminate" v-model="checkAll" @change="handleClickCheckAll" style="margin-left: 40px;">列表全选</t-checkbox>
|
|
|
</div>
|
|
|
</template>
|
|
|
</template>
|
|
@@ -59,8 +59,17 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="table-wrap">
|
|
|
- <t-table :data="tableData" @sort-change="sortChangeHandle" :selected-row-keys="selectedRowKeys"
|
|
|
- @select-change="selectionChange" :columns="columnList" ref="dataRef" :bordered="true" :table-layout="'auto'" rowKey="EtaTrialId" v-loading="tableLoading" @select="selectHandles" @select-all="selectAllHandle">
|
|
|
+ <t-table
|
|
|
+ :data="tableData"
|
|
|
+ v-model:selectedRowKeys="selectedRowKeys"
|
|
|
+ @sort-change="tableSelectChange"
|
|
|
+ @select-change="tableSelectChange"
|
|
|
+ :columns="columnList"
|
|
|
+ ref="dataRef"
|
|
|
+ :bordered="true"
|
|
|
+ :table-layout="'auto'"
|
|
|
+ row-key="EtaTrialId"
|
|
|
+ v-loading="tableLoading">
|
|
|
<!-- <template #approveType="{ row }">
|
|
|
<span >
|
|
|
{{ row['approveType'] === 0 ? '申请账号' : '申请启用' }}
|
|
@@ -183,10 +192,8 @@ const total = ref(1);
|
|
|
const isApplyApprovalDialogShow = ref(false);
|
|
|
const isAddApplyHintShow = ref(false);
|
|
|
const showDetailDialogShow = ref(false);
|
|
|
-const isIndeterminate = ref(false);
|
|
|
-const isCheckAll = ref(false);
|
|
|
-const isSelectAll = ref(false);
|
|
|
-const selectList = ref([]);
|
|
|
+const indeterminate = ref(false);
|
|
|
+const checkAll = ref(false);
|
|
|
const choiceIdList = ref([]);
|
|
|
const tableDataIds = ref([]);
|
|
|
const isMoveShow = ref(false);
|
|
@@ -195,15 +202,17 @@ const moveInfo = reactive({
|
|
|
salesArr: [], // 销售列表
|
|
|
selectArr: [], // 已选择的id
|
|
|
});
|
|
|
-const selectedRowKeys = ref([1]);
|
|
|
+const selectedRowKeys = ref([]);
|
|
|
+const AlltableData = ref([]);
|
|
|
+const cancelKeys = ref([]);
|
|
|
|
|
|
// 计算属性
|
|
|
const Role = computed(() => sessionStorage.getItem('Role'));
|
|
|
const selectedTotal = computed(() => {
|
|
|
- if (isSelectAll.value) {
|
|
|
- return total.value - selectList.value.length;
|
|
|
+ if (checkAll.value) {
|
|
|
+ return total.value - cancelKeys.value.length;
|
|
|
} else {
|
|
|
- return selectList.value.length;
|
|
|
+ return selectedRowKeys.value.length;
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -260,20 +269,18 @@ const getTableData = async (type) => {
|
|
|
});
|
|
|
if (res.Ret !== 200) return;
|
|
|
const { List, Paging, ApprovalNum } = res.Data;
|
|
|
+ AlltableData.value = [...List, ...AlltableData.value]
|
|
|
tableData.value = List || [];
|
|
|
total.value = Paging.Totals;
|
|
|
approvalNum.value = ApprovalNum || 0;
|
|
|
tableLoading.value = false;
|
|
|
- if (tableData.value.length > 0) {
|
|
|
- tableDataIds.value = tableData.value.map(it => it.EtaTrialId);
|
|
|
- } else {
|
|
|
- tableDataIds.value = [];
|
|
|
- }
|
|
|
- if (type === 'search') {
|
|
|
- selectList.value = [];
|
|
|
- listCheckAllChange(false);
|
|
|
- } else {
|
|
|
- adjustSelection();
|
|
|
+ if(checkAll.value){
|
|
|
+ //全选了去除之前记录被手动取消勾选的项
|
|
|
+ tableData.value.forEach(item=>{
|
|
|
+ if(!selectedRowKeys.value.includes(item.EtaTrialId)&&!cancelSelectRowKeys.includes(item.EtaTrialId)){
|
|
|
+ selectedRowKeys.value.push(item.EtaTrialId)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -316,90 +323,43 @@ const handleCurrentChange = (pageNo) => {
|
|
|
getTableData();
|
|
|
};
|
|
|
|
|
|
-const adjustSelection = () => {
|
|
|
- if (!isSelectAll.value) {
|
|
|
- tableData.value.forEach(it => {
|
|
|
- if (selectList.value.includes(it.EtaTrialId)) {
|
|
|
- // toggleRowSelection(it, true);
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
- tableData.value.forEach(it => {
|
|
|
- if (!selectList.value.includes(it.EtaTrialId)) {
|
|
|
- // toggleRowSelection(it, true);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
-const listCheckAllChange = (value) => {
|
|
|
- selectList.value = [];
|
|
|
- isSelectAll.value = value;
|
|
|
- // clearSelection();
|
|
|
- if (value) {
|
|
|
- // toggleAllSelection();
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
-const selectionChange = (selection) => {
|
|
|
- setTimeout(() => {
|
|
|
- const duplicateArr = Array.from(new Set(selectList.value));
|
|
|
- if ((duplicateArr.length === total.value && !isSelectAll.value) || (duplicateArr.length === 0 && isSelectAll.value)) {
|
|
|
- isCheckAll.value = true;
|
|
|
- isIndeterminate.value = false;
|
|
|
- } else if ((duplicateArr.length === 0 && !isSelectAll.value) || (duplicateArr.length === total.value && isSelectAll.value)) {
|
|
|
- isCheckAll.value = false;
|
|
|
- isIndeterminate.value = false;
|
|
|
- } else {
|
|
|
- isCheckAll.value = false;
|
|
|
- isIndeterminate.value = true;
|
|
|
- }
|
|
|
- }, 1);
|
|
|
-};
|
|
|
-
|
|
|
-const selectHandles = (selection, row) => {
|
|
|
- let check = false;
|
|
|
- if (selection.some(it => it.EtaTrialId === row.EtaTrialId)) {
|
|
|
- if (isSelectAll.value) {
|
|
|
- check = false;
|
|
|
+let cancelSelectRowKeys=[]//取消选择的keys
|
|
|
+function tableSelectChange(value, ctx) {
|
|
|
+
|
|
|
+ if (ctx.type === 'uncheck') {
|
|
|
+ if (ctx.currentRowKey === 'CHECK_ALL_BOX') {
|
|
|
+ tableData.value.forEach(i => cancelSelectRowKeys.push(i.EtaTrialId));
|
|
|
} else {
|
|
|
- check = true;
|
|
|
+ cancelSelectRowKeys.push(ctx.currentRowKey);
|
|
|
}
|
|
|
- } else {
|
|
|
- if (isSelectAll.value) {
|
|
|
- check = true;
|
|
|
+ indeterminate.value = selectedRowKeys.value.length > 0;
|
|
|
+ checkAll.value = selectedRowKeys.value.length === 0 ? false : checkAll.value;
|
|
|
+ } else if (ctx.type === 'check') {
|
|
|
+ indeterminate.value = true;
|
|
|
+ if (selectedRowKeys.value.length === total.value) {
|
|
|
+ checkAll.value = true;
|
|
|
+ indeterminate.value = false;
|
|
|
+ cancelSelectRowKeys = [];
|
|
|
} else {
|
|
|
- check = false;
|
|
|
+ cancelSelectRowKeys = cancelSelectRowKeys.filter(i => selectedRowKeys.value.includes(i));
|
|
|
}
|
|
|
}
|
|
|
- if (check) {
|
|
|
- selectList.value.push(row.EtaTrialId);
|
|
|
- } else {
|
|
|
- selectList.value = selectList.value.filter(it => it !== row.EtaTrialId);
|
|
|
- }
|
|
|
-};
|
|
|
+ cancelKeys.value = cancelSelectRowKeys
|
|
|
+}
|
|
|
|
|
|
-const selectAllHandle = (selection) => {
|
|
|
- let check = false;
|
|
|
- if (selection && selection.length > 0) {
|
|
|
- if (isSelectAll.value) {
|
|
|
- check = false;
|
|
|
- } else {
|
|
|
- check = true;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (isSelectAll.value) {
|
|
|
- check = true;
|
|
|
- } else {
|
|
|
- check = false;
|
|
|
- }
|
|
|
- }
|
|
|
- if (check) {
|
|
|
- selectList.value = [...selectList.value, ...tableDataIds.value];
|
|
|
- } else {
|
|
|
- selectList.value = selectList.value.filter(it => !tableDataIds.value.includes(it));
|
|
|
+function handleClickCheckAll(check) {
|
|
|
+ if(!check&&indeterminate.value){
|
|
|
+ selectedRowKeys.value=[...selectedRowKeys.value,...cancelSelectRowKeys]
|
|
|
+ cancelSelectRowKeys=[]
|
|
|
+ indeterminate.value = false;
|
|
|
+ checkAll.value=true
|
|
|
+ return
|
|
|
}
|
|
|
-};
|
|
|
+ indeterminate.value = false;
|
|
|
+ selectedRowKeys.value = check ? tableData.value.map(item => item.EtaTrialId) : [];
|
|
|
+ cancelSelectRowKeys = [];
|
|
|
+ cancelKeys.value = cancelSelectRowKeys
|
|
|
+}
|
|
|
|
|
|
const getApplyInfo = (type, data) => {
|
|
|
const temp = { applyType: 1, applyData: [] };
|
|
@@ -482,7 +442,7 @@ const moveConfirm = (data) => {
|
|
|
const params = {
|
|
|
currentSellerId,
|
|
|
EtaTrialIdList: selectArr,
|
|
|
- IsCheckAll: type === 1 ? false : isSelectAll.value,
|
|
|
+ IsCheckAll: type === 1 ? false : checkAll.value,
|
|
|
CurrentSellerName: findElementByAdminId(moveInfo.salesArr, currentSellerId).RealName,
|
|
|
};
|
|
|
etaTrialInterence.accountTransfer(params).then(res => {
|
|
@@ -520,23 +480,24 @@ const Move = (row) => {
|
|
|
};
|
|
|
|
|
|
const batchMove = () => {
|
|
|
- if (selectList.value.length === 0) {
|
|
|
+ if (selectedRowKeys.value.length === 0) {
|
|
|
MessagePlugin.warning('请至少选择一个客户');
|
|
|
return;
|
|
|
}
|
|
|
moveInfo.type = 2;
|
|
|
- moveInfo.selectArr = selectList.value;
|
|
|
+ moveInfo.selectArr = selectedRowKeys.value;
|
|
|
isMoveShow.value = true;
|
|
|
};
|
|
|
|
|
|
const batchOperate = async () => {
|
|
|
- if (getMobileList(tableData.value, selectList.value).length === 0) {
|
|
|
+
|
|
|
+ if ([...new Set(getMobileList(AlltableData.value, selectedRowKeys.value))].length === 0) {
|
|
|
MessagePlugin.warning('请至少选择一个客户');
|
|
|
return;
|
|
|
}
|
|
|
const res = await etaTrialInterence.applyEnable({
|
|
|
- MobileList: getMobileList(tableData.value, selectList.value),
|
|
|
- IsCheckAll: isSelectAll.value,
|
|
|
+ MobileList: [...new Set(getMobileList(AlltableData.value, checkAll.value ? cancelSelectRowKeys : selectedRowKeys.value))],
|
|
|
+ IsCheckAll: checkAll.value,
|
|
|
});
|
|
|
if (res.Ret !== 200) return;
|
|
|
getTableData();
|