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

340 lines
12 KiB

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