ソースを参照

deploy

master
Soleilw 3ヶ月前
コミット
2e8b925796

+ 2
- 0
dist/451.f2aa2187.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 2
dist/668.1988c2ef.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 1
dist/index.html ファイルの表示

</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script src="/umi.7fa1ca41.js"></script>
<script src="/umi.fcb755e3.js"></script>
</body> </body>
</html> </html>

dist/p__Advertisement__Putin__index.2a16b487.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/p__Fair__List__index.a1da20f9.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
dist/p__Fair__List__index.be7f40f4.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
dist/p__Feedback__index.2d8d63d7.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/p__Feedback__index.4b00f2c8.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


dist/p__Information__Article__index.5b47ec25.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
dist/p__Information__Section__index.af290444.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/p__Information__Section__index.b098eef5.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
dist/p__Publichouse__index.2fed4b52.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
dist/p__Publichouse__index.e0008e1d.async.js
ファイル差分が大きすぎるため省略します
ファイルの表示


dist/umi.fcb755e3.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 7
- 0
src/apis/api/index.ts ファイルの表示

export const PostJobExport = PostModel(url.JobExport); export const PostJobExport = PostModel(url.JobExport);




// 公共户口
export const PostTalentsinfoAdd= PostModel(url.TalentsinfoAdd);
export const PostTalentsinfoDel = PostModel(url.TalentsinfoDel);
export const PostTalentsinfoUpdate = PostModel(url.TalentsinfoUpdate);
export const GetTalentsinfoList = GetModel(url.TalentsinfoList);
export const GetTalentsinfoDetail = GetModel(url.TalentsinfoDetail);


+ 8
- 0
src/apis/types/url.d.ts ファイルの表示

CompanyExport: String, // 详情 CompanyExport: String, // 详情
JobseekerExport: String, // 详情 JobseekerExport: String, // 详情
JobExport: String, // 详情 JobExport: String, // 详情

// 公共户口
TalentsinfoAdd: String, // 添加
TalentsinfoDel: String, // 删除
TalentsinfoUpdate: String, // 编辑
TalentsinfoList: String, // 列表
TalentsinfoDetail: String, // 详情

} }
} }

+ 9
- 2
src/apis/url/index.ts ファイルの表示

permissionList: admin + '/permission/list', permissionList: admin + '/permission/list',
permissionUpdate: admin + '/permission/update', permissionUpdate: admin + '/permission/update',
permissionDetail: admin + '/permission/detail', permissionDetail: admin + '/permission/detail',
roleGetpermissionids: admin + '/role/getpermissionids', // 获取角色的id roleGetpermissionids: admin + '/role/getpermissionids', // 获取角色的id


permissionListWithchilds: admin + '/permission/listwithchilds', permissionListWithchilds: admin + '/permission/listwithchilds',
DictDetail: common + '/dict/detail', // 详情 DictDetail: common + '/dict/detail', // 详情


// 导出数据 // 导出数据
CompanyExport: admin + '/company/export',
CompanyExport: admin + '/company/export',
JobseekerExport: admin + '/jobseeker/export', JobseekerExport: admin + '/jobseeker/export',
JobExport: admin + '/job/export', JobExport: admin + '/job/export',




// 公共户口
TalentsinfoAdd: admin + '/talentsinfo/add', // 添加
TalentsinfoDel: admin + '/talentsinfo/del', // 删除
TalentsinfoUpdate: admin + '/talentsinfo/update', // 编辑
TalentsinfoList: admin + '/talentsinfo/list', // 列表
TalentsinfoDetail: admin + '/talentsinfo/detail', // 详情

} }

+ 1
- 1
src/components/Render/Main/Advertisement/Putin/create/index.tsx ファイルの表示

> >
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
<Col span={24}> <Col span={24}>
<UploadModel multiple={false} form_name="image_url" image_length={1} uploadTxt="上传封面图" image_type={3} imageUrl={detail?.photo} onUploadComplete={handleFileUploadedphoto}></UploadModel>
<UploadModel multiple={false} form_name="image_url" image_length={1} uploadTxt="上传封面图" image_type={3} imageUrl={uploadedFilephotoName} onUploadComplete={handleFileUploadedphoto}></UploadModel>
</Col> </Col>
<Col span={8}> <Col span={8}>
<ProFormText <ProFormText

