|
|
@ -33,32 +33,33 @@ |
|
|
|
|
|
|
|
|
<!-- 功能区域 --> |
|
|
<!-- 功能区域 --> |
|
|
<div class="content-area"> |
|
|
<div class="content-area"> |
|
|
|
|
|
<!-- section层级也支持site授权,默认*全工厂可见,按需改为具体site编码 - rqrq --> |
|
|
<!-- 收货入库 --> |
|
|
<!-- 收货入库 --> |
|
|
<div class="section"> |
|
|
|
|
|
|
|
|
<div class="section" v-site-auth="'*'"> |
|
|
<div class="section-header"> |
|
|
<div class="section-header"> |
|
|
<span class="bullet">•</span> |
|
|
<span class="bullet">•</span> |
|
|
<span class="section-title">收货入库</span> |
|
|
<span class="section-title">收货入库</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="button-grid"> |
|
|
<div class="button-grid"> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('porecv')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('porecv')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">采购入库</div> |
|
|
<div class="menu-text">采购入库</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('productionInboundProduction')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('productionInboundProduction')"> |
|
|
<div class="menu-icon production-inbound"> |
|
|
<div class="menu-icon production-inbound"> |
|
|
<van-icon name="cart" size="24" /> |
|
|
<van-icon name="cart" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">生产入库</div> |
|
|
<div class="menu-text">生产入库</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('productionreturn')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('productionreturn')"> |
|
|
<div class="menu-icon production-return"> |
|
|
<div class="menu-icon production-return"> |
|
|
<van-icon name="revoke" size="24" /> |
|
|
<van-icon name="revoke" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">生产退料</div> |
|
|
<div class="menu-text">生产退料</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('salereturn')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('salereturn')"> |
|
|
<div class="menu-icon sales-return"> |
|
|
<div class="menu-icon sales-return"> |
|
|
<van-icon name="revoke" size="24" /> |
|
|
<van-icon name="revoke" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
@ -68,43 +69,43 @@ |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 拣货出库 --> |
|
|
<!-- 拣货出库 --> |
|
|
<div class="section"> |
|
|
|
|
|
|
|
|
<div class="section" v-site-auth="'*'"> |
|
|
<div class="section-header"> |
|
|
<div class="section-header"> |
|
|
<span class="bullet">•</span> |
|
|
<span class="bullet">•</span> |
|
|
<span class="section-title">拣货出库</span> |
|
|
<span class="section-title">拣货出库</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="button-grid"> |
|
|
<div class="button-grid"> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('inventory-move')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('inventory-move')"> |
|
|
<div class="menu-icon inventory-move"> |
|
|
<div class="menu-icon inventory-move"> |
|
|
<van-icon name="exchange" size="24" /> |
|
|
<van-icon name="exchange" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">移库</div> |
|
|
<div class="menu-text">移库</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('otherinout')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('otherinout')"> |
|
|
<div class="menu-icon other"> |
|
|
<div class="menu-icon other"> |
|
|
<van-icon name="exchange" size="24" /> |
|
|
<van-icon name="exchange" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">其他出入库</div> |
|
|
<div class="menu-text">其他出入库</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('productionissue')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('productionissue')"> |
|
|
<div class="menu-icon production-issue"> |
|
|
<div class="menu-icon production-issue"> |
|
|
<van-icon name="send-gift-o" size="24" /> |
|
|
<van-icon name="send-gift-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">生产领料</div> |
|
|
<div class="menu-text">生产领料</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('mrissue')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('mrissue')"> |
|
|
<div class="menu-icon mr"> |
|
|
<div class="menu-icon mr"> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">MR发料</div> |
|
|
<div class="menu-text">MR发料</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('outsource')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('outsource')"> |
|
|
<div class="menu-icon outsourcing"> |
|
|
<div class="menu-icon outsourcing"> |
|
|
<van-icon name="logistics" size="24" /> |
|
|
<van-icon name="logistics" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">委外发料</div> |
|
|
<div class="menu-text">委外发料</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('customerissue')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('customerissue')"> |
|
|
<!-- <div class="menu-item disabled" @click="handleDisabledFeature('customerissue')"> --> |
|
|
<!-- <div class="menu-item disabled" @click="handleDisabledFeature('customerissue')"> --> |
|
|
<div class="menu-icon sales-delivery"> |
|
|
<div class="menu-icon sales-delivery"> |
|
|
<van-icon name="logistics" size="24" /> |
|
|
<van-icon name="logistics" size="24" /> |
|
|
@ -119,55 +120,55 @@ |
|
|
</div> --> |
|
|
</div> --> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="section"> |
|
|
|
|
|
|
|
|
<div class="section" v-site-auth="'55'"> |
|
|
<div class="section-header"> |
|
|
<div class="section-header"> |
|
|
<span class="bullet">•</span> |
|
|
<span class="bullet">•</span> |
|
|
<span class="section-title">立库常规操作</span> |
|
|
<span class="section-title">立库常规操作</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="button-grid"> |
|
|
<div class="button-grid"> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('callOutToStation')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('callOutToStation')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">立库取货</div> |
|
|
<div class="menu-text">立库取货</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletPacking')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletPacking')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">组盘入库</div> |
|
|
<div class="menu-text">组盘入库</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletSorting')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletSorting')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">分拣组盘</div> |
|
|
<div class="menu-text">分拣组盘</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletSearch')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletSearch')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">查看托盘</div> |
|
|
<div class="menu-text">查看托盘</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletChangeStation')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletChangeStation')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">托盘运输</div> |
|
|
<div class="menu-text">托盘运输</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('emptyPalletAssembly')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('emptyPalletAssembly')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">空托盘入库</div> |
|
|
<div class="menu-text">空托盘入库</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('cancelWcsPallet')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('cancelWcsPallet')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">取消组盘</div> |
|
|
<div class="menu-text">取消组盘</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletMerge')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletMerge')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
@ -175,49 +176,49 @@ |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="section"> |
|
|
|
|
|
|
|
|
<div class="section" v-site-auth="'55'"> |
|
|
<div class="section-header"> |
|
|
<div class="section-header"> |
|
|
<span class="bullet">•</span> |
|
|
<span class="bullet">•</span> |
|
|
<span class="section-title">立库特殊操作</span> |
|
|
<span class="section-title">立库特殊操作</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="button-grid"> |
|
|
<div class="button-grid"> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('callOut')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('callOut')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">Call料</div> |
|
|
<div class="menu-text">Call料</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletAssembly')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletAssembly')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">直接组盘</div> |
|
|
<div class="menu-text">直接组盘</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletManualMove')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletManualMove')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">栈板人工移动</div> |
|
|
<div class="menu-text">栈板人工移动</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('wmsCancelReserve')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('wmsCancelReserve')"> |
|
|
<div class="menu-icon inventory"> |
|
|
<div class="menu-icon inventory"> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">取消预留</div> |
|
|
<div class="menu-text">取消预留</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('palletSortingNoAgv')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('palletSortingNoAgv')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">无AGV分拣</div> |
|
|
<div class="menu-text">无AGV分拣</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('callOutForHetuo')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('callOutForHetuo')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">合托Call板</div> |
|
|
<div class="menu-text">合托Call板</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('manualCount')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'55'" @click="navigateWithWarehouseCheck('manualCount')"> |
|
|
<div class="menu-icon purchase"> |
|
|
<div class="menu-icon purchase"> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
<van-icon name="shopping-cart-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
@ -226,7 +227,7 @@ |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<!-- 库内管理 --> |
|
|
<!-- 库内管理 --> |
|
|
<div class="section"> |
|
|
|
|
|
|
|
|
<div class="section" v-site-auth="'*'"> |
|
|
<div class="section-header"> |
|
|
<div class="section-header"> |
|
|
<span class="bullet">•</span> |
|
|
<span class="bullet">•</span> |
|
|
<span class="section-title">库内管理</span> |
|
|
<span class="section-title">库内管理</span> |
|
|
@ -238,14 +239,14 @@ |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">属性变动</div> |
|
|
<div class="menu-text">属性变动</div> |
|
|
</div>--> |
|
|
</div>--> |
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('labelQuery')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('labelQuery')"> |
|
|
<div class="menu-icon inventory"> |
|
|
<div class="menu-icon inventory"> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="menu-text">标签查询</div> |
|
|
<div class="menu-text">标签查询</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="menu-item" @click="navigateWithWarehouseCheck('labelCalibration')"> |
|
|
|
|
|
|
|
|
<div class="menu-item" v-site-auth="'*'" @click="navigateWithWarehouseCheck('labelCalibration')"> |
|
|
<div class="menu-icon inventory"> |
|
|
<div class="menu-icon inventory"> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
<van-icon name="orders-o" size="24" /> |
|
|
</div> |
|
|
</div> |
|
|
@ -280,6 +281,21 @@ export default { |
|
|
showWarehouseDropdown: false |
|
|
showWarehouseDropdown: false |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
directives: { |
|
|
|
|
|
// 站点授权指令:* 或 当前site 命中才渲染菜单 - rqrq |
|
|
|
|
|
siteAuth: { |
|
|
|
|
|
inserted(el, binding, vnode) { |
|
|
|
|
|
if (vnode.context && vnode.context.applySiteAuthForElement) { |
|
|
|
|
|
vnode.context.applySiteAuthForElement(el, binding) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
componentUpdated(el, binding, vnode) { |
|
|
|
|
|
if (vnode.context && vnode.context.applySiteAuthForElement) { |
|
|
|
|
|
vnode.context.applySiteAuthForElement(el, binding) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
|
documentClientHeight: { |
|
|
documentClientHeight: { |
|
|
get() { |
|
|
get() { |
|
|
@ -312,7 +328,12 @@ export default { |
|
|
}, |
|
|
}, |
|
|
site: { |
|
|
site: { |
|
|
get() { |
|
|
get() { |
|
|
return localStorage.getItem('site') |
|
|
|
|
|
|
|
|
const storeSite = this.$store.state.user.site |
|
|
|
|
|
const normalizedStoreSite = storeSite === null || storeSite === undefined ? '' : String(storeSite).trim() |
|
|
|
|
|
if (normalizedStoreSite && normalizedStoreSite !== '0') { |
|
|
|
|
|
return normalizedStoreSite |
|
|
|
|
|
} |
|
|
|
|
|
return (localStorage.getItem('site') || '').trim() |
|
|
}, |
|
|
}, |
|
|
set(val) { |
|
|
set(val) { |
|
|
this.$store.commit('user/updateSite', val) |
|
|
this.$store.commit('user/updateSite', val) |
|
|
@ -343,10 +364,44 @@ export default { |
|
|
document.removeEventListener('click', this.handleDocumentClick) |
|
|
document.removeEventListener('click', this.handleDocumentClick) |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
|
|
|
|
this.syncStoreSiteFromCache() |
|
|
this.getUserInfo() |
|
|
this.getUserInfo() |
|
|
this.getWarehouseList(); |
|
|
this.getWarehouseList(); |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
// 将缓存site同步到store,保证菜单渲染和接口取值一致 - rqrq |
|
|
|
|
|
syncStoreSiteFromCache() { |
|
|
|
|
|
const cacheSite = (localStorage.getItem('site') || '').trim() |
|
|
|
|
|
if (cacheSite) { |
|
|
|
|
|
this.$store.commit('user/updateSite', cacheSite) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
// 标准化菜单授权site配置:空值按*处理,支持逗号分隔多site - rqrq |
|
|
|
|
|
normalizeMenuSiteAuthValue(siteAuthValue) { |
|
|
|
|
|
const rawValue = siteAuthValue === null || siteAuthValue === undefined ? '*' : String(siteAuthValue).trim() |
|
|
|
|
|
return rawValue === '' ? '*' : rawValue |
|
|
|
|
|
}, |
|
|
|
|
|
// 菜单授权规则:*全工厂可见,非*必须命中当前site才显示 - rqrq |
|
|
|
|
|
isMenuVisibleForCurrentSite(siteAuthValue) { |
|
|
|
|
|
const normalizedAuthValue = this.normalizeMenuSiteAuthValue(siteAuthValue) |
|
|
|
|
|
if (normalizedAuthValue === '*') { |
|
|
|
|
|
return true |
|
|
|
|
|
} |
|
|
|
|
|
const currentSite = this.site |
|
|
|
|
|
if (!currentSite) { |
|
|
|
|
|
return false |
|
|
|
|
|
} |
|
|
|
|
|
const authSiteList = normalizedAuthValue |
|
|
|
|
|
.split(',') |
|
|
|
|
|
.map(item => item.trim()) |
|
|
|
|
|
.filter(item => item !== '') |
|
|
|
|
|
return authSiteList.includes('*') || authSiteList.includes(String(currentSite).trim()) |
|
|
|
|
|
}, |
|
|
|
|
|
// 指令落地:根据site授权值直接控制菜单节点显示 - rqrq |
|
|
|
|
|
applySiteAuthForElement(el, binding) { |
|
|
|
|
|
const isVisible = this.isMenuVisibleForCurrentSite(binding.value) |
|
|
|
|
|
el.style.display = isVisible ? '' : 'none' |
|
|
|
|
|
}, |
|
|
// 处理禁用功能点击 |
|
|
// 处理禁用功能点击 |
|
|
handleDisabledFeature(featureName) { |
|
|
handleDisabledFeature(featureName) { |
|
|
this.$message({ |
|
|
this.$message({ |
|
|
@ -365,7 +420,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
// 获取仓库列表 |
|
|
// 获取仓库列表 |
|
|
getWarehouseList() { |
|
|
getWarehouseList() { |
|
|
const currentSite = localStorage.getItem('site'); |
|
|
|
|
|
|
|
|
const currentSite = this.site; |
|
|
if (!currentSite) { |
|
|
if (!currentSite) { |
|
|
this.$message.error('请先选择工厂'); |
|
|
this.$message.error('请先选择工厂'); |
|
|
this.$router.push({ name: 'login' }); |
|
|
this.$router.push({ name: 'login' }); |
|
|
@ -461,6 +516,8 @@ export default { |
|
|
this.loading = false |
|
|
this.loading = false |
|
|
this.userId = data.user.userId |
|
|
this.userId = data.user.userId |
|
|
this.userName = data.user.username |
|
|
this.userName = data.user.username |
|
|
|
|
|
// 再次确保user对象建立后store中可直接读取当前site - rqrq |
|
|
|
|
|
this.$store.commit('user/updateSite', this.site) |
|
|
this.languageDefault = data.user.languageDefault |
|
|
this.languageDefault = data.user.languageDefault |
|
|
this.userDisplay = data.user.userDisplay |
|
|
this.userDisplay = data.user.userDisplay |
|
|
let userSubSiteCodeList = [] |
|
|
let userSubSiteCodeList = [] |
|
|
|