|
@@ -4,9 +4,10 @@
|
|
|
<el-form-item label="单位名称" prop="orgId" required>
|
|
|
<!-- <el-autocomplete style="width: 300px" v-model="data.orgName" :fetch-suggestions="querySearch" clearable
|
|
|
class="inline-input w-50" placeholder="请输入" @select="handleSelect" /> -->
|
|
|
- <el-select style="width: 300px" v-model="data.orgId" clearable>
|
|
|
- <el-option :value="Number(id)" :label="value" v-for="{ value, id } in allOrgs" />
|
|
|
- </el-select>
|
|
|
+ <el-tree-select style="width: 300px" v-model="data.orgId" :data="allOrgs" node-key="orgName"
|
|
|
+ @node-click="handleNodeClick" clearable>
|
|
|
+ <!-- <el-option :value="Number(id)" :label="value" v-for="{ value, id } in allOrgs" /> -->
|
|
|
+ </el-tree-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="姓名" prop="nickName" required>
|
|
@@ -41,12 +42,11 @@ import { ElMessage, type FormInstance, type FormRules } from "element-plus";
|
|
|
// import { ElMessage } from "element-plus";
|
|
|
import type { OrganizationType } from '@/request/organization'
|
|
|
import {
|
|
|
- getOrgListFetch,
|
|
|
-
|
|
|
+ getOrgListFetchList,
|
|
|
UserType
|
|
|
} from "@/request";
|
|
|
|
|
|
-import { ref, reactive, unref, onMounted } from "vue";
|
|
|
+import { ref, reactive, unref, onMounted, watch } from "vue";
|
|
|
import { View, Hide } from '@element-plus/icons-vue';
|
|
|
// import { user } from '@/store/user'
|
|
|
|
|
@@ -55,7 +55,9 @@ const addPassFlag = ref(true) //图标显示标识
|
|
|
const baseFormRef = ref<FormInstance>();
|
|
|
|
|
|
type SelectType = {
|
|
|
- value: string, id: number
|
|
|
+ orgName: string,
|
|
|
+ orgId: number
|
|
|
+ children: SelectType[]
|
|
|
}
|
|
|
|
|
|
const allOrgs = ref<SelectType[]>([]);
|
|
@@ -66,11 +68,11 @@ const rules = reactive<FormRules>({
|
|
|
],
|
|
|
nickName: [
|
|
|
{ required: true, message: "请输入姓名", trigger: "blur" },
|
|
|
- // { required: true, pattern: /^1[3456789]\d{9}$/, message: "请输入正确手机号", trigger: "blur" },
|
|
|
+
|
|
|
],
|
|
|
userName: [
|
|
|
{ required: true, message: "请输入账号", trigger: "blur" },
|
|
|
- // { required: true, pattern: /^1[3456789]\d{9}$/, message: "请输入正确手机号", trigger: "blur" },
|
|
|
+ { required: true, pattern: /^[A-Za-z0-9]{1,15}$/, message: "请输入字母或数字组合", trigger: "blur" },
|
|
|
],
|
|
|
password: [
|
|
|
{ required: true, pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$/, message: "请输入8-16位数字、字母大小写组合", trigger: "blur" },
|
|
@@ -89,20 +91,29 @@ const data = ref<Partial<OrganizationType> & Partial<UserType>>({
|
|
|
// userId: 0,
|
|
|
userName: ""
|
|
|
});
|
|
|
-
|
|
|
+watch(data, (newValue) => {
|
|
|
+ data.value.userName = newValue.userName.replace(/[^A-Za-z0-9]/g, '');
|
|
|
+}, {
|
|
|
+ immediate: true,
|
|
|
+ deep: true
|
|
|
+});
|
|
|
onMounted(async () => {
|
|
|
- const data = await getOrgListFetch({
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10000,
|
|
|
- })
|
|
|
- console.log('allOrgs', data.records);
|
|
|
- allOrgs.value = Array.from(data.records).map((item: OrganizationType) => {
|
|
|
- const i: SelectType = { value: item['orgName'], id: item['orgId'] }
|
|
|
- return i
|
|
|
- });
|
|
|
+ const data = await getOrgListFetchList()
|
|
|
+
|
|
|
+ console.log('allOrgs', data);
|
|
|
+ allOrgs.value = data as any as SelectType[]
|
|
|
+ // allOrgs.value = Array.from(data.records).map((item: OrganizationType) => {
|
|
|
+ // const i: SelectType = { value: item['orgName'], id: item['orgId'] }
|
|
|
+ // return i
|
|
|
+ // });
|
|
|
|
|
|
})
|
|
|
|
|
|
+const handleNodeClick = (node: SelectType) => {
|
|
|
+ data.value.orgId = node.orgId
|
|
|
+ // console.log('handleNodeClick', node)
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
defineExpose<QuiskExpose>({
|
|
|
async submit() {
|