Browse Source

岗位信息管理-新增静态页面

Liudijing 1 year ago
parent
commit
efb21fac61

+ 2 - 0
vue/src/router/asyncModules/companyService.ts

@@ -1,4 +1,6 @@
 export default {
   'companyService/company/index': () => import('@/views/companyService/company/index.vue'),
   'companyService/post/index': () => import('@/views/companyService/post/index.vue'),
+  'companyService/post/add': () => import('@/views/companyService/post/edit.vue'),
+  'companyService/post/edit': () => import('@/views/companyService/post/edit.vue')
 };

+ 2 - 0
vue/src/router/asyncModules/taskAndLog.ts

@@ -1,3 +1,5 @@
 export default {
   'taskAndLog/dotask/index': () => import('@/views/taskAndLog/dotask/index.vue'),
+  'taskAndLog/dotask/add': () => import('@/views/taskAndLog/dotask/edit.vue'),
+  'taskAndLog/dotask/edit': () => import('@/views/taskAndLog/dotask/edit.vue')
 };

+ 39 - 20
vue/src/views/companyService/company/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="card-search">
-    <a-form ref="formRef" name="advanced_search"  class="ant-advanced-search-form" :model="searchParams" >
+    <a-form ref="formRef" name="advanced_search" class="ant-advanced-search-form" :model="searchParams">
       <a-row :gutter="24">
         <a-col :span="6">
           <a-form-item label="企业名称" :label-col="{span:6}" name="CompanyName">
@@ -17,7 +17,7 @@
             <a-input v-model:value="searchParams.recordStatus" placeholder=""/>
           </a-form-item>
         </a-col>
-      <a-col :span="5" style="text-align: right">
+        <a-col :span="5" style="text-align: right">
           <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
         </a-col>
       </a-row>
@@ -39,9 +39,9 @@
       </a-row>
       <a-row class="edit-operation">
         <a-col :span="24" style="text-align: right">
-          <a-button type="primary" html-type="submit" @click='onOperates(null,"新增",false)' >新增</a-button>
-          <a-button type="primary" html-type="submit" @click='onOperates(null,"导入",false)' >导入</a-button>
-          <a-button type="primary" html-type="submit" @click='onOperates(null,"导出",false)' >导出</a-button>
+          <a-button type="primary" html-type="submit" @click='onAdd'>新增</a-button>
+          <a-button type="primary" html-type="submit" >导入</a-button>
+          <a-button type="primary" html-type="submit" >导出</a-button>
         </a-col>
       </a-row>
     </a-form>
@@ -55,8 +55,8 @@
         <template #bodyCell="{ column, text, record }">
           <template v-if="column.key === 'operation'">
             <div class="table-operation">
-              <a-button type="link" size="small" @click='onOperates(record.companyID,"修改",false)' >编辑</a-button>
-              <a-button type="link" size="small" @click="onDel(record)" >删除</a-button>
+              <a-button type="link" size="small" @click='onEdit(record)'>编辑</a-button>
+              <a-button type="link" size="small" @click="onDel(record)">删除</a-button>
             </div>
           </template>
         </template>
@@ -76,6 +76,8 @@ import InstitutionEditForm from "@/views/baseSettings/institution/edit.vue";
 import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
 import {getPaginationTotalTitle} from "@/utils/common";
 import {message, Modal} from "ant-design-vue";
