邪性 преди 3 години
родител
ревизия
3b59056f95

+ 22 - 15
components/template/config.js

@@ -1,13 +1,20 @@
+// 数据
+
 /**
  * 申请贷款模板
  * @param {object} 
- * name{字段} input唯一标识 提价保存时的key 
- * title{字段汉字} input对应的label,以及验证时:title格式不正确|title不能为空
- * value{字段的值} 一般默认为'' 
+ * name{input唯一标识 提价保存时的key} 
+ * title{ input对应的label,以及验证时:title格式不正确|title不能为空}
+ * _title:{特殊的输入占位}
+ * value{一般默认为'' } 
  * type:{循环渲染时,不同功能的wxml} 
  * _type:{input的类型}
  * style:{证明这个数据只起到提示作用} 
- * norequeire:{在验证的时候可有可无,前提value==''}
+ * norequeire:{在提交验证的时候可有可无,前提value==''}
+ * for:{紧挨的依赖}
+ * disabled:禁止用户输入
+ * reg:正则
+ * relation 特殊关系 文字变蓝
  */
 const value = [
   // 车辆和贷款信息
@@ -15,11 +22,11 @@ const value = [
     { name: "vmodel", title: "车型", value: '' },
     { name: "invioce", title: "车辆发票金额", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, type: 'number', _type: "number", value: '', add: '' },
     { style: 1, title: "附加品金额 (如有必填)" },
-    { name: "ptax", norequire: true, title: "购置税", _title: "金额", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, type: 'number', _type: "number", value: '', add: '' },
-    { name: "insurance", norequire: true, title: "保险", _title: "金额", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, type: 'number', _type: "number", value: '', add: '' },
-    { name: "boutique", norequire: true, title: "精品", _title: "金额", type: 'number', _type: "number", value: '', reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
-    { name: "wextension", norequire: true, title: "延保", _title: "金额", type: 'number', _type: "number", value: '', reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
-    { name: "upkeep", norequire: true, title: "保养", _title: "金额", type: 'number', _type: "number", value: '', reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
+    { name: "ptax", relation: true, norequire: true, title: "购置税", _title: "金额", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, type: 'number', _type: "number", value: '', add: '' },
+    { name: "insurance", relation: true, norequire: true, title: "保险", _title: "金额", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, type: 'number', _type: "number", value: '', add: '' },
+    { name: "boutique", relation: true, norequire: true, title: "精品", _title: "金额", type: 'number', _type: "number", value: '', reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
+    { name: "wextension", relation: true, norequire: true, title: "延保", _title: "金额", type: 'number', _type: "number", value: '', reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
+    { name: "upkeep", relation: true, norequire: true, title: "保养", _title: "金额", type: 'number', _type: "number", value: '', reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
     { name: "lamount", title: "申请贷款金额", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, type: 'number', _type: "number", value: '', add: '' },
     { name: "dpratio", disabled: true, title: "首付比例", value: '' },
     { name: "laompany", type: "switch", title: "申请贷款产品", value: '' },
@@ -39,7 +46,7 @@ const value = [
     //0身份证 1护照 2军官证 3户口 4临时身份证 5港澳台通行证
     { name: "ntype", title: "身份证件类型", type: 'switch', value: '' },
     { name: "inumber", title: "身份证件号码", _type: "idcard", reg: /(^\d{18}$)|(^\d{17}(\d|X|x)$)/, value: '' },
-    { name: "dincome", title: "税后收入", type: 'number', _type: "number", value: "", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
+    { name: "dincome", title: "收入", type: 'number', _type: "number", value: "", reg: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, add: '' },
     // 0未婚 1已婚 2离异 3丧偶 4其他
     { name: "mstatus", title: "婚姻状况", type: 'switch', value: '' },
     //0高中以下 1高中 2专科 3学士 4硕士 5博士
@@ -49,12 +56,12 @@ const value = [
     { name: "hptype", title: "现居住房产类型", type: 'switch', value: "" },
     // 0同居住地址 1同单位地址
     { name: "maddress", title: "邮寄地址", type: 'switch', value: "" },
-    { name: "email", title: "电子邮箱", reg: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, value: "" },
+    { name: "email", norequire: true, title: "电子邮箱", reg: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, value: "" },
     { name: "wx", title: "微信号", reg: /^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/, value: "" },
-    { name: "phone", title: "住宅固定电话", reg: /(^0?(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[13589]|16[0-9])[0-9]{8}$)|(^([0-9]{3,4}-)?[0-9]{7,8}$)/, value: "" },
+    { name: "phone", norequire: true, title: "住宅固定电话", reg: /(^0?(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[13589]|16[0-9])[0-9]{8}$)|(^([0-9]{3,4}-)?[0-9]{7,8}$)/, value: "" },
     { name: "tel", title: "手机号", reg: /(^0?(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[13589]|16[0-9])[0-9]{8}$)|(^([0-9]{3,4}-)?[0-9]{7,8}$)/, type: 'number', _type: "number", value: "" },
     { name: "wname", title: "现工作单位名称", value: "" },
-    { name: "wphone", title: "单位电话", reg: /(^0?(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[13589]|16[0-9])[0-9]{8}$)|(^([0-9]{3,4}-)?[0-9]{7,8}$)/, value: "" },
+    { name: "wphone", norequire: true, title: "单位电话", reg: /(^0?(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[13589]|16[0-9])[0-9]{8}$)|(^([0-9]{3,4}-)?[0-9]{7,8}$)/, value: "" },
     { name: "waddress", title: "现工作单位地址", _title: "详细门牌号", reg_msg: "请填写详细门牌号!", reg: /^.*[0-9]{1,}.*$/, reg_msg: "请填写详细门牌号!", value: "" },
     // 0农林牧鱼 1制造业 2批发零售 3信息传输/软件/信息技术服务 4房地产 5建筑业 6住宿/餐饮 7卫生/社会工作 8科研/技术服务 9公共管理/社会保障/社会组织 10采矿业 11文化/体育/娱乐业 12居民服务/修理/其他服务业 13租赁/商务服务业 14交通运输/仓储/邮政业 15教育 16金融 17国际组织 18电热力/燃气/水生产供应业 19水利/环境/公共设施管理 20其他
     { name: "itype", title: "行业类型", type: "switch", value: "" },
@@ -92,10 +99,10 @@ const value = [
   { name: "tsnaddress", title: "共借人现居住", _title: "详细门牌号", reg: /^.*[0-9]{1,}.*$/, reg_msg: "请填写详细门牌号!", value: "" },
   // 0同居住地址 1同单位地址
   { name: "tsmaddress", title: "共借人邮寄地址", type: 'switch', value: "" },
-  { name: "tsemail", title: "共借人电子邮箱", reg: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, value: "" },
+  { name: "tsemail", norequire: true, title: "共借人电子邮箱", reg: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, value: "" },
   { name: "tswx", title: "共借人微信号", reg: /^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/, value: "" },
   { name: "tswname", title: "共借人现工作单位名称", value: "" },
-  { name: "tswphone", title: "共借人单位电话", reg: /(^0?(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[13589]|16[0-9])[0-9]{8}$)|(^([0-9]{3,4}-)?[0-9]{7,8}$)/, value: "" },
+  { name: "tswphone", norequire: true, title: "共借人单位电话", reg: /(^0?(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[13589]|16[0-9])[0-9]{8}$)|(^([0-9]{3,4}-)?[0-9]{7,8}$)/, value: "" },
   { name: "tswaddress", title: "共借人现工作单位地址", _title: "详细门牌号", reg: /^.*[0-9]{1,}.*$/, reg_msg: "请填写详细门牌号!", value: "" },
   { name: "tsmincome", title: "共借人税后月收入", type: 'number', _type: "number", value: "" }
   ]

+ 4 - 384
components/template/index.js

@@ -1,7 +1,6 @@
 import { value, switchs, date } from "./config";
-import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog";
-import { chineseNumber } from "./ChinaNumToEnglishNum";
-var _value = value;
+import methods from "./methods";
+import request from "./request";
 const app = getApp();
 Component({
   options: {
@@ -43,387 +42,8 @@ Component({
     btn: true,
     radioInputShow: false,
   },
-
   methods: {
-    //组件石林进入页面接节点树执行
-    async init () {
-      try {
-        // 商品请求
-        var laompany = [];
-        let res = await wx.$request({ method: "get", url: "/order/productDict/" });
-        laompany = res.data.map(item => ({ key: item.id, value: item.name, month: item.month }));
-        let { type, value, switchs } = this.data;
-        switchs['laompany'] = laompany;
-        switch (type) {
-          // 已填报查看
-          case 'watch':
-            var resA = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
-            var data = resA.data.data;
-            value = this.watchFunc(value, data, switchs);
-            break;
-          case 'draftsupdate':
-            // 修改草稿
-            var resB = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
-            var data = resB.data;
-            console.log(data)
-            value = this.draftUpdataFunc(value, data, switchs);
-            break;
-          case 'providedupdate':
-            // 修改已填报
-            var resA = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
-            var { data, edit_values, edit_file, edit_file2 } = resA.data;
-            this.edit_file = edit_file;
-            this.edit_file2 = edit_file2;
-            value = this.updataFunc(value, data, edit_values, switchs);
-          default:
-            // 新增
-            this.data.key && laompany.forEach((item, index) => {
-              if (item.key == this.data.key) {
-                value[0][10]["value"] = item.key;
-                value[0][10]["index"] = index;
-                value[0][11]['value'] = item['month'] + '个月';
-              }
-            })
-            break;
-        }
-        this.setData({ value, switchs })
-      } catch (err) { wx.$err(err) }
-    },
-
-    //  查看模式
-    watchFunc (value, data, switchs) {
-      return value.map(itemA => itemA.map(itemB => {
-        if (!itemB.hasOwnProperty('value')) return itemB;
-        if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
-        itemB['disabled'] = true;
-        switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
-          if (itemC.key === itemB.value) itemB["index"] = indexC;
-          // 申请贷款产品 申请贷款期限关联
-          if (itemB.name == 'laompany') {
-            value[0][11]['value'] = itemC['month'] + '个月';
-          }
-          // 第一借款人与申请人关系特殊处理
-          if (itemB.name == 'mstatus' && itemB.value == 1) {
-            value[2][2] = { ...value[2][2], disabled: true, value: 0, index: 0 }
-          }
-        })
-        return itemB
-      })
-      )
-    },
-
-    // 修改草稿
-    draftUpdataFunc (value, data, switchs) {
-      return value.map(itemA => itemA.map(itemB => {
-        if (!itemB.hasOwnProperty('value')) return itemB;
-        if (itemB.name != "maturity") {
-          itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || '';
-        }
-        switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
-          if (itemC.key === itemB.value) {
-            itemB["index"] = indexC;
-          };
-          // 申请贷款产品 申请贷款期限关联
-          if (itemB.name == 'laompany') {
-            value[0][11]['value'] = itemC['month'] + '个月';
-          }
-          // 第一借款人与申请人关系特殊处理
-          if (itemB.name == 'mstatus' && itemB.value == 1) {
-            value[2][2] = { ...value[2][2], disabled: true, value: 0, index: 0 }
-          }
-        })
-        return itemB
-      }));
-    },
-
-    // 已填报修改模式
-    updataFunc (value, data, edit_values, switchs) {
-      // 后台更改贷款商品key 
-      return value.map(itemA => itemA.map(itemB => {
-        if (!itemB.hasOwnProperty('value')) return itemB;
-        if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
-        switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
-          if (itemC.key === itemB.value) itemB["index"] = indexC;
-          // 申请贷款产品 申请贷款期限关联
-          if (itemB.name == 'laompany') {
-            value[0][11]['value'] = itemC['month'] + '个月';
-          }
-          // 第一借款人与申请人关系特殊处理
-          if (itemB.name == 'mstatus' && itemB.value == 1) {
-            value[2][2] = { ...value[2][2], disabled: true, value: 0, index: 0 }
-          }
-        })
-
-        edit_values.some(itemC => {
-          if (itemC.name == itemB.name) {
-            itemB['err'] = itemC['reason'];
-          }
-          return itemC.name == itemB.name;
-        }) ? '' : itemB['disabled'] = true;
-
-        return itemB
-      }));
-    },
-
-    // 提交
-    async submitFunc () {
-      try {
-        let { value, submitLock } = this.data, megs = [], data = {}, cvalue = [], tels = [], i = 0;
-        if (submitLock) return false;
-        this.setData({ submitLock: true });
-        if (value[2][6]['value'] == 0) {
-          value = [...value[0], ...value[1], ...value[2]];
-          cvalue = [..._value[0], ..._value[1], ..._value[2]];
-        } else {
-          value = [...value[0], ...value[1], ...value[2], ...value[3]];
-          cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
-        }
-        value.forEach((item, index) => {
-          // 特殊格式  非必须
-          if (!item.hasOwnProperty('value') || (!item.value && item.norequire)) {
-            if (item.hasOwnProperty('value')) data[item.name] = item.value;
-            return false
-          };
-          // 正常流程
-          // 判断是否为空
-          if (item.value !== 0 && !item.value) { megs.push(`${item.title}不能为空!`); return false; };
-          // 数字类型
-          if (item.type == 'number' && !/^\d+.?\d*$/.test(item.value)) { megs.push(`${item.title}格式不正确!`); return false; }
-          // 正则判断
-          if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
-            if (item.hasOwnProperty('reg_msg')) {
-              megs.push(`${item.title},${item.reg_msg}`);
-            } else {
-              megs.push(`${item.title}格式不正确!`);
-            }
-            return false;
-          };
-          // 号码不能相同 tel tstel ctel cttel
-          if (item.name == 'tel' || item.name == 'tstel' || item.name == 'ctel' || item.name == 'cttel') {
-            (!tels.some(itemT => itemT == item.value) || item.vlaue == '') && tels.push(item.value); ++i;
-          }
-          ;
-          // 身份证验证
-          if (item.name == 'inumber' && data['bdate']) {
-            item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['bdate'] && megs.push(`身份证同出生日期不一致!`);
-          }
-          if (item.name == 'tsinumber' && data['tsbdate']) {
-            item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['tsbdate'] && megs.push(`共同借款人身份证同出生日期不一致!`)
-          }
-          if (item.name == "dpratio") {
-            /-/g.test(item.value) && megs.push("请重新填写申请贷款产品!")
-          }
-          data[item.name] = item.value;
-        });
-        tels.length !== i && megs.push(`手机号码不能重复`);
-        if (megs.length != 0) {
-          this.setData({ errorShow: true, megs, submitLock: false });
-          return false;
-        };
-        data['category'] = 1;
-        // 申请贷款期限 不用传
-        delete data['maturity'];
-        let resA = await wx.$request({ method: "post", url: "/order/", data });
-        this.setData({ submitLock: false });
-        Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
-      } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
-    },
-
-    // 新增保存
-    async saveFunc () {
-      try {
-        let { value, saveLock } = this.data, data = {};
-        if (saveLock) return false;
-        this.setData({ saveLock: true });
-        // 拦截
-        var requeire = ['name', 'tel'], megs = [];
-        value = [...value[0], ...value[1], ...value[2], ...value[3]];
-        var cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
-        console.log(value)
-        value.forEach((item, index) => {
-          if (!item.hasOwnProperty('value')) return false;
-          if (requeire.some(itemB => itemB == item.name)) {
-            if (item.value !== 0 && !item.value) {
-              megs.push(`${item.title}不能为空!`)
-              return false
-            };
-            if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
-              megs.push(`${item.title}格式不正确!`); return false;
-            };
-          }
-          data[item.name] = item.value;
-        });
-        data['category'] = 0;
-        // 申请贷款期限 不用传
-        delete data['maturity'];
-        if (megs.length != 0) {
-          this.setData({ errorShow: true, megs, saveLock: false });
-          return false;
-        };
-        let resA = await wx.$request({ method: "post", url: "/order/", data });
-        this.setData({ saveLock: false })
-        Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
-      } catch (err) {
-        wx.$err(err)
-      }
-
-    },
-    //草稿箱保存草稿
-    async draftsUpdateSaveFunc () {
-      try {
-        let { value, saveLock, key } = this.data, data = {};
-        if (saveLock) return false;
-        this.setData({ saveLock: true });
-        // 拦截
-        var requeire = ['name', 'tel'], megs = [];
-        value = [...value[0], ...value[1], ...value[2], ...value[3]];
-        var cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
-        value.forEach((item, index) => {
-          if (!item.hasOwnProperty('value')) return false;
-          if (requeire.some(itemB => itemB == item.name)) {
-            if (item.value !== 0 && !item.value) {
-              megs.push(`${item.title}不能为空!`)
-              return false
-            };
-            if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
-              megs.push(`${item.title}格式不正确!`); return false;
-            };
-          }
-          data[item.name] = item.value;
-        });
-        data['category'] = 0;
-        // 申请贷款期限 不用传
-        delete data['maturity'];
-        if (megs.length != 0) {
-          this.setData({ errorShow: true, megs, saveLock: false });
-          return false;
-        };
-        let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
-        this.setData({ saveLock: false })
-        Dialog.alert({ message: "已保存!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
-      } catch (err) {
-        wx.$err(err)
-      }
-    },
-
-    //  已填报修改上报
-    async UpdateSaveFunc () {
-      try {
-        let { value, submitLock, key } = this.data, megs = [], data = {}, cvalue = [], tels = [], i = 0;
-        if (submitLock) return false;
-        this.setData({ submitLock: true });
-        if (value[2][6]['value'] == 0) {
-          value = [...value[0], ...value[1], ...value[2]];
-          cvalue = [..._value[0], ..._value[1], ..._value[2]];
-        } else {
-          value = [...value[0], ...value[1], ...value[2], ...value[3]];
-          cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
-        }
-        value.forEach((item, index) => {
-          // 特殊格式  非必须
-          if (!item.hasOwnProperty('value') || (!item.value && item.norequire)) {
-            if (item.hasOwnProperty('value')) data[item.name] = item.value;
-            return false
-          };
-          // 正常流程
-          // 判断是否为空
-          if (item.value !== 0 && !item.value) { megs.push(`${item.title}不能为空!`); return false; };
-          // 数字类型
-          if (item.type == 'number' && !/^\d+.?\d*$/.test(item.value)) { megs.push(`${item.title}格式不正确!`); return false; }
-          // 正则判断
-          if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
-            if (item.hasOwnProperty('reg_msg')) {
-              megs.push(`${item.title},${item.reg_msg}`);
-            } else {
-              megs.push(`${item.title}格式不正确!`);
-            }
-          };
-          // 号码不能相同 tel tstel ctel cttel
-          if (item.name == 'tel' || item.name == 'tstel' || item.name == 'ctel' || item.name == 'cttel') {
-            (!tels.some(itemT => itemT == item.value) || item.vlaue == '') && tels.push(item.value); ++i;
-          }
-          ;
-          // 身份证验证
-          if (item.name == 'inumber' && data['bdate']) {
-            item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['bdate'] && megs.push(`身份证同出生日期不一致!`)
-          }
-          if (item.name == 'tsinumber' && data['tsbdate']) {
-            item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['tsbdate'] && megs.push(`共同借款人身份证同出生日期不一致!`)
-          }
-          if (item.name == "dpratio") {
-            /-/g.test(item.value) && megs.push("请重新填写申请贷款产品!")
-          }
-          data[item.name] = item.value;
-        });
-        tels.length !== i && megs.push(`手机号码不能重复`);
-
-        if (megs.length != 0) {
-          this.setData({ errorShow: true, megs, submitLock: false });
-          return false;
-        };
-        data['category'] = 1;
-        // 申请贷款期限 不用传
-        delete data['maturity'];
-        let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
-        this.setData({ submitLock: false });
-        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)}` }))
-      } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
-    },
-
-
-    // 输入
-    inputFunc (e) {
-      let { value } = this.data, { index } = e.currentTarget.dataset;
-      value[index[0]][index[1]]['value'] = e.detail.value;
-      if (value[index[0]][index[1]].hasOwnProperty("add")) value[index[0]][index[1]]['add'] = chineseNumber(e.detail.value);
-      this.setData({ value })
-    },
-
-    // switch 
-    switchFunc (e) {
-      let { value, switchs } = this.data, { index } = e.currentTarget.dataset;
-      let { name } = value[index[0]][index[1]];
-      if (switchs.hasOwnProperty(name)) {
-        this.setData({ switchB: true, active: name, activeIndex: index })
-      }
-    },
-
-    // 隐藏单选框 
-    hideModal () { this.setData({ switchB: false }) },
-
-    // 单选框赋值
-    changeFunc (e) {
-      let { activeIndex, value, switchs } = this.data;
-      let _value = e.detail.value.split(",");
-      value[activeIndex[0]][activeIndex[1]]['value'] = _value[0] * 1;
-      value[activeIndex[0]][activeIndex[1]]['index'] = _value[1] * 1;
-
-      // 申请贷款产品 申请贷款期限关联
-      if (value[activeIndex[0]][activeIndex[1]]['name'] == 'laompany') {
-        value[0][11]['value'] = switchs['laompany'][_value[1] * 1]['month'] + '个月';
-      }
-
-      // 第一借款人与申请人关系特殊处理
-      if (value[activeIndex[0]][activeIndex[1]]['name'] == 'mstatus') {
-        value[2][2] = {
-          ...value[2][2], disabled: _value[0] == 1 ? true : false, value: _value[0] == 1 ? 0 : '', index: _value[0] == 1 ? 0 : ''
-        }
-      }
-
-      if (value[activeIndex[0]][activeIndex[1]].hasOwnProperty('forlen')) {
-        for (let i = 1; i < (value[activeIndex[0]][activeIndex[1]]['forlen'] + 1); i++) {
-          value[activeIndex[0]][(activeIndex[1] + i)]['norequire'] = _value[0] == 1 ? false : true;
-        }
-      }
-
-      this.setData({ value, switchB: false })
-    },
-
-    // 日期
-    DateChange (e) {
-      let { value } = this.data, { index } = e.currentTarget.dataset;
-      value[index[0]][index[1]]['value'] = e.detail.value;
-      this.setData({ value })
-    },
+    ...methods,
+    ...request,
   }
 })

+ 1 - 2
components/template/index.json

@@ -2,7 +2,6 @@
   "component": true,
   "usingComponents": {
     "van-goods-action": "@vant/weapp/goods-action/index",
-    "van-dialog": "@vant/weapp/dialog/index",
-  "van-goods-action-button": "@vant/weapp/goods-action-button/index"
+    "van-goods-action-button": "@vant/weapp/goods-action-button/index"
   }
 }

+ 14 - 7
components/template/index.wxml

@@ -1,4 +1,4 @@
-<view class="section" style="margin-bottom:{{Ios ? '118px' : '50px'}};">
+<view class="section">
   <view class="cu-bar bg-white solid-bottom">
     <view class="action">
       <text class="cuIcon-title text-orange "></text>
@@ -26,7 +26,7 @@
         </picker>
       </block>
       <block wx:else>
-        <view class="title {{item.norequire ? 'text-blue' : ''}}" style="">{{item.title}}</view>
+        <view class="title {{item.relation ? 'text-blue' : ''}}" style="">{{item.title}}</view>
         <input class="{{item.type == 'switch' ? 'text-right' : ''}}" data-index="{{[0,index]}}"
           data-value="{{item.value}}" id="{{item.name}}" type="{{item._type ? item._type : 'text'}}"
           value="{{item.type == 'switch' ? switchs[item.name][item.index]['value'] : item.value}}" bindinput="inputFunc"
@@ -69,7 +69,7 @@
         </picker>
       </block>
       <block wx:else>
-        <view class="title {{item.norequire ? 'text-blue' : ''}}" style="">{{item.title}}</view>
+        <view class="title {{item.relation ? 'text-blue' : ''}}" style="">{{item.title}}</view>
         <input class="{{item.type == 'switch' ? 'text-right' : ''}}" data-index="{{[1,index]}}"
           data-value="{{item.value}}" id="{{item.name}}" type="{{item._type ? item._type : 'text'}}"
           value="{{item.type == 'switch' ? switchs[item.name][item.index]['value'] : item.value}}" bindinput="inputFunc"
@@ -111,7 +111,7 @@
         </picker>
       </block>
       <block wx:else>
-        <view class="title {{item.norequire ? 'text-blue' : ''}}" style="">{{item.title}}</view>
+        <view class="title {{item.relation ? 'text-blue' : ''}}" style="">{{item.title}}</view>
         <input class="{{item.type == 'switch' ? 'text-right' : ''}}" data-index="{{[2,index]}}"
           data-value="{{item.value}}" id="{{item.name}}" type="{{item._type ? item._type : 'text'}}"
           value="{{item.type == 'switch' ? switchs[item.name][item.index]['value'] : item.value}}" bindinput="inputFunc"
@@ -153,7 +153,7 @@
         </picker>
       </block>
       <block wx:else>
-        <view class="title {{item.norequire ? 'text-blue' : ''}}" style="">{{item.title}}</view>
+        <view class="title {{item.relation ? 'text-blue' : ''}}" style="">{{item.title}}</view>
         <input class="{{item.type == 'switch' ? 'text-right' : ''}}" data-index="{{[3,index]}}"
           data-value="{{item.value}}" id="{{item.name}}" type="{{item._type ? item._type : 'text'}}"
           value="{{item.type == 'switch' ? switchs[item.name][item.index]['value'] : item.value}}" bindinput="inputFunc"
@@ -176,11 +176,18 @@
   <van-goods-action-button loading="{{saveLock}}" type="warning" bind:click="saveFunc" text="保存草稿" />
   <van-goods-action-button loading="{{submitLock}}" bind:click="submitFunc" text="提交" />
 </van-goods-action>
+
 <!-- 草稿箱修改 -->
 <van-goods-action custom-class="goods-ios" wx:elif="{{type=='draftsupdate'}}">
   <van-goods-action-button loading="{{saveLock}}" type="warning" bind:click="draftsUpdateSaveFunc" text="保存草稿" />
-  <van-goods-action-button loading="{{submitLock}}" bind:click="submitFunc" text="上报" />
+  <van-goods-action-button loading="{{submitLock}}" bind:click="draftsUpdateFunc" text="上报" />
+</van-goods-action>
+
+<!-- 已填报查看 -->
+<van-goods-action custom-class="goods-ios" wx:elif="{{type=='watch'}}">
+  <van-goods-action-button loading="{{submitLock}}" bind:click="seeAccessoryFunc" text="查看附件" />
 </van-goods-action>
+
 <!-- 已填报修改 -->
 <van-goods-action custom-class="goods-ios" wx:elif="{{type=='providedupdate'}}">
   <van-goods-action-button loading="{{submitLock}}" bind:click="UpdateSaveFunc" text="上报" />
@@ -208,7 +215,7 @@
 
 
 <!-- 错误提示框 -->
-<van-dialog use-slot title="提示" show="{{ errorShow }}" confirmText="关闭" bind:confirm="errorConfirmFunc">
+<van-dialog use-slot title="提示" show="{{ errorShow }}" confirmButtonText="关闭" bind:confirm="errorConfirmFunc">
   <scroll-view scroll-y style="max-height:50vh;">
     <view wx:for="{{megs}}" wx:key="index" class="margin-sm">{{index+1}}、 {{item}}</view>
   </scroll-view>

+ 5 - 4
components/template/index.wxss

@@ -1,8 +1,9 @@
 /* 开发者 */
-.section{
-  margin-bottom: calc(50px + constant(safe-area-inset-bottom));
-  margin-bottom:calc(50px + env(safe-area-inset-bottom));
-  /* margin-bottom: 84px; */
+.section:after{
+  content:"";
+  display: table;
+  height: calc(50px + constant(safe-area-inset-bottom));
+  height:calc(50px + env(safe-area-inset-bottom));
 }
 .goods-ios{
   padding-bottom: 0 !important;

+ 116 - 0
components/template/methods.js

@@ -0,0 +1,116 @@
+import { value as _value } from "./config";
+import { chineseNumber } from "./ChinaNumToEnglishNum";
+const methods = {
+  //组件石林进入页面接节点树执行
+  async init () {
+    try {
+      // 商品请求
+      var laompany = [];
+      let res = await wx.$request({ method: "get", url: "/order/productDict/" });
+      laompany = res.data.map(item => ({ key: item.id, value: item.name, month: item.month }));
+      let { type, value, switchs } = this.data;
+      switchs['laompany'] = laompany;
+      switch (type) {
+        // 已填报查看
+        case 'watch':
+          var resA = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
+          var { data, edit_file2 } = resA.data;
+          // 附件已上传的图片
+          this.edit_file2 = edit_file2;
+          value = this.watchFunc(value, data, switchs);
+          break;
+        case 'draftsupdate':
+          // 修改草稿
+          var resA = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
+          console.log(resA)
+          var { data, edit_file2 } = resA.data;
+          // 附件已上传的图片
+          this.edit_file2 = edit_file2;
+          value = this.draftUpdataFunc(value, data, switchs);
+          break;
+        case 'providedupdate':
+          // 修改已填报
+          var resA = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
+          var { data, edit_values, edit_file, edit_file2 } = resA.data;
+          // 图片错误原因
+          this.edit_file = edit_file;
+          // 附件已上传的图片
+          this.edit_file2 = edit_file2;
+          value = this.updataFunc(value, data, edit_values, switchs);
+        default:
+          // 新增
+          this.data.key && laompany.forEach((item, index) => {
+            if (item.key == this.data.key) {
+              value[0][10]["value"] = item.key;
+              value[0][10]["index"] = index;
+              value[0][11]['value'] = item['month'] + '个月';
+            }
+          })
+          break;
+      }
+      this.setData({ value, switchs })
+    } catch (err) { wx.$err(err) }
+  },
+
+  // 输入
+  inputFunc (e) {
+    let { value } = this.data, { index } = e.currentTarget.dataset;
+    value[index[0]][index[1]]['value'] = e.detail.value;
+    if (value[index[0]][index[1]].hasOwnProperty("add")) value[index[0]][index[1]]['add'] = chineseNumber(e.detail.value);
+    this.setData({ value })
+  },
+
+  // switch 
+  switchFunc (e) {
+    let { value, switchs } = this.data, { index } = e.currentTarget.dataset;
+    let { name } = value[index[0]][index[1]];
+    if (switchs.hasOwnProperty(name)) {
+      this.setData({ switchB: true, active: name, activeIndex: index })
+    }
+  },
+
+  // 隐藏单选框 
+  hideModal () { this.setData({ switchB: false }) },
+
+  // 单选框赋值
+  changeFunc (e) {
+    let { activeIndex, value, switchs } = this.data;
+    let _value = e.detail.value.split(",");
+    value[activeIndex[0]][activeIndex[1]]['value'] = _value[0] * 1;
+    value[activeIndex[0]][activeIndex[1]]['index'] = _value[1] * 1;
+
+    // 申请贷款产品 申请贷款期限关联
+    if (value[activeIndex[0]][activeIndex[1]]['name'] == 'laompany') {
+      value[0][11]['value'] = switchs['laompany'][_value[1] * 1]['month'] + '个月';
+    }
+
+    // 第一借款人与申请人关系特殊处理
+    if (value[activeIndex[0]][activeIndex[1]]['name'] == 'mstatus') {
+      value[2][2] = {
+        ...value[2][2], value: _value[0] == 1 ? 0 : '', index: _value[0] == 1 ? 0 : ''
+      }
+    }
+
+    if (value[activeIndex[0]][activeIndex[1]].hasOwnProperty('forlen')) {
+      for (let i = 1; i < (value[activeIndex[0]][activeIndex[1]]['forlen'] + 1); i++) {
+        value[activeIndex[0]][(activeIndex[1] + i)]['norequire'] = _value[0] == 1 ? false : true;
+      }
+    }
+
+    this.setData({ value, switchB: false })
+  },
+
+  // 日期
+  DateChange (e) {
+    let { value } = this.data, { index } = e.currentTarget.dataset;
+    value[index[0]][index[1]]['value'] = e.detail.value;
+    this.setData({ value })
+  },
+
+  // 已填报查看附件
+  seeAccessoryFunc () {
+    wx.navigateTo({ url: `/pages/accessory/index?data=&imgs=${JSON.stringify([])}&images=${JSON.stringify(this.edit_file2)}` });
+  }
+};
+
+module.exports = methods;

+ 256 - 0
components/template/request.js

@@ -0,0 +1,256 @@
+import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog";
+import { value as _value } from "./config";
+const request = {
+  //  查看模式
+  watchFunc (value, data, switchs) {
+    return value.map(itemA => itemA.map(itemB => {
+      if (!itemB.hasOwnProperty('value')) return itemB;
+      if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
+      itemB['disabled'] = true;
+      switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
+        if (itemC.key === itemB.value) itemB["index"] = indexC;
+        // 申请贷款产品 申请贷款期限关联
+        if (itemB.name == 'laompany') {
+          value[0][11]['value'] = itemC['month'] + '个月';
+        }
+        // 第一借款人与申请人关系特殊处理
+        // if (itemB.name == 'mstatus' && itemB.value == 1) {
+        //   value[2][2] = { ...value[2][2], value: 0, index: 0 }
+        // }
+      })
+      return itemB
+    })
+    )
+  },
+
+  // 修改草稿
+  draftUpdataFunc (value, data, switchs) {
+    return value.map(itemA => itemA.map(itemB => {
+      if (!itemB.hasOwnProperty('value')) return itemB;
+      if (itemB.name != "maturity") {
+        itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || '';
+      }
+      switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
+        if (itemC.key === itemB.value) {
+          itemB["index"] = indexC;
+        };
+        // 申请贷款产品 申请贷款期限关联
+        if (itemB.name == 'laompany') {
+          value[0][11]['value'] = itemC['month'] + '个月';
+        }
+        // 第一借款人与申请人关系特殊处理
+        // if (itemB.name == 'mstatus' && itemB.value == 1) {
+        //   value[2][2] = { ...value[2][2], value: 0, index: 0 }
+        // }
+      })
+      return itemB
+    }));
+  },
+
+  // 已填报修改模式
+  updataFunc (value, data, edit_values, switchs) {
+    // 后台更改贷款商品key 
+    return value.map(itemA => itemA.map(itemB => {
+      if (!itemB.hasOwnProperty('value')) return itemB;
+      if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
+      switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
+        if (itemC.key === itemB.value) itemB["index"] = indexC;
+        // 申请贷款产品 申请贷款期限关联
+        if (itemB.name == 'laompany') {
+          value[0][11]['value'] = itemC['month'] + '个月';
+        }
+        // 第一借款人与申请人关系特殊处理
+        // if (itemB.name == 'mstatus' && itemB.value == 1) {
+        //   value[2][2] = { ...value[2][2], value: 0, index: 0 }
+        // }
+      })
+
+      edit_values.some(itemC => {
+        if (itemC.name == itemB.name) {
+          itemB['err'] = itemC['reason'];
+        }
+        return itemC.name == itemB.name;
+      }) ? '' : itemB['disabled'] = true;
+
+      return itemB
+    }));
+  },
+
+  // 提交共同验证
+  judge () {
+    let { value } = this.data, megs = [], data = {}, cvalue = [], tels = [], i = 0;
+    if (value[2][6]['value'] == 0) {
+      value = [...value[0], ...value[1], ...value[2]];
+      cvalue = [..._value[0], ..._value[1], ..._value[2]];
+    } else {
+      value = [...value[0], ...value[1], ...value[2], ...value[3]];
+      cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
+    }
+    value.forEach((item, index) => {
+      // 特殊格式  非必须
+      if (!item.hasOwnProperty('value') || (!item.value && item.norequire)) {
+        if (item.hasOwnProperty('value')) data[item.name] = item.value;
+        return false
+      };
+      // 正常流程
+      // 判断是否为空
+      if (item.value !== 0 && !item.value) { megs.push(`${item.title}不能为空!`); return false; };
+      // 数字类型
+      if (item.type == 'number' && !/^\d+.?\d*$/.test(item.value)) { megs.push(`${item.title}格式不正确!`); return false; }
+      // 正则判断
+      if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
+        if (item.hasOwnProperty('reg_msg')) {
+          megs.push(`${item.title},${item.reg_msg}`);
+        } else {
+          megs.push(`${item.title}格式不正确!`);
+        }
+        return false;
+      };
+      // 号码不能相同 tel tstel ctel cttel
+      if (item.name == 'tel' || item.name == 'tstel' || item.name == 'ctel' || item.name == 'cttel') {
+        (!tels.some(itemT => itemT == item.value) || item.vlaue == '') && tels.push(item.value); ++i;
+      }
+      ;
+      // 身份证验证
+      if (item.name == 'inumber' && data['bdate']) {
+        item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['bdate'] && megs.push(`身份证同出生日期不一致!`);
+      }
+      if (item.name == 'tsinumber' && data['tsbdate']) {
+        item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['tsbdate'] && megs.push(`共同借款人身份证同出生日期不一致!`)
+      }
+      if (item.name == "dpratio") {
+        /-/g.test(item.value) && megs.push("请重新填写申请贷款产品!")
+      }
+      data[item.name] = item.value;
+    });
+    tels.length !== i && megs.push(`手机号码不能重复`);
+    return { megs, data }
+  },
+
+  // 提交
+  async submitFunc () {
+    try {
+      let { submitLock } = this.data;
+      if (submitLock) return false;
+      this.setData({ submitLock: true });
+      let { data, megs } = this.judge();
+      data['category'] = 1;
+      // 申请贷款期限 不用传
+      delete data['maturity'];
+      if (megs.length != 0) {
+        this.setData({ errorShow: true, megs, submitLock: false });
+        return false;
+      };
+      let resA = await wx.$request({ method: "post", url: "/order/", data });
+      this.setData({ submitLock: false });
+      Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
+    } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
+  },
+
+  // 草稿箱的修改
+  async draftsUpdateFunc () {
+    try {
+      let { key, submitLock } = this.data;
+      if (submitLock) return false;
+      this.setData({ submitLock: true });
+      let { data, megs } = this.judge();
+      data['category'] = 1;
+      // 申请贷款期限 不用传
+      delete data['maturity'];
+      if (megs.length != 0) {
+        this.setData({ errorShow: true, megs, submitLock: false });
+        return false;
+      };
+      let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
+      this.setData({ submitLock: false });
+      Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: `/pages/accessory/index?data=${resA.data}&images=${JSON.stringify(this.edit_file2)}&imgs=${JSON.stringify([])}` }))
+    } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
+  },
+
+  // 保存共同验证
+  judgeA () {
+    let { value } = this.data, data = {};
+    var requeire = ['name', 'tel'], megs = [];
+    value = [...value[0], ...value[1], ...value[2], ...value[3]];
+    var cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
+    value.forEach((item, index) => {
+      if (!item.hasOwnProperty('value')) return false;
+      if (requeire.some(itemB => itemB == item.name)) {
+        if (item.value !== 0 && !item.value) {
+          megs.push(`${item.title}不能为空!`)
+          return false
+        };
+        if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
+          megs.push(`${item.title}格式不正确!`); return false;
+        };
+      }
+      data[item.name] = item.value;
+    });
+    return { data, megs }
+  },
+
+  // 新增保存
+  async saveFunc () {
+    try {
+      let { saveLock } = this.data;
+      if (saveLock) return false;
+      this.setData({ saveLock: true });
+      let { data, megs } = this.judgeA();
+      data['category'] = 0;
+      // 申请贷款期限 不用传
+      delete data['maturity'];
+      if (megs.length != 0) {
+        this.setData({ errorShow: true, megs, saveLock: false });
+        return false;
+      };
+      let resA = await wx.$request({ method: "post", url: "/order/", data });
+      this.setData({ saveLock: false })
+      Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
+    } catch (err) {
+      wx.$err(err)
+    }
+
+  },
+  //草稿箱保存草稿
+  async draftsUpdateSaveFunc () {
+    try {
+      let { saveLock, key } = this.data;
+      if (saveLock) return false;
+      this.setData({ saveLock: true });
+      let { data, megs } = this.judgeA();
+      data['category'] = 0;
+      // 申请贷款期限 不用传
+      delete data['maturity'];
+      if (megs.length != 0) {
+        this.setData({ errorShow: true, megs, saveLock: false });
+        return false;
+      };
+      let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
+      this.setData({ saveLock: false })
+      Dialog.alert({ message: "已保存!" }).then(res => wx.redirectTo({ url: `/pages/accessory/index?data=${resA.data}&imgs=${JSON.stringify([])}&images=${JSON.stringify(this.edit_file2)}` }));
+    } catch (err) { wx.$err(err) }
+  },
+
+  //  已填报修改上报
+  async UpdateSaveFunc () {
+    try {
+      let { submitLock, key } = this.data;
+      if (submitLock) return false;
+      this.setData({ submitLock: true });
+      let { data, megs } = this.judge();
+      data['category'] = 1;
+      // 申请贷款期限 不用传
+      delete data['maturity'];
+      if (megs.length != 0) {
+        this.setData({ errorShow: true, megs, submitLock: false });
+        return false;
+      };
+      let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
+      this.setData({ submitLock: false });
+      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)}` }))
+    } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
+  },
+
+};
+
+module.exports = request;