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> |