flat: cityId 合并

This commit is contained in:
Apcallover
2024-04-23 19:42:48 +08:00
parent 381f2273b3
commit 90258f3179
8 changed files with 660 additions and 533 deletions

View 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>

View File

@@ -18,6 +18,7 @@ import App from './App';
import basicBlock from './components/basic-block/main' import basicBlock from './components/basic-block/main'
import basicContainer from './components/basic-container/main' import basicContainer from './components/basic-container/main'
import cityCascader from './components/city-cascader/main' import cityCascader from './components/city-cascader/main'
import cityLabelCascader from './components/city-cascader/label'
import goBack from './components/go-back/main' import goBack from './components/go-back/main'
import tagSelect from './components/tag-select/main' import tagSelect from './components/tag-select/main'
import tooltip from './components/tooltip/index' import tooltip from './components/tooltip/index'
@@ -39,8 +40,9 @@ Vue.component('basicContainer', basicContainer);
Vue.component('basicBlock', basicBlock); Vue.component('basicBlock', basicBlock);
Vue.component('jl-go-back', goBack); Vue.component('jl-go-back', goBack);
Vue.component('jl-city-cascader', cityCascader); Vue.component('jl-city-cascader', cityCascader);
Vue.component('tag-select',tagSelect) Vue.component('jl-cityLabel-cascader', cityLabelCascader);
Vue.component('tool-tip',tooltip) Vue.component('tag-select', tagSelect)
Vue.component('tool-tip', tooltip)
// 加载相关url地址 // 加载相关url地址
Object.keys(urls).forEach(key => { Object.keys(urls).forEach(key => {
Vue.prototype[key] = urls[key]; Vue.prototype[key] = urls[key];
@@ -52,10 +54,11 @@ Vue.prototype.website = website;
// loadStyle(iconfontUrl.replace('$key', ele)); // loadStyle(iconfontUrl.replace('$key', ele));
// }); // });
// 睡眠函数 // 睡眠函数
function sleep (time) { function sleep(time) {
return new Promise((resolve) => setTimeout(resolve, time)) return new Promise((resolve) => setTimeout(resolve, time))
} }
Vue.prototype.$api = { sleep }
Vue.prototype.$api = {sleep}
Vue.config.productionTip = false; Vue.config.productionTip = false;
new Vue({router, store, i18n, render: h => h(App)}).$mount('#app') new Vue({router, store, i18n, render: h => h(App)}).$mount('#app')

View File

@@ -1,6 +1,8 @@
function format(data) { function format(data) {
const result = []; const result = [];
const dic = {'0': {label: 'root', value: '0', children: result}}; const dic = {'0': {label: 'root', value: '0', children: result}};
const labelResult = []
const labelChild = {'0': {label: 'root', value: '0', children: labelResult}};
data.forEach(item => { data.forEach(item => {
if (item.layer > 3) { if (item.layer > 3) {
@@ -27,15 +29,26 @@ function format(data) {
} else { } else {
dic[item.areaId] = node; 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 let loaded = false
const area = { const area = {
state: {data: [], dic: {}}, state: {data: [], dic: {}, labelData: []},
actions: {InitArea({commit}) { actions: {
InitArea({commit}) {
if (!loaded) { if (!loaded) {
loaded = true loaded = true
import('@/util/area').then((resp) => { import('@/util/area').then((resp) => {
@@ -48,9 +61,10 @@ const area = {
SET_AREA: (state, data) => { SET_AREA: (state, data) => {
state.data = data.data state.data = data.data
state.dic = data.dic state.dic = data.dic
state.labelData = data.labelData
}, },
}, },
getters:{ getters: {
getAreaParents: (state) => (id) => { getAreaParents: (state) => (id) => {
const res = []; const res = [];
let item = state.dic[id]; let item = state.dic[id];

View File

@@ -18,12 +18,12 @@
@submit="submit" @submit="submit"
> >
<template slot="cityId" slot-scope="{ disabled }"> <template slot="cityId" slot-scope="{ disabled }">
<jl-city-cascader <jl-cityLabel-cascader
:disabled="disabled" :disabled="disabled"
filterable filterable
v-model="obj.cityId" v-model="obj.cityId"
placeholder="请选择 工作地址" placeholder="请选择 工作地址"
></jl-city-cascader> ></jl-cityLabel-cascader>
</template> </template>
<template slot-scope="{ disabled }" slot="skillIds"> <template slot-scope="{ disabled }" slot="skillIds">

View File

@@ -17,11 +17,11 @@
ref="form" ref="form"
@submit="submit" @submit="submit"
> >
<!-- <template slot="userNature"> <!-- <template slot="userNature">
<el-select v-model="obj.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-option v-for="(item,index) in userNatureList" :key="index" :label="item.label" :value="item.value">{{item.label}}</el-option>
</el-select> </el-select>
</template> --> </template> -->
<!-- <template slot-scope="{ disabled }" slot="wage"> <!-- <template slot-scope="{ disabled }" slot="wage">
<el-input <el-input
placeholder="请输入 参考工资" placeholder="请输入 参考工资"
@@ -48,18 +48,19 @@
</el-input> </el-input>
</template> --> </template> -->
<template slot="city" slot-scope="{ disabled }"> <template slot="cityId" slot-scope="{ disabled }">
<jl-city-cascader <jl-cityLabel-cascader
:disabled="disabled" :disabled="disabled"
filterable filterable
v-model="obj.city" v-model="obj.cityId"
placeholder="请选择 工作地址" placeholder="请选择 工作地址"
></jl-city-cascader> ></jl-cityLabel-cascader>
</template> </template>
<template slot-scope="{ row }" slot="wage"> <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-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-select>
</el-input> </el-input>
</template> </template>
@@ -78,7 +79,7 @@
<select-map <select-map
ref="selectMap" ref="selectMap"
@addAddress="addAddress" @addAddress="addAddress"
@addressDel = "addressDel" @addressDel="addressDel"
@input="inputAddress" @input="inputAddress"
:isCanEdit="!disabled" :isCanEdit="!disabled"
:lng="obj.lon" :lng="obj.lon"
@@ -108,27 +109,27 @@
<!-- 工种 --> <!-- 工种 -->
<template slot="worktypeIds"> <template slot="worktypeIds">
<div class="tradeId"> <div class="tradeId">
<el-autocomplete <el-autocomplete
popper-class="my-autocomplete" popper-class="my-autocomplete"
v-model.trim="workTypeState" v-model.trim="workTypeState"
:fetch-suggestions="querySearchAsyncWorkType" :fetch-suggestions="querySearchAsyncWorkType"
placeholder="请选择工种" placeholder="请选择工种"
@select="handleSelectWorkType" @select="handleSelectWorkType"
show-word-limit show-word-limit
:disabled = "worktypeDisabled" :disabled="worktypeDisabled"
> >
<!-- <el-button <!-- <el-button
type="primary" type="primary"
:disabled = "workTypeBtnState" :disabled = "workTypeBtnState"
slot="suffix" slot="suffix"
@click="handleIconClickWorkType" @click="handleIconClickWorkType"
size="mini" size="mini"
>+添加</el-button> --> >+添加</el-button> -->
<!-- <i class="el-icon-arrow-down" slot="suffix" @click="handleIconClickArrowDown"></i> --> <!-- <i class="el-icon-arrow-down" slot="suffix" @click="handleIconClickArrowDown"></i> -->
<template slot-scope="{ item }"> <template slot-scope="{ item }">
<div class="name">{{item.value}}</div> <div class="name">{{ item.value }}</div>
</template> </template>
</el-autocomplete> </el-autocomplete>
</div> </div>
</template> </template>
<!--/自定义表单--> <!--/自定义表单-->
@@ -138,7 +139,8 @@
icon="el-icon-circle-close" icon="el-icon-circle-close"
@click="drawer = false" @click="drawer = false"
:loading="disabled" :loading="disabled"
>取消</el-button >取消
</el-button
> >
</template> </template>
</avue-form> </avue-form>
@@ -146,12 +148,12 @@
</template> </template>
<script> <script>
import { add, detail, update, tradeListAdd,getMounthDays, getDictionary} from "@/api/tenant/postzp"; import {add, detail, update, tradeListAdd, getMounthDays, getDictionary} from "@/api/tenant/postzp";
import { getTrade, getWork, getSkillList, getWorkTypes} from "@/api/tenant/common"; import {getTrade, getWork, getSkillList, getWorkTypes} from "@/api/tenant/common";
import SkillSelect from "../Dialog/Skill"; import SkillSelect from "../Dialog/Skill";
import SelectMap from "@/components/map/selectLocation"; import SelectMap from "@/components/map/selectLocation";
import { isvalidatemobile } from "@/util/validate"; import {isvalidatemobile} from "@/util/validate";
import { mapGetters } from "vuex"; import {mapGetters} from "vuex";
import { import {
wageUnitCategoryState, wageUnitCategoryState,
wageOptionsMonth, wageOptionsMonth,
@@ -175,19 +177,19 @@ export default {
id: "", id: "",
title: "", title: "",
type: "", type: "",
tradeBtnState:true, tradeBtnState: true,
workTypeBtnState:true, workTypeBtnState: true,
worktypeDisabled:true, worktypeDisabled: true,
selectedSkillIds: [], selectedSkillIds: [],
selectedName: [], selectedName: [],
selectedSkills: [], selectedSkills: [],
tradeData: [], tradeData: [],
tradeNameAttr:[], tradeNameAttr: [],
tradeIdAttr:[], tradeIdAttr: [],
workData: [], workData: [],
workDataNameAttr:[], workDataNameAttr: [],
workDataIdAttr:[], workDataIdAttr: [],
skillIdAttr:[], skillIdAttr: [],
obj: { obj: {
wage: 0, wage: 0,
wageUnitCategory: 3, wageUnitCategory: 3,
@@ -195,20 +197,20 @@ export default {
ageDesc: "不限年龄", ageDesc: "不限年龄",
education: 7, education: 7,
experienceDesc: "不限经验", experienceDesc: "不限经验",
tradeId:null, tradeId: null,
tradeNames: null, tradeNames: null,
userNature:"灵活用工", userNature: "灵活用工",
}, },
loading: false, loading: false,
drawer: false, drawer: false,
wageUnitCategory: wageUnitCategoryState, wageUnitCategory: wageUnitCategoryState,
restaurants: [], restaurants: [],
tradeState: '', tradeState: '',
workTypeState:'', workTypeState: '',
timeout: null, timeout: null,
days:null,//某个月份的天数 days: null,//某个月份的天数
endTimeFlag:true, endTimeFlag: true,
stimeDate:null, stimeDate: null,
workTypesNameList: [], workTypesNameList: [],
wallMaxAndMin: [] wallMaxAndMin: []
}; };
@@ -227,12 +229,12 @@ export default {
if (val) { if (val) {
getWork(val).then((res) => { getWork(val).then((res) => {
this.workData = res; this.workData = res;
this.workDataNameAttr = res.map((ele)=>{ this.workDataNameAttr = res.map((ele) => {
return ele.name return ele.name
}) })
this.workDataIdAttr = res.map((ele)=>{ this.workDataIdAttr = res.map((ele) => {
return ele.id return ele.id
}) })
this.worktypeDisabled = false; this.worktypeDisabled = false;
if (val !== oldval && oldval) { if (val !== oldval && oldval) {
this.obj.worktypeIds = ""; this.obj.worktypeIds = "";
@@ -245,15 +247,17 @@ export default {
// "obj.wageUnitCategory": function () { // "obj.wageUnitCategory": function () {
// if (this.$refs.form) this.$refs.form.$refs.form.validateField("wage"); // if (this.$refs.form) this.$refs.form.$refs.form.validateField("wage");
// }, // },
"stimeDate":function(n){ "stimeDate": function (n) {
if(n){ if (n) {
getMounthDays(n).then(res=>{ getMounthDays(n).then(res => {
this.days=res.data.data; this.days = res.data.data;
}) })
} }
}, },
wallMaxAndMin(val) { wallMaxAndMin(val) {
if(!val.length) {return;} if (!val.length) {
return;
}
switch (true) { switch (true) {
case this.obj.wage < Math.min(...val): case this.obj.wage < Math.min(...val):
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 specialKey = "[`~#$^&*()=|{}\\[\\]<>/~#¥……&*()——|{}【】《》%@‘”“']'";
let flagValue = true; let flagValue = true;
for (var i = 0; i < value.length; i++) { for (var i = 0; i < value.length; i++) {
@@ -398,14 +402,14 @@ export default {
flagValue = false; flagValue = false;
} }
} }
if( flagValue){ if (flagValue) {
callback(); callback();
}else{ } else {
callback(new Error('岗位名称不能输入特殊字符')); callback(new Error('岗位名称不能输入特殊字符'));
} }
}; };
return { return {
emptyBtn: false, emptyBtn: false,
menuPosition: "right", menuPosition: "right",
@@ -433,7 +437,7 @@ export default {
message: "长度在 3到 30 个字", message: "长度在 3到 30 个字",
trigger: "blur", trigger: "blur",
}, },
{ validator: validatePass, trigger: 'blur' } {validator: validatePass, trigger: 'blur'}
], ],
}, },
{ {
@@ -454,14 +458,13 @@ export default {
); );
}, },
}, },
blur:({value})=>{ blur: ({value}) => {
self.obj.etime=''; self.obj.etime = '';
if(value){ if (value) {
self.stimeDate=value.split(' ')[0] self.stimeDate = value.split(' ')[0]
self.endTimeFlag=false self.endTimeFlag = false
} } else {
else{ self.endTimeFlag = true
self.endTimeFlag=true
} }
}, },
@@ -483,12 +486,12 @@ export default {
valueFormat: "yyyy-MM-dd 00:00:00", valueFormat: "yyyy-MM-dd 00:00:00",
pickerOptions: { pickerOptions: {
disabledDate(time) { disabledDate(time) {
if(!self.obj.stime){ if (!self.obj.stime) {
return true return true
} }
if(self.days){ if (self.days) {
// let mutiply=1000*60*60*24; // 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: "工作地址", label: "工作地址",
type: "input", type: "input",
prop: "city", prop: "cityId",
rules: [ rules: [
{ {
required: true, required: true,
@@ -849,7 +852,9 @@ export default {
wageBlur(e) { wageBlur(e) {
const value = e.target.value const value = e.target.value
const val = this.wallMaxAndMin const val = this.wallMaxAndMin
if(!val.length) {return;} if (!val.length) {
return;
}
switch (true) { switch (true) {
case this.obj.wage < Math.min(...val): case this.obj.wage < Math.min(...val):
this.obj.wage = Math.min(...val) this.obj.wage = Math.min(...val)
@@ -863,9 +868,9 @@ export default {
let params = { let params = {
code: `wages_limit_${this.obj.wageUnitCategory}` code: `wages_limit_${this.obj.wageUnitCategory}`
} }
const arr = [] const arr = []
const resData = await getDictionary(params) const resData = await getDictionary(params)
if(resData.data.code === 200) { if (resData.data.code === 200) {
resData.data.data.map((item) => { resData.data.data.map((item) => {
arr.push(Number(item.dictKey)) arr.push(Number(item.dictKey))
}) })
@@ -878,12 +883,12 @@ export default {
workSkillList(res) { workSkillList(res) {
this.workTypesNameList = res.data this.workTypesNameList = res.data
const Deliver = (children, obj = {}) => { const Deliver = (children, obj = {}) => {
children.forEach((item) => { children.forEach((item) => {
obj[item.id] = item.name obj[item.id] = item.name
if (item.child) { if (item.child) {
return Deliver(item.child, obj) return Deliver(item.child, obj)
} }
}) })
return obj return obj
} }
this.workTypesNameObj = Deliver(res.data) this.workTypesNameObj = Deliver(res.data)
@@ -893,127 +898,127 @@ export default {
querySearchAsync(queryString, cb) { querySearchAsync(queryString, cb) {
let results = []; let results = [];
let tradeNameState = this.tradeNameAttr.indexOf(queryString); let tradeNameState = this.tradeNameAttr.indexOf(queryString);
if(tradeNameState == -1){ if (tradeNameState == -1) {
this.tradeBtnState = false; this.tradeBtnState = false;
}else{ } else {
this.tradeBtnState = true; this.tradeBtnState = true;
} }
for(let i of this.tradeData){ for (let i of this.tradeData) {
i.value = i.name; i.value = i.name;
} }
results = queryString ? this.tradeData.filter(this.createStateFilter(queryString)) : this.tradeData; results = queryString ? this.tradeData.filter(this.createStateFilter(queryString)) : this.tradeData;
cb(results); cb(results);
}, },
//工种筛选 //工种筛选
querySearchAsyncWorkType(queryString, cb){ querySearchAsyncWorkType(queryString, cb) {
let results = []; let results = [];
let workDataNameState = this.workDataNameAttr.indexOf(queryString); let workDataNameState = this.workDataNameAttr.indexOf(queryString);
if(workDataNameState == -1){ if (workDataNameState == -1) {
this.workTypeBtnState = false; this.workTypeBtnState = false;
}else{ } 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){
this.workTypeBtnState = true; this.workTypeBtnState = true;
this.obj.worktypeIds = item.id; }
}, for (let i of this.workData) {
//点击行业类型添加按钮 i.value = i.name;
handleIconClick() { }
this.$message.closeAll(); results = queryString ? this.workData.filter(this.createStateFilter(queryString)) : this.workData;
let nameState = this.tradeNameAttr.indexOf(this.tradeState) cb(results);
if(this.tradeState == ""){ },
this.$message({ createStateFilter(queryString) {
type: "error", return (state) => {
message: "请输入要添加的行业类型!", return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
}) };
}else if(nameState != -1){ },
//行业类型
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({ this.$message({
type: "error", type: "error",
message: "此行业类型已存在,请在列表中选择!", message: res.data.msg,
}) })
}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,
})
}
}); });
} }
}, },
//点击工种添加按钮 //点击工种添加按钮
// handleIconClickWorkType() { // handleIconClickWorkType() {
// this.$message.closeAll(); // this.$message.closeAll();
// let nameState = this.workDataNameAttr.indexOf(this.workTypeState) // let nameState = this.workDataNameAttr.indexOf(this.workTypeState)
// if(this.workTypeState == ""){ // if(this.workTypeState == ""){
// this.$message({ // this.$message({
// type: "error", // type: "error",
// message: "请输入要添加的工种!", // message: "请输入要添加的工种!",
// }) // })
// }else if(nameState != -1){ // }else if(nameState != -1){
// this.$message({ // this.$message({
// type: "error", // type: "error",
// message: "此工种已存在,请在列表中选择!", // message: "此工种已存在,请在列表中选择!",
// }) // })
// }else{ // }else{
// workListAdd(this.obj.tradeId,this.workTypeState).then((res) =>{ // workListAdd(this.obj.tradeId,this.workTypeState).then((res) =>{
// if(res.data.code == 200){ // if(res.data.code == 200){
// this.obj.worktypeIds = res.data.data; // this.obj.worktypeIds = res.data.data;
// this.$message({ // this.$message({
// type: "success", // type: "success",
// message: res.data.msg, // message: res.data.msg,
// }) // })
// this.workTypeBtnState = true; // this.workTypeBtnState = true;
// this.clearValidator('worktypeIds'); // this.clearValidator('worktypeIds');
// getWork(this.obj.tradeId).then((res) => { // getWork(this.obj.tradeId).then((res) => {
// this.workData = res; // this.workData = res;
// this.workDataNameAttr = res.map((ele)=>{ // this.workDataNameAttr = res.map((ele)=>{
// return ele.name // return ele.name
// }) // })
// }) // })
// }else{ // }else{
// this.$message({ // this.$message({
// type: "error", // type: "error",
// message: res.data.msg, // message: res.data.msg,
// }) // })
// } // }
// }); // });
// } // }
// }, // },
// //
addressDel(){ addressDel() {
this.obj.address = ""; this.obj.address = "";
}, },
initData() { initData() {
@@ -1021,10 +1026,10 @@ export default {
this.loading = true; this.loading = true;
getTrade(this.userInfo.company_id).then((res) => { getTrade(this.userInfo.company_id).then((res) => {
this.tradeData = res; this.tradeData = res;
this.tradeNameAttr = res.map((ele)=>{ this.tradeNameAttr = res.map((ele) => {
return ele.name return ele.name
}) })
this.tradeIdAttr = res.map((ele)=>{ this.tradeIdAttr = res.map((ele) => {
return ele.id return ele.id
}) })
this.loading = false; this.loading = false;
@@ -1047,7 +1052,7 @@ export default {
ageDesc: "不限年龄", ageDesc: "不限年龄",
education: 7, education: 7,
experienceDesc: "不限经验", experienceDesc: "不限经验",
userNature:"灵活用工", userNature: "灵活用工",
}; };
}, },
@@ -1066,7 +1071,7 @@ export default {
} }
}, },
submit(row, done) { submit(row, done) {
if(this.$refs.selectMap.addressLocation == ""){ if (this.$refs.selectMap.addressLocation == "") {
return this.$message({ return this.$message({
type: "error", type: "error",
message: "请选择详细地址!", message: "请选择详细地址!",
@@ -1081,13 +1086,13 @@ export default {
// }); // });
// let skillIds = ids.join(","); // let skillIds = ids.join(",");
// let skillNames = name.join(","); // let skillNames = name.join(",");
if(this.skillArr && this.skillArr.length > 0) { if (this.skillArr && this.skillArr.length > 0) {
this.skillArr.forEach(item => { this.skillArr.forEach(item => {
if(item.id == row.workSkills[0]) { if (item.id == row.workSkills[0]) {
row.worktypeNames = item.name row.worktypeNames = item.name
if(item.child && item.child.length > 0) { if (item.child && item.child.length > 0) {
item.child.forEach(item2 => { item.child.forEach(item2 => {
if(item2.id == row.workSkills[1]) { if (item2.id == row.workSkills[1]) {
row.skillNames = item2.name; 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 => { this.tradeData.forEach(item => {
if(row.tradeId == item.id) { if (row.tradeId == item.id) {
row.tradeNames = item.name row.tradeNames = item.name
} }
}) })
@@ -1141,7 +1146,7 @@ export default {
callName: row.callName, callName: row.callName,
callTel: row.callTel, callTel: row.callTel,
callNumber: row.callNumber, callNumber: row.callNumber,
city: row.city, cityId: row.cityId,
address: row.address, address: row.address,
lat: row.lat, lat: row.lat,
lon: row.lon, lon: row.lon,
@@ -1190,7 +1195,7 @@ export default {
callName: row.callName, callName: row.callName,
callTel: row.callTel, callTel: row.callTel,
callNumber: row.callNumber, callNumber: row.callNumber,
city: row.city, cityId: row.cityId,
address: row.address, address: row.address,
lat: row.lat, lat: row.lat,
lon: row.lon, lon: row.lon,
@@ -1212,14 +1217,14 @@ export default {
} }
}, },
clearValidator(val){ clearValidator(val) {
this.$refs.form.clearValidate(val); this.$refs.form.clearValidate(val);
}, },
onLoad(row, type) { onLoad(row, type) {
this.type = type; this.type = type;
this.id = row.id; this.id = row.id;
this.$nextTick(() => { this.$nextTick(() => {
if(type!='edit'){ if (type != 'edit') {
// getLastTaskInfo().then(res=>{ // getLastTaskInfo().then(res=>{
// const data=res.data.data; // const data=res.data.data;
// this.obj.callName=data.callName; // this.obj.callName=data.callName;
@@ -1240,58 +1245,58 @@ export default {
this.drawer = true; this.drawer = true;
let tradeIdState = this.tradeIdAttr.indexOf(this.obj.tradeId); let tradeIdState = this.tradeIdAttr.indexOf(this.obj.tradeId);
//判断有无此行业 //判断有无此行业
if(tradeIdState == -1){ if (tradeIdState == -1) {
this.obj.tradeId = ""; this.obj.tradeId = "";
setTimeout(()=>{ setTimeout(() => {
this.$message({ this.$message({
type: "error", type: "error",
message: "此岗位所包含行业已经不存在,请重新选择!", message: "此岗位所包含行业已经不存在,请重新选择!",
}) })
},1000); }, 1000);
}else{ } else {
this.tradeState = this.obj.tradeNames; this.tradeState = this.obj.tradeNames;
//判断有无此工种 //判断有无此工种
getWork(this.obj.tradeId).then((res) => { getWork(this.obj.tradeId).then((res) => {
this.workData = res; this.workData = res;
this.workDataIdAttr = res.map((ele)=>{ this.workDataIdAttr = res.map((ele) => {
return ele.id return ele.id
}) })
let workDataIdState = this.workDataIdAttr.indexOf(this.obj.worktypeIds); let workDataIdState = this.workDataIdAttr.indexOf(this.obj.worktypeIds);
//判断有无此工种 //判断有无此工种
if(workDataIdState == -1){ if (workDataIdState == -1) {
this.obj.worktypeIds = ""; this.obj.worktypeIds = "";
setTimeout(()=>{ setTimeout(() => {
this.$message({ this.$message({
type: "error", type: "error",
message: "此岗位所包含工种已经不存在,请重新选择!", message: "此岗位所包含工种已经不存在,请重新选择!",
}) })
},1000); }, 1000);
}else{ } else {
this.workTypeState = this.obj.worktypeNames; this.workTypeState = this.obj.worktypeNames;
getSkillList(this.obj.worktypeIds).then((res) => { getSkillList(this.obj.worktypeIds).then((res) => {
this.skillIdAttr = res.data.data.records.map((ele)=>{ this.skillIdAttr = res.data.data.records.map((ele) => {
return ele; return ele;
}); });
let newSelectedSkills = []; let newSelectedSkills = [];
this.skillIdAttr.forEach((val) => { this.skillIdAttr.forEach((val) => {
let selectedSkillsState = this.obj.selectedSkills.find(v => v.id == val.id); let selectedSkillsState = this.obj.selectedSkills.find(v => v.id == val.id);
if(selectedSkillsState){ if (selectedSkillsState) {
newSelectedSkills.push(val); newSelectedSkills.push(val);
} }
}) })
// 判断有无此技能 // 判断有无此技能
if(newSelectedSkills.length == 0){ if (newSelectedSkills.length == 0) {
// setTimeout(()=>{ // setTimeout(()=>{
// this.$message({ // this.$message({
// type: "error", // type: "error",
// message: "此岗位所包含技能已经不存在,请重新选择!", // message: "此岗位所包含技能已经不存在,请重新选择!",
// }) // })
// },1000); // },1000);
}else{ } else {
this.selectedSkills = newSelectedSkills; this.selectedSkills = newSelectedSkills;
} }
}); });
} }
}) })
} }
}); });
@@ -1303,11 +1308,11 @@ export default {
ageDesc: "不限年龄", ageDesc: "不限年龄",
education: 7, education: 7,
experienceDesc: "不限经验", experienceDesc: "不限经验",
userNature:"灵活用工" userNature: "灵活用工"
}; };
this.selectedSkills = []; this.selectedSkills = [];
this.drawer = true; this.drawer = true;
this.$nextTick(() =>{ this.$nextTick(() => {
this.$refs.form.clearValidate(); this.$refs.form.clearValidate();
}) })
if (this.$refs.selectMap) { if (this.$refs.selectMap) {
@@ -1316,7 +1321,7 @@ export default {
} else if (type === "edit") { } else if (type === "edit") {
this.title = "编辑岗位"; this.title = "编辑岗位";
detail(row.id).then((res) => { detail(row.id).then((res) => {
if(res.cityId === -1) { if (res.cityId === -1) {
res.cityId = '' res.cityId = ''
} }
this.obj = res; this.obj = res;
@@ -1381,7 +1386,7 @@ export default {
}, },
mounted() { mounted() {
} }
}; };
</script> </script>
<style scoped> <style scoped>
@@ -1394,41 +1399,50 @@ export default {
.input-with-select { .input-with-select {
width: 100%; width: 100%;
} }
.copy-form .el-input-group__append { .copy-form .el-input-group__append {
background-color: #fff; background-color: #fff;
} }
.input-with-select .el-input-group__append .el-input__icon { .input-with-select .el-input-group__append .el-input__icon {
display: none; display: none;
} }
.input-with-select .el-input-group__append input { .input-with-select .el-input-group__append input {
width: 105px; width: 105px;
padding: 0; padding: 0;
text-align: center; text-align: center;
} }
.my-autocomplete li{ .my-autocomplete li {
line-height: normal; line-height: normal;
padding: 7px; padding: 7px;
} }
.my-autocomplete li .name{
text-overflow: ellipsis; .my-autocomplete li .name {
overflow: hidden; text-overflow: ellipsis;
overflow: hidden;
} }
.my-autocomplete li .addr{
font-size: 12px; .my-autocomplete li .addr {
color: #b4b4b4; 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 添加行业类型"; .tradeId .el-icon-plus:before {
color: #606266; content: "\e6d9 添加行业类型";
color: #606266;
} }
.tradeId .el-input--small input{
.tradeId .el-input--small input {
padding-right: 150px; padding-right: 150px;
} }
</style> </style>

View File

@@ -11,21 +11,23 @@
<el-row> <el-row>
<el-col span="12"> <el-col span="12">
<el-form-item label="任务名称:">{{ <el-form-item label="任务名称:">{{
model.missionTitle model.missionTitle
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="12"> <el-col span="12">
<el-form-item label="任务编码:">{{ <el-form-item label="任务编码:">{{
model.missionNo model.missionNo
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col span="12"> <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>
<el-col span="12"> <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-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
@@ -41,15 +43,18 @@
<el-form-item label="招聘人数:">{{ model.peopleNum }}</el-form-item> <el-form-item label="招聘人数:">{{ model.peopleNum }}</el-form-item>
</el-col> </el-col>
<el-col span="12"> <el-col span="12">
<el-form-item label="参考工资:">{{ model.wage <el-form-item label="参考工资:">{{
}}{{ wageUnitCategory[model.wageUnitCategory] }}</el-form-item> model.wage
}}{{ wageUnitCategory[model.wageUnitCategory] }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col span="12"> <el-col span="12">
<el-form-item label="行业类型:">{{ <el-form-item label="行业类型:">{{
model.tradeNames model.tradeNames
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="12"> <el-col span="12">
<el-form-item> <el-form-item>
@@ -62,8 +67,9 @@
<el-row> <el-row>
<el-col span="24"> <el-col span="24">
<el-form-item label="任务描述:">{{ <el-form-item label="任务描述:">{{
model.missionDesc model.missionDesc
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
@@ -75,27 +81,31 @@
</div> </div>
</template> </template>
<el-row> <el-row>
<!-- <el-col span="16">-->
<!-- <el-form-item label="人员属性:">{{-->
<!-- model.userNature-->
<!-- }}-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col span="16"> <el-col span="16">
<el-form-item label="人员属性">{{ <el-form-item label="学历要求">{{
model.userNature education[model.education]
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="8"> <el-col span="8">
<el-form-item label="年龄要求:">{{ <el-form-item label="年龄要求:">{{
model.ageDesc model.ageDesc
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<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-col span="8">
<el-form-item label="经验要求:">{{ <el-form-item label="经验要求:">{{
model.experienceDesc model.experienceDesc
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
@@ -109,42 +119,49 @@
<el-row> <el-row>
<el-col span="12"> <el-col span="12">
<el-form-item label="企业名称:">{{ <el-form-item label="企业名称:">{{
model.missionCompanyName model.missionCompanyName
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="12"> <el-col span="12">
<el-form-item label="企业信用代码:">{{ <el-form-item label="企业信用代码:">{{
model.missionCompanyScale model.missionCompanyScale
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="12"> <el-col span="12">
<el-form-item label="企业性质:">{{ <el-form-item label="企业性质:">{{
model.missionCompanyNature model.missionCompanyNature
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="12"> <el-col span="12">
<el-form-item label="所属行业:">{{ <el-form-item label="所属行业:">{{
model.missionCompanyIndustry model.missionCompanyIndustry
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col span="24"> <el-col span="24">
<el-form-item label="企业介绍:">{{ <el-form-item label="企业介绍:">{{
model.missionCompanyDescription model.missionCompanyDescription
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col span="8"> <el-col span="8">
<el-form-item label="联 系 人:">{{ <el-form-item label="联 系 人:">{{
model.callName model.callName
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="8"> <el-col span="8">
<el-form-item label="联系方式:">{{ <el-form-item label="联系方式:">{{
model.callTel model.callTel
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
<el-col span="8"> <el-col span="8">
<el-form-item> <el-form-item>
@@ -155,15 +172,15 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col span="24"> <el-col span="24">
<el-form-item label="工作地址:" v-if="model.cityId">{{ city[0] && city[0].label }} {{ city[1] && city[1].label }} <el-form-item label="工作地址:" v-if="model.cityId">{{ model.cityId }}</el-form-item>
{{ city[2] && city[2].label }}</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col span="24"> <el-col span="24">
<el-form-item label="详细地址:">{{ <el-form-item label="详细地址:">{{
model.address model.address
}}</el-form-item> }}
</el-form-item>
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map> <select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
</el-col> </el-col>
</el-row> </el-row>
@@ -179,14 +196,16 @@
<el-col span="24"> <el-col span="24">
<el-form-item label="审核状态:">{{ <el-form-item label="审核状态:">{{
recruit[model.reviewState] recruit[model.reviewState]
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col span="24"> <el-col span="24">
<el-form-item label="审核备注:">{{ <el-form-item label="审核备注:">{{
model.reviewMsg || '无' model.reviewMsg || '无'
}}</el-form-item> }}
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
@@ -197,8 +216,8 @@
<script> <script>
import SelectMap from "@/components/map/selectLocation"; import SelectMap from "@/components/map/selectLocation";
import { mapGetters } from "vuex"; import {mapGetters} from "vuex";
import { dateFormat } from "@/util/date"; import {dateFormat} from "@/util/date";
import { import {
wageUnitCategoryState, wageUnitCategoryState,
educationState, educationState,
@@ -215,8 +234,8 @@ function getDic(arr) {
} }
export default { export default {
components: { SelectMap }, components: {SelectMap},
props: { model: Object }, props: {model: Object},
data() { data() {
return { return {
activeNames: ["1", "2", "3", "4", "5"], activeNames: ["1", "2", "3", "4", "5"],
@@ -226,7 +245,8 @@ export default {
recruit: getDic(recruitStatus), recruit: getDic(recruitStatus),
}; };
}, },
mounted() { }, mounted() {
},
methods: { methods: {
getSkill(skillStr) { getSkill(skillStr) {
return skillStr.split(","); return skillStr.split(",");
@@ -247,7 +267,7 @@ export default {
</script> </script>
<style> <style>
.mission-view .el-tag+.el-tag { .mission-view .el-tag + .el-tag {
margin-left: 5px; margin-left: 5px;
} }

View File

@@ -1,251 +1,270 @@
<template> <template>
<div class="mission-view"> <div class="mission-view">
<el-form label-position="left" size="small"> <el-form label-position="left" size="small">
<el-collapse v-model="activeNames" @change="handleChange" class="avue-group"> <el-collapse v-model="activeNames" @change="handleChange" class="avue-group">
<el-collapse-item title="岗位信息" name="1" disabled="true"> <el-collapse-item title="岗位信息" name="1" disabled="true">
<template slot="title"> <template slot="title">
<div class="avue-group__header"> <div class="avue-group__header">
<div class="avue-group__title">岗位信息</div> <div class="avue-group__title">岗位信息</div>
</div> </div>
</template> </template>
<el-row> <el-row>
<el-col span="12"> <el-col span="12">
<el-form-item label="岗位名称:">{{ <el-form-item label="岗位名称:">{{
model.jobName model.jobName
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="12"> </el-col>
<el-form-item label="岗位编码:">{{ <el-col span="12">
<el-form-item label="岗位编码:">{{
model.missionNo model.missionNo
}}</el-form-item> }}
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<!-- <el-col span="12"> <el-row>
<el-form-item label="报名截止:">{{ <!-- <el-col span="12">
format(model.etimePub) <el-form-item label="报名截止:">{{
}}</el-form-item> format(model.etimePub)
</el-col> --> }}</el-form-item>
<el-col span="12"> </el-col> -->
<el-form-item label="发布时间:">{{ format(model.stime) }} </el-form-item> <el-col span="12">
</el-col> <el-form-item label="发布时间:">{{ format(model.stime) }}</el-form-item>
<el-col span="12"> </el-col>
<el-form-item label="结束时间:">{{ format(model.etime) }} </el-form-item> <el-col span="12">
</el-col> <el-form-item label="结束时间:">{{ format(model.etime) }}</el-form-item>
</el-row> </el-col>
</el-collapse-item> </el-row>
</el-collapse-item>
<el-collapse-item title="岗位要求" name="2" disabled="true"> <el-collapse-item title="岗位要求" name="2" disabled="true">
<template slot="title"> <template slot="title">
<div class="avue-group__header"> <div class="avue-group__header">
<div class="avue-group__title">岗位要求</div> <div class="avue-group__title">岗位要求</div>
</div> </div>
</template> </template>
<el-row> <el-row>
<el-col span="12"> <el-col span="12">
<el-form-item label="招聘人数:">{{ model.peopleNum }}</el-form-item> <el-form-item label="招聘人数:">{{ model.peopleNum }}</el-form-item>
</el-col> </el-col>
<el-col span="12"> <el-col span="12">
<el-form-item label="参考工资:">{{ model.wage <el-form-item label="参考工资:">{{
}}{{ wageUnitCategory[model.wageUnitCategory] }}</el-form-item> model.wage
</el-col> }}{{ wageUnitCategory[model.wageUnitCategory] }}
</el-row> </el-form-item>
<el-row> </el-col>
<el-col span="12"> </el-row>
<el-form-item label="行业类型:">{{ <el-row>
<el-col span="12">
<el-form-item label="行业类型:">{{
model.tradeNames model.tradeNames
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="12"> </el-col>
<el-form-item> <el-col span="12">
<label slot="label">岗位工种</label> <el-form-item>
{{ model.worktypeNames }} / <label slot="label">岗位工种</label>
{{ model.skillNames }} {{ model.worktypeNames }} /
</el-form-item> {{ model.skillNames }}
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col span="24"> <el-row>
<el-form-item label="岗位描述:">{{ <el-col span="24">
<el-form-item label="岗位描述:">{{
model.jobDescription model.jobDescription
}}</el-form-item> }}
</el-col> </el-form-item>
</el-row> </el-col>
</el-collapse-item> </el-row>
</el-collapse-item>
<el-collapse-item title="人员要求" name="3" disabled="true"> <el-collapse-item title="人员要求" name="3" disabled="true">
<template slot="title"> <template slot="title">
<div class="avue-group__header"> <div class="avue-group__header">
<div class="avue-group__title">人员要求</div> <div class="avue-group__title">人员要求</div>
</div> </div>
</template> </template>
<el-row> <el-row>
<el-col span="16"> <!-- <el-col span="16">-->
<el-form-item label="人员属性:">{{ <!-- <el-form-item label="人员属性:">{{-->
model.userNature <!-- model.userNature-->
}}</el-form-item> <!-- }}</el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col span="8"> <el-col span="16">
<el-form-item label="年龄要求:">{{ <el-form-item label="学历要求:">{{
model.ageDesc
}}</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="16">
<el-form-item label="学历要求:">{{
education[model.education] education[model.education]
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="8"> </el-col>
<el-form-item label="经验要求:">{{ <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 model.experienceDesc
}}</el-form-item> }}
</el-col> </el-form-item>
</el-row> </el-col>
</el-collapse-item> </el-row>
</el-collapse-item>
<el-collapse-item title="联系人" name="4" disabled="true"> <el-collapse-item title="联系人" name="4" disabled="true">
<template slot="title"> <template slot="title">
<div class="avue-group__header"> <div class="avue-group__header">
<div class="avue-group__title">企业信息</div> <div class="avue-group__title">企业信息</div>
</div> </div>
</template> </template>
<el-row> <el-row>
<el-col span="12"> <el-col span="12">
<el-form-item label="企业名称:">{{ <el-form-item label="企业名称:">{{
model.jobCompanyName model.jobCompanyName
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="12"> </el-col>
<el-form-item label="企业信用代码:">{{ <el-col span="12">
<el-form-item label="企业信用代码:">{{
model.jobCompanyScale model.jobCompanyScale
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="12"> </el-col>
<el-form-item label="企业性质:">{{ <el-col span="12">
<el-form-item label="企业性质:">{{
model.jobCompanyNature model.jobCompanyNature
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="12"> </el-col>
<el-form-item label="所属行业:">{{ <el-col span="12">
<el-form-item label="所属行业:">{{
model.jobCompanyIndustry model.jobCompanyIndustry
}}</el-form-item> }}
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col span="24"> <el-row>
<el-form-item label="企业介绍:">{{ <el-col span="24">
<el-form-item label="企业介绍:">{{
model.jobCompanyDescription model.jobCompanyDescription
}}</el-form-item> }}
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col span="8"> <el-row>
<el-form-item label="联 系 人:">{{ <el-col span="8">
<el-form-item label="联 系 人:">{{
model.callName model.callName
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="8"> </el-col>
<el-form-item label="联系方式:">{{ <el-col span="8">
<el-form-item label="联系方式:">{{
model.callTel model.callTel
}}</el-form-item> }}
</el-col> </el-form-item>
<el-col span="8"> </el-col>
<el-form-item> <el-col span="8">
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label> <el-form-item>
{{ model.callNumber }} <label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
</el-form-item> {{ model.callNumber }}
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col span="24"> <el-row>
<el-form-item label="工作地址:" v-if="model.cityId">{{ city[0] && city[0].label }} {{ city[1] && city[1].label }} <el-col span="24">
{{ city[2] && city[2].label }}</el-form-item> <el-form-item label="工作地址:" v-if="model.cityId">{{ model.cityId }}
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col span="24"> <el-row>
<el-form-item label="详细地址:">{{ <el-col span="24">
<el-form-item label="详细地址:">{{
model.address model.address
}}</el-form-item> }}
<select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map> </el-form-item>
</el-col> <select-map :lat="model.lat" :lng="model.lon" :isCanEdit="false" :type="'view'"></select-map>
</el-row> </el-col>
</el-collapse-item> </el-row>
</el-collapse> </el-collapse-item>
</el-form> </el-collapse>
</div> </el-form>
</template> </div>
</template>
<script> <script>
import SelectMap from "@/components/map/selectLocation"; import SelectMap from "@/components/map/selectLocation";
import { mapGetters } from "vuex"; import {mapGetters} from "vuex";
import { dateFormat } from "@/util/date"; import {dateFormat} from "@/util/date";
import { import {
wageUnitCategoryState, wageUnitCategoryState,
educationState, educationState,
genderState, genderState,
} from "@/common/dic"; } from "@/common/dic";
function getDic(arr) { function getDic(arr) {
let rel = {}; let rel = {};
arr.forEach((element) => { arr.forEach((element) => {
rel[element.value] = element.label; rel[element.value] = element.label;
}); });
return rel; return rel;
} }
export default { export default {
components: { SelectMap }, components: {SelectMap},
props: { model: Object }, props: {model: Object},
data() { data() {
return { return {
activeNames: ["1", "2", "3", "4"], activeNames: ["1", "2", "3", "4"],
wageUnitCategory: getDic(wageUnitCategoryState), wageUnitCategory: getDic(wageUnitCategoryState),
education: getDic(educationState), education: getDic(educationState),
gender: getDic(genderState), gender: getDic(genderState),
}; };
},
mounted() {
},
methods: {
getSkill(skillStr) {
return skillStr.split(",");
}, },
mounted() { }, format(date) {
methods: { if (date) {
getSkill(skillStr) { return dateFormat(new Date(date), "yyyy/MM/dd");
return skillStr.split(","); }
},
format(date) {
if (date) {
return dateFormat(new Date(date), "yyyy/MM/dd");
}
},
}, },
computed: { },
...mapGetters(["area"]), computed: {
city() { ...mapGetters(["area"]),
return this.$store.getters.getAreaParents(this.model.cityId); city() {
}, return this.$store.getters.getAreaParents(this.model.cityId);
}, },
}; },
</script> };
</script>
<style> <style>
.mission-view .el-tag+.el-tag { .mission-view .el-tag + .el-tag {
margin-left: 5px; margin-left: 5px;
} }
.mission-view .el-form { .mission-view .el-form {
padding: 0 20px; padding: 0 20px;
} }
.mission-view .el-form .el-col { .mission-view .el-form .el-col {
padding: 0 10px; padding: 0 10px;
} }
.mission-view .el-form .el-col .el-form-item { .mission-view .el-form .el-col .el-form-item {
margin-bottom: 18px; margin-bottom: 18px;
} }
.mission-view .el-collapse { .mission-view .el-collapse {
border-top: 0px; border-top: 0px;
} }
</style> </style>

View File

@@ -23,11 +23,11 @@ module.exports = {
port: 1888, port: 1888,
proxy: { proxy: {
"/api": { "/api": {
target: 'http://10.165.0.173:8000', target: 'http://192.168.1.101:8200',
ws: true, ws: true,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
"^/api": "/" "^/api/jobslink-api": "/"
} }
}, },
"/qq/map": { "/qq/map": {