releaseInfo.js 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. import commonData from '../../commonData.js'
  2. import commonFun from '../../commonFun.js'
  3. export default {
  4. data() {
  5. return {
  6. id: null,
  7. url: '&WsAjaxBiz=Trader&WsAjaxAction=entityDataHandle',
  8. releaseInfo: commonData.releaseInfo,
  9. calc_hours: commonFun.calc_hours,
  10. calc_date: commonFun.calc_date,
  11. sub_data: { //提交的数据
  12. settle_catalog: 0, //是否批量招聘
  13. age_mode: 0, //年龄, 0-不限;1-限制
  14. gender_mode: 0, //性别, 0-不限;1-限男;2-限女;
  15. meals_providing: 0, //是否管饭 0-不管;1-管饭;
  16. enroll_audit: 1, //是否需要审核
  17. settle_mode: 0, //核销模式
  18. begin_hour: '08:00',
  19. finish_hour: '17:00',
  20. urgent_level: 0, //0是完工即结,1是今日零工
  21. work_addr1: '',
  22. work_addr: '', //工作地点
  23. work_addr_lng: '', //经度117.333
  24. work_addr_lat: '', //纬度39.33
  25. },
  26. begin_start: '', //开始日期的可选开始日期
  27. end_start: '', //截止日期的可选开始日期
  28. total_sal: '', //计算页面总金额
  29. trader_level: 0, //是否vip
  30. }
  31. },
  32. onLoad(e) {
  33. this.begin_start = commonFun.formatDate2(new Date())
  34. this.end_start = commonFun.formatDate2(new Date())
  35. this.trader_level = e.trader_level || 0 //是否vip
  36. // e.id = 399
  37. if (e.id) {
  38. this.get_data(e.id)
  39. } else {
  40. let urgent_level = e.urgent_level || 0
  41. let sub_data = {
  42. ...this.sub_data,
  43. urgent_level
  44. }
  45. this.sub_data = sub_data
  46. uni.setNavigationBarTitle({
  47. title: sub_data.urgent_level == 0 ? '发布完工即结' : '发布今日零工'
  48. })
  49. let DRAFT = urgent_level == 0 ? uni.getStorageSync('DRAFT0') : uni.getStorageSync('DRAFT1')
  50. if (DRAFT && DRAFT.title) {
  51. uni.showModal({
  52. title: '是否使用草稿内容?',
  53. content: '草稿标题:' + DRAFT.title,
  54. success: (res) => {
  55. if (res.confirm) {
  56. DRAFT.id = ''
  57. this.sub_data = {
  58. ...DRAFT,
  59. }
  60. setTimeout(() => {
  61. this.cal_every_salary()
  62. }, 1000)
  63. } else {
  64. // 不使用草稿,则清空草稿
  65. if (urgent_level == 0) {
  66. uni.setStorageSync('DRAFT0', '')
  67. } else {
  68. uni.setStorageSync('DRAFT1', '')
  69. }
  70. }
  71. }
  72. })
  73. }
  74. }
  75. },
  76. methods: {
  77. // 获取数据
  78. get_data(bizId) {
  79. commonFun.requestUrl(this.url, {
  80. bizCatalog: 'RecruitEntity',
  81. handleMode: 'fetch',
  82. bizId
  83. }, res => {
  84. if (res.status) {
  85. let sub_data = res.data.Result
  86. if (sub_data.settle_catalog == 0) {
  87. sub_data.eve_feetotal = sub_data.feetotal
  88. }
  89. this.sub_data = sub_data
  90. uni.setNavigationBarTitle({
  91. title: sub_data.urgent_level == 0 ? '发布完工即结' : '发布今日零工'
  92. })
  93. setTimeout(() => {
  94. this.cal_every_salary()
  95. }, 1500)
  96. console.log('编辑页面获取发布详情')
  97. console.log(this.sub_data)
  98. }
  99. })
  100. },
  101. // 提交数据
  102. sub_data_req() {
  103. this.close_modal()
  104. uni.showLoading({
  105. title: '加载中...',
  106. mask: true
  107. })
  108. let sub_data = this.sub_data
  109. if (sub_data.settle_catalog == 0) {
  110. if (sub_data.urgent_level == 0) {
  111. sub_data.feetotal = this.total_sal
  112. } else {
  113. sub_data.feetotal = sub_data.eve_feetotal
  114. }
  115. }
  116. sub_data.id = ''
  117. let params = {
  118. bizCatalog: 'RecruitEntity',
  119. handleMode: 'upsertLaunchAudit',
  120. bizData: sub_data
  121. }
  122. console.log('发布请求数据')
  123. console.log(params.bizData)
  124. // return
  125. commonFun.requestUrl(this.url, params, res => {
  126. console.log('发布返回数据')
  127. console.log(res)
  128. uni.hideLoading()
  129. if (res.status) {
  130. uni.showModal({
  131. content: '发布成功',
  132. showCancel: false,
  133. success: () => {
  134. uni.navigateBack({
  135. delta: 1
  136. });
  137. }
  138. })
  139. } else {
  140. if (res.data && res.data.ErrCode && res.data.ErrCode == 'NoEnoughCount') {
  141. uni.showModal({
  142. title: '剩余发布人数不足',
  143. content: '发布扣除' + this.sub_data.need_total + '人,当前剩余' + (res.data
  144. .ErrMsg.useFreeCount + res.data.ErrMsg
  145. .balance) + '人',
  146. confirmText: '去充值',
  147. success: (res2) => {
  148. if (res2.confirm) {
  149. uni.navigateTo({
  150. url: '/pages/personal/wallet?dvalue=' + res.data
  151. .ErrMsg.dvalue
  152. })
  153. }
  154. }
  155. })
  156. }
  157. }
  158. })
  159. },
  160. // 点击提交数据
  161. sub() {
  162. let sub_data = {
  163. ...this.sub_data,
  164. }
  165. if (sub_data.urgent_level == 1) {
  166. sub_data.begin_datetime = commonFun.formatDate2(new Date())
  167. sub_data.finish_datetime = commonFun.formatDate2(new Date())
  168. }
  169. console.log(this.sub_data)
  170. // 检测输入是否为空
  171. let form_collect = sub_data.settle_catalog == 1 ? commonData.releaseInfo.sub_arr0
  172. .concat(...
  173. commonData
  174. .releaseInfo.sub_arr1_s) :
  175. commonData.releaseInfo.sub_arr0.concat(...commonData.releaseInfo.sub_arr1)
  176. for (let i in form_collect) {
  177. let item = form_collect[i]
  178. if (!sub_data[item['key']]) {
  179. uni.showModal({
  180. title: '输入错误',
  181. content: item['name'] + '不允许为空',
  182. showCancel: false,
  183. success: function(res) {}
  184. });
  185. return
  186. }
  187. }
  188. if (!sub_data.begin_datetime) {
  189. uni.showModal({
  190. content: '请选择起始日期',
  191. showCancel: false,
  192. });
  193. return
  194. }
  195. // 非批量招聘需要结束日期
  196. if (sub_data.settle_catalog != 1 && !sub_data.finish_datetime) {
  197. uni.showModal({
  198. content: '请选择截至日期',
  199. showCancel: false,
  200. });
  201. return
  202. }
  203. if (sub_data.settle_catalog == 1 && sub_data.urgent_level == 1) {
  204. uni.showModal({
  205. content: '不允许发布今日零工的批量招聘',
  206. showCancel: false,
  207. });
  208. return
  209. }
  210. if (sub_data.settle_catalog != 1 && (sub_data.begin_datetime > sub_data.finish_datetime)) {
  211. uni.showModal({
  212. content: '起始日期不能大于截止日期',
  213. showCancel: false,
  214. });
  215. return
  216. }
  217. if (sub_data.work_addr == '') {
  218. uni.showModal({
  219. content: '请选择工作地点',
  220. showCancel: false,
  221. });
  222. return
  223. }
  224. if (!sub_data.work_desc) {
  225. uni.showModal({
  226. content: '岗位详情不允许为空',
  227. showCancel: false,
  228. });
  229. return
  230. }
  231. this.sub_data = sub_data
  232. this.open_modal()
  233. },
  234. // 计算每天工资
  235. cal_every_salary() {
  236. //起始/截至跨越天数
  237. let total_date = this.calc_date(this.sub_data.begin_datetime, this.sub_data.finish_datetime)
  238. let eve_feetotal = Number(this.sub_data.eve_feetotal)
  239. if (total_date != '--' && !isNaN(eve_feetotal)) {
  240. this.total_sal = (total_date * eve_feetotal).toFixed(2)
  241. } else {
  242. this.total_sal = ''
  243. }
  244. },
  245. // 选择单次/批量招聘按钮事件
  246. chenge_settle_catalog(settle_catalog) {
  247. let sub_data = {
  248. ...this.sub_data,
  249. }
  250. sub_data['settle_catalog'] = settle_catalog
  251. this.sub_data = sub_data
  252. uni.setStorageSync('DRAFT0', sub_data)
  253. },
  254. // 单选事件
  255. radio_change(e) {
  256. let key = e.currentTarget.dataset.key
  257. let sub_data = {
  258. ...this.sub_data,
  259. }
  260. sub_data[key] = e.target.value
  261. this.sub_data = sub_data
  262. if (sub_data.urgent_level == 0) {
  263. uni.setStorageSync('DRAFT0', sub_data)
  264. } else {
  265. uni.setStorageSync('DRAFT1', sub_data)
  266. }
  267. },
  268. // 开始日期改变事件
  269. date_change1(e) {
  270. let sub_data = {
  271. ...this.sub_data
  272. }
  273. sub_data.begin_datetime = e
  274. this.sub_data = sub_data
  275. this.end_start = e
  276. uni.setStorageSync('DRAFT0', sub_data)
  277. this.cal_every_salary()
  278. },
  279. // 截至日期改变事件
  280. date_change2(e) {
  281. let sub_data = {
  282. ...this.sub_data
  283. }
  284. sub_data.finish_datetime = e
  285. this.sub_data = sub_data
  286. uni.setStorageSync('DRAFT0', sub_data)
  287. this.cal_every_salary()
  288. },
  289. // input和textarea的输入框输入事件
  290. ipt(e) {
  291. let key = e.currentTarget.dataset.key
  292. let sub_data = {
  293. ...this.sub_data
  294. }
  295. sub_data[key] = e.target.value
  296. this.sub_data = sub_data
  297. this.cal_every_salary()
  298. if (sub_data.urgent_level == 0) {
  299. uni.setStorageSync('DRAFT0', sub_data)
  300. } else {
  301. uni.setStorageSync('DRAFT1', sub_data)
  302. }
  303. },
  304. // 删除招聘图片
  305. delete_img() {
  306. uni.showModal({
  307. content: '确认删除头图?',
  308. success: (res) => {
  309. if (res.confirm) {
  310. let sub_data = {
  311. ...this.sub_data
  312. }
  313. sub_data.profile_photo = ''
  314. this.sub_data = sub_data
  315. if (sub_data.urgent_level == 0) {
  316. uni.setStorageSync('DRAFT0', sub_data)
  317. } else {
  318. uni.setStorageSync('DRAFT1', sub_data)
  319. }
  320. }
  321. }
  322. })
  323. },
  324. // 上传招聘图片
  325. upload_img(e) {
  326. commonFun.uploadFileApiOSS(res => {
  327. if (res.status) {
  328. let sub_data = {
  329. ...this.sub_data
  330. }
  331. sub_data.profile_photo = res.data
  332. this.sub_data = sub_data
  333. if (sub_data.urgent_level == 0) {
  334. uni.setStorageSync('DRAFT0', sub_data)
  335. } else {
  336. uni.setStorageSync('DRAFT1', sub_data)
  337. }
  338. }
  339. })
  340. },
  341. // 时间选择
  342. bindTimeChange(e) {
  343. const key = e.currentTarget.dataset.key
  344. const value = e.target.value
  345. let sub_data = {
  346. ...this.sub_data
  347. }
  348. sub_data[key] = value
  349. this.sub_data = sub_data
  350. if (sub_data.urgent_level == 0) {
  351. uni.setStorageSync('DRAFT0', sub_data)
  352. } else {
  353. uni.setStorageSync('DRAFT1', sub_data)
  354. }
  355. },
  356. // 打开窗口
  357. open_modal() {
  358. this.$refs.popup.open('top')
  359. },
  360. // 关闭窗口
  361. close_modal() {
  362. this.$refs.popup.close('top')
  363. },
  364. // 打开地图
  365. openAddress() {
  366. uni.chooseLocation({
  367. success: (res) => {
  368. let sub_data = {
  369. ...this.sub_data,
  370. }
  371. sub_data['work_addr1'] = res.name
  372. sub_data['work_addr'] = res.address
  373. sub_data['work_addr_lng'] = res.longitude
  374. sub_data['work_addr_lat'] = res.latitude
  375. this.sub_data = sub_data
  376. if (sub_data.urgent_level == 0) {
  377. uni.setStorageSync('DRAFT0', sub_data)
  378. } else {
  379. uni.setStorageSync('DRAFT1', sub_data)
  380. }
  381. },
  382. fail: (res) => {
  383. if (res.errMsg.indexOf('cancel') == -1) {
  384. uni.showModal({
  385. title: '打开地图失败',
  386. content: JSON.stringify(res)
  387. })
  388. }
  389. }
  390. });
  391. },
  392. }
  393. }