Jelajahi Sumber

20211223 增删改查初步完成

邪性 3 tahun lalu
induk
melakukan
e7570c770c

+ 9 - 9
components/template/config.js

@@ -4,15 +4,15 @@ const value = [
     { name: "vmodel", title: "车型", value: '' },
     { name: "invioce", title: "车辆发票金额", type: 'number', _type: "number", value: '' },
     { style: 1, title: "附加品金额 (如有必填)" },
-    { name: "ptax", norequire: true, title: "购置税", type: 'number', _type: "number", value: '' },
-    { name: "insurance", norequire: true, title: "保险", type: 'number', _type: "number", value: '' },
-    { name: "boutique", norequire: true, title: "精品", type: 'number', _type: "number", value: '' },
-    { name: "wextension", norequire: true, title: "延保", type: 'number', _type: "number", value: '' },
-    { name: "upkeep", norequire: true, title: "保养", type: 'number', _type: "number", value: '', },
-    { name: "dpratio", disabled: true, title: "首付比例", type: 'number', _type: "digit", reg: /^\d{0,2}\.\d{1,}$/, value: '' },
+    { 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: "laompany", type: "switch", title: "申请贷款产品", value: '' },
-    { name: "maturity", title: "申请贷款期限", disabled: true, type: "number", value: '' }
+    { name: "maturity", title: "申请贷款期限", disabled: true, value: '' }
   ],
   // 申请人基本信息
   [
@@ -28,6 +28,7 @@ const 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: "" },
     // 0未婚 1已婚 2离异 3丧偶 4其他
     { name: "mstatus", title: "婚姻状况", type: 'switch', value: '' },
     //0高中以下 1高中 2专科 3学士 4硕士 5博士
@@ -190,8 +191,7 @@ const switchs = {
   ]
 }
 
