Browse Source

应收账款

xiaohaizhao 11 months ago
parent
commit
726f4a88b4

+ 3 - 1
app.json

@@ -56,7 +56,9 @@
         "returnOne/index",
         "returnOne/detail",
         "returnOne/update",
-        "market/selected/index"
+        "market/selected/index",
+        "receivables/index",
+        "receivables/detail"
       ]
     },
     {

+ 90 - 28
components/Yl_Filtrate/index.js

@@ -1,4 +1,6 @@
-const getHeight = require("../../utils/GetRheRemainingHeight");
+import {
+    getHeight
+} from "../../utils/GetRheRemainingHeight";
 Component({
     properties: {
         list: {
@@ -12,6 +14,7 @@ Component({
                 valueKey: "name", //返回Key
                 selectKey: "id", //传参 代表选着字段 不传参返回整个选择对象
                 value: "", //选中值
+                default: "", //默认索引
                 list: [{
                     name: "a1",
                     id: 0
@@ -27,26 +30,42 @@ Component({
         handle: {
             type: Function
         }, //按钮回调函数
-        dateRange: { //是否开启日期范围筛选
-            type: Boolean,
-            value: true
+        dateRange: {
+            type: Boolean
+        }, //是否开启日期范围筛选
+        dateRangeName: {
+            type: String,
+            value: "日期范围"
         },
+        dateRange1: {
+            type: Boolean
+        }, //是否开启日期范围筛选
         zIndex: {
             type: String,
             value: 99999,
         },
         interrupt: {
             type: Function
+        },
+        isReset: {
+            type: Boolean,
+            value: true
+        },
+        minus: {
+            type: [Number, String],
+            value: 80
         }
     },
     data: {
         startdate: "", //开始时间
         enddate: "", //结束时间
+        periodstart: "",
+        periodend: "",
     },
-    lifetimes: {
-        ready() {
-            getHeight.getHeight('.head', this).then(res => this.setData({
-                listHeight: res - 80
+    observers: {
+        "show"(newVal) {
+            if (newVal) getHeight('.head', this).then(res => this.setData({
+                listHeight: res - this.data.minus
             }));
         }
     },
@@ -68,7 +87,7 @@ Component({
                     [`list[${index}].value`]: this.data.list[index].selectKey ? item[this.data.list[index].selectKey] : item,
                     [`list[${index}].index`]: i
                 });
-            }
+            };
             if (this.data.list[index].interrupt) this.triggerEvent("interrupt", {
                 item,
                 index,
@@ -76,6 +95,35 @@ Component({
                 list: this.data.list
             })
         },
+        onSelectCheckbox(e) {
+            const {
+                item, //被选项
+                index, //列表下标
+                i //被选项下标
+            } = e.currentTarget.dataset,
+                list = this.data.list;
+            if (list[index].index == "" || list[index].index == null) {
+                list[index].index = [];
+                list[index].value = [];
+            }
+            let arrIndex = list[index].index.indexOf(i)
+            if (arrIndex == -1) {
+                list[index].index.push(i)
+                list[index].value.push(list[index].selectKey ? item[list[index].selectKey] : item)
+            } else {
+                list[index].index.splice(arrIndex, 1)
+                list[index].value.splice(arrIndex, 1)
+            };
+            this.setData({
+                list
+            })
+            if (this.data.list[index].interrupt) this.triggerEvent("interrupt", {
+                item,
+                index,
+                name: this.data.list[index].selectKey,
+                list
+            })
+        },
         /* 点击按钮 */
         onClick(e) {
             const {
@@ -84,8 +132,18 @@ Component({
             if (name == 'reset') {
                 this.setData({
                     list: this.data.list.map(v => {
-                        v.value = "";
-                        v.index = null;
+                        let value = "",
+                            index = null;
+                        try {
+                            if ((v.default+'').length) {
+                                index = v.default;
+                                value = v.selectKey ? v.list[v.default][v.selectKey] : v.list[v.default]
+                            }
+                        } catch (error) {
+
+                        }
+                        v.value = value;
+                        v.index = index;
                         return v;
                     })
                 })
@@ -95,23 +153,27 @@ Component({
                 })
                 let MultilevelClass = this.selectComponent("#MultilevelClass");
                 if (MultilevelClass) MultilevelClass.clearChild()
-                this.triggerEvent("handle", {})
-            } else if (name == 'confirm') {
-                let obj = {};
-                this.data.list.forEach(v => {
-                    if (v.type == 'multilevelClass') {
-                        obj[v.valueKey] = getApp().globalData.temporaryId;
-                        delete(getApp().globalData.temporaryId);
-                    } else {
-                        obj[v.valueKey] = v.value;
-                    }
-                });
-                if (this.data.dateRange) {
-                    obj.startdate = this.data.startdate;
-                    obj.enddate = this.data.enddate;
-                };
-                this.triggerEvent("handle", obj);
-            }
+            };
+            let obj = {};
+            this.data.list.forEach(v => {
+                if (v.type == 'multilevelClass') {
+                    obj[v.valueKey] = getApp().globalData.temporaryId;
+                    delete(getApp().globalData.temporaryId);
+                } else if (v.type == 'checkbox') {
+                    obj[v.valueKey] = v.value || [];
+                } else {
+                    obj[v.valueKey] = v.value;
+                }
+            });
+            if (this.data.dateRange) {
+                obj.startdate = this.data.startdate;
+                obj.enddate = this.data.enddate;
+            };
+            if (this.data.dateRange1) {
+                obj.periodstart = this.data.periodstart;
+                obj.periodend = this.data.periodend;
+            };
+            this.triggerEvent("handle", obj);
             this.onClose();
         },
         /* 筛选日期范围 */

+ 25 - 4
components/Yl_Filtrate/index.wxml

@@ -2,21 +2,26 @@
     <view class="head" />
     <Yl_ListBox height="{{listHeight}}" pullDown='{{false}}'>
 
+
         <block wx:for="{{list}}" wx:key="label">
             <MultilevelClass id="MultilevelClass" item='{{item}}' wx:if="{{item.type=='multilevelClass'}}" />
             <view wx:elif="{{item.list.length}}" class="groud">
                 <view class="label">
                     {{item.label}}
                 </view>
-                <view class="content">
+                <view class="content" wx:if="{{item.type!='checkbox'}}">
                     <van-button custom-class='but {{item.index==i?"active":""}}' wx:for="{{item.list}}" wx:for-item="data" wx:for-index="i" wx:key="i" data-item="{{data}}" data-index="{{index}}" data-i="{{i}}" bindtap="onSelect">{{data[item.showName]}}</van-button>
                 </view>
+                <view wx:else class="content">
+                    <van-button custom-class='but {{per.query(item.index,i)?"active":""}}' wx:for="{{item.list}}" wx:for-item="data" wx:for-index="i" wx:key="i" data-item="{{data}}" data-index="{{index}}" data-i="{{i}}" bindtap="onSelectCheckbox">{{data[item.showName]}}</van-button>
+                </view>
             </view>
         </block>
 
+
         <view wx:if="{{dateRange}}" class="groud">
             <view class="label">
-                日期范围
+                {{dateRangeName}}
             </view>
             <view class="content time">
                 <picker mode="date" bindchange='changeDate' data-name="startdate">
@@ -28,11 +33,27 @@
                 </picker>
             </view>
         </view>
+        <view wx:if="{{dateRange1}}" class="groud">
+            <view class="label">
+                预测时间
+            </view>
+            <view class="content time">
+                <picker mode="date" bindchange='changeDate' data-name="periodstart">
+                    <view class="tbox">{{periodstart||'开始日期'}}</view>
+                </picker>
+                <view class="partition">-</view>
+                <picker mode="date" bindchange='changeDate' data-name="periodend">
+                    <view class="tbox">{{periodend||"结束日期"}}</view>
+                </picker>
+            </view>
+        </view>
         <slot />
     </Yl_ListBox>
     <view class="footer" bindtap="onClick">
         <van-button data-name="close" custom-class='v-but'>关闭</van-button>
-        <van-button data-name="reset" custom-class='v-but'>重置</van-button>
+        <van-button wx:if="{{isReset}}" data-name="reset" custom-class='v-but'>重置</van-button>
         <van-button data-name="confirm" custom-class='v-but confirm'>确定</van-button>
     </view>
-</van-popup>
+</van-popup>
+
+<wxs src='../../utils/wxmlQueryPer.wxs' module="per" />

+ 10 - 2
components/Yl_ListBox/index.js

@@ -17,6 +17,14 @@ Component({
             type: Boolean,
             value: true
         },
+        scrollX: {
+            type: Boolean,
+            value: false
+        },
+        direction: {
+            type: Array,
+            value: ["bottom"]
+        }
     },
     data: {
         inRefresh: false, //下拉开启自定义项
@@ -38,8 +46,8 @@ Component({
             }, 500)
         },
         /* 加载分页 */
-        loadThePage() {
-            this.triggerEvent("getlist", false)
+        loadThePage(e) {
+            if (this.data.direction.includes(e.detail.direction)) this.triggerEvent("getlist", false)
         },
         /* 设置组件高度 */
         setHeight(element, that) {

+ 1 - 1
components/Yl_ListBox/index.wxml

@@ -1,4 +1,4 @@
-<scroll-view class="scroll-view" scroll-y refresher-enabled='{{pullDown}}' refresher-triggered='{{inRefresh}}' style="height: {{height}}px;" triggered='{{true}}' bindrefresherrefresh='pullToRefresh' lower-threshold='300' bindscrolltolower='loadThePage'>
+<scroll-view class="scroll-view" scroll-y scroll-x="{{scrollX}}" refresher-enabled='{{pullDown}}' refresher-triggered='{{inRefresh}}' style="height: {{height}}px;" triggered='{{true}}' bindrefresherrefresh='pullToRefresh' lower-threshold='300' bindscrolltolower='loadThePage'>
     <slot />
     <view class="safety" wx:if="{{safety}}" />
 </scroll-view>

+ 115 - 0
packageA/receivables/detail.js

@@ -0,0 +1,115 @@
+const _Http = getApp().globalData.http;
+import currency from "../../utils/currency";
+let CNY = value => currency(value, {
+  symbol: "",
+  precision: 2
+}).format();
+Page({
+  data: {
+    table: [{
+      title: '客户名',
+      width: 330,
+      key: 'enterprisename',
+      fun: 'toDetail'
+    }, {
+      title: '业务员',
+      width: 200,
+      key: 'name'
+    }, {
+      title: '订单号',
+      width: 300,
+      key: 'sonum'
+    }, {
+      title: '审核时间',
+      width: 300,
+      key: 'checkdate'
+    }, {
+      title: '订单行号',
+      width: 200,
+      key: 'rowno'
+    }, {
+      title: '商品编码',
+      width: 300,
+      key: 'itemno'
+    }, {
+      title: '商品名称',
+      width: 300,
+      key: 'itemname'
+    }, {
+      title: '型号',
+      width: 200,
+      key: 'model'
+    }, {
+      title: '规格',
+      width: 200,
+      key: 'spec'
+    }, {
+      title: '数量',
+      width: 200,
+      key: 'qty'
+    }, {
+      title: '金额',
+      width: 200,
+      key: 'amount'
+    }, {
+      title: '应收金额',
+      width: 200,
+      key: 'overdueamount'
+    }],
+    sumWidth: 0,
+    "content": {
+      "pageNumber": 1,
+      "pageSize": 30,
+      "dataid": "4222", // 按业务员时 传userid 按客户时传 sa_customersid
+      "querytype": "1", //0按业务员 1按客户
+      "point": "全部", //入账节点
+      "where": {
+        "condition": ""
+      }
+    }
+  },
+  onLoad(options) {
+    let content = JSON.parse(options.content);
+    content.pageNumber = 1;
+    content.pageTotal = 1;
+    this.data.content = content;
+    this.setData({
+      sumWidth: this.data.table.reduce((prev, cur) => {
+        return prev.width ? prev.width + cur.width : prev + cur.width
+      })
+    })
+    this.getList()
+  },
+  getList(init = false) {
+    if (init.detail != undefined) init = init.detail;
+    let content = this.data.content;
+    if (init) content.pageNumber = 1;
+    if (content.pageNumber > content.pageTotal) return;
+    _Http.basic({
+      "id": 202400321085104,
+      content
+    }).then(res => {
+      this.setListHeight()
+      this.selectComponent('#ListBox').RefreshToComplete();
+      console.log("应收账款明细", res)
+      let list = res.data.map(v => {
+        v.amount = CNY(v.amount)
+        v.overdueamount = CNY(v.overdueamount)
+        return v
+      })
+      this.setData({
+        list: res.pageNumber == 1 ? list : this.data.list.concat(list),
+        "content.pageNumber": res.pageNumber + 1,
+        "content.pageTotal": res.pageTotal,
+        "content.total": res.total,
+      })
+    })
+  },
+  onReady() {
+    this.setListHeight()
+  },
+  /* 设置页面高度 */
+  setListHeight() {
+    this.selectComponent("#ListBox").setHeight(".roof", this);
+  },
+})

+ 3 - 0
packageA/receivables/detail.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 46 - 0
packageA/receivables/detail.scss

@@ -0,0 +1,46 @@
+.table {
+	padding-top: 10rpx;
+	background-color: #fff;
+	text-align: center;
+
+	.table-head {
+		position: sticky;
+		top: 0px;
+		display: flex;
+		color: rgb(129, 129, 129);
+		line-height: 80rpx;
+		font-size: 26rpx;
+		z-index: 9;
+
+		view {
+			flex-shrink: 0;
+			background-color: #F2F2F2;
+		}
+	}
+
+	.line {
+		font-size: 26rpx;
+		color: rgb(129, 129, 129);
+		line-height: 60rpx;
+		display: flex;
+
+		.line-1 {
+			flex-shrink: 0;
+			padding: 0 10rpx;
+			box-sizing: border-box;
+			background-color: #fff;
+		}
+	}
+
+	/* .line view:first-child {
+		color: #13C0C0;
+		text-decoration: underline;
+	} */
+
+	.table-head view:first-child,
+	.line view:first-child {
+		position: sticky;
+		left: 0;
+		z-index: 7;
+	}
+}

+ 16 - 0
packageA/receivables/detail.wxml

@@ -0,0 +1,16 @@
+<view class="table">
+	<view class="roof" />
+	<Yl_ListBox id='ListBox' scrollX='{{true}}' bind:getlist='getList'>
+		<view style="width:{{sumWidth}}rpx;">
+			<view class="table-head">
+				<view wx:for="{{table}}" style="width: {{item.width+'rpx'}};" wx:key="title">{{item.title}}</view>
+			</view>
+			<Yl_Empty wx:if="{{list.length==0}}" />
+			<view class="line" wx:for="{{list}}" wx:key="rowindex">
+				<view wx:for="{{table}}" style="width: {{col.width+'rpx'}};" hover-class="{{col.fun?'navigator-hover':''}}" bind:tap="{{col.fun||''}}" wx:for-item="col" wx:key="title" class="line-1">
+					{{item[col.key]||'--'}}
+				</view>
+			</view>
+		</view>
+	</Yl_ListBox>
+</view>

+ 222 - 0
packageA/receivables/index.js

@@ -0,0 +1,222 @@
+const _Http = getApp().globalData.http;
+import currency from "../../utils/currency";
+let CNY = value => currency(value, {
+  symbol: "",
+  precision: 2
+}).format();
+Page({
+  data: {
+    showFiltrate: false,
+    startUsing: false,
+    showList: [],
+    "content": {
+      "pageNumber": 1,
+      "pageSize": 40,
+      "type": "0", //1按部门 0按人员
+      "dataid": "0", //部门人员id
+      "querytype": "1", //0按业务员 1按客户
+      "point": "全部", // 入账节点
+      "where": {
+        "condition": ""
+      }
+    },
+    querytypes: [{
+      name: "按业务员",
+      value: 0
+    }, {
+      name: "按客户",
+      value: 1
+    }],
+    points: ['全部', '订单', '出货', '开票'],
+    filtratelist: [],
+    table: [{
+      title: '客户名称',
+      width: 330,
+      key: 'enterprisename',
+      fun: 'toDetail'
+    }, {
+      title: '业务员',
+      width: 200,
+      key: 'name'
+    }, {
+      title: '总应收',
+      width: 200,
+      key: 'allaoverduemount'
+    }, {
+      title: '逾期1月',
+      width: 200,
+      key: 'onemonthamount'
+    }, {
+      title: '逾期1-3月',
+      width: 200,
+      key: 'threemonthamount'
+    }, {
+      title: '逾期3月及以上',
+      width: 200,
+      key: 'upthreemonthamount'
+    }],
+    sumWidth: 0,
+
+  },
+  onLoad(options) {
+    this.setData({
+      sumWidth: this.data.table.reduce((prev, cur) => {
+        return prev.width ? prev.width + cur.width : prev + cur.width
+      })
+    })
+    _Http.basic({
+      "id": 20230620102004,
+      "content": {}
+    }).then(res => {
+      console.log("获取下级部门和下级人员", res)
+      if (res.msg != '成功') return wx.showToast({
+        title: res.data,
+        icon: "none"
+      })
+      let data = {
+        label: "查询范围",
+        index: 0,
+        showName: "name", //显示字段
+        valueKey: "active", //返回Key
+        value: "id", //选中值
+        list: res.data.hr.map(v => {
+          v.id = v.userid;
+          // v.key = v.name + v.userid;
+          v.type = '人员'
+          delete(v.rowindex)
+          delete(v.userid)
+          return v
+        })
+      };
+      const mflat = (v, prefix) => {
+        v.subdep.forEach(s => mflat(s, v.depname));
+        v.name = v.depname; //prefix ? prefix + '/' + v.depname : v.depname
+        v.type = '部门';
+        v.id = v.departmentid;
+        // v.key = v.name + v.id;
+        delete(v.depname)
+        delete(v.departmentid)
+        delete(v.parentid)
+        delete(v.rowindex)
+        delete(v.subdep)
+        data.list.unshift(v)
+      };
+      res.data.dep.forEach(v => mflat(v))
+      data.list.map((v, i) => {
+        v.index = i;
+        if (v.type == '人员' && v.id == wx.getStorageSync('userMsg').userid) {
+          data.index = i;
+          this.data.content.dataid = v.id;
+        };
+        return v
+      })
+      this.setData({
+        "filtratelist[0]": data
+      });
+      this.getList()
+    });
+  },
+  getList(init = false) {
+    if (init.detail != undefined) init = init.detail;
+    let content = this.data.content;
+    if (init) content.pageNumber = 1;
+    if (content.pageNumber > content.pageTotal) return;
+    _Http.basic({
+      "id": 20240320111604,
+      content
+    }).then(res => {
+      this.setListHeight()
+      this.selectComponent('#ListBox').RefreshToComplete();
+      console.log("应收账款列表", res)
+      if (res.data.length) {
+        let showList = [],
+          obj = {
+            "sumallaoverduemount": '总应收',
+            "sumonemonthamount": '逾期1月',
+            "sumthreemonthamount": '逾期1-3月',
+            "sumupthreemonthamount": '逾期三月以上'
+          }
+        for (const key in obj) {
+          showList.push({
+            name: obj[key] + '(元)',
+            value: CNY(res.data[0][key])
+          })
+        }
+        this.setData({
+          showList
+        })
+      };
+      let list = res.data.map(v => {
+        v.allaoverduemount = CNY(v.allaoverduemount)
+        v.onemonthamount = CNY(v.onemonthamount)
+        v.threemonthamount = CNY(v.threemonthamount)
+        v.upthreemonthamount = CNY(v.upthreemonthamount)
+        return v
+      })
+      this.setData({
+        list: res.pageNumber == 1 ? list : this.data.list.concat(list),
+        "content.pageNumber": res.pageNumber + 1,
+        "content.pageTotal": res.pageTotal,
+        "content.total": res.total,
+      })
+    })
+  },
+  toDetail(e) {
+    wx.navigateTo({
+      url: '/packageA/receivables/detail?content=' + JSON.stringify(this.data.content),
+    })
+  },
+  querytypeChange(e) {
+    this.setData({
+      "content.querytype": e.detail.value
+    });
+    this.getList(true)
+  },
+  pointChange(e) {
+    this.data.content.querytype = this.data.points[e.detail.value]
+    this.getList(true)
+  },
+  onReady() {
+    this.setListHeight()
+  },
+  /* 设置页面高度 */
+  setListHeight() {
+    this.selectComponent("#ListBox").setHeight(".roof", this);
+  },
+  openFiltrate() {
+    this.setData({
+      showFiltrate: true
+    })
+  },
+  handleFilter({
+    detail
+  }) {
+    if (typeof detail == 'object') {
+      if (detail.active == 'id') return this.getList(true)
+      this.data.content.type = detail.active.type == '人员' ? 0 : 1;
+      this.data.content.dataid = detail.active.id;
+    } else {
+      this.data.content.type = 0;
+      this.data.content.dataid = 0;
+    }
+    this.getList(true)
+  },
+  startSearch({
+    detail
+  }) {
+    this.data.content.where.condition = detail;
+    this.getList(true)
+  },
+  onClear() {
+    this.data.content.where.condition = '';
+    this.getList(true)
+  },
+  showSearch() {
+    this.setData({
+      startUsing: !this.data.startUsing
+    })
+    setTimeout(() => {
+      this.setListHeight()
+    }, 400)
+  },
+})

+ 5 - 0
packageA/receivables/index.json

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

+ 112 - 0
packageA/receivables/index.scss

@@ -0,0 +1,112 @@
+page {
+	height: 100vh;
+	overflow: hidden;
+}
+
+.nav {
+	display: flex;
+	justify-content: space-between;
+	height: 90rpx;
+	background-color: #fff;
+
+	.item {
+		display: flex;
+		align-items: center;
+		line-height: 90rpx;
+		font-size: 28rpx;
+		color: #414141;
+		padding: 0 30rpx;
+
+		text {
+			font-size: 26rpx;
+			margin-right: 8rpx;
+		}
+	}
+}
+
+.showdata {
+	display: flex;
+	background-color: #fff;
+	border-radius: 18rpx;
+	flex-wrap: wrap;
+	margin-top: 20rpx;
+	overflow: hidden;
+
+	.item:first-child {
+		width: 100%;
+		padding-top: 20rpx;
+
+		.name {
+			font-size: 28rpx;
+		}
+
+		.value {
+			font-size: 46rpx;
+			font-weight: bold;
+		}
+	}
+
+	.item {
+		width: 250rpx;
+		text-align: center;
+
+		.name {
+			font-size: 26rpx;
+		}
+
+		.value {
+			font-size: 38rpx;
+			font-weight: bold;
+			margin-top: 10rpx;
+			padding: 0 10rpx 20rpx;
+		}
+	}
+}
+
+.table {
+	padding-top: 10rpx;
+	background-color: #fff;
+	margin-top: 8rpx;
+	text-align: center;
+
+	.table-head {
+		position: sticky;
+		top: 0px;
+		display: flex;
+		color: rgb(129, 129, 129);
+		line-height: 80rpx;
+		font-size: 26rpx;
+		z-index: 9;
+
+		view {
+			flex-shrink: 0;
+			background-color: #F2F2F2;
+		}
+	}
+
+	.line {
+		font-size: 26rpx;
+		color: rgb(129, 129, 129);
+		line-height: 60rpx;
+		display: flex;
+
+		.line-1 {
+			flex-shrink: 0;
+			padding: 0 10rpx;
+			box-sizing: border-box;
+			background-color: #fff;
+		}
+	}
+
+	.line view:first-child {
+		color: #13C0C0;
+		text-decoration: underline;
+	}
+
+	.table-head view:first-child,
+	.line view:first-child {
+		position: sticky;
+		left: 0;
+		z-index: 7;
+	}
+}

+ 53 - 0
packageA/receivables/index.wxml

@@ -0,0 +1,53 @@
+<view class="nav">
+	<picker range='{{querytypes}}' range-key='name' value="{{content.querytype}}" bindchange='querytypeChange'>
+		<view class="item" hover-class="navigator-hover">
+			<text class="iconfont icon-daoruxialajiantou" />
+			{{content.querytype==0?'按业务员':'按客户'}}
+		</view>
+	</picker>
+
+	<picker range='{{points}}' value="{{content.point}}" bindchange='pointChange'>
+		<view class="item" hover-class="navigator-hover">
+			<text class="iconfont icon-daoruxialajiantou" />
+			入账节点
+		</view>
+	</picker>
+
+	<view class="item" hover-class="navigator-hover" bind:tap="openFiltrate">
+		<text class="iconfont icon-shaixuan" />
+		筛选
+	</view>
+
+	<view class="item" style="padding: 0 30rpx;" hover-class="navigator-hover" bind:tap="showSearch">
+		<text class="iconfont icon-a-sousuolansousuo" />
+	</view>
+</view>
+<van-transition show="{{ startUsing }}" custom-class="block">
+	<van-search custom-class='Yl_search' value="{{ content.condition }}" shape="round" placeholder="请输入搜索关键词" bind:search='startSearch' bind:clear='onClear' />
+</van-transition>
+
+
+<view class="showdata">
+	<view class="item" wx:for="{{showList}}" wx:key="name">
+		<view class="name">{{item.name}}</view>
+		<view class="value line-1">{{item.value}}</view>
+	</view>
+</view>
+<view class="table">
+	<view class="roof" />
+	<Yl_ListBox id='ListBox' scrollX='{{true}}' bind:getlist='getList'>
+		<view style="width:{{sumWidth}}rpx;">
+			<view class="table-head">
+				<view wx:for="{{table}}" style="width: {{item.width+'rpx'}};" wx:key="title">{{item.title}}</view>
+			</view>
+			<view class="line" wx:for="{{list}}" wx:key="rowindex">
+				<view wx:for="{{table}}" style="width: {{col.width+'rpx'}};" data-item="{{item}}" hover-class="{{col.fun?'navigator-hover':''}}" bind:tap="{{col.fun||''}}" wx:for-item="col" wx:key="title" class="line-1">
+					{{item[col.key]||'--'}}
+				</view>
+			</view>
+		</view>
+		<Yl_Empty wx:if="{{list.length==0}}" />
+	</Yl_ListBox>
+</view>
+
+<Yl_Filtrate show='{{showFiltrate}}' isReset='{{false}}' list="{{filtratelist}}" bindhandle="handleFilter" />

+ 7 - 0
project.private.config.json

@@ -9,6 +9,13 @@
   "condition": {
     "miniprogram": {
       "list": [
+        {
+          "name": "应收账款",
+          "pathName": "packageA/receivables/index",
+          "query": "",
+          "launchMode": "default",
+          "scene": null
+        },
         {
           "name": "工具借用",
           "pathName": "packageA/borrow/detail",

+ 2 - 1
utils/Http.js

@@ -11,7 +11,8 @@ class HTTP {
         if (this.ENV === 'release') { // 正式版
             this.baseUrl = "https://oms.idcgroup.com.cn:8079";
         } else {
-            this.baseUrl = "http://61.164.207.46:8000";
+            // this.baseUrl = "http://61.164.207.46:8000";
+            this.baseUrl = "http://192.168.3.13:8080";
             // this.baseUrl = "https://oms.idcgroup.com.cn:8079";
         }
         console.log("接口地址:", this.baseUrl)

+ 4 - 0
utils/work/apps.js

@@ -236,6 +236,10 @@ function getedd() {
 		name: "打款凭证",
 		path: "/packageA/remitVoucher/index",
 		icon: "work-dakuanpingzheng"
+	}, {
+		name: "应收账款",
+		path: "/packageA/receivables/index",
+		icon: "work-kaipiao",
 	}, {
 		name: "工具借用",
 		path: "/packageA/borrow/index",