zhangxin před 1 týdnem
rodič
revize
82ef7fe444

+ 51 - 52
pages/wareHouse/components/edit.vue

@@ -26,7 +26,7 @@
26 26
                                 @click="handlePasteRecognition(recognitionContent)"></u-button>
27 27
                         </view>
28 28
                     </u-form-item>
29
-                    <u-form-item :label="'商品图片('+formData.goodPicFileList.length+'张)'" required prop="goodPicFileList" borderBottom>
29
+                    <u-form-item v-if="getWarehouseFieldPermissions('goodPicFileList','read')" :label="'商品图片('+formData.goodPicFileList.length+'张)'" required prop="goodPicFileList" borderBottom>
30 30
                         <view class="imgs_scroll">
31 31
                             <DragUpload ref="dragUpload" :images="formData.goodPicFileList" :isDelete="true" :isPreview="true" @imagesChanged="goodPicFileListImagesChanged" @uploadComplete="goodPicFileListUploadComplete"></DragUpload>
32 32
                             <!-- <ImgsRowScroll  v-if="formData.goodPicFileList.length > 0" :isShowDeleteIcon="true"
@@ -37,52 +37,52 @@
37 37
                                 :previewFullImage="true"></u-upload> -->
38 38
                         </view>
39 39
                     </u-form-item>
40
-                    <u-form-item label="商品描述(详细的描述让用户更好的了解您的产品)" required prop="desc" borderBottom>
40
+                    <u-form-item v-if="getWarehouseFieldPermissions('desc','read')" label="商品描述(详细的描述让用户更好的了解您的产品)" required prop="desc" borderBottom>
41 41
                         <u--textarea v-model="formData.desc" clearable count autoHeight maxlength="250" :height="150" confirmType="done"></u--textarea>
42 42
                     </u-form-item>
43
-                    <u-form-item label="来源" prop="origin" borderBottom>
43
+                    <u-form-item v-if="getWarehouseFieldPermissions('origin','read')" label="来源" prop="origin" borderBottom>
44 44
                         <u--textarea v-model="formData.origin" clearable placeholder="请输入来源" count autoHeight maxlength="250" height="100" confirmType="done"></u--textarea>
45 45
                     </u-form-item>
46
-                    <u-form-item label="商品分类" required prop="type" borderBottom>
46
+                    <u-form-item v-if="getWarehouseFieldPermissions('type','read')" label="商品分类" required prop="type" borderBottom>
47 47
                         <TabSelect :tabList="typeList" :isClear="typeIsClear" @tabChange="handleTabChangeType"
48 48
                             labelKey="dictLabel" valueKey="dictValue" :colNum="4" mode="single" :echoInfo="echoInfoType">
49 49
                         </TabSelect>
50 50
                     </u-form-item>
51
-                    <u-form-item label="品牌" required prop="dictLabel" class="u-form-item-row" borderBottom
51
+                    <u-form-item v-if="getWarehouseFieldPermissions('dictLabel','read')" label="品牌" required prop="dictLabel" class="u-form-item-row" borderBottom
52 52
                         @click="showBrandList">
53 53
                         <Cell :val="formData.dictLabel"></Cell>
54 54
                         <BrandList ref="brandListRef" @selectedBrand="handleSelectedBrand"></BrandList>
55 55
                     </u-form-item>
56
-                    <u-form-item label="系列" class="u-form-item-row" borderBottom>
56
+                    <u-form-item v-if="getWarehouseFieldPermissions('series','read')" label="系列" class="u-form-item-row" borderBottom>
57 57
                         <u--input v-model="formData.series" placeholder="请输入" clearable border="none"></u--input>
58 58
                     </u-form-item>
59
-                    <u-form-item label="型号" required prop="model" class="u-form-item-row" borderBottom>
59
+                    <u-form-item v-if="getWarehouseFieldPermissions('model','read')" label="型号" required prop="model" class="u-form-item-row" borderBottom>
60 60
                         <u--input v-model="formData.model" placeholder="请输入" clearable border="none"></u--input>
61 61
                     </u-form-item>
62
-                    <u-form-item label="机芯类型" class="u-form-item-row" borderBottom>
62
+                    <u-form-item v-if="getWarehouseFieldPermissions('dialType','read')" label="机芯类型" class="u-form-item-row" borderBottom>
63 63
                         <u--input v-model="formData.dialType" placeholder="请输入" clearable border="none"></u--input>
64 64
                     </u-form-item>
65
-                    <u-form-item label="表壳材质" class="u-form-item-row" borderBottom>
65
+                    <u-form-item v-if="getWarehouseFieldPermissions('caseMaterial','read')" label="表壳材质" class="u-form-item-row" borderBottom>
66 66
                         <u--input v-model="formData.caseMaterial" placeholder="请输入" clearable border="none"></u--input>
67 67
                     </u-form-item>
68
-                    <u-form-item label="表盘直径" class="u-form-item-row" borderBottom>
68
+                    <u-form-item v-if="getWarehouseFieldPermissions('dialDiameter','read')" label="表盘直径" class="u-form-item-row" borderBottom>
69 69
                         <u--input v-model="formData.dialDiameter" placeholder="请输入" clearable border="none"></u--input>