-// 单选 输入
-// const radioInput = ["配偶", "父母亲", "子女"]
+// 数字转汉字
 
 // 当前时间
 const date = () => {

+ 189 - 18
components/template/index.js

@@ -1,7 +1,6 @@
 import { value, switchs, date } from "./config";
 import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog";
 var _value = value;
-const app = getApp();
 Component({
   options: {
     addGlobalClass: true,//解决继承全局样式问题
@@ -10,7 +9,7 @@ Component({
     attached: function () { this.init(); }
   },
   properties: {
-    type: { type: String, value: "edit" },
+    type: { type: String, value: "add" },
     key: String
   },
   observers: {
@@ -18,11 +17,11 @@ Component({
       let A = value[0][1]["value"] * 1 || 0;
       let B = (value[0][3]["value"] * 1 || 0) + (value[0][4]["value"] * 1 || 0) + (value[0][5]["value"] * 1 || 0) +
         (value[0][6]["value"] * 1 || 0) + (value[0][7]["value"] * 1 || 0);
-      let C = value[0][9]["value"] * 1 || 0;
+      let C = value[0][8]["value"] * 1 || 0;
       if (A == 0 || C == 0) return false;
-      value[0][8]["value"] = ((parseFloat(A - C + B) / parseFloat(A + B)) * 100).toFixed(2) + "%";
-      if (this.result && this.result == value[0][8]["value"]) return false;
-      this.result = value[0][8]["value"];
+      value[0][9]["value"] = ((parseFloat(A - C + B) / parseFloat(A + B)) * 100).toFixed(2) + "%";
+      if (this.result && this.result == value[0][9]["value"]) return false;
+      this.result = value[0][9]["value"];
       this.setData({
         value
       })
@@ -52,31 +51,116 @@ Component({
         laompany = res.data.map(item => ({ key: item.id, value: item.name, month: item.month }));
         let { type, value, switchs } = this.data;
         switchs['laompany'] = laompany;
-
-        var obj = {};
         switch (type) {
+          // 已填报查看
           case 'watch':
-            obj = this.watchFunc(value);
+            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 } = resA.data;
+            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, ...obj, switchs })
+        this.setData({ value, switchs })
       } catch (err) { wx.$err(err) }
     },
 
     //  查看模式
-    watchFunc (data) {
-      data = data.map(itemA => itemA.map(itemB => { if (itemB.hasOwnProperty('value')) itemB['disabled'] = true; return itemB })
+    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
+      })
       )
-      return { value: data, btn: false }
+    },
+
+    // 修改草稿
+    draftUpdataFunc (value, data, switchs) {
+      console.log("打卡")
+      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
+      }));
     },
 
     // 提交
@@ -108,7 +192,7 @@ Component({
             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(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)
             ;
           data[item.name] = item.value;
         });
@@ -126,7 +210,7 @@ Component({
       } catch (err) { wx.$err(err) }
     },
 
-    // 保存
+    // 新增保存
     async saveFunc () {
       try {
         let { value, saveLock } = this.data, data = {};
@@ -164,12 +248,97 @@ Component({
       }
 
     },
+    // 保存草稿
+    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) {
+              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;
+        };
+        console.log(data)
+        await wx.$request({ method: "put", url: `/order/${key}/`, data });
+        this.setData({ saveLock: false })
+        Dialog.alert({ message: "已保存!" }).then(res => wx.navigateBack({ delta: 1 }))
+      } catch (err) {
+        wx.$err(err)
+      }
+    },
+
+    //  已填报修改上报
+    async UpdateSaveFunc () {
+      try {
+        let { value, submitLock } = this.data, megs = [], data = {}, cvalue = [], tels = [];
+        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.norequire) {
+            if (item.hasOwnProperty('value')) data[item.name] = item.value;
+            return false
+          };
+          // 正常流程
+          // 判断是否为空
+          if (!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;
+          };
+          // 号码不能相同 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)
+            ;
+          data[item.name] = item.value;
+        });
+        (tels.length !== 4 && tels.length != 0) && megs.push(`手机号码不能重复`);
+        if (megs.length != 0) {
+          this.setData({ errorShow: true, megs, submitLock: false });
+          return false;
+        };
+        data['category'] = 1;
+        // 申请贷款期限 不用传
+        delete data['maturity'];
+        await wx.$request({ method: "put", url: `/order/${key}/`, data });
+        this.setData({ submitLock: false });
+        Dialog.alert({ message: "已提交!" }).then(res => wx.reLaunch({ url: '/pages/index/index' }))
+      } catch (err) { wx.$err(err) }
+    },
+
 
     // 输入
     inputFunc (e) {
       let { value } = this.data, { index } = e.currentTarget.dataset;
       value[index[0]][index[1]]['value'] = e.detail.value;
-      console.log(value[index[0]][index[1]]['name'], e.detail.value)
       this.setData({ value })
     },
 
