Browse Source

bug处理5

liao-sea 1 year ago
parent
commit
308db9de69
31 changed files with 325 additions and 378 deletions
  1. 11 25
      h5app/src/views/pages/company/list.vue
  2. 15 11
      h5app/src/views/pages/company/menu.vue
  3. 15 14
      h5app/src/views/pages/jobhunt/edit.vue
  4. 30 22
      h5app/src/views/pages/jobhunt/list.vue
  5. 36 23
      h5app/src/views/pages/post/recommend.vue
  6. 34 20
      h5app/src/views/pages/work/log/list.vue
  7. 22 21
      h5app/src/views/pages/work/task/list.vue
  8. 9 26
      src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java
  9. 6 45
      src/main/java/com/hz/employmentsite/services/impl/companyService/PostServiceImpl.java
  10. 2 0
      src/main/java/com/hz/employmentsite/vo/companyService/PostVo.java
  11. 6 5
      src/main/resources/mapping/cquery/PostCQuery.xml
  12. BIN
      src/main/resources/static/doc/template/企业信息导入模板.xlsx
  13. BIN
      src/main/resources/static/doc/template/岗位信息导入模板.xlsx
  14. 1 1
      vue/src/api/companyService/company.ts
  15. 4 5
      vue/src/views/baseSettings/institution/edit.vue
  16. 1 1
      vue/src/views/baseSettings/institution/index.vue
  17. 9 9
      vue/src/views/baseSettings/siteInfo/edit.vue
  18. 3 3
      vue/src/views/baseSettings/siteInfo/index.vue
  19. 2 2
      vue/src/views/baseSettings/siteUser/edit.vue
  20. 4 4
      vue/src/views/companyService/company/edit.vue
  21. 3 4
      vue/src/views/companyService/company/index.vue
  22. 78 100
      vue/src/views/companyService/post/edit.vue
  23. 4 6
      vue/src/views/companyService/post/index.vue
  24. 14 13
      vue/src/views/jobUserManager/jobhunt/edit.vue
  25. 1 2
      vue/src/views/jobUserManager/jobuser/edit.vue
  26. 2 3
      vue/src/views/jobUserManager/jobuser/index.vue
  27. 1 1
      vue/src/views/taskAndLog/dotask/edit.vue
  28. 4 4
      vue/src/views/taskAndLog/dotask/index.vue
  29. 3 3
      vue/src/views/taskAndLog/dotask/siteUser.vue
  30. 2 2
      vue/src/views/taskAndLog/dowork/edit.vue
  31. 3 3
      vue/src/views/taskAndLog/dowork/index.vue

+ 11 - 25
h5app/src/views/pages/company/list.vue

@@ -12,12 +12,10 @@
       </ion-toolbar>
     </ion-header>
     <ion-content>
-      <ion-item style="margin: 10px 0;">
-        <ion-input style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;"
-                   v-model="searchParams.companyName" class="custom" placeholder="请输入公司名称" ></ion-input>
-        <ion-button slot="end"
-                    style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;"
-                    @click="onSearch" >搜索
+      <ion-item class="search-item">
+        <ion-input placeholder="请输入公司名称" class="custom"
+                   v-model="searchParams.companyName" style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;"></ion-input>
+        <ion-button slot="end" style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;" @click="reload" >搜索
         </ion-button>
       </ion-item>
       <ion-list class="list-content">
@@ -40,7 +38,7 @@
               <ion-col>
                 <ion-label>
                   <p>
-                    最新跟进时间:{{ record.modifyTime }}
+                    最新跟进时间:{{ dayjs(record.modifyTime).format("YYYY-MM-DD")}}
                   </p>
                 </ion-label>
               </ion-col>
