bossMianshiDetail.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628
  1. <template>
  2. <view class="ms-detail">
  3. <view class="detail-bg"></view>
  4. <nav-bar title="面试详情"></nav-bar>
  5. <view class="detail-index">
  6. <view class="detail-title">明天14:00面试</view>
  7. <view class="detail-item">
  8. <view class="user-title">
  9. <view class="user-img-name">
  10. <view class="user-img">
  11. <image src="@/static/images/geren.png" mode="aspectFill" />
  12. </view>
  13. <view class="user-name"
  14. >孙先生
  15. <u-icon
  16. name="arrow-right"
  17. color="#c6c5ca"
  18. size="20"
  19. style="margin-left: 16rpx"
  20. ></u-icon
  21. ></view>
  22. </view>
  23. <view class="img-phone">
  24. <view class="img-item-icon">
  25. <image src="@/static/images/my/fujianjianli.svg" mode="scaleToFill" />
  26. <text>附件简历</text>
  27. </view>
  28. <view class="img-item-icon">
  29. <image src="@/static/images/my/dianhua.svg" mode="scaleToFill" />
  30. <text>电话</text>
  31. </view>
  32. </view>
  33. </view>
  34. </view>
  35. <view class="detail-item">
  36. <view class="user-title"> 面试信息 </view>
  37. <view class="msg-box">
  38. <view class="msg-item">
  39. <view class="msg-label">时间</view>
  40. <view class="msg-value">2025-09-19 20:00:00</view>
  41. </view>
  42. <view class="msg-item">
  43. <view class="msg-label">职位</view>
  44. <view class="msg-value">资深产品经理 15-25K·16薪</view>
  45. </view>
  46. <view class="msg-item">
  47. <view class="msg-label">联系人</view>
  48. <view class="msg-value">熊女士·18000000000</view>
  49. </view>
  50. <view class="msg-item">
  51. <view class="msg-label">备注</view>
  52. <view class="msg-value">请携带一份最新的简历</view>
  53. </view>
  54. <view class="msg-item">
  55. <view class="msg-label">地址</view>
  56. <view class="msg-value">光谷软件园F21602栋</view>
  57. </view>
  58. </view>
  59. </view>
  60. <view class="detail-item">
  61. <view class="txt-content">
  62. <view class="txt-desc">求职者不错?向他发起录用吧~</view>
  63. <view class="txt-btn">录用邀约</view>
  64. </view>
  65. </view>
  66. <view class="detail-item">
  67. <view class="user-title-second" style="padding-bottom: 28rpx">
  68. 将面试结果发送给对方
  69. </view>
  70. <view class="txt-content">
  71. <view class="txt-content-item">
  72. <image src="@/static/images/my/mianshitongguo.svg" mode="scaleToFill" />
  73. <view class="txt-mianshi">通过</view>
  74. </view>
  75. <view class="txt-content-item">
  76. <image src="@/static/images/my/kaolvyixia.svg" mode="scaleToFill" />
  77. <view class="txt-mianshi">考虑一下</view>
  78. </view>
  79. <view class="txt-content-item">
  80. <image src="@/static/images/my/butongguo.svg" mode="scaleToFill" />
  81. <view class="txt-mianshi">不通过</view>
  82. </view>
  83. </view>
  84. </view>
  85. <view class="detail-item" @click="showRecord = true">
  86. <view class="user-title-second"> 面试记录 </view>
  87. <view class="tag-box">
  88. <view class="mianshi-tag">待定</view>
  89. </view>
  90. <view class="mianshi-result-txt">
  91. 这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
  92. 这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
  93. </view>
  94. </view>
  95. <view class="detail-item" @click="showResult = true">
  96. <view class="user-title-second">
  97. <text>面试结果</text>
  98. <view class="user-img-result">
  99. <image
  100. src="@/static/images/my/mianshitongguo.svg"
  101. mode="scaleToFill"
  102. />面试通过
  103. </view></view
  104. >
  105. <view class="mianshi-result-txt">
  106. 这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
  107. 这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
  108. </view>
  109. </view>
  110. </view>
  111. <view class="btn-bottom">
  112. <view class="btn-item">取消面试</view>
  113. <view class="btn-item">修改面试</view>
  114. </view>
  115. <u-popup v-model="showRecord" mode="bottom" border-radius="40">
  116. <view class="mianshi-record">
  117. <view class="mianshi-title"> 面试记录 <text>(求职者不可用)</text> </view>
  118. <view class="mianshi-record-content">
  119. <view class="record-tag-box">
  120. <view
  121. class="record-tag"
  122. :class="{ 'record-tag-check': isCheck == index }"
  123. @click="CheckTag(index)"
  124. v-for="(item, index) in recordList"
  125. :key="index"
  126. >{{ item }}</view
  127. >
  128. </view>
  129. <view class="check-box">
  130. <textarea
  131. v-model="text"
  132. placeholder="请补充其他说明,不超过500个字"
  133. maxlength="500"
  134. @input="onInput"
  135. class="textarea"
  136. style="height:170rpx;"
  137. ></textarea>
  138. <view class="word-count">
  139. <text>{{ text ? text.length : 0 }}</text> /500</view
  140. >
  141. </view>
  142. </view>
  143. <view class="btn-mianshi">保存</view>
  144. </view>
  145. </u-popup>
  146. <u-popup v-model="showResult" mode="bottom" border-radius="40">
  147. <view class="mianshi-record">
  148. <view class="mianshi-title"> 面试结果</view>
  149. <view class="mianshi-record-content">
  150. <view class="txt-content" style="padding: 54rpx;box-sizing:border-box;">
  151. <view class="txt-content-item">
  152. <image src="@/static/images/my/mianshitongguo.svg" mode="scaleToFill" />
  153. <view class="txt-mianshi">通过</view>
  154. </view>
  155. <view class="txt-content-item">
  156. <image src="@/static/images/my/kaolvyixia.svg" mode="scaleToFill" />
  157. <view class="txt-mianshi">考虑一下</view>
  158. </view>
  159. <view class="txt-content-item">
  160. <image src="@/static/images/my/butongguo.svg" mode="scaleToFill" />
  161. <view class="txt-mianshi">不通过</view>
  162. </view>
  163. </view>
  164. <view class="check-box">
  165. <textarea
  166. v-model="text"
  167. placeholder="请补充其他说明,不超过500个字"
  168. maxlength="500"
  169. @input="onInput"
  170. class="textarea"
  171. style="height:170rpx;"
  172. ></textarea>
  173. <view class="word-count">
  174. <text>{{ text ? text.length : 0 }}</text> /500</view
  175. >
  176. </view>
  177. </view>
  178. <view class="btn-mianshi">保存</view>
  179. </view>
  180. </u-popup>
  181. </view>
  182. </template>
  183. <script>
  184. import navBar from "@/components/nav-bar/index.vue";
  185. export default {
  186. data() {
  187. return {
  188. currentStep: 3,
  189. showActions: true,
  190. showRecord: false,
  191. isCheck: 0,
  192. showResult: false,
  193. recordList: [
  194. "需要二面",
  195. "待定",
  196. "淘汰",
  197. "面试通过",
  198. "逻辑清晰",
  199. "经验丰富",
  200. "自我驱动",
  201. ],
  202. text: "",
  203. };
  204. },
  205. components: {
  206. navBar,
  207. },
  208. methods: {
  209. CheckTag(index) {
  210. this.isCheck = index;
  211. },
  212. handleSignIn() {
  213. this.$emit("sign-in");
  214. uni.showToast({
  215. title: "签到成功",
  216. icon: "success",
  217. });
  218. },
  219. handleStartInterview() {
  220. this.$emit("start-interview");
  221. },
  222. handleGetResult() {
  223. this.$emit("get-result");
  224. },
  225. handleComplaint() {
  226. this.$emit("complaint");
  227. uni.showModal({
  228. title: "客服投诉",
  229. content: "请描述您遇到的问题",
  230. editable: true,
  231. placeholderText: "请输入问题描述...",
  232. success: (res) => {
  233. if (res.confirm && res.content) {
  234. uni.showToast({
  235. title: "投诉已提交",
  236. icon: "success",
  237. });
  238. }
  239. },
  240. });
  241. },
  242. },
  243. };
  244. </script>
  245. <style scoped lang="scss">
  246. .ms-detail {
  247. position: absolute;
  248. left: 0;
  249. right: 0;
  250. bottom: 0;
  251. top: 0;
  252. display: flex;
  253. flex-direction: column;
  254. .detail-bg {
  255. height: 744rpx;
  256. width: 100%;
  257. background: linear-gradient(180deg, rgba(255, 102, 0, 1), rgba(255, 102, 0, 0) 100%);
  258. position: absolute;
  259. left: 0;
  260. top: 0;
  261. }
  262. .detail-index {
  263. flex: 1;
  264. position: relative;
  265. z-index: 2;
  266. overflow: hidden;
  267. overflow-y: auto;
  268. padding: 40rpx;
  269. box-sizing: border-box;
  270. .detail-item {
  271. padding: 36rpx;
  272. box-sizing: border-box;
  273. border: 1rpx solid rgba(227, 231, 236, 1);
  274. border-radius: 6px;
  275. background: rgba(255, 255, 255, 1);
  276. margin-top: 20rpx;
  277. .process-top {
  278. display: flex;
  279. justify-content: space-between;
  280. align-items: center;
  281. .process-title {
  282. color: rgba(29, 33, 41, 1);
  283. font-family: DM Sans;
  284. font-size: 24rpx;
  285. font-weight: 500;
  286. line-height: 32rpx;
  287. }
  288. .process-status {
  289. color: #016bf6;
  290. font-family: DM Sans;
  291. font-size: 20rpx;
  292. font-weight: 700;
  293. line-height: 26rpx;
  294. }
  295. }
  296. .user-title {
  297. display: flex;
  298. align-items: center;
  299. justify-content: space-between;
  300. .user-img-name {
  301. display: flex;
  302. justify-content: center;
  303. align-items: center;
  304. }
  305. .img-phone {
  306. display: flex;
  307. align-items: center;
  308. gap: 28rpx;
  309. .img-item-icon {
  310. display: flex;
  311. flex-direction: column;
  312. justify-content: center;
  313. align-items: center;
  314. image {
  315. width: 48rpx;
  316. height: 48rpx;
  317. }
  318. text {
  319. color: #999999;
  320. font-family: DM Sans;
  321. font-size: 20rpx;
  322. font-weight: 400;
  323. margin-top: 5rpx;
  324. line-height: 26rpx;
  325. }
  326. }
  327. }
  328. .user-img {
  329. overflow: hidden;
  330. width: 80rpx;
  331. height: 80rpx;
  332. border-radius: 50%;
  333. margin-right: 24rpx;
  334. border: 8rpx solid #f6f6f6;
  335. image {
  336. width: 100%;
  337. height: 100%;
  338. }
  339. }
  340. }
  341. .user-title-second {
  342. color: #1d2129;
  343. font-family: DM Sans;
  344. font-size: 24rpx;
  345. font-weight: 500;
  346. line-height: 32rpx;
  347. padding-bottom: 12rpx;
  348. display: flex;
  349. justify-content: space-between;
  350. align-items: center;
  351. }
  352. .user-img-result {
  353. display: flex;
  354. justify-content: center;
  355. align-items: center;
  356. image {
  357. width: 30rpx;
  358. height: 30rpx;
  359. margin-right: 4rpx;
  360. }
  361. color: rgba(102, 102, 102, 1);
  362. font-family: DM Sans;
  363. font-size: 20rpx;
  364. font-weight: 400;
  365. line-height: 26rpx;
  366. }
  367. .tag-box {
  368. display: flex;
  369. .mianshi-tag {
  370. border-radius: 8rpx;
  371. background: rgba(252, 233, 220, 1);
  372. padding: 8rpx;
  373. box-sizing: border-box;
  374. color: #016bf6;
  375. font-family: DM Sans;
  376. font-size: 16rpx;
  377. font-weight: 400;
  378. line-height: 20rpx;
  379. }
  380. }
  381. .mianshi-result-txt {
  382. color: #999999;
  383. font-family: DM Sans;
  384. font-size: 20rpx;
  385. font-weight: 400;
  386. line-height: 26rpx;
  387. margin-top: 4rpx;
  388. }
  389. .txt-desc {
  390. color: #1d2129;
  391. font-family: DM Sans;
  392. font-size: 24rpx;
  393. font-weight: 500;
  394. line-height: 32rpx;
  395. letter-spacing: 0%;
  396. }
  397. .txt-btn {
  398. color: #016bf6;
  399. font-family: DM Sans;
  400. font-size: 20rpx;
  401. font-weight: 700;
  402. line-height: 26rpx;
  403. letter-spacing: 0%;
  404. }
  405. }
  406. }
  407. .txt-content {
  408. display: flex;
  409. justify-content: space-between;
  410. align-items: center;
  411. .txt-content-item {
  412. display: flex;
  413. flex-direction: column;
  414. justify-content: center;
  415. align-items: center;
  416. image {
  417. width: 60rpx;
  418. height: 60rpx;
  419. }
  420. .txt-mianshi {
  421. color: rgba(153, 153, 153, 1);
  422. font-family: DM Sans;
  423. font-size: 20rpx;
  424. font-weight: 400;
  425. line-height: 26rpx;
  426. margin-top: 10rpx;
  427. }
  428. }
  429. }
  430. .btn-bottom {
  431. display: flex;
  432. align-items: center;
  433. justify-content: flex-end;
  434. gap: 16rpx;
  435. padding-bottom: 48rpx;
  436. padding-right: 40rpx;
  437. box-sizing: border-box;
  438. .btn-item {
  439. box-sizing: border-box;
  440. border: 2rpx solid;
  441. border-radius: 999px;
  442. background: rgba(255, 255, 255, 1);
  443. color: #016bf6;
  444. font-family: DM Sans;
  445. font-size: 24rpx;
  446. font-weight: 400;
  447. padding: 16rpx 68rpx;
  448. box-sizing: border-box;
  449. }
  450. }
  451. .msg-box {
  452. .msg-item {
  453. display: flex;
  454. align-items: center;
  455. color: rgba(153, 153, 153, 1);
  456. font-family: DM Sans;
  457. font-size: 24rpx;
  458. font-weight: 400;
  459. line-height: 32rpx;
  460. margin-top: 12rpx;
  461. .msg-label {
  462. min-width: 120rpx;
  463. margin-right: 24rpx;
  464. }
  465. }
  466. }
  467. .detail-title {
  468. color: #fff;
  469. font-size: 50rpx;
  470. font-weight: 500;
  471. font-family: DM Sans;
  472. }
  473. }
  474. .mianshi-record {
  475. height: 700rpx;
  476. border: 1rpx solid rgba(227, 231, 236, 1);
  477. border-radius: 40rpx 40rpx 0px 0px;
  478. background: rgba(253, 253, 253, 1);
  479. display: flex;
  480. flex-direction: column;
  481. padding: 40rpx;
  482. box-sizing: border-box;
  483. .mianshi-title {
  484. flex-shrink: 0;
  485. color: rgba(34, 37, 42, 1);
  486. font-family: DM Sans;
  487. font-size: 36rpx;
  488. font-weight: 500;
  489. line-height: 26rpx;
  490. text-align: center;
  491. border-bottom: 2rpx solid rgba(153, 153, 153, 0.25);
  492. padding-bottom: 16rpx;
  493. box-sizing: border-box;
  494. text {
  495. font-size: 20rpx;
  496. margin-left: 12rpx;
  497. }
  498. }
  499. .mianshi-record-content {
  500. width: 100%;
  501. flex: 1;
  502. overflow: hidden;
  503. overflow-y: auto;
  504. .record-tag-box {
  505. display: flex;
  506. align-items: center;
  507. gap: 16rpx 44rpx;
  508. flex-wrap: wrap;
  509. padding-top: 28rpx;
  510. box-sizing: border-box;
  511. .record-tag {
  512. flex-shrink: 0;
  513. border-radius: 16rpx;
  514. background: rgba(245, 248, 254, 1);
  515. padding: 12rpx 20rpx;
  516. box-sizing: border-box;
  517. color: rgba(153, 153, 153, 1);
  518. font-family: DM Sans;
  519. font-size: 28rpx;
  520. font-weight: 400;
  521. }
  522. .record-tag-check {
  523. border: 1rpx solid #016bf6;
  524. background: rgba(252, 233, 220, 1);
  525. color: #016bf6;
  526. }
  527. }
  528. .check-box {
  529. width: 100%;
  530. border-radius: 12rpx;
  531. background: rgba(240, 240, 240, 1);
  532. padding: 34rpx;
  533. // padding-top: 40rpx;
  534. box-sizing: border-box;
  535. margin: 20rpx 0;
  536. .word-count {
  537. font-family: DM Sans;
  538. font-size: 20rpx;
  539. font-weight: 400;
  540. line-height: 26rpx;
  541. text-align: right;
  542. text {
  543. color: #016bf6;
  544. }
  545. }
  546. }
  547. }
  548. .btn-mianshi {
  549. background: #016bf6;
  550. border-radius: 100rpx;
  551. color: rgba(255, 255, 255, 1);
  552. font-family: DM Sans;
  553. font-size: 24rpx;
  554. font-weight: 400;
  555. line-height: 48rpx;
  556. display: flex;
  557. justify-content: center;
  558. align-items: center;
  559. flex-shrink: 0;
  560. width: 100%;
  561. padding: 6rpx;
  562. box-sizing: border-box;
  563. }
  564. }
  565. .process-title {
  566. font-size: 36rpx;
  567. font-weight: bold;
  568. color: #333;
  569. }
  570. .process-steps {
  571. position: relative;
  572. }
  573. /* 操作按钮 */
  574. .process-actions {
  575. margin-top: 50rpx;
  576. display: flex;
  577. gap: 20rpx;
  578. flex-wrap: wrap;
  579. }
  580. .action-btn {
  581. flex: 1;
  582. background: #016bf6;
  583. color: #fff;
  584. border: none;
  585. border-radius: 100rpx;
  586. padding: 6rpx 24rpx;
  587. font-size: 28rpx;
  588. color: rgba(255, 255, 255, 1);
  589. font-family: DM Sans;
  590. font-size: 24rpx;
  591. font-weight: 400;
  592. text-align: center;
  593. &::after {
  594. border: none;
  595. }
  596. &:active {
  597. background: #009974;
  598. }
  599. }
  600. .complaint-btn {
  601. background: #ff4444;
  602. &:active {
  603. background: #dd3333;
  604. }
  605. }
  606. ::v-deep .textarea-placeholder {
  607. color: rgba(153, 153, 153, 1);
  608. font-family: DM Sans;
  609. font-size: 20rpx !important;
  610. font-weight: 400;
  611. line-height: 26rpx;
  612. }
  613. ::v-deep .uni-textarea-textarea {
  614. font-size: 20rpx;
  615. color: #585858;
  616. }
  617. ::v-deep .uni-textarea{
  618. height: 170rpx !important;
  619. }
  620. </style>