dogApplication.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. <template>
  2. <view style="padding: 20rpx;">
  3. <!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 -->
  4. <u-divider text="申请人信息" textColor="#9dd574" lineColor="#9dd574" textPosition="left"></u-divider>
  5. <u-form
  6. labelWidth="190rpx"
  7. labelPosition="left"
  8. :model="model1"
  9. :rules="rules"
  10. ref="uForm"
  11. >
  12. <u-form-item
  13. label="申请人类型"
  14. prop="userInfo.proposerTypeName"
  15. borderBottom
  16. @click="showProposerType = true;"
  17. ref="item1"
  18. >
  19. <u--input
  20. v-model="model1.userInfo.proposerTypeName"
  21. disabled
  22. disabledColor="#ffffff"
  23. placeholder="请选择申请人类型"
  24. border="none"
  25. ></u--input>
  26. <u-icon
  27. slot="right"
  28. name="arrow-right"
  29. ></u-icon>
  30. </u-form-item>
  31. <u-form-item
  32. label="申请人姓名"
  33. prop="userInfo.nickName"
  34. borderBottom
  35. ref="item1"
  36. >
  37. <u--input
  38. placeholder="请输入申请人姓名"
  39. v-model="model1.userInfo.nickName"
  40. border="none"
  41. ></u--input>
  42. </u-form-item>
  43. <u-form-item
  44. label="证件类型"
  45. prop="userInfo.cardTypeName"
  46. borderBottom
  47. @click="showCardType = true;"
  48. ref="item1"
  49. >
  50. <u--input
  51. v-model="model1.userInfo.cardTypeName"
  52. disabled
  53. disabledColor="#ffffff"
  54. placeholder="请选择证件类型"
  55. border="none"
  56. ></u--input>
  57. <u-icon
  58. slot="right"
  59. name="arrow-right"
  60. ></u-icon>
  61. </u-form-item>
  62. <u-form-item
  63. label="其他证件类型"
  64. prop="userInfo.cardTypeOther"
  65. borderBottom
  66. ref="item1"
  67. v-if="model1.userInfo.cardType === '4'"
  68. >
  69. <u--input
  70. placeholder="请输入其他证件类型"
  71. v-model="model1.userInfo.cardTypeOther"
  72. border="none"
  73. ></u--input>
  74. </u-form-item>
  75. <u-form-item
  76. label="证件号码"
  77. prop="userInfo.idCard"
  78. borderBottom
  79. ref="item1"
  80. >
  81. <u--input
  82. placeholder="请输入证件号码"
  83. v-model="model1.userInfo.idCard"
  84. border="none"
  85. ></u--input>
  86. </u-form-item>
  87. <view v-if="model1.userInfo.proposerType === '1'">
  88. <u-divider text="个人信息" textColor="#9dd574" lineColor="#9dd574" textPosition="left"></u-divider>
  89. <u-form-item
  90. label="养犬人照片"
  91. prop="userInfo.avatar"
  92. borderBottom
  93. ref="item1"
  94. >
  95. <u-upload
  96. :fileList="fileList1"
  97. @afterRead="afterRead"
  98. @delete="deletePic"
  99. name="1"
  100. multiple
  101. :maxCount="1"
  102. ></u-upload>
  103. </u-form-item>
  104. <u-form-item
  105. label="联系电话"
  106. borderBottom
  107. ref="item1"
  108. >
  109. <u--input
  110. disabled
  111. disabledColor="#ffffff"
  112. v-model="model1.userInfo.phoneNumber"
  113. border="none"
  114. ></u--input>
  115. </u-form-item>
  116. <u-form-item
  117. label="电子邮箱"
  118. prop="userInfo.email"
  119. borderBottom
  120. ref="item1"
  121. >
  122. <u--input
  123. placeholder="请输入电子邮箱"
  124. v-model="model1.userInfo.email"
  125. border="none"
  126. ></u--input>
  127. </u-form-item>
  128. <u-form-item
  129. label="养犬人地址"
  130. prop="userInfo.address"
  131. borderBottom
  132. ref="item1"
  133. >
  134. <u--input
  135. placeholder="请输入养犬人地址"
  136. v-model="model1.userInfo.address"
  137. border="none"
  138. ></u--input>
  139. </u-form-item>
  140. </view>
  141. <view v-if="model1.userInfo.proposerType === '2'">
  142. <u-divider text="单位信息" textColor="#9dd574" lineColor="#9dd574" textPosition="left"></u-divider>
  143. <u-form-item
  144. label="组织名称"
  145. prop="userInfo.organizationName"
  146. borderBottom
  147. ref="item1"
  148. >
  149. <u--input
  150. placeholder="请输入组织名称"
  151. v-model="model1.userInfo.organizationName"
  152. border="none"
  153. ></u--input>
  154. </u-form-item>
  155. <u-form-item
  156. label="信用代码"
  157. prop="userInfo.organizationCode"
  158. borderBottom
  159. ref="item1"
  160. >
  161. <u--input
  162. placeholder="请输入信用代码"
  163. v-model="model1.userInfo.organizationCode"
  164. border="none"
  165. ></u--input>
  166. </u-form-item>
  167. <u-form-item
  168. label="联系电话"
  169. borderBottom
  170. ref="item1"
  171. >
  172. <u--input
  173. disabled
  174. disabledColor="#ffffff"
  175. v-model="model1.userInfo.phoneNumber"
  176. border="none"
  177. ></u--input>
  178. </u-form-item>
  179. <u-form-item
  180. label="法人姓名"
  181. prop="userInfo.legalNickName"
  182. borderBottom
  183. ref="item1"
  184. >
  185. <u--input
  186. placeholder="请输入法人姓名"
  187. v-model="model1.userInfo.legalNickName"
  188. border="none"
  189. ></u--input>
  190. </u-form-item>
  191. <u-form-item
  192. label="法人证件类型"
  193. prop="userInfo.legalCardTypeName"
  194. borderBottom
  195. @click="showLegalCardType = true;"
  196. ref="item1"
  197. >
  198. <u--input
  199. v-model="model1.userInfo.legalCardTypeName"
  200. disabled
  201. disabledColor="#ffffff"
  202. placeholder="请选择证件类型"
  203. border="none"
  204. ></u--input>
  205. <u-icon
  206. slot="right"
  207. name="arrow-right"
  208. ></u-icon>
  209. </u-form-item>
  210. <u-form-item
  211. label="法人其他证件类型"
  212. prop="userInfo.legalCardTypeOther"
  213. borderBottom
  214. ref="item1"
  215. v-if="model1.userInfo.legalCardType === '4'"
  216. >
  217. <u--input
  218. placeholder="请输入法人其他证件类型"
  219. v-model="model1.userInfo.legalCardTypeOther"
  220. border="none"
  221. ></u--input>
  222. </u-form-item>
  223. <u-form-item
  224. label="法人证件号码"
  225. prop="userInfo.legalIdCard"
  226. borderBottom
  227. ref="item1"
  228. >
  229. <u--input
  230. placeholder="请输入法人证件号码"
  231. v-model="model1.userInfo.legalIdCard"
  232. border="none"
  233. ></u--input>
  234. </u-form-item>
  235. <u-form-item
  236. label="电子邮箱"
  237. prop="userInfo.email"
  238. borderBottom
  239. ref="item1"
  240. >
  241. <u--input
  242. placeholder="请输入电子邮箱"
  243. v-model="model1.userInfo.email"
  244. border="none"
  245. ></u--input>
  246. </u-form-item>
  247. <u-form-item
  248. label="单位地址"
  249. prop="userInfo.address"
  250. borderBottom
  251. ref="item1"
  252. >
  253. <u--input
  254. placeholder="请输入单位地址"
  255. v-model="model1.userInfo.address"
  256. border="none"
  257. ></u--input>
  258. </u-form-item>
  259. </view>
  260. <u-divider text="犬只信息" textColor="#9dd574" lineColor="#9dd574" textPosition="left"></u-divider>
  261. <u-form-item
  262. label="犬全身照(侧身正脸全身照)"
  263. prop="userInfo.dogAvatar"
  264. borderBottom
  265. ref="item1"
  266. >
  267. <u-upload
  268. :fileList="fileList2"
  269. @afterRead="afterRead"
  270. @delete="deletePic"
  271. name="2"
  272. multiple
  273. :maxCount="1"
  274. ></u-upload>
  275. </u-form-item>
  276. <u-form-item
  277. label="犬名"
  278. prop="userInfo.dogName"
  279. borderBottom
  280. ref="item1"
  281. >
  282. <u--input
  283. placeholder="请输入犬名"
  284. v-model="model1.userInfo.dogName"
  285. border="none"
  286. ></u--input>
  287. </u-form-item>
  288. <u-form-item
  289. label="犬种"
  290. prop="userInfo.dogKindName"
  291. borderBottom
  292. ref="item1"
  293. @click="showDogKindType = true"
  294. >
  295. <u--input
  296. v-model="model1.userInfo.dogKindName"
  297. disabled
  298. disabledColor="#ffffff"
  299. placeholder="请选择犬种"
  300. border="none"
  301. ></u--input>
  302. <u-icon
  303. slot="right"
  304. name="arrow-right"
  305. ></u-icon>
  306. </u-form-item>
  307. <u-form-item
  308. label="毛色"
  309. prop="userInfo.color"
  310. borderBottom
  311. ref="item1"
  312. >
  313. <u--input
  314. placeholder="请输入毛色"
  315. v-model="model1.userInfo.color"
  316. border="none"
  317. ></u--input>
  318. </u-form-item>
  319. <u-form-item
  320. label="身高(厘米)"
  321. prop="userInfo.height"
  322. borderBottom
  323. ref="item1"
  324. >
  325. <u--input
  326. placeholder="请输入身高"
  327. type = "number"
  328. v-model="model1.userInfo.height"
  329. border="none"
  330. ></u--input>
  331. </u-form-item>
  332. <u-form-item
  333. label="体长(厘米)"
  334. prop="userInfo.length"
  335. borderBottom
  336. ref="item1"
  337. >
  338. <u--input
  339. placeholder="请输入体长"
  340. type = "number"
  341. v-model="model1.userInfo.length"
  342. border="none"
  343. ></u--input>
  344. </u-form-item>
  345. <u-form-item
  346. label="性别"
  347. prop="userInfo.dogSexName"
  348. borderBottom
  349. ref="item1"
  350. @click="showDogSexType = true"
  351. >
  352. <u--input
  353. v-model="model1.userInfo.dogSexName"
  354. disabled
  355. disabledColor="#ffffff"
  356. placeholder="请选择犬种"
  357. border="none"
  358. ></u--input>
  359. <u-icon
  360. slot="right"
  361. name="arrow-right"
  362. ></u-icon>
  363. </u-form-item>
  364. <u-form-item
  365. label="出生日期"
  366. prop="userInfo.birthDate"
  367. borderBottom
  368. ref="item1"
  369. @click="showBirthDate = true;dateType = '1'"
  370. >
  371. <u--input
  372. v-model="model1.userInfo.birthDate"
  373. disabled
  374. disabledColor="#ffffff"
  375. placeholder="请选择出生日期"
  376. border="none"
  377. ></u--input>
  378. <u-icon
  379. slot="right"
  380. name="arrow-right"
  381. ></u-icon>
  382. </u-form-item>
  383. <u-form-item
  384. label="准养日期"
  385. prop="userInfo.expectedAdoptionDate"
  386. borderBottom
  387. ref="item1"
  388. @click="showBirthDate = true;dateType = '2'"
  389. >
  390. <u--input
  391. v-model="model1.userInfo.expectedAdoptionDate"
  392. disabled
  393. disabledColor="#ffffff"
  394. placeholder="请选择准养日期"
  395. border="none"
  396. ></u--input>
  397. <u-icon
  398. slot="right"
  399. name="arrow-right"
  400. ></u-icon>
  401. </u-form-item>
  402. <u-form-item
  403. label="延续登记日期"
  404. prop="userInfo.continuationRegistrationDate"
  405. borderBottom
  406. ref="item1"
  407. @click="showBirthDate = true;dateType = '3'"
  408. >
  409. <u--input
  410. v-model="model1.userInfo.continuationRegistrationDate"
  411. disabled
  412. disabledColor="#ffffff"
  413. placeholder="请选择延续登记日期"
  414. border="none"
  415. ></u--input>
  416. <u-icon
  417. slot="right"
  418. name="arrow-right"
  419. ></u-icon>
  420. </u-form-item>
  421. <u-form-item
  422. label="饲养地点"
  423. prop="userInfo.feedAddress"
  424. borderBottom
  425. ref="item1"
  426. >
  427. <u--input
  428. placeholder="请输入饲养地点"
  429. v-model="model1.userInfo.feedAddress"
  430. border="none"
  431. ></u--input>
  432. </u-form-item>
  433. </u-form>
  434. <u-button type="success" text="提交" @click="submitForm"></u-button>
  435. <u-action-sheet
  436. :show="showProposerType"
  437. :actions="proposerTypeActions"
  438. title="请选择申请人类型"
  439. @close="showProposerType = false"
  440. @select="proposerTypeSelect"
  441. >
  442. </u-action-sheet>
  443. <u-action-sheet
  444. :show="showCardType"
  445. :actions="cardTypeActions"
  446. title="请选择证件类型"
  447. @close="showCardType = false"
  448. @select="cardTypeSelect"
  449. >
  450. </u-action-sheet>
  451. <u-action-sheet
  452. :show="showLegalCardType"
  453. :actions="cardTypeActions"
  454. title="请选择证件类型"
  455. @close="showLegalCardType = false"
  456. @select="legalCardTypeSelect"
  457. >
  458. </u-action-sheet>
  459. <u-picker
  460. :show="showDogKindType"
  461. title="选择犬种"
  462. :columns="dogKindList"
  463. keyName="dictLabel"
  464. @confirm="dogKindConfirm"
  465. @cancel = "showDogKindType = false"
  466. >
  467. </u-picker>
  468. <u-action-sheet
  469. :show="showDogSexType"
  470. :actions="dogSexActions"
  471. title="请选择性别"
  472. @close="showDogSexType = false"
  473. @select="dogSexTypeSelect"
  474. >
  475. </u-action-sheet>
  476. <u-datetime-picker
  477. :show="showBirthDate"
  478. mode="date"
  479. v-model="birthDateValue"
  480. @confirm="(e) => birthDateConfirm(e, dateType)"
  481. @cancel="showBirthDate = false"
  482. ></u-datetime-picker>
  483. </view>
  484. </template>
  485. <script>
  486. const app = getApp();
  487. export default {
  488. data() {
  489. return {
  490. showProposerType: false,
  491. showCardType: false,
  492. showLegalCardType: false,
  493. showDogKindType:false,
  494. showDogSexType:false,
  495. showBirthDate:false,
  496. dateType:'',
  497. birthDateValue:Number(new Date()),
  498. fileList1: [],
  499. fileList2: [],
  500. dogKindList:[],
  501. model1: {
  502. userInfo: {
  503. source:'app',
  504. proposerType: '',
  505. nickName: '',
  506. proposerTypeName: '',
  507. cardType: '',
  508. cardTypeName: '',
  509. idCard: '',
  510. cardTypeOther: '',
  511. avatar: '',
  512. phoneNumber:uni.getStorageSync('phonenumber'),
  513. email:'',
  514. address:'',
  515. organizationName:'',
  516. organizationCode:'',
  517. legalNickName:'',
  518. legalCardType:'',
  519. legalCardTypeName:'',
  520. legalCardTypeOther:'',
  521. legalIdCard:'',
  522. dogAvatar:'',
  523. dogName:'',
  524. dogKind:'',
  525. dogKindName:'',
  526. color:'',
  527. height:'',
  528. length:'',
  529. dogSex:'',
  530. dogSexName:'',
  531. birthDate:'',
  532. expectedAdoptionDate:'',
  533. continuationRegistrationDate:'',
  534. feedAddress:''
  535. },
  536. },
  537. proposerTypeActions: [
  538. {
  539. name: '个人',
  540. value: '1'
  541. },
  542. {
  543. name: '单位',
  544. value: '2'
  545. }
  546. ],
  547. cardTypeActions:[
  548. {
  549. name: '身份证',
  550. value: '1'
  551. },
  552. {
  553. name: '护照',
  554. value: '2'
  555. },
  556. {
  557. name: '居住证',
  558. value: '3'
  559. },
  560. {
  561. name: '其它',
  562. value: '4'
  563. }
  564. ],
  565. dogSexActions:[
  566. {
  567. name: '雄',
  568. value: '1'
  569. },
  570. {
  571. name: '雌',
  572. value: '2'
  573. },
  574. ],
  575. rules: {
  576. 'userInfo.proposerTypeName': {
  577. type: 'string',
  578. required: true,
  579. message: '请选择养犬申请人类型',
  580. trigger: ['blur', 'change']
  581. },
  582. 'userInfo.nickName': {
  583. type: 'string',
  584. required: true,
  585. message: '请输入养犬人姓名',
  586. trigger: ['blur', 'change']
  587. },
  588. 'userInfo.cardTypeName': {
  589. type: 'string',
  590. required: true,
  591. message: '请选择养犬证件类型',
  592. trigger: ['blur', 'change']
  593. },
  594. 'userInfo.idCard': {
  595. type: 'string',
  596. required: true,
  597. message: '请输入证件号码',
  598. trigger: ['blur', 'change']
  599. },
  600. 'userInfo.cardTypeOther':{
  601. required: true,
  602. message: '请输入其他证件类型',
  603. trigger: ['change','blur']
  604. },
  605. 'userInfo.avatar':{
  606. required: true,
  607. message: '请上传用户照片',
  608. trigger: ['change','blur']
  609. },
  610. 'userInfo.email':{
  611. required: true,
  612. message: '请输入电子邮箱',
  613. trigger: ['change','blur']
  614. },
  615. 'userInfo.address':{
  616. required: true,
  617. message: '请输入地址',
  618. trigger: ['change','blur']
  619. },
  620. 'userInfo.organizationName':{
  621. required: true,
  622. message: '请输入组织名称',
  623. trigger: ['change','blur']
  624. },
  625. 'userInfo.organizationCode':{
  626. required: true,
  627. message: '请输入信用代码',
  628. trigger: ['change','blur']
  629. },
  630. 'userInfo.legalNickName':{
  631. required: true,
  632. message: '请输入法人姓名',
  633. trigger: ['change','blur']
  634. },
  635. 'userInfo.legalCardTypeName':{
  636. required: true,
  637. message: '请选择法人证件类型',
  638. trigger: ['change','blur']
  639. },
  640. 'userInfo.legalCardTypeOther':{
  641. required: true,
  642. message: '请输入法人其他证件类型',
  643. trigger: ['change','blur']
  644. },
  645. 'userInfo.legalIdCard':{
  646. required: true,
  647. message: '请输入法人证件号码',
  648. trigger: ['change','blur']
  649. },
  650. 'userInfo.dogAvatar':{
  651. required: true,
  652. message: '请上传犬全身照',
  653. trigger: ['change','blur']
  654. },
  655. 'userInfo.dogName':{
  656. required: true,
  657. message: '请输入犬名',
  658. trigger: ['change','blur']
  659. },
  660. 'userInfo.dogKindName':{
  661. required: true,
  662. message: '请选择犬种',
  663. trigger: ['change','blur']
  664. },
  665. 'userInfo.color':{
  666. required: true,
  667. message: '请输入毛色',
  668. trigger: ['change','blur']
  669. },
  670. 'userInfo.height':{
  671. required: true,
  672. message: '请输入身高',
  673. trigger: ['change','blur']
  674. },
  675. 'userInfo.length':{
  676. required: true,
  677. message: '请输入体长',
  678. trigger: ['change','blur']
  679. },
  680. 'userInfo.dogSexName':{
  681. required: true,
  682. message: '请选择宠物性别',
  683. trigger: ['change','blur']
  684. },
  685. 'userInfo.birthDate':{
  686. required: true,
  687. message: '请选择出生日期',
  688. trigger: ['change','blur']
  689. },
  690. 'userInfo.expectedAdoptionDate':{
  691. required: true,
  692. message: '请选择准养日期',
  693. trigger: ['change','blur']
  694. },
  695. 'userInfo.continuationRegistrationDate':{
  696. required: true,
  697. message: '请选择延续登记日期',
  698. trigger: ['change','blur']
  699. },
  700. 'userInfo.feedAddress':{
  701. required: true,
  702. message: '请输入饲养地点',
  703. trigger: ['change','blur']
  704. }
  705. },
  706. radio: '',
  707. switchVal: false
  708. };
  709. },
  710. methods: {
  711. // 删除图片
  712. deletePic(event) {
  713. this.model1.userInfo.avatar = '';
  714. this.$refs.uForm.validateField('userInfo.avatar');
  715. this[`fileList${event.name}`].splice(event.index, 1);
  716. },
  717. // 新增图片
  718. async afterRead(event) {
  719. console.log(event,333)
  720. // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
  721. let lists = [].concat(event.file);
  722. let fileListLen = this[`fileList${event.name}`].length;
  723. lists.map((item) => {
  724. this[`fileList${event.name}`].push({
  725. ...item,
  726. status: "uploading",
  727. message: "上传中",
  728. });
  729. });
  730. for (let i = 0; i < lists.length; i++) {
  731. const result = await this.uploadFilePromise(lists[i].url);
  732. if(event.name === '1'){
  733. this.model1.userInfo.avatar = result;
  734. this.$refs.uForm.validateField('userInfo.avatar');
  735. }
  736. if(event.name === '2'){
  737. this.model1.userInfo.dogAvatar = result;
  738. this.$refs.uForm.validateField('userInfo.dogAvatar');
  739. }
  740. let item = this[`fileList${event.name}`][fileListLen];
  741. this[`fileList${event.name}`].splice(
  742. fileListLen,
  743. 1,
  744. Object.assign(item, {
  745. status: "success",
  746. message: "",
  747. url: app.globalData.commonImage+result,
  748. })
  749. );
  750. fileListLen++;
  751. }
  752. },
  753. uploadFilePromise(url) {
  754. return new Promise((resolve, reject) => {
  755. let a = uni.uploadFile({
  756. url: app.globalData.commonHttp+"common/upload", // 仅为示例,非真实的接口地址
  757. filePath: url,
  758. name: "file",
  759. header:{
  760. authorization:'Bearer '+uni.getStorageSync('token')
  761. },
  762. success: (res) => {
  763. setTimeout(() => {
  764. resolve(JSON.parse(res.data).fileName);
  765. }, 1000);
  766. },
  767. });
  768. });
  769. },
  770. proposerTypeSelect(e) {
  771. this.model1.userInfo.proposerTypeName = e.name
  772. this.model1.userInfo.proposerType = e.value
  773. this.$refs.uForm.validateField('userInfo.proposerTypeName')
  774. },
  775. cardTypeSelect(e) {
  776. this.model1.userInfo.cardTypeName = e.name
  777. this.model1.userInfo.cardType = e.value
  778. this.$refs.uForm.validateField('userInfo.cardTypeName')
  779. },
  780. legalCardTypeSelect(e){
  781. this.model1.userInfo.legalCardTypeName = e.name
  782. this.model1.userInfo.legalCardType = e.value
  783. this.$refs.uForm.validateField('userInfo.legalCardTypeName')
  784. },
  785. dogSexTypeSelect(e){
  786. this.model1.userInfo.dogSexName = e.name
  787. this.model1.userInfo.dogSex = e.value
  788. this.$refs.uForm.validateField('userInfo.dogSexName')
  789. },
  790. dogKindConfirm(e){
  791. this.model1.userInfo.dogKindName = e.value[0].dictLabel
  792. this.model1.userInfo.dogKind = e.value[0].dictValue
  793. this.$refs.uForm.validateField('userInfo.dogKindName')
  794. this.showDogKindType = false
  795. },
  796. birthDateConfirm(e,type){
  797. console.log(e,type)
  798. if(type === '1'){
  799. this.model1.userInfo.birthDate = this.formatDate(e.value)
  800. this.$refs.uForm.validateField('userInfo.birthDate')
  801. }
  802. if(type === '2'){
  803. this.model1.userInfo.expectedAdoptionDate = this.formatDate(e.value)
  804. this.$refs.uForm.validateField('userInfo.expectedAdoptionDate')
  805. }
  806. if(type === '3'){
  807. this.model1.userInfo.continuationRegistrationDate = this.formatDate(e.value)
  808. this.$refs.uForm.validateField('userInfo.continuationRegistrationDate')
  809. }
  810. this.showBirthDate = false
  811. },
  812. formatDate(timestamp) {
  813. const date = new Date(timestamp);
  814. const year = date.getFullYear();
  815. const month = (date.getMonth() + 1).toString().padStart(2, '0');
  816. const day = date.getDate().toString().padStart(2, '0');
  817. return `${year}-${month}-${day}`;
  818. },
  819. async submitForm() {
  820. // 动态更新规则
  821. // const currentRules = { ...this.rules }; // 浅拷贝当前规则
  822. // if (this.model1.userInfo.cardType !== '4') {
  823. // // 修改需要取消校验字段的规则
  824. // currentRules['userInfo.cardTypeOther'] = {
  825. // required: false
  826. // }
  827. // }
  828. // 重新设置规则
  829. // this.$refs.uForm.setRules(currentRules);
  830. // 进行验证
  831. try {
  832. await this.$refs.uForm.validate();
  833. this.$http.post('appraisal/DDog',this.model1.userInfo).then(res=>{
  834. uni.showToast({ title: '提交成功',success() {
  835. setTimeout(()=>{
  836. uni.navigateBack();
  837. },2000)
  838. } });
  839. }).catch(err=>{
  840. })
  841. } catch (errors) {
  842. console.log('验证失败', errors);
  843. } finally {
  844. // 可选:提交后恢复初始规则状态
  845. this.$refs.uForm.setRules(this.rules);
  846. }
  847. }
  848. },
  849. onReady() {
  850. //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
  851. this.$refs.uForm.setRules(this.rules);
  852. //获取犬种
  853. this.$http.get('system/dict/data/type/d_doy_kind').then(res=>{
  854. this.dogKindList.push(res.data);
  855. }).catch(err=>{
  856. })
  857. }
  858. };
  859. </script>
  860. <style>
  861. </style>