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

View File

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

View File

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

View File

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