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 @@