用工小程序前端代码
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.

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