import { reactive, toRefs, useAttrs } from "vue"; export function selectTableMixin() { const state = reactive({ nowSelectData: [], allSelectData: {}, }); const attrs = useAttrs(); // const nowSelectData = reactive([]) // const allSelectData = reactive({}) const selectData = (val) => { console.log(val); state.nowSelectData = val; console.log("allSelectData"); console.log(state.allSelectData); console.log(Object.keys(state.allSelectData).length); }; const initSelectTableData = (data) => { return new Promise((reslove, reject) => { data.forEach((e) => { if (state.allSelectData[e[attrs.rowKey || "id"]]) { delete state.allSelectData[e[attrs.rowKey || "id"]]; state.nowSelectData.push(e); } }); console.log(state.nowSelectData); reslove(state.nowSelectData); }); }; const runPage = () => { //翻页数据推进 state.nowSelectData.forEach((e) => { state.allSelectData[e[attrs.rowKey || "id"]] = e; }); state.nowSelectData = []; }; const clearTable = () => { //清除选中数据,在页面状态更新时使用 state.allSelectData = {}; state.nowSelectData = []; clearSelection(); }; const dealSelectData = () => { //最后提交处理数据 state.nowSelectData.forEach((e) => { state.allSelectData[e[attrs.rowKey || "id"]] = e; }); return state.allSelectData; }; const { nowSelectData, allSelectData } = toRefs(state); return { nowSelectData, allSelectData, selectData, initSelectTableData, runPage, clearTable, dealSelectData, }; } // export const selectTableMixin = { // data(){ // return{ // nowSelectData:[],//声明现在选中数组 // allSelectData:{},//全部选中数据obj // } // }, // methods: { // selectData(val){//选中赋值 // console.log(val); // this.nowSelectData = val // console.log('allSelectData'); // console.log(this.allSelectData); // console.log(Object.keys(this.allSelectData).length); // }, // initSelectTableData(data){//初始化选中table数据 // data.forEach(e => { // if(this.allSelectData[e.id]){ // delete this.allSelectData[e.id] // this.nowSelectData.push(e) // } // }); // console.log(this.nowSelectData); // if(this.nowSelectData.length){ // setTimeout(()=>{ // this.toggleRowArrSelection(this.nowSelectData) // }) // } // }, // runPage(){//翻页数据推进 // this.nowSelectData.forEach(e => { // this.allSelectData[e.id] = e // }); // this.nowSelectData = [] // }, // clearTable(){//清除选中数据,在页面状态更新时使用 // this.allSelectData={} // this.nowSelectData=[] // this.clearSelection(); // }, // dealSelectData(){//最后提交处理数据 // this.nowSelectData.forEach(e => { // this.allSelectData[e.id] = e // }); // return this.allSelectData // } // }, // }