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

339 lines
12 KiB

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