浏览代码

企业名称

Xiao_123 4 月之前
父节点
当前提交
bbed71b884

+ 2 - 1
src/components/Enterprise/hotPromoted.vue

@@ -8,7 +8,7 @@
             <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>{{ item.enterprise.anotherName || item.enterprise.name }}</h3>
+            <h3>{{ dealEnterpriseName(item.enterprise.anotherName || item.enterprise.name) }}</h3>
             <p>
               {{ item?.enterprise.scaleName }}
               <span class="septal-line" v-if="item.enterprise.industryName"></span>
@@ -50,6 +50,7 @@
 <script setup name="hotPromoted">
 import { ref, watch } from 'vue'
 import { timesTampChange } from '@/utils/date'
+import { dealEnterpriseName } from '@/utils/getText'
 
 const props = defineProps({
   items: {

+ 2 - 1
src/components/Enterprise/info.vue

@@ -4,7 +4,7 @@
     <div style="height: 50px; line-height: 50px;">
       <v-img class="float-left" :src="props.info.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" :width="45" height="45"></v-img>
       <div class="ml-3 float-left">
-        <p class="enterprise-name cursor-pointer" @click="handleEnterprise(0)">{{ props.info.enterprise.anotherName }}</p>
+        <p class="enterprise-name cursor-pointer" @click="handleEnterprise(0)">{{ dealEnterpriseName(props.info.enterprise.anotherName || props.info.enterprise.name) }}</p>
         <!-- <v-icon :color="statusInfo.color" size="20">{{ statusInfo.mdi }}</v-icon>
         <span :style="{'color': statusInfo.color,'font-size': '14px'}">{{ statusInfo.label }}</span> -->
       </div>
@@ -25,6 +25,7 @@
 defineOptions({ name: 'enterprise-info' })
 import { ref } from 'vue'
 import { dealDictObjData } from '@/utils/position'
+import { dealEnterpriseName } from '@/utils/getText'
 // import { getEnterpriseAuthDetails } from '@/api/position'
 
 const props = defineProps({

+ 5 - 2
src/components/FormUI/TextInput/index.vue

@@ -46,7 +46,10 @@ const props = defineProps({item: Object, modelValue: [String, Number]})
 const emit = defineEmits(['update:modelValue', 'change', 'appendClick', 'appendInnerClick', 'enter', 'blur', 'focus'])
 const item = props.item
 const inputType = ref(item.type === 'phoneNumber' ? 'number' : item.type)
-const value = ref(props.modelValue)
+
+const value = ref('')
+if (props.modelValue) value.value = props.modelValue.replace(/&amp;/g, '&')
+
 const searchDebouncedTime = item?.searchDebouncedTime === 0 ? ref(0) : ref(500)
 if (inputType.value === 'number' && item.integer) searchDebouncedTime.value = 0
 
@@ -62,7 +65,7 @@ const valueDeal = (val) => {
 
 watch(() => props.modelValue, (newVal) => {
   const dealData = valueDeal(newVal)
-  value.value = dealData
+  value.value = dealData ? dealData.replace(/&amp;/g, '&') : ''
 })
 
 const modelValueUpDate = (val) => {

+ 2 - 1
src/components/Position/item.vue

@@ -37,7 +37,7 @@
                 <v-img :src="item.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" />
               </v-avatar>
               <span class="names ml-2 font-size-14 ellipsis" style="max-width: 88%;">
-                {{ item.anotherName }}
+                {{ dealEnterpriseName(item.anotherName || item.enterpriseName) }}
                 <span class="color-999 font-size-13 ml-3">
                   <span>{{ item.industryName }}</span>
                   <span class="septal-line" v-if="item.industryName && item.scaleName"></span>
@@ -57,6 +57,7 @@ defineOptions({ name: 'position-card-item' })
 import { ref, watch } from 'vue'
 import { commissionCalculation } from '@/utils/position'
 import { timesTampChange } from '@/utils/date'
+import { dealEnterpriseName } from '@/utils/getText';
 
 const props = defineProps({
   items: {

+ 2 - 1
src/components/Position/longCompany.vue

@@ -6,7 +6,7 @@
           <div class="float-left mr-5">
             <v-img :src="item.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" :alt="item.anotherName" :width="40" style="height: 40px;border-radius: 4px;"/>
           </div>
-          <h3 :class="{'default-active': item.active }" class="cursor-pointer" @click="handleClickEnterprise(item, 'briefIntroduction')">{{ item.anotherName }}</h3>
+          <h3 :class="{'default-active': item.active }" class="cursor-pointer" @click="handleClickEnterprise(item, 'briefIntroduction')">{{ dealEnterpriseName(item.anotherName || item.name) }}</h3>
           <p>{{ item.industryName }}<span v-if="item.industryName && item.scaleName" class="mx-2">|</span>{{ item.scaleName }}</p>
         </div>
         <div v-if="item.active">
@@ -33,6 +33,7 @@
 defineOptions({ name: 'long-company-card'})
 import Snackbar from '@/plugins/snackbar'
 import { useI18n } from '@/hooks/web/useI18n'
+import { dealEnterpriseName } from '@/utils/getText'
 import { getEnterpriseUnsubscribe } from '@/api/enterprise'
 
 const emits = defineEmits(['refresh'])

+ 2 - 1
src/components/Position/longStrip.vue

@@ -35,7 +35,7 @@
             <v-img width="50" height="50" :src="val.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/7.png'"></v-img>
           </div>
           <div class="ml-3">
-            <div class="cursor-pointer info-name" @click="handleToEnterprise(val)">{{ val.enterprise.anotherName }}</div>
+            <div class="cursor-pointer info-name" @click="handleToEnterprise(val)">{{ dealEnterpriseName(val.enterprise.anotherName || val.enterprise.name) }}</div>
             <div class="mt-3 ellipsis color-666 font-size-13" style="max-width: 260px;">
               <span v-for="(k, i) in desc" :key="k">
                 {{ val.enterprise[k] }}
@@ -65,6 +65,7 @@ import loginPage from '@/views/common/loginDialog.vue'
 import { getToken } from '@/utils/auth'
 import { checkPersonBaseInfo } from '@/utils/check'
 import dialogExtend from '@/plugins/dialogExtend'
+import { dealEnterpriseName } from '@/utils/getText'
 
 const emits = defineEmits(['refresh'])
 const { t } = useI18n()

+ 3 - 1
src/components/PositionLongStrip/item.vue

@@ -38,7 +38,7 @@
         <div class="company-info">
           <v-hover>
             <template v-slot:default="{ isHovering, props }">
-              <h3 v-bind="props" :class="{'default-active': isHovering }" class="title1">{{ item.enterprise.anotherName }}</h3>
+              <h3 v-bind="props" :class="{'default-active': isHovering }" class="title1">{{ dealEnterpriseName(item.enterprise.anotherName, item.enterprise.name) }}</h3>
             </template>
           </v-hover>
           <p class="mt-2">
@@ -74,6 +74,8 @@ import { commissionCalculation } from '@/utils/position'
 defineOptions({ name: 'long-strip-position-card-item' })
 import { ref, watch } from 'vue'
 import { getUserAvatar } from '@/utils/avatar'
+import { dealEnterpriseName } from '@/utils/getText'
+
 const props = defineProps({
   items: {
     type: Object,

+ 2 - 1
src/layout/company/navBar.vue

@@ -15,7 +15,7 @@
         <div class="d-flex user-nav align-center">
           <div class="d-flex align-center cursor-pointer">
             <v-img @click="enterpriseClick(2)" rounded width="40" height="40" :src="baseInfo?.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" ></v-img>
-            <span @click="enterpriseClick(1)" class="ml-3 commonHover">{{ baseInfo?.enterpriseAnotherName || baseInfo?.enterpriseName || '--' }}</span>
+            <span @click="enterpriseClick(1)" class="ml-3 commonHover">{{ dealEnterpriseName(baseInfo?.enterpriseAnotherName || baseInfo?.enterpriseName) }}</span>
           </div>
           <div class="ml-3 cursor-pointer border-left border-right px-3 commonHover" @click="handleLogout(false)">我要求职</div>
           <div class="d-flex align-center px-3 border-right cursor-pointer commonHover" @click="router.push('/recruit/enterprise/membershipPackage?key=1')">
@@ -92,6 +92,7 @@ import { useRouter } from 'vue-router'; const router = useRouter()
 import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
 import MessageNotification from '../message.vue'
 import { getUserAvatar } from '@/utils/avatar'
+import { dealEnterpriseName } from '@/utils/getText';
 defineOptions({ name: 'personal-navbar' })
 
 defineProps({

+ 5 - 0
src/utils/getText.js

@@ -52,3 +52,8 @@ export const dealCanBeInputtedSave = (formItem, params) => {
   }
   else { params[formItem.key] = formItem.value; params[formItem.itemTextName] = formItem[formItem.itemTextName] }
 }
+
+// 企业名称处理
+export const dealEnterpriseName = (text) => {
+  return text ? text.replace(/&amp;/g, '&') : ''
+}

+ 2 - 1
src/views/publicRecruitment/components/table.vue

@@ -27,6 +27,7 @@
 <script setup>
 defineOptions({ name: 'myPublicRecruitment-table-page'})
 import { timesTampChange } from '@/utils/date'
+import { dealEnterpriseName } from '@/utils/getText'
 import { commissionCalculation } from '@/utils/position'
 
 const emit = defineEmits(['page'])
@@ -39,7 +40,7 @@ defineProps({
 
 const headers = [
   { title: '牛人', value: 'sendPerson.name', key: 'name', sortable: false },
-  { title: '应聘公司', key: 'enterprise.anotherName', sortable: false },
+  { title: '应聘公司', key: 'enterprise.anotherName', sortable: false, value: item => dealEnterpriseName(item.enterprise.anotherName || item.enterprise.name) },
   { title: '应聘职位', key: 'job', value: item => item?.job?.name, sortable: false },
   { title: '赏金', key: 'hirePrice', sortable: false },
   { title: '岗位薪资', key: 'salary', value: item => item?.job?.payFrom && item?.job?.payTo ? `${item?.job?.payFrom ? item?.job?.payFrom + '-' : ''}${item?.job?.payTo}` : '面议', sortable: false },

+ 2 - 1
src/views/recruit/components/message/components/chatting.vue

@@ -18,7 +18,7 @@
           <template v-if="info.enterpriseId">
             <span>{{ info.postNameCn }}</span>
             <span v-if="info.postNameCn && info.enterpriseAnotherName" class="septal-line"></span>
-            <span>{{ info.enterpriseAnotherName }}</span>
+            <span>{{ dealEnterpriseName(info.enterpriseAnotherName) }}</span>
           </template>
         </p>
       </div>
@@ -240,6 +240,7 @@ import { useI18n } from '@/hooks/web/useI18n'
 import { useRouter } from 'vue-router';
 import { getDict } from '@/hooks/web/useDictionaries'
 import { getUserAvatar } from '@/utils/avatar'
+import { dealEnterpriseName } from '@/utils/getText'
 
 import { useUserStore } from '@/store/user'
 const isEnterprise = inject('isEnterprise')

+ 2 - 1
src/views/recruit/components/message/index.vue

@@ -46,7 +46,7 @@
                 <div v-if="!isEnterprise" class="mt-2 d-flex align-center">
                   {{ title }}
                   <div class="ml-3 color-666 font-size-14 enterprise-name ellipsis" :style="{'color': val.channel.channelID === info?.channel?.channelID ? '#00897B' : '#666'}">
-                    {{ val.userInfoVo?.userInfoResp?.enterpriseAnotherName }}
+                    {{ dealEnterpriseName(val.userInfoVo?.userInfoResp?.enterpriseAnotherName) }}
                     <span class="line" v-if="val.userInfoVo?.userInfoResp?.postNameCn && val.userInfoVo?.userInfoResp?.enterpriseAnotherName"></span>
                     {{ val.userInfoVo?.userInfoResp?.postNameCn }}
                   </div>
@@ -189,6 +189,7 @@ import { saveInterviewInvite } from '@/api/recruit/enterprise/interview'
 import { savePersonResumeCv } from '@/api/recruit/personal/resume'
 import { userInterviewInviteReject, userInterviewInviteConsent } from '@/api/recruit/personal/personalCenter'
 import { getPersonResumeCv } from '@/api/recruit/personal/resume'
+import { dealEnterpriseName } from '@/utils/getText'
 
 import { useIMStore } from '@/store/im'
 import { useUserStore } from '@/store/user'

+ 4 - 2
src/views/recruit/enterprise/systemManagement/groupAccount/components/record.vue

@@ -23,7 +23,9 @@ import { ref } from 'vue'
 import { useI18n } from '@/hooks/web/useI18n'; const { t } = useI18n()
 import { timesTampChange } from '@/utils/date'
 import { enterpriseInviteRecordPage } from '@/api/recruit/enterprise/enterpriseInvite.js'
+import { dealEnterpriseName } from '@/utils/getText';
 defineOptions({name: 'groupAccount-component-record'})
+
 const props = defineProps({
   inviteType: {
     type: [String, Number],
@@ -58,9 +60,9 @@ const getData = async () => {
     const { list, total: number } = await enterpriseInviteRecordPage(query.value)
     tableData.value = list.map(e => {
       const showInfo = {
-        currentAccountEnterpriseAnotherName: info?.enterpriseAnotherName || '--',
+        currentAccountEnterpriseAnotherName: dealEnterpriseName(info?.enterpriseAnotherName) || '--',
         currentAccountUserName: info?.name || '--',
-        name: props.inviteType - 0 ? e?.enterpriseUser?.enterpriseName : e?.enterpriseUser?.name,
+        name: props.inviteType - 0 ? dealEnterpriseName(e?.enterpriseUser?.enterpriseName) : e?.enterpriseUser?.name,
         time: e.createTime ? timesTampChange(e.createTime) : '--',
       }
       return { showInfo, ...e }

+ 4 - 4
src/views/recruit/enterprise/systemManagement/groupAccount/index.vue

@@ -18,8 +18,8 @@
         >
           <template v-slot:title="{ item }">
             <div class="treeTitle font-size-15">
-              {{ item.anotherName || item.name }}
-              <v-tooltip activator="parent" location="end">{{ item.anotherName || item.name }}</v-tooltip>
+              {{ dealEnterpriseName(item.anotherName || item.name) }}
+              <v-tooltip activator="parent" location="end">{{ dealEnterpriseName(item.anotherName || item.name) }}</v-tooltip>
             </div>
           </template>
         </v-treeview>
@@ -107,10 +107,10 @@ import Confirm from '@/plugins/confirm'
 import Snackbar from '@/plugins/snackbar'
 import { checkCompanyEmail } from '@/utils/validate'
 import { updateGroupUserAccount } from '@/api/enterprise'
-import { getDict } from '@/hooks/web/useDictionaries'
 import { getUserAvatar } from '@/utils/avatar'
 import { uploadFile } from '@/api/common'
 import { getToken } from '@/utils/auth'
+import { dealEnterpriseName } from '@/utils/getText';
 
 const { t } = useI18n()
 const showBadge = ref(false) // 性别设置甲方要求已去掉
@@ -126,7 +126,7 @@ const tableData = ref([])
 const treeData = ref([])
 const headers = [
   { title: t('login.username'), key: 'name', sortable: false },
-  { title: t('enterprise.userManagement.affiliatedEnterprise'), key: 'enterpriseAnotherName', sortable: false, value: item => item.enterpriseAnotherName || item.enterpriseName },
+  { title: t('enterprise.userManagement.affiliatedEnterprise'), key: 'enterpriseAnotherName', sortable: false, value: item => dealEnterpriseName(item.enterpriseAnotherName || item.enterpriseName) },
   { title: t('enterprise.userManagement.post'), key: 'postName', sortable: false },
   { title: t('enterprise.userManagement.phone'), key: 'phone', sortable: false },
   { title: t('enterprise.userManagement.email'), key: 'email', sortable: false },

+ 2 - 1
src/views/recruit/personal/PersonalCenter/jobFeedback/components/interview/item.vue

@@ -39,7 +39,7 @@
               <v-img width="30" height="30" :src="val.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></v-img>
             </div>
             <div class="ellipsis" style="max-width: 400px;">
-              <span class="mx-2 enterprise-name" @click="handleToEnterprise(val)">{{ val.enterprise.anotherName }}</span>
+              <span class="mx-2 enterprise-name" @click="handleToEnterprise(val)">{{ dealEnterpriseName(val.enterprise.anotherName || val.enterprise.name) }}</span>
             [
               <span>{{ val.enterprise.industryName }}</span>
               <span>&nbsp;·&nbsp;{{ val.enterprise.scaleName }}</span>
@@ -60,6 +60,7 @@ import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
 import { getUserAvatar } from '@/utils/avatar'
 import { useRouter } from 'vue-router'
+import { dealEnterpriseName } from '@/utils/getText'
 
 const { t } = useI18n()
 const emits = defineEmits(['refresh'])

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

@@ -18,7 +18,7 @@
                 <v-img :src="item?.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" :alt="item.enterprise.anotherName" :width="40" style="height: 40px;border-radius: 4px;"/>
               </div>
               <div class="company-info">
-                <h3 :class="{'default-active': item.active }" class="title1 cursor-pointer">{{ item.enterprise.anotherName }}</h3>
+                <h3 :class="{'default-active': item.active }" class="title1 cursor-pointer">{{ dealEnterpriseName(item.enterprise.anotherName || item.enterprise.name) }}</h3>
                 <p class="mt-2">{{ item.enterprise.scaleName }}<span class="mx-2">|</span>{{ item.enterprise.industryName }}</p>
               </div>
             </div>
@@ -58,6 +58,7 @@ import Empty from '@/components/Empty'
 import { getUserAvatar } from '@/utils/avatar'
 import { useRouter } from 'vue-router'
 import { useUserStore } from '@/store/user'
+import { dealEnterpriseName } from '@/utils/getText'
 
 const router = useRouter()
 const total = ref(0)

+ 3 - 1
src/views/recruit/personal/company/components/companyItem.vue

@@ -6,7 +6,7 @@
           <v-img :src="item.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" :alt="item.enterprise.anotherName" :width="40" style="height: 40px;border-radius: 4px;"/>
         </div>
         <div class="company-info">
-          <h3 :class="{'default-active': item.active }" style="width: 200px;">{{ item.enterprise.anotherName }}</h3>
+          <h3 :class="{'default-active': item.active }" style="width: 200px;">{{ dealEnterpriseName(item.enterprise.anotherName || item.enterprise.name) }}</h3>
           <p>{{ item.enterprise.industryName }}</p>
         </div>
       </div>
@@ -31,6 +31,8 @@
 </template>
 
 <script setup>
+import { dealEnterpriseName } from '@/utils/getText'
+
 defineOptions({ name: 'company-item'})
 defineProps({
   list: Array

+ 2 - 1
src/views/recruit/personal/companyDetail/index.vue

@@ -6,7 +6,7 @@
           <v-img width="60" height="60" :src="info.enterprise.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></v-img>
           <div class="ml-4">
             <div class="contact-name">
-              {{ info.enterprise.name }}
+              {{ dealEnterpriseName(info.enterprise.anotherName || info.enterprise.name) }}
             </div>
             <div class="contact-info">
               {{ info.scaleName }}
@@ -81,6 +81,7 @@ import { useRoute, useRouter } from 'vue-router'
 import { getToken } from '@/utils/auth'
 import Snackbar from '@/plugins/snackbar'
 import loginPage from '@/views/common/loginDialog.vue'
+import { dealEnterpriseName } from '@/utils/getText'
 
 const route = useRoute()
 const router = useRouter()

+ 2 - 1
src/views/recruit/personal/position/components/details.vue

@@ -64,7 +64,7 @@
                 <div class="ml-2">
                   <div class="contact-name">{{ info.contact.name }}</div>
                   <div class="contact-info">
-                    {{ info.enterprise.anotherName }}
+                    {{ dealEnterpriseName(info.enterprise.anotherName || info.enterprise.name) }}
                      <span v-if="info?.enterprise?.anotherName && info?.contact?.postNameCn">·</span>
                     {{ info.contact.postNameCn }}</div>
                 </div>
@@ -188,6 +188,7 @@ import { getToken } from '@/utils/auth'
 import { getUserAvatar } from '@/utils/avatar'
 import { checkPersonBaseInfo } from '@/utils/check'
 import dialogExtend from '@/plugins/dialogExtend'
+import { dealEnterpriseName } from '@/utils/getText'
 
 const props = defineProps({
   defaultWidth: {

+ 2 - 1
src/views/recruit/personal/recommend/components/positionList.vue

@@ -38,7 +38,7 @@
                 <v-img :src="item.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'" />
               </v-avatar>
               <span class="names ml-2 font-size-14 ellipsis" style="max-width: 88%;">
-                {{ item.anotherName }}
+                {{ dealEnterpriseName(item.anotherName || item.name) }}
                 <span class="color-999 font-size-13 ml-3">
                   <span>{{ item.industryName }}</span>
                   <span class="septal-line" v-if="item.industryName && item.scaleName"></span>
@@ -56,6 +56,7 @@
 <script setup>
 defineOptions({ name: 'position-card-item' })
 import { ref, watch } from 'vue'
+import { dealEnterpriseName } from '@/utils/getText'
 
 const emit = defineEmits([''])
 const props = defineProps({