request.js 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog";
  2. import { value as _value } from "./config";
  3. const request = {
  4. // 查看模式
  5. watchFunc (value, data, switchs) {
  6. return value.map(itemA => itemA.map(itemB => {
  7. if (!itemB.hasOwnProperty('value')) return itemB;
  8. if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
  9. itemB['disabled'] = true;
  10. switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
  11. if (itemC.key === itemB.value) itemB["index"] = indexC;
  12. // 申请贷款产品 申请贷款期限关联
  13. if (itemB.name == 'laompany') {
  14. value[0][11]['value'] = itemC['month'] + '个月';
  15. }
  16. // 第一借款人与申请人关系特殊处理
  17. // if (itemB.name == 'mstatus' && itemB.value == 1) {
  18. // value[2][2] = { ...value[2][2], value: 0, index: 0 }
  19. // }
  20. })
  21. return itemB
  22. })
  23. )
  24. },
  25. // 修改草稿
  26. draftUpdataFunc (value, data, switchs) {
  27. return value.map(itemA => itemA.map(itemB => {
  28. if (!itemB.hasOwnProperty('value')) return itemB;
  29. if (itemB.name != "maturity") {
  30. itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || '';
  31. }
  32. switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
  33. if (itemC.key === itemB.value) {
  34. itemB["index"] = indexC;
  35. };
  36. // 申请贷款产品 申请贷款期限关联
  37. if (itemB.name == 'laompany') {
  38. value[0][11]['value'] = itemC['month'] + '个月';
  39. }
  40. // 第一借款人与申请人关系特殊处理
  41. // if (itemB.name == 'mstatus' && itemB.value == 1) {
  42. // value[2][2] = { ...value[2][2], value: 0, index: 0 }
  43. // }
  44. })
  45. return itemB
  46. }));
  47. },
  48. // 已填报修改模式
  49. updataFunc (value, data, edit_values, switchs) {
  50. // 后台更改贷款商品key
  51. return value.map(itemA => itemA.map(itemB => {
  52. if (!itemB.hasOwnProperty('value')) return itemB;
  53. if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
  54. switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
  55. if (itemC.key === itemB.value) itemB["index"] = indexC;
  56. // 申请贷款产品 申请贷款期限关联
  57. if (itemB.name == 'laompany') {
  58. value[0][11]['value'] = itemC['month'] + '个月';
  59. }
  60. // 第一借款人与申请人关系特殊处理
  61. // if (itemB.name == 'mstatus' && itemB.value == 1) {
  62. // value[2][2] = { ...value[2][2], value: 0, index: 0 }
  63. // }
  64. })
  65. edit_values.some(itemC => {
  66. if (itemC.name == itemB.name) {
  67. itemB['err'] = itemC['reason'];
  68. }
  69. return itemC.name == itemB.name;
  70. }) ? '' : itemB['disabled'] = true;
  71. return itemB
  72. }));
  73. },
  74. // 提交共同验证
  75. judge () {
  76. let { value } = this.data, megs = [], data = {}, cvalue = [], tels = [], i = 0;
  77. if (value[2][6]['value'] == 0) {
  78. value = [...value[0], ...value[1], ...value[2]];
  79. cvalue = [..._value[0], ..._value[1], ..._value[2]];
  80. } else {
  81. value = [...value[0], ...value[1], ...value[2], ...value[3]];
  82. cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
  83. }
  84. value.forEach((item, index) => {
  85. // 特殊格式 非必须
  86. if (!item.hasOwnProperty('value') || (!item.value && item.norequire)) {
  87. if (item.hasOwnProperty('value')) data[item.name] = item.value;
  88. return false
  89. };
  90. // 正常流程
  91. // 判断是否为空
  92. if (item.value !== 0 && !item.value) { megs.push(`${item.title}不能为空!`); return false; };
  93. // 数字类型
  94. if (item.type == 'number' && !/^\d+.?\d*$/.test(item.value)) { megs.push(`${item.title}格式不正确!`); return false; }
  95. // 正则判断
  96. if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
  97. if (item.hasOwnProperty('reg_msg')) {
  98. megs.push(`${item.title},${item.reg_msg}`);
  99. } else {
  100. megs.push(`${item.title}格式不正确!`);
  101. }
  102. return false;
  103. };
  104. // 号码不能相同 tel tstel ctel cttel
  105. if (item.name == 'tel' || item.name == 'tstel' || item.name == 'ctel' || item.name == 'cttel') {
  106. (!tels.some(itemT => itemT == item.value) || item.vlaue == '') && tels.push(item.value); ++i;
  107. }
  108. ;
  109. // 身份证验证
  110. if (item.name == 'inumber' && data['bdate']) {
  111. item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['bdate'] && megs.push(`身份证同出生日期不一致!`);
  112. }
  113. if (item.name == 'tsinumber' && data['tsbdate']) {
  114. item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['tsbdate'] && megs.push(`共同借款人身份证同出生日期不一致!`)
  115. }
  116. if (item.name == "dpratio") {
  117. /-/g.test(item.value) && megs.push("请重新填写申请贷款产品!")
  118. }
  119. data[item.name] = item.value;
  120. });
  121. tels.length !== i && megs.push(`手机号码不能重复`);
  122. return { megs, data }
  123. },
  124. // 提交
  125. async submitFunc () {
  126. try {
  127. let { submitLock } = this.data;
  128. if (submitLock) return false;
  129. this.setData({ submitLock: true });
  130. let { data, megs } = this.judge();
  131. data['category'] = 1;
  132. // 申请贷款期限 不用传
  133. delete data['maturity'];
  134. if (megs.length != 0) {
  135. this.setData({ errorShow: true, megs, submitLock: false });
  136. return false;
  137. };
  138. let resA = await wx.$request({ method: "post", url: "/order/", data });
  139. this.setData({ submitLock: false });
  140. Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
  141. } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
  142. },
  143. // 草稿箱的修改
  144. async draftsUpdateFunc () {
  145. try {
  146. let { key, submitLock } = this.data;
  147. if (submitLock) return false;
  148. this.setData({ submitLock: true });
  149. let { data, megs } = this.judge();
  150. data['category'] = 1;
  151. // 申请贷款期限 不用传
  152. delete data['maturity'];
  153. if (megs.length != 0) {
  154. this.setData({ errorShow: true, megs, submitLock: false });
  155. return false;
  156. };
  157. let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
  158. this.setData({ submitLock: false });
  159. Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: `/pages/accessory/index?data=${resA.data}&images=${JSON.stringify(this.edit_file2)}&imgs=${JSON.stringify([])}` }))
  160. } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
  161. },
  162. // 保存共同验证
  163. judgeA () {
  164. let { value } = this.data, data = {};
  165. var requeire = ['name', 'tel'], megs = [];
  166. value = [...value[0], ...value[1], ...value[2], ...value[3]];
  167. var cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
  168. value.forEach((item, index) => {
  169. if (!item.hasOwnProperty('value')) return false;
  170. if (requeire.some(itemB => itemB == item.name)) {
  171. if (item.value !== 0 && !item.value) {
  172. megs.push(`${item.title}不能为空!`)
  173. return false
  174. };
  175. if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
  176. megs.push(`${item.title}格式不正确!`); return false;
  177. };
  178. }
  179. data[item.name] = item.value;
  180. });
  181. return { data, megs }
  182. },
  183. // 新增保存
  184. async saveFunc () {
  185. try {
  186. let { saveLock } = this.data;
  187. if (saveLock) return false;
  188. this.setData({ saveLock: true });
  189. let { data, megs } = this.judgeA();
  190. data['category'] = 0;
  191. // 申请贷款期限 不用传
  192. delete data['maturity'];
  193. if (megs.length != 0) {
  194. this.setData({ errorShow: true, megs, saveLock: false });
  195. return false;
  196. };
  197. let resA = await wx.$request({ method: "post", url: "/order/", data });
  198. this.setData({ saveLock: false })
  199. Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
  200. } catch (err) {
  201. wx.$err(err)
  202. }
  203. },
  204. //草稿箱保存草稿
  205. async draftsUpdateSaveFunc () {
  206. try {
  207. let { saveLock, key } = this.data;
  208. if (saveLock) return false;
  209. this.setData({ saveLock: true });
  210. let { data, megs } = this.judgeA();
  211. data['category'] = 0;
  212. // 申请贷款期限 不用传
  213. delete data['maturity'];
  214. if (megs.length != 0) {
  215. this.setData({ errorShow: true, megs, saveLock: false });
  216. return false;
  217. };
  218. let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
  219. this.setData({ saveLock: false })
  220. Dialog.alert({ message: "已保存!" }).then(res => wx.redirectTo({ url: `/pages/accessory/index?data=${resA.data}&imgs=${JSON.stringify([])}&images=${JSON.stringify(this.edit_file2)}` }));
  221. } catch (err) { wx.$err(err) }
  222. },
  223. // 已填报修改上报
  224. async UpdateSaveFunc () {
  225. try {
  226. let { submitLock, key } = this.data;
  227. if (submitLock) return false;
  228. this.setData({ submitLock: true });
  229. let { data, megs } = this.judge();
  230. data['category'] = 1;
  231. // 申请贷款期限 不用传
  232. delete data['maturity'];
  233. if (megs.length != 0) {
  234. this.setData({ errorShow: true, megs, submitLock: false });
  235. return false;
  236. };
  237. let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
  238. this.setData({ submitLock: false });
  239. Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: `/pages/accessory/index?data=${resA.data}&imgs=${JSON.stringify(this.edit_file)}&images=${JSON.stringify(this.edit_file2)}` }))
  240. } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
  241. },
  242. };
  243. module.exports = request;