+ 4
- 6
src/components/Render/Main/Fair/List/create/index.tsx ファイルの表示

if (id) { if (id) {
let res = await GetRecruitmentDetail({ id: id.id }) let res = await GetRecruitmentDetail({ id: id.id })
res.data.dateRange = [res.data.open_date, res.data.close_date ? res.data.close_date : null]; res.data.dateRange = [res.data.open_date, res.data.close_date ? res.data.close_date : null];
setUploadedFilephotoName(res.data.photo)
return res.data; return res.data;
} else { } else {
setUploadedFilephotoName('') setUploadedFilephotoName('')
} }
}} }}
onFinish={async (values) => { onFinish={async (values) => {
values.open_date = values.dateRange[0];
values.close_date = values.dateRange[1] ? values.dateRange[1] : '';
values.open_date = values.dateRange && values.dateRange.length > 0 && values.dateRange[0] ? values.dateRange[0] : 0;
values.close_date = values.dateRange && values.dateRange.length > 0 && values.dateRange[1] ? values.dateRange[1] : 0;
values.photo = uploadedFilephotoName ? uploadedFilephotoName : ''; values.photo = uploadedFilephotoName ? uploadedFilephotoName : '';
delete values.dateRange; delete values.dateRange;
if (id) { if (id) {
} }
}} }}
> >



<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
<Col span={24}> <Col span={24}>
<UploadModel multiple={false} form_name="photo" image_length={1} uploadTxt="上传招聘会照片" image_type={3} imageUrl={detail?.photo} onUploadComplete={handleFileUploadedphoto}></UploadModel>
<UploadModel multiple={false} form_name="photo" image_length={1} uploadTxt="上传招聘会照片" image_type={3} imageUrl={uploadedFilephotoName} onUploadComplete={handleFileUploadedphoto}></UploadModel>
</Col> </Col>
<Col span={12}> <Col span={12}>
<ProFormText <ProFormText

+ 1
- 1
src/components/Render/Main/Information/Article/create/index.tsx ファイルの表示

> >
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
<Col span={8}> <Col span={8}>
<UploadModel multiple={false} form_name="cover_img" image_length={1} uploadTxt="上传封面图" image_type={3} imageUrl={detail?.photo} onUploadComplete={handleFileUploadedphoto}></UploadModel>
<UploadModel multiple={false} form_name="cover_img" image_length={1} uploadTxt="上传封面图" image_type={3} imageUrl={uploadedFilephotoName} onUploadComplete={handleFileUploadedphoto}></UploadModel>
</Col> </Col>


<Col span={8}> <Col span={8}>

+ 1
- 1
src/components/Render/Main/Information/Section/create/index.tsx ファイルの表示

> >
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
<Col span={24}> <Col span={24}>
<UploadModel multiple={false} form_name="cover_img" image_length={1} uploadTxt="上传封面图" image_type={3} imageUrl={detail?.photo} onUploadComplete={handleFileUploadedphoto}></UploadModel>
<UploadModel multiple={false} form_name="cover_img" image_length={1} uploadTxt="上传封面图" image_type={3} imageUrl={uploadedFilephotoName} onUploadComplete={handleFileUploadedphoto}></UploadModel>
</Col> </Col>
<Col span={8}> <Col span={8}>
<ProFormText <ProFormText

+ 52
- 137
src/components/Render/Main/Publichouse/create/index.tsx ファイルの表示

