Soleilw před 1 rokem
rodič
revize
99b5b1afea
57 změnil soubory, kde provedl 1131 přidání a 922 odebrání
  1. 1
    1
      dist/assets/index-3v74tuIc.css
  2. 0
    614
      dist/assets/index-AZrlCp8c.js
  3. 614
    0
      dist/assets/index-dwm8dLBC.js
  4. 2
    2
      dist/index.html
  5. 10
    0
      src/components/cTable/cTable.vue
  6. 1
    1
      src/components/form/search-select.vue
  7. 5
    3
      src/components/upload/file.vue
  8. 6
    1
      src/hooks/useCommon.ts
  9. 4
    4
      src/views/activity/address/add/add.vue
  10. 1
    1
      src/views/activity/address/index.vue
  11. 31
    8
      src/views/activity/address/search/index.vue
  12. 1
    1
      src/views/advertisement/list/add/add.vue
  13. 3
    3
      src/views/advertisement/list/index.vue
  14. 5
    5
      src/views/advertisement/list/search/index.vue
  15. 11
    10
      src/views/advertisement/putin/add/add.vue
  16. 4
    1
      src/views/advertisement/putin/columns/index.ts
  17. 12
    11
      src/views/advertisement/putin/index.vue
  18. 5
    5
      src/views/advertisement/putin/search/index.vue
  19. 1
    1
      src/views/company/department/add/add.d.ts
  20. 3
    3
      src/views/company/department/add/add.vue
  21. 2
    2
      src/views/company/department/add/data.ts
  22. 1
    1
      src/views/company/department/index.vue
  23. 38
    11
      src/views/company/department/search/index.vue
  24. 4
    2
      src/views/company/list/add/add.d.ts
  25. 26
    15
      src/views/company/list/add/add.vue
  26. 6
    2
      src/views/company/list/add/data.ts
  27. 0
    14
      src/views/company/list/columns/index.ts
  28. 2
    3
      src/views/company/list/index.vue
  29. 42
    12
      src/views/company/list/search/index.vue
  30. 41
    4
      src/views/company/position/add/add.vue
  31. 1
    1
      src/views/company/position/index.vue
  32. 30
    10
      src/views/company/position/search/index.vue
  33. 1
    1
      src/views/company/vip/add/add.d.ts
  34. 4
    4
      src/views/company/vip/add/add.vue
  35. 1
    1
      src/views/company/vip/index.vue
  36. 6
    12
      src/views/company/vip/search/index.vue
  37. 0
    1
      src/views/feedback/list/index.vue
  38. 7
    5
      src/views/feedback/list/search/index.vue
  39. 16
    9
      src/views/information/article/add/add.d.ts
  40. 6
    4
      src/views/information/article/add/add.vue
  41. 4
    4
      src/views/information/article/search/index.vue
  42. 11
    8
      src/views/information/section/add/add.d.ts
  43. 12
    10
      src/views/information/section/add/add.vue
  44. 2
    2
      src/views/information/section/add/data.ts
  45. 13
    10
      src/views/information/section/index.vue
  46. 1
    1
      src/views/information/section/search/index.vue
  47. 2
    2
      src/views/jobFair/list/add-company/data.ts
  48. 1
    1
      src/views/jobFair/list/add/add.vue
  49. 2
    1
      src/views/jobFair/list/columns/index.ts
  50. 2
    1
      src/views/jobFair/list/company/columns.ts
  51. 4
    0
      src/views/jobFair/list/company/index.vue
  52. 4
    0
      src/views/jobFair/list/index.vue
  53. 4
    4
      src/views/jobFair/list/search/index.vue
  54. 54
    11
      src/views/jobSeeker/resume/detail/detail.vue
  55. 9
    9
      src/views/jobSeeker/resume/index.vue
  56. 51
    68
      src/views/jobSeeker/resume/search/index.vue
  57. 1
    1
      src/views/setting/item/search/index.vue

dist/assets/index-3v74tuIc.css
Diff nebyl zobrazen, protože je příliš veliký
Zobrazit soubor


+ 0
- 614
dist/assets/index-AZrlCp8c.js
Diff nebyl zobrazen, protože je příliš veliký
Zobrazit soubor


+ 614
- 0
dist/assets/index-dwm8dLBC.js
Diff nebyl zobrazen, protože je příliš veliký
Zobrazit soubor


+ 2
- 2
dist/index.html Zobrazit soubor

<link rel="icon" type="image/svg+xml" href="/logo_1.jpg" /> <link rel="icon" type="image/svg+xml" href="/logo_1.jpg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>菊城人才市场后台管理</title> <title>菊城人才市场后台管理</title>
<script type="module" crossorigin src="/assets/index-AZrlCp8c.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-CfxQrvHe.css">
<script type="module" crossorigin src="/assets/index-dwm8dLBC.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-3v74tuIc.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

+ 10
- 0
src/components/cTable/cTable.vue Zobrazit soubor

:expanded-row-keys="state.expandRowKeys" :expanded-row-keys="state.expandRowKeys"
:rowClassName="(record, index) => (index % 2 === 1 ? 'table-striped' : null)" :loading="loading" :rowClassName="(record, index) => (index % 2 === 1 ? 'table-striped' : null)" :loading="loading"
:scroll="{ y: 600 }"> :scroll="{ y: 600 }">
<template #image="{ record }">
<slot name="image" :record='record'></slot>
</template>
<template #hide_ad="{ record }">
<slot name="hide_ad" :record='record'></slot>
</template>
<template #status="{ record }">
<slot name="status" :record='record'></slot>
</template>
<template #stick_top="{ record }"> <template #stick_top="{ record }">
<slot name="stick_top" :record='record'></slot> <slot name="stick_top" :record='record'></slot>
</template> </template>

+ 1
- 1
src/components/form/search-select.vue Zobrazit soubor

watch(() => [props.list, props.select_value, props.select_disabled], watch(() => [props.list, props.select_value, props.select_disabled],
(newVal, oldVal) => { (newVal, oldVal) => {
listOptions.value = newVal[0] listOptions.value = newVal[0]
selectValue.value = newVal[1] == '' ? placeholder.value : newVal[1];
selectValue.value = newVal[1] ? newVal[1] : null;
selectDisabled.value = newVal[2]; selectDisabled.value = newVal[2];
mode.value = newVal[3] mode.value = newVal[3]
}, { immediate: true }) }, { immediate: true })

+ 5
- 3
src/components/upload/file.vue Zobrazit soubor

<template> <template>
<div style="display: flex;"> <div style="display: flex;">
<a-upload-dragger v-model:file-list="fileList" class="avatar-uploader" :show-upload-list="false" <a-upload-dragger v-model:file-list="fileList" class="avatar-uploader" :show-upload-list="false"
:before-upload="beforeUpload" :data="uploadData" :customRequest="uploadCustom" @drop="handleDrop">
:before-upload="beforeUpload" :data="uploadData" :customRequest="uploadCustom" @drop="handleDrop" >
<p class="ant-upload-drag-icon"> <p class="ant-upload-drag-icon">
<inbox-outlined></inbox-outlined> <inbox-outlined></inbox-outlined>
</p> </p>
console.log(res.data.data.filename) console.log(res.data.data.filename)
message.success(`上传文件成功`); message.success(`上传文件成功`);
emit('uploadSuccess', res.data.data.filename) emit('uploadSuccess', res.data.data.filename)
}).catch(err => {
message.danger('上传失败,请联系管理员');
}).catch(error => {
message.warn('文件上传失败,请检查文件类型,如有疑问,请咨询管理员');
}) })
} }
</script> </script>


<style scoped lang="less"> <style scoped lang="less">

+ 6
- 1
src/hooks/useCommon.ts Zobrazit soubor



// 禁止使用日期 // 禁止使用日期
const disabledDate = (val : Dayjs) => { const disabledDate = (val : Dayjs) => {
return val && val < dayjs().endOf('day');
};
const disabledDateFront = (val : Dayjs) => {
return val && val > dayjs().endOf('day'); return val && val > dayjs().endOf('day');
}; };


// 照片前缀 // 照片前缀
// const imageprefix : string = 'https://admin1.jcjob.cn/img/'
const imageprefix : string = 'https://rcsc-test.jcjob.cn/img/' const imageprefix : string = 'https://rcsc-test.jcjob.cn/img/'





