index.vue 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257
  1. <template>
  2. <view class="my-center-page">
  3. <view class="my-bg">
  4. <image src="@/static/images/my/icon/paopao.svg" mode="aspectFill" class="paopao paopao-one" />
  5. <image src="@/static/images/my/icon/paopao.svg" mode="aspectFill" class="paopao paopao-two" />
  6. <image src="@/static/images/my/icon/paopao.svg" mode="aspectFill" class="paopao paopao-three" />
  7. <view class="my-bg-bottom"></view>
  8. </view>
  9. <!-- 用户端 -->
  10. <block v-if="userType == 1">
  11. <view class="user-box">
  12. <view class="user-top">
  13. <view class="info-box-btn flex justify-end align-center" style="padding-right: 32rpx;"
  14. v-if="token && XCXIsSelect != '否'">
  15. <!-- #ifdef APP-PLUS -->
  16. <image src="@/static/images/svg/scan.svg" @click="handleScan"></image>
  17. <!-- #endif -->
  18. <image src="@/static/images/jobApplicant/qiehuan.svg" @click="goNav('switchRoles')" />
  19. <image src="@/static/images/jobApplicant/shezhi.svg" @click="goNav('/pages/my/setup')" />
  20. </view>
  21. </view>
  22. <view class="user-content">
  23. <view class="info flex justify-center"
  24. :style="{ paddingTop: token && XCXIsSelect != '否' ? '0' : '100rpx' }">
  25. <view class="info-box">
  26. <view @click="goNav('/package/jobIntention/basicInfo')"
  27. class="info-box-header flex justify-between align-end">
  28. <view class="flex align-center">
  29. <view class="info-box-header-l">
  30. <image :src="avatar ? avatar : '../../static/images/logo.jpg'" mode="aspectFill"></image>
  31. <view class="info-tip" v-if="score >= 0 && score < 60">待完善</view>
  32. </view>
  33. <view class="info-box-header-r">
  34. <view class="info-box-header-r-name flex align-center">
  35. <view class="info-box-header-r-text">
  36. {{ userName }}
  37. </view>
  38. <!-- <image v-if="isVip == true" src="../../static/images/my/isVip.png"
  39. style="margin-left: 10rpx; width: 80rpx; height: 30rpx" mode=""></image> -->
  40. </view>
  41. <view v-if="token && XCXIsSelect != '否'"
  42. class="info-box-header-r-bj flex align-center">
  43. 基本信息
  44. <image src="@/static/images/jobApplicant/edit-user.svg"
  45. mode="scaleToFill" />
  46. </view>
  47. </view>
  48. </view>
  49. <!-- 简历完善度 -->
  50. <view class="resume-progress" v-if="token">
  51. <view class="text-tip flex align-center justify-between">
  52. <text>简历完善度</text>
  53. <text>{{ score }}%</text>
  54. </view>
  55. <view class="progress-box">
  56. <view class="progress-bar" :style="{ width: `${score}%` }"></view>
  57. </view>
  58. </view>
  59. </view>
  60. <view class="info-box-num flex align-center justify-between" v-if="XCXIsSelect != '否'">
  61. <view class="info-box-num-td" @click="gojiLuList('/package/records/records', '沟通记录')">
  62. <view class="info-box-num-td-num"> {{ chatCount }} </view>
  63. <view class="info-box-num-td-name"> 沟通过 </view>
  64. </view>
  65. <view class="info-box-num-td" @click="gojiLuList('/package/records/records', '投递记录')">
  66. <view class="info-box-num-td-num">
  67. {{ deliveryCount }}
  68. </view>
  69. <view class="info-box-num-td-name"> 已投递 </view>
  70. </view>
  71. <view class="info-box-num-td" @click="gojiLuList('/package/records/records', '面试记录')">
  72. <view class="info-box-num-td-num">
  73. {{ interviewCount }}
  74. </view>
  75. <view class="info-box-num-td-name"> 面试 </view>
  76. </view>
  77. <view class="info-box-num-td" @click="gojiLuList('/package/records/records', '我的收藏')">
  78. <view class="info-box-num-td-num">
  79. {{ collectionCount }}
  80. </view>
  81. <view class="info-box-num-td-name"> 收藏职位 </view>
  82. </view>
  83. </view>
  84. </view>
  85. </view>
  86. <!-- 推广横幅 -->
  87. <view class="promo-banner" @click="goBusinessLicense(0)">
  88. <view class="banner-content">
  89. <view class="banner-text">
  90. <text class="banner-title">牛人找资金</text>
  91. <text class="banner-subtitle">带上你的超级项目,这里有无限的可能</text>
  92. </view>
  93. <view class="banner-button">
  94. <text class="button-text">立即参与</text>
  95. </view>
  96. </view>
  97. </view>
  98. <!-- 求职服务 -->
  99. <view class="jobServer flex justify-center" v-if="XCXIsSelect != '否'"
  100. :style="XCXIsSelect == '否' ? 'margin-top:30rpx' : ''">
  101. <view class="jobServer-box flex justify-center">
  102. <view class="jobServer-box-c">
  103. <!-- <view class="jobServer-box-title"> 求职服务 </view> -->
  104. <view class="jobServer-box-btn flex justify-between" style="padding: 0 30px;">
  105. <view class="jobServer-box-btn-item flex justify-center flex-wrap"
  106. @click="goNav('/pages/my/onlineResume')">
  107. <!-- <image src="../../static/images/index/qwzn.svg" mode=""></image> -->
  108. <image src="@/static/images/my/icons/home.png"></image>
  109. <view class=""> 在线简历 </view>
  110. <view class="info-tip" v-if="score >= 0 && score < 60">待完善</view>
  111. </view>
  112. <view class="jobServer-box-btn-item flex justify-center flex-wrap"
  113. @click="goNav('/pages/my/attachment')">
  114. <!-- <image src="../../static/images/index/cpbk.svg" mode=""></image> -->
  115. <image src="@/static/images/my/icons/file.png" mode=""></image>
  116. <view class=""> 附件简历 </view>
  117. <image src="@/static/images/my/ai-icon.png" class="ai-icon"></image>
  118. </view>
  119. <view class="jobServer-box-btn-item flex justify-center flex-wrap"
  120. @click="goNav('/package/jobIntention/tagManage')">
  121. <!-- <image src="../../static/images/index/fwzx.svg" mode=""></image> -->
  122. <image src="@/static/images/my/icons/tag.png" mode=""></image>
  123. <view class=""> 求职意向 </view>
  124. </view>
  125. <!-- <view class="jobServer-box-btn-item flex justify-center flex-wrap"
  126. @click="gojiLuList('/package/records/records', '面试记录')">
  127. <image src="../../static/images/index/rmhd.svg" mode=""></image>
  128. <view class=""> 项目中心 </view>
  129. </view> -->
  130. </view>
  131. </view>
  132. </view>
  133. </view>
  134. <!-- 更多工具 -->
  135. <!-- 更多功能区域 -->
  136. <view class="more-functions">
  137. <view class="section-title">更多功能</view>
  138. <view class="function-grid">
  139. <view class="function-item" @click="goNav('/pages/my/ruleCenter')">
  140. <image src="../../static/images/index/moreSkill3.svg" class="function-icon"></image>
  141. <text class="function-text">规则中心</text>
  142. </view>
  143. <view class="function-item" @click="goChat">
  144. <image src="../../static/images/index/moreSkill4.svg" class="function-icon"></image>
  145. <text class="function-text">联系客服</text>
  146. </view>
  147. <view class="function-item" @click="showReportModal = true">
  148. <image src="../../static/images/index/wyts.svg" class="function-icon"></image>
  149. <text class="function-text">我要投诉</text>
  150. </view>
  151. <view class="function-item" @click="goNav('/pages/my/headhunter')">
  152. <image src="../../static/images/index/moreSkill1.svg" class="function-icon"></image>
  153. <text class="function-text">猎头服务</text>
  154. </view>
  155. <view class="function-item" @click="goNav('/package/my/hiddenManagement/index')">
  156. <image src="@/static/images/svg/building.svg" class="function-icon"></image>
  157. <text class="function-text">屏蔽管理</text>
  158. </view>
  159. <view class="function-item" @click="goNav('/package/my/feedback/index')">
  160. <image src="@/static/images/svg/edit.svg" class="function-icon"></image>
  161. <text class="function-text">我要留言</text>
  162. </view>
  163. </view>
  164. </view>
  165. <view class="beian">客服电话 400-000-0100 工作时间08:00-22:00</view>
  166. <view class="beian">人力资源服务许可证 营业执照 深圳市人社局监督电话</view>
  167. <view class="beian">粤ICP备2025494494号-2A</view>
  168. </view>
  169. </view>
  170. </block>
  171. <!-- 企业端 -->
  172. <block v-else>
  173. <view class="user-box">
  174. <view class="user-top">
  175. <view class="info flex justify-center">
  176. <view class="info-box">
  177. <view v-if="XCXIsSelect != '否'" class="info-box-btn flex justify-end align-center">
  178. <!-- #ifdef APP-PLUS -->
  179. <image src="@/static/images/svg/scan.svg" @click="handleScan"></image>
  180. <!-- #endif -->
  181. <image src="@/static/images/jobApplicant/qiehuan.svg" @click="goNav('switchRoles')" />
  182. <image src="@/static/images/jobApplicant/shezhi.svg" @click="goNav('/pages/my/setup')" />
  183. </view>
  184. <view class="info-box-header flex align-center" @click="goNav('/pages/my/userinfo')">
  185. <view class="info-box-header-l">
  186. <image :src="avatar ? avatar : '../../static/images/logo.jpg'" mode="aspectFill"></image>
  187. </view>
  188. <view class="info-box-header-r">
  189. <view class="info-box-header-r-name flex align-center">
  190. {{ userName }}
  191. <image v-if="isUserVip"
  192. style="margin-left: 10rpx; width: 80rpx; height: 30rpx"
  193. src="../../static/images/my/isVip.png" mode=""></image>
  194. <view class="un-verify" v-if="showCompanyStatusTip">账号待审核</view>
  195. </view>
  196. <view v-if="XCXIsSelect != '否'" class="info-box-header-r-bj flex align-center">
  197. {{ companyInfo.companyAllName || "" }}<text v-if="companyInfo.hrTitle"> · {{ companyInfo.hrTitle }}</text>
  198. <!-- <image src="@/static/images/jobApplicant/edit-user.svg" mode="scaleToFill" /> -->
  199. </view>
  200. </view>
  201. <u-icon name="arrow-right" color="#fff"></u-icon>
  202. </view>
  203. <!-- 记录栏 -->
  204. <view class="info-box-num flex align-center justify-between" v-if="XCXIsSelect != '否'"
  205. style="padding: 0 100rpx;">
  206. <view class="info-box-num-td"
  207. @click="goNav('/pages/recruitmentData/communicationRecords?tab=0')">
  208. <view class="info-box-num-td-num"> {{ chatCount }} </view>
  209. <view class="info-box-num-td-name">沟通过</view>
  210. </view>
  211. <view class="info-box-num-td"
  212. @click="goNav('/pages/recruitmentData/communicationRecords?tab=1')">
  213. <view class="info-box-num-td-num"> {{ interviewCount }} </view>
  214. <view class="info-box-num-td-name">面试</view>
  215. </view>
  216. <view class="info-box-num-td"
  217. @click="goNav('/pages/recruitmentData/communicationRecords?tab=2')">
  218. <view class="info-box-num-td-num"> {{ collectionCount }} </view>
  219. <view class="info-box-num-td-name">收藏</view>
  220. </view>
  221. <!-- <view class="info-box-num-td" @click="goNav('/pages/my/onlineResume')">
  222. <view class="info-box-num-td-num"> 0 </view>
  223. <view class="info-box-num-td-name">分享</view>
  224. </view> -->
  225. </view>
  226. </view>
  227. </view>
  228. </view>
  229. <view class="user-content">
  230. <!-- 升级VIP -->
  231. <view v-if="iosAudit == 0 && showVipBanner" class="vip-upgrade-banner" @click="goVipUpgrade">
  232. <view class="vip-banner-content">
  233. <view class="vip-banner-text"> 升级VIP专享超值权益 </view>
  234. <view class="vip-upgrade-button"> 去升级 </view>
  235. </view>
  236. </view>
  237. <!-- 招聘服务 -->
  238. <view class="jobServer flex justify-center" v-if="XCXIsSelect != '否'"
  239. :style="XCXIsSelect == '否' ? 'margin-top:30rpx' : ''">
  240. <view class="jobServer-box flex justify-center">
  241. <view class="jobServer-box-c">
  242. <!-- <view class="jobServer-box-title"> 招聘服务 </view> -->
  243. <view class="jobServer-box-btn flex justify-between">
  244. <view class="jobServer-box-btn-item flex justify-center flex-wrap"
  245. @click="goJobManagement">
  246. <image src="../../static/images/index/gangwei.svg" mode=""></image>
  247. <view class=""> 职位管理 </view>
  248. </view>
  249. <view v-if="$queue.getData('companyId')"
  250. class="jobServer-box-btn-item flex justify-center flex-wrap"
  251. @click="goNav('/pages/recruitmentData/index')">
  252. <image src="../../static/images/index/shuju.svg" mode=""></image>
  253. <view class=""> 招聘数据 </view>
  254. </view>
  255. <view class="jobServer-box-btn-item flex justify-center flex-wrap"
  256. @click="goNavStatus('/pages/my/jobPosting')">
  257. <!-- <image src="../../static/images/index/qwzn.svg" mode=""></image> -->
  258. <image src="@/static/images/my/icons/home.png" mode=""></image>
  259. <view class=""> 发布招聘 </view>
  260. </view>
  261. <view class="jobServer-box-btn-item flex justify-center flex-wrap"
  262. @click="handleToCompanyIndex">
  263. <!-- <image src="../../static/images/index/fwzx.svg" mode=""></image> -->
  264. <image src="@/static/images/my/icons/tag.png" mode=""></image>
  265. <view class=""> 公司主页 </view>
  266. <view class="info-tip" v-if="showCompanyInfoTip">待完善</view>
  267. </view>
  268. </view>
  269. </view>
  270. </view>
  271. </view>
  272. <!-- 推广横幅 -->
  273. <view class="promo-banner" @click="goBusinessLicense(1)">
  274. <view class="banner-content">
  275. <view class="banner-text">
  276. <text class="banner-title">资金找项目</text>
  277. <text class="banner-subtitle">亿职赞,为您提供前程似锦的优质项目!</text>
  278. </view>
  279. <view class="banner-button">
  280. <text class="button-text">立即参与</text>
  281. </view>
  282. </view>
  283. </view>
  284. <!-- 更多工具 -->
  285. <view class="utils-title">更多功能</view>
  286. <view class="utils flex justify-center">
  287. <view class="utils-box flex justify-center">
  288. <view class="utils-box-c">
  289. <view class="util-list">
  290. <view class="util-item" @click="goNav('/pages/my/ruleCenter')">
  291. <image src="../../static/images/my/icon/utils/rulerCenter.png"
  292. style="width: 54rpx; height: 54rpx" mode=""></image>
  293. <view class="" style="color: #1a1a1a; font-size: 24rpx; margin-top: 15rpx">
  294. 规则中心
  295. </view>
  296. </view>
  297. <view v-if="iosAudit == 0 && showVipBanner" class="util-item"
  298. @click="goNav('/pages/my/VIP/benefits')">
  299. <image src="../../static/images/my/icon/utils/benefits.png"
  300. style="width: 54rpx; height: 54rpx" mode=""></image>
  301. <view class="" style="color: #1a1a1a; font-size: 24rpx; margin-top: 15rpx">
  302. 我的权益
  303. </view>
  304. </view>
  305. <view v-if="$queue.getData('companyId')" class="util-item"
  306. @click="goNav('/pages/my/myCompany')">
  307. <image src="../../static/images/my/icon/utils/company.png"
  308. style="width: 54rpx; height: 54rpx" mode=""></image>
  309. <view class="" style="color: #1a1a1a; font-size: 24rpx; margin-top: 15rpx">
  310. 企业管理
  311. </view>
  312. <image src="@/static/images/my/admin.png" class="admin-badge" v-if="isAdmin"></image>
  313. </view>
  314. <view class="util-item" @click="goChat">
  315. <image src="../../static/images/my/icon/utils/kefu.png"
  316. style="width: 54rpx; height: 54rpx" mode=""></image>
  317. <view class="" style="color: #1a1a1a; font-size: 24rpx; margin-top: 15rpx">
  318. 我的客服
  319. </view>
  320. </view>
  321. <view class="util-item" @click="goNav('/package/my/feedback/index')">
  322. <image src="@/static/images/svg/edit.svg"
  323. style="width: 54rpx; height: 54rpx" mode=""></image>
  324. <view class="" style="color: #1a1a1a; font-size: 24rpx; margin-top: 15rpx">
  325. 我要留言
  326. </view>
  327. </view>
  328. </view>
  329. </view>
  330. </view>
  331. </view>
  332. <view class="beian">客服电话 400-000-0100 工作时间08:00-22:00</view>
  333. <view class="beian">人力资源服务许可证 营业执照 深圳市人社局监督电话</view>
  334. <view class="beian">粤ICP备2025494494号-2A</view>
  335. </view>
  336. </view>
  337. </block>
  338. <!-- 状态切换 -->
  339. <u-action-sheet :list="list" @click="click" :tips="tips" v-model="show"></u-action-sheet>
  340. <!-- Modal 弹框 -->
  341. <u-popup v-model="showReportModal" mode="center" border-radius="20">
  342. <view class="report-content">
  343. <view class="report-title">亿职赞的旅途中若出现任何不满,请通过以下方式进行投诉</view>
  344. <view class="report-desc-box">
  345. <view class="report-desc">投诉电话:18126311505</view>
  346. <view class="report-desc">投诉邮箱:service@bosszan.com</view>
  347. </view>
  348. <view class="report-desc-small">
  349. 我们将在核实后第一时间处理!<br>
  350. 十分感谢您的信任!
  351. </view>
  352. <view class="report-btn" @click="showReportModal = false">确认</view>
  353. </view>
  354. </u-popup>
  355. <!-- <u-popup v-model="showNotice" mode="center" :mask-close-able="false">
  356. <view class="flex flex-direction" style="background-color: rgba(0, 0, 0, 0.6);height: 85vh;">
  357. <view class="pop-image" v-if="userType == 1">
  358. <image src="/static/images/hxr.jpg"></image>
  359. </view>
  360. <view class="pop-image" v-if="userType == 2">
  361. <image src="/static/images/qy.jpg"></image>
  362. </view>
  363. <u-button @click="handleCloseNotice" class="pop-btn">确认</u-button>
  364. </view>
  365. </u-popup> -->
  366. <!-- 重新提交审核弹窗 -->
  367. <c-modal :value="auditModal" title="提示" @cancel="auditModal = false" @confirm="handleAudit">
  368. {{ modalMessage }}
  369. </c-modal>
  370. <u-popup mode="top" ref="permission">
  371. <view class="popup-content">
  372. <view class="popup-text-permission">扫码需要相机权限</view>
  373. </view>
  374. </u-popup>
  375. </view>
  376. </template>
  377. <script>
  378. import cModal from '@/components/c-modal.vue'
  379. const rejectModalMessage = '您提交的申请被驳回,是否重新提交审核?'
  380. const registModalMessage = '您还未注册企业,是否立即注册企业?'
  381. export default {
  382. components: {
  383. cModal
  384. },
  385. data() {
  386. return {
  387. tips: {
  388. text: "切换状态",
  389. color: "#909399",
  390. fontSize: 28,
  391. },
  392. showReportModal: false,
  393. reportContent: '',
  394. contact: '',
  395. show: false,
  396. list: [{
  397. id: 1,
  398. text: "离职-正在找工作",
  399. fontSize: 24,
  400. },
  401. {
  402. id: 2,
  403. text: "在职-考虑机会",
  404. fontSize: 24,
  405. },
  406. {
  407. id: 3,
  408. text: "在职-暂不考虑",
  409. fontSize: 24,
  410. },
  411. // {
  412. // id: 4,
  413. // text: "实习",
  414. // fontSize: 24,
  415. // },
  416. ],
  417. userType: 1,
  418. avatar: "",
  419. userName: "登录",
  420. XCXIsSelect: "否",
  421. userId: "",
  422. arr: [],
  423. showModal: true,
  424. CompanyList: {},
  425. money: "0",
  426. browseCount: 0,
  427. collectionCount: 0,
  428. deliveryCount: 0,
  429. chatCount: 0,
  430. interviewCount: 0,
  431. postPushCount: 0,//在线职位数量
  432. isVip: false, //用户是否是vip
  433. isUserVip: false, //企业是否是vip
  434. resumesStatus: 1, //求职状态
  435. resumesId: "",
  436. token: "",
  437. companyInfo: "",
  438. companyStatus: "", //企业认证状态(1:审核中 2:已通过 3:已拒绝 空:未认证)
  439. isAndroid: false,
  440. iosAudit: 1,
  441. showVipBanner: false,
  442. // showNotice:false,
  443. score: undefined, // 简历完善度
  444. auditModal: false,
  445. unverified: false,
  446. modalMessage: '',
  447. };
  448. },
  449. computed: {
  450. // 显示公司审核状态
  451. showCompanyStatusTip() {
  452. // 管理员且公司未审核通过
  453. if (this.companyInfo?.companyUser?.isAdmin == 1 && this.companyInfo.status != 2) {
  454. return true
  455. }
  456. return false
  457. },
  458. // 显示公司待完善tip
  459. showCompanyInfoTip() {
  460. // 1. 管理员
  461. // 2. 未完成资料完善
  462. if (
  463. this.companyInfo?.companyUser?.isAdmin == 1 &&
  464. (!this.companyInfo?.companyPeopleDevelop ||
  465. !this.companyInfo?.photos ||
  466. !this.companyInfo?.companyScope ||
  467. !this.companyInfo?.companyContent ||
  468. !this.companyInfo?.welfare ||
  469. !this.companyInfo?.workTime ||
  470. !this.companyInfo?.companyPeople ||
  471. !this.companyInfo?.companyLogo)
  472. ) {
  473. return true
  474. }
  475. return false
  476. },
  477. isAdmin() {
  478. if (this.companyInfo?.companyUser?.isAdmin === 1) {
  479. return true
  480. }
  481. return false
  482. }
  483. },
  484. watch: {
  485. auditModal(value) {
  486. if (!value) {
  487. this.unverified = false
  488. }
  489. }
  490. },
  491. onLoad(e) {
  492. this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
  493. var that = this
  494. //#ifdef APP-PLUS
  495. this.isAndroid = uni.getSystemInfoSync().platform == 'android'
  496. //#endif
  497. //#ifndef APP-PLUS
  498. this.isAndroid = true
  499. //#endif
  500. uni.$on('changeRole', function (res) {
  501. console.log(res.userType)
  502. if (res.userType == 1) {
  503. that.getUserInfo();
  504. that.getUserData();
  505. } else {
  506. that.getCompany();
  507. }
  508. that.$queue.changeTabbar(res.userType)
  509. })
  510. uni.$on('offLogin', function (res) {
  511. that.userId = "";
  512. that.userType = 1;
  513. that.money = 0;
  514. that.chatCount = 0;
  515. that.deliveryCount = 0;
  516. that.browseCount = 0;
  517. that.collectionCount = 0;
  518. that.postPushCount = 0;
  519. that.interviewCount = 0;
  520. that.token = "";
  521. that.isLogin = true;
  522. that.userName = "登录";
  523. that.avatar = "";
  524. that.isVip = false;
  525. that.companyInfo = '';
  526. })
  527. console.log(uni.getStorageSync("userType"))
  528. this.$queue.changeTabbar(uni.getStorageSync("userType") || 1);
  529. // if (!this.$queue.getData('hadShowPoster')) {
  530. // this.showNotice = true
  531. // }
  532. },
  533. onUnload() {
  534. uni.$off('changeRole')
  535. },
  536. onShow() {
  537. this.token = uni.getStorageSync("token");
  538. console.log(this.token, "myToken");
  539. if (uni.getStorageSync("userType")) {
  540. this.userType = uni.getStorageSync("userType");
  541. }
  542. this.userId = uni.getStorageSync("userId");
  543. if (this.userId) {
  544. this.getUserInfo();
  545. this.getMyMoney();
  546. this.getUserData();
  547. if (this.userType == 1) {
  548. this.getJlInfo();
  549. } else {
  550. this.getCompanyStatus();
  551. }
  552. this.$Request.getT("/app/common/type/310").then((res) => {
  553. //消息未读提醒
  554. if (res.code == 0) {
  555. if (res.data && res.data.value) {
  556. this.arr.push(res.data.value);
  557. }
  558. }
  559. });
  560. this.$Request.getT("/app/common/type/337").then((res) => {
  561. //预约成功通知(通用)
  562. if (res.code == 0) {
  563. if (res.data && res.data.value) {
  564. this.arr.push(res.data.value);
  565. }
  566. }
  567. });
  568. this.$Request.getT("/app/common/type/338").then((res) => {
  569. //订单状态通知
  570. if (res.code == 0) {
  571. if (res.data && res.data.value) {
  572. this.arr.push(res.data.value);
  573. }
  574. }
  575. });
  576. // #ifdef MP-WEIXIN
  577. if (this.showModal) {
  578. this.openMsg();
  579. }
  580. // #endif
  581. }
  582. this.getConfigData()
  583. },
  584. methods: {
  585. // 入职公司
  586. goBusinessLicense(pageType) {
  587. uni.navigateTo({
  588. url: "/pages/my/ad?pageType=" + pageType,
  589. });
  590. },
  591. // 在线客服
  592. goChat() {
  593. let that = this;
  594. if (uni.getStorageSync("userType") == 1) {
  595. //用户端
  596. // #ifdef MP-WEIXIN
  597. wx.openCustomerServiceChat({
  598. extInfo: {
  599. url: that.$queue.getData("kefu"),
  600. },
  601. corpId: that.$queue.getData("kefuAppid"),
  602. success(res) {
  603. console.log(res);
  604. },
  605. });
  606. // #endif
  607. // #ifdef H5
  608. window.location.href = that.$queue.getData("kefu");
  609. // #endif
  610. // #ifdef APP
  611. let kefu = that.$queue.getData("kefu");
  612. console.log(kefu);
  613. plus.runtime.openURL(kefu, function (res) { });
  614. // #endif
  615. } else {
  616. //企业端
  617. // #ifdef MP-WEIXIN
  618. wx.openCustomerServiceChat({
  619. extInfo: {
  620. url: that.$queue.getData("kefuq"),
  621. },
  622. corpId: that.$queue.getData("kefuAppidq"),
  623. success(res) {
  624. console.log(res);
  625. },
  626. });
  627. // #endif
  628. // #ifdef H5
  629. window.location.href = that.$queue.getData("kefuq");
  630. // #endif
  631. // #ifdef APP
  632. let kefu = that.$queue.getData("kefuq");
  633. console.log(kefu);
  634. plus.runtime.openURL(kefu, function (res) { });
  635. // #endif
  636. }
  637. },
  638. showToast(title) {
  639. uni.showToast({
  640. title: title,
  641. icon: "none",
  642. });
  643. },
  644. // 点击招聘端的“发布招聘”
  645. goNavStatus(url) {
  646. // 判断是否是管理员
  647. if (!this.checkUnAdminStatus()) return
  648. if (this.companyInfo?.companyUser?.isAdmin != 1 && this.companyInfo?.companyUser?.status == 1) {
  649. // 非管理员,并且是待审核状态
  650. uni.showToast({
  651. title: "等待企业审核通知,请审核通过后操作!",
  652. icon: "none",
  653. });
  654. } else if (this.companyStatus) {
  655. if (this.companyStatus == 1) {
  656. uni.showToast({
  657. title: "企业认证审核中,请审核通过后操作!",
  658. icon: "none",
  659. });
  660. return;
  661. }
  662. if (this.companyStatus == 3) {
  663. uni.showToast({
  664. title: "企业认证审核未通过,请重新认证!",
  665. icon: "none",
  666. });
  667. return;
  668. }
  669. uni.navigateTo({
  670. url: url,
  671. });
  672. } else {
  673. uni.showModal({
  674. title: "提示",
  675. content: "还未完成企业认证,请完成企业认证后操作",
  676. success(ret) {
  677. if (ret.confirm) {
  678. uni.navigateTo({
  679. url: "/pages/my/businessLicense",
  680. })
  681. }
  682. },
  683. });
  684. }
  685. },
  686. currenStatus() {
  687. if (uni.getStorageSync("token")) {
  688. this.show = true;
  689. } else {
  690. this.noLogin();
  691. }
  692. },
  693. //修改用户身份状态
  694. async updateUserResumes(userType) {
  695. // 调用接口提交
  696. uni.showLoading({
  697. title: "切换中..."
  698. });
  699. this.$Request.postJson("/app/user/updateUserResumes", {
  700. userType: userType
  701. })
  702. .then((res) => {
  703. uni.hideLoading();
  704. if (res.code === 0) {
  705. uni.setStorageSync('userType', userType)
  706. uni.switchTab({
  707. url: '/pages/my/index'
  708. });
  709. } else {
  710. uni.switchTab({
  711. url: '/pages/my/index'
  712. });
  713. }
  714. })
  715. .catch((err) => {
  716. uni.hideLoading();
  717. console.error("提交失败:", err);
  718. uni.showToast({
  719. title: "网络异常",
  720. icon: "none"
  721. });
  722. return 1
  723. });
  724. },
  725. //查询简历信息
  726. getJlInfo() {
  727. this.$Request.getT("/app/resumes/selectResumesByUserId").then((res) => {
  728. if (res.code == 0) {
  729. if (res.data) {
  730. this.resumesStatus = res.data.resumesStatus;
  731. this.resumesId = res.data.resumesId;
  732. this.score = res.data?.score || 0;
  733. if (this.resumesStatus == 1) {
  734. this.list = [{
  735. id: 2,
  736. text: "在职-考虑机会",
  737. fontSize: 24,
  738. },
  739. {
  740. id: 3,
  741. text: "在职-暂不考虑",
  742. fontSize: 24,
  743. },
  744. ];
  745. } else if (this.resumesStatus == 2) {
  746. this.list = [{
  747. id: 1,
  748. text: "离职-正在找工作",
  749. fontSize: 24,
  750. },
  751. {
  752. id: 3,
  753. text: "在职-暂不考虑",
  754. fontSize: 24,
  755. },
  756. ];
  757. } else {
  758. this.list = [{
  759. id: 1,
  760. text: "离职-正在找工作",
  761. fontSize: 24,
  762. },
  763. {
  764. id: 2,
  765. text: "在职-考虑机会",
  766. fontSize: 24,
  767. },
  768. ];
  769. }
  770. } else {
  771. uni.showToast({
  772. title: "暂无简历,请添加简历",
  773. icon: "none",
  774. });
  775. }
  776. } else {
  777. uni.showToast({
  778. title: res.msg,
  779. icon: "none",
  780. });
  781. }
  782. });
  783. },
  784. //切换求职状态
  785. click(e) {
  786. console.log(this.list[e].text);
  787. let that = this;
  788. uni.showModal({
  789. title: "提示",
  790. content: "确认求职状态切换为:" + that.list[e].text + " 吗?",
  791. confirmColor: "#016BF6",
  792. complete(ret) {
  793. if (ret.confirm) {
  794. let data = {
  795. resumesId: that.resumesId,
  796. resumesStatus: that.list[e].id,
  797. };
  798. that.$Request.postT("/app/resumes/updateResumesStatus", data).then((res) => {
  799. if (res.code == 0) {
  800. uni.showToast({
  801. title: "已切换",
  802. });
  803. that.getJlInfo();
  804. } else {
  805. uni.showToast({
  806. title: res.msg,
  807. icon: "none",
  808. });
  809. }
  810. });
  811. }
  812. },
  813. });
  814. },
  815. //招聘刷新
  816. refreshJob() {
  817. if (uni.getStorageSync("userId")) {
  818. this.$Request.postT("/app/postPush/refreshPostPush").then((res) => {
  819. if (res.code == 0) {
  820. uni.showToast({
  821. title: "刷新成功",
  822. });
  823. } else {
  824. if (this.isUserVip) {
  825. uni.showToast({
  826. title: res.msg,
  827. icon: "none",
  828. });
  829. } else {
  830. uni.showModal({
  831. title: "提示",
  832. content: "今日可刷新次数已使用完,开通会员可享更多刷新次数以及其他特权",
  833. confirmText: "开通会员",
  834. confirmColor: "#016BF6",
  835. complete(ree) {
  836. if (ree.confirm) {
  837. uni.navigateTo({
  838. url: "/my/vip/index",
  839. });
  840. }
  841. },
  842. });
  843. }
  844. }
  845. });
  846. } else {
  847. this.noLogin();
  848. }
  849. },
  850. //简历刷新
  851. refresh() {
  852. if (uni.getStorageSync("userId")) {
  853. this.$Request.getT("/app/resumes/selectResumesByUserId").then((res) => {
  854. if (res.code == 0) {
  855. if (res.data && res.data.resumesId) {
  856. this.$Request
  857. .postT("/app/resumes/refreshResumes", {
  858. resumesId: res.data.resumesId,
  859. })
  860. .then((ret) => {
  861. if (ret.code == 0) {
  862. uni.showToast({
  863. title: "刷新成功",
  864. });
  865. } else {
  866. if (this.isVip) {
  867. uni.showToast({
  868. title: ret.msg,
  869. icon: "none",
  870. });
  871. } else {
  872. uni.showModal({
  873. title: "提示",
  874. content: "今日可刷新次数已使用完,开通会员可享更多刷新次数以及其他特权",
  875. confirmText: "开通会员",
  876. confirmColor: "#016BF6",
  877. complete(ree) {
  878. if (ree.confirm) {
  879. uni.navigateTo({
  880. url: "/my/vip/index",
  881. });
  882. }
  883. },
  884. });
  885. }
  886. }
  887. });
  888. } else {
  889. uni.showModal({
  890. title: "提示",
  891. content: "暂无简历,请添加简历后重试",
  892. confirmColor: "#016BF6",
  893. complete(ree) {
  894. if (ree.confirm) {
  895. uni.navigateTo({
  896. url: "/package/my/resume",
  897. });
  898. }
  899. },
  900. });
  901. }
  902. } else {
  903. uni.showToast({
  904. title: res.msg,
  905. icon: "none",
  906. });
  907. }
  908. });
  909. } else {
  910. this.noLogin();
  911. }
  912. },
  913. /**
  914. * 获取投递记录、收藏记录、浏览记录
  915. */
  916. getUserData() {
  917. this.$Request.getT("/app/user/userData").then((res) => {
  918. if (res.code == 0) {
  919. this.browseCount = res.data.browseCount;
  920. this.collectionCount = res.data.collectionCount;
  921. this.deliveryCount = res.data.deliveryCount;
  922. this.chatCount = res.data.chatCount;
  923. this.interviewCount = res.data.interviewCount;
  924. this.postPushCount = res.data.postPushCount;
  925. this.iosAudit = res.data.iosAudit
  926. }
  927. });
  928. },
  929. /**
  930. * @param {Object} url 跳转路径
  931. * @param {Object} name 名称
  932. */
  933. gojiLuList(url, name) {
  934. if (uni.getStorageSync("token")) {
  935. uni.navigateTo({
  936. url: url + "?title=" + name,
  937. });
  938. } else {
  939. this.noLogin();
  940. }
  941. },
  942. // 跳转到职位管理页面
  943. goJobManagement() {
  944. if (!this.checkUnAdminStatus()) return
  945. let status = '';
  946. if (this.companyInfo && !this.companyInfo.companyCertification) {
  947. status = 1;
  948. }
  949. if (uni.getStorageSync("token")) {
  950. uni.navigateTo({
  951. url: `/pages/jobManagement/jobManagement?status=${status}&companyId=${this.companyInfo.companyId}`,
  952. });
  953. } else {
  954. this.noLogin();
  955. }
  956. },
  957. // VIP升级页面跳转
  958. goVipUpgrade() {
  959. if (uni.getStorageSync("token")) {
  960. uni.navigateTo({
  961. url: "/pages/my/VIP/benefits",
  962. //url: "/my/vip/index"
  963. });
  964. } else {
  965. this.noLogin();
  966. }
  967. },
  968. /**
  969. * 退出登录
  970. */
  971. goOut() {
  972. let that = this;
  973. uni.showModal({
  974. title: "提示",
  975. content: "确定退出登录吗?",
  976. confirmColor: "#016BF6",
  977. success: function (res) {
  978. if (res.confirm) {
  979. console.log("用户点击确定");
  980. uni.removeStorageSync("userName");
  981. uni.removeStorageSync("avatar");
  982. uni.removeStorageSync("userId");
  983. uni.removeStorageSync("token");
  984. uni.removeStorageSync("phone");
  985. uni.removeStorageSync("zhiFuBaoName");
  986. uni.removeStorageSync("zhiFuBao");
  987. uni.removeStorageSync("invitationCode");
  988. uni.removeStorageSync("unionId");
  989. uni.removeStorageSync("openId");
  990. uni.removeStorageSync("isVIP");
  991. uni.removeStorageSync("companyId");
  992. // uni.removeStorageSync('userType')
  993. uni.setStorageSync("userType", 1);
  994. uni.setStorageSync("weixinPhone", false);
  995. that.userId = "";
  996. that.userType = 1;
  997. that.money = 0;
  998. that.deliveryCount = 0;
  999. that.browseCount = 0;
  1000. that.collectionCount = 0;
  1001. that.token = "";
  1002. uni.showToast({
  1003. title: "退出成功!",
  1004. icon: "none",
  1005. });
  1006. that.isLogin = true;
  1007. that.userName = "登录";
  1008. that.avatar = "";
  1009. that.isVip = false;
  1010. // uni.reLaunch({
  1011. // url: '/pages/public/selectIdentity/selectIdentity'
  1012. // })
  1013. } else if (res.cancel) {
  1014. console.log("用户点击取消");
  1015. }
  1016. },
  1017. });
  1018. },
  1019. /**
  1020. * 我的钻石
  1021. */
  1022. getMyMoney() {
  1023. this.$Request.get("/app/userMoney/selectMyMoney").then((res) => {
  1024. if (res.code == 0) {
  1025. this.money = res.data.money;
  1026. }
  1027. });
  1028. },
  1029. /**
  1030. * 获取个人信息
  1031. */
  1032. getUserInfo() {
  1033. this.$Request.get("/app/user/selectUserById").then((res) => {
  1034. if (res.code == 0) {
  1035. uni.setStorageSync("weChatNum", res.data?.weChatNum);
  1036. uni.setStorageSync("zhiRate", res.data?.zhiRate);
  1037. if (res.data?.avatar) {
  1038. this.avatar = res.data.avatar;
  1039. }
  1040. if (res.data?.userName) {
  1041. this.userName = res.data.userName;
  1042. }
  1043. uni.setStorageSync("userId", res.data?.userId);
  1044. if (res.data?.companyId) {
  1045. uni.setStorageSync("companyId", res.data.companyId);
  1046. }
  1047. if (res.data?.userType == 1 || res.data?.userType == null) {
  1048. this.userType = 1;
  1049. uni.setStorageSync("userType", 1);
  1050. if (res.data?.isUserVip == 1) {
  1051. //判断用户是否是vip
  1052. this.isVip = true;
  1053. uni.setStorageSync("isUserVip", 1);
  1054. } else {
  1055. this.isVip = false;
  1056. }
  1057. } else {
  1058. this.userType = 2;
  1059. uni.setStorageSync("userType", 2);
  1060. uni.setStorageSync("vipDueTimes", res.data.vipDueTimes ? res.data.vipDueTimes : 0);
  1061. uni.setStorageSync("vipPostTimes", res.data.vipPostTimes ? res.data.vipPostTimes : 0);
  1062. if (res.data.isUserVip == 1) {
  1063. //判断企业用户是否是vip
  1064. this.isUserVip = true;
  1065. uni.setStorageSync("isUserVip", 0);
  1066. } else {
  1067. this.isUserVip = false;
  1068. }
  1069. }
  1070. }
  1071. });
  1072. },
  1073. goNavNoLogin(e) {
  1074. // #ifdef MP-WEIXIN
  1075. if (uni.getStorageSync("sendMsg")) {
  1076. // console.log('授权+1')
  1077. wx.requestSubscribeMessage({
  1078. tmplIds: this.arr,
  1079. success(re) {
  1080. var datas = JSON.stringify(re);
  1081. if (datas.indexOf("accept") != -1) {
  1082. // console.log(re)
  1083. }
  1084. },
  1085. fail: (res) => {
  1086. // console.log(res)
  1087. },
  1088. });
  1089. }
  1090. // #endif
  1091. uni.navigateTo({
  1092. url: e,
  1093. });
  1094. },
  1095. //跳转
  1096. goNav(e) {
  1097. if (this.userId) {
  1098. // 跳转不进行校验
  1099. if (e != 'switchRoles' && e != '/pages/my/setup' && e != '/pages/my/ruleCenter') {
  1100. if (!this.checkUnAdminStatus()) return
  1101. }
  1102. // 跳转判断是否完成了认证信息完善
  1103. if (e == '/pages/my/myCompany') {
  1104. if (!this.checkUnAdminStatus({ notAudit: true, unFinishCompanyInfo: true })) return
  1105. }
  1106. uni.navigateTo({
  1107. url: e,
  1108. });
  1109. } else {
  1110. this.noLogin();
  1111. }
  1112. },
  1113. //获取企业认证状态(1:审核中 2:通过 3:拒绝)
  1114. getCompanyStatus() {
  1115. this.$Request.get("/app/company/selectCompanyByUserId").then((res) => {
  1116. if (res.code == 0 && res.data) {
  1117. console.log('我获取了公司信息')
  1118. this.companyInfo = res.data
  1119. this.companyStatus = res.data.status;
  1120. uni.setStorageSync("companyStatus", this.companyStatus);
  1121. uni.setStorageSync("companyName", res.data.companyAllName);
  1122. if(res.data.companyId)
  1123. this.$queue.setData('companyId',res.data.companyId)
  1124. } else {
  1125. this.companyStatus = "";
  1126. this.companyInfo = {};
  1127. }
  1128. });
  1129. },
  1130. /**
  1131. * 获取用户企业实名数据
  1132. */
  1133. getCompany() {
  1134. this.$Request.get("/app/company/selectCompanyByUserId").then((res) => {
  1135. if (res.code == 0 && res.data) {
  1136. this.CompanyList = res.data;
  1137. if (this.CompanyList.status == 1) {
  1138. uni.showModal({
  1139. title: "提示",
  1140. content: "您提交的企业认证正在审核,是否查看修改?",
  1141. confirmColor: "#016BF6",
  1142. showCancel: false,
  1143. success: function (res) {
  1144. if (res.confirm) {
  1145. console.log("用户点击确定");
  1146. uni.navigateTo({
  1147. url: "/package/jobIntention/underReview",
  1148. });
  1149. } else if (res.cancel) {
  1150. console.log("用户点击取消");
  1151. }
  1152. },
  1153. });
  1154. } else if (this.CompanyList.status == 2) {
  1155. this.$Request
  1156. .postT("/app/user/updateUserEntity", {
  1157. userType: 2,
  1158. })
  1159. .then((res) => {
  1160. if (res.code == 0) {
  1161. // uni.setStorageSync('companyId', this.CompanyList.companyId)
  1162. this.getUserInfo();
  1163. }
  1164. });
  1165. this.getUserInfo();
  1166. // this.userType = 2
  1167. // uni.setStorageSync('userType', this.userType)
  1168. } else if (this.CompanyList.status == 3) {
  1169. uni.showModal({
  1170. title: "提示",
  1171. content: "您提交的企业认证已被拒绝,是否查看修改?",
  1172. confirmColor: "#016BF6",
  1173. success: function (res) {
  1174. if (res.confirm) {
  1175. console.log("用户点击确定");
  1176. uni.navigateTo({
  1177. url: "/package/jobIntention/underReview",
  1178. });
  1179. } else if (res.cancel) {
  1180. console.log("用户点击取消");
  1181. }
  1182. },
  1183. });
  1184. }
  1185. } else {
  1186. uni.showModal({
  1187. title: "提示",
  1188. content: "您还未企业认证,请先进行认证",
  1189. confirmColor: "#016BF6",
  1190. showCancel: false,
  1191. success: function (res) {
  1192. if (res.confirm) {
  1193. console.log("用户点击确定");
  1194. uni.navigateTo({
  1195. url: "/pages/my/businessLicense",
  1196. });
  1197. } else if (res.cancel) {
  1198. console.log("用户点击取消");
  1199. }
  1200. },
  1201. });
  1202. }
  1203. });
  1204. },
  1205. // 切换身份
  1206. bindQe() {
  1207. let that = this;
  1208. if (uni.getStorageSync("userId")) {
  1209. let index = 3 - this.userType
  1210. if (index == 1) {
  1211. //企业换个人
  1212. uni.showModal({
  1213. title: "提示",
  1214. content: "确认切换到求职者身份吗?",
  1215. confirmColor: "#016BF6",
  1216. complete(ret) {
  1217. if (ret.confirm) {
  1218. let data = {
  1219. userType: 1,
  1220. };
  1221. that.$Request.postT("/app/user/updateUserEntity", data).then((res) => {
  1222. if (res.code == 0) {
  1223. that.getUserInfo();
  1224. that.getUserData();
  1225. }
  1226. });
  1227. }
  1228. },
  1229. });
  1230. } else if (index == 2) {
  1231. //个人换企业
  1232. uni.showModal({
  1233. title: "提示",
  1234. content: "确认切换到招聘者身份吗?",
  1235. confirmColor: "#016BF6",
  1236. complete(ret) {
  1237. if (ret.confirm) {
  1238. that.getCompany();
  1239. }
  1240. },
  1241. });
  1242. }
  1243. } else {
  1244. this.noLogin();
  1245. }
  1246. },
  1247. // 开启订阅消息
  1248. openMsg() {
  1249. console.log("订阅消息");
  1250. var that = this;
  1251. uni.getSetting({
  1252. withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回
  1253. success(ret) {
  1254. console.log(ret.subscriptionsSetting, "------------------");
  1255. // if (ret.subscriptionsSetting.itemSettings && Object.keys(ret.subscriptionsSetting.itemSettings).length == 2) {
  1256. if (ret.subscriptionsSetting.itemSettings) {
  1257. uni.setStorageSync("sendMsg", true);
  1258. uni.openSetting({
  1259. // 打开设置页
  1260. success(rea) {
  1261. console.log(rea.authSetting);
  1262. },
  1263. });
  1264. } else {
  1265. // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息
  1266. console.log(99999);
  1267. uni.setStorageSync("sendMsg", false);
  1268. uni.showModal({
  1269. title: "提示",
  1270. content: "为了更好的体验,请绑定消息推送",
  1271. confirmText: "确定",
  1272. cancelText: "取消",
  1273. confirmColor: "#016BF6",
  1274. success: function (res) {
  1275. if (res.confirm) {
  1276. console.log(that.arr);
  1277. wx.requestSubscribeMessage({
  1278. tmplIds: that.arr,
  1279. success(re) {
  1280. console.log(JSON.stringify(re),
  1281. "++++++++++++++");
  1282. var datas = JSON.stringify(re);
  1283. if (datas.indexOf("accept") != -1) {
  1284. console.log(re);
  1285. uni.setStorageSync("sendMsg", true);
  1286. }
  1287. },
  1288. fail: (res) => {
  1289. console.log(res);
  1290. },
  1291. });
  1292. uni.setStorageSync("sendMsg", true);
  1293. console.log("确认");
  1294. that.showModal = false;
  1295. } else if (res.cancel) {
  1296. console.log("取消");
  1297. uni.setStorageSync("sendMsg", false);
  1298. that.showModal = true;
  1299. }
  1300. },
  1301. });
  1302. }
  1303. },
  1304. });
  1305. },
  1306. //未登录
  1307. noLogin() {
  1308. // uni.showModal({
  1309. // title: '提示',
  1310. // content: '您还未登录,请先登录',
  1311. // confirmColor:'#016BF6',
  1312. // success: function(res) {
  1313. // if (res.confirm) {
  1314. // console.log('用户点击确定');
  1315. // // uni.reLaunch({
  1316. // // url:'/pages/public/login'
  1317. // // })
  1318. // uni.navigateTo({
  1319. // url: '/pages/public/login'
  1320. // })
  1321. // } else if (res.cancel) {
  1322. // console.log('用户点击取消');
  1323. // }
  1324. // }
  1325. // })
  1326. this.$queue.toLogin()
  1327. },
  1328. // // 关闭海报弹窗
  1329. // handleCloseNotice() {
  1330. // this.$queue.setData('hadShowPoster', '1')
  1331. // this.showNotice = false
  1332. // },
  1333. // 点击公司首页
  1334. handleToCompanyIndex() {
  1335. // 如果员工申请被拒绝,则跳转到加入企业页面
  1336. if (!this.checkUnAdminStatus({ notAudit: true })) return
  1337. // 如果是非管理员,则提示“仅企业管理员可以打开”
  1338. if (this.companyInfo.companyUser?.isAdmin != 1) {
  1339. return this.$queue.showToast('仅企业管理员可以打开')
  1340. }
  1341. this.$queue.getData('companyId') ? this.goNav('/my/renzheng/editCompany?companyId=' + this.$queue.getData('companyId')) : this.goNav('/pages/my/businessLicense')
  1342. },
  1343. // 非管理员,且提交申请被拒绝
  1344. checkUnAdminStatus(options) {
  1345. // 如果是招聘端
  1346. if (this.userType == 2) {
  1347. // 企业未注册
  1348. if (!this.companyInfo?.status) {
  1349. this.modalMessage = registModalMessage
  1350. this.auditModal = true
  1351. return false
  1352. }
  1353. // 企业待审核是否限制跳转
  1354. if (options && options.notAudit && this.companyInfo?.status == 1) {
  1355. this.$queue.showToast('企业认证审核中,请审核通过后操作!')
  1356. return false
  1357. }
  1358. // 企业认证信息未完善
  1359. if (options && options.unFinishCompanyInfo && !this.companyInfo?.companyDutyParagraph) {
  1360. this.modalMessage = '没有进行企业认证,是否立即认证!'
  1361. this.unverified = true
  1362. this.auditModal = true
  1363. return false
  1364. }
  1365. // 非管理员,且提交审核被拒绝
  1366. if (this.companyInfo?.companyUser?.isAdmin != 1 && this.companyInfo?.companyUser?.status == 3) {
  1367. this.modalMessage = rejectModalMessage
  1368. this.auditModal = true
  1369. return false
  1370. }
  1371. }
  1372. return true
  1373. },
  1374. // 重新提交审核
  1375. handleAudit() {
  1376. const companyId = this.companyInfo?.companyId
  1377. const companyName = this.companyInfo?.companyAllName
  1378. let url = this.unverified ? `/package/jobIntention/companyImg?companyId=${companyId}&companyName=${encodeURIComponent(companyName)}` : '/pages/my/businessLicense'
  1379. uni.navigateTo({
  1380. url,
  1381. success: () => {
  1382. this.auditModal = false
  1383. }
  1384. })
  1385. },
  1386. // 扫码登录记录
  1387. handleScanRecord(scanToken) {
  1388. uni.showLoading({ title: '加载中' })
  1389. this.$Request
  1390. .post('/app/Login/scan', {
  1391. token: scanToken
  1392. })
  1393. .then(res => {
  1394. if (res.code == 0) {
  1395. uni.navigateTo({
  1396. url: `/package/my/scan/index?token=${scanToken}`
  1397. })
  1398. } else {
  1399. this.$queue.showToast(res.msg || '扫码失败,请重试')
  1400. }
  1401. })
  1402. .finally(() => {
  1403. uni.hideLoading()
  1404. })
  1405. },
  1406. // 扫码
  1407. async handleScan() {
  1408. if (!this.token) {
  1409. this.noLogin()
  1410. return
  1411. }
  1412. const hasPermission = await this.$queue.checkPermission(
  1413. 'camera',
  1414. '扫码需要相机权限',
  1415. this,
  1416. );
  1417. console.log('hasPermission: ', hasPermission)
  1418. // 2. 如果未授权或者用户拒绝,显示提示
  1419. if (!hasPermission) {
  1420. return;
  1421. }
  1422. uni.scanCode({
  1423. success: (res) => {
  1424. console.log('success', res)
  1425. this.handleScanRecord(res.result)
  1426. },
  1427. fail: (err) => {
  1428. console.log('err', err)
  1429. this.$queue.showToast(err || '扫码失败了,请重新尝试')
  1430. }
  1431. })
  1432. },
  1433. // 获取配置数据
  1434. getConfigData() {
  1435. this.$Request
  1436. .get('/app/dict/list', {
  1437. type: 'VIP按钮'
  1438. })
  1439. .then((res) => {
  1440. if (res.code == 0 && res.data?.length) {
  1441. this.showVipBanner = res.data[0]?.code == '开'
  1442. }
  1443. console.log(this.showVipBanner)
  1444. })
  1445. }
  1446. },
  1447. };
  1448. </script>
  1449. <style lang="scss" scoped>
  1450. page {
  1451. background-color: #f5f7fa;
  1452. }
  1453. // 完善提示
  1454. .info-tip {
  1455. position: absolute;
  1456. top: 0;
  1457. right: -30rpx;
  1458. padding: 8rpx;
  1459. border-radius: 4px;
  1460. background: rgba(255, 0, 0, 1);
  1461. font-size: 20rpx;
  1462. line-height: 1;
  1463. color: #fff;
  1464. }
  1465. .report-content {
  1466. /* content */
  1467. width: 540rpx;
  1468. height: 590rpx;
  1469. /* 自动布局 */
  1470. display: flex;
  1471. flex-direction: column;
  1472. align-items: center;
  1473. justify-content: space-between;
  1474. gap: 33;
  1475. padding: 40rpx;
  1476. box-sizing: border-box;
  1477. .report-title {
  1478. width: 100%;
  1479. color: rgba(0, 0, 0, 1);
  1480. font-family: DM Sans;
  1481. font-size: 28rpx;
  1482. font-weight: 700;
  1483. line-height: 36rpx;
  1484. letter-spacing: 0%;
  1485. text-align: left;
  1486. }
  1487. .report-desc {
  1488. width: 100%;
  1489. color: rgba(158, 158, 158, 1);
  1490. font-family: DM Sans;
  1491. font-size: 28rpx;
  1492. font-weight: 400;
  1493. line-height: 36rpx;
  1494. letter-spacing: 0%;
  1495. text-align: left;
  1496. }
  1497. .report-desc-box {
  1498. width: 100%;
  1499. display: flex;
  1500. flex-direction: column;
  1501. justify-content: space-between;
  1502. gap: 20rpx;
  1503. padding: 66rpx 0;
  1504. box-sizing: border-box;
  1505. }
  1506. .report-desc-small {
  1507. width: 100%;
  1508. color: rgba(158, 158, 158, 1);
  1509. font-family: DM Sans;
  1510. font-size: 20rpx;
  1511. font-weight: 400;
  1512. line-height: 34rpx;
  1513. letter-spacing: 0%;
  1514. text-align: left;
  1515. padding-bottom: 66rpx;
  1516. }
  1517. .report-btn {
  1518. width: 100%;
  1519. border-radius: 999px;
  1520. background: linear-gradient(90.00deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
  1521. color: rgba(255, 255, 255, 1);
  1522. font-family: DM Sans;
  1523. font-size: 32rpx;
  1524. font-weight: 400;
  1525. line-height: 48rpx;
  1526. letter-spacing: 0%;
  1527. text-align: center;
  1528. padding: 16rpx;
  1529. box-sizing: border-box;
  1530. }
  1531. }
  1532. .user-box {
  1533. position: absolute;
  1534. top: 0;
  1535. bottom: 0;
  1536. left: 0;
  1537. right: 0;
  1538. overflow: hidden;
  1539. display: flex;
  1540. flex-direction: column;
  1541. .user-top {
  1542. width: 100%;
  1543. flex-shrink: 0;
  1544. }
  1545. .user-content {
  1546. overflow: hidden;
  1547. overflow-y: auto;
  1548. width: 100%;
  1549. flex: 1;
  1550. .beian {
  1551. font-size: 20rpx;
  1552. color: #aaa;
  1553. text-align: center;
  1554. padding: 10rpx 0;
  1555. }
  1556. }
  1557. }
  1558. // 推广横幅
  1559. .promo-banner {
  1560. margin: 32rpx 40rpx 10rpx 40rpx;
  1561. background: var(--线性渐变,
  1562. linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%));
  1563. border-radius: 24rpx;
  1564. padding: 16rpx 32rpx;
  1565. .banner-content {
  1566. display: flex;
  1567. justify-content: space-between;
  1568. align-items: center;
  1569. .banner-text {
  1570. flex: 1;
  1571. .banner-title {
  1572. color: rgba(255, 255, 255, 1);
  1573. font-family: HarmonyOS Sans SC;
  1574. font-size: 32rpx;
  1575. font-weight: 900;
  1576. line-height: 48rpx;
  1577. letter-spacing: 0%;
  1578. text-align: left;
  1579. display: block;
  1580. margin-bottom: 8rpx;
  1581. transform: skew(-10deg);
  1582. }
  1583. .banner-subtitle {
  1584. color: rgba(255, 255, 255, 0.7);
  1585. font-family: HarmonyOS Sans SC;
  1586. font-size: 26rpx;
  1587. font-weight: 400;
  1588. line-height: 36rpx;
  1589. letter-spacing: 0%;
  1590. text-align: left;
  1591. display: block;
  1592. }
  1593. }
  1594. .banner-button {
  1595. display: flex;
  1596. align-items: center;
  1597. justify-content: center;
  1598. width: 138rpx;
  1599. height: 48rpx;
  1600. border-radius: 26px;
  1601. background: #ffffff;
  1602. .button-text {
  1603. background: var(--线性渐变,
  1604. linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%));
  1605. -webkit-background-clip: text;
  1606. -webkit-text-fill-color: transparent;
  1607. background-clip: text;
  1608. font-family: HarmonyOS Sans SC;
  1609. font-size: 26rpx;
  1610. font-weight: 500;
  1611. line-height: 18px;
  1612. letter-spacing: 0%;
  1613. text-align: left;
  1614. }
  1615. }
  1616. }
  1617. }
  1618. // VIP升级横幅
  1619. .vip-upgrade-banner {
  1620. margin: 20rpx 40rpx 16rpx 40rpx;
  1621. background: linear-gradient(165.89deg,
  1622. rgba(251, 231, 185, 1),
  1623. rgba(240, 176, 72, 1) 100%);
  1624. border-radius: 16rpx;
  1625. padding: 32rpx;
  1626. box-shadow: 0 4rpx 12rpx rgba(255, 154, 102, 0.3);
  1627. .vip-banner-content {
  1628. display: flex;
  1629. justify-content: space-between;
  1630. align-items: center;
  1631. .vip-banner-text {
  1632. flex: 1;
  1633. color: rgba(1, 107, 246, 1);
  1634. font-family: DM Sans;
  1635. font-size: 24rpx;
  1636. font-weight: 700;
  1637. line-height: 40rpx;
  1638. letter-spacing: 0px;
  1639. text-align: left;
  1640. }
  1641. .vip-upgrade-button {
  1642. display: flex;
  1643. align-items: center;
  1644. justify-content: center;
  1645. width: 100rpx;
  1646. height: 42rpx;
  1647. background: radial-gradient(184.79% 115.97% at 92% 113.99999999999999%,
  1648. rgba(255, 102, 0, 0.21),
  1649. rgba(255, 65, 86, 0.6) 100%);
  1650. border-radius: 28rpx;
  1651. color: rgba(255, 255, 255, 1);
  1652. font-family: HarmonyOS Sans SC;
  1653. font-size: 18rpx;
  1654. font-weight: 500;
  1655. line-height: 18rpx;
  1656. letter-spacing: 0%;
  1657. text-align: left;
  1658. box-shadow: 0 2rpx 8rpx rgba(255, 107, 107, 0.3);
  1659. }
  1660. }
  1661. }
  1662. .job-management-card {
  1663. margin: 0rpx 40rpx;
  1664. background: #ffffff;
  1665. border-radius: 12rpx;
  1666. padding: 18rpx 50rpx;
  1667. box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
  1668. .job-management-content {
  1669. display: flex;
  1670. align-items: center;
  1671. justify-content: space-between;
  1672. .job-count-text {
  1673. display: flex;
  1674. align-items: center;
  1675. .count-number {
  1676. color: #016bf6;
  1677. font-size: 32rpx;
  1678. font-weight: 600;
  1679. margin-right: 8rpx;
  1680. line-height: 40rpx;
  1681. }
  1682. .count-label {
  1683. color: #616E7C;
  1684. font-size: 16rpx;
  1685. font-weight: 400;
  1686. }
  1687. }
  1688. .arrow-icon {
  1689. display: flex;
  1690. align-items: center;
  1691. justify-content: center;
  1692. }
  1693. }
  1694. }
  1695. .my-center-page {
  1696. position: absolute;
  1697. left: 0;
  1698. right: 0;
  1699. top: 0;
  1700. bottom: 0;
  1701. }
  1702. .my-bg {
  1703. /* 容器 52 */
  1704. width: 100%;
  1705. height: 656rpx;
  1706. background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
  1707. position: absolute;
  1708. top: 0;
  1709. left: 0;
  1710. right: 0;
  1711. z-index: -1;
  1712. .paopao {
  1713. position: absolute;
  1714. width: 662rpx;
  1715. height: 662rpx;
  1716. }
  1717. .paopao-one {
  1718. left: -221rpx;
  1719. top: -170rpx;
  1720. }
  1721. .paopao-two {
  1722. top: -374rpx;
  1723. right: 0rpx;
  1724. }
  1725. .paopao-three {
  1726. width: 320rpx;
  1727. height: 320rpx;
  1728. bottom: -170rpx;
  1729. left: -40rpx;
  1730. }
  1731. .my-bg-bottom {
  1732. background: linear-gradient(to top,
  1733. rgba(250, 250, 250, 1),
  1734. rgba(255, 255, 255, 0.5) 46%,
  1735. rgba(255, 255, 255, 0) 100%);
  1736. height: 328rpx;
  1737. position: absolute;
  1738. left: 0;
  1739. right: 0;
  1740. bottom: 0;
  1741. }
  1742. }
  1743. .info-box-btn {
  1744. width: 100%;
  1745. padding: 60rpx 0 40rpx 0;
  1746. box-sizing: border-box;
  1747. image {
  1748. width: 52rpx;
  1749. height: 52rpx;
  1750. padding: 9rpx;
  1751. margin-top: 40rpx;
  1752. margin-left:30rpx
  1753. }
  1754. }
  1755. .info {
  1756. width: 100%;
  1757. box-sizing: border-box;
  1758. .info-box {
  1759. width: 686rpx;
  1760. padding-bottom: 20rpx;
  1761. .info-box-header {
  1762. width: 100%;
  1763. margin-top: 20rpx;
  1764. // height: 90rpx;
  1765. .info-box-header-l {
  1766. position: relative;
  1767. margin-right: 32rpx;
  1768. image {
  1769. width: 128rpx;
  1770. height: 128rpx;
  1771. border-radius: 50%;
  1772. display: block;
  1773. }
  1774. }
  1775. .info-box-header-r {
  1776. width: 80%;
  1777. .info-box-header-r-name {
  1778. color: rgba(255, 255, 255, 1);
  1779. font-family: DM Sans;
  1780. font-size: 48rpx;
  1781. font-weight: 400;
  1782. line-height: 72rpx;
  1783. text-align: left;
  1784. .un-verify {
  1785. border-radius: 4px;
  1786. background: rgba(255, 0, 0, 1);
  1787. color: rgba(255, 255, 255, 1);
  1788. font-size: 10px;
  1789. font-weight: 400;
  1790. line-height: 10px;
  1791. margin-left: 10px;
  1792. padding: 4px;
  1793. }
  1794. }
  1795. .info-box-header-r-bj {
  1796. color: rgba(255, 255, 255, 1);
  1797. font-family: DM Sans;
  1798. font-size: 24rpx;
  1799. font-weight: 400;
  1800. line-height: 32rpx;
  1801. letter-spacing: 0%;
  1802. text-align: left;
  1803. margin-top: 8rpx;
  1804. image {
  1805. width: 32rpx;
  1806. height: 32rpx;
  1807. margin-left: 8rpx;
  1808. }
  1809. }
  1810. }
  1811. // 简历完善度
  1812. .resume-progress {
  1813. width: 190rpx;
  1814. margin-bottom: 12rpx;
  1815. .text-tip {
  1816. font-size: 24rpx;
  1817. font-weight: 500;
  1818. line-height: 28rpx;
  1819. color: #fff;
  1820. margin-bottom: 8rpx;
  1821. }
  1822. .progress-box {
  1823. width: 100%;
  1824. height: 10rpx;
  1825. border-radius: 10rpx;
  1826. background: rgba(255, 255, 255, 0.5);
  1827. .progress-bar {
  1828. width: 0;
  1829. height: 100%;
  1830. border-radius: 4px;
  1831. background: linear-gradient(90.00deg, rgba(27, 234, 228, 1),rgba(1, 107, 251, 1) 100%);
  1832. }
  1833. }
  1834. }
  1835. }
  1836. .info-box-num {
  1837. margin-top: 50rpx;
  1838. padding: 0 24rpx;
  1839. // padding: 0 100rpx;
  1840. box-sizing: border-box;
  1841. .info-box-num-td {
  1842. // width: 200rpx;
  1843. .info-box-num-td-num {
  1844. width: 100%;
  1845. text-align: center;
  1846. color: #fff;
  1847. font-size: 38rpx;
  1848. font-weight: bold;
  1849. }
  1850. .info-box-num-td-name {
  1851. width: 100%;
  1852. text-align: center;
  1853. color: #fff;
  1854. font-size: 24rpx;
  1855. font-weight: 400;
  1856. margin-top: 20rpx;
  1857. }
  1858. }
  1859. }
  1860. }
  1861. }
  1862. .vip {
  1863. width: 100%;
  1864. height: 127rpx;
  1865. margin-top: 30rpx;
  1866. .vip-box {
  1867. width: 686rpx;
  1868. height: 100%;
  1869. position: relative;
  1870. .vip-box-bg {
  1871. position: absolute;
  1872. top: 0;
  1873. left: 0;
  1874. width: 100%;
  1875. height: 100%;
  1876. z-index: 1;
  1877. }
  1878. .vip-box-cont {
  1879. z-index: 2;
  1880. }
  1881. }
  1882. }
  1883. .jobServer {
  1884. width: 100%;
  1885. // height: 235rpx;
  1886. // margin-top: 16rpx;
  1887. z-index: 1;
  1888. .jobServer-box {
  1889. width: 686rpx;
  1890. height: 100%;
  1891. // background-color: #fff;
  1892. // background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
  1893. border-radius: 24rpx;
  1894. z-index: 1;
  1895. .jobServer-box-c {
  1896. width: 626rpx;
  1897. height: 100%;
  1898. }
  1899. .jobServer-box-title {
  1900. margin-top: 20rpx;
  1901. width: 100%;
  1902. color: rgba(29, 33, 41, 1);
  1903. font-family: DM Sans;
  1904. font-size: 28rpx;
  1905. font-weight: 500;
  1906. line-height: 44rpx;
  1907. }
  1908. .jobServer-box-btn {
  1909. width: 100%;
  1910. margin-top: 30rpx;
  1911. .item-width {
  1912. width: 110rpx !important;
  1913. }
  1914. .jobServer-box-btn-item {
  1915. position: relative;
  1916. width: 120rpx;
  1917. color: rgba(56, 58, 63, 1);
  1918. font-family: DM Sans;
  1919. font-size: 24rpx;
  1920. font-weight: 400;
  1921. line-height: 36rpx;
  1922. letter-spacing: 0%;
  1923. text-align: center;
  1924. image {
  1925. width: 62rpx;
  1926. height: 62rpx;
  1927. margin-bottom: 10rpx;
  1928. }
  1929. .ai-icon {
  1930. position: absolute;
  1931. top: -12rpx;
  1932. right: 12rpx;
  1933. width: 36rpx;
  1934. height: 36rpx;
  1935. }
  1936. }
  1937. }
  1938. }
  1939. }
  1940. .utils-title {
  1941. padding: 48rpx 0 16rpx;
  1942. margin: 0 64rpx;
  1943. border-bottom: 0.5px solid rgba(238, 238, 238, 1);
  1944. }
  1945. .utils {
  1946. width: 100%;
  1947. // height: 308rpx;
  1948. // margin-top: 20rpx;
  1949. margin-bottom: 20rpx;
  1950. .utils-box {
  1951. width: 686rpx;
  1952. height: 100%;
  1953. // background-color: #ffffff;
  1954. border-radius: 24rpx;
  1955. padding: 16rpx 20rpx;
  1956. box-sizing: border-box;
  1957. .utils-box-c {
  1958. width: 100%;
  1959. height: 100%;
  1960. .util-list {
  1961. display: grid;
  1962. grid-template-columns: repeat(4, 1fr);
  1963. gap: 30rpx 20rpx;
  1964. .util-item {
  1965. position: relative;
  1966. display: flex;
  1967. flex-direction: column;
  1968. justify-content: center;
  1969. align-items: center;
  1970. }
  1971. .admin-badge {
  1972. position: absolute;
  1973. right: 16rpx;
  1974. top: 0;
  1975. width: 50rpx;
  1976. height: 28rpx;
  1977. }
  1978. }
  1979. }
  1980. .utils-box-c-t {
  1981. width: 100%;
  1982. }
  1983. .utils-box-c-b {
  1984. background-color: #016bf6;
  1985. }
  1986. }
  1987. }
  1988. .money {
  1989. width: 100%;
  1990. height: 148rpx;
  1991. margin-top: 20rpx;
  1992. .money-box {
  1993. width: 686rpx;
  1994. height: 100%;
  1995. background-color: #ffffff;
  1996. border-radius: 24rpx;
  1997. .money-box-c {
  1998. width: 626rpx;
  1999. height: 90rpx;
  2000. }
  2001. .money-box-c-l {
  2002. width: 50%;
  2003. height: 100%;
  2004. border-right: 1rpx solid #e6e6e6;
  2005. box-sizing: border-box;
  2006. .money-box-c-l-name {
  2007. color: #333333;
  2008. font-size: 28rpx;
  2009. font-weight: bold;
  2010. width: 100%;
  2011. }
  2012. .money-box-c-l-price {
  2013. color: #1e1e1e;
  2014. font-size: 38rpx;
  2015. font-weight: bold;
  2016. width: 100%;
  2017. margin-top: 14rpx;
  2018. text {
  2019. font-size: 24rpx;
  2020. font-weight: 500;
  2021. }
  2022. }
  2023. }
  2024. .money-box-c-r {
  2025. width: 50%;
  2026. height: 100%;
  2027. .money-box-c-r-name {
  2028. width: 100%;
  2029. color: #333333;
  2030. font-size: 28rpx;
  2031. font-weight: bold;
  2032. padding-left: 30rpx;
  2033. }
  2034. .money-box-c-r-more {
  2035. width: 100%;
  2036. color: #999999;
  2037. font-size: 24rpx;
  2038. font-weight: 400;
  2039. padding-left: 30rpx;
  2040. margin-top: 20rpx;
  2041. }
  2042. }
  2043. }
  2044. }
  2045. // 更多功能区域
  2046. .more-functions {
  2047. margin: 40rpx 32rpx 0;
  2048. padding: 24rpx 48rpx 48rpx 48rpx;
  2049. /* background: #fff;
  2050. border-radius: 24rpx; */
  2051. .section-title {
  2052. color: rgba(29, 33, 41, 1);
  2053. font-family: DM Sans;
  2054. font-size: 28rpx;
  2055. font-weight: 500;
  2056. line-height: 44rpx;
  2057. letter-spacing: 0%;
  2058. text-align: left;
  2059. padding-bottom: 16rpx;
  2060. border-bottom: 0.5px solid rgba(238, 238, 238, 1);
  2061. }
  2062. .function-grid {
  2063. margin-top: 24rpx;
  2064. display: flex;
  2065. flex-wrap: wrap;
  2066. padding-top: 16rpx;
  2067. // gap: 70rpx;
  2068. margin: -12rpx -35rpx; // 兼容低版本系统不支持gap属性
  2069. .function-item {
  2070. display: flex;
  2071. flex-direction: column;
  2072. align-items: center;
  2073. margin: 12rpx 35rpx;
  2074. .function-icon {
  2075. width: 48rpx;
  2076. height: 48rpx;
  2077. margin-bottom: 16rpx;
  2078. }
  2079. .function-text {
  2080. color: #333;
  2081. font-size: 24rpx;
  2082. font-weight: 500;
  2083. }
  2084. }
  2085. }
  2086. }
  2087. // 联系信息
  2088. .contact-info {
  2089. margin: 0 40rpx 120rpx 40rpx;
  2090. padding: 40rpx;
  2091. .contact-text,
  2092. .legal-text,
  2093. .icp-text {
  2094. display: block;
  2095. color: rgba(153, 153, 153, 1);
  2096. font-family: DM Sans;
  2097. font-size: 18rpx;
  2098. font-weight: 400;
  2099. line-height: 1.6;
  2100. letter-spacing: 0%;
  2101. text-align: center;
  2102. margin-bottom: 8rpx;
  2103. }
  2104. }
  2105. .pop-image{
  2106. flex: 1;
  2107. width: 85vw;
  2108. image{
  2109. width: 100%;
  2110. height: 100%;
  2111. }
  2112. }
  2113. .pop-btn{
  2114. width: 100%;
  2115. margin-top: 20rpx;
  2116. border-radius: 40rpx;
  2117. }
  2118. .info-box-header-r-text{
  2119. width: 340rpx;
  2120. height: fit-content;
  2121. overflow: hidden;
  2122. white-space: nowrap;
  2123. text-overflow: ellipsis;
  2124. -o-text-overflow: ellipsis;
  2125. }
  2126. </style>