FormControlRender, FormControlRender,
ProFormDependency, ProFormDependency,
ProFormSwitch, ProFormSwitch,
ProFormCascader,
ProFormRadio,
ProFormDatePicker ProFormDatePicker
} from '@ant-design/pro-components'; } from '@ant-design/pro-components';
import { ConfigProvider, Flex, Space, Modal, message, Image, Row, Col, Switch, Form, Typography, Divider } from 'antd';
import { ConfigProvider, Flex, Space, Modal, message, Image, Row, Col, Switch, Form, Typography, Divider, Radio } from 'antd';
import { addArticle, updateArticle, listSection, GetArticleDetail } from '@/apis/api'; import { addArticle, updateArticle, listSection, GetArticleDetail } from '@/apis/api';
import { Imageprefix } from '@/constants'; import { Imageprefix } from '@/constants';
import UploadModel from '@/components/Common/upload'; import UploadModel from '@/components/Common/upload';
const selectfieldNames = { label: 'name', value: 'id' }; const selectfieldNames = { label: 'name', value: 'id' };
const cascaderfieldNames = { label: 'name', value: 'id', children: 'childs' }; const cascaderfieldNames = { label: 'name', value: 'id', children: 'childs' };


import { PostTalentsinfoAdd, PostTalentsinfoUpdate, GetTalentsinfoDetail } from '@/apis/api';