return { return {
store, store,
commomParams, commomParams,
ExclamationCircleOutlined, ExclamationCircleOutlined,
Modal, Modal,
disabledDate, disabledDate,
disabledDateFront,
imageprefix, imageprefix,
openSearchModel, openSearchModel,
showSearch, showSearch,

+ 4
- 4
src/views/activity/address/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 4}" labelAlign="right">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item required label="选择门店地址"> <a-form-item required label="选择门店地址">
let title = ref<String>('新增活动地址'); let title = ref<String>('新增活动地址');
let showMap = ref<Boolean>(false); let showMap = ref<Boolean>(false);


let createForm = ref<companyDepartmentType.addFormType>(dataForm)
let addOtherForm = ref<companyDepartmentType.addOtherFormType>(otherDataForm)
let createForm = ref(dataForm)
let addOtherForm = ref(otherDataForm)




onMounted(() => { onMounted(() => {
const getCateValue = (val : Object) => { const getCateValue = (val : Object) => {
createForm.value.cate = val.key; createForm.value.cate = val.key;
} }
// 经纬度 // 经纬度
const getLoc = (mapData : Object) => { const getLoc = (mapData : Object) => {
console.log(mapData) console.log(mapData)

+ 1
- 1
src/views/activity/address/index.vue Zobrazit soubor

page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
} }

+ 31
- 8
src/views/activity/address/search/index.vue Zobrazit soubor

<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="地址" v-model:value="commomParams.search.keyword" <a-input addon-before="地址" v-model:value="commomParams.search.keyword"
placeholder="请输入地址" />
placeholder="请输入地址" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="请输入地址分类" v-model:value="commomParams.search.cate"
placeholder="请输入地址分类" />
<search-select placeholder="请搜索选择地址分类" :list="cate_list" :select_value="commomParams.search.cate"
@searchData="cateSearch" @getSelectValue="getCateValue"></search-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>


<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, watch, computed } from 'vue'; import { ref, onMounted, watch, computed } from 'vue';
import { GetActivityaddressCate} from '@/apis/models';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
let { store, commomParams, openSearchModel, hideSearch } = useCommon(); let { store, commomParams, openSearchModel, hideSearch } = useCommon();
let props = defineProps(['search_params']); let props = defineProps(['search_params']);
openSearchModel = computed(() => { openSearchModel = computed(() => {
return store.state.openSearchModel; return store.state.openSearchModel;
}) })
onMounted(() => {
cateSearch()
})




interface listType { interface listType {
} }


commomParams.value.search = commomParams.value.search as listType; commomParams.value.search = commomParams.value.search as listType;
commomParams.value.search.cate = '';
watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
commomParams.value.search.cate = null;
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search);
hideSearch()
} }


const onClose = () => { const onClose = () => {
clearSearch() clearSearch()
hideSearch() hideSearch()
} }
let cate_list = ref<Object[]>([])
const cateSearch = (val : Object) => {
GetActivityaddressCate(val).then((res : object) => {
const data = res.data.activity_address_cate.map((item : object) => ({
label: item,
value: item,
}));
cate_list.value = data;
})
}
const getCateValue = (val : Object) => {
commomParams.value.search.cate = val.key;
getData()
}
</script> </script>


<style> <style>

+ 1
- 1
src/views/advertisement/list/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" title="新增广告位置" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" title="新增广告位置" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 4}" labelAlign="right">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item required label="广告类别名称" name="name"> <a-form-item required label="广告类别名称" name="name">

+ 3
- 3
src/views/advertisement/list/index.vue Zobrazit soubor

<template #default="{ record }"> <template #default="{ record }">
<a-row :gutter="10"> <a-row :gutter="10">
<a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col> <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col>
<a-popconfirm title="是否删除该广告位置?" @confirm="delOneRole(record.id)">
<a-popconfirm title="是否删除该广告位置?" @confirm="del(record.id)">
<a-col><a-button type="primary" size="small" danger>删除</a-button></a-col> <a-col><a-button type="primary" size="small" danger>删除</a-button></a-col>
</a-popconfirm> </a-popconfirm>
</a-row> </a-row>
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
} }




// 删除 // 删除
const delOneRole = (id : number) => {
const del = (id : number) => {
commomParams.value.delRecord = { id: id }; commomParams.value.delRecord = { id: id };
PostAdvertareaDel(commomParams.value.delRecord).then(res => { PostAdvertareaDel(commomParams.value.delRecord).then(res => {
message.success('删除成功'); message.success('删除成功');

+ 5
- 5
src/views/advertisement/list/search/index.vue Zobrazit soubor

<a-row :gutter="[10]"> <a-row :gutter="[10]">
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="广告类别名称" v-model:value="commomParams.search.keyword" placeholder="广告类别名称" />
<a-input addon-before="广告类别名称" v-model:value="commomParams.search.keyword" placeholder="广告类别名称" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
return store.state.openSearchModel; return store.state.openSearchModel;
}) })
watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })
const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search); emit('clearData', commomParams.value.search);

+ 11
- 10
src/views/advertisement/putin/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" title="投放广告" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" title="投放广告" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 4}" labelAlign="right" style="margin-top: 20px;">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item required label="投放位置" name="area_id"> <a-form-item required label="投放位置" name="area_id">
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item required label="有效期至" name="valid_date">
<a-date-picker v-model:value="dataForm.valid_date" @Change="validDateChange"
<a-form-item required label="有效期至">
<a-date-picker v-model:value="dataForm.valid_date" @Change="validDateChange" :disabled-date="disabledDate"
style="width: 100%;" /> style="width: 100%;" />
</a-form-item> </a-form-item>
</a-col> </a-col>
import { GetAdvertareaList, getCompanyList, PostAdvertscheduleAdd, PostAdvertscheduleUpdate } from '@/apis/models'; import { GetAdvertareaList, getCompanyList, PostAdvertscheduleAdd, PostAdvertscheduleUpdate } from '@/apis/models';
import { dataForm, otherDataForm, reset } from '@/views/advertisement/putin/add/data.ts'; import { dataForm, otherDataForm, reset } from '@/views/advertisement/putin/add/data.ts';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
let { store, openAddModel, hideModal, message, dayjs, } = useCommon();
let { store, openAddModel, hideModal, message, dayjs, disabledDate, imageprefix } = useCommon();
const dayjsRef = ref(dayjs);
const emit = defineEmits(); const emit = defineEmits();
let props = defineProps(['edit_record']); let props = defineProps(['edit_record']);
let success_img = ref<String>('') let success_img = ref<String>('')


let createForm = ref<companyDepartmentType.addFormType>(dataForm)
let addOtherForm = ref<companyDepartmentType.addOtherFormType>(otherDataForm)
let createForm = ref(dataForm)
let addOtherForm = ref(otherDataForm)




onMounted(() => { onMounted(() => {
areaSearch({ page: 1, pagesize: 10 })
areaSearch({ page: 1, pagesize: 1000 })
companySearch({ page: 1, pagesize: 10 }) companySearch({ page: 1, pagesize: 10 })
}) })


// 上传图片 // 上传图片
const uploadSuccess = (data : Object) => { const uploadSuccess = (data : Object) => {
createForm.value.image_url = data; createForm.value.image_url = data;
addOtherForm.value.image_url = "https://rcsc-test.jcjob.cn/img" + data;
addOtherForm.value.image_url = imageprefix + data;
} }




ad_description: newVal.ad_description, ad_description: newVal.ad_description,
target_url: newVal.target_url, target_url: newVal.target_url,
show_order: newVal.show_order, show_order: newVal.show_order,
valid_date: newVal.valid_dateimage_url,
valid_date: newVal.valid_dateimage_url ? dayjsRef.value(newVal.valid_dateimage_url) : '' ,
hide_ad: newVal.hide_ad, hide_ad: newVal.hide_ad,
company_id: newVal.company_id, company_id: newVal.company_id,
} }
addOtherForm.value = { addOtherForm.value = {
area_name: newVal.area_name, area_name: newVal.area_name,
image_url: newVal.image_url,
image_url: imageprefix + newVal.image_url,
company_name: newVal.company_name company_name: newVal.company_name
} }
} }

