| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <script setup lang="ts">
- import { ref } from "vue";
- import ReCol from "@/components/ReCol";
- import { formRules } from "../utils/rule";
- import { FormProps } from "../utils/types";
- import { usePublicHooks } from "../../hooks";
- import { ALLOW_ROLES } from "@/global/constDefine.js";
- const props = withDefaults(defineProps<FormProps>(), {
- formInline: () => ({
- title: "新增",
- nickname: "",
- username: "",
- password: "",
- password2: "",
- status: 0,
- roles: []
- })
- });
- const ruleFormRef = ref();
- const { switchStyle } = usePublicHooks();
- const newFormInline = ref(props.formInline);
- function getRef() {
- return ruleFormRef.value;
- }
- defineExpose({ getRef });
- </script>
- <template>
- <el-form
- ref="ruleFormRef"
- :model="newFormInline"
- :rules="formRules"
- label-width="82px"
- >
- <el-row :gutter="30">
- <re-col :value="24" :xs="24" :sm="24">
- <el-form-item label="用户名称" prop="username">
- <el-input
- v-model="newFormInline.username"
- clearable
- placeholder="请输入用户名称"
- :disabled="newFormInline.title == '修改'"
- />
- </el-form-item>
- </re-col>
- <re-col :value="24" :xs="24" :sm="24">
- <el-form-item label="用户昵称" prop="nickname">
- <el-input
- v-model="newFormInline.nickname"
- clearable
- placeholder="请输入用户昵称"
- />
- </el-form-item>
- </re-col>
- <re-col :value="24" :xs="24" :sm="24">
- <el-form-item label="用户密码" prop="password">
- <el-input
- v-model="newFormInline.password"
- clearable
- show-password
- placeholder="8位及以上,需要包含数字、大写英文、小写英文、特殊字符中的两种及以上"
- />
- </el-form-item>
- </re-col>
- <re-col :value="24" :xs="24" :sm="24">
- <el-form-item label="角色">
- <el-select
- v-model="newFormInline.roles"
- placeholder="请选择"
- class="w-full"
- clearable
- multiple
- >
- <el-option
- v-for="(item, index) in ALLOW_ROLES"
- :key="index"
- :value="item.name"
- :label="item.title"
- >
- {{ item.title }}
- </el-option>
- </el-select>
- </el-form-item>
- </re-col>
- <re-col :value="12" :xs="24" :sm="24">
- <el-form-item label="用户状态">
- <el-switch
- v-model="newFormInline.status"
- inline-prompt
- :active-value="1"
- :inactive-value="0"
- active-text="启用"
- inactive-text="停用"
- :style="switchStyle"
- />
- </el-form-item>
- </re-col>
- </el-row>
- </el-form>
- </template>
|