Explorar o código

手机端-求职信息收集页面调整

liao-sea hai 1 ano
pai
achega
24a7081ddf

+ 1 - 1
h5app/src/api/jobHuntInfo/index.ts

@@ -26,7 +26,7 @@ export function getJobHuntByID(jobHuntID:any){
     );
 }
 
-export function jobHuntSave(data: any) {
+export function saveJobHunt(data: any) {
     return request(
         {
             url: "jobUserService/jobHunt/save",

+ 52 - 48
h5app/src/views/pages/jobuser/edit.vue

@@ -21,21 +21,21 @@
       </div>
       <form ref="editForm" @submit.prevent="onSave">
         <ion-list class="canvasWrapper"  v-if="curStepData.statusVal==1">
-          <ion-item-divider  style="height: 20px;">
-            <ion-badge slot="start">l</ion-badge>
-            <ion-label>
-              基本信息
-            </ion-label>
-          </ion-item-divider>
           <ion-item-group>
+            <ion-item>
+              <div class="panel-title2">
+                <div class="item-flag"></div>
+                基本信息
+              </div>
+            </ion-item>
             <ion-item :class="[baseDataValid.baseData.name.$error?'ion-invalid':'ion-valid']">
               <ion-label>姓名<span class="danger">*</span></ion-label>
-              <ion-input name="name" id="name"  placeholder="请输入姓名" v-model="baseData.name" ></ion-input>
+              <ion-input name="name" id="name" style="text-align: right;"  placeholder="请输入姓名" v-model="baseData.name" ></ion-input>
               <ion-note slot="error">姓名不能为空</ion-note>
             </ion-item>
             <ion-item :class="[baseDataValid.baseData.identityNumber.$error?'ion-invalid':'ion-valid']">
               <ion-label>公民身份号码<span class="danger">*</span></ion-label>
-              <ion-input name="identityNumber" id="identityNumber"  placeholder="请输入身份证号码" v-model="baseData.identityNumber" ></ion-input>
+              <ion-input name="identityNumber" id="identityNumber" style="text-align: right;"  placeholder="请输入身份证号码" v-model="baseData.identityNumber" ></ion-input>
               <ion-note slot="error">公民身份号码不能为空</ion-note>
             </ion-item>
             <ion-item :class="[baseDataValid.baseData.sex.$error?'ion-invalid':'ion-valid']">
@@ -70,16 +70,15 @@
             </ion-item>
             <ion-item :class="[baseDataValid.baseData.userMobile.$error?'ion-invalid':'ion-valid']">
               <ion-label>联系电话<span class="danger">*</span></ion-label>
-              <ion-input name="userMobile" id="userMobile"  placeholder="请输入联系电话" v-model="baseData.userMobile" ></ion-input>
+              <ion-input name="userMobile" id="userMobile"  style="text-align: right;" placeholder="请输入联系电话" v-model="baseData.userMobile" ></ion-input>
               <ion-note slot="error">联系电话不能为空</ion-note>
             </ion-item>
             <ion-item :class="[baseDataValid.baseData.birthPlace.$error?'ion-invalid':'ion-valid']">
               <ion-label>地址<span class="danger">*</span></ion-label>
-              <ion-input name="birthPlace" id="birthPlace"  placeholder="请输入地址" v-model="baseData.birthPlace" ></ion-input>
+              <ion-input name="birthPlace" id="birthPlace"  style="text-align: right;"  placeholder="请输入地址" v-model="baseData.birthPlace" ></ion-input>
               <ion-note slot="error">地址不能为空</ion-note>
             </ion-item>
-            <!-- :class="[baseDataValid.dataModel.siteID.$error?'ion-invalid':'ion-valid']"  -->
-            <ion-item  >
+            <ion-item :class="[baseDataValid.baseData.siteID.$error?'ion-invalid':'ion-valid']"  >
               <ion-label>所属驿站<span class="danger">*</span></ion-label>
               <ion-select name="siteID"  id="siteID" okText="确定" cancelText="取消" v-model="baseData.siteID"
                           interface="action-sheet" placeholder="请选择所属驿站" >
@@ -90,19 +89,19 @@
               <ion-note slot="error">所属驿站不能为空</ion-note>
             </ion-item>
           </ion-item-group>
-          <ion-item-divider style="height: 20px;" >
-            <ion-badge slot="start">l</ion-badge>
-            <ion-label>
+          <ion-item>
+            <div class="panel-title2">
+              <div class="item-flag"></div>
               其他信息
-            </ion-label>
-            <ion-avatar aria-hidden="true" slot="end" style="padding-top:5px;">
-              <img alt="" src="@/assets/icon/arrow-up-bold.png" style="width:32px;height:32px;"  @click="expandChange" v-if="!expand"/>
-              <img alt="" src="@/assets/icon/arrow-down-bold.png" style="width:32px;height:32px;" @click="expandChange" v-if="expand"/>
+            </div>
+            <ion-avatar aria-hidden="true" slot="end" style="padding-top: 10px;" >
+              <img alt="" src="@/assets/icon/arrow-up-bold.png"   class="iconBtn"  @click="expandChange" v-if="!expand"/>
+              <img alt="" src="@/assets/icon/arrow-down-bold.png" class="iconBtn"  @click="expandChange" v-if="expand"/>
             </ion-avatar>
-          </ion-item-divider>
+          </ion-item>
           <ion-item-group v-if="expand">
             <ion-item>
-              <ion-label>文化程度<span class="danger">*</span></ion-label>
+              <ion-label>文化程度</ion-label>
               <ion-select name="cultureRank"  id="cultureRank" okText="确定" cancelText="取消" v-model="baseData.cultureRank"
                           interface="action-sheet" placeholder="请选择文化程度" >
                 <ion-select-option v-for=" (it,key) in cultureRankList" :key="key" :value="it.value">
@@ -130,15 +129,15 @@
             </ion-item>
             <ion-item>
               <ion-label>身高</ion-label>
-              <ion-input name="height" id="height"  placeholder="请输入身高" v-model="baseData.height" ></ion-input>
+              <ion-input name="height" id="height"  style="text-align: right;"  placeholder="请输入身高" v-model="baseData.height" ></ion-input>
             </ion-item>
             <ion-item>
               <ion-label>视力</ion-label>
-              <ion-input name="vision" id="vision"  placeholder="请输入视力" v-model="baseData.vision" ></ion-input>
+              <ion-input name="vision" id="vision"  style="text-align: right;"  placeholder="请输入视力" v-model="baseData.vision" ></ion-input>
             </ion-item>
             <ion-item>
               <ion-label>体重</ion-label>
-              <ion-input name="weight" id="weight"  placeholder="请输入体重" v-model="baseData.weight" ></ion-input>
+              <ion-input name="weight" id="weight"  style="text-align: right;"  placeholder="请输入体重" v-model="baseData.weight" ></ion-input>
             </ion-item>
             <ion-item>
               <ion-label>婚姻状况</ion-label>
@@ -178,33 +177,34 @@
             </ion-item>
             <ion-item>
               <ion-label>联系人</ion-label>
-              <ion-input name="userName" id="userName"  placeholder="请输入联系人姓名" v-model="baseData.userName" ></ion-input>
+              <ion-input name="userName" id="userName"  style="text-align: right;"  placeholder="请输入联系人姓名" v-model="baseData.userName" ></ion-input>
             </ion-item>
             <ion-item>
               <ion-label>家庭住址</ion-label>
-              <ion-input name="familyAddress" id="familyAddress"  placeholder="请输入家庭住址" v-model="baseData.familyAddress" ></ion-input>
+              <ion-input name="familyAddress" id="familyAddress"  style="text-align: right;"   placeholder="请输入家庭住址" v-model="baseData.familyAddress" ></ion-input>
             </ion-item>
             <ion-item>
               <ion-label>电子邮箱</ion-label>
-              <ion-input name="email" id="email"  placeholder="请输入电子邮箱" v-model="baseData.email" ></ion-input>
+              <ion-input name="email" id="email"  style="text-align: right;"  placeholder="请输入电子邮箱" v-model="baseData.email" ></ion-input>
             </ion-item>
             <ion-item>
               <ion-label>兴趣爱好</ion-label>
-              <ion-input name="hobby" id="hobby"  placeholder="请输入兴趣爱好" v-model="baseData.hobby" ></ion-input>
+              <ion-input name="hobby" id="hobby"  style="text-align: right;"  placeholder="请输入兴趣爱好" v-model="baseData.hobby" ></ion-input>
             </ion-item>
           </ion-item-group>
         </ion-list>
         <ion-list class="canvasWrapper"  v-if="curStepData.statusVal==2">
-            <ion-item-divider  style="height: 20px;" >
-            <ion-badge slot="start">l</ion-badge>
-            <ion-label>
+          <ion-item>
+            <div class="panel-title2">
+              <div class="item-flag"></div>
               教育经历
-            </ion-label>
+            </div>
             <ion-buttons slot="end">
-              <ion-icon :icon="addCircleOutline" @click="onPathForward('./educationEdit',null,null,2)"></ion-icon>
+              <ion-icon :icon="addCircleOutline"  class="iconBtn"
+                        @click="onPathForward('./educationEdit',null,null,2)"></ion-icon>
             </ion-buttons>
-          </ion-item-divider>
-            <ion-item v-for="(record,key) in educationList" :key="key" >
+          </ion-item>
+          <ion-item v-for="(record,key) in educationList" :key="key" >
               <ion-label>
                 <h3>{{record.schoolName}}</h3>
                 <p>{{record.schoolTimeStr}}至{{record.overTimeStr}}</p>
@@ -214,21 +214,22 @@
             </ion-item>
         </ion-list>
         <ion-list class="canvasWrapper"  v-if="curStepData.statusVal==3">
-          <ion-item-divider  style="height: 20px;">
-            <ion-badge slot="start">l</ion-badge>
-            <ion-label>
+          <ion-item>
+            <div class="panel-title2">
+              <div class="item-flag"></div>
               求职意向
-            </ion-label>
+            </div>
             <ion-buttons slot="end">
-              <ion-icon :icon="addCircleOutline" @click="onPathForward('./jobHuntEdit',null,null,3)"></ion-icon>
+              <ion-icon :icon="addCircleOutline" class="iconBtn"
+                        @click="onPathForward('./jobHuntEdit',null,null,3)"></ion-icon>
             </ion-buttons>
-          </ion-item-divider>
+          </ion-item>
           <ion-item v-for="(record,key) in jobHuntList" :key="key" >
             <ion-label>
               <h3>{{record.jobUserType}}</h3>
               <p>期望薪资:{{record.salary}}</p>
             </ion-label>
-            <img alt="" src="@/assets/icon/forward.png" style="width:32px;height:32px;"
+            <img alt="" src="@/assets/icon/forward.png" class="iconBtn"
                  @click="onPathForward( './jobHuntEdit',null,record.jobHuntID,3)"  />
           </ion-item>
         </ion-list>
@@ -302,12 +303,12 @@ export default defineComponent({
 
     const baseInfoData = reactive({baseData:{
         jobUserID:null,
+        siteID:null,
         name:null,
         identityNumber: null,
         sex: null,
         userMobile: null,
         birthPlace: null,
-        siteID:null,
         jobStatusID: null,
         keyPersonTypeID: null,
         cultureRank:null,
@@ -335,6 +336,7 @@ export default defineComponent({
     });
     const baseDataRule = computed(()=>{
       return {baseData:{
+          siteID:{required},
           name:{required},
           identityNumber:{required},
           sex:{required},
@@ -343,7 +345,6 @@ export default defineComponent({
           jobStatusID:{required},
           keyPersonTypeID:{required},
         }}});
-
     const baseDataValid = useVuelidate(baseDataRule,baseInfoData);
     const expandChange= ()=>{
       expand.value = !expand.value;
@@ -387,10 +388,8 @@ export default defineComponent({
 
     const onBack = () => {
       const toStepValue :number = curStepData.value.statusVal-1;
-      console.log("toStepValue",toStepValue);
-      console.log("jobUserID",baseInfoData.baseData.jobUserID);
       if(toStepValue > 0){
-        router.push({path: './edit', query: {reload:1,jobUserID: baseInfoData.baseData.jobUserID,toStepValue}});
+        router.back();
       }else{
         router.push("./list");
       }
@@ -456,6 +455,7 @@ export default defineComponent({
         const reqData = await getDataById(jobUserID);
         baseInfoData.baseData = reqData;
         console.log('baseData',baseInfoData.baseData);
+        await getStreetList();
       }
       else if(curStepData.value.statusVal==2){
         const data :any = await getEducationListByJobUserID(pageParams);
@@ -464,7 +464,6 @@ export default defineComponent({
           item.schoolTimeStr = dayjs(item.schoolTime).format('YYYY-MM-DD');
           item.overTimeStr = dayjs(item.overTime).format('YYYY-MM-DD');
         })
-        console.log('educationList',educationList.value);
       }
       else if(curStepData.value.statusVal==3){
         const reqData = await getJobHuntListByJobUserID(pageParams);
@@ -560,6 +559,11 @@ export default defineComponent({
   font-size: 14px;
 }
 
+.iconBtn{
+  width:24px;
+  height:24px;
+}
+
 .stepFlex {
   margin: 0;
   display: flex;

+ 17 - 16
h5app/src/views/pages/jobuser/educationEdit.vue

@@ -24,9 +24,15 @@
       <form ref="editForm" @submit.prevent="onSave">
         <ion-list class="canvasWrapper" >
           <ion-item-group>
+            <ion-item>
+              <div class="panel-title2">
+                <div class="item-flag"></div>
+                教育经历
+              </div>
+            </ion-item>
             <ion-item :class="[educationValid.dataModel.schoolName.$error?'ion-invalid':'ion-valid']">
               <ion-label>毕业院校/培训机构<span class="danger">*</span></ion-label>
-              <ion-input name="schoolName" id="schoolName"  placeholder="请输入毕业院校/培训机构" v-model="dataModel.schoolName" ></ion-input>
+              <ion-input name="schoolName" id="schoolName" style="text-align: right;" placeholder="请输入毕业院校/培训机构" v-model="dataModel.schoolName" ></ion-input>
               <ion-note slot="error">毕业院校/培训机构不能为空</ion-note>
             </ion-item>
             <ion-item :class="[educationValid.dataModel.cultureRank.$error?'ion-invalid':'ion-valid']">
@@ -41,9 +47,10 @@
             </ion-item>
             <ion-item :class="[educationValid.dataModel.major.$error?'ion-invalid':'ion-valid']">
               <ion-label>专业<span class="danger">*</span></ion-label>
-              <ion-input name="major" id="major"  placeholder="请输入专业" v-model="dataModel.major" ></ion-input>
+              <ion-input name="major" id="major" style="text-align: right;" placeholder="请输入专业" v-model="dataModel.major" ></ion-input>
               <ion-note slot="error">专业不能为空</ion-note>
             </ion-item>
+            <!--:class="[educationValid.dataModel.schoolTime.$error||educationValid.dataModel.overTime.$error?'ion-invalid':'ion-valid']"-->
             <ion-item mode="md">
               <ion-label>日期<span class="danger">*</span></ion-label>
               <ion-datetime-button datetime="schoolTime"></ion-datetime-button>
@@ -62,6 +69,7 @@
                               :show-default-buttons="true">
                 </ion-datetime>
               </ion-modal>
+              <!--<ion-note slot="error">起止日期不能为空</ion-note>-->
             </ion-item>
           </ion-item-group>
         </ion-list>
@@ -71,17 +79,18 @@
   </ion-page>
 </template>
 <script lang="ts">
-import {arrowBackOutline,addCircleOutline} from 'ionicons/icons';
-import {reactive,defineComponent, computed,watch,ref,toRefs} from "vue";
+import {arrowBackOutline, addCircleOutline} from 'ionicons/icons';
+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 {getEducationByID,saveEducation} from "@/api/education";
 import {getSysDictionaryList} from '@/api/system/dictionary';
 import {alertController, onIonViewDidEnter} from "@ionic/vue";
+import type {Datetime} from "@ionic/core/dist/types/components/datetime/datetime";
 
 interface educationModel {
-  dataModel: any;
+  dataModel:any
 }
 interface SelectProps {
   name: string,
@@ -108,9 +117,9 @@ export default defineComponent({
     const cultureRankList = ref<SelectProps[]>([]);
     const educationData = reactive<educationModel>({ dataModel:{
         jobuserID:null,
-        schoolName:null,
-        cultureRank:null,
-        major:null,
+        schoolName:'',
+        cultureRank:0,
+        major:'',
         schoolTime:null,
         overTime:null,
     }});
@@ -164,8 +173,6 @@ export default defineComponent({
       curStepData.value.statusVal = status;
       educationData.dataModel = reqData;
       educationData.dataModel.jobuserID = jobUserID;
-      educationData.dataModel.schoolTime == null ?new Date():educationData.dataModel.schoolTime;
-      educationData.dataModel.overTime == null ?new Date():educationData.dataModel.overTime;
       console.log("初始化教育经历",educationData.dataModel);
     };
 
@@ -193,12 +200,6 @@ export default defineComponent({
       router,
       educationValid
     }
-  },
-  mounted(){
-    const educationID = this.route.query.educationID;
-    const jobUserID = this.route.query.jobUserID;
-    const status = this.route.query.status;
-    this.loadData(educationID,jobUserID,status);
   }
 });
 </script>

+ 13 - 13
h5app/src/views/pages/jobuser/jobHuntEdit.vue

@@ -23,16 +23,16 @@
       </div>
       <form ref="editForm" @submit.prevent="onSave">
         <ion-list class="canvasWrapper" >
-          <ion-item-divider  style="height: 20px;">
-            <ion-badge slot="start">l</ion-badge>
-            <ion-label>
-              求职意向
-            </ion-label>
-          </ion-item-divider>
           <ion-item-group>
+            <ion-item>
+              <div class="panel-title2">
+                <div class="item-flag"></div>
+                求职意向
+              </div>
+            </ion-item>
             <ion-item :class="[huntDataValid.dataModel.workName.$error?'ion-invalid':'ion-valid']">
               <ion-label>工种名称<span class="danger">*</span></ion-label>
-              <ion-input name="workName" id="workName"  placeholder="请输入工种名称" v-model="dataModel.workName" ></ion-input>
+              <ion-input name="workName" id="workName"  style="text-align: right;" placeholder="请输入工种名称" v-model="dataModel.workName" ></ion-input>
               <ion-note slot="error">工种名称不能为空</ion-note>
             </ion-item>
             <ion-item :class="[huntDataValid.dataModel.ucHuntType.$error?'ion-invalid':'ion-valid']">
@@ -57,18 +57,18 @@
             </ion-item>
             <ion-item :class="[huntDataValid.dataModel.maxSalary.$error||huntDataValid.dataModel.minSalary.$error?'ion-invalid':'ion-valid']">
               <ion-label>月薪要求<span class="danger">*</span></ion-label>
-              <ion-input name="minSalary" id="minSalary"  placeholder="请输入最低薪资" v-model="dataModel.minSalary" ></ion-input>
-              <ion-input name="maxSalary" id="maxSalary"  placeholder="请输入最高薪资" v-model="dataModel.maxSalary" ></ion-input>
+              <ion-input name="minSalary" id="minSalary" style="text-align: right;" placeholder="请输入最低薪资" v-model="dataModel.minSalary" ></ion-input>
+              <ion-input name="maxSalary" id="maxSalary" style="text-align: right;" placeholder="请输入最高薪资" v-model="dataModel.maxSalary" ></ion-input>
               <ion-note slot="error">月薪要求不能为空</ion-note>
             </ion-item>
             <ion-item :class="[huntDataValid.dataModel.workYear.$error?'ion-invalid':'ion-valid']">
               <ion-label>工作年限<span class="danger">*</span></ion-label>
-              <ion-input name="workYear" id="workYear"  placeholder="请输入工作年限" v-model="dataModel.workYear" ></ion-input>
+              <ion-input name="workYear" id="workYear" style="text-align: right;" placeholder="请输入工作年限" v-model="dataModel.workYear" ></ion-input>
               <ion-note slot="error">工作年限不能为空</ion-note>
             </ion-item>
             <ion-item :class="[huntDataValid.dataModel.areaWork.$error?'ion-invalid':'ion-valid']">
               <ion-label>期望工作地区<span class="danger">*</span></ion-label>
-              <ion-input name="areaWork" id="areaWork"  placeholder="请输入期望工作地区" v-model="dataModel.areaWork" style="display: inline;" ></ion-input>
+              <ion-input name="areaWork" id="areaWork" style="text-align: right;" placeholder="请输入期望工作地区" v-model="dataModel.areaWork" ></ion-input>
               <ion-note slot="error">期望工作地区不能为空</ion-note>
             </ion-item>
           </ion-item-group>
@@ -84,7 +84,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,jobHuntSave} from "@/api/jobHuntInfo";
+import {getJobHuntByID,saveJobHunt} from "@/api/jobHuntInfo";
 import {getSysDictionaryList} from '@/api/system/dictionary';
 import {alertController, onIonViewDidEnter} from "@ionic/vue";
 
@@ -164,7 +164,7 @@ export default defineComponent({
         await presentAlert("请填写完整的信息!");
         return null;
       }
-      jobHuntSave(jobHuntData.dataModel).then(result => {
+      saveJobHunt(jobHuntData.dataModel).then(result => {
         if (result) {
           router.push({path: './edit', query: {reload:1,jobUserID: jobHuntData.dataModel.jobUserID,status:3}});
         }

+ 6 - 0
src/main/java/com/hz/employmentsite/controller/jobUserManager/EducationController.java

@@ -6,8 +6,12 @@ import com.hz.employmentsite.filter.exception.RespGenerstor;
 import com.hz.employmentsite.model.PcEducation;
 import com.hz.employmentsite.services.service.AccountService;
 import com.hz.employmentsite.services.service.jobUserManager.EducationService;
+import org.apache.poi.ss.formula.functions.Now;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.UUID;
 
 @RestController
@@ -33,6 +37,8 @@ public class EducationController {
         PcEducation dataModel = new PcEducation();
         if (educationID == null || educationID == ""){
             dataModel.setEducationID(UUID.randomUUID().toString());
+            dataModel.setSchoolTime(new Date(new Date().getYear()-4,8,1));
+            dataModel.setOverTime(new Date(new Date().getYear()-1,10,20));
         }else{
             dataModel = educationService.getById(educationID);
         }