Browse Source

下划线

Xiao_123 4 months ago
parent
commit
ff6989817d

+ 25 - 14
src/components/Enterprise/hotPromoted.vue

@@ -8,7 +8,10 @@
             <v-img :src="item?.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" alt="" width="77" height="77" style="border-radius: 4px;"/>
           </div>
           <div class="company-info cursor-pointer">
-            <h3>{{ formatName(item.enterprise.anotherName || item.enterprise.name) }}</h3>
+            <h3 :ref="el => { if(el) companyNameRefs[index] = el }">
+              {{ formatName(item.enterprise.anotherName || item.enterprise.name) }}
+              <v-tooltip v-if="isTextOverflow[index]" activator="parent" location="top">{{ formatName(item.enterprise.anotherName || item.enterprise.name) }}</v-tooltip>
+            </h3>
             <p>
               {{ item?.enterprise.scaleName }}
               <span class="septal-line" v-if="item.enterprise.industryName"></span>
@@ -30,8 +33,8 @@
               </div>
               <div style="height: 24px; overflow: hidden; color: #808080;">
                 <span v-for="(j, index) in desc" :key="index">
-                  <span v-if="k[j.value] || (j.value === 'areaName' && !k.areaId)" class="mr-1 font-size-13">{{ (j.value === 'areaName' && !k.areaId) ? '全国' : k[j.value] }}</span>
-                  <span v-if="k[j.value] && index !== desc.length - 1 && (k[desc[index + 1].value] || (j.value === 'areaName' && !k.areaId))" class="septal-line ml-1"></span>
+                  <span v-if="k[j] || (j === 'areaName' && !k.areaId)" class="mr-1 font-size-13">{{ (j === 'areaName' && !k.areaId) ? '全国' : k[j] }}</span>
+                  <span v-if="k[j] && index !== desc.length - 1 && (k[desc[index + 1]] || (j === 'areaName' && !k.areaId))" class="septal-line ml-1"></span>
                 </span>
                 <span class="font-size-13 float-right">{{ timesTampChange(k.updateTime, 'Y-M-D') }}</span>
               </div>
@@ -39,7 +42,7 @@
           </li>
         </ul>
         <div class="moreBtn d-flex align-center justify-center" @click.stop="handleMoreEnterprise(item)" @mouseenter="item.active = true" @mouseleave="item.active = false">
-          <span :style="{'text-decoration': item.active ? 'underline' : 'none'}">{{ $t('position.moreBtn') }}</span>
+          <span :style="{'border-bottom': item.active ? '1px solid #fff' : 'none'}">{{ $t('position.moreBtn') }}</span>
           <v-icon>mdi-menu-right</v-icon>
         </div>
       </div>
@@ -48,7 +51,7 @@
 </template>
 
 <script setup name="hotPromoted">
-import { ref, watch } from 'vue'
+import { ref, watch, nextTick } from 'vue'
 import { timesTampChange } from '@/utils/date'
 import { formatName } from '@/utils/getText'
 import { jumpToEnterpriseDetail } from '@/utils/position'
@@ -59,29 +62,37 @@ const props = defineProps({
     default: () => []
   }
 })
+
+const companyNameRefs = ref({})
+const isTextOverflow = ref({})
+
+// 检查文本是否溢出
+const checkTextOverflow = () => {
+  Object.entries(companyNameRefs.value).forEach(([index, element]) => {
+    if (element) {
+      isTextOverflow.value[index] = element.scrollWidth > element.clientWidth
+    }
+  })
+}
+
 const list = ref([])
 watch(
   () => props.items, 
   (newVal) => {
     list.value = newVal
+    nextTick(() => {
+      checkTextOverflow()
+    })
   },
   { immediate: true },
   { deep: true }
 )
-const desc = [
-  { value: 'areaName' },
-  { value: 'eduName' },
-  { value: 'expName' }
-]
+const desc = ['areaName', 'eduName', 'expName']
 
 // 职位详情
 const handleClickPosition = (k) => {
   window.open(`/recruit/personal/position/details/${k.id}`)
 }