+import dayjs from "dayjs";
+import { useTabsViewStore } from '@/store/modules/tabsView';
 
 export default defineComponent({
   name: 'CompanyList',
@@ -85,12 +87,12 @@ export default defineComponent({
     const searchParams = reactive({
       pageIndex: 1,
       pageSize: 20,
-      primaryKey:'',
+      primaryKey: '',
       companyName: '',
       companyCode: '',
-      recordStatus:'',
-      regionCode:'',
-      streetCode:''
+      recordStatus: '',
+      regionCode: '',
+      streetCode: ''
     });
     const formState = reactive({
       total: 0,
@@ -98,9 +100,14 @@ export default defineComponent({
       loading: false
     });
     const columns: TableColumnsType = [
-      {title: '序号', align: "center",key: 'companyID',customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`},
+      {
+        title: '序号',
+        align: "center",
+        key: 'companyID',
+        customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
+      },
       {title: '企业名称', dataIndex: 'companyName', key: 'companyName', align: "center"},
-      {title: '所属县区', dataIndex: 'regionCode', key: 'regionCode',width:120, align: "center"},
+      {title: '所属县区', dataIndex: 'regionCode', key: 'regionCode', width: 120, align: "center"},
       {title: '所属街道', dataIndex: 'streetCode', key: 'streetCode', align: "center"},
       {title: '统一信用代码', dataIndex: 'companyCode', key: 'companyCode', align: "center"},
       {title: '企业状态', dataIndex: 'recordStatus', key: 'recordStatus', align: "center"},
@@ -108,8 +115,12 @@ export default defineComponent({
       {title: '企业规模', dataIndex: 'companyModel', key: 'companyModel', align: "center"},
       {title: '当前岗位数量', dataIndex: 'positionCount', key: 'positionCount', align: "center"},
       {title: '录入人', dataIndex: 'createUser', key: 'createUser', align: "center"},
-      {title: '录入时间   ', dataIndex: 'createTime', key: 'createTime', align: "center"},
-      {title: '操作', key: 'operation', fixed: 'right',width:170, align: "center"},
+      {
+        title: '录入时间   ', dataIndex: 'createTime', key: 'createTime', align: "center", customRender: (item) => {
+          return item.record.createTime == null ? "" : (dayjs(item.record.createTime).format('YYYY-MM-DD'))
+        }
+      },
+      {title: '操作', key: 'operation', fixed: 'right', width: 170, align: "center"},
     ];
     const pagination = computed(() => ({
       total: formState.total,
@@ -121,7 +132,7 @@ export default defineComponent({
 
     const dataList = ref([]);
     const institutionEditModelRef = ref();
-
+    const tabsViewStore = useTabsViewStore();
 
     const loadData = async function () {
       formState.loading = true;
@@ -145,7 +156,7 @@ export default defineComponent({
       loadData();
     }
 
-    const onDel= (item: any) => {
+    const onDel = (item: any) => {
       if (item) {
         formState.selectedRowKeys.push(item.InstitutionID as never)
       }
@@ -174,8 +185,15 @@ export default defineComponent({
       });
     };
 
-    const onOperates = (id: string,operation:string,isDetail:boolean) => {
-      institutionEditModelRef.value.show(id,operation,isDetail);
+    // const onOperates = (id: string, operation: string, isDetail: boolean) => {
+    //   institutionEditModelRef.value.show(id, operation, isDetail);
+    // };
+
+    const onAdd = () => {
+      tabsViewStore.addTabByPath('/schoolinformation/student/add', null);
+    };
+    const onEdit = (item: any) => {
+      tabsViewStore.addTabByPath('/schoolinformation/student/edit', { id: item.studentID });
     };
 
     return {
@@ -189,8 +207,9 @@ export default defineComponent({
       handleTableChange,
       onSelectChange,
       onSearch,
-      onOperates,
       onDel,
+      onAdd,
+      onEdit,
       loadData
     };
   },

+ 314 - 0
vue/src/views/companyService/post/edit.vue

@@ -0,0 +1,314 @@
+<template>
+  <div class="card-edit">
+    <a-form :model="dataModel" autocomplete="off" @finish="onFinish">
+      <a-divider orientation="left">岗位信息管理</a-divider>
+
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <a-form-item
+            label="岗位名称"
+            :label-col="{ span: 6 }"
+            name="PostName"
+            :rules="[{ required: true, message: '请输入岗位名称!' }]"
+          >
+            <a-input v-model:value="dataModel.PostName" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item
+            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="8">
+          <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-row>
+
+
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <a-form-item
+            label="岗位状态"
+            :label-col="{ span: 6 }"
+            name="RecordStatus"
+            :rules="[{ required: true, message: '请岗位状态!' }]"
+          >
+            <a-select
+              ref="select"
+              v-model:value="dataModel.RecordStatus"
+              :options="studentTypelist"
+              :field-names="{ label: 'name', value: 'value' }"
+            >
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <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="8">
+          <a-form-item
+            label="工作性质"
+            :label-col="{ span: 6 }"
+            name="WorkNature"
+            :rules="[{ required: true, message: '请输入工作性质!' }]"
+          >
+            <a-input v-model:value="dataModel.WorkNature" placeholder=""/>
+          </a-form-item>
+        </a-col>
+      </a-row>
+
+
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <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="8">
+          <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-col :span="8">
+          <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-row>
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <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="8">
+          <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="8">
+          <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="8">
+          <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="8">
+          <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="8">
+          <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-row>
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <a-form-item
+            label="工作时长"
+            :label-col="{ span: 6 }"
+            name="WorkTime"
+            :rules="[{ required: true, message: '请输入工作时长!' }]"
+          >
+            <a-input v-model:value="dataModel.WorkTime" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item
+            label="是否试用期"
+            :label-col="{ span: 6 }"
+            name="IsTrail"
+            :rules="[{ required: true, message: '请选择是否试用期!' }]"
+          >
+            <a-select
+              ref="select"
+              v-model:value="dataModel.IsTrail"
+              :options="studentStatuslist"
+              :field-names="{ label: 'name', value: 'value' }"
+            >
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <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-row>
+      <a-row :gutter="24">
+        <a-col :span="8">
+          <a-form-item
+            label="试用期最高薪酬"
+            :label-col="{ span: 6 }"
+            name="TrailMaxSalary"
+            :rules="[{ required: true, message: '请输入试用期最高薪酬!' }]"
+          >
+            <a-input v-model:value="dataModel.TrailMaxSalary" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item
+            label="试用期最低薪酬"
+            :label-col="{ span: 6 }"
+            name="TrailMinSalary"
+            :rules="[{ required: true, message: '' }]"
+          >
+            <a-input v-model:value="dataModel.TrailMinSalary" 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>
+        </a-col>
+      </a-row>
+      <a-form-item class="buttom-btns">
+        <a-button @click="onClose">取消</a-button>
+        <a-button type="primary" html-type="submit">提交</a-button>
+      </a-form-item>
+    </a-form>
+  </div>
+</template>
+
+<script lang="ts">
+import { defineComponent, reactive, ref, toRefs } from 'vue';
+import { useRouter } from 'vue-router';
+import type { SelectProps } from 'ant-design-vue';
+import { useTabsViewStore } from '@/store/modules/tabsView';
+import BUploadFile from '@/components/file/uploadFile.vue';
+
+interface FormState {
+  dataModel: any;
+}
+
+export default defineComponent(
+{
+  components: { BUploadFile },
+  setup()
+  {
+    const formState = reactive<FormState>({ dataModel: {} });
+    const router = useRouter();
+    const postStatuslist = ref<SelectProps['options']>();
+    // const fullpath = router.currentRoute.value.fullPath;
+    const tabsViewStore = useTabsViewStore();
+
+    const onClose = () => {
+      tabsViewStore.closeCurrentTabByPath('/companyService/post/add');
+      tabsViewStore.closeCurrentTabByPath('/companyService/post/edit');
+      router.push({ name: '/companyService/post/index' });
+    };
+
+    const onFinish=()=>{
+
+    }
+
+    const loadData = () => {
+
+    };
+
+    return {
+      ...toRefs(formState),
+      loadData,
+      onClose,
+      onFinish,
+      postStatuslist
+    }
+  }
+})
+</script>
+

+ 14 - 4
vue/src/views/companyService/post/index.vue

@@ -45,7 +45,7 @@
       </a-row>
       <a-row class="edit-operation">
         <a-col :span="24" style="text-align: right">
-          <a-button type="primary" html-type="submit" @click='onOperates(null,"新增",false)'>新增</a-button>
+          <a-button type="primary" html-type="submit" @click='onAdd'>新增</a-button>
           <a-button type="primary" html-type="submit" @click='importPost()'>导入</a-button>
           <a-button type="primary" html-type="submit" @click='exportPost()'>导出</a-button>
         </a-col>
@@ -61,7 +61,7 @@
         <template #bodyCell="{ column, text, record }">
           <template v-if="column.key === 'operation'">
             <div class="table-operation">
-              <a-button type="link" size="small" @click='onOperates(record.institutionID,"修改",false)'>编辑</a-button>
+              <a-button type="link" size="small" @click='onEdit(record)'>编辑</a-button>
               <a-button type="link" size="small" @click="onDel(record)">删除</a-button>
             </div>
           </template>
@@ -81,8 +81,8 @@ import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
 import {getPaginationTotalTitle} from "@/utils/common";
 import {message, Modal} from "ant-design-vue";
 import dayjs from 'dayjs';
+import {useTabsViewStore} from "@/store/modules/tabsView";
 export default defineComponent({
-  name: 'PostList',
   components: { DownOutlined, UpOutlined, BExportExcel},
   setup() {
     const formRef = ref<FormInstance>();
@@ -136,6 +136,7 @@ export default defineComponent({
       showTotal: total => getPaginationTotalTitle(total)
     }));
 
+    const tabsViewStore = useTabsViewStore();
     const dataList = ref([]);
     const loadData = async function () {
       formState.loading = true;
@@ -146,6 +147,13 @@ export default defineComponent({
       formState.loading = false;
     }
 
+    const onAdd = () => {
+      tabsViewStore.addTabByPath('/companyService/post/add', null);
+    };
+    const onEdit = (item: any) => {
+      tabsViewStore.addTabByPath('/companyService/post/edit', { id: item.postID });
+    };
+
     const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
       searchParams.pageIndex = pag.current;
       searchParams.pageSize = pag.pageSize;
@@ -213,7 +221,9 @@ export default defineComponent({
       importPost,
       exportPost,
       onDel,
-      loadData
+      loadData,
+      onAdd,
+      onEdit
     };
   },
   created() {

+ 305 - 0
vue/src/views/taskAndLog/dotask/edit.vue

@@ -0,0 +1,305 @@
+<template>
+  <div class="card-edit">
+    <a-form :model="dataModel" autocomplete="off" @finish="onFinish">
+      <a-divider orientation="left">岗位信息管理</a-divider>
+      <a-row :gutter="24">
+        <a-col :span="6">
+          <a-form-item
+            label="岗位名称"
+            :label-col="{ span: 6 }"
+            name="PostName"
+            :rules="[{ required: true, message: '请输入岗位名称!' }]"
+          >
+            <a-input v-model:value="dataModel.PostName" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="6">
+          <a-form-item
+            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: '请岗位状态!' }]"
+          >
+            <a-select
+              ref="select"
+              v-model:value="dataModel.RecordStatus"
+              :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-form-item
+            label="工作性质"
+            :label-col="{ span: 6 }"
+            name="WorkNature"
+            :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-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="6">
+          <a-form-item
+            label="是否试用期"
+            :label-col="{ span: 6 }"
+            name="IsTrail"
+            :rules="[{ required: true, message: '请选择是否试用期!' }]"
+          >
+            <a-select
+              ref="select"
+              v-model:value="dataModel.IsTrail"
+              :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="Trailtime"
+            :rules="[{ required: true, message: '请选择试用期时长!' }]"
+          >
+            <a-input v-model:value="dataModel.Trailtime" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="6">
+          <a-form-item
+            label="试用期最高薪酬"
+            :label-col="{ span: 6 }"
+            name="TrailMaxSalary"
+            :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-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>
+        </a-col>
+      </a-row>
+      <a-form-item class="buttom-btns">
+        <a-button @click="onClose">取消</a-button>
+        <a-button type="primary" html-type="submit">提交</a-button>
+      </a-form-item>
+    </a-form>
+  </div>
+</template>
+
+<script lang="ts">
+import { defineComponent, reactive, ref, toRefs } from 'vue';
+import { useRouter } from 'vue-router';
+import type { SelectProps } from 'ant-design-vue';
+import { useTabsViewStore } from '@/store/modules/tabsView';
+import BUploadFile from '@/components/file/uploadFile.vue';
+
+interface FormState {
+  dataModel: any;
+}
+
+export default defineComponent(
+{
+  components: { BUploadFile },
+  setup()
+  {
+    const formState = reactive<FormState>({ dataModel: {} });
+    const router = useRouter();
+    const postStatuslist = ref<SelectProps['options']>();
+    // const fullpath = router.currentRoute.value.fullPath;
+    const tabsViewStore = useTabsViewStore();
+
+    const onClose = () => {
+      tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/add');
+      tabsViewStore.closeCurrentTabByPath('taskAndLog/dotask/edit');
+      router.push({ name: '/taskAndLog/dotask/index' });
+    };
+
+    const onFinish=()=>{
+
+    }
+
+    const loadData = () => {
+
+    };
+
+    return {
+      ...toRefs(formState),
+      loadData,
+      onClose,
+      onFinish,
+      postStatuslist
+    }
+  }
+})
+</script>
+

+ 15 - 3
vue/src/views/taskAndLog/dotask/index.vue

@@ -64,7 +64,7 @@
       </a-row>
       <a-row class="edit-operation">
         <a-col :span="24" style="text-align: right">
-          <a-button type="primary" html-type="submit" @click='onOperates(null,"新增",false)'>新增</a-button>
+          <a-button type="primary" html-type="submit" @click='onAdd'>新增</a-button>
           <a-button type="primary" html-type="submit" @click='importPost()'>导入</a-button>
           <a-button type="primary" html-type="submit" @click='exportPost()'>导出</a-button>
         </a-col>
@@ -75,7 +75,7 @@
                :loading="formState.loading"
                @change="handleTableChange"
                :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
-               :row-key="record=>record.institutionID"
+               :row-key="(record)=>record.dotaskID"
                bordered>
         <template #bodyCell="{ column, text, record }">
           <template v-if="column.key === 'operation'">
@@ -101,6 +101,8 @@ import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
 import {getPaginationTotalTitle} from "@/utils/common";
 import {message} from "ant-design-vue";
 import dayjs from 'dayjs';
+import {useTabsViewStore} from "@/store/modules/tabsView";
+
 export default defineComponent({
   name: 'doTaskList',
   components: { DownOutlined, UpOutlined, BExportExcel},
@@ -155,11 +157,19 @@ export default defineComponent({
       showTotal: total => getPaginationTotalTitle(total)
     }));
 
+    const tabsViewStore = useTabsViewStore();
     const regionList = ref<SelectProps['options']>();
     const streetList = ref<SelectProps['options']>();
     const taskTypeList = ref<SelectProps['options']>();
     const dataList = ref([]);
 
+    const onAdd = () => {
+      tabsViewStore.addTabByPath('/taskAndLog/dotask/add', null);
+    };
+    const onEdit = (item: any) => {
+      tabsViewStore.addTabByPath('/taskAndLog/dotask/edit', { id: item.dotaskID });
+    };
+
     get('system/area/getCityList',{}).then(data=>{
       console.log(data);
       regionList.value=data;
@@ -257,7 +267,9 @@ export default defineComponent({
       onDel,
       onRangeChange,
       onFinishChange,
-      loadData
+      loadData,
+      onAdd,
+      onEdit
     };
   },
   created() {