+ 4
- 1
src/views/advertisement/putin/columns/index.ts Zobrazit soubor

}, },
{ {
title: '是否显示', title: '是否显示',
dataIndex: 'hide_ad'
dataIndex: 'hide_ad',
slots: {
customRender: 'hide_ad'
}
}, },
{ {
title: '操作', title: '操作',

+ 12
- 11
src/views/advertisement/putin/index.vue Zobrazit soubor

</a-c-operation> </a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #hide_ad="{ record }">
<a-tag color="green" v-if="record.hide_ad == 2">显示</a-tag>
<a-tag color="red" v-if="record.hide_ad == 1">隐藏</a-tag>
</template>
<template #default="{ record }"> <template #default="{ record }">
<a-row :gutter="10"> <a-row :gutter="10">
<a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col> <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col>
} }


const clearData = (data : object) => { const clearData = (data : object) => {
if (data) {
commomParams.value.search = data
} else {
commomParams.value.search = {
page: 1,
pagesize: 10,
sort: 'id',
sortby: 'asc',
keyword: '',
hide_ad: 0
}
commomParams.value.search = {
page: 1,
pagesize: 10,
sort: 'id',
sortby: 'desc',
keyword: '',
hide_ad: 0
} }
getData(); getData();
} }

+ 5
- 5
src/views/advertisement/putin/search/index.vue Zobrazit soubor

<a-row :gutter="[10]"> <a-row :gutter="[10]">
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="广告类别名称" v-model:value="commomParams.search.keyword" placeholder="广告类别名称" />
<a-input addon-before="投放位置" v-model:value="commomParams.search.keyword" placeholder="请输入投放位置" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
return store.state.openSearchModel; return store.state.openSearchModel;
}) })
watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })
const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search); emit('clearData', commomParams.value.search);

+ 1
- 1
src/views/company/department/add/add.d.ts Zobrazit soubor

declare namespace companyDepartmentType {
declare namespace CompanyDepartmentType {
type addFormType = { type addFormType = {
id ?: Number, id ?: Number,
name?: String, name?: String,

+ 3
- 3
src/views/company/department/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 2}" labelAlign="right" style="margin-top: 20px;">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item required label="选择企业" name="company_id"> <a-form-item required label="选择企业" name="company_id">
let title = ref<String>('新增部门'); let title = ref<String>('新增部门');
let selectDisabled = ref<Boolean>(false) let selectDisabled = ref<Boolean>(false)


let createForm = ref<companyDepartmentType.addFormType>(dataForm)
let addOtherForm = ref<companyDepartmentType.addOtherFormType>(otherDataForm)
let createForm = ref<CompanyDepartmentType.addFormType>(dataForm)
let addOtherForm = ref<CompanyDepartmentType.addOtherFormType>(otherDataForm)




onMounted(() => { onMounted(() => {

+ 2
- 2
src/views/company/department/add/data.ts Zobrazit soubor

} }


export let otherDataForm = { export let otherDataForm = {
full_name: '',
full_name: null,
} }


export const reset = () => { export const reset = () => {
email: '', email: '',
}; };
otherDataForm = { otherDataForm = {
full_name: '',
full_name: null,
} }


return { dataForm, otherDataForm } return { dataForm, otherDataForm }

+ 1
- 1
src/views/company/department/index.vue Zobrazit soubor

page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
} }

+ 38
- 11
src/views/company/department/search/index.vue Zobrazit soubor

<template> <template>
<a-drawer :width="500" title="搜索" placement="right" :open="openSearchModel" @close="onClose"> <a-drawer :width="500" title="搜索" placement="right" :open="openSearchModel" @close="onClose">
<template #extra>
<a-button style="margin-right: 8px" @click="clearSearch">清空搜索</a-button>
<a-button type="primary" @click="getData">搜索</a-button>
</template>
<a-form :model="commomParams.search"> <a-form :model="commomParams.search">
<a-row :gutter="[10]"> <a-row :gutter="[10]">
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="企业名称" v-model:value="commomParams.search.keyword"
placeholder="请输入企业名称" />
<a-input addon-before="部门名称" v-model:value="commomParams.search.keyword" placeholder="请输入部门名称"
@keyup.enter="getData" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="请选择公司" v-model:value="commomParams.search.company_id"
placeholder="请输入企业名称" />
<search-select placeholder="请搜索选择企业" :list="company_list"
:select_value="commomParams.search.company_id" @searchData="companySearch"
@getSelectValue="getCompanyValue"></search-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>


<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, watch, computed } from 'vue'; import { ref, onMounted, watch, computed } from 'vue';
import { getCompanyList } from '@/apis/models';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
let { store, commomParams, openSearchModel, hideSearch } = useCommon(); let { store, commomParams, openSearchModel, hideSearch } = useCommon();
let props = defineProps(['search_params']); let props = defineProps(['search_params']);
const emit = defineEmits(); const emit = defineEmits();


onMounted(() => {
companySearch()
})

openSearchModel = computed(() => { openSearchModel = computed(() => {
return store.state.openSearchModel; return store.state.openSearchModel;
}) })




interface listType { interface listType {
expired : Number | 0,
status : Number | 0
company_id : Number | 0,
} }


commomParams.value.search = commomParams.value.search as listType; commomParams.value.search = commomParams.value.search as listType;
commomParams.value.search.company_id = 0;
watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
commomParams.value.search.company_id = null;
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search);
hideSearch()
} }


const onClose = () => { const onClose = () => {
clearSearch() clearSearch()
hideSearch() hideSearch()
} }

// 选择企业
let company_list = ref<Object[]>([])
const companySearch = (val : Object) => {
getCompanyList(val).then((res : object) => {
const data = res.data.list.map((item : object) => ({
label: item.full_name,
value: item.id,
}));
company_list.value = data;
})
}
const getCompanyValue = (val : Object) => {
commomParams.value.search.company_id = val.key;
getData()
}
</script> </script>


<style> <style>

+ 4
- 2
src/views/company/list/add/add.d.ts Zobrazit soubor