-// 企业详情
-const handleClickEnterprise = (item) => {
-  window.open(`/recruit/personal/company/details/${item.enterprise.id}?key=briefIntroduction`)
-}
 
 // 查看更多职位
 const handleMoreEnterprise = (item) => {

+ 2 - 3
src/layout/personal/navBar.vue

@@ -31,9 +31,8 @@
           </div>
         </div>
         
-        <div class="d-flex user-nav">
+        <div class="d-flex" style="height: 50px;">
           <div class="btns d-flex align-center" v-if="!getToken() && showLoginBtn">
-            <!-- <v-btn class="half-button" border color="primary" size="small" @click="handleLogin">{{ $t('login.loginOrRegister') }}</v-btn> -->
             <v-btn color="primary" style="color: #fff !important; background-color: #00897B;" @click="handleLogin">{{ $t('login.loginOrRegister') }}</v-btn>
           </div>
           
@@ -114,7 +113,7 @@
         <v-radio v-for="item in enterpriseList" :key="item.enterpriseId" color="primary" :label="item.enterpriseName" :value="item.enterpriseId"></v-radio>
       </v-radio-group>
       <div class="text-end pr-5 pt-5">
-        <span class="color-error cursor-pointer text-decoration-underline" @click="newRegistering">{{ btnType ? '都不是我要的?去注册新企业' : '查看申请进度' }}</span>
+        <span class="color-error cursor-pointer border-bottom-error" @click="newRegistering">{{ btnType ? '都不是我要的?去注册新企业' : '查看申请进度' }}</span>
       </div>
     </CtDialog>
   </div>

+ 20 - 2
src/styles/index.css

@@ -133,6 +133,18 @@
   font-size: 20px;
 }
 
+.border-bottom-primary {
+  border-bottom: 1px solid var(--v-primary-base);
+}
+
+.border-bottom-error {
+  border-bottom: 1px solid var(--v-error-base);
+}
+
+.border-bottom-warning {
+  border-bottom: 1px solid var(--v-warning-base);
+}
+
 .buttons {
   height: 36px;
   width: 224px;
@@ -178,6 +190,13 @@
   overflow: hidden;
 }
 
