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

+ 32 - 18
packageA/project/detail.js

@@ -1,6 +1,10 @@
 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: 1, //tabs 选中项
         sa_projectid: "",
         tabsList: [{
@@ -35,26 +39,8 @@ Page({
             num: 132
         }],
         tabbarList: [{
-            icon: "icon-genjin",
-            label: "提交报备"
-        }, {
-            icon: "icon-genjin",
-            label: "报备审核"
-        }, {
-            icon: "icon-genjin",
-            label: "报备驳回(退回)"
-        }, {
             icon: "icon-genjin",
             label: "跟进"
-        }, {
-            icon: "icon-bianji",
-            label: "编辑"
-        }, {
-            icon: "icon-zhuanyi",
-            label: "更换负责人"
-        }, {
-            icon: "icon-shanchu",
-            label: "作废"
         }],
     },
     onLoad(options) {
@@ -75,7 +61,35 @@ Page({
                 title: res.data,
                 icon: "none"
             });
+
+
+            let isLeader = res.data.leader.some(some => some.userid == wx.getStorageSync('userMsg').userid),
+                tabbarList = this.data.tabbarList;
+
+            if (this.data.isAdmin) tabbarList = [{
+                icon: "icon-genjin",
+                label: "报备审核"
+            }, {
+                icon: "icon-genjin",
+                label: "报备驳回(退回)"
+            }].concat(tabbarList);
+            if (isLeader || this.data.isAdmin) tabbarList = tabbarList.concat([{
+                icon: "icon-bianji",
+                label: "编辑"
+            }, {
+                icon: "icon-genjin",
+                label: "提交报备"
+            }, , {
+                icon: "icon-zhuanyi",
+                label: "更换负责人"
+            }, {
+                icon: "icon-shanchu",
+                label: "作废"
+            }])
+
             this.setData({
+                isLeader,
+                tabbarList,
                 detail: res.data,
                 briefs: [{
                     label: "项目编号",

+ 12 - 8
packageA/project/detail.wxml

@@ -6,24 +6,28 @@
 <Yl_Detail list="{{briefs}}">
     <view slot='bottom'>
         <Yl-group id='Group' add ownertable='sa_project' ownerid='{{detail.sa_projectid}}' />
-        <TaskTabs id='TaskTabs' sa_projectid='{{detail.sa_projectid}}' sa_projstagetempid='{{detail.sa_projstagetempid}}' bindchangeCallBack="taskTabsChange" />
+        <TaskTabs id='TaskTabs' disabled='{{isAdmin||isLeader}}' sa_projectid='{{detail.sa_projectid}}' sa_projstagetempid='{{detail.sa_projstagetempid}}' bindchangeCallBack="taskTabsChange" />
     </view>
 </Yl_Detail>
 <view style="height: 20rpx;" />
 
 <Yl_FunTabs list='{{tabsList}}' active='{{tabsActive}}' bind:onChenge="tabsChange">
     <Preview slot='详细信息' list1='{{list1}}' list2='{{list2}}' />
-    <Task slot='项目评估' id='Task' />
     <Trace slot='跟进动态' id='Trace' ownertable='sa_project' ownerid='{{detail.sa_projectid}}' />
-    <Opponent slot='竞争对手' id='Opponent' />
-    <Treaty slot='关联客户' id='Treaty' />
-    <Offers slot='报价单' id='Offers' />
-    <Product slot='产品配置单' id='Product' />
-    <Contacts slot='联系人' id='Contacts' />
+
+    <Task slot='项目评估' id='Task' disabled="{{per.query(options,'assess')||isAdmin||isLeader}}" />
+    <Treaty slot='关联客户' disabled="{{per.query(options,'client')||isAdmin||isLeader}}" id='Treaty' />
+    <Product slot='产品配置单' disabled="{{per.query(options,'product')||isAdmin||isLeader}}" id='Product' />
+    <Contacts slot='联系人' disabled="{{per.query(options,'contacts')||isAdmin||isLeader}}" id='Contacts' />
+    <Opponent slot='竞争对手' id='Opponent' disabled="{{per.query(options,'opposites')||isAdmin||isLeader}}" />
+    <Offers slot='报价单' disabled="{{per.query(options,'offer')||isAdmin||isLeader}}" id='Offers' />
+
     <Record slot='操作记录' id="Record" ownertable='sa_project' ownerid='{{detail.sa_projectid}}' />
     <Files slot='附件' id="Files" ownertable='sa_project' ownerid='{{detail.sa_projectid}}' />
     <view style="height: 140rpx;" />
 </Yl_FunTabs>
 
 <!-- 底部 -->
-<Yl_Tabbar list='{{tabbarList}}' bind:callback="tabbarOnClick" />
+<Yl_Tabbar list='{{tabbarList}}' bind:callback="tabbarOnClick" />
+
+<wxs src='../../utils/wxmlQueryPer.wxs' module="per" />

+ 1 - 0
packageA/project/index.js

@@ -3,6 +3,7 @@ const _Http = getApp().globalData.http,
 
 Page({
     data: {
+        insert: getApp().globalData.auth.wproject.options.some(v => v == 'insert'), //查询新增权限
         listHeight: null,
         navList: [{
             label: "全部",

+ 1 - 2
packageA/project/index.wxml

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

+ 2 - 1
packageA/project/modules/contacts/index.js

@@ -1,7 +1,8 @@
 const _Http = getApp().globalData.http;
 Component({
     properties: {
-        sa_projectid: String
+        sa_projectid: String,
+        disabled: Boolean
     },
     data: {
         "content": {

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

@@ -4,9 +4,9 @@
         <navigator url="/packageA/project/modules/contacts/search/index?sa_projectid={{sa_projectid}}" class="but" bindtap="toSearch">
             <van-icon name="search" />
         </navigator>
-        <navigator url="#" class="but" bindtap="addContacts">
+        <navigator wx:if="{{disabled}}" url="#" class="but" bindtap="addContacts">
             <van-icon name="plus" />
         </navigator>
     </view>
 </view>
-<List list='{{list}}' bindchangeTotal="changeTotal" />
+<List list='{{list}}' disabled="{{disabled}}" bindchangeTotal="changeTotal" />

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

@@ -5,7 +5,8 @@ Component({
     },
     properties: {
         list: Array,
-        changeTotal: Function
+        changeTotal: Function,
+        disabled:Boolean
     },
     data: {
         range: ['高层', '中层', '项目负责人']

+ 3 - 3
packageA/project/modules/contacts/list/index.wxml

@@ -17,13 +17,13 @@
         <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="change">
+            <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="change">
                 <picker bindchange="bindPickerChange" value="{{handle.getValue(item.tag[0],range)}}" data-item="{{item}}" range="{{range}}">
                     <text class="iconfont icon-dibu-biangengchengjiaozhuangtai" />
                 </picker>
             </navigator>
-            <navigator url="#" data-item="{{item}}" data-name="delete" class="iconfont icon-shanchu" />
+            <navigator url="#" data-item="{{item}}" wx:if="{{disabled}}" data-name="delete" class="iconfont icon-shanchu" />
         </view>
     </view>
 </view>

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

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

+ 1 - 1
packageA/project/modules/offers/index.wxml

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

+ 3 - 1
packageA/project/modules/opponent/index.js

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

+ 1 - 1
packageA/project/modules/opponent/index.wxml

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

+ 3 - 0
packageA/project/modules/product/index.js

@@ -3,6 +3,9 @@ const _Http = getApp().globalData.http,
 let queue = [],
     downCounter = null;
 Component({
+    properties: {
+        disabled: Boolean
+    },
     data: {
         sa_projectid: 0,
         "content": {

+ 3 - 3
packageA/project/modules/product/index.wxml

@@ -1,12 +1,12 @@
 <view class="head">
     <view class="count">产品清单</view>
     <view class="expand">
-      <!--   <navigator url="#" class="but">
+        <!--   <navigator url="#" class="but">
             <van-icon name="search" />
         </navigator> -->
-        <navigator url="#" class="but" bindtap="addProduct">
+        <navigator url="#" wx:if="{{disabled}}" class="but" bindtap="addProduct">
             <van-icon name="plus" />
         </navigator>
     </view>
 </view>
-<List list='{{list}}' bind:deleteItem='deleteItems' bindchangeQueue='changeQueue' />
+<List list='{{list}}' disabled='{{disabled}}' bind:deleteItem='deleteItems' bindchangeQueue='changeQueue' />

+ 1 - 0
packageA/project/modules/product/list/index.js

@@ -3,6 +3,7 @@ Component({
         list: Array,
         deleteItem: Function,
         changeQueue: Function, //修改队列
+        disabled: Boolean
     },
     options: {
         addGlobalClass: true

+ 2 - 2
packageA/project/modules/product/list/index.wxml

@@ -26,11 +26,11 @@
                     <text class="line-1" style="margin-right: 6rpx;">牌价:{{item.marketprice||' --'}}</text>
                     <view style="display: flex;">
                         数量({{item.unitname}}):
-                        <van-stepper value="{{ item.qty }}" integer min='1' input-width="80rpx" button-size="40rpx" data-item="{{item}}" data-index='{{index}}' catch:change="onStepper" />
+                        <van-stepper disabled='{{!disabled}}' value="{{ item.qty }}" integer min='1' input-width="80rpx" button-size="40rpx" data-item="{{item}}" data-index='{{index}}' catch:change="onStepper" />
                     </view>
                 </view>
             </view>
-            <view class="delete" data-item="{{item}}" catchtap="deleteProduct">
+            <view class="delete" wx:if="{{disabled}}" data-item="{{item}}" catchtap="deleteProduct">
                 <text class="iconfont icon-guanlian-shanchu" />
             </view>
         </view>

+ 3 - 1
packageA/project/modules/task/index.js

@@ -1,6 +1,8 @@
 const _Http = getApp().globalData.http;
 Component({
-    properties: {},
+    properties: {
+        disabled: Boolean
+    },
     data: {
         sa_projectid: null,
         "content": {

+ 1 - 1
packageA/project/modules/task/index.wxml

@@ -10,4 +10,4 @@
     </view>
 </view>
 
-<List list="{{list}}" id="List" />
+<List list="{{list}}" disabled="{{disabled}}" id="List" />

+ 3 - 1
packageA/project/modules/task/list/index.js

@@ -1,7 +1,8 @@
 const _Http = getApp().globalData.http;
 Component({
     properties: {
-        list: Array
+        list: Array,
+        disabled: Boolean
     },
     data: {
         viewIndex: null
@@ -11,6 +12,7 @@ Component({
     },
     methods: {
         selectClient(e) {
+            if (!this.data.disabled) return;
             const {
                 item
             } = e.currentTarget.dataset,

+ 6 - 2
packageA/project/modules/task/tabs/index.js

@@ -6,7 +6,8 @@ Component({
     properties: {
         sa_projectid: String,
         sa_projstagetempid: String,
-        changeCallBack: Function
+        changeCallBack: Function,
+        disabled: Boolean
     },
     data: {
         active: null, //现在阶段
@@ -40,10 +41,13 @@ Component({
         },
         /* 切换阶段 */
         changeViewItem(e) {
+            if (!this.data.disabled) return wx.showToast({
+                title: '暂无权限更改阶段',
+                icon: "none"
+            })
             const {
                 index
             } = e.currentTarget.dataset;
-            console.log(index)
             let {
                 stagename,
                 sa_projectid,

+ 1 - 1
packageA/project/modules/treaty/index.js

@@ -2,7 +2,7 @@ const _Http = getApp().globalData.http;
 
 Component({
     properties: {
-
+        disabled: Boolean
     },
     data: {
         "sa_projectid": null,

+ 2 - 2
packageA/project/modules/treaty/index.wxml

@@ -1,9 +1,9 @@
 <view class="head">
     <view class="count">总共{{content.total}}个</view>
     <view class="expand">
-        <navigator url="/packageA/project/modules/treaty/add/index?sa_projectid={{sa_projectid}}" class="but">
+        <navigator wx:if="{{disabled}}" url="/packageA/project/modules/treaty/add/index?sa_projectid={{sa_projectid}}" class="but">
             <van-icon name="plus" />
         </navigator>
     </view>
 </view>
-<List list='{{list}}' bindfastCallBack='fastCallBack' />
+<List list='{{list}}' disabled='{{disabled}}' bindfastCallBack='fastCallBack' />

+ 2 - 1
packageA/project/modules/treaty/list/index.js

@@ -2,7 +2,8 @@ const _Http = getApp().globalData.http;
 Component({
     properties: {
         list: Array,
-        fastCallBack: Function
+        fastCallBack: Function,
+        disabled: Boolean
     },
     options: {
         addGlobalClass: true

+ 1 - 1
packageA/project/modules/treaty/list/index.wxml

@@ -14,7 +14,7 @@
             <van-icon name="arrow" />
         </view>
     </navigator>
-    <view class="bottom">
+    <view class="bottom" wx:if="{{disabled}}">
         <!-- 更换类型 -->
         <picker bindchange="bindPickerChange" value="{{handle.getValue(item.type,range)}}" data-item="{{item}}" range="{{range}}">
             <navigator url="#">