declare namespace companyListType {
declare namespace CompanyListType {
type addrFormType = { type addrFormType = {
full_name ?: String, full_name ?: String,
registration_number ?: String, registration_number ?: String,
license_status : '', license_status : '',
login_name ?: String, login_name ?: String,
login_pwd ?: String, login_pwd ?: String,
company_photos ?: Object[]
company_photos ?: Object[],
longitude?: Number,
latitude?: Number,
} }
type addOtherFormType = { type addOtherFormType = {

+ 26
- 15
src/views/company/list/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" title="新增企业" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" title="新增企业" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 6}" labelAlign="right">
<a-form :model="createForm" layout="vertical">
<a-steps :current="current" :items="steps"></a-steps> <a-steps :current="current" :items="steps"></a-steps>
<div class="steps-content"> <div class="steps-content">
<div v-show="current == 0"> <div v-show="current == 0">
</a-col> </a-col>
<a-col span="12"> <a-col span="12">
<a-form-item required label="成立日期" name="establishment_date"> <a-form-item required label="成立日期" name="establishment_date">
<a-date-picker v-model:value="addOtherForm.chengli_date" :disabled-date="disabledDate"
<a-date-picker v-model:value="addOtherForm.chengli_date" :disabled-date="disabledDateFront"
@Change="establishmentDateChange" style="width: 100%;" /> @Change="establishmentDateChange" style="width: 100%;" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-col> </a-col>
<a-col span="12"> <a-col span="12">
<a-form-item label="选择经度"> <a-form-item label="选择经度">
<a-input v-model:value="createForm.address" placeholder="选择经度" disabled/>
<a-input v-model:value="createForm.longitude" placeholder="选择经度" disabled/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="12"> <a-col span="12">
<a-form-item label="选择纬度"> <a-form-item label="选择纬度">
<a-input v-model:value="createForm.address" placeholder="选择纬度" disabled/>
<a-input v-model:value="createForm.latitude" placeholder="选择纬度" disabled/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item label="选择经纬度" :label-col="{span: 0}">
<v-map @getLoc="getLoc"></v-map>
<a-form-item label="选择经纬度">
<a-switch v-model:checked="showMap"> </a-switch>
<div v-if="showMap">
<v-map @getLoc="getLoc"></v-map>
</div>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="12"> <a-col span="12">
<a-input v-model:value="createForm.address" placeholder="请输入详细地址" /> <a-input v-model:value="createForm.address" placeholder="请输入详细地址" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="12"> <a-col span="12">
<a-form-item label="所属行业"> <a-form-item label="所属行业">
<a-c-cascader :dict="2004" @saveCascader="industrySave" placeholder="请选择所属行业" <a-c-cascader :dict="2004" @saveCascader="industrySave" placeholder="请选择所属行业"
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item label="企业简介" :label-col="{span: 0}">
<a-form-item label="企业简介" >
<QuillEditor theme="snow" :options="options" toolbar="full" <QuillEditor theme="snow" :options="options" toolbar="full"
v-model:content="addOtherForm.content" @update:content="onEditorUpdate($event)" v-model:content="addOtherForm.content" @update:content="onEditorUpdate($event)"
contentType="html" /> contentType="html" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item required label="企业相册" :label-col="{span: 0}">
<a-form-item required label="企业相册" >
<upload-one upload_txt="上传企业相册" @uploadSuccess="uploadSuccess" <upload-one upload_txt="上传企业相册" @uploadSuccess="uploadSuccess"
:success_image="addOtherForm.company_photo_img" images_length="5" :image_type="3" :success_image="addOtherForm.company_photo_img" images_length="5" :image_type="3"
:images_list="addOtherForm.company_photos" :images_list="addOtherForm.company_photos"
import { EyeTwoTone, EyeInvisibleOutlined } from '@ant-design/icons-vue'; import { EyeTwoTone, EyeInvisibleOutlined } from '@ant-design/icons-vue';
import { steps, dataForm, otherDataForm, reset } from '@/views/company/list/add/data.js'; import { steps, dataForm, otherDataForm, reset } from '@/views/company/list/add/data.js';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
let { store, openAddModel, hideModal, dayjs, disabledDate, richOption, message, imageprefix } = useCommon();
let { store, openAddModel, hideModal, dayjs, disabledDateFront, richOption, message, imageprefix } = useCommon();
const dayjsRef = ref(dayjs); const dayjsRef = ref(dayjs);
const emit = defineEmits(); const emit = defineEmits();
let props = defineProps(['edit_record']); let props = defineProps(['edit_record']);
current.value--; current.value--;
}; };


let createForm = ref<companyListType.addFormType>(dataForm)
let addOtherForm = ref<companyListType.addOtherFormType>(otherDataForm)
let createForm = ref<CompanyListType.addFormType>(dataForm)
let addOtherForm = ref<CompanyListType.addOtherFormType>(otherDataForm)


// 上传图片 // 上传图片
// 企业照片 // 企业照片
} }
// 企业相册 // 企业相册
const uploadSuccess = (data : Object) => { const uploadSuccess = (data : Object) => {
addOtherForm.value.company_photo_img = imageprefix + data
addOtherForm.value.company_photo_img.push(`imageprefix + data`)
createForm.value.company_photos.push({ photo: data }) createForm.value.company_photos.push({ photo: data })
} }
const delImageAfter = (data : Object[]) => { const delImageAfter = (data : Object[]) => {
createForm.value.district = data.arr1[2] ? data.arr1[2] : 0; createForm.value.district = data.arr1[2] ? data.arr1[2] : 0;
createForm.value.street = data.arr1[3] ? data.arr1[3] : 0; createForm.value.street = data.arr1[3] ? data.arr1[3] : 0;
} }
let showMap = ref<Boolean>(false);
// 经纬度
const getLoc = (mapData : Object) => {
createForm.value.address = mapData.poiaddress;
createForm.value.longitude = mapData.latlng.lng;
createForm.value.latitude = mapData.latlng.lat;
showMap.value = false;
}


// 所属行业 industrySave // 所属行业 industrySave
const industrySave = (data) => { const industrySave = (data) => {
} }
let newVal = res.data; let newVal = res.data;
addOtherForm.value = { addOtherForm.value = {
chengli_date: dayjsRef.value(newVal.establishment_date),
chengli_date: newVal.establishment_date ? dayjsRef.value(newVal.establishment_date) : '',
content: newVal.introduction, content: newVal.introduction,
photo_img: imageprefix + newVal.photo, photo_img: imageprefix + newVal.photo,
license_img: imageprefix + newVal.photo, license_img: imageprefix + newVal.photo,
company_photos: addOtherForm.value.company_photos, company_photos: addOtherForm.value.company_photos,
company_address_cascader: newVal.province_name + newVal.city_name + newVal.district_name + newVal.street_name,
company_address_cascader: newVal.province_name ? [newVal.province , newVal.city , newVal.district , newVal.street] : [],
company_industry_cascader: newVal.industry_text, company_industry_cascader: newVal.industry_text,
company_nature_cascader: newVal.nature_text, company_nature_cascader: newVal.nature_text,
} }

+ 6
- 2
src/views/company/list/add/data.ts Zobrazit soubor

license_path: '', license_path: '',
license_status: 1, license_status: 1,
login_pwd: '', login_pwd: '',
company_photos: []
company_photos: [],
longitude: 0,
latitude: 0
} }


