瀏覽代碼

到期时间长期有效

lifanagju_citu 7 月之前
父節點
當前提交
5a79b72370

+ 7 - 2
src/views/recruit/enterprise/hirePosition/components/add.vue

@@ -70,8 +70,13 @@ const handleSave = async () => {
   const baseInfo = await baseInfoRef.value[0].getQuery()
   if (baseInfo === 'failed') return
   const requirement = await jobRequirementsRef.value[0].getQuery()
-  if (!baseInfo.expireTime || !baseInfo.hirePrice) {
-    Snackbar.warning('请将必填项填写完整')
+  if (!baseInfo.hirePrice) {
+    Snackbar.warning('请填写点数')
+    window.scrollTo({ top: 0, behavior: 'smooth' })
+    return
+  }
+  if (!baseInfo.expireTime && !baseInfo.soFar) {
+    Snackbar.warning('请选择职位过期时间')
     window.scrollTo({ top: 0, behavior: 'smooth' })
     return
   }

+ 34 - 2
src/views/recruit/enterprise/hirePosition/components/baseInfo.vue

@@ -34,6 +34,21 @@
         </v-menu>
         <v-btn v-if="showTemplateBtn" class="ml-3 half-button" color="primary" style="margin-top: 2px;" @click="useJobTemplate(item)">职位模板</v-btn>
       </template>
+      <template #expireTime="{ item }">
+        <div>
+          <v-checkbox-btn
+            v-model="soFar"
+            color="primary"
+            label="长期有效"
+            class="ml-2"
+            :disabled="false"
+            :style="`line-height: ${item.dense === 'default' ? 56 : item.dense === 'comfortable' ? 48 : 40 }px;`"
+            style="width: 110px;"
+            hide-details
+            @update:modelValue="v => handleSoFarChange(v, item)"
+          ></v-checkbox-btn>
+        </div>
+      </template>
     </CtForm>
 
     <CtDialog :visible="show" :widthType="1" titleClass="text-h6" title="众聘岗位规则说明" :footer="false" @close="show = false">
@@ -111,7 +126,8 @@ const items = ref({
       value: null,
       format: 'YYYY-MM-DD',
       labelWidth: 120,
-      label: '到期时间 *'
+      label: '到期时间 *',
+      slotName: 'expireTime',
     },
     {
       type: 'wangEditor',
@@ -152,6 +168,7 @@ watch(
         return
       }
       if (e.noParam) return
+      if (e.key === 'expireTime' && !val[e.key]) return handleSoFarChange(true, e)
       e.value = val[e.key]
       e.change && e.change(e.value)
     })
@@ -221,14 +238,24 @@ const hirePriceChange = (value, key) => {
   }
 }
 
+const soFar = ref(false)
+// 长期有效
+const handleSoFarChange = (bool, item) => {
+  soFar.value = bool
+  item.value = null
+  item.disabled = bool ? true : false
+  item.label = bool ? '到期时间' : '到期时间 *'
+}
+
 const getQuery = async () => {
   const { valid } = await formPageRef.value.formRef.validate()
   if (!valid) return
   const obj = {
+    soFar: soFar.value,
     hire: true
   }
   items.value.options.forEach(e => {
-    if (e.noParam) return
+    if (e.noParam || e.value === null) return
     else obj[e.key] = e.value
   })
   if (!obj.content) {
@@ -239,6 +266,11 @@ const getQuery = async () => {
     Snackbar.warning('请填写岗位要求')
     return 'failed'
   }
+
+if (!obj.expireTime && !soFar.value) {
+  Snackbar.warning('请填写到期时间')
+  return 'failed'
+}
   
   query = Object.assign(query, obj)
   return query

+ 2 - 2
src/views/recruit/enterprise/hirePosition/components/item.vue

@@ -32,9 +32,9 @@
       <div class="bottom pa-5 d-flex justify-space-between align-center">
         <div>
           {{ $t('position.refreshTime') }} :{{ timesTampChange(val.updateTime, 'Y-M-D') }}
-          <span v-if="val.expireTime">
+          <span v-if="tab === 1">
             <span class="septal-line"></span>
-            到期时间:{{ timesTampChange(val.expireTime, 'Y-M-D') }}
+            到期时间:{{ val.expireTime ? timesTampChange(val.expireTime, 'Y-M-D') : '长期有效' }}
           </span>
         </div>
         <div class="d-flex align-center">

+ 2 - 2
src/views/recruit/enterprise/positionManagement/components/item.vue

@@ -48,9 +48,9 @@
       <div class="bottom pa-5 d-flex justify-space-between align-center">
         <div>
           {{ $t('position.refreshTime') }} :{{ timesTampChange(val.updateTime, 'Y-M-D') }}
-          <span v-if="val.expireTime">
+          <span>
             <span class="septal-line"></span>
-            到期时间:{{ timesTampChange(val.expireTime, 'Y-M-D') }}
+            到期时间:{{ val.expireTime ? timesTampChange(val.expireTime, 'Y-M-D') : '长期有效' }}
           </span>
         </div>
         <div class="d-flex">