+.ellipsis-2 {
+  display: -webkit-box;
+  -webkit-box-orient: vertical;
+  -webkit-line-clamp: 2;
+  overflow: hidden;
+}
+
 .septal-line {
   display: inline-block;
   width: 1px;
@@ -252,8 +271,7 @@
 
 .commonHover:hover {
   color: #00887A;
-  font-weight: 700;
-  text-decoration: underline;
+  border-bottom: 2px solid #00887A;
 }
 
 .commonHover2:hover {

File diff suppressed because it is too large
+ 0 - 0
src/styles/index.min.css


+ 7 - 2
src/styles/index.scss

@@ -61,6 +61,10 @@
 .font-size-19 { font-size: 19px; }
 .font-size-20 { font-size: 20px; }
 
+.border-bottom-primary { border-bottom: 1px solid var(--v-primary-base); }
+.border-bottom-error { border-bottom: 1px solid var(--v-error-base); }
+.border-bottom-warning { border-bottom: 1px solid var(--v-warning-base); }
+
 // 长按钮
 .buttons {
   height: 36px;
@@ -195,8 +199,9 @@
 
 .commonHover:hover {
   color: #00887A;
-  font-weight: 700;
-  text-decoration: underline;
+  // font-weight: 700;
+  // text-decoration: underline;
+  border-bottom: 2px solid #00887A;
 }
 .commonHover2:hover {
   color: #00887A;

+ 2 - 6
src/styles/personal/navBar.css

@@ -139,12 +139,8 @@
 
 .active-route {
   color: #008979;
-  text-decoration: underline !important;
   font-weight: 700;
-}
-
-.user-nav a {
-  text-decoration: none;
+  border-bottom: 2px solid #008979;
 }
 
 .menuList {
@@ -160,5 +156,5 @@
 .menuList-first-title:hover {
   color: #008979;
   font-weight: 700;
-  text-decoration: underline;
+  border-bottom: 2px solid #008979;
 }

File diff suppressed because it is too large
+ 0 - 0
src/styles/personal/navBar.min.css


+ 2 - 32
src/styles/personal/navBar.scss

@@ -128,44 +128,14 @@
 }
 .active-route {
   color: #008979;
-  text-decoration: underline !important; 
   font-weight: 700;
-} 
-.user-nav {
-  // position: absolute;
-  // right: 0;
-  // display: inline-block;
-  // color: var(--v-primary-base);
-  // height: 49px;
-  // line-height: 49px;
-}
-.user-nav .btns .btn-outline {
-  // border-radius: 8px;
-  // text-align: center;
-  // font-size: 14px;
-  // height: 26px;
-  // line-height: 26px;
-  // min-width: 0;
-  // padding: 0 11px;
-  // margin-left: 14px;
-  // background-color: transparent;
-}
-.user-nav .btn {
-  // display: inline-block;
-  // box-sizing: content-box;
-  // border: 1px solid var(--v-primary-base);
-  // letter-spacing: 1px;
-  // cursor: pointer;
-}
-.user-nav a {
-  text-decoration: none;
+  border-bottom: 2px solid #008979;
 }
 
 .menuList {
   display: flex;
   height: 50px;
   line-height: 55px;
-  // align-items: center;
   div {
     margin-left: 10px;
   }
@@ -173,5 +143,5 @@
 .menuList-first-title:hover {
   color: #008979;
   font-weight: 700;
-  text-decoration: underline;
+  border-bottom: 2px solid #008979;
 }

+ 7 - 11
src/views/login/index.vue

@@ -53,9 +53,9 @@
               </v-window-item> -->
             </v-window>
           </div>
-          <div class="font-size-14 tips">
-            <span class="float-left color-666 cursor-pointer" v-if="tab === 2" @click="router.push(isEnterpriseLogin ? '/forgotPasswordEnt': '/forgotPassword')">忘记密码</span>
-            <span class="float-right color-error cursor-pointer text-decoration-underline" @click="router.push('/register/selected')">还没有登录账户?去注册</span>
+          <div class="font-size-14">
+            <span class="float-left tips color-666 cursor-pointer" v-if="tab === 2" @click="router.push(isEnterpriseLogin ? '/forgotPasswordEnt': '/forgotPassword')">忘记密码</span>
+            <span class="float-right color-error cursor-pointer border-bottom-error" @click="router.push('/register/selected')">还没有登录账户?去注册</span>
           </div>
           <v-btn :loading="loginLoading" color="primary" class="white--text mt-5" min-width="350" @click.stop="handleLogin">
             {{ $t('login.login') }}
@@ -293,13 +293,12 @@ const windowOpen = (url) => {
   position: absolute;
   top: 0;
   right: 0;
-  padding: 15px 44px;
-  text-decoration: underline;
+  margin: 15px 44px;
+  border-bottom: 1px solid orange;
   color: orange; 
   cursor: pointer;
   font-weight: 400;
   &:hover {
-    text-decoration: underline;
     color: #fbb93e; 
   }
 }
@@ -309,7 +308,6 @@ const windowOpen = (url) => {
   background-color: #fff;
   border-radius: 8px;
   padding: 36px 50px;
-  // margin-right: 12px;
 }
 .left {
   display: flex;
@@ -321,10 +319,8 @@ const windowOpen = (url) => {
   justify-content: center;
   align-items: center;
 }
-.tips {
-  span:hover {
-    text-decoration: underline;
-  }
+.tips:hover {
+  border-bottom: 1px solid #666;
 }
 .color {
   color: var(--v-primary-base); 

+ 1 - 1
src/views/mall copy/index.vue

@@ -14,7 +14,7 @@
           <span v-if="getToken()" style="font-size: 42px; color: #10897bba; line-height: 50px;" class="ml-10 cursor-pointer" @click="router.push('/recruit/personal/personalCenter/wallet?key=1')">{{ accountData.point }}</span>
           <span v-else style="font-size: 30px; line-height: 50px;" class="ml-10 cursor-pointer color-primary" @click="handleLogin">请先登录</span>
         </div>
-        <div v-if="getToken()" class="color-666 font-size-14 cursor-pointer text-end mr-5 commonHover" @click="handleToTaskCenter">赚取积分</div>
+        <div v-if="getToken()" class="color-666 font-size-14 cursor-pointer text-end mr-5 commonHover2" @click="handleToTaskCenter">赚取积分</div>
       </div>
       <v-tabs v-model="tab" class="mt-1" align-tabs="start" color="primary" bg-color="#fff" @update:model-value="getPositionList">
         <v-tab :value="1">{{ $t('points.exchange') }}</v-tab>

+ 1 - 1
src/views/mall/components/GoodsItem/index.vue

@@ -12,7 +12,7 @@
           <span v-if="item.count" class="color-999 font-size-13 ml-1">x {{ item.count }}</span>
         </p>
         <p v-if="lottery && lottery.length" class="font-size-14" @click.stop="router.replace('/recruit/personal/personalCenter/tradeOrder?key=3')">
-          <span class="color-primary text-decoration-underline">奖品:{{ lottery.map(e => e.prize.name).join('、') }} </span>
+          <span class="color-primary border-bottom-primary">奖品:{{ lottery.map(e => e.prize.name).join('、') }} </span>
           <span v-if="!lottery[0].record.receiveInfo" class="color-999">(10天内未领取的,则视为主动放弃当前奖品)</span>
         </p>
       </div>

+ 1 - 1
src/views/recruit/enterprise/positionManagement/index.vue

@@ -17,7 +17,7 @@
       </div>
       <div class="color-666 font-size-14">
         <span>可发布职位数 <strong class="color-primary">{{ baseInfo?.entitlement?.publishJobCount || 0 }}</strong> 个, </span>
-        <span class="color-primary text-decoration-underline cursor-pointer" @click="router.push('/recruit/enterprise/membershipPackage?fromName=position')">可发布职位数不够用?点击去购买</span>
+        <span class="color-primary border-bottom-primary cursor-pointer" @click="router.push('/recruit/enterprise/membershipPackage?fromName=position')">可发布职位数不够用?点击去购买</span>
       </div>
       
       <div class="mt-3">

+ 1 - 4
src/views/recruit/enterprise/resume/components/screen.vue

@@ -158,10 +158,7 @@ watch(
 <style scoped lang="scss">
 .reset-text {
   font-size: 14px;
-  color: var(--color-666);
-  &:hover {
-    color: var(--v-primary-base);
-  }
+  color: var(--v-primary-base);
 }
 :deep(.v-btn__content) {
   display: block;

+ 1 - 1
src/views/recruit/enterprise/search/retrieval/index.vue

@@ -16,7 +16,7 @@
         <div>
           <v-chip v-for="k in position" :key="k.id" label class="mr-3" closable @click:close="handleClose(k)">{{ k.nameCn }}</v-chip>
         </div>
-        <div class="text-end font-size-15 color-999 cursor-pointer color-999 clear" @click="handleClear">清空筛选条件</div>
+        <div class="text-end font-size-15 cursor-pointer color-primary clear" @click="handleClear">清空筛选条件</div>
       </div>
       <div class="text-center mt-3">
         <v-btn class="half-button" color="primary" @click="handleConfirm">搜 索</v-btn>

+ 1 - 1
src/views/recruit/personal/PersonalCenter/accountSettings/editPassword.vue

@@ -5,7 +5,7 @@
     <div v-if="!showEdit" class="login-user mb-4">
       当前登录账号: 
       <span>{{ userInfo.phone }}</span>
-      <span class="color-primary ml-5 text-decoration-underline cursor-pointer" @click.stop="showEdit = true">修改密码</span>
+      <span class="color-primary ml-5 cursor-pointer border-bottom-primary" @click.stop="showEdit = true">修改密码</span>
     </div>
     <div class="editPageBox">
       <editPasswordPage

+ 2 - 2
src/views/recruit/personal/PersonalCenter/jobFeedback/components/seenMe.vue

@@ -38,10 +38,10 @@
     </div>
     <div v-else class="mt-8 tips">
       <span class="color-error" v-if="userInfo?.vipExpireDate > Date.now() && !userInfo?.entitlement?.viewersList">
-        当前会员套餐的福利不包含谁看过我,<span class="text-decoration-underline cursor-pointer" @click.stop="goBuy">去升级</span>
+        当前会员套餐的福利不包含谁看过我,<span class="cursor-pointer border-bottom-error" @click.stop="goBuy">去升级</span>
       </span>
       <span class="color-error" v-if="!userInfo?.vipExpireDate || (userInfo?.vipExpireDate && userInfo?.vipExpireDate < Date.now())">
-        谁看过我为会员福利内容,<span class="text-decoration-underline cursor-pointer" @click.stop="goBuy">去开通</span>
+        谁看过我为会员福利内容,<span class="cursor-pointer border-bottom-error" @click.stop="goBuy">去开通</span>
       </span>
     </div>
   </div>

+ 2 - 2
src/views/recruit/personal/PersonalCenter/resume/template/index.vue

@@ -21,10 +21,10 @@
       </div>
       <div v-else class="mt-8 tips">
         <span class="color-error" v-if="userStore.userInfo?.vipExpireDate > Date.now() && !userStore.userInfo?.entitlement?.resumeTemplate">
-          当前会员套餐的福利不包含简历模板,<span class="text-decoration-underline cursor-pointer" @click="goBuy">去升级</span>
+          当前会员套餐的福利不包含简历模板,<span class="cursor-pointer border-bottom-error" @click="goBuy">去升级</span>
         </span>
         <span class="color-error" v-if="!userStore.userInfo?.vipExpireDate || (userStore.userInfo?.vipExpireDate && userStore.userInfo?.vipExpireDate < Date.now())">
-          简历模板为会员福利内容,<span class="text-decoration-underline cursor-pointer" @click="goBuy">去开通</span>
+          简历模板为会员福利内容,<span class="cursor-pointer border-bottom-error" @click="goBuy">去开通</span>
         </span>
       </div>
     </div>

+ 1 - 1
src/views/recruit/personal/PersonalCenter/tradeOrder/components/detail.vue

@@ -24,7 +24,7 @@
           <template #spuName="{ item }">
             <span class="color-primary cursor-pointer" @click="handleToGoodsDetail(item)">{{ item.spuName }}</span>
             <p v-if="order.lottery && order.lottery.length" class="color-999  mt-1 " @click.stop="router.push('/recruit/personal/personalCenter/tradeOrder?key=3')">
-              <span class="color-primary cursor-pointer text-decoration-underline">奖品:{{ order.lottery.map(e => e.prize.name).join('、') }}</span>
+              <span class="color-primary cursor-pointer border-bottom-primary">奖品:{{ order.lottery.map(e => e.prize.name).join('、') }}</span>
               <span v-if="!order.lottery[0].record.receiveInfo" class="color-999">(10天内未领取的,则视为主动放弃当前奖品)</span>
             </p>
           </template>

+ 2 - 2
src/views/recruit/personal/PersonalCenter/wallet/myBalance/index.vue

@@ -10,8 +10,8 @@
           <div class="item-value">
             {{ userAccount?.balance && userAccount?.balance > 0 ? (userAccount?.balance / 100.0).toFixed(2) : 0 }}
             <span
-              class="text-decoration-underline cursor-pointer"
-              style="color: #666; font-size: 16px;"
+              class="cursor-pointer"
+              style="color: #666; font-size: 16px; border-bottom: 1px solid #666"
               @click="handleRecharge"
             >充值</span>
           </div>

+ 4 - 3
src/views/register/person.vue

@@ -6,7 +6,9 @@
       <div class="mt-10">
         <phoneFrom ref="phoneRef" openVerify @handleEnter="handleRegister" :phone="phone"></phoneFrom>
       </div>
-      <div v-if="!isMobile" class="font-size-14 tips color-primary cursor-pointer text-end" @click="router.push('/login')">已有账号?去登录</div>
+      <div v-if="!isMobile" class="font-size-14 text-end">
+        <span class="tips color-primary cursor-pointer" @click="router.push('/login')">已有账号?去登录</span>
+      </div>
       <v-btn :loading="loading" color="primary" class="white--text mt-5" min-width="370" @click="handleRegister">{{ isCompany ? '下一步' : '注册' }}</v-btn>
       <div class="login-tips mt-3" v-if="!isCompany">
         <v-icon v-if="isAgree" size="25" color="primary" class="mr-1" @click="isAgree = !isAgree">mdi-check-circle</v-icon>
@@ -120,12 +122,11 @@ const windowOpen = (url) => {
 .login-tips {
   width: 100%;
   font-size: 14px;
-  // text-align: center;
   display: flex;
   justify-content: center;
   align-items: center;
 }
 .tips:hover {
-  text-decoration: underline;
+  border-bottom: 1px solid var(--v-primary-base);
 }
 </style>

+ 7 - 6
src/views/register/select.vue

@@ -4,13 +4,13 @@
     <div class="register-content">
       <h2 style="color: #666; font-weight: 400;">请选择您当前注册的身份</h2>
       <div class="d-flex mt-16">
-        <div style="width: 50%;" class="cursor-pointer item pa-3" @click="handleToRegister('/register/company')">
+        <div style="width: 50%;" class="cursor-pointer item d-flex flex-column justify-center align-center" @click="handleToRegister('/register/company')">
           <v-icon color="primary" size="100">mdi-home-city-outline</v-icon>
-          <div class="color-primary" style="font-size: 24px">企业用户</div>
+          <span class="color-primary" style="font-size: 24px">企业用户</span>
         </div>
-        <div style="width: 50%; border-left: 1px solid #ccc;" class="cursor-pointer item pa-3" @click="handleToRegister('/register/person')">
+        <div style="width: 50%; border-left: 1px solid #ccc;" class="cursor-pointer item d-flex flex-column justify-center align-center" @click="handleToRegister('/register/person')">
           <v-icon color="primary" size="100">mdi-account-plus-outline</v-icon>
-          <div class="color-primary" style="font-size: 24px">个人用户</div>
+          <span class="color-primary" style="font-size: 24px">个人用户</span>
         </div>
       </div>
     </div>
@@ -59,8 +59,9 @@ const handleToRegister = (path) => {
   padding: 90px 62px;
 }
 .item:hover {
-  color: #00897B;
-  text-decoration: underline;
+  span {
+    border-bottom: 1px solid #00897B;
+  }
 }
 .navBar {
   position: absolute;

Some files were not shown because too many files changed in this diff