| @@ -0,0 +1,42 @@ | |||
| declare namespace companyListType { | |||
| type addrFormType = { | |||
| full_name ?: String, | |||
| registration_number ?: String, | |||
| establishment_date ?: String, | |||
| contact ?: String, | |||
| phone ?: String, | |||
| mobile ?: String, | |||
| email ?: String, | |||
| fax ?: String, | |||
| website ?: String, | |||
| province ?: Number, | |||
| city ?: Number, | |||
| district ?: Number, | |||
| street ?: Number, | |||
| address ?: String, | |||
| industry ?: Number, | |||
| nature ?: Number, | |||
| scale ?: Number, | |||
| introduction ?: String, | |||
| photo ?: String, | |||
| photo_status ?: Number, | |||
| license_path ?: String, | |||
| license_status : '', | |||
| login_name ?: String, | |||
| login_pwd ?: String, | |||
| company_photos ?: Object[] | |||
| } | |||
| type addOtherFormType = { | |||
| chengli_date?: String, | |||
| content?: String, | |||
| photo_img?: String, | |||
| license_img?: String, | |||
| company_photo_img?: String, | |||
| company_address_cascader?: String, | |||
| company_industry_cascader?: String, | |||
| company_nature_cascader?: String, | |||
| company_scale_cascader?: String, | |||
| } | |||
| } | |||
| @@ -0,0 +1,230 @@ | |||
| <template> | |||
| <a-form :model="createForm" :label-col="{span: 4}" labelAlign="right"> | |||
| <a-row gutter="20"> | |||
| <a-col span="12"> | |||
| <a-row> | |||
| <a-col span="24"> | |||
| <a-form-item label="企业名称" name="full_name"> | |||
| <a-input v-model:value="createForm.full_name" placeholder="请输入企业名称" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="注册号" name="registration_number"> | |||
| <a-input v-model:value="createForm.registration_number" placeholder="请输入注册号" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="成立日期" name="establishment_date"> | |||
| <a-date-picker v-model:value="addOtherForm.chengli_date" @Change="establishmentDateChange" | |||
| style="width: 100%;" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="联系人" name="contact"> | |||
| <a-input v-model:value="createForm.contact" placeholder="请输入联系人" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="联系电话" name="phone"> | |||
| <a-input v-model:value="createForm.phone" placeholder="请输入联系电话" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="联系手机" name="mobile"> | |||
| <a-input v-model:value="createForm.mobile" placeholder="请输入联系手机" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="所属行业"> | |||
| <!-- <a-c-cascader :dict="2004" @saveCascader="industrySave" placeholder="请选择所属行业" | |||
| :cascader_content="addOtherForm.company_industry_cascader"></a-c-cascader> --> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="所在地区"> | |||
| <!-- <a-c-cascader :dict="2009" @saveCascader="compantAddressSave" placeholder="请选择公司地址" | |||
| :cascader_content="addOtherForm.company_address_cascader"></a-c-cascader> --> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="联系邮箱" name="email"> | |||
| <a-input v-model:value="createForm.email" placeholder="请输入联系邮箱" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="企业性质"> | |||
| <!-- <a-c-cascader :dict="2002" @saveCascader="natureSave" placeholder="请选择企业性质" | |||
| :cascader_content="addOtherForm.company_nature_cascader"></a-c-cascader> --> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="企业规模"> | |||
| <!-- <a-c-select :dict="2003" placeholder="请选择企业规模" @saveSelect="scaleSave" | |||
| :select_content="addOtherForm.company_scale_cascader"></a-c-select> --> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="企业传真" name="fax"> | |||
| <a-input v-model:value="createForm.fax" placeholder="请输入传真" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="详细地址" name="address"> | |||
| <a-input v-model:value="createForm.address" placeholder="请输入详细地址" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="企业官网" name="website"> | |||
| <a-input v-model:value="createForm.website" placeholder="请输入官网" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item label="企业介绍"> | |||
| <!-- <QuillEditor theme="snow" :options="options" toolbar="full" v-model:content="addOtherForm.content" | |||
| @update:content="onEditorUpdate($event)" contentType="html" /> --> | |||
| </a-form-item> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form> | |||
| <a-button block>保存</a-button> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, onMounted, computed, defineProps, watch, defineEmits } from 'vue'; | |||
| // import dayjs from 'dayjs'; | |||
| // import 'dayjs/locale/zh-cn'; | |||
| // dayjs.locale('zh-cn'); | |||
| // const dayjsRef = ref(dayjs); | |||
| let createForm : companyListType.addrFormType = ref({ | |||
| full_name: '', | |||
| registration_number: '', | |||
| establishment_date: '', | |||
| contact: '', | |||
| phone: '', | |||
| mobile: '', | |||
| email: '', | |||
| fax: '', | |||
| website: '', | |||
| province: 0, | |||
| city: 0, | |||
| district: 0, | |||
| street: 0, | |||
| address: '', | |||
| industry: 0, | |||
| nature: 0, | |||
| scale: 0, | |||
| introduction: '', | |||
| photo: '', | |||
| photo_status: 1, | |||
| license_path: '', | |||
| license_status: 1, | |||
| login_name: '', | |||
| login_pwd: '', | |||
| company_photos: [], | |||
| }) | |||
| let addOtherForm = ref<companyListType.addOtherFormType>({ | |||
| chengli_date: '', | |||
| content: '', | |||
| photo_img: '', | |||
| license_img: '', | |||
| company_photo_img: '', | |||
| company_address_cascader: '', | |||
| company_industry_cascader: '', | |||
| company_nature_cascader: '', | |||
| company_scale_cascader: '', | |||
| }) | |||
| onMounted(async () => { | |||
| // let res = await listSection({ page: 1, pagesize: 10, sort: 'id', sortby: "asc", keyword: "" }); | |||
| // section_list.value = res.data.sections; | |||
| }) | |||
| // 上传图片 | |||
| // 企业照片 | |||
| // const uploadPhotoSuccess = (data : Object) => { | |||
| // addOtherForm.value.photo_img = "http://114.132.245.7:242494" + data | |||
| // createForm.value.photo = data | |||
| // } | |||
| // // 营业执照 | |||
| // const uploadLicenseSuccess = (data : Object) => { | |||
| // addOtherForm.value.license_img = "http://114.132.245.7:242494" + data | |||
| // createForm.value.license_path = data | |||
| // } | |||
| // // 企业相册 | |||
| // const uploadSuccess = (data : Object) => { | |||
| // addOtherForm.value.company_photo_img = "http://114.132.245.7:242494" + data | |||
| // createForm.value.company_photos.push({ photo: data }) | |||
| // } | |||
| // // 成立日期 | |||
| // const establishmentDateChange = (val) => { | |||
| // createForm.value.establishment_date = dayjsRef.value(val).format('YYYY-MM-DD'); | |||
| // } | |||
| // // 选择地址 | |||
| // const compantAddressSave = (data) => { | |||
| // createForm.value.province = data.arr1[0] ? data.arr1[0] : 0; | |||
| // createForm.value.city = data.arr1[1] ? data.arr1[1] : 0; | |||
| // createForm.value.district = data.arr1[2] ? data.arr1[2] : 0; | |||
| // createForm.value.street = data.arr1[3] ? data.arr1[3] : 0; | |||
| // } | |||
| // // 所属行业 industrySave | |||
| // const industrySave = (data) => { | |||
| // createForm.value.industry = data.arr1[1] ? data.arr1[1] : 0; | |||
| // } | |||
| // // 企业性质 | |||
| // const natureSave = (data) => { | |||
| // createForm.value.nature = data.arr1[1] ? data.arr1[1] : 0; | |||
| // } | |||
| // // 企业规模 | |||
| // const scaleSave = (data) => { | |||
| // createForm.value.scale = data.val ? data.val : 0; | |||
| // } | |||
| // // 富文本 | |||
| // const onEditorUpdate = (data) => { | |||
| // createForm.value.introduction = data | |||
| // } | |||
| // const sumbitForm = () => { | |||
| // console.log(createForm.value) | |||
| // if (createForm.value.full_name) { | |||
| // if (!createForm.value.id) { | |||
| // addCompany(createForm.value).then(res => { | |||
| // message.success('新增企业成功'); | |||
| // hideModal(); | |||
| // resetForm(); | |||
| // emit('successAdd'); | |||
| // }).catch(err => { | |||
| // }) | |||
| // } else { | |||
| // PostCompanyEdit(createForm.value).then(res => { | |||
| // message.success('修改企业信息成功'); | |||
| // hideModal(); | |||
| // resetForm(); | |||
| // emit('successAdd'); | |||
| // }).catch(err => { | |||
| // }) | |||
| // } | |||
| // } else { | |||
| // message.warning('请补充完整信息'); | |||
| // } | |||
| // } | |||
| </script> | |||
| <style> | |||
| </style> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,17 @@ | |||
| declare namespace companyListType { | |||
| type addrFormType = { | |||
| id ?: Number, | |||
| probation ?: Number, | |||
| famous ?: Number, | |||
| member_type ?: Number, | |||
| member_status ?: Number, | |||
| start_date ?: Date, | |||
| end_date ?: Date, | |||
| sale ?: String, | |||
| } | |||
| // type addOtherFormType = { | |||
| // } | |||
| } | |||
| @@ -0,0 +1,253 @@ | |||
| <template> | |||
| <a-tabs v-model:activeKey="activeKey"> | |||
| <a-tab-pane key="1" tab="部门管理"> | |||
| <a-table :data-source="dataSource" :columns="columns"> | |||
| <template #operation="{ record }"> | |||
| <a-popconfirm v-if="dataSource.length" title="Sure to delete?" @confirm="onDelete(record.key)"> | |||
| <a>删除</a> | |||
| </a-popconfirm> | |||
| </template> | |||
| </a-table> | |||
| </a-tab-pane> | |||
| <a-tab-pane key="2" tab="填写资料" force-render> | |||
| <a-form :model="createForm" :label-col="{span: 4}" labelAlign="right"> | |||
| <a-row gutter="20"> | |||
| <a-col span="12"> | |||
| <a-row> | |||
| <a-col span="24"> | |||
| <a-form-item required label="部门名称" name="name"> | |||
| <a-input v-model:value="createForm.name" placeholder="请输入部门名称" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item required label="联系人" name="contact"> | |||
| <a-input v-model:value="createForm.contact" placeholder="请输入联系人" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item required label="联系电话" name="phone"> | |||
| <a-input v-model:value="createForm.phone" placeholder="请输入联系电话" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item required label="联系手机" name="mobile"> | |||
| <a-input v-model:value="createForm.mobile" placeholder="请输入手机" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-form-item required label="电子邮箱" name="email"> | |||
| <a-input v-model:value="createForm.email" placeholder="请输入邮箱" /> | |||
| </a-form-item> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </a-form> | |||
| </a-tab-pane> | |||
| </a-tabs> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, onMounted, computed } from 'vue'; | |||
| let createForm : companyListType.addrFormType = ref({ | |||
| name: '', | |||
| company_id: 0, | |||
| contact: '', | |||
| phone: '', | |||
| mobile: '', | |||
| email: '', | |||
| }) | |||
| let dataSource = ref([ | |||
| { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, | |||
| { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, { | |||
| key: '1', | |||
| name: '第一部部门第一部部门第一部部门', | |||
| age: '王二狗', | |||
| address: '082-12331231', | |||
| phone: '1223245645646', | |||
| email: '6146545@126.com', | |||
| }, | |||
| ]) | |||
| let columns = ref([ | |||
| { | |||
| title: '部门名称', | |||
| dataIndex: 'name', | |||
| key: 'name', | |||
| }, | |||
| { | |||
| title: '联系人', | |||
| dataIndex: 'age', | |||
| key: 'age', | |||
| }, | |||
| { | |||
| title: '联系电话', | |||
| dataIndex: 'address', | |||
| key: 'address', | |||
| }, | |||
| { | |||
| title: '联系手机', | |||
| dataIndex: 'phone', | |||
| key: 'phone', | |||
| }, | |||
| { | |||
| title: '电子邮件', | |||
| dataIndex: 'email', | |||
| key: 'email', | |||
| }, | |||
| { | |||
| title: '操作', | |||
| dataIndex: 'operation', | |||
| slots: { customRender: 'operation' }, | |||
| }, | |||
| ]) | |||
| </script> | |||
| <style scoped lang="less"> | |||
| :deep(.ant-table-thead >tr>th) { | |||
| background-color: #fff !important; | |||
| border: none !important; | |||
| color: #bbb !important; | |||
| } | |||
| :deep(.ant-table-thead >tr>th::before) { | |||
| display: none !important; | |||
| } | |||
| :deep(.ant-table-tbody >tr >td) { | |||
| border: none !important; | |||
| } | |||
| </style> | |||
| @@ -17,9 +17,9 @@ | |||
| <div>中山市海港城安域有限公司</div> | |||
| <div>查看更多</div> | |||
| </div> | |||
| <div> | |||
| <!-- <div> | |||
| 小榄镇 | |||
| </div> | |||
| </div> --> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| @@ -1,13 +1,13 @@ | |||
| <template> | |||
| <a-modal v-model:visible="visible" @ok="handleOk" :footer="null" title="职位详情"> | |||
| <!-- <a-modal v-model:visible="visible" @ok="handleOk" :footer="null" title="职位详情"> --> | |||
| <!-- justify flex 布局下的水平排列方式:start end center space-around space-between --> | |||
| <!-- align flex 布局下的垂直对齐方式:top middle bottom --> | |||
| <div style="margin-top: 30px;"> | |||
| <!-- <div style="margin-top: 30px;"> --> | |||
| <a-row :gutter="[10,10]" type="flex" justify="space-between"> | |||
| <a-col span="14"> | |||
| <a-row :gutter="[10,10]"> | |||
| <a-col span="24"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="space-between"> | |||
| <a-row :gutter="[10,10]" type="flex"> | |||
| <a-col> | |||
| 前端工程师 | |||
| </a-col> | |||
| @@ -18,13 +18,13 @@ | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <a-row :gutter="[10,10]" type="flex"> | |||
| <a-col span="6"> | |||
| <a-col> | |||
| <a-tag>Tag 1</a-tag> | |||
| </a-col> | |||
| <a-col span="6"> | |||
| <a-col> | |||
| <a-tag>Tag 1</a-tag> | |||
| </a-col> | |||
| <a-col span="6"> | |||
| <a-col> | |||
| <a-tag>Tag 1</a-tag> | |||
| </a-col> | |||
| </a-row> | |||
| @@ -38,19 +38,38 @@ | |||
| 收藏 | |||
| </a-button> | |||
| <a-button> | |||
| <StarOutlined /> | |||
| 打印 | |||
| </a-button> | |||
| <a-button> | |||
| 投简历 | |||
| </a-button> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| <div style="margin-top: 30px;"> | |||
| <div>职位描述:</div> | |||
| <!-- <div>职位描述:</div> --> | |||
| <!-- <div v-html=""></div> --> | |||
| <a-descriptions :column="2" title="职位描述" > | |||
| <a-descriptions-item label="职位性质" >Zhou Maomao</a-descriptions-item> | |||
| <a-descriptions-item label="招聘人数">1810000000</a-descriptions-item> | |||
| <a-descriptions-item label="工作地区">Hangzhou, Zhejiang</a-descriptions-item> | |||
| <a-descriptions-item label="月新范围">empty</a-descriptions-item> | |||
| <a-descriptions-item label="食宿条件">empty</a-descriptions-item> | |||
| <a-descriptions-item label="节假日">Zhou Maomao</a-descriptions-item> | |||
| <a-descriptions-item label="有效期">1810000000</a-descriptions-item> | |||
| <a-descriptions-item label="有效期至">Hangzhou, Zhejiang</a-descriptions-item> | |||
| <a-descriptions-item label="联系人">empty</a-descriptions-item> | |||
| <a-descriptions-item label="职业类别">empty</a-descriptions-item> | |||
| <a-descriptions-item label="联系电话">empty</a-descriptions-item> | |||
| <a-descriptions-item></a-descriptions-item> | |||
| <a-descriptions-item label="职业描述">empty</a-descriptions-item> | |||
| </a-descriptions> | |||
| </div> | |||
| </div> | |||
| <!-- </div> --> | |||
| </a-modal> | |||
| <!-- </a-modal> --> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| @@ -18,14 +18,14 @@ | |||
| <a-tab-pane key="3" tab="高薪职位">Content of Tab Pane 3</a-tab-pane> | |||
| <a-tab-pane key="3" tab="校园招聘">Content of Tab Pane 3</a-tab-pane> | |||
| </a-tabs> --> | |||
| <!-- <a-row :gutter="[10,10]"> | |||
| <a-row :gutter="[10,10]"> | |||
| <a-col span="12" v-for="(item, index) in companyList"> | |||
| <job-card></job-card> | |||
| </a-col> | |||
| <a-col span="24" > | |||
| <a-pagination v-model:current="current" :total="500" style="text-align: center;"/> | |||
| </a-col> | |||
| </a-row> --> | |||
| </a-row> | |||
| <!-- 企业显示 --> | |||
| <a-tabs v-model:activeKey="activeKey"> | |||
| <a-tab-pane key="1" tab="推荐人才"> | |||
| @@ -20,12 +20,11 @@ | |||
| </template> | |||
| </a-list-item-meta> | |||
| <div style="margin-left: 64px;"> | |||
| 1、环境更加 | |||
| 1、我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我我 | |||
| </div> | |||
| </a-list-item> | |||
| </a-list> | |||
| <!-- <a-list item-layout="horizontal" :split="false" position="bottom"> | |||
| <!-- <a-list item-layout="horizontal" :split="false" position="bottom"> | |||
| <a-list-item> | |||
| <template #actions> | |||
| <a-button> | |||
| @@ -70,7 +69,7 @@ | |||
| </div> | |||
| </a-list-item> | |||
| </a-list> --> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| @@ -81,27 +80,26 @@ | |||
| .talent-box { | |||
| background-color: #fff; | |||
| } | |||
| .applyRouteStyles(@routeName) { | |||
| & when (@routeName = company) { | |||
| :deep(.ant-list-item-meta) { | |||
| flex: none !important; | |||
| width: 40% !important; | |||
| } | |||
| :deep(.ant-list-item-action) { | |||
| margin-inline-start: 0 !important; | |||
| } | |||
| } | |||
| & when (@routeName =company) { | |||
| :deep(.ant-list-item-meta) { | |||
| flex: none !important; | |||
| width: 40% !important; | |||
| } | |||
| :deep(.ant-list-item-action) { | |||
| margin-inline-start: 0 !important; | |||
| } | |||
| } | |||
| } | |||
| // :deep(.ant-list-item-meta) { | |||
| // flex: none !important; | |||
| // width: 40% !important; | |||
| // } | |||
| // :deep(.ant-list-item-action) { | |||
| // margin-inline-start: 0 !important; | |||
| // } | |||
| </style> | |||
| @@ -169,4 +169,4 @@ const NewsRoute : AppRouteRecordRaw = { | |||
| }, | |||
| }; | |||
| export const routesModuleList : AppRouteModule[] = [HomeRoute, JobRoute, AboutRoute, LawRoute, MentorRoute, ExpertRoute, TrainRoute, RelationshipRoute, NewsRoute]; | |||
| export const routesModuleList : AppRouteModule[] = [HomeRoute, JobRoute, AboutRoute, LawRoute, MentorRoute, ExpertRoute, TrainRoute, RelationshipRoute, NewsRoute]; | |||
| @@ -0,0 +1,106 @@ | |||
| import type { AppRouteRecordRaw, AppRouteModule } from '@/router/types'; | |||
| import { HomeOutlined } from '@ant-design/icons-vue'; | |||
| import { routerList } from './routerList'; | |||
| // 首页 | |||
| const ManageHomeRoute : AppRouteRecordRaw = { | |||
| path: '/manage/home', | |||
| name: 'manageHome', | |||
| component: routerList.ManageHome, | |||
| meta: { | |||
| title: '管理中心首页', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 企业资料 | |||
| const ManageBasicRoute : AppRouteRecordRaw = { | |||
| path: '/manage/basic', | |||
| name: 'basic', | |||
| component: routerList.ManageBasic, | |||
| meta: { | |||
| title: '企业资料', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 企业招聘 | |||
| const ManageInviteRoute : AppRouteRecordRaw = { | |||
| path: '/manage/invite', | |||
| name: 'manageInvite', | |||
| component: routerList.ManageInvite, | |||
| meta: { | |||
| title: '企业招聘', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 简历管理 | |||
| const ManageResumeRoute : AppRouteRecordRaw = { | |||
| path: '/manage/resume', | |||
| name: 'resume', | |||
| component: routerList.ManageResume, | |||
| meta: { | |||
| title: '简历管理', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 搜索简历 | |||
| const ManageSearchRoute : AppRouteRecordRaw = { | |||
| path: '/manage/search', | |||
| name: 'search', | |||
| component: routerList.ManageSearch, | |||
| meta: { | |||
| title: '搜索简历', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 招聘会管理 | |||
| const ManageMeetRoute : AppRouteRecordRaw = { | |||
| path: '/manage/meet', | |||
| name: 'meet', | |||
| component: routerList.ManageMeet, | |||
| meta: { | |||
| title: '招聘会管理', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 消息中心 | |||
| const ManageMessageRoute : AppRouteRecordRaw = { | |||
| path: '/manage/message', | |||
| name: 'message', | |||
| component: routerList.ManageMessage, | |||
| meta: { | |||
| title: '消息中心', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| // 用户管理 | |||
| const ManageUserRoute : AppRouteRecordRaw = { | |||
| path: '/manage/user', | |||
| name: 'user', | |||
| component: routerList.ManageUser, | |||
| meta: { | |||
| title: '用户管理', | |||
| icon: HomeOutlined | |||
| }, | |||
| }; | |||
| export const routesManageModuleList : AppRouteModule[] = [ | |||
| ManageHomeRoute, | |||
| ManageBasicRoute, | |||
| ManageInviteRoute, | |||
| ManageResumeRoute, | |||
| ManageSearchRoute, | |||
| ManageMeetRoute, | |||
| ManageMessageRoute, | |||
| ManageUserRoute | |||
| ]; | |||
| @@ -18,6 +18,15 @@ import Train from '@/views/train/index.vue'; | |||
| import Relationship from '@/views/relationship/index.vue'; | |||
| import News from '@/views/news/index.vue'; | |||
| // 企业管理 | |||
| import ManageHome from '@/views/manage/home/index.vue'; | |||
| import ManageBasic from '@/views/manage/basic/index.vue'; | |||
| import ManageInvite from '@/views/manage/invite/index.vue'; | |||
| import ManageResume from '@/views/manage/resume/index.vue'; | |||
| import ManageSearch from '@/views/manage/search/index.vue'; | |||
| import ManageMeet from '@/views/manage/meet/index.vue'; | |||
| import ManageMessage from '@/views/manage/message/index.vue'; | |||
| import ManageUser from '@/views/manage/user/index.vue'; | |||
| export const routerList = { | |||
| Home, | |||
| @@ -35,5 +44,14 @@ export const routerList = { | |||
| Expert, | |||
| Train, | |||
| Relationship, | |||
| News | |||
| News, | |||
| ManageHome, | |||
| ManageBasic, | |||
| ManageInvite, | |||
| ManageResume, | |||
| ManageSearch, | |||
| ManageMeet, | |||
| ManageMessage, | |||
| ManageUser, | |||
| } | |||
| @@ -5,6 +5,7 @@ import { HomeOutlined } from '@ant-design/icons-vue'; | |||
| // import HOME from '@/views/home/home.vue'; | |||
| import Layout from '@/components/layout/index.vue'; | |||
| import { routesModuleList } from '@/router/dynamic'; | |||
| import { routesManageModuleList } from '@/router/manageDynamic'; | |||
| // // 登录路由 | |||
| // export const LoginRoute: AppRouteRecordRaw = { | |||
| @@ -21,10 +22,14 @@ export const LayoutRoute: AppRouteRecordRaw = { | |||
| path: '', | |||
| name: 'layout', | |||
| component: Layout, | |||
| redirect: '/home', | |||
| redirect: '/manage/home', | |||
| // children: [ | |||
| // ...routesModuleList | |||
| // ] | |||
| children: [ | |||
| ...routesModuleList | |||
| ...routesManageModuleList | |||
| ] | |||
| } | |||
| export const basicRoutes = [ | |||
| @@ -1,8 +1,69 @@ | |||
| <template> | |||
| <job-search></job-search> | |||
| <!-- <job-search></job-search> | |||
| <job-list></job-list> | |||
| <job-internship></job-internship> | |||
| <job-detail></job-detail> | |||
| <job-detail></job-detail> --> | |||
| <div> | |||
| <a-list item-layout="vertical"> | |||
| <a-list-item> | |||
| <a-list-item-meta> | |||
| <template #title> | |||
| 广东省高新技术企业发展有限公司 | |||
| </template> | |||
| <template #description> | |||
| <div> | |||
| 企业编号: 123445 | |||
| </div> | |||
| </template> | |||
| </a-list-item-meta> | |||
| </a-list-item> | |||
| </a-list> | |||
| <a-tabs v-model:activeKey="activeKey"> | |||
| <a-tab-pane key="1" tab="企业信息"> | |||
| <div style="margin: 20px 0; padding: 20px;background-color: #ffffff;"> | |||
| 企业介绍 | |||
| </div> | |||
| <div style="margin: 20px 0; padding: 20px;background-color: #ffffff;"> | |||
| <a-descriptions :column="6" title="公司概况" layout="vertical"> | |||
| <a-descriptions-item label="所属行业" span="2">Zhou Maomao</a-descriptions-item> | |||
| <a-descriptions-item label="公司性质">1810000000</a-descriptions-item> | |||
| <a-descriptions-item label="公司规模">Hangzhou, Zhejiang</a-descriptions-item> | |||
| <a-descriptions-item label="成立时间">empty</a-descriptions-item> | |||
| </a-descriptions> | |||
| </div> | |||
| <div style="margin: 20px 0; padding: 20px;background-color: #ffffff;"> | |||
| <a-descriptions :column="6" title="联系方式" layout="vertical"> | |||
| <a-descriptions-item label="联系地址" span="2">Zhou Maomao</a-descriptions-item> | |||
| <a-descriptions-item label="联系人">1810000000</a-descriptions-item> | |||
| <a-descriptions-item label="联系电话">Hangzhou, Zhejiang</a-descriptions-item> | |||
| <a-descriptions-item label="Email">empty</a-descriptions-item> | |||
| <a-descriptions-item label="传真">empty</a-descriptions-item> | |||
| </a-descriptions> | |||
| </div> | |||
| </a-tab-pane> | |||
| <a-tab-pane key="2" tab="招聘职位" force-render> | |||
| <a-row :gutter="10"> | |||
| <a-col span="6"> | |||
| <a-row :gutter="[10,10]"> | |||
| <a-col span="24" v-for="(item, index) in companyList"> | |||
| <job-card></job-card> | |||
| </a-col> | |||
| <a-col span="24" > | |||
| <a-pagination simple v-model:current="current" :total="50" /> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| <a-col span="18" > | |||
| <div style="padding: 20px;background-color: #ffffff;"> | |||
| <job-detail></job-detail> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-tab-pane> | |||
| </a-tabs> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| @@ -11,7 +72,12 @@ | |||
| import JobList from '@/components/job/list/index.vue' | |||
| import JobInternship from '@/components/job/internship/index.vue' | |||
| import JobDetail from '@/components/job/detail/index.vue' | |||
| import JobCard from '@/components/job/card/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}]) | |||
| </script> | |||
| <style> | |||
| <style scoped lang="less"> | |||
| :deep(.ant-list-item) { | |||
| padding: 0 !important; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,38 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <a-row> | |||
| <a-col span="4"> | |||
| <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||
| <a-menu-item key="1">基本资料</a-menu-item> | |||
| <a-menu-item key="2">部门管理</a-menu-item> | |||
| <a-menu-item key="3">上传营业执照</a-menu-item> | |||
| <a-menu-item key="4">上传企业图片</a-menu-item> | |||
| <a-menu-item key="5">资料预览</a-menu-item> | |||
| <a-menu-item key="6">联系方式</a-menu-item> | |||
| </a-menu> | |||
| </a-col> | |||
| <a-col span="20"> | |||
| <div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
| <company-department></company-department> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import CompanyBasic from '@/components/company/basic/index.vue' | |||
| import CompanyDepartment from '@/components/company/department/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| const openKeys = ref<string[]>(['1']); | |||
| const selectedKeys = ref<string[]>(['2']); | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,63 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <div style="width: 100%; background-color: #fff;"> | |||
| <a-list item-layout="vertical"> | |||
| <a-list-item> | |||
| <a-list-item-meta> | |||
| <template #title> | |||
| 人才 | |||
| </template> | |||
| <template #description> | |||
| 企业编号:13213 | |||
| </template> | |||
| <template #avatar> | |||
| <a-avatar src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" :size="48" /> | |||
| </template> | |||
| </a-list-item-meta> | |||
| <div style="margin-left: 64px;"> | |||
| <a-descriptions :column="2" > | |||
| <a-descriptions-item label="登录账号" >Zhou Maomao</a-descriptions-item> | |||
| <a-descriptions-item label="会员始止时间">1810000000</a-descriptions-item> | |||
| <a-descriptions-item label="联系电话">Hangzhou, Zhejiang</a-descriptions-item> | |||
| <a-descriptions-item label="服务终止日期">empty</a-descriptions-item> | |||
| <a-descriptions-item label="电子邮箱">empty</a-descriptions-item> | |||
| <a-descriptions-item label="被访问次数">Zhou Maomao</a-descriptions-item> | |||
| </a-descriptions> | |||
| </div> | |||
| </a-list-item> | |||
| </a-list> | |||
| </div> | |||
| </a-col> | |||
| <a-col span="18"> | |||
| <div style="width: 100%; background-color: #fff;"> | |||
| 当月已查看 | |||
| </div> | |||
| </a-col> | |||
| <a-col span="18"> | |||
| <div style="width: 100%"> | |||
| 推荐简历 | |||
| </div> | |||
| <a-row :gutter="[10,10]"> | |||
| <a-col span="12" v-for="(item, index) in companyList"> | |||
| <job-talents></job-talents> | |||
| </a-col> | |||
| <a-col span="24"> | |||
| <div style="display: flex;align-items: center;justify-content: center;padding: 30px;font-size: 24px;">查看更多</div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import JobTalents from '@/components/job/talents/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,35 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <a-row> | |||
| <a-col span="4"> | |||
| <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||
| <a-menu-item key="1">发布招聘</a-menu-item> | |||
| <a-menu-item key="2">招聘职位管理</a-menu-item> | |||
| <a-menu-item key="3">招聘回收站</a-menu-item> | |||
| </a-menu> | |||
| </a-col> | |||
| <a-col span="20"> | |||
| <div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
| <company-department></company-department> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import CompanyBasic from '@/components/company/basic/index.vue' | |||
| import CompanyDepartment from '@/components/company/department/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| const openKeys = ref<string[]>(['1']); | |||
| const selectedKeys = ref<string[]>(['2']); | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,34 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <a-row> | |||
| <a-col span="4"> | |||
| <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||
| <a-menu-item key="1">招聘会预定</a-menu-item> | |||
| <a-menu-item key="2">预定审核结果</a-menu-item> | |||
| </a-menu> | |||
| </a-col> | |||
| <a-col span="20"> | |||
| <div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
| <company-department></company-department> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import CompanyBasic from '@/components/company/basic/index.vue' | |||
| import CompanyDepartment from '@/components/company/department/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| const openKeys = ref<string[]>(['1']); | |||
| const selectedKeys = ref<string[]>(['2']); | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,34 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <a-row> | |||
| <a-col span="4"> | |||
| <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||
| <a-menu-item key="1">意见反馈列表</a-menu-item> | |||
| <a-menu-item key="2">意见反馈</a-menu-item> | |||
| </a-menu> | |||
| </a-col> | |||
| <a-col span="20"> | |||
| <div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
| <company-department></company-department> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import CompanyBasic from '@/components/company/basic/index.vue' | |||
| import CompanyDepartment from '@/components/company/department/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| const openKeys = ref<string[]>(['1']); | |||
| const selectedKeys = ref<string[]>(['2']); | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,37 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <a-row> | |||
| <a-col span="4"> | |||
| <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||
| <a-menu-item key="1">收到的应聘简历</a-menu-item> | |||
| <a-menu-item key="2">邀请面试简历</a-menu-item> | |||
| <a-menu-item key="3">已查看联系方式</a-menu-item> | |||
| <a-menu-item key="4">企业人才库</a-menu-item> | |||
| <a-menu-item key="5">简历回收站</a-menu-item> | |||
| </a-menu> | |||
| </a-col> | |||
| <a-col span="20"> | |||
| <div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
| <company-department></company-department> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import CompanyBasic from '@/components/company/basic/index.vue' | |||
| import CompanyDepartment from '@/components/company/department/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| const openKeys = ref<string[]>(['1']); | |||
| const selectedKeys = ref<string[]>(['2']); | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,33 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <a-row> | |||
| <a-col span="4"> | |||
| <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||
| <a-menu-item key="1">简历搜索</a-menu-item> | |||
| </a-menu> | |||
| </a-col> | |||
| <a-col span="20"> | |||
| <div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
| <company-department></company-department> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import CompanyBasic from '@/components/company/basic/index.vue' | |||
| import CompanyDepartment from '@/components/company/department/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| const openKeys = ref<string[]>(['1']); | |||
| const selectedKeys = ref<string[]>(['2']); | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -0,0 +1,34 @@ | |||
| <template> | |||
| <div class="content-padding-inline" style="margin-top: 30px;"> | |||
| <a-row :gutter="[10,10]" type="flex" justify="center"> | |||
| <a-col span="18"> | |||
| <a-row> | |||
| <a-col span="4"> | |||
| <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 100%;" mode="inline"> | |||
| <a-menu-item key="1">费用管理</a-menu-item> | |||
| <a-menu-item key="2">修改登录密码</a-menu-item> | |||
| </a-menu> | |||
| </a-col> | |||
| <a-col span="20"> | |||
| <div style="width: 100%;background-color: #fff;padding: 10px;"> | |||
| <company-department></company-department> | |||
| </div> | |||
| </a-col> | |||
| </a-row> | |||
| </a-col> | |||
| </a-row> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { ref, computed, onMounted } from 'vue'; | |||
| import CompanyBasic from '@/components/company/basic/index.vue' | |||
| import CompanyDepartment from '@/components/company/department/index.vue' | |||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | |||
| const openKeys = ref<string[]>(['1']); | |||
| const selectedKeys = ref<string[]>(['2']); | |||
| </script> | |||
| <style> | |||
| </style> | |||
| @@ -1,4 +1,5 @@ | |||
| <template> | |||
| dd | |||
| </template> | |||
| <script> | |||