70 70
                     </u-form-item>
71
-                    <u-form-item label="材质" class="u-form-item-row" borderBottom>
71
+                    <u-form-item v-if="getWarehouseFieldPermissions('material','read')" label="材质" class="u-form-item-row" borderBottom>
72 72
                         <u--input v-model="formData.material" placeholder="请输入" clearable border="none"></u--input>
73 73
                     </u-form-item>
74
-                    <u-form-item label="尺寸" class="u-form-item-row" borderBottom>
74
+                    <u-form-item v-if="getWarehouseFieldPermissions('size','read')" label="尺寸" class="u-form-item-row" borderBottom>
75 75
                         <u--input v-model="formData.size" placeholder="请输入" clearable border="none"></u--input>
76 76
                     </u-form-item>
77
-                    <u-form-item label="尺码" class="u-form-item-row" borderBottom>
77
+                    <u-form-item v-if="getWarehouseFieldPermissions('yardage','read')" label="尺码" class="u-form-item-row" borderBottom>
78 78
                         <u--input v-model="formData.yardage" placeholder="请输入" clearable border="none"></u--input>
79 79
                     </u-form-item>
80
-                    <u-form-item label="商品成色" required prop="productCondition" borderBottom>
80
+                    <u-form-item v-if="getWarehouseFieldPermissions('productCondition','read')" label="商品成色" required prop="productCondition" borderBottom>
81 81
                         <TabSelect :tabList="productConditionList" :isClear="productConditionIsClear"
82 82
                             @tabChange="handleTabChangeProductCondition" :colNum="2" mode="single" :echoInfo="echoInfoProductCondition">
83 83
                         </TabSelect>
84 84
                     </u-form-item>
85
-                    <u-form-item :label="'细节图(' + (formData.detailPicFileList.length || 0) + '张)'" borderBottom>
85
+                    <u-form-item v-if="getWarehouseFieldPermissions('detailPicFileList','read')" :label="'细节图(' + (formData.detailPicFileList.length || 0) + '张)'" borderBottom>
86 86
                         <!-- <view class="detail_pic_container"> -->
87 87
                         <!-- <view>
88 88
                                 <text class="tip">视频:</text>
@@ -105,86 +105,84 @@
105 105
                         <!-- </view> -->
106 106
                         <!-- </view> -->
107 107
                     </u-form-item>
108
-                    <u-form-item label="商品标题" borderBottom>
108
+                    <u-form-item v-if="getWarehouseFieldPermissions('title','read')" label="商品标题" borderBottom>
109 109
                         <u--textarea v-model="formData.title" clearable :placeholder="titlePlaceholder" count autoHeight
110 110
                             maxlength="50" height="100" confirmType="done"></u--textarea>
111 111
                     </u-form-item>
112
-                    <u-form-item label="商品货号" class="u-form-item-row" borderBottom>
112
+                    <u-form-item v-if="getWarehouseFieldPermissions('productNo','read')" label="商品货号" class="u-form-item-row" borderBottom>
113 113
                         <u--input v-model="formData.productNo" placeholder="请输入" clearable border="none"></u--input>
114 114
                     </u-form-item>
115
-                    <u-form-item label="商品属性" required prop="productAttribute" borderBottom>
115
+                    <u-form-item v-if="getWarehouseFieldPermissions('productAttribute','read')" label="商品属性" required prop="productAttribute" borderBottom>
116 116
                         <TabSelect :tabList="productAttributeList" :colNum="4" mode="single"
117 117
                             :isClear="productAttributeIsClear" @tabChange="handleTabChangeProductAttribute"
118 118
                             :echoInfo="echoInfoProductAttribute">
119 119
                         </TabSelect>
120 120
                     </u-form-item>
121
-                    <u-form-item label="库存数量" required prop="stock" class="u-form-item-row" borderBottom>
121
+                    <u-form-item v-if="getWarehouseFieldPermissions('stock','read')" label="库存数量" required prop="stock" class="u-form-item-row" borderBottom>
122 122
                         <u--input v-model="formData.stock" placeholder="请输入" clearable border="none"
123 123
                             type="number"></u--input>
124 124
                     </u-form-item>
125
-                    <u-form-item label="官方指导价" required prop="price" class="u-form-item-row" borderBottom>
125
+                    <u-form-item v-if="getWarehouseFieldPermissions('price','read')" label="官方指导价" required prop="price" class="u-form-item-row" borderBottom>
126 126
                         <u--input v-model="formData.price" placeholder="请输入" clearable border="none"></u--input>
127 127
                     </u-form-item>
128
-                    <u-form-item label="总成本价" class="u-form-item-row" borderBottom v-if="isWareHouser">
128
+                    <u-form-item v-if="getWarehouseFieldPermissions('costPrice','read')" label="总成本价" class="u-form-item-row" borderBottom>
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 v-if="isWareHouser">
131
+                    <u-form-item v-if="getWarehouseFieldPermissions('peerPrice','read')" label="同行价格" class="u-form-item-row" borderBottom>
132 132
                         <u--input v-model="formData.peerPrice" placeholder="请输入" clearable border="none"></u--input>
133 133
                     </u-form-item>
