diff --git a/App.vue b/App.vue index 419f2e1..6416eea 100644 --- a/App.vue +++ b/App.vue @@ -1,72 +1,78 @@ - - - - + + + + \ No newline at end of file diff --git a/api/upload.js b/api/upload.js new file mode 100644 index 0000000..132bfa5 --- /dev/null +++ b/api/upload.js @@ -0,0 +1,52 @@ +import { + request +} from '@/untils/AxiosUtils.js'; +import { + baseUrl +} from '@/config/env.js' +import { + getStore +} from '@/untils/store.js' +import { + Base64 +} from 'js-base64' +import website from "@/config/website.js" + +export async function uploadFile(file) { + uni.showLoading({ + title: '上传中' + }) + var token = getStore({ + name: 'token' + }) + return new Promise((resolve, reject) => { + const header = { + 'Authorization': `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`, + } + header[website.tokenName] = "bearer " + token + uni.uploadFile({ + url: `${baseUrl}/api/jobslink-api/resource/file/save?bussinessType=5`, + header, + filePath: file.url, + // formData: formdata, + name: 'file', + success: ({ + statusCode, + data + }) => { + const resp = JSON.parse(data) + if (statusCode === 200 && resp.code === 200) { + resolve(resp.msg) + } else { + reject(new Error('数据异常')) + } + }, + fail: (uploadFileRes) => { + reject(uploadFileRes) + }, + complete: () => { + uni.hideLoading() + } + }); + }) +} \ No newline at end of file diff --git a/api/userrecruit.js b/api/userrecruit.js index 49a0dab..e5c4ff1 100644 --- a/api/userrecruit.js +++ b/api/userrecruit.js @@ -1,93 +1,106 @@ -import { - request -} from '@/untils/AxiosUtils.js'; -import { - getStore -} from '@/untils/store.js' -function getHeader() { - const platformId = getStore({ - name: 'platformId' - }) - if (platformId) { - return { - 'Platform-Id': platformId - } - } else { - return {} - } -} -/*首页 最新任务(10条)*/ -export const getPushListByUserId = (params) => { - return request({ - url: '/api/jobslink-api/user/userrecruit/getPushListByUserId', - headers: getHeader(), - method: 'get', - params - - }) -} - -/*岗位详情*/ -// workDetail -export const userrecruitDetail = (workId) => { - return request({ - url: '/api/jobslink-api/user/userrecruit/getWorksInfoByWorkId', - method: 'get', - params: { - workId - } - }) -} - -export const submitInfo = (data) => { - return request({ - url: '/api/jobslink-api/user/userrecruit/saveApp', - method: 'post', - data: data - }) -} - -export const getuserrecruitListApp = (params) => { - return request({ - url: '/api/jobslink-api/user/userrecruit/listApp', - method: 'get', - params - }) -} -export const getuserrecruitDetailApp = (params) => { - return request({ - url: '/api/jobslink-api/user/userrecruit/detailApp', - method: 'get', - params - }) -} - -export const seeIsHaveCodep = (params) => { - return request({ - url: '/api/jobslink-api/tenant/company/app/isHaveCode', - method: 'get', - params - }) -} -export const getWorktypesBaseList = (params) => { - return request({ - url: '/api/jobslink-api/tenant/worktypes/base/list', - method: 'get', - params - }) -} - -export const getUserCompanyInfo = (params) => { - return request({ - url: '/api/jobslink-api/user/user/userCompanyInfo', - method: 'get', - params - }) -} -export const findTradeList = () => { - return request({ - url: '/api/jobslink-api/tenant/trade/base/find', - method: 'get', - // params - }) +import { + request +} from '@/untils/AxiosUtils.js'; +import { + getStore +} from '@/untils/store.js' + +function getHeader() { + const platformId = getStore({ + name: 'platformId' + }) + if (platformId) { + return { + 'Platform-Id': platformId + } + } else { + return {} + } +} +/*首页 最新任务(10条)*/ +export const getPushListByUserId = (params) => { + return request({ + url: '/api/jobslink-api/user/userrecruit/getPushListByUserId', + headers: getHeader(), + method: 'get', + params + + }) +} + +/*岗位详情*/ +// workDetail +export const userrecruitDetail = (workId) => { + return request({ + url: '/api/jobslink-api/user/userrecruit/getWorksInfoByWorkId', + method: 'get', + params: { + workId + } + }) +} + +export const submitInfo = (data) => { + return request({ + url: '/api/jobslink-api/user/userrecruit/saveApp', + method: 'post', + data: data + }) +} + +export const getuserrecruitListApp = (params) => { + return request({ + url: '/api/jobslink-api/user/userrecruit/listApp', + method: 'get', + params + }) +} +export const getuserrecruitDetailApp = (params) => { + return request({ + url: '/api/jobslink-api/user/userrecruit/detailApp', + method: 'get', + params + }) +} + +export const seeIsHaveCodep = (params) => { + return request({ + url: '/api/jobslink-api/tenant/company/app/isHaveCode', + method: 'get', + params + }) +} +export const getWorktypesBaseList = (params) => { + return request({ + url: '/api/jobslink-api/tenant/worktypes/base/list', + method: 'get', + params + }) +} + +export const getUserCompanyInfo = (params) => { + return request({ + url: '/api/jobslink-api/user/user/userCompanyInfo', + method: 'get', + params + }) +} +export const findTradeList = () => { + return request({ + url: '/api/jobslink-api/tenant/trade/base/find', + method: 'get', + // params + }) +} + +export const addInviteCompanyAuth = ({ + params, + data +}) => { + return request({ + url: '/api/jobslink-api/tenant/company/app/inviteCompany/auth', + method: 'post', + data, + params + }) } \ No newline at end of file diff --git a/common/dic.js b/common/dic.js index 06ee0a5..a62bbdc 100644 --- a/common/dic.js +++ b/common/dic.js @@ -1,319 +1,416 @@ -// 发布岗位和个体招工 参考工资 -const salary = [{ - name: "2000元(含)以下/月", - label: "2000元(含)以下/月", - }, - { - name: "2000-5000元(含)/月", - label: "2000-5000元(含)/月", - }, - { - name: "5000-8000元(含)/月", - label: "5000-8000元(含)/月", - }, - { - name: "8000-10000元(含)/月", - label: "8000-10000元(含)/月", - }, - { - name: "10000-15000元(含)/月", - label: "10000-15000元(含)/月", - }, - { - name: "15000-20000元(含)/月", - label: "15000-20000元(含)/月", - }, - { - name: "20000-25000元(含)/月", - label: "20000-25000元(含)/月", - }, - { - name: "25000-30000元(含)/月", - label: "25000-30000元(含)/月", - }, - { - name: "30000元以上/月", - label: "30000元以上/月", - }, - { - name: "面议、暂无要求", - label: "面议、暂无要求", - }, -] -const taskSalary = [ - [ - "10-15元/小时", - "16-20元/小时", - "21-25元/小时", - "26-30元/小时", - "30元/小时以上", - "100-150元/天", - "151-200元/天", - "201-250元/天", - "251-300元/天", - "300元/天以上", - "30000元以上/月", - "面议、暂无要求" - ] -] - -const tradeArr = [ - [{ - "id": "1754327500065390596", - "name": "农、林、牧、渔业", - }, - { - "id": "1754327500065390597", - "name": "采矿业", - }, - { - "id": "1754327500065390598", - "name": "采矿业,制造业", - }, - { - "id": "1754327500065390599", - "name": "制造业", - }, - { - "id": "1754327500065390600", - "name": "电力、热力、燃气及水生产和供应业", - }, - { - "id": "1754327500065390601", - "name": "建筑业", - }, - { - "id": "1754327500065390602", - "name": "批发和零售业", - }, - { - "id": "1754327500065390603", - "name": "交通运输、仓储和邮政业", - }, - { - "id": "1754327500065390604", - "name": "住宿和餐饮业", - }, - { - "id": "1754327500065390605", - "name": "信息传输、软件和信息技术服务业", - }, - { - "id": "1754327500065390606", - "name": "金融业", - }, - { - "id": "1754327500065390607", - "name": "房地产业", - }, - { - "id": "1754327500065390608", - "name": "租赁和商务服务业", - }, - { - "id": "1754327500065390609", - "name": "科学研究和技术服务业", - }, - { - "id": "1754327500065390610", - "name": "水利、环境和公共设施管理业", - }, - { - "id": "1754327500065390611", - "name": "居民服务、修理和其他服务业", - }, - { - "id": "1754327500065390612", - "name": "教育", - }, - { - "id": "1754327500065390613", - "name": "卫生和社会工作", - }, - { - "id": "1754327500065390614", - "name": "文化、体育和娱乐业", - }, - { - "id": "1754327500065390615", - "name": "公共管理、社会保障和社会组织", - }, - { - "id": "1754327500065390616", - "name": "国际组织", - }, - { - "id": "1754327500065390617", - "name": "其他", - }, - // { - // "id": "1754327500065390890", - // "name": "111", - // }, - // { - // "id": "1758061062381690882", - // "name": "11", - // }, - { - "id": "1758102909546467329", - "name": "服务业", - } - ] -] - -const natureArr = [ - ['灵活用工'] -] - -const ageArr = [ - [{ - label: "不限年龄", - value: "不限年龄", - }, - { - label: "30以下", - value: "30以下", - }, - { - label: "35以下", - value: "35以下", - }, - { - label: "40以下", - value: "40以下", - }, - { - label: "45以下", - value: "45以下", - }, - { - label: "50以下", - value: "50以下", - }, - { - label: "55以下", - value: "55以下", - }, - { - label: "60以下", - value: "60以下", - }, - ] -] - -const eduArr = [ - [{ - label: "不限", - value: 8, - }, - { - label: "初中及以下", - value: 7, - }, - { - label: "中专/中技", - value: 6, - }, - { - label: "高中", - value: 5, - }, - { - label: "大专", - value: 4, - }, - { - label: "本科", - value: 3, - }, - { - label: "硕士", - value: 2, - }, - { - label: "博士", - value: 1, - }, - { - label: "MBA/EMBA", - value: 0, - }, - ] -] - -const expeArr = [ - [{ - label: "不限经验", - value: "不限经验", - }, - { - label: "1年以下", - value: "1年以下", - }, - { - label: "1~3年", - value: "1~3年", - }, - { - label: "3~5年", - value: "3~5年", - }, - { - label: "5~10年", - value: "5~10年", - }, - { - label: "10年以上", - value: "10年以上", - }, - ] -] - -const companyEnum = [ - { value: 1, label: "机关/事业单位" }, - { value: 2, label: "国有企业" }, - { value: 3, label: "私营企业" }, - { value: 4, label: "外商及港澳台投资企业" }, - { value: 5, label: "股份制企业" }, - { value: 6, label: "学校/下级学院" }, - { value: 7, label: "医院" }, - { value: 8, label: "律师事务所" }, - { value: 9, label: "银行" }, - { value: 10, label: "非盈利社会组织" }, - { value: 11, label: "其它" }, -] - -const wageUnitCategoryState = [[ - { id: 1, label: "元/人·时", disable: false }, - { id: 2, label: "元/人·天", disable: false }, - { id: 3, label: "元/人·月", disable: false }, - { id: 4, label: "其他", disable: false }, - // { value: 0, label: "元/人·次", disable: true }, - // { value: 4, label: "元/人·周", disable: true }, - // { value: 5, label: "元/人·个", disable: true }, - // { value: 6, label: "元/人·件", disable: true }, -]]; - -const workwageUnitCategoryState = [[ - // { id: 1, label: "元/人·时", disable: false }, - // { id: 2, label: "元/人·天", disable: false }, - { id: 3, label: "元/人·月", disable: true }, - { id: 4, label: "其他", disable: true }, - // { value: 0, label: "元/人·次", disable: true }, - // { value: 4, label: "元/人·周", disable: true }, - // { value: 5, label: "元/人·个", disable: true }, - // { value: 6, label: "元/人·件", disable: true }, -]]; - -export default { - salary, - taskSalary, - tradeArr, - natureArr, - ageArr, - eduArr, - expeArr, - companyEnum, - wageUnitCategoryState, - workwageUnitCategoryState +// 发布岗位和个体招工 参考工资 +const salary = [{ + name: "2000元(含)以下/月", + label: "2000元(含)以下/月", + }, + { + name: "2000-5000元(含)/月", + label: "2000-5000元(含)/月", + }, + { + name: "5000-8000元(含)/月", + label: "5000-8000元(含)/月", + }, + { + name: "8000-10000元(含)/月", + label: "8000-10000元(含)/月", + }, + { + name: "10000-15000元(含)/月", + label: "10000-15000元(含)/月", + }, + { + name: "15000-20000元(含)/月", + label: "15000-20000元(含)/月", + }, + { + name: "20000-25000元(含)/月", + label: "20000-25000元(含)/月", + }, + { + name: "25000-30000元(含)/月", + label: "25000-30000元(含)/月", + }, + { + name: "30000元以上/月", + label: "30000元以上/月", + }, + { + name: "面议、暂无要求", + label: "面议、暂无要求", + }, +] +const taskSalary = [ + [ + "10-15元/小时", + "16-20元/小时", + "21-25元/小时", + "26-30元/小时", + "30元/小时以上", + "100-150元/天", + "151-200元/天", + "201-250元/天", + "251-300元/天", + "300元/天以上", + "30000元以上/月", + "面议、暂无要求" + ] +] + +const tradeArr = [ + [{ + "id": "1754327500065390596", + "name": "农、林、牧、渔业", + }, + { + "id": "1754327500065390597", + "name": "采矿业", + }, + { + "id": "1754327500065390598", + "name": "采矿业,制造业", + }, + { + "id": "1754327500065390599", + "name": "制造业", + }, + { + "id": "1754327500065390600", + "name": "电力、热力、燃气及水生产和供应业", + }, + { + "id": "1754327500065390601", + "name": "建筑业", + }, + { + "id": "1754327500065390602", + "name": "批发和零售业", + }, + { + "id": "1754327500065390603", + "name": "交通运输、仓储和邮政业", + }, + { + "id": "1754327500065390604", + "name": "住宿和餐饮业", + }, + { + "id": "1754327500065390605", + "name": "信息传输、软件和信息技术服务业", + }, + { + "id": "1754327500065390606", + "name": "金融业", + }, + { + "id": "1754327500065390607", + "name": "房地产业", + }, + { + "id": "1754327500065390608", + "name": "租赁和商务服务业", + }, + { + "id": "1754327500065390609", + "name": "科学研究和技术服务业", + }, + { + "id": "1754327500065390610", + "name": "水利、环境和公共设施管理业", + }, + { + "id": "1754327500065390611", + "name": "居民服务、修理和其他服务业", + }, + { + "id": "1754327500065390612", + "name": "教育", + }, + { + "id": "1754327500065390613", + "name": "卫生和社会工作", + }, + { + "id": "1754327500065390614", + "name": "文化、体育和娱乐业", + }, + { + "id": "1754327500065390615", + "name": "公共管理、社会保障和社会组织", + }, + { + "id": "1754327500065390616", + "name": "国际组织", + }, + { + "id": "1754327500065390617", + "name": "其他", + }, + // { + // "id": "1754327500065390890", + // "name": "111", + // }, + // { + // "id": "1758061062381690882", + // "name": "11", + // }, + { + "id": "1758102909546467329", + "name": "服务业", + } + ] +] + +const natureArr = [ + ['灵活用工'] +] + +const ageArr = [ + [{ + label: "不限年龄", + value: "不限年龄", + }, + { + label: "30以下", + value: "30以下", + }, + { + label: "35以下", + value: "35以下", + }, + { + label: "40以下", + value: "40以下", + }, + { + label: "45以下", + value: "45以下", + }, + { + label: "50以下", + value: "50以下", + }, + { + label: "55以下", + value: "55以下", + }, + { + label: "60以下", + value: "60以下", + }, + ] +] + +const eduArr = [ + [{ + label: "不限", + value: 8, + }, + { + label: "初中及以下", + value: 7, + }, + { + label: "中专/中技", + value: 6, + }, + { + label: "高中", + value: 5, + }, + { + label: "大专", + value: 4, + }, + { + label: "本科", + value: 3, + }, + { + label: "硕士", + value: 2, + }, + { + label: "博士", + value: 1, + }, + { + label: "MBA/EMBA", + value: 0, + }, + ] +] + +const expeArr = [ + [{ + label: "不限经验", + value: "不限经验", + }, + { + label: "1年以下", + value: "1年以下", + }, + { + label: "1~3年", + value: "1~3年", + }, + { + label: "3~5年", + value: "3~5年", + }, + { + label: "5~10年", + value: "5~10年", + }, + { + label: "10年以上", + value: "10年以上", + }, + ] +] + +const companyEnum = [{ + value: 1, + label: "机关/事业单位" + }, + { + value: 2, + label: "国有企业" + }, + { + value: 3, + label: "私营企业" + }, + { + value: 4, + label: "外商及港澳台投资企业" + }, + { + value: 5, + label: "股份制企业" + }, + { + value: 6, + label: "学校/下级学院" + }, + { + value: 7, + label: "医院" + }, + { + value: 8, + label: "律师事务所" + }, + { + value: 9, + label: "银行" + }, + { + value: 10, + label: "非盈利社会组织" + }, + { + value: 11, + label: "其它" + }, +] + +const wageUnitCategoryState = [ + [{ + id: 1, + label: "元/人·时", + disable: false + }, + { + id: 2, + label: "元/人·天", + disable: false + }, + { + id: 3, + label: "元/人·月", + disable: false + }, + { + id: 4, + label: "其他", + disable: false + }, + // { value: 0, label: "元/人·次", disable: true }, + // { value: 4, label: "元/人·周", disable: true }, + // { value: 5, label: "元/人·个", disable: true }, + // { value: 6, label: "元/人·件", disable: true }, + ] +]; + +const workwageUnitCategoryState = [ + [ + // { id: 1, label: "元/人·时", disable: false }, + // { id: 2, label: "元/人·天", disable: false }, + { + id: 3, + label: "元/人·月", + disable: true + }, + { + id: 4, + label: "其他", + disable: true + }, + // { value: 0, label: "元/人·次", disable: true }, + // { value: 4, label: "元/人·周", disable: true }, + // { value: 5, label: "元/人·个", disable: true }, + // { value: 6, label: "元/人·件", disable: true }, + ] +]; + + +const addressColumn = [ + [{ + value: '95', + label: "绵竹市" + }, + { + value: '185', + label: "绵竹市" + }, + { + value: '143', + label: "旌阳区" + }, + { + value: '150', + label: "罗江区" + }, + { + value: '42', + label: "什邡市" + }, + { + value: '156', + label: "中江县" + }, + { + value: '44139628', + label: "经济技术开发区" + }, + { + value: '79194151', + label: "德阳市开发区" + }, + ] +] + +export default { + salary, + taskSalary, + tradeArr, + natureArr, + ageArr, + eduArr, + expeArr, + companyEnum, + wageUnitCategoryState, + workwageUnitCategoryState, + addressColumn } \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue index f6fd6f2..fb9db3d 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,956 +1,984 @@ - - - - - + + + + + \ No newline at end of file diff --git a/pages/recruit/recruit.vue b/pages/recruit/recruit.vue index 568cb3d..11c1b76 100644 --- a/pages/recruit/recruit.vue +++ b/pages/recruit/recruit.vue @@ -1,109 +1,126 @@ - - - - - + + + + + \ No newline at end of file diff --git a/pages/recruit/subPage/enterpriceCertification/enterpriceCertification.vue b/pages/recruit/subPage/enterpriceCertification/enterpriceCertification.vue index b1efd9e..b1265ec 100644 --- a/pages/recruit/subPage/enterpriceCertification/enterpriceCertification.vue +++ b/pages/recruit/subPage/enterpriceCertification/enterpriceCertification.vue @@ -1,54 +1,100 @@ \ No newline at end of file diff --git a/pages/recruit/subPage/enterpriceCertification/pickerList.vue b/pages/recruit/subPage/enterpriceCertification/pickerList.vue new file mode 100644 index 0000000..c7d9c87 --- /dev/null +++ b/pages/recruit/subPage/enterpriceCertification/pickerList.vue @@ -0,0 +1,72 @@ + + + + + \ No newline at end of file diff --git a/pages/recruit/subPage/enterpriceCertification/uploadIdNumber.vue b/pages/recruit/subPage/enterpriceCertification/uploadIdNumber.vue new file mode 100644 index 0000000..05a0a46 --- /dev/null +++ b/pages/recruit/subPage/enterpriceCertification/uploadIdNumber.vue @@ -0,0 +1,53 @@ + + + + + \ No newline at end of file diff --git a/static/font/font_2225171_8kdcwk4po24.ttf b/static/font/font_2225171_8kdcwk4po24.ttf new file mode 100644 index 0000000..befa24a Binary files /dev/null and b/static/font/font_2225171_8kdcwk4po24.ttf differ diff --git a/static/img/backidcard1.png b/static/img/backidcard1.png new file mode 100644 index 0000000..60d4857 Binary files /dev/null and b/static/img/backidcard1.png differ diff --git a/static/img/idcard.png b/static/img/idcard.png new file mode 100644 index 0000000..2490351 Binary files /dev/null and b/static/img/idcard.png differ diff --git a/store/models/user.js b/store/models/user.js index 2975fe9..245af73 100644 --- a/store/models/user.js +++ b/store/models/user.js @@ -1,241 +1,244 @@ -import { - isURL, - validatenull -} from '@/untils/validate.js' -import website from '@/config/website' -import { - loginByUsername, - getUserInfo, - logout, - refreshToken -} from '@/api/user' -import md5 from 'js-md5' -import { - getStore, - setStore -} from '@/untils/store.js' -import { - calcDate -} from '@/untils/date.js' - -let refreshTimer = null; - -function startRefreshToken(dispatch) { - refreshTimer = setInterval(() => { - const token = - getStore({ - name: "token", - debug: true - }) || {}; - const date = calcDate(token.datetime, new Date().getTime()); - if (validatenull(date)) return; - if (date.seconds >= website.tokenTime) { - dispatch("refreshToken") - .then(() => {}) - .catch(() => {}); - } - }, 10000); -} - -function stopRefreshToken() { - clearInterval(refreshTimer) -} - -const user = { - state: { - tenantId: getStore({ - name: 'tenantId' - }) || '', - userInfo: getStore({ - name: 'userInfo' - }) || [], - token: getStore({ - name: 'token' - }) || '', - refreshToken: getStore({ - name: 'refreshToken' - }) || '', - userChecked:getStore({ - name: 'setUserCheckValue' - }) || false, - sendTimes:getStore({//用户发送短信次数 - name:'setUserSendTimes' - }) || 0, - seeEnterprise: getStore({//用户发送短信次数 - name:'enterprise' - }) || 0, // 0 个体招工 ; 企业招工 - }, - actions: { - //用户点击radio按钮 - UserCheckedBtn({commit},val){ - commit('SET_USER_CHECKED',val); - }, - //根据用户名登录 - LoginByUsername({ - commit, - dispatch - }, userInfo) { - return new Promise((resolve, reject) => { - loginByUsername(userInfo.tenantId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, - userInfo.code, userInfo.token).then(res => { - - const data = res.data; - if (data.error_description) { - uni.showToast({ - icon: "none", - title: data.error_description, - }) - } else { - commit('SET_TOKEN', data.access_token); - commit('SET_REFRESH_TOKEN', data.refresh_token); - commit('SET_TENANT_ID', data.tenant_id); - commit('SET_USER_INFO', data); - dispatch('refreshAuthState') - dispatch('startRefreshNewsTimer') - startRefreshToken(); - } - resolve(res); - }).catch(error => { - reject(error); - }) - }) - }, - //根据手机号登录 - LoginByPhone({ - commit - }, userInfo) { - return new Promise((resolve) => { - loginByUsername(userInfo.phone, userInfo.code).then(res => { - const data = res.data.data; - commit('SET_TOKEN', data); - resolve(); - }) - }) - }, - GetUserInfo({ - commit - }) { - return new Promise((resolve, reject) => { - getUserInfo().then((res) => { - const data = res.data.data; - resolve(data); - }).catch(err => { - reject(err); - }) - }) - }, - //刷新token - refreshToken({ - state, - commit, - dispatch - }) { - return new Promise((resolve, reject) => { - refreshToken(state.refreshToken, state.tenantId).then(res => { - const data = res.data; - dispatch('refreshAuthState') - commit('SET_TOKEN', data.access_token); - commit('SET_REFRESH_TOKEN', data.refresh_token); - resolve(); - }).catch(error => { - reject(error) - }) - }) - }, - // 登出 - LogOut({ - dispatch, - commit - }) { - return new Promise((resolve, reject) => { - logout(); - stopRefreshToken(); - commit('SET_TOKEN', ''); - commit('SET_VIPCODE', '0'); - resolve(); - }) - }, - //注销session - FedLogOut({ - commit - }) { - return new Promise(resolve => { - commit('SET_TOKEN', ''); - resolve(); - }) - }, - startRefreshTokenTimer({ - state, - commit, - dispatch - }) { - if (state.token) { - dispatch('refreshToken').then(() => { - startRefreshToken(dispatch); - }) - } - }, - //更新用户接收短信次数 - UpdateUserSendTimes({ - commit - }, data) { - commit('SET_USER_SENDTIMES',data); - }, - }, - mutations: { - setEnterprise(state, val) { // 0 个体招工 ; 企业招工 - state.seeEnterprise = val; - setStore({ - name: 'enterprise', - content: val, - }) - }, - SET_TOKEN: (state, token) => { - state.token = token; - setStore({ - name: 'token', - content: state.token, - type: 'session' - }) - }, - SET_REFRESH_TOKEN: (state, refreshToken) => { - state.refreshToken = refreshToken; - setStore({ - name: 'refreshToken', - content: state.refreshToken, - type: 'session' - }) - }, - SET_TENANT_ID: (state, tenantId) => { - state.tenantId = tenantId; - setStore({ - name: 'tenantId', - content: state.tenantId, - type: 'session' - }) - }, - SET_USER_INFO: (state, userInfo) => { - state.userInfo = userInfo; - setStore({ - name: 'userInfo', - content: state.userInfo - }) - }, - SET_USER_CHECKED:(state,val)=>{ - state.userChecked=val; - setStore({ - name: 'setUserCheckValue', - content: state.userChecked - }) - }, - SET_USER_SENDTIMES:(state,val)=>{ - state.sendTimes=val; - setStore({ - name: 'setUserSendTimes', - content: state.sendTimes - }) - }, - - } -} -export default user +import { + isURL, + validatenull +} from '@/untils/validate.js' +import website from '@/config/website' +import { + loginByUsername, + getUserInfo, + logout, + refreshToken +} from '@/api/user' +import md5 from 'js-md5' +import { + getStore, + setStore +} from '@/untils/store.js' +import { + calcDate +} from '@/untils/date.js' + +let refreshTimer = null; + +function startRefreshToken(dispatch) { + refreshTimer = setInterval(() => { + const token = + getStore({ + name: "token", + debug: true + }) || {}; + const date = calcDate(token.datetime, new Date().getTime()); + if (validatenull(date)) return; + if (date.seconds >= website.tokenTime) { + dispatch("refreshToken") + .then(() => {}) + .catch(() => {}); + } + }, 10000); +} + +function stopRefreshToken() { + clearInterval(refreshTimer) +} + +const user = { + state: { + tenantId: getStore({ + name: 'tenantId' + }) || '', + userInfo: getStore({ + name: 'userInfo' + }) || [], + token: getStore({ + name: 'token' + }) || '', + refreshToken: getStore({ + name: 'refreshToken' + }) || '', + userChecked: getStore({ + name: 'setUserCheckValue' + }) || false, + sendTimes: getStore({ //用户发送短信次数 + name: 'setUserSendTimes' + }) || 0, + seeEnterprise: getStore({ //用户发送短信次数 + name: 'enterprise' + }) || 0, // 0 个体招工 ; 企业招工 + }, + actions: { + //用户点击radio按钮 + UserCheckedBtn({ + commit + }, val) { + commit('SET_USER_CHECKED', val); + }, + //根据用户名登录 + LoginByUsername({ + commit, + dispatch + }, userInfo) { + return new Promise((resolve, reject) => { + loginByUsername(userInfo.tenantId, userInfo.username, md5(userInfo.password), userInfo.type, + userInfo.key, + userInfo.code, userInfo.token).then(res => { + + const data = res.data; + if (data.error_description) { + uni.showToast({ + icon: "none", + title: data.error_description, + }) + } else { + commit('SET_TOKEN', data.access_token); + commit('SET_REFRESH_TOKEN', data.refresh_token); + commit('SET_TENANT_ID', data.tenant_id); + commit('SET_USER_INFO', data); + dispatch('refreshAuthState') + dispatch('startRefreshNewsTimer') + startRefreshToken(); + } + resolve(res); + }).catch(error => { + reject(error); + }) + }) + }, + //根据手机号登录 + LoginByPhone({ + commit + }, userInfo) { + return new Promise((resolve) => { + loginByUsername(userInfo.phone, userInfo.code).then(res => { + const data = res.data.data; + commit('SET_TOKEN', data); + resolve(); + }) + }) + }, + GetUserInfo({ + commit + }) { + return new Promise((resolve, reject) => { + getUserInfo().then((res) => { + const data = res.data.data; + resolve(data); + }).catch(err => { + reject(err); + }) + }) + }, + //刷新token + refreshToken({ + state, + commit, + dispatch + }) { + return new Promise((resolve, reject) => { + refreshToken(state.refreshToken, state.tenantId).then(res => { + const data = res.data; + dispatch('refreshAuthState') + commit('SET_TOKEN', data.access_token); + commit('SET_REFRESH_TOKEN', data.refresh_token); + resolve(); + }).catch(error => { + reject(error) + }) + }) + }, + // 登出 + LogOut({ + dispatch, + commit + }) { + return new Promise((resolve, reject) => { + logout(); + stopRefreshToken(); + commit('SET_TOKEN', ''); + commit('SET_VIPCODE', '0'); + resolve(); + }) + }, + //注销session + FedLogOut({ + commit + }) { + return new Promise(resolve => { + commit('SET_TOKEN', ''); + resolve(); + }) + }, + startRefreshTokenTimer({ + state, + commit, + dispatch + }) { + if (state.token) { + dispatch('refreshToken').then(() => { + startRefreshToken(dispatch); + }) + } + }, + //更新用户接收短信次数 + UpdateUserSendTimes({ + commit + }, data) { + commit('SET_USER_SENDTIMES', data); + }, + }, + mutations: { + setEnterprise(state, val) { // 0 个体招工 ; 企业招工 + state.seeEnterprise = val; + setStore({ + name: 'enterprise', + content: val, + }) + }, + SET_TOKEN: (state, token) => { + state.token = token; + setStore({ + name: 'token', + content: state.token, + type: 'session' + }) + }, + SET_REFRESH_TOKEN: (state, refreshToken) => { + state.refreshToken = refreshToken; + setStore({ + name: 'refreshToken', + content: state.refreshToken, + type: 'session' + }) + }, + SET_TENANT_ID: (state, tenantId) => { + state.tenantId = tenantId; + setStore({ + name: 'tenantId', + content: state.tenantId, + type: 'session' + }) + }, + SET_USER_INFO: (state, userInfo) => { + state.userInfo = userInfo; + setStore({ + name: 'userInfo', + content: state.userInfo + }) + }, + SET_USER_CHECKED: (state, val) => { + state.userChecked = val; + setStore({ + name: 'setUserCheckValue', + content: state.userChecked + }) + }, + SET_USER_SENDTIMES: (state, val) => { + state.sendTimes = val; + setStore({ + name: 'setUserSendTimes', + content: state.sendTimes + }) + }, + + } +} +export default user \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index d942576..a412b25 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,22 +1,22 @@ -module.exports = { - devServer: { - port: 1887, - proxy: { - '/api': { - target: 'http://10.165.0.173:8000', - ws: true, - pathRewrite: { - '^/api': '/' - } - }, - '/qq/map': { - //本地服务接口地址 - target: 'https://apis.map.qq.com', - ws: true, - pathRewrite: { - '^/qq/map': '/' - } - } - } - } -}; +module.exports = { + devServer: { + port: 1887, + proxy: { + '/api': { + target: 'http://192.168.1.106:8000', + ws: true, + pathRewrite: { + '^/api': '/' + } + }, + '/qq/map': { + //本地服务接口地址 + target: 'https://apis.map.qq.com', + ws: true, + pathRewrite: { + '^/qq/map': '/' + } + } + } + } +}; \ No newline at end of file