@@ -184,6 +353,7 @@ Component({
 
     // 隐藏单选框 
     hideModal () { this.setData({ switchB: false }) },
+
     // 单选框赋值
     changeFunc (e) {
       let { activeIndex, value, switchs } = this.data;
@@ -192,7 +362,7 @@ Component({
       value[activeIndex[0]][activeIndex[1]]['index'] = _value[1] * 1;
 
       // 申请贷款产品 申请贷款期限关联
-      if (value[activeIndex[0]][activeIndex[1]]['name'] = 'laompany') {
+      if (value[activeIndex[0]][activeIndex[1]]['name'] == 'laompany') {
         value[0][11]['value'] = switchs['laompany'][_value[1] * 1]['month'] + '个月';
       }
 
@@ -208,6 +378,7 @@ Component({
           value[activeIndex[0]][(activeIndex[1] + i)]['norequire'] = _value[0] == 0 ? false : true;
         }
       }
+
       this.setData({ value, switchB: false })
     },
 

+ 129 - 116
components/template/index.wxml

@@ -9,34 +9,38 @@
     </view>
   </view>
   <!--form框类型奇特  特殊处理 除开发人员或者经验娴熟的人,其余不建议修改-->
-  <view wx:for="{{value[0]}}" wx:key="index" data-index="{{[0,index]}}"
-    class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
-    bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
-    <!-- 没有输入意义的行 -->
-    <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
-    <!-- 输入行 -->
-    <block wx:elif="{{item.type=='picker'}}">
-      <view class="title">{{item.title}}</view>
-      <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
-        value="{{item.value}}" data-index="{{[0,index]}}" start="1900-01-01" end="{{endDate}}" bindchange="DateChange">
-        <view class="picker">
-          {{item.value}}
-        </view>
-      </picker>
-    </block>
-    <block wx:else>
-      <view class="title {{item.norequire ? '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"
-        style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
-        disabled="{{item.disabled || item.type=='switch'}}"
-        placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
-      <!-- switch 特殊处理 -->
-      <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
-    </block>
+  <view wx:for="{{value[0]}}" wx:key="index" class="item solid-bottom">
+    <view data-index="{{[0,index]}}" class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
+      bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
+      <!-- 没有输入意义的行 -->
+      <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
+      <!-- 输入行 -->
+      <block wx:elif="{{item.type=='picker'}}">
+        <view class="title">{{item.title}}</view>
+        <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
+          value="{{item.value}}" data-index="{{[0,index]}}" start="1900-01-01" end="{{endDate}}"
+          bindchange="DateChange">
+          <view class="picker">
+            {{item.value}}
+          </view>
+        </picker>
+      </block>
+      <block wx:else>
+        <view class="title {{item.norequire ? '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"
+          style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
+          disabled="{{item.disabled || item.type=='switch'}}"
+          placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
+        <!-- switch 特殊处理 -->
+        <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
+      </block>
+    </view>
+    <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
   </view>
 
+
   <view class="cu-bar bg-white solid-bottom solid-top">
     <view class="action">
       <text class="cuIcon-title text-orange "></text>
@@ -47,32 +51,35 @@
   </view>
 
   <!--form框类型奇特  特殊处理 除开发人员或者经验娴熟的人,其余不建议修改-->
-  <view wx:for="{{value[1]}}" wx:key="index" data-index="{{[1,index]}}"
-    class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
-    bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
-    <!-- 没有输入意义的行 -->
-    <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
-    <!-- 输入行 -->
-    <block wx:elif="{{item.type=='picker'}}">
-      <view class="title">{{item.title}}</view>
-      <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
-        value="{{item.value}}" data-index="{{[1,index]}}" start="1900-01-01" end="{{endDate}}" bindchange="DateChange">
-        <view class="picker">
-          {{item.value}}
-        </view>
-      </picker>
-    </block>
-    <block wx:else>
-      <view class="title {{item.norequire ? '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"
-        style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
-        disabled="{{item.disabled || item.type=='switch'}}"
-        placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
-      <!-- switch 特殊处理 -->
-      <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
-    </block>
+  <view wx:for="{{value[1]}}" wx:key="index" class="item solid-bottom">
+    <view data-index="{{[1,index]}}" class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
+      bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
+      <!-- 没有输入意义的行 -->
+      <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
+      <!-- 输入行 -->
+      <block wx:elif="{{item.type=='picker'}}">
+        <view class="title">{{item.title}}</view>
+        <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
+          value="{{item.value}}" data-index="{{[1,index]}}" start="1900-01-01" end="{{endDate}}"
+          bindchange="DateChange">
+          <view class="picker">
+            {{item.value}}
+          </view>
+        </picker>
+      </block>
+      <block wx:else>
+        <view class="title {{item.norequire ? '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"
+          style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
+          disabled="{{item.disabled || item.type=='switch'}}"
+          placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
+        <!-- switch 特殊处理 -->
+        <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
+      </block>
+    </view>
+    <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
   </view>
 
   <view class="cu-bar bg-white solid-bottom solid-top">
@@ -85,32 +92,35 @@
   </view>
 
   <!--form框类型奇特  特殊处理 除开发人员或者经验娴熟的人,其余不建议修改-->
-  <view wx:for="{{value[2]}}" wx:key="index" data-index="{{[2,index]}}"
-    class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
-    bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
-    <!-- 没有输入意义的行 -->
-    <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
-    <!-- 输入行 -->
-    <block wx:elif="{{item.type=='picker'}}">
-      <view class="title">{{item.title}}</view>
-      <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
-        value="{{item.value}}" data-index="{{[2,index]}}" start="1900-01-01" end="{{endDate}}" bindchange="DateChange">
-        <view class="picker">
-          {{item.value}}
-        </view>
-      </picker>
-    </block>
-    <block wx:else>
-      <view class="title {{item.norequire ? '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"
-        style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
-        disabled="{{item.disabled || item.type=='switch'}}"
-        placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
-      <!-- switch 特殊处理 -->
-      <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
-    </block>
+  <view wx:for="{{value[2]}}" wx:key="index" class="item solid-bottom">
+    <view data-index="{{[2,index]}}" class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
+      bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
+      <!-- 没有输入意义的行 -->
+      <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
+      <!-- 输入行 -->
+      <block wx:elif="{{item.type=='picker'}}">
+        <view class="title">{{item.title}}</view>
+        <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
+          value="{{item.value}}" data-index="{{[2,index]}}" start="1900-01-01" end="{{endDate}}"
+          bindchange="DateChange">
+          <view class="picker">
+            {{item.value}}
+          </view>
+        </picker>
+      </block>
+      <block wx:else>
+        <view class="title {{item.norequire ? '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"
+          style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
+          disabled="{{item.disabled || item.type=='switch'}}"
+          placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
+        <!-- switch 特殊处理 -->
+        <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
+      </block>
+    </view>
+    <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
   </view>
 
   <view wx:if="{{value[2][6]['value']==1}}" class="cu-bar bg-white solid-bottom solid-top">
@@ -121,53 +131,56 @@
       </view>
     </view>
   </view>
-  <!--form框类型奇特  特殊处理 除开发人员或者经验娴熟的人,其余不建议修改-->
-  <view wx:if="{{value[2][6]['value']==1}}" wx:for="{{value[3]}}" wx:key="index" data-index="{{[3,index]}}"
-    class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
-    bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
-    <!-- 没有输入意义的行 -->
-    <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
-    <!-- 输入行 -->
-    <block wx:elif="{{item.type=='picker'}}">
-      <view class="title">{{item.title}}</view>
-      <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
-        value="{{item.value}}" data-index="{{[3,index]}}" start="1900-01-01" end="{{endDate}}" bindchange="DateChange">
-        <view class="picker">
-          {{item.value}}
-        </view>
-      </picker>
-    </block>
-    <block wx:else>
-      <view class="title {{item.norequire ? '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"
-        style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
-        disabled="{{item.disabled || item.type=='switch'}}"
-        placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
-      <!-- switch 特殊处理 -->
-      <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
-    </block>
-  </view>
 
-  <!-- <view class="cu-bar bg-white solid-bottom solid-top">
-    <view class="action">
-      <text class="cuIcon-title text-orange "></text>
-      <view>
-        <view class="text-xl text-black"><text>借款人身份证</text> <text class="text-red">(必填)</text></view>
-      </view>
+  <!--form框类型奇特  特殊处理 除开发人员或者经验娴熟的人,其余不建议修改-->
+  <view wx:if="{{value[2][6]['value']==1}}" wx:for="{{value[3]}}" wx:key="index" class="item solid-bottom">
+    <view data-index="{{[3,index]}}" class="cu-form-group {{(item.for && item.norequire) ? 'hide' :'show'}}"
+      bindtap="{{item.type=='switch' && !item.disabled ? 'switchFunc' : ''}}">
+      <!-- 没有输入意义的行 -->
+      <view wx:if="{{item.style}}" class="title">{{item.title}}</view>
+      <!-- 输入行 -->
+      <block wx:elif="{{item.type=='picker'}}">
+        <view class="title">{{item.title}}</view>
+        <picker disabled="{{item.disabled}}" class="picker" style="height:80rpx;line-height: 80rpx;" mode="date"
+          value="{{item.value}}" data-index="{{[3,index]}}" start="1900-01-01" end="{{endDate}}"
+          bindchange="DateChange">
+          <view class="picker">
+            {{item.value}}
+          </view>
+        </picker>
+      </block>
+      <block wx:else>
+        <view class="title {{item.norequire ? '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"
+          style="z-index: 0;height: 60rpx;transform: translateY(-3rpx);"
+          disabled="{{item.disabled || item.type=='switch'}}"
+          placeholder="{{(item.disabled || item.type=='switch') ? '' : item._title ? '请输入' +item._title : '请输入' + item.title}}"></input>
+        <!-- switch 特殊处理 -->
+        <view wx:if="{{item.type=='switch'}}" class="cuIcon-right"></view>
+      </block>
     </view>
-  </view> -->
-
-
+    <view wx:if="{{item.err}}" class="text-red bg-white text-center">{{item.err}}</view>
+  </view>
 
 </view>
 
 <!-- 功能栏 -->
-<van-goods-action wx:if="{{btn}}">
+<!-- 新增 -->
+<van-goods-action wx:if="{{type=='add'}}">
   <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 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>
+<!-- 已填报修改 -->
+<van-goods-action wx:elif="{{type=='providedupdate'}}">
+  <van-goods-action-button loading="{{submitLock}}" bind:click="draftsUpdateSaveFunc" text="上报" />
+</van-goods-action>
 
 <!-- 单选 -->
 <view class="cu-modal {{switchB ?'show':''}}" bindtap="hideModal">

+ 64 - 42
index.js

@@ -1,43 +1,65 @@
-// switch
-const switchs = {
-  // 性别
-  sex: ["女", "男"],
-  // 户口
-  rpr: ["本地户口", "外地户口"],
-  // 行业
-  itype: ["农林牧鱼", "制造业", "批发零售", "信息传输/软件/信息技术服务", "房地产", "建筑业", "住宿/餐饮", "卫生/社会工作", "科研/技术服务", "公共管理/社会保障/社会组织", "采矿业", "文化/体育/娱乐业", "居民服务/修理/其他服务业", "租赁/商务服务业", "交通运输/仓储/邮政业", "教育", "金融", "国际组织", "电热力/燃气/水生产供应业 19水利/环境/公共设施管理", "其他"],
-  // 国籍地区
-  nationality: ["中国大陆(内地)", "中国香港", "中国台湾", "中国澳门", "外国籍"],
-  // 身份证类型
-  ntype: ["身份证", "护照", "军官证", "户口", "临时身份证", "港澳台通行证"],
-  // 婚姻状况
-  mstatus: ["未婚", "已婚", "离异", "丧偶", "其他"],
-  // 教育程度
-  elevel: ["高中以下", "高中", "专科", "学士", "硕士", "博士"],
-  // 居住房产类型
-  hptype: ["按揭商品房", "单位房产", "全款自购商品房", "直系亲属房产", "自建房", "租赁房", "其他"],
-  // 邮寄地址
-  maddress: ["同居住地址", "同单位地址"],
-  // 职业类型
-  otype: ["个体工商户", "私/民营企业", "公务员(政府机关正式员工)", "国有企业/事业单位", "外资企业", "专业技术人员", "现代金融关联企业", "其他"],
-  // 是否挂靠
-  wbst: ["是", "否"],
-  // 是否有共同借款人 
-  thesame: ["没有", "有"],
-  // 共同借款人身份证件类型
-  tsitype: ["身份证", "护照", "军官证", "户口", "临时身份证", "港澳台通行证"],
-  // 共同借款人邮寄地址
-  tsmaddress: ["同居住地址", "同单位地址"],
-  // 共同借款人与借款人关系
-  tsrelation: ["配偶", "父母亲", "子女", "其他"],
-  // 与借款人关系
-  relation: ["配偶", "父母亲", "子女", "其他"],
-};
-var obj = {};
-Object.keys(switchs).forEach(item => {
-  obj[item] = [];
-  switchs[item].forEach((itemB, index) => {
-    obj[item].push({ key: index, value: itemB })
+// 深层监听
+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
+    }
   })
-})
-console.log(obj)
+}
+
+
+// 浅层监听
+
+// 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)
+
+

+ 14 - 1
pages/add/index.js

@@ -21,7 +21,20 @@ Page({
   },
 
   onLoad: function (options) {
-    options.data && this.setData({ value: options.data });
+    switch (options.type) {
+      case 'watch':
+        this.setData({ title: '查看填报', value: options.data || '', type: options.type });
+        break;
+      case 'draftsupdate':
+        this.setData({ title: "修改草稿", value: options.data || '', type: options.type });
+        break;
+      case 'providedupdate':
+        this.setData({ title: "修改已填报", value: options.data || '', type: options.type });
+        break;
+      default:
+        this.setData({ type: options.type, value: options.data || '', title: "新增填报" })
+    }
+
   },
   onReady: function () {
 

+ 2 - 2
pages/add/index.wxml

@@ -1,6 +1,6 @@
 <cu-custom isBack bgColor="bg-gradual-blue">
   <view slot="backText">返回</view>
-  <view slot="content">新增填报</view>
+  <view slot="content">{{title}}</view>
 </cu-custom>
-<Template key="{{value}}" />
+<Template type="{{type}}" key="{{value}}" />
 <van-dialog id="van-dialog" bind:getphonenumber="getphonenumber" />

+ 1 - 2
pages/detail/index.js

@@ -1,4 +1,3 @@
-const { value } = require("../../components/template/config")
 
 Page({
   data: {
@@ -6,7 +5,7 @@ Page({
   },
   // 立即申请
   onClickButton () {
-    wx.navigateTo({ url: "/pages/add/index?data=" + this.data.value.id })
+    wx.navigateTo({ url: "/pages/add/index?type=add&data=" + this.data.value.id })
   },
   onLoad: function (options) {
     this.setData({ value: JSON.parse(options.data) })

+ 2 - 2
pages/detail/index.wxml

@@ -7,8 +7,8 @@
     <view class="padding-xs text-white text-xl">{{value.title}}</view>
     <view class="padding-xs text-white">贷款期限:{{value.month}}个月</view>
   </view>
-  <view wx:for="{{value.details}}" wx:key="index" class="bg-img"
-    style="background-image: url('{{item}}');height: 414rpx;"></view>
+
+  <image wx:for="{{value.details}}" wx:key="index" style="width: 100%;" src="{{item}}" mode="widthFix" class="image" />
 </view>
 <van-goods-action>
   <van-goods-action-button text="立即申请" bind:click="onClickButton" />

+ 7 - 5
pages/index/index.js

@@ -38,17 +38,20 @@ Page({
   },
 
   // 请求
+  request_lock: false,
   async request () {
     try {
       let { value: _value } = this.data;
       let { page, totalPage, value } = _value;
-      if (page > totalPage) return false;
+      if (page > totalPage || this.request_lock) return false;
+      this.request_lock = true;
       let res = await wx.$request({ method: "get", url: "/order/productList/", data: { limit: 10, page } });
       ++page;
       totalPage = res.totalPage;
       value = res.data.map(item => ({ img: item.mail_image, id: item.id, month: item.month, title: item.name, details: item.details_image }));
       this.setData({ value: { page, totalPage, value } });
-    } catch (err) { wx.$err(err) }
+      this.request_lock = false;
+    } catch (err) { wx.$err(err); this.request_lock = false; }
   },
 
 
@@ -66,7 +69,6 @@ Page({
       let resB = await wx.$request({ method: "get", url: "/notices/list/" });
       resB.data = resB.data.map(item => ({ key: item.id, value: item.title, detail: item.content, create_time: item.create_time, create_user: item.create_user }));
       this.setData({ tips: resB.data });
-      wx.stopPullDownRefresh();
     } catch (err) { wx.$err(err) }
 
   },
@@ -83,10 +85,10 @@ Page({
     clearInterval(this.timer);
   },
   onPullDownRefresh: function () {
-    this.request();
+
   },
   onReachBottom: function () {
-
+    this.request();
   },
   onShareAppMessage: function () {
 

+ 4 - 4
pages/index/index.wxml

@@ -21,11 +21,11 @@
 <!-- 商品 -->
 <veiw class="section">
   <view bindtap="onClickFunc" data-index="{{index}}" wx:for="{{value.value}}" wx:key="index"
-    class="bg-img bg-mask padding-tb-xl margin-bottom-xl" style="background-image: url('{{item.img}}');height: 414rpx;">
-    <view class="padding-xl text-white">
+    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>
   <view class="cu-load bg-grey {{value.page > value.totalPage ?'over':'loading'}}"></view>
   <van-empty wx:if="{{value.value.length == 0}}" description="暂无商品" />
@@ -39,7 +39,7 @@
     </view>
     <view class="text-blue">首页</view>
   </view>
-  <view class="action" bindtap="NavChange" data-path="pages/add/index">
+  <view class="action" bindtap="NavChange" data-path="pages/add/index?type=add">
     <view class='cuIcon-cu-image'>
       <image src="../../assets/tabber/add_copy1.png"></image>
     </view>

+ 0 - 1
pages/login/index.js

@@ -31,7 +31,6 @@ Page({
             let { encryptedData, iv } = res, { appId: appid } = app.globalData.mustArg, { openid } = app.globalData.user;
             resolve({ encryptedData, iv, appid, openid })
           },
-          fail: err => reject(err)
         })
       })
     }

+ 1 - 1
pages/login/index.wxml

@@ -23,7 +23,7 @@
     </view>
     <view class="text-black">首页</view>
   </view>
-  <view class="action" bindtap="NavChange" data-path="pages/add/index">
+  <view class="action" bindtap="NavChange" data-path="pages/add/index?type=add">
     <view class='cuIcon-cu-image'>
       <image src="../../assets/tabber/add_copy1.png"></image>
     </view>

+ 54 - 49
pages/template/index.js

@@ -1,66 +1,71 @@
 Page({
   data: {
     value: [
-      {
-        name: "张三",
-        tel: "15793329457",
-        vmodel: "福田奥铃捷运冷藏",
-        invioce: 19000,
-        lamount: 15000,
-        laompany: "sp-等额本息-LcV12.99%-个人-36msp-等额本息-LcV12.99%-个人-36msp-等额本息-LcV12.99%-个人-36msp-等额本息-LcV12.99%-个人-36m",
-        type: "草稿"
-      },
-      {
-        name: "张三",
-        tel: "15793329457",
-        vmodel: "福田奥铃捷运冷藏",
-        invioce: 19000,
-        lamount: 15000,
-        laompany: "sp-等额本息-LcV12.99%-个人-36m",
-        type: "审核中"
-      },
-      {
-        name: "张三",
-        tel: "15793329457",
-        vmodel: "福田奥铃捷运冷藏",
-        invioce: 19000,
-        lamount: 15000,
-        laompany: "sp-等额本息-LcV12.99%-个人-36m",
-        type: "待审核"
-      },
-      {
-        name: "张三",
-        tel: "15793329457",
-        vmodel: "福田奥铃捷运冷藏",
-        invioce: 19000,
-        lamount: 15000,
-        laompany: "sp-等额本息-LcV12.99%-个人-36m",
-        type: "审核通过"
-      }
     ],
     btns: [
-      { name: "修改", type: "drafts", success () { } },
-      { name: "查看", type: "provided", success () { } },
-      { name: "修改", type: "provided", success () { } },
-      { name: "上传资料", type: "provided", success () { } }
+      { name: "修改", type: "drafts", success (data) { this.drafts_update(data) } },
+      { name: "删除", type: "drafts", success (data) { this.drafts_delete(data) } },
+      { name: "查看", type: "provided", success (data) { this.provided_watch(data) } },
+      { name: "修改", type: "provided", success (data) { this.provided_update(data) } },
+      { name: "上传资料", type: "provided", success (data) { } }
     ]
   },
+  // 草稿箱删除
+  async drafts_delete (data) {
+    try {
+      await wx.$request({ url: `/order/${data.id}/`, method: "delete" });
+      let { value } = this.data;
+      value.value.splice(data.order, 1);
+      this.setData({ value });
+    } catch (err) { wx.$err(err) }
+  },
+
+  // 草稿箱修改
+  drafts_update (data) {
+    wx.navigateTo({ url: "/pages/add/index?type=draftsupdate&data=" + data.id })
+  },
+
+  // 已填报查看
+  provided_watch (data) { wx.navigateTo({ url: "/pages/add/index?type=watch&data=" + data.id }) },
+
+  // 已填报修改
+  provided_update (data) { wx.navigateTo({ url: "/pages/add/index?type=providedupdate&data=" + data.id }) },
+
+  // 按钮组事件
+  btnsFunc (e) {
+    let { index, id, order } = e.currentTarget.dataset, { btns } = this.data;
+    btns[index]['success'].bind(this)({ id, order })
+  },
 
 
-  onLoad: function (options) {
-    let titleArr = [{ name: "草稿箱", value: "drafts", category: 0 }, { name: "已填报", value: "provided", category: 1 }];
-    let filter_title = titleArr.filter(item => item.value == options.data);
+  // 数据请求
+  request_lock: false,
+  async request (data) {
+    try {
+      let { page = 1, totalPage = 1, value = [] } = data;
+      let { category } = this.data;
+      if (page > totalPage || this.request_lock) return false;
+      let resA = await wx.$request({ url: "/order/list/", method: "get", data: { category, limit: 10, page } });
+      ++page;
+      totalPage = resA.totalPage;
+      value = value.concat(resA.data);
+      this.setData({ value: { page, totalPage, value } })
+      this.request_lock = false;
+    } catch (err) { wx.$err(err); this.request_lock = false }
+  },
 
-    this.setData({
-      title: filter_title.length != 0 ? filter_title[0]['name'] : '草稿箱',
-      type: options.data || 'drafts'
-    })
+  onLoad: async function (options) {
+    try {
+      let titleArr = [{ title: "草稿箱", type: "drafts", category: 0 }, { title: "已填报", type: "provided", category: 1 }];
+      let filter_title = titleArr.filter(item => item.type == options.data);
+      this.setData({ ...filter_title[0] })
+    } catch (err) { wx.$err(err) }
   },
   onReady: function () {
 
   },
   onShow: function () {
-
+    this.request({})
   },
   onHide: function () {
 
@@ -72,6 +77,6 @@ Page({
 
   },
   onReachBottom: function () {
-
+    this.request(this.data.value)
   }
 })

+ 13 - 14
pages/template/index.wxml

@@ -3,8 +3,8 @@
   <view slot="content">{{title}}</view>
 </cu-custom>
 <view class="section">
-  <view wx:for="{{value}}" wx:key="index" class="item margin-bottom-sm bg-white padding">
-    <view class="type padding-bottom text-xl text-black">{{item.type}}</view>
+  <view wx:for="{{value.value}}" wx:key="index" class="item margin-bottom-sm bg-white padding">
+    <view class="type padding-bottom text-xl text-black">{{item.status_text}}</view>
     <view class="text-cut lheight text-lg">
       <text class="title">姓名</text>
       <text class=" text-grey">{{item.name}}</text>
@@ -14,24 +14,23 @@
       <text class=" text-grey">{{item.tel}}</text>
     </view>
     <view class="text-cut lheight text-lg">
-      <text class="title">贷款产品</text>
-      <text class=" text-grey">{{item.laompany}}</text>
+      <text class="title">产品</text>
+      <text class=" text-grey">{{item.seller_text}}</text>
     </view>
     <view class="text-cut lheight text-lg">
-      <text class="title">车型</text>
-      <text class=" text-grey">{{item.vmodel}}</text>
+      <text class="title">创建时间</text>
+      <text class=" text-grey">{{item.create_time_f}}</text>
     </view>
     <view class="text-cut lheight text-lg">
-      <text class="title">车辆发票金额</text>
-      <text class="text-grey text-price">{{item.invioce}}</text>
-    </view>
-    <view class="text-cut lheight text-lg">
-      <text class="title">申请贷款金额</text>
-      <text class="text-price  text-grey">{{item.lamount}}</text>
+      <text class="title">创建者</text>
+      <text class=" text-grey">{{item.create_user_text}}</text>
     </view>
     <view class="btns">
-      <button wx:for="{{btns}}" wx:if="{{item.type==type}}"
-        class="cu-btn round bg-blue button-hover margin-left margin-top" wx:key="index">{{item.name}}</button>
+      <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}}"
+        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>
+  <van-empty wx:if="{{value.value.length == 0}}" description="暂无商品" />
 </view>

+ 4 - 1
utils/init.js

@@ -2,7 +2,10 @@ import { requestUrl, instanceRequset, instanceResponse } from '../config'
 
 class Index {
   // 全局报错提示
-  static err = () => wx.$err = () => wx.showModal({ showCancel: false, title: "报错提示", confirmText: "了解", content: JSON.stringify(data) })
+  static err = () => wx.$err = data => {
+    console.log(data);
+    wx.showModal({ showCancel: false, title: "报错提示", confirmText: "了解", content: JSON.stringify(data) })
+  }
   // 获取系统信息
   static system = that => {
     return new Promise((resolve, reject) => {