134
-                    <u-form-item label="实价" class="u-form-item-row" borderBottom>
134
+                    <u-form-item v-if="getWarehouseFieldPermissions('actualPrice','read')" label="实价" class="u-form-item-row" borderBottom>
135 135
                         <u--input v-model="formData.actualPrice" placeholder="请输入" clearable border="none" type="number" @blur="handleBlurActualPrice"></u--input>
136 136
                     </u-form-item>
137
-                    <u-form-item label="代理价格" class="u-form-item-row" borderBottom>
137
+                    <u-form-item v-if="getWarehouseFieldPermissions('agentPrice','read')" label="代理价格" class="u-form-item-row" borderBottom>
138 138
                         <u--input v-model="formData.agentPrice" placeholder="请输入" clearable border="none"></u--input>
139 139
                     </u-form-item>
140
-                    <u-form-item label="销售价格" class="u-form-item-row" borderBottom v-if="isWareHouser">
140
+                    <u-form-item v-if="getWarehouseFieldPermissions('salePrice','read')" label="销售价格" class="u-form-item-row" borderBottom>
141 141
                         <u--input v-model="formData.salePrice" placeholder="请输入" clearable border="none"></u--input>
142 142
                     </u-form-item>
143
-                    <u-form-item label="商品位置" class="u-form-item-row" borderBottom>
143
+                    <u-form-item v-if="getWarehouseFieldPermissions('productPosition','read')" label="商品位置" class="u-form-item-row" borderBottom>
144 144
                         <u--input v-model="formData.productPosition" placeholder="请输入" clearable
145 145
                             border="none"></u--input>
146 146
                     </u-form-item>
147
-                    <u-form-item label="手表年份" class="u-form-item-row" borderBottom>
147
+                    <u-form-item v-if="getWarehouseFieldPermissions('watchYear','read')" label="手表年份" class="u-form-item-row" borderBottom>
148 148
                         <u--input v-model="formData.watchYear" placeholder="请输入" clearable border="none"></u--input>
149 149
                     </u-form-item>
150
-                    <u-form-item label="鉴定人员" class="u-form-item-row" borderBottom @click="identifyingPersonClick">
150
+                    <u-form-item v-if="getWarehouseFieldPermissions('identifyingPerson','read')" label="鉴定人员" class="u-form-item-row" borderBottom @click="identifyingPersonClick">
151 151
                         <Cell :val="formData.identifyingPerson" :isDelete="true"
152 152
                             @handleClear="clear('identifyingPerson')"></Cell>
153 153
                         <PersonPicker ref="identifyingPersonPickerRef" title="请选择鉴定人员"
154 154
                             @selectPerson="handleSelectIdentifyingPerson"></PersonPicker>
155 155
                     </u-form-item>
156
-                    <u-form-item label="是否入库" borderBottom required prop="stockStatus">
156
+                    <u-form-item v-if="getWarehouseFieldPermissions('stockStatus','read')" label="是否入库" borderBottom required prop="stockStatus">
157 157
                         <TabSelect :tabList="stockStatusList" :colNum="2" mode="single" :isClear="stockStatusIsClear" :echoInfo="echoInfoStockStatus"
158 158
                             @tabChange="handleTabChangeStockStatus"></TabSelect>
159 159
                     </u-form-item>
160
-                    <u-form-item label="回收类型" borderBottom>
160
+                    <u-form-item v-if="getWarehouseFieldPermissions('recycleType','read')" label="回收类型" borderBottom>
161 161
                         <TabSelect :tabList="recycleTypeList" :colNum="4" mode="single" :isClear="recycleTypeIsClear" :echoInfo="echoInfoRecycleType"
162 162
                             @tabChange="handleTabChangeRecycleType">
163 163
                         </TabSelect>
164 164
                     </u-form-item>
165
-                    <u-form-item label="回收情况" borderBottom>
165
+                    <u-form-item v-if="getWarehouseFieldPermissions('recycleSituation','read')" label="回收情况" borderBottom>
166 166
                         <TabSelect :tabList="recycleSituationList" :colNum="5" mode="single" :isClear="recycleSituationIsClear" :echoInfo="echoInfoRecycleSituation"
167 167
                             @tabChange="handleTabChangeRecycleSituation">
168 168
                         </TabSelect>
169 169
                     </u-form-item>
170
-                    <u-form-item label="标签" borderBottom>
170
+                    <u-form-item v-if="getWarehouseFieldPermissions('label','read')" label="标签" borderBottom>
171 171
                         <TabSelect :tabList="labelList" :colNum="5" mode="single" :isClear="labelIsClear" :echoInfo="echoInfoLabel"
172 172
                             @tabChange="handleTabChangeLabel">
173 173
                         </TabSelect>
174 174
                     </u-form-item>
175
-                    <u-form-item label="回收人员" class="u-form-item-row" borderBottom @click="recyclePersonClick">
175
+                    <u-form-item v-if="getWarehouseFieldPermissions('recyclePerson','read')" label="回收人员" class="u-form-item-row" borderBottom @click="recyclePersonClick">
176 176
                         <!-- <u--input v-model="formData.recyclePerson" disabledColor="#fff" disabled clearable
177 177
                             border="none"></u--input> -->
