fill-form.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div class="app-content">
  3. <form @submit="formSubmit">
  4. <app-delivery-module ref="appDelivery" />
  5. <div class="app-footer">
  6. <button class="admin-button-com blue middle" formType="submit"> 提交 </button>
  7. </div>
  8. </form>
  9. </div>
  10. </template>
  11. <script>
  12. import { mapGetters } from "vuex";
  13. import AppDeliveryModule from "@/components/app-delivery";
  14. const form = require("@/utils/formValidation.js");
  15. import { getOrderShop } from "@/utils/config";
  16. import { updateSheet } from "@/api/order";
  17. export default {
  18. name: "fill-form",
  19. components: {
  20. AppDeliveryModule,
  21. },
  22. data() {
  23. return {
  24. form: {},
  25. };
  26. },
  27. computed: {
  28. ...mapGetters({ orderShop: "getOrderShop" }),
  29. },
  30. onLoad() {},
  31. methods: {
  32. init() {
  33. getOrderShop();
  34. },
  35. confirmFn() {
  36. let form = this.$refs.appDelivery.form ? this.$refs.appDelivery.form : {};
  37. let region = this.$refs.appDelivery.region
  38. ? this.$refs.appDelivery.region
  39. : {};
  40. updateSheet({
  41. id: this.option.id,
  42. ...this.form,
  43. ...form,
  44. ...region,
  45. }).then((res) => {
  46. uni.navigateBack({});
  47. });
  48. },
  49. // 表单验证
  50. formSubmit(e) {
  51. // 表单规则
  52. let rules = [
  53. {
  54. name: "receiveUserName",
  55. rule: ["required"],
  56. msg: ["请输入收花人姓名"],
  57. },
  58. {
  59. name: "receiveMobile",
  60. rule: ["required"],
  61. msg: ["请输入收花人手机号"],
  62. },
  63. {
  64. name: "fullAddress",
  65. rule: ["required"],
  66. msg: ["请输入地址"],
  67. }
  68. ];
  69. // 进行表单检查
  70. let formData = this.$refs.appDelivery.form
  71. let checkRes = form.validation(formData, rules);
  72. // 验证通过!
  73. if (!checkRes) {
  74. this.confirmFn();
  75. } else {
  76. this.$msg(checkRes);
  77. }
  78. },
  79. },
  80. };
  81. </script>
  82. <style lang="scss" scoped>
  83. // 匿名派送
  84. .none-name-delivery {
  85. padding-left: 30upx;
  86. margin-top: 40upx;
  87. .none-name-text {
  88. margin-left: 14upx;
  89. color: $fontColor2;
  90. }
  91. }
  92. .app-footer {
  93. .admin-button-com {
  94. width: 90%;
  95. }
  96. }
  97. </style>