页面登录优化,team优化

This commit is contained in:
liamzi
2024-12-25 17:25:10 +08:00
parent 5eb069c63f
commit 4cbec25b53
18 changed files with 535 additions and 4816 deletions

View File

@@ -0,0 +1,101 @@
import { supabase } from '@/config/supabase'
class SupabaseService {
async get(table, options = {}) {
try {
let query = supabase
.from(table)
.select(options.select || '*', { count: 'exact' })
// 处理精确匹配条件
if (options.match) {
query = query.match(options.match)
}
// 处理过滤条件
if (options.filter) {
Object.entries(options.filter).forEach(([key, condition]) => {
Object.entries(condition).forEach(([operator, value]) => {
query = query.filter(key, operator, value)
})
})
}
// 处理排序
if (options.order) {
query = query.order(options.order.column, {
ascending: options.order.ascending
})
}
// 处理分页
if (options.page && options.pageSize) {
const from = (options.page - 1) * options.pageSize
const to = from + options.pageSize - 1
query = query.range(from, to)
}
const { data, error, count } = await query
if (error) throw error
return {
data,
total: count || 0
}
} catch (error) {
console.error(`Error fetching from ${table}:`, error.message)
throw error
}
}
// 通用 INSERT 请求
async insert(table, data) {
try {
const { data: result, error } = await supabase
.from(table)
.insert(data)
.select()
if (error) throw error
return result
} catch (error) {
console.error(`Error inserting into ${table}:`, error.message)
throw error
}
}
// 通用 UPDATE 请求
async update(table, match, updates) {
try {
const { data, error } = await supabase
.from(table)
.update(updates)
.match(match)
.select()
if (error) throw error
return data
} catch (error) {
console.error(`Error updating ${table}:`, error.message)
throw error
}
}
// 通用 DELETE 请求
async delete(table, match) {
try {
const { error } = await supabase
.from(table)
.delete()
.match(match)
if (error) throw error
return true
} catch (error) {
console.error(`Error deleting from ${table}:`, error.message)
throw error
}
}
}
export const supabaseService = new SupabaseService()