浏览代码

Merge branch 'master' of http://39.98.153.250:9080/bowintek/EmploymentSite

82064491C07A712AE32B5B57EC6EF136 11 月之前
父节点
当前提交
7a82c65c8f
共有 37 个文件被更改,包括 3221 次插入2570 次删除
  1. 913 666
      doc/就业驿站管理系统.pdb
  2. 913 666
      doc/就业驿站管理系统.pdm
  3. 1099 1
      doc/已更新脚本
  4. 0 1095
      doc/待更新脚本
  5. 16 0
      h5app/src/api/jobHuntInfo/index.ts
  6. 5 4
      h5app/src/components/industrySelection.vue
  7. 4 4
      h5app/src/components/ocCategorySelection.vue
  8. 3 3
      h5app/src/components/postSelection.vue
  9. 22 12
      h5app/src/components/postSelectionLike.vue
  10. 10 10
      h5app/src/components/workCategorySelection.vue
  11. 4 0
      h5app/src/views/pages/company/detail.vue
  12. 1 1
      h5app/src/views/pages/company/edit.vue
  13. 1 1
      h5app/src/views/pages/jobUserInfo/companyEdit.vue
  14. 1 1
      h5app/src/views/pages/jobUserInfo/experienceEdit.vue
  15. 1 2
      h5app/src/views/pages/jobUserInfo/index.vue
  16. 1 1
      h5app/src/views/pages/jobhunt/experienceEdit.vue
  17. 2 2
      h5app/src/views/pages/jobhunt/jobHuntEdit.vue
  18. 4 0
      h5app/src/views/pages/post/detail.vue
  19. 2 0
      src/main/java/com/hz/employmentsite/config/WebConfiguration.java
  20. 5 4
      src/main/java/com/hz/employmentsite/controller/baseSettings/LabelController.java
  21. 8 4
      src/main/java/com/hz/employmentsite/controller/jobUserManager/JobHuntController.java
  22. 18 15
      src/main/java/com/hz/employmentsite/services/impl/baseSettings/LabelImpl.java
  23. 14 2
      src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoWorkImpl.java
  24. 3 2
      src/main/java/com/hz/employmentsite/services/service/baseSettings/LabelService.java
  25. 1 0
      src/main/resources/mapping/cquery/DoTaskCQuery.xml
  26. 1 1
      vue/src/api/account/model.d.ts
  27. 3 5
      vue/src/api/baseSettings/label.ts
  28. 16 0
      vue/src/api/jobUserManager/jobhunt/index.ts
  29. 11 2
      vue/src/layout/logo/index.vue
  30. 10 0
      vue/src/store/modules/user.ts
  31. 40 43
      vue/src/views/baseSettings/label/edit.vue
  32. 27 2
      vue/src/views/baseSettings/label/selectLabel.vue
  33. 44 10
      vue/src/views/baseSettings/siteUser/detail.vue
  34. 6 0
      vue/src/views/baseSettings/siteUser/edit.vue
  35. 2 0
      vue/src/views/companyService/post/detail.vue
  36. 2 2
      vue/src/views/jobUserManager/jobhunt/edit.vue
  37. 8 9
      vue/src/views/jobUserManager/jobuser/edit.vue

文件差异内容过多而无法显示
+ 913 - 666
doc/就业驿站管理系统.pdb


文件差异内容过多而无法显示
+ 913 - 666
doc/就业驿站管理系统.pdm


文件差异内容过多而无法显示
+ 1099 - 1
doc/已更新脚本


文件差异内容过多而无法显示
+ 0 - 1095
doc/待更新脚本


+ 16 - 0
h5app/src/api/jobHuntInfo/index.ts

@@ -39,6 +39,7 @@ export function getJobHuntByID(jobHuntID:any){
     );
 }
 
