diff --git a/src/api/user.js b/src/api/user.js index c68c914..68bb6b1 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -1,4 +1,5 @@ import request from "@/utils/request.js"; +import { ElMessage } from "element-plus"; export function login(data) { return request({ @@ -50,3 +51,31 @@ export function queryShopInfo() { }, }); } + +/** + * 查询员工是否拥有权限 + * @param {*} params + * @returns + */ +export async function staffPermission(code) { + let userInfo = JSON.parse(localStorage.getItem("userInfo")); + if (userInfo.isStaff) { + const res = await request({ + method: "get", + url: "/staffPermission", + params: { + staffId: userInfo.staffId, + code: code, + }, + }); + + if (res) { + return Promise.resolve(); + } else { + ElMessage.error("无权操作"); + return Promise.reject('无权操作'); + } + } else { + return Promise.resolve(); + } +} diff --git a/src/views/home/components/cartOperation.vue b/src/views/home/components/cartOperation.vue index 495b628..639d0f5 100644 --- a/src/views/home/components/cartOperation.vue +++ b/src/views/home/components/cartOperation.vue @@ -25,7 +25,8 @@ 赠送 -
+
@@ -59,6 +60,10 @@ import { ref } from 'vue' import takeFoodCode from '@/components/takeFoodCode.vue' import skuModal from '@/components/skuModal.vue' +import { useShop } from '@/store/shop.js' + +const shopStore = useShop() + const props = defineProps({ item: { type: Object, diff --git a/src/views/home/components/goods.vue b/src/views/home/components/goods.vue index 7acd81d..ff0cc04 100644 --- a/src/views/home/components/goods.vue +++ b/src/views/home/components/goods.vue @@ -168,19 +168,15 @@ import { Search } from '@element-plus/icons-vue' import { onMounted, ref } from 'vue' import _ from 'lodash' import useStorage from "@/utils/useStorage"; - import skuModal from '@/components/skuModal.vue' - import { queryCategory, queryNewCommodityInfo, queryProductSku, productStatus, productStock } from '@/api/product' import { useUser } from "@/store/user.js" - import { Swiper, SwiperSlide } from 'swiper/vue' import "swiper/swiper-bundle.css"; - - +import { staffPermission } from '@/api/user.js' import { useGlobal } from '@/store/global.js' -const global = useGlobal() +const global = useGlobal() const store = useUser() @@ -243,16 +239,21 @@ function showMoreMenu() { } // 显示/隐藏编辑 -function showEditorChange() { - if (showEditor.value) { - showEditor.value = false - goodsList.value.map(item => { - item.map(val => { - val.showMore = false +async function showEditorChange() { + try { + await staffPermission('yun_xu_xiu_gai_shang_pin') + if (showEditor.value) { + showEditor.value = false + goodsList.value.map(item => { + item.map(val => { + val.showMore = false + }) }) - }) - } else { - showEditor.value = true + } else { + showEditor.value = true + } + } catch (error) { + console.log(error); } } @@ -506,12 +507,21 @@ const goodEditorEmun = ref({ }) // 编辑商品 -function goodEditor(item, t) { - goodEditorItem.value = item - if (item.isPauseSale == 1) { - } else { - goodEditorType.value = t - showGoodEditor.value = true +async function goodEditor(item, t) { + try { + if (t == 0) { + await staffPermission('yun_xu_shang_xia_jia_shang_pin') + } else if (t == 1) { + await staffPermission('yun_xu_shou_qing_shang_pin') + } + goodEditorItem.value = item + if (item.isPauseSale == 1) { + } else { + goodEditorType.value = t + showGoodEditor.value = true + } + } catch (error) { + console.log(error); } } @@ -544,9 +554,14 @@ async function closeSellHandle() { const showPutaway = ref(false) const showPutawayLoading = ref(false) -function showPutawayHandle(item) { - goodEditorItem.value = item - showPutaway.value = true +async function showPutawayHandle(item) { + try { + await staffPermission('yun_xu_shang_xia_jia_shang_pin') + goodEditorItem.value = item + showPutaway.value = true + } catch (error) { + console.log(error); + } } async function putawayHandle(item) { @@ -599,7 +614,7 @@ const goodsEditorStockItem = ref(0) const showGoodsEditorStock = ref(false) const goodsEditorStockNumber = ref(0) const goodsEditorStockLoading = ref(false) -function goodStockNumberHandle(item) { +async function goodStockNumberHandle(item) { // if (item.isDistribute == 0 && item.typeEnum == 'sku') { // ElMessage({ // type: 'warning', @@ -612,10 +627,14 @@ function goodStockNumberHandle(item) { // goodsEditorStockNumber.value = item.stockNumber // showGoodsEditorStock.value = true // } - - goodsEditorStockItem.value = item - goodsEditorStockNumber.value = item.stockNumber - showGoodsEditorStock.value = true + try { + await staffPermission('yun_xu_xiu_gai_shang_pin_ku_cun') + goodsEditorStockItem.value = item + goodsEditorStockNumber.value = item.stockNumber + showGoodsEditorStock.value = true + } catch (error) { + console.log(error); + } } // 确认修改库存 diff --git a/src/views/home/components/settleAccount.vue b/src/views/home/components/settleAccount.vue index 8ff1e6a..6e36300 100644 --- a/src/views/home/components/settleAccount.vue +++ b/src/views/home/components/settleAccount.vue @@ -106,6 +106,8 @@ import receiptPrint from "@/components/lodop/receiptPrint.js"; import { useGlobal } from '@/store/global.js' import { usePrint } from '@/store/print.js' +import { staffPermission } from '@/api/user.js' + const global = useGlobal() const printStore = usePrint() @@ -156,15 +158,21 @@ const isPrint = ref(true); const discountLoading = ref(false) // 显示员工折扣 async function showStaffDiscountHandle() { - discountLoading.value = true - await getStaffDiscountAjax() - discountLoading.value = false - if (staffDiscount.value <= 0) { - ElMessage.error('暂无折扣,请稍后再试') - } else { - showStaffDiscount.value = true + try { + discountLoading.value = true + await staffPermission('yun_xu_da_zhe') + await getStaffDiscountAjax() discountLoading.value = false - global.updateData(false) + if (staffDiscount.value <= 0) { + ElMessage.error('暂无折扣,请稍后再试') + } else { + showStaffDiscount.value = true + discountLoading.value = false + global.updateData(false) + } + } catch (error) { + discountLoading.value = false + console.log(error); } } diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 87c1f34..705837b 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -85,7 +85,8 @@