targetInfo.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595
  1. import WxValidate from '../../utils/WxValidate.js';
  2. const app = require('../../utils/util.js');
  3. const tool = require('../../utils/tool.js');
  4. Page({
  5. data: {
  6. form: {
  7. ageMin: '',
  8. ageMax: '',
  9. heightMin: '',
  10. heightMax: '',
  11. education: '',
  12. income: '',
  13. nativePlace: '',
  14. marriage: '',
  15. assetHouse: '',
  16. assetArea: '',
  17. assetHouseLoan: '',
  18. assetCar: '',
  19. assetCarValue: '',
  20. assetCarLoan: '',
  21. constellation: '',
  22. workStatus: '',
  23. companyNature: '',
  24. parents: '',
  25. composition: '',
  26. isCommen: ''
  27. },
  28. heightArr: [
  29. '都行',
  30. '150-155',
  31. '155-160',
  32. '160-165',
  33. '165-170',
  34. '170-175',
  35. '175-185',
  36. '185-190'
  37. ],
  38. educationArr: ["都行", "初中", "中专", "高中", "大专", "本科", "硕士", "博士"],
  39. incomeArr: ["挣不挣都行", "2000-5000", "5000-10000", "10000-20000", "20000以上"],
  40. nativePlaceArr: ['咋的都行', '本地', '外地'],
  41. marriageArr: ["不行", "行"],
  42. constellationArr: [{
  43. name: '不限',
  44. value: '不限',
  45. checked: true
  46. },
  47. {
  48. name: '白羊座',
  49. value: '白羊座',
  50. checked: false
  51. },
  52. {
  53. name: '金牛座',
  54. value: '金牛座',
  55. checked: false
  56. },
  57. {
  58. name: '双子座',
  59. value: '双子座',
  60. checked: false
  61. },
  62. {
  63. name: '巨蟹座',
  64. value: '巨蟹座',
  65. checked: false
  66. },
  67. {
  68. name: '狮子座',
  69. value: '狮子座',
  70. checked: false
  71. },
  72. {
  73. name: '处女座',
  74. value: '处女座',
  75. checked: false
  76. },
  77. {
  78. name: '天秤座',
  79. value: '天秤座',
  80. checked: false
  81. },
  82. {
  83. name: '天蝎座',
  84. value: '天蝎座',
  85. checked: false
  86. },
  87. {
  88. name: '射手座',
  89. value: '射手座',
  90. checked: false
  91. },
  92. {
  93. name: '摩羯座',
  94. value: '摩羯座',
  95. checked: false
  96. },
  97. {
  98. name: '水瓶座',
  99. value: '水瓶座',
  100. checked: false
  101. },
  102. {
  103. name: '双鱼座',
  104. value: '双鱼座',
  105. checked: false
  106. }
  107. ],
  108. // 工作时间自由、朝九晚五、偶尔加班、经常加班、偶尔出差、经常出差、常有应酬
  109. workStatusArr: [{
  110. name: '工作时间自由',
  111. value: '工作时间自由',
  112. checked: true
  113. },
  114. {
  115. name: '朝九晚五',
  116. value: '朝九晚五',
  117. checked: false
  118. }, {
  119. name: '偶尔加班',
  120. value: '偶尔加班',
  121. checked: false
  122. }, {
  123. name: '经常加班',
  124. value: '经常加班',
  125. checked: false
  126. },
  127. {
  128. name: '偶尔出差',
  129. value: '偶尔出差',
  130. checked: false
  131. }, {
  132. name: '经常出差',
  133. value: '经常出差',
  134. checked: false
  135. }, {
  136. name: '常有应酬',
  137. value: '常有应酬',
  138. checked: false
  139. }
  140. ],
  141. assetHouseArr: ['租房', '购房'],
  142. assetAreaArr: ['80平以下', '80-120平', '120平以上'],
  143. assetHouseLoanArr: ['有', '没有'],
  144. assetCarArr: ['有', '没有'],
  145. assetCarValueArr: ['10万以下', '10-20万', '20-30万', '30-40万', '40-50万', '50-60万', '60-70万', '70-80万', '80-90万', '90-100万', '100万以上'],
  146. assetCarLoanArr: ['有贷款', '无贷款'],
  147. companyNatureArr: ['政府机关', '事业单位', '外企企业', '世界500强', '上市公司', '国有企业', '私营企业', '个体'],
  148. parentsArr: ['均有退休金', '均无退休金', '父亲有退休金', '母亲有退休金'],
  149. compositionArr: ['老几都行', '必须独苗一根'],
  150. isCommenArr: ['愿意', '不愿意']
  151. },
  152. educationPicker(e) {
  153. let education = 'form.education'
  154. this.setData({
  155. educationLabel: this.data.educationArr[e.detail.value],
  156. [education]: this.data.educationArrValue[e.detail.value]
  157. })
  158. },
  159. incomePicker(e) {
  160. let income = 'form.income'
  161. this.setData({
  162. incomeLabel: this.data.incomeArr[e.detail.value],
  163. [income]: this.data.incomeArrValue[e.detail.value]
  164. })
  165. },
  166. nativePlacePicker(e) {
  167. let nativePlace = 'form.nativePlace'
  168. this.setData({
  169. [nativePlace]: this.data.nativePlaceArr[e.detail.value]
  170. })
  171. },
  172. marriageChange(e) {
  173. let marriage = 'form.marriage'
  174. this.setData({
  175. [marriage]: this.data.marriageArr[e.detail.value]
  176. })
  177. },
  178. marriagePickerColumnChange(e) {
  179. console.log(e)
  180. if (e.detail.column == 0 && e.detail.value == 1) {
  181. this.setData({
  182. marriageArr: [
  183. ["行", "不行"],
  184. ["有小祖宗不行", "有小祖宗也行"]
  185. ]
  186. })
  187. }
  188. if (e.detail.column == 0 && e.detail.value == 0) {
  189. this.setData({
  190. marriageArr: [
  191. ["行", "不行"],
  192. []
  193. ]
  194. })
  195. }
  196. },
  197. assetHousePickerChange(e) {
  198. console.log(e)
  199. let assetHouse = 'form.assetHouse'
  200. this.setData({
  201. [assetHouse]: this.data.assetHouseArr[e.detail.value]
  202. })
  203. },
  204. assetAreaPickerChange(e) {
  205. console.log(e)
  206. let assetArea = 'form.assetArea'
  207. this.setData({
  208. [assetArea]: this.data.assetAreaArr[e.detail.value]
  209. })
  210. },
  211. assetHouseLoanPickerChange(e) {
  212. console.log(e)
  213. let assetHouseLoan = 'form.assetHouseLoan'
  214. this.setData({
  215. [assetHouseLoan]: this.data.assetHouseLoanArr[e.detail.value]
  216. })
  217. },
  218. assetCarPickerChange(e) {
  219. console.log(e)
  220. let assetCar = 'form.assetCar'
  221. this.setData({
  222. [assetCar]: this.data.assetCarArr[e.detail.value]
  223. })
  224. },
  225. assetCarValuePickerChange(e) {
  226. console.log(e)
  227. let assetCarValue = 'form.assetCarValue'
  228. this.setData({
  229. [assetCarValue]: this.data.assetCarValueArr[e.detail.value]
  230. })
  231. },
  232. assetCarLoanPickerChange(e) {
  233. console.log(e)
  234. let assetCarLoan = 'form.assetCarLoan'
  235. this.setData({
  236. [assetCarLoan]: this.data.assetCarLoanArr[e.detail.value]
  237. })
  238. },
  239. constellationPicker(e) {
  240. console.log(e.detail.value)
  241. const items = this.data.constellationArr;
  242. const values = e.detail.value;
  243. for (let i = 0, lenI = items.length; i < lenI; ++i) {
  244. items[i].checked = false
  245. for (let j = 0, lenJ = values.length; j < lenJ; ++j) {
  246. if (items[i].value === values[j]) {
  247. items[i].checked = true
  248. break
  249. }
  250. }
  251. }
  252. let indexArr = [];
  253. for (let i = 0; i < e.detail.value.length; i++) {
  254. indexArr.push(this.data.constellationArrLabel.indexOf(e.detail.value[i]))
  255. }
  256. let value = [];
  257. for (let i = 0; i < indexArr.length; i++) {
  258. value.push(this.data.constellationArrValue[indexArr[i]])
  259. }
  260. let constellation = 'form.constellation'
  261. this.setData({
  262. constellationArr: this.data.constellationArr,
  263. [constellation]: value
  264. })
  265. },
  266. workStatusChange(e) {
  267. console.log(e.detail.value)
  268. const items = this.data.workStatusArr;
  269. const values = e.detail.value;
  270. for (let i = 0, lenI = items.length; i < lenI; ++i) {
  271. items[i].checked = false
  272. for (let j = 0, lenJ = values.length; j < lenJ; ++j) {
  273. if (items[i].value === values[j]) {
  274. items[i].checked = true
  275. break
  276. }
  277. }
  278. }
  279. let indexArr = [];
  280. for (let i = 0; i < e.detail.value.length; i++) {
  281. indexArr.push(this.data.workStatusArrLabel.indexOf(e.detail.value[i]))
  282. }
  283. let value = [];
  284. for (let i = 0; i < indexArr.length; i++) {
  285. value.push(this.data.workStatusArrValue[indexArr[i]])
  286. }
  287. let workStatus = 'form.workStatus'
  288. this.setData({
  289. workStatusArr: this.data.workStatusArr,
  290. [workStatus]: value
  291. })
  292. },
  293. companyNaturePicker: function (e) {
  294. let companyNature = 'form.companyNature'
  295. this.setData({
  296. companyNatureLabel:this.data.companyNatureArr[e.detail.value],
  297. [companyNature]: this.data.companyNatureArrValue[e.detail.value]
  298. })
  299. },
  300. parentsPicker(e) {
  301. let parents = 'form.parents'
  302. this.setData({
  303. parentsLabel:this.data.parentsArr[e.detail.value],
  304. [parents]: this.data.parentsArrValue[e.detail.value]
  305. })
  306. },
  307. compositionPicker(e) {
  308. let composition = 'form.composition'
  309. this.setData({
  310. [composition]: this.data.compositionArr[e.detail.value]
  311. })
  312. },
  313. isCommenPicker(e) {
  314. let isCommen = 'form.isCommen'
  315. this.setData({
  316. [isCommen]: this.data.isCommenArr[e.detail.value]
  317. })
  318. },
  319. formSubmit(e) {
  320. const params = e.detail.value
  321. //校验表单
  322. if (!this.WxValidate.checkForm(params)) {
  323. const error = this.WxValidate.errorList[0]
  324. this.showModal(error)
  325. return false
  326. }
  327. wx.request({
  328. url: app.globalData.publicUrl + '/wx/member/' + this.data.openid + '/standard',
  329. method: "POST",
  330. header: {
  331. 'content-type': 'application/x-www-form-urlencoded',
  332. },
  333. data: params,
  334. success: (res) => {
  335. console.log(res)
  336. if (res.data.code == 0) {
  337. wx.showModal({
  338. title: '上传成功',
  339. showCancel: false,
  340. success(res) {
  341. if (res.confirm) {
  342. wx.switchTab({
  343. url: '/pages/index/index',
  344. })
  345. }
  346. }
  347. });
  348. }
  349. }
  350. })
  351. },
  352. showModal(error) {
  353. wx.showModal({
  354. content: error.msg,
  355. showCancel: false,
  356. })
  357. },
  358. //验证函数
  359. initValidate() {
  360. const rules = {
  361. ageMin: {
  362. required: true
  363. },
  364. ageMax: {
  365. required: true
  366. },
  367. heightMin: {
  368. required: true
  369. },
  370. heightMax: {
  371. required: true
  372. },
  373. education: {
  374. required: true
  375. },
  376. income: {
  377. required: true
  378. },
  379. nativePlace: {
  380. required: true
  381. },
  382. marriage: {
  383. required: true
  384. },
  385. assetHouse: {
  386. required: true
  387. },
  388. assetArea: {
  389. required: true
  390. },
  391. assetHouseLoan: {
  392. required: true
  393. },
  394. assetCar: {
  395. required: true
  396. },
  397. assetCarValue: {
  398. required: true
  399. },
  400. assetCarLoan: {
  401. required: true
  402. },
  403. constellation: {
  404. required: true
  405. },
  406. workStatus: {
  407. required: true
  408. },
  409. companyNature: {
  410. required: true
  411. },
  412. parents: {
  413. required: true
  414. },
  415. composition: {
  416. required: true
  417. },
  418. isCommen: {
  419. required: true
  420. }
  421. }
  422. const messages = {
  423. ageMin: {
  424. required: '请输入您能接受的最小年纪'
  425. },
  426. ageMax: {
  427. required: '请输入您能接受的最大年纪'
  428. },
  429. heightMin: {
  430. required: '请输入您能接受的最低身高'
  431. },
  432. heightMax: {
  433. required: '请输入您能接受的最高身高'
  434. },
  435. education: {
  436. required: '请输入您能接受的教育程度'
  437. },
  438. income: {
  439. required: '请选择您能接受的收入'
  440. },
  441. nativePlace: {
  442. required: '请选择本地或者外地'
  443. },
  444. marriage: {
  445. required: '请选择您能接受的婚姻状态'
  446. },
  447. assetHouse: {
  448. required: '请选择您可以接受的房子状态'
  449. },
  450. assetArea: {
  451. required: '请选择您可以接受的房子面积'
  452. },
  453. assetHouseLoan: {
  454. required: '请选择您可以接受的房子是否有贷款'
  455. },
  456. assetCar: {
  457. required: '请选择您可以接受的车子状态'
  458. },
  459. assetCarValue: {
  460. required: '请选择您可以接受的车子价值'
  461. },
  462. assetCarLoan: {
  463. required: '请选择您是否可以接受的车子有贷款'
  464. },
  465. constellation: {
  466. required: '请选择您的优先选择星座'
  467. },
  468. workStatus: {
  469. required: '请选择您能接受的工作状态'
  470. },
  471. companyNature: {
  472. required: '请选择您能接受的单位性质'
  473. },
  474. parents: {
  475. required: '请选择您能接受的父母状态'
  476. },
  477. composition: {
  478. required: '请选择您可以接受的家庭构成'
  479. },
  480. isCommen: {
  481. required: '请选择您是否接受与父母同住'
  482. }
  483. }
  484. this.WxValidate = new WxValidate(rules, messages)
  485. },
  486. async onLoad(options) {
  487. this.initValidate()
  488. const getOpenid = await tool.openidStatus();
  489. this.setData({
  490. openid: getOpenid[0],
  491. sessionkey: getOpenid[1]
  492. })
  493. tool.formDetails('he_education').then(result => {
  494. this.setData({
  495. educationArr: result[0],
  496. educationArrValue: result[1]
  497. })
  498. })
  499. tool.formDetails('he_income').then(result => {
  500. this.setData({
  501. incomeArr: result[0],
  502. incomeArrValue: result[1]
  503. })
  504. })
  505. tool.formDetails('he_astrology').then(result => {
  506. let constellationArr = result[0].map((item, index) => {
  507. return Object.assign({}, {
  508. 'name': item,
  509. 'value': item,
  510. 'checked': false
  511. })
  512. })
  513. this.setData({
  514. constellationArr: constellationArr,
  515. constellationArrLabel: result[0],
  516. constellationArrValue: result[1]
  517. })
  518. })
  519. tool.formDetails('he_work_status').then(result => {
  520. let workStatusArr = result[0].map((item, index) => {
  521. return Object.assign({}, {
  522. 'name': item,
  523. 'value': item,
  524. 'checked': false
  525. })
  526. })
  527. this.setData({
  528. workStatusArr: workStatusArr,
  529. workStatusArrLabel: result[0],
  530. workStatusArrValue: result[1]
  531. })
  532. })
  533. tool.formDetails('he_company_nature').then(result => {
  534. this.setData({
  535. companyNatureArr: result[0],
  536. companyNatureArrValue: result[1]
  537. })
  538. })
  539. tool.formDetails('he_parents').then(result => {
  540. this.setData({
  541. parentsArr: result[0],
  542. parentsArrValue: result[1]
  543. })
  544. })
  545. },
  546. /**
  547. * 生命周期函数--监听页面初次渲染完成
  548. */
  549. onReady: function () {
  550. },
  551. /**
  552. * 生命周期函数--监听页面显示
  553. */
  554. onShow: function () {
  555. },
  556. /**
  557. * 生命周期函数--监听页面隐藏
  558. */
  559. onHide: function () {
  560. },
  561. /**
  562. * 生命周期函数--监听页面卸载
  563. */
  564. onUnload: function () {
  565. },
  566. /**
  567. * 页面相关事件处理函数--监听用户下拉动作
  568. */
  569. onPullDownRefresh: function () {
  570. },
  571. /**
  572. * 页面上拉触底事件的处理函数
  573. */
  574. onReachBottom: function () {
  575. },
  576. /**
  577. * 用户点击右上角分享
  578. */
  579. onShareAppMessage: function () {
  580. }
  581. })