export let otherDataForm = { export let otherDataForm = {
license_path: '', license_path: '',
license_status: 1, license_status: 1,
login_pwd: '', login_pwd: '',
company_photos: []
company_photos: [],
longitude: 0,
latitude: 0
}; };
otherDataForm = { otherDataForm = {
chengli_date: '', chengli_date: '',

+ 0
- 14
src/views/company/list/columns/index.ts Zobrazit soubor

title: '会员状态', title: '会员状态',
dataIndex: 'member_status_text', dataIndex: 'member_status_text',
width: 100 width: 100
},{
title: '操作',
dataIndex: 'code',
width: 100
},
{
title: '招聘会',
dataIndex: 'description',
width: 100
},
{
title: '开通状态',
dataIndex: 'description',
width: 100
}, },
{ {
title: '企业照片', title: '企业照片',

+ 2
- 3
src/views/company/list/index.vue Zobrazit soubor

import { getCompanyList } from '@/apis/models'; import { getCompanyList } from '@/apis/models';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
import { cols } from '@/views/company/list/columns'; import { cols } from '@/views/company/list/columns';
import { message } from 'ant-design-vue';
let { store, commomParams, showModal, showOtherModal1, imageprefix } = useCommon();
let { store, commomParams, showModal, showOtherModal1, imageprefix, message } = useCommon();
let loading = ref<Boolean>(true); let loading = ref<Boolean>(true);
onMounted(() => { onMounted(() => {
getData(commomParams.value.search); getData(commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
} }

+ 42
- 12
src/views/company/list/search/index.vue Zobrazit soubor

</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="会员类型" v-model:value="commomParams.search.member_type" placeholder="请输入会员类型" @keyup.enter="getData"/>
<a-select v-model:value="commomParams.search.member_type" placeholder="请选择会员类型" @change="memberTypeChange">
<a-select-option :value="0">全部</a-select-option>
<a-select-option :value="1">试用申请中</a-select-option>
<a-select-option :value="2">试用正式</a-select-option>
<a-select-option :value="3">普通申请中</a-select-option>
<a-select-option :value="4">普通正式</a-select-option>
<a-select-option :value="5">VIP申请中</a-select-option>
<a-select-option :value="6">VIP正式</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="会员状态" v-model:value="commomParams.search.member_status" placeholder="请输入会员状态" @keyup.enter="getData"/>
<a-select v-model:value="commomParams.search.member_status" placeholder="请选择会员状态" @change="memberStatusChange">
<a-select-option :value="0">全部</a-select-option>
<a-select-option :value="1">待审</a-select-option>
<a-select-option :value="2">正常</a-select-option>
<a-select-option :value="3">到期</a-select-option>
<a-select-option :value="4">推荐</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="开通状态" v-model:value="commomParams.search.status" placeholder="请输入开通状态" @keyup.enter="getData"/>
<a-select v-model:value="commomParams.search.status" placeholder="请选择开通状态" @change="statusChange">
<a-select-option :value="0">全部</a-select-option>
<a-select-option :value="1">开启</a-select-option>
<a-select-option :value="2">关闭</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
</a-drawer> </a-drawer>
commomParams.value.search = commomParams.value.search as listType; commomParams.value.search = commomParams.value.search as listType;
commomParams.value.search.login_name = ''; commomParams.value.search.login_name = '';
commomParams.value.search.id = 0; commomParams.value.search.id = 0;
commomParams.value.search.member_type = '';
commomParams.value.search.member_status = 0;
commomParams.value.search.status = 0;
commomParams.value.search.member_type = null;
commomParams.value.search.member_status = null;
commomParams.value.search.status = null;


watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search); emit('clearData', commomParams.value.search);
hideSearch()
} }
const onClose = () => { const onClose = () => {
clearSearch() clearSearch()
hideSearch() hideSearch()
} }
const memberTypeChange = (val) => {
getData()
}
const memberStatus = (val) => {
getData()
}
const statusChange = (val) => {
getData()
}
</script> </script>


<style> <style>

+ 41
- 4
src/views/company/position/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" title="职位信息" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" title="职位信息" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="60%" style="top: 20px"> @cancel="cancelModal" width="60%" style="top: 20px">
<a-form :model="createForm" labelAlign="right">
<a-form :model="createForm" layout="vertical">
<a-steps :current="current" :items="steps"></a-steps> <a-steps :current="current" :items="steps"></a-steps>
<div class="steps-content"> <div class="steps-content">
<div v-show="current == 0"> <div v-show="current == 0">
<a-col span="24"> <a-col span="24">
<a-form-item required label="职位类别"> <a-form-item required label="职位类别">
<a-shujilian :dict="2004" placeholder="职位类别(最多三个,多选只取前三)" @saveTreeNode="jobTypeChange" <a-shujilian :dict="2004" placeholder="职位类别(最多三个,多选只取前三)" @saveTreeNode="jobTypeChange"
:select_content="createForm.job_type"></a-shujilian>
:tree_content="createForm.job_type"></a-shujilian>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item required label="工作区域"> <a-form-item required label="工作区域">
<a-shujilian :dict="2009" placeholder="工作区域(最多四个,多选只取前四)" <a-shujilian :dict="2009" placeholder="工作区域(最多四个,多选只取前四)"
@saveTreeNode="jobAddressChange" @saveTreeNode="jobAddressChange"
:select_content="createForm.job_location"></a-shujilian>
:tree_content="createForm.job_location"></a-shujilian>
</a-form-item> </a-form-item>
</a-col> </a-col>


openAddModel = computed(() => { openAddModel = computed(() => {
return store.state.openAddModel; return store.state.openAddModel;
}) })
const addToLocationArray = (data) => {
let locationArray = [];
if (data.location_province !== 0) {
locationArray.push(data.location_province);
}
if (data.location_city !== 0) {
locationArray.push(data.location_city);
}
if (data.location_town !== 0) {
locationArray.push(data.location_town);
}
return locationArray;
}


watch(() => props.edit_record, (newVal1) => { watch(() => props.edit_record, (newVal1) => {
if (newVal1) { if (newVal1) {
PostCompanyJobInfo({ id: newVal1.id }).then(res => { PostCompanyJobInfo({ id: newVal1.id }).then(res => {
let newVal = res.data;
let resData = res.data;
createForm.value = intersectionAlike(createForm.value, res.data) createForm.value = intersectionAlike(createForm.value, res.data)
createForm.value.id = resData.id;
addOtherForm.value = {
department_name: resData.department_id,
describe_content: resData.describe_text,
daoqi_date: dayjsRef.value(resData.disabled_date),
pay_range_cascader: resData.pay_range,
shisu_select: resData.shisu,
holidays_select: resData.holidays,
company_jiguan_cascader: [resData.household_province, resData.household_city],
company_suozaidi_cascader: addToLocationArray(resData)
}
if (resData.fulltime == 1) {
addOtherForm.value.job_nature = 1
} else if (resData.parttime == 1) {
addOtherForm.value.job_nature = 2
} else if (resData.casual == 1) {
addOtherForm.value.job_nature = 3
} else if (resData.practical == 1) {
addOtherForm.value.job_nature = 4
} else if (resData.campus == 1) {
addOtherForm.value.job_nature = 5
}
}) })
} }
}) })

+ 1
- 1
src/views/company/position/index.vue Zobrazit soubor

page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
} }

+ 30
- 10
src/views/company/position/search/index.vue Zobrazit soubor

<a-row :gutter="[10]"> <a-row :gutter="[10]">
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="职位名称" v-model:value="commomParams.search.expired"
placeholder="请输入企业名称" />
<a-input addon-before="职位名称" v-model:value="commomParams.search.keyword"
placeholder="请输入职位名称" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="登录名称" v-model:value="commomParams.search.status" placeholder="请输入登录名称" />
<a-select v-model:value="commomParams.search.expired" placeholder="请选择过期状态" @change="expiredChange">
<a-select-option :value="0">全部</a-select-option>
<a-select-option :value="1">未过期</a-select-option>
<a-select-option :value="2">已过期</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col span="24">
<a-form-item>
<a-select v-model:value="commomParams.search.status" placeholder="请选择职位状态" @change="statusChange">
<a-select-option :value="0">全部</a-select-option>
<a-select-option :value="1">开启</a-select-option>
<a-select-option :value="2">关闭</a-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
</a-drawer> </a-drawer>
} }


commomParams.value.search = commomParams.value.search as listType; commomParams.value.search = commomParams.value.search as listType;
commomParams.value.search.expired = 1;
commomParams.value.search.status = 0;
commomParams.value.search.expired = null;
commomParams.value.search.status = null;


watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })
const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'dsec',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search); emit('clearData', commomParams.value.search);
clearSearch() clearSearch()
hideSearch() hideSearch()
} }
const expiredChange = (val) => {
getData()
}
const statusChange = (val) => {
getData()
}
</script> </script>


<style> <style>

+ 1
- 1
src/views/company/vip/add/add.d.ts Zobrazit soubor

declare namespace companyVipType {
declare namespace CompanyVipType {
type addFormType = { type addFormType = {
id ?: Number, id ?: Number,
probation ?: Number, probation ?: Number,

+ 4
- 4
src/views/company/vip/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" title="修改VIP信息" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" title="修改VIP信息" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" labelAlign="right">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item label="企业名称" name="full_name"> <a-form-item label="企业名称" name="full_name">
</a-col> </a-col>
<a-col span="12"> <a-col span="12">
<a-form-item label="会员到期时间" name="end_date"> <a-form-item label="会员到期时间" name="end_date">
<a-date-picker v-model:value="addOtherForm.jieshu_date"
<a-date-picker v-model:value="addOtherForm.jieshu_date" :disabled-date="disabledDate"
@Change="endDateChange" style="width: 100%;" /> @Change="endDateChange" style="width: 100%;" />
</a-form-item> </a-form-item>
</a-col> </a-col>
const emit = defineEmits(); const emit = defineEmits();
let props = defineProps(['edit_record']); let props = defineProps(['edit_record']);


let createForm = ref<companyVipType.addFormType>(dataForm)
let addOtherForm = ref<companyVipType.addOtherFormType>(otherDataForm)
let createForm = ref<CompanyVipType.addFormType>(dataForm)
let addOtherForm = ref<CompanyVipType.addOtherFormType>(otherDataForm)


// 时间选择 // 时间选择
const startDateChange = (val) => { const startDateChange = (val) => {

+ 1
- 1
src/views/company/vip/index.vue Zobrazit soubor

page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
} }

+ 6
- 12
src/views/company/vip/search/index.vue Zobrazit soubor

<a-row :gutter="[10,10]"> <a-row :gutter="[10,10]">
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="企业名称" v-model:value="commomParams.search.full_name"
placeholder="请输入企业名称" />
<a-input addon-before="企业名称" v-model:value="commomParams.search.keyword"
placeholder="请输入企业名称" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
return store.state.openSearchModel; return store.state.openSearchModel;
}) })


interface listType {
full_name ?: String
}

commomParams.value.search = commomParams.value.search as listType;
commomParams.value.search.full_name = '';


watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search); emit('clearData', commomParams.value.search);

+ 0
- 1
src/views/feedback/list/index.vue Zobrazit soubor

<template> <template>
<list-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></list-search> <list-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></list-search>
<a-c-operation @refresh="clearData"> <a-c-operation @refresh="clearData">
</a-c-operation> </a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">

+ 7
- 5
src/views/feedback/list/search/index.vue Zobrazit soubor

