Kaynağa Gözat

feat:权限需求更改

zhangxin 1 ay önce
ebeveyn
işleme
daa8d5080d

+ 18 - 11
pages/wareHouse/components/detail.vue

@@ -97,7 +97,7 @@
97 97
         <!-- 财务与价格区域 -->
98 98
         <view class="finance_price">
99 99
             <view class="section_title">财务与价格</view>
100
-            <view class="price_group">
100
+            <view class="price_group" v-if="isWareHouser">
101 101
                 <view class="price_item">
102 102
                     <view class="price_label">总成本价</view>
103 103
                     <view class="price_value original"
@@ -127,6 +127,17 @@
127 127
                     </view>
128 128
                 </view>
129 129
                 <view class="price_item">
130
+                    <view class="price_label">官方指导价</view>
131
+                    <view class="price_value original" @click.stop="toggleEditField('price', coreInfo.price)">
132
+                        <u-input v-if="editMode.price" v-model="tempValues.price" :autoFocus="true"
133
+                            @blur="!globalEditMode && saveEditField('price', tempValues.price, 'price')" />
134
+                        <span v-else>¥{{ coreInfo.price || '-' }}</span>
135
+                    </view>
136
+                </view>
137
+                
138
+            </view>
139
+            <view class="price_group" v-if="isWareHouser">
140
+                <view class="price_item">
130 141
                     <view class="price_label">销售价格</view>
131 142
                     <view class="price_value suggested"
132 143
                         @click.stop="toggleEditField('salePrice', coreInfo.salePrice)">
@@ -135,16 +146,6 @@
135 146
                         <span v-else>¥{{ coreInfo.salePrice || '-' }}</span>
136 147
                     </view>
137 148
                 </view>
138
-            </view>
139
-            <view class="price_group">
140
-                <view class="price_item">
141
-                    <view class="price_label">官方指导价</view>
142
-                    <view class="price_value original" @click.stop="toggleEditField('price', coreInfo.price)">
143
-                        <u-input v-if="editMode.price" v-model="tempValues.price" :autoFocus="true"
144
-                            @blur="!globalEditMode && saveEditField('price', tempValues.price, 'price')" />
145
-                        <span v-else>¥{{ coreInfo.price || '-' }}</span>
146
-                    </view>
147
-                </view>
148 149
                 <view class="price_item"></view>
149 150
             </view>
150 151
         </view>
@@ -226,6 +227,7 @@
226 227
 import BrandList from '@/components/brand-list/index.vue'
227 228
 import personPicker from '@/components/person-picker/index.vue'
228 229
 import imgsRowScroll from '@/components/imgs-row-scroll/index.vue'
