b5d70ee4 by lihua

组织架构管理

1 parent d7b78de0
1 import request from "@/utils/request";
2
3 /** 获取租户列表(分页) */
4 export const getTenantSinglePage = (params) => request({
5 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/single-page`,
6 method: 'post',
7 data: params
8 })
9
10 /** 删除租户 */
11 export const removeTenant = (data) => request({
12 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/remove`,
13 method: 'delete',
14 data
15 })
16
17 export const addTenant = (params) => request({
18 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/update`,
19 method: 'post',
20 data: params
21 })
22
23 export const updateTenant = (params) => request({
24 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/update`,
25 method: 'put',
26 data: params
27 })
28
29 /** 更新租户状态 */
30 export const updateTenantState = (guid, state: string = 'Y') => request({
31 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/update-state?tenantGuid=${guid}&state=${state}`,
32 method: 'get'
33 })
34
35 /** 获取会员进度列表 */
36 export const getMemberGressList = (params) => request({
37 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/pending-task/page-list`,
38 method: 'post',
39 data: params
40 })
41
42 /** 获取任务执行日志 */
43 export const getTaskExecutionLog = (guid) => request({
44 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/pending-task/task-info?guid=${guid}`,
45 method: 'get'
46 })
47
48 /** 任务重启 */
49 export const getTaskRestart = (guid) => request({
50 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/pending-task/restart?guid=${guid}`,
51 method: 'get'
52 })
53
54 /**
55 * 获取部门tree列表
56 * @param param
57 * @returns
58 */
59 export const getOrganisationTreeList = (params) => request({
60 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/get-tree-list`,
61 method: 'post',
62 data: params
63 })
64
65 export const removeOrganisation = (guids) => request({
66 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/removeListByGuids`,
67 method: 'delete',
68 data: guids
69 })
70
71
72 /**
73 * 修改部门关系
74 * @param param
75 * @returns
76 */
77 export const updateOrganisation= (params) => request({
78 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/update`,
79 method: 'put',
80 data: params
81 });
82
83 /**
84 * 新增部门
85 * @param param
86 * @returns
87 */
88 export const addOrganisation = (params) => request({
89 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/save`,
90 method: 'post',
91 data: params
92 });
93
...@@ -330,6 +330,53 @@ export const useValidator = () => { ...@@ -330,6 +330,53 @@ export const useValidator = () => {
330 }; 330 };
331 }; 331 };
332 332
333 /**
334 * 中文名字限制校验(表单验证函数)
335 * @param {*} message 错误提示
336 * @param {*} minChineseCount 最小中文长度
337 */
338 const minChineseCount = (message?, minChineseCount = 2) => {
339 const chinesePattern = new RegExp(`^[\u4e00-\u9fa5]{${minChineseCount},}$`);
340 return {
341 validator: (_, val, callback) => {
342 let trimmedInput = val ? val.replace(/\s+/g, '') : '';
343 if (!chinesePattern.test(trimmedInput) && val) {
344 callback(new Error(message || `输入必须包含至少${minChineseCount}个中文字符!`))
345 } else {
346 callback()
347 }
348 },
349 trigger: 'blur'
350 }
351 }
352
353 const email = (message?: string): FormItemRule => {
354 return {
355 validator: (_, val, callback) => {
356 if (val && !/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(val)) {
357 callback(new Error(message || '邮箱格式不正确!'))
358 } else {
359 callback()
360 }
361 },
362 trigger: 'blur'
363 }
364 }
365
366 const mobileNumber = (message?: string): FormItemRule => {
367 return {
368 validator: (_, val, callback) => {
369 if (val && !/^1[3-9]\d{9}$/.test(val)) {
370 callback(new Error(message || '手机号码格式不正确!'))
371 } else {
372 callback()
373 }
374 },
375 trigger: 'blur'
376 }
377 }
378
379
333 return { 380 return {
334 required, 381 required,
335 regexpValidate, 382 regexpValidate,
...@@ -343,6 +390,9 @@ export const useValidator = () => { ...@@ -343,6 +390,9 @@ export const useValidator = () => {
343 isUSCCCode, 390 isUSCCCode,
344 idCode, 391 idCode,
345 validateIPList, 392 validateIPList,
346 validateDomainList 393 validateDomainList,
394 minChineseCount,
395 email,
396 mobileNumber
347 } 397 }
348 } 398 }
......
1 import type { RouteRecordRaw } from 'vue-router'
2 function Layout() {
3 return import('@/layouts/index.vue')
4 }
5 const routes: RouteRecordRaw[] = [
6 {
7 path: '/data-basic/department-manage',
8 component: Layout,
9 meta: {
10 title: '组织架构管理',
11 icon: 'sidebar-videos',
12 },
13 children: [{
14 path: '',
15 name: 'departmentInfoList',
16 component: () => import('@/views/data_basic/departmentInfoList.vue'),
17 meta: {
18 title: '组织架构管理',
19 sidebar: false,
20 breadcrumb: false,
21 cache: true
22 },
23 }]
24 },
25 ]
26
27
28 export default routes
...\ No newline at end of file ...\ No newline at end of file
...@@ -8,6 +8,7 @@ import DataFacilitator from './modules/dataFacilitator'; ...@@ -8,6 +8,7 @@ import DataFacilitator from './modules/dataFacilitator';
8 import HomeIndex from './modules/homeIndex'; 8 import HomeIndex from './modules/homeIndex';
9 import DataDelivery from './modules/dataDelivery'; 9 import DataDelivery from './modules/dataDelivery';
10 import DataAnonymization from './modules/dataAnonymization'; 10 import DataAnonymization from './modules/dataAnonymization';
11 import DataBasic from './modules/dataBasic';
11 12
12 import useSettingsStore from '@/store/modules/settings' 13 import useSettingsStore from '@/store/modules/settings'
13 14
...@@ -101,6 +102,7 @@ const asyncRoutes: RouteRecordRaw[] = [ ...@@ -101,6 +102,7 @@ const asyncRoutes: RouteRecordRaw[] = [
101 ...HomeIndex, 102 ...HomeIndex,
102 ...DataDelivery, 103 ...DataDelivery,
103 ...DataAnonymization, 104 ...DataAnonymization,
105 ...DataBasic,
104 // ...DataAssetRegistry, 106 // ...DataAssetRegistry,
105 ] 107 ]
106 108
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!