Browse Source

客户与公海客户筛选

xiaohaizhao 2 years ago
parent
commit
b3c35ec06b

+ 84 - 44
packageA/publicCustomer/index.js

@@ -1,4 +1,7 @@
 const _Http = getApp().globalData.http;
+import {
+    getTypes
+} from "../setclient/modules/query";
 Page({
     data: {
         navList: [{
@@ -26,25 +29,88 @@ Page({
             "pageTotal": 1,
             "pageSize": 20,
             isExport: false,
-            "where": {
-                "startdate": "",
-                "enddate": "",
-                sa_customerpoolid: ""
-            },
+            "where": {},
             "sort": []
         },
-        filter: {
-            show: false,
-            startdate: "",
-            enddate: ""
-        }
     },
-    onLoad(options) {
+    async onLoad(options) {
         this.setData({
             insert: wx.getStorageSync('auth').wPublicCustomer.options.some(v => v == 'insert'), //查询新增权限
         })
         this.getList();
         this.getType();
+        let filtratelist = [{
+            label: "客户类型",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "type", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('customertypemx')
+        }, {
+            label: "客户分类",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "customergrade", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('customergrade')
+        }, {
+            label: "客户等级",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "grade", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('agentgrade')
+        }, {
+            label: "所属行业",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "industry", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('industry')
+        }, {
+            label: "合作状态",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "status", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: [{
+                value: "潜在"
+            }, {
+                value: "合作中"
+            }, {
+                value: "已终止"
+            }]
+        }, {
+            label: "成交状态",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "tradingstatus", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: [{
+                value: "未成交"
+            }, {
+                value: "已成交"
+            }, {
+                value: "多次成交"
+            }]
+        }, {
+            label: "标签",
+            index: null,
+            showName: "tag", //显示字段
+            valueKey: "tag", //返回Key
+            selectKey: "tag", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('tags')
+        }]
+        this.setData({
+            filtratelist
+        })
     },
     /* 获取列表 */
     getList(init = false, data) {
@@ -81,9 +147,7 @@ Page({
     onSearch({
         detail
     }) {
-        this.setData({
-            "content.where.condition": detail
-        });
+        this.data.content.where.condition = detail;
         this.getList(true);
     },
     /* 获取列表标签 */
@@ -116,10 +180,6 @@ Page({
     },
     /* 获取公海池列表 */
     getType() {
-
-
-
-
         _Http.basic({
             "classname": "sysmanage.develop.optiontype.optiontype",
             "method": "optiontypeselect",
@@ -173,7 +233,7 @@ Page({
                 break;
             case '2':
                 this.setData({
-                    'filter.show': true
+                    filterShow: true
                 })
                 break;
         }
@@ -182,31 +242,11 @@ Page({
     handleFilter({
         detail
     }) {
-        const data = this.data.filter;
-        if (data.typeActive) data.typeActive = data.typeActive == '普通报价' ? 0 : 1;
-        switch (detail) {
-            case 'confirm':
-                this.setData({
-                    'filter.show': false
-                });
-                this.getList(true, data);
-                break;
-            case 'reset':
-                this.setData({
-                    'filter.statusActive': "",
-                    'filter.typeActive': "",
-                    'filter.startdate': "",
-                    'filter.enddate': "",
-                });
-                this.getList(true, this.data.filter)
-                break;
-            case 'close':
-                this.setData({
-                    'filter.show': false
-                });
-                break;
-        };
-
+        detail.condition = this.data.content.where.condition;
+        this.setData({
+            "content.where": detail
+        });
+        this.getList(true);
     },
     addPublicCustomer() {
         wx.navigateTo({

+ 1 - 16
packageA/publicCustomer/index.wxml

@@ -7,21 +7,6 @@
     <view style="height: 80rpx;" />
 </Yl_ListBox>
 <!-- 筛选条件 -->
-<Yl_filtrate show="{{filter.show}}" bind:handle="handleFilter">
-    <view class="groud">
-        <view class="label">
-            时间范围
-        </view>
-        <view class="content time">
-            <picker mode="date" bindchange='changeDate' data-name="startdate">
-                <view class="tbox">{{filter.startdate||'开始时间'}}</view>
-            </picker>
-            <view class="partition">-</view>
-            <picker mode="date" bindchange='changeDate' data-name="enddate">
-                <view class="tbox">{{filter.enddate||"结束时间"}}</view>
-            </picker>
-        </view>
-    </view>
-</Yl_filtrate>
+<Yl_Filtrate1 show='{{filterShow}}' list="{{filtratelist}}" dateRange bindhandle="handleFilter" />
 <!-- 浮动按钮 -->
 <Yl_FloatingButton wx:if="{{insert}}" bindtap="addPublicCustomer" />

+ 86 - 43
packageA/setclient/index.js

@@ -1,4 +1,8 @@
 const _Http = getApp().globalData.http;
+
+import {
+    getTypes
+} from "./modules/query";
 Page({
     data: {
         navList: [{
@@ -28,12 +32,7 @@ Page({
             "pageNumber": 1,
             "pageSize": 20,
             "isExport": 0,
-            "where": {
-                "condition": "",
-                "status": "", //状态
-                "startdate": "",
-                "enddate": ""
-            },
+            "where": {},
             "sort": [{
                 sortname: "默认",
                 sorted: 1,
@@ -43,13 +42,7 @@ Page({
         },
         list: [],
         classShow: false, //type类型
-        filter: {
-            show: false,
-            status: ['潜在', '合作中', '已终止'],
-            statusActive: "",
-            startdate: "",
-            enddate: ""
-        }
+
     },
     /* 去添加 */
     toAdd() {
@@ -57,7 +50,7 @@ Page({
             url: './addAndEditor'
         })
     },
-    onLoad(options) {
+    async onLoad(options) {
         this.setData({
             insert: wx.getStorageSync('auth').wCustomer.options.some(v => v == 'insert'), //查询新增权限
             classActions: wx.getStorageSync('templetList').map(v => {
@@ -70,6 +63,78 @@ Page({
             "content.type": wx.getStorageSync('templetList')[0].templetid,
         });
         this.getList()
+        let filtratelist = [{
+            label: "客户类型",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "type", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('customertypemx')
+        }, {
+            label: "客户分类",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "customergrade", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('customergrade')
+        }, {
+            label: "客户等级",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "grade", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('agentgrade')
+        }, {
+            label: "所属行业",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "industry", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('industry')
+        }, {
+            label: "合作状态",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "status", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: [{
+                value: "潜在"
+            }, {
+                value: "合作中"
+            }, {
+                value: "已终止"
+            }]
+        }, {
+            label: "成交状态",
+            index: null,
+            showName: "value", //显示字段
+            valueKey: "tradingstatus", //返回Key
+            selectKey: "value", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: [{
+                value: "未成交"
+            }, {
+                value: "已成交"
+            }, {
+                value: "多次成交"
+            }]
+        }, {
+            label: "标签",
+            index: null,
+            showName: "tag", //显示字段
+            valueKey: "tag", //返回Key
+            selectKey: "tag", //传参 代表选着字段 不传参返回整个选择对象
+            value: "", //选中值
+            list: await getTypes('tags')
+        }]
+        this.setData({
+            filtratelist
+        })
     },
     /* 筛选状态选择 */
     selectStatus(e) {
@@ -92,30 +157,11 @@ Page({
     handleFilter({
         detail
     }) {
-        const data = this.data.filter;
-        switch (detail) {
-            case 'confirm':
-                this.setData({
-                    'content.where.status': data.statusActive,
-                    'content.where.startdate': data.startdate,
-                    'content.where.enddate': data.enddate,
-                    'filter.show': false
-                });
-                this.getList(true);
-                break;
-            case 'reset':
-                this.setData({
-                    'filter.statusActive': "",
-                    'filter.startdate': "",
-                    'filter.enddate': "",
-                });
-                break;
-            case 'close':
-                this.setData({
-                    'filter.show': false
-                });
-                break;
-        }
+        detail.condition = this.data.content.where.condition;
+        this.setData({
+            "content.where": detail
+        });
+        this.getList(true);
     },
     getList(init = false) {
         //init 用于初始化分页
@@ -177,7 +223,7 @@ Page({
                 break;
             case '2':
                 this.setData({
-                    'filter.show': true
+                    'filterShow': true
                 })
                 break;
             case '3':
@@ -195,11 +241,8 @@ Page({
     onSearch({
         detail
     }) {
-        this.setData({
-            "content.where.condition": detail
-        });
+        this.data.content.where.condition = detail;
         this.getList(true);
-
     },
     classClose() {
         this.setData({

+ 1 - 24
packageA/setclient/index.wxml

@@ -7,29 +7,6 @@
 <!-- 显示类型 -->
 <van-action-sheet show="{{ classShow }}" actions="{{ classActions }}" cancel-text="取消" bind:click-overlay='classClose' bind:cancel="classClose" bind:select="classSelect" />
 <!-- 筛选条件 -->
-<Yl_filtrate show="{{filter.show}}" bind:handle="handleFilter">
-    <view class="groud">
-        <view class="label">
-            合作状态
-        </view>
-        <view class="content">
-            <van-button custom-class='but {{filter.statusActive==item?"active":""}}' wx:for="{{filter.status}}" wx:key="item" bindtap="selectStatus" data-item="{{item}}">{{item}}</van-button>
-        </view>
-    </view>
-    <view class="groud">
-        <view class="label">
-            筛选范围
-        </view>
-        <view class="content time">
-            <picker mode="date" bindchange='changeDate' data-name="startdate">
-                <view class="tbox">{{filter.startdate||'开始时间'}}</view>
-            </picker>
-            <view class="partition">-</view>
-            <picker mode="date" bindchange='changeDate' data-name="enddate">
-                <view class="tbox">{{filter.enddate||"结束时间"}}</view>
-            </picker>
-        </view>
-    </view>
-</Yl_filtrate>
+<Yl_Filtrate1 show='{{filterShow}}' list="{{filtratelist}}" dateRange bindhandle="handleFilter" />
 <!-- 浮动按钮 -->
 <Yl_FloatingButton wx:if="{{insert}}" bindtap="toAdd" />

+ 48 - 0
packageA/setclient/modules/query.js

@@ -0,0 +1,48 @@
+const _Http = getApp().globalData.http;
+module.exports = {
+    /**
+     * 获取筛选分类查询 无分页
+     * customerpoolname 公海池
+     * customertypemx 客户类型
+     * customergrade 客户分类
+     * agentgrade 客户等级
+     * industry 客户行业
+     * tags 客户标签
+     */
+    async getTypes(name) {
+        let params = null;
+        if (["customerpoolname", 'customertypemx', 'customergrade', 'customergrade', 'agentgrade', 'industry'].includes(name)) {
+            params = {
+                "classname": "sysmanage.develop.optiontype.optiontype",
+                "method": "optiontypeselect",
+                "content": {
+                    "nochace": true,
+                    "pageNumber": 1,
+                    "pageSize": 1000,
+                    "typename": name,
+                    "parameter": {
+                        "siteid": wx.getStorageSync('userMsg').siteid
+                    }
+                }
+            }
+        } else if (name == 'tags') {
+            params = {
+                "id": 20221013104401,
+                "content": {
+                    "nochace": true,
+                    "isExport": 1,
+                    "pageNumber": 1,
+                    sys_systemtagid: 2,
+                    "pageSize": 1000,
+                    "where": {
+                        "condition": ""
+                    }
+                }
+            }
+        }
+        if (!params) return;
+        let res = await _Http.basic(params);
+        console.log(`查询${name}`, res)
+        return res.msg == '成功' ? res.data : [];
+    }
+}