Browse Source

fix: 招聘会优化

zhangying 11 months ago
parent
commit
63eb1f0892

+ 6 - 0
h5app/src/views/pages/jobFair/detail.vue

@@ -29,6 +29,12 @@
         </div>
         <div class="form-detail">
           <ion-label>企业数量</ion-label>
+          <ion-text>
+            {{ jobFair.dataModel.companyCount }}
+          </ion-text>
+        </div>
+        <div class="form-detail">
+          <ion-label>招聘会时间</ion-label>
           <ion-text>{{ dayjs(jobFair.dataModel.startTime).format("YYYY-MM-DD") }} -
             {{ dayjs(jobFair.dataModel.endTime).format("YYYY-MM-DD") }}
           </ion-text>

+ 36 - 16
vue/src/views/jobUserManager/jobFair/edit.vue

@@ -37,9 +37,10 @@
           </a-form-item>
         </a-col>
         <a-col :span="9">
-          <a-form-item label="招聘会时间" name="jobFairDate" style="overflow: hidden;line-height: 35px;height: 35px;"
-                       :label-col="{span:7}">
-            <a-range-picker v-model:value="jobFairDate" :placeholder="['开始日期', '结束日期']" format="YYYY-MM-DD"
+          <a-form-item label="招聘会时间" name="jobFairDate"
+                       :label-col="{span:7}" :rules="[{ required: true,message:'请选择招聘会时间!' }]">
+            <a-range-picker v-model:value="formData.jobFairDate" :placeholder="['开始日期', '结束日期']"
+                            format="YYYY-MM-DD"
                             @change="onJobFairDateChange"/>
           </a-form-item>
         </a-col>
@@ -125,8 +126,8 @@
       </a-row>
       <a-divider orientation="left">其他</a-divider>
       <b-upload-file :fileRefId="formData.jobfairsID" :readonly="false" :multiple="true"
-                     :setFileList="setFileList" :accept="'.pdf,.png,.jpg,.jpeg,.xls,.xlsx,.doc,.docx,.txt,.ppt,.pptx'"
-                     :disabled="opCategory==3"></b-upload-file>
+                     :setFileList="setFileList"
+                     :accept="'.pdf,.png,.jpg,.jpeg,.xls,.xlsx,.doc,.docx,.txt,.ppt,.pptx'"></b-upload-file>
       <a-form-item class="buttom-btns">
         <a-button @click="onClose">取消</a-button>
         <a-button type="primary" html-type="submit">提交</a-button>
@@ -156,6 +157,7 @@ const formData = reactive({
   cbUnit: "",
   address: "",
   companyCount: "",
+  displayCount: "",
   startTime: "",
   endTime: "",
   userName: "",
@@ -166,12 +168,13 @@ const formData = reactive({
   longitude: "",
   latitude: "",
   carLine: "",
-  jobFariDesc: ""
+  jobFariDesc: "",
+  jobFairDate: new Array<any>()
 })
 const bodyLoading = ref(false);
-const jobFairDate = ref([]);
 const regionList = ref<SelectProps['options']>();
 const fileList = ref([]);
+const isAllowCommit = ref<boolean>(false);
 
 // 加载数据
 async function loadData(jobFairId: string) {
@@ -181,28 +184,45 @@ async function loadData(jobFairId: string) {
     Object.keys(result).forEach((key) => {
       formData[key] = result[key];
     })
-    jobFairDate.value = [];
+    formData.jobFairDate = [];
     if (result.startTime) {
-      jobFairDate.value.push(dayjs(result.startTime, 'YYYY-MM-DD'));
+      formData.jobFairDate.push(dayjs(result.startTime, 'YYYY-MM-DD'));
     }
     if (result.endTime) {
-      jobFairDate.value.push(dayjs(result.endTime, 'YYYY-MM-DD'));
+      formData.jobFairDate.push(dayjs(result.endTime, 'YYYY-MM-DD'));
     }
   }).finally(() => {
     bodyLoading.value = false;
   })
 }
 
+const mobileValidate = () => {
+  isAllowCommit.value = true;
+  const mobileReg = /^1[3|4|5|6|7|8|9]\d{9}$/;
+  const landlineReg = /[0-9]{3,4}[-][0-9]{8}/;
+  if (!mobileReg.test(formData.userMrobile) && !landlineReg.test(formData.userMrobile)) {
+    message.error("输入的联系电话有误!");
+    isAllowCommit.value = false;
+  }
+}
+
 // 提交
 function onFinish() {
+  isAllowCommit.value = true;
+
   if (!formData.startTime || !formData.endTime) {
     message.error("请选择完整的开始与结束时间!");
     return;
   }
 
-  saveJobFari(formData).then(() => {
-    onClose()
-  })
+  if (formData.userMrobile) {
+    mobileValidate()
+  }
+  if (isAllowCommit.value) {
+    saveJobFari(formData).then(() => {
+      onClose(1)
+    })
+  }
 }
 
 // 取消
@@ -216,13 +236,13 @@ const getRegionList = async function () {
   regionList.value = await getRegionCodeList();
 }
 
-const onJobFairDateChange = (dateString) => {
-  jobFairDate.value = dateString;
+const onJobFairDateChange = (dateString: any) => {
+  formData.jobFairDate = dateString;
   formData.startTime = dateString ? dateString[0].format("YYYY-MM-DD") : '';
   formData.endTime = dateString ? dateString[1].format("YYYY-MM-DD") : '';
 }
 
-const setFileList = (files) => {
+const setFileList = (files: any) => {
   fileList.value = files;
 };
 

+ 9 - 3
vue/src/views/jobUserManager/jobFair/index.vue

@@ -13,12 +13,12 @@
           </a-form-item>
         </a-col>
         <a-col :span="6">
-          <a-form-item label="所属区县" :label-col="{ span: 8 }" name="siteID">
+          <a-form-item label="所属区县" :label-col="{ span: 8 }" name="regionCode">
             <a-select
               ref="select"
               v-model:value="searchParams.regionCode"
               :options="regionList"
-              :field-names="{ label: 'siteName', value: 'siteID' }"
+              :field-names="{ label: 'name', value: 'code' }"
               :allow-clear="true"
               @change="loadData"
             >
@@ -101,7 +101,7 @@
 
 <script setup lang="ts">
 import {DownOutlined, ExclamationCircleOutlined, UpOutlined} from "@ant-design/icons-vue";
-import {computed, createVNode, onMounted, reactive, ref} from "vue";
+import {computed, createVNode, onActivated, onMounted, reactive, ref} from "vue";
 import {type FormInstance, message, Modal, type TableColumnsType, type TableProps} from "ant-design-vue";
 import {get} from "@/api/common";
 import {deleteJobFair, getJobFairList} from "@/api/jobUserManager/jobFair";
@@ -246,6 +246,12 @@ onMounted(() => {
   getRegionList()
   loadData();
 })
+
+onActivated(() => {
+  if (history.state.params?.reload) {
+    loadData();
+  }
+})
 </script>
 
 <script lang="ts">