178
-                        <Cell :val="formData.recyclePerson" :isDelete="true" @handleClear="clear('recyclePerson')">
179
-                        </Cell>
180
-                        <PersonPicker ref="recyclePersonPickerRef" title="请选择回收人员"
181
-                            @selectPerson="handleSelectRecyclePerson"></PersonPicker>
178
+                        <Cell :val="formData.recyclePerson" :isDelete="true" @handleClear="clear('recyclePerson')"></Cell>
179
+                        <PersonPicker ref="recyclePersonPickerRef" title="请选择回收人员" @selectPerson="handleSelectRecyclePerson"></PersonPicker>
182 180
                     </u-form-item>
183 181
                     <u-form-item :label="'回收留底图(' + (formData.recycleBottomFileList.length || 0) + '张)'" borderBottom>
184 182
                         <view class="recycle_bottom_desc">
185
-                            <u--textarea v-model="formData.recycleBottomDesc" clearable count autoHeight maxlength="250"
183
+                            <u--textarea v-if="getWarehouseFieldPermissions('recycleBottomDesc','read')" v-model="formData.recycleBottomDesc" clearable count autoHeight maxlength="250"
186 184
                                 height="100" confirmType="done"></u--textarea>
187
-                            <view class="imgs_scroll">
185
+                            <view class="imgs_scroll" v-if="getWarehouseFieldPermissions('recycleBottomFileList','read')">
188 186
                                 <DragUpload ref="dragUpload" :images="formData.recycleBottomFileList" :isDelete="true" :isPreview="true" @imagesChanged="recycleBottomFileListImagesChanged" @uploadComplete="recycleBottomFileListUploadComplete"></DragUpload>
189 187
                                 <!-- <ImgsRowScroll  v-if="formData.recycleBottomFileList.length > 0" :isShowDeleteIcon="true"
190 188
                                     @deleteImgInfo="getDeleteRecycleBottomPicInfo" imgMode="aspectFill"
@@ -195,35 +193,35 @@
195 193
                             </view>
196 194
                         </view>
197 195
                     </u-form-item>
198
-                    <u-form-item label="回收时间" required prop="recycleTime" class="u-form-item-row" borderBottom
196
+                    <u-form-item v-if="getWarehouseFieldPermissions('recycleTime','read')" label="回收时间" required prop="recycleTime" class="u-form-item-row" borderBottom
199 197
                         @click="clickRecycleTimeRow">
200 198
                         <Cell :val="formData.recycleTime"></Cell>
201 199
                         <u-datetime-picker @confirm="confirmRecycleTime" @close="closeRecycleTimePicker"
202 200
                             @cancel="closeRecycleTimePicker" :show="recycleTimeShow" v-model="formData.recycleTime"
203 201
                             mode="date"></u-datetime-picker>
204 202
                     </u-form-item>
205
-                    <u-form-item label="独立编码" class="u-form-item-row" borderBottom>
203
+                    <u-form-item v-if="getWarehouseFieldPermissions('indentifyCode','read')" label="独立编码" class="u-form-item-row" borderBottom>
206 204
                         <u--input v-model="formData.indentifyCode" placeholder="请输入" clearable border="none"></u--input>
207 205
                     </u-form-item>
208
-                    <u-form-item label="适用人群" class="u-form-item-row" borderBottom>
206
+                    <u-form-item v-if="getWarehouseFieldPermissions('targetAudience','read')" label="适用人群" class="u-form-item-row" borderBottom>
209 207
                         <u-radio-group v-model="formData.targetAudience" placement="row">
210 208
                             <u-radio activeColor="#3c9cff" name="general" label="通用"></u-radio>
211 209
                             <u-radio activeColor="#3c9cff" name="man" label="男"></u-radio>
212 210
                             <u-radio activeColor="#3c9cff" name="woman" label="女"></u-radio>
213 211
                         </u-radio-group>
214 212
                     </u-form-item>
215
-                    <u-form-item label="商品保卡" class="u-form-item-row" borderBottom>
213
+                    <u-form-item v-if="getWarehouseFieldPermissions('productCard','read')" label="商品保卡" class="u-form-item-row" borderBottom>
216 214
                         <u-radio-group v-model="formData.productCard" placement="row">
217 215
                             <u-radio activeColor="#3c9cff" name="has" label="有保卡"></u-radio>
218 216
                             <u-radio activeColor="#3c9cff" name="no" label="无保卡"></u-radio>
219 217
                         </u-radio-group>
220 218
                     </u-form-item>
221 219
                     <u-form-item label="保卡年份" class="u-form-item-row" borderBottom
222
-                        v-if="formData.productCard === 'has'">
220
+                        v-if="getWarehouseFieldPermissions('productCard','read') && formData.productCard === 'has'">
223 221
                         <u--input v-model="formData.cardYear" placeholder="不填写默认空白保卡" clearable
224 222
                             border="none"></u--input>
225 223
                     </u-form-item>
226
-                    <u-form-item :label="'保卡图片或独立编码照片留底(' + (formData.productCardPicFileList.length || 0) + '张)'" borderBottom>
224
+                    <u-form-item v-if="getWarehouseFieldPermissions('productCardPicFileList','read')" :label="'保卡图片或独立编码照片留底(' + (formData.productCardPicFileList.length || 0) + '张)'" borderBottom>
227 225
                         <view class="imgs_scroll">
