|
@@ -1,253 +1,100 @@
|
|
|
<template>
|
|
|
<div class="card-edit">
|
|
|
<a-form :model="dataModel" autocomplete="off" @finish="onFinish">
|
|
|
- <a-divider orientation="left">岗位信息管理</a-divider>
|
|
|
+ <a-divider orientation="left">任务信息管理</a-divider>
|
|
|
<a-row :gutter="24">
|
|
|
- <a-col :span="6">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item
|
|
|
- label="岗位名称"
|
|
|
+ label="任务名称"
|
|
|
:label-col="{ span: 6 }"
|
|
|
- name="PostName"
|
|
|
- :rules="[{ required: true, message: '请输入岗位名称!' }]"
|
|
|
+ name="DotaskName"
|
|
|
+ :rules="[{ required: true, message: '请输入任务名称!' }]"
|
|
|
>
|
|
|
- <a-input v-model:value="dataModel.PostName" placeholder=""/>
|
|
|
+ <a-input v-model:value="dataModel.DotaskName" placeholder=""/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="6">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item
|
|
|
- label="有效开始时间"
|
|
|
+ label="任务类型"
|
|
|
:label-col="{ span: 6 }"
|
|
|
- name="ValidTime"
|
|
|
- :rules="[{ required: true, message: '请输入招聘有效开始时间' }]"
|
|
|
- >
|
|
|
- <a-date-picker
|
|
|
- v-model:value="dataModel.ValidTime"
|
|
|
- picker="date"
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
- />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="有效期(天)"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="ValidDay"
|
|
|
- :rules="[{ required: true, message: '请输入有效期(天)!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.ValidDay" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="岗位状态"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="RecordStatus"
|
|
|
- :rules="[{ required: true, message: '请岗位状态!' }]"
|
|
|
+ name="WorkTypeID"
|
|
|
+ :rules="[{ required: true, message: '请输入任务类型!' }]"
|
|
|
>
|
|
|
<a-select
|
|
|
ref="select"
|
|
|
- v-model:value="dataModel.RecordStatus"
|
|
|
+ v-model:value="dataModel.WorkTypeID"
|
|
|
:options="studentTypelist"
|
|
|
:field-names="{ label: 'name', value: 'value' }"
|
|
|
>
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- </a-row>
|
|
|
- <a-row :gutter="24">
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="所属企业"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="CompanyID"
|
|
|
- :rules="[{ required: true, message: '请选择企业!' }]"
|
|
|
- >
|
|
|
- <a-select
|
|
|
- ref="select"
|
|
|
- v-model:value="dataModel.CompanyID"
|
|
|
- :options="studentTypelist"
|
|
|
- :field-names="{ label: 'name', value: 'value' }"
|
|
|
- >
|
|
|
- </a-select>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item
|
|
|
- label="工作性质"
|
|
|
+ label="任务完成时间"
|
|
|
:label-col="{ span: 6 }"
|
|
|
- name="WorkNature"
|
|
|
- :rules="[{ required: true, message: '请输入工作性质!' }]"
|
|
|
+ name="FinishTime"
|
|
|
+ :rules="[{ required: true, message: '请输入任务完成时间!' }]"
|
|
|
>
|
|
|
- <a-input v-model:value="dataModel.WorkNature" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="工作年限"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="WorkYear"
|
|
|
- :rules="[{ required: true, message: '请输入工作年限!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.WorkYear" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="招聘人数"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="RecruitCount"
|
|
|
- :rules="[{ required: true, message: '请输入招聘人数!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.RecruitCount" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- </a-row>
|
|
|
- <a-row :gutter="24">
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="文化程度"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="CultureRank"
|
|
|
- :rules="[{ required: true, message: '请选择文化程度!' }]"
|
|
|
- >
|
|
|
- <a-select
|
|
|
- ref="select"
|
|
|
- v-model:value="dataModel.CultureRank"
|
|
|
- :options="studentStatuslist"
|
|
|
- :field-names="{ label: 'name', value: 'value' }"
|
|
|
- >
|
|
|
- </a-select>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="最高薪酬"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="MaxSalary"
|
|
|
- :rules="[{ required: true, message: '请输入最高薪酬!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.MaxSalary" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="最低薪酬"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="MinSalary"
|
|
|
- :rules="[{ required: true, message: '请输入最低薪酬!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.MinSalary" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="福利待遇"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="Welfare"
|
|
|
- :rules="[{ required: true, message: '请输入福利待遇!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.Welfare" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- </a-row>
|
|
|
- <a-row :gutter="24">
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="联系人"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="UserName"
|
|
|
- :rules="[{ required: true, message: '请选择联系人!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.UserName" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="联系电话"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="UserMobile"
|
|
|
- :rules="[{ required: true, message: '请输入联系电话!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.UserMobile" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="邮箱"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="PostEmial"
|
|
|
- :rules="[{ required: true, message: '请输入邮箱!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.PostEmial" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="工作时长"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="WorkTime"
|
|
|
- :rules="[{ required: true, message: '请输入工作时长!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.WorkTime" placeholder=""/>
|
|
|
+ <a-date-picker
|
|
|
+ v-model:value="dataModel.FinishTime"
|
|
|
+ picker="date"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
<a-row :gutter="24">
|
|
|
- <a-col :span="6">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item
|
|
|
- label="是否试用期"
|
|
|
+ label="所属县区"
|
|
|
:label-col="{ span: 6 }"
|
|
|
- name="IsTrail"
|
|
|
- :rules="[{ required: true, message: '请选择是否试用期!' }]"
|
|
|
+ name="RegionCode"
|
|
|
+ :rules="[{ required: true, message: '请选择所属县区!' }]"
|
|
|
>
|
|
|
<a-select
|
|
|
ref="select"
|
|
|
- v-model:value="dataModel.IsTrail"
|
|
|
- :options="studentStatuslist"
|
|
|
+ v-model:value="dataModel.RegionCode"
|
|
|
+ :options="studentTypelist"
|
|
|
:field-names="{ label: 'name', value: 'value' }"
|
|
|
>
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="试用期时长"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="Trailtime"
|
|
|
- :rules="[{ required: true, message: '请选择试用期时长!' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.Trailtime" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
+ <a-col :span="8">
|
|
|
<a-form-item
|
|
|
- label="试用期最高薪酬"
|
|
|
+ label="所属街道"
|
|
|
:label-col="{ span: 6 }"
|
|
|
- name="TrailMaxSalary"
|
|
|
- :rules="[{ required: true, message: '请输入试用期最高薪酬!' }]"
|
|
|
+ name="StreetCode"
|
|
|
+ :rules="[{ required: true, message: '请选择所属街道!' }]"
|
|
|
>
|
|
|
- <a-input v-model:value="dataModel.TrailMaxSalary" placeholder=""/>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :span="6">
|
|
|
- <a-form-item
|
|
|
- label="试用期最低薪酬"
|
|
|
- :label-col="{ span: 6 }"
|
|
|
- name="TrailMinSalary"
|
|
|
- :rules="[{ required: true, message: '' }]"
|
|
|
- >
|
|
|
- <a-input v-model:value="dataModel.TrailMinSalary" placeholder=""/>
|
|
|
+ <a-input v-model:value="dataModel.StreetCode" placeholder=""/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
- <a-divider orientation="left">其他信息</a-divider>
|
|
|
<a-row>
|
|
|
<a-col class="table-bottom-a1">
|
|
|
- <a-form-item :label-col="{span:8}" label="" name="PostDesc">
|
|
|
- <a-textarea v-model:value="dataModel.PostDesc" placeholder="岗位描述" :rows="4"/>
|
|
|
+ <a-form-item :label-col="{span:6}" label="" name="Content">
|
|
|
+ <a-textarea v-model:value="dataModel.Content" placeholder="任务内容" :rows="4"/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
+ <a-divider orientation="left">任务执行人员</a-divider>
|
|
|
+ <div class="search-result-list">
|
|
|
+ <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }"
|
|
|
+ :loading="formState.loading"
|
|
|
+ :row-key="record=>record.SiteUserID"
|
|
|
+ bordered>
|
|
|
+ </a-table>
|
|
|
+ </div>
|
|
|
+ <a-divider orientation="left">其他信息</a-divider>
|
|
|
+ <b-upload-file
|
|
|
+ :file-ref-id="dataModel.DotaskID"
|
|
|
+ :readonly="false"
|
|
|
+ :multiple="true"
|
|
|
+ :set-file-list="setFileList"
|
|
|
+ :accept="'.pdf,.png,.jpg,.jpeg,.xls,.xlsx,.doc,.docx,.txt,.ppt,.pptx'"
|
|
|
+ ></b-upload-file>
|
|
|
<a-form-item class="buttom-btns">
|
|
|
<a-button @click="onClose">取消</a-button>
|
|
|
<a-button type="primary" html-type="submit">提交</a-button>
|
|
@@ -259,7 +106,7 @@
|
|
|
<script lang="ts">
|
|
|
import { defineComponent, reactive, ref, toRefs } from 'vue';
|
|
|
import { useRouter } from 'vue-router';
|
|
|
-import type { SelectProps } from 'ant-design-vue';
|
|
|
+import type { SelectProps,TableColumnsType } from 'ant-design-vue';
|
|
|
import { useTabsViewStore } from '@/store/modules/tabsView';
|
|
|
import BUploadFile from '@/components/file/uploadFile.vue';
|
|
|
|
|
@@ -272,12 +119,30 @@ export default defineComponent(
|
|
|
components: { BUploadFile },
|
|
|
setup()
|
|
|
{
|
|
|
+ //任务执行人员列表
|
|
|
+ const dataList = ref([]);
|
|
|
const formState = reactive<FormState>({ dataModel: {} });
|
|
|
+ const formTableState = reactive({ loading: false});
|
|
|
+ const searchParams = reactive({
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 99
|
|
|
+ });
|
|
|
const router = useRouter();
|
|
|
const postStatuslist = ref<SelectProps['options']>();
|
|
|
// const fullpath = router.currentRoute.value.fullPath;
|
|
|
const tabsViewStore = useTabsViewStore();
|
|
|
|
|
|
+ const fileList = ref();
|
|
|
+ const setFileList = (files) => {
|
|
|
+ fileList.value = files;
|
|
|
+ };
|
|
|
+
|
|
|
+ const onAdd=()=>{
|
|
|
+ tabsViewStore.addTabByPath('',null);
|
|
|
+ };
|
|
|
+ const onDel=()=>{
|
|
|
+
|
|
|
+ };
|
|
|
const onClose = () => {
|
|
|
tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/add');
|
|
|
tabsViewStore.closeCurrentTabByPath('taskAndLog/dotask/edit');
|
|
@@ -292,11 +157,30 @@ export default defineComponent(
|
|
|
|
|
|
};
|
|
|
|
|
|
+ const columns:TableColumnsType=[
|
|
|
+ {
|
|
|
+ title: '序号',
|
|
|
+ align: "center",
|
|
|
+ key: 'companyID',
|
|
|
+ customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
|
|
|
+ },
|
|
|
+ {title: '姓名', dataIndex: 'Name', key: 'Name', align: "center"},
|
|
|
+ {title: '性别', dataIndex: 'Gender', key: 'Gender', align: "center"},
|
|
|
+ {title: '联系电话', dataIndex: 'Mobile', key: 'Mobile', align: "center"},
|
|
|
+ ]
|
|
|
+
|
|
|
return {
|
|
|
...toRefs(formState),
|
|
|
loadData,
|
|
|
onClose,
|
|
|
onFinish,
|
|
|
+ onAdd,
|
|
|
+ onDel,
|
|
|
+ dataList,
|
|
|
+ columns,
|
|
|
+ formState,
|
|
|
+ formTableState,
|
|
|
+ setFileList,
|
|
|
postStatuslist
|
|
|
}
|
|
|
}
|