Newer
Older
dxCard-admin / src / views / sys / basic / basicConfig.vue
jiangqihao 28 days ago 3 KB 基本信息配置
<template>
    <PageWrapper contentFullHeight>
        <CollapseContainer title="">
            <a-form :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
                <a-form-item label="拼团时间" class="flex-row">
                    <a-input v-model:value="formState.groundTime" type="number" maxlength="2" size="small" class="input-num-b" />小时
                </a-form-item>
                <a-form-item label="分销返佣金额 ">
                    <a-input v-model:value="formState.distributionCommission" type="number" maxlength="6" size="small" class="input-num-b" />元
                </a-form-item>
                <a-form-item label="拼团奖励配置">
                    <div style="margin-bottom: 10px">
                        参团办卡人数小于或等于<a-input v-model:value="formState.minPeopleNumber" size="small" class="input-num-s" />人,
                        奖励金额<a-input v-model:value="formState.minAmount" size="small" class="input-num-s" />元
                    </div>
                    <div>
                        参团办卡人数大于或等于<a-input v-model:value="formState.maxPeopleNumber" size="small" class="input-num-s" />人,
                        奖励金额<a-input v-model:value="formState.maxAmount" size="small" class="input-num-s" />元
                    </div>
                </a-form-item>
                <a-form-item :wrapper-col="{ span: 14, offset: 4 }">
                    <a-button style="margin-right: 10px">取消</a-button>
                    <a-button type="primary" @click="onSubmit">保存</a-button>
                </a-form-item>
            </a-form>
        </CollapseContainer>
    </PageWrapper>
</template>
<script lang="ts" name="sys-basicConfig" setup>
import { onMounted, reactive, toRaw } from 'vue';
import type { UnwrapRef } from 'vue';
import { PageWrapper } from '/@/components/Page';
import { CollapseContainer } from '/@/components/Container';
import { saveOrUpdate, queryOne } from './basicConfig.api';
import { useMessage } from '/@/hooks/web/useMessage';

interface FormState {
    id?: string;
    groundTime: number;
    distributionCommission: number;
    maxPeopleNumber: number;
    minPeopleNumber: number;
    minAmount: number;
    maxAmount: number;    
}
const formState: UnwrapRef<FormState> = reactive({
    groundTime: 0,
    distributionCommission: 0,
    maxPeopleNumber: 0,
    minPeopleNumber: 0,
    minAmount: 0,
    maxAmount: 0
});
const { createMessage } = useMessage();
const onSubmit = () => {
    console.log('submit!', toRaw(formState));
    saveOrUpdate(formState, !!formState.id).then((res) => {
        if(typeof res === 'string'){
            createMessage.error(res);
            return;
        }
        if (res && res.code === 200) {
            // 提交成功
            createMessage.success('保存成功');
        }
        createMessage.error(res.message || '保存失败');
    });
};
const labelCol = { style: { width: '150px' } };
const wrapperCol = { span: 14 };

onMounted(() => {
    queryOne().then((res) => {
        if (res && res.id) {
            Object.assign(formState, res);
        }
    });
});
</script>
<style lang="less" scoped>
.input-num-b {
    width: 150px;
    height: 30px;
}
.input-num-s {
    width: 50px;
    height: 30px;
}
</style>