@@ -85,6 +83,9 @@ export default defineComponent({
   name: 'CompanyList',
   components: {IonIcon, BEmpty},
   setup() {
+    const router = useRouter();
+    const route = useRoute();
+    const total = ref(10);
     const loading = ref(true);
     const pagination = computed(() => ({
       total: total,
@@ -94,35 +95,23 @@ export default defineComponent({
     const searchParams = reactive({
       pageIndex: 1,
       pageSize: 5,
-      primaryKey: '',
       companyName: '',
-      companyCode: '',
-      recordStatus: '',
-      regionCode: '',
-      streetCode: ''
     });
     const dataList = ref<any>([]);
-    const router = useRouter();
-    const route = useRoute();
-    const total = ref(15);
     const colors = ref(["secondary", "tertiary", "success", "warning"]);
 
     const loadData = async function () {
       loading.value = true;
       getCompanyList(searchParams).then(data => {
-        dataList.value = [];
         dataList.value = dataList.value.concat(data.list);
         total.value = data.total;
-        dataList.value.map((item: any) => {
-          if (item.modifyTime)
-            item.modifyTime = dayjs(item.modifyTime).format("YYYY-MM-DD");
-        });
         console.log(dataList.value);
       })
       loading.value = false;
     }
 
     const reload = () => {
+      dataList.value = [];
       searchParams.pageIndex = 1;
       loadData();
     }
@@ -131,7 +120,7 @@ export default defineComponent({
       setTimeout(() => {
         e.target.complete();
         if (pagination.value.total.value > pagination.value.current * pagination.value.pageSize) {
-          pagination.value.current += 1;
+          searchParams.pageIndex += 1;
           loadData();
         }
       }, 500);
@@ -145,9 +134,6 @@ export default defineComponent({
       router.push({path: './menu', query: {reload: 1,id: companyID,status: 2}});
     }
 
-    const onSearch = () => {
-      loadData();
-    }
 
     const onBack = () => {
       router.push('../');
@@ -171,9 +157,9 @@ export default defineComponent({
       onBack,
       onAdd,
       onEdit,
-      onSearch,
       onScroll,
       loadData,
+      reload,
       dayjs,
     }
   }

+ 15 - 11
h5app/src/views/pages/company/menu.vue

@@ -23,19 +23,23 @@
           </div>
         </div>
       </div>
-       <ion-item>
-         <ion-label style="text-align: center;color:#46b0e0;">
-           <h2 style="font-size: 28px;">
-             {{ dataModel.companyName == null?"":dataModel.companyName }}
-           </h2>
-         </ion-label>
-       </ion-item>
-      <ion-item>
-          <div style="padding-left: calc(84% - 240px);">
+      <div>
+        <ion-label style="text-align: center;color:#46b0e0;">
+          <h2 style="font-size: 28px;">
+            {{ dataModel.companyName == null?"":dataModel.companyName }}
+          </h2>
+        </ion-label>
+      </div>
+      <ion-grid>
+        <ion-row class="ion-justify-content-center">
+          <ion-col size="4">
             <ion-button expand="block" style="display: inline-block; width: 120px;height:45px;font-size: 20px;" @click="onPathForward('./edit',1)">信息维护</ion-button>
+          </ion-col>
+          <ion-col size="4" >
             <ion-button expand="block" style="display: inline-block; width: 120px;height:45px;font-size: 20px;" @click="onPathForward('./postList',3)">岗位管理</ion-button>
-          </div>
-      </ion-item>
+          </ion-col>
+        </ion-row>
+      </ion-grid>
     </ion-content>
     <ion-footer>
     </ion-footer>

+ 15 - 14
h5app/src/views/pages/jobhunt/edit.vue

@@ -22,13 +22,13 @@
       <ion-list  v-if="curStepData.statusVal==1">
         <ion-label class="title-item">姓名<span class="danger">*</span></ion-label>
         <ion-item mode="md" :class="[baseDataValid.baseData.name.$error?'ion-invalid':'ion-valid']">
-          <ion-input name="name" id="name" style="text-align: left;"  class="custom"
+          <ion-input name="name" id="name" style="text-align: left;"  class="custom" :clear-input="true"
                      placeholder="请输入姓名" v-model="baseData.name" ></ion-input>
           <ion-note slot="error">姓名不能为空</ion-note>
         </ion-item>
         <ion-label class="title-item">公民身份号码<span class="danger">*</span></ion-label>
         <ion-item mode="md" :class="[baseDataValid.baseData.identityNumber.$error?'ion-invalid':'ion-valid']">
-          <ion-input name="identityNumber" id="identityNumber" style="text-align: left;" class="custom"
+          <ion-input name="identityNumber" id="identityNumber" style="text-align: left;" class="custom" :clear-input="true"
                      placeholder="请输入身份证号码" v-model="baseData.identityNumber" ></ion-input>
           <ion-note slot="error">公民身份号码不能为空</ion-note>
         </ion-item>
@@ -44,13 +44,13 @@
         </ion-item>
         <ion-label class="title-item">联系电话<span class="danger">*</span></ion-label>
         <ion-item mode="md" :class="[baseDataValid.baseData.userMobile.$error?'ion-invalid':'ion-valid']">
-          <ion-input name="userMobile" id="userMobile"  style="text-align: left;" class="custom"
+          <ion-input name="userMobile" id="userMobile"  style="text-align: left;" class="custom" :clear-input="true"
                      placeholder="请输入联系电话" v-model="baseData.userMobile" ></ion-input>
           <ion-note slot="error">联系电话不能为空</ion-note>
         </ion-item>
         <ion-label class="title-item">地址<span class="danger">*</span></ion-label>
         <ion-item mode="md" :class="[baseDataValid.baseData.address.$error?'ion-invalid':'ion-valid']">
-          <ion-input name="address" id="address"  style="text-align: left;"  class="custom"
+          <ion-input name="address" id="address"  style="text-align: left;"  class="custom" :clear-input="true"
                      placeholder="请输入地址" v-model="baseData.address" ></ion-input>
           <ion-note slot="error">地址不能为空</ion-note>
         </ion-item>
@@ -97,7 +97,7 @@
         <ion-item-group v-if="expand">
           <ion-label class="title-item">民族</ion-label>
           <ion-item>
-            <ion-input name="nation" id="nation"  style="text-align: left;" class="custom"
+            <ion-input name="nation" id="nation"  style="text-align: left;" class="custom"  :clear-input="true"
                        v-model="baseData.nation" placeholder="请输入民族" ></ion-input>
             <!--<ion-select name="nation"  id="nation" okText="确定" cancelText="取消" v-model="baseData.nation"
                         interface="action-sheet" placeholder="请选择民族" style="width:100%;text-align:left;">
@@ -117,7 +117,7 @@
           </ion-item>
           <ion-label class="title-item">出生地</ion-label>
           <ion-item>
-            <ion-input name="birthPlace" id="birthPlace"  style="text-align: left;" class="custom"
+            <ion-input name="birthPlace" id="birthPlace"  style="text-align: left;" class="custom" :clear-input="true"
                        v-model="baseData.birthPlace" placeholder="请输入出生地" ></ion-input>
           </ion-item>
           <ion-label class="title-item">出生日期</ion-label>
@@ -169,17 +169,17 @@
           </ion-item>
           <ion-label class="title-item">身高(cm)</ion-label>
           <ion-item>
-            <ion-input name="height" id="height"  style="text-align: left;"  class="custom"
+            <ion-input name="height" id="height"  style="text-align: left;"  class="custom" :clear-input="true"
                        placeholder="请输入身高" v-model="baseData.height" ></ion-input>
           </ion-item>
           <ion-label class="title-item">视力</ion-label>
           <ion-item>
-            <ion-input name="vision" id="vision"  style="text-align: left;" class="custom"
+            <ion-input name="vision" id="vision"  style="text-align: left;" class="custom" :clear-input="true"
                        placeholder="如1.0" v-model="baseData.vision" ></ion-input>
           </ion-item>
           <ion-label class="title-item">体重(kg)</ion-label>
           <ion-item>
-            <ion-input name="weight" id="weight"  style="text-align: left;" class="custom"
+            <ion-input name="weight" id="weight"  style="text-align: left;" class="custom" :clear-input="true"
                        placeholder="请输入体重" v-model="baseData.weight" ></ion-input>
           </ion-item>
           <ion-label class="title-item">婚姻状况</ion-label>
@@ -220,12 +220,12 @@
           </ion-item>
           <ion-label class="title-item">联系人</ion-label>
           <ion-item>
-            <ion-input name="userName" id="userName"  style="text-align: left;" class="custom"
+            <ion-input name="userName" id="userName"  style="text-align: left;" class="custom" :clear-input="true"
                        placeholder="请输入联系人姓名" v-model="baseData.userName" ></ion-input>
           </ion-item>
           <ion-label class="title-item">电子邮箱</ion-label>
           <ion-item>
-            <ion-input name="email" id="email"  style="text-align: left;" class="custom"
+            <ion-input name="email" id="email"  style="text-align: left;" class="custom" :clear-input="true"
                        placeholder="请输入电子邮箱" v-model="baseData.email" ></ion-input>
           </ion-item>
           <ion-label class="title-item">家庭住址</ion-label>
@@ -414,7 +414,7 @@ export default defineComponent({
       }});
     const pageParams = reactive({
       pageIndex: 1,
-      pageSize: 10,
+      pageSize: 5,
       total:0,
       jobUserID:''
     });
@@ -428,7 +428,8 @@ export default defineComponent({
           address:{required},
           jobStatusID:{required},
           keyPersonTypeID:{required},
-        }}});
+        }}
+    });
     const baseDataValid = useVuelidate(baseDataRule,baseInfoData);
 
     const expandChange= ()=>{
@@ -485,7 +486,7 @@ export default defineComponent({
         setTimeout(() => {
           e.target.complete();
           if (pageParams.total > pageParams.pageIndex * pageParams.pageSize) {
-            pageParams.pageSize += 10;
+            pageParams.pageSize += 5;
             loadData(pageParams.jobUserID,curStepData.value.statusVal);
           }
         }, 500);

+ 30 - 22
h5app/src/views/pages/jobhunt/list.vue

@@ -12,9 +12,9 @@
       </ion-toolbar>
     </ion-header>
     <ion-content>
-      <ion-item  class="search-item">
+      <ion-item class="search-item">
         <ion-input  placeholder="请输入求职人员姓名" class="custom"
-                    v-model="searchParamsState.name" style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;"></ion-input>
+                    v-model="searchParams.name" style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;"></ion-input>
         <ion-button slot="end" style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;" @click="reload">搜索</ion-button>
       </ion-item>
       <ion-list  class="list-content" >
@@ -31,7 +31,7 @@
       <b-empty v-if="dataList.length<=0" :loading="loading"/>
       <ion-infinite-scroll threshold="100px" @ionInfinite="onScroll($event)">
         <ion-infinite-scroll-content
-            :loadingText="searchParamsState.total>searchParamsState.pageIndex*searchParamsState.pageSize?'正在加载...':'暂无更多'"
+            :loadingText="pagination.total>pagination.pageIndex*pagination.pageSize?'正在加载...':'暂无更多'"
             loadingSpinner="bubbles">
         </ion-infinite-scroll-content>
       </ion-infinite-scroll>
@@ -41,7 +41,7 @@
 
 <script lang="ts">
 import {useRouter} from "vue-router";
-import {defineComponent, reactive, ref} from 'vue';
+import {computed, defineComponent, reactive, ref} from 'vue';
 import {arrowBackOutline,addCircleOutline} from 'ionicons/icons';
 import {IonIcon, onIonViewDidEnter} from '@ionic/vue';
 import {getJobUserList} from "@/api/jobUserInfo";
@@ -50,37 +50,43 @@ export default defineComponent({
   name: 'jobUserList',
   components: {IonIcon},
   setup() {
-    const searchParamsState = reactive({
+    const router = useRouter();
+    const total = ref(10);
+    const loading = ref(true);
+    const pagination = computed(() => ({
+      total: total,
+      pageIndex: searchParams.pageIndex,
+      pageSize: searchParams.pageSize
+    }));
+    const searchParams = reactive({
       pageIndex: 1,
-      pageSize: 10,
-      total:0,
+      pageSize: 5,
       name:''
     });
-    const loading = ref(true);
     const dataList = ref<any>([]);
-    const router = useRouter();
     const colors = ref(["secondary", "tertiary", "success", "warning"]);
 
     const loadData = async function () {
       loading.value = true;
-      const result: any = await getJobUserList(searchParamsState);
-      dataList.value = [];
-      dataList.value = dataList.value.concat(result.list);
-      console.log("dataList",dataList.value);
-      searchParamsState.total = result.total;
+      getJobUserList(searchParams).then(data=>{
+        dataList.value = dataList.value.concat(data.list);
+        console.log("dataList",dataList.value);
+        total.value = data.total;
+      });
       loading.value = false;
     }
 
     const reload = () => {
-      searchParamsState.pageIndex = 1;
+      dataList.value = [];
+      searchParams.pageIndex = 1;
       loadData();
     }
 
     const onScroll = (e: any) => {
       setTimeout(() => {
         e.target.complete();
-        if (searchParamsState.total > searchParamsState.pageIndex * searchParamsState.pageSize) {
-          searchParamsState.pageSize += 10;
+        if (pagination.value.total.value > pagination.value.pageIndex * pagination.value.pageSize) {
+          searchParams.pageIndex += 1;
           loadData();
         }
       }, 500);
@@ -104,19 +110,21 @@ export default defineComponent({
     });
 
     return {
+      arrowBackOutline,
+      addCircleOutline,
       router,
       colors,
-      dataList,
+      total,
       loading,
-      searchParamsState,
-      onScroll,
+      pagination,
+      searchParams,
+      dataList,
       onAdd,
       onBack,
       onDetail,
+      onScroll,
       loadData,
       reload,
-      arrowBackOutline,
-      addCircleOutline,
     }
   }
 });

+ 36 - 23
h5app/src/views/pages/post/recommend.vue

@@ -9,9 +9,9 @@
       </ion-toolbar>
     </ion-header>
     <ion-content>
-      <ion-item style="margin: 10px 0;">
-        <ion-input  placeholder="请输入求职人员姓名" v-model="searchParamsState.name" class="custom"
-                    style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;"></ion-input>
+      <ion-item class="search-item">
+        <ion-input  placeholder="请输入求职人员姓名" class="custom"
+                    v-model="searchParams.name"  style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;"></ion-input>
         <ion-button slot="end" style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;"  @click="reload">查询</ion-button>
       </ion-item>
       <ion-list  class="list-content" >
@@ -25,43 +25,55 @@
           </ion-label>
         </ion-item>
       </ion-list>
+      <b-empty v-if="dataList.length<=0" :loading="loading"/>
+      <ion-infinite-scroll threshold="100px" @ionInfinite="onScroll($event)">
+        <ion-infinite-scroll-content
+            :loadingText="pagination.total>pagination.pageIndex*pagination.pageSize?'正在加载...':'暂无更多'"
+            loadingSpinner="bubbles">
+        </ion-infinite-scroll-content>
+      </ion-infinite-scroll>
     </ion-content>
   </ion-page>
 </template>
 
 <script lang="ts">
-import {IonIcon, onIonViewDidEnter} from '@ionic/vue';
-import {arrowBackOutline,addCircleOutline} from 'ionicons/icons';
-import {defineComponent, reactive, ref} from 'vue';
 import {useRouter} from "vue-router";
-import {getJobUserList} from "@/api/jobUserInfo"
+import {computed, defineComponent, reactive, ref} from 'vue';
+import {arrowBackOutline,addCircleOutline} from 'ionicons/icons';
+import {IonIcon, onIonViewDidEnter} from '@ionic/vue';
+import {getJobUserList} from "@/api/jobUserInfo";
 
 export default defineComponent({
   name: 'PostRecommend',
   components: {IonIcon},
   setup() {
-    const searchParamsState = reactive({pageIndex: 1, pageSize: 10, total:0, name:''})
     const loading = ref(true);
-    const isSearch = ref(false);
-    const dataList = ref<any>([]);
     const router = useRouter();
+    const total = ref(10);
+    const pagination = computed(() => ({
+      total: total,
+      pageIndex: searchParams.pageIndex,
+      pageSize: searchParams.pageSize
+    }));
+    const searchParams = reactive({pageIndex: 1, pageSize: 5, name:''})
+    const dataList = ref<any>([]);
     const colors = ref(["secondary", "tertiary", "success", "warning"]);
 
     const loadData = async function () {
       loading.value = true;
-      const result: any = await getJobUserList(searchParamsState);
-      dataList.value = [];
-      dataList.value = dataList.value.concat(result.list);
-      console.log("dataList",dataList.value);
-      searchParamsState.total = result.total;
+      getJobUserList(searchParams).then(data=>{
+        dataList.value = dataList.value.concat(data.list);
+        console.log("dataList",dataList.value);
+        total.value = data.total;
+      });
       loading.value = false;
     }
 
     const onScroll = (e: any) => {
       setTimeout(() => {
         e.target.complete();
-        if (searchParamsState.total > searchParamsState.pageIndex * searchParamsState.pageSize) {
-          searchParamsState.pageSize += 10;
+        if (pagination.value.total.value > pagination.value.pageIndex * pagination.value.pageSize) {
+          searchParams.pageIndex += 1;
           loadData();
         }
       }, 500);
@@ -72,7 +84,8 @@ export default defineComponent({
     }
 
     const reload = () => {
-      searchParamsState.pageIndex = 1;
+      dataList.value = [];
+      searchParams.pageIndex = 1;
       loadData();
     }
     onIonViewDidEnter(() => {
@@ -80,18 +93,18 @@ export default defineComponent({
     });
 
     return {
+      arrowBackOutline,
+      addCircleOutline,
       router,
       colors,
-      isSearch,
       loading,
-      searchParamsState,
+      pagination,
+      searchParams,
       dataList,
+      onSearch,
       onScroll,
       loadData,
       reload,
-      onSearch,
-      arrowBackOutline,
-      addCircleOutline,
     }
   }
 });

+ 34 - 20
h5app/src/views/pages/work/log/list.vue

@@ -1,5 +1,5 @@
 <template>
-  <ion-page class="list-page">
+  <ion-page class="list-page log-list-page">
     <ion-header class="header-theme2">
       <ion-toolbar>
         <ion-buttons slot="start">
@@ -13,10 +13,10 @@
     </ion-header>
     <ion-content>
       <ion-item class="search-item">
-        <ion-input type="date" mode="md" v-model="searchParamsState.workStartDate" style="width: 105px;" @change="reload"></ion-input>
+        <ion-input type="date" mode="md" v-model="searchParamsState.workStartDate" style="width: 105px;"></ion-input>
         <ion-label style="margin:0px 5px 0px 5px">至</ion-label>
-        <ion-input type="date" mode="md" v-model="searchParamsState.workEndDate" style="width: 105px;" @change="reload"></ion-input>
-        <ion-button slot="end" style="height: 33px;width:80px;--border-radius: 14px;" @click="reload">搜索</ion-button>
+        <ion-input type="date" mode="md" v-model="searchParamsState.workEndDate" style="width: 105px;"></ion-input>
+        <ion-button slot="end" style="height: 33px;width:70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;" @click="onSearch">搜索</ion-button>
       </ion-item>
       <ion-list class="list-content">
         <ion-item v-for="(record,key) in dataList" :key="key" detail>
@@ -71,8 +71,8 @@ export default defineComponent({
       pageIndex: 1,
       pageSize: 10,
       total:0,
-      workStartDate: '2024-01-01',
-      workEndDate: '2024-12-31'
+      workStartDate: '',
+      workEndDate: ''
     })
     const loading = ref(true);
     const dataList = ref<any>([]);
@@ -81,8 +81,6 @@ export default defineComponent({
 
     const loadData = async function () {
       loading.value = true;
-      console.log(searchParamsState.workStartDate);
-      console.log(searchParamsState.workEndDate);
       const result: any = await getWorkLogList(searchParamsState);
       dataList.value = dataList.value.concat(result.list);
       console.log("dataList",dataList.value);
@@ -114,6 +112,18 @@ export default defineComponent({
     }
 
     const reload = () => {
+      const firstDay = new Date();
+      firstDay.setMonth(firstDay.getMonth());
+      firstDay.setDate(1);
+      const lastDay = new Date(firstDay.getFullYear(), firstDay.getMonth() + 1, 0);
+      dataList.value = [];
+      searchParamsState.pageIndex = 1;
+      searchParamsState.workStartDate=dayjs(firstDay.toLocaleDateString()).format('YYYY-MM-DD');
+      searchParamsState.workEndDate = dayjs(lastDay.toLocaleDateString()).format('YYYY-MM-DD');
+      loadData();
+    }
+
+    const onSearch =()=>{
       dataList.value = [];
       searchParamsState.pageIndex = 1;
       loadData();
@@ -132,6 +142,7 @@ export default defineComponent({
       onScroll,
       onAdd,
       onBack,
+      onSearch,
       onDetail,
       loadData,
       reload,
@@ -155,18 +166,21 @@ export default defineComponent({
     padding: 6px !important;
   }
 }
-.list-content {
-  margin: 0px 15px !important;
-  background-color: white !important;
-  border-radius: 0 !important;
-
-  ion-item {
-    margin-top: 10px;
-    font-size: 14px;
-    border: 1px solid rgb(242, 242, 245);
-
-    p {
-      font-size: 12px;
+
+.log-list-page {
+  .list-content {
+    margin: 0px 15px !important;
+    background-color: white !important;
+    border-radius: 0 !important;
+
+    ion-item {
+      margin-top: 10px;
+      font-size: 14px;
+      border: 1px solid rgb(242, 242, 245);
+
+      p {
+        font-size: 12px;
+      }
     }
   }
 }

+ 22 - 21
h5app/src/views/pages/work/task/list.vue

@@ -1,5 +1,5 @@
 <template>
-  <ion-page class="list-page">
+  <ion-page class="list-page task-list-page" >
     <ion-header class="header-theme2">
       <ion-toolbar>
         <ion-buttons slot="start">
@@ -12,10 +12,10 @@
       </ion-toolbar>
     </ion-header>
     <ion-content>
-      <ion-item style="margin: 10px 0;">
-        <ion-input placeholder="请输入任务名称"  class="custom" v-model="searchParamsState.taskName"
-                   style="border: 1px solid #f2f2f5;height: 33px;width: 70px;margin-left: 10px;border-radius: 14px;--padding-start: 10px;" ></ion-input>
-        <ion-button slot="end" style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;" @click="onSearch">搜索</ion-button>
+      <ion-item class="search-item">
+        <ion-input placeholder="请输入任务名称"  class="custom"
+                   v-model="searchParamsState.taskName" style="border: 1px solid #f2f2f5;border-radius: 14px;--padding-start: 10px;height: 35px;" ></ion-input>
+        <ion-button slot="end" style="height: 33px;width: 70px;margin-left: 10px;--box-shadow: none;--border-radius: 14px;" @click="reload">搜索</ion-button>
       </ion-item>
       <ion-list class="list-content" >
         <ion-item v-for="(record,key) in dataList" :key="key" detail  @click="onDetail(record.doTaskID)">
@@ -70,22 +70,18 @@ export default defineComponent({
     const loadData = async function () {
       loading.value = true;
       const result: any = await getMyWorkTasks(searchParamsState);
-      dataList.value = [];
       dataList.value = dataList.value.concat(result.list);
       console.log("dataList",dataList.value);
       searchParamsState.total = result.total;
       loading.value = false;
     }
 
-    const onSearch = ()=>{
-      loadData();
-    }
 
     const onScroll = (e: any) => {
       setTimeout(() => {
         e.target.complete();
         if (searchParamsState.total > searchParamsState.pageIndex * searchParamsState.pageSize) {
-          searchParamsState.pageSize += 10;
+          searchParamsState.pageIndex += 1;
           loadData();
         }
       }, 500);
@@ -117,7 +113,6 @@ export default defineComponent({
       loading,
       dataList,
       searchParamsState,
-      onSearch,
       onScroll,
       /*onAdd,*/
       onBack,
@@ -140,17 +135,23 @@ export default defineComponent({
   --placeholder-opacity: 1;
 }
 
-.list-content {
-  margin: 0px 15px !important;
-  background-color: white !important;
-  border-radius: 0 !important;
-  ion-item {
-    margin-top: 10px;
-    font-size: 14px;
-    border: 1px solid rgb(242, 242, 245);
-    p {
-      font-size: 12px;
+
+.task-list-page {
+  .list-content {
+    margin: 0px 15px !important;
+    background-color: white !important;
+    border-radius: 0 !important;
+
+    ion-item {
+      margin-top: 10px;
+      font-size: 14px;
+      border: 1px solid rgb(242, 242, 245);
+
+      p {
+        font-size: 12px;
+      }
     }
   }
 }
+
 </style>

+ 9 - 26
src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java

@@ -218,46 +218,29 @@ public class CompanyServiceImpl implements CompanyService {
                 item.setErrorMessage(errorInfo);
             }
 
-            /*if (stringUtils.IsNullOrEmpty(item.regionName))
-                errorInfo += "请填写所属县区!";
-            else {
+            if (!stringUtils.IsNullOrEmpty(item.regionName))
+            {
                 item.regionCode = regionList.stream().filter(it -> it.getName().equals(item.regionName.trim()))
                         .findFirst().orElse(new AreaCode()).getCode();
                 if (stringUtils.IsNullOrEmpty(item.regionCode))
                     errorInfo += "县区名称不存在!";
             }
-            if (stringUtils.IsNullOrEmpty(item.streetName))
-                errorInfo += "请填写所属街道!";
-            else {
+
+            if (!stringUtils.IsNullOrEmpty(item.streetName))
+            {
                 item.streetCode = streetList.stream().filter(it -> it.getName().equals(item.streetName.trim()))
                         .findFirst().orElse(new AreaCode()).getCode();
                 if (stringUtils.IsNullOrEmpty(item.streetCode))
-                    errorInfo += "县区名称不存在!";
+                    errorInfo += "街道名称不存在!";
             }
-            if (stringUtils.IsNullOrEmpty(item.workSituation))
-                errorInfo += "请填写用工情况!";
-            if (stringUtils.IsNullOrEmpty(item.companyModelStr))
-                errorInfo += "请填写企业规模!";
-            else {
+
+            if (!stringUtils.IsNullOrEmpty(item.companyModelStr))
+            {
                 item.companyModel = dicCompanyModelList.stream().filter(it -> it.getName().equals(item.companyModelStr.trim()))
                         .findFirst().orElse(new SysDictionaryItem()).getValue();
                 if (item.companyModel == null || item.companyModel == 0)
                     errorInfo += "企业规模不存在!";
             }
-
-            if (stringUtils.IsNullOrEmpty(item.companyEmail))
-                errorInfo += "请填写企业邮箱!";
-            if (stringUtils.IsNullOrEmpty(item.frName))
-                errorInfo += "请填写法定代表人!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.insuredCount)))
-                errorInfo += "请填写企业参保人数!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.validDate)))
-                errorInfo += "请填写营业执照有效期!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.businScope)))
-                errorInfo += "请填写经营范围!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.companyDesc)))
-                errorInfo += "请填写企业简介!";
-            */
         });
 
         if (dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.errorMessage)).collect(Collectors.toList()).size() > 0)

+ 6 - 45
src/main/java/com/hz/employmentsite/services/impl/companyService/PostServiceImpl.java

@@ -220,7 +220,7 @@ public class PostServiceImpl implements PostService {
         dataList.forEach(item -> {
             String errorInfo = "";
             if (stringUtils.IsNullOrEmpty(item.companyName))
-                errorInfo += "请填写企业企业!";
+                errorInfo += "请填写企业名称!";
             else {
                 item.companyID = companyList.stream().filter(it -> it.getCompanyName().equals(item.getCompanyName().trim()))
                         .findFirst().orElse(new PcCompany()).getCompanyID();
@@ -236,56 +236,17 @@ public class PostServiceImpl implements PostService {
             if (stringUtils.IsNullOrEmpty(String.valueOf(item.startTime)) || item.startTime == null)
                 errorInfo += "请填写结束日期!";
             if (stringUtils.IsNullOrEmpty(item.jobPlace))
-                errorInfo += "请填写工作地址!";
+                errorInfo += "请填写招聘地点!";
 
+            if (item.isTrailName.trim().equals("是")) item.isTrail = true;
+            else if (item.isTrailName.trim().equals("否"))item.isTrail = false;
 
-            /*if (stringUtils.IsNullOrEmpty(item.recordStatusName))
-                errorInfo += "请填写岗位状态!";
-            else {
-                if (item.recordStatusName.equals("启用")) item.recordStatus = 1;
-                else item.recordStatus = 0;
-            }
-
-            if (stringUtils.IsNullOrEmpty(item.workNature))
-                errorInfo += "请填写工作性质!";
-            if (item.workYear == null)
-                errorInfo += "请填写工作年限!";
-            if (stringUtils.IsNullOrEmpty(item.cultureLevelName))
-                errorInfo += "请填写文化程度!";
-            else {
+            if (!stringUtils.IsNullOrEmpty(item.cultureLevelName)){
                 item.cultureRank = dicDataList.stream().filter(it -> it.getName().equals(item.cultureLevelName.trim()))
                         .findFirst().orElse(new SysDictionaryItem()).getValue();
                 if (item.cultureRank == null || item.cultureRank == 0)
-                    errorInfo += "输入文化程度不存在!";
-            }
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.maxSalary)) || item.maxSalary == null)
-                errorInfo += "请填写最高薪酬!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.minSalary)) || item.minSalary == null)
-                errorInfo += "请填写最低薪酬!";
-            if (stringUtils.IsNullOrEmpty(item.welfare))
-                errorInfo += "请填写福利待遇!";
-            if (stringUtils.IsNullOrEmpty(item.userName))
-                errorInfo += "请填写联系人!";
-            if (stringUtils.IsNullOrEmpty(item.userMobile))
-                errorInfo += "请填写联系电话!";
-            if (stringUtils.IsNullOrEmpty(item.postEmail))
-                errorInfo += "请填写邮箱!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.workTime)) || item.workTime == 0 || item.workTime == null)
-                errorInfo += "请填写工作时长!";
-            if (stringUtils.IsNullOrEmpty(item.isTrailName))
-                errorInfo += "请填写是否试用期!";
-            else {
-                if (item.isTrailName.trim().equals("是")) item.isTrail = true;
-                else item.isTrail = false;
+                    errorInfo += "输入的学历要求不存在!";
             }
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.trailtime)) || item.trailtime == 0 || item.trailtime == null)
-                errorInfo += "请填写试用期时长(月)!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.trailMaxSalary)) || item.trailMaxSalary == null)
-                errorInfo += "请填写试用期最高薪酬!";
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.trailMinSalary)) || item.trailMinSalary == null)
-                errorInfo += "请填写试用期最低薪酬!";
-            if (stringUtils.IsNullOrEmpty(item.postDesc))
-                errorInfo += "请填写岗位描述!";*/
 
             if (stringUtils.IsNullOrEmpty(errorInfo)) {
                 resultList.add(item);

+ 2 - 0
src/main/java/com/hz/employmentsite/vo/companyService/PostVo.java

@@ -42,6 +42,8 @@ public class PostVo {
 
     public String userMobile;
 
+    public String companyEmail;
+
     public String postEmail;
 
     public Integer workTime;

+ 6 - 5
src/main/resources/mapping/cquery/PostCQuery.xml

@@ -2,11 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.hz.employmentsite.mapper.cquery.PostCQuery">
     <select id="selectPostList" resultType="com.hz.employmentsite.vo.companyService.PostVo">
-        select post.*,company.CompanyName,company.insuredCount,item.`Name` as cultureLevelName from pc_post post
-        left join pc_company company
-        on post.CompanyID = company.CompanyID
-        left join sys_dictionary_item item
-        on item.value=post.CultureRank and item.DictionaryCode='CultureLevel'
+        select post.postID,post.workCode,post.workName,post.recruitCount,post.companyID,post.postName,post.recordStatus,post.workNature,post.validDay,
+               post.workYear,post.cultureRank,post.postDesc,post.maxSalary,post.minSalary,post.welfare,post.postEmail,post.workTime,post.isTrail,post.TrailMaxSalary,
+               post.trailMinSalary,post.createUserID,post.createTime,post.modifyUserID,post.modifyTime,post.validTime,post.startTime,post.endTime,post.jobPlace,
+               company.userName,company.userMobile,company.companyEmail,company.CompanyName,company.insuredCount,item.`Name` as cultureLevelName from pc_post post
+        left join pc_company company on post.CompanyID = company.CompanyID
+        left join sys_dictionary_item item on item.value=post.CultureRank and item.DictionaryCode='CultureLevel'
         where 1=1
         <if test="postIDList != '' and postIDList != null">
             and post.postID in (${postIDList})

BIN
src/main/resources/static/doc/template/企业信息导入模板.xlsx


BIN
src/main/resources/static/doc/template/岗位信息导入模板.xlsx


+ 1 - 1
vue/src/api/companyService/company.ts

@@ -15,7 +15,7 @@ export function getList(params: any) {
 }
 
 export function getCompanyById(id: string) {
-  return request<object>({
+  return request({
     url: 'companyService/company/getCompanyByID',
     method: 'get',
     params: {id}

+ 4 - 5
vue/src/views/baseSettings/institution/edit.vue

@@ -179,7 +179,7 @@ export default defineComponent({
       opCategory.value = operateType;
       getInstitutionByID(institutionID).then((result: any) => {
         formData.dataModel = result;
-        console.log('dataModel',formData.dataModel);
+        // console.log('dataModel',formData.dataModel);
         GetManageSites(formData.dataModel.institutionID);
       });
     }
@@ -188,7 +188,7 @@ export default defineComponent({
       pageParams.institutionID = '';
       getSiteList(pageParams).then((result :any) => {
         allSites.value = result.list;
-        console.log('allSites',allSites);
+        // console.log('allSites',allSites);
       })
     }
 
@@ -216,8 +216,7 @@ export default defineComponent({
     const manageSitesChange = (index:any,siteID:any) =>{
       getSiteByID(siteID).then((result :any)=> {
         manageSites.value[index]= result;
-        console.log("result",result);
-        console.log("manageSites",manageSites.value);
+        // console.log("manageSites",manageSites.value);
         validateSameSite();
       });
     };
@@ -227,7 +226,7 @@ export default defineComponent({
       if(manageSites.value.length>1){
         manageSites.value.forEach(item=>{
           const sameData = manageSites.value.filter(x => x.siteID == item.siteID);
-          console.log("sameData",sameData);
+          // console.log("sameData",sameData);
           if (sameData.length >1){
             isAllowCommit.value = false;
           }

+ 1 - 1
vue/src/views/baseSettings/institution/index.vue

@@ -114,7 +114,7 @@ export default defineComponent({
       formState.loading = true;
       const result: any = await getInstitutionList(searchParams);
       dataList.value = result.list;
-      console.log(dataList.value);
+      // console.log(dataList.value);
       formState.total = result.total;
       formState.loading = false;
     }

+ 9 - 9
vue/src/views/baseSettings/siteInfo/edit.vue

@@ -209,12 +209,12 @@ export default defineComponent({
     }
     const getUserDataList = async function(){
       const siteUserResult :any = await getSiteUserDataList();
-      console.log('siteUserResult',siteUserResult);
+      // console.log('siteUserResult',siteUserResult);
       siteUserList.value = siteUserResult;
     }
     const getInstitutionList = async function(){
       const institutionResult :any = await getInstitutionDataList();
-      console.log('institutionResult',institutionResult);
+      // console.log('institutionResult',institutionResult);
       institutionList.value = institutionResult;
     }
 
@@ -225,9 +225,9 @@ export default defineComponent({
       getUserDataList();
       getSiteByID(siteID).then((result: any) => {
         formData.dataModel = result;
-        console.log("dataModel",formData.dataModel);
+        // console.log("dataModel",formData.dataModel);
         getManageUsers(formData.dataModel.siteID);
-        console.log("manageUsers",manageUsers.value);
+        // console.log("manageUsers",manageUsers.value);
         if (formData.dataModel.regionCode != null){
           getStreetList();
         }
@@ -241,7 +241,7 @@ export default defineComponent({
       pageParams.siteID = '';
       getSiteUserList(pageParams).then((result :any) => {
         allUsers.value = result.list;
-        console.log('allUsers',allUsers);
+        // console.log('allUsers',allUsers);
       })
     }
     const getManageUsers = (id: string) => {
@@ -254,7 +254,7 @@ export default defineComponent({
     const addSiteUser = () => {
       if(allUsers.value.length >0){
         const newUser = allUsers.value[0];
-        console.log(newUser);
+        // console.log(newUser);
         (manageUsers.value as any[]).push({siteUserID:newUser.siteUserID,siteID:formData.dataModel.siteID,siteUserName:newUser.siteUserName,genderName:newUser.genderName,roleName:newUser.roleName});
         validateSameUser();
       }else{
@@ -266,11 +266,11 @@ export default defineComponent({
       validateSameUser();
     }
     const manageUsersChange = (index:any,siteUserID:any) =>{
-      console.log('siteUserID',siteUserID);
+      // console.log('siteUserID',siteUserID);
       getSiteUserByID(siteUserID).then((result :any)=> {
         result.siteID = formData.dataModel.siteID;
         manageUsers.value[index]= result;
-        console.log('manageUsers',manageUsers.value);
+        // console.log('manageUsers',manageUsers.value);
         validateSameUser();
       });
     }
@@ -280,7 +280,7 @@ export default defineComponent({
       if (manageUsers.value.length>1){
         manageUsers.value.forEach(item=>{
           const sameData = manageUsers.value.filter(x => x.siteUserID == item.siteUserID);
-          console.log("sameData",sameData);
+          // console.log("sameData",sameData);
           if (sameData.length >1){
             isAllowCommit.value = false;
           }

+ 3 - 3
vue/src/views/baseSettings/siteInfo/index.vue

@@ -172,19 +172,19 @@ export default defineComponent({
     const getAllInstitutions = async function(){
       const reqData: any = await getInstitutionDataList();
       allInstitutions.value = reqData;
-      console.log('allInstitutions',allInstitutions.value);
+      // console.log('allInstitutions',allInstitutions.value);
     }
 
     const getRegionList = async function(){
       const regionResult: any = await getRegionCodeList();
-      console.log('regionResult',regionResult);
+      // console.log('regionResult',regionResult);
       regionList.value = regionResult;
     }
 
     const changeRegion = async function(){
       if(searchParams.regionCode){
         const streetResult: any = await getStreetCodeList(searchParams.regionCode);
-        console.log('streetResult',streetResult);
+        // console.log('streetResult',streetResult);
         streetList.value = streetResult;
       }
       onSearch();

+ 2 - 2
vue/src/views/baseSettings/siteUser/edit.vue

@@ -102,7 +102,7 @@ export default defineComponent({
     const getRoleList = async function(operateType:number){
       const roleResult :any = await getSysDictionaryList("UserType");
       roleList.value = operateType==1?[{name:"驿站工作者",value:3}]:roleResult;
-      console.log("roleList",roleList.value);
+      // console.log("roleList",roleList.value);
     }
 
     const loadData = (siteUserID: string,operateType:number) => {
@@ -112,7 +112,7 @@ export default defineComponent({
       opCategory.value = operateType;
       getSiteUserByID(siteUserID).then((result: any) => {
         formData.dataModel = result;
-        console.log("dataModel",formData.dataModel);
+        // console.log("dataModel",formData.dataModel);
       });
     };
 

+ 4 - 4
vue/src/views/companyService/company/edit.vue

@@ -312,7 +312,7 @@ export default defineComponent(
       const getCompanyModelList = async function () {
         const data: any = await getSysDictionaryList("CompanyModel");
         companyModelList.value = data;
-        console.log("companyModelList", companyModelList.value);
+        // console.log("companyModelList", companyModelList.value);
       }
 
       const siteChange = async function () {
@@ -327,7 +327,7 @@ export default defineComponent(
       const changeCity = () => {
         if (formState.dataModel.regionCode) {
           get('system/area/getAreaList', {code: formState.dataModel.regionCode}).then(data => {
-            console.log("streetList", data);
+            // console.log("streetList", data);
             streetList.value = data;
           })
         }
@@ -339,7 +339,7 @@ export default defineComponent(
       }
 
       const onFinish = () => {
-        console.log(showPicker.value);
+        // console.log(showPicker.value);
         if (showPicker.value === '1') {
           formState.dataModel.validDate = '2099-12-31T00:00:00.000+08:00';
         } else {
@@ -357,7 +357,7 @@ export default defineComponent(
         getCompanyModelList();
         getCompanyById(id).then(result => {
           formState.dataModel = result;
-          console.log("curDataModel",formState.dataModel);
+          // console.log("curDataModel",formState.dataModel);
           showPicker.value = formState.dataModel.validDate == '2099-12-31T00:00:00.000+08:00' ? '1' : '2';
           if (showPicker.value === '1')
             showDateTime.value = dayjs(new Date().toLocaleDateString().replaceAll("/", "-"));

+ 3 - 4
vue/src/views/companyService/company/index.vue

@@ -224,18 +224,17 @@ export default defineComponent({
     const changeCity = () => {
       if(searchParams.regionCode){
         get('system/area/getAreaList', {code: searchParams.regionCode}).then(data => {
-          console.log(data);
+          // console.log(data);
           streetList.value = data;
-          console.log(streetList.value);
+          // console.log(streetList.value);
         })
       }
       loadData();
     }
 
     get('system/area/getCityList', {}).then(data => {
-      console.log(data);
       regionList.value = data;
-      console.log(regionList.value);
+      // console.log(regionList.value);
     });
 
     const loadData = async function () {

+ 78 - 100
vue/src/views/companyService/post/edit.vue

@@ -1,21 +1,12 @@
 <template>
   <div class="card-edit">
-    <!--      <a-divider orientation="left">关联企业信息</a-divider>-->
     <a-form :model="postCompany" autocomplete="off">
       <h1>关联企业信息</h1>
-      <a-row>
-        <a-col flex="800px">
-          <a-form-item
-            label="企业名称"
-            :label-col="{ span: 3}"
-            name="companyId"
-            :rules="[{ required: true, message: '请输入企业名称!' }]"
-          >
-            <a-select
-              ref="select"
-              show-search optionFilterProp="label"
-              v-model:value="postCompany.companyId"
-            >
+      <a-row justify="start" :gutter="24" >
+        <a-col flex="895px">
+          <a-form-item label="企业名称" :label-col="{ span: 3}"
+                       name="companyId" :rules="[{ required: true, message: '请输入企业名称!' }]" >
+            <a-select ref="select" show-search optionFilterProp="label" v-model:value="postCompany.companyId" >
               <a-select-option v-for="item in companyList" :label="item.companyName" :value="item.companyID"
                                :key="item.companyID">
                 <span>{{ item.companyName }}</span>
@@ -40,74 +31,46 @@
         </Space>
       </a-col>
     </a-row>
-    <!--<a-divider orientation="left">岗位管理</a-divider>-->
     <div v-for="(item,index) in postDataList" style="margin-bottom: 20px;background-color: #f0f0f0" :key="index">
       <h1>基础信息</h1>
       <a-form :model="item" autocomplete="off">
-        <a-row :gutter="24">
+        <a-row :gutter="24"  justify="center">
           <a-col flex="400px">
-            <a-form-item
-              label="岗位名称"
-              :label-col="{ span: 6 }"
-              :wrapper-col="{ span: 18 }"
-              name="postName"
-              :rules="[{ required: true, message: '请输入岗位名称!' }]"
-            >
+            <a-form-item label="岗位名称" :label-col="{ span: 7 }"
+                         name="postName" :rules="[{ required: true, message: '请输入岗位名称!' }]" >
               <a-input v-model:value="item.postName" placeholder=""/>
             </a-form-item>
           </a-col>
           <a-col flex="400px">
-            <a-form-item
-              label="招聘人数"
-              :label-col="{ span: 6 }"
-              :wrapper-col="{ span: 18 }"
-              name="recruitCount"
-              :rules="[{ required: true, message: '请输入招聘人数!' }]"
-            >
+            <a-form-item label="招聘人数" :label-col="{ span: 7 }"
+                         name="recruitCount" :rules="[{ required: true, message: '请输入招聘人数!' }]" >
               <a-input v-model:value="item.recruitCount" placeholder=""/>
             </a-form-item>
           </a-col>
-          <a-col flex="300px" :offset="1">
-            <a-form-item
-              label="招聘日期"
-              :label-col="{ span: 8 }"
-              name="startTime"
-              :rules="[{ required: true, message: '请输入招聘开始时间' }]"
-            >
-              <a-date-picker
-                v-model:value="item.startTime"
-                picker="date"
-                value-format="YYYY-MM-DD"
-              />
+          <a-col flex="315px">
+            <a-form-item label="招聘日期" :label-col="{ span: 9 }"
+                         name="startTime" :rules="[{ required: true, message: '请输入招聘开始时间' }]"  >
+              <a-date-picker  v-model:value="item.startTime" picker="date" value-format="YYYY-MM-DD" />
             </a-form-item>
           </a-col>
-          至
-          <a-col flex="200px">
-            <a-form-item
-              name="endTime"
-              :rules="[{ required: true, message: '请输入招聘结束时间' }]"
-            >
-              <a-date-picker
-                v-model:value="item.endTime"
-                picker="date"
-                value-format="YYYY-MM-DD"
-              />
+          <label style="margin:5px;">至</label>
+          <a-col flex="215px">
+            <a-form-item name="endTime" :rules="[{ required: true, message: '请输入招聘结束时间' }]" >
+              <a-date-picker v-model:value="item.endTime" picker="date" value-format="YYYY-MM-DD" />
             </a-form-item>
           </a-col>
         </a-row>
-
-        <a-row>
-          <a-col class="table-bottom-a1" span="22">
-            <a-form-item :label-col="{span:2}" name="jobPlace" label="招聘地点"
-                         :rules="[{ required: true, message: '请输入招聘地点' }]"
-            >
+        <a-row  justify="center">
+          <a-col  flex="1330px">
+            <a-form-item label="招聘地点" :label-col="{span:2}" name="jobPlace"
+                         :rules="[{ required: true, message: '请输入招聘地点' }]" >
               <a-textarea v-model:value="item.jobPlace" placeholder="" :rows="4"/>
             </a-form-item>
           </a-col>
         </a-row>
         <h1>其他信息</h1>
-        <a-row>
-          <a-col flex="300px" style="margin-left: 3px;">
+        <a-row  justify="center">
+          <a-col flex="300px" >
             <a-form-item
               label="岗位月薪(元)"
               name="minSalary"
@@ -117,7 +80,7 @@
               <a-input v-model:value="item.minSalary" placeholder="请输入金额"/>
             </a-form-item>
           </a-col>
-          &nbsp; 至 &nbsp;
+          <label style="margin:5px 8px 5px 8px;">至</label>
           <a-col flex="200px">
             <a-form-item
               :label-col="{ span: 6 }"
@@ -143,10 +106,10 @@
               </a-select>
             </a-form-item>
           </a-col>
-          <a-col flex="400px" :offset="1">
+          <a-col flex="400px" >
             <a-form-item
               label="试用期(月)"
-              :label-col="{ span: 9 }"
+              :label-col="{ span: 7 }"
               name="trailtime"
               :rules="[{ required: false, message: '请选择试用期时长!' }]"
             >
@@ -155,8 +118,8 @@
           </a-col>
         </a-row>
 
-        <a-row>
-          <a-col flex="300px" style="margin-left: 3px;">
+        <a-row  justify="center">
+          <a-col flex="300px">
             <a-form-item
               label="试用期月薪(元)"
               name="trailMaxSalary"
@@ -166,7 +129,7 @@
               <a-input v-model:value="item.trailMaxSalary" placeholder="请输入金额"/>
             </a-form-item>
           </a-col>
-          &nbsp; 至 &nbsp;
+          <label style="margin:5px 8px 5px 8px;">至</label>
           <a-col flex="200px">
             <a-form-item
               :label-col="{ span: 6 }"
@@ -192,10 +155,10 @@
               </a-select>
             </a-form-item>
           </a-col>
-          <a-col flex="400px" :offset="1">
+          <a-col flex="400px">
             <a-form-item
               label="学历要求"
-              :label-col="{ span: 9 }"
+              :label-col="{ span: 7 }"
               name="trailtime"
               :rules="[{ required: false, message: '请选择试用期时长!' }]"
             >
@@ -209,15 +172,15 @@
             </a-form-item>
           </a-col>
         </a-row>
-        <a-row>
-          <a-col class="table-bottom-a1" span="22">
+        <a-row  justify="center">
+          <a-col flex="1330px">
             <a-form-item :label-col="{span:2}" name="welfare" label="福利待遇">
               <a-textarea v-model:value="item.welfare" placeholder="" :rows="4"/>
             </a-form-item>
           </a-col>
         </a-row>
-        <a-row>
-          <a-col class="table-bottom-a1" span="22">
+        <a-row  justify="center">
+          <a-col flex="1330px">
             <a-form-item :label-col="{span:2}" name="postDesc" label="其他要求">
               <a-textarea v-model:value="item.postDesc" placeholder="" :rows="4"/>
             </a-form-item>
@@ -238,11 +201,10 @@
 </template>
 
 <script lang="ts">
-// import {defineComponent, reactive, ref, toRefs} from 'vue';
 import {defineComponent, reactive, ref} from 'vue';
 import {useRouter} from 'vue-router';
-// import {save, getPostByID,savePostList} from '@/api/companyService/post'
-import {savePostList, getPostByID} from '@/api/companyService/post'
+import {savePostList, getPostByID} from '@/api/companyService/post';
+import {getCompanyById} from '@/api/companyService/company'
 import type {SelectProps} from 'ant-design-vue';
 import {message} from 'ant-design-vue';
 import {useTabsViewStore} from '@/store/modules/tabsView';
@@ -257,6 +219,9 @@ interface postModel {
   jobPlace: string | null,
   maxSalary: number | null,
   minSalary: number | null,
+  userName: string,
+  userMobile: string | null,
+  postEmail: string | null,
   isTrail: number | null,
   trailtime: string | null,
   trailMaxSalary: number | null,
@@ -265,12 +230,15 @@ interface postModel {
   cultureRank: number | null,
   welfare: string | null,
   postDesc: string | null,
-  companyID: string | null
+  companyID: string | null,
   recordStatus: number | null,
 }
 
 interface companyModel {
-  companyId: string | null;
+  companyId: string | null,
+  userName: string | null,
+  userMobile: string | null,
+  companyEmail: string | null,
 }
 
 export default defineComponent(
@@ -278,7 +246,7 @@ export default defineComponent(
     name: 'PostEdit',
     components: {BUploadFile},
     setup() {
-      const postCompany = reactive<companyModel>({companyId: null});//关联企业信息
+      const postCompany = reactive<companyModel>({companyId: null,userName: null,userMobile: null,companyEmail: null},);
       const router = useRouter();
       const fullpath = router.currentRoute.value.fullPath;
       const tabsViewStore = useTabsViewStore();
@@ -315,6 +283,7 @@ export default defineComponent(
         (postDataList.value as any[]).splice(index, 1);
       }
 
+
       get('system/dictionary/getDictionaryItemByCodeList', {code: 'CultureLevel'}).then(result => {
         cultureLevelList.value = result;
       });
@@ -323,9 +292,9 @@ export default defineComponent(
         WorkYearTypeList.value = result;
       });
 
-      get('companyService/company/getList', {pageIndex: 1, pageSize: 999}).then(result => {
+      get('companyService/company/getList', {pageIndex: 1, pageSize: 9999}).then(result => {
         companyList.value = result.list;
-        console.log(companyList);
+        // console.log(companyList);
       })
 
       const onClose = () => {
@@ -335,22 +304,32 @@ export default defineComponent(
       };
 
       const onFinish = () => {
-        postDataList.value.forEach(item => {
-          item.companyID = postCompany.companyId + "";
-          item.recordStatus = 1;
-        })
-        //判断重复-根据岗位名称、工作年限、学历要求、岗位薪资、试用期薪资
-        const isRepetition = hasDuplicates(postDataList.value, compareFunction);
-        if (isRepetition) {
-          message.warning('岗位信息存在重复!');
-          return;
+        if(postCompany.companyId!=null){
+          getCompanyById(postCompany.companyId).then((result:any)=>{
+            const curSelectCompany:any = result;
+            postDataList.value.forEach(item => {
+              item.companyID = curSelectCompany.companyID;
+              item.userName = curSelectCompany.userName;
+              item.userMobile = curSelectCompany.userMobile;
+              item.postEmail = curSelectCompany.companyEmail;
+              item.recordStatus = 1;
+            });
+            console.log("postList",postDataList.value);
+            //判断重复-根据岗位名称、工作年限、学历要求、岗位薪资、试用期薪资
+            const isRepetition = hasDuplicates(postDataList.value, compareFunction);
+            if (isRepetition) {
+              message.warning('岗位信息存在重复!');
+              return;
+            }
+            savePostList(postDataList.value).then((result) => {
+              if (result) {
+                tabsViewStore.closeCurrentTab(fullpath);
+                tabsViewStore.addTabByPath('/companyService/post/index', {reload: 1});
+              }
+            });
+          });
+
         }
-        savePostList(postDataList.value).then((result) => {
-          if (result) {
-            tabsViewStore.closeCurrentTab(fullpath);
-            tabsViewStore.addTabByPath('/companyService/post/index', {reload: 1});
-          }
-        });
       }
 
       const hasDuplicates = (arr, compareFn) => {
@@ -371,8 +350,7 @@ export default defineComponent(
 
       const loadData = (id: any) => {
         getPostByID(id).then(result => {
-          // formState.dataModel = result;
-          console.log(result);
+          // console.log(result);
           postCompany.companyId = (result as postModel).companyID;
           (postDataList.value as any[]).push(result);
         })
@@ -383,14 +361,14 @@ export default defineComponent(
         loadData,
         onClose,
         onFinish,
+        addPost,
+        delPostItem,
         companyList,
         postStatusList,
         trialStatusList,
         cultureLevelList,
         postDataList,
-        addPost,
         WorkYearTypeList,
-        delPostItem,
         postCompany,
         isEdit
       }

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

@@ -67,7 +67,7 @@
         </a-col>
         <a-col :span="6">
           <a-form-item label="工种名称" :label-col="{span:6}" name="WorkName">
-            <a-input v-model:value="searchParams.WorkName" placeholder=""/>
+            <a-input v-model:value="searchParams.workName" placeholder=""/>
           </a-form-item>
         </a-col>
       </a-row>
@@ -131,11 +131,12 @@ export default defineComponent({
       pageSize: 20,
       minCount: null,
       maxCount: null,
+      workName: null,
       recordStatus: null
     });
     const expand = ref(false);
     const companyList = ref<SelectProps['options']>();
-    const postStatusList = [{name: '启用', value: 1}, {name: '用', value: 0}];
+    const postStatusList = [{name: '启用', value: 1}, {name: '用', value: 0}];
     const importOptions = ref<ImportProps>({
       title: '导入',
       url: 'companyService/post/importPost',
@@ -155,10 +156,7 @@ export default defineComponent({
         {cnName: '试用期最高薪酬', enName: 'trailMaxSalary', width: 100},
         {cnName: '试用期最低薪酬', enName: 'trailMinSalary', width: 100},
         {cnName: '福利待遇', enName: 'welfare', width: 100},
-        {cnName: '其它要求', enName: 'postDesc', width: 100},
-        {cnName: '联系人', enName: 'userName', width: 100},
-        {cnName: '联系电话', enName: 'userMobile', width: 100},
-        {cnName: '邮箱', enName: 'postEmail', width: 100}
+        {cnName: '其它要求', enName: 'postDesc', width: 100}
       ],
       template: {
         tempFileName: '岗位信息导入模板.xlsx',

+ 14 - 13
vue/src/views/jobUserManager/jobhunt/edit.vue

@@ -10,9 +10,7 @@
                        :field-names="{label:'text',value:'value'}"  :allow-clear="true"  >
             </a-select>-->
 
-            <a-select ref="select"   show-search optionFilterProp="label"
-                      v-model:value="dataModel.jobUserID"
-                      :allow-clear="true">
+            <a-select ref="select" show-search optionFilterProp="label"  v-model:value="dataModel.jobUserID" >
               <a-select-option v-for="item in jobUserList" :label="item.text" :value="item.value"
                                :key="item.value">
                 <span>{{ item.text }}</span>
@@ -48,19 +46,22 @@
           <a-form-item label="月薪要求" name="salary" style="overflow: hidden;line-height: 35px;height: 35px;" :label-col="{span:7}">
             <label style="color:red;float: left;position:relative;right:80px;line-height: 35px;" >*</label>
             <a-form-item name="minSalary" :rules="[{ required: true, message: '请输入最低月薪!' }]"  style="float:left;">
-              <a-input type="number" name="minSalary" v-model:value="dataModel.minSalary" style="min-width: 100px;max-width: 115px;"  placeholder="" />
+              <a-input type="number" name="minSalary" v-model:value="dataModel.minSalary" style="min-width: 100px;max-width: 160px;"  placeholder="" />
             </a-form-item>
             <label style="margin-right:10px;margin-left:10px;float: left;">-</label>
             <a-form-item name="maxSalary"  :rules="[{ required: true, message: '请输入最高月薪!' }]" style="float: left;" >
-              <a-input type="number" name="maxSalary" v-model:value="dataModel.maxSalary" style="min-width: 100px;max-width: 115px;"   placeholder=""/>
+              <a-input type="number" name="maxSalary" v-model:value="dataModel.maxSalary" style="min-width: 100px;max-width: 160px;"   placeholder=""/>
             </a-form-item>
           </a-form-item>
         </a-col>
         <a-col :span="9">
           <a-form-item label="求职岗位"  name="postID" :label-col="{span:7}" :rules="[{ required: true, message: '请选择求职岗位!' }]">
             <label v-if="opCategory==3">{{dataModel.postID}}</label>
-            <a-select  ref="select"  v-model:value="dataModel.postID" :options="allPostList"
-                       :field-names="{label:'postName',value:'postID'}"  :allow-clear="true"  >
+            <a-select ref="select" show-search optionFilterProp="label" v-model:value="dataModel.postID">
+              <a-select-option v-for="item in allPostList" :label="item.postName" :value="item.postID"
+                               :key="item.postID">
+                <span>{{ item.postName }}</span>
+              </a-select-option>
             </a-select>
           </a-form-item>
         </a-col>
@@ -139,29 +140,29 @@ export default defineComponent({
     const getAllPostList = async function() {
       const allPostResult :any = await getList({pageIndex:1,pageSize:10000});
       allPostList.value = allPostResult.list;
-      console.log('allPostResult',allPostResult.list);
+      /*console.log('allPostResult',allPostResult.list);*/
     }
 
     const getJobUserList = async function() {
       const jobUserResult :any = await getJobUserDataList();
       jobUserList.value = jobUserResult;
-      console.log('jobUserResult',jobUserResult);
+      /*console.log('jobUserResult',jobUserResult);*/
     }
 
     const getJobWorkTypeList = async function(){
       const data :any = await getSysDictionaryList("JobWorkType");
       jobWorkTypeList.value = data;
-      console.log('jobWorkTypeList',jobWorkTypeList.value);
+      /*console.log('jobWorkTypeList',jobWorkTypeList.value);*/
     }
     const getJobHuntTypeList = async function(){
       const data :any = await getSysDictionaryList("JobHuntType");
       jobHuntTypeList.value = data;
-      console.log('jobHuntTypeList',jobHuntTypeList.value);
+      // console.log('jobHuntTypeList',jobHuntTypeList.value);
     }
     const getJobUserTypeList = async function(){
       const data :any = await getSysDictionaryList("JobUserType");
       jobUserTypeList.value = data;
-      console.log('jobUserTypeList',jobUserTypeList.value);
+      // console.log('jobUserTypeList',jobUserTypeList.value);
     }
 
     const loadData = (id: string) => {
@@ -171,7 +172,7 @@ export default defineComponent({
       getJobWorkTypeList();
       getJobHuntByID(id).then((result: any) => {
         formData.dataModel = result;
-        console.log('dataModel',formData.dataModel);
+        // console.log('dataModel',formData.dataModel);
       });
     };
 

+ 1 - 2
vue/src/views/jobUserManager/jobuser/edit.vue

@@ -683,7 +683,7 @@ export default defineComponent(
       };
 
       const onFinish = () => {
-        console.log(formState.dataModel);
+        // console.log(formState.dataModel);
         formState.dataModel.jobEducation = educationData.value;
         formState.dataModel.jobExperience = experienceData.value;
         save(formState.dataModel).then(result => {
@@ -749,7 +749,6 @@ export default defineComponent(
     },
     created() {
       const id = history.state.params?.id;
-      console.log(id);
       this.loadData(id);
       if (id) {
         this.loadEducation(id);

+ 2 - 3
vue/src/views/jobUserManager/jobuser/index.vue

@@ -247,12 +247,11 @@ export default defineComponent({
     const loadData = async function () {
       formState.loading = true;
       const result: any = await getList(searchParamsState);
-
       dataList.value = result.list;
-      console.log(dataList.value);
+      // console.log(dataList.value);
       formState.total = result.total;
       formState.loading = false;
-      console.log("userParams",searchParamsState);
+      // console.log("userParams",searchParamsState);
     };
 
     get('/companyService/company/getSiteList', {}).then(data => {

+ 1 - 1
vue/src/views/taskAndLog/dotask/edit.vue

@@ -259,7 +259,7 @@ export default defineComponent(
           (userData.value as any[]).push({siteUserID: defaultSiteUser.siteUserID,siteUserName:defaultSiteUser.siteUserName,genderName:defaultSiteUser.genderName,mobile:defaultSiteUser.mobile,taskStatusName:"待完成"});
         }*/
         modalSiteUserRef.value.show(formData.dataModel.doTaskID,userData.value);
-        console.log("userData",userData.value);
+        // console.log("userData",userData.value);
       }
       const deleteUser = (record) => {
         (userData.value as any[]).splice(record, 1);

+ 4 - 4
vue/src/views/taskAndLog/dotask/index.vue

@@ -185,13 +185,13 @@ export default defineComponent({
     };
 
     get('system/area/getCityList',{}).then(data=>{
-      console.log(data);
+      // console.log(data);
       regionList.value=data;
-      console.log(regionList.value);
+      // console.log(regionList.value);
     });
 
     get('system/dictionary/getDictionaryItemByCodeList',{code:'TaskType'}).then(data=>{
-      console.log(data);
+      // console.log(data);
       taskTypeList.value=data;
     });
 
@@ -208,7 +208,7 @@ export default defineComponent({
       formState.loading = true;
       const result: any = await getList(searchParams);
       dataList.value = result.list;
-      console.log(dataList.value);
+      // console.log(dataList.value);
       formState.total = result.total;
       formState.loading = false;
     }

+ 3 - 3
vue/src/views/taskAndLog/dotask/siteUser.vue

@@ -99,8 +99,8 @@ export default defineComponent({
     const targetKeys = ref<string[]>();
     const onSelectChange = (selectedRowKeys: any) => {
       formState.selectedRowKeys = selectedRowKeys;
-      console.log("curSelectedUsers",curSelectedUsers.value);
-      console.log("selectedRowKeys",formState.selectedRowKeys);
+      // console.log("curSelectedUsers",curSelectedUsers.value);
+      // console.log("selectedRowKeys",formState.selectedRowKeys);
     };
 
     const handleTableChange: TableProps['onChange'] = (
@@ -123,7 +123,7 @@ export default defineComponent({
         })
       }
       formState.total = allSiteUsers.total;
-      console.log("所有站点人员",allSiteUserList.value);
+      // console.log("所有站点人员",allSiteUserList.value);
     }
 
     const show = async function (curTaskID:any,selectedUsers:any) {

+ 2 - 2
vue/src/views/taskAndLog/dowork/edit.vue

@@ -116,7 +116,7 @@ export default defineComponent({
     }
     const getSiteUserList = async function(){
       const siteUserResult :any = await getSiteUserDataList();
-      console.log('siteUserResult',siteUserResult);
+      // console.log('siteUserResult',siteUserResult);
       siteUserList.value = siteUserResult;
     }
     const getLogTypeList = async function(){
@@ -130,7 +130,7 @@ export default defineComponent({
       getSiteUserList();
       get(doWorkID).then((result: any) => {
         formData.dataModel = result;
-        console.log("dataModel",formData.dataModel);
+        // console.log("dataModel",formData.dataModel);
         if (formData.dataModel.regionCode != null){
           getStreetList();
         }

+ 3 - 3
vue/src/views/taskAndLog/dowork/index.vue

@@ -166,14 +166,14 @@ export default defineComponent({
 
     const getRegionList = async function(){
       const regionResult: any = await getRegionCodeList();
-      console.log('regionResult',regionResult);
+      // console.log('regionResult',regionResult);
       regionList.value = regionResult;
     }
 
     const changeRegion = async function(){
       if(searchParams.regionCode){
         const streetResult: any = await getStreetCodeList(searchParams.regionCode);
-        console.log('streetResult',streetResult);
+        // console.log('streetResult',streetResult);
         streetList.value = streetResult;
       }
       onSearch();
@@ -185,7 +185,7 @@ export default defineComponent({
       await getRegionList();
       const result: any = await getList(searchParams);
       dataList.value = result.list;
-      console.log("dataList",dataList.value);
+      // console.log("dataList",dataList.value);
       formState.total = result.total;
       formState.loading = false;
     }