phx-react 1.3.1680 → 1.3.1681
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/icons/index.js +2 -0
- package/dist/cjs/assets/icons/index.js.map +1 -1
- package/dist/cjs/assets/icons/index.ts +2 -0
- package/dist/cjs/assets/icons/paper-clip.svg +3 -0
- package/dist/cjs/components/FormTarget/components/modal-delete/modal-delete.d.ts +13 -0
- package/dist/cjs/components/FormTarget/components/modal-delete/modal-delete.js +19 -0
- package/dist/cjs/components/FormTarget/components/modal-delete/modal-delete.js.map +1 -0
- package/dist/cjs/components/FormTarget/components/modal-import/confirm-upload.d.ts +7 -0
- package/dist/cjs/components/FormTarget/components/modal-import/confirm-upload.js +25 -0
- package/dist/cjs/components/FormTarget/components/modal-import/confirm-upload.js.map +1 -0
- package/dist/cjs/components/FormTarget/components/modal-import/modal-import-user.d.ts +10 -0
- package/dist/cjs/components/FormTarget/components/modal-import/modal-import-user.js +177 -0
- package/dist/cjs/components/FormTarget/components/modal-import/modal-import-user.js.map +1 -0
- package/dist/cjs/components/FormTarget/components/modal-import/preview-user.d.ts +10 -0
- package/dist/cjs/components/FormTarget/components/modal-import/preview-user.js +22 -0
- package/dist/cjs/components/FormTarget/components/modal-import/preview-user.js.map +1 -0
- package/dist/cjs/components/FormTarget/components/modal-import/table-custom-user.d.ts +11 -0
- package/dist/cjs/components/FormTarget/components/modal-import/table-custom-user.js +56 -0
- package/dist/cjs/components/FormTarget/components/modal-import/table-custom-user.js.map +1 -0
- package/dist/cjs/components/FormTarget/components/table-custom-list.js +51 -47
- package/dist/cjs/components/FormTarget/components/table-custom-list.js.map +1 -1
- package/dist/cjs/components/FormTarget/constant.d.ts +13 -0
- package/dist/cjs/components/FormTarget/constant.js +15 -1
- package/dist/cjs/components/FormTarget/constant.js.map +1 -1
- package/dist/cjs/components/FormTarget/graphql/query.d.ts +5 -0
- package/dist/cjs/components/FormTarget/graphql/query.js +162 -1
- package/dist/cjs/components/FormTarget/graphql/query.js.map +1 -1
- package/dist/cjs/components/FormTarget/hooks/use-import-user.d.ts +5 -0
- package/dist/cjs/components/FormTarget/hooks/use-import-user.js +168 -0
- package/dist/cjs/components/FormTarget/hooks/use-import-user.js.map +1 -0
- package/dist/cjs/components/FormTarget/type/target.d.ts +5 -0
- package/dist/cjs/components/FormTarget/type/user.d.ts +77 -0
- package/dist/cjs/components/FormTarget/type/user.js +3 -0
- package/dist/cjs/components/FormTarget/type/user.js.map +1 -0
- package/dist/cjs/components/UploadFile/ButtonUpload.d.ts +1 -1
- package/dist/cjs/components/UploadFile/FormUpload.d.ts +24 -1
- package/dist/cjs/components/UploadFile/FormUpload.js +29 -18
- package/dist/cjs/components/UploadFile/FormUpload.js.map +1 -1
- package/dist/cjs/components/UploadFile/PHXUploadFile.d.ts +50 -0
- package/dist/cjs/components/UploadFile/PHXUploadFile.js +24 -0
- package/dist/cjs/components/UploadFile/PHXUploadFile.js.map +1 -0
- package/dist/cjs/components/UploadFile/UploadFile.d.ts +1 -1
- package/dist/cjs/components/UploadFile/UploadFile.js +5 -5
- package/dist/cjs/components/UploadFile/UploadFile.js.map +1 -1
- package/dist/cjs/components/UploadFile/index.d.ts +1 -1
- package/dist/cjs/components/UploadFile/index.js +1 -1
- package/dist/cjs/components/UploadFile/index.js.map +1 -1
- package/dist/esm/assets/icons/index.js +2 -0
- package/dist/esm/assets/icons/index.js.map +1 -1
- package/dist/esm/assets/icons/index.ts +2 -0
- package/dist/esm/assets/icons/paper-clip.svg +3 -0
- package/dist/esm/components/FormTarget/components/modal-delete/modal-delete.d.ts +13 -0
- package/dist/esm/components/FormTarget/components/modal-delete/modal-delete.js +14 -0
- package/dist/esm/components/FormTarget/components/modal-delete/modal-delete.js.map +1 -0
- package/dist/esm/components/FormTarget/components/modal-import/confirm-upload.d.ts +7 -0
- package/dist/esm/components/FormTarget/components/modal-import/confirm-upload.js +20 -0
- package/dist/esm/components/FormTarget/components/modal-import/confirm-upload.js.map +1 -0
- package/dist/esm/components/FormTarget/components/modal-import/modal-import-user.d.ts +10 -0
- package/dist/esm/components/FormTarget/components/modal-import/modal-import-user.js +173 -0
- package/dist/esm/components/FormTarget/components/modal-import/modal-import-user.js.map +1 -0
- package/dist/esm/components/FormTarget/components/modal-import/preview-user.d.ts +10 -0
- package/dist/esm/components/FormTarget/components/modal-import/preview-user.js +17 -0
- package/dist/esm/components/FormTarget/components/modal-import/preview-user.js.map +1 -0
- package/dist/esm/components/FormTarget/components/modal-import/table-custom-user.d.ts +11 -0
- package/dist/esm/components/FormTarget/components/modal-import/table-custom-user.js +51 -0
- package/dist/esm/components/FormTarget/components/modal-import/table-custom-user.js.map +1 -0
- package/dist/esm/components/FormTarget/components/table-custom-list.js +51 -47
- package/dist/esm/components/FormTarget/components/table-custom-list.js.map +1 -1
- package/dist/esm/components/FormTarget/constant.d.ts +13 -0
- package/dist/esm/components/FormTarget/constant.js +14 -0
- package/dist/esm/components/FormTarget/constant.js.map +1 -1
- package/dist/esm/components/FormTarget/graphql/query.d.ts +5 -0
- package/dist/esm/components/FormTarget/graphql/query.js +161 -0
- package/dist/esm/components/FormTarget/graphql/query.js.map +1 -1
- package/dist/esm/components/FormTarget/hooks/use-import-user.d.ts +5 -0
- package/dist/esm/components/FormTarget/hooks/use-import-user.js +163 -0
- package/dist/esm/components/FormTarget/hooks/use-import-user.js.map +1 -0
- package/dist/esm/components/FormTarget/type/target.d.ts +5 -0
- package/dist/esm/components/FormTarget/type/user.d.ts +77 -0
- package/dist/esm/components/FormTarget/type/user.js +2 -0
- package/dist/esm/components/FormTarget/type/user.js.map +1 -0
- package/dist/esm/components/UploadFile/ButtonUpload.d.ts +1 -1
- package/dist/esm/components/UploadFile/FormUpload.d.ts +24 -1
- package/dist/esm/components/UploadFile/FormUpload.js +29 -18
- package/dist/esm/components/UploadFile/FormUpload.js.map +1 -1
- package/dist/esm/components/UploadFile/PHXUploadFile.d.ts +50 -0
- package/dist/esm/components/UploadFile/PHXUploadFile.js +19 -0
- package/dist/esm/components/UploadFile/PHXUploadFile.js.map +1 -0
- package/dist/esm/components/UploadFile/UploadFile.d.ts +1 -1
- package/dist/esm/components/UploadFile/UploadFile.js +3 -3
- package/dist/esm/components/UploadFile/UploadFile.js.map +1 -1
- package/dist/esm/components/UploadFile/index.d.ts +1 -1
- package/dist/esm/components/UploadFile/index.js +1 -1
- package/dist/esm/components/UploadFile/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { ArrowDownTrayIcon } from '@heroicons/react/24/outline';
|
|
2
|
+
import React, { useEffect, useState } from 'react';
|
|
3
|
+
import * as XLSX from 'xlsx';
|
|
4
|
+
import { getRoleNameByTarget } from '../../ultis/get-role-name-by-target';
|
|
5
|
+
import { ConfirmUpload } from './confirm-upload';
|
|
6
|
+
import { PreviewUser } from './preview-user';
|
|
7
|
+
import { ERROR_MESSAGE_UPLOAD_FILE, SAMPLE_FILE_URL } from '../../constant';
|
|
8
|
+
import { PHXModal } from '../../../Modal';
|
|
9
|
+
import { useImportUser } from '../../hooks/use-import-user';
|
|
10
|
+
import { PHXBannerWithCard } from '../../../BannerWithCard/BannerWithCard';
|
|
11
|
+
import { EUploadType, PHXUploadFile } from '../../../UploadFile/PHXUploadFile';
|
|
12
|
+
export default function ModalImportUser({ onHide, onSubmit, show, target }) {
|
|
13
|
+
const [fileName, setFileName] = useState('');
|
|
14
|
+
const [error, setError] = useState('');
|
|
15
|
+
const [userCodes, setUserCodes] = useState([]);
|
|
16
|
+
const { findUserByUserCodes } = useImportUser();
|
|
17
|
+
const [step, setStep] = useState(1);
|
|
18
|
+
const [loading, setLoading] = useState(false);
|
|
19
|
+
const [validList, setValidList] = useState([]);
|
|
20
|
+
const [invalidList, setInvalidList] = useState([]);
|
|
21
|
+
const roleName = getRoleNameByTarget(target);
|
|
22
|
+
const onHandleHide = () => {
|
|
23
|
+
onHide();
|
|
24
|
+
};
|
|
25
|
+
const step1HandleFindUser = async (codes) => {
|
|
26
|
+
if (codes.length === 0) {
|
|
27
|
+
setError('User code không được để trống');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
setLoading(true);
|
|
31
|
+
try {
|
|
32
|
+
const response = await findUserByUserCodes(target, codes);
|
|
33
|
+
const nodeMap = new Map();
|
|
34
|
+
response.forEach((n) => nodeMap.set(n.code, n));
|
|
35
|
+
const codeCounts = new Map();
|
|
36
|
+
codes.forEach((code) => {
|
|
37
|
+
codeCounts.set(code, (codeCounts.get(code) || 0) + 1);
|
|
38
|
+
});
|
|
39
|
+
const invalids = [];
|
|
40
|
+
const valids = [];
|
|
41
|
+
const seenValid = new Set();
|
|
42
|
+
codes.forEach((code) => {
|
|
43
|
+
if (codeCounts.get(code) > 1) {
|
|
44
|
+
invalids.push({
|
|
45
|
+
code,
|
|
46
|
+
reason: 'Trùng mã',
|
|
47
|
+
reasonDetail: 'Mã trùng lặp trong file excel',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else if (!nodeMap.has(code)) {
|
|
51
|
+
invalids.push({
|
|
52
|
+
code,
|
|
53
|
+
reason: 'Sai mã',
|
|
54
|
+
reasonDetail: 'Mã không tồn tại',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
if (!seenValid.has(code)) {
|
|
59
|
+
valids.push(nodeMap.get(code));
|
|
60
|
+
seenValid.add(code);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
setInvalidList(invalids);
|
|
65
|
+
setValidList(valids);
|
|
66
|
+
setStep(2);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
console.error(err);
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
setLoading(false);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const step3HandleSubmit = async () => {
|
|
76
|
+
onSubmit(validList);
|
|
77
|
+
onHide();
|
|
78
|
+
};
|
|
79
|
+
const handleFileChange = (e) => {
|
|
80
|
+
var _a;
|
|
81
|
+
const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
82
|
+
if (file) {
|
|
83
|
+
setError('');
|
|
84
|
+
const reader = new FileReader();
|
|
85
|
+
reader.onload = (evt) => {
|
|
86
|
+
var _a;
|
|
87
|
+
const arrayBuffer = (_a = evt.target) === null || _a === void 0 ? void 0 : _a.result;
|
|
88
|
+
if (arrayBuffer) {
|
|
89
|
+
try {
|
|
90
|
+
const workbook = XLSX.read(arrayBuffer, { type: 'array' });
|
|
91
|
+
const sheetName = workbook.SheetNames[0];
|
|
92
|
+
const worksheet = workbook.Sheets[sheetName];
|
|
93
|
+
const data = XLSX.utils.sheet_to_json(worksheet, { defval: '' });
|
|
94
|
+
if (data.length === 0) {
|
|
95
|
+
setError(ERROR_MESSAGE_UPLOAD_FILE);
|
|
96
|
+
setFileName('');
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const firstRow = data[0];
|
|
100
|
+
const hasUserCode = Object.keys(firstRow).some((key) => key.trim().toLowerCase() === 'user_code');
|
|
101
|
+
if (!hasUserCode) {
|
|
102
|
+
setError(ERROR_MESSAGE_UPLOAD_FILE);
|
|
103
|
+
setFileName('');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const userCodesExcel = data.map((item) => String(item.user_code));
|
|
107
|
+
setUserCodes(userCodesExcel);
|
|
108
|
+
setFileName(file.name);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
setError(ERROR_MESSAGE_UPLOAD_FILE);
|
|
112
|
+
setFileName('');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
reader.readAsArrayBuffer(file);
|
|
117
|
+
}
|
|
118
|
+
e.target.value = '';
|
|
119
|
+
};
|
|
120
|
+
const handleDownloadSample = () => {
|
|
121
|
+
const link = document.createElement('a');
|
|
122
|
+
link.href = SAMPLE_FILE_URL.url;
|
|
123
|
+
link.download = SAMPLE_FILE_URL.fileName;
|
|
124
|
+
link.click();
|
|
125
|
+
};
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
if (show) {
|
|
128
|
+
setStep(1);
|
|
129
|
+
setFileName('');
|
|
130
|
+
setError('');
|
|
131
|
+
setUserCodes([]);
|
|
132
|
+
setValidList([]);
|
|
133
|
+
setInvalidList([]);
|
|
134
|
+
}
|
|
135
|
+
}, [show]);
|
|
136
|
+
const STEP_CONFIG = {
|
|
137
|
+
1: {
|
|
138
|
+
leftActionText: (React.createElement("span", { className: 'flex items-center gap-1' },
|
|
139
|
+
React.createElement(ArrowDownTrayIcon, { className: 'h-4 w-4' }),
|
|
140
|
+
"T\u1EA3i xu\u1ED1ng file m\u1EABu")),
|
|
141
|
+
leftActionHandle: () => handleDownloadSample(),
|
|
142
|
+
primaryText: 'Tiếp tục',
|
|
143
|
+
title: `Tải lên danh sách ${roleName}`,
|
|
144
|
+
sizeModal: 'large',
|
|
145
|
+
handleSubmit: () => step1HandleFindUser(userCodes),
|
|
146
|
+
},
|
|
147
|
+
2: {
|
|
148
|
+
leftActionText: '← Quay lại',
|
|
149
|
+
leftActionHandle: () => setStep(1),
|
|
150
|
+
primaryText: 'Tải lên',
|
|
151
|
+
title: `Xem trước danh sách ${roleName}`,
|
|
152
|
+
sizeModal: 'extra-large',
|
|
153
|
+
handleSubmit: () => setStep(3),
|
|
154
|
+
},
|
|
155
|
+
3: {
|
|
156
|
+
leftActionText: 'Hủy bỏ',
|
|
157
|
+
leftActionHandle: () => setStep(2),
|
|
158
|
+
handleSubmit: () => step3HandleSubmit(),
|
|
159
|
+
primaryText: 'Xác nhận',
|
|
160
|
+
title: 'Xác nhận tải lên',
|
|
161
|
+
sizeModal: 'medium',
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
const currentStep = STEP_CONFIG[step];
|
|
165
|
+
return (React.createElement(PHXModal, { closeButton: true, disableSubmit: step === 1 ? !fileName || loading : false, dowloadIcon: step === 1, inCard: false, leftActionText: currentStep.leftActionText, onCancel: onHandleHide, onHide: onHandleHide, onLeftActionText: currentStep.leftActionHandle, onSubmit: currentStep.handleSubmit, primaryActionText: currentStep.primaryText, primaryLoading: loading, secondaryActionText: '\u0110\u00F3ng', show: show, size: currentStep.sizeModal || 'large', title: currentStep.title },
|
|
166
|
+
React.createElement("div", { className: 'py-2' },
|
|
167
|
+
step === 1 && (React.createElement(React.Fragment, null,
|
|
168
|
+
error && (React.createElement(PHXBannerWithCard, { className: 'mb-4', description: error, onClose: () => setError(''), show: true, type: 'danger' })),
|
|
169
|
+
React.createElement(PHXUploadFile, { fileName: fileName, fileType: 'excel', handleFileChange: handleFileChange, type: EUploadType.TO_CLIENT }))),
|
|
170
|
+
step === 2 && React.createElement(PreviewUser, { invalidList: invalidList, target: target, validList: validList }),
|
|
171
|
+
step === 3 && React.createElement(ConfirmUpload, { totalInvalidList: invalidList.length, totalValidList: validList.length }))));
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=modal-import-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-import-user.js","sourceRoot":"","sources":["../../../../../../src/components/FormTarget/components/modal-import/modal-import-user.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ERoleCode } from '../../constant';
|
|
2
|
+
import { IFilterValueItem, IInvalidUser } from '../../type/target';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
interface IProps {
|
|
5
|
+
invalidList: Array<IInvalidUser>;
|
|
6
|
+
validList: Array<IFilterValueItem>;
|
|
7
|
+
target: ERoleCode;
|
|
8
|
+
}
|
|
9
|
+
export declare const PreviewUser: ({ invalidList, target, validList }: IProps) => React.JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PHXText } from '../../../Text/Text';
|
|
2
|
+
import { TableCustomUser } from './table-custom-user';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
export const PreviewUser = ({ invalidList, target, validList }) => (React.createElement("div", { className: 'flex flex-col gap-6' },
|
|
5
|
+
invalidList.length > 0 && (React.createElement("div", null,
|
|
6
|
+
React.createElement(PHXText, null,
|
|
7
|
+
"Danh s\u00E1ch kh\u00F4ng h\u1EE3p l\u1EC7 (",
|
|
8
|
+
invalidList.length,
|
|
9
|
+
")"),
|
|
10
|
+
React.createElement(TableCustomUser, { invalidData: invalidList, isInvalid: true, target: target }))),
|
|
11
|
+
validList.length > 0 && (React.createElement("div", null,
|
|
12
|
+
React.createElement(PHXText, null,
|
|
13
|
+
"Danh s\u00E1ch h\u1EE3p l\u1EC7 (",
|
|
14
|
+
validList.length,
|
|
15
|
+
")"),
|
|
16
|
+
React.createElement(TableCustomUser, { data: validList, target: target })))));
|
|
17
|
+
//# sourceMappingURL=preview-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-user.js","sourceRoot":"","sources":["../../../../../../src/components/FormTarget/components/modal-import/preview-user.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAU,EAAE,EAAE,CAAC,CACzE,6BAAK,SAAS,EAAC,qBAAqB;IACjC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB;QACE,oBAAC,OAAO;;YAA0B,WAAW,CAAC,MAAM;gBAAY;QAChE,oBAAC,eAAe,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,QAAC,MAAM,EAAE,MAAM,GAAI,CACnE,CACP;IACA,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB;QACE,oBAAC,OAAO;;YAAoB,SAAS,CAAC,MAAM;gBAAY;QACxD,oBAAC,eAAe,IAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAI,CAChD,CACP,CACG,CACP,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ERoleCode } from '../../constant';
|
|
3
|
+
import { IFilterValueItem, IInvalidUser } from '../../type/target';
|
|
4
|
+
interface ITableCustomUserProps {
|
|
5
|
+
target: ERoleCode;
|
|
6
|
+
data?: Array<IFilterValueItem>;
|
|
7
|
+
invalidData?: Array<IInvalidUser>;
|
|
8
|
+
isInvalid?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const TableCustomUser: ({ data, invalidData, isInvalid, target }: ITableCustomUserProps) => React.JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PHXBadge } from '../../../Badge';
|
|
3
|
+
import { PHXDescriptionListInTooltip } from '../../../DescriptionListInTooltip';
|
|
4
|
+
import { PHXTableStatic } from '../../../TableStatic';
|
|
5
|
+
import { PHXText } from '../../../Text/Text';
|
|
6
|
+
import { ERoleCode, TEXT_UNDEFINED } from '../../constant';
|
|
7
|
+
import { getRoleNameByTarget } from '../../ultis/get-role-name-by-target';
|
|
8
|
+
import { getTitleByRelationshipCode } from '../../ultis/get-title-by-relationship-code';
|
|
9
|
+
export const TableCustomUser = ({ data = [], invalidData, isInvalid, target }) => {
|
|
10
|
+
const defaultHeader = ['Số điện thoại', 'Email'];
|
|
11
|
+
const roleName = getRoleNameByTarget(target);
|
|
12
|
+
const headerTable = {
|
|
13
|
+
[ERoleCode.TEACHER]: ['Giáo viên', 'Mã giáo viên', ...defaultHeader],
|
|
14
|
+
[ERoleCode.STAFF]: ['Nhân viên', 'Mã nhân viên', ...defaultHeader],
|
|
15
|
+
[ERoleCode.STUDENT]: ['Học sinh', 'Mã học sinh', 'Cấp học', 'Khối học', 'Lớp học', 'Người thân'],
|
|
16
|
+
[ERoleCode.DEPARTMENT]: ['Phòng ban', 'Mã phòng ban'],
|
|
17
|
+
[ERoleCode.PARENT]: [...defaultHeader],
|
|
18
|
+
};
|
|
19
|
+
const defaultBody = ['phone', 'email', 'actions'];
|
|
20
|
+
const bodyTable = {
|
|
21
|
+
[ERoleCode.TEACHER]: ['name', 'code', ...defaultBody],
|
|
22
|
+
[ERoleCode.STAFF]: ['name', 'code', ...defaultBody],
|
|
23
|
+
[ERoleCode.STUDENT]: ['name', 'code', 'educational_level', 'grade', 'classroom', 'parents'],
|
|
24
|
+
[ERoleCode.DEPARTMENT]: ['Phòng ban', 'Mã phòng ban', ...defaultHeader],
|
|
25
|
+
[ERoleCode.PARENT]: [...defaultBody],
|
|
26
|
+
};
|
|
27
|
+
const thComponent = {
|
|
28
|
+
...(target === ERoleCode.STUDENT && {
|
|
29
|
+
parents: (value) => (React.createElement("div", null,
|
|
30
|
+
React.createElement(PHXDescriptionListInTooltip, { items: value.map((parent) => ({
|
|
31
|
+
title: getTitleByRelationshipCode(parent === null || parent === void 0 ? void 0 : parent.relationship_code),
|
|
32
|
+
description: parent.full_name,
|
|
33
|
+
})), tooltipClassName: 'max-w-none w-auto min-w-[150px]', trigger: React.createElement("div", { className: 'max-w-52 truncate' }, Array.isArray(value) && value.length > 0
|
|
34
|
+
? value.map((parent) => `${parent.full_name}`).join(', ')
|
|
35
|
+
: TEXT_UNDEFINED) }))),
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
const invalidHeader = [`Mã ${roleName}`, 'Lý do lỗi'];
|
|
39
|
+
const invalidBody = ['code', 'reason'];
|
|
40
|
+
const invalidThComponent = {
|
|
41
|
+
code: (value) => React.createElement(PHXText, null, value),
|
|
42
|
+
reason: (value, record) => (React.createElement("div", { className: 'flex flex-col gap-1' },
|
|
43
|
+
React.createElement(PHXBadge, { text: value || '', type: 'danger' }),
|
|
44
|
+
React.createElement(PHXText, { size: 'xs', tone: 'subdued' }, record.reasonDetail))),
|
|
45
|
+
};
|
|
46
|
+
if (isInvalid && invalidData) {
|
|
47
|
+
return (React.createElement(PHXTableStatic, { bodyData: invalidData, isPagination: true, name: target, rowNumber: 10, thBody: invalidBody, thComponent: invalidThComponent, thHeader: invalidHeader }));
|
|
48
|
+
}
|
|
49
|
+
return (React.createElement(PHXTableStatic, { bodyData: data, isPagination: true, name: target, rowNumber: 10, thBody: bodyTable[target], thComponent: thComponent, thHeader: headerTable[target] }));
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=table-custom-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-custom-user.js","sourceRoot":"","sources":["../../../../../../src/components/FormTarget/components/modal-import/table-custom-user.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,10 @@ import { getTitleByRelationshipCode } from '../ultis/get-title-by-relationship-c
|
|
|
5
5
|
import ModalSearchUser from './modal-search-user/modal-search-user';
|
|
6
6
|
import { PHXDropdown } from '../../Dropdown';
|
|
7
7
|
import { PHXDescriptionListInTooltip } from '../../DescriptionListInTooltip';
|
|
8
|
-
import { PHXButton } from '../../Button';
|
|
9
|
-
import { PHXModal } from '../../Modal';
|
|
10
8
|
import { PHXTableStatic } from '../../TableStatic';
|
|
9
|
+
import { ModalDelete } from './modal-delete/modal-delete';
|
|
10
|
+
import ModalImportUser from './modal-import/modal-import-user';
|
|
11
|
+
import { PHXCard } from '../../Card';
|
|
11
12
|
function removeVietnameseTones(str) {
|
|
12
13
|
return str
|
|
13
14
|
.normalize('NFD') // tách dấu ra khỏi ký tự
|
|
@@ -19,6 +20,7 @@ export default function TableCustomList({ defaultData, handleChange, schoolYearI
|
|
|
19
20
|
const [listSelected, setListSelected] = useState(defaultData || []);
|
|
20
21
|
const [syncSelectedRowsKey, setSyncSelectedRowsKey] = useState(Date.now().toString());
|
|
21
22
|
const [showModalSearch, setShowModalSearch] = useState(false);
|
|
23
|
+
const [showModalImport, setShowModalImport] = useState(false);
|
|
22
24
|
const [rowSelected, setRowSelected] = useState([]);
|
|
23
25
|
const [modalDelete, setModalDelete] = useState({
|
|
24
26
|
deleteData: {
|
|
@@ -134,54 +136,56 @@ export default function TableCustomList({ defaultData, handleChange, schoolYearI
|
|
|
134
136
|
useEffect(() => {
|
|
135
137
|
setListSelected(defaultData || []);
|
|
136
138
|
}, [JSON.stringify(defaultData)]);
|
|
139
|
+
const hideModalImport = () => {
|
|
140
|
+
setShowModalImport(false);
|
|
141
|
+
};
|
|
142
|
+
const handleShowModalImport = () => {
|
|
143
|
+
setShowModalImport(true);
|
|
144
|
+
};
|
|
137
145
|
return (React.createElement("div", null,
|
|
138
|
-
React.createElement(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
")"),
|
|
145
|
-
React.createElement(PHXButton, { className: 'text-xs font-medium', onClick: () => openModalSearch(), plain: true }, "Th\u00EAm m\u1EDBi"),
|
|
146
|
-
React.createElement(ModalSearchUser, { defaultSelected: listSelected, handleAddList: handleAddList, onHide: hideModalSearch, schoolYearId: schoolYearId, show: showModalSearch, target: target })),
|
|
147
|
-
React.createElement(PHXModal, { key: 'deleteModal', dangerActionText: 'X\u00E1c nh\u1EADn', dangerSubmit: true, hiddenSubmit: true, inCard: false, onDangerClick: handleDelete, onHide: onHideModalDelete, show: modalDelete.show, title: `Xác nhận xoá ${roleName} ` },
|
|
148
|
-
React.createElement("p", { className: 'text-xs text-gray-500' },
|
|
149
|
-
"B\u1EA1n ch\u1EAFc ch\u1EAFn mu\u1ED1n xo\u00E1",
|
|
150
|
-
' ',
|
|
151
|
-
modalDelete.deleteData.ids.length > 1 ? (React.createElement("span", { className: 'font-bold' },
|
|
152
|
-
modalDelete.deleteData.ids.length,
|
|
153
|
-
" ",
|
|
154
|
-
roleName)) : (roleName),
|
|
155
|
-
' ',
|
|
156
|
-
React.createElement("span", { className: 'font-bold' }, modalDelete.deleteData.name),
|
|
157
|
-
" \u0111\u00E3 ch\u1ECDn? Thao t\u00E1c n\u00E0y kh\u00F4ng th\u1EC3 ho\u00E0n t\u00E1c.")),
|
|
158
|
-
React.createElement("div", { className: 'ml-6' },
|
|
159
|
-
React.createElement(PHXTableStatic, { bodyData: getFilteredListData(), bulkAction: {
|
|
160
|
-
enable: true,
|
|
161
|
-
buttons: [
|
|
146
|
+
React.createElement(ModalSearchUser, { defaultSelected: listSelected, handleAddList: handleAddList, onHide: hideModalSearch, schoolYearId: schoolYearId, show: showModalSearch, target: target }),
|
|
147
|
+
React.createElement(ModalDelete, { deleteData: modalDelete.deleteData, handleDelete: handleDelete, onHide: onHideModalDelete, roleName: roleName, show: modalDelete.show }),
|
|
148
|
+
React.createElement(ModalImportUser, { onHide: hideModalImport, onSubmit: (data) => handleAddList(data, []), show: showModalImport, target: target }),
|
|
149
|
+
React.createElement("div", { className: '-my-4 ml-4' },
|
|
150
|
+
React.createElement(PHXCard, { border: false, dropdown: {
|
|
151
|
+
data: [
|
|
162
152
|
{
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
setModalDelete({
|
|
170
|
-
show: true,
|
|
171
|
-
deleteData: {
|
|
172
|
-
name: '',
|
|
173
|
-
ids: selectedRows.map((item) => Number(item.id)),
|
|
174
|
-
},
|
|
175
|
-
});
|
|
176
|
-
},
|
|
177
|
-
type: 'secondary',
|
|
153
|
+
name: `Thêm ${roleName}`,
|
|
154
|
+
onClick: openModalSearch,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: `Tải lên danh sách`,
|
|
158
|
+
onClick: handleShowModalImport,
|
|
178
159
|
},
|
|
179
160
|
],
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
161
|
+
title: 'Thao tác',
|
|
162
|
+
}, headerAction: {}, primaryHeader: true, title: `Danh sách ${roleName} đã chọn (${defaultData.length})` },
|
|
163
|
+
React.createElement(PHXTableStatic, { bodyData: getFilteredListData(), bulkAction: {
|
|
164
|
+
enable: true,
|
|
165
|
+
buttons: [
|
|
166
|
+
{
|
|
167
|
+
id: 1,
|
|
168
|
+
text: React.createElement("p", { className: 'text-xs font-medium text-red-700' },
|
|
169
|
+
"Xo\u00E1 ",
|
|
170
|
+
roleName),
|
|
171
|
+
onClick: (selectedRows) => {
|
|
172
|
+
setRowSelected(selectedRows);
|
|
173
|
+
setModalDelete({
|
|
174
|
+
show: true,
|
|
175
|
+
deleteData: {
|
|
176
|
+
name: '',
|
|
177
|
+
ids: selectedRows.map((item) => Number(item.id)),
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
},
|
|
181
|
+
type: 'secondary',
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
}, isPagination: true, name: target, rowNumber: 10, search: {
|
|
185
|
+
enable: true,
|
|
186
|
+
onSearchChange: (keyword) => setFilterValues((pre) => ({ ...pre, searchKeyword: keyword })),
|
|
187
|
+
loading: false,
|
|
188
|
+
setLoading: () => null,
|
|
189
|
+
}, selectedRows: rowSelected, syncSelectedRowsKey: syncSelectedRowsKey, thBody: bodyTable[target], thComponent: thComponent, thHeader: headerTable[target] })))));
|
|
186
190
|
}
|
|
187
191
|
//# sourceMappingURL=table-custom-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-custom-list.js","sourceRoot":"","sources":["../../../../../src/components/FormTarget/components/table-custom-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,eAAe,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"table-custom-list.js","sourceRoot":"","sources":["../../../../../src/components/FormTarget/components/table-custom-list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,14 @@ export declare const FILTER_BY: {
|
|
|
28
28
|
readonly DEPARTMENT: "DEPARTMENT";
|
|
29
29
|
readonly CUSTOM_LIST: "CUSTOM_LIST";
|
|
30
30
|
};
|
|
31
|
+
export declare enum ECoreSchemaGroup {
|
|
32
|
+
CORE_SHARED = "core-shared",
|
|
33
|
+
CORE_ACADEMIC = "core-academic",
|
|
34
|
+
CORE_STUDENT = "core-student",
|
|
35
|
+
CORE_FINANCE = "core-finance",
|
|
36
|
+
CORE_ADMIN = "core-admin",
|
|
37
|
+
CORE_LAB = "core-lab"
|
|
38
|
+
}
|
|
31
39
|
export declare const VALIDATE_REQUIRED_INPUT = "Tr\u01B0\u1EDDng n\u00E0y kh\u00F4ng \u0111\u01B0\u1EE3c \u0111\u1EC3 tr\u1ED1ng";
|
|
32
40
|
export declare const DEFAULT_NOTIFY_WITH_BY_TARGET: {
|
|
33
41
|
SV: ENotifyWith;
|
|
@@ -37,3 +45,8 @@ export declare const DEFAULT_NOTIFY_WITH_BY_TARGET: {
|
|
|
37
45
|
PH: ENotifyWith;
|
|
38
46
|
};
|
|
39
47
|
export declare const TEXT_UNDEFINED = "--";
|
|
48
|
+
export declare const SAMPLE_FILE_URL: {
|
|
49
|
+
url: string;
|
|
50
|
+
fileName: string;
|
|
51
|
+
};
|
|
52
|
+
export declare const ERROR_MESSAGE_UPLOAD_FILE = "File t\u1EA3i l\u00EAn kh\u00F4ng t\u1ED3n t\u1EA1i ho\u1EB7c ch\u01B0a \u0111\u1ECBnh d\u1EA1ng \u0111\u00FAng. Vui l\u00F2ng t\u1EA3i l\u1EA1i file";
|
|
@@ -31,6 +31,15 @@ export const FILTER_BY = {
|
|
|
31
31
|
DEPARTMENT: 'DEPARTMENT',
|
|
32
32
|
CUSTOM_LIST: 'CUSTOM_LIST',
|
|
33
33
|
};
|
|
34
|
+
export var ECoreSchemaGroup;
|
|
35
|
+
(function (ECoreSchemaGroup) {
|
|
36
|
+
ECoreSchemaGroup["CORE_SHARED"] = "core-shared";
|
|
37
|
+
ECoreSchemaGroup["CORE_ACADEMIC"] = "core-academic";
|
|
38
|
+
ECoreSchemaGroup["CORE_STUDENT"] = "core-student";
|
|
39
|
+
ECoreSchemaGroup["CORE_FINANCE"] = "core-finance";
|
|
40
|
+
ECoreSchemaGroup["CORE_ADMIN"] = "core-admin";
|
|
41
|
+
ECoreSchemaGroup["CORE_LAB"] = "core-lab";
|
|
42
|
+
})(ECoreSchemaGroup || (ECoreSchemaGroup = {}));
|
|
34
43
|
export const VALIDATE_REQUIRED_INPUT = 'Trường này không được để trống';
|
|
35
44
|
export const DEFAULT_NOTIFY_WITH_BY_TARGET = {
|
|
36
45
|
[ERoleCode.STUDENT]: ENotifyWith.GVCN,
|
|
@@ -40,4 +49,9 @@ export const DEFAULT_NOTIFY_WITH_BY_TARGET = {
|
|
|
40
49
|
[ERoleCode.PARENT]: ENotifyWith.GVCN,
|
|
41
50
|
};
|
|
42
51
|
export const TEXT_UNDEFINED = '--';
|
|
52
|
+
export const SAMPLE_FILE_URL = {
|
|
53
|
+
url: 'https://cdn-s3.phx.asia/library/book-title/14-04-2026/2f62d1d4-335a-4197-bd44-efb706b64106-tep-doi-tuong.xlsx',
|
|
54
|
+
fileName: 'tep-doi-tuong.xlsx',
|
|
55
|
+
};
|
|
56
|
+
export const ERROR_MESSAGE_UPLOAD_FILE = 'File tải lên không tồn tại hoặc chưa định dạng đúng. Vui lòng tải lại file';
|
|
43
57
|
//# sourceMappingURL=constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../../src/components/FormTarget/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;CACZ,CAAA;AAED,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,2BAAc,CAAA;IACd,2BAAc,CAAA;IACd,yBAAY,CAAA;IACZ,sCAAyB,CAAA;IACzB,0BAAa,CAAA;AACf,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AACD,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,wCAAyB,CAAA;AAC3B,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,KAAK;IACV,iBAAiB,EAAE,mBAAmB;IACtC,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;CAClB,CAAA;AAEV,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAA;AACvE,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,IAAI;IACrC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS;IAC5B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS;IACjC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,IAAI;CACrC,CAAA;AACD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../../src/components/FormTarget/constant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,KAAK;CACZ,CAAA;AAED,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,2BAAc,CAAA;IACd,2BAAc,CAAA;IACd,yBAAY,CAAA;IACZ,sCAAyB,CAAA;IACzB,0BAAa,CAAA;AACf,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AACD,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,wCAAyB,CAAA;AAC3B,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,KAAK;IACV,iBAAiB,EAAE,mBAAmB;IACtC,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;CAClB,CAAA;AAEV,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,+CAA2B,CAAA;IAC3B,mDAA+B,CAAA;IAC/B,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;IAC7B,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAA;AACvE,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,IAAI;IACrC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS;IAC5B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS;IACjC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,IAAI;CACrC,CAAA;AACD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,+GAA+G;IACpH,QAAQ,EAAE,oBAAoB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,4EAA4E,CAAA"}
|
|
@@ -5,3 +5,8 @@ export declare const getTargetByIdQuery = "\n query getTargetByIdQuery($id: uui
|
|
|
5
5
|
export declare const GET_TARGET_BY_ROLE_QUERY = "\n query getTargetByRoleQuery($id: uuid!) {\n user_segment_target_by_pk(id: $id) {\n school_year_id\n target_by_roles(where: {deleted_at: {_is_null: true}}) {\n role {\n role_code\n }\n is_all\n notify_with\n target_educational_levels {\n educational_level {\n id\n name\n code\n }\n }\n target_grades {\n grade {\n id\n name\n code\n }\n }\n target_classrooms {\n classroom {\n id\n name\n code\n }\n }\n target_departments {\n department {\n id\n name\n }\n }\n target_users {\n user {\n id\n name: full_name\n phone: phone_number\n email\n profile_student {\n user_code\n grade {\n id\n name\n }\n program_map_educational_level {\n educational_level {\n code\n name\n id\n }\n }\n }\n\n profile_teacher {\n user_code\n }\n profile_staff {\n user_code\n }\n relationshipUsersByStudentId(\n order_by: {created_at: desc}\n where: {\n deleted_at: {_is_null: true}\n user: {deleted_at: {_is_null: true}}\n userByStudentId: {deleted_at: {_is_null: true}}\n }\n ) {\n parent_id\n relationship_code\n user {\n gender\n full_name\n phone_number\n }\n }\n }\n }\n }\n }\n }\n";
|
|
6
6
|
export declare const GET_LIST_ROLE_QUERY = "\n query getListRoleQuery($schoolId: Int!) {\n role(where: {deleted_at: {_is_null: true}, school_id: {_eq: $schoolId}}) {\n id\n role_code\n }\n }\n";
|
|
7
7
|
export declare const GET_CLASSROOM_BY_USER_IDS = "\n query getClassroomByUserIds($schoolYearId: Int!, $userIds: [Int!]!) {\n classroom_student(\n where: {\n deleted_at: { _is_null: true }\n user:{id:{_in:$userIds}}\n classroom: {\n deleted_at: { _is_null: true }\n school_year_id: { _eq: $schoolYearId }\n }\n }\n ) {\n user{\n id\n }\n classroom {\n id\n name\n grade_id\n grade {\n id\n educational_level_id\n }\n program_id\n school_year_id\n program {\n name\n }\n }\n }\n}\n";
|
|
8
|
+
export declare const FIND_STUDENT_BY_USER_CODE = "\nquery FindStudentByUserCodes($userCodes: [String!]!, $schoolId: Int!) {\n allCoreStudentPublicProfileStudents(\n filter: {\n deletedAt: { isNull: true }\n userCode: { in: $userCodes }\n schoolId: { equalTo: $schoolId }\n }\n ) {\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n nodes {\n userCode\n gradeId\n studentId\n coreStudentPublicGradeByGradeIdAndSchoolId {\n name\n id: rowId\n }\n coreStudentPublicUserByStudentIdAndSchoolId {\n coreStudentPublicRelationshipUsersByStudentIdAndSchoolId(\n filter: {\n deletedAt: { isNull: true }\n schoolId: { equalTo: $schoolId }\n }\n ) {\n nodes {\n parentId\n relationshipCode\n rowId\n }\n }\n }\n coreStudentPublicProgramMapEducationalLevelByProgramEducationalIdAndSchoolId {\n coreStudentPublicEducationalLevelByEducationalLevelIdAndSchoolId {\n code\n name\n id: rowId\n }\n }\n }\n }\n}\n\n";
|
|
9
|
+
export declare const FIND_STAFF_BY_USER_CODE = "\nquery FindStaffByUserCodes($userCodes: [String!]!, $schoolId: Int!) {\n allCoreAdminPublicUsers(\n filter: {\n deletedAt: { isNull: true }\n schoolId: { equalTo: $schoolId }\n coreAdminPublicProfileStaffByStaffIdAndSchoolId: {\n userCode: { in: $userCodes }\n deletedAt: { isNull: true }\n schoolId: { equalTo: $schoolId }\n }\n }\n ) {\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n nodes {\n id: rowId\n fullName\n phoneNumber\n emailSecondary\n email\n isUseEmailSecondary\n coreAdminPublicProfileStaffByStaffIdAndSchoolId {\n userCode\n }\n }\n }\n}\n";
|
|
10
|
+
export declare const FIND_TEACHER_BY_USER_CODE = "\nquery FindTeacherByUserCodes($userCodes: [String!]!, $schoolId: Int!) {\n allCoreAdminPublicProfileTeachers(\n filter: {\n deletedAt: { isNull: true }\n userCode: { in: $userCodes }\n schoolId: { equalTo: $schoolId }\n }\n ) {\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n nodes {\n userCode\n coreAdminPublicEducationalLevelGroupByEducationalLevelGroupIdAndSchoolId {\n id: rowId\n name\n schoolId\n }\n coreAdminPublicUserByTeacherIdAndSchoolId {\n email\n emailSecondary\n fullName\n id: rowId\n phoneNumber\n isUseEmailSecondary\n isEmailValid\n isEmailSecondaryValid\n }\n }\n }\n}\n ";
|
|
11
|
+
export declare const FIND_USER_INFO = "\n query findUserInfo($ids: [Int!]!, $schoolId: Int!) {\n allCoreAdminPublicUsers(\n filter: {\n rowId: {in: $ids}\n deletedAt: {isNull: true}\n schoolId: {equalTo: $schoolId}\n }\n ) {\n nodes {\n email\n fullName\n isEmailValid\n isEmailSecondaryValid\n isUseEmailSecondary\n id: rowId\n }\n }\n }\n";
|
|
12
|
+
export declare const FIND_CLASSROOM_BY_USER_IDS = "\n query FindClassroomByUserIds($userIds: [Int!]!, $schoolYearId: Int!, $schoolId: Int!) {\n allCoreAcademicPublicClassroomStudents(\n filter: {\n deletedAt: {isNull: true}\n coreAcademicPublicClassroomByClassroomIdAndSchoolId: {\n schoolYearId: {equalTo: $schoolYearId}\n }\n studentId: { in: $userIds }\n schoolId: { equalTo: $schoolId }\n }\n ) {\n nodes {\n coreAcademicPublicClassroomByClassroomIdAndSchoolId {\n name\n rowId\n }\n studentId\n }\n }\n }\n";
|