const PagesMainInformationArticleCreate: React.FC = ({ dispatch, dictModel, openModel, id }: any) => { const PagesMainInformationArticleCreate: React.FC = ({ dispatch, dictModel, openModel, id }: any) => {
const formRef = useRef<ProFormInstance>(); const formRef = useRef<ProFormInstance>();
const [openPreview, setOpenPreview] = useState(false); const [openPreview, setOpenPreview] = useState(false);




useEffect(() => { useEffect(() => {
dispatch({ type: 'dictModel/getList', payload: { code: 2004, type: 'setPositionList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2009, type: 'setAreaList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2005, type: 'setPayList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2016, type: 'setAccommodationRequirementList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2017, type: 'setHolidayRestList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2018, type: 'setLicenseList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2021, type: 'setWorkExperienceList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2006, type: 'setEducationList' } }) dispatch({ type: 'dictModel/getList', payload: { code: 2006, type: 'setEducationList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2014, type: 'setTitleList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2015, type: 'setSkillCertificationeList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2007, type: 'setOtherLanguageList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2008, type: 'setDegreeList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2027, type: 'setIndustryPostList' } })
dispatch({ type: 'dictModel/getList', payload: { code: 2010, type: 'setPoliticalList' } })
}, []) }, [])




formRef={formRef} formRef={formRef}
request={async () => { request={async () => {
if (id) { if (id) {
let res = await GetArticleDetail({ id: id })
setUploadedFilephotoName(res.data.cover_img)
let res = await GetTalentsinfoDetail({ id: id })
res.data.section_arr = [res.data.section_name] res.data.section_arr = [res.data.section_name]


setDetail(res.data) setDetail(res.data)
return res.data; return res.data;
} else { } else {
setDetail(null) setDetail(null)
setUploadedFilephotoName('')
return { return {
title: '', title: '',
cover_img: '', cover_img: '',
values.section_id = values.section_arr.length > 0 ? values.section_arr[values.section_arr.length - 1] : 0; values.section_id = values.section_arr.length > 0 ? values.section_arr[values.section_arr.length - 1] : 0;
delete values.section_arr; delete values.section_arr;
} }
let res = await updateArticle(values)
let res = await PostTalentsinfoUpdate(values)
message.success('提交成功') message.success('提交成功')
dispatch({ type: 'openModel/getOpenModal', payload: false }) dispatch({ type: 'openModel/getOpenModal', payload: false })
} else { } else {
values.section_id = values.section_arr.length > 0 ? values.section_arr[values.section_arr.length - 1] : 0; values.section_id = values.section_arr.length > 0 ? values.section_arr[values.section_arr.length - 1] : 0;
delete values.section_arr; delete values.section_arr;
let res = await addArticle(values)
let res = await PostTalentsinfoAdd(values)
message.success('提交成功') message.success('提交成功')
dispatch({ type: 'openModel/getOpenModal', payload: false }) dispatch({ type: 'openModel/getOpenModal', payload: false })
} }
> >
<Row gutter={[16, 16]}> <Row gutter={[16, 16]}>
<Col span={24}> <Col span={24}>
<Divider orientation="left" plain >户口本信息</Divider>
</Col>
<Col span={8}>
<ProFormText

name="author"
label="户口本存放位编号"
placeholder="436346"
rules={[{ required: true, message: '请输入户口本存放位编号' }]}
/>
</Col>
<Col span={8}>
<ProFormText

name="author"
label="单位名称"
placeholder="菊城人才市场"
rules={[{ required: true, message: '请输入单位名称' }]}
/>
</Col>
<Col span={8}>
<ProFormText <ProFormText
name="author" name="author"
label="入户人数"
placeholder="10"
label="户口卡编号"
placeholder="请输入户口卡编号"
rules={[{ required: true, message: '请输入户口卡编号' }]}
/> />
</Col> </Col>
<Col span={24}>
<Divider orientation="left" plain >入户人员信息</Divider>
</Col>
<Col span={8}>
<ProFormSegmented
<Col span={4}>
<ProFormRadio.Group
name="gender" name="gender"
label="是否随家人迁入"
label="是否是主办人"
request={async () => [ request={async () => [
{ label: '是', value: 1 }, { label: '是', value: 1 },
{ label: '否', value: 2 } { label: '否', value: 2 }
]} ]}
rules={[{ required: true, message: '请选择是否是主办人' }]}
/> />
</Col> </Col>
<Col span={16}> <Col span={16}>
<ProFormSelect
width={'md'}
name="education"
label="选择随迁人员"
fieldProps={{
fieldNames: selectfieldNames
}}
options={dictModel.educationList}
/>
</Col>
<Col span={8}>
<ProFormText <ProFormText
name="author" name="author"
label="姓名" label="姓名"
placeholder="10" placeholder="10"
/>
</Col>
<Col span={8}>
<ProFormText
label="身份证"
name="id_number"
placeholder="请输入身份证"
validateTrigger='onBlur'
rules={[{
required: false,
}, () => ({
validator: (rule, value) => {
let info = verifyIdCard(value);

rules={[{ required: true, message: '请输入姓名' }]}


if (typeof (info) == 'boolean') {
return Promise.resolve();
}
return Promise.reject(new Error(info));
}
})]}
/> />
</Col> </Col>
<Col span={8}>
<ProFormSegmented
<Col span={4}>
<ProFormRadio.Group
name="gender" name="gender"
label="性别" label="性别"
request={async () => [ request={async () => [
{ label: '男', value: '男' }, { label: '男', value: '男' },
{ label: '女', value: '女' } { label: '女', value: '女' }
]} ]}
rules={[{ required: true, message: '请选择性别' }]}

/> />
</Col> </Col>
<Col span={8}>
<ProFormSelect
name="education"
label="学历"
fieldProps={{
fieldNames: selectfieldNames
}}
options={dictModel.educationList}
<Col span={4}>
<ProFormRadio.Group
name="gender"
label="是否是随迁人"
request={async () => [
{ label: '是', value: 1 },
{ label: '否', value: 2 }
]}
rules={[{ required: true, message: '请选择是否是随迁人' }]}
/> />
</Col> </Col>
<Col span={8}>
<Col span={14}>
<ProFormSelect <ProFormSelect
name="political_status"
label="政治面貌"
name="education"
label="选择主办人员"
fieldProps={{ fieldProps={{
width: '100%',
fieldNames: selectfieldNames fieldNames: selectfieldNames
}} }}
options={dictModel.politicalList}
/>
</Col>
<Col span={8}>
<ProFormText
name="author"
label="毕业院校"
placeholder="10"
/>
</Col>
<Col span={8}>
<ProFormText
name="author"
label="专业"
placeholder="10"
options={dictModel.educationList}
/> />
</Col> </Col>
<Col span={8}>
<ProFormCascader
label="籍贯"
name="native_arr"
fieldProps={{
fieldNames: cascaderfieldNames,
options: dictModel.areaList,
changeOnSelect: true
}}
placeholder="请选择籍贯"
<Col span={6}>
<ProFormDatePicker
name="dob"
label="入户时间"
placeholder='请选择入户时间'
width={'lg'}
rules={[{ required: true, message: '请选择入户时间' }]}
/> />
</Col> </Col>

<Col span={8}> <Col span={8}>
<ProFormSelect <ProFormSelect
name="marital_status"
label="婚姻状况"
name="education"
label="学历"
fieldProps={{ fieldProps={{
fieldNames: selectfieldNames fieldNames: selectfieldNames
}} }}
options={dictModel.maritalList}
placeholder='请选择学历'
options={dictModel.educationList}
rules={[{ required: true, message: '请选择学历' }]}

/> />
</Col> </Col>
<Col span={8}> <Col span={8}>
<ProFormText <ProFormText
name="author" name="author"
label="联系电话" label="联系电话"
placeholder="10"
/>
</Col>
<Col span={8}>
<ProFormDatePicker
name="dob"
label="入户时间"
placeholder='请选择入户时间'
width={'lg'}
/>
</Col>
<Col span={8}>
<ProFormText
name="author"
label="备注"
placeholder="10"
placeholder="请输入联系电话"
rules={[{ required: true, message: '请输入联系电话' }]}

/> />
</Col> </Col>

</Row> </Row>


</ProForm> </ProForm>

+ 7
- 28
src/components/Render/Main/Publichouse/table/index.tsx ファイルの表示

ProTable, TableDropdown,ProFormSelect ProTable, TableDropdown,ProFormSelect
} from '@ant-design/pro-components'; } from '@ant-design/pro-components';
import { Button, Image, ConfigProvider, Popconfirm, message , Tag} from 'antd'; import { Button, Image, ConfigProvider, Popconfirm, message , Tag} from 'antd';
import { listArticle, listSection, delArticle} from '@/apis/api';
import { GetTalentsinfoList,PostTalentsinfoDel} from '@/apis/api';
import { Imageprefix } from '@/constants'; import { Imageprefix } from '@/constants';
const selectfieldNames = { label: 'name', value: 'id', children: 'childs' }; const selectfieldNames = { label: 'name', value: 'id', children: 'childs' };


dataIndex: 'section_name', dataIndex: 'section_name',
search: false search: false
}, },
{
title: '所属栏目',
dataIndex: 'section_id',
hidden: true,
valueType: 'select',
renderFormItem: () => {
return (
<ProFormSelect
width='lg'
fieldProps={{
fieldNames: selectfieldNames,
}}
request={async (keyword) =>
listSection({ page: 1, pagesize: 100, keyword: keyword.keyWords }).then(res => {
return res.data.sections;
})
}
placeholder="请选择所属栏目"
/>
)
}
},
{ {
title: '封面图', title: '封面图',
dataIndex: 'cover_img', dataIndex: 'cover_img',
<Popconfirm <Popconfirm
title="是否删除" title="是否删除"
onConfirm={(e) => { onConfirm={(e) => {
delArticle({ id: record.id }).then(res => {
PostTalentsinfoDel({ id: record.id }).then(res => {
message.success('删除成功') message.success('删除成功')
actionRef.current.reload();
actionRef.current?.reload();
}) })
}} }}
okText="删除" okText="删除"
} }
}} }}
request={async (params = {} as Record<string, any>) => request={async (params = {} as Record<string, any>) =>
listArticle({
GetTalentsinfoList({
page: page, page: page,
pagesize: pageSize, pagesize: pageSize,
sort: 'id', sort: 'id',
setTotal(res.data.total) setTotal(res.data.total)
}) })
} }
headerTitle="文章列表"
headerTitle="公共人口信息"
toolBarRender={() => [ toolBarRender={() => [
<Button type="primary" onClick={() => { <Button type="primary" onClick={() => {
dispatch({ type: 'openModel/getOpenModal', payload: true }) dispatch({ type: 'openModel/getOpenModal', payload: true })
}}> }}>
添加文章
公共人口信息
</Button> </Button>
]} ]}
/> />

読み込み中…
キャンセル
保存