| </head> | </head> | ||||
| <body> | <body> | ||||
| <div id="root"></div> | <div id="root"></div> | ||||
| <script src="/umi.c6e37b69.js"></script> | |||||
| <script src="/umi.d33b65e9.js"></script> | |||||
| </body> | </body> | ||||
| </html> | </html> |
| export const updateCompany = PostModel(url.companyEdit); | export const updateCompany = PostModel(url.companyEdit); | ||||
| export const GetCompanyRecruiters = GetModel(url.CompanyRecruiters); | export const GetCompanyRecruiters = GetModel(url.CompanyRecruiters); | ||||
| export const PostCompanyTurnJobseeker = PostModel(url.CompanyTurnJobseeker); | export const PostCompanyTurnJobseeker = PostModel(url.CompanyTurnJobseeker); | ||||
| export const PostCompanyMultieditstatus = PostModel(url.CompanyMultieditstatus); | |||||
| // VIP | // VIP | ||||
| export const PostCompanyVipmanage = PostModel(url.companyVipmanage); | export const PostCompanyVipmanage = PostModel(url.companyVipmanage); |
| companyJobInfo: String, | companyJobInfo: String, | ||||
| CompanyRecruiters: String, | CompanyRecruiters: String, | ||||
| CompanyTurnJobseeker: String, | CompanyTurnJobseeker: String, | ||||
| CompanyMultieditstatus: String, | |||||
| companyDepartmentAdd: String, | companyDepartmentAdd: String, | ||||
| companyDepartmentEdit: String, | companyDepartmentEdit: String, | ||||
| CompanyDepartmentList: String, | CompanyDepartmentList: String, |
| companyJobInfo: admin + '/company/job_info', | companyJobInfo: admin + '/company/job_info', | ||||
| CompanyRecruiters: admin + '/company/recruiters', | CompanyRecruiters: admin + '/company/recruiters', | ||||
| CompanyTurnJobseeker: admin + '/company/turn_jobseeker', | CompanyTurnJobseeker: admin + '/company/turn_jobseeker', | ||||
| CompanyMultieditstatus: admin + '/company/multieditstatus', | |||||
| companyDepartmentAdd: admin + '/company/department_add', | companyDepartmentAdd: admin + '/company/department_add', | ||||
| companyDepartmentEdit: admin + '/company/department_edit', | companyDepartmentEdit: admin + '/company/department_edit', | ||||
| CompanyDepartmentList: admin + '/company/department_list', | CompanyDepartmentList: admin + '/company/department_list', |
| import { connect, history, Link } from '@umijs/max'; | import { connect, history, Link } from '@umijs/max'; | ||||
| import type { ActionType, ProFormInstance } from '@ant-design/pro-components'; | import type { ActionType, ProFormInstance } from '@ant-design/pro-components'; | ||||
| import { | import { | ||||
| ProTable, TableDropdown, ProForm | |||||
| ProTable, ProFormRadio, ProForm | |||||
| } from '@ant-design/pro-components'; | } from '@ant-design/pro-components'; | ||||
| import { Button, Image, ConfigProvider, Select, message, Descriptions, Space, Radio, Modal, Row, Col, Badge } from 'antd'; | |||||
| import { getCompanyList, GetCompanyInfo, updateCompany, PostCompanyExport, PostCompanyEdit } from '@/apis/api'; | |||||
| import { Button, Image, ConfigProvider, Select, message, Descriptions, Space, Radio, Modal, Form, Row,Col, Badge } from 'antd'; | |||||
| import { getCompanyList, GetCompanyInfo, updateCompany, PostCompanyExport, PostCompanyEdit, PostCompanyMultieditstatus } from '@/apis/api'; | |||||
| import { Imageprefix } from '@/constants'; | import { Imageprefix } from '@/constants'; | ||||
| import DragUpload from '@/components/Common/dragupload'; | import DragUpload from '@/components/Common/dragupload'; | ||||
| const [page, setPage] = useState<number>(1) | const [page, setPage] = useState<number>(1) | ||||
| const [pageSize, setPageSize] = useState<number>(10) | const [pageSize, setPageSize] = useState<number>(10) | ||||
| const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]) | const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]) | ||||
| const [ids, setIds] = useState<number[]>([]) | |||||
| const [status, setStatus] = useState<number>(0) | |||||
| const setId = (id: number) => { | const setId = (id: number) => { | ||||
| dataSource={list} | dataSource={list} | ||||
| search={{ span: 6, labelWidth: 'auto' }} | search={{ span: 6, labelWidth: 'auto' }} | ||||
| rowSelection={{ | rowSelection={{ | ||||
| type: 'checkbox' | |||||
| type: 'checkbox', | |||||
| onChange: (selectedRowKeys, selectedRows) => { | |||||
| setIds(selectedRowKeys) | |||||
| }, | |||||
| }} | }} | ||||
| expandable={{ | expandable={{ | ||||
| expandedRowRender | expandedRowRender | ||||
| headerTitle="企业列表" | headerTitle="企业列表" | ||||
| toolBarRender={() => [ | toolBarRender={() => [ | ||||
| <Button type="primary" onClick={() => { | <Button type="primary" onClick={() => { | ||||
| Modal.confirm({ | |||||
| title: '请选择对批量数据进行何种操作', | |||||
| content: (<> | |||||
| <div>参数: id, status</div> | |||||
| <Radio.Group size='small' onChange={async (e) => { | |||||
| actionRef.current?.reload(); | |||||
| }}> | |||||
| <Row gutter={[20, 20]} style={{ padding: 20 }}> | |||||
| <Col span={12}> | |||||
| <Radio value={1}>开通账号</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={2}>关闭账号</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={3}>禁用1天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={4}>禁用3天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={5}>禁用7天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={6}>禁用15天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={7}>禁用30天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={8}>永久禁用</Radio> | |||||
| </Col> | |||||
| </Row> | |||||
| </Radio.Group> | |||||
| </>), | |||||
| onOk() { | |||||
| if (ids.length === 0) { | |||||
| message.error('请选择要操作的数据') | |||||
| } else { | |||||
| Modal.confirm({ | |||||
| title: '请选择对批量数据进行何种操作', | |||||
| content: (<> | |||||
| <Radio.Group size='small' value={status} onChange={(e) => { | |||||
| setStatus(e.target.value) | |||||
| }} options={[ | |||||
| { value: 1, label: '开通账号' }, | |||||
| { value: 2, label: '关闭账号' } | |||||
| ]} > | |||||
| {/* <Row gutter={[20, 20]} style={{ padding: 20 }}> | |||||
| <Col span={12}> | |||||
| <Radio value={1}>开通账号</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={2}>关闭账号</Radio> | |||||
| </Col> | |||||
| {/* <Col span={12}> | |||||
| <Radio value={3}>禁用1天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={4}>禁用3天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={5}>禁用7天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={6}>禁用15天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={7}>禁用30天</Radio> | |||||
| </Col> | |||||
| <Col span={12}> | |||||
| <Radio value={8}>永久禁用</Radio> | |||||
| </Col> | |||||
| </Row> */} | |||||
| </Radio.Group> | |||||
| </>), | |||||
| async onOk() { | |||||
| if (status) { | |||||
| let res = PostCompanyMultieditstatus({ ids: ids, status: status }) | |||||
| actionRef.current?.reload(); | |||||
| } else { | |||||
| message.error('请选择状态') | |||||
| return false | |||||
| } | |||||
| }, | |||||
| onCancel() { | |||||
| console.log('Cancel'); | |||||
| }, | |||||
| okText: '确定', | |||||
| cancelText: '取消', | |||||
| centered: true | |||||
| }); | |||||
| } | |||||
| }, | |||||
| onCancel() { | |||||
| console.log('Cancel'); | |||||
| }, | |||||
| okText: '确定', | |||||
| cancelText: '取消', | |||||
| centered: true | |||||
| }); | |||||
| }}> | }}> | ||||
| 批量管理账号 | 批量管理账号 | ||||
| </Button>, | </Button>, |
| <ProFormText | <ProFormText | ||||
| name="author" | name="author" | ||||
| label="姓名" | label="姓名" | ||||
| placeholder="10" | |||||
| placeholder="请输入姓名" | |||||
| rules={[{ required: true, message: '请输入姓名' }]} | rules={[{ required: true, message: '请输入姓名' }]} | ||||
| /> | /> | ||||
| width: '100%', | width: '100%', | ||||
| fieldNames: selectfieldNames | fieldNames: selectfieldNames | ||||
| }} | }} | ||||
| placeholder='请选择主办人员' | |||||
| options={dictModel.educationList} | options={dictModel.educationList} | ||||
| /> | /> | ||||
| </Col> | </Col> |
| ProForm, | ProForm, | ||||
| } from '@ant-design/pro-components'; | } from '@ant-design/pro-components'; | ||||
| import { ConfigProvider, Flex, Space, Modal, message } from 'antd'; | import { ConfigProvider, Flex, Space, Modal, message } from 'antd'; | ||||
| import { PostRoleAdd, PostRoleEdit, GetRoleDetail } from '@/apis/api'; | |||||
| import { PostRoleAdd, PostRoleEdit, GetRoleDetail, PostRoleAddpermission } from '@/apis/api'; | |||||
| const PagesPermissionRoleCreate: React.FC = ({ dispatch, dictModel, openModel, id }: any) => { | const PagesPermissionRoleCreate: React.FC = ({ dispatch, dictModel, openModel, id }: any) => { | ||||
| let res = await PostRoleAdd(values) | let res = await PostRoleAdd(values) | ||||
| message.success('提交成功') | message.success('提交成功') | ||||
| dispatch({ type: 'openModel/getOpenModal', payload: false }) | dispatch({ type: 'openModel/getOpenModal', payload: false }) | ||||
| } | } | ||||
| }} | }} | ||||
| > | > |
| import { useRef, useState, useEffect } from 'react'; | import { useRef, useState, useEffect } from 'react'; | ||||
| import { connect } from '@umijs/max'; | import { connect } from '@umijs/max'; | ||||
| import { ConfigProvider, Space, Collapse, Tag, Modal, Row, Col, message} from 'antd'; | |||||
| import { PostRoleAddpermission,PostRoleDelpermission, getPermissionListWithchilds, getRoleGetpermissions, getRoleGetpermissionids } from '@/apis/api'; | |||||
| import { ConfigProvider, Space, Collapse, Tag, Modal, Row, Col, message } from 'antd'; | |||||
| import { PostRoleAddpermission, PostRoleDelpermission, getPermissionListWithchilds, getRoleGetpermissions, getRoleGetpermissionids } from '@/apis/api'; | |||||
| import { findId } from '@/utils/dataHelper'; | |||||
| const PagesMainPermissionRoleDispense: React.FC = ({ dispatch, dictModel, openModel, id }: any) => { | const PagesMainPermissionRoleDispense: React.FC = ({ dispatch, dictModel, openModel, id }: any) => { | ||||
| const [openPreview, setOpenPreview] = useState(false); | const [openPreview, setOpenPreview] = useState(false); | ||||
| const [detail, setDetail] = useState(null) | const [detail, setDetail] = useState(null) | ||||
| const [selectedIds, setSelectedIds] = useState<number[]>([]); | |||||
| const [selectedIds, setSelectedIds] = useState<number[]>([0]); | |||||
| const [collapseKey, setCollapseKey] = useState<string[]>([]); | const [collapseKey, setCollapseKey] = useState<string[]>([]); | ||||
| useEffect(() => { | useEffect(() => { | ||||
| setOpenPreview(openModel.openDispenseModal) | setOpenPreview(openModel.openDispenseModal) | ||||
| }, [openModel.openDispenseModal]) | }, [openModel.openDispenseModal]) | ||||
| const handleChange = (tag: number, checked: boolean) => { | const handleChange = (tag: number, checked: boolean) => { | ||||
| }; | }; | ||||
| // 检查给定的 id 是否存在于 res.data 中,并返回对应的下标加 1 | // 检查给定的 id 是否存在于 res.data 中,并返回对应的下标加 1 | ||||
| function checkIdInData(ids : number[], data :number) { | |||||
| function checkIdInData(ids: number[], data: number) { | |||||
| const result: any = []; | const result: any = []; | ||||
| if(ids && ids.length > 0) { | |||||
| if (ids && ids.length > 0) { | |||||
| ids.forEach(id => { | ids.forEach(id => { | ||||
| const index = data.findIndex(item => item.id === id); | const index = data.findIndex(item => item.id === id); | ||||
| if (index !== -1) { | if (index !== -1) { | ||||
| let res = await getPermissionListWithchilds() | let res = await getPermissionListWithchilds() | ||||
| setDetail(res.data) | setDetail(res.data) | ||||
| let resrole = await getRoleGetpermissionids({ id: id }) | let resrole = await getRoleGetpermissionids({ id: id }) | ||||
| console.log(findId(resrole.data.permissionIds, '53')) | |||||
| if (!findId(resrole.data.permissionIds, '53')) { | |||||
| handleChange(53, true) | |||||
| resrole.data.permissionIds.push('53') | |||||
| } | |||||
| const nextSelectedTags = resrole.data.permissionIds && resrole.data.permissionIds.map(item => { | const nextSelectedTags = resrole.data.permissionIds && resrole.data.permissionIds.map(item => { | ||||
| return Number(item) | return Number(item) | ||||
| }) | }) | ||||
| const uniqueIndexes = checkIdInData(nextSelectedTags, res.data.permissions); | const uniqueIndexes = checkIdInData(nextSelectedTags, res.data.permissions); | ||||
| console.log(uniqueIndexes); // 输出去重后的结果 | console.log(uniqueIndexes); // 输出去重后的结果 | ||||
| // 设置状态 | // 设置状态 | ||||
| if(uniqueIndexes.length > 0) { | |||||
| if (uniqueIndexes.length > 0) { | |||||
| setCollapseKey(uniqueIndexes); | setCollapseKey(uniqueIndexes); | ||||
| } else { | } else { | ||||
| setCollapseKey(["1"]); | setCollapseKey(["1"]); |
| if(!openModel.openModal) { | if(!openModel.openModal) { | ||||
| setId(0) | setId(0) | ||||
| } | } | ||||
| }, [openModel.openModal]) | }, [openModel.openModal]) | ||||
| return ( | return ( |
| export const findId = (array: [], id: number) => { | |||||
| export const findId = (array: [], id: any) => { | |||||
| let result = false; | let result = false; | ||||
| result = array.includes(id); | result = array.includes(id); | ||||
| return result; | return result; |