admin模块接入数据库

This commit is contained in:
comlibmb
2026-02-13 17:29:50 +08:00
parent 56209b7a75
commit ec636dc703
58 changed files with 5586 additions and 1394 deletions

View File

@@ -301,10 +301,12 @@
</template>
<script setup lang="uts">
import { ref } from 'vue'
import { ref, onMounted } from 'vue'
import { getDistributionConfig, saveDistributionConfig, DistributionConfig } from '@/services/admin/distributionService.uts'
const activeTab = ref(0)
const tabs = ['分销模式', '返佣设置', '提现设置']
const isLoading = ref(false)
const form = ref({
// 分销模式
@@ -338,6 +340,50 @@ const form = ref({
user_extract_fee: '0'
})
onMounted(() => {
loadConfig()
})
async function loadConfig() {
isLoading.value = true
try {
const res = await getDistributionConfig()
if (res != null) {
// 映射 DB 类型 (boolean/number) 到页面字符串类型 ('1'/'0')
form.value.statue = res.is_enabled ? '1' : '0'
form.value.extract_type = res.extract_type
form.value.bind_type = res.bind_type
form.value.store_brokerage_binding_status = res.store_brokerage_binding_status
form.value.brokerage_poster_status = res.brokerage_poster_status ?? ''
form.value.brokerage_level = String(res.brokerage_level)
form.value.is_area_manager = res.is_area_manager ? '1' : '0'
form.value.is_agent_apply = res.is_agent_apply ? '1' : '0'
form.value.is_commission_window = res.is_commission_window ? '1' : '0'
form.value.is_self_brokerage = res.is_self_brokerage ? '1' : '0'
form.value.is_member_brokerage = res.is_member_brokerage ? '1' : '0'
form.value.brokerage_type = res.brokerage_type
form.value.is_promoter_brokerage = res.is_promoter_brokerage ? '1' : '0'
form.value.promoter_brokerage_price = String(res.promoter_brokerage_price)
form.value.promoter_brokerage_day_max = String(res.promoter_brokerage_day_max)
form.value.store_brokerage_ratio = String(res.store_brokerage_ratio)
form.value.store_brokerage_two_ratio = String(res.store_brokerage_two_ratio)
form.value.extract_frozen_time = String(res.extract_frozen_time)
form.value.user_extract_min_price = String(res.user_extract_min_price)
form.value.extract_bank_list = res.extract_bank_list
form.value.extract_type_list = res.extract_type_list
form.value.wechat_extract_type = res.wechat_extract_type
form.value.alipay_extract_type = res.alipay_extract_type
form.value.user_extract_fee = String(res.user_extract_fee)
}
} catch (e) {
uni.showToast({ title: '加载配置失败', icon: 'none' })
} finally {
isLoading.value = false
}
}
function onUploadPoster() {
uni.chooseImage({
count: 1,
@@ -347,8 +393,50 @@ function onUploadPoster() {
})
}
function onSubmit() {
async function onSubmit() {
isLoading.value = true
try {
// 映射页面字符串类型到 DB 类型
const config: DistributionConfig = {
is_enabled: form.value.statue === '1',
extract_type: form.value.extract_type,
bind_type: form.value.bind_type,
store_brokerage_binding_status: form.value.store_brokerage_binding_status,
brokerage_poster_status: form.value.brokerage_poster_status,
brokerage_level: parseInt(form.value.brokerage_level),
is_area_manager: form.value.is_area_manager === '1',
is_agent_apply: form.value.is_agent_apply === '1',
is_commission_window: form.value.is_commission_window === '1',
is_self_brokerage: form.value.is_self_brokerage === '1',
is_member_brokerage: form.value.is_member_brokerage === '1',
brokerage_type: form.value.brokerage_type,
is_promoter_brokerage: form.value.is_promoter_brokerage === '1',
promoter_brokerage_price: parseFloat(form.value.promoter_brokerage_price),
promoter_brokerage_day_max: parseFloat(form.value.promoter_brokerage_day_max),
store_brokerage_ratio: parseFloat(form.value.store_brokerage_ratio),
store_brokerage_two_ratio: parseFloat(form.value.store_brokerage_two_ratio),
extract_frozen_time: parseInt(form.value.extract_frozen_time),
user_extract_min_price: parseFloat(form.value.user_extract_min_price),
extract_bank_list: form.value.extract_bank_list,
extract_type_list: form.value.extract_type_list,
wechat_extract_type: form.value.wechat_extract_type,
alipay_extract_type: form.value.alipay_extract_type,
user_extract_fee: parseFloat(form.value.user_extract_fee)
}
const success = await saveDistributionConfig(config)
if (success) {
uni.showToast({ title: '保存成功', icon: 'success' })
} else {
uni.showToast({ title: '保存失败', icon: 'none' })
}
} catch (e) {
uni.showToast({ title: '操作异常', icon: 'none' })
} finally {
isLoading.value = false
}
}
</script>