228 226
                             <DragUpload ref="dragUpload" :images="formData.productCardPicFileList" :isDelete="true" :isPreview="true" @imagesChanged="productCardPicFileListImagesChanged" @uploadComplete="productCardPicFileListUploadComplete"></DragUpload>
229 227
                             <!-- <ImgsRowScroll  v-if="formData.productCardPicFileList.length > 0" :isShowDeleteIcon="true"
@@ -234,18 +232,18 @@
234 232
                                 :previewFullImage="true"></u-upload> -->
235 233
                         </view>
236 234
                     </u-form-item>
237
-                    <u-form-item label="商品标签" class="u-form-item-row" borderBottom>
235
+                    <u-form-item v-if="getWarehouseFieldPermissions('productTag','read')" label="商品标签" class="u-form-item-row" borderBottom>
238 236
                         <u--input v-model="formData.productTag" placeholder="请输入" clearable border="none"></u--input>
239 237
                     </u-form-item>
240
-                    <u-form-item label="商品附件" class="u-form-item-row" borderBottom>
238
+                    <u-form-item v-if="getWarehouseFieldPermissions('productAttachment','read')" label="商品附件" class="u-form-item-row" borderBottom>
241 239
                         <u--input v-model="formData.productAttachment" placeholder="请输入" clearable
242 240
                             border="none"></u--input>
243 241
                     </u-form-item>
244
-                    <u-form-item :label="'备注(' + (formData.productDescPicFileList.length || 0) + '张)'" borderBottom>
242
+                    <u-form-item  :label="'备注(' + (formData.productDescPicFileList.length || 0) + '张)'" borderBottom>
245 243
                         <view class="recycle_bottom_desc">
246
-                            <u--textarea v-model="formData.productDesc" clearable count autoHeight maxlength="250"
244
+                            <u--textarea v-if="getWarehouseFieldPermissions('productDesc','read')" v-model="formData.productDesc" clearable count autoHeight maxlength="250"
247 245
                                 height="100" confirmType="done"></u--textarea>
248
-                            <view class="imgs_scroll">
246
+                            <view class="imgs_scroll" v-if="getWarehouseFieldPermissions('productDescPicFileList','read')">
249 247
                                 <DragUpload ref="dragUpload" :images="formData.productDescPicFileList" :isDelete="true" :isPreview="true" @imagesChanged="productDescPicFileListImagesChanged" @uploadComplete="productDescPicFileListUploadComplete"></DragUpload>
250 248
                                 <!-- <ImgsRowScroll  v-if="formData.productDescPicFileList.length > 0"
251 249
                                     :isShowDeleteIcon="true" @deleteImgInfo="getDeleteProductDescPicInfo"
@@ -256,7 +254,7 @@
256 254
                             </view>
257 255
                         </view>
258 256
                     </u-form-item>
259
-                    <u-form-item label="付款方式">
257
+                    <u-form-item v-if="getWarehouseFieldPermissions('payType','read')" label="付款方式" >
260 258
                         <TabSelect :tabList="paymentTabList" :echoInfo="echoInfoPayType" :colNum="4" mode="single"
261 259
                             :isClear="payTypeIsClear" @tabChange="handlePayTypeTabChange">
262 260
                         </TabSelect>
@@ -278,7 +276,7 @@ import BrandList from '@/components/brand-list/index.vue'
278 276
 import ImgsRowScroll from '@/components/imgs-row-scroll/index.vue'
279 277
 import DragUpload from '@/components/drag-upload/index.vue'
280 278
 import PersonPicker from '@/components/person-picker/index.vue'
281
-import { permissionCheck,getRoles } from '@/utils/util.js'
279
+import { permissionCheck,getRoles,getWarehouseFieldPermissions } from '@/utils/util.js'
282 280
 import moreInfo from './moreInfo.vue'
283 281
 import { productConditionList,productAttributeList,stockStatusList,recycleTypeList,labelList,paymentTabList,recycleSituationList } from '../js/public.js'
284 282
 export default {
@@ -458,6 +456,7 @@ export default {
458 456
         })
459 457
     },
