index.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. <template>
  2. <view class="cantent">
  3. <!-- <view class="tip">孝心缝帮扶:仅限服装行业从业者申请哦~</view> -->
  4. <view class="flex til-list" v-if="!id">
  5. <view class="red">基本信息</view>
  6. <view class="">信息选择</view>
  7. <view class="">家庭成员情况</view>
  8. <view class="">详细情况</view>
  9. </view>
  10. <view class="flex til-list" v-if="id && status == ''">
  11. <view class="red">基本信息</view>
  12. <view class="" @click="navTo('/pages/applyHelp/second?id='+id)">信息选择</view>
  13. <view class="" @click="navTo('/pages/applyHelp/third?id='+id)">家庭成员情况</view>
  14. <view class="" @click="navTo('/pages/applyHelp/fourth?id='+id)">详细情况</view>
  15. </view>
  16. <view class="flex til-list" v-if="id && status == 2">
  17. <view class="red">基本信息</view>
  18. <view class="" @click="navTo('/pages/applyHelp/second?id='+id +'&status=2')">信息选择</view>
  19. <view class="" @click="navTo('/pages/applyHelp/third?id='+id+'&status=2')">家庭成员情况</view>
  20. <view class="" @click="navTo('/pages/applyHelp/fourth?id='+id+'&status=2')">详细情况</view>
  21. </view>
  22. <view class="content_box">
  23. <view class="row b-b">
  24. <text class="tit">姓名</text>
  25. <input class="input" type="text" :disabled="disabled" v-model="name" placeholder="请填写您的姓名" placeholder-class="placeholder" />
  26. </view>
  27. <view class="row b-b">
  28. <text class="tit">年龄</text>
  29. <input class="input" type="text" :disabled="disabled" v-model="age" placeholder="请填写您的年龄" placeholder-class="placeholder" />
  30. </view>
  31. <view class="row b-b">
  32. <text class="tit">性别</text>
  33. <input class="input" type="text" :disabled="disabled" v-model="sex" placeholder="请填写您的性别" placeholder-class="placeholder" />
  34. </view>
  35. </view>
  36. <view class="content_box">
  37. <view class="list-name">政治面貌</view>
  38. <view class="uni-list">
  39. <radio-group @change="radioChange">
  40. <view class="radio-list flex_item">
  41. <label class="uni-list-cell uni-list-cell-pd flex_item" v-for="(item, index) in outlook" :key="item.name">
  42. <view><radio :disabled="disabled" style="transform:scale(0.7)" color='#FF727E' :value="item.name" :checked="index === current" /></view>
  43. <view>{{item.name}}</view>
  44. </label>
  45. </view>
  46. </radio-group>
  47. </view>
  48. </view>
  49. <view class="content_box">
  50. <view class="row" v-if="status == ''" @click="selectDatePicker(type)">
  51. <text class="tit">出生日期:</text>
  52. <input class="input" type="text" v-model="birthday" disabled="true" placeholder-class="placeholder" />
  53. <datetime ref='date-time' :type='type' :datestring='dateString' @change='dateTimeChange'></datetime>
  54. </view>
  55. <view class="row" v-if="status == 2">
  56. <text class="tit">出生日期:</text>
  57. <input class="input" type="text" v-model="birthday" disabled="true" placeholder-class="placeholder" />
  58. <datetime ref='date-time' :type='type' :datestring='dateString' @change='dateTimeChange'></datetime>
  59. </view>
  60. <view class="row b-b">
  61. <text class="tit">身份证号</text>
  62. <input class="input" type="number" :disabled="disabled" v-model="card" placeholder="请填写身份证号" placeholder-class="placeholder" />
  63. </view>
  64. <view class="row b-b" v-if="status =='' ">
  65. <text class="tit">省市区</text>
  66. <pickerAddress class="input" @change="onCityClick">{{address||'请选择省市区'}}</pickerAddress>
  67. </view>
  68. <view class="row b-b" v-if="status ==2 ">
  69. <text class="tit">省市区</text>
  70. <input class="input" :disabled="disabled" v-model="address" placeholder="省市区" placeholder-class="placeholder" />
  71. </view>
  72. <view class="row b-b">
  73. <text class="tit">详细地址</text>
  74. <input class="input" v-model="addr" :disabled="disabled" placeholder="请填写详细地址" placeholder-class="placeholder" />
  75. </view>
  76. <view class="row b-b">
  77. <text class="tit">联系电话</text>
  78. <input class="input" type="text" :disabled="disabled" v-model="phone" placeholder="请填写联系电话" placeholder-class="placeholder" />
  79. </view>
  80. <view class="row b-b">
  81. <text class="tit">工作单位</text>
  82. <input class="input" type="text" :disabled="disabled" v-model="work" placeholder="请填写工作单位" placeholder-class="placeholder" />
  83. </view>
  84. </view>
  85. <view class="content_box" v-if="status == ''">
  86. <view class="list-name">单位性质</view>
  87. <view class="uni-list">
  88. <radio-group @change="radioChange1">
  89. <view class="radio-list flex_item">
  90. <label class="uni-list-cell uni-list-cell-pd flex_item" v-for="(item, index) in nature" :key="item.name">
  91. <view><radio :disabled="disabled" style="transform:scale(0.7)" color='#FF727E' :value="item.name" :checked="index === current1" /></view>
  92. <view>{{item.name}}</view>
  93. </label>
  94. </view>
  95. </radio-group>
  96. </view>
  97. </view>
  98. <view class="add-btn" v-if="status == ''" @click="confirm">下一步</view>
  99. <view class="add-btn" v-if="status == 2" @click="Tosecond">下一步</view>
  100. </view>
  101. </template>
  102. <script>
  103. import uniList from '@/components/uni-list/uni-list.vue';
  104. import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
  105. import { upload,add_help } from '@/api/index.js';
  106. import { getList,helpdetail } from '@/api/applyHelp.js';
  107. import datetime from '@/components/DateTimePicker/DateTimePicker.vue'
  108. import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
  109. export default {
  110. components: {
  111. uniList,
  112. uniListItem,
  113. pickerAddress,
  114. datetime
  115. },
  116. data() {
  117. return {
  118. id:'',
  119. name:'',//姓名
  120. age:'',//年龄
  121. sex:'',//性别
  122. card:'',//身份证号
  123. phone:'',//电话
  124. address:'',//
  125. addr:'',
  126. work:'',//工作单位
  127. outlook:[{
  128. id:1,
  129. name:'团员'
  130. },{
  131. id:2,
  132. name:'预备党员'
  133. },{
  134. id:3,
  135. name:'党员'
  136. },{
  137. id:4,
  138. name:'群众'
  139. }],//政治面貌
  140. current:'',
  141. checked:'',
  142. nature:[{
  143. id:1,
  144. name:'国有企业'
  145. },{
  146. id:2,
  147. name:'私营企业'
  148. },{
  149. id:3,
  150. name:'外资企业'
  151. },{
  152. id:4,
  153. name:'事业单位'
  154. },{
  155. id:5,
  156. name:'个位经营'
  157. },{
  158. id:6,
  159. name:'无'
  160. }],//单位性质
  161. current1:'',
  162. checked1:'',
  163. dateString: '',
  164. birthday:'请选择出生日期',//出生日期
  165. type: 'date',
  166. status:'',//审核通过
  167. disabled:false,
  168. };
  169. },
  170. onLoad(option) {
  171. if(option.id){
  172. this.id = option.id;
  173. this.helpDetail();
  174. }
  175. if(option.status){
  176. this.status = option.status;
  177. this.disabled = true;
  178. }
  179. },
  180. onUnload() {
  181. uni.navigateTo({
  182. url: '/pages/applyHelp/cation'
  183. });
  184. },
  185. methods: {
  186. radioChange(evt){
  187. this.checked = evt.detail.value;
  188. },
  189. radioChange1(evt){
  190. this.checked1 = evt.detail.value;
  191. },
  192. // 显示日期选择器
  193. selectDatePicker(type, index) {
  194. this.type = type;
  195. this.index = index;
  196. this.$refs['date-time'].show();
  197. },
  198. dateTimeChange(value) {
  199. this.birthday = value;
  200. console.log(value)
  201. },
  202. // 选中城市切换
  203. onCityClick(res) {
  204. let obj = this;
  205. let province = res.data[0];
  206. let city = res.data[1];
  207. let district = res.data[2];
  208. obj.address = province + city+ district;
  209. console.log(obj.address, '城市');
  210. },
  211. //申请详情
  212. helpDetail(){
  213. let obj = this;
  214. helpdetail({
  215. id:obj.id
  216. }).then(({ data }) => {
  217. obj.name = data.name;
  218. obj.sex = data.sex;
  219. obj.card = data.card;
  220. obj.phone = data.phone;
  221. obj.work = data.work;
  222. obj.birthday = data.birthday;
  223. obj.age = data.age;
  224. console.log(data.address)
  225. let addressDateil = data.address.split(',');
  226. console.log(addressDateil)
  227. obj.address = addressDateil[0];
  228. obj.addr = addressDateil[1];
  229. obj.checked = data.politic;
  230. if(obj.checked == '团员'){
  231. obj.current = 0;
  232. }
  233. if(obj.checked == '预备党员'){
  234. obj.current = 1;
  235. }
  236. if(obj.checked == '党员'){
  237. obj.current = 2;
  238. }
  239. if(obj.checked == '群众'){
  240. obj.current = 3;
  241. }
  242. obj.checked1 = data.properties;
  243. if(obj.checked1 == '国有企业'){
  244. obj.current1 = 0;
  245. }
  246. if(obj.checked1 == '私营企业'){
  247. obj.current1 = 1;
  248. }
  249. if(obj.checked1 == '外资企业'){
  250. obj.current1 = 2;
  251. }
  252. if(obj.checked1 == '事业单位'){
  253. obj.current1 = 3;
  254. }
  255. if(obj.checked1 == '个位经营'){
  256. obj.current1 = 4;
  257. }
  258. if(obj.checked1 == '无'){
  259. obj.current1 = 5;
  260. }
  261. })
  262. .catch(err => {
  263. console.log(err);
  264. });
  265. },
  266. Tosecond(){
  267. uni.navigateTo({
  268. url:'/pages/applyHelp/second?id='+this.id+'&status=2'
  269. })
  270. },
  271. //提交
  272. confirm() {
  273. let obj = this;
  274. if(obj.name == ''){
  275. this.$api.msg('请填写您的姓名!');
  276. return;
  277. }
  278. if(obj.age == ''){
  279. this.$api.msg('请填写您的年龄!');
  280. return;
  281. }
  282. if(obj.sex == ''){
  283. this.$api.msg('请填写您的性别!');
  284. return;
  285. }
  286. if(obj.checked == ''){
  287. this.$api.msg('请填写您的政治面貌!');
  288. return;
  289. }
  290. if(obj.birthday == '' || obj.birthday == '请选择出生日期'){
  291. this.$api.msg('请选择出生日期!');
  292. return;
  293. }
  294. if(obj.card == ''){
  295. this.$api.msg('请填写您的身份证号!');
  296. return;
  297. }
  298. if(obj.address == ''){
  299. this.$api.msg('请选择省市区!');
  300. return;
  301. }
  302. if(obj.addr == ''){
  303. this.$api.msg('请填写您的详细地址!');
  304. return;
  305. }
  306. if(obj.phone == ''){
  307. this.$api.msg('请填写您的联系电话!');
  308. return;
  309. }
  310. if(obj.work == ''){
  311. this.$api.msg('请填写您的工作单位!');
  312. return;
  313. }
  314. if(obj.checked1 == ''){
  315. this.$api.msg('请填写您的单位性质!');
  316. return;
  317. }
  318. let data = {};
  319. if(obj.id){
  320. data = {
  321. id:obj.id,
  322. name:obj.name,
  323. age:obj.age,
  324. sex:obj.sex,
  325. card:obj.card,
  326. phone:obj.phone,
  327. address:obj.address +','+ obj.addr,
  328. work:obj.work,
  329. politic:obj.checked,//政治面貌
  330. birthday:obj.birthday,
  331. properties:obj.checked1//单位性质
  332. }
  333. }else{
  334. data = {
  335. name:obj.name,
  336. age:obj.age,
  337. sex:obj.sex,
  338. card:obj.card,
  339. phone:obj.phone,
  340. address:obj.address +','+ obj.addr,
  341. work:obj.work,
  342. politic:obj.checked,//政治面貌
  343. birthday:obj.birthday,
  344. properties:obj.checked1//单位性质
  345. }
  346. }
  347. add_help(data).then(function(e) {
  348. obj.$api.msg(e.msg);
  349. let id = e.data.id;
  350. console.log(id)
  351. setTimeout(function(){
  352. uni.navigateTo({
  353. url:'/pages/applyHelp/second?id='+id
  354. })
  355. }, 1000);
  356. })
  357. .catch(e => {
  358. obj.$api.msg(e.message);
  359. });
  360. },
  361. navTo(url) {
  362. uni.navigateTo({
  363. url
  364. });
  365. }
  366. }
  367. };
  368. </script>
  369. <style lang="scss">
  370. page {
  371. background: $page-color-base;
  372. min-height: 100%;
  373. }
  374. .cantent{
  375. padding-bottom: 110rpx;
  376. }
  377. .tip{
  378. color: #DE2412;
  379. background-color: #FEE2E3;
  380. font-size: 24rpx;
  381. padding: 25rpx 35rpx;
  382. }
  383. .til-list{
  384. padding: 35rpx 50rpx;
  385. font-size: 28rpx;
  386. color: #666666;
  387. .red{
  388. color: #E62129 !important;
  389. }
  390. }
  391. .name{
  392. padding: 0rpx 35rpx;
  393. padding-bottom: 15rpx !important;
  394. font-size: 36rpx;
  395. font-weight:500;
  396. }
  397. .content_box {
  398. background-color: #ffffff;
  399. padding: 0rpx 25rpx;
  400. .list-name{
  401. padding-top: 25rpx;
  402. font-size: 35rpx;
  403. padding-left: 15rpx;
  404. padding-bottom: 10rpx;
  405. }
  406. .examine_list{
  407. width: 100%;
  408. .textarea-box{
  409. width: 100%;
  410. padding-bottom: 25rpx;
  411. padding-left: 25rpx;
  412. .textarea{
  413. width: 100%;
  414. font-size: 28rpx;
  415. min-height: 150rpx;
  416. }
  417. input{
  418. font-size: 28rpx;
  419. }
  420. }
  421. }
  422. }
  423. .radio-list{
  424. display: flex;
  425. flex-wrap: wrap;
  426. font-size: 28rpx;
  427. padding-top: 30rpx;
  428. .uni-label-pointer{
  429. padding-right: 25rpx;
  430. padding-bottom: 30rpx;
  431. }
  432. }
  433. .mar-b{
  434. margin-bottom: 120rpx;
  435. }
  436. .row {
  437. display: flex;
  438. align-items: center;
  439. // position: relative;
  440. padding: 0 30rpx;
  441. height: 110rpx;
  442. background: #fff;
  443. border-bottom: 1rpx solid #f8f6f6;
  444. .tit {
  445. flex-shrink: 0;
  446. width: 180rpx;
  447. font-size: 30rpx;
  448. color: $font-color-dark;
  449. }
  450. .value{
  451. width: 100%;
  452. text-align: right;
  453. }
  454. .input {
  455. flex: 1;
  456. font-size: 30rpx;
  457. color: $font-color-dark;
  458. text-align: right;
  459. }
  460. .iconlocation {
  461. font-size: 36rpx;
  462. color: $font-color-light;
  463. }
  464. }
  465. .examine_name {
  466. color: #171717;
  467. font-size: 28rpx;
  468. padding: 25rpx 25rpx;
  469. }
  470. .examine_img {
  471. width: 100%;
  472. text-align: center;
  473. .image{
  474. width: 150rpx;
  475. height: 150rpx;
  476. }
  477. .image1{
  478. min-width: 150rpx;
  479. max-width: 100%;
  480. min-height: 150rpx;
  481. }
  482. }
  483. .add-img-box {
  484. width: 100%;
  485. flex-direction: row;
  486. flex-wrap: wrap;
  487. margin-top: 50rpx;
  488. }
  489. .add-img-item {
  490. margin-bottom: 25rpx;
  491. width: 100%;
  492. .add-img {
  493. min-width: 150rpx;
  494. max-width: 100%;
  495. height: 400rpx;
  496. }
  497. }
  498. .add-img-del {
  499. position: absolute;
  500. width: 40rpx;
  501. height: 40rpx;
  502. right: 60rpx;
  503. // bottom: 155rpx;
  504. //background-color: rgba(238, 0, 0, 1);
  505. border-radius: 20rpx;
  506. }
  507. .default-row {
  508. margin-top: 16rpx;
  509. .tit {
  510. flex: 1;
  511. }
  512. switch {
  513. transform: translateX(16rpx) scale(0.9);
  514. }
  515. }
  516. .add-btn{
  517. position: fixed;
  518. bottom: 0rpx;
  519. left: 0rpx;
  520. width: 100%;
  521. height: 100rpx;
  522. font-size: 28rpx;
  523. color: #FFFFFF;
  524. background-color: #FF727E;
  525. line-height: 100rpx;
  526. text-align: center;
  527. }
  528. .img_box {
  529. padding: 35rpx 35rpx;
  530. width: 250rpx;
  531. height: 250rpx;
  532. }
  533. .img_box image {
  534. width: 100%;
  535. height: 100%;
  536. }
  537. .alert-box {
  538. background-color: #ffffff;
  539. }
  540. .b-b:after {
  541. position: relative !important;
  542. }
  543. .check_box {
  544. padding: 25rpx 25rpx;
  545. font-size: 20rpx;
  546. padding-bottom: 150rpx;
  547. text{
  548. color: #6786FB;
  549. }
  550. }
  551. </style>