<template>
<div class="position_content">
<div class="position_search_form">
<el-form :inline="true" :model="searchForm" ref="searchForm">
<el-form-item label="职位名称" prop="name">
<el-input v-model="searchForm.name" placeholder="请输入职位名称"></el-input>
</el-form-item>
<el-form-item label="驾龄" prop="driveAge">
<el-input v-model="searchForm.driveAge" placeholder="请输入驾龄"></el-input>
</el-form-item>
<el-form-item label="薪资发放方式" prop="payGrantType">
<el-select v-model="searchForm.payGrantType" placeholder="请选择薪资发放方式">
<el-option
v-for="(item, index) in payGrantTypeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="准驾车型" prop="driveMode">
<el-select v-model="searchForm.driveMode" placeholder="请选择准驾车型">
<el-option
v-for="(item, index) in driverModeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictLabel"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearchList()">查询</el-button>
<el-button @click="handleResetList()">重置</el-button>
</el-form-item>
</el-form>
</div>
<div class="position_tabbar">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddPosition()">新增</el-button>
</div>
<div class="position_table">
<el-table :data="tableData" border height="72vh" style="width: 100%;" :header-cell-style="headerCellStyle" v-loading="tableLoading" >
<el-table-column prop="name" label="职位名称" min-width="120" />
<el-table-column prop="postType" label="职位类别" align="center" min-width="120">
<template #default="scope">
{{ dictTypeChange(postTypeArr,scope.row.postType) }}
</template>
</el-table-column>
<el-table-column prop="numApply" label="已投简历" align="center" min-width="120" />
<el-table-column prop="name" label="地区" min-width="120" show-overflow-tooltip>
<template #default="scope">
<span>{{scope.row.getOnAddressDistr}}</span>
</template>
</el-table-column>
<el-table-column prop="salaryStand" label="薪资标准" align="center" min-width="120" />
<el-table-column prop="payGrantType" label="薪资发放方式" align="center" min-width="120">
<template #default="scope">
{{ dictTypeChange(payGrantTypeArr,scope.row.payGrantType) }}
</template>
</el-table-column>
<el-table-column prop="goodsType" label="货物类型" align="center" min-width="120">
<template #default="scope">
{{ dictTypeChange(goodsTypeArr,scope.row.goodsType) }}
</template>
</el-table-column>
<el-table-column prop="driveMode" label="准驾车型" align="center" min-width="120"></el-table-column>
<el-table-column prop="driveAge" label="驾龄要求" align="center" min-width="120" />
<el-table-column label="操作" width="220" align="center" fixed="right">
<template #default="scope">
<el-button type="primary" size="mini" @click="handleEditPosition(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="handleDetailPosition(scope.row)">详情</el-button>
<el-button type="danger" size="mini" @click="handleDeletePosition(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="position_pagination">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 15, 20, 25]" :page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
<!-- form新增/修改弹窗 -->
<el-dialog
:title="title"
:visible.sync="dialogFormVisible"
width="60%"
:before-close="handleFormBeforeClose"
>
<div class="position_form_content">
<el-form :model="positionForm" :rules="positionRules" ref="positionFormRef" label-width="120px">
<div class="position_form_item">
<el-form-item label="标题" prop="name" style="width: 100%">
<el-input style="width: 100%" v-model="positionForm.name" placeholder="请输入发布标题"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="货物类型" prop="goodsType" style="width: 50%">
<el-select
v-model="positionForm.goodsType"
placeholder="请选择货物类型"
style="width: 100%"
>
<el-option
v-for="(item, index) in goodsTypeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="驾照等级" prop="driveMode" style="width: 50%">
<el-select v-model="positionForm.driveMode" placeholder="请选择驾照等级" style="width: 100%">
<el-option
v-for="(item, index) in driverModeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictLabel"
/>
</el-select>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="任务类型" prop="position" style="width: 50%">
<el-select v-model="positionForm.position" placeholder="请选择任务类型" style="width: 100%">
<el-option
v-for="(item, index) in positionArr"
:key="index"
:label="item.dictValue"
:value="item.dictLabel"
/>
</el-select>
</el-form-item>
<el-form-item label="岗位类型" prop="transportLine" style="width: 50%">
<el-select v-model="positionForm.postType" placeholder="请选择任务类型" style="width: 100%">
<el-option
v-for="(item, index) in postTypeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="用工人数" prop="employGap" style="width: 50%">
<el-input v-model="positionForm.employGap" type="number" placeholder="请输入用工人数"></el-input>
</el-form-item>
<el-form-item label="驾龄要求" prop="driveAge" style="width: 50%">
<el-input v-model="positionForm.driveAge" placeholder="请输入驾龄要求"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="薪资范围" prop="salaryStand" style="width: 50%">
<el-input v-model="positionForm.salaryStand" type="number" placeholder="请输入薪资范围"></el-input>
</el-form-item>
<el-form-item label="福利待遇" prop="socialBenefits" style="width: 50%">
<el-input v-model="positionForm.socialBenefits" placeholder="请输入福利待遇"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="联系方式" prop="salaryStand" style="width: 50%">
<el-input v-model="positionForm.salaryStand" type="number" placeholder="请输入联系方式"></el-input>
</el-form-item>
<el-form-item label="运输次数" prop="haulCount" style="width: 50%">
<el-input v-model="positionForm.haulCount" placeholder="请输入运输次数"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="开始时间" prop="startDate" style="width: 50%">
<el-date-picker
v-model="positionForm.startDate"
type="datetime"
style="width: 100%"
placeholder="请选择开始时间"
@change="handleStartDate"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endDate" style="width: 50%">
<el-date-picker
v-model="positionForm.endDate"
type="datetime"
style="width: 100%"
placeholder="请选择结束时间"
@change="handleEndDate"
/>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="上车地址" prop="getOnAddress" style="width: 50%">
<el-cascader
ref="formCascader"
v-model="positionForm.getOnAddress"
:options="mapDataFormat"
style="width: 100%"
@change="handleCascaderChange"
/>
</el-form-item>
<el-form-item label="运输路线" prop="transportLine" style="width: 50%">
<el-input v-model="positionForm.transportLine" placeholder="请输入运输路线,例如:A-B"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="补充描述" prop="remark" style="width: 100%">
<el-input type="textarea" show-word-limit :rows="10" v-model="positionForm.remark" placeholder="请输入补充描述" />
</el-form-item>
</div>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleFormCancel">取 消</el-button>
<el-button type="primary" @click="handleFormSubmit">确 定</el-button>
</span>
</el-dialog>
<!-- form详情弹窗 -->
<el-dialog
title="职位详情"
:visible.sync="dialogFormDetailVisible"
width="40%"
:before-close="handleFormDetailBeforeClose"
>
<div class="position_form_content">
<el-form :model="positionFormDetail" label-width="120px">
<div class="position_form_item">
<el-form-item label="职位名称" prop="name" style="width: 50%">
<el-input v-model="positionFormDetail.name" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
<el-form-item label="企业名称" prop="deptName" style="width: 50%">
<el-input v-model="positionFormDetail.deptName" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="货物类型" prop="goodsType" style="width: 50%">
<el-input v-model="positionFormDetail.goodsType" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
<el-form-item label="准驾车型" prop="driveMode" style="width: 50%">
<el-input v-model="positionFormDetail.driveMode" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="职位类别" prop="postType" style="width: 50%">
<el-input v-model="positionFormDetail.postType" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
<el-form-item label="用工方式" prop="transportLine" style="width: 50%">
<el-input v-model="positionFormDetail.transportLine" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="用工缺口" prop="employGap" style="width: 50%">
<el-input v-model="positionFormDetail.employGap" type="number" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
<el-form-item label="薪资标准" prop="salaryStand" style="width: 50%">
<el-input v-model="positionFormDetail.salaryStand" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="薪资发放方式" prop="payGrantType" style="width: 50%">
<el-input v-model="positionFormDetail.payGrantType" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
<el-form-item label="补贴" prop="socialBenefits" style="width: 50%">
<el-input v-model="positionFormDetail.socialBenefits" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="岗位开始时间" prop="startDate" style="width: 50%">
<el-input v-model="positionFormDetail.startDate" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
<el-form-item label="岗位结束时间" prop="endDate" style="width: 50%">
<el-input v-model="positionFormDetail.endDate" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="驾龄要求" prop="driveAge" style="width: 50%">
<el-input v-model="positionFormDetail.driveAge" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
<el-form-item label="年龄要求" prop="age" style="width: 50%">
<el-input v-model="positionFormDetail.age" placeholder="暂无数据" :readonly="true"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="地区" prop="getOnAddressDistr" style="width: 100%">
<el-input v-model="positionFormDetail.getOnAddressDistr" placeholder="暂无数据" :readonly="true" />
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="岗位说明" prop="remark" style="width: 100%">
<el-input type="textarea" show-word-limit :rows="10" v-model="positionFormDetail.remark" placeholder="暂无数据" :readonly="true" />
</el-form-item>
</div>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleFormDetailCancel">取 消</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
addPosition,
delPosition,
dictTypeList,
positionDetail,
positionList,
updatePosition
} from "@/api/positionManage";
import mapData from "@/utils/data.json"
/**
* desc:职位管理
*/
export default {
name: "index",
data(){
return {
searchForm:{
name:'',
driveAge:'',
payGrantType:'',
driveMode:''
},
driverModeArr:[],
payGrantTypeArr:[],
postTypeArr:[],
positionArr:[],
goodsTypeArr:[],
currentPage:1,
pageSize:20,
total:0,
tableData:[],
tableLoading:false,
title:'',
apiModel:'',
dialogFormVisible:false,
positionForm:{
id:'',
name:'',
deptId:'',
deptName:'',
postType:'',
socialBenefits:'',
transportLine:'',
employGap:'',
salaryStand:'',
payGrantType:'',
startDate:'',
endDate:'',
remark:'',
driveAge:'',
age:'',
goodsType:'',
driveMode:'',
getOnAddress:null,
getOnAddressProvince:'',
getOnAddressCity:'',
getOnAddressDistr:'',
},
positionRules:{
name:[{
required: true,
message: '请输入职位名称',
trigger: 'blur'
}],
driveMode:[{
required: true,
message: '请选择准驾车型',
trigger: 'change'
}],
postType:[{
required: true,
message: '请选择职位类别',
trigger: 'change'
}],
driveAge:[{
required: true,
message: '请输入驾龄要求',
trigger: 'blur'
}],
goodsType:[{
required: true,
message: '请选择货物类型',
trigger: 'change'
}],
payGrantType:[{
required: true,
message: '请选择薪资发放方式',
trigger: 'change'
}],
age:[{
required: true,
message: '请输入年龄要求',
trigger: 'blur'
}],
startDate:[{
required: true,
message: '请选择开始时间',
trigger: 'change'
}],
endDate:[{
required: true,
message: '请选择结束时间',
trigger: 'change'
}],
remark:[{
required: true,
message: '请输入岗位说明',
trigger: 'blur'
}],
salaryStand:[{
required: true,
message: '请输入薪资标准',
trigger: 'blur'
}],
socialBenefits:[{
required: true,
message: '请输入补贴',
trigger: 'blur'
}],
employGap:[{
required: true,
message: '请输入用工缺口',
trigger: 'blur'
}]
},
dialogFormDetailVisible:false,
positionFormDetail:{
name:'',
deptId:'',
deptName:'',
postType:'',
socialBenefits:'',
transportLine:'',
employGap:'',
salaryStand:'',
payGrantType:'',
startDate:'',
endDate:'',
remark:'',
driveAge:'',
age:'',
goodsType:'',
driveMode:'',
getOnAddressDistr:''
},
}
},
computed:{
headerCellStyle(){
return {
textAlign:'center'
}
},
mapDataFormat(){
return this.transformData(this.mapDataFn(mapData));
}
},
mounted() {
this.getDriverMode();
this.getPostType();
this.getGoodsType();
this.getPostSign()
/* this.loadList(); */
},
methods:{
// 转换函数
transformData(data) {
return data.map(item => ({
value: item.pid,
label: item.fullname,
children: item.children ? this.transformData(item.children) : null
}));
},
mapDataFn(data){
let _retData = [];
data.map(item => {
Object.keys(item).forEach(key => {
if(key === 'pid'){
_retData.push({
pid: item.pid,
fullname: item.fullname,
children: item.children ? this.mapDataFn(item.children) : null
});
}else if(key === 'cid'){
_retData.push({
pid: item.cid,
fullname: item.fullname,
});
}
})
})
return _retData;
},
dateFormat(date){
if(String(date).indexOf('GMT')>-1){
let _date = new Date(date);
let _year = _date.getFullYear();
let _month = String(_date.getMonth() + 1).padStart(2, '0');
let _day = String(date.getDate()).padStart(2, '0');
return `${_year}-${_month}-${_day}`;
}else{
return date;
}
},
//字典转换
dictTypeChange(arr,val){
if(!val){
return "——";
}
return arr.find(item => item.dictValue === val)?.dictLabel;
},
// 获取准驾车型
getDriverMode(){
let _this =this;
dictTypeList({dictType: "driving_rank"}).then(res =>{
if(res.code === 200){
res.rows.forEach(item => {
_this.driverModeArr.push({
dictLabel: item.dictLabel,
dictValue: item.dictValue
})
})
}
})
},
//获取签约类别
getPostSign(){
let _this =this;
dictTypeList({dictType: "apply_sign_type"}).then(res =>{
if(res.code === 200){
res.rows.forEach(item => {
_this.positionArr.push({
dictLabel: item.dictLabel,
dictValue: item.dictValue
})
})
}
})
},
//获取岗位类别
getPostType(){
let _this =this;
dictTypeList({dictType: "post_type"}).then(res =>{
if(res.code === 200){
res.rows.forEach(item => {
_this.postTypeArr.push({
dictLabel: item.dictLabel,
dictValue: item.dictValue
})
})
}
})
},
//获取货物类型
getGoodsType(){
let _this =this;
dictTypeList({dictType: "goods_type"}).then(res =>{
if(res.code === 200){
res.rows.forEach(item => {
_this.goodsTypeArr.push({
dictLabel: item.dictLabel,
dictValue: item.dictValue
})
})
}
})
},
loadList(){
let _this = this;
_this.tableLoading = true;
let _params = {
pageNum:_this.currentPage,
pageSize:_this.pageSize
}
//判断是否为超级管理员权限
let _roles = _this.$store.getters.roles;
if(!_roles.includes('admin')){
_params.deptId = this.$store.state.user.deptId;
}
_params = Object.assign(_params,_this.searchForm);
positionList(_params).then(res => {
_this.tableLoading = false;
if(res.code === 200){
_this.tableData = res.rows;
_this.total = res.total;
}else{
_this.$message({
type: 'error',
message: res.msg
});
}
})
},
loadFormDetail(id,type){
let _this = this;
positionDetail(id).then(res => {
if(res.code === 200){
if(type === '1'){
_this.positionForm = res.data;
_this.positionForm.getOnAddress = [_this.positionForm.getOnAddressProvince,_this.positionForm.getOnAddressCity];
}else{
_this.positionFormDetail = res.data;
_this.positionFormDetail.deptName = _this.$store.state.user.deptName;
//字典值转换,赋值到详情中
_this.positionFormDetail.goodsType = _this.dictTypeChange(_this.goodsTypeArr,_this.positionFormDetail.goodsType);
_this.positionFormDetail.driveMode = _this.dictTypeChange(_this.driverModeArr,_this.positionFormDetail.driveMode);
_this.positionFormDetail.payGrantType = _this.dictTypeChange(_this.payGrantTypeArr,_this.positionFormDetail.payGrantType);
_this.positionFormDetail.postType = _this.dictTypeChange(_this.postTypeArr,_this.positionFormDetail.postType);
}
}else{
_this.$message({
type: 'error',
message: res.msg
});
}
})
},
resetForm(){
this.$refs.positionFormRef.resetFields();
Object.keys(this.positionForm).forEach(key => {
this.positionForm[key] = '';
})
Object.keys(this.positionFormDetail).forEach(key => {
this.positionForm[key] = '';
})
},
handleSearchList(){
this.loadList();
},
handleResetList(){
this.$refs.searchForm.resetFields();
this.loadList();
},
handleSizeChange(val){
this.pageSize = val;
this.loadList();
},
handleCurrentChange(val){
this.currentPage = val;
this.loadList();
},
handleFormSubmit(){
let _this = this;
_this.$refs.positionFormRef.validate((valid) => {
if(valid){
if(_this.dateCompareFn(_this.dateFormat(_this.positionForm.startDate))>_this.dateCompareFn(_this.dateFormat(_this.positionForm.endDate))){
_this.$message({
type: 'error',
message: '开始日期不能大于结束日期!'
});
return false;
}
if(_this.apiModel === 'add'){
_this.positionForm.startDate = _this.dateFormat(_this.positionForm.startDate)+' 00:00:00';
_this.positionForm.endDate = _this.dateFormat(_this.positionForm.endDate)+' 00:00:00';
addPosition(_this.positionForm).then(res => {
if(res.code === 200){
_this.$message({
type: 'success',
message: '新增成功!'
});
_this.resetForm();
_this.dialogFormVisible = false;
_this.loadList();
}else{
_this.$message({
type: 'error',
message: res.msg
});
}
})
}else{
_this.positionForm.startDate = _this.dateFormat(_this.positionForm.startDate)+' 00:00:00';
_this.positionForm.endDate = _this.dateFormat(_this.positionForm.endDate)+' 00:00:00';
updatePosition(_this.positionForm).then(res => {
if(res.code === 200){
_this.$message({
type: 'success',
message: '修改成功!'
});
_this.resetForm();
_this.dialogFormVisible = false;
_this.loadList();
}else{
_this.$message({
type: 'error',
message: res.msg
});
}
})
}
}
})
},
handleFormBeforeClose(){
this.dialogFormVisible = false;
this.resetForm();
},
handleFormCancel(val){
this.dialogFormVisible = false;
this.resetForm();
},
handleAddPosition(){
this.dialogFormVisible = true;
this.title = '新增信息';
this.apiModel = 'add';
this.positionForm.deptId = this.$store.state.user.deptId;
this.positionForm.deptName = this.$store.state.user.deptName;
},
handleEditPosition(row){
this.dialogFormVisible = true;
this.title = '编辑信息';
this.apiModel = 'update';
this.positionForm.id = row.id;
this.positionForm.deptId = this.$store.state.user.deptId;
this.positionForm.deptName = this.$store.state.user.deptName;
this.loadFormDetail(row.id,'1');
},
handleDetailPosition(row){
this.dialogFormDetailVisible = true;
this.loadFormDetail(row.id,'2');
},
handleFormDetailBeforeClose(){
this.dialogFormDetailVisible = false;
this.resetForm();
},
handleFormDetailCancel(val){
this.dialogFormDetailVisible = false;
this.resetForm();
},
handleDeletePosition(row){
let _this = this;
this.$confirm('是否删除此职位?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delPosition(row.id).then(res => {
if(res.code === 200){
_this.$message({
type: 'success',
message: '删除成功!'
});
_this.loadList()
}else{
_this.$message({
type: 'error',
message: res.msg
});
}
})
})
},
//地区事件
handleCascaderChange(val){
this.positionForm.getOnAddressProvince = val[0];
this.positionForm.getOnAddressCity = val[1];
this.positionForm.getOnAddressDistr = this.$refs.formCascader.getCheckedNodes()[0].pathLabels.join('');
},
//时间设置
handleStartDate(val){
if(this.dateCompareFn(this.dateFormat(val))>this.dateCompareFn(this.dateFormat(this.positionForm.endDate))){
this.$message({
type: 'error',
message: '开始日期不能大于结束日期!'
});
}
},
handleEndDate(val){
if(this.dateCompareFn(this.dateFormat(val))<this.dateCompareFn(this.dateFormat(this.positionForm.startDate))){
this.$message({
type: 'error',
message: '结束日期不能小于开始日期!'
});
}
},
dateCompareFn(date){
const isoDateString = date.replace(' ', 'T');
const _date = new Date(isoDateString);
return _date.getTime();
}
}
}
</script>
<style scoped lang="scss">
.position_content{
width: 100%;
box-sizing: border-box;
padding: 10px 15px;
.position_tabbar{
margin-bottom: 10px;
}
.position_pagination{
margin-top: 10px;
width: 100%;
text-align: right;
}
.position_form_item{
display: flex;
flex-direction: row;
}
.position_form_content{
width: 100%;
height: 65vh;
box-sizing: border-box;
padding: 10px;
overflow-y: auto;
}
}
</style>
根据 <el-form :model="positionForm" :rules="positionRules" ref="positionFormRef" label-width="120px">
<div class="position_form_item">
<el-form-item label="标题" prop="name" style="width: 100%">
<el-input style="width: 100%" v-model="positionForm.name" placeholder="请输入发布标题"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="货物类型" prop="goodsType" style="width: 50%">
<el-select
v-model="positionForm.goodsType"
placeholder="请选择货物类型"
style="width: 100%"
>
<el-option
v-for="(item, index) in goodsTypeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="驾照等级" prop="driveMode" style="width: 50%">
<el-select v-model="positionForm.driveMode" placeholder="请选择驾照等级" style="width: 100%">
<el-option
v-for="(item, index) in driverModeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictLabel"
/>
</el-select>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="任务类型" prop="position" style="width: 50%">
<el-select v-model="positionForm.position" placeholder="请选择任务类型" style="width: 100%">
<el-option
v-for="(item, index) in positionArr"
:key="index"
:label="item.dictValue"
:value="item.dictLabel"
/>
</el-select>
</el-form-item>
<el-form-item label="岗位类型" prop="transportLine" style="width: 50%">
<el-select v-model="positionForm.postType" placeholder="请选择任务类型" style="width: 100%">
<el-option
v-for="(item, index) in postTypeArr"
:key="index"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="用工人数" prop="employGap" style="width: 50%">
<el-input v-model="positionForm.employGap" type="number" placeholder="请输入用工人数"></el-input>
</el-form-item>
<el-form-item label="驾龄要求" prop="driveAge" style="width: 50%">
<el-input v-model="positionForm.driveAge" placeholder="请输入驾龄要求"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="薪资范围" prop="salaryStand" style="width: 50%">
<el-input v-model="positionForm.salaryStand" type="number" placeholder="请输入薪资范围"></el-input>
</el-form-item>
<el-form-item label="福利待遇" prop="socialBenefits" style="width: 50%">
<el-input v-model="positionForm.socialBenefits" placeholder="请输入福利待遇"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="联系方式" prop="salaryStand" style="width: 50%">
<el-input v-model="positionForm.salaryStand" type="number" placeholder="请输入联系方式"></el-input>
</el-form-item>
<el-form-item label="运输次数" prop="haulCount" style="width: 50%">
<el-input v-model="positionForm.haulCount" placeholder="请输入运输次数"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="开始时间" prop="startDate" style="width: 50%">
<el-date-picker
v-model="positionForm.startDate"
type="datetime"
style="width: 100%"
placeholder="请选择开始时间"
@change="handleStartDate"
/>
</el-form-item>
<el-form-item label="结束时间" prop="endDate" style="width: 50%">
<el-date-picker
v-model="positionForm.endDate"
type="datetime"
style="width: 100%"
placeholder="请选择结束时间"
@change="handleEndDate"
/>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="上车地址" prop="getOnAddress" style="width: 50%">
<el-cascader
ref="formCascader"
v-model="positionForm.getOnAddress"
:options="mapDataFormat"
style="width: 100%"
@change="handleCascaderChange"
/>
</el-form-item>
<el-form-item label="运输路线" prop="transportLine" style="width: 50%">
<el-input v-model="positionForm.transportLine" placeholder="请输入运输路线,例如:A-B"></el-input>
</el-form-item>
</div>
<div class="position_form_item">
<el-form-item label="补充描述" prop="remark" style="width: 100%">
<el-input type="textarea" show-word-limit :rows="10" v-model="positionForm.remark" placeholder="请输入补充描述" />
</el-form-item>
</div>
</el-form>里面的字段名和参数名,修改列表的和详情数据