flat: cityId 合并
This commit is contained in:
57
src/components/city-cascader/label.vue
Normal file
57
src/components/city-cascader/label.vue
Normal file
@@ -0,0 +1,57 @@
|
||||
<template>
|
||||
<el-cascader
|
||||
:options="area.labelData"
|
||||
:show-all-levels="showAllLevels"
|
||||
v-model="county"
|
||||
:filterable="filterable"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
:clearable="clearable"
|
||||
></el-cascader>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters} from "vuex";
|
||||
|
||||
export default {
|
||||
props: {
|
||||
value: String,
|
||||
filterable: Boolean,
|
||||
placeholder: String,
|
||||
showAllLevels: {type: Boolean, default: true},
|
||||
disabled: Boolean,
|
||||
clearable: Boolean,
|
||||
splicer: {
|
||||
type: String,
|
||||
default: "-"
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: [],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.$store.dispatch("InitArea");
|
||||
},
|
||||
watch: {},
|
||||
computed: {
|
||||
...mapGetters(["area"]),
|
||||
county: {
|
||||
get() {
|
||||
if (this.value) {
|
||||
return this.value.split(this.splicer);
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
},
|
||||
set(val) {
|
||||
this.$emit("input", val.join(this.splicer));
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
11
src/main.js
11
src/main.js
@@ -18,6 +18,7 @@ import App from './App';
|
||||
import basicBlock from './components/basic-block/main'
|
||||
import basicContainer from './components/basic-container/main'
|
||||
import cityCascader from './components/city-cascader/main'
|
||||
import cityLabelCascader from './components/city-cascader/label'
|
||||
import goBack from './components/go-back/main'
|
||||
import tagSelect from './components/tag-select/main'
|
||||
import tooltip from './components/tooltip/index'
|
||||
@@ -39,8 +40,9 @@ Vue.component('basicContainer', basicContainer);
|
||||
Vue.component('basicBlock', basicBlock);
|
||||
Vue.component('jl-go-back', goBack);
|
||||
Vue.component('jl-city-cascader', cityCascader);
|
||||
Vue.component('tag-select',tagSelect)
|
||||
Vue.component('tool-tip',tooltip)
|
||||
Vue.component('jl-cityLabel-cascader', cityLabelCascader);
|
||||
Vue.component('tag-select', tagSelect)
|
||||
Vue.component('tool-tip', tooltip)
|
||||
// 加载相关url地址
|
||||
Object.keys(urls).forEach(key => {
|
||||
Vue.prototype[key] = urls[key];
|
||||
@@ -52,10 +54,11 @@ Vue.prototype.website = website;
|
||||
// loadStyle(iconfontUrl.replace('$key', ele));
|
||||
// });
|
||||
// 睡眠函数
|
||||
function sleep (time) {
|
||||
function sleep(time) {
|
||||
return new Promise((resolve) => setTimeout(resolve, time))
|
||||
}
|
||||
Vue.prototype.$api = { sleep }
|
||||
|
||||
Vue.prototype.$api = {sleep}
|
||||
Vue.config.productionTip = false;
|
||||
|
||||
new Vue({router, store, i18n, render: h => h(App)}).$mount('#app')
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
function format(data) {
|
||||
const result = [];
|
||||
const dic = {'0': {label: 'root', value: '0', children: result}};
|
||||
const labelResult = []
|
||||
const labelChild = {'0': {label: 'root', value: '0', children: labelResult}};
|
||||
|
||||
data.forEach(item => {
|
||||
if (item.layer > 3) {
|
||||
@@ -27,15 +29,26 @@ function format(data) {
|
||||
} else {
|
||||
dic[item.areaId] = node;
|
||||
}
|
||||
node.valueId = node.value
|
||||
node.value = item.areaName
|
||||
if (labelChild.hasOwnProperty(item.parentId)) {
|
||||
if (!labelChild[item.parentId].children) {
|
||||
labelChild[item.parentId].children = [];
|
||||
}
|
||||
labelChild[item.parentId].children.push(node);
|
||||
} else {
|
||||
labelChild[item.parentId] = {children: [node]};
|
||||
}
|
||||
});
|
||||
return {data: result, dic};
|
||||
return {data: result, dic, labelData: labelResult};
|
||||
}
|
||||
|
||||
let loaded = false
|
||||
|
||||
const area = {
|
||||
state: {data: [], dic: {}},
|
||||
actions: {InitArea({commit}) {
|
||||
state: {data: [], dic: {}, labelData: []},
|
||||
actions: {
|
||||
InitArea({commit}) {
|
||||
if (!loaded) {
|
||||
loaded = true
|
||||
import('@/util/area').then((resp) => {
|
||||
@@ -48,9 +61,10 @@ const area = {
|
||||
SET_AREA: (state, data) => {
|
||||
state.data = data.data
|
||||
state.dic = data.dic
|
||||
state.labelData = data.labelData
|
||||
},
|
||||
},
|
||||
getters:{
|
||||
getters: {
|
||||
getAreaParents: (state) => (id) => {
|
||||
const res = [];
|
||||
let item = state.dic[id];
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
@submit="submit"
|
||||
>
|
||||
<template slot="cityId" slot-scope="{ disabled }">
|
||||
<jl-city-cascader
|
||||
<jl-cityLabel-cascader
|
||||
:disabled="disabled"
|
||||
filterable
|
||||
v-model="obj.cityId"
|
||||
placeholder="请选择 工作地址"
|
||||
></jl-city-cascader>
|
||||
></jl-cityLabel-cascader>
|
||||
</template>
|
||||
|
||||
<template slot-scope="{ disabled }" slot="skillIds">
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
ref="form"
|
||||
@submit="submit"
|
||||
>
|
||||
<!-- <template slot="userNature">
|
||||
<el-select v-model="obj.userNature">
|
||||
<el-option v-for="(item,index) in userNatureList" :key="index" :label="item.label" :value="item.value">{{item.label}}</el-option>
|
||||
</el-select>
|
||||
</template> -->
|
||||
<!-- <template slot="userNature">
|
||||
<el-select v-model="obj.userNature">
|
||||
<el-option v-for="(item,index) in userNatureList" :key="index" :label="item.label" :value="item.value">{{item.label}}</el-option>
|
||||
</el-select>
|
||||
</template> -->
|
||||
<!-- <template slot-scope="{ disabled }" slot="wage">
|
||||
<el-input
|
||||
placeholder="请输入 参考工资"
|
||||
@@ -48,18 +48,19 @@
|
||||
</el-input>
|
||||
</template> -->
|
||||
|
||||
<template slot="city" slot-scope="{ disabled }">
|
||||
<jl-city-cascader
|
||||
<template slot="cityId" slot-scope="{ disabled }">
|
||||
<jl-cityLabel-cascader
|
||||
:disabled="disabled"
|
||||
filterable
|
||||
v-model="obj.city"
|
||||
v-model="obj.cityId"
|
||||
placeholder="请选择 工作地址"
|
||||
></jl-city-cascader>
|
||||
></jl-cityLabel-cascader>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="wage">
|
||||
<el-input placeholder="请输入工资" type="number" v-model="obj.wage" class="input-with-select">
|
||||
<el-input placeholder="请输入工资" type="number" v-model="obj.wage" class="input-with-select">
|
||||
<el-select v-model="obj.wageUnitCategory" slot="append" placeholder="请选择" @change="getMaxAndMin">
|
||||
<el-option :label="item.label" v-for="item in wageUnitCategory" :key="item.value" :value="item.value"></el-option>
|
||||
<el-option :label="item.label" v-for="item in wageUnitCategory" :key="item.value"
|
||||
:value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</template>
|
||||
@@ -78,7 +79,7 @@
|
||||
<select-map
|
||||
ref="selectMap"
|
||||
@addAddress="addAddress"
|
||||
@addressDel = "addressDel"
|
||||
@addressDel="addressDel"
|
||||
@input="inputAddress"
|
||||
:isCanEdit="!disabled"
|
||||
:lng="obj.lon"
|
||||
@@ -108,27 +109,27 @@
|
||||
<!-- 工种 -->
|
||||
<template slot="worktypeIds">
|
||||
<div class="tradeId">
|
||||
<el-autocomplete
|
||||
popper-class="my-autocomplete"
|
||||
v-model.trim="workTypeState"
|
||||
:fetch-suggestions="querySearchAsyncWorkType"
|
||||
placeholder="请选择工种"
|
||||
@select="handleSelectWorkType"
|
||||
show-word-limit
|
||||
:disabled = "worktypeDisabled"
|
||||
>
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
:disabled = "workTypeBtnState"
|
||||
slot="suffix"
|
||||
@click="handleIconClickWorkType"
|
||||
size="mini"
|
||||
>+添加</el-button> -->
|
||||
<!-- <i class="el-icon-arrow-down" slot="suffix" @click="handleIconClickArrowDown"></i> -->
|
||||
<template slot-scope="{ item }">
|
||||
<div class="name">{{item.value}}</div>
|
||||
</template>
|
||||
</el-autocomplete>
|
||||
<el-autocomplete
|
||||
popper-class="my-autocomplete"
|
||||
v-model.trim="workTypeState"
|
||||
:fetch-suggestions="querySearchAsyncWorkType"
|
||||
placeholder="请选择工种"
|
||||
@select="handleSelectWorkType"
|
||||
show-word-limit
|
||||
:disabled="worktypeDisabled"
|
||||
>
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
:disabled = "workTypeBtnState"
|
||||
slot="suffix"
|
||||
@click="handleIconClickWorkType"
|
||||
size="mini"
|
||||
>+添加</el-button> -->
|
||||
<!-- <i class="el-icon-arrow-down" slot="suffix" @click="handleIconClickArrowDown"></i> -->
|
||||
<template slot-scope="{ item }">
|
||||
<div class="name">{{ item.value }}</div>
|
||||
</template>
|
||||
</el-autocomplete>
|
||||
</div>
|
||||
</template>
|
||||
<!--/自定义表单-->
|
||||
@@ -138,7 +139,8 @@
|
||||
icon="el-icon-circle-close"
|
||||
@click="drawer = false"
|
||||
:loading="disabled"
|
||||
>取消</el-button
|
||||
>取消
|
||||
</el-button
|
||||
>
|
||||
</template>
|
||||
</avue-form>
|
||||
@@ -146,12 +148,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { add, detail, update, tradeListAdd,getMounthDays, getDictionary} from "@/api/tenant/postzp";
|
||||
import { getTrade, getWork, getSkillList, getWorkTypes} from "@/api/tenant/common";
|
||||
import {add, detail, update, tradeListAdd, getMounthDays, getDictionary} from "@/api/tenant/postzp";
|
||||
import {getTrade, getWork, getSkillList, getWorkTypes} from "@/api/tenant/common";
|
||||
import SkillSelect from "../Dialog/Skill";
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { isvalidatemobile } from "@/util/validate";
|
||||
import { mapGetters } from "vuex";
|
||||
import {isvalidatemobile} from "@/util/validate";
|
||||
import {mapGetters} from "vuex";
|
||||
import {
|
||||
wageUnitCategoryState,
|
||||
wageOptionsMonth,
|
||||
@@ -175,19 +177,19 @@ export default {
|
||||
id: "",
|
||||
title: "",
|
||||
type: "",
|
||||
tradeBtnState:true,
|
||||
workTypeBtnState:true,
|
||||
worktypeDisabled:true,
|
||||
tradeBtnState: true,
|
||||
workTypeBtnState: true,
|
||||
worktypeDisabled: true,
|
||||
selectedSkillIds: [],
|
||||
selectedName: [],
|
||||
selectedSkills: [],
|
||||
tradeData: [],
|
||||
tradeNameAttr:[],
|
||||
tradeIdAttr:[],
|
||||
tradeNameAttr: [],
|
||||
tradeIdAttr: [],
|
||||
workData: [],
|
||||
workDataNameAttr:[],
|
||||
workDataIdAttr:[],
|
||||
skillIdAttr:[],
|
||||
workDataNameAttr: [],
|
||||
workDataIdAttr: [],
|
||||
skillIdAttr: [],
|
||||
obj: {
|
||||
wage: 0,
|
||||
wageUnitCategory: 3,
|
||||
@@ -195,20 +197,20 @@ export default {
|
||||
ageDesc: "不限年龄",
|
||||
education: 7,
|
||||
experienceDesc: "不限经验",
|
||||
tradeId:null,
|
||||
tradeId: null,
|
||||
tradeNames: null,
|
||||
userNature:"灵活用工",
|
||||
userNature: "灵活用工",
|
||||
},
|
||||
loading: false,
|
||||
drawer: false,
|
||||
wageUnitCategory: wageUnitCategoryState,
|
||||
restaurants: [],
|
||||
tradeState: '',
|
||||
workTypeState:'',
|
||||
timeout: null,
|
||||
days:null,//某个月份的天数
|
||||
endTimeFlag:true,
|
||||
stimeDate:null,
|
||||
workTypeState: '',
|
||||
timeout: null,
|
||||
days: null,//某个月份的天数
|
||||
endTimeFlag: true,
|
||||
stimeDate: null,
|
||||
workTypesNameList: [],
|
||||
wallMaxAndMin: []
|
||||
};
|
||||
@@ -227,12 +229,12 @@ export default {
|
||||
if (val) {
|
||||
getWork(val).then((res) => {
|
||||
this.workData = res;
|
||||
this.workDataNameAttr = res.map((ele)=>{
|
||||
return ele.name
|
||||
})
|
||||
this.workDataIdAttr = res.map((ele)=>{
|
||||
return ele.id
|
||||
})
|
||||
this.workDataNameAttr = res.map((ele) => {
|
||||
return ele.name
|
||||
})
|
||||
this.workDataIdAttr = res.map((ele) => {
|
||||
return ele.id
|
||||
})
|
||||
this.worktypeDisabled = false;
|
||||
if (val !== oldval && oldval) {
|
||||
this.obj.worktypeIds = "";
|
||||
@@ -245,15 +247,17 @@ export default {
|
||||
// "obj.wageUnitCategory": function () {
|
||||
// if (this.$refs.form) this.$refs.form.$refs.form.validateField("wage");
|
||||
// },
|
||||
"stimeDate":function(n){
|
||||
if(n){
|
||||
getMounthDays(n).then(res=>{
|
||||
this.days=res.data.data;
|
||||
})
|
||||
"stimeDate": function (n) {
|
||||
if (n) {
|
||||
getMounthDays(n).then(res => {
|
||||
this.days = res.data.data;
|
||||
})
|
||||
}
|
||||
},
|
||||
wallMaxAndMin(val) {
|
||||
if(!val.length) {return;}
|
||||
if (!val.length) {
|
||||
return;
|
||||
}
|
||||
switch (true) {
|
||||
case this.obj.wage < Math.min(...val):
|
||||
this.obj.wage = Math.min(...val)
|
||||
@@ -390,7 +394,7 @@ export default {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
const validatePass = (rule, value, callback)=>{
|
||||
const validatePass = (rule, value, callback) => {
|
||||
let specialKey = "[`~#$^&*()=|{}\\[\\]<>/~#¥……&*()——|{}【】《》%@‘”“']‘'";
|
||||
let flagValue = true;
|
||||
for (var i = 0; i < value.length; i++) {
|
||||
@@ -398,14 +402,14 @@ export default {
|
||||
flagValue = false;
|
||||
}
|
||||
}
|
||||
if( flagValue){
|
||||
if (flagValue) {
|
||||
callback();
|
||||
}else{
|
||||
} else {
|
||||
callback(new Error('岗位名称不能输入特殊字符'));
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
};
|
||||
return {
|
||||
emptyBtn: false,
|
||||
menuPosition: "right",
|
||||
@@ -433,7 +437,7 @@ export default {
|
||||
message: "长度在 3到 30 个字",
|
||||
trigger: "blur",
|
||||
},
|
||||
{ validator: validatePass, trigger: 'blur' }
|
||||
{validator: validatePass, trigger: 'blur'}
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -454,14 +458,13 @@ export default {
|
||||
);
|
||||
},
|
||||
},
|
||||
blur:({value})=>{
|
||||
self.obj.etime='';
|
||||
if(value){
|
||||
self.stimeDate=value.split(' ')[0]
|
||||
self.endTimeFlag=false
|
||||
}
|
||||
else{
|
||||
self.endTimeFlag=true
|
||||
blur: ({value}) => {
|
||||
self.obj.etime = '';
|
||||
if (value) {
|
||||
self.stimeDate = value.split(' ')[0]
|
||||
self.endTimeFlag = false
|
||||
} else {
|
||||
self.endTimeFlag = true
|
||||
}
|
||||
},
|
||||
|
||||
@@ -483,12 +486,12 @@ export default {
|
||||
valueFormat: "yyyy-MM-dd 00:00:00",
|
||||
pickerOptions: {
|
||||
disabledDate(time) {
|
||||
if(!self.obj.stime){
|
||||
if (!self.obj.stime) {
|
||||
return true
|
||||
}
|
||||
if(self.days){
|
||||
if (self.days) {
|
||||
// let mutiply=1000*60*60*24;
|
||||
return !( time.getTime() > Date.now() && (!self.startTime || (time.getTime() > self.startTime )))
|
||||
return !(time.getTime() > Date.now() && (!self.startTime || (time.getTime() > self.startTime)))
|
||||
}
|
||||
},
|
||||
},
|
||||
@@ -811,7 +814,7 @@ export default {
|
||||
{
|
||||
label: "工作地址",
|
||||
type: "input",
|
||||
prop: "city",
|
||||
prop: "cityId",
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
@@ -849,7 +852,9 @@ export default {
|
||||
wageBlur(e) {
|
||||
const value = e.target.value
|
||||
const val = this.wallMaxAndMin
|
||||
if(!val.length) {return;}
|
||||
if (!val.length) {
|
||||
return;
|
||||
}
|
||||
switch (true) {
|
||||
case this.obj.wage < Math.min(...val):
|
||||
this.obj.wage = Math.min(...val)
|
||||
@@ -863,9 +868,9 @@ export default {
|
||||
let params = {
|
||||
code: `wages_limit_${this.obj.wageUnitCategory}`
|
||||
}
|
||||
const arr = []
|
||||
const arr = []
|
||||
const resData = await getDictionary(params)
|
||||
if(resData.data.code === 200) {
|
||||
if (resData.data.code === 200) {
|
||||
resData.data.data.map((item) => {
|
||||
arr.push(Number(item.dictKey))
|
||||
})
|
||||
@@ -878,12 +883,12 @@ export default {
|
||||
workSkillList(res) {
|
||||
this.workTypesNameList = res.data
|
||||
const Deliver = (children, obj = {}) => {
|
||||
children.forEach((item) => {
|
||||
obj[item.id] = item.name
|
||||
if (item.child) {
|
||||
return Deliver(item.child, obj)
|
||||
}
|
||||
})
|
||||
children.forEach((item) => {
|
||||
obj[item.id] = item.name
|
||||
if (item.child) {
|
||||
return Deliver(item.child, obj)
|
||||
}
|
||||
})
|
||||
return obj
|
||||
}
|
||||
this.workTypesNameObj = Deliver(res.data)
|
||||
@@ -893,127 +898,127 @@ export default {
|
||||
querySearchAsync(queryString, cb) {
|
||||
let results = [];
|
||||
let tradeNameState = this.tradeNameAttr.indexOf(queryString);
|
||||
if(tradeNameState == -1){
|
||||
if (tradeNameState == -1) {
|
||||
this.tradeBtnState = false;
|
||||
}else{
|
||||
} else {
|
||||
this.tradeBtnState = true;
|
||||
}
|
||||
for(let i of this.tradeData){
|
||||
i.value = i.name;
|
||||
}
|
||||
results = queryString ? this.tradeData.filter(this.createStateFilter(queryString)) : this.tradeData;
|
||||
cb(results);
|
||||
},
|
||||
//工种筛选
|
||||
querySearchAsyncWorkType(queryString, cb){
|
||||
for (let i of this.tradeData) {
|
||||
i.value = i.name;
|
||||
}
|
||||
results = queryString ? this.tradeData.filter(this.createStateFilter(queryString)) : this.tradeData;
|
||||
cb(results);
|
||||
},
|
||||
//工种筛选
|
||||
querySearchAsyncWorkType(queryString, cb) {
|
||||
|
||||
let results = [];
|
||||
let workDataNameState = this.workDataNameAttr.indexOf(queryString);
|
||||
if(workDataNameState == -1){
|
||||
this.workTypeBtnState = false;
|
||||
}else{
|
||||
this.workTypeBtnState = true;
|
||||
}
|
||||
for(let i of this.workData){
|
||||
i.value = i.name;
|
||||
}
|
||||
results = queryString ? this.workData.filter(this.createStateFilter(queryString)) : this.workData;
|
||||
cb(results);
|
||||
},
|
||||
createStateFilter(queryString) {
|
||||
return (state) => {
|
||||
return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
||||
};
|
||||
},
|
||||
//行业类型
|
||||
handleSelect(item) {
|
||||
this.tradeBtnState = true;
|
||||
this.obj.tradeId = item.id;
|
||||
this.obj.tradeNames = item.name;
|
||||
},
|
||||
//工种
|
||||
handleSelectWorkType(item){
|
||||
let results = [];
|
||||
let workDataNameState = this.workDataNameAttr.indexOf(queryString);
|
||||
if (workDataNameState == -1) {
|
||||
this.workTypeBtnState = false;
|
||||
} else {
|
||||
this.workTypeBtnState = true;
|
||||
this.obj.worktypeIds = item.id;
|
||||
},
|
||||
//点击行业类型添加按钮
|
||||
handleIconClick() {
|
||||
this.$message.closeAll();
|
||||
let nameState = this.tradeNameAttr.indexOf(this.tradeState)
|
||||
if(this.tradeState == ""){
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "请输入要添加的行业类型!",
|
||||
})
|
||||
}else if(nameState != -1){
|
||||
}
|
||||
for (let i of this.workData) {
|
||||
i.value = i.name;
|
||||
}
|
||||
results = queryString ? this.workData.filter(this.createStateFilter(queryString)) : this.workData;
|
||||
cb(results);
|
||||
},
|
||||
createStateFilter(queryString) {
|
||||
return (state) => {
|
||||
return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
||||
};
|
||||
},
|
||||
//行业类型
|
||||
handleSelect(item) {
|
||||
this.tradeBtnState = true;
|
||||
this.obj.tradeId = item.id;
|
||||
this.obj.tradeNames = item.name;
|
||||
},
|
||||
//工种
|
||||
handleSelectWorkType(item) {
|
||||
this.workTypeBtnState = true;
|
||||
this.obj.worktypeIds = item.id;
|
||||
},
|
||||
//点击行业类型添加按钮
|
||||
handleIconClick() {
|
||||
this.$message.closeAll();
|
||||
let nameState = this.tradeNameAttr.indexOf(this.tradeState)
|
||||
if (this.tradeState == "") {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "请输入要添加的行业类型!",
|
||||
})
|
||||
} else if (nameState != -1) {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "此行业类型已存在,请在列表中选择!",
|
||||
})
|
||||
} else {
|
||||
tradeListAdd(this.tradeState).then((res) => {
|
||||
if (res.data.code == 200) {
|
||||
this.obj.tradeId = res.data.data;
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: res.data.msg,
|
||||
})
|
||||
this.tradeBtnState = true;
|
||||
this.initData();
|
||||
//this.$refs.form.clearValidate('tradeId');
|
||||
this.clearValidator('tradeId');
|
||||
} else {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "此行业类型已存在,请在列表中选择!",
|
||||
})
|
||||
}else{
|
||||
tradeListAdd(this.tradeState).then((res) =>{
|
||||
if(res.data.code == 200){
|
||||
this.obj.tradeId = res.data.data;
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: res.data.msg,
|
||||
})
|
||||
this.tradeBtnState = true;
|
||||
this.initData();
|
||||
//this.$refs.form.clearValidate('tradeId');
|
||||
this.clearValidator('tradeId');
|
||||
}else{
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: res.data.msg,
|
||||
})
|
||||
}
|
||||
message: res.data.msg,
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
//点击工种添加按钮
|
||||
// handleIconClickWorkType() {
|
||||
// this.$message.closeAll();
|
||||
// let nameState = this.workDataNameAttr.indexOf(this.workTypeState)
|
||||
// if(this.workTypeState == ""){
|
||||
// this.$message({
|
||||
// type: "error",
|
||||
// message: "请输入要添加的工种!",
|
||||
// })
|
||||
// }else if(nameState != -1){
|
||||
// this.$message({
|
||||
// type: "error",
|
||||
// message: "此工种已存在,请在列表中选择!",
|
||||
// })
|
||||
// }else{
|
||||
// workListAdd(this.obj.tradeId,this.workTypeState).then((res) =>{
|
||||
// if(res.data.code == 200){
|
||||
// this.obj.worktypeIds = res.data.data;
|
||||
// this.$message({
|
||||
// type: "success",
|
||||
// message: res.data.msg,
|
||||
// })
|
||||
// this.workTypeBtnState = true;
|
||||
// this.clearValidator('worktypeIds');
|
||||
// getWork(this.obj.tradeId).then((res) => {
|
||||
// this.workData = res;
|
||||
// this.workDataNameAttr = res.map((ele)=>{
|
||||
// return ele.name
|
||||
// })
|
||||
// })
|
||||
// }else{
|
||||
// this.$message({
|
||||
// type: "error",
|
||||
// message: res.data.msg,
|
||||
// })
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
},
|
||||
//点击工种添加按钮
|
||||
// handleIconClickWorkType() {
|
||||
// this.$message.closeAll();
|
||||
// let nameState = this.workDataNameAttr.indexOf(this.workTypeState)
|
||||
// if(this.workTypeState == ""){
|
||||
// this.$message({
|
||||
// type: "error",
|
||||
// message: "请输入要添加的工种!",
|
||||
// })
|
||||
// }else if(nameState != -1){
|
||||
// this.$message({
|
||||
// type: "error",
|
||||
// message: "此工种已存在,请在列表中选择!",
|
||||
// })
|
||||
// }else{
|
||||
// workListAdd(this.obj.tradeId,this.workTypeState).then((res) =>{
|
||||
// if(res.data.code == 200){
|
||||
// this.obj.worktypeIds = res.data.data;
|
||||
// this.$message({
|
||||
// type: "success",
|
||||
// message: res.data.msg,
|
||||
// })
|
||||
// this.workTypeBtnState = true;
|
||||
// this.clearValidator('worktypeIds');
|
||||
// getWork(this.obj.tradeId).then((res) => {
|
||||
// this.workData = res;
|
||||
// this.workDataNameAttr = res.map((ele)=>{
|
||||
// return ele.name
|
||||
// })
|
||||
// })
|
||||
// }else{
|
||||
// this.$message({
|
||||
// type: "error",
|
||||
// message: res.data.msg,
|
||||
// })
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
// },
|
||||
// },
|
||||
//
|
||||
addressDel(){
|
||||
addressDel() {
|
||||
this.obj.address = "";
|
||||
},
|
||||
initData() {
|
||||
@@ -1021,10 +1026,10 @@ export default {
|
||||
this.loading = true;
|
||||
getTrade(this.userInfo.company_id).then((res) => {
|
||||
this.tradeData = res;
|
||||
this.tradeNameAttr = res.map((ele)=>{
|
||||
this.tradeNameAttr = res.map((ele) => {
|
||||
return ele.name
|
||||
})
|
||||
this.tradeIdAttr = res.map((ele)=>{
|
||||
this.tradeIdAttr = res.map((ele) => {
|
||||
return ele.id
|
||||
})
|
||||
this.loading = false;
|
||||
@@ -1047,7 +1052,7 @@ export default {
|
||||
ageDesc: "不限年龄",
|
||||
education: 7,
|
||||
experienceDesc: "不限经验",
|
||||
userNature:"灵活用工",
|
||||
userNature: "灵活用工",
|
||||
|
||||
};
|
||||
},
|
||||
@@ -1066,7 +1071,7 @@ export default {
|
||||
}
|
||||
},
|
||||
submit(row, done) {
|
||||
if(this.$refs.selectMap.addressLocation == ""){
|
||||
if (this.$refs.selectMap.addressLocation == "") {
|
||||
return this.$message({
|
||||
type: "error",
|
||||
message: "请选择详细地址!",
|
||||
@@ -1081,13 +1086,13 @@ export default {
|
||||
// });
|
||||
// let skillIds = ids.join(",");
|
||||
// let skillNames = name.join(",");
|
||||
if(this.skillArr && this.skillArr.length > 0) {
|
||||
if (this.skillArr && this.skillArr.length > 0) {
|
||||
this.skillArr.forEach(item => {
|
||||
if(item.id == row.workSkills[0]) {
|
||||
if (item.id == row.workSkills[0]) {
|
||||
row.worktypeNames = item.name
|
||||
if(item.child && item.child.length > 0) {
|
||||
if (item.child && item.child.length > 0) {
|
||||
item.child.forEach(item2 => {
|
||||
if(item2.id == row.workSkills[1]) {
|
||||
if (item2.id == row.workSkills[1]) {
|
||||
row.skillNames = item2.name;
|
||||
}
|
||||
})
|
||||
@@ -1096,9 +1101,9 @@ export default {
|
||||
})
|
||||
}
|
||||
|
||||
if(this.tradeData && this.tradeData.length > 0) {
|
||||
if (this.tradeData && this.tradeData.length > 0) {
|
||||
this.tradeData.forEach(item => {
|
||||
if(row.tradeId == item.id) {
|
||||
if (row.tradeId == item.id) {
|
||||
row.tradeNames = item.name
|
||||
}
|
||||
})
|
||||
@@ -1141,7 +1146,7 @@ export default {
|
||||
callName: row.callName,
|
||||
callTel: row.callTel,
|
||||
callNumber: row.callNumber,
|
||||
city: row.city,
|
||||
cityId: row.cityId,
|
||||
address: row.address,
|
||||
lat: row.lat,
|
||||
lon: row.lon,
|
||||
@@ -1190,7 +1195,7 @@ export default {
|
||||
callName: row.callName,
|
||||
callTel: row.callTel,
|
||||
callNumber: row.callNumber,
|
||||
city: row.city,
|
||||
cityId: row.cityId,
|
||||
address: row.address,
|
||||
lat: row.lat,
|
||||
lon: row.lon,
|
||||
@@ -1212,14 +1217,14 @@ export default {
|
||||
}
|
||||
|
||||
},
|
||||
clearValidator(val){
|
||||
clearValidator(val) {
|
||||
this.$refs.form.clearValidate(val);
|
||||
},
|
||||
onLoad(row, type) {
|
||||
this.type = type;
|
||||
this.id = row.id;
|
||||
this.$nextTick(() => {
|
||||
if(type!='edit'){
|
||||
if (type != 'edit') {
|
||||
// getLastTaskInfo().then(res=>{
|
||||
// const data=res.data.data;
|
||||
// this.obj.callName=data.callName;
|
||||
@@ -1240,58 +1245,58 @@ export default {
|
||||
this.drawer = true;
|
||||
let tradeIdState = this.tradeIdAttr.indexOf(this.obj.tradeId);
|
||||
//判断有无此行业
|
||||
if(tradeIdState == -1){
|
||||
if (tradeIdState == -1) {
|
||||
this.obj.tradeId = "";
|
||||
setTimeout(()=>{
|
||||
setTimeout(() => {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "此岗位所包含行业已经不存在,请重新选择!",
|
||||
})
|
||||
},1000);
|
||||
}else{
|
||||
}, 1000);
|
||||
} else {
|
||||
this.tradeState = this.obj.tradeNames;
|
||||
//判断有无此工种
|
||||
getWork(this.obj.tradeId).then((res) => {
|
||||
this.workData = res;
|
||||
this.workDataIdAttr = res.map((ele)=>{
|
||||
this.workDataIdAttr = res.map((ele) => {
|
||||
return ele.id
|
||||
})
|
||||
let workDataIdState = this.workDataIdAttr.indexOf(this.obj.worktypeIds);
|
||||
//判断有无此工种
|
||||
if(workDataIdState == -1){
|
||||
if (workDataIdState == -1) {
|
||||
this.obj.worktypeIds = "";
|
||||
setTimeout(()=>{
|
||||
setTimeout(() => {
|
||||
this.$message({
|
||||
type: "error",
|
||||
message: "此岗位所包含工种已经不存在,请重新选择!",
|
||||
})
|
||||
},1000);
|
||||
}else{
|
||||
}, 1000);
|
||||
} else {
|
||||
this.workTypeState = this.obj.worktypeNames;
|
||||
getSkillList(this.obj.worktypeIds).then((res) => {
|
||||
this.skillIdAttr = res.data.data.records.map((ele)=>{
|
||||
this.skillIdAttr = res.data.data.records.map((ele) => {
|
||||
return ele;
|
||||
});
|
||||
let newSelectedSkills = [];
|
||||
this.skillIdAttr.forEach((val) => {
|
||||
let selectedSkillsState = this.obj.selectedSkills.find(v => v.id == val.id);
|
||||
if(selectedSkillsState){
|
||||
if (selectedSkillsState) {
|
||||
newSelectedSkills.push(val);
|
||||
}
|
||||
})
|
||||
// 判断有无此技能
|
||||
if(newSelectedSkills.length == 0){
|
||||
if (newSelectedSkills.length == 0) {
|
||||
// setTimeout(()=>{
|
||||
// this.$message({
|
||||
// type: "error",
|
||||
// message: "此岗位所包含技能已经不存在,请重新选择!",
|
||||
// })
|
||||
// },1000);
|
||||
}else{
|
||||
} else {
|
||||
this.selectedSkills = newSelectedSkills;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
@@ -1303,11 +1308,11 @@ export default {
|
||||
ageDesc: "不限年龄",
|
||||
education: 7,
|
||||
experienceDesc: "不限经验",
|
||||
userNature:"灵活用工"
|
||||
userNature: "灵活用工"
|
||||
};
|
||||
this.selectedSkills = [];
|
||||
this.drawer = true;
|
||||
this.$nextTick(() =>{
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.clearValidate();
|
||||
})
|
||||
if (this.$refs.selectMap) {
|
||||
@@ -1316,7 +1321,7 @@ export default {
|
||||
} else if (type === "edit") {
|
||||
this.title = "编辑岗位";
|
||||
detail(row.id).then((res) => {
|
||||
if(res.cityId === -1) {
|
||||
if (res.cityId === -1) {
|
||||
res.cityId = ''
|
||||
}
|
||||
this.obj = res;
|
||||
@@ -1381,7 +1386,7 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
@@ -1394,41 +1399,50 @@ export default {
|
||||
.input-with-select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.copy-form .el-input-group__append {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.input-with-select .el-input-group__append .el-input__icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.input-with-select .el-input-group__append input {
|
||||
width: 105px;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.my-autocomplete li{
|
||||
.my-autocomplete li {
|
||||
line-height: normal;
|
||||
padding: 7px;
|
||||
padding: 7px;
|
||||
}
|
||||
.my-autocomplete li .name{
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
|
||||
.my-autocomplete li .name {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
.my-autocomplete li .addr{
|
||||
font-size: 12px;
|
||||
color: #b4b4b4;
|
||||
|
||||
.my-autocomplete li .addr {
|
||||
font-size: 12px;
|
||||
color: #b4b4b4;
|
||||
}
|
||||
.my-autocomplete li .highlighted .addr{
|
||||
color: #ddd;
|
||||
|
||||
.my-autocomplete li .highlighted .addr {
|
||||
color: #ddd;
|
||||
}
|
||||
.tradeId .el-autocomplete{
|
||||
width:100%;
|
||||
|
||||
.tradeId .el-autocomplete {
|
||||
width: 100%;
|
||||
}
|
||||
.tradeId .el-icon-plus:before{
|
||||
content: "\e6d9 添加行业类型";
|
||||
color: #606266;
|
||||
|
||||
.tradeId .el-icon-plus:before {
|
||||
content: "\e6d9 添加行业类型";
|
||||
color: #606266;
|
||||
}
|
||||
.tradeId .el-input--small input{
|
||||
|
||||
.tradeId .el-input--small input {
|
||||
padding-right: 150px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -11,21 +11,23 @@
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="任务名称:">{{
|
||||
model.missionTitle
|
||||
}}</el-form-item>
|
||||
model.missionTitle
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="任务编码:">{{
|
||||
model.missionNo
|
||||
}}</el-form-item>
|
||||
model.missionNo
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="发布时间:">{{ format(model.stime) }} </el-form-item>
|
||||
<el-form-item label="发布时间:">{{ format(model.stime) }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="结束时间:">{{ format(model.etime) }} </el-form-item>
|
||||
<el-form-item label="结束时间:">{{ format(model.etime) }}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -41,15 +43,18 @@
|
||||
<el-form-item label="招聘人数:">{{ model.peopleNum }}人</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="参考工资:">{{ model.wage
|
||||
}}{{ wageUnitCategory[model.wageUnitCategory] }}</el-form-item>
|
||||
<el-form-item label="参考工资:">{{
|
||||
model.wage
|
||||
}}{{ wageUnitCategory[model.wageUnitCategory] }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="行业类型:">{{
|
||||
model.tradeNames
|
||||
}}</el-form-item>
|
||||
model.tradeNames
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item>
|
||||
@@ -62,8 +67,9 @@
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="任务描述:">{{
|
||||
model.missionDesc
|
||||
}}</el-form-item>
|
||||
model.missionDesc
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -75,27 +81,31 @@
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<!-- <el-col span="16">-->
|
||||
<!-- <el-form-item label="人员属性:">{{-->
|
||||
<!-- model.userNature-->
|
||||
<!-- }}-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col span="16">
|
||||
<el-form-item label="人员属性:">{{
|
||||
model.userNature
|
||||
}}</el-form-item>
|
||||
<el-form-item label="学历要求:">{{
|
||||
education[model.education]
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="年龄要求:">{{
|
||||
model.ageDesc
|
||||
}}</el-form-item>
|
||||
model.ageDesc
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="16">
|
||||
<el-form-item label="学历要求:">{{
|
||||
education[model.education]
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="经验要求:">{{
|
||||
model.experienceDesc
|
||||
}}</el-form-item>
|
||||
model.experienceDesc
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -109,42 +119,49 @@
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业名称:">{{
|
||||
model.missionCompanyName
|
||||
}}</el-form-item>
|
||||
model.missionCompanyName
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业信用代码:">{{
|
||||
model.missionCompanyScale
|
||||
}}</el-form-item>
|
||||
model.missionCompanyScale
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业性质:">{{
|
||||
model.missionCompanyNature
|
||||
}}</el-form-item>
|
||||
model.missionCompanyNature
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="所属行业:">{{
|
||||
model.missionCompanyIndustry
|
||||
}}</el-form-item>
|
||||
model.missionCompanyIndustry
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="企业介绍:">{{
|
||||
model.missionCompanyDescription
|
||||
}}</el-form-item>
|
||||
model.missionCompanyDescription
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联 系 人:">{{
|
||||
model.callName
|
||||
}}</el-form-item>
|
||||
model.callName
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联系方式:">{{
|
||||
model.callTel
|
||||
}}</el-form-item>
|
||||
model.callTel
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item>
|
||||
@@ -155,15 +172,15 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="工作地址:" v-if="model.cityId">{{ city[0] && city[0].label }} {{ city[1] && city[1].label }}
|
||||
{{ city[2] && city[2].label }}</el-form-item>
|
||||
<el-form-item label="工作地址:" v-if="model.cityId">{{ model.cityId }}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="详细地址:">{{
|
||||
model.address
|
||||
}}</el-form-item>
|
||||
model.address
|
||||
}}
|
||||
</el-form-item>
|
||||
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -179,14 +196,16 @@
|
||||
<el-col span="24">
|
||||
<el-form-item label="审核状态:">{{
|
||||
recruit[model.reviewState]
|
||||
}}</el-form-item>
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="审核备注:">{{
|
||||
model.reviewMsg || '无'
|
||||
}}</el-form-item>
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
@@ -197,8 +216,8 @@
|
||||
|
||||
<script>
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {
|
||||
wageUnitCategoryState,
|
||||
educationState,
|
||||
@@ -215,8 +234,8 @@ function getDic(arr) {
|
||||
}
|
||||
|
||||
export default {
|
||||
components: { SelectMap },
|
||||
props: { model: Object },
|
||||
components: {SelectMap},
|
||||
props: {model: Object},
|
||||
data() {
|
||||
return {
|
||||
activeNames: ["1", "2", "3", "4", "5"],
|
||||
@@ -226,7 +245,8 @@ export default {
|
||||
recruit: getDic(recruitStatus),
|
||||
};
|
||||
},
|
||||
mounted() { },
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
getSkill(skillStr) {
|
||||
return skillStr.split(",");
|
||||
@@ -247,7 +267,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.mission-view .el-tag+.el-tag {
|
||||
.mission-view .el-tag + .el-tag {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,251 +1,270 @@
|
||||
<template>
|
||||
<div class="mission-view">
|
||||
<el-form label-position="left" size="small">
|
||||
<el-collapse v-model="activeNames" @change="handleChange" class="avue-group">
|
||||
<el-collapse-item title="岗位信息" name="1" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">岗位信息</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="岗位名称:">{{
|
||||
<div class="mission-view">
|
||||
<el-form label-position="left" size="small">
|
||||
<el-collapse v-model="activeNames" @change="handleChange" class="avue-group">
|
||||
<el-collapse-item title="岗位信息" name="1" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">岗位信息</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="岗位名称:">{{
|
||||
model.jobName
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="岗位编码:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="岗位编码:">{{
|
||||
model.missionNo
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- <el-col span="12">
|
||||
<el-form-item label="报名截止:">{{
|
||||
format(model.etimePub)
|
||||
}}</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col span="12">
|
||||
<el-form-item label="发布时间:">{{ format(model.stime) }} </el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="结束时间:">{{ format(model.etime) }} </el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<!-- <el-col span="12">
|
||||
<el-form-item label="报名截止:">{{
|
||||
format(model.etimePub)
|
||||
}}</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col span="12">
|
||||
<el-form-item label="发布时间:">{{ format(model.stime) }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="结束时间:">{{ format(model.etime) }}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
|
||||
<el-collapse-item title="岗位要求" name="2" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">岗位要求</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="招聘人数:">{{ model.peopleNum }}人</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="参考工资:">{{ model.wage
|
||||
}}{{ wageUnitCategory[model.wageUnitCategory] }}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="行业类型:">{{
|
||||
<el-collapse-item title="岗位要求" name="2" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">岗位要求</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="招聘人数:">{{ model.peopleNum }}人</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="参考工资:">{{
|
||||
model.wage
|
||||
}}{{ wageUnitCategory[model.wageUnitCategory] }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="行业类型:">{{
|
||||
model.tradeNames
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item>
|
||||
<label slot="label">岗位工种:</label>
|
||||
{{ model.worktypeNames }} /
|
||||
{{ model.skillNames }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="岗位描述:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item>
|
||||
<label slot="label">岗位工种:</label>
|
||||
{{ model.worktypeNames }} /
|
||||
{{ model.skillNames }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="岗位描述:">{{
|
||||
model.jobDescription
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
|
||||
<el-collapse-item title="人员要求" name="3" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">人员要求</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col span="16">
|
||||
<el-form-item label="人员属性:">{{
|
||||
model.userNature
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="年龄要求:">{{
|
||||
model.ageDesc
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
<el-col span="16">
|
||||
<el-form-item label="学历要求:">{{
|
||||
<el-collapse-item title="人员要求" name="3" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">人员要求</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<!-- <el-col span="16">-->
|
||||
<!-- <el-form-item label="人员属性:">{{-->
|
||||
<!-- model.userNature-->
|
||||
<!-- }}</el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col span="16">
|
||||
<el-form-item label="学历要求:">{{
|
||||
education[model.education]
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="经验要求:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="年龄要求:">{{
|
||||
model.ageDesc
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
|
||||
<el-col span="8">
|
||||
<el-form-item label="经验要求:">{{
|
||||
model.experienceDesc
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
|
||||
<el-collapse-item title="联系人" name="4" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">企业信息</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业名称:">{{
|
||||
<el-collapse-item title="联系人" name="4" disabled="true">
|
||||
<template slot="title">
|
||||
<div class="avue-group__header">
|
||||
<div class="avue-group__title">企业信息</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业名称:">{{
|
||||
model.jobCompanyName
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业信用代码:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业信用代码:">{{
|
||||
model.jobCompanyScale
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业性质:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="企业性质:">{{
|
||||
model.jobCompanyNature
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="所属行业:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
<el-form-item label="所属行业:">{{
|
||||
model.jobCompanyIndustry
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="企业介绍:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="企业介绍:">{{
|
||||
model.jobCompanyDescription
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联 系 人:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联 系 人:">{{
|
||||
model.callName
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联系方式:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item label="联系方式:">{{
|
||||
model.callTel
|
||||
}}</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item>
|
||||
<label slot="label">座 机:</label>
|
||||
{{ model.callNumber }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="工作地址:" v-if="model.cityId">{{ city[0] && city[0].label }} {{ city[1] && city[1].label }}
|
||||
{{ city[2] && city[2].label }}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="详细地址:">{{
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col span="8">
|
||||
<el-form-item>
|
||||
<label slot="label">座 机:</label>
|
||||
{{ model.callNumber }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="工作地址:" v-if="model.cityId">{{ model.cityId }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col span="24">
|
||||
<el-form-item label="详细地址:">{{
|
||||
model.address
|
||||
}}</el-form-item>
|
||||
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
}}
|
||||
</el-form-item>
|
||||
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import { mapGetters } from "vuex";
|
||||
import { dateFormat } from "@/util/date";
|
||||
import {
|
||||
wageUnitCategoryState,
|
||||
educationState,
|
||||
genderState,
|
||||
} from "@/common/dic";
|
||||
<script>
|
||||
import SelectMap from "@/components/map/selectLocation";
|
||||
import {mapGetters} from "vuex";
|
||||
import {dateFormat} from "@/util/date";
|
||||
import {
|
||||
wageUnitCategoryState,
|
||||
educationState,
|
||||
genderState,
|
||||
} from "@/common/dic";
|
||||
|
||||
function getDic(arr) {
|
||||
let rel = {};
|
||||
arr.forEach((element) => {
|
||||
rel[element.value] = element.label;
|
||||
});
|
||||
return rel;
|
||||
}
|
||||
function getDic(arr) {
|
||||
let rel = {};
|
||||
arr.forEach((element) => {
|
||||
rel[element.value] = element.label;
|
||||
});
|
||||
return rel;
|
||||
}
|
||||
|
||||
export default {
|
||||
components: { SelectMap },
|
||||
props: { model: Object },
|
||||
data() {
|
||||
return {
|
||||
activeNames: ["1", "2", "3", "4"],
|
||||
wageUnitCategory: getDic(wageUnitCategoryState),
|
||||
education: getDic(educationState),
|
||||
gender: getDic(genderState),
|
||||
};
|
||||
export default {
|
||||
components: {SelectMap},
|
||||
props: {model: Object},
|
||||
data() {
|
||||
return {
|
||||
activeNames: ["1", "2", "3", "4"],
|
||||
wageUnitCategory: getDic(wageUnitCategoryState),
|
||||
education: getDic(educationState),
|
||||
gender: getDic(genderState),
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
getSkill(skillStr) {
|
||||
return skillStr.split(",");
|
||||
},
|
||||
mounted() { },
|
||||
methods: {
|
||||
getSkill(skillStr) {
|
||||
return skillStr.split(",");
|
||||
},
|
||||
format(date) {
|
||||
if (date) {
|
||||
return dateFormat(new Date(date), "yyyy/MM/dd");
|
||||
}
|
||||
},
|
||||
format(date) {
|
||||
if (date) {
|
||||
return dateFormat(new Date(date), "yyyy/MM/dd");
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["area"]),
|
||||
city() {
|
||||
return this.$store.getters.getAreaParents(this.model.cityId);
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["area"]),
|
||||
city() {
|
||||
return this.$store.getters.getAreaParents(this.model.cityId);
|
||||
},
|
||||
};
|
||||
</script>
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.mission-view .el-tag+.el-tag {
|
||||
margin-left: 5px;
|
||||
}
|
||||
<style>
|
||||
.mission-view .el-tag + .el-tag {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.mission-view .el-form {
|
||||
padding: 0 20px;
|
||||
}
|
||||
.mission-view .el-form {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.mission-view .el-form .el-col {
|
||||
padding: 0 10px;
|
||||
}
|
||||
.mission-view .el-form .el-col {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.mission-view .el-form .el-col .el-form-item {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.mission-view .el-form .el-col .el-form-item {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.mission-view .el-collapse {
|
||||
border-top: 0px;
|
||||
}
|
||||
</style>
|
||||
.mission-view .el-collapse {
|
||||
border-top: 0px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -23,11 +23,11 @@ module.exports = {
|
||||
port: 1888,
|
||||
proxy: {
|
||||
"/api": {
|
||||
target: 'http://10.165.0.173:8000',
|
||||
target: 'http://192.168.1.101:8200',
|
||||
ws: true,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
"^/api": "/"
|
||||
"^/api/jobslink-api": "/"
|
||||
}
|
||||
},
|
||||
"/qq/map": {
|
||||
|
||||
Reference in New Issue
Block a user