[dev]department

This commit is contained in:
susie-laptop 2025-04-28 22:15:22 -04:00
parent 89d42b9e10
commit b4217c418a
4 changed files with 57 additions and 33 deletions

View File

@ -3,12 +3,10 @@ import SvgIcon from './SvgIcon';
//
const departmentGroups = {
技术部: ['开发组', '测试组', '运维组', '架构组', '安全组'],
产品部: ['产品规划组', '用户研究组', '交互设计组', '项目管理组'],
市场部: ['品牌推广组', '市场调研组', '客户关系组', '社交媒体组'],
行政部: ['人事组', '财务组', '行政管理组', '后勤组'],
财务组: ['NA'],
行政组: ['NA'],
业务组: ['行政纠纷组', '刑事辩护组', '民商事争议解决组', '非诉业务组'],
};
//
const departments = Object.keys(departmentGroups);

View File

@ -5,13 +5,9 @@ import ChangePasswordModal from './ChangePasswordModal';
//
const departmentGroups = {
达人部门: ['达人'],
商务部门: ['商务'],
样本中心: ['样本'],
产品部门: ['产品'],
AI自媒体: ['AI自媒体'],
HR: ['HR'],
技术部门: ['技术'],
财务组: ['NA'],
行政组: ['NA'],
业务组: ['行政纠纷组', '刑事辩护组', '民商事争议解决组', '非诉业务组'],
};
export default function UserSettingsModal({ show, onClose }) {

View File

@ -13,12 +13,10 @@ import Breadcrumb from './components/Breadcrumb';
import KnowledgeBaseForm from './components/KnowledgeBaseForm';
import DeleteConfirmModal from './components/DeleteConfirmModal';
//
const departmentGroups = {
技术部: ['开发组', '测试组', '运维组', '架构组', '安全组'],
产品部: ['产品规划组', '用户研究组', '交互设计组', '项目管理组'],
市场部: ['品牌推广组', '市场调研组', '客户关系组', '社交媒体组'],
行政部: ['人事组', '财务组', '行政管理组', '后勤组'],
财务组: ['NA'],
行政组: ['NA'],
业务组: ['行政纠纷组', '刑事辩护组', '民商事争议解决组', '非诉业务组'],
};
//

View File

@ -5,10 +5,9 @@ import { checkAuthThunk, signupThunk } from '../../store/auth/auth.thunk';
//
const departmentGroups = {
技术部: ['开发组', '测试组', '运维组'],
产品部: ['产品规划组', '用户研究组', '交互设计组', '项目管理组'],
市场部: ['品牌推广组', '市场调研组', '客户关系组', '社交媒体组'],
行政部: ['人事组', '财务组', '行政管理组', '后勤组'],
财务组: ['NA'],
行政组: ['NA'],
业务组: ['行政纠纷组', '刑事辩护组', '民商事争议解决组', '非诉业务组'],
};
export default function Signup() {
@ -44,6 +43,17 @@ export default function Signup() {
group: '',
}));
}
// NANA
if (
departmentGroups[formData.department].length === 1 &&
departmentGroups[formData.department][0] === 'NA'
) {
setFormData((prev) => ({
...prev,
group: 'NA',
}));
}
} else {
setAvailableGroups([]);
setFormData((prev) => ({
@ -103,7 +113,16 @@ export default function Signup() {
newErrors.department = '请选择部门';
}
if (!formData.group) {
// departmentNAgroup
if (
!formData.group &&
!(
formData.department &&
departmentGroups[formData.department] &&
departmentGroups[formData.department].length === 1 &&
departmentGroups[formData.department][0] === 'NA'
)
) {
newErrors.group = '请选择组别';
}
@ -208,10 +227,9 @@ export default function Signup() {
<option value='' disabled>
选择部门
</option>
<option value='技术部'>技术部</option>
<option value='产品部'>产品部</option>
<option value='市场部'>市场部</option>
<option value='行政部'>行政部</option>
<option value='财务组'>财务组</option>
<option value='行政组'>行政组</option>
<option value='业务组'>业务组</option>
</select>
{submitted && errors.department && <div className='invalid-feedback'>{errors.department}</div>}
</div>
@ -222,17 +240,31 @@ export default function Signup() {
name='group'
value={formData.group}
onChange={handleInputChange}
disabled={loading || !formData.department}
disabled={
loading ||
!formData.department ||
(departmentGroups[formData.department] &&
departmentGroups[formData.department].length === 1 &&
departmentGroups[formData.department][0] === 'NA')
}
required
>
<option value='' disabled>
{formData.department ? '选择组别' : '请先选择部门'}
{formData.department
? departmentGroups[formData.department] &&
departmentGroups[formData.department].length === 1 &&
departmentGroups[formData.department][0] === 'NA'
? '该部门无下属组别'
: '选择组别'
: '请先选择部门'}
</option>
{availableGroups.map((group, index) => (
<option key={index} value={group}>
{group}
</option>
))}
{availableGroups.map((group, index) =>
group !== 'NA' ? (
<option key={index} value={group}>
{group}
</option>
) : null
)}
</select>
{submitted && errors.group && <div className='invalid-feedback'>{errors.group}</div>}
</div>