460 458
     methods: {
459
+        getWarehouseFieldPermissions,
461 460
         getXhlSystemSetList(){
462 461
             uni.$u.api.xhlSystemSetList({
463 462
                 pageNum: 1,

+ 47 - 16
pages/wareHouse/components/fieldPermissions.vue

@@ -29,8 +29,10 @@
29 29
 					</view>
30 30
 				</view>
31 31
 				<view class="btn-row">
32
-					<u-button type="error" plain size="small" :disabled="!currentRoleId" @click="clearConfig">清空该角色配置</u-button>
33
-					<u-button type="primary" size="small" :loading="loadConfigLoading" @click="loadConfig">加载配置</u-button>
32
+					<u-button type="error" plain size="small" :disabled="!currentRoleId"
33
+						@click="clearConfig">清空该角色配置</u-button>
34
+					<u-button type="primary" size="small" :loading="loadConfigLoading"
35
+						@click="loadConfig">加载配置</u-button>
34 36
 				</view>
35 37
 			</view>
36 38
 
@@ -38,7 +40,14 @@
38 40
 			<view class="section">
39 41
 				<view class="section-head">
40 42
 					<text class="section-title">字段权限</text>
41
-					<u-button type="primary" size="mini" :loading="saveLoading" :disabled="!currentRoleId || permissionList.length === 0" @click="saveConfig">保存配置</u-button>
43
+					<view class="btn-group">
44
+						<u-button type="success" plain size="mini" 
45
+							:disabled="!currentRoleId || permissionList.length === 0" @click="openAllPermissions">一键全开</u-button>
46
+						<u-button type="error" plain size="mini" 
47
+							:disabled="!currentRoleId || permissionList.length === 0" @click="closeAllPermissions">一键全关</u-button>
48
+						<u-button type="primary" size="mini" :loading="saveLoading"
49
+							:disabled="!currentRoleId || permissionList.length === 0" @click="saveConfig">保存配置</u-button>
50
+					</view>
42 51
 				</view>
43 52
 				<view v-if="loadConfigLoading" class="loading-wrap">
44 53
 					<u-loading-icon mode="circle" size="36"></u-loading-icon>
@@ -49,7 +58,7 @@
49 58
 						<view v-for="(item, index) in permissionList" :key="item.fieldName" class="field-item">
50 59
 							<view class="field-name-wrap">
51 60
 								<text class="field-name">{{ fieldLabel(item.fieldName) }}</text>
52
-								<text class="field-key">{{ item.fieldName }}</text>
61
+								<!-- <text class="field-key">{{ item.fieldName }}</text> -->
53 62
 							</view>
54 63
 							<view class="field-switches">
55 64
 								<view class="switch-cell">
@@ -123,7 +132,7 @@ export default {
123 132
 			return this.currentRoleId ? `角色ID: ${this.currentRoleId}` : '请填写角色ID并加载';
124 133
 		},
125 134
 	},
126
-	onLoad() {},
135
+	onLoad() { },
127 136
 	onShow() {
128 137
 		this.fetchRoleList();
129 138
 	},
@@ -215,6 +224,22 @@ export default {
215 224
 				},
216 225
 			});
217 226
 		},
227
+		// 一键打开所有权限
228
+		openAllPermissions() {
229
+			this.permissionList.forEach(item => {
230
+				item.read = true;
231
+				item.edit = true;
232
+			});
233
+			uni.$u.toast('已打开所有权限');
234
+		},
235
+		// 一键关闭所有权限
236
+		closeAllPermissions() {
237
+			this.permissionList.forEach(item => {
238
+				item.read = false;
239
+				item.edit = false;
240
+			});
241
+			uni.$u.toast('已关闭所有权限');
242
+		},
218 243
 	},
219 244
 };
220 245
 </script>
@@ -273,19 +298,25 @@ export default {
273 298
 }
274 299
 
275 300
 .section-head {
276
-	display: flex;
277
-	align-items: center;
278
-	justify-content: space-between;
279
-	margin-bottom: 20rpx;
301
+		display: flex;
302
+		align-items: center;
303
+		justify-content: space-between;
304
+		margin-bottom: 20rpx;
280 305
 
281
-	.section-title {
282
-		margin-bottom: 0;
283
-	}
284
-	.u-button {
285
-		width:auto;
286
-		margin: 0;
306
+		.section-title {
307
+			margin-bottom: 0;
308
+		}
309
+
310
+		.btn-group {
311
+			display: flex;
312
+			gap: 12rpx;
313
+
314
+			.u-button {
315
+				width: auto;
316
+				margin: 0;
317
+			}
318
+		}
287 319
 	}
288
-}
289 320
 
