flat: 添加企业2
This commit is contained in:
126
App.vue
126
App.vue
@@ -1,72 +1,78 @@
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
|
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
|
||||||
@import "@/uni_modules/uview-ui/index.scss";
|
@import "@/uni_modules/uview-ui/index.scss";
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
import website from '@/config/website.js'
|
import website from '@/config/website.js'
|
||||||
import {
|
import {
|
||||||
mapGetters
|
mapGetters
|
||||||
} from 'vuex'
|
} from 'vuex'
|
||||||
// #ifdef H5
|
// #ifdef H5
|
||||||
import {
|
import {
|
||||||
setPlatformByHostName
|
setPlatformByHostName
|
||||||
} from '@/untils/customized.js'
|
} from '@/untils/customized.js'
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
onLaunch: function(options) {
|
onLaunch: function(options) {
|
||||||
if(options.query.token) {
|
if (options.query.token) {
|
||||||
uni.reLaunch({
|
uni.reLaunch({
|
||||||
url: '/pages/login/blank?token=' + options.query.token
|
url: '/pages/login/blank?token=' + options.query.token
|
||||||
})
|
})
|
||||||
} else if (this.$store.state.user.token) {
|
} else if (this.$store.state.user.token) {
|
||||||
this.$store.dispatch('startRefreshTokenTimer')
|
this.$store.dispatch('startRefreshTokenTimer')
|
||||||
this.$store.dispatch('startRefreshNewsTimer')
|
this.$store.dispatch('startRefreshNewsTimer')
|
||||||
this.$store.dispatch('refreshAuthState')
|
this.$store.dispatch('refreshAuthState')
|
||||||
}
|
}
|
||||||
// #ifdef H5
|
// #ifdef H5
|
||||||
// 企业定制
|
// 企业定制
|
||||||
setPlatformByHostName(this.$store)
|
setPlatformByHostName(this.$store)
|
||||||
// #endif
|
// #endif
|
||||||
},
|
},
|
||||||
onShow: function() {},
|
onShow: function() {},
|
||||||
onHide: function() {},
|
onHide: function() {},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['news']),
|
...mapGetters(['news']),
|
||||||
allUnread() {
|
allUnread() {
|
||||||
return this.news.allUnread
|
return this.news.allUnread
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
allUnread(value) {
|
allUnread(value) {
|
||||||
if (!this.$store.state.user.token) {} else if (value > 0) {
|
if (!this.$store.state.user.token) {} else if (value > 0) {
|
||||||
uni.showTabBarRedDot({
|
uni.showTabBarRedDot({
|
||||||
index: 2
|
index: 2
|
||||||
})
|
})
|
||||||
uni.$once('newsReadChange', () => {
|
uni.$once('newsReadChange', () => {
|
||||||
uni.showTabBarRedDot({
|
uni.showTabBarRedDot({
|
||||||
index: 2
|
index: 2
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
uni.hideTabBarRedDot({
|
uni.hideTabBarRedDot({
|
||||||
index: 2
|
index: 2
|
||||||
})
|
})
|
||||||
uni.$once('newsReadChange', () => {
|
uni.$once('newsReadChange', () => {
|
||||||
uni.hideTabBarRedDot({
|
uni.hideTabBarRedDot({
|
||||||
index: 2
|
index: 2
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/*每个页面公共css */
|
/*每个页面公共css */
|
||||||
/* tabbar 字体大小 */
|
/* tabbar 字体大小 */
|
||||||
/* .uni-tabbar__label{
|
/* .uni-tabbar__label{
|
||||||
font-size: 14px !important;
|
font-size: 14px !important;
|
||||||
} */
|
} */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'uicon-iconfont';
|
||||||
|
font-weight: mormal;
|
||||||
|
font-style: mormal;
|
||||||
|
src: url('/static/font/font_2225171_8kdcwk4po24.ttf') format('truetype');
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
52
api/upload.js
Normal file
52
api/upload.js
Normal file
@@ -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()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -1,93 +1,106 @@
|
|||||||
import {
|
import {
|
||||||
request
|
request
|
||||||
} from '@/untils/AxiosUtils.js';
|
} from '@/untils/AxiosUtils.js';
|
||||||
import {
|
import {
|
||||||
getStore
|
getStore
|
||||||
} from '@/untils/store.js'
|
} from '@/untils/store.js'
|
||||||
|
|
||||||
function getHeader() {
|
function getHeader() {
|
||||||
const platformId = getStore({
|
const platformId = getStore({
|
||||||
name: 'platformId'
|
name: 'platformId'
|
||||||
})
|
})
|
||||||
if (platformId) {
|
if (platformId) {
|
||||||
return {
|
return {
|
||||||
'Platform-Id': platformId
|
'Platform-Id': platformId
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*首页 最新任务(10条)*/
|
/*首页 最新任务(10条)*/
|
||||||
export const getPushListByUserId = (params) => {
|
export const getPushListByUserId = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/user/userrecruit/getPushListByUserId',
|
url: '/api/jobslink-api/user/userrecruit/getPushListByUserId',
|
||||||
headers: getHeader(),
|
headers: getHeader(),
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/*岗位详情*/
|
/*岗位详情*/
|
||||||
// workDetail
|
// workDetail
|
||||||
export const userrecruitDetail = (workId) => {
|
export const userrecruitDetail = (workId) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/user/userrecruit/getWorksInfoByWorkId',
|
url: '/api/jobslink-api/user/userrecruit/getWorksInfoByWorkId',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {
|
params: {
|
||||||
workId
|
workId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const submitInfo = (data) => {
|
export const submitInfo = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/user/userrecruit/saveApp',
|
url: '/api/jobslink-api/user/userrecruit/saveApp',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getuserrecruitListApp = (params) => {
|
export const getuserrecruitListApp = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/user/userrecruit/listApp',
|
url: '/api/jobslink-api/user/userrecruit/listApp',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export const getuserrecruitDetailApp = (params) => {
|
export const getuserrecruitDetailApp = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/user/userrecruit/detailApp',
|
url: '/api/jobslink-api/user/userrecruit/detailApp',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const seeIsHaveCodep = (params) => {
|
export const seeIsHaveCodep = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/tenant/company/app/isHaveCode',
|
url: '/api/jobslink-api/tenant/company/app/isHaveCode',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export const getWorktypesBaseList = (params) => {
|
export const getWorktypesBaseList = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/tenant/worktypes/base/list',
|
url: '/api/jobslink-api/tenant/worktypes/base/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getUserCompanyInfo = (params) => {
|
export const getUserCompanyInfo = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/user/user/userCompanyInfo',
|
url: '/api/jobslink-api/user/user/userCompanyInfo',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export const findTradeList = () => {
|
export const findTradeList = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/jobslink-api/tenant/trade/base/find',
|
url: '/api/jobslink-api/tenant/trade/base/find',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
// params
|
// params
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export const addInviteCompanyAuth = ({
|
||||||
|
params,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
return request({
|
||||||
|
url: '/api/jobslink-api/tenant/company/app/inviteCompany/auth',
|
||||||
|
method: 'post',
|
||||||
|
data,
|
||||||
|
params
|
||||||
|
})
|
||||||
}
|
}
|
||||||
677
common/dic.js
677
common/dic.js
@@ -1,319 +1,416 @@
|
|||||||
// 发布岗位和个体招工 参考工资
|
// 发布岗位和个体招工 参考工资
|
||||||
const salary = [{
|
const salary = [{
|
||||||
name: "2000元(含)以下/月",
|
name: "2000元(含)以下/月",
|
||||||
label: "2000元(含)以下/月",
|
label: "2000元(含)以下/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "2000-5000元(含)/月",
|
name: "2000-5000元(含)/月",
|
||||||
label: "2000-5000元(含)/月",
|
label: "2000-5000元(含)/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "5000-8000元(含)/月",
|
name: "5000-8000元(含)/月",
|
||||||
label: "5000-8000元(含)/月",
|
label: "5000-8000元(含)/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "8000-10000元(含)/月",
|
name: "8000-10000元(含)/月",
|
||||||
label: "8000-10000元(含)/月",
|
label: "8000-10000元(含)/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "10000-15000元(含)/月",
|
name: "10000-15000元(含)/月",
|
||||||
label: "10000-15000元(含)/月",
|
label: "10000-15000元(含)/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "15000-20000元(含)/月",
|
name: "15000-20000元(含)/月",
|
||||||
label: "15000-20000元(含)/月",
|
label: "15000-20000元(含)/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "20000-25000元(含)/月",
|
name: "20000-25000元(含)/月",
|
||||||
label: "20000-25000元(含)/月",
|
label: "20000-25000元(含)/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "25000-30000元(含)/月",
|
name: "25000-30000元(含)/月",
|
||||||
label: "25000-30000元(含)/月",
|
label: "25000-30000元(含)/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "30000元以上/月",
|
name: "30000元以上/月",
|
||||||
label: "30000元以上/月",
|
label: "30000元以上/月",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "面议、暂无要求",
|
name: "面议、暂无要求",
|
||||||
label: "面议、暂无要求",
|
label: "面议、暂无要求",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
const taskSalary = [
|
const taskSalary = [
|
||||||
[
|
[
|
||||||
"10-15元/小时",
|
"10-15元/小时",
|
||||||
"16-20元/小时",
|
"16-20元/小时",
|
||||||
"21-25元/小时",
|
"21-25元/小时",
|
||||||
"26-30元/小时",
|
"26-30元/小时",
|
||||||
"30元/小时以上",
|
"30元/小时以上",
|
||||||
"100-150元/天",
|
"100-150元/天",
|
||||||
"151-200元/天",
|
"151-200元/天",
|
||||||
"201-250元/天",
|
"201-250元/天",
|
||||||
"251-300元/天",
|
"251-300元/天",
|
||||||
"300元/天以上",
|
"300元/天以上",
|
||||||
"30000元以上/月",
|
"30000元以上/月",
|
||||||
"面议、暂无要求"
|
"面议、暂无要求"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
const tradeArr = [
|
const tradeArr = [
|
||||||
[{
|
[{
|
||||||
"id": "1754327500065390596",
|
"id": "1754327500065390596",
|
||||||
"name": "农、林、牧、渔业",
|
"name": "农、林、牧、渔业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390597",
|
"id": "1754327500065390597",
|
||||||
"name": "采矿业",
|
"name": "采矿业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390598",
|
"id": "1754327500065390598",
|
||||||
"name": "采矿业,制造业",
|
"name": "采矿业,制造业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390599",
|
"id": "1754327500065390599",
|
||||||
"name": "制造业",
|
"name": "制造业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390600",
|
"id": "1754327500065390600",
|
||||||
"name": "电力、热力、燃气及水生产和供应业",
|
"name": "电力、热力、燃气及水生产和供应业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390601",
|
"id": "1754327500065390601",
|
||||||
"name": "建筑业",
|
"name": "建筑业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390602",
|
"id": "1754327500065390602",
|
||||||
"name": "批发和零售业",
|
"name": "批发和零售业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390603",
|
"id": "1754327500065390603",
|
||||||
"name": "交通运输、仓储和邮政业",
|
"name": "交通运输、仓储和邮政业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390604",
|
"id": "1754327500065390604",
|
||||||
"name": "住宿和餐饮业",
|
"name": "住宿和餐饮业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390605",
|
"id": "1754327500065390605",
|
||||||
"name": "信息传输、软件和信息技术服务业",
|
"name": "信息传输、软件和信息技术服务业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390606",
|
"id": "1754327500065390606",
|
||||||
"name": "金融业",
|
"name": "金融业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390607",
|
"id": "1754327500065390607",
|
||||||
"name": "房地产业",
|
"name": "房地产业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390608",
|
"id": "1754327500065390608",
|
||||||
"name": "租赁和商务服务业",
|
"name": "租赁和商务服务业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390609",
|
"id": "1754327500065390609",
|
||||||
"name": "科学研究和技术服务业",
|
"name": "科学研究和技术服务业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390610",
|
"id": "1754327500065390610",
|
||||||
"name": "水利、环境和公共设施管理业",
|
"name": "水利、环境和公共设施管理业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390611",
|
"id": "1754327500065390611",
|
||||||
"name": "居民服务、修理和其他服务业",
|
"name": "居民服务、修理和其他服务业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390612",
|
"id": "1754327500065390612",
|
||||||
"name": "教育",
|
"name": "教育",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390613",
|
"id": "1754327500065390613",
|
||||||
"name": "卫生和社会工作",
|
"name": "卫生和社会工作",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390614",
|
"id": "1754327500065390614",
|
||||||
"name": "文化、体育和娱乐业",
|
"name": "文化、体育和娱乐业",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390615",
|
"id": "1754327500065390615",
|
||||||
"name": "公共管理、社会保障和社会组织",
|
"name": "公共管理、社会保障和社会组织",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390616",
|
"id": "1754327500065390616",
|
||||||
"name": "国际组织",
|
"name": "国际组织",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1754327500065390617",
|
"id": "1754327500065390617",
|
||||||
"name": "其他",
|
"name": "其他",
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// "id": "1754327500065390890",
|
// "id": "1754327500065390890",
|
||||||
// "name": "111",
|
// "name": "111",
|
||||||
// },
|
// },
|
||||||
// {
|
// {
|
||||||
// "id": "1758061062381690882",
|
// "id": "1758061062381690882",
|
||||||
// "name": "11",
|
// "name": "11",
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
"id": "1758102909546467329",
|
"id": "1758102909546467329",
|
||||||
"name": "服务业",
|
"name": "服务业",
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
const natureArr = [
|
const natureArr = [
|
||||||
['灵活用工']
|
['灵活用工']
|
||||||
]
|
]
|
||||||
|
|
||||||
const ageArr = [
|
const ageArr = [
|
||||||
[{
|
[{
|
||||||
label: "不限年龄",
|
label: "不限年龄",
|
||||||
value: "不限年龄",
|
value: "不限年龄",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "30以下",
|
label: "30以下",
|
||||||
value: "30以下",
|
value: "30以下",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "35以下",
|
label: "35以下",
|
||||||
value: "35以下",
|
value: "35以下",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "40以下",
|
label: "40以下",
|
||||||
value: "40以下",
|
value: "40以下",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "45以下",
|
label: "45以下",
|
||||||
value: "45以下",
|
value: "45以下",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "50以下",
|
label: "50以下",
|
||||||
value: "50以下",
|
value: "50以下",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "55以下",
|
label: "55以下",
|
||||||
value: "55以下",
|
value: "55以下",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "60以下",
|
label: "60以下",
|
||||||
value: "60以下",
|
value: "60以下",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
const eduArr = [
|
const eduArr = [
|
||||||
[{
|
[{
|
||||||
label: "不限",
|
label: "不限",
|
||||||
value: 8,
|
value: 8,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "初中及以下",
|
label: "初中及以下",
|
||||||
value: 7,
|
value: 7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "中专/中技",
|
label: "中专/中技",
|
||||||
value: 6,
|
value: 6,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "高中",
|
label: "高中",
|
||||||
value: 5,
|
value: 5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "大专",
|
label: "大专",
|
||||||
value: 4,
|
value: 4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "本科",
|
label: "本科",
|
||||||
value: 3,
|
value: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "硕士",
|
label: "硕士",
|
||||||
value: 2,
|
value: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "博士",
|
label: "博士",
|
||||||
value: 1,
|
value: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "MBA/EMBA",
|
label: "MBA/EMBA",
|
||||||
value: 0,
|
value: 0,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
const expeArr = [
|
const expeArr = [
|
||||||
[{
|
[{
|
||||||
label: "不限经验",
|
label: "不限经验",
|
||||||
value: "不限经验",
|
value: "不限经验",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "1年以下",
|
label: "1年以下",
|
||||||
value: "1年以下",
|
value: "1年以下",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "1~3年",
|
label: "1~3年",
|
||||||
value: "1~3年",
|
value: "1~3年",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "3~5年",
|
label: "3~5年",
|
||||||
value: "3~5年",
|
value: "3~5年",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "5~10年",
|
label: "5~10年",
|
||||||
value: "5~10年",
|
value: "5~10年",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "10年以上",
|
label: "10年以上",
|
||||||
value: "10年以上",
|
value: "10年以上",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
const companyEnum = [
|
const companyEnum = [{
|
||||||
{ value: 1, label: "机关/事业单位" },
|
value: 1,
|
||||||
{ value: 2, label: "国有企业" },
|
label: "机关/事业单位"
|
||||||
{ value: 3, label: "私营企业" },
|
},
|
||||||
{ value: 4, label: "外商及港澳台投资企业" },
|
{
|
||||||
{ value: 5, label: "股份制企业" },
|
value: 2,
|
||||||
{ value: 6, label: "学校/下级学院" },
|
label: "国有企业"
|
||||||
{ value: 7, label: "医院" },
|
},
|
||||||
{ value: 8, label: "律师事务所" },
|
{
|
||||||
{ value: 9, label: "银行" },
|
value: 3,
|
||||||
{ value: 10, label: "非盈利社会组织" },
|
label: "私营企业"
|
||||||
{ value: 11, 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 = [[
|
const wageUnitCategoryState = [
|
||||||
{ id: 1, label: "元/人·时", disable: false },
|
[{
|
||||||
{ id: 2, label: "元/人·天", disable: false },
|
id: 1,
|
||||||
{ id: 3, label: "元/人·月", disable: false },
|
label: "元/人·时",
|
||||||
{ id: 4, label: "其他", disable: false },
|
disable: false
|
||||||
// { value: 0, label: "元/人·次", disable: true },
|
},
|
||||||
// { value: 4, label: "元/人·周", disable: true },
|
{
|
||||||
// { value: 5, label: "元/人·个", disable: true },
|
id: 2,
|
||||||
// { value: 6, label: "元/人·件", disable: true },
|
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 = [[
|
const workwageUnitCategoryState = [
|
||||||
// { id: 1, label: "元/人·时", disable: false },
|
[
|
||||||
// { id: 2, label: "元/人·天", disable: false },
|
// { id: 1, label: "元/人·时", disable: false },
|
||||||
{ id: 3, label: "元/人·月", disable: true },
|
// { id: 2, label: "元/人·天", disable: false },
|
||||||
{ id: 4, label: "其他", disable: true },
|
{
|
||||||
// { value: 0, label: "元/人·次", disable: true },
|
id: 3,
|
||||||
// { value: 4, label: "元/人·周", disable: true },
|
label: "元/人·月",
|
||||||
// { value: 5, label: "元/人·个", disable: true },
|
disable: true
|
||||||
// { value: 6, 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 {
|
export default {
|
||||||
salary,
|
salary,
|
||||||
taskSalary,
|
taskSalary,
|
||||||
tradeArr,
|
tradeArr,
|
||||||
natureArr,
|
natureArr,
|
||||||
ageArr,
|
ageArr,
|
||||||
eduArr,
|
eduArr,
|
||||||
expeArr,
|
expeArr,
|
||||||
companyEnum,
|
companyEnum,
|
||||||
wageUnitCategoryState,
|
wageUnitCategoryState,
|
||||||
workwageUnitCategoryState
|
workwageUnitCategoryState,
|
||||||
|
addressColumn
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,38 +1,44 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<view class="select">用工单位发布招工</view>
|
<view class="select">企业申请认证后</view>
|
||||||
<view class="select-text">提交申请资料,通过认证后可快速发布招工信息</view>
|
<view class="select-text">即可发布零工任务或者发布正规岗位</view>
|
||||||
<!-- <view class="block" @click="next(0)">
|
<!-- <view class="block" @click="next(0)">
|
||||||
<img src="../../static/img/zhao_icon1.png" alt="" />
|
<img src="../../static/img/zhao_icon1.png" alt="" />
|
||||||
<view class="block-text">个体户招工</view>
|
<view class="block-text">个体户招工</view>
|
||||||
</view> -->
|
</view> -->
|
||||||
<view class="block" @click="next(1)">
|
<view class="block" @click="next(1)">
|
||||||
<img src="../../static/img/zhao_icon2.png" alt="" />
|
<img src="../../static/img/zhao_icon2.png" alt="" />
|
||||||
<view class="block-text" style="background-color: #4171F9;">我要招工</view>
|
<view class="block-text" style="background-color: #4171F9;">企业招工</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {seeIsHaveCodep} from '@/api/userrecruit.js'
|
import {
|
||||||
import { mapState } from 'vuex'
|
seeIsHaveCodep
|
||||||
|
} from '@/api/userrecruit.js'
|
||||||
|
import {
|
||||||
|
mapState
|
||||||
|
} from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState({idNumber: (state) => state.auth.authInfo.idNumber}),
|
|
||||||
},
|
},
|
||||||
methods: {
|
computed: {
|
||||||
next(type) {
|
...mapState({
|
||||||
switch (type){
|
idNumber: (state) => state.auth.authInfo.idNumber
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
next(type) {
|
||||||
|
switch (type) {
|
||||||
case 0:
|
case 0:
|
||||||
this.isHaveCode(this.idNumber).then(() => {
|
this.isHaveCode(this.idNumber).then(() => {
|
||||||
this.$store.commit('setEnterprise', type)
|
this.$store.commit('setEnterprise', type)
|
||||||
this.navTo('/pages/recruit/subPage/index?type=none')
|
this.navTo('/pages/recruit/subPage/index?type=none')
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@@ -44,66 +50,77 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
isHaveCode(idNumber) {
|
isHaveCode(idNumber) {
|
||||||
uni.showLoading({ title:'请求中' })
|
uni.showLoading({
|
||||||
return new Promise(async(resolve, reject) => {
|
title: '请求中'
|
||||||
let resData = await seeIsHaveCodep({idNumber})
|
})
|
||||||
|
return new Promise(async (resolve, reject) => {
|
||||||
|
let resData = await seeIsHaveCodep({
|
||||||
|
idNumber
|
||||||
|
})
|
||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
if(resData.data.code === 200) {
|
if (resData.data.code === 200) {
|
||||||
if (false && resData.data.data) {
|
if (false && resData.data.data) {
|
||||||
resolve()
|
resolve()
|
||||||
} else {
|
} else {
|
||||||
// this.$api.msg('您未申请开通该功能,请联系工作人员')
|
// this.$api.msg('您未申请开通该功能,请联系工作人员')
|
||||||
this.navTo('/pages/recruit/subPage/enterpriceCertification/enterpriceCertification')
|
this.navTo(
|
||||||
|
'/pages/recruit/subPage/enterpriceCertification/enterpriceCertification'
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
reject()
|
reject()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.container {
|
.container {
|
||||||
padding: 60rpx;
|
padding: 60rpx;
|
||||||
.select {
|
|
||||||
font-size: 36rpx;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.select-text {
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #999;
|
|
||||||
margin-top: 10rpx;
|
|
||||||
}
|
|
||||||
.block {
|
|
||||||
width: 100%;
|
|
||||||
height: 300rpx;
|
|
||||||
border-radius: 20rpx;
|
|
||||||
background-color: #f3f4f8;
|
|
||||||
margin: 40rpx auto;
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
.block-text {
|
|
||||||
color: #fff;
|
|
||||||
font-size: 26rpx;
|
|
||||||
position: absolute;
|
|
||||||
width: 180rpx;
|
|
||||||
height: 60rpx;
|
|
||||||
border-radius: 30rpx;
|
|
||||||
background-color: #45D4B6;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 60rpx;
|
|
||||||
right: 20rpx;
|
|
||||||
top: 50%;
|
|
||||||
margin-top: -30rpx;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
width: 300rpx;
|
|
||||||
margin-left: 50rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
.select {
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select-text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.block {
|
||||||
|
width: 100%;
|
||||||
|
height: 300rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
background-color: #f3f4f8;
|
||||||
|
margin: 40rpx auto;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.block-text {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 26rpx;
|
||||||
|
position: absolute;
|
||||||
|
width: 180rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
background-color: #45D4B6;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 60rpx;
|
||||||
|
right: 20rpx;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 300rpx;
|
||||||
|
margin-left: 50rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1,54 +1,100 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="">
|
<view class="">
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<u--form labelPosition="left" :model="model1" :rules="rules" ref="uForm">
|
<u--form labelPosition="left" :model="formData" :rules="rules" ref="uForm">
|
||||||
<u-form-item label="企业名称" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
<view class="card">
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
<view class="card_title">企业信息</view>
|
||||||
</u-form-item>
|
<u-form-item label="企业名称" labelWidth="100" prop="comname" borderBottom ref="item1">
|
||||||
<u-form-item label="统一信用代码" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
<u--input v-model="formData.comname" placeholder="请输入企业名称"></u--input>
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
</u-form-item>
|
||||||
</u-form-item>
|
<u-form-item label="统一信用代码" labelWidth="100" prop="companyTid" borderBottom ref="item1">
|
||||||
<u-form-item label="法人姓名" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
<u--input v-model="formData.companyTid" placeholder="请输入统一信用代码"></u--input>
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
</u-form-item>
|
||||||
</u-form-item>
|
<u-form-item label="法人姓名" labelWidth="100" prop="masterName" borderBottom ref="item1">
|
||||||
<u-form-item label="法人身份证号" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
<u--input v-model="formData.masterName" placeholder="请输入法人姓名"></u--input>
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
</u-form-item>
|
||||||
</u-form-item>
|
<u-form-item label="法人身份证号" labelWidth="100" prop="masterIdentity" borderBottom ref="item1">
|
||||||
<u-form-item label="所在地区" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
<u--input v-model="formData.masterIdentity" placeholder="请输入法人身份证号"></u--input>
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
</u-form-item>
|
||||||
</u-form-item>
|
<u-form-item label="所在地区" labelWidth="100" prop="cityId" borderBottom ref="item1"
|
||||||
<u-form-item label="详细地址" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
@click="showAddress = true; hideKeyboard()">
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
<PickerList placeholder="请选择所在地区" :columns="dic.addressColumn" :visibel="showAddress"
|
||||||
</u-form-item>
|
v-model="formData.cityId" @cancel="showAddress = false">
|
||||||
<u-form-item label="联系人" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
</PickerList>
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
</u-form-item>
|
||||||
</u-form-item>
|
<u-form-item label="详细地址" labelWidth="100" prop="companyAddress" borderBottom ref="item1">
|
||||||
<u-form-item label="手机号码" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
<u--input v-model="formData.companyAddress" placeholder="请输入详细地址"></u--input>
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
</u-form-item>
|
||||||
</u-form-item>
|
<u-form-item label="企业性质" labelWidth="100" prop="nature" borderBottom ref="item1"
|
||||||
<u-form-item label="企业性质" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
@click="showJobCompanyNature = true; hideKeyboard()">
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
<PickerList placeholder="请选择企业性质" :columns="[dic.companyEnum]" :visibel="showJobCompanyNature"
|
||||||
</u-form-item>
|
v-model="formData.nature" @cancel="showJobCompanyNature = false">
|
||||||
<u-form-item label="行业" labelWidth="100" prop="userInfo.name" borderBottom ref="item1">
|
</PickerList>
|
||||||
<u--input v-model="formData.name" placeholder="请输入企业名称"></u--input>
|
</u-form-item>
|
||||||
</u-form-item>
|
<u-form-item label="行业" labelWidth="100" prop="tradeId" borderBottom ref="item1"
|
||||||
<u-form-item label="企业介绍" labelWidth="100" labelPosition="top" prop="userInfo.name" borderBottom
|
@click="showjobCompanyIndustry = true; hideKeyboard()">
|
||||||
ref="item1">
|
<PickerList placeholder="请选择行业" :columns="dic.tradeArr" labelName="name" valueName="id"
|
||||||
<u--textarea v-model="formData.name" placeholder="请输入内容"></u--textarea>
|
:visibel="showjobCompanyIndustry" v-model="formData.tradeId"
|
||||||
</u-form-item>
|
@cancel="showjobCompanyIndustry = false">
|
||||||
|
</PickerList>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="企业介绍" labelWidth="100" labelPosition="top" prop="companyDesc" borderBottom
|
||||||
|
ref="item1">
|
||||||
|
<u--textarea v-model="formData.companyDesc" placeholder="请输入内容"></u--textarea>
|
||||||
|
</u-form-item>
|
||||||
|
</view>
|
||||||
|
<view class="card">
|
||||||
|
<view class="card_title">用户信息</view>
|
||||||
|
<u-form-item label="联系人" labelWidth="100" prop="manager" borderBottom ref="item1">
|
||||||
|
<u--input v-model="formData.manager" placeholder="请输入联系人"></u--input>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item label="手机号码" labelWidth="100" prop="telphone" borderBottom ref="item1">
|
||||||
|
<u--input v-model="formData.telphone" placeholder="请输入手机号码"></u--input>
|
||||||
|
</u-form-item>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card">
|
||||||
|
<view class="card_title">相关资料</view>
|
||||||
|
<view class="card_content">
|
||||||
|
<UploadIdNumber v-model="formData.identityUrl4Id" backImg="/static/img/idcard.png">
|
||||||
|
</UploadIdNumber>
|
||||||
|
<UploadIdNumber v-model="formData.identityUrl5Id" backImg="/static/img/backidcard1.png">
|
||||||
|
</UploadIdNumber>
|
||||||
|
<UploadIdNumber v-model="formData.authUrlId" backImg="/static/img/idcard.png"></UploadIdNumber>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="card">
|
||||||
|
<u-button type="primary" text="提交" customStyle="margin-top: 50px" @click="submit"></u-button>
|
||||||
|
<u-button type="error" text="重置" customStyle="margin-top: 10px" @click="reset"></u-button>
|
||||||
|
</view>
|
||||||
</u--form>
|
</u--form>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import UploadIdNumber from './uploadIdNumber.vue';
|
||||||
|
import dic from '@/common/dic.js'
|
||||||
|
import PickerList from './pickerList.vue';
|
||||||
|
import {
|
||||||
|
addInviteCompanyAuth
|
||||||
|
} from '@/api/userrecruit.js'
|
||||||
const rules = []
|
const rules = []
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from 'vuex'
|
} from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
|
components: {
|
||||||
|
UploadIdNumber,
|
||||||
|
PickerList
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
showAddress: false,
|
||||||
|
showJobCompanyNature: false,
|
||||||
|
showjobCompanyIndustry: false,
|
||||||
|
dic,
|
||||||
formData: {},
|
formData: {},
|
||||||
rules
|
rules
|
||||||
};
|
};
|
||||||
@@ -60,16 +106,60 @@
|
|||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.formData.manager = this.authInfo.realName
|
||||||
|
this.formData.idNumber = this.authInfo.idNumber
|
||||||
|
console.log(this.authInfo)
|
||||||
|
console.log(this.userInfo)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
hideKeyboard() {
|
||||||
}
|
uni.hideKeyboard()
|
||||||
|
},
|
||||||
|
async submit() {
|
||||||
|
let data = {
|
||||||
|
...this.formData,
|
||||||
|
nature: Number(this.formData.nature),
|
||||||
|
cityId: Number(this.formData.cityId),
|
||||||
|
tradeId: Number(this.formData.tradeId),
|
||||||
|
}
|
||||||
|
let params = {
|
||||||
|
// auth: this.authInfo.authValue
|
||||||
|
}
|
||||||
|
let resData = await addInviteCompanyAuth({
|
||||||
|
params,
|
||||||
|
data
|
||||||
|
})
|
||||||
|
console.log(resData)
|
||||||
|
},
|
||||||
|
reset() {
|
||||||
|
const _this = this
|
||||||
|
uni.showModal({
|
||||||
|
content: '重置将清空表单,确定重置吗?',
|
||||||
|
success() {
|
||||||
|
_this.formData = {}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.content {
|
.content {
|
||||||
padding: 24rpx;
|
padding: 24rpx;
|
||||||
|
|
||||||
|
.card {
|
||||||
|
.card_title {
|
||||||
|
font-weight: bold;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card_content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
72
pages/recruit/subPage/enterpriceCertification/pickerList.vue
Normal file
72
pages/recruit/subPage/enterpriceCertification/pickerList.vue
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<template>
|
||||||
|
<view style="width: 100%">
|
||||||
|
<u--input :value="valueEnum[value]" disabledColor="#ffffff" :placeholder="placeholder"></u--input>
|
||||||
|
<u-picker :show="visibel" :keyName="labelName" :columns="columns" @confirm="skillConfirm" @cancel="skillClose"
|
||||||
|
@close="skillClose"></u-picker>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
valueEnum: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
valueName: {
|
||||||
|
type: String,
|
||||||
|
default: 'value'
|
||||||
|
},
|
||||||
|
labelName: {
|
||||||
|
type: String,
|
||||||
|
default: 'label'
|
||||||
|
},
|
||||||
|
placeholder: {
|
||||||
|
type: String,
|
||||||
|
require: ''
|
||||||
|
},
|
||||||
|
visibel: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
columns: {
|
||||||
|
type: Array,
|
||||||
|
require: true
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: String,
|
||||||
|
require: ''
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
type: Function
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (Array.isArray(this.columns)) {
|
||||||
|
this.columns.map((item) => {
|
||||||
|
item.map((child) => {
|
||||||
|
this.valueEnum[child[this.valueName]] = child[this.labelName]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
skillConfirm({
|
||||||
|
index,
|
||||||
|
value,
|
||||||
|
values
|
||||||
|
}) {
|
||||||
|
this.$emit("input", String(value[0][this.valueName]));
|
||||||
|
this.$emit("cancel");
|
||||||
|
},
|
||||||
|
skillClose() {
|
||||||
|
this.$emit("cancel");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<u-upload :fileList="ImgUrl" @afterRead="afterRead" :deletable="true" @delete="deletePic" name="6" :maxCount="1"
|
||||||
|
width="280" height="150">
|
||||||
|
<image :src="backImg" mode="widthFix" style="width: 280px;height: 150px;"></image>
|
||||||
|
</u-upload>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
uploadFile
|
||||||
|
} from '@/api/upload.js'
|
||||||
|
export default {
|
||||||
|
name: 'UploadIdNumber',
|
||||||
|
props: {
|
||||||
|
backImg: {
|
||||||
|
type: String,
|
||||||
|
require: true,
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: String,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
ImgUrl(val) {
|
||||||
|
return this.value ? [this.value] : []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
afterRead({
|
||||||
|
file,
|
||||||
|
index,
|
||||||
|
name
|
||||||
|
}) {
|
||||||
|
// this.$emit("input", file);
|
||||||
|
uploadFile(file).then((url) => {
|
||||||
|
this.$emit("input", url);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deletePic() {
|
||||||
|
this.$emit("input", null);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.content {
|
||||||
|
margin: 20rpx 0 0 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
BIN
static/font/font_2225171_8kdcwk4po24.ttf
Normal file
BIN
static/font/font_2225171_8kdcwk4po24.ttf
Normal file
Binary file not shown.
BIN
static/img/backidcard1.png
Normal file
BIN
static/img/backidcard1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.5 KiB |
BIN
static/img/idcard.png
Normal file
BIN
static/img/idcard.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -1,241 +1,244 @@
|
|||||||
import {
|
import {
|
||||||
isURL,
|
isURL,
|
||||||
validatenull
|
validatenull
|
||||||
} from '@/untils/validate.js'
|
} from '@/untils/validate.js'
|
||||||
import website from '@/config/website'
|
import website from '@/config/website'
|
||||||
import {
|
import {
|
||||||
loginByUsername,
|
loginByUsername,
|
||||||
getUserInfo,
|
getUserInfo,
|
||||||
logout,
|
logout,
|
||||||
refreshToken
|
refreshToken
|
||||||
} from '@/api/user'
|
} from '@/api/user'
|
||||||
import md5 from 'js-md5'
|
import md5 from 'js-md5'
|
||||||
import {
|
import {
|
||||||
getStore,
|
getStore,
|
||||||
setStore
|
setStore
|
||||||
} from '@/untils/store.js'
|
} from '@/untils/store.js'
|
||||||
import {
|
import {
|
||||||
calcDate
|
calcDate
|
||||||
} from '@/untils/date.js'
|
} from '@/untils/date.js'
|
||||||
|
|
||||||
let refreshTimer = null;
|
let refreshTimer = null;
|
||||||
|
|
||||||
function startRefreshToken(dispatch) {
|
function startRefreshToken(dispatch) {
|
||||||
refreshTimer = setInterval(() => {
|
refreshTimer = setInterval(() => {
|
||||||
const token =
|
const token =
|
||||||
getStore({
|
getStore({
|
||||||
name: "token",
|
name: "token",
|
||||||
debug: true
|
debug: true
|
||||||
}) || {};
|
}) || {};
|
||||||
const date = calcDate(token.datetime, new Date().getTime());
|
const date = calcDate(token.datetime, new Date().getTime());
|
||||||
if (validatenull(date)) return;
|
if (validatenull(date)) return;
|
||||||
if (date.seconds >= website.tokenTime) {
|
if (date.seconds >= website.tokenTime) {
|
||||||
dispatch("refreshToken")
|
dispatch("refreshToken")
|
||||||
.then(() => {})
|
.then(() => {})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
}
|
}
|
||||||
}, 10000);
|
}, 10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
function stopRefreshToken() {
|
function stopRefreshToken() {
|
||||||
clearInterval(refreshTimer)
|
clearInterval(refreshTimer)
|
||||||
}
|
}
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
state: {
|
state: {
|
||||||
tenantId: getStore({
|
tenantId: getStore({
|
||||||
name: 'tenantId'
|
name: 'tenantId'
|
||||||
}) || '',
|
}) || '',
|
||||||
userInfo: getStore({
|
userInfo: getStore({
|
||||||
name: 'userInfo'
|
name: 'userInfo'
|
||||||
}) || [],
|
}) || [],
|
||||||
token: getStore({
|
token: getStore({
|
||||||
name: 'token'
|
name: 'token'
|
||||||
}) || '',
|
}) || '',
|
||||||
refreshToken: getStore({
|
refreshToken: getStore({
|
||||||
name: 'refreshToken'
|
name: 'refreshToken'
|
||||||
}) || '',
|
}) || '',
|
||||||
userChecked:getStore({
|
userChecked: getStore({
|
||||||
name: 'setUserCheckValue'
|
name: 'setUserCheckValue'
|
||||||
}) || false,
|
}) || false,
|
||||||
sendTimes:getStore({//用户发送短信次数
|
sendTimes: getStore({ //用户发送短信次数
|
||||||
name:'setUserSendTimes'
|
name: 'setUserSendTimes'
|
||||||
}) || 0,
|
}) || 0,
|
||||||
seeEnterprise: getStore({//用户发送短信次数
|
seeEnterprise: getStore({ //用户发送短信次数
|
||||||
name:'enterprise'
|
name: 'enterprise'
|
||||||
}) || 0, // 0 个体招工 ; 企业招工
|
}) || 0, // 0 个体招工 ; 企业招工
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
//用户点击radio按钮
|
//用户点击radio按钮
|
||||||
UserCheckedBtn({commit},val){
|
UserCheckedBtn({
|
||||||
commit('SET_USER_CHECKED',val);
|
commit
|
||||||
},
|
}, val) {
|
||||||
//根据用户名登录
|
commit('SET_USER_CHECKED', val);
|
||||||
LoginByUsername({
|
},
|
||||||
commit,
|
//根据用户名登录
|
||||||
dispatch
|
LoginByUsername({
|
||||||
}, userInfo) {
|
commit,
|
||||||
return new Promise((resolve, reject) => {
|
dispatch
|
||||||
loginByUsername(userInfo.tenantId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key,
|
}, userInfo) {
|
||||||
userInfo.code, userInfo.token).then(res => {
|
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;
|
const data = res.data;
|
||||||
if (data.error_description) {
|
if (data.error_description) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
icon: "none",
|
icon: "none",
|
||||||
title: data.error_description,
|
title: data.error_description,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
commit('SET_TOKEN', data.access_token);
|
commit('SET_TOKEN', data.access_token);
|
||||||
commit('SET_REFRESH_TOKEN', data.refresh_token);
|
commit('SET_REFRESH_TOKEN', data.refresh_token);
|
||||||
commit('SET_TENANT_ID', data.tenant_id);
|
commit('SET_TENANT_ID', data.tenant_id);
|
||||||
commit('SET_USER_INFO', data);
|
commit('SET_USER_INFO', data);
|
||||||
dispatch('refreshAuthState')
|
dispatch('refreshAuthState')
|
||||||
dispatch('startRefreshNewsTimer')
|
dispatch('startRefreshNewsTimer')
|
||||||
startRefreshToken();
|
startRefreshToken();
|
||||||
}
|
}
|
||||||
resolve(res);
|
resolve(res);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
reject(error);
|
reject(error);
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//根据手机号登录
|
//根据手机号登录
|
||||||
LoginByPhone({
|
LoginByPhone({
|
||||||
commit
|
commit
|
||||||
}, userInfo) {
|
}, userInfo) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
loginByUsername(userInfo.phone, userInfo.code).then(res => {
|
loginByUsername(userInfo.phone, userInfo.code).then(res => {
|
||||||
const data = res.data.data;
|
const data = res.data.data;
|
||||||
commit('SET_TOKEN', data);
|
commit('SET_TOKEN', data);
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
GetUserInfo({
|
GetUserInfo({
|
||||||
commit
|
commit
|
||||||
}) {
|
}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
getUserInfo().then((res) => {
|
getUserInfo().then((res) => {
|
||||||
const data = res.data.data;
|
const data = res.data.data;
|
||||||
resolve(data);
|
resolve(data);
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
reject(err);
|
reject(err);
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//刷新token
|
//刷新token
|
||||||
refreshToken({
|
refreshToken({
|
||||||
state,
|
state,
|
||||||
commit,
|
commit,
|
||||||
dispatch
|
dispatch
|
||||||
}) {
|
}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
refreshToken(state.refreshToken, state.tenantId).then(res => {
|
refreshToken(state.refreshToken, state.tenantId).then(res => {
|
||||||
const data = res.data;
|
const data = res.data;
|
||||||
dispatch('refreshAuthState')
|
dispatch('refreshAuthState')
|
||||||
commit('SET_TOKEN', data.access_token);
|
commit('SET_TOKEN', data.access_token);
|
||||||
commit('SET_REFRESH_TOKEN', data.refresh_token);
|
commit('SET_REFRESH_TOKEN', data.refresh_token);
|
||||||
resolve();
|
resolve();
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
reject(error)
|
reject(error)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 登出
|
// 登出
|
||||||
LogOut({
|
LogOut({
|
||||||
dispatch,
|
dispatch,
|
||||||
commit
|
commit
|
||||||
}) {
|
}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
logout();
|
logout();
|
||||||
stopRefreshToken();
|
stopRefreshToken();
|
||||||
commit('SET_TOKEN', '');
|
commit('SET_TOKEN', '');
|
||||||
commit('SET_VIPCODE', '0');
|
commit('SET_VIPCODE', '0');
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//注销session
|
//注销session
|
||||||
FedLogOut({
|
FedLogOut({
|
||||||
commit
|
commit
|
||||||
}) {
|
}) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
commit('SET_TOKEN', '');
|
commit('SET_TOKEN', '');
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
startRefreshTokenTimer({
|
startRefreshTokenTimer({
|
||||||
state,
|
state,
|
||||||
commit,
|
commit,
|
||||||
dispatch
|
dispatch
|
||||||
}) {
|
}) {
|
||||||
if (state.token) {
|
if (state.token) {
|
||||||
dispatch('refreshToken').then(() => {
|
dispatch('refreshToken').then(() => {
|
||||||
startRefreshToken(dispatch);
|
startRefreshToken(dispatch);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//更新用户接收短信次数
|
//更新用户接收短信次数
|
||||||
UpdateUserSendTimes({
|
UpdateUserSendTimes({
|
||||||
commit
|
commit
|
||||||
}, data) {
|
}, data) {
|
||||||
commit('SET_USER_SENDTIMES',data);
|
commit('SET_USER_SENDTIMES', data);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
setEnterprise(state, val) { // 0 个体招工 ; 企业招工
|
setEnterprise(state, val) { // 0 个体招工 ; 企业招工
|
||||||
state.seeEnterprise = val;
|
state.seeEnterprise = val;
|
||||||
setStore({
|
setStore({
|
||||||
name: 'enterprise',
|
name: 'enterprise',
|
||||||
content: val,
|
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
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
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
|
export default user
|
||||||
@@ -3,20 +3,20 @@ module.exports = {
|
|||||||
port: 1887,
|
port: 1887,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
target: 'http://10.165.0.173:8000',
|
target: 'http://192.168.1.106:8000',
|
||||||
ws: true,
|
ws: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/api': '/'
|
'^/api': '/'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'/qq/map': {
|
'/qq/map': {
|
||||||
//本地服务接口地址
|
//本地服务接口地址
|
||||||
target: 'https://apis.map.qq.com',
|
target: 'https://apis.map.qq.com',
|
||||||
ws: true,
|
ws: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/qq/map': '/'
|
'^/qq/map': '/'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user