tovolApply.vue 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181
  1. <template>
  2. <view class="content">
  3. <!-- <view class="top">
  4. <image src="../../static/img/activity.png" mode=""></image>
  5. </view>
  6. -->
  7. <view class="box">
  8. <!-- <view class="red-box">
  9. 申请登记表
  10. </view> -->
  11. <view class="box-1">
  12. <view class="box-left">
  13. 姓名
  14. <text class="imp">*</text>
  15. </view>
  16. <input type="text" placeholder="请填写您的姓名" value="" class="list-input" v-model="name" />
  17. </view>
  18. <view class="box-1">
  19. <view class="box-left">
  20. 性别
  21. <text class="imp">*</text>
  22. </view>
  23. <picker @change="bindPickerSex" :value="index" :range="array">
  24. <view class="box-right">{{ sex == '0'? '男' : sex == '1'? '女' : sex }}</view>
  25. </picker>
  26. </view>
  27. <view class="box-1">
  28. <view class="box-left">
  29. 出生年月
  30. <text class="imp">*</text>
  31. </view>
  32. <picker mode="date" :value="birth" :start="startDate" :end="endDate" @change="bindDateChange">
  33. <view class="box-right">{{ birth }}</view>
  34. </picker>
  35. </view>
  36. <!-- <view class="upload-box">
  37. <view class="upload-left">
  38. 照片
  39. <text class="imp">*</text>
  40. </view>
  41. <view class="upload-right">
  42. <image :src="cardimg" mode="" class="upload-img" @click.stop="imgsub" v-if="cardimg"></image>
  43. <image src="../../static/images/upload.png" class="upload-img" mode="" v-if="!cardimg" @click.stop="imgsub"></image>
  44. </view>
  45. </view> -->
  46. <view class="box-1">
  47. <view class="box-left">
  48. 联系方式
  49. <text class="imp">*</text>
  50. </view>
  51. <input type="text" placeholder="请填写联系方式" value="" class="list-input" v-model="phone" />
  52. </view>
  53. </view>
  54. <view class="" class="tcc" :style="{'height':height}">
  55. <view class="buttom" :class="{ action: loding }" @click="!loding ? join() : ''">下一步</view>
  56. </view>
  57. <uni-popup ref="tishi" type="center" :maskClick="false">
  58. <view class="ts-wrap">
  59. <view class="ts-tit">
  60. 志愿者条例
  61. </view>
  62. <scroll-view scroll-y="true" class="ts-content" @scrolltolower="isbtm = true">
  63. <view class="tit">第一章 总 则</view>
  64. <view class="xq">
  65.  第一条 为了保障志愿者、志愿服务组织、志愿服务对象的合法权益,鼓励和规范志愿服务,发展志愿服务事业,培育和践行社会主义核心价值观,促进社会文明进步,制定本条例。
  66. </view>
  67. <view class="xq">
  68.  第二条 本条例适用于在中华人民共和国境内开展的志愿服务以及与志愿服务有关的活动。
  69. </view>
  70. <view class="xq">
  71.  本条例所称志愿服务,是指志愿者、志愿服务组织和其他组织自愿、无偿向社会或者他人提供的公益服务。
  72. </view>
  73. <view class="xq">
  74.  第三条 开展志愿服务,应当遵循自愿、无偿、平等、诚信、合法的原则,不得违背社会公德、损害社会公共利益和他人合法权益,不得危害国家安全。
  75. </view>
  76. <view class="xq">
  77. 第四条 县级以上人民政府应当将志愿服务事业纳入国民经济和社会发展规划,合理安排志愿服务所需资金,促进广覆盖、多层次、宽领域开展志愿服务。
  78. </view>
  79. <view class="xq">
  80. 第五条 国家和地方精神文明建设指导机构建立志愿服务工作协调机制,加强对志愿服务工作的统筹规划、协调指导、督促检查和经验推广。
  81. </view>
  82. <view class="xq">
  83. 国务院民政部门负责全国志愿服务行政管理工作;县级以上地方人民政府民政部门负责本行政区域内志愿服务行政管理工作。
  84. </view>
  85. <view class="xq">
  86. 县级以上人民政府有关部门按照各自职责,负责与志愿服务有关的工作。
  87. </view>
  88. <view class="xq">
  89. 工会、共产主义青年团、妇女联合会等有关人民团体和群众团体应当在各自的工作范围内做好相应的志愿服务工作。
  90. </view>
  91. <view class="tit">
  92. 第二章 志愿者和志愿服务组织
  93. </view>
  94. <view class="xq">
  95. 第六条 本条例所称志愿者,是指以自己的时间、知识、技能、体力等从事志愿服务的自然人。
  96. </view>
  97. <view class="xq">
  98. 本条例所称志愿服务组织,是指依法成立,以开展志愿服务为宗旨的非营利性组织。
  99. </view>
  100. <view class="xq">
  101. 第七条 志愿者可以将其身份信息、服务技能、服务时间、联系方式等个人基本信息,通过国务院民政部门指定的志愿服务信息系统自行注册,也可以通过志愿服务组织进行注册。
  102. </view>
  103. <view class="xq">
  104. 志愿者提供的个人基本信息应当真实、准确、完整。
  105. </view>
  106. <view class="xq">
  107. 第八条 志愿服务组织可以采取社会团体、社会服务机构、基金会等组织形式。志愿服务组织的登记管理按照有关法律、行政法规的规定执行。
  108. </view>
  109. <view class="xq">
  110. 第九条 志愿服务组织可以依法成立行业组织,反映行业诉求,推动行业交流,促进志愿服务事业发展。
  111. </view>
  112. <view class="xq">
  113. 第十条 在志愿服务组织中,根据中国共产党章程的规定,设立中国共产党的组织,开展党的活动。志愿服务组织应当为党组织的活动提供必要条件。
  114. </view>
  115. <view class="tit">
  116. 第三章 志愿服务活动
  117. </view>
  118. <view class="">
  119. 第十一条 志愿者可以参与志愿服务组织开展的志愿服务活动,也可以自行依法开展志愿服务活动。
  120. </view>
  121. <view class="">
  122. 第十二条 志愿服务组织可以招募志愿者开展志愿服务活动;招募时,应当说明与志愿服务有关的真实、准确、完整的信息以及在志愿服务过程中可能发生的风险。
  123. </view>
  124. <view class="">
  125. 第十三条 需要志愿服务的组织或者个人可以向志愿服务组织提出申请,并提供与志愿服务有关的真实、准确、完整的信息,说明在志愿服务过程中可能发生的风险。志愿服务组织应当对有关信息进行核实,并及时予以答复。
  126. </view>
  127. <view class="">
  128. 第十四条 志愿者、志愿服务组织、志愿服务对象可以根据需要签订协议,明确当事人的权利和义务,约定志愿服务的内容、方式、时间、地点、工作条件和安全保障措施等。
  129. </view>
  130. <view class="">
  131. 第十五条 志愿服务组织安排志愿者参与志愿服务活动,应当与志愿者的年龄、知识、技能和身体状况相适应,不得要求志愿者提供超出其能力的志愿服务。
  132. </view>
  133. <view class="">
  134. 第十六条 志愿服务组织安排志愿者参与的志愿服务活动需要专门知识、技能的,应当对志愿者开展相关培训。
  135. </view>
  136. <view class="">
  137. 开展专业志愿服务活动,应当执行国家或者行业组织制定的标准和规程。法律、行政法规对开展志愿服务活动有职业资格要求的,志愿者应当依法取得相应的资格。
  138. </view>
  139. <view class="">
  140. 第十七条 志愿服务组织应当为志愿者参与志愿服务活动提供必要条件,解决志愿者在志愿服务过程中遇到的困难,维护志愿者的合法权益。
  141. </view>
  142. <view class="">
  143. 志愿服务组织安排志愿者参与可能发生人身危险的志愿服务活动前,应当为志愿者购买相应的人身意外伤害保险。
  144. </view>
  145. <view class="">
  146. 第十八条 志愿服务组织开展志愿服务活动,可以使用志愿服务标志。
  147. </view>
  148. <view class="">
  149. 第十九条 志愿服务组织安排志愿者参与志愿服务活动,应当如实记录志愿者个人基本信息、志愿服务情况、培训情况、表彰奖励情况、评价情况等信息,按照统一的信息数据标准录入国务院民政部门指定的志愿服务信息系统,实现数据互联互通。
  150. </view>
  151. <view class="">
  152. 志愿者需要志愿服务记录证明的,志愿服务组织应当依据志愿服务记录无偿、如实出具。
  153. </view>
  154. <view class="">
  155. 记录志愿服务信息和出具志愿服务记录证明的办法,由国务院民政部门会同有关单位制定。
  156. </view>
  157. <view class="">
  158. 第二十条 志愿服务组织、志愿服务对象应当尊重志愿者的人格尊严;未经志愿者本人同意,不得公开或者泄露其有关信息。
  159. </view>
  160. <view class="">
  161. 第二十一条 志愿服务组织、志愿者应当尊重志愿服务对象人格尊严,不得侵害志愿服务对象个人隐私,不得向志愿服务对象收取或者变相收取报酬。
  162. </view>
  163. <view class="">
  164. 第二十二条 志愿者接受志愿服务组织安排参与志愿服务活动的,应当服从管理,接受必要的培训。
  165. </view>
  166. <view class="">
  167. 志愿者应当按照约定提供志愿服务。志愿者因故不能按照约定提供志愿服务的,应当及时告知志愿服务组织或者志愿服务对象。
  168. </view>
  169. <view class="">
  170. 第二十三条 国家鼓励和支持国家机关、企业事业单位、人民团体、社会组织等成立志愿服务队伍开展专业志愿服务活动,鼓励和支持具备专业知识、技能的志愿者提供专业志愿服务。
  171. </view>
  172. <view class="">
  173. 国家鼓励和支持公共服务机构招募志愿者提供志愿服务。
  174. </view>
  175. <view class="">
  176. 第二十四条 发生重大自然灾害、事故灾难和公共卫生事件等突发事件,需要迅速开展救助的,有关人民政府应当建立协调机制,提供需求信息,引导志愿服务组织和志愿者及时有序开展志愿服务活动。
  177. </view>
  178. <view class="">
  179. 志愿服务组织、志愿者开展应对突发事件的志愿服务活动,应当接受有关人民政府设立的应急指挥机构的统一指挥、协调。
  180. </view>
  181. <view class="">
  182. 第二十五条 任何组织和个人不得强行指派志愿者、志愿服务组织提供服务,不得以志愿服务名义进行营利性活动。
  183. </view>
  184. <view class="">
  185. 第二十六条 任何组织和个人发现志愿服务组织有违法行为,可以向民政部门、其他有关部门或者志愿服务行业组织投诉、举报。民政部门、其他有关部门或者志愿服务行业组织接到投诉、举报,应当及时调查处理;对无权处理的,应当告知投诉人、举报人向有权处理的部门或者行业组织投诉、举报。
  186. </view>
  187. <view class="tit">
  188. 第四章 促进措施
  189. </view>
  190. <view class="">
  191. 第二十七条 县级以上人民政府应当根据经济社会发展情况,制定促进志愿服务事业发展的政策和措施。
  192. </view>
  193. <view class="">
  194. 县级以上人民政府及其有关部门应当在各自职责范围内,为志愿服务提供指导和帮助。
  195. </view>
  196. <view class="">
  197. 第二十八条 国家鼓励企业事业单位、基层群众性自治组织和其他组织为开展志愿服务提供场所和其他便利条件。
  198. </view>
  199. <view class="">
  200. 第二十九条 学校、家庭和社会应当培养青少年的志愿服务意识和能力。
  201. </view>
  202. <view class="">
  203. 高等学校、中等职业学校可以将学生参与志愿服务活动纳入实践学分管理。
  204. </view>
  205. <view class="">
  206. 第三十条 各级人民政府及其有关部门可以依法通过购买服务等方式,支持志愿服务运营管理,并依照国家有关规定向社会公开购买服务的项目目录、服务标准、资金预算等相关情况。
  207. </view>
  208. <view class="">
  209. 第三十一条 自然人、法人和其他组织捐赠财产用于志愿服务的,依法享受税收优惠。
  210. </view>
  211. <view class="">
  212. 第三十二条 对在志愿服务事业发展中做出突出贡献的志愿者、志愿服务组织,由县级以上人民政府或者有关部门按照法律、法规和国家有关规定予以表彰、奖励。
  213. </view>
  214. <view class="">
  215. 国家鼓励企业和其他组织在同等条件下优先招用有良好志愿服务记录的志愿者。公务员考录、事业单位招聘可以将志愿服务情况纳入考察内容。
  216. </view>
  217. <view class="">
  218. 第三十三条 县级以上地方人民政府可以根据实际情况采取措施,鼓励公共服务机构等对有良好志愿服务记录的志愿者给予优待。
  219. </view>
  220. <view class="">
  221. 第三十四条 县级以上人民政府应当建立健全志愿服务统计和发布制度。
  222. </view>
  223. <view class="">
  224. 第三十五条 广播、电视、报刊、网络等媒体应当积极开展志愿服务宣传活动,传播志愿服务文化,弘扬志愿服务精神。
  225. </view>
  226. <view class="tit">
  227. 第五章 法律责任
  228. </view>
  229. <view class="">
  230. 第三十六条 志愿服务组织泄露志愿者有关信息、侵害志愿服务对象个人隐私的,由民政部门予以警告,责令限期改正;逾期不改正的,责令限期停止活动并进行整改;情节严重的,吊销登记证书并予以公告。
  231. </view>
  232. <view class="">
  233. 第三十七条 志愿服务组织、志愿者向志愿服务对象收取或者变相收取报酬的,由民政部门予以警告,责令退还收取的报酬;情节严重的,对有关组织或者个人并处所收取报酬一倍以上五倍以下的罚款。
  234. </view>
  235. <view class="">
  236. 第三十八条 志愿服务组织不依法记录志愿服务信息或者出具志愿服务记录证明的,由民政部门予以警告,责令限期改正;逾期不改正的,责令限期停止活动,并可以向社会和有关单位通报。
  237. </view>
  238. <view class="">
  239. 第三十九条 对以志愿服务名义进行营利性活动的组织和个人,由民政、工商等部门依法查处。
  240. </view>
  241. <view class="">
  242. 第四十条 县级以上人民政府民政部门和其他有关部门及其工作人员有下列情形之一的,由上级机关或者监察机关责令改正;依法应当给予处分的,由任免机关或者监察机关对直接负责的主管人员和其他直接责任人员给予处分:
  243. </view>
  244. <view class="">
  245. (一)强行指派志愿者、志愿服务组织提供服务;
  246. </view>
  247. <view class="">
  248. (二)未依法履行监督管理职责;
  249. </view>
  250. <view class="">
  251. (三)其他滥用职权、玩忽职守、徇私舞弊的行为。
  252. </view>
  253. <view class="tit">
  254. 第六章 附  则
  255. </view>
  256. <view class="">
  257.  第四十一条 基层群众性自治组织、公益活动举办单位和公共服务机构开展公益活动,需要志愿者提供志愿服务的,可以与志愿服务组织合作,由志愿服务组织招募志愿者,也可以自行招募志愿者。自行招募志愿者提供志愿服务的,参照本条例关于志愿服务组织开展志愿服务活动的规定执行。
  258. </view>
  259. <view class="">
  260. 第四十二条 志愿服务组织以外的其他组织可以开展力所能及的志愿服务活动。
  261. </view>
  262. <view class="">
  263. 城乡社区、单位内部经基层群众性自治组织或者本单位同意成立的团体,可以在本社区、本单位内部开展志愿服务活动。
  264. </view>
  265. <view class="">
  266. 第四十三条 境外志愿服务组织和志愿者在境内开展志愿服务,应当遵守本条例和中华人民共和国有关法律、行政法规以及国家有关规定。
  267. </view>
  268. <view class="">
  269.  组织境内志愿者到境外开展志愿服务,在境内的有关事宜,适用本条例和中华人民共和国有关法律、行政法规以及国家有关规定;在境外开展志愿服务,应当遵守所在国家或者地区的法律。
  270. </view>
  271. <view class="">
  272. 第四十四条 本条例自2017年12月1日起施行。
  273. </view>
  274. </scroll-view>
  275. <view class="ts-btn" @click="agreen()"
  276. :style="{'background': isbtm?'#FF4C4C':'#eee','color':isbtm?'#fff':'#999'}">
  277. 我已阅读并同意
  278. </view>
  279. </view>
  280. </uni-popup>
  281. <uni-popup ref="tcqr" type="center">
  282. <view class="tc-wrap">
  283. <image src="../../static/img/zyztc.png" mode="widthFix" class="tc-img"></image>
  284. <view class="qr-wrap">
  285. <image src="../../static/img/cnzyewm.png" mode=""></image>
  286. </view>
  287. </view>
  288. </uni-popup>
  289. </view>
  290. </template>
  291. <script>
  292. import {
  293. saveUrl,
  294. interceptor
  295. } from '@/utils/loginUtils.js';
  296. import {
  297. mapState,
  298. mapMutations
  299. } from 'vuex';
  300. import {
  301. add_volunteers
  302. } from '@/api/index.js';
  303. import {
  304. upload
  305. } from '@/api/ask.js';
  306. export default {
  307. data() {
  308. const currentDate = this.getDate({
  309. format: true
  310. });
  311. return {
  312. height: '',
  313. isRead: false, //是否同意
  314. isbtm: false, //是否滑动到底部
  315. otherjob: '',
  316. otherspe: '',
  317. loding: false, //是否提交中
  318. array: ['男', '女'],
  319. chooseEdu: ['小学以下', '小学', '初中', '高中/中专', '大专/高职', '本科', '研究生', '硕士', '博士', '博士后'],
  320. chooseVol: ['有', '无'],
  321. is_experience: [{
  322. id: '1',
  323. name: '有'
  324. },
  325. {
  326. id: '2',
  327. name: '无'
  328. }
  329. ],
  330. // is_experience: '',
  331. chooseExp: ['是', '否'],
  332. start_hour: '选择开始时间', //开始时间
  333. end_hour: '选择结束时间', //
  334. quantum: '',
  335. //日期
  336. items: [{
  337. value: '2',
  338. name: '星期一'
  339. },
  340. {
  341. value: '3',
  342. name: '星期二'
  343. },
  344. {
  345. value: '4',
  346. name: '星期三'
  347. },
  348. {
  349. value: '5',
  350. name: '星期四'
  351. },
  352. {
  353. value: '6',
  354. name: '星期五'
  355. },
  356. {
  357. value: '7',
  358. name: '星期六'
  359. },
  360. {
  361. value: '1',
  362. name: '星期日'
  363. }
  364. ],
  365. dates: '',
  366. //有兴趣参与的工作
  367. works: [{
  368. value: '1',
  369. name: '赈灾工作'
  370. },
  371. {
  372. value: '2',
  373. name: '救护培训'
  374. },
  375. {
  376. value: '3',
  377. name: '护送服务'
  378. },
  379. {
  380. value: '4',
  381. name: '编辑及出版'
  382. },
  383. {
  384. value: '5',
  385. name: '医疗护理服务'
  386. },
  387. {
  388. value: '6',
  389. name: '探访服务'
  390. },
  391. {
  392. value: '7',
  393. name: '外语翻译'
  394. },
  395. {
  396. value: '8',
  397. name: '调查服务'
  398. },
  399. {
  400. value: '9',
  401. name: '联络服务'
  402. },
  403. {
  404. value: '10',
  405. name: '宣传及推广'
  406. },
  407. {
  408. value: '11',
  409. name: '文书档案工作'
  410. },
  411. {
  412. value: '12',
  413. name: '其它(请注明)'
  414. }
  415. ],
  416. taste: '',
  417. worksText: '', //工作其他
  418. //专长
  419. expertise: [{
  420. value: '1',
  421. name: '医疗护理'
  422. },
  423. {
  424. value: '2',
  425. name: '紧急救护'
  426. },
  427. {
  428. value: '3',
  429. name: '出版/美术设计'
  430. },
  431. {
  432. value: '4',
  433. name: '影音制作'
  434. },
  435. {
  436. value: '5',
  437. name: '文艺演出'
  438. },
  439. {
  440. value: '6',
  441. name: '网络软件'
  442. },
  443. {
  444. value: '7',
  445. name: '摄影摄像'
  446. },
  447. {
  448. value: '8',
  449. name: '电脑中文打字'
  450. },
  451. {
  452. value: '9',
  453. name: '汽车驾驶'
  454. },
  455. {
  456. value: '10',
  457. name: '外语翻译'
  458. },
  459. {
  460. value: '11',
  461. name: '法律咨询'
  462. },
  463. {
  464. value: '12',
  465. name: '文案策划'
  466. },
  467. {
  468. value: '13',
  469. name: '其它(请注明)'
  470. }
  471. ],
  472. speciali: '',
  473. current: '',
  474. is_vol: [{
  475. id: '1',
  476. name: '有'
  477. },
  478. {
  479. id: '0',
  480. name: '无'
  481. }
  482. ],
  483. index: 0,
  484. // mz: '',
  485. email: '',
  486. cardimg: '', //证件照
  487. // card: '',
  488. // checklist: [],
  489. name: '',
  490. sex: '请选择你的性别',
  491. birth: '请选择你的生日',
  492. fillingDate: '',
  493. phone: '',
  494. address: '',
  495. work: '',
  496. specialty: '',
  497. education: '请选择教育程度',
  498. educationid: '',
  499. checked1: '',
  500. checked: '',
  501. expertiseText: '', //专长其他
  502. Getchecked: false //个人声明
  503. };
  504. },
  505. onShow() {
  506. if (this.hasLogin) {
  507. // this.loadBaseData();
  508. // this.$refs.tishi.open()
  509. } else {
  510. saveUrl();
  511. uni.showModal({
  512. title: '登录',
  513. content: '您未登录,是否马上登陆?',
  514. success: e => {
  515. if (e.confirm) {
  516. interceptor();
  517. }
  518. },
  519. fail: e => {
  520. console.log(e);
  521. }
  522. });
  523. }
  524. },
  525. onReady() {
  526. if (this.hasLogin) {
  527. this.$refs.tishi.open()
  528. } else {
  529. // this.$refs.tishi.open()
  530. }
  531. var obj = this;
  532. uni.getSystemInfo({
  533. success: resu => {
  534. const query = uni.createSelectorQuery();
  535. query.select('.tcc').boundingClientRect();
  536. query.exec(function(res) {
  537. obj.height = resu.windowHeight - res[0].top + 'px';
  538. });
  539. },
  540. fail: res => {}
  541. });
  542. },
  543. computed: {
  544. ...mapState('user', ['userInfo', 'baseURL', 'hasLogin']),
  545. startDate() {
  546. return this.getDate('start');
  547. },
  548. endDate() {
  549. return this.getDate('end');
  550. }
  551. },
  552. methods: {
  553. // 同意提示
  554. agreen() {
  555. if (this.isbtm) {
  556. this.isRead = true
  557. this.$refs.tishi.close()
  558. }
  559. },
  560. async join() {
  561. let obj = this;
  562. if (obj.name == '') {
  563. obj.$api.msg('请输入您的姓名');
  564. return;
  565. }
  566. if (obj.sex === '') {
  567. obj.$api.msg('请输入您的性别');
  568. return;
  569. }
  570. if (obj.birth == '' || obj.birth == '请选择你的生日') {
  571. obj.$api.msg('请填写您的生日');
  572. return;
  573. }
  574. const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
  575. if (obj.phone == '') {
  576. obj.$api.msg('请填写您的联系方式');
  577. return;
  578. }
  579. if (!reg.test(obj.phone)) {
  580. obj.$api.msg('请填写正确的联系方式');
  581. return;
  582. }
  583. add_volunteers({
  584. name: obj.name, //姓名
  585. phone: obj.phone, //手机号
  586. sex: obj.sex, //性别
  587. birth: obj.birth, //生日
  588. image: obj.cardimg, //照片
  589. email: obj.email, //邮件
  590. address: obj.address, //地址
  591. work: obj.work, //工作单位
  592. specialty: obj.specialty, //职业/职务/专业
  593. education: obj.educationid, //教育程度
  594. is_vol: obj.checked, //是否受过志愿者服务
  595. is_experience: obj.checked1 == 1 ? 0 : 1, //有无工作经验
  596. start_hour: obj.start_hour,
  597. end_hour: obj.end_hour,
  598. work_week: obj.dates, //星期几
  599. taste: obj.taste, //有兴趣参与的工作
  600. taste_title: obj.worksText, //工作其他
  601. speciali: obj.speciali, //专长
  602. speciali_title: obj.expertiseText, //其他专长
  603. })
  604. .then(e => {
  605. obj.loding = false;
  606. // obj.sex = '请选择你的性别';
  607. // obj.education = '请选择教育程度';
  608. // obj.birth = '请选择你的生日';
  609. this.$refs.tcqr.open()
  610. // uni.navigateTo({
  611. // url: '../joinSuc/joinNow'
  612. // });
  613. })
  614. .catch(function(e) {
  615. console.log('出错了');
  616. console.log(e);
  617. obj.loding = false;
  618. });
  619. },
  620. imgsub() {
  621. console.log('imgsub');
  622. upload({
  623. filename: ''
  624. }).then(data => {
  625. console.log(data, '2222')
  626. this.cardimg = data[0].fullurl;
  627. });
  628. },
  629. // 选择性别
  630. bindPickerSex: function(e) {
  631. this.sex = e.target.value
  632. this.index = e.target.value + 1;
  633. },
  634. // 选择教育程度
  635. bindPickerEdu: function(e) {
  636. this.education = this.chooseEdu[e.target.value];
  637. this.educationid = e.target.value;
  638. console.log(this.educationid)
  639. },
  640. // 选择日期
  641. bindDateChange: function(e) {
  642. this.birth = e.target.value;
  643. },
  644. // 选择开始时间
  645. startTimeChange: function(e) {
  646. console.log(e, '开始时间')
  647. this.start_hour = e.target.value;
  648. },
  649. // 选择结束时间
  650. endTimeChange: function(e) {
  651. this.end_hour = e.target.value;
  652. },
  653. //选择填写日期
  654. fillingDateChange: function(e) {
  655. this.fillingDate = e.target.value;
  656. },
  657. // 是否参加志愿活动
  658. bindPickerVol: function(e) {
  659. this.is_vol = this.chooseVol[e.target.value];
  660. this.index = e.target.value + 1;
  661. },
  662. // 有无服务经验
  663. radioChange1(evt) {
  664. this.checked1 = evt.detail.value;
  665. console.log(this.checked1, '有无服务经验');
  666. },
  667. //是否受过志愿服务
  668. radioChange(evt) {
  669. this.checked = evt.detail.value;
  670. console.log(this.checked, '是否受过志愿服务');
  671. },
  672. Getcheckbox() {
  673. let obj = this;
  674. obj.Getchecked = !obj.Getchecked;
  675. },
  676. getDate(type) {
  677. const date = new Date();
  678. let year = date.getFullYear();
  679. let month = date.getMonth() + 1;
  680. let day = date.getDate();
  681. if (type === 'start') {
  682. year = year - 60;
  683. } else if (type === 'end') {
  684. year = year + 2;
  685. }
  686. month = month > 9 ? month : '0' + month;
  687. day = day > 9 ? day : '0' + day;
  688. return `${year}-${month}-${day}`;
  689. },
  690. //时间段
  691. checkboxChange: function(e) {
  692. var items = this.days,
  693. values = e.detail.value;
  694. for (var i = 0, lenI = items.length; i < lenI; ++i) {
  695. const item = items[i];
  696. if (values.includes(item.value)) {
  697. this.$set(item, 'checked', true);
  698. } else {
  699. this.$set(item, 'checked', false);
  700. }
  701. }
  702. this.quantum = values.join(',');
  703. console.log(this.quantum, '时间段');
  704. },
  705. //日期
  706. checkboxChange1: function(e) {
  707. var items = this.items,
  708. values = e.detail.value;
  709. for (var i = 0, lenI = items.length; i < lenI; ++i) {
  710. const item = items[i];
  711. if (values.includes(item.value)) {
  712. this.$set(item, 'checked', true);
  713. } else {
  714. this.$set(item, 'checked', false);
  715. }
  716. }
  717. this.dates = values.join(',');
  718. console.log(this.dates, '日期');
  719. },
  720. //有兴趣参与的工作
  721. checkboxChange2: function(e) {
  722. var items = this.works,
  723. values = e.detail.value;
  724. for (var i = 0, lenI = items.length; i < lenI; ++i) {
  725. const item = items[i];
  726. if (values.includes(item.value)) {
  727. this.$set(item, 'checked', true);
  728. } else {
  729. this.$set(item, 'checked', false);
  730. }
  731. }
  732. this.taste = values.join(',');
  733. console.log(this.taste, '有兴趣参与的工作');
  734. },
  735. //专长
  736. checkboxChange3: function(e) {
  737. var items = this.expertise,
  738. values = e.detail.value;
  739. for (var i = 0, lenI = items.length; i < lenI; ++i) {
  740. const item = items[i];
  741. if (values.includes(item.value)) {
  742. this.$set(item, 'checked', true);
  743. } else {
  744. this.$set(item, 'checked', false);
  745. }
  746. }
  747. this.speciali = values.join(',');
  748. console.log(this.speciali, '专长');
  749. }
  750. }
  751. };
  752. </script>
  753. <style lang="scss">
  754. page {
  755. background-color: #ffffff;
  756. }
  757. .content {
  758. // padding-top: 64rpx;
  759. // background-color: #f3afad;
  760. .top {
  761. width: 100%;
  762. height: 368rpx;
  763. image {
  764. width: 100%;
  765. height: 368rpx;
  766. }
  767. }
  768. .info-box {
  769. text-indent: 64rpx;
  770. margin: 12rpx 0 54rpx;
  771. padding: 0 32rpx 20rpx;
  772. // border: 3rpx solid #009100;
  773. width: 100%;
  774. display: flex;
  775. flex-direction: column;
  776. border-radius: 25rpx;
  777. color: #e63931;
  778. }
  779. .statement {
  780. // margin: 32rpx;
  781. background-color: #ffffff;
  782. // padding: 32rpx 23rpx;
  783. border-radius: 12rpx;
  784. .title {
  785. height: 84rpx;
  786. display: flex;
  787. justify-content: center;
  788. align-items: center;
  789. font-size: 32rpx;
  790. border-bottom: 2rpx dotted #f3f3f3;
  791. }
  792. .main {
  793. padding: 24rpx;
  794. text-indent: 48rpx;
  795. color: #666;
  796. font-weight: 400;
  797. }
  798. }
  799. .buttom {
  800. width: 100%;
  801. height: 100rpx;
  802. background: #df2412;
  803. margin: 50rpx auto 0;
  804. font-size: 36rpx;
  805. font-weight: 400;
  806. color: #ffffff;
  807. line-height: 100rpx;
  808. text-align: center;
  809. &.action {
  810. background: #999999;
  811. }
  812. position: absolute;
  813. bottom: 0pt;
  814. }
  815. .box {
  816. // margin-top: 44rpx;
  817. // width: 690rpx;
  818. // margin: 32rpx auto 0;
  819. background-color: #ffffff;
  820. border-radius: 10rpx;
  821. // padding: 28rpx 32rpx 84rpx 32rpx;
  822. padding: 20rpx;
  823. position: relative;
  824. // .red-box {
  825. // width: 405rpx;
  826. // line-height: 66rpx;
  827. // text-align: center;
  828. // background: linear-gradient(0deg, #C90F1B, #F14D33);
  829. // border-radius: 10rpx;
  830. // font-size: 30rpx;
  831. // font-weight: 500;
  832. // color: #FFFFFF;
  833. // // position: relative;
  834. // position: absolute;
  835. // top: -36rpx;
  836. // left: 50%;
  837. // transform: translateX(-50%);
  838. // z-index: 1;
  839. // }
  840. .box-check {
  841. font-size: 28rpx;
  842. font-weight: 500;
  843. color: #666666;
  844. line-height: 100rpx;
  845. }
  846. .imp {
  847. color: red;
  848. margin-left: 5rpx;
  849. }
  850. .check-box {
  851. margin: 44rpx 0rpx;
  852. padding: 25rpx 25rpx;
  853. border: 3rpx solid #e9b2af;
  854. width: 100%;
  855. display: flex;
  856. flex-direction: column;
  857. border-radius: 25rpx;
  858. color: #e63931;
  859. .info {
  860. margin-bottom: 32rpx;
  861. text-align: center;
  862. }
  863. .chooseTim {
  864. text-align: center;
  865. font-size: 42rpx;
  866. }
  867. .choose-job {
  868. color: #666666;
  869. // height: 45rpx; 爱心捐赠
  870. .goods_check {
  871. display: flex;
  872. flex-direction: column;
  873. .uni-label-pointer {
  874. // width: 50%;
  875. // display: flex;
  876. }
  877. }
  878. .other {
  879. width: 100%;
  880. border-bottom: 2rpx solid #f3f3f3;
  881. }
  882. }
  883. .box-cent {
  884. font-size: 28rpx;
  885. font-weight: 500;
  886. color: #666666;
  887. display: flex;
  888. .cent-left {
  889. margin-right: 28rpx;
  890. .left-txt {
  891. line-height: 100rpx;
  892. }
  893. }
  894. .cent-right {
  895. flex: 1;
  896. display: flex;
  897. justify-content: space-around;
  898. .right-check {
  899. line-height: 100rpx;
  900. }
  901. }
  902. }
  903. }
  904. .box-1 {
  905. display: flex;
  906. justify-content: space-between;
  907. align-items: center;
  908. width: 100%;
  909. margin-top: 42rpx;
  910. // height: 133rpx;
  911. .box-left {
  912. padding-left: 2rpx;
  913. width: 50%;
  914. text-align: left;
  915. color: #000000;
  916. }
  917. input {
  918. height: 66rpx;
  919. line-height: 66rpx;
  920. // height: 88rpx;
  921. }
  922. .list-input {
  923. padding-left: 24rpx;
  924. // margin: 12rpx 0 ;
  925. font-size: 28rpx;
  926. // line-height: 66rpx;
  927. display: flex;
  928. align-items: center;
  929. width: 50%;
  930. flex: 1;
  931. color: #000000;
  932. text-align: right;
  933. padding-right: 24rpx;
  934. .input-placeholder {
  935. height: 70rpx;
  936. color: #959595;
  937. }
  938. }
  939. .box-right {
  940. display: flex;
  941. padding-left: 24rpx;
  942. height: 66rpx;
  943. line-height: 66rpx;
  944. border-radius: 22rpx;
  945. // margin: 32rpx 36rpx 0 36rpx;
  946. width: 100%;
  947. padding-right: 24rpx;
  948. font-size: 28rpx;
  949. color: #959595;
  950. text-align: right !important;
  951. // line-height: 1;
  952. }
  953. }
  954. .upload-box {
  955. width: 100%;
  956. height: 247rpx;
  957. background: #ffffff;
  958. // border: 1px solid #E63931;
  959. border-radius: 27rpx;
  960. display: flex;
  961. flex-direction: column;
  962. padding: 30rpx 40rpx 30rpx 0;
  963. margin: 42rpx auto 30rpx;
  964. .upload-left {
  965. font-weight: 400;
  966. color: #000000;
  967. }
  968. .upload-right {
  969. flex: 1;
  970. display: flex;
  971. align-items: center;
  972. justify-content: center;
  973. .upload-img {
  974. width: 150rpx;
  975. height: 150rpx;
  976. margin-top: 24rpx;
  977. }
  978. }
  979. }
  980. }
  981. .flex_item {
  982. display: flex;
  983. align-items: center;
  984. }
  985. .radio-list {
  986. display: flex;
  987. flex-wrap: wrap;
  988. font-size: 28rpx;
  989. padding-top: 30rpx;
  990. color: #000000;
  991. .uni-label-pointer {
  992. padding-right: 25rpx;
  993. padding-bottom: 30rpx;
  994. }
  995. }
  996. .check_box {
  997. padding: 25rpx 25rpx;
  998. font-size: 28rpx;
  999. }
  1000. .list-box {
  1001. background-color: #ffffff;
  1002. font-size: 28rpx;
  1003. width: 100%;
  1004. height: 100%;
  1005. border-top: 15rpx solid #f2f2f2;
  1006. color: #222222;
  1007. .worksInput {
  1008. margin-bottom: 35rpx;
  1009. border: 2rpx solid #979797;
  1010. width: 100%;
  1011. height: 70rpx;
  1012. line-height: 70rpx;
  1013. padding: 0rpx 25rpx;
  1014. border-radius: 15rpx;
  1015. }
  1016. .list-title {
  1017. color: #000000;
  1018. text-align: center;
  1019. padding: 30rpx 0rpx;
  1020. font-size: 34rpx;
  1021. font-weight: 500;
  1022. border-bottom: 2rpx dashed #b5b5b5;
  1023. }
  1024. .tip {
  1025. color: #000000;
  1026. padding-top: 25rpx;
  1027. width: 100%;
  1028. text-align: center;
  1029. }
  1030. .icon {
  1031. color: red;
  1032. margin-left: 5rpx;
  1033. }
  1034. }
  1035. }
  1036. .ts-wrap {
  1037. width: 673rpx;
  1038. height: 1134rpx;
  1039. background: #FFFFFF;
  1040. border-radius: 20rpx;
  1041. position: relative;
  1042. .ts-tit {
  1043. height: 103rpx;
  1044. padding-top: 40rpx;
  1045. text-align: center;
  1046. font-size: 36rpx;
  1047. font-weight: bold;
  1048. color: #000000;
  1049. width: 588rpx;
  1050. margin: auto;
  1051. border-bottom: 1px solid #a1a1a1;
  1052. }
  1053. .ts-content {
  1054. height: 882rpx;
  1055. margin: 30rpx 0;
  1056. text-align: justify;
  1057. font-size: 28rpx;
  1058. font-weight: 500;
  1059. color: #666666;
  1060. .xq {
  1061. width: 600rpx;
  1062. margin: auto;
  1063. text-indent:2em;
  1064. }
  1065. view {
  1066. width: 600rpx;
  1067. margin: auto;
  1068. text-indent:2em;
  1069. }
  1070. .tit {
  1071. font-weight: bold;
  1072. text-align: center;
  1073. text-indent:0em;
  1074. // color: ;
  1075. }
  1076. }
  1077. .ts-btn {
  1078. width: 673rpx;
  1079. line-height: 90rpx;
  1080. font-size: 32rpx;
  1081. font-weight: 500;
  1082. color: #FFFFFF;
  1083. text-align: center;
  1084. background: #FF4C4C;
  1085. border-radius: 0px 0px 20rpx 20rpx;
  1086. position: absolute;
  1087. bottom: 0;
  1088. }
  1089. }
  1090. .tcc {
  1091. position: relative;
  1092. background-color: #f8f8f8;
  1093. }
  1094. .tc-wrap {
  1095. width: 500rpx;
  1096. position: relative;
  1097. .tc-img {
  1098. width: 500rpx;
  1099. }
  1100. .qr-wrap {
  1101. width: 254rpx;
  1102. height: 254rpx;
  1103. padding: 2rpx;
  1104. position: absolute;
  1105. top: 152rpx;
  1106. // left: 132rpx;
  1107. left: 0;
  1108. right: 0;
  1109. margin: auto;
  1110. background: #fff;
  1111. border: 1rpx solid #000;
  1112. border-radius: 10rpx;
  1113. image {
  1114. width: 254rpx;
  1115. height: 254rpx;
  1116. }
  1117. }
  1118. }
  1119. </style>