230
+import { permissionCheck } from '@/utils/util.js'
229 231
 export default {
230 232
     components: {
231 233
         BrandList,
@@ -260,6 +262,7 @@ export default {
260 262
             downStatus: '',//下架状态 0:已下架 1:已上架
261 263
             showEditImgsModal: false,
262 264
             tempImgsUrl: [],
265
+            isWareHouser: permissionCheck('WAREHOUSER',false),
263 266
         }
264 267
     },
265 268
     onLoad(options) {
@@ -357,6 +360,7 @@ export default {
357 360
         },
358 361
         // 显示品牌列表
359 362
         showBrandlList() {
363
+            if(!permissionCheck('WAREHOUSER')) return false
360 364
             this.$refs.brandListRef.showBrandList();
361 365
         },
362 366
         // 处理选中品牌
@@ -457,6 +461,7 @@ export default {
457 461
         },
458 462
         // 切换单个字段的编辑状态
459 463
         toggleEditField(field, value) {
464
+            if(!permissionCheck('WAREHOUSER')) return false
460 465
             // 如果不是全局编辑模式
461 466
             if (!this.globalEditMode) {
462 467
                 // 重置所有编辑状态
@@ -477,6 +482,7 @@ export default {
477 482
         },
478 483
         // 进入全局编辑模式
479 484
         enterGlobalEdit() {
485
+            if(!permissionCheck('WAREHOUSER')) return false
480 486
             this.globalEditMode = true;
481 487
             // 设置所有可编辑字段为编辑状态
482 488
             this.editMode = {
@@ -624,6 +630,7 @@ export default {
624 630
             })
625 631
         },
626 632
         handleEditImgs() {
633
+            if(!permissionCheck('WAREHOUSER')) return false
627 634
             this.showEditImgsModal = true;
628 635
             this.tempImgsUrl = this.imgsUrl
629 636
         },

+ 6 - 4
pages/wareHouse/components/edit.vue

@@ -125,16 +125,16 @@
125 125
                         <u--input v-model="formData.stock" placeholder="请输入" clearable border="none"
126 126
                             type="number"></u--input>
127 127
                     </u-form-item>
128
-                    <u-form-item label="总成本价" class="u-form-item-row" borderBottom>
128
+                    <u-form-item label="总成本价" class="u-form-item-row" borderBottom v-if="isWareHouser">
129 129
                         <u--input v-model="formData.costPrice" placeholder="请输入" clearable border="none"></u--input>
130 130
                     </u-form-item>
131
-                    <u-form-item label="同行价格" class="u-form-item-row" borderBottom>
131
+                    <u-form-item label="同行价格" class="u-form-item-row" borderBottom v-if="isWareHouser">
132 132
                         <u--input v-model="formData.peerPrice" placeholder="请输入" clearable border="none"></u--input>
133 133
                     </u-form-item>
134 134
                     <u-form-item label="代理价格" class="u-form-item-row" borderBottom>
135 135
                         <u--input v-model="formData.agentPrice" placeholder="请输入" clearable border="none"></u--input>
136 136
                     </u-form-item>
137
-                    <u-form-item label="销售价格" class="u-form-item-row" borderBottom>
137
+                    <u-form-item label="销售价格" class="u-form-item-row" borderBottom v-if="isWareHouser">
138 138
                         <u--input v-model="formData.salePrice" placeholder="请输入" clearable border="none"></u--input>
139 139
                     </u-form-item>
140 140
                     <u-form-item label="商品位置" class="u-form-item-row" borderBottom>
@@ -265,7 +265,7 @@ import Cell from '@/components/custom-cell/index.vue'
265 265
 import BrandList from '@/components/brand-list/index.vue'
266 266
 import ImgsRowScroll from '@/components/imgs-row-scroll/index.vue'
267 267
 import PersonPicker from '@/components/person-picker/index.vue'
268
-
268
+import { permissionCheck } from '@/utils/util.js'
269 269
 export default {
270 270
     components: {
271 271
         TabSelect,
@@ -477,6 +477,7 @@ export default {
477 477
             echoInfoProductAttribute:'',//入库回显的时候 商品属性回显
478 478
             echoInfoProductCondition:'',//入库回显的时候 商品成色回显
479 479
             echoInfoStockStatus:'',//入库回显的时候 是否入库回显
480
+            isWareHouser: permissionCheck('WAREHOUSER',false),
480 481
         }
481 482
     },
482 483
     onLoad(options) {
@@ -513,6 +514,7 @@ export default {
513 514
         },
514 515
         // 提交表单
515 516
         submitForm(submitType) {
517
+            if(!permissionCheck('WAREHOUSER')) return false
516 518
             this.$refs.addForm.validate().then((valid) => {
517 519
                 if (valid) {
518 520
                     if (this.formData.title == '') {

+ 5 - 3
pages/wareHouse/index.vue

@@ -71,7 +71,7 @@
71 71
 						<text class="goods-name">{{ goods.model || '' }}</text>
72 72
 
73 73
 						<view class="price-group">
74
-							<view class="price-items">
74
+							<view class="price-items" v-if="isWareHouseRole">
75 75
 								<view class="price-item">
76 76
 									<text class="price-type">成本价</text>
77 77
 									<text class="price">¥{{ priceVisible ? goods.costPrice || '-' : '****' }}</text>
@@ -82,7 +82,7 @@
82 82
 								</view>
83 83
 							</view>
84 84
 							<view class="price-items">
85
-								<view class="price-item">
85
+								<view class="price-item" v-if="isWareHouseRole">
86 86
 									<text class="price-type">同行价</text>
87 87
 									<text class="price">¥{{ priceVisible ? goods.peerPrice || '-' : '****' }}</text>
88 88
 								</view>
@@ -118,6 +118,7 @@
118 118
 <script>
119 119
 	import searchFilter from './components/searchFilter.vue'
120 120
 	import moreInfo from './components/moreInfo.vue'
121
+	import { permissionCheck } from '../../utils/util.js'
121 122
 export default {
122 123
 	components: {
123 124
 		searchFilter,
@@ -190,7 +191,8 @@ export default {
190 191
 			searchPopShow:false,
191 192
 			total:0,
192 193
 			moreOptions:{},
193
-			moreOptionsShow:false,	
194
+			moreOptionsShow:false,
195
+			isWareHouseRole:permissionCheck('WAREHOUSER',false),
194 196
 		};
195 197
 	},
196 198
 	onLoad() {

+ 2 - 2
pages/wareHouse/styles/index.scss

@@ -351,9 +351,9 @@
351 351
     .more{
352 352
       display: flex;
353 353
       flex-direction: column;
354
-      height: 100%;
354
+      height: auto;
355 355
       align-items: flex-end;
356
-      gap: 240rpx;
356
+      gap: 20rpx;
357 357
       .goods-stock {
358 358
         font-size: 24rpx;
359 359
         color: #666666;

+ 2 - 2
store/modules/user.js

@@ -28,8 +28,8 @@ export default {
28 28
 		netConfig: {
29 29
 			// http://59.42.9.166:9520/proxy
30 30
 			// http://10.0.7.100:9500
31
-			ip: "https://crm.nanjingshiyu.com/prod-api", // ip
32
-			// ip: "https://crmtest.nanjingshiyu.com/prod-api", // 测试环境ip
31
+			// ip: "https://crm.nanjingshiyu.com/prod-api", // ip
32
+			ip: "https://crmtest.nanjingshiyu.com/prod-api", // 测试环境ip
33 33
 			// ip : "/api", // 测试环境ip
34 34
 			// ip : "http://47.113.184.101", // 测试环境ip
35 35
 			// ip: "http://172.16.7.200", // ip

+ 11 - 0
utils/util.js

@@ -1,5 +1,6 @@
1 1
 import Map from '@/js_sdk/fx-openMap/openMap.js'
2 2
 import permision from "@/js_sdk/wa-permission/permission.js"
3
+import store from "../store/index.js";
3 4
 export function mapRoutePlan(data) {
4 5
 	//既有起点也有终点
5 6
 	var options = {
@@ -396,4 +397,14 @@ export function handleTree(data, id, parentId, children, rootId) {
396 397
 		return father[parentId] === rootId;
397 398
 	});
398 399
 	return treeData != '' ? treeData : data;
400
+}
401
+
402
+export function getRoles() {
403
+    return store.state.user.userInfo.roles.map(item=>item.roleKey);
404
+}
405
+export function permissionCheck(roleKey,isShowToast = true) {
406
+    if(!getRoles().includes(roleKey)){
407
+        if(isShowToast) uni.$u.toast('无权限');
408
+        return false
409
+    }
399 410
 }