用工小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

447 lines
16 KiB

  1. <template>
  2. <view class="u-page">
  3. <view class="se-px-20 se-pt-40 se-flex-v-c">
  4. <template v-if="stepsIndex==0">
  5. <view class="se-flex se-flex-h-c">
  6. <image class="se-a-50" src="@/static/image/46524.png" mode=""></image>
  7. <text class="se-c-orange se-fs-30 se-ml-10">招聘发布-师傅接单-等待企业确认</text>
  8. </view>
  9. </template>
  10. <template v-if="stepsIndex==1">
  11. <view class="se-flex se-flex-h-c">
  12. <image class="se-a-50" src="@/static/image/46524.png" mode=""></image>
  13. <text class="se-c-orange se-fs-30 se-ml-10">订单进行中</text>
  14. </view>
  15. </template>
  16. <template v-if="stepsIndex==2">
  17. <view class="se-flex se-flex-h-c">
  18. <image class="se-a-50" src="@/static/image/46525.png" mode=""></image>
  19. <text class="se-c-orange se-fs-30 se-ml-10">试工完成</text>
  20. </view>
  21. </template>
  22. <template v-if="stepsIndex==3">
  23. <view class="se-flex se-flex-h-c">
  24. <image class="se-a-50" src="@/static/image/46525.png" mode=""></image>
  25. <text class="se-c-orange se-fs-30 se-ml-10">企业待支付</text>
  26. </view>
  27. </template>
  28. <template v-if="stepsIndex==4">
  29. <view class="se-flex se-flex-h-c">
  30. <image class="se-a-50" src="@/static/image/46525.png" mode=""></image>
  31. <text class="se-c-orange se-fs-30 se-ml-10">订单待完成</text>
  32. </view>
  33. </template>
  34. <template v-if="stepsIndex==5">
  35. <view class="se-flex se-flex-h-c">
  36. <image class="se-a-50" src="@/static/image/46525.png" mode=""></image>
  37. <text class="se-c-orange se-fs-30 se-ml-10">订单已完成</text>
  38. </view>
  39. <!-- <text class="se-c-orange se-mt-20 se-fs-24">124530有效</text> -->
  40. </template>
  41. <template v-if="stepsIndex==6">
  42. <view class="se-flex se-flex-h-c">
  43. <image class="se-a-50" src="@/static/image/46525.png" mode=""></image>
  44. <text class="se-c-orange se-fs-30 se-ml-10">订单已取消</text>
  45. </view>
  46. </template>
  47. </view>
  48. <view class="se-px-20 se-py-40" v-if="stepsIndex != 6">
  49. <u-steps activeColor="#FF7A31" :current="stepsIndex" dot>
  50. <u-steps-item class="se-fs-22" v-for="(items,indexs) in stepsList" :key="indexs" :title="items.title">
  51. <!-- <text class="se-fs-22" slot="title">{{items.title}}</text> -->
  52. </u-steps-item>
  53. </u-steps>
  54. </view>
  55. <view class="se-px-20">
  56. <!-- 企业 -->
  57. <view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c"
  58. v-if="type">
  59. <button
  60. open-type="contact"
  61. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
  62. style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
  63. <text>联系客服</text>
  64. </button>
  65. <template v-if="stepsIndex==0">
  66. <view @click="confirmOrder()"
  67. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
  68. <text>接收该员工</text>
  69. </view>
  70. <view @click="onCancel()"
  71. class="se-mx-10 se-w-200 se-b se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-66 se-bgc-f5">
  72. <text>取消</text>
  73. </view>
  74. </template>
  75. <template v-if="stepsIndex == 2">
  76. <view @click="confirmOrderTryCompany()"
  77. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
  78. <text>企业确认</text>
  79. </view>
  80. </template>
  81. <template v-if="stepsIndex==3">
  82. <view @click="onPay()"
  83. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
  84. <text>去支付</text>
  85. </view>
  86. </template>
  87. </view>
  88. <!-- 求职者 -->
  89. <view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c"
  90. v-else>
  91. <button
  92. open-type="contact"
  93. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
  94. style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
  95. <text>联系客服</text>
  96. </button>
  97. <template v-if="stepsIndex==0">
  98. <view @click="onCancel()"
  99. class="se-mx-10 se-w-200 se-b se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-66 se-bgc-f5">
  100. <text>取消</text>
  101. </view>
  102. </template>
  103. <template v-if="stepsIndex==1">
  104. <view @click="confirmOrderTry()"
  105. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
  106. <text>确认试工完成</text>
  107. </view>
  108. </template>
  109. <template v-if="stepsIndex==4">
  110. <view @click="confirmOrderTryCompanyOk()"
  111. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
  112. <text>确认到账</text>
  113. </view>
  114. </template>
  115. </view>
  116. <!-- <view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c">
  117. <template>
  118. <button
  119. open-type="contact"
  120. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
  121. style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
  122. <text>联系客服</text>
  123. </button>
  124. </template>
  125. <template v-if="stepsIndex == 2">
  126. <view @click="confirmOrderTryCompany()"
  127. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
  128. <text>企业确认</text>
  129. </view>
  130. </template>
  131. <template v-if="stepsIndex==3">
  132. <view @click="onPay()"
  133. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
  134. <text>去支付</text>
  135. </view>
  136. </template>
  137. </view> -->
  138. </view>
  139. <view class="se-px-40 se-py-20">
  140. <view class="se-flex se-flex-ai-c se-pb-10">
  141. <view class="line-orange"></view>
  142. <view class="se-ml-10 se-fs-32 se-c-black se-fw-6">
  143. 招聘工作详情
  144. </view>
  145. </view>
  146. <view class="se-flex se-flex-v-sa se-flex-ai-fs se-py-20">
  147. <view class="se-flex">
  148. <view class="se-w-160 se-h-160">
  149. <image class="se-w-160 se-h-160 se-br-10" :src="obj.workHeadImg" mode=""></image>
  150. </view>
  151. <view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs">
  152. <view class="se-fw-6 se-c-black se-fs-30 se-display-ib">工作职位:{{obj.title || '暂未'}}</view>
  153. <view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{obj.categoryOne || '暂未'}}</view>
  154. <!-- <view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.title}}</view> -->
  155. <view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.categoryTwo || '暂未'}}</view>
  156. </view>
  157. </view>
  158. <view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
  159. <view class="se-fs-24 se-display-ib">日薪</view>
  160. <view class="se-c-orange se-fs-32 se-fw-6 se-display-ib" v-if="obj.employJob && obj.employJob.salaryDay">{{obj.employJob.salaryDay}}</view>
  161. <view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
  162. </view>
  163. </view>
  164. <u-line dashed></u-line>
  165. <view class="se-py-10 se-pb-30">
  166. <view class="se-mt-30">
  167. <text class="se-fs-28 se-c-black se-fw5">招聘公司名称:{{obj.workName || '暂未'}}</text>
  168. <text class="se-fs-28 se-c-black se-fw5">招聘联系人:{{obj.employAuthenticationPerson && obj.employAuthenticationPerson.name || '暂未'}}</text>
  169. <text class="se-fs-24 se-c-text-third se-ml-40">联系方式:{{obj.employAuthenticationPerson && obj.employAuthenticationPerson.phone || '暂未'}}</text>
  170. <view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
  171. @click="copyText(obj.phone)">
  172. 复制
  173. </view>
  174. </view>
  175. <view class="se-mt-10">
  176. <text class="se-fs-24 se-c-33">工作地址:{{obj.workAddress || '暂未'}}</text>
  177. <view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
  178. @click="copyText(obj.workAddress)">
  179. 复制
  180. </view>
  181. </view>
  182. </view>
  183. <u-line dashed></u-line>
  184. <view class="se-mt-20 se-pt-20 se-pb-30">
  185. <view class="se-fw-6 se-fs-32 se-c-black">
  186. 订单信息
  187. </view>
  188. <view class="se-flex se-pt-30 se-flex-h-sb">
  189. <view class="se-fs-24 se-display-ib">支付方式</view>
  190. <view class="se-fs-24 se-display-ib" v-if="obj.payType==0">提前支付</view>
  191. <view class="se-fs-24 se-display-ib" v-if="obj.payType==1">试用后支付</view>
  192. <view class="se-fs-24 se-display-ib se-c-99" v-if="obj.payType==null || obj.payType==undefined">暂未</view>
  193. </view>
  194. <view class="se-flex se-pt-30 se-flex-h-sb">
  195. <view class="se-fs-24 se-display-ib">工作时间</view>
  196. <view class="se-fs-24 se-display-ib" v-if="obj.employJob && obj.employJob.startTime && obj.employJob.endTime">{{obj.employJob.startTime}} - {{obj.employJob.endTime}}</view>
  197. <view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
  198. </view>
  199. </view>
  200. <u-line dashed></u-line>
  201. <view class="se-mt-20 se-pt-20 se-pb-30">
  202. <view class="se-fw-6 se-fs-32 se-c-black">
  203. 工作内容
  204. </view>
  205. <view class="se-fs-24 se-pt-20 se-pb-20 se-lh-40">
  206. <u-parse :content="obj.details"></u-parse>
  207. </view>
  208. </view>
  209. <view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c">
  210. <button
  211. open-type="contact"
  212. class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
  213. style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
  214. <text>联系客服</text>
  215. </button>
  216. </view>
  217. </view>
  218. <view class="se-mt-10">
  219. <view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30" v-for="(items,indexs) in [obj]"
  220. :key="indexs">
  221. <view class="se-flex se-flex-ai-c se-pb-10">
  222. <view class="line-orange"></view>
  223. <view class="se-ml-10 se-fs-32 se-c-black se-fw-6">
  224. 求职者简历信息
  225. </view>
  226. </view>
  227. <view class="se-flex se-flex-h-sb">
  228. <view class="se-flex">
  229. <view class="se-a-100">
  230. <image class="se-a-100 se-br-p-50 se-bgc-f5" :src="items.employResume.headImage" mode="">
  231. </image>
  232. </view>
  233. <view class="se-ml-20 se-flex se-flex-v-c se-flex-ai-fs">
  234. <text
  235. class="se-fw-6 se-c-black se-fs-30">{{items.employResume.name?items.employResume.name:items.hanHaiMember.nickName}}</text>
  236. <text
  237. class="se-fs-24 se-c-text-third se-mt-5">{{items.employResume.sex==1?"男":"女"}}-{{items.employResume.nation?items.employResume.nation:"未知"}}-{{items.employResume.age}}</text>
  238. </view>
  239. </view>
  240. <view @click.capture="onCustomerService(items.employAuthenticationPerson.phone)"
  241. v-if="stepsIndex != 6"
  242. class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
  243. <u-icon color="#FF7A31" name="phone-fill"></u-icon>
  244. <text class="se-ml-5">联系他</text>
  245. </view>
  246. </view>
  247. <u-line dashed class="se-my-20"></u-line>
  248. <view class="se-py-10">
  249. <view class="se-flex se-flex-h-sb se-py-10">
  250. <view class="se-fs-24 se-display-ib">联系电话</view>
  251. <view class="se-fs-24 se-display-ib">{{items.employResume.phone || '暂未'}}</view>
  252. </view>
  253. <view class="se-flex se-flex-h-sb se-py-10">
  254. <view class="se-fs-24 se-display-ib">期望薪资</view>
  255. <view class="se-fs-24 se-display-ib se-c-orange" v-if="items.employResume.salaryMin && items.employResume.salaryMax">{{items.employResume.salaryMin}}-{{items.employResume.salaryMax}}k</view>
  256. <view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
  257. </view>
  258. <view class="se-flex se-flex-h-sb se-py-10">
  259. <view class="se-fs-24 se-display-ib">期望工作地址</view>
  260. <view class="se-fs-24 se-display-ib">{{items.employResume.address || '暂未'}}</view>
  261. </view>
  262. <view class="se-flex se-flex-h-sb se-py-10">
  263. <view class="se-fs-24 se-display-ib">支付方式偏好</view>
  264. <view class="se-fs-24 se-display-ib" v-if="items.employResume.payType==0">提前支付</view>
  265. <view class="se-fs-24 se-display-ib" v-else-if="items.employResume.payType==1">试用后支付</view>
  266. <view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
  267. </view>
  268. <view class="se-flex se-flex-h-sb se-py-10" v-if="items.employResume.categoryOne">
  269. <view class="se-fs-24 se-display-ib">专业类别</view>
  270. <view class="se-fs-24 se-display-ib">{{items.employResume.categoryOneName || '暂未'}}</view>
  271. </view>
  272. </view>
  273. <u-line dashed class="se-my-20" v-if="items.employResume.brief"></u-line>
  274. <view class="se-py-10" v-if="items.employResume.brief">
  275. <view class="se-fw-6 se-fs-28 se-c-black se-mb-10">
  276. 个人简介
  277. </view>
  278. <view class="se-fs-24 se-lh-40 se-c-text">
  279. {{items.employResume.brief}}
  280. </view>
  281. </view>
  282. <view v-if="stepsIndex == 0" class="se-mt-20">
  283. <text class="se-c-text-third se-fs-22">接单时间{{items.createTime}}</text>
  284. </view>
  285. </view>
  286. </view>
  287. </view>
  288. </template>
  289. <script>
  290. import {
  291. orderDetail,
  292. deleteOrder,
  293. confirmOrder,
  294. confirmOrderTryCompany,
  295. } from "@/common/api.js"
  296. export default {
  297. data() {
  298. return {
  299. stepsIndex: 1,
  300. stepsList: [{
  301. title: "接单",
  302. date: "10:21"
  303. },
  304. {
  305. title: "进行",
  306. date: "10:22"
  307. },
  308. {
  309. title: "试工完成",
  310. date: "10:23"
  311. },
  312. {
  313. title: "企业确认",
  314. date: "10:24"
  315. },
  316. {
  317. title: "企业支付",
  318. date: "10:25"
  319. },
  320. {
  321. title: "企业完成",
  322. date: "10:26"
  323. }
  324. ],
  325. detail: `<p>
  326. 1全日制大专以上学历艺术设计类相关专业;<br/>
  327. 2两年以上平面品牌视觉设计等相关工作经验能独立完成项目的设计工作 3C数码/个护健 类产品服务经验优先有乙方工作经验佳;<br/>
  328. 3具备一定的设计提案能力能完整的呈现设计思路与创意能清晰的表达设计逻辑与思考;<br/>
  329. 4热爱设计平面基本功扎实拥有优良的审美与创意想法对版式色彩把控能力强;对工作富有责任心具备团队沟通与协作能力;<br/>
  330. 5精通 PSAICDR 等平面设计软件能独立完成日常平面设计工作内容熟练使用 PPT/Keynote能完成提案内容的材料美化工作<br/>
  331. </p>`,
  332. obj: {},
  333. type : '',
  334. }
  335. },
  336. onLoad(options) {
  337. this.orderId = options.orderId
  338. this.type = options.type || ''
  339. },
  340. onShow() {
  341. this.onOrderDetail()
  342. },
  343. methods: {
  344. onOrderDetail() {
  345. let that = this
  346. let params = {
  347. orderId: that.orderId
  348. }
  349. orderDetail(params).then(response => {
  350. that.obj = response.result
  351. that.stepsIndex = response.result.status;
  352. }).catch(error => {
  353. })
  354. },
  355. copyText(event) {
  356. uni.setClipboardData({
  357. data: event,
  358. success: () => {
  359. uni.showToast({
  360. title: "复制成功",
  361. icon: "none",
  362. });
  363. },
  364. fail: (err) => {
  365. console.error("复制失败", err);
  366. },
  367. })
  368. },
  369. onCancel() {
  370. deleteOrder(this.orderId).then(res => {
  371. if (res.code == 200) {
  372. uni.navigateBack(-1)
  373. }
  374. })
  375. },
  376. onCustomerService(phone) {
  377. uni.makePhoneCall({
  378. phoneNumber: phone,
  379. success: () => {
  380. console.log("拨打成功");
  381. },
  382. fail: (err) => {
  383. console.error("拨打失败", err);
  384. },
  385. })
  386. },
  387. // 订单信息-企业确认试工完成
  388. confirmOrderTryCompany(){
  389. confirmOrderTryCompany(this.orderId)
  390. .then(res => {
  391. if(res.code == 200){
  392. uni.showToast({
  393. title: '确认成功',
  394. icon: 'none'
  395. })
  396. this.onOrderDetail()
  397. }
  398. })
  399. },
  400. // 订单信息-企业确认订单
  401. confirmOrder() {
  402. confirmOrder(this.orderId)
  403. .then(res => {
  404. if(res.code == 200){
  405. uni.showToast({
  406. title: '确认成功',
  407. icon: 'none'
  408. })
  409. this.onOrderDetail()
  410. }
  411. })
  412. },
  413. onPay() {
  414. uni.navigateTo({
  415. url: "/pages_subpack/pay/index?orderId=" + this.orderId
  416. })
  417. },
  418. onDel() {
  419. console.info(`删除`)
  420. }
  421. }
  422. }
  423. </script>
  424. <style lang="scss" scoped>
  425. .line-orange {
  426. width: 8rpx;
  427. height: 32rpx;
  428. background: #ff7a31;
  429. border-radius: 4rpx;
  430. }
  431. </style>