浏览代码

20211224 图片删除

邪性 3 年之前
父节点
当前提交
ba7b3c0bd2

+ 113 - 0
components/template/ChinaNumToEnglishNum.js

@@ -0,0 +1,113 @@
+function chineseNumber (dValue) {
+  var maxDec = 2;
+  // 验证输入金额数值或数值字符串:
+  dValue = dValue.toString().replace(/,/g, "");
+  dValue = dValue.replace(/^0+/, ""); // 金额数值转字符、移除逗号、移除前导零
+  if (dValue == "") {
+    return "零";
+  } // (错误:金额为空!)
+  else if (isNaN(dValue)) {
+    return "错误:金额不是合法的数值!";
+  }
+  var minus = ""; // 负数的符号“-”的大写:“负”字。可自定义字符,如“(负)”。
+  var CN_SYMBOL = ""; // 币种名称(如“人民币”,默认空)
+  if (dValue.length > 1) {
+    if (dValue.indexOf('-') == 0) {
+      dValue = dValue.replace("-", "");
+      minus = "负";
+    } // 处理负数符号“-”
+    if (dValue.indexOf('+') == 0) {
+      dValue = dValue.replace("+", "");
+    } // 处理前导正数符号“+”(无实际意义)
+  }
+  // 变量定义:
+  var vInt = "";
+  var vDec = ""; // 字符串:金额的整数部分、小数部分
+  var resAIW; // 字符串:要输出的结果
+  var parts; // 数组(整数部分.小数部分),length=1时则仅为整数。
+  var digits, radices, bigRadices, decimals; // 数组:数字(0~9——零~玖);基(十进制记数系统中每个数字位的基是10——拾,佰,仟);大基(万,亿,兆,京,垓,杼,穰,沟,涧,正);辅币(元以下,角/分/厘/毫/丝)。
+  var zeroCount; // 零计数
+  var i, p, d; // 循环因子;前一位数字;当前位数字。
+  var quotient, modulus; // 整数部分计算用:商数、模数。
+  // 金额数值转换为字符,分割整数部分和小数部分:整数、小数分开来搞(小数部分有可能四舍五入后对整数部分有进位)。
+  var NoneDecLen = (typeof (maxDec) == "undefined" || maxDec == null || Number(maxDec) < 0 || Number(maxDec) > 5); // 是否未指定有效小数位(true/false)
+  parts = dValue.split('.'); // 数组赋值:(整数部分.小数部分),Array的length=1则仅为整数。
+  if (parts.length > 1) {
+    vInt = parts[0];
+    vDec = parts[1]; // 变量赋值:金额的整数部分、小数部分
+    if (NoneDecLen) {
+      maxDec = vDec.length > 5 ? 5 : vDec.length;
+    } // 未指定有效小数位参数值时,自动取实际小数位长但不超5。
+    var rDec = Number("0." + vDec);
+    rDec *= Math.pow(10, maxDec);
+    rDec = Math.round(Math.abs(rDec));
+    rDec /= Math.pow(10, maxDec); // 小数四舍五入
+    var aIntDec = rDec.toString().split('.');
+    if (Number(aIntDec[0]) == 1) {
+      vInt = (Number(vInt) + 1).toString();
+    } // 小数部分四舍五入后有可能向整数部分的个位进位(值1)
+    if (aIntDec.length > 1) {
+      vDec = aIntDec[1];
+    } else {
+      vDec = "";
+    }
+  } else {
+    vInt = dValue;
+    vDec = "";
+    if (NoneDecLen) {
+      maxDec = 0;
+    }
+  }
+  if (vInt.length > 44) {
+    return "错误:数值过大!整数位长【" + vInt.length.toString() + "】超过了上限!";
+  }
+  // 准备各字符数组 Prepare the characters corresponding to the digits:
+  digits = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); // 零~玖
+  radices = new Array("", "拾", "佰", "仟"); // 拾,佰,仟
+  bigRadices = new Array("", "万", "亿", "兆", "京", "垓", "杼", "穰", "沟", "涧", "正"); // 万,亿,兆,京,垓,杼,穰,沟,涧,正
+  decimals = new Array("角", "分", "厘", "毫", "丝"); // 角/分/厘/毫/丝
+  resAIW = ""; // 开始处理
+  // 处理整数部分(如果有)
+  if (Number(vInt) > 0) {
+    zeroCount = 0;
+    for (i = 0; i < vInt.length; i++) {
+      p = vInt.length - i - 1;
+      d = vInt.substr(i, 1);
+      quotient = p / 4;
+      modulus = p % 4;
+      if (d == "0") {
+        zeroCount++;
+      } else {
+        if (zeroCount > 0) {
+          resAIW += digits[0];
+        }
+        zeroCount = 0;
+        resAIW += digits[Number(d)] + radices[modulus];
+      }
+      if (modulus == 0 && zeroCount < 4) {
+        resAIW += bigRadices[quotient];
+      }
+    }
+    resAIW;
+  }
+  // 处理小数部分(如果有)
+  for (i = 0; i < vDec.length; i++) {
+    d = vDec.substr(i, 1);
+    if (d != "0") {
+      resAIW += digits[Number(d)] + decimals[i];
+    }
+  }
+  // 处理结果
+  if (resAIW == "") {
+    resAIW = "零";
+  } // 零元
+  if (vDec == "") {
+    resAIW;
+  } // ...元整
+  resAIW = CN_SYMBOL + minus + resAIW; // 人民币/负......元角分/整
+  return resAIW;
+}
+
+module.exports = {
+  chineseNumber
+}