<a-row :gutter="[10]"> <a-row :gutter="[10]">
<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="配置项名称" v-model:value="commomParams.search.keyword"
placeholder="请输入配置项名称" />
<a-input addon-before="关键字" v-model:value="commomParams.search.keyword"
placeholder="请输入关键字" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>






watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);
sortby: 'asc', sortby: 'asc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search);
hideSearch()
} }


const onClose = () => { const onClose = () => {

+ 16
- 9
src/views/information/article/add/add.d.ts Zobrazit soubor

declare namespace accountType {
type addAccountType = {
mobile ?: String,
password: String,
repassword: String,
nickname: String,
avatar: String,
email: String,
roleids: String,
declare namespace InformationArticleType {
type addFormType = {
title?: String,
cover_img?: String,
doc_url?: String,
section_id?: Number,
content?: String,
stick_top?: Number,
hot?: Number,
author?: String,
}
type addOtherFormType = {
name?: String,
content?: String,
} }
} }

+ 6
- 4
src/views/information/article/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 2}" labelAlign="right" style="margin-top: 20px;">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item required label="文章标题" name="title"> <a-form-item required label="文章标题" name="title">
const options = ref(richOption) const options = ref(richOption)
let showUplaod = ref<Boolean>(false) let showUplaod = ref<Boolean>(false)


let createForm = ref<companyDepartmentType.addFormType>(dataForm)
let addOtherForm = ref<companyDepartmentType.addOtherFormType>(otherDataForm)
let createForm = ref<InformationArticleType.addFormType>(dataForm)
let addOtherForm = ref<InformationArticleType.addOtherFormType>(otherDataForm)




onMounted(() => { onMounted(() => {
cover_img: newVal.cover_img, cover_img: newVal.cover_img,
section_id: newVal.section_id, section_id: newVal.section_id,
content: newVal.content, content: newVal.content,
author: newVal.author
author: newVal.author,
stick_top:newVal.stick_top,
hot: newVal.hot,
} }
} else { } else {
title.value = '新增文章'; title.value = '新增文章';

+ 4
- 4
src/views/information/article/search/index.vue Zobrazit soubor

<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="文章" v-model:value="commomParams.search.keyword" <a-input addon-before="文章" v-model:value="commomParams.search.keyword"
placeholder="请输入文章" />
placeholder="请输入文章" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
return store.state.openSearchModel; return store.state.openSearchModel;
}) })


watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);

+ 11
- 8
src/views/information/section/add/add.d.ts Zobrazit soubor

declare namespace accountType {
type addAccountType = {
declare namespace InformationSectionType {
type addFormType = {
mobile ?: String, mobile ?: String,
password: String,
repassword: String,
nickname: String,
avatar: String,
email: String,
roleids: String,
name ?: String,
cover_img ?: String,
parent_id ?: Number,
description ?: String,
display ?: Number,
}
type addOtherFormType = {
name?: String,
} }
} }

+ 12
- 10
src/views/information/section/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 2}" labelAlign="right" style="margin-top: 20px;">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item required label="栏目名称" name="name"> <a-form-item required label="栏目名称" name="name">
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col span="24"> <a-col span="24">
<a-form-item label="上级栏目" name="parent_id">
<a-form-item label="上级栏目">
<search-select placeholder="请选择上级栏目" :list="section_list" :select_value="addOtherForm.name" <search-select placeholder="请选择上级栏目" :list="section_list" :select_value="addOtherForm.name"
@searchData="sectionSearch" @getSelectValue="getSectionValue" @searchData="sectionSearch" @getSelectValue="getSectionValue"
:select_disabled="false"></search-select> :select_disabled="false"></search-select>
import { addSection, updateSection, listSection } from '@/apis/models'; import { addSection, updateSection, listSection } from '@/apis/models';
import { dataForm, otherDataForm, reset } from '@/views/information/section/add/data.ts'; import { dataForm, otherDataForm, reset } from '@/views/information/section/add/data.ts';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
let { store, openAddModel, hideModal, message } = useCommon();
let { store, openAddModel, hideModal, message, imageprefix } = useCommon();
const emit = defineEmits(); const emit = defineEmits();
let props = defineProps(['edit_record']); let props = defineProps(['edit_record']);
let title = ref<String>('新增栏目/频道'); let title = ref<String>('新增栏目/频道');
let selectDisabled = ref<Boolean>(false) let selectDisabled = ref<Boolean>(false)
let success_img = ref<String>('') let success_img = ref<String>('')


let createForm = ref<companyDepartmentType.addFormType>(dataForm)
let addOtherForm = ref<companyDepartmentType.addOtherFormType>(otherDataForm)
let createForm = ref<InformationSectionType.addFormType>(dataForm)
let addOtherForm = ref<InformationSectionType.addOtherFormType>(otherDataForm)




onMounted(() => { onMounted(() => {
sectionSearch({ page: 1, pagesize: 10 })
sectionSearch({ page: 1, pagesize: 100 })
}) })


// 上传图片 // 上传图片
const uploadSuccess = (data : Object) => { const uploadSuccess = (data : Object) => {
success_img.value = "http://114.132.85.7:8894" + data
success_img.value = imageprefix + data
createForm.value.cover_img = data createForm.value.cover_img = data
} }




const resetForm = () => { const resetForm = () => {
addOtherForm.value = reset().otherDataForm; addOtherForm.value = reset().otherDataForm;
console.log( addOtherForm.value)
createForm.value = reset().dataForm; createForm.value = reset().dataForm;
} }
const cancelModal = () => { const cancelModal = () => {
emit('closeAdd');
resetForm(); resetForm();
hideModal(); hideModal();
emit('closeAdd');
} }




}) })


