|
@@ -6,30 +6,35 @@
|
|
|
:width="600"
|
|
|
:closeOnOverlayClick="false"
|
|
|
>
|
|
|
- <t-form ref="formRef" :model="formData" labelWidth="120px">
|
|
|
- <t-form-item label="姓名">
|
|
|
- <t-input v-model="formData.a"></t-input>
|
|
|
+ <t-form ref="formRef" :data="formData" labelWidth="120px" :rules="rules">
|
|
|
+ <t-form-item label="登录名" name="loginName">
|
|
|
+ <t-input v-model="formData.loginName"></t-input>
|
|
|
</t-form-item>
|
|
|
- <t-form-item label="性别">
|
|
|
- <t-radio-group v-model="formData.b">
|
|
|
- <t-radio value="1">男</t-radio>
|
|
|
- <t-radio value="2">女</t-radio>
|
|
|
- </t-radio-group>
|
|
|
+ <t-form-item label="姓名" name="realName">
|
|
|
+ <t-input v-model="formData.realName"></t-input>
|
|
|
</t-form-item>
|
|
|
- <t-form-item label="手机">
|
|
|
- <t-input v-model="formData.c"></t-input>
|
|
|
+ <t-form-item label="性别" name="genderStr">
|
|
|
+ <t-radio-group v-model="formData.genderStr">
|
|
|
+ <t-radio value="男">男</t-radio>
|
|
|
+ <t-radio value="女">女</t-radio>
|
|
|
+ </t-radio-group>
|
|
|
</t-form-item>
|
|
|
- <t-form-item label="所属节点">
|
|
|
- <t-tree-select v-model="formData.d" :data="treeData" />
|
|
|
+ <t-form-item label="手机" name="mobileNumber">
|
|
|
+ <t-input v-model="formData.mobileNumber"></t-input>
|
|
|
</t-form-item>
|
|
|
- <t-form-item label="角色">
|
|
|
- <t-select v-model="formData.e"></t-select>
|
|
|
+ <t-form-item label="所属机构" name="orgId">
|
|
|
+ <t-tree-select
|
|
|
+ v-model="formData.orgId"
|
|
|
+ :data="treeData"
|
|
|
+ :treeProps="treeProps"
|
|
|
+ />
|
|
|
</t-form-item>
|
|
|
- <t-form-item label="状态">
|
|
|
- <t-select v-model="formData.c">
|
|
|
- <t-option value="1">启用</t-option>
|
|
|
- <t-option value="2">禁用</t-option>
|
|
|
- </t-select>
|
|
|
+ <t-form-item label="角色" name="roleIds">
|
|
|
+ <t-select
|
|
|
+ v-model="formData.roleIds"
|
|
|
+ :options="roleList"
|
|
|
+ multiple
|
|
|
+ ></t-select>
|
|
|
</t-form-item>
|
|
|
</t-form>
|
|
|
<template #foot>
|
|
@@ -42,39 +47,117 @@
|
|
|
</template>
|
|
|
<script setup name="AddUserDialog">
|
|
|
import useClearDialog from '@/hooks/useClearDialog';
|
|
|
-import { ref, watch } from 'vue';
|
|
|
+import { ref, computed } from 'vue';
|
|
|
+import { getOrgStructList, getRoleList, addUser } from '@/api/user';
|
|
|
+import { useRequest } from 'vue-request';
|
|
|
const props = defineProps({
|
|
|
visible: Boolean,
|
|
|
curRow: Object,
|
|
|
});
|
|
|
-const emit = defineEmits(['update:visible']);
|
|
|
+const emit = defineEmits(['update:visible', 'success']);
|
|
|
const formRef = ref(null);
|
|
|
const getDetail = async () => {
|
|
|
//编辑状态下获取回显数据的接口请求业务,如果curRow里的字段够用,就直接把curRow里的字段赋值给formData
|
|
|
- alert('获取详情中...');
|
|
|
+ for (let key in formData) {
|
|
|
+ if (key !== 'roleIds') {
|
|
|
+ formData[key] = props.curRow[key];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ formData.roleIds = props.curRow.roles.map((item) => item.id);
|
|
|
};
|
|
|
const { formData, isEdit } = useClearDialog(
|
|
|
{
|
|
|
- a: '',
|
|
|
- b: '',
|
|
|
- c: '',
|
|
|
- d: '',
|
|
|
- e: '',
|
|
|
- f: '',
|
|
|
+ loginName: '',
|
|
|
+ realName: '',
|
|
|
+ genderStr: '男',
|
|
|
+ mobileNumber: '',
|
|
|
+ orgId: '',
|
|
|
+ roleIds: '',
|
|
|
},
|
|
|
props,
|
|
|
+ formRef,
|
|
|
getDetail
|
|
|
);
|
|
|
-const treeData = ref([
|
|
|
- {
|
|
|
- label: '节点0',
|
|
|
- value: '0',
|
|
|
- children: [
|
|
|
- { label: '节点1', value: '1' },
|
|
|
- { label: '节点2', value: '2' },
|
|
|
- ],
|
|
|
+const { data: treeData } = useRequest(getOrgStructList, {
|
|
|
+ manual: false,
|
|
|
+});
|
|
|
+const { data: roleData } = useRequest(getRoleList, {
|
|
|
+ manual: false,
|
|
|
+ defaultParams: [{ pageNumber: 1, pageSize: 1000 }],
|
|
|
+});
|
|
|
+const roleList = computed(() => {
|
|
|
+ return roleData.value?.records.map((item) => ({
|
|
|
+ label: item.name,
|
|
|
+ value: item.id,
|
|
|
+ }));
|
|
|
+});
|
|
|
+const treeProps = {
|
|
|
+ keys: {
|
|
|
+ label: 'name',
|
|
|
+ value: 'id',
|
|
|
+ children: 'children',
|
|
|
},
|
|
|
-]);
|
|
|
-
|
|
|
-const save = () => {};
|
|
|
+};
|
|
|
+const rules = {
|
|
|
+ loginName: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写登录名',
|
|
|
+ type: 'error',
|
|
|
+ trigger: 'blur',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ realName: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写真实姓名',
|
|
|
+ type: 'error',
|
|
|
+ trigger: 'blur',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ mobileNumber: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写手机号',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ orgId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择机构',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ roleIds: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择角色',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ validator: (val) => {
|
|
|
+ if (!val?.length) {
|
|
|
+ return {
|
|
|
+ result: false,
|
|
|
+ message: '请选择角色',
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ result: true,
|
|
|
+ type: 'success',
|
|
|
+ };
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+};
|
|
|
+const addHandler = () => {
|
|
|
+ addUser({ ...formData, id: props.curRow?.id || undefined }).then(() => {
|
|
|
+ emit('success');
|
|
|
+ });
|
|
|
+};
|
|
|
+const save = () => {
|
|
|
+ formRef.value.validate().then(async (result) => {
|
|
|
+ if (result === true) {
|
|
|
+ addHandler();
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
</script>
|