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 // } // }, // }