123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- import Vue from 'vue';
- import Vuex from 'vuex';
- import _ from 'lodash';
- Vue.use(Vuex);
- const api = {
- fairs: '/api/jobs/fairs',
- faircorps: '/api/jobs/faircorps',
- talks: '/api/jobs/talks',
- infos: '/api/jobs/infos',
- posts: '/api/jobs/posts',
- postsInfo: '/api/jobs/posts/{id}',
- resumesAdd: '/api/jobs/resumes',
- resumes: '/api/jobs/resumes/{id}',
- letters: '/api/jobs/letters',
- lettersInfo: '/api/jobs/letters/{id}',
- userReg: '/api/stud/registers/{id}',
- corpInfo: '/api/corp/corps/{corpid}/info',
- corpBase: '/api/corp/corps/{corpid}',
- corpIdentity: '/api/corp/corps/{corpid}/identity',
- //微信部分
- connection: '/weixin/qrcode/create',
- wxtoken: '/weixin/qrcode/{qrcode}/token',
- studBind: '/api/stud/bind', //post=>query;corpid;body:mobile,wxtoken
- studLogin: '/api/stud/login', //query:type:0=>用户名+密码 account(学号@学校id)+passwd;1-微信(wxtoken)
- dictionary: '/api/code/{type}/items', //type === xzqh:query:level(1/2);parent(无/code)
- findOne: '/api/code/xzqh/findOne', //query:name
- //验证码
- verify: '/adminapi/verify/verify',
- checkVerify: '/adminapi/verify/check_verify',
- };
- export default new Vuex.Store({
- state: {
- user: {},
- },
- mutations: {
- setUser(state, payload) {
- if (payload) {
- state.user = payload;
- sessionStorage.setItem('user', JSON.stringify(payload));
- } else {
- let user = sessionStorage.getItem('user');
- if (user) state.user = JSON.parse(user);
- else return false;
- }
- },
- },
- actions: {
- // 招聘会
- async fairsOperation({ state }, { type, data }) {
- let { skip, limit } = data;
- let result;
- if (type === 'list') {
- data = this.$toUndefined(data);
- let { corpid } = data;
- result = await this.$axios.$get(api.fairs, {}, { corpid: corpid, skip: skip, limit: limit });
- }
- if (type === 'mylist') {
- let { schid, fairid, corpid, status } = data;
- result = await this.$axios.$get(api.faircorps, {}, { schid: schid, fairid: fairid, corpid: corpid, status: status });
- }
- return result;
- },
- //宣讲会
- async talksOperation({ state }, { type, data }) {
- let { skip, limit } = data;
- let result;
- if (type === 'list') {
- data = this.$toUndefined(data);
- let { corpname, schid } = data;
- result = await this.$axios.$get(api.talks, {}, { schid: schid, corpname: corpname, skip: skip, limit: limit });
- }
- return result;
- },
- //在线招聘
- async jobinfoOperation({ state }, { type, data }) {
- let { skip, limit } = data;
- let result;
- if (type === 'list') {
- data = this.$toUndefined(data);
- let { corpid, is_practice, corpname } = data;
- result = await this.$axios.$get(api.infos, {}, { corpid: corpid, is_practice: is_practice, corpname: corpname, skip: skip, limit: limit });
- }
- return result;
- },
- //职位管理
- async postOperation({ state }, { type, data }) {
- let { skip, limit } = data;
- let result;
- if (type === 'list') {
- data = this.$toUndefined(data);
- let { corpid, state, corpname, is_practice } = data;
- result = await this.$axios.$get(
- api.posts,
- {},
- { corpid: corpid, state: state, corpname: corpname, is_practice: is_practice, skip: skip, limit: limit }
- );
- }
- if (type === 'search') {
- data = this.$toUndefined(data);
- let { id } = data;
- result = await this.$axios.$get(api.postsInfo, { id: id });
- }
- return result;
- },
- // 简历管理
- async resumesOperation({ state }, { type, data }) {
- let result;
- if (type === 'add') {
- let { info, schid, studid } = data;
- result = await this.$axios.$post(api.resumesAdd, info, {}, { schid: schid, studid: studid });
- }
- if (type === 'search') {
- let { id } = data;
- result = await this.$axios.$get(api.resumes, { id: id });
- }
- if (type === 'update') {
- let { id, info } = data;
- result = await this.$axios.$post(api.resumes, info, { id: id });
- }
- return result;
- },
- //求职信
- async lettersOperation({ state }, { type, data }) {
- let result;
- let { skip, limit } = data;
- if (type === 'list') {
- let { resume_id, status, corpname, studname, post_id } = data;
- result = await this.$axios.$get(
- api.letters,
- {},
- { post_id: post_id, resume_id: resume_id, status: status, corpname: corpname, studname: studname, skip: skip, limit: limit }
- );
- }
- if (type === 'search') {
- let { id } = data;
- result = await this.$axios.$get(api.lettersInfo, { id: id });
- }
- return result;
- },
- //用户信息
- async userOperation({ state }, { type, data }) {
- let result;
- if (type === 'search') {
- let { id } = data;
- result = await this.$axios.$get(api.userReg, { id: id });
- }
- if (type === 'passwd') {
- let { id, info } = data;
- result = await this.$axios.$post(api.userReg, info, { id: id });
- }
- if (type === 'login') {
- let { loginType, info } = data;
- result = this.$axios.$post(api.studLogin, info, {}, { type: loginType });
- }
- return result;
- },
- //企业基本信息
- async corpOperation({ state }, { type, data }) {
- let result;
- if (type === 'search') {
- let { corpid } = data;
- let info = await this.$axios.$get(`${api.corpInfo}`, { corpid: corpid });
- let base = await this.$axios.$get(api.corpBase, { corpid: corpid });
- let identity = await this.$axios.$get(api.corpIdentity, { corpid: corpid });
- return { info: info.data, base: base.data, identity: identity.data };
- }
- return result;
- },
- //微信部分
- async createConnection() {
- let result = await this.$axios.$post(api.connection);
- if (result.errcode != undefined && result.errcode === 0) {
- console.log('create qrcode success', result.data);
- return result.data;
- }
- console.error('create qrcode fail', result);
- },
- async getWxtoken({ state }, qrcode) {
- let result = await this.$axios.$post(api.wxtoken, {}, { qrcode: qrcode });
- if (result.errcode != undefined && result.errcode === 0) {
- console.log('qrcode login success', result);
- return result.token;
- }
- console.error('create qrcode fail', result);
- },
- async bindOperation({ state }, { type, data }) {
- let { userid, ...info } = data;
- let result = await this.$axios.$post(api.studBind, info, {}, { userid: userid });
- return result;
- },
- // 字典表
- async dicOperation({ state }, type) {
- let result;
- if (!_.isObject(type)) {
- result = await this.$axios.$get(api.dictionary, { type: type });
- } else {
- let { level, parent, name } = type;
- if (name) {
- result = await this.$axios.$get(api.findOne, {}, { name: name });
- } else {
- result = await this.$axios.$get(api.dictionary, { type: 'xzqh' }, { level: level, parent: parent });
- }
- }
- return result;
- },
- //原登录
- async studLogin({ state }, { type, data }) {
- let result = this.$axios.$post(api.studLogin, data, {}, { type: type });
- return result;
- },
- //验证码
- async verifyOperation({ state }, { type, data }) {
- let result;
- if (type === 'verify') {
- result = await this.$axios.$get(api.verify, {}, data);
- }
- if (type === 'checkVerify') {
- result = await this.$axios.$post(api.checkVerify, data);
- }
- if (type === 'message') {
- result = await this.$axios.$get(api.message, {}, data);
- }
- if (type === 'checkMessage') {
- result = await this.$axios.$post(api.checkMessage, data);
- }
- return result;
- },
- },
- });
- const data = {
- testItem: {
- id: Math.random(),
- name: 'name',
- age: 'age',
- tel: '13099876544',
- },
- };
|