290 321
 .role-section {
291 322
 	.role-select-wrap {

+ 9 - 7
pages/wareHouse/components/moreInfo.vue

@@ -3,31 +3,31 @@
3 3
         <u-modal :show="show" @confirm="confirmModal" :showCancelButton="showCancelButton" @cancel="closeModal" @close="closeModal">
4 4
             <view class="modal-content">
5 5
                 <view class="more-info">
6
-                    <view class="modal-item">
6
+                    <view class="modal-item" v-if="getWarehouseFieldPermissions('dictLabel','read')">
7 7
                         <text>品牌:</text>
8 8
                         <text>{{ moreOptions.dictLabel || '-' }}</text>
9 9
                     </view>
10
-                    <view class="modal-item">
10
+                    <view class="modal-item" v-if="getWarehouseFieldPermissions('origin','read')">
11 11
                         <text>来源:</text>
12 12
                         <text>{{ moreOptions.origin || '-' }}</text>
13 13
                     </view>
14
-                    <view class="modal-item">
14
+                    <view class="modal-item" v-if="getWarehouseFieldPermissions('actualPrice','read')">
15 15
                         <text>实价:</text>
16 16
                         <text>¥{{ moreOptions.actualPrice || '-' }}</text>
17 17
                     </view>
18
-                    <view class="modal-item">
18
+                    <view class="modal-item" v-if="getWarehouseFieldPermissions('model','read')">
19 19
                         <text>型号:</text>
20 20
                         <text>{{ moreOptions.model || '-' }}</text>
21 21
                     </view>
22
-                    <view class="modal-item">
22
+                    <view class="modal-item" v-if="getWarehouseFieldPermissions('indentifyCode','read')">
23 23
                         <text>编码:</text>
24 24
                         <text>{{ moreOptions.indentifyCode || '-' }}</text>
25 25
                     </view>
26
-                    <view class="modal-item">
26
+                    <view class="modal-item" v-if="getWarehouseFieldPermissions('cardYear','read')">
27 27
                         <text>日期:</text>
28 28
                         <text>{{ moreOptions.cardYear || '-' }}</text>
29 29
                     </view>
30
-                    <view class="modal-item">
30
+                    <view class="modal-item" v-if="getWarehouseFieldPermissions('productDesc','read')">
31 31
                         <text>备注:</text>
32 32
                         <text>{{ moreOptions.productDesc || '-' }}</text>
33 33
                     </view>
@@ -41,6 +41,7 @@
41 41
 </template>
42 42
 
43 43
 <script>
44
+import { getWarehouseFieldPermissions } from '../../../utils/util.js'
44 45
 export default {
45 46
     name: 'MoreInfo',
46 47
     props: {
@@ -64,6 +65,7 @@ export default {
64 65
         }
65 66
     },
66 67
     methods: {
68
+        getWarehouseFieldPermissions,
67 69
         showMoreInfo() {
68 70
             this.show = true;
69 71
         },

+ 21 - 20
pages/wareHouse/index.vue

@@ -81,7 +81,7 @@
81 81
 					<u-swipe-action ref="swipeRef">
82 82
 						<u-swipe-action-item :options="swipeOptions" @click="(e) => handleSwipeClick(e, goods, goodsIndex)">
83 83
 							<view class="goods-info">
84
-								<view class="goods-img-container">
84
+								<view class="goods-img-container" v-if="getWarehouseFieldPermissions('goodPicFileList','read')">
85 85
 									<image class="goods-img" :src="goods.imgUrl ? goods.imgUrl : '/static/no-img.png'" mode="aspectFill"
86 86
 										lazy-load></image>
87 87
 									<!-- <image class="goods-img" src="/static/no-img.png" mode="aspectFill" lazy-load></image> -->
@@ -90,7 +90,7 @@
90 90
 								</view>
91 91
 								<view class="info-content">
92 92
 									<view class="goods-brand">
93
-										<view>
93
+										<view v-if="getWarehouseFieldPermissions('dictLabel','read')">
94 94
 											{{ goods.dictLabel || '-' }}
95 95
 										</view>
96 96
 										<!-- <image v-if="goods.indentifyCode" src="../../static/icons/code.png"
@@ -99,35 +99,35 @@
99 99
 											{{ goods.indentifyCode || '' }}
100 100
 										</view> -->
101 101
 									</view>
102
-									<text class="goods-name">型号:{{ goods.model || '-' }}</text>
103
-									<text class="goods-name">编码:{{ goods.indentifyCode || '-' }}</text>
102
+									<text class="goods-name" v-if="getWarehouseFieldPermissions('model','read')">型号:{{ goods.model || '-' }}</text>
103
+									<text class="goods-name" v-if="getWarehouseFieldPermissions('indentifyCode','read')">编码:{{ goods.indentifyCode || '-' }}</text>
104 104
 									<view class="price-group">
105
-										<view class="price-item" v-if="isWareHouseRole">
105
+										<view class="price-item" v-if="getWarehouseFieldPermissions('costPrice','read')">
106 106
 											<text class="price-type">成本价</text>
107 107
 											<text class="price">¥{{ priceVisible ? goods.costPrice || '-' : '****'
108 108
 											}}</text>
109 109
 										</view>
110
-										<view class="price-item" v-if="isWareHouseRole">
110
+										<view class="price-item" v-if="getWarehouseFieldPermissions('salePrice','read')">
111 111
 											<text class="price-type">销售价</text>
112 112
 											<text class="price sales">¥{{ priceVisible ? goods.salePrice || '-' : '****'
113 113
 											}}</text>
114 114
 										</view>
115
-										<view class="price-item" v-if="isWareHouseRole">
115
+										<view class="price-item" v-if="getWarehouseFieldPermissions('peerPrice','read')">
116 116
 											<text class="price-type">同行价</text>
117 117
 											<text class="price">¥{{ priceVisible ? goods.peerPrice || '-' : '****'
118 118
 											}}</text>
119 119
 										</view>
120
-										<view class="price-item">
120
+										<view class="price-item" v-if="getWarehouseFieldPermissions('agentPrice','read')">
121 121
 											<text class="price-type">代理价</text>
122 122
 											<text class="price">¥{{ priceVisible ? goods.agentPrice || '-' : '****'
123 123
 											}}</text>
124 124
 										</view>
125
-										<view class="price-item" v-if="isWareHouseRole">
125
+										<view class="price-item" v-if="getWarehouseFieldPermissions('actualPrice','read')">
126 126
 											<text class="price-type">实价</text>
127 127
 											<text class="price">¥{{ priceVisible ? goods.actualPrice || '-' : '****'
128 128
 											}}</text>
129 129
 										</view>
130
-										<view class="price-item" v-if="isWareHouseRole">
130
+										<view class="price-item" v-if="getWarehouseFieldPermissions('price','read')">
131 131
 											<text class="price-type">指导价</text>
132 132
 											<text class="price">¥{{ priceVisible ? goods.price || '-' : '****' }}</text>
133 133
 										</view>
@@ -146,7 +146,7 @@
146 146
 									<view @click.stop="showMoreOptions(goods)">
147 147
 										<u-icon name="more-dot-fill" size="16" color="#666666"></u-icon>
148 148
 									</view>
149
-									<text class="goods-stock">数量:{{ goods.stock || 0 }}</text>
149
+									<text class="goods-stock" v-if="getWarehouseFieldPermissions('stock','read')">数量:{{ goods.stock || 0 }}</text>
150 150
 								</view>
151 151
 
152 152
 							</view>
@@ -158,31 +158,31 @@
158 158
 								</view>
159 159
 								<transition name="more-info">
160 160
 									<view class="more-info-content" v-if="goods.showMoreInfo">
161
-										<view class="info-row">
161
+										<view class="info-row" v-if="getWarehouseFieldPermissions('recycleTime','read')">
162 162
 											<text class="info-label">回收时间:</text>
163 163
 											<text class="info-value">{{ formatterTime(goods.recycleTime) }}</text>
164 164
 										</view>
165
-										<view class="info-row">
165
+										<view class="info-row" v-if="getWarehouseFieldPermissions('warehouseDate','read')">
166 166
 											<text class="info-label">入库时间:</text>
167 167
 											<text class="info-value">{{ formatterTime(goods.warehouseDate) }}</text>
168 168
 										</view>
169
-										<view class="info-row">
169
+										<view class="info-row" v-if="getWarehouseFieldPermissions('productPosition','read')">
170 170
 											<text class="info-label">商品位置:</text>
171 171
 											<text class="info-value">{{ goods.productPosition || '-' }}</text>
172 172
 										</view>
173
-										<view class="info-row">
173
+										<view class="info-row" v-if="getWarehouseFieldPermissions('identifyingPerson','read')">
174 174
 											<text class="info-label">鉴定人员:</text>
175 175
 											<text class="info-value">{{ goods.identifyingPerson || '-' }}</text>
176 176
 										</view>
177
-										<view class="info-row">
177
+										<view class="info-row" v-if="getWarehouseFieldPermissions('recyclePerson','read')">
178 178
 											<text class="info-label">回收人员:</text>
179 179
 											<text class="info-value">{{ goods.recyclePerson || '-' }}</text>
180 180
 										</view>
181
-										<view class="info-row">
181
+										<view class="info-row" v-if="getWarehouseFieldPermissions('stockStatus','read')">
182 182
 											<text class="info-label">是否入库:</text>
183 183
 											<text class="info-value">{{ goods.stockStatus == '1' ? '已入库' : '未入库' }}</text>
184 184
 										</view>
185
-										<view class="info-row">
185
+										<view class="info-row" v-if="getWarehouseFieldPermissions('payType','read')">
186 186
 											<text class="info-label">付款方式:</text>
187 187
 											<text class="info-value">{{ payFormatter(goods.payType) }}</text>
188 188
 										</view>
@@ -204,7 +204,7 @@
204 204
 <script>
205 205
 import searchFilter from './components/searchFilter.vue'
206 206
 import moreInfo from './components/moreInfo.vue'
207
-import { permissionCheck } from '../../utils/util.js'
207
+import { permissionCheck,getWarehouseFieldPermissions } from '../../utils/util.js'
208 208
 import orderList from './components/orderList/index.vue'
209 209
 import { paymentTabList,productAttributeList } from './js/public.js'
210 210
 import jtimePickerPopup from '@/uni_modules/jtime-picker-popup/components/JTimePicker/JTimePicker.vue';
@@ -283,7 +283,6 @@ export default {
283 283
 			total: 0,
284 284
 			moreOptions: {},
285 285
 			moreOptionsShow: false,
286
-			isWareHouseRole: permissionCheck('WAREHOUSER', false),
287 286
 			swipeOptions: [
288 287
 				{
289 288
 					text: '删除',
@@ -349,6 +348,7 @@ export default {
349 348
 			this.moreOptions = goods;
350 349
 			this.$refs.moreInfoRef.showMoreInfo();
351 350
 		},
351
+		getWarehouseFieldPermissions,
352 352
 		handleMoreInfoConfirm() {
353 353
 			this.$refs.moreInfoRef.closeModal();
354 354
 		},
@@ -537,6 +537,7 @@ export default {
537 537
 			this.getList();
538 538
 			this.getCard();
539 539
 		});
540
+
540 541
 	},
541 542
 	onHide() {
542 543
 		// 页面隐藏时保存状态

+ 5 - 1
utils/util.js

@@ -409,4 +409,8 @@ export function permissionCheck(roleKey,isShowToast = true) {
409 409
     }else{
410 410
 		return true
411 411
 	}
412
-}
412
+}
413
+export function getWarehouseFieldPermissions(field,permission) {
414
+    const permissionItem = store.state.user.warehouseFieldPermissions?.find(item=>item.fieldName === field);
415
+    return permissionItem ? permissionItem[permission] : false;
416
+}