zhaoxiaohai 3 лет назад
Родитель
Сommit
970e650e38

+ 2 - 2
packageA/publicClue/detail.js

@@ -26,10 +26,10 @@ Page({
         }, {
             icon: "icon-dibu-tuihui",
             label: "撤回"
-        }, {
+        }, /* {
             icon: "icon-zhuanyi",
             label: "更换负责人"
-        }, {
+        }, */ {
             icon: "icon-dibu-jieshu",
             label: "作废"
         }],

+ 1 - 0
packageA/publicCustomer/index.js

@@ -41,6 +41,7 @@ Page({
         }
     },
     onLoad(options) {
+        
         this.getList();
         this.getType();
     },

+ 29 - 18
packageA/setclient/detail.js

@@ -1,6 +1,9 @@
 const _Http = getApp().globalData.http;
 Page({
     data: {
+        isAdmin: getApp().globalData.auth.wCustomer.options.some(v => v == "admin"), //是否具有管理权限
+        isLeader: false, //是否为负责人
+        options: getApp().globalData.auth.wCustomer.options, //权限列表
         tabsActive: 0, //tabs 选中项
         sa_customersid: 0,
         detail: {}, //详情数据
@@ -30,29 +33,12 @@ Page({
         list1: [], //基本信息
         list2: [], //系统信息
         tabbarList: [{
-            icon: "icon-dibu-fenxiang",
-            label: "分享"
-        }, {
-            icon: "icon-dibu-chehui",
-            label: "退回"
-        }, {
-            icon: "icon-dibu-tuihui",
-            label: "回收"
-        }, {
             icon: "icon-genjin",
             label: "跟进"
-        }, {
-            icon: "icon-bianji",
-            label: "编辑"
-        }, {
-            icon: "icon-zhuanyi",
-            label: "更换负责人"
-        }, {
-            icon: "icon-shanchu",
-            label: "作废"
         }]
     },
     onLoad(options) {
+        console.log(this.data.options)
         this.setData({
             sa_customersid: options.id
         })
@@ -307,6 +293,29 @@ Page({
             }).then(s => {
                 console.log("负责人", s)
                 if (s.data.length != 0) {
+                    let userList = s.data.map(user => user.team[0]),
+                        isLeader = userList.some(some => some.userid == wx.getStorageSync('userMsg').userid),
+                        tabbarList = this.data.tabbarList;
+                    if (isLeader || this.data.isAdmin) tabbarList = [{
+                        icon: "icon-dibu-tuihui",
+                        label: "回收"
+                    }, {
+                        icon: "icon-bianji",
+                        label: "编辑"
+                    }, {
+                        icon: "icon-zhuanyi",
+                        label: "更换负责人"
+                    }, {
+                        icon: "icon-shanchu",
+                        label: "作废"
+                    }].concat(tabbarList);
+                    if (isLeader && res.data.ispublic == 1) tabbarList = tabbarList.concat([{
+                        icon: "icon-dibu-fenxiang",
+                        label: "分享"
+                    }, {
+                        icon: "icon-dibu-chehui",
+                        label: "退回"
+                    }]);
                     let list = list1.concat([{
                         label: "负责人",
                         value: s.data[0].teamleader[0].name
@@ -316,6 +325,8 @@ Page({
                     }])
                     list[5].value = s.data.length > 0 ? '已分配' : '未分配';
                     this.setData({
+                        isLeader,
+                        tabbarList,
                         principal: s.data,
                         list1: list,
                         briefs: this.data.briefs.concat([{

+ 7 - 6
packageA/setclient/detail.wxml

@@ -23,11 +23,11 @@
 <Yl_FunTabs list='{{tabsList}}' active='{{tabsActive}}' bind:onChenge="tabsChange">
     <Trace slot='跟进动态' id='Trace' ownertable='sa_customers' ownerid='{{detail.sa_customersid}}' />
     <Preview slot='详细信息' list1='{{list1}}' list2='{{list2}}' />
-    <Clue slot='线索' id='Clue' />
-    <Address slot='客户地址' id='Address' />
-    <Contacts slot='联系人' id='Contacts' />
-    <Offers slot='报价单' id='Offers' />
-    <Financing slot='开票信息' id="Financing" />
+    <Clue slot='线索' id='Clue' disabled="{{per.query(options,'clue')||isAdmin||isLeader}}" />
+    <Address slot='客户地址' id='Address' disabled="{{per.query(options,'address')||isAdmin||isLeader}}" />
+    <Contacts slot='联系人' id='Contacts' disabled="{{per.query(options,'contact')||isAdmin||isLeader}}" />
+    <Offers slot='报价单' id='Offers' disabled="{{per.query(options,'offer')||isAdmin||isLeader}}" />
+    <Financing slot='开票信息' id="Financing" disabled="{{per.query(options,'invoice')||isAdmin||isLeader}}" />
     <view style="height: 140rpx;" />
 </Yl_FunTabs>
 <!-- 底部 -->
@@ -37,4 +37,5 @@
     module.exports.getName = function (name) {
         return name.substring(0, 4)
     };
-</wxs>
+</wxs>
+<wxs src='../../utils/wxmlQueryPer.wxs' module="per" />

+ 1 - 0
packageA/setclient/index.js

@@ -2,6 +2,7 @@ const _Http = getApp().globalData.http,
     getHeight = require("../../utils/getRheRemainingHeight");
 Page({
     data: {
+        insert: getApp().globalData.auth.wCustomer.options.some(v => v == 'insert'), //查询新增权限
         navList: [{
             label: "全部",
             icon: "icon-webxialaxuanxiangjiantou",

+ 1 - 1
packageA/setclient/index.json

@@ -2,5 +2,5 @@
     "usingComponents": {
         "list": "./modules/list/index"
     },
-    "navigationBarTitleText": "客户管理"
+    "navigationBarTitleText": "客户"
 }

+ 1 - 1
packageA/setclient/index.wxml

@@ -31,4 +31,4 @@
     </view>
 </Yl_filtrate>
 <!-- 浮动按钮 -->
-<Yl_FloatingButton bindtap="toAdd" />
+<Yl_FloatingButton wx:if="{{insert}}" bindtap="toAdd" />

+ 3 - 0
packageA/setclient/modules/address/index.js

@@ -1,5 +1,8 @@
 const _Http = getApp().globalData.http;
 Component({
+    properties: {
+        disabled: Boolean
+    },
     options: {
         addGlobalClass: true
     },

+ 2 - 2
packageA/setclient/modules/address/index.wxml

@@ -4,10 +4,10 @@
         <navigator url="#" class="but" bindtap="toSearch">
             <van-icon name="search" />
         </navigator>
-        <navigator url="/packageA/setclient/modules/address/add/index?sys_enterpriseid={{sys_enterpriseid}}" class="but">
+        <navigator wx:if="{{disabled}}" url="/packageA/setclient/modules/address/add/index?sys_enterpriseid={{sys_enterpriseid}}" class="but">
             <van-icon name="plus" />
         </navigator>
     </view>
 </view>
 
-<List id='List' list='{{list}}' bindchangeTotal='changeTotal' />
+<List id='List' list='{{list}}' disabled='{{disabled}}' bindchangeTotal='changeTotal' />

+ 2 - 1
packageA/setclient/modules/address/list/index.js

@@ -5,7 +5,8 @@ Component({
     },
     properties: {
         list: Array,
-        changeTotal: Function
+        changeTotal: Function,
+        disabled: Boolean
     },
     data: {
         radio: 0, //默认

+ 2 - 2
packageA/setclient/modules/address/list/index.wxml

@@ -13,8 +13,8 @@
             <view class="icon-but" bindtap="handleItem">
                 <navigator url="#" data-item="{{item}}" data-name="call" class="iconfont icon-a-wodemendianxinxidianhua" />
                 <navigator url="#" data-item="{{item}}" data-name="copy" class="iconfont icon-a-yingxiaowuliaofuzhi" />
-                <navigator url="#" data-item="{{item}}" data-name="edit" class="iconfont icon-bianji" />
-                <navigator url="#" data-item="{{item}}" data-name="delete" class="iconfont icon-shanchu" />
+                <navigator url="#" data-item="{{item}}" wx:if="{{disabled}}" data-name="edit" class="iconfont icon-bianji" />
+                <navigator url="#" data-item="{{item}}" wx:if="{{disabled}}" data-name="delete" class="iconfont icon-shanchu" />
             </view>
         </view>
     </view>

+ 3 - 1
packageA/setclient/modules/clue/index.js

@@ -1,6 +1,8 @@
 const _Http = getApp().globalData.http;
 Component({
-    properties: {},
+    properties: {
+        disabled: Boolean
+    },
     data: {
         list: [],
         sa_customersid: "",

+ 1 - 1
packageA/setclient/modules/clue/index.wxml

@@ -3,7 +3,7 @@
         总共{{content.total}}个
     </view>
     <view class="expand">
-        <navigator url="#" class="but" bindtap="toAdd">
+        <navigator url="#" wx:if="{{disabled}}" class="but" bindtap="toAdd">
             <van-icon name="plus" />
         </navigator>
     </view>

+ 3 - 1
packageA/setclient/modules/contacts/index.js

@@ -1,6 +1,8 @@
 const _Http = getApp().globalData.http;
 Component({
-    properties: {},
+    properties: {
+        disabled: Boolean
+    },
     data: {
         list: [],
         sys_enterpriseid: "",

+ 2 - 2
packageA/setclient/modules/contacts/index.wxml

@@ -6,10 +6,10 @@
         <navigator url="#" class="but" bindtap="toSearch">
             <van-icon name="search" />
         </navigator>
-        <navigator url="/packageA/setclient/modules/contacts/quickly/index?sys_enterpriseid={{sys_enterpriseid}}" class="but">
+        <navigator wx:if="{{disabled}}" url="/packageA/setclient/modules/contacts/quickly/index?sys_enterpriseid={{sys_enterpriseid}}" class="but">
             <van-icon name="plus" />
         </navigator>
     </view>
 </view>
 
-<list list='{{list}}' bindchangeTotal="changeTotal" />
+<list list='{{list}}' disabled='{{disabled}}' bindchangeTotal="changeTotal" />

+ 2 - 1
packageA/setclient/modules/contacts/list/index.js

@@ -5,7 +5,8 @@ Component({
     },
     properties: {
         list: Array,
-        changeTotal: Function
+        changeTotal: Function,
+        disabled: Boolean
     },
     data: {},
     methods: {

+ 2 - 2
packageA/setclient/modules/contacts/list/index.wxml

@@ -16,8 +16,8 @@
         <view />
         <view class="icon-but" bindtap="handleItem">
             <navigator url="#" data-item="{{item}}" data-name="call" class="iconfont icon-bodadianhua" />
-            <navigator url="#" data-item="{{item}}" data-name="edit" class="iconfont icon-bianji" />
-            <navigator url="#" data-item="{{item}}" data-name="delete" class="iconfont icon-shanchu" />
+            <navigator url="#" data-item="{{item}}" wx:if="{{disabled}}" data-name="edit" class="iconfont icon-bianji" />
+            <navigator url="#" data-item="{{item}}" wx:if="{{disabled}}" data-name="delete" class="iconfont icon-shanchu" />
         </view>
     </view>
 

+ 1 - 1
packageA/setclient/modules/financing/index.js

@@ -5,7 +5,7 @@ Component({
         addGlobalClass: true
     },
     properties: {
-
+        disabled: Boolean
     },
     data: {
         sys_enterpriseid: 0,

+ 2 - 2
packageA/setclient/modules/financing/index.wxml

@@ -6,10 +6,10 @@
         <navigator url="#" class="but" bindtap="toSearch">
             <van-icon name="search" />
         </navigator>
-        <navigator url="/packageA/setclient/modules/financing/add/index?sys_enterpriseid={{sys_enterpriseid}}" class="but">
+        <navigator wx:if="{{disabled}}" url="/packageA/setclient/modules/financing/add/index?sys_enterpriseid={{sys_enterpriseid}}" class="but">
             <van-icon name="plus" />
         </navigator>
     </view>
 </view>
 
-<list id='List' list="{{list}}" bindchangeTotal="changeTotal" />
+<list id='List' list="{{list}}" disabled='{{disabled}}' bindchangeTotal="changeTotal" />

+ 2 - 1
packageA/setclient/modules/financing/list/index.js

@@ -5,7 +5,8 @@ Component({
     },
     properties: {
         list: Array,
-        changeTotal: Function
+        changeTotal: Function,
+        disabled: Boolean
     },
     data: {
         radio: 0

+ 25 - 25
packageA/setclient/modules/financing/list/index.wxml

@@ -1,29 +1,29 @@
 <van-radio-group value="{{ radio }}" bind:change="onChange">
-  <view class="add-box" wx:for="{{list}}" wx:key="item.sys_enterprise_financeid">
-    <navigator url="#" class="detail" data-item="{{item}}" bindtap="onClick">
-      <view class="label">
-        {{item.enterprisename}}
-      </view>
-      <view class="exp">
-        银行账户:{{item.bankcardno}}
-      </view>
-      <view class="exp">
-        开户银行:{{item.bank}}
-      </view>
-      <view class="exp">
-        联系人电话:{{item.phonenumber}}
-      </view>
-    </navigator>
-    <view class="editor">
-      <!-- <van-radio icon-size='14' label-class='radio' name="{{item.sys_enterprise_financeid}}">默认</van-radio> -->
-      <view />
-      <view class="icon-but" bindtap="handleItem">
-        <navigator url="#" data-item="{{item}}" data-name="call" style="font-size: 26rpx;" class="iconfont icon-bodadianhua" />
-        <navigator url="#" data-item="{{item}}" data-name="copy" class="iconfont icon-a-yingxiaowuliaofuzhi" />
-        <navigator url="#" data-item="{{item}}" data-name="edit" class="iconfont icon-bianji" />
-        <navigator url="#" data-item="{{item}}" data-name="delete" class="iconfont icon-shanchu" />
-      </view>
+    <view class="add-box" wx:for="{{list}}" wx:key="item.sys_enterprise_financeid">
+        <navigator url="#" class="detail" data-item="{{item}}" bindtap="onClick">
+            <view class="label">
+                {{item.enterprisename}}
+            </view>
+            <view class="exp">
+                银行账户:{{item.bankcardno}}
+            </view>
+            <view class="exp">
+                开户银行:{{item.bank}}
+            </view>
+            <view class="exp">
+                联系人电话:{{item.phonenumber}}
+            </view>
+        </navigator>
+        <view class="editor">
+            <!-- <van-radio icon-size='14' label-class='radio' name="{{item.sys_enterprise_financeid}}">默认</van-radio> -->
+            <view />
+            <view class="icon-but" bindtap="handleItem">
+                <navigator url="#" data-item="{{item}}" data-name="call" style="font-size: 26rpx;" class="iconfont icon-bodadianhua" />
+                <navigator url="#" data-item="{{item}}" data-name="copy" class="iconfont icon-a-yingxiaowuliaofuzhi" />
+                <navigator url="#" data-item="{{item}}" wx:if="{{disabled}}" data-name="edit" class="iconfont icon-bianji" />
+                <navigator url="#" data-item="{{item}}" wx:if="{{disabled}}" data-name="delete" class="iconfont icon-shanchu" />
+            </view>
+        </view>
     </view>
-  </view>
 </van-radio-group>
 <My_empty wx:if="{{list.length==0}}" />

+ 3 - 1
packageA/setclient/modules/offers/index.js

@@ -1,6 +1,8 @@
 const _Http = getApp().globalData.http;
 Component({
-    properties: {},
+    properties: {
+        disabled: Boolean
+    },
     data: {
         list: [],
         sys_enterpriseid: "",

+ 2 - 2
packageA/setclient/modules/offers/index.wxml

@@ -6,9 +6,9 @@
         <!-- <navigator url="#" class="but" bindtap="toSearch">
             <van-icon name="search" />
         </navigator> -->
-        <navigator url="#" class="but" bindtap="addOffers">
+        <navigator url="#" wx:if="{{disabled}}" class="but" bindtap="addOffers">
             <van-icon name="plus" />
         </navigator>
     </view>
 </view>
-<list list='{{list}}' />
+<list list='{{list}}' disabled='{{disabled}}' />

+ 49 - 23
pages/tabbar/home/index.js

@@ -34,7 +34,7 @@ Page({
         })
         /* 首页宫格授权查询 */
         if (wx.getStorageSync('userauth').length != 0) {
-            let auth = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['营销工具'], ['通告', '推广素材', '商学院', '提报', '销售线索', '营销物料', '销售目标']),
+            let auth = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['营销工具'], ['通告', '推广素材', '商学院', '提报', '销售线索', '营销物料', '销售目标', '客户管理']),
                 gridList = [],
                 subassembly = [];
             auth.forEach(v => {
@@ -109,6 +109,42 @@ Page({
                             apps: v.apps
                         })
                         break;
+                        /* 二期应用分界线 */
+                    case "客户管理":
+                        v.apps.forEach(value => {
+                            switch (value.name) {
+                                //客户
+                                case "wCustomer":
+                                    if (value.meta.auth.some(r => r.option == 'read')) gridList.push({
+                                        name: "客户",
+                                        path: "/packageA/setclient/index",
+                                        icon: "icon-kehu",
+                                        apps: {}
+                                    })
+                                    getApp().globalData.auth.wCustomer = {
+                                        options: value.meta.auth.map(a => a.option),
+                                        optionnames: value.meta.auth.map(a => a.optionname),
+                                    }
+                                    break;
+                                    //公海客户
+                                case "wPublicCustomer":
+                                    if (value.meta.auth.some(r => r.option == 'read')) gridList.push({
+                                        name: "公海客户",
+                                        path: "/packageA/publicCustomer/index",
+                                        icon: "icon-xiaochengxutongxunlu",
+                                        apps: {}
+                                    })
+                                    getApp().globalData.auth.wPublicCustomer = {
+                                        options: value.meta.auth.map(a => a.option),
+                                        optionnames: value.meta.auth.map(a => a.optionname),
+                                    }
+                                    break;
+                            }
+                        })
+                        break;
+                    default:
+                        console.log(v)
+                        break;
                 };
             });
             if (!['美大'].includes(this.data.site)) {
@@ -119,12 +155,7 @@ Page({
                     apps: {}
                 })
 
-                gridList.push({
-                    name: "客户",
-                    path: "/packageA/setclient/index",
-                    icon: "icon-kehu",
-                    apps: {}
-                })
+
 
                 gridList.push({
                     name: "项目商机",
@@ -146,30 +177,25 @@ Page({
                     apps: {}
                 })
                 gridList.push({
-                        name: "市场活动",
-                        path: "/packageA/activity/index",
-                        icon: "icon-xiaochengxutongxunlu",
-                        apps: {}
-                    }),
-                    gridList.push({
-                        name: "公海线索",
-                        path: "/packageA/publicClue/index",
-                        icon: "icon-xiaochengxu_xiaoshoumubiao",
-                        apps: {}
-                    })
-                gridList.push({
-                    name: "竞争对手",
-                    path: "/packageA/opponent/index",
+                    name: "市场活动",
+                    path: "/packageA/activity/index",
                     icon: "icon-xiaochengxutongxunlu",
                     apps: {}
                 })
                 gridList.push({
-                    name: "公海客户",
-                    path: "/packageA/publicCustomer/index",
+                    name: "公海线索",
+                    path: "/packageA/publicClue/index",
+                    icon: "icon-xiaochengxu_xiaoshoumubiao",
+                    apps: {}
+                })
+                gridList.push({
+                    name: "竞争对手",
+                    path: "/packageA/opponent/index",
                     icon: "icon-xiaochengxutongxunlu",
                     apps: {}
                 })
 
+
                 gridList.push({
                     name: "销售预测",
                     path: "/packageA/salesForecasting/index",