flat: 暂存

This commit is contained in:
Apcallover
2024-03-24 23:38:33 +08:00
parent c0bed3ad7f
commit fb6772bf81
6 changed files with 303 additions and 39 deletions

View File

@@ -69,3 +69,18 @@ export const seeIsHaveCodep = (params) => {
params 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
})
}

View File

@@ -119,7 +119,7 @@
<u-picker :show="showTrade" ref="tradePicker" keyName="name" :columns="tradeColumns" @confirm="tradeConfirm" <u-picker :show="showTrade" ref="tradePicker" keyName="name" :columns="tradeColumns" @confirm="tradeConfirm"
@cancel="tradeClose" @close="tradeClose"> @cancel="tradeClose" @close="tradeClose">
</u-picker> </u-picker>
<u-picker :show="showSkills" ref="skillPicker" keyName="name" :columns="skillColumns" <u-picker :show="showSkills" ref="skillPicker" keyName="name" :columns="skillColumns" @change="skillsChange"
@confirm="skillConfirm" @cancel="skillClose" @close="skillClose"> @confirm="skillConfirm" @cancel="skillClose" @close="skillClose">
</u-picker> </u-picker>
<!-- <u-popup :show="showDesc" @close="closeDesc" @open="openDesc"> <!-- <u-popup :show="showDesc" @close="closeDesc" @open="openDesc">
@@ -146,7 +146,7 @@
<script> <script>
import dic from '@/common/dic.js' import dic from '@/common/dic.js'
import { submitInfo } from '@/api/userrecruit.js' import { submitInfo, getWorktypesBaseList } from '@/api/userrecruit.js'
export default { export default {
data() { data() {
return { return {
@@ -217,6 +217,7 @@
wageColumns: dic.taskSalary, wageColumns: dic.taskSalary,
tradeColumns: dic.tradeArr, tradeColumns: dic.tradeArr,
skillColumns: [], skillColumns: [],
skillColumnsIndex: [0,0],
natureColumns: dic.natureArr, natureColumns: dic.natureArr,
ageColumns: dic.ageArr, ageColumns: dic.ageArr,
eduColumns: dic.eduArr, eduColumns: dic.eduArr,
@@ -288,6 +289,32 @@
}, },
} }
}, },
props: {
company: {
default: null,
}
},
created() {
if(this.company) {
const { manager, companyTid, companyName, companyDesc, telphone } = this.company
this.info.jobCompanyScale = companyTid
this.info.jobCompanyName = companyName
this.info.callName = manager
this.info.callTel = telphone
this.info.jobCompanyDescription = companyDesc
}
this.getWorkTypes()
},
watch: {
company(val) {
if(!val) return;
const { companyId, companyTid, companyName } = val
this.info.jobCompanyScale = companyTid
this.info.jobCompanyScale = companyTid
this.info.jobCompanyName = companyName
}
},
methods: { methods: {
wageConfirm(e) { wageConfirm(e) {
const { const {
@@ -302,7 +329,10 @@
this.info.tradeNames = value[0].name this.info.tradeNames = value[0].name
this.showTrade = false this.showTrade = false
}, },
skillConfirm() { skillConfirm(e) {
const { value, indexs } = e
this.skillColumnsIndex = indexs
this.info.skillNames = this.getSkilDataNameWhereId(indexs).join('-')
this.showSkills = false this.showSkills = false
}, },
// openDesc() { // openDesc() {
@@ -424,10 +454,18 @@
// }).catch(errors => { // }).catch(errors => {
// uni.$u.toast('校验失败') // uni.$u.toast('校验失败')
// }) // })
this.info.jobType = 2 const names = this.getSkilDataNameWhereId( this.skillColumnsIndex, true)
// console.log(this.info) const ids = this.getSkilDataNameWhereId( this.skillColumnsIndex, false)
this.info.jobType = 2
let params = {
...this.info,
worktypeIds: ids[0], // 工种一级id
skillIds: ids[1], // 工种二级id
worktypeNames: names[0], // 工种名称
skillNames: names[1], // 工种二级名称
}
let that = this let that = this
submitInfo(this.info).then(res => { submitInfo(params).then(res => {
if(res.data.code == 200) { if(res.data.code == 200) {
that.reset() that.reset()
uni.$u.toast('发布成功') uni.$u.toast('发布成功')
@@ -471,7 +509,48 @@
}, },
hideKeyboard() { hideKeyboard() {
uni.hideKeyboard() uni.hideKeyboard()
} },
skillsChange(e) {
const { columnIndex, index, picker = this.$refs.uPicker } = e
let [ index1, index2 ] = this.skillColumnsIndex
switch (columnIndex) {
case 0:
index1 = index;
index2 = 0
break
case 1:
index2 = index;
break
}
const Indexs = [index1, index2]
picker.setColumnValues(1, this.skillData[index1].child.map((item) => item.name))
this.skillColumnsIndex = Indexs
},
getSkilDataNameWhereId(Indexs, type = true) {
if(!this.skillData) {return}
const [ index1, index2 ] = Indexs
const work1 = this.skillData[index1]
const work2 = work1.child[index2]
if(type) {
return [work1.name, work2.name]
} else {
return [work1.id, work2.id]
}
},
async getWorkTypes() {
let resData = await getWorktypesBaseList({type: 1})
if(resData.data.code === 200) {
const { data } = resData.data
const arr = []
// 1、 空间换时间策略/user/userrecruit/saveApp
arr.push(data.map((item) => item.name));
arr.push(data[0].child.map((item) => item.name))
this.skillColumnsIndex = [0, 0]
this.skillData = data
this.skillColumns = arr
}
}
} }
} }
</script> </script>

View File

@@ -41,14 +41,14 @@
<view v-if="activeTab == 0" class="u-demo-block" style="padding: 20rpx;padding-bottom: 140rpx;"> <view v-if="activeTab == 0" class="u-demo-block" style="padding: 20rpx;padding-bottom: 140rpx;">
<!-- <view>发布任务</view> --> <!-- <view>发布任务</view> -->
<Task></Task> <Task :company="companyInfo"></Task>
</view> </view>
<view v-if="activeTab == 1" class="u-demo-block" style="padding: 20rpx;padding-bottom: 140rpx;"> <view v-if="activeTab == 1" class="u-demo-block" style="padding: 20rpx;padding-bottom: 140rpx;">
<!-- <view>发布岗位</view> --> <!-- <view>发布岗位</view> -->
<Work></Work> <Work :company="companyInfo"></Work>
</view> </view>
<view v-if="activeTab == 2" class="u-demo-block" style="padding: 20rpx;padding-bottom: 140rpx;"> <view v-if="activeTab == 2" class="u-demo-block" style="padding: 20rpx;padding-bottom: 140rpx;">
<Person></Person> <Person :company="companyInfo"></Person>
</view> </view>
</view> </view>
<!-- <view style="font-size: 36rpx;color: #000;font-weight: bold;padding: 0 20rpx;">招工指引</view> <!-- <view style="font-size: 36rpx;color: #000;font-weight: bold;padding: 0 20rpx;">招工指引</view>
@@ -84,6 +84,7 @@
import Work from './work.vue' // 发布岗位 import Work from './work.vue' // 发布岗位
import Person from './person.vue' // 个体户招工 import Person from './person.vue' // 个体户招工
import { mapState } from 'vuex' import { mapState } from 'vuex'
import {getUserCompanyInfo} from '@/api/userrecruit.js'
export default { export default {
components: {CustomTabbar, CustomNavbar, Task, Work, Person}, components: {CustomTabbar, CustomNavbar, Task, Work, Person},
data() { data() {
@@ -93,6 +94,7 @@
fileList1: [], fileList1: [],
nonReactiveArray: ["发布任务", "发布岗位", "个体户招工"], nonReactiveArray: ["发布任务", "发布岗位", "个体户招工"],
activeTab: 0, activeTab: 0,
companyInfo: null,
} }
}, },
onLoad({type}) { onLoad({type}) {
@@ -103,9 +105,13 @@
this.activeTab = 2 this.activeTab = 2
} }
// this.getList('refresh') // this.getList('refresh')
this.getInfo()
}, },
computed: { computed: {
...mapState({enterprise: (state) => state.user.seeEnterprise}), ...mapState({
enterprise: (state) => state.user.seeEnterprise,
idNumber: (state) => state.auth.authInfo.idNumber
})
}, },
methods: { methods: {
back() { back() {
@@ -116,6 +122,13 @@
changeTab: function (e) { changeTab: function (e) {
this.activeTab = e; this.activeTab = e;
}, },
async getInfo() {
let resData = await getUserCompanyInfo({idNumber: this.idNumber})
if(resData.data.code === 200) {
if(!resData.data.data.length) return;
this.companyInfo = resData.data.data[0]
}
}
} }
} }
</script> </script>

View File

@@ -117,7 +117,7 @@
<u-picker :show="showTrade" ref="tradePicker" keyName="name" :columns="tradeColumns" @confirm="tradeConfirm" <u-picker :show="showTrade" ref="tradePicker" keyName="name" :columns="tradeColumns" @confirm="tradeConfirm"
@cancel="tradeClose" @close="tradeClose"> @cancel="tradeClose" @close="tradeClose">
</u-picker> </u-picker>
<u-picker :show="showSkills" ref="skillPicker" keyName="name" :columns="skillColumns" <u-picker :show="showSkills" ref="skillPicker" keyName="name" :columns="skillColumns" @change="skillsChange"
@confirm="skillConfirm" @cancel="skillClose" @close="skillClose"> @confirm="skillConfirm" @cancel="skillClose" @close="skillClose">
</u-picker> </u-picker>
<!-- <u-picker :show="showNature" ref="naturePicker" :columns="natureColumns" <!-- <u-picker :show="showNature" ref="naturePicker" :columns="natureColumns"
@@ -142,7 +142,7 @@
<script> <script>
import dic from '@/common/dic.js' import dic from '@/common/dic.js'
import { submitInfo } from '@/api/userrecruit.js' import { submitInfo, getWorktypesBaseList } from '@/api/userrecruit.js'
export default { export default {
data() { data() {
return { return {
@@ -211,6 +211,7 @@
wageColumns: dic.taskSalary, wageColumns: dic.taskSalary,
tradeColumns: dic.tradeArr, tradeColumns: dic.tradeArr,
skillColumns: [], skillColumns: [],
skillColumnsIndex: [0, 0],
natureColumns: dic.natureArr, natureColumns: dic.natureArr,
ageColumns: dic.ageArr, ageColumns: dic.ageArr,
eduColumns: dic.eduArr, eduColumns: dic.eduArr,
@@ -282,7 +283,33 @@
}, },
} }
}, },
props: {
company: {
default: null,
}
},
created() {
if(this.company) {
this.backfill(this.company)
}
this.getWorkTypes()
},
watch: {
company(val) {
if(!val) return;
this.backfill(val)
}
},
methods: { methods: {
backfill(info) {
const { manager, companyTid, companyName, companyDesc, telphone } = info
this.info.jobCompanyScale = companyTid
this.info.jobCompanyName = companyName
this.info.callName = manager
this.info.callTel = telphone
this.info.jobCompanyDescription = companyDesc
},
wageConfirm(e) { wageConfirm(e) {
const { const {
value value
@@ -296,7 +323,10 @@
this.info.tradeNames = value[0].name this.info.tradeNames = value[0].name
this.showTrade = false this.showTrade = false
}, },
skillConfirm() { skillConfirm(e) {
const { value, indexs } = e
this.skillColumnsIndex = indexs
this.info.skillNames = this.getSkilDataNameWhereId(indexs).join('-')
this.showSkills = false this.showSkills = false
}, },
// natureConfirm(e) { // natureConfirm(e) {
@@ -412,9 +442,18 @@
// }).catch(errors => { // }).catch(errors => {
// uni.$u.toast('校验失败') // uni.$u.toast('校验失败')
// }) // })
this.info.jobType = 0 const names = this.getSkilDataNameWhereId( this.skillColumnsIndex, true)
const ids = this.getSkilDataNameWhereId( this.skillColumnsIndex, false)
this.info.jobType = 0
let params = {
...this.info,
worktypeIds: ids[0], // 工种一级id
skillIds: ids[1], // 工种二级id
worktypeNames: names[0], // 工种名称
skillNames: names[1], // 工种二级名称
}
let that = this let that = this
submitInfo(this.info).then(res => { submitInfo(params).then(res => {
if(res.data.code == 200) { if(res.data.code == 200) {
that.reset() that.reset()
uni.$u.toast('发布成功') uni.$u.toast('发布成功')
@@ -463,7 +502,48 @@
}, },
hideKeyboard() { hideKeyboard() {
uni.hideKeyboard() uni.hideKeyboard()
} },
skillsChange(e) {
const { columnIndex, index, picker = this.$refs.uPicker } = e
let [ index1, index2 ] = this.skillColumnsIndex
switch (columnIndex) {
case 0:
index1 = index;
index2 = 0
break
case 1:
index2 = index;
break
}
const Indexs = [index1, index2]
picker.setColumnValues(1, this.skillData[index1].child.map((item) => item.name))
this.skillColumnsIndex = Indexs
},
getSkilDataNameWhereId(Indexs, type = true) {
if(!this.skillData) {return}
const [ index1, index2 ] = Indexs
const work1 = this.skillData[index1]
const work2 = work1.child[index2]
if(type) {
return [work1.name, work2.name]
} else {
return [work1.id, work2.id]
}
},
async getWorkTypes() {
let resData = await getWorktypesBaseList({type: 1})
if(resData.data.code === 200) {
const { data } = resData.data
const arr = []
// 1、 空间换时间策略/user/userrecruit/saveApp
arr.push(data.map((item) => item.name));
arr.push(data[0].child.map((item) => item.name))
this.skillColumnsIndex = [0, 0]
this.skillData = data
this.skillColumns = arr
}
}
} }
} }
</script> </script>

View File

@@ -36,12 +36,14 @@
border="none"></u--input> border="none"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon> <u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item> </u-form-item>
<u-form-item label="工种" prop="skillNames" labelWidth="80" borderBottom <u-form-item label="工种" prop="skillNames" labelWidth="80" borderBottom
@click="showSkills = true; hideKeyboard()" ref="item4"> @click="showSkills = true; hideKeyboard()" ref="item4">
<u--input v-model="info.skillNames" disabledColor="#ffffff" placeholder="请选择工种" <u--input v-model="info.skillNames" disabledColor="#ffffff" placeholder="请选择工种"
border="none"></u--input> border="none"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon> <u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item> </u-form-item>
<u-form-item label="岗位描述" prop="jobDescription" borderBottom labelWidth="80" ref="item1"> <u-form-item label="岗位描述" prop="jobDescription" borderBottom labelWidth="80" ref="item1">
<!-- <u--textarea v-model="info.jobDescription" placeholder="请输入岗位描述"></u--textarea> --> <!-- <u--textarea v-model="info.jobDescription" placeholder="请输入岗位描述"></u--textarea> -->
<!-- <u--input v-model="info.jobDescription" border="none" placeholder="请输入任务描述"></u--input> <!-- <u--input v-model="info.jobDescription" border="none" placeholder="请输入任务描述"></u--input>
@@ -117,7 +119,7 @@
<u-picker :show="showTrade" ref="tradePicker" keyName="name" :columns="tradeColumns" @confirm="tradeConfirm" <u-picker :show="showTrade" ref="tradePicker" keyName="name" :columns="tradeColumns" @confirm="tradeConfirm"
@cancel="tradeClose" @close="tradeClose"> @cancel="tradeClose" @close="tradeClose">
</u-picker> </u-picker>
<u-picker :show="showSkills" ref="skillPicker" keyName="name" :columns="skillColumns" <u-picker :show="showSkills" ref="skillPicker" keyName="name" :columns="skillColumns" @change="skillsChange"
@confirm="skillConfirm" @cancel="skillClose" @close="skillClose"> @confirm="skillConfirm" @cancel="skillClose" @close="skillClose">
</u-picker> </u-picker>
<!-- <u-picker :show="showNature" ref="naturePicker" :columns="natureColumns" <!-- <u-picker :show="showNature" ref="naturePicker" :columns="natureColumns"
@@ -142,7 +144,7 @@
<script> <script>
import dic from '@/common/dic.js' import dic from '@/common/dic.js'
import { submitInfo } from '@/api/userrecruit.js' import { submitInfo, getWorktypesBaseList } from '@/api/userrecruit.js'
export default { export default {
data() { data() {
return { return {
@@ -212,6 +214,7 @@
wageColumns: dic.taskSalary, wageColumns: dic.taskSalary,
tradeColumns: dic.tradeArr, tradeColumns: dic.tradeArr,
skillColumns: [], skillColumns: [],
skillColumnsIndex: [0,0,0],
natureColumns: dic.natureArr, natureColumns: dic.natureArr,
ageColumns: dic.ageArr, ageColumns: dic.ageArr,
eduColumns: dic.eduArr, eduColumns: dic.eduArr,
@@ -283,6 +286,22 @@
}, },
} }
}, },
props: {
company: {
default: null,
}
},
created() {
this.getWorkTypes()
if(this.company) {
const { companyTid, companyName, manager, telphone, companyDesc } = this.company
this.info.jobCompanyScale = companyTid
this.info.jobCompanyName = companyName
this.info.callName = manager
this.info.callTel = telphone
this.info.jobCompanyDescription = companyDesc
}
},
methods: { methods: {
wageConfirm(e) { wageConfirm(e) {
const { const {
@@ -297,7 +316,10 @@
this.info.tradeNames = value[0].name this.info.tradeNames = value[0].name
this.showTrade = false this.showTrade = false
}, },
skillConfirm() { skillConfirm(e) {
const { value, indexs } = e
this.skillColumnsIndex = indexs
this.info.skillNames = this.getSkilDataNameWhereId(indexs).join('-')
this.showSkills = false this.showSkills = false
}, },
// natureConfirm(e) { // natureConfirm(e) {
@@ -413,15 +435,34 @@
// }).catch(errors => { // }).catch(errors => {
// uni.$u.toast('校验失败') // uni.$u.toast('校验失败')
// }) // })
const names = this.getSkilDataNameWhereId( this.skillColumnsIndex, true)
const ids = this.getSkilDataNameWhereId( this.skillColumnsIndex, false)
this.info.jobType = 1 this.info.jobType = 1
let params = {
...this.info,
worktypeIds: ids.join(','),
worktypeNames: names.join(',')
}
let that = this let that = this
submitInfo(this.info).then(res => { submitInfo(params).then(res => {
if(res.data.code == 200) { if(res.data.code == 200) {
that.reset() that.reset()
uni.$u.toast('发布成功') uni.$u.toast('发布成功')
} }
}) })
}, },
getSkilDataNameWhereId(Indexs, type = true) {
if(!this.skillData) {return}
const [ index1, index2, index3 ] = Indexs
const work1 = this.skillData[index1]
const work2 = work1.child[index2]
const work3 = work2.child[index3]
if(type) {
return [work1.name, work2.name, work3.name]
} else {
return [work1.id, work2.id, work3.id]
}
},
reset() { reset() {
const validateList = [ const validateList = [
'jobName', 'jobName',
@@ -459,7 +500,43 @@
}, },
hideKeyboard() { hideKeyboard() {
uni.hideKeyboard() uni.hideKeyboard()
} },
skillsChange(e) {
const { columnIndex, index, picker = this.$refs.uPicker } = e
let [ index1, index2, index3 ] = this.skillColumnsIndex
switch (columnIndex) {
case 0:
index1 = index;
index2 = 0
index3 = 0
break
case 1:
index2 = index;
index3 = 0
break
case 2:
index3 = index
break
}
const Indexs = [index1, index2, index3]
picker.setColumnValues(1, this.skillData[index1].child.map((item) => item.name))
picker.setColumnValues(2, this.skillData[index1].child[index2].child.map((item) => item.name))
this.skillColumnsIndex = Indexs
},
async getWorkTypes() {
let resData = await getWorktypesBaseList({type: 2})
if(resData.data.code === 200) {
const { data } = resData.data
const arr = []
// 1、 空间换时间策略/user/userrecruit/saveApp
arr.push(data.map((item) => item.name));
arr.push(data[0].child.map((item) => item.name))
arr.push(data[0].child[0].child.map((item) => item.name))
this.skillColumnsIndex = [0, 0, 0]
this.skillData = data
this.skillColumns = arr
}
}
} }
} }
</script> </script>

View File

@@ -5,8 +5,8 @@ module.exports = {
'/api': { '/api': {
// target: 'http://192.168.3.108:8000', // 本地服务接口地址 // target: 'http://192.168.3.108:8000', // 本地服务接口地址
// target: 'http://192.168.3.112:8000', // 本地服务接口地址 // target: 'http://192.168.3.112:8000', // 本地服务接口地址
target: 'http://10.165.0.173:8000', // 本地服务接口地址 // target: 'http://10.165.0.173:8000', // 本地服务接口地址
// target: 'http://192.168.1.106:8000', // 本地服务接口地址 target: 'http://192.168.1.106:8000', // 本地服务接口地址
// target: 'http://192.168.3.120:8000', // 本地服务接口地址 // target: 'http://192.168.3.120:8000', // 本地服务接口地址
ws: true, ws: true,
pathRewrite: { pathRewrite: {