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

293 lines
10 KiB

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