watch(() => props.edit_record, (newVal) => { watch(() => props.edit_record, (newVal) => {
sectionSearch({ page: 1, pagesize: 100 })
if (newVal) { if (newVal) {
title.value = '编辑栏目/频道'; title.value = '编辑栏目/频道';
addOtherForm.value = { addOtherForm.value = {
name: ''
name: newVal.parent_id == -1 ? '' : newVal.parent_id
} }
success_img.value = newVal.cover_img ? "http://114.132.85.7:8894" + newVal.cover_img : ''
success_img.value = newVal.cover_img ? imageprefix + newVal.cover_img : ''
createForm.value = { createForm.value = {
id: newVal.id, id: newVal.id,
name: newVal.name, name: newVal.name,

+ 2
- 2
src/views/information/section/add/data.ts Zobrazit soubor

} }


export let otherDataForm = { export let otherDataForm = {
name: '',
name: null,
} }


export const reset = () => { export const reset = () => {
display: 1 display: 1
}; };
otherDataForm = { otherDataForm = {
name: '',
name: null,
} }


return { dataForm, otherDataForm } return { dataForm, otherDataForm }

+ 13
- 10
src/views/information/section/index.vue Zobrazit soubor

<a-c-operation @refresh="clearData"></a-c-operation> <a-c-operation @refresh="clearData"></a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #image="{ record }">
<image-container :need="true" :imgObj="{src: imageprefix + record.cover_img,width: '50px',height: '50px', mode: 'fill'}"></image-container>
</template>
<template #default="{ record }"> <template #default="{ record }">
<a-row :gutter="10"> <a-row :gutter="10">
<a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col> <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col>
<a-popconfirm title="是否删除该栏目/频道?" @confirm="delOneRole(record.id)">
<a-popconfirm title="是否删除该栏目/频道?" @confirm="del(record.id)">
<a-col><a-button danger size="small" primary>删除</a-button></a-col> <a-col><a-button danger size="small" primary>删除</a-button></a-col>
</a-popconfirm> </a-popconfirm>
</a-row> </a-row>
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
import { cols } from '@/views/information/section/columns'; import { cols } from '@/views/information/section/columns';
import { message } from 'ant-design-vue'; import { message } from 'ant-design-vue';
let { store, commomParams, showModal, showOtherModal1 } = useCommon();
let { store, commomParams, showModal, showOtherModal1, imageprefix } = useCommon();
let loading = ref<Boolean>(true); let loading = ref<Boolean>(true);
onMounted(() => { onMounted(() => {
getData(commomParams.value.search); getData(commomParams.value.search);
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
getData(); getData();
} }


// 删除 // 删除
// const delOneRole = (id: number) => {
// commomParams.value.delRecord = { id: id };
// delSection(commomParams.value.delRecord).then(res => {
// message.success('删除成功');
// getData();
// })
// }
const del = (id: number) => {
commomParams.value.delRecord = { id: id };
delSection(commomParams.value.delRecord).then(res => {
message.success('删除成功');
getData();
})
}
</script> </script>


<style lang="less" scoped> <style lang="less" scoped>

+ 1
- 1
src/views/information/section/search/index.vue Zobrazit soubor

<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="栏目/频道" v-model:value="commomParams.search.keyword" <a-input addon-before="栏目/频道" v-model:value="commomParams.search.keyword"
placeholder="请输入栏目/频道" />
placeholder="请输入栏目/频道" @keyup.enter="getData" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>

+ 2
- 2
src/views/jobFair/list/add-company/data.ts Zobrazit soubor

} }


export let otherDataForm = { export let otherDataForm = {
full_name: ""
full_name: null
} }


export const reset = () => { export const reset = () => {
status: 1, status: 1,
}; };
otherDataForm = { otherDataForm = {
full_name: ""
full_name: null
} }


return { dataForm, otherDataForm } return { dataForm, otherDataForm }

+ 1
- 1
src/views/jobFair/list/add/add.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openAddModel" :title="title" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="50%"> @cancel="cancelModal" width="50%">
<a-form :model="createForm" :label-col="{span: 4}" labelAlign="right" style="margin-top: 20px;">
<a-form :model="createForm" layout="vertical">
<a-row gutter="20"> <a-row gutter="20">
<a-col span="24"> <a-col span="24">
<a-form-item required label="招聘会主题" name="title"> <a-form-item required label="招聘会主题" name="title">

+ 2
- 1
src/views/jobFair/list/columns/index.ts Zobrazit soubor

dataIndex: 'open_date' dataIndex: 'open_date'
}, { }, {
title: '开通状态', title: '开通状态',
dataIndex: 'status'
dataIndex: 'status',
slots: { customRender: 'status' },
}, { }, {
title: '操作', title: '操作',
dataIndex: 'operation', dataIndex: 'operation',

+ 2
- 1
src/views/jobFair/list/company/columns.ts Zobrazit soubor

dataIndex: 'nature' dataIndex: 'nature'
}, { }, {
title: '审核状态', title: '审核状态',
dataIndex: 'status'
dataIndex: 'status',
slots: { customRender: 'status' },
},{ },{
title: '操作', title: '操作',
dataIndex: 'operation', dataIndex: 'operation',

+ 4
- 0
src/views/jobFair/list/company/index.vue Zobrazit soubor

<a-modal v-model:visible="showCompanyModel" title="查看参加招聘会的企业" @cancel="cancelModal" width="80%" :footer="null"> <a-modal v-model:visible="showCompanyModel" title="查看参加招聘会的企业" @cancel="cancelModal" width="80%" :footer="null">
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #status="{ record }">
<a-tag color="green" v-if="record.status == 2">通过</a-tag>
<a-tag color="red" v-if="record.status == 3">不通过</a-tag>
</template>
<template #default="{ record }"> <template #default="{ record }">
<a-row :gutter="10"> <a-row :gutter="10">
<template v-if="record.status == 1"> <template v-if="record.status == 1">

+ 4
- 0
src/views/jobFair/list/index.vue Zobrazit soubor

<a-c-operation @refresh="clearData"></a-c-operation> <a-c-operation @refresh="clearData"></a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #status="{ record }">
<a-tag color="green" v-if="record.status == 1">进行中</a-tag>
<a-tag color="red" v-if="record.status == 2">已结束</a-tag>
</template>
<template #default="{ record }"> <template #default="{ record }">
<a-row :gutter="10"> <a-row :gutter="10">
<a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑/审核</a-button></a-col> <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑/审核</a-button></a-col>

+ 4
- 4
src/views/jobFair/list/search/index.vue Zobrazit soubor

<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="招聘会名称" v-model:value="commomParams.search.keyword" <a-input addon-before="招聘会名称" v-model:value="commomParams.search.keyword"
placeholder="请输入招聘会名称" />
placeholder="请输入招聘会名称" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
return store.state.openSearchModel; return store.state.openSearchModel;
}) })


watch(() => props.search_params, (newVal) => {
emit('searchData', commomParams.value.search)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search); emit('searchData', commomParams.value.search);

+ 54
- 11
src/views/jobSeeker/resume/detail/detail.vue Zobrazit soubor

<template> <template>
<a-modal v-model:visible="openOtherModel_1" title="预览简历" ok-text="提交" cancel-text="取消" @ok="sumbitForm" <a-modal v-model:visible="openOtherModel_1" title="预览简历" ok-text="提交" cancel-text="取消" @ok="sumbitForm"
@cancel="cancelModal" width="40%">
@cancel="cancelModal" width="50%" :footer="null">
<a-spin :spinning="spinning"> <a-spin :spinning="spinning">
<a-typography> <a-typography>
<a-typography-title :level="4">基本资料</a-typography-title>
<a-typography-title :level="4">
<div class="text-decoration">
<div class="text-content">基本资料</div>
</div>
</a-typography-title>
<a-typography-paragraph> <a-typography-paragraph>
<a-row :gutter="[20,20]"> <a-row :gutter="[20,20]">
<a-col span="24"> <a-col span="24">
</a-row> </a-row>
</a-col> </a-col>
<a-col span="4"> <a-col span="4">
<a-image
:src="'https://rcsc-test.jcjob.cn/img'+detail.photo" />
<a-image :src="'https://rcsc-test.jcjob.cn/img'+detail.photo" />
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
</a-row> </a-row>
</a-typography-paragraph> </a-typography-paragraph>
<a-typography-title :level="4">个人简介</a-typography-title>
<a-typography-title :level="4">
<div class="text-decoration">
<div class="text-content">个人简介</div>
</div>
</a-typography-title>
<a-typography-paragraph> <a-typography-paragraph>
<div v-html="detail.description"></div>
<div v-html="detail.introduction"></div>
</a-typography-paragraph> </a-typography-paragraph>
<a-typography-title :level="4">求职期望</a-typography-title>
<a-typography-title :level="4">
<div class="text-decoration">
<div class="text-content">求职期望</div>
</div>
</a-typography-title>
<a-typography-paragraph> <a-typography-paragraph>
<a-row> <a-row>
<a-col span="24"> <a-col span="24">
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
<a-col span="8" v-if="detail.desire_positions">
<a-col span="8" v-if="detail.desire_positions">
<a-row> <a-row>
<a-col span="24" v-for="(item,index) in detail.desire_positions"> <a-col span="24" v-for="(item,index) in detail.desire_positions">
期望职位{{index + 1}}:{{item.level1_txt ? item.level1_txt : ''}}{{item.level2_txt ? item.level2_txt : ''}} 期望职位{{index + 1}}:{{item.level1_txt ? item.level1_txt : ''}}{{item.level2_txt ? item.level2_txt : ''}}
</a-row> </a-row>
</a-typography-paragraph> </a-typography-paragraph>
</a-typography> </a-typography>
<a-typography-title :level="4">专业技能掌握能力</a-typography-title>
<a-typography-title :level="4">

<div class="text-decoration">
<div class="text-content">专业技能掌握能力</div>
</div>
</a-typography-title>
<a-typography-paragraph> <a-typography-paragraph>
<a-row> <a-row>
<a-col span="24"> <a-col span="24">
</a-col> </a-col>
</a-row> </a-row>
</a-typography-paragraph> </a-typography-paragraph>
<a-typography-title :level="4">工作经历</a-typography-title>
<a-typography-title :level="4">
<div class="text-decoration">
<div class="text-content">工作经历</div>
</div>
</a-typography-title>
<a-typography-paragraph> <a-typography-paragraph>
<template v-for="(item,index) in detail.experiences"> <template v-for="(item,index) in detail.experiences">
<a-card :title="item.company_name" style="margin-bottom: 10px;"> <a-card :title="item.company_name" style="margin-bottom: 10px;">
</a-card> </a-card>
</template> </template>
</a-typography-paragraph> </a-typography-paragraph>
<a-typography-title :level="4">教育/培训经历</a-typography-title>
<a-typography-title :level="4">
<div class="text-decoration">
<div class="text-content">教育/培训经历</div>
</div></a-typography-title>
<a-typography-paragraph> <a-typography-paragraph>
<template v-for="(item,index) in detail.trainings"> <template v-for="(item,index) in detail.trainings">
<a-card :title="item.school_or_institution" style="margin-bottom: 10px;"> <a-card :title="item.school_or_institution" style="margin-bottom: 10px;">
padding: 6px; padding: 6px;
// padding-top: 6px; // padding-top: 6px;
} }

.text-decoration {
position: relative;
display: inline-block;
overflow: visible;
}

.text-decoration::before {
content: '';
width: 6px;
height: 22px;
background-color: #4FBE70;
position: absolute;
top: 4px
}

.text-content {
position: relative;
margin-left: 20px;
}
</style> </style>

+ 9
- 9
src/views/jobSeeker/resume/index.vue Zobrazit soubor

<template> <template>
<!-- <a-c-operation @refresh="clearData">
</a-c-operation> -->
<resume-search @searchData="searchData" @clearData="clearData" :search_params="commomParams.search"></resume-search>
<a-c-operation @refresh="clearData" :need_add="false"></a-c-operation>
<a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page" <a-c-table :data="commomParams.table.data" :columns="commomParams.table.columns" :pagination="commomParams.page"
@page="getPage" :loading="loading"> @page="getPage" :loading="loading">
<template #default="{ record }"> <template #default="{ record }">
<a-row :gutter="10"> <a-row :gutter="10">
<!-- <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col> --> <!-- <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col> -->
<a-col><a-button type="primary" size="small" primary @click="detail(record)">预览</a-button></a-col> <a-col><a-button type="primary" size="small" primary @click="detail(record)">预览</a-button></a-col>
<a-popconfirm title="该简历通过审核?" @confirm="pass(record.customer_id)">
<a-popconfirm title="该简历通过审核?" @confirm="pass(record)">
<a-col><a-button type="primary" size="small" primary>通过</a-button></a-col> <a-col><a-button type="primary" size="small" primary>通过</a-button></a-col>
</a-popconfirm> </a-popconfirm>
<a-popconfirm title="该简历不通过审核?" @confirm="unpass(record.customer_id)">
<a-popconfirm title="该简历不通过审核?" @confirm="unpass(record)">
<a-col><a-button type="primary" size="small" primary>不通过</a-button></a-col> <a-col><a-button type="primary" size="small" primary>不通过</a-button></a-col>
</a-popconfirm> </a-popconfirm>
<a-popconfirm title="是否要推送该简历到ES?" @confirm="pushEs(record.customer_id)"> <a-popconfirm title="是否要推送该简历到ES?" @confirm="pushEs(record.customer_id)">
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
} }
// } // }


