<!-- 用户：增加 / 修改 -->
<template>
    <div class="vue-box submit-box--dialog" style="width: 700px;">
        <div class="c-card">
            <el-form :inline="false" label-width="7em">
                <in-input type="num" name="用户id：" v-model="state.model.id" :disabled="state.id !== 0" placeholder="可不填，代表使用自增Id"></in-input>
                <in-input type="text" name="用户昵称：" v-model="state.model.username"></in-input>
                <in-input type="text" name="登录密码：" v-model="state.model.password" v-if="state.id === 0"></in-input>
                <in-input type="img" name="用户头像：" v-model="state.model.avatar"></in-input>
                <in-input type="textarea" name="个人介绍：" v-model="state.model.intro"></in-input>
                <in-input type="num" name="用户年龄：" v-model="state.model.age"></in-input>
                <in-enum type="enum" name="用户性别：" v-model="state.model.sex" :jv="{1: '男', 2: '女', 3: '未知'}" jtype="3"></in-enum>
                <in-input type="num" name="手机号码：" v-model="state.model.phone"></in-input>
                <in-input type="text" name="用户邮箱：" v-model="state.model.email"></in-input>
            </el-form>
        </div>
    </div>
</template>

<script setup name="sys-user-add">
import {getCurrentInstance, onMounted} from "vue";
const { proxy } = getCurrentInstance();

// 获取插值 
const prop = defineProps({
    param: {type: Object}
})

// ------------------ 数据 ------------------
const state = reactive({
    id: proxy.param.id || 0, // 获取传值id （0=添加，非0=修改）
    model: { // 数据 Model
        id: '',		// id号 
        username: '',		// 用户昵称 
        password: '',		// 账号密码 
        pw: '',		// 明文密码 
        avatar: '',		// 用户头像 
        intro: '',		// 个人介绍(签名) 
        age: 0,		// 用户年龄 
        sex: 1,		// 用户性别 (1=男,2=女,3=未知) 
        phone: '',		// 手机号 
        email: '',		// 用户邮箱 
        status: '',		// 账号状态(1=正常,2=禁用) 
        // createTime: '',		// 创建时间 
        // loginTime: '',		// 上次登陆时间 
        loginIp: '',		// 上次登陆IP 
        loginCount: '',		// 登陆次数 
    }
})

// 组件加载时触发
onMounted(function (){
    if(state.id !== 0) {
        sa.ajax('/SysUser/getById?id=' + state.id, function (res) {
            if(!res.data) {
                return sa.alert('数据不存在');
            }
            state.model = res.data;
        })
    }
})

// ------------------ 函数 ------------------

// 提交表单 
defineExpose({
    ok: function () {
        // 表单校验 
        let model = sa.copyJSON(state.model);
        delete model.createTime;    // 不提交属性：创建时间
        delete model.loginTime;		// 不提交属性：创建时间

        // 如果是增加
        if(state.id === 0) {
            sa.ajax('/SysUser/add', model, function(res) {
                sa.alert('添加成功', function() {
                    sa.closeModel();
                    sa.currView().f5();
                });
            });
        } else {
            // 如果是修改 
            sa.ajax('/SysUser/update', model, function(res) {
                sa.alert('修改成功', function() {
                    sa.closeModel();
                    sa.currView().f5();
                });
            });
        }
    }
});


</script>

<style scoped>

</style>
