form.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. /**
  2. * Validate v1.0.0 通用验证
  3. * @description 项目中用到的表单验证规则
  4. */
  5. import test from '@/sheep/helper/test.js';
  6. import { t } from '@/locale'
  7. // 用户名
  8. export const username = {
  9. rules: [
  10. {
  11. required: true,
  12. errorMessage: t('rules.enter_username'),
  13. },
  14. {
  15. validateFunction: function (rule, value, data, callback) {
  16. if (!value) {
  17. callback(t('rules.username_required'));
  18. }
  19. return true;
  20. },
  21. },
  22. ],
  23. };
  24. // 手机号
  25. export const mobile = {
  26. rules: [
  27. {
  28. required: true,
  29. errorMessage: t('rules.enter_phone'),
  30. },
  31. {
  32. validateFunction: function (rule, value, data, callback) {
  33. if (!test.mobile(value)) {
  34. callback(t('rules.incorrect_phone_format'));
  35. }
  36. return true;
  37. },
  38. },
  39. ],
  40. };
  41. // 密码
  42. export const password = {
  43. rules: [
  44. {
  45. required: true,
  46. errorMessage: t('rules.enter_password'),
  47. },
  48. {
  49. validateFunction: function (rule, value, data, callback) {
  50. if (!/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+\S{5,12}$/.test(value)) {
  51. callback(t('rules.password_requirements'));
  52. }
  53. return true;
  54. },
  55. },
  56. ],
  57. };
  58. // 支付密码
  59. export const payPassword = {
  60. rules: [
  61. {
  62. required: true,
  63. errorMessage: t('rules.请输入支付密码'),
  64. },
  65. {
  66. pattern: /^\d{6}$/,
  67. errorMessage: t('rules.请输入6位数字'),
  68. }
  69. ],
  70. };
  71. // 短信验证码
  72. export const code = {
  73. rules: [
  74. {
  75. required: true,
  76. errorMessage:t('rules.enter_verification_code'),
  77. },
  78. ],
  79. };
  80. // 真实姓名
  81. export const realName = {
  82. rules: [
  83. {
  84. required: true,
  85. errorMessage: t('rules.enter_name'),
  86. },
  87. {
  88. validateFunction: function (rule, value, data, callback) {
  89. if (!test.chinese(value)) {
  90. callback(t('rules.enter_chinese_characters'));
  91. }
  92. return true;
  93. },
  94. },
  95. ],
  96. };
  97. export const taxName = {
  98. rules: [
  99. {
  100. required: true,
  101. errorMessage: t('rules.enter_invoice_title'),
  102. },
  103. {
  104. validateFunction: function (rule, value, data, callback) {
  105. if (!test.chinese(value)) {
  106. callback(t('rules.enter_chinese_characters'));
  107. }
  108. return true;
  109. },
  110. },
  111. ],
  112. };
  113. // 税号
  114. export const taxNo = {
  115. rules: [
  116. {
  117. required: true,
  118. errorMessage: t('rules.enter_tax_number'),
  119. },
  120. ],
  121. };
  122. // 开户行
  123. export const bankName = {
  124. rules: [
  125. {
  126. required: true,
  127. errorMessage: t('rules.enter_bank'),
  128. },
  129. {
  130. validateFunction: function (rule, value, data, callback) {
  131. if (!test.chinese(value)) {
  132. callback(t('rules.enter_chinese_characters'));
  133. }
  134. return true;
  135. },
  136. },
  137. ],
  138. };
  139. // 银行卡号
  140. export const bankCode = {
  141. rules: [
  142. {
  143. required: true,
  144. errorMessage:t('rules.enter_bank_card_number'),
  145. },
  146. {
  147. validateFunction: function (rule, value, data, callback) {
  148. if (!/^\d+$/.test(value) ) {
  149. callback(t('rules.correct_bank_card_number'));
  150. }
  151. return true;
  152. },
  153. },
  154. ],
  155. };
  156. // 支付宝账号
  157. export const alipayAccount = {
  158. rules: [
  159. {
  160. required: true,
  161. errorMessage: t('rules.enter_alipay_account'),
  162. },
  163. {
  164. validateFunction: function (rule, value, data, callback) {
  165. let isEmail = test.email(value);
  166. let isMobile = test.mobile(value);
  167. if (!isEmail && !isMobile) {
  168. callback(t('rules.correct_account_number'));
  169. }
  170. return true;
  171. },
  172. },
  173. ],
  174. };
  175. // 支付宝账号
  176. export const email = {
  177. rules: [
  178. {
  179. required: true,
  180. errorMessage: t('rules.enter_email'),
  181. },
  182. {
  183. validateFunction: function (rule, value, data, callback) {
  184. let isEmail = test.email(value);
  185. if (!isEmail) {
  186. callback(t('rules.correct_email'));
  187. }
  188. return true;
  189. },
  190. },
  191. ],
  192. };
  193. export default {
  194. mobile,
  195. alipayAccount,
  196. bankCode,
  197. bankName,
  198. realName,
  199. password,
  200. code,
  201. taxNo,
  202. taxName,
  203. email
  204. };