+// 不从token获取创建人
 export function saveJobHunt(data: any) {
     return request(
         {
@@ -53,6 +54,21 @@ export function saveJobHunt(data: any) {
     );
 }
 
+// 从token获取创建人
+export function saveJobHuntCopy(data: any) {
+    return request<object>({
+            url: 'jobUserService/jobHunt/saveJobHunt',
+            method: 'post',
+            data: data,
+        },
+        {
+            isNew: true,
+            successMsg: '提交成功!',
+            errorMsg: '提交失败!'
+        },
+    );
+}
+
 export function deleteJobHuntAndRecommendMgt(id:any) {
     return request<object>(
         {

+ 5 - 4
h5app/src/components/industrySelection.vue

@@ -1,20 +1,21 @@
 <template>
-  <ion-button id="open-modal" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadIndustryID">选择
+  <ion-button id="industryModel" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadIndustryID()">选择
   </ion-button>
   <ion-page>
     <ion-content class="ion-padding">
-      <ion-modal class="cascade-model" trigger="open-modal" :backdrop-dismiss="false" :is-open="isOpen" :initial-breakpoint="1"
+      <ion-modal class="cascade-model" trigger="industryModel" :backdrop-dismiss="false" :is-open="isOpen"
+                 :initial-breakpoint="1"
                  :breakpoints="[0, 1]">
         <ion-toolbar>
           <ion-item>
             <ion-buttons slot="start">
-              <ion-button fill="clear" @click="onCancel">取消</ion-button>
+              <ion-button fill="clear" @click="onCancel()">取消</ion-button>
             </ion-buttons>
             <ion-label style="font-size: 12px;white-space: pre-wrap; word-wrap: break-word;">
               {{ selectIndustryInfo.text }}
             </ion-label>
             <ion-buttons slot="end">
-              <ion-button fill="clear" :disabled="selectIndustryInfo.value==''" @click="onConfirm">确定</ion-button>
+              <ion-button fill="clear" :disabled="selectIndustryInfo.value==''" @click="onConfirm()">确定</ion-button>
             </ion-buttons>
           </ion-item>
           <ion-item>

+ 4 - 4
h5app/src/components/ocCategorySelection.vue

@@ -1,20 +1,20 @@
 <template>
-  <ion-button id="open-modal" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadOccupationalID">选择
+  <ion-button id="ocCategoryModal" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadOccupationalID()">选择
   </ion-button>
   <ion-page>
     <ion-content class="ion-padding">
-      <ion-modal class="cascade-model" trigger="open-modal" :backdrop-dismiss="false" :is-open="isOpen" :initial-breakpoint="1"
+      <ion-modal class="cascade-model" trigger="ocCategoryModal" :backdrop-dismiss="false" :is-open="isOpen" :initial-breakpoint="1"
                  :breakpoints="[0, 1]">
         <ion-toolbar>
           <ion-item>
             <ion-buttons slot="start">
-              <ion-button fill="clear" @click="onCancel">取消</ion-button>
+              <ion-button fill="clear" @click="onCancel()">取消</ion-button>
             </ion-buttons>
             <ion-label style="font-size: 12px;white-space: pre-wrap; word-wrap: break-word;">
               {{ selectOccupationInfo.text }}
             </ion-label>
             <ion-buttons slot="end">
-              <ion-button fill="clear" :disabled="selectOccupationInfo.value==''" @click="onConfirm">确定</ion-button>
+              <ion-button fill="clear" :disabled="selectOccupationInfo.value==''" @click="onConfirm()">确定</ion-button>
             </ion-buttons>
           </ion-item>
           <ion-item>

+ 3 - 3
h5app/src/components/postSelection.vue

@@ -1,5 +1,5 @@
 <template>
-  <ion-button id="open-modal" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadProfessionInfo">选择
+  <ion-button id="open-modal" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadProfessionInfo()">选择
   </ion-button>
   <ion-page >
     <ion-content class="ion-padding">
@@ -8,13 +8,13 @@
         <ion-toolbar>
           <ion-item>
             <ion-buttons slot="start">
-              <ion-button fill="clear" @click="onCancel">取消</ion-button>
+              <ion-button fill="clear" @click="onCancel()">取消</ion-button>
             </ion-buttons>
             <ion-label style="font-size: 12px;white-space: pre-wrap; word-wrap: break-word;">
               {{ selectProfessionInfo.text }}
             </ion-label>
             <ion-buttons slot="end">
-              <ion-button fill="clear" :disabled="selectProfessionInfo.value==''" @click="onConfirm">确定</ion-button>
+              <ion-button fill="clear" :disabled="selectProfessionInfo.value==''" @click="onConfirm()">确定</ion-button>
             </ion-buttons>
           </ion-item>
           <ion-item>

+ 22 - 12
h5app/src/components/postSelectionLike.vue

@@ -1,17 +1,17 @@
 <template>
-  <ion-button id="postSelectionLike" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="onOpen">选择
+  <ion-button id="postSelectionLike" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="onOpen()">选择
   </ion-button>
   <ion-page>
     <ion-content class="ion-padding">
-      <ion-modal trigger="postSelectionLike" :is-open="isOpen" @willPresent="onRest">
+      <ion-modal trigger="postSelectionLike" :is-open="isOpen" @willPresent="onRest()">
         <ion-header class="header-theme2">
           <ion-toolbar>
             <ion-buttons slot="start">
-              <ion-icon :icon="arrowBackOutline" @click="onOpen"></ion-icon>
+              <ion-icon :icon="arrowBackOutline" @click="onOpen()"></ion-icon>
             </ion-buttons>
             <ion-title>岗位名称</ion-title>
             <ion-buttons slot="end">
-              <ion-button fill="clear" @click="onConfirm">确定</ion-button>
+              <ion-button fill="clear" @click="onConfirm()">确定</ion-button>
             </ion-buttons>
           </ion-toolbar>
         </ion-header>
@@ -19,7 +19,7 @@
           <ion-item class="search-item" style="--border-style: unset; --inner-padding-end: 0px;--padding-start: 0px;">
             <ion-input placeholder="请输入岗位名称" class="custom"
                        v-model="searchParams.professionName"
-                       @input="reload" :clear-on-edit="true"
+                       @input="reload()" :clear-on-edit="true"
                        style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;">
               <ion-icon slot="start" :icon="searchOutline" aria-hidden="true"></ion-icon>
             </ion-input>
@@ -28,8 +28,8 @@
             <div class="list-content">
               <ion-list>
                 <ion-item v-for="(record,key) in dataList" :key="key">
-                  <ion-label @click="onSelect(record)" >
-                    <span v-html="formatStr(record.professionName)"></span>({{record.parentProfessionName}})
+                  <ion-label @click="onSelect(record)">
+                    <span v-html="formatStr(record.professionName)"></span>({{ record.parentProfessionName }})
                   </ion-label>
                 </ion-item>
               </ion-list>
@@ -85,15 +85,25 @@ export default defineComponent({
       })
       loading.value = false;
     }
-
+    const reloadBool = ref(true);
     const reload = () => {
       dataList.value = [];
       searchParams.pageIndex = 1;
-      loadData();
+      if(reloadBool.value==false){
+        return;
+      }
+
+      reloadBool.value = false;
+      getProfessionLikeList(searchParams).then(data => {
+        dataList.value = dataList.value.concat(data.list);
+        total.value = data.total;
+        reloadBool.value = true;
+      })
     }
 
     const onScroll = (e: any) => {
       setTimeout(() => {
+        console.log("onScroll:", dataList.value.length)
         e.target.complete();
         if (pagination.value.total.value > pagination.value.current * pagination.value.pageSize) {
           searchParams.pageIndex += 1;
@@ -103,7 +113,7 @@ export default defineComponent({
     }
 
     const onConfirm = () => {
-      if(searchParams.professionName){
+      if (searchParams.professionName) {
         resultInfo.text = searchParams.professionName;
         context.emit("resultInfo", resultInfo);
       }
@@ -130,11 +140,11 @@ export default defineComponent({
     }
 
     const formatStr = (str: any) => {
-      if(!str){
+      if (!str) {
         return "";
       }
 
-      return str.replace(searchParams.professionName,'<span style="color: coral">'+searchParams.professionName+'</span>');
+      return str.replace(searchParams.professionName, '<span style="color: coral">' + searchParams.professionName + '</span>');
     }
 
     return {

+ 10 - 10
h5app/src/components/workCategorySelection.vue

@@ -1,20 +1,20 @@
 <template>
-  <ion-button id="open-modal" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadWorkCategoryInfo">选择
+  <ion-button id="workCategoryModal" style="color: #02a6f1;font-size: 15px;" fill="clear" @click="loadWorkCategoryInfo()">选择
   </ion-button>
   <ion-page >
     <ion-content class="ion-padding">
-      <ion-modal class="cascade-model" trigger="open-modal" :backdrop-dismiss="false" @willPresent="onRest()" :is-open="isOpen" :initial-breakpoint="1"
+      <ion-modal class="cascade-model" trigger="workCategoryModal" :backdrop-dismiss="false" @willPresent="onRest()" :is-open="isOpen" :initial-breakpoint="1"
                  :breakpoints="[0, 1]">
         <ion-toolbar>
           <ion-item>
             <ion-buttons slot="start">
-              <ion-button fill="clear" @click="onCancel">取消</ion-button>
+              <ion-button fill="clear" @click="onCancel()">取消</ion-button>
             </ion-buttons>
             <ion-label style="font-size: 12px;white-space: pre-wrap; word-wrap: break-word;">
               {{ selectWorkCategoryInfo.text }}
             </ion-label>
             <ion-buttons slot="end">
-              <ion-button fill="clear" :disabled="selectWorkCategoryInfo.value==''" @click="onConfirm">确定</ion-button>
+              <ion-button fill="clear" :disabled="selectWorkCategoryInfo.value==''" @click="onConfirm()">确定</ion-button>
             </ion-buttons>
           </ion-item>
           <ion-item>
@@ -78,7 +78,7 @@ export default defineComponent({
     const selectModelList = reactive([
       {
         index: 0,
-        name: '分类一',
+        name: '大类',
         isSelect: false,
         disabled: true,
         workCategoryName: '',
@@ -87,7 +87,7 @@ export default defineComponent({
       },
       {
         index: 1,
-        name: '分类二',
+        name: '中类',
         isSelect: false,
         disabled: true,
         workCategoryName: '',
@@ -96,7 +96,7 @@ export default defineComponent({
       },
       {
         index: 2,
-        name: '工种',
+        name: '工种名称',
         isSelect: false,
         disabled: true,
         workCategoryName: '',
@@ -255,7 +255,7 @@ export default defineComponent({
       selectModelList.splice(0,1,
         {
           index: 0,
-          name: '分类一',
+          name: '大类',
           isSelect: false,
           disabled: true,
           workCategoryName: '',
@@ -264,7 +264,7 @@ export default defineComponent({
         });
       selectModelList.splice(1,1,{
           index: 1,
-          name: '分类二',
+          name: '中类',
           isSelect: false,
           disabled: true,
           workCategoryName: '',
@@ -274,7 +274,7 @@ export default defineComponent({
 
       selectModelList.splice(2,1,  {
           index: 2,
-          name: '岗位',
+          name: '工种名称',
           isSelect: false,
           disabled: true,
           workCategoryName: '',

+ 4 - 0
h5app/src/views/pages/company/detail.vue

@@ -151,6 +151,10 @@
             <ion-label>岗位名称</ion-label>
             <ion-text>{{ curCompanyPostInfo.professionName }}</ion-text>
           </div>
+          <div class="form-detail">
+            <ion-label>工种名称</ion-label>
+            <ion-text>{{ curCompanyPostInfo.workCategoryName }}</ion-text>
+          </div>
           <div class="form-detail">
             <ion-label>招聘数量(人)</ion-label>
             <ion-text>{{ curCompanyPostInfo.recruitCount }}</ion-text>

+ 1 - 1
h5app/src/views/pages/company/edit.vue

@@ -229,7 +229,7 @@
 <!--            </div>-->
             <div class="form-input">
               <ion-label>企业网站</ion-label>
-              <ion-input type="number" placeholder="请输入企业网站" label-placement="stacked" :clear-input="true"
+              <ion-input placeholder="请输入企业网站" label-placement="stacked" :clear-input="true"
                          v-model="dataModel.website" class="custom">
               </ion-input>
             </div>

+ 1 - 1
h5app/src/views/pages/jobUserInfo/companyEdit.vue

@@ -226,7 +226,7 @@
 <!--            </div>-->
             <div class="form-input">
               <ion-label>企业网站</ion-label>
-              <ion-input type="number" placeholder="请输入企业网站" label-placement="stacked" :clear-input="true"
+              <ion-input placeholder="请输入企业网站" label-placement="stacked" :clear-input="true"
                          v-model="dataModel.website" class="custom">
               </ion-input>
             </div>

+ 1 - 1
h5app/src/views/pages/jobUserInfo/experienceEdit.vue

@@ -26,7 +26,7 @@
 
         <div class="bw-vue-form">
           <ion-list class="canvasWrapper" >
-            <div class="form-title">教育经历</div>
+            <div class="form-title">工作经验</div>
 
             <div class="form-input">
               <ion-label>工作单位<span class="danger">*</span></ion-label>

+ 1 - 2
h5app/src/views/pages/jobUserInfo/index.vue

@@ -167,12 +167,11 @@ export default defineComponent({
 .user_img {
   .img-list {
     width:100%;
-    padding-left: 30%;
   }
 
   .img-item:first-child,.img-item:first-child img{
     width: 120px;
-
+    margin:0 auto;
   }
 
   .img-item:not(:first-child){

+ 1 - 1
h5app/src/views/pages/jobhunt/experienceEdit.vue

@@ -26,7 +26,7 @@
 
         <div class="bw-vue-form">
           <ion-list class="canvasWrapper" >
-            <div class="form-title">教育经历</div>
+            <div class="form-title">工作经验</div>
 
             <div class="form-input">
               <ion-label>工作单位<span class="danger">*</span></ion-label>

+ 2 - 2
h5app/src/views/pages/jobhunt/jobHuntEdit.vue

@@ -133,7 +133,7 @@ import {reactive,defineComponent, computed,ref,toRefs} from "vue";
 import {useRoute,useRouter} from "vue-router";
 import {required} from "@vuelidate/validators";
 import {useVuelidate} from "@vuelidate/core";
-import {getJobHuntByID,saveJobHunt} from "@/api/jobHuntInfo";
+import {getJobHuntByID, saveJobHunt, saveJobHuntCopy} from "@/api/jobHuntInfo";
 import {getSysDictionaryList} from '@/api/system/dictionary';
 import {alertController, onIonViewDidEnter} from "@ionic/vue";
 import dayjs from "dayjs";
@@ -287,7 +287,7 @@ export default defineComponent({
       }
       ifInputAllValid();
       if(isCommit.value){
-        saveJobHunt(jobHuntData.dataModel).then(result => {
+        saveJobHuntCopy(jobHuntData.dataModel).then(result => {
           if (result) {
             router.push({path: './edit', query: {reload:1,jobUserID: jobHuntData.dataModel.jobUserID,status:4}});
           }

+ 4 - 0
h5app/src/views/pages/post/detail.vue

@@ -19,6 +19,10 @@
           <ion-label>岗位名称</ion-label>
           <ion-text>{{ dataModel.professionName }}</ion-text>
         </div>
+        <div class="form-detail">
+          <ion-label>工种名称</ion-label>
+          <ion-text>{{ dataModel.workCategoryName }}</ion-text>
+        </div>
         <div class="form-detail">
           <ion-label>招聘人数</ion-label>
           <ion-text>{{ dataModel.recruitCount }}</ion-text>

+ 2 - 0
src/main/java/com/hz/employmentsite/config/WebConfiguration.java

@@ -62,6 +62,8 @@ public class WebConfiguration implements WebMvcConfigurer {
         excludePath.add("/api/oauth/oauthLogin");//单点登录
         excludePath.add("/api/system/file/downFileToUrl/**");  //下载附件
         excludePath.add("/api/system/file/downloadApk");  //下载APP安装包
+        excludePath.add("/api/system/file/getList");
+        excludePath.add("/api/system/file/getFileBase64");
         excludePath.add("/api/common/getQRCode");
         excludePath.add("/api/user/getUserInfo");
         excludePath.add("/api/jobusermgr/recommendmgt/getListById");

+ 5 - 4
src/main/java/com/hz/employmentsite/controller/baseSettings/LabelController.java

@@ -3,6 +3,7 @@ package com.hz.employmentsite.controller.baseSettings;
 import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.filter.exception.BaseResponse;
 import com.hz.employmentsite.filter.exception.RespGenerstor;
+import com.hz.employmentsite.model.PcLabel;
 import com.hz.employmentsite.services.service.AccountService;
 import com.hz.employmentsite.services.service.baseSettings.LabelService;
 import com.hz.employmentsite.vo.baseSettings.LabelVo;
@@ -34,17 +35,17 @@ public class LabelController {
 
 
     @GetMapping("get")
-    public BaseResponse<LabelVo> get(@RequestParam(required = false) String id) {
+    public BaseResponse<PcLabel> get(@RequestParam(required = false) String id) {
         var data = labelService.getDataById(id);
         if (data == null) {
-            data = new LabelVo();
+            data = new PcLabel();
             data.setLabelID(UUID.randomUUID().toString());
         }
         return RespGenerstor.success(data);
     }
 
-    @PostMapping("save")
-    public BaseResponse<Integer> save(@RequestBody LabelVo data) {
+    @PostMapping("/save")
+    public BaseResponse<Integer> save(@RequestBody PcLabel data) {
         return RespGenerstor.success(labelService.save(data,accountService.getLoginUserID()));
     }
 

+ 8 - 4
src/main/java/com/hz/employmentsite/controller/jobUserManager/JobHuntController.java

@@ -92,15 +92,19 @@ public class JobHuntController {
         String loginUserID = data.loginUserID;
         try {
             loginUserID = accountService.getLoginUserID();
+        } catch (Exception e) {
         }
-        catch (Exception e){
-        }
 
-        return RespGenerstor.success(jobhuntService.save(data,loginUserID));
+        return RespGenerstor.success(jobhuntService.save(data, loginUserID));
+    }
+
+    @PostMapping("saveJobHunt")
+    public BaseResponse<Integer> saveJobHunt(@RequestBody JobHuntVo data) {
+        return RespGenerstor.success(jobhuntService.save(data, accountService.getLoginUserID()));
     }
 
     @PostMapping("/importJobHunt")
-    public BaseResponse<Object> importPost(@RequestBody List<JobHuntVo> dataList){
+    public BaseResponse<Object> importPost(@RequestBody List<JobHuntVo> dataList) {
         List<JobHuntVo> result = jobhuntService.importJobHunt(dataList, accountService.getLoginUserID());
         if (result != null && result.size() > 0) {
             return RespGenerstor.fail(BaseErrorEnum.IMPORT_DATA_ERROR, result);

+ 18 - 15
src/main/java/com/hz/employmentsite/services/impl/baseSettings/LabelImpl.java

@@ -8,6 +8,7 @@ import com.hz.employmentsite.mapper.cquery.LabelCQuery;
 import com.hz.employmentsite.model.PcLabel;
 import com.hz.employmentsite.model.PcLabelExample;
 import com.hz.employmentsite.services.service.baseSettings.LabelService;
+import com.hz.employmentsite.util.StringUtils;
 import com.hz.employmentsite.vo.baseSettings.LabelVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -21,6 +22,8 @@ public class LabelImpl implements LabelService {
     private LabelCQuery labelCQuery;
     @Autowired
     private PcLabelMapper pcLabelMapper;
+    @Autowired
+    private StringUtils stringUtils;
 
     @Override
     public PageInfo<LabelVo> getLabelList(int pageIndex, int pageSize, String labelID, String labelName, String labelType, String bigType){
@@ -42,24 +45,24 @@ public class LabelImpl implements LabelService {
 //    }
 
     @Override
-    public LabelVo getDataById(String id){
-        LabelVo model = labelCQuery.getLabelList(id, null, null, null).stream().findFirst().orElse(null);
-        if(model==null){
-            throw new BaseException("", "为查询到数据!");
+    public PcLabel getDataById(String id){
+        if(stringUtils.IsNullOrEmpty(id)){
+            return  null;
         }
 
-        return model;
+        return pcLabelMapper.selectByPrimaryKey(id);
     }
 
     @Override
-    public int save(LabelVo data, String userId){
+    public int save(PcLabel data, String userId){
         PcLabel model = pcLabelMapper.selectByPrimaryKey(data.getLabelID());
         if(model == null){
-            model.setLabelID(model.getLabelID());
-            model.setLabelName(model.getLabelName());
-            model.setLabelType(model.getLabelType());
-            model.setBigType(model.getBigType());
-            model.setSortNo(model.getSortNo());
+            model = new PcLabel();
+            model.setLabelID(data.getLabelID());
+            model.setLabelName(data.getLabelName());
+            model.setLabelType(data.getLabelType());
+            model.setBigType(data.getBigType());
+            model.setSortNo(data.getSortNo());
             model.setCreateTime(new Date());
             model.setCreateUserID(userId);
             model.setModifyTime(new Date());
@@ -67,10 +70,10 @@ public class LabelImpl implements LabelService {
 
             return pcLabelMapper.insert(model);
         }else{
-            model.setLabelName(model.getLabelName());
-            model.setLabelType(model.getLabelType());
-            model.setBigType(model.getBigType());
-            model.setSortNo(model.getSortNo());
+            model.setLabelName(data.getLabelName());
+            model.setLabelType(data.getLabelType());
+            model.setBigType(data.getBigType());
+            model.setSortNo(data.getSortNo());
             model.setModifyTime(new Date());
             model.setModifyUserID(userId);
 

+ 14 - 2
src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoWorkImpl.java

@@ -3,9 +3,12 @@ package com.hz.employmentsite.services.impl.taskAndLog;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.mapper.PcDoworkMapper;
+import com.hz.employmentsite.mapper.PcSiteUserMapper;
 import com.hz.employmentsite.mapper.cquery.DoWorkCQuery;
 import com.hz.employmentsite.model.PcDowork;
 import com.hz.employmentsite.model.PcDoworkExample;
+import com.hz.employmentsite.model.PcSiteUser;
+import com.hz.employmentsite.model.PcSiteUserExample;
 import com.hz.employmentsite.services.service.taskAndLog.DoWorkService;
 import com.hz.employmentsite.util.StringUtils;
 import com.hz.employmentsite.vo.taskAndLog.DoWorkVo;
@@ -29,6 +32,9 @@ public class DoWorkImpl implements DoWorkService {
     @Autowired
     private PcDoworkMapper pcDoworkMapper;
 
+    @Autowired
+    private PcSiteUserMapper pcSiteUserMapper;
+
     @Override
     public PageInfo<DoWorkVo> getList(int pageIndex, int pageSize, List<String> doWorkIDList,
                                       String userName, String workStartDate, String workEndDate,
@@ -57,11 +63,17 @@ public class DoWorkImpl implements DoWorkService {
         DoWorkVo record = get(data.doWorkID);
         PcDowork dbData = record == null ? null : pcDoworkMapper.selectByPrimaryKey(record.doWorkID);
         Boolean isExist = dbData != null;
+
+        // 获取驿站人员表ID
+        PcSiteUserExample siteUserExample = new PcSiteUserExample();
+        PcSiteUserExample.Criteria criteria = siteUserExample.createCriteria();
+        criteria.andUserIDEqualTo(data.userId);
+        PcSiteUser pcSiteUser = pcSiteUserMapper.selectByExample(siteUserExample).stream().findFirst().orElse(new PcSiteUser());
         if (!isExist) {
             //添加
             dbData = new PcDowork();
             dbData.setDoworkID(data.getDoWorkID());
-            dbData.setSiteUserID(data.getSiteUserID());
+            dbData.setSiteUserID(pcSiteUser.getSiteUserID());
             dbData.setDoTypeID(data.getDoTypeID());
             dbData.setWorkContent(data.getWorkContent());
             dbData.setRegionCode(data.getRegionCode());
@@ -74,7 +86,7 @@ public class DoWorkImpl implements DoWorkService {
         } else {
             //修改
             dbData.setDoworkID(data.doWorkID);
-            dbData.setSiteUserID(data.siteUserID);
+            dbData.setSiteUserID(pcSiteUser.getSiteUserID());
             dbData.setDoTypeID(data.doTypeID);
             dbData.setWorkContent(data.workContent);
             dbData.setRegionCode(data.regionCode);

+ 3 - 2
src/main/java/com/hz/employmentsite/services/service/baseSettings/LabelService.java

@@ -1,6 +1,7 @@
 package com.hz.employmentsite.services.service.baseSettings;
 
 import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.model.PcLabel;
 import com.hz.employmentsite.vo.baseSettings.LabelVo;
 
 import java.util.List;
@@ -9,11 +10,11 @@ import java.util.List;
 public interface LabelService {
     PageInfo<LabelVo> getLabelList(int pageIndex, int pageSize, String labelID, String labelName, String labelType, String bigType);
 
-    int save(LabelVo data, String userId);
+    int save(PcLabel data, String userId);
 
     int delete(List<String> ids);
 
-    LabelVo getDataById(String id);
+    PcLabel getDataById(String id);
 
     List<LabelVo> getUserLabelList(String jobUserID);
 }

+ 1 - 0
src/main/resources/mapping/cquery/DoTaskCQuery.xml

@@ -90,6 +90,7 @@
         <if test="taskName != '' and taskName != null">
             and task.dotaskName like Concat('%',#{taskName},'%')
         </if>
+        order by task.createTime desc
     </select>
     <select id="getWorkUserList" resultType="com.hz.employmentsite.vo.taskAndLog.DoTaskUserVo">
         select task.*,

+ 1 - 1
vue/src/api/account/model.d.ts

@@ -43,7 +43,7 @@ declare namespace API {
     status: number;
     roles: number[];
     departmentName: string;
-    userId: string,
+    userID: string,
     userName: string,
     loginId: string
   };

+ 3 - 5
vue/src/api/baseSettings/label.ts

@@ -58,14 +58,12 @@ export function saveLabel(data: any) {
     {
       url: 'label/save',
       method: 'post',
-      data: data,
-    },
-    {
+      data: data
+    }, {
       isNew: true,
       successMsg: '提交成功!',
       errorMsg: '提交失败!'
-    },
-  );
+    })
 }
 
 export function delLabel(data: any) {

+ 16 - 0
vue/src/api/jobUserManager/jobhunt/index.ts

@@ -22,6 +22,7 @@ export function getJobHuntByID(jobHuntID: string) {
   );
 }
 
+// 不从token获取创建人
 export function saveJobHunt(data: any) {
   return request<object>({
       url: 'jobUserService/jobHunt/save',
@@ -36,6 +37,21 @@ export function saveJobHunt(data: any) {
   );
 }
 
+// 从token获取创建人
+export function saveJobHuntCopy(data: any) {
+  return request<object>({
+      url: 'jobUserService/jobHunt/saveJobHunt',
+      method: 'post',
+      data: data,
+    },
+    {
+      isNew: true,
+      successMsg: '提交成功!',
+      errorMsg: '提交失败!'
+    },
+  );
+}
+
 export function delJobHunt(data: any) {
   return request<object>(
     {

+ 11 - 2
vue/src/layout/logo/index.vue

@@ -2,12 +2,12 @@
   <div class="logo">
     <img v-if="!avtImageUrl" src="~@/assets/images/admin.png" alt=""/>
     <img v-else :src="avtImageUrl" alt="" style="border-radius: 50%"/>
-    <h2 v-show="!collapsed" class="title">{{ userInfo.name }}</h2>
+    <h2 v-show="!collapsed" class="title">{{ userInfo.name }}{{ num }}</h2>
   </div>
 </template>
 
 <script setup lang="ts">
-import {onMounted, reactive, ref, toRef} from 'vue';
+import {computed, onMounted, reactive, ref, toRef, watch} from 'vue';
 import { useUserStore } from '@/store/modules/user';
 import {getFileBase64, getList} from "@/api/system/file";
 import {base64ToBlob} from "@/utils/imageUtils";
@@ -23,6 +23,15 @@ const userInfo=reactive(userStore.getUserInfo);
 
 const avtImageUrl = ref<any>("")
 
+const avtImageNum = computed(() => {
+  const userStore = useUserStore();
+  return userStore.getAvtImage;
+})
+
+watch(() => avtImageNum.value, () => {
+  getAvtImag(userInfo.userID)
+}, {deep: true})
+
 function getAvtImag(fileRefID) {
   getList({fileRefID}).then((res) => {
     if (!res) {

+ 10 - 0
vue/src/store/modules/user.ts

@@ -19,6 +19,7 @@ interface UserState {
   menus: RouteRecordRaw[];
   userInfo: Partial<API.AdminUserInfo>;
   dataRangeList: Partial<API.DataRange>[];
+  avtImage: number;
 }
 
 export const useUserStore = defineStore({
@@ -31,6 +32,7 @@ export const useUserStore = defineStore({
     menus: [],
     userInfo: {},
     dataRangeList: Storage.get(ACCESS_DATA_RANGE_KEY, null),
+    avtImage: 0,
   }),
   getters: {
     getToken(): string {
@@ -52,6 +54,9 @@ export const useUserStore = defineStore({
       //return Storage.get(USER_INFO_KEY, null);
       return this.userInfo;
     },
+    getAvtImage(): number {
+      return this.avtImage;
+    }
   },
   actions: {
     /** 清空token及用户信息 */
@@ -146,6 +151,11 @@ export const useUserStore = defineStore({
       this.resetToken();
       resetRouter();
     },
+    /** 修改头像通知 */
+    setAvtImageNum() {
+      this.avtImage += 1;
+      console.log(this.avtImage);
+    }
   },
 });
 

+ 40 - 43
vue/src/views/baseSettings/label/edit.vue

@@ -1,8 +1,8 @@
 <template>
   <a-modal
-    :width="800"
+    :width="400"
     v-model:visible="visible"
-    title="title"
+    :title="title"
     :confirm-loading="confirmLoading"
     @ok="handleOk"
     ok-text="提交"
@@ -10,30 +10,29 @@
     :keyboard="false"
     :mask-closable="false"
   >
-    <a-form autocomplete="off">
-      <a-divider orientation="left">基础信息</a-divider>
+    <a-form :model="dataModel" autocomplete="off">
       <a-row :gutter="24">
-        <a-col :span="8">
+        <a-col :span="24">
           <a-form-item label="标签名称" :label-col="{span:6}" name="labelName" v-bind="validateInfos.labelName">
             <a-input v-model:value="dataModel.labelName" placeholder=""/>
           </a-form-item>
         </a-col>
       </a-row>
+<!--      <a-row :gutter="24">-->
+<!--        <a-col :span="24">-->
+<!--          <a-form-item label="标签类型" :label-col="{span:6}" name="userType" v-bind="validateInfos.labelType">-->
+<!--            <a-select-->
+<!--              ref="select" disabled-->
+<!--              v-model:value="dataModel.labelType"-->
+<!--              :options="labelTypeList"-->
+<!--              :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="userType" v-bind="validateInfos.labelType">
-            <a-select
-              ref="select"
-              v-model:value="dataModel.labelType"
-              :options="labelTypeList"
-              :field-names="{label:'name',value:'value'}"
-            >
-            </a-select>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="8">
+        <a-col :span="24">
           <a-form-item label="排序号" :label-col="{span:6}" name="sortNo" v-bind="validateInfos.sortNo">
             <a-input v-model:value="dataModel.sortNo" placeholder=""/>
           </a-form-item>
@@ -43,26 +42,22 @@
   </a-modal>
 </template>
 <script lang="ts">
-import {defineComponent, reactive, ref} from "vue";
+import {defineComponent, reactive, ref, toRefs} from "vue";
 import {getLabelByID, saveLabel,} from "@/api/baseSettings/label";
 import {Form} from "ant-design-vue";
 import {getSysDictionaryList} from "@/api/system/dictionary";
-
+interface FormState {
+  dataModel: any;
+}
 export default defineComponent({
-  props: {
-    loadData: {
-      type: Function,
-      default: null
-    }
-  },
-  setup(props) {
+  name: 'editLabel',
+  props:{},
+  setup(props,context) {
     const visible = ref<boolean>(false);
     const confirmLoading = ref<boolean>(false);
     const useForm = Form.useForm;
-    const formState = reactive({
-      loading: false,
-    });
-    const dataModel = ref({labelID: '', labelName: '', labelType: '', bigType: '', sortNo: ''});
+
+    const formState = reactive<FormState>({dataModel: {}});
     const bigType = ref();
     const labelTypeList = ref([]);
     const title = ref('');
@@ -88,24 +83,25 @@ export default defineComponent({
       ]
     });
 
-    const {validate, validateInfos} = useForm(dataModel, rulesRef);
+    const {validate, validateInfos} = useForm(formState.dataModel, rulesRef);
 
-    const show = (id: any, bigType: any, modelTitle: any) => {
+    const show = (id: any, type: any, modelTitle: any) => {
       getLabelTypeList();
 
       title.value = modelTitle;
-      dataModel.value.labelID = id;
-      bigType.value = bigType;
+      formState.dataModel.labelID = id;
+      bigType.value = type;
       loadData();
       visible.value = true;
     };
 
     const handleOk = () => {
       validate().then(() => {
-        saveLabel(dataModel.value).then(result => {
+        saveLabel(formState.dataModel).then(result => {
           if (result) {
             visible.value = false;
-            props.loadData();
+            console.log(props)
+            context.emit("callBack")
           }
         });
       });
@@ -116,9 +112,10 @@ export default defineComponent({
     };
 
     const loadData = () => {
-      getLabelByID(dataModel.value.labelID).then((result: any) => {
-        dataModel.value = result;
-        dataModel.value.bigType = bigType.value;
+      getLabelByID(formState.dataModel.labelID).then((result: any) => {
+        formState.dataModel = result;
+        formState.dataModel.bigType = bigType.value;
+        formState.dataModel.labelType = 2;
       });
     }
 
@@ -129,13 +126,13 @@ export default defineComponent({
     }
 
     return {
-      dataModel,
+      ...toRefs(formState),
+      title,
       visible,
       confirmLoading,
       show,
       handleOk,
       handleCancel,
-      formState,
       validateInfos,
       validate,
       labelTypeList,

+ 27 - 2
vue/src/views/baseSettings/label/selectLabel.vue

@@ -20,7 +20,19 @@
           </a-button>
         </a-col>
       </a-row>
-      <a-divider orientation="left">自定义标签</a-divider>
+          <div style="display: flex;align-items: center;max-width: 50%">
+            <a-divider orientation="left"><span style="padding-left: 22px;">自定义标签</span></a-divider>
+            <a-divider orientation="right">
+              <Space>
+                <a-button @click="onLabelModel()">
+<!--                  <template #icon>-->
+<!--                    <plus-circle-outlined/>-->
+<!--                  </template>-->
+                  新增标签
+                </a-button>
+              </Space>
+            </a-divider>
+          </div>
       <a-row :gutter="24">
         <a-col :span="24">
           <a-button :style="{margin: ' 0px 5px 5px 0px', color: 'black',border: '1px solid rgb(217, 217, 217)' ,background:item.check?'#1890ff':'#fff'}" v-for="item in customLabelList"
@@ -30,13 +42,17 @@
         </a-col>
       </a-row>
     </a-form>
+<edit-label ref="refEditLabel" @callBack="loadData"></edit-label>
   </a-modal>
 </template>
 <script lang="ts">
 import {defineComponent, reactive, ref} from "vue";
 import {getLabelList} from "@/api/baseSettings/label";
+import EditLabel from "@/views/baseSettings/label/edit.vue";
 
 export default defineComponent({
+  name: 'selectLabel',
+  components:{EditLabel},
   props: {
     listLabel: {
       type: Array,
@@ -57,6 +73,7 @@ export default defineComponent({
     });
     const basicsLabelList = ref<any>([]);
     const customLabelList = ref<any>([]);
+    const refEditLabel = ref();
 
     const show = () => {
       loadData();
@@ -91,15 +108,23 @@ export default defineComponent({
       })
     }
 
+    const onLabelModel = ()=>{
+      // labelModelEdit.value.show('', 2, '新增标签');
+      refEditLabel.value.show('',props.bigType,'新增标签')
+    }
+
     return {
       basicsLabelList,
       customLabelList,
       visible,
       confirmLoading,
+      loadData,
       show,
       handleOk,
       handleCancel,
-      formState
+      formState,
+      refEditLabel,
+      onLabelModel
     };
   },
   created() {

+ 44 - 10
vue/src/views/baseSettings/siteUser/detail.vue

@@ -4,6 +4,10 @@
     <a-descriptions bordered>
       <a-descriptions-item label="姓名">{{ siteUserInfo.siteUserName }}</a-descriptions-item>
       <a-descriptions-item label="性别">{{ siteUserInfo.genderName }}</a-descriptions-item>
+      <a-descriptions-item label="头像">
+        <img v-if="!avtImageUrl" src="~@/assets/images/admin.png" alt="" class="avt-img"/>
+        <img v-else :src="avtImageUrl" alt="" style="border-radius: 50%" class="avt-img"/>
+      </a-descriptions-item>
       <a-descriptions-item label="联系电话">{{ siteUserInfo.mobile }}</a-descriptions-item>
       <a-descriptions-item label="工号">{{ siteUserInfo.userNo }}</a-descriptions-item>
       <a-descriptions-item label="用户类型">{{ siteUserInfo.roleName }}</a-descriptions-item>
@@ -27,18 +31,23 @@
       <a-descriptions-item label="邮箱">{{ siteUserInfo.email }}</a-descriptions-item>
       <a-descriptions-item label="住址">{{ siteUserInfo.address }}</a-descriptions-item>
     </a-descriptions>
-    <a-divider orientation="left">相片</a-divider>
-    <b-upload-file :fileRefId="siteUserInfo.userID" :readonly="true" :multiple="false" :restrict="1"
-                   :setFileList="setFileList" :accept="'.pdf,.png,.jpg'"></b-upload-file>
+    <!--    <a-divider orientation="left">相片</a-divider>-->
+    <!--    <b-upload-file :fileRefId="siteUserInfo.userID" :readonly="true" :multiple="false" :restrict="1"-->
+    <!--                   :setFileList="setFileList" :accept="'.pdf,.png,.jpg'"></b-upload-file>-->
   </div>
 </template>
 
 <script setup lang="ts">
 import {onMounted, reactive, ref} from "vue";
 import {getSiteUserByID} from "@/api/baseSettings/userInfo";
-import BUploadFile from "@/components/file/uploadFile.vue";
+// import BUploadFile from "@/components/file/uploadFile.vue";
 import dayjs from "dayjs";
+// import {useUserStore} from "@/store/modules/user";
+import {getFileBase64, getList} from "@/api/system/file";
+import {base64ToBlob} from "@/utils/imageUtils";
 
+// const userStore = useUserStore();
+// const userInfo = reactive(userStore.getUserInfo);
 // 站点人员信息
 const siteUserInfo = reactive({
   siteUserID: "",
@@ -64,12 +73,14 @@ const siteUserInfo = reactive({
   updateUserName: "",
   updateTime: ""
 })
+// 头像图片
+const avtImageUrl = ref<any>("")
 
 // 文件列表
-const fileList = ref();
-const setFileList = (files) => {
-  fileList.value = files;
-};
+// const fileList = ref();
+// const setFileList = (files) => {
+//   fileList.value = files;
+// };
 
 // 站点人员数据加载
 function loadData(siteUserID: string) {
@@ -77,9 +88,29 @@ function loadData(siteUserID: string) {
     Object.keys(siteUserInfo).forEach(key => {
       siteUserInfo[key] = result[key];
     })
+    getAvtImag(result.userID)
   });
 }
 
+// 获取头像
+function getAvtImag(fileRefID) {
+  if (!fileRefID) {
+    return;
+  }
+  getList({fileRefID}).then((res) => {
+    if (!res) {
+      avtImageUrl.value = false;
+    } else {
+      // 获取图片
+      getFileBase64({fileId: res[0].fileId}).then(data => {
+        if (data) {
+          avtImageUrl.value = URL.createObjectURL(base64ToBlob("data:image/png;base64," + data));
+        }
+      })
+    }
+  })
+}
+
 // 页面初始化
 onMounted(() => {
   const id = history.state.params?.id;
@@ -87,6 +118,9 @@ onMounted(() => {
 })
 </script>
 
-<style scoped>
-
+<style lang="less">
+.avt-img {
+  width: 40px;
+  height: 40px;
+}
 </style>

+ 6 - 0
vue/src/views/baseSettings/siteUser/edit.vue

@@ -168,6 +168,7 @@ import {message} from "ant-design-vue";
 import {getSysDictionaryList} from "@/api/system/dictionary";
 import {getSiteList} from "@/api/baseSettings/siteInfo";
 import {get} from "@/api/common";
+import {useUserStore} from "@/store/modules/user";
 
 interface siteUserModel {
   dataModel: any;
@@ -183,6 +184,8 @@ export default defineComponent({
     }
   },
   setup() {
+    const userStore = useUserStore();
+    const userInfo = ref(userStore.getUserInfo);
     const title = ref();
     const opCategory = ref<any>();
     const tabsViewStore = useTabsViewStore();
@@ -311,6 +314,9 @@ export default defineComponent({
       if(isAllowCommit.value){
         saveSiteUser(formData.dataModel).then(result => {
           if (result) {
+            if (formData.dataModel.userID == userInfo.value.userID) {
+              userStore.setAvtImageNum();
+            }
             onClose(1);
           }
         });

+ 2 - 0
vue/src/views/companyService/post/detail.vue

@@ -4,6 +4,7 @@
     <a-descriptions bordered>
       <a-descriptions-item label="企业名称">{{ postInfo.companyName }}</a-descriptions-item>
       <a-descriptions-item label="岗位名称">{{ postInfo.professionName }}</a-descriptions-item>
+      <a-descriptions-item label="工种名称">{{ postInfo.workCategoryName }}</a-descriptions-item>
       <a-descriptions-item label="招聘人数">{{ postInfo.recruitCount }}</a-descriptions-item>
       <a-descriptions-item label="招聘日期">
         {{ postInfo.startTime ? dayjs(postInfo.startTime).format('YYYY-MM-DD') : '' }}
@@ -59,6 +60,7 @@ import {get} from "@/api/common";
 const postInfo = reactive({
   companyName: "",
   professionName: "",
+  workCategoryName: "",
   recruitCount: "",
   startTime: "",
   endTime: "",

+ 2 - 2
vue/src/views/jobUserManager/jobhunt/edit.vue

@@ -104,7 +104,7 @@
 <script lang="ts">
 import {defineComponent, reactive, ref, toRefs, watch} from "vue";
 import {useTabsViewStore} from "@/store/modules/tabsView";
-import {getJobHuntByID,saveJobHunt} from "@/api/jobUserManager/jobhunt"
+import {getJobHuntByID, saveJobHuntCopy} from "@/api/jobUserManager/jobhunt"
 import {getJobUserDataList} from "@/api/jobUserManager/jobuser";
 import {getSysDictionaryList} from '@/api/system/dictionary';
 import BUploadFile from "@/components/file/uploadFile.vue";
@@ -254,7 +254,7 @@ export default defineComponent({
       if (isAllowCommit.value){
         formData.dataModel.professionName=null;
         //console.log("当前意向信息",formData.dataModel);
-        saveJobHunt(formData.dataModel).then(result => {
+        saveJobHuntCopy(formData.dataModel).then(result => {
           if (result) {
             onClose(1);
           }

+ 8 - 9
vue/src/views/jobUserManager/jobuser/edit.vue

@@ -233,9 +233,6 @@
           </a-form-item>
         </a-col>
         <a-col :span="8">
-
-      </a-col>
-        <a-col :span="8">
           <a-form-item label="婚姻状况" :label-col="{span:6}" name="maritalStatusID">
             <a-select
               ref="select"
@@ -246,6 +243,14 @@
             >
             </a-select>
           </a-form-item>
+        </a-col>
+        <a-col :span="8">
+          <a-form-item
+            label="电子邮箱"
+            :label-col="{ span: 6 }"
+            name="email">
+            <a-input v-model:value="dataModel.email" placeholder=""/>
+          </a-form-item>
 <!--          <a-form-item-->
 <!--            label="血型"-->
 <!--            :label-col="{ span: 6 }"-->
@@ -349,12 +354,6 @@
 <!--          </a-form-item>-->
         </a-col>
         <a-col :span="8">
-          <a-form-item
-            label="电子邮箱"
-            :label-col="{ span: 6 }"
-            name="email">
-            <a-input v-model:value="dataModel.email" placeholder=""/>
-          </a-form-item>
         </a-col>
       </a-row>