+ 59 - 40
components/template/config.js

@@ -1,16 +1,27 @@
+/**
+ * 申请贷款模板
+ * @param {object} 
+ * name{字段} input唯一标识 提价保存时的key 
+ * title{字段汉字} input对应的label,以及验证时:title格式不正确|title不能为空
+ * value{字段的值} 一般默认为'' 
+ * type:{循环渲染时,不同功能的wxml} 
+ * _type:{input的类型}
+ * style:{证明这个数据只起到提示作用} 
+ * norequeire:{在验证的时候可有可无,前提value==''}
+ */
 const value = [
   // 车辆和贷款信息
   [
     { name: "vmodel", title: "车型", value: '' },
-    { name: "invioce", title: "车辆发票金额", type: 'number', _type: "number", value: '' },
+    { name: "invioce", title: "车辆发票金额", type: 'number', _type: "number", value: '', add: '' },
     { style: 1, title: "附加品金额 (如有必填)" },
-    { name: "ptax", norequire: true, title: "购置税", _title: "金额", type: 'number', _type: "number", value: '' },
-    { name: "insurance", norequire: true, title: "保险", _title: "金额", type: 'number', _type: "number", value: '' },
-    { name: "boutique", norequire: true, title: "精品", _title: "金额", type: 'number', _type: "number", value: '' },
-    { name: "wextension", norequire: true, title: "延保", _title: "金额", type: 'number', _type: "number", value: '' },
-    { name: "upkeep", norequire: true, title: "保养", _title: "金额", type: 'number', _type: "number", value: '', },
-    { name: "lamount", title: "申请贷款金额", type: 'number', _type: "number", value: '' },
-    { name: "dpratio", disabled: true, title: "首付比例", type: 'number', value: '' },
+    { 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: "lamount", title: "申请贷款金额", type: 'number', _type: "number", value: '', add: '' },
+    { name: "dpratio", disabled: true, title: "首付比例", value: '' },
     { name: "laompany", type: "switch", title: "申请贷款产品", value: '' },
     { name: "maturity", title: "申请贷款期限", disabled: true, value: '' }
   ],
@@ -27,66 +38,66 @@ const value = [
     { name: "nationality", title: "国籍/地区", type: 'switch', value: '' },
     //0身份证 1护照 2军官证 3户口 4临时身份证 5港澳台通行证
     { name: "ntype", title: "身份证件类型", type: 'switch', value: '' },
-    { name: "inumber", title: "身份证件号码", _type: "idcard", reg: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, value: '' },
-    { name: "dincome", title: "税后收入", type: 'number', 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: '' },
     // 0未婚 1已婚 2离异 3丧偶 4其他
     { name: "mstatus", title: "婚姻状况", type: 'switch', value: '' },
     //0高中以下 1高中 2专科 3学士 4硕士 5博士
     { name: "elevel", title: "教育程度", type: 'switch', value: "" },
-    { name: "naddress", title: "现居住地址", _title: "x省x市/县详细地址门牌号", reg: /^.+省.+(市|县).+(区|镇).+\d+$/, value: "" },
+    { name: "naddress", title: "现居住地址", _title: "详细门牌号", reg_msg: "请填写详细门牌号!", reg: /^.*[0-9]{1,}.*$/, value: "" },
     // 0按揭商品房 1单位房产 2全款自购商品房 3直系亲属房产 4自建房 5租赁房 6其他
     { 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: "wx", title: "微信号", reg: /^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/, value: "" },
-    { name: "phone", title: "住宅固定电话", _title: "xxx-xxx格式", reg: /^((\d{3,4}-)|\d{3.4}-)?\d{7,8}$/, value: "" },
-    { name: "tel", title: "手机号", reg: /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/, type: 'number', _type: "number", value: "" },
+    { name: "phone", title: "住宅固定电话", reg: /^\d{11,12}$/, 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: "单位电话", _title: "xxx-xxx格式", reg: /^((\d{3,4}-)|\d{3.4}-)?\d{7,8}$/, value: "" },
-    { name: "waddress", title: "现工作单位地址", reg: /^.+省.+(市|县).+(区|镇).+\d+$/, 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: "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: "" },
     // 0个体工商户 1私/民营企业 2公务员(政府机关正式员工)3国有企业/事业单位 4外资企业 5专业技术人员 6现代金融关联企业 7其他
     { name: "otype", title: "职业类型", type: "switch", value: "" },
     { name: "position", title: "职位", value: "" },
-    // 0是 1否
-    { name: "wbst", forlen: 4, title: "是否挂靠", type: "switch", value: 1 },
+    // 0否 1
+    { name: "wbst", forlen: 4, title: "是否挂靠", type: "switch", value: 0, index: 0 },
     { name: "bstname", for: 'wbst', norequire: true, title: "挂靠公司名称", value: "" },
     { name: "bstcode", for: 'wbst', norequire: true, title: "挂靠公司组织机构代码", value: "" },
-    { name: "bsttel", for: 'wbst', norequire: true, title: "挂靠公司电话", reg: /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/, value: "" },
+    { name: "bsttel", for: 'wbst', 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: "bstaddress", for: 'wbst', norequire: true, title: "挂靠公司地址", value: "" }
   ],
 
   // 紧急联系人信息
   [
     { name: "cname", title: "联系人1名称", value: "" },
-    { name: "ctel", title: "联系人1手机号", reg: /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/, value: "" },
-    { name: "relation", title: "与借款人关系", type: 'switch', value: "" },
-    { name: "caddress", title: "现居住地址", _title: "x省x市/县详细地址门牌号", reg: /^.+省.+(市|县).+(区|镇).+\d+$/, value: "" },
+    { name: "ctel", type: "number", _type: "number", title: "联系人1手机号", 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: "relation", title: "联系人1与借款人关系", type: 'switch', value: "" },
+    { name: "caddress", title: "联系人1现居住地址", _title: "详细门牌号", reg: /^.*[0-9]{1,}.*$/, reg_msg: "请填写详细门牌号!", value: "" },
     { name: "ctname", title: "联系人2姓名", value: "" },
-    { name: "cttel", title: "联系人2手机号", reg: /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/, value: "" },
-    // 是否有共人 0没有 1有
-    { name: "thesame", title: "是否有共人", type: "switch", value: 0 }
+    { name: "cttel", title: "联系人2手机号", type: "number", _type: "number", 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: "" },
+    // 是否有共借人 0没有 1有
+    { name: "thesame", title: "是否有共借人", type: "switch", value: 0, index: 0 }
   ],
 
-  // 共人信息
-  [{ name: "tsname", title: "姓名", _title: "人姓名", value: "" },
-  { name: "tsbdate", type: "picker", title: "出生日期", _title: "人出生日期", reg: /^\d{4}-\d{2}-\d{2}$/, value: '2000-01-01' },
+  // 共借人信息
+  [{ name: "tsname", title: "共借人姓名", value: "" },
+  { name: "tsbdate", type: "picker", title: "共借人出生日期", reg: /^\d{4}-\d{2}-\d{2}$/, value: '2000-01-01' },
   //0身份证 1护照 2军官证 3户口 4临时身份证 5港澳台通行证
-  { name: "tsitype", title: "身份证件类型", _title: "人身份证件类型", type: 'switch', value: '' },
-  { name: "tsinumber", title: "身份证件号码", _title: "人身份证件号码", _type: "idcard", reg: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, value: '' },
-  { name: "tstel", title: "手机号", _title: "共同借款人手机号", reg: /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/, type: 'number', _type: "number", value: "" },
-  { name: "tsrelation", title: "与借款人关系", _title: "人与借款人关系", type: 'switch', value: "" },
-  { name: "tsnaddress", title: "现居住地址", _title: "x省x市/县详细地址门牌号", reg: /^.+省.+(市|县).+(区|镇).+\d+$/, value: "" },
+  { name: "tsitype", title: "共借人身份证件类型", type: 'switch', value: '' },
+  { name: "tsinumber", title: "共借人身份证件号码", _type: "idcard", reg: /(^\d{18}$)|(^\d{17}(\d|X|x)$)/, value: '' },
+  { name: "tstel", 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: "tsrelation", title: "共借人与借款人关系", type: 'switch', value: "" },
+  { name: "tsnaddress", title: "共借人现居住", _title: "详细门牌号", reg: /^.*[0-9]{1,}.*$/, reg_msg: "请填写详细门牌号!", value: "" },
   // 0同居住地址 1同单位地址
-  { name: "tsmaddress", title: "邮寄地址", _title: "人邮寄地址", type: 'switch', value: "" },
-  { name: "tsemail", title: "电子邮箱", _title: "人电子邮箱", reg: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, value: "" },
-  { name: "tswx", title: "微信号", _title: "人微信号", reg: /^[a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/, value: "" },
-  { name: "tswname", title: "现工作单位名称", _title: "人现工作单位名称", value: "" },
-  { name: "tswphone", title: "单位电话", _title: "xxx-xxx格式", _title: "共同借款人单位电话", reg: /^((\d{3,4}-)|\d{3.4}-)?\d{7,8}$/, value: "" },
-  { name: "tswaddress", title: "现工作单位地址", _title: "共同借款人现工作单位地址", reg: /^.+省.+(市|县).+(区|镇).+\d+$/, value: "" },
-  { name: "tsmincome", title: "税后月收入", _title: "人税后月收入", type: 'number', _type: "number", value: "" }
+  { name: "tsmaddress", title: "共借人邮寄地址", type: 'switch', value: "" },
+  { name: "tsemail", 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: /^\d{11,12}$/, value: "" },
+  { name: "tswaddress", title: "共借人现工作单位地址", _title: "详细门牌号", reg: /^.*[0-9]{1,}.*$/, reg_msg: "请填写详细门牌号!", value: "" },
+  { name: "tsmincome", title: "共借人税后月收入", type: 'number', _type: "number", value: "" }
   ]
 ];
 
@@ -166,7 +177,7 @@ const switchs = {
     { key: 6, value: '现代金融关联企业' },
     { key: 7, value: '其他' }
   ],
-  wbst: [{ key: 0, value: '是' }, { key: 1, value: '否' }],
+  wbst: [{ key: 0, value: '否' }, { key: 1, value: '是' }],
   thesame: [{ key: 0, value: '没有' }, { key: 1, value: '有' }],
   tsitype: [
     { key: 0, value: '身份证' },
@@ -192,6 +203,12 @@ const switchs = {
 }
 
 // 数字转汉字
+const RMB = data => {
+  var number = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
+  var unit = ['分', '角', '拾', '佰', '仟', '万', '亿', '兆'];
+
+}
+
 
 // 当前时间
 const date = () => {
@@ -199,6 +216,8 @@ const date = () => {
   return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;
 }
 
+
+
 module.exports = {
   value, switchs, date
 };

+ 54 - 28
components/template/index.js

@@ -1,5 +1,6 @@
 import { value, switchs, date } from "./config";
 import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog";
+import { chineseNumber } from "./ChinaNumToEnglishNum";
 var _value = value;
 Component({
   options: {
@@ -109,7 +110,6 @@ Component({
 
     // 修改草稿
     draftUpdataFunc (value, data, switchs) {
-      console.log("打卡")
       return value.map(itemA => itemA.map(itemB => {
         if (!itemB.hasOwnProperty('value')) return itemB;
         if (itemB.name != "maturity") {
@@ -166,7 +166,7 @@ Component({
     // 提交
     async submitFunc () {
       try {
-        let { value, submitLock } = this.data, megs = [], data = {}, cvalue = [], tels = [];
+        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) {
@@ -178,25 +178,37 @@ Component({
         }
         value.forEach((item, index) => {
           // 特殊格式  非必须
-          if (!item.hasOwnProperty('value') || item.norequire) {
+          if (!item.hasOwnProperty('value') || (!item.value && item.norequire)) {
             if (item.hasOwnProperty('value')) data[item.name] = item.value;
             return false
           };
           // 正常流程
           // 判断是否为空
-          if (!item.value) { megs.push(`${item.title}不能为空!`); 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)) {
-            megs.push(`${item.title}格式不正确!`); return false;
+            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)
-            ;
+          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(`共同借款人身份证同出生日期不一致!`)
+          }
           data[item.name] = item.value;
         });
-        (tels.length !== 4 && tels.length != 0) && megs.push(`手机号码不能重复`);
+        tels.length !== i && megs.push(`手机号码不能重复`);
         if (megs.length != 0) {
           this.setData({ errorShow: true, megs, submitLock: false });
           return false;
@@ -204,9 +216,9 @@ Component({
         data['category'] = 1;
         // 申请贷款期限 不用传
         delete data['maturity'];
-        await wx.$request({ method: "post", url: "/order/", data });
+        let resA = await wx.$request({ method: "post", url: "/order/", data });
         this.setData({ submitLock: false });
-        Dialog.alert({ message: "已提交!" }).then(res => wx.reLaunch({ url: '/pages/index/index' }))
+        Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
       } catch (err) { wx.$err(err) }
     },
 
@@ -220,10 +232,11 @@ Component({
         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) {
+            if (item.value !== 0 && !item.value) {
               megs.push(`${item.title}不能为空!`)
               return false
             };
@@ -240,15 +253,15 @@ Component({
           this.setData({ errorShow: true, megs, saveLock: false });
           return false;
         };
-        await wx.$request({ method: "post", url: "/order/", data });
+        let resA = await wx.$request({ method: "post", url: "/order/", data });
         this.setData({ saveLock: false })
-        Dialog.alert({ message: "已保存!" }).then(res => wx.reLaunch({ url: '/pages/index/index' }))
+        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 = {};
@@ -261,7 +274,7 @@ Component({
         value.forEach((item, index) => {
           if (!item.hasOwnProperty('value')) return false;
           if (requeire.some(itemB => itemB == item.name)) {
-            if (!item.value) {
+            if (item.value !== 0 && !item.value) {
               megs.push(`${item.title}不能为空!`)
               return false
             };
@@ -278,10 +291,9 @@ Component({
           this.setData({ errorShow: true, megs, saveLock: false });
           return false;
         };
-        console.log(data)
-        await wx.$request({ method: "put", url: `/order/${key}/`, data });
+        let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
         this.setData({ saveLock: false })
-        Dialog.alert({ message: "已保存!" }).then(res => wx.navigateBack({ delta: 1 }))
+        Dialog.alert({ message: "已保存!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
       } catch (err) {
         wx.$err(err)
       }
@@ -290,7 +302,7 @@ Component({
     //  已填报修改上报
     async UpdateSaveFunc () {
       try {
-        let { value, submitLock } = this.data, megs = [], data = {}, cvalue = [], tels = [];
+        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) {
@@ -302,25 +314,38 @@ Component({
         }
         value.forEach((item, index) => {
           // 特殊格式  非必须
-          if (!item.hasOwnProperty('value') || item.norequire) {
+          if (!item.hasOwnProperty('value') || (!item.value && item.norequire)) {
             if (item.hasOwnProperty('value')) data[item.name] = item.value;
             return false
           };
           // 正常流程
           // 判断是否为空
-          if (!item.value) { megs.push(`${item.title}不能为空!`); 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)) {
-            megs.push(`${item.title}格式不正确!`); return false;
+            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(item.value) || item.vlaue == '') && tels.push(item.value)
-            ;
+          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(`共同借款人身份证同出生日期不一致!`)
+          }
           data[item.name] = item.value;
         });
-        (tels.length !== 4 && tels.length != 0) && megs.push(`手机号码不能重复`);
+        tels.length !== i && megs.push(`手机号码不能重复`);
         if (megs.length != 0) {
           this.setData({ errorShow: true, megs, submitLock: false });
           return false;
@@ -328,9 +353,9 @@ Component({
         data['category'] = 1;
         // 申请贷款期限 不用传
         delete data['maturity'];
-        await wx.$request({ method: "put", url: `/order/${key}/`, data });
+        let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
         this.setData({ submitLock: false });
-        Dialog.alert({ message: "已提交!" }).then(res => wx.reLaunch({ url: '/pages/index/index' }))
+        Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
       } catch (err) { wx.$err(err) }
     },
 
@@ -339,6 +364,7 @@ Component({
     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 })
     },
 
@@ -375,7 +401,7 @@ Component({
 
       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] == 0 ? false : true;
+          value[activeIndex[0]][(activeIndex[1] + i)]['norequire'] = _value[0] == 1 ? false : true;
         }
       }
 

+ 7 - 3
components/template/index.wxml

@@ -4,7 +4,7 @@
       <text class="cuIcon-title text-orange "></text>
       <view>
         <view class="text-xl text-black"><text>车辆和贷款信息</text> <text class="text-red">(必填)</text></view>
-        <view class="text-sm">机动车及与车辆相关的物理附属设备、服务、费等 </view>
+        <view class="text-sm">机动车及与车辆相关的物理附属设备、服务、费等 </view>
       </view>
     </view>
   </view>
@@ -38,6 +38,7 @@
       </block>
     </view>
     <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
+    <view wx:if="{{item.add && item.value}}" class="text-blue bg-white text-center">{{item.add}}圆</view>
   </view>
 
 
@@ -80,6 +81,7 @@
       </block>
     </view>
     <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
+    <view wx:if="{{item.add && item.value}}" class="text-blue bg-white text-center">{{item.add}}圆</view>
   </view>
 
   <view class="cu-bar bg-white solid-bottom solid-top">
@@ -121,6 +123,7 @@
       </block>
     </view>
     <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
+    <view wx:if="{{item.add && item.value}}" class="text-blue bg-white text-center">{{item.add}}圆</view>
   </view>
 
   <view wx:if="{{value[2][6]['value']==1}}" class="cu-bar bg-white solid-bottom solid-top">
@@ -162,6 +165,7 @@
       </block>
     </view>
     <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
+    <view wx:if="{{item.add && item.value}}" class="text-blue bg-white text-center">{{item.add}}圆</view>
   </view>
 
 </view>
@@ -169,7 +173,7 @@
 <!-- 功能栏 -->
 <!-- 新增 -->
 <van-goods-action wx:if="{{type=='add'}}">
-  <van-goods-action-button loading="{{saveLock}}" type="warning" bind:click="saveFunc" text="保存" />
+  <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>
 <!-- 草稿箱修改 -->
@@ -179,7 +183,7 @@
 </van-goods-action>
 <!-- 已填报修改 -->
 <van-goods-action wx:elif="{{type=='providedupdate'}}">
-  <van-goods-action-button loading="{{submitLock}}" bind:click="draftsUpdateSaveFunc" text="上报" />
+  <van-goods-action-button loading="{{submitLock}}" bind:click="UpdateSaveFunc" text="上报" />
 </van-goods-action>
 
 <!-- 单选 -->

+ 5 - 3
components/template/index.wxss

@@ -3,16 +3,18 @@
   margin-bottom: 50px;
 }
 
+
+
 .section .title{
   font-size: 32rpx;
 }
 
 .section .cu-form-group{
-  min-height: 80rpx;
+  min-height: 60rpx;
 }
 
 .cu-form-group picker .picker{
-  line-height: 80rpx;
+  line-height: 60rpx;
 }
 
 .section .picker::after{
@@ -22,7 +24,7 @@
   position: absolute;
   font-size: 26rpx;
   color: #666;
-  line-height: 80rpx;
+  line-height: 60rpx;
   width: 60rpx;
   text-align: center;
   top: 0;

+ 21 - 65
index.js

@@ -1,65 +1,21 @@
-// 深层监听
-let object = {
-  a: "123",
-  c: 1,
-  d: ['a', { e: 45, f: true }],
-  g: false
-}
-
-function observeKey (obj, key) {
-  let value = obj[key];
-  Object.defineProperty(obj, key, {
-    get () {
-      console.log("get")
-      return value
-    },
-    set (newValue) {
-      console.log("set")
-      value = newValue
-    }
-  })
-}
-
-
-// 浅层监听
-
-// function observeKey (obj, key) {
-//   let value = obj[key];
-//   Object.defineProperty(obj, key, {
-//     get () {
-//       console.log("读取属性", value)
-//       return value
-//     },
-//     set (newValue) {
-//       console.log("设置属性", newValue)
-//       value = newValue
-//     }
-//   })
-// }
-
-// let obj = { a: 1, b: 2 };
-// observeKey(obj, 'a');
-// console.log(obj)
-// console.log(obj.a);
-// obj.a = 250
-// console.log(obj.a, obj)
-
-// let _obj = { c: 1, d: 2 };
-// let proxy = new Proxy(_obj, {
-//   get (target, key) {
-//     return "应该是" + target[key]
-//   },
-//   set (target, key, value) {
-//     target[key] = value
-//   }
-// })
-
-// console.log(_obj, _obj.c)
-// console.log(proxy, proxy.c);
-
-// _obj.a = 2;
-// proxy.b = 3;
-
-// console.log(proxy, _obj)
-
-
+let p1 = new Promise((resolve, reject) => {
+  resolve('成功了')
+})
+
+let p2 = new Promise((resolve, reject) => {
+  resolve('success')
+})
+
+let p3 = Promise.reject('失败')
+
+Promise.all([p1, p2]).then((result) => {
+  console.log(result)               //['成功了', 'success']
+}).catch((error) => {
+  console.log(error)
+})
+
+Promise.all([p1, p3, p2]).then((result) => {
+  console.log(result)
+}).catch((error) => {
+  console.log(error)      // 失败了,打出 '失败'
+})

+ 65 - 20
pages/accessory/index.js

@@ -1,3 +1,4 @@
+import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog";
 Page({
   data: {
     uploadImg: "../../assets/accessory/upload.png",
@@ -5,62 +6,106 @@ Page({
       {
         name: "身份证",
         maxlen: 2,
-        value: [{ name: "正面", meg: "证件照模糊不清!", value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" }, { name: "反面", value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" }],
+        key: 1,
+        value: [
+          // {  value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" }
+        ],
       },
       {
         name: "驾驶证",
         maxlen: 2,
-        value: [{ name: "正面", value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" },
-        { name: "反面", novalue: true, value: "../../assets/accessory/upload2.png" }],
+        key: 2,
+        value: [],
       },
       {
         name: "收入类",
-        value: [{ value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" }],
+        key: 3,
+        value: [],
       },
       {
         name: "半年流水",
-        value: [{ meg: "重影严重", value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" }],
+        key: 3,
+        value: [],
       },
       {
         name: "营业执照",
-        value: [{ value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" }],
+        key: 4,
+        value: [],
       },
       {
         name: "挂靠协议",
-        value: [{ value: "https://ossweb-img.qq.com/images/lol/web201310/skin/big10006.jpg" }],
+        key: 5,
+        value: [],
       },
-    ],
+    ]
   },
   // 查看
   seeFunc (e) { wx.previewImage({ current: e.currentTarget.dataset.url, urls: [e.currentTarget.dataset.url] }) },
 
-  //修改
-  updateFunc (e) {
-    console.log(e.currentTarget.dataset);
-    this.photoAblum();
+  // 刪除
+  async deleteFunc (e) {
+    try {
+      await wx.$request({ url: `/order/${this.id}/deleteImage/`, method: 'post', data: { id: e.currentTarget.dataset } });
+      let { value } = this.data;
+      value[e.currentTarget.dataset.index]['value'].splice(e.currentTarget.dataset.ind, 1);
+    } catch (err) { wx.$err(er) };
   },
 
+  //修改
+  // updateFunc (e) {
+  //   this.photoAblum(e.currentTarget.dataset.index);
+  // },
+
   // 添加
   addFunc (e) {
-    console.log(e.currentTarget.dataset)
-    this.photoAblum();
+    this.photoAblum(e.currentTarget.dataset.index);
   },
 
-  // 证件照来源
-  photoAblum () {
+  /** 
+   * 证件照来源
+   * @param {number} 
+   */
+  photoAblum (data) {
+    let { value } = this.data;
+    let count = value[data].hasOwnProperty('maxlen') ? value[data]['maxlen'] - value[data]['value'].length : 9;
     wx.chooseImage({
+      count,
       sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
       sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
-      success: function (res) {
-        console.log(res)
+      success: res => this.request(res.tempFiles, value[data]['key'], data)
+    })
+  },
 
-      }
+  /**
+   * 上传图片
+   * @param {array} data  图片本地路径 res.tempFiles
+   * @param {string} key 订单id 
+   * @param {string} _index value[_index]
+   */
+  request (data, key, _index) {
+    let { value } = this.data, brr = [], { id } = this.data;
+    data.forEach((item, index) => {
+      wx.$uploadFile({ url: `/order/${id}/upload_image/`, filePath: item.path, name: 'file', formData: { type: key } }).then(res => {
+        value[_index]['value'].push({ value: JSON.parse(res).data.path, key: JSON.parse(res).data.id });
+        index == data.length - 1 && end.bind(this)();
+      }).catch(err => {
+        brr.push(`第${index}张图片上传失败!`);
+        index == data.length - 1 && end.bind(this)();
+      });
     })
+    function end () {
+      let obj = { value };
+      if (brr.length > 0) {
+        obj['errorShow'] = true;
+        obj['megs'] = brr;
+      };
+      this.setData({ ...obj });
+    }
   },
 
 
   onLoad: function (options) {
-
+    this.setData({ id: options.data })
   },
   onReady: function () {
 

+ 3 - 0
pages/accessory/index.json

@@ -1,4 +1,7 @@
 {
   "usingComponents": {
+    "van-grid": "@vant/weapp/grid/index",
+  "van-grid-item": "@vant/weapp/grid-item/index",
+    "van-icon": "@vant/weapp/icon/index"
   }
 }

+ 30 - 23
pages/accessory/index.wxml

@@ -3,33 +3,40 @@
   <view slot="content">附件</view>
 </cu-custom>
 <view class="section">
-  <view wx:for="{{value}}" wx:key="index" class="item margin-bottom-lg">
+  <!-- 其他 -->
+  <view wx:for="{{value}}" wx:key="index" class="margin-bottom">
     <view class="cu-bar bg-white solid-bottom">
       <view class='action'>
         <text class='cuIcon-titles text-orange '></text> {{item.name}}
       </view>
     </view>
-    <!-- 图片列 -->
-    <view bindtap="seeFunc" data-url="{{it.value}}" wx:for="{{item.value}}" wx:for-item="it" wx:for-index="ind"
-      wx:key="ind" class="bg-img bg-mask padding-tb-xl {{ind==0 ?'' : 'margin-top'}}"
-      style="background-image: url({{it.value}});background-size: auto 414rpx;height: 414rpx;">
-      <view class="padding-xl text-white">
-        <view wx:if="{{it.name}}" class="padding-xs text-xl">
-          {{it.name}}
-        </view>
-        <view wx:if="{{it.meg}}" class="padding-xs">
-          {{it.meg}}
-        </view>
-        <view class="btns text-right">
-          <button data-item="{{it}}" catchtap="updateFunc" class="cu-btn rount bg-blue">{{it.novalue ? '上传' :
-            "修改"}}</button>
-        </view>
-      </view>
-    </view>
-    <!-- 添加 -->
-    <view bindtap="addFunc" data-index="{{index}}" wx:if="{{ !item.maxlen}}" class="margin-top bg-white text-center"
-      style="height: 414rpx;">
-      <image style="width: 100px;height: 414rpx;" mode="aspectFit" src="{{uploadImg}}" />
+    <view class="padding">
+      <van-grid column-num="3" border="{{ false }}" gutter="{{ 10 }}">
+        <van-grid-item use-slot wx:for="{{ item.value }}" wx:for-item="it" wx:for-index="ind" wx:key="ind">
+          <view wx:if="{{it.value }}" style="position:relative;width: 100%;height: 180rpx;">
+            <image mode="aspectFit" style="width: 100%; height: 100%;" src="{{it.value}}" />
+            <view bindtap="deleteFunc" data-index='{{index}}' data-ind="{{ind}}" data-id="{{it.key}}"
+              style='position: absolute;  top: -16rpx;right: -16rpx;'>
+              <van-icon name="clear" />
+            </view>
+          </view>
+        </van-grid-item>
+        <van-grid-item wx:if="{{(item.maxlen && item.value.length < item.maxlen) || !item.maxlen}}" use-slot>
+          <view data-index="{{index}}" bindtap="addFunc"
+            style="position:relative;width: 100%;height: 180rpx;display: flex;align-items: center;justify-content: center;border:1rpx solid #646566">
+            <van-icon name="plus" size="30" color="#646566" />
+          </view>
+        </van-grid-item>
+      </van-grid>
     </view>
   </view>
-</view>
+</view>
+
+<!-- 错误提示框 -->
+<van-dialog use-slot title="提示" show="{{ errorShow }}" confirmText="关闭">
+  <scroll-view scroll-y style="max-height:50vh;">
+    <view wx:for="{{megs}}" wx:key="index" class="margin-sm">{{index+1}}、 {{item}}</view>
+  </scroll-view>
+</van-dialog>
+
+<van-dialog id="van-dialog" />

+ 3 - 8
pages/index/index.wxml

@@ -20,14 +20,9 @@
 <view style="height:90rpx"></view>
 <!-- 商品 -->
 <veiw class="section">
-  <view bindtap="onClickFunc" data-index="{{index}}" wx:for="{{value.value}}" wx:key="index"
-    class="bg-img  padding-tb-xl margin-bottom-xl" style="background-image: url('{{item.img}}');height: 414rpx;">
-    <!-- <view class="padding-xl text-white">
-      <view class="padding-xs text-xl text-cut">{{item.title}}</view>
-      <view class="padding-xs">{{item.detail}}</view>
-    </view> -->
-  </view>
-  <view class="cu-load bg-grey {{value.page > value.totalPage ?'over':'loading'}}"></view>
+  <image class="margin-bottom-sm" mode="widthFix" style="width: 100%;" bindtap="onClickFunc" data-index="{{index}}"
+    wx:for="{{value.value}}" wx:key="index" src="{{item.img}}" />
+  <view class="cu-load text-grey {{value.page > value.totalPage ?'over':'loading'}}"></view>
   <van-empty wx:if="{{value.value.length == 0}}" description="暂无商品" />
 </veiw>
 

+ 14 - 1
pages/template/index.js

@@ -1,3 +1,4 @@
+import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog"
 Page({
   data: {
     value: [
@@ -11,7 +12,19 @@ Page({
     ]
   },
   // 草稿箱删除
-  async drafts_delete (data) {
+  drafts_delete (data) {
+    Dialog.confirm({
+      message: '确认删除当前草稿?',
+    })
+      .then(() => {
+        this.draftsdelete(data);
+      })
+      .catch(() => {
+        // on cancel
+      });
+  },
+
+  async draftsdelete (data) {
     try {
       await wx.$request({ url: `/order/${data.id}/`, method: "delete" });
       let { value } = this.data;

+ 3 - 1
pages/template/index.json

@@ -1,3 +1,5 @@
 {
-  "usingComponents": {}
+  "usingComponents": {
+    "van-dialog": "@vant/weapp/dialog/index"
+  }
 }

+ 6 - 4
pages/template/index.wxml

@@ -15,7 +15,7 @@
     </view>
     <view class="text-cut lheight text-lg">
       <text class="title">产品</text>
-      <text class=" text-grey">{{item.seller_text}}</text>
+      <text class=" text-grey">{{item.laompany_text}}</text>
     </view>
     <view class="text-cut lheight text-lg">
       <text class="title">创建时间</text>
@@ -27,10 +27,12 @@
     </view>
     <view class="btns">
       <button bindtap="btnsFunc" wx:for="{{btns}}" wx:for-item="it" wx:for-index="ind" data-index="{{ind}}"
-        data-id="{{item.id}}" data-order="{{index}}" data-index="{{ind}}" wx:if="{{it.type==type}}"
+        data-id="{{item.id}}" data-order="{{index}}" data-index="{{ind}}"
+        wx:if="{{it.type==type && (it.type != 'provided' || item.status == 2 || it.name == '查看')}}"
         class="cu-btn round bg-blue button-hover margin-left margin-top" wx:key="ind">{{it.name}}</button>
     </view>
   </view>
-  <view class="cu-load bg-grey {{value.page > value.totalPage ?'over':'loading'}}"></view>
+  <view class="cu-load text-grey {{value.page > value.totalPage ?'over':'loading'}}"></view>
   <van-empty wx:if="{{value.value.length == 0}}" description="暂无商品" />
-</view>
+</view>
+<van-dialog id="van-dialog" />

+ 1 - 1
project.private.config.json

@@ -33,7 +33,7 @@
         {
           "name": "附件",
           "pathName": "pages/accessory/index",
-          "query": "",
+          "query": "data=36",
           "scene": null
         },
         {

+ 26 - 6
utils/init.js

@@ -1,5 +1,11 @@
 import { requestUrl, instanceRequset, instanceResponse } from '../config'
 
+function URL (argA, argB) {
+  let reg1 = /^http:[?=.a-zA-Z0-9_\/\\-]+$/i,
+    reg2 = /^https:[?=.a-zA-Z0-9_\/\\-]+$/i;
+  if (argB.length == 0 || reg1.test(argA) || reg2.test(argA)) return argA;
+  return argB + argA;
+}
 class Index {
   // 全局报错提示
   static err = () => wx.$err = data => {
@@ -20,12 +26,6 @@ class Index {
   }
   // 全局请求封装
   static request = () => {
-    function URL (argA, argB) {
-      let reg1 = /^http:[?=.a-zA-Z0-9_\/\\-]+$/i,
-        reg2 = /^https:[?=.a-zA-Z0-9_\/\\-]+$/i;
-      if (argB.length == 0 || reg1.test(argA) || reg2.test(argA)) return argA;
-      return argB + argA;
-    }
     function _request (data) {
       data["url"] = URL(data.url, requestUrl);
       data = instanceRequset(data);
@@ -43,6 +43,25 @@ class Index {
     }
     wx.$request = _request;
   }
+  // 全局文件上传封装
+  static uploadFile = () => {
+    function uploadFile (data) {
+      data["url"] = URL(data.url, requestUrl);
+      data = instanceRequset(data);
+      return new Promise((resolve, reject) => {
+        wx.uploadFile({
+          ...data,
+          success: function (res) {
+            try { let data = instanceResponse(res); resolve(data); } catch (err) { reject(err) }
+          },
+          fail: function (err) {
+            reject(err)
+          },
+        })
+      })
+    }
+    wx.$uploadFile = uploadFile;
+  }
   // 小程序需要的参数
   static mustArg = () => {
     function login () { return new Promise((resolve, reject) => wx.login({ success: res => resolve(res), fail: () => reject("code获取失败!") })) };
@@ -69,6 +88,7 @@ async function init () {
     // 清空token
     wx.setStorageSync("token", '');
     Index.request();
+    Index.uploadFile();
     // 小程序需要的参数
     let mustArg = await Index.mustArg();
     // 小程序首次请求