header.vue 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324
  1. <template>
  2. <div
  3. id="proginn-header"
  4. :class="{ transparent: transparent }"
  5. :style="{ position: customPosition }"
  6. >
  7. <div class="list">
  8. <div class="header-left">
  9. <a
  10. :href="baseUrl"
  11. @click="cnzz('导航栏目', 'logo', '')"
  12. class="nav-item logo"
  13. >
  14. <img
  15. class="logo"
  16. :src="
  17. transparent
  18. ? WhiteLogo
  19. : 'https://stacdn.proginn.com/image/common/logo3@2x.png'
  20. "
  21. />
  22. </a>
  23. <a
  24. :href="baseUrl"
  25. @click="cnzz('导航栏目', '首页', '')"
  26. class="nav-item"
  27. >首页</a
  28. >
  29. <a
  30. :href="baseUrl + '/cat/'"
  31. @click="cnzz('导航栏目', '程序员', '')"
  32. class="nav-item"
  33. >程序员</a
  34. >
  35. <!-- 解决方案 -->
  36. <el-dropdown class="more-dropdown" placement="bottom-start">
  37. <el-button
  38. type="text"
  39. @click="cnzz('导航栏目', '解决方案', '')"
  40. class="dashboard-title"
  41. >产品<i class="el-icon-arrow-down"></i
  42. ></el-button>
  43. <el-dropdown-menu slot="dropdown" class="jiejuefangan-dropdown">
  44. <div class="deal-item" style="padidng-right:40px;">
  45. <div class="big-title">
  46. <img
  47. src="@/assets/img/header/new/jiejuefangan2@2x.png"
  48. alt="招聘用人"
  49. />
  50. <span>招聘用人</span>
  51. </div>
  52. <div>
  53. <el-dropdown-item>
  54. <a
  55. class="more-item fuwu-item"
  56. @click="cnzz('导航栏目', '自由工作', '')"
  57. :href="`${baseUrl}/b/cloud`"
  58. >
  59. <span class="big">云端工作</span>
  60. <span class="small">自由工作、远程工作</span>
  61. </a>
  62. </el-dropdown-item>
  63. </div>
  64. </div>
  65. <div class="deal-item">
  66. <div class="big-title">
  67. <img
  68. src="@/assets/img/header/new/jiejuefangan1@2x.png"
  69. alt="项目研发"
  70. />
  71. <span>项目研发</span>
  72. </div>
  73. <div>
  74. <el-dropdown-item>
  75. <a
  76. class="more-item fuwu-item"
  77. @click="cnzz('导航栏目', '需求梳理', '')"
  78. :href="`${baseUrl}/b/p1980`"
  79. >
  80. <span class="big">需求梳理</span>
  81. <span class="small">规划落地您的想法</span>
  82. </a>
  83. </el-dropdown-item>
  84. <el-dropdown-item>
  85. <a
  86. class="more-item fuwu-item"
  87. @click="cnzz('导航栏目', '整包开发', '')"
  88. :href="`${baseUrl}/b/outsource`"
  89. >
  90. <span class="big">整包开发</span>
  91. <span class="small">一站式软件开发</span>
  92. </a>
  93. </el-dropdown-item>
  94. </div>
  95. </div>
  96. <div class="deal-item">
  97. <div class="big-title">
  98. <img
  99. src="@/assets/img/header/new/jiejuefangan1@2x.png"
  100. alt="云服务"
  101. />
  102. <span>云服务</span>
  103. </div>
  104. <div>
  105. <el-dropdown-item>
  106. <a
  107. class="more-item fuwu-item"
  108. @click="cnzz('导航栏目', '需求梳理', '')"
  109. :href="`https://unisms.apistd.com/`"
  110. >
  111. <span class="big">UniSMS</span>
  112. <span class="small">合一短信&nbsp聚合API短信平台</span>
  113. </a>
  114. </el-dropdown-item>
  115. <el-dropdown-item>
  116. <a
  117. class="more-item fuwu-item"
  118. @click="cnzz('导航栏目', '整包开发', '')"
  119. :href="`https://www.apiuni.cn/product/uniapi`"
  120. >
  121. <span class="big">UniAPI</span>
  122. <span class="small">合一网关 全类API业务场景</span>
  123. </a>
  124. </el-dropdown-item>
  125. </div>
  126. </div>
  127. </el-dropdown-menu>
  128. </el-dropdown>
  129. <a :href="baseUrl + '/works/'" class="nav-item">技术</a>
  130. <!-- <a target="_blank" href="https://unisms.apistd.com/" class="nav-item">合一短信</a>-->
  131. <!-- 搜索 -->
  132. <div class="btn_search" style="margin-left:40px;">
  133. <div style="position: relative;" class="">
  134. <input
  135. class="input"
  136. autocomplete="off"
  137. placeholder="搜索您感兴趣的内容"
  138. v-model="keywork"
  139. @keyup.enter="clickInputEnter"
  140. />
  141. <i class="el-icon-search" @click="clickInputEnter"></i>
  142. <span class="input-line"></span>
  143. </div>
  144. <div class="dropdown" style="display:none;"></div>
  145. <div class="dropdown" style="display:none;"></div>
  146. </div>
  147. </div>
  148. <div class="header-right">
  149. <!--
  150. 发布需按钮显示逻辑
  151. 1。未登录,需要显示
  152. 2.企业身份:需要显示
  153. 3.开发者身份:需要展示
  154. -->
  155. <div @click="goToCompanyHome" class="nav-button nav-button-type1">
  156. 发布需求
  157. </div>
  158. <!--
  159. 开发者入住按钮显示逻辑
  160. 1。未登录,需要显示
  161. 2.其余情况不显示
  162. -->
  163. <div
  164. @click="goToPersonalHome"
  165. v-if="!myInfo.uid"
  166. class="nav-button nav-button-type2"
  167. >
  168. 开发者入驻
  169. </div>
  170. <template v-if="myInfo.nickname">
  171. <el-button
  172. type="text"
  173. style="padding-right: 30px"
  174. @click="cnzz('导航栏目', '工作台', '')"
  175. class="dashboard-title"
  176. >
  177. <a class="workstation" :href="baseUrl + '/wo/work_todo'">
  178. 工作台
  179. </a>
  180. </el-button>
  181. <el-dropdown class="nav-dropdown" style="">
  182. <el-button
  183. type="text"
  184. @click="cnzz('导航栏目', '消息', '')"
  185. class="message-box-title"
  186. >
  187. <!-- <i class="el-icon-message"></i> -->
  188. 消息
  189. <span
  190. v-if="messageCount.total > 0"
  191. class="message-count message-total"
  192. >{{ messageCount.total }}</span
  193. >
  194. </el-button>
  195. <el-dropdown-menu slot="dropdown" class="xiaoxi-dropdown">
  196. <el-dropdown-item
  197. class="message-box"
  198. @click.native="clickMessages('/message/system')"
  199. >
  200. <i class="circle blue"></i>系统消息
  201. <span v-if="messageCount.system" class="message-count">{{
  202. messageCount.system
  203. }}</span>
  204. </el-dropdown-item>
  205. <el-dropdown-item
  206. class="message-box"
  207. @click.native="clickMessages('/message/project')"
  208. >
  209. <i class="circle orange"></i>工作通知
  210. <span v-if="messageCount.work" class="message-count">{{
  211. messageCount.work
  212. }}</span>
  213. </el-dropdown-item>
  214. <el-dropdown-item
  215. class="message-box"
  216. @click.native="clickMessages('/message/comment')"
  217. >
  218. <i class="circle red"></i>评论回复
  219. <span v-if="messageCount.reply" class="message-count">{{
  220. messageCount.reply
  221. }}</span>
  222. </el-dropdown-item>
  223. <el-dropdown-item
  224. class="message-box"
  225. @click.native="clickMessages('/message/at')"
  226. >
  227. <i class="circle green"></i>@我的
  228. <span v-if="messageCount.at" class="message-count">{{
  229. messageCount.at
  230. }}</span>
  231. </el-dropdown-item>
  232. <el-dropdown-item
  233. class="message-box"
  234. @click.native="clickMessages('/message/plus')"
  235. >
  236. <i class="circle pink"></i>赞及其它
  237. <span
  238. v-if="messageCount.community_other"
  239. class="message-count"
  240. >{{ messageCount.community_other }}</span
  241. >
  242. </el-dropdown-item>
  243. <el-dropdown-item
  244. class="message-box"
  245. @click.native="clickMessages('/message/coin')"
  246. >
  247. <i class="circle yellow"></i>收支信息
  248. <span v-if="messageCount.balance" class="message-count">{{
  249. messageCount.balance
  250. }}</span>
  251. </el-dropdown-item>
  252. </el-dropdown-menu>
  253. </el-dropdown>
  254. <a
  255. class="account-change"
  256. style="margin-right:40px"
  257. :href="baseUrl + '/frontend/accountchange'"
  258. >切换身份</a
  259. >
  260. <el-popover
  261. class="nav-popover "
  262. placement="bottom"
  263. width="226"
  264. trigger="hover"
  265. >
  266. <div class="ref" slot="reference">
  267. <a class="nav-header" :href="baseUrl + '/wo/work_todo'">
  268. <img class="header-user" :src="myInfo.icon_url" />
  269. <img
  270. v-if="myInfo.is_vip"
  271. class="header-vip-icon"
  272. :src="baseUrl + `/Public/image/h5/vip_icon${vipImage}.png`"
  273. alt="vip-icon"
  274. />
  275. </a>
  276. </div>
  277. <div class="menu">
  278. <!-- 是否vip -->
  279. <template v-if="myInfo.is_vip">
  280. <!-- 企业vip -->
  281. <div
  282. class="ma-vip-area"
  283. :class='{
  284. "ma-company-vip":vipType == "enterprise" ? true:false,
  285. "ma-develop-vip":vipType == "developer"? true:false
  286. }'
  287. >
  288. <div class="ma-vip-title">
  289. <img
  290. v-if="vipType == 'enterprise'"
  291. src="@/assets/img/header/company_vip.png"
  292. class="ma-vip-icon"
  293. />
  294. <img
  295. v-else
  296. src="@/assets/img/header/develop_vip.png"
  297. class="ma-vip-icon"
  298. />
  299. <span>{{vipText}}</span>
  300. </div>
  301. <div class="ma-vip-time">{{ vipInfo.endDate }}到期</div>
  302. <div class="ma-vip-link">
  303. <a :href="baseUrl + '/type/vip/' + vipType">查看权益</a>
  304. <a
  305. :href="
  306. baseUrl +
  307. '/vip/pay?number=3&amp;product_id=' +
  308. this.$store.state.userinfo.vip_type_id +
  309. '&amp;next=/type/vip/' +
  310. vipType
  311. "
  312. >立即续费</a
  313. >
  314. </div>
  315. </div>
  316. </template>
  317. <template v-else>
  318. <div class="ma-vip-area ma-not-vip">
  319. <div class="ma-vip-title">
  320. <img
  321. src="@/assets/img/header/not_vip.png"
  322. class="ma-vip-icon"
  323. />
  324. <span>{{isCompanyAccount ? '企业版会员':"开发者会员"}}</span>
  325. </div>
  326. <div class="ma-vip-apply">
  327. <span>未开通,</span>
  328. <a v-if="isCompanyAccount" :href="baseUrl + '/type/vip/enterprise'">立即开通</a>
  329. <a v-else :href="baseUrl + '/type/vip/developer'">立即开通</a>
  330. </div>
  331. </div>
  332. </template>
  333. <div class="vip-items">
  334. <!-- <a class="vip-item divider" :href="baseUrl + '/wo/work_platform'">
  335. <i class="el-icon-date"></i>我的项目
  336. </a>
  337. <a class="vip-item" :href="baseUrl + '/wo/work_hire'">
  338. <i class="el-icon-news"></i>我的雇佣
  339. </a>
  340. <a class="vip-item" :href="baseUrl + '/wo/work_cloud'">
  341. <i class="el-icon-service"></i>我的远程
  342. </a> -->
  343. <a
  344. class="vip-item divider"
  345. @click="cnzz('我的', '我的主页', '')"
  346. :href="baseUrl + `/wo/manage_homepage`"
  347. >
  348. <i class="el-icon-document"></i>我的主页
  349. </a>
  350. <a
  351. class="vip-item"
  352. @click="cnzz('我的', '技术信用', '')"
  353. :href="baseUrl + '/b/credit'"
  354. >
  355. <i class="el-icon-credit"></i>技术信用
  356. </a>
  357. <a
  358. class="vip-item"
  359. @click="cnzz('我的', '收藏中心', '')"
  360. :href="baseUrl + '/otherpage/user/collection'"
  361. >
  362. <i class="el-icon-collection"></i>收藏中心
  363. </a>
  364. <a
  365. class="vip-item divider"
  366. @click="cnzz('我的', 'APP下载', '')"
  367. :href="baseUrl + '/index/app'"
  368. >
  369. <i class="el-icon-download-app"></i>下载APP
  370. </a>
  371. <a class="vip-item" @click="clickQuit">
  372. <i class="el-icon-back" style="margin: 0 10px !important;"></i
  373. >退出
  374. </a>
  375. </div>
  376. </div>
  377. </el-popover>
  378. </template>
  379. <div v-else>
  380. <a
  381. class="account-ctrl"
  382. style="margin-right:25px"
  383. @click="cnzz('导航栏目', 'APP下载', '')"
  384. :href="baseUrl + '/index/app'"
  385. >APP</a
  386. >
  387. <span class="account-ctrl" style="margin-right:37px;">
  388. <a class="account-ctrl" :href="loginUrl">登录</a>
  389. /
  390. <a class="account-ctrl" :href="baseUrl + '/user/register'">注册</a>
  391. </span>
  392. </div>
  393. </div>
  394. </div>
  395. </div>
  396. </template>
  397. <script>
  398. import WhiteLogo from "@/assets/img/white_logo@2x.png";
  399. import KaifainIcon from "@/assets/img/header/new/kaifain2@2x.png";
  400. import JishuinIcon from "@/assets/img/header/new/jishuin@2x.png";
  401. import YesDevIcon from "@/assets/img/header/new/yesdev@2x.png";
  402. import DownloadIcon from "@/assets/img/header/new/download.png";
  403. // import DropDownData from "./headers/dropDownData.js";
  404. export default {
  405. props: ["transparent"],
  406. data() {
  407. return {
  408. KaifainIcon,
  409. JishuinIcon,
  410. YesDevIcon,
  411. DownloadIcon,
  412. baseUrl: "",
  413. jishuBaseUrl: "",
  414. kaifainUrl: "",
  415. jobUrl: "",
  416. // 搜索的关键词
  417. keywork: "",
  418. // 消息数量
  419. messageCount: {},
  420. WhiteLogo,
  421. loginUrl: "",
  422. // dropDownData: [],
  423. selectedDropTitle: "",
  424. selectedDrop: 0,
  425. showDropDown: false
  426. };
  427. },
  428. computed: {
  429. vipInfo() {
  430. let userinfo = this.$store.state.userinfo;
  431. return {
  432. id: userinfo.vip_type_id,
  433. endDate: userinfo.vip_end_date
  434. };
  435. },
  436. isPersonalAccount() {
  437. let userinfo = this.$store.state.userinfo;
  438. return userinfo.home_page_type == 2 ? true:false;
  439. },
  440. isCompanyAccount() {
  441. let userinfo = this.$store.state.userinfo;
  442. return userinfo.home_page_type == 1 ? true:false;
  443. },
  444. myInfo() {
  445. return this.$store.state.userinfo;
  446. },
  447. isCom() {
  448. return this.$store.state.userinfo.vip_type_id === "1";
  449. },
  450. vipImage() {
  451. switch (parseInt(this.$store.state.userinfo.vip_type_id)) {
  452. case 1:
  453. return "_com";
  454. case 2:
  455. return "";
  456. case 3:
  457. return "_premium";
  458. default:
  459. return "";
  460. }
  461. },
  462. vipType() {
  463. switch (parseInt(this.$store.state.userinfo.vip_type_id)) {
  464. case 1:
  465. case 3:
  466. return "enterprise";
  467. break;
  468. case 2:
  469. return "developer";
  470. }
  471. },
  472. vipTextClass() {
  473. switch (parseInt(this.$store.state.userinfo.vip_type_id)) {
  474. case 1:
  475. return "is-newly";
  476. case 2:
  477. return "is-dev";
  478. case 3:
  479. return "is-premium";
  480. default:
  481. return "";
  482. }
  483. },
  484. vipText() {
  485. switch (parseInt(this.$store.state.userinfo.vip_type_id)) {
  486. case 1:
  487. return "初创版会员";
  488. case 2:
  489. return "开发者会员";
  490. case 3:
  491. return "企业版会员";
  492. default:
  493. return "";
  494. }
  495. },
  496. customPosition() {
  497. let customPosition = "relative";
  498. const routeName = this.$route.name;
  499. if (routeName.indexOf("SeoConsultUser") > -1) {
  500. customPosition = "fixed";
  501. }
  502. return customPosition;
  503. }
  504. },
  505. mounted() {
  506. // console.error(this.app.co)
  507. if (this.myInfo && this.myInfo.nickname) {
  508. this.getMessageCount();
  509. }
  510. this.loginUrl =
  511. this.baseUrl +
  512. "/?loginbox=show&next=" +
  513. encodeURIComponent(location.href);
  514. this.keywork = this.$route.query.keyword;
  515. // console.log("this.keywork = ", this.key)
  516. },
  517. methods: {
  518. goToCompanyHome() {
  519. // 点击发布需求
  520. // 如没登录,跳到登录页
  521. if (this.myInfo.nickname) {
  522. location.href = this.baseUrl + "/frontend/requirements";
  523. } else {
  524. location.href = this.baseUrl + "/type/service";
  525. }
  526. },
  527. goToPersonalHome() {
  528. // 点击开发者入驻
  529. // 如没登录,跳到登录页
  530. if (this.myInfo.nickname) {
  531. } else {
  532. location.href = this.loginUrl;
  533. }
  534. },
  535. async clickQuit() {
  536. this.cnzz("我的", "退出登录", "");
  537. location.href = this.baseUrl + "/user/quit";
  538. },
  539. clickMessages(url) {
  540. location.href = this.baseUrl + url;
  541. },
  542. clickInputEnter() {
  543. let url = "/search?keyword=" + this.keywork;
  544. console.log(this.$route);
  545. if (this.$route.name === "job") {
  546. url = "/search?keyword=" + this.keywork;
  547. } else if (this.$route.name === "user-searchTopic") {
  548. url = "/user/searchTopic?keyword=" + this.keywork;
  549. }
  550. console.log(url);
  551. this.cnzz("我的", "放大镜搜索", "");
  552. window.location.href = url;
  553. },
  554. async getMessageCount() {
  555. let res = await this.$axios.$get(
  556. "/api/message/getUnreadCount",
  557. {},
  558. { neverLogout: true }
  559. );
  560. if (res) {
  561. this.messageCount = res.data;
  562. }
  563. },
  564. handleTitleMouseover(index) {
  565. this.selectedDropTitle = index;
  566. this.selectedDrop = index;
  567. },
  568. handleTitleMouseout(index) {
  569. this.selectedDropTitle = "";
  570. }
  571. },
  572. created() {
  573. this.baseUrl = this.$store.state.domainConfig.siteUrl;
  574. this.jishuBaseUrl = this.$store.state.domainConfig.jishuinUrl;
  575. this.kaifainUrl = this.$store.state.domainConfig.kaifainUrl;
  576. this.jobUrl = this.$store.state.domainConfig.jobUrl;
  577. }
  578. };
  579. </script>
  580. <style lang="scss" scoped>
  581. @media only screen and (max-width: 1220px) {
  582. .btn_search {
  583. display: none;
  584. }
  585. }
  586. .header-left {
  587. padding-left: 15px;
  588. }
  589. .dropDownArea {
  590. position: relative;
  591. .showDropDownArea {
  592. display: none;
  593. }
  594. &:hover {
  595. .showDropDownArea {
  596. margin-top: 28px;
  597. padding-top: 32px;
  598. display: block;
  599. position: absolute;
  600. left: 0;
  601. top: 0;
  602. background: transparent;
  603. transform: translateX(-30%);
  604. .contentArea {
  605. display: flex;
  606. box-sizing: content-box;
  607. width: 830px;
  608. height: 360px;
  609. background: #ffffff;
  610. border-radius: 6px;
  611. box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.06);
  612. .leftSelect {
  613. width: 180px;
  614. height: 100%;
  615. background: #f4f5f9;
  616. .downCell {
  617. height: 75px;
  618. box-sizing: border-box;
  619. padding-left: 30px;
  620. display: flex;
  621. justify-content: center;
  622. flex-direction: column;
  623. .cnName {
  624. height: 23px;
  625. font-size: 17px;
  626. text-align: left;
  627. color: #222222;
  628. line-height: 23px;
  629. font-weight: 600;
  630. }
  631. .enName {
  632. height: 17px;
  633. font-size: 12px;
  634. text-align: left;
  635. color: #999999;
  636. line-height: 17px;
  637. }
  638. &.choosed {
  639. background: #fff;
  640. position: relative;
  641. &:after {
  642. position: absolute;
  643. content: "";
  644. width: 3px;
  645. height: 31px;
  646. background: #308eff;
  647. left: 0;
  648. top: 50%;
  649. transform: translateY(-50%);
  650. }
  651. }
  652. }
  653. }
  654. .rightShow {
  655. width: 650px;
  656. background: #fff;
  657. height: 100%;
  658. box-sizing: border-box;
  659. padding: 0 34px 0 23px;
  660. .rightBigCell {
  661. display: none;
  662. justify-content: space-between;
  663. width: 594px;
  664. height: auto;
  665. // box-shadow: 0px -1px 0px 0px #e2e8ee inset;
  666. padding-bottom: 14px;
  667. box-sizing: border-box;
  668. flex-wrap: wrap;
  669. &:last-child {
  670. box-shadow: none;
  671. }
  672. .smallCell {
  673. height: 110px;
  674. margin-top: 14px;
  675. display: flex;
  676. justify-content: flex-start;
  677. align-items: center;
  678. width: 280px;
  679. cursor: pointer;
  680. box-sizing: border-box;
  681. padding-left: 40px;
  682. border-radius: 12px;
  683. .cellLeftIcon {
  684. flex-shrink: 0;
  685. width: 40px;
  686. height: 40px;
  687. img {
  688. width: 40px;
  689. height: 40px;
  690. }
  691. }
  692. .cellRightArea {
  693. margin-left: 11px;
  694. .cellRightName {
  695. height: 24px;
  696. font-size: 18px;
  697. text-align: left;
  698. color: #222222;
  699. line-height: 24px;
  700. font-weight: 600;
  701. }
  702. .cellRightDesc {
  703. margin-top: 1px;
  704. height: 19px;
  705. font-size: 14px;
  706. text-align: left;
  707. color: #999999;
  708. line-height: 19px;
  709. }
  710. }
  711. }
  712. &.ok {
  713. display: flex;
  714. .smallCell {
  715. background-color: rgb(238, 246, 254);
  716. }
  717. }
  718. }
  719. }
  720. }
  721. }
  722. }
  723. }
  724. .more-item {
  725. // padding: 4px 12px 4px 8px;
  726. display: flex;
  727. align-items: center;
  728. img {
  729. width: 24px;
  730. height: 24px;
  731. margin-right: 12px;
  732. }
  733. span {
  734. font-size: 15px;
  735. color: rgba(0, 0, 0, 0.85);
  736. font-weight: 500;
  737. }
  738. }
  739. .more-item.fuwu-item {
  740. img {
  741. width: 28px;
  742. height: 28px;
  743. }
  744. .text {
  745. display: flex;
  746. flex-direction: column;
  747. }
  748. .big {
  749. font-size: 15px;
  750. font-family: PingFangSC, PingFangSC-Semibold;
  751. font-weight: 600;
  752. color: #222;
  753. }
  754. .small {
  755. font-size: 12px;
  756. font-family: PingFangSC, PingFangSC-Regular;
  757. font-weight: 400;
  758. color: #666;
  759. }
  760. }
  761. .fuwu-dropdown {
  762. padding: 10px 0;
  763. // top: 60px;
  764. border: 1px solid rgba(0, 0, 0, 0.05);
  765. border-radius: 10px;
  766. box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.01);
  767. .el-dropdown-menu__item {
  768. line-height: 20px !important;
  769. padding: 12px 20px !important;
  770. }
  771. }
  772. .gengduo-dropdown {
  773. border: 1px solid rgba(0, 0, 0, 0.05);
  774. border-radius: 10px;
  775. box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.01);
  776. }
  777. .jiejuefangan-dropdown {
  778. display: flex;
  779. padding: 36px;
  780. border: 1px solid rgba(0, 0, 0, 0.05);
  781. border-radius: 10px;
  782. box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.01);
  783. .deal-item{
  784. padding: 0 20px;
  785. }
  786. .big-title {
  787. display: flex;
  788. align-items: center;
  789. padding-bottom: 12px;
  790. img {
  791. width: 28px;
  792. height: 28px;
  793. }
  794. span {
  795. font-size: 18px;
  796. font-family: PingFangSC, PingFangSC-Semibold;
  797. font-weight: 600;
  798. color: #222;
  799. margin-left: 6px;
  800. }
  801. }
  802. .more-item.fuwu-item {
  803. flex-direction: column;
  804. align-items: inherit;
  805. }
  806. .el-dropdown-menu__item {
  807. line-height: 20px !important;
  808. padding: 10px 10px 10px 34px;
  809. }
  810. }
  811. .xiaoxi-dropdown {
  812. border: 1px solid rgba(0, 0, 0, 0.05);
  813. border-radius: 10px;
  814. box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.01);
  815. }
  816. </style>
  817. <style scoped>
  818. #proginn-header {
  819. position: fixed !important;
  820. top: 0;
  821. left: 0;
  822. display: flex;
  823. justify-content: center;
  824. width: 100%;
  825. width: 100vw;
  826. height: 65px;
  827. background: white;
  828. z-index: 10;
  829. border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  830. }
  831. .list {
  832. display: flex;
  833. justify-content: space-between;
  834. max-width: 1440px;
  835. width: 100%;
  836. min-width: 1050px;
  837. }
  838. .header-left {
  839. display: flex;
  840. align-items: center;
  841. }
  842. .header-right {
  843. display: flex;
  844. align-items: center;
  845. }
  846. .nav-item {
  847. display: flex;
  848. height: 100%;
  849. align-items: center;
  850. font-size: 14px;
  851. color: #515151;
  852. box-sizing: border-box;
  853. padding: 0 20px;
  854. font-family: PingFangSC-Regular, PingFang SC;
  855. font-weight: 400;
  856. }
  857. .nav-item.logo {
  858. margin-right: 22px;
  859. padding: 0;
  860. }
  861. .nav-item:first-child {
  862. padding: 0;
  863. }
  864. .nav-item:nth-child(n + 2):hover {
  865. color: #1782d9;
  866. border-top: 5px solid transparent;
  867. border-bottom: 5px solid #1782d9;
  868. }
  869. .nav-dropdown,
  870. .nav-popover {
  871. width: 30px;
  872. height: 30px;
  873. display: flex;
  874. align-items: center;
  875. margin-right: 40px;
  876. }
  877. .nav-popover > .ref {
  878. display: flex;
  879. align-items: center;
  880. }
  881. .nav-header {
  882. position: relative;
  883. width: var(--imgWidth);
  884. height: var(--imgWidth);
  885. margin-right: 5px;
  886. }
  887. .logo {
  888. /* width: 126px; */
  889. /* height: auto; */
  890. height: 35px;
  891. }
  892. .input {
  893. width: 218px;
  894. height: 34px;
  895. background: #f7f8fa;
  896. border-radius: 4px;
  897. padding: 0 45px 0 16px;
  898. /* border: 1px solid #ebebeb; */
  899. font-size: 14px;
  900. }
  901. .input::-webkit-input-placeholder {
  902. color: #828c99;
  903. }
  904. .more-dropdown {
  905. padding: 0 20px;
  906. }
  907. .more-dropdown .dashboard-title {
  908. color: #515151;
  909. }
  910. .el-icon-search {
  911. position: absolute;
  912. top: 50%;
  913. transform: translateY(-50%);
  914. right: 11px;
  915. color: grey;
  916. cursor: pointer;
  917. }
  918. .input-line {
  919. position: absolute;
  920. top: 50%;
  921. transform: translateY(-50%);
  922. right: 39px;
  923. width: 1px;
  924. height: 12px;
  925. border: 1px solid #ebeced;
  926. }
  927. .el-icon-credit {
  928. background: url("~@/assets/img/header/creditIconMine.png") no-repeat;
  929. background-size: cover;
  930. width: 16px;
  931. height: 16px;
  932. vertical-align: middle;
  933. margin: 0 9px !important;
  934. }
  935. .el-icon-download-app {
  936. background: url("~@/assets/img/header/download@2x.png") no-repeat;
  937. background-size: cover;
  938. width: 16px;
  939. height: 16px;
  940. vertical-align: middle;
  941. margin: 0 9px !important;
  942. }
  943. .el-icon-search::before {
  944. font-size: 14px;
  945. font-weight: 800;
  946. }
  947. i {
  948. margin-right: 4px;
  949. }
  950. i.circle {
  951. display: inline-block;
  952. --width: 12px;
  953. width: var(--width);
  954. height: var(--width);
  955. border-radius: calc(var(--width) / 2);
  956. }
  957. i.blue {
  958. background: #3b83c0;
  959. }
  960. i.orange {
  961. background: #e07b53;
  962. }
  963. i.red {
  964. background: #d95c5c;
  965. }
  966. i.green {
  967. background: #5bbd72;
  968. }
  969. i.pink {
  970. background: #d9499a;
  971. }
  972. i.yellow {
  973. background: #f2c61f;
  974. }
  975. .message-box {
  976. position: relative;
  977. display: flex;
  978. align-items: center;
  979. }
  980. .message-count {
  981. color: white;
  982. margin-left: 4px;
  983. display: block;
  984. line-height: 18px;
  985. padding: 0 8px;
  986. border-radius: 9px;
  987. background: grey;
  988. }
  989. .message-count.message-total {
  990. position: absolute;
  991. top: -5px;
  992. right: -15px;
  993. background: #d95c5c;
  994. }
  995. span.other-icon {
  996. display: block;
  997. margin-left: 30px;
  998. }
  999. .nickname {
  1000. font-size: 15px;
  1001. }
  1002. .vip-info {
  1003. display: flex;
  1004. flex-direction: column;
  1005. justify-content: center;
  1006. align-items: center;
  1007. width: 206px;
  1008. height: 120px;
  1009. }
  1010. .vip-info-top {
  1011. display: flex;
  1012. width: 142px;
  1013. }
  1014. .vip-title {
  1015. color: #cb9d53;
  1016. font-size: 16px;
  1017. line-height: 36px;
  1018. }
  1019. .vip-icon {
  1020. width: 24px;
  1021. height: 24px;
  1022. margin: 10px 8px 0 0;
  1023. }
  1024. .vip-end-date {
  1025. font-size: 12px;
  1026. color: #999;
  1027. }
  1028. .vip-arcs {
  1029. display: flex;
  1030. justify-content: space-between;
  1031. width: 142px;
  1032. margin-top: 11px;
  1033. }
  1034. .vip-arc {
  1035. flex: 1;
  1036. font-size: 13px;
  1037. color: #cb9d53;
  1038. text-align: center;
  1039. }
  1040. .vip-arc:first-child {
  1041. border-right: 1px solid rgba(245, 245, 245, 1);
  1042. }
  1043. .vip-info-com .vip-title {
  1044. color: rgb(113, 177, 253);
  1045. }
  1046. .vip-info-com .vip-arc {
  1047. color: rgb(113, 177, 253);
  1048. }
  1049. .header-user {
  1050. width: var(--imgWidth);
  1051. height: var(--imgWidth);
  1052. border-radius: 20px;
  1053. width: 30px !important;
  1054. max-width: 30px !important;
  1055. }
  1056. .header-vip-icon {
  1057. position: absolute;
  1058. top: 15px;
  1059. left: 22px;
  1060. width: 16px;
  1061. height: 16px;
  1062. }
  1063. .vip-items {
  1064. display: flex;
  1065. flex-direction: column;
  1066. }
  1067. .vip-item {
  1068. line-height: 32px;
  1069. color: #606266;
  1070. }
  1071. .vip-item > i {
  1072. margin: 0 10px;
  1073. }
  1074. .divider {
  1075. border-top: 1px solid rgba(0, 0, 0, 0.05);
  1076. margin-top: 10px;
  1077. padding-top: 10px;
  1078. cursor: pointer;
  1079. }
  1080. .vip-info-com .is-dev {
  1081. color: #cb9d53;
  1082. }
  1083. .vip-info-com .is-newly {
  1084. color: #308eff;
  1085. }
  1086. .vip-info-com .is-premium {
  1087. color: #00c469;
  1088. }
  1089. .workstation {
  1090. color: #606266;
  1091. }
  1092. .account-ctrl {
  1093. color: #0b121a;
  1094. font-size: 14px;
  1095. }
  1096. .account-change {
  1097. color: #308eff;
  1098. font-size: 14px;
  1099. }
  1100. #proginn-header a {
  1101. text-decoration: none !important;
  1102. }
  1103. #proginn-header.transparent {
  1104. background: transparent;
  1105. border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  1106. }
  1107. #proginn-header.transparent a {
  1108. color: white;
  1109. }
  1110. .message-box-title,
  1111. .dashboard-title {
  1112. color: #0b121a;
  1113. font-size: 14px;
  1114. font-weight: normal;
  1115. }
  1116. .dashboard-title.on {
  1117. color: #1782d9;
  1118. }
  1119. #proginn-header.transparent .message-box-title,
  1120. #proginn-header.transparent .dashboard-title {
  1121. color: white;
  1122. }
  1123. #proginn-header.transparent .nickname {
  1124. color: white;
  1125. }
  1126. .nav-button {
  1127. width: 94px;
  1128. height: 30px;
  1129. line-height: 30px;
  1130. text-align: center;
  1131. font-size: 14px;
  1132. font-weight: 400;
  1133. color: #ffffff;
  1134. cursor: pointer;
  1135. font-family: PingFangSC-Regular, PingFang SC;
  1136. }
  1137. .nav-button-type1 {
  1138. background: #308eff;
  1139. border-radius: 2px;
  1140. margin-right: 14px;
  1141. }
  1142. .nav-button-type2 {
  1143. background: #ff7640;
  1144. border-radius: 2px;
  1145. margin-right: 45px;
  1146. }
  1147. .ma-v2-service {
  1148. position: relative;
  1149. left: -7px;
  1150. }
  1151. .ma-vip-area {
  1152. display: flex;
  1153. flex-direction: column;
  1154. align-items: center;
  1155. padding: 12px 0 12px;
  1156. }
  1157. .ma-vip-title {
  1158. display: flex;
  1159. position: relative;
  1160. font-size: 16px;
  1161. font-family: PingFangSC-Medium, PingFang SC;
  1162. font-weight: 500;
  1163. align-items: center;
  1164. }
  1165. .ma-vip-icon {
  1166. width: 24px;
  1167. height: 24px;
  1168. margin-right: 6px;
  1169. }
  1170. .ma-vip-time {
  1171. font-size: 11px;
  1172. font-family: PingFangSC-Regular, PingFang SC;
  1173. font-weight: 400;
  1174. color: #828c99;
  1175. line-height: 16px;
  1176. margin-top: 5px;
  1177. }
  1178. .ma-vip-link {
  1179. margin-top: 14px;
  1180. position: relative;
  1181. display: flex;
  1182. /* width: */
  1183. }
  1184. .ma-vip-link::before {
  1185. content: "";
  1186. position: absolute;
  1187. height: 14px;
  1188. width: 1px;
  1189. background-color: #828c99;
  1190. left: 50%;
  1191. top: 50%;
  1192. transform: translate(-50%, -50%) scaleX(0.5);
  1193. }
  1194. .ma-vip-link a {
  1195. display: inline-block;
  1196. margin: 0 22px;
  1197. font-size: 14px;
  1198. font-family: PingFangSC-Regular, PingFang SC;
  1199. font-weight: 400;
  1200. line-height: 20px;
  1201. }
  1202. .ma-vip-apply {
  1203. font-size: 13px;
  1204. font-family: PingFangSC-Regular, PingFang SC;
  1205. font-weight: 400;
  1206. /* color: #0B121A; */
  1207. line-height: 20px;
  1208. margin-top: 6px;
  1209. a {
  1210. color: #308eff;
  1211. }
  1212. }
  1213. .ma-company-vip .ma-vip-title,
  1214. .ma-company-vip a {
  1215. color: #308eff;
  1216. }
  1217. .ma-develop-vip .ma-vip-title,
  1218. .ma-develop-vip a {
  1219. color: #ce9d31;
  1220. }
  1221. .ma-not-vip .ma-vip-title {
  1222. color: #aaa;
  1223. }
  1224. </style>