index.vue 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. <template>
  2. <view class="content">
  3. <image src="../../static/img/bz-bg.png" mode="widthFix" class="bz-bg"></image>
  4. <view class="bz-tit flex">
  5. <view class="hx"></view>
  6. <view class="">
  7. 报名申请
  8. </view>
  9. <view class="hx"></view>
  10. </view>
  11. <view class="tab ">
  12. <view class="bd-wrap flex">
  13. <view class="bg-name">
  14. 孕妇姓名:
  15. </view>
  16. <view class="bg-val">
  17. <input type="text" value="" placeholder="请输入您的姓名" class="val-ipt" v-model="name"/>
  18. </view>
  19. </view>
  20. <view class="bd-wrap flex">
  21. <view class="bg-name">
  22. 身份证号:
  23. </view>
  24. <view class="bg-val">
  25. <input type="idcard" value="" placeholder="请输入您的身份证号" class="val-ipt" v-model="cid"/>
  26. </view>
  27. </view>
  28. <view class="bd-wrap flex">
  29. <view class="bg-name">
  30. 户籍地址:
  31. </view>
  32. <view class="bg-val">
  33. <input type="text" value="" placeholder="请输入户籍地址" class="val-ipt" v-model="reg"/>
  34. </view>
  35. </view>
  36. <view class="bd-wrap flex">
  37. <view class="bg-name">
  38. 现居住地址:
  39. </view>
  40. <view class="bg-val">
  41. <input type="text" value="" placeholder="请输入现居住地址" class="val-ipt" v-model="address"/>
  42. </view>
  43. </view>
  44. <view class="bd-wrap flex">
  45. <view class="bg-name">
  46. 联系电话:
  47. </view>
  48. <view class="bg-val">
  49. <input type="text" value="" placeholder="请输入联系电话" class="val-ipt" v-model="phone"/>
  50. </view>
  51. </view>
  52. <view class="bd-wrap flex">
  53. <view class="bg-name">
  54. 孕妇银行卡号:
  55. </view>
  56. <view class="bg-val">
  57. <input type="text" value="" placeholder="请输入银行卡号" class="val-ipt" v-model="bcd"/>
  58. </view>
  59. </view>
  60. <view class="bd-wrap flex">
  61. <view class="bg-name">
  62. 配偶姓名:
  63. </view>
  64. <view class="bg-val">
  65. <input type="text" value="" placeholder="请输入您的配偶姓名" class="val-ipt" v-model="sname"/>
  66. </view>
  67. </view>
  68. <view class="bd-wrap flex">
  69. <view class="bg-name">
  70. 配偶身份证号:
  71. </view>
  72. <view class="bg-val">
  73. <input type="idcard" value="" placeholder="请输入配偶身份证号" class="val-ipt" v-model="scid"/>
  74. </view>
  75. </view>
  76. <view class="bd-wrap flex">
  77. <view class="bg-name">
  78. 配偶户籍地址:
  79. </view>
  80. <view class="bg-val">
  81. <input type="text" value="" placeholder="请输入配偶户籍地址" class="val-ipt" v-model="preg"/>
  82. </view>
  83. </view>
  84. <view class="bd-wrap flex">
  85. <view class="bg-name">
  86. 配偶现居住地址:
  87. </view>
  88. <view class="bg-val">
  89. <input type="text" value="" placeholder="请输入配偶现居住地址" class="val-ipt" v-model="paddress"/>
  90. </view>
  91. </view>
  92. <view class="sm-wrap">
  93. <view class="sm-tit">
  94. 诊断(请勾选):
  95. </view>
  96. <view class="flex">
  97. <view class="radio flex" @click="gfx = !gfx">
  98. <view class="">
  99. 产前筛查高风险
  100. </view>
  101. <radio value="r1" :checked="gfx" color="#ff404c" clase="dd"/>
  102. </view>
  103. <view class="radio flex" @click="ycd = !ycd">
  104. <view class="">
  105. 预产期年龄>35周岁
  106. </view>
  107. <radio value="r1" :checked="ycd" color="#ff404c" clase="dd"/>
  108. </view>
  109. </view>
  110. </view>
  111. <view class="sm-wrap">
  112. <view class="sm-tit">
  113. 户口本(户主页图片 + 孕妇本人页图片)
  114. </view>
  115. <view class="pic-num">
  116. {{hkb | showNum}}/2
  117. </view>
  118. <view class="img-list flex">
  119. <view class="img-item" v-for="(sfzItem,sfzIndex) in hkb" @click="upImag(sfzIndex,hkb)" >
  120. <image :src="sfzItem" mode="" class="upimg" v-if="sfzItem"></image>
  121. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  122. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg(sfzIndex,hkb)"
  123. v-if="sfzItem"></image>
  124. </view>
  125. </view>
  126. </view>
  127. <view class="sm-wrap">
  128. <view class="sm-tit">
  129. 结婚证
  130. </view>
  131. <view class="pic-num">
  132. {{jhz | showNum}}/1
  133. </view>
  134. <view class="img-list flex">
  135. <view class="img-item" @click="upImag1('jhz')">
  136. <image :src="jhz" mode="" class="upimg" v-if="jhz"></image>
  137. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  138. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg1('jhz')"
  139. v-if="jhz"></image>
  140. </view>
  141. </view>
  142. </view>
  143. <view class="sm-wrap">
  144. <view class="sm-tit">
  145. 孕产妇身份证正反面
  146. </view>
  147. <view class="pic-num">
  148. {{cidimg | showNum}}/2
  149. </view>
  150. <view class="img-list flex">
  151. <view class="img-item" v-for="(sfzItem,sfzIndex) in cidimg" @click="upImag(sfzIndex,cidimg)" >
  152. <image :src="sfzItem" mode="" class="upimg" v-if="sfzItem"></image>
  153. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  154. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg(sfzIndex,cidimg)"
  155. v-if="sfzItem"></image>
  156. </view>
  157. </view>
  158. </view>
  159. <view class="sm-wrap">
  160. <view class="sm-tit" style="padding-right: 100rpx;">
  161. 孕妇本人名下银行卡(带有账户信息面)
  162. </view>
  163. <view class="pic-num">
  164. {{bcdimg | showNum}}/1
  165. </view>
  166. <view class="img-list flex">
  167. <view class="img-item" @click="upImag1('bcdimg')">
  168. <image :src="bcdimg" mode="" class="upimg" v-if="bcdimg"></image>
  169. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  170. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg1('bcdimg')"
  171. v-if="bcdimg"></image>
  172. </view>
  173. </view>
  174. </view>
  175. <view class="sm-wrap">
  176. <view class="sm-tit" style="padding-right: 100rpx;">
  177. 产前筛查高风险报告单
  178. </view>
  179. <view class="pic-num">
  180. {{cqsc | showNum}}/1
  181. </view>
  182. <view class="img-list flex">
  183. <view class="img-item" @click="upImag1('cqsc')">
  184. <image :src="cqsc" mode="" class="upimg" v-if="cqsc"></image>
  185. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  186. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg1('cqsc')"
  187. v-if="cqsc"></image>
  188. </view>
  189. </view>
  190. </view>
  191. <!-- 羊水穿刺病历记录单 -->
  192. <view class="sm-wrap">
  193. <view class="sm-tit">
  194. 羊水穿刺病历记录单
  195. </view>
  196. <view class="pic-num">
  197. {{yscc | showNum}}/2
  198. </view>
  199. <view class="img-list flex">
  200. <view class="img-item" v-for="(sfzItem,sfzIndex) in yscc" @click="upImag(sfzIndex,yscc)" >
  201. <image :src="sfzItem" mode="" class="upimg" v-if="sfzItem"></image>
  202. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  203. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg(sfzIndex,yscc)"
  204. v-if="sfzItem"></image>
  205. </view>
  206. </view>
  207. </view>
  208. <!-- 报销发票(含羊水穿刺收费项目明细) -->
  209. <view class="sm-wrap">
  210. <view class="sm-tit">
  211. 报销发票(含羊水穿刺收费项目明细)
  212. </view>
  213. <view class="pic-num">
  214. {{bxfp | showNum}}/2
  215. </view>
  216. <view class="img-list flex">
  217. <view class="img-item" v-for="(sfzItem,sfzIndex) in bxfp" @click="upImag(sfzIndex,bxfp)">
  218. <image :src="sfzItem" mode="" class="upimg" v-if="sfzItem"></image>
  219. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  220. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg(sfzIndex,bxfp)"
  221. v-if="sfzItem"></image>
  222. </view>
  223. </view>
  224. </view>
  225. <view class="sm-wrap">
  226. <view class="sm-tit" style="padding-right: 30rpx;">
  227. 其他需补充提交材料
  228. </view>
  229. <view class="pic-num">
  230. {{other | showNum}}/2
  231. </view>
  232. <view class="img-list flex">
  233. <view class="img-item" v-for="(checkItem,checkIndex) in other" @click="upImag(checkIndex,other)">
  234. <image :src="checkItem" mode="" class="upimg" v-if="checkItem"></image>
  235. <image src="../../static/img/up-img.png" mode="" class="upimg" v-else></image>
  236. <image src="../../static/icon/delimg.png" mode="" class="delimg" @click.stop="delImg(checkIndex,other)"
  237. v-if="checkItem"></image>
  238. </view>
  239. </view>
  240. </view>
  241. </view>
  242. <view class="sub" @click="sub">
  243. 提交申请
  244. </view>
  245. </view>
  246. </template>
  247. <script>
  248. import {
  249. upload,
  250. sub_list
  251. } from '@/api/ask.js';
  252. export default {
  253. data() {
  254. return {
  255. name: '', //姓名
  256. cid: '', //身份证号
  257. sname: '', //配偶姓名
  258. scid: '', //配偶身份证号
  259. bcd: '', //银行卡号
  260. phone: '', //联系电话
  261. address: '', //地址
  262. paddress: '', //配偶地址
  263. reg: '', //户籍
  264. preg: '',//配偶户籍
  265. gfx: false,//产前高风险
  266. ycd: false,//预产期年龄>35周岁
  267. hkb:['',''],//户口本
  268. jhz: '',//结婚证
  269. cidimg: ['',''], //身份证正反面
  270. bcdimg: '', //银行卡图片
  271. cqsc: '',//产前筛查高风险报告单
  272. yscc:['',''],//羊水穿刺病历记录单
  273. bxfp:['',''],//报销发票(含羊水穿刺收费项目明细)
  274. other: ['',''],//其他需补充提交材料
  275. loadingType: 'more',
  276. }
  277. },
  278. filters: {
  279. showNum(val) {
  280. let i = 0
  281. if(Array.isArray(val)) {
  282. if(val) {
  283. val.forEach(e => {
  284. if(e) {
  285. i++
  286. }
  287. })
  288. }
  289. }else {
  290. if(val != '') {
  291. i++
  292. }
  293. }
  294. return i
  295. }
  296. },
  297. onShow() {
  298. },
  299. methods: {
  300. jy(arr,length) {
  301. let i = 0
  302. arr.forEach(item => {
  303. if(item != '') {
  304. i++
  305. }
  306. })
  307. return i == length
  308. },
  309. upImag(index,list) {
  310. console.log('上传')
  311. let obj = this
  312. upload({
  313. filename: ''
  314. }).then(res => {
  315. // console.log(res[0].url)
  316. // obj.sfzShow = false
  317. // list[index] = res[0].url
  318. // obj.sfzShow = true
  319. list.splice(index, 1, res[0].fullurl)
  320. });
  321. },
  322. upImag1(item) {
  323. console.log('上传')
  324. let obj = this
  325. upload({
  326. filename: ''
  327. }).then(res => {
  328. // console.log(res[0].url)
  329. // obj.bcdimg = res[0].url
  330. obj.$set(obj,item,res[0].fullurl)
  331. });
  332. },
  333. delImg(index,list) {
  334. console.log('删除')
  335. // this.sfzShow = false
  336. // list[index] = ''
  337. // this.sfzShow = true
  338. list.splice(index, 1, '')
  339. },
  340. delImg1(name) {
  341. this.$set(this,name,'')
  342. },
  343. sub() {
  344. let obj = this
  345. if(obj.loadingType == 'loading') {
  346. return
  347. }
  348. // 校验
  349. if (obj.name == '') {
  350. return obj.$api.msg('请输入您的姓名')
  351. }
  352. if (obj.cid == '') {
  353. return obj.$api.msg('请输入您的身份证号')
  354. }
  355. if (obj.sname == '') {
  356. return obj.$api.msg('请输入您的配偶姓名')
  357. }
  358. if (obj.scid == '') {
  359. return obj.$api.msg('请输入您的配偶身份证号')
  360. }
  361. if (obj.bcd == '') {
  362. return obj.$api.msg('请输入您的银行卡号')
  363. }
  364. if (obj.phone == '') {
  365. return obj.$api.msg('请输入您的联系电话')
  366. }
  367. if (obj.address == '') {
  368. return obj.$api.msg('请输入现居住地址')
  369. }
  370. if (obj.reg == '') {
  371. return obj.$api.msg('请输入户籍地址')
  372. }
  373. if (obj.paddress == '') {
  374. return obj.$api.msg('请输入配偶现居住地址')
  375. }
  376. if (obj.preg == '') {
  377. return obj.$api.msg('请输入配偶户籍地址')
  378. }
  379. //户口本
  380. if(!obj.jy(obj.hkb,2)) {
  381. return obj.$api.msg('请上传户口本信息')
  382. }
  383. // 结婚证
  384. if(obj.jhz == '') {
  385. return obj.$api.msg('请上传结婚证')
  386. }
  387. //身份证正反面
  388. if(!obj.jy(obj.cidimg,2)) {
  389. return obj.$api.msg('请上传身份证正反面')
  390. }
  391. //银行卡图片
  392. if (obj.bcdimg == '') {
  393. return obj.$api.msg('请上传银行卡照片')
  394. }
  395. //产前筛查高风险报告单
  396. if (obj.cqsc == '') {
  397. return obj.$api.msg('请上传产前筛查高风险报告单')
  398. }
  399. //羊水穿刺病历记录单
  400. if(!obj.jy(obj.yscc,2)) {
  401. return obj.$api.msg('请上传羊水穿刺病历记录单')
  402. }
  403. //报销发票
  404. if(!obj.jy(obj.bxfp,2)) {
  405. return obj.$api.msg('请上传报销发票')
  406. }
  407. //其他需补充提交材料0
  408. obj.loadingType = 'loading'
  409. let sett = ''
  410. if(obj.gfx && obj.ycd) {
  411. // sett = ['产前筛查高风险','预产期年龄>35周岁']
  412. sett ="产前筛查高风险,预产期年龄≥35周岁"
  413. // sett = '产前筛查高风险,预产期年龄≥35周岁'
  414. }else if(obj.gfx){
  415. sett = '产前筛查高风险'
  416. }else if(obj.ycd) {
  417. sett = '预产期年龄≥35周岁'
  418. }else {
  419. }
  420. sub_list({
  421. user_name: obj.name, //姓名
  422. idcard: obj.cid, //身份证号
  423. address: obj.reg, //地址
  424. current_address: obj.address,
  425. phone: obj.phone,//
  426. card: obj.bcd,
  427. mate: obj.sname, //配偶姓名
  428. mate_idcard: obj.scid,//配偶身份证号
  429. mate_address: obj.paddress,
  430. mate_current_address: obj.preg,
  431. diagnosis: sett,
  432. residence_bookleimage: obj.hkb[0],
  433. gravida_inhabitantimage: obj.hkb[1],
  434. marriage_certificateimage: obj.jhz,
  435. front_idcardimage: obj.cidimg[0],
  436. opposite_idcardimage: obj.cidimg[1],
  437. cardimage: obj.bcdimg,
  438. high_riskimages: obj.cqsc,
  439. Recordimages: obj.yscc.join(','),
  440. invoiceimages: obj.bxfp.join(','),
  441. materialimages: obj.other.join(',')
  442. }).then(res => {
  443. obj.loadingType = 'more'
  444. uni.showToast({
  445. title: '提交成功',
  446. duration: 2000
  447. });
  448. }).catch(err => {
  449. obj.loadingType = 'more'
  450. })
  451. }
  452. }
  453. }
  454. </script>
  455. <style lang="scss" scoped>
  456. .bz-bg {
  457. width: 750rpx;
  458. }
  459. .bz-tit {
  460. align-items: center;
  461. justify-content: center;
  462. margin-top: 40rpx;
  463. font-size: 36rpx;
  464. font-weight: bold;
  465. color: #f3392c;
  466. .hx {
  467. width: 70rpx;
  468. height: 2rpx;
  469. background-color: #f99a93;
  470. margin: 0 25rpx;
  471. }
  472. }
  473. .tab {
  474. width: 690rpx;
  475. border-radius: 20rpx;
  476. overflow: hidden;
  477. margin: 36rpx auto 0;
  478. box-shadow: 0rpx 0rpx 10rpx rgba(0, 0, 0, 0.2);
  479. }
  480. .bd-wrap {
  481. width: 690rpx;
  482. height: 100rpx;
  483. background-color: #fff;
  484. border-bottom: 1px solid #f2f2f2;
  485. line-height: 100rpx;
  486. font-size: 32rpx;
  487. position: relative;
  488. .code {
  489. position: absolute;
  490. width: 100rpx;
  491. height: 100rpx;
  492. right: 10rpx;
  493. color: #f64342;
  494. font-size: 23rpx;
  495. }
  496. .bg-name {
  497. width: 260rpx;
  498. height: 100%;
  499. padding-left: 20rpx;
  500. }
  501. .bg-val {
  502. width: 430rpx;
  503. height: 100%;
  504. .val-ipt {
  505. display: inline-block;
  506. width: 100%;
  507. height: 100%;
  508. // background-color: #009100;
  509. padding-left: 10rpx;
  510. }
  511. }
  512. }
  513. .sub {
  514. margin-top: 100rpx;
  515. text-align: center;
  516. font-size: 40rpx;
  517. color: #fff;
  518. font-weight: bold;
  519. line-height: 100rpx;
  520. width: 750rpx;
  521. background-color: #f3392c;
  522. }
  523. .sm-wrap {
  524. background-color: #fff;
  525. padding-bottom: 28rpx;
  526. border-bottom: 1px solid #f2f2f2;
  527. position: relative;
  528. .sm-tit {
  529. // line-height: 87rpx;
  530. padding: 20rpx;
  531. font-size: 32rpx;
  532. line-height: 1.5;
  533. // padding-left: 20rpx;
  534. }
  535. .text-area {
  536. height: 156rpx;
  537. width: 634rpx;
  538. border-radius: 20rpx;
  539. border: 1px solid #e8e8e8;
  540. margin: auto;
  541. padding: 10rpx;
  542. }
  543. .pic-num {
  544. position: absolute;
  545. width: 75rpx;
  546. line-height: 34rpx;
  547. border-radius: 17rpx;
  548. background-color: #f3392c;
  549. color: #fff;
  550. font-size: 28rpx;
  551. text-align: center;
  552. right: 10rpx;
  553. top: 22rpx;
  554. }
  555. .img-list {
  556. padding-left: 28rpx;
  557. .img-item {
  558. width: 160rpx;
  559. height: 160rpx;
  560. position: relative;
  561. margin-right: 20rpx;
  562. .upimg {
  563. width: 160rpx;
  564. height: 160rpx;
  565. }
  566. .delimg {
  567. width: 39rpx;
  568. height: 38rpx;
  569. position: absolute;
  570. top: 0;
  571. right: 0;
  572. }
  573. }
  574. }
  575. }
  576. .radio {
  577. padding: 10rpx;
  578. background-color: #f3f3f3;
  579. margin-left: 20rpx;
  580. font-size: 26rpx;
  581. align-items: center;
  582. view {
  583. flex-shrink: 0;
  584. padding-right: 10rpx;
  585. }
  586. .dd {
  587. width: 35rpx !important;
  588. height: 35rpx !important;
  589. }
  590. }
  591. </style>