| import{_ as r,r as s,o as d,c as p,a as e,b as a,w as c,d as l,p as i,e as u}from"./index-99QysjhH.js";const h={},t=o=>(i("data-v-80d1ee2a"),o=o(),u(),o),m={class:"nopage"},f=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),v=t(()=>e("span",{style:{color:"#67C23A"}},"0",-1)),x=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),y=t(()=>e("p",null,"你页面走丢了~",-1));function b(o,k){const n=s("a-button"),_=s("router-link");return d(),p("div",m,[f,v,x,e("div",null,[y,e("p",null,[a(_,{to:"/job/home"},{default:c(()=>[a(n,{type:"primary"},{default:c(()=>[l("返回首页")]),_:1})]),_:1})])])])}const w=r(h,[["render",b],["__scopeId","data-v-80d1ee2a"]]);export{w as default}; | |||||
| import{_ as r,r as s,o as d,c as p,a as e,b as a,w as c,d as l,p as i,e as u}from"./index-NWfeI8Y3.js";const h={},t=o=>(i("data-v-80d1ee2a"),o=o(),u(),o),m={class:"nopage"},f=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),v=t(()=>e("span",{style:{color:"#67C23A"}},"0",-1)),x=t(()=>e("span",{style:{color:"#0074D9"}},"4",-1)),y=t(()=>e("p",null,"你页面走丢了~",-1));function b(o,k){const n=s("a-button"),_=s("router-link");return d(),p("div",m,[f,v,x,e("div",null,[y,e("p",null,[a(_,{to:"/job/home"},{default:c(()=>[a(n,{type:"primary"},{default:c(()=>[l("返回首页")]),_:1})]),_:1})])])])}const w=r(h,[["render",b],["__scopeId","data-v-80d1ee2a"]]);export{w as default}; |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
| <script src="https://map.qq.com/api/gljs?v=1.exp&key=MPBBZ-HUICZ-EGRXB-7AHZI-R4GQZ-QWBSO"></script> | <script src="https://map.qq.com/api/gljs?v=1.exp&key=MPBBZ-HUICZ-EGRXB-7AHZI-R4GQZ-QWBSO"></script> | ||||
| <title>菊城人才网</title> | <title>菊城人才网</title> | ||||
| <script type="module" crossorigin src="/assets/index-99QysjhH.js"></script> | |||||
| <link rel="stylesheet" crossorigin href="/assets/index-zqqQnvu9.css"> | |||||
| <script type="module" crossorigin src="/assets/index-NWfeI8Y3.js"></script> | |||||
| <link rel="stylesheet" crossorigin href="/assets/index-SrxA0nSF.css"> | |||||
| </head> | </head> | ||||
| <body> | <body> | ||||
| <div id="app"></div> | <div id="app"></div> |
| // 反馈 | // 反馈 | ||||
| export const PostFeedbackAdd = postModel(url.FeedbackAdd); // 新增部门 | export const PostFeedbackAdd = postModel(url.FeedbackAdd); // 新增部门 | ||||
| export const PostFeedbackDel = postModel(url.FeedbackDel); // 编辑部门 | export const PostFeedbackDel = postModel(url.FeedbackDel); // 编辑部门 | ||||
| export const GetFeedbackUpdate = getModel(url.FeedbackUpdate); // 部门列表 | |||||
| export const PostFeedbackUpdate = postModel(url.FeedbackUpdate); // 部门列表 | |||||
| export const GetFeedbackList = getModel(url.FeedbackList); // 部门删除 | export const GetFeedbackList = getModel(url.FeedbackList); // 部门删除 | ||||
| export const GetFeedbackDetail = getModel(url.FeedbackDetail); // 已预定招聘会列表 | export const GetFeedbackDetail = getModel(url.FeedbackDetail); // 已预定招聘会列表 | ||||
| CompanyLoginByMobile: String, | CompanyLoginByMobile: String, | ||||
| Jobseekerlogin: String, | Jobseekerlogin: String, | ||||
| JobseekerResetPwd: String, | JobseekerResetPwd: String, | ||||
| // 招聘会 | // 招聘会 | ||||
| RecruitmentBookcompany : String, | RecruitmentBookcompany : String, | ||||
| RecruitmentList : String, | RecruitmentList : String, |
| background-color: #4FBE70 !important; | background-color: #4FBE70 !important; | ||||
| border-color: #4FBE70 !important; | border-color: #4FBE70 !important; | ||||
| } | } | ||||
| </style> | </style> |
| }, | }, | ||||
| { | { | ||||
| title: '应聘职位', | title: '应聘职位', | ||||
| dataIndex: 'job_name', | |||||
| key: 'job_name', | |||||
| dataIndex: 'desired_position_text', | |||||
| key: 'desired_position_text', | |||||
| }, | }, | ||||
| { | { | ||||
| title: '学历', | title: '学历', | ||||
| dataIndex: 'education_txt', | |||||
| key: 'education_txt', | |||||
| dataIndex: 'education_text', | |||||
| key: 'education_text', | |||||
| }, | }, | ||||
| { | { | ||||
| title: '期望工作地', | title: '期望工作地', | ||||
| }, | }, | ||||
| { | { | ||||
| title: '联系方式', | title: '联系方式', | ||||
| dataIndex: 'mobile', | |||||
| key: 'mobile', | |||||
| dataIndex: ['contact', 'mobile'], | |||||
| key: (record: Object) => record.contact.mobile, | |||||
| },{ | },{ | ||||
| title: '操作', | title: '操作', | ||||
| dataIndex: 'operation', | dataIndex: 'operation', |
| <a-menu-item key="1"> | <a-menu-item key="1"> | ||||
| <a-button @click="detail(record)" block>预览简历</a-button> | <a-button @click="detail(record)" block>预览简历</a-button> | ||||
| </a-menu-item> | </a-menu-item> | ||||
| <a-menu-item key="2"> | |||||
| <a-button @click="edit(record)" block>查看联系方式</a-button> | |||||
| </a-menu-item> | |||||
| </a-menu> | </a-menu> | ||||
| </template> | </template> | ||||
| <a-button> | <a-button> |
| <a-row :gutter="20"> | <a-row :gutter="20"> | ||||
| <a-col span="6"> | <a-col span="6"> | ||||
| <a-form-item> | <a-form-item> | ||||
| <a-input-search v-model:value="commomParams.search.keyword" placeholder="请输入求职者" enter-button="搜索" | |||||
| @search="getData" /> | |||||
| <a-input-search v-model:value="commomParams.search.customer_name" placeholder="请输入求职者" | |||||
| enter-button="搜索" @search="getData" /> | |||||
| </a-form-item> | </a-form-item> | ||||
| </a-col> | </a-col> | ||||
| <a-col span="6"> | <a-col span="6"> | ||||
| <a-button type="primary" @click="clearSearch">重置</a-button> | <a-button type="primary" @click="clearSearch">重置</a-button> | ||||
| </a-col> | </a-col> | ||||
| </a-row> | </a-row> | ||||
| </a-form> | |||||
| </a-form> | |||||
| </template> | </template> | ||||
| <script lang="ts" setup> | <script lang="ts" setup> | ||||
| let props = defineProps(['search_params']); | let props = defineProps(['search_params']); | ||||
| const emit = defineEmits(); | const emit = defineEmits(); | ||||
| interface listType { | |||||
| customer_name : String | |||||
| } | |||||
| commomParams.value.search = commomParams.value.search as listType; | |||||
| commomParams.value.search.customer_name = ''; | |||||
| watch(() => props.search_params, (newVal) => { | watch(() => props.search_params, (newVal) => { | ||||
| emit('searchData', commomParams.value.search) | emit('searchData', commomParams.value.search) | ||||
| }) | }) | ||||
| sortby: 'asc', | sortby: 'asc', | ||||
| keyword: '' | keyword: '' | ||||
| } | } | ||||
| commomParams.value.search.customer_name = ''; | |||||
| emit('clearData', commomParams.value.search) | emit('clearData', commomParams.value.search) | ||||
| } | } | ||||
| </script> | </script> | ||||
| <style> | <style> |
| <a-row :gutter="20"> | <a-row :gutter="20"> | ||||
| <a-col span="6"> | <a-col span="6"> | ||||
| <a-form-item> | <a-form-item> | ||||
| <a-select v-model:value="commomParams.search.department_id" @change="departmentChange" | |||||
| placeholder="请进行搜索选择部门" show-search :filter-option="false" label-in-value | |||||
| @search="departmentSearch"> | |||||
| <a-select-option v-for="item in department_list" :key="item.id" :value="item.id" | |||||
| :label="item.name" label-in-value>{{item.name}}</a-select-option> | |||||
| </a-select> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="6"> | |||||
| <a-form-item> | |||||
| <a-select v-model:value="commomParams.search.job_id" @change="jobChange" | |||||
| placeholder="请进行搜索选择职位" show-search :filter-option="false" label-in-value | |||||
| @search="jobSearch"> | |||||
| <a-select-option v-for="item in job_list" :key="item.id" :value="item.id" | |||||
| :label="item.name" label-in-value>{{item.name}}</a-select-option> | |||||
| </a-select> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="6"> | |||||
| <a-form-item> | |||||
| <a-select v-model:value="commomParams.search.status" @change="statusChange" | |||||
| placeholder="简历查看状态"> | |||||
| <a-select-option :key="1">已查看</a-select-option> | |||||
| <a-select-option :key="2">未查看</a-select-option> | |||||
| </a-select> | |||||
| <a-input-search v-model:value="commomParams.search.keyword" placeholder="请输入求职者" enter-button="搜索" | |||||
| @search="getData" /> | |||||
| </a-form-item> | </a-form-item> | ||||
| </a-col> | </a-col> | ||||
| <a-col span="6"> | <a-col span="6"> | ||||
| <a-button type="primary" @click="clearSearch">重置</a-button> | <a-button type="primary" @click="clearSearch">重置</a-button> | ||||
| </a-col> | </a-col> | ||||
| </a-row> | </a-row> | ||||
| </a-form> | |||||
| </a-form> | |||||
| </template> | </template> | ||||
| <script lang="ts" setup> | <script lang="ts" setup> | ||||
| let { commomParams } = useCommon(); | let { commomParams } = useCommon(); | ||||
| let props = defineProps(['search_params']); | let props = defineProps(['search_params']); | ||||
| const emit = defineEmits(); | const emit = defineEmits(); | ||||
| interface listType { | interface listType { | ||||
| department_id : String | |||||
| job_id : String | |||||
| status : String, | |||||
| customer_name : String | customer_name : String | ||||
| } | } | ||||
| commomParams.value.search = commomParams.value.search as listType; | commomParams.value.search = commomParams.value.search as listType; | ||||
| commomParams.value.search.department_id = null; | |||||
| commomParams.value.search.job_id = null; | |||||
| commomParams.value.search.status = null; | |||||
| commomParams.value.search.customer_name = ''; | commomParams.value.search.customer_name = ''; | ||||
| watch(() => props.search_params, (newVal) => { | watch(() => props.search_params, (newVal) => { | ||||
| emit('searchData', commomParams.value.search) | emit('searchData', commomParams.value.search) | ||||
| }) | }) | ||||
| const getData = () => { | const getData = () => { | ||||
| emit('searchData', commomParams.value.search) | emit('searchData', commomParams.value.search) | ||||
| } | } | ||||
| // 清空搜索 | // 清空搜索 | ||||
| const clearSearch = () => { | const clearSearch = () => { | ||||
| commomParams.value.search = { | commomParams.value.search = { | ||||
| sortby: 'asc', | sortby: 'asc', | ||||
| keyword: '' | keyword: '' | ||||
| } | } | ||||
| commomParams.value.search.customer_name = ''; | |||||
| emit('clearData', commomParams.value.search) | emit('clearData', commomParams.value.search) | ||||
| } | } | ||||
| onMounted(() => { | |||||
| departmentSearch() | |||||
| JobSearch() | |||||
| }) | |||||
| // 选择部门 | |||||
| let department_list = ref<Object[]>([]) | |||||
| const departmentSearch = (val) => { | |||||
| GetCompanyDepartmentList({pagesize: 100, keyword: val }).then(res => { | |||||
| department_list.value = res.data.rows; | |||||
| }) | |||||
| } | |||||
| const departmentChange = (val : Object) => { | |||||
| commomParams.value.search.department_id = val.key; | |||||
| getData() | |||||
| } | |||||
| // 选择职位 | |||||
| let job_list = ref<Object[]>([]) | |||||
| const JobSearch = (val) => { | |||||
| PostCompanyJobList({pagesize: 100, keyword: val }).then(res => { | |||||
| job_list.value = res.data.list; | |||||
| }) | |||||
| } | |||||
| const jobChange = (val : Object) => { | |||||
| commomParams.value.search.job_id = val.key; | |||||
| getData() | |||||
| } | |||||
| const statusChange = (val : Object) => { | |||||
| commomParams.value.search.status = val; | |||||
| getData() | |||||
| } | |||||
| </script> | </script> | ||||
| export let dataForm = { | |||||
| name: '', | |||||
| address: '', | |||||
| telephone: '', | |||||
| fax: '', | |||||
| postal: '', | |||||
| email: '', | |||||
| content: '', | |||||
| } | |||||
| export let otherDataForm = { | |||||
| } | |||||
| export const reset = () => { | |||||
| dataForm = { | |||||
| name: '', | |||||
| address: '', | |||||
| telephone: '', | |||||
| fax: '', | |||||
| postal: '', | |||||
| email: '', | |||||
| content: '', | |||||
| }; | |||||
| otherDataForm = { | |||||
| } | |||||
| return { dataForm, otherDataForm } | |||||
| } |
| <template> | <template> | ||||
| <a-form :model="createForm" :label-col="{span: 4}" labelAlign="right"> | |||||
| <a-row gutter="20"> | |||||
| <a-form :model="createForm" layout="vertical" class="resume-form"> | |||||
| <a-row :gutter="20"> | |||||
| <a-col span="12"> | <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-col span="24"> | |||||
| <a-form-item required label="电子邮箱" name="email"> | |||||
| <a-input v-model:value="createForm.email" 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-form-item label="姓名" name="name"> | |||||
| <a-input v-model:value="createForm.name" placeholder="请输入姓名" /> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="12"> | |||||
| <a-form-item label="电话" name="telephone"> | |||||
| <a-input v-model:value="createForm.telephone" placeholder="请输入电话" /> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="12"> | |||||
| <a-form-item label="地址" name="address"> | |||||
| <a-input v-model:value="createForm.address" placeholder="请输入地址" /> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="12"> | |||||
| <a-form-item label="传真" name="fax"> | |||||
| <a-input v-model:value="createForm.fax" placeholder="请输入传真" /> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="12"> | |||||
| <a-form-item label="邮编" name="postal"> | |||||
| <a-input v-model:value="createForm.postal" placeholder="请输入邮编" /> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="12"> | |||||
| <a-form-item label="电子邮箱" name="email"> | |||||
| <a-input v-model:value="createForm.email" placeholder="请输入邮箱" /> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="12"> | |||||
| <a-form-item label="反馈内容" name="content"> | |||||
| <a-input v-model:value="createForm.content" placeholder="请输入反馈内容" /> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col span="24"> | |||||
| <a-flex justify="flex-end"> | |||||
| <a-space> | |||||
| <a-button @click="resetForm" size="large">取消</a-button> | |||||
| <a-button type="primary" @click="sumbitForm" size="large">保存</a-button> | |||||
| </a-space> | |||||
| </a-flex> | |||||
| </a-col> | </a-col> | ||||
| </a-row> | </a-row> | ||||
| </a-form> | </a-form> | ||||
| </template> | </template> | ||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||
| import { ref, onMounted, computed } from 'vue'; | |||||
| let createForm : companyListType.addrFormType = ref({ | |||||
| name: '', | |||||
| company_id: 0, | |||||
| contact: '', | |||||
| phone: '', | |||||
| mobile: '', | |||||
| email: '', | |||||
| import { ref, onMounted, computed, defineProps, watch, defineEmits } from 'vue'; | |||||
| import { PostFeedbackAdd, PostFeedbackUpdate , GetFeedbackDetail } from '@/apis/models'; | |||||
| import { warnToast, successToast } from '@/utils/toastHelper'; | |||||
| import { dataForm, otherDataForm, reset } from '@/components/message/feedback/data.ts'; | |||||
| import { useCommon } from '@/hooks/useCommon'; | |||||
| let { store, message } = useCommon(); | |||||
| let props = defineProps(['edit_id']); | |||||
| const emit = defineEmits(); | |||||
| let createForm = ref(dataForm) | |||||
| onMounted(async () => { | |||||
| }) | }) | ||||
| 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' }, | |||||
| }, | |||||
| ]) | |||||
| const sumbitForm = () => { | |||||
| if (!createForm.value.id) { | |||||
| PostFeedbackAdd(createForm.value).then(res => { | |||||
| successToast('保存成功'); | |||||
| resetForm(); | |||||
| }).catch(err => { | |||||
| }) | |||||
| } else { | |||||
| PostFeedbackUpdate(createForm.value).then(res => { | |||||
| successToast('编辑成功'); | |||||
| resetForm(); | |||||
| }).catch(err => { | |||||
| }) | |||||
| } | |||||
| } | |||||
| const resetForm = () => { | |||||
| createForm.value = reset().dataForm; | |||||
| emit('send') | |||||
| } | |||||
| watch(() => props.edit_id, (newVal) => { | |||||
| if (newVal) { | |||||
| GetFeedbackDetail({ id: newVal }).then(res => { | |||||
| let resData = res.data | |||||
| createForm.value = { | |||||
| id: resData.id, | |||||
| name: resData.name, | |||||
| address: resData.address, | |||||
| telephone: resData.telephone, | |||||
| fax: resData.fax, | |||||
| postal: resData.postal, | |||||
| email: resData.email, | |||||
| content: resData.content, | |||||
| } | |||||
| }) | |||||
| } | |||||
| }, {immediate: true}) | |||||
| </script> | </script> | ||||
| <style scoped lang="less"> | <style scoped lang="less"> | ||||
| border: none !important; | border: none !important; | ||||
| color: #bbb !important; | color: #bbb !important; | ||||
| } | } | ||||
| :deep(.ant-table-thead >tr>th::before) { | :deep(.ant-table-thead >tr>th::before) { | ||||
| display: none !important; | display: none !important; | ||||
| } | } | ||||
| :deep(.ant-table-tbody >tr >td) { | :deep(.ant-table-tbody >tr >td) { | ||||
| border: none !important; | border: none !important; | ||||
| } | } | ||||
| </style> | </style> |
| export const cols = <ColType.type[]>[ | export const cols = <ColType.type[]>[ | ||||
| { | { | ||||
| title: '招聘会名称', | |||||
| dataIndex: 'title' | |||||
| title: '名称', | |||||
| dataIndex: 'name' | |||||
| }, { | }, { | ||||
| title: '地点', | title: '地点', | ||||
| dataIndex: 'address' | dataIndex: 'address' | ||||
| }, { | }, { | ||||
| title: '开始时间', | |||||
| dataIndex: 'open_date' | |||||
| title: '反馈内容', | |||||
| dataIndex: 'content' | |||||
| }, { | }, { | ||||
| title: '开通状态', | |||||
| dataIndex: 'status' | |||||
| title: '反馈时间', | |||||
| dataIndex: 'created_at' | |||||
| }, | }, | ||||
| { | { | ||||
| title: '操作', | title: '操作', |
| @page="getPage" :loading="loading"> | @page="getPage" :loading="loading"> | ||||
| <template #default="{ record }"> | <template #default="{ record }"> | ||||
| <a-row :gutter="20"> | <a-row :gutter="20"> | ||||
| <a-popconfirm title="是否要申请参加该招聘会?" @confirm="applyFor(record.id)"> | |||||
| <a-col><a-button type="primary" size="small">申请</a-button></a-col> | |||||
| </a-popconfirm> | |||||
| <a-popconfirm placement="topLeft" ok-text="关闭" @confirm="confirm"> | |||||
| <template #title> | |||||
| <a-typography> | |||||
| <a-typography-title :level="3">{{detailData.title}}</a-typography-title> | |||||
| <a-typography-paragraph>发布时间:{{detailData.created_at}}</a-typography-paragraph> | |||||
| <a-typography-text > | |||||
| <div v-html="detailData.content"></div> | |||||
| </a-typography-text> | |||||
| </a-typography> | |||||
| </template> | |||||
| <a-button type="primary" size="small" @click="toDetail(record.id)">详情</a-button> | |||||
| <a-col><a-button type="primary" size="small" primary @click="edit(record)">编辑</a-button></a-col> | |||||
| <a-popconfirm title="是否删除该反馈消息?" @confirm="del(record.id)"> | |||||
| <a-col><a-button size="small" danger>删除</a-button></a-col> | |||||
| </a-popconfirm> | </a-popconfirm> | ||||
| </a-row> | </a-row> | ||||
| </template> | </template> | ||||
| </template> | </template> | ||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||
| import { ref, onMounted, computed } from 'vue'; | |||||
| import { GetFeedbackList, PostRecruitmentbookAdd, PostRecruitmentBookcompany } from '@/apis/models'; | |||||
| import { ref, onMounted, computed,defineEmits } from 'vue'; | |||||
| import { GetFeedbackList, PostFeedbackDel } from '@/apis/models'; | |||||
| import { useCommon } from '@/hooks/useCommon'; | import { useCommon } from '@/hooks/useCommon'; | ||||
| import { cols } from '@/components/message/list/columns'; | import { cols } from '@/components/message/list/columns'; | ||||
| import ASearch from '@/components/message/list/search.vue'; | import ASearch from '@/components/message/list/search.vue'; | ||||
| import { warnToast, successToast } from '@/utils/toastHelper'; | import { warnToast, successToast } from '@/utils/toastHelper'; | ||||
| let { commomParams } = useCommon(); | let { commomParams } = useCommon(); | ||||
| let loading = ref<Boolean>(true); | let loading = ref<Boolean>(true); | ||||
| let emit = defineEmits() | |||||
| onMounted(() => { | onMounted(() => { | ||||
| getData(commomParams.value.search); | getData(commomParams.value.search); | ||||
| loading.value = false; | loading.value = false; | ||||
| } | } | ||||
| } | } | ||||
| // 申请 | |||||
| const applyFor = (val) => { | |||||
| PostRecruitmentbookAdd({ recruitment_id: val, company_id: 0}).then(res => { | |||||
| successToast('预定成功') | |||||
| }) | |||||
| } | |||||
| // 详情 | |||||
| let detailData = ref<object>({}) | |||||
| const toDetail = (val) => { | |||||
| PostRecruitmentbookAdd({ id: val}).then(res => { | |||||
| detailData.value = res.data | |||||
| // 修改 | |||||
| const edit = (record : Object) => { | |||||
| emit('toEdit', { record: record }) | |||||
| } | |||||
| // 删除 | |||||
| const del = (id : number) => { | |||||
| commomParams.value.delRecord = { id: id }; | |||||
| PostFeedbackDel(commomParams.value.delRecord).then(res => { | |||||
| message.success('删除成功'); | |||||
| getData(); | |||||
| }) | }) | ||||
| } | } | ||||
| </script> | </script> |
| import AXuanze from '@/components/form/xuanze.vue'; | import AXuanze from '@/components/form/xuanze.vue'; | ||||
| import ALogin from '@/components/form/login.vue'; | import ALogin from '@/components/form/login.vue'; | ||||
| import ImageContainer from '@/components/common/image-container.vue'; | import ImageContainer from '@/components/common/image-container.vue'; | ||||
| import EditButton from '@/components/common/edit-button.vue'; | import EditButton from '@/components/common/edit-button.vue'; | ||||
| import { routesModuleList } from '@/router/dynamic'; | import { routesModuleList } from '@/router/dynamic'; | ||||
| import { routesManageModuleList } from '@/router/manageDynamic'; | import { routesManageModuleList } from '@/router/manageDynamic'; |
| }; | }; | ||||
| // 消息中心 | // 消息中心 | ||||
| // const ManageMessageRoute : AppRouteRecordRaw = { | |||||
| // path: '/manageMessage', | |||||
| // name: 'message', | |||||
| // component: routerList.ManageMessage, | |||||
| // meta: { | |||||
| // title: '消息中心', | |||||
| // icon: HomeOutlined | |||||
| // }, | |||||
| // }; | |||||
| const ManageMessageRoute : AppRouteRecordRaw = { | |||||
| path: '/manageMessage', | |||||
| name: 'message', | |||||
| component: routerList.ManageMessage, | |||||
| meta: { | |||||
| title: '消息中心', | |||||
| icon: HomeOutlined | |||||
| }, | |||||
| }; | |||||
| // 用户管理 | // 用户管理 | ||||
| const ManageUserRoute : AppRouteRecordRaw = { | const ManageUserRoute : AppRouteRecordRaw = { | ||||
| ManageResumeRoute, | ManageResumeRoute, | ||||
| ManageSearchRoute, | ManageSearchRoute, | ||||
| ManageMeetRoute, | ManageMeetRoute, | ||||
| // ManageMessageRoute, | |||||
| ManageMessageRoute, | |||||
| ManageUserRoute | ManageUserRoute | ||||
| ]; | ]; |
| color: #ffffff !important; | color: #ffffff !important; | ||||
| } | } | ||||
| .ant-radio-button-wrapper:hover { | |||||
| /* .ant-radio-button-wrapper:hover { | |||||
| color: #4FBE70 !important; | color: #4FBE70 !important; | ||||
| background: #ffffff !important; | background: #ffffff !important; | ||||
| } */ | |||||
| /* | |||||
| .ant-radio-button-checked { | |||||
| color: #ffffff !important; | |||||
| background: #4FBE70 !important; | |||||
| } */ | |||||
| .ant-checkbox-checked .ant-checkbox-inner { | |||||
| background: #4FBE70 !important; | |||||
| border-color: #4FBE70 !important; | |||||
| } | } | ||||
| .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before { | |||||
| .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before { | |||||
| background-color: none !important; | background-color: none !important; | ||||
| } | } | ||||
| @changeKey="changeKey"></common-left-sider> | @changeKey="changeKey"></common-left-sider> | ||||
| </a-col> | </a-col> | ||||
| <a-col span="20"> | <a-col span="20"> | ||||
| <div style="width: 100%;background-color: #fff;height: calc(100vh - 100px);padding: 10px;border-radius: 8px;"> | |||||
| <div style="width: 100%;background-color: #fff;height: calc(100vh - 100px);padding: 10px;border-radius: 8px;cursor: pointer;"> | |||||
| <download v-if="curKey" :key_id="curKey"></download> | <download v-if="curKey" :key_id="curKey"></download> | ||||
| </div> | </div> | ||||
| </a-col> | </a-col> |
| </a-col> | </a-col> | ||||
| <a-col span="20"> | <a-col span="20"> | ||||
| <div style="width: 100%;background-color: #fff;height: calc(100vh - 100px); overflow: auto; padding: 10px;border-radius: 8px;"> | <div style="width: 100%;background-color: #fff;height: calc(100vh - 100px); overflow: auto; padding: 10px;border-radius: 8px;"> | ||||
| <message-list v-if="curKey == 1"></message-list> | |||||
| <message-feedback v-if="curKey == 2"></message-feedback> | |||||
| <message-list v-if="curKey == 1" @toEdit="toEdit"></message-list> | |||||
| <message-feedback :edit_id="edit_id" v-if="curKey == 2" @send="send"></message-feedback> | |||||
| </div> | </div> | ||||
| </a-col> | </a-col> | ||||
| </a-row> | </a-row> | ||||
| let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | let companyList = ref<object[]>([{}, {}, {}, {}, {}, {}]) | ||||
| let menu_list = ref([{ title: '意见反馈列表', key: 1 },{ title: '意见反馈', key: 2}]) | let menu_list = ref([{ title: '意见反馈列表', key: 1 },{ title: '意见反馈', key: 2}]) | ||||
| let curKey = ref<Number>(1) | let curKey = ref<Number>(1) | ||||
| let selectedKeys = ref<Number[]>([1]) | |||||
| const changeKey = (data) => { | const changeKey = (data) => { | ||||
| curKey.value = data.key; | curKey.value = data.key; | ||||
| } | } | ||||
| let edit_id = ref<Number>(0) | |||||
| const toEdit = (data) => { | |||||
| curKey.value = 2; | |||||
| selectedKeys.value = [2] | |||||
| edit_id.value = data.record.id | |||||
| } | |||||
| const send = () => { | |||||
| curKey.value = 1; | |||||
| selectedKeys.value = [1] | |||||
| } | |||||
| </script> | </script> | ||||
| <style> | <style> |