// 审核 // 审核
const pass = (customer_id) => {
PostJobapplicantUpdate({ id: customer_id, status: 2 }).then(res => {
const pass = (record) => {
PostJobapplicantUpdate({ customer_id: record.customer_id, id: record.id, status: 2 }).then(res => {
message.success('审核通过'); message.success('审核通过');
}) })
} }


const unpass = (customer_id) => {
PostJobapplicantUpdate({ id: customer_id, status: 3 }).then(res => {
const unpass = (record) => {
PostJobapplicantUpdate({ customer_id: record.customer_id, id: record.id, status: 3 }).then(res => {
message.success('审核不通过'); message.success('审核不通过');
}) })
} }

+ 51
- 68
src/views/jobSeeker/resume/search/index.vue Zobrazit soubor

<template> <template>
<a-form :model="commomParams.search">
<a-row :gutter="[10]">
<a-col span="6">
<a-form-item>
<a-input addon-before="企业名称" v-model:value="commomParams.search.full_name" placeholder="请输入企业名称" />
</a-form-item>
</a-col>
<a-col span="6">
<a-form-item>
<a-input addon-before="登录名称" v-model:value="commomParams.search.login_name" placeholder="请输入登录名称" />
</a-form-item>
</a-col>
<a-col span="6">
<a-form-item>
<a-input addon-before="企业ID" v-model:value="commomParams.search.id" placeholder="请输入企业ID" />
</a-form-item>
</a-col>
<a-col span="6">
<a-form-item>
<a-input addon-before="会员类型" v-model:value="commomParams.search.member_type" placeholder="请输入会员类型" />
</a-form-item>

</a-col>
<a-col span="6">
<a-form-item>
<a-input addon-before="会员状态" v-model:value="commomParams.search.member_status" placeholder="请输入会员状态" />
</a-form-item>
</a-col>
<a-col span="6">
<a-form-item>
<a-input addon-before="开通状态" v-model:value="commomParams.search.status" placeholder="请输入开通状态" />
</a-form-item>
</a-col>
<a-col>
<a-form-item>
<a-button type="primary" @click="getData">
搜索
</a-button>
</a-form-item>
</a-col>
<a-col>
<a-form-item>
<a-button danger @click="clearSearch">
清空搜索
</a-button>
</a-form-item>
</a-col>
</a-row>
</a-form>
<a-drawer :width="500" title="搜索" placement="right" :open="openSearchModel" @close="onClose">
<template #extra>
<a-button style="margin-right: 8px" @click="clearSearch">清空搜索</a-button>
<a-button type="primary" @click="getData">搜索</a-button>
</template>
<a-form :model="commomParams.search">
<a-row :gutter="[10]">
<a-col span="24">
<a-form-item>
<a-input addon-before="求职者名称" v-model:value="commomParams.search.keyword" placeholder="请输入求职者名称" @keyup.enter="getData"/>
</a-form-item>
</a-col>
<a-col span="24">
<a-form-item>
<a-select v-model:value="commomParams.search.gender" placeholder="请选择性别" @change="genderChange">
<a-select-option value="">全部</a-select-option>
<a-select-option value="男">男</a-select-option>
<a-select-option value="女">女</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-drawer>
</template> </template>


<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, watch, computed } from 'vue'; import { ref, onMounted, watch, computed } from 'vue';
import { useCommon } from '@/hooks/useCommon'; import { useCommon } from '@/hooks/useCommon';
let { commomParams } = useCommon();
let { store, commomParams, openSearchModel, hideSearch } = useCommon();
let props = defineProps(['search_params']); let props = defineProps(['search_params']);
const emit = defineEmits(); const emit = defineEmits();
openSearchModel = computed(() => {
return store.state.openSearchModel;
})


interface listType { interface listType {
full_name ?: String
login_name ?: String
id : Number | 0,
member_type ?: String
member_status : Number | 0,
status : Number | 0,
gender ?: String
} }


commomParams.value.search = commomParams.value.search as listType; commomParams.value.search = commomParams.value.search as listType;
commomParams.value.search.full_name = '';
commomParams.value.search.login_name = '';
commomParams.value.search.id = 0;
commomParams.value.search.member_type = '';
commomParams.value.search.member_status = 0;
commomParams.value.search.status = 0;
commomParams.value.search.gender = null;


watch(() => props.search_params, (newVal) => {
console.log(newVal)
})
// watch(() => props.search_params, (newVal) => {
// emit('searchData', commomParams.value.search)
// })


const getData = () => { const getData = () => {
emit('searchData', commomParams.value.search)
emit('searchData', commomParams.value.search);
hideSearch()
} }


// 清空搜索 // 清空搜索
page: 1, page: 1,
pagesize: 10, pagesize: 10,
sort: 'id', sort: 'id',
sortby: 'asc',
sortby: 'desc',
keyword: '' keyword: ''
} }
emit('clearData', commomParams.value.search)
emit('clearData', commomParams.value.search);
hideSearch()
}
const onClose = () => {
clearSearch()
hideSearch()
}

const genderChange = (val) => {
getData()
} }
</script> </script>


<style> <style>

+ 1
- 1
src/views/setting/item/search/index.vue Zobrazit soubor

<a-col span="24"> <a-col span="24">
<a-form-item> <a-form-item>
<a-input addon-before="配置项名称" v-model:value="commomParams.search.keyword" <a-input addon-before="配置项名称" v-model:value="commomParams.search.keyword"
placeholder="请输入配置项名称" />
placeholder="请输入配置项名称" @keyup.enter="getData"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>

Načítá se…
Zrušit
Uložit