|
|
@@ -0,0 +1,268 @@
|
|
|
+const homeIcon = name => `home-${name}`
|
|
|
+
|
|
|
+export const APPLY_MENU_GROUPS = [
|
|
|
+ {
|
|
|
+ title: '花束',
|
|
|
+ titleIcon: homeIcon('花束'),
|
|
|
+ list: [
|
|
|
+ { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/mall', pf: 1 },
|
|
|
+ { name: '开单', icon: homeIcon('花束开单'), action: 'goHsKd', pf: 1 },
|
|
|
+ { name: '快捷开单', icon: homeIcon('花束快捷开单'), action: 'goHsKjKd', pf: 1 },
|
|
|
+ { name: '花束', icon: homeIcon('花束'), url: '/admin/goods/list', pf: 1 },
|
|
|
+ { name: '新增花束', icon: homeIcon('新增花束'), url: '/admin/goods/add', pf: 1 },
|
|
|
+ { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/goods/category', pf: 1 },
|
|
|
+ { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/goods/categorySort', pf: 1 },
|
|
|
+ //{ name: '列表', icon: homeIcon('列表3'), url: '/admin/goods/list', pf: 1 },
|
|
|
+ { name: '任务', icon: homeIcon('任务-filled'), url: '/admin/work/list', pf: 1 },
|
|
|
+ { name: '涨价设置', icon: homeIcon('涨价设置'), url: '/admin/goods/price-increase', pf: 1 }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '绿植花材',
|
|
|
+ titleIcon: homeIcon('绿植'),
|
|
|
+ list: [
|
|
|
+ { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/item', pf: 1 },
|
|
|
+ { name: '绿植花材', icon: homeIcon('绿植花材'), url: '/admin/item/list2', pf: 1 },
|
|
|
+ { name: '开单', icon: homeIcon('绿植开单'), action: 'goItemKd', pf: 1 },
|
|
|
+ { name: '快捷开单', icon: homeIcon('绿植快捷开单'), action: 'goItemKjKd', pf: 1 },
|
|
|
+ { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/itemClass/sort', pf: 1 },
|
|
|
+ { name: '改价', icon: homeIcon('改价'), url: '/admin/changePrice/list2', pf: 1 },
|
|
|
+ { name: '报损', icon: homeIcon('报损'), url: '/admin/breakage/list', pf: 1 },
|
|
|
+ { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/itemClass/list', pf: 1 },
|
|
|
+ //{ name: '列表', icon: homeIcon('列表-2'), url: '/admin/item/list2', pf: 1 },
|
|
|
+ { name: '拆散', icon: homeIcon('拆散'), url: '/admin/part/list', pf: 1 },
|
|
|
+ { name: '调拨出库', icon: homeIcon('调拨出库'), url: '/pagesStorehouse/allot/allotEx', pf: 0 },
|
|
|
+ { name: '调拨入库', icon: homeIcon('调拨入库'), url: '/pagesStorehouse/allot/allotPut', pf: 0 },
|
|
|
+ { name: '库存预警', icon: homeIcon('库存预警'), url: '/pagesStorehouse/stockWarn/manage', pf: 1 },
|
|
|
+ { name: '买花', icon: homeIcon('商城-filled'), url: '/pagesPurchase/order', pf: 1 },
|
|
|
+ { name: '买花记录', icon: homeIcon('购买记录'), url: '/pagesPurchase/shopping', pf: 1 },
|
|
|
+ { name: '盘点', icon: homeIcon('盘点'), url: '/pagesStorehouse/inventory/list', pf: 1 }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '门店设置',
|
|
|
+ titleIcon: homeIcon('店铺-filled'),
|
|
|
+ list: [
|
|
|
+ { name: '门店', icon: homeIcon('门店'), url: '/admin/shop/list', pf: 1 },
|
|
|
+ { name: '员工', icon: homeIcon('员工'), url: '/admin/staff/list', pf: 1 },
|
|
|
+ { name: '员工业绩', icon: homeIcon('员工业绩'), url: '/admin/staff/achieve', pf: 1 },
|
|
|
+ { name: '失信人员', icon: homeIcon('失信人员'), url: '/admin/ll/list', pf: 1 },
|
|
|
+ { name: '已删除家', icon: homeIcon('门店删除'), url: '/pagesPurchase/pb', pf: 1 },
|
|
|
+ { name: '会员等级', icon: homeIcon('会员等级'), url: '/admin/member/level', pf: 1 },
|
|
|
+ { name: '红包管理', icon: homeIcon('红包'), url: '/admin/hb/list', pf: 1 },
|
|
|
+ { name: '充值设置', icon: homeIcon('充值'), url: '/admin/recharge/rechargeSetting', pf: 1 },
|
|
|
+ { name: '收款码', icon: homeIcon('收款码'), url: '/admin/cg/code', pf: 1 },
|
|
|
+ { name: '收款流水', icon: homeIcon('收款码流水'), url: '/admin/order/scanPay', pf: 1 },
|
|
|
+ { name: '跑腿设置', icon: homeIcon('跑腿'), url: '/admin/delivery/deliveryManage', pf: 1 }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '硬件设置',
|
|
|
+ titleIcon: homeIcon('设置-filled'),
|
|
|
+ list: [
|
|
|
+ { name: '打印设置', icon: homeIcon('打印设置'), url: '/admin/shop/print', pf: 1 },
|
|
|
+ { name: '音响设置', icon: homeIcon('声音_filled'), url: '/admin/shop/trumpet', pf: 1 },
|
|
|
+ { name: '操作台打印', icon: homeIcon('打印设置'), url: '/admin/shop/makePrint', pf: 1 },
|
|
|
+ { name: '操作台音响', icon: homeIcon('声音_filled'), url: '/admin/shop/makeTrumpet', pf: 1 }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '数据统计',
|
|
|
+ titleIcon: homeIcon('数据统计'),
|
|
|
+ list: [
|
|
|
+ { name: '利润表', icon: homeIcon('利润表-filled'), url: '/admin/stat/profit', pf: 1 },
|
|
|
+ { name: '收入统计', icon: homeIcon('统计-2'), url: '/admin/stat/kdIncome', pf: 1 },
|
|
|
+ { name: '花材销量', icon: homeIcon('统计'), url: '/admin/stat/productSale', pf: 1 },
|
|
|
+ { name: '客户单量', icon: homeIcon('客户-filled'), url: '/admin/stat/customSale', pf: 1 },
|
|
|
+ { name: '采购统计', icon: homeIcon('进货-filled'), url: '/admin/stat/cgStat', pf: 1 },
|
|
|
+ { name: '采购花材', icon: homeIcon('商城-filled'), url: '/admin/stat/cgItem', pf: 1 },
|
|
|
+ { name: '绿植统计', icon: homeIcon('绿植'), url: '/admin/stat/kindLz', pf: 1 },
|
|
|
+ { name: '损耗总览', icon: homeIcon('报损'), url: '/admin/stat/waste', pf: 1 },
|
|
|
+ { name: '挂账汇总', icon: homeIcon('收款码'), url: '/admin/custom/showTotalBalance', pf: 1 }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '生产',
|
|
|
+ titleIcon: homeIcon('花束'),
|
|
|
+ actionText: '收起',
|
|
|
+ list: [
|
|
|
+ { name: '工作单列表', icon: homeIcon('列表3'), url: '/admin/work/list', pf: 1 },
|
|
|
+ { name: '图文', icon: homeIcon('图文'), url: '/admin/picText/picTextList', pf: 1 },
|
|
|
+ { name: '花材统计', icon: homeIcon('统计'), url: '/admin/stat/kind', pf: 1 },
|
|
|
+ { name: '员工统计', icon: homeIcon('员工'), url: '/admin/stat/makeStat', pf: 1 },
|
|
|
+ { name: '设置', icon: homeIcon('设置-filled'), url: '/admin/work/set', pf: 1 }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+]
|
|
|
+
|
|
|
+//菜单项配置, 用于快速菜单和更多菜单
|
|
|
+export const HOME_MENU_ITEMS = {
|
|
|
+ hsBill: { name: '开单', icon: homeIcon('花束开单'), action: 'goHsKd', pf: 1 },
|
|
|
+ hsQuickBill: { name: '快捷开单', icon: homeIcon('花束快捷开单'), action: 'goHsKjKd', pf: 1 },
|
|
|
+ itemBill: { name: '开单', icon: homeIcon('绿植开单'), action: 'goItemKd', pf: 1 },
|
|
|
+ itemQuickBill: { name: '快捷开单', icon: homeIcon('绿植快捷开单'), action: 'goItemKjKd', pf: 1 },
|
|
|
+ customer: { name: '客户', icon: homeIcon('客户-filled'), url: '/admin/home/member', type: 4, pf: 1 },
|
|
|
+ mall: { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/mall', pf: 1 },
|
|
|
+ itemMall: { name: '商城', icon: homeIcon('商城-filled'), url: '/admin/cg/item', pf: 1 },
|
|
|
+ task: { name: '任务', icon: homeIcon('任务-filled'), url: '/admin/work/list', pf: 1 },
|
|
|
+ //goods: { name: '商品', icon: homeIcon('花束'), url: '/admin/goods/list', pf: 1 },
|
|
|
+ flower: { name: '花束', icon: homeIcon('花束'), url: '/admin/goods/list', pf: 1 },
|
|
|
+ order: { name: '订单', icon: homeIcon('订单-filled'), url: '/admin/home/order', type: 4, pf: 1 },
|
|
|
+ payCode: { name: '收款码', icon: homeIcon('收款码'), url: '/admin/cg/code', pf: 1 },
|
|
|
+ flowerCategory: { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/goods/category', pf: 1 },
|
|
|
+ flowerSort: { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/goods/categorySort', pf: 1 },
|
|
|
+ plant: { name: '绿植花材', icon: homeIcon('绿植花材'), url: '/admin/item/list2', pf: 1 },
|
|
|
+ plantCategory: { name: '分类', icon: homeIcon('分类-filled'), url: '/admin/itemClass/list', pf: 1 },
|
|
|
+ plantSort: { name: '排序', icon: homeIcon('排序-filled'), url: '/admin/itemClass/sort', pf: 1 },
|
|
|
+ part: { name: '拆散', icon: homeIcon('拆散'), url: '/admin/part/list', pf: 1 },
|
|
|
+ changePrice: { name: '改价', icon: homeIcon('改价'), url: '/admin/changePrice/list2', pf: 1 },
|
|
|
+ breakage: { name: '报损', icon: homeIcon('报损'), url: '/admin/breakage/list', pf: 1 },
|
|
|
+ calculator: { name: '计算器', icon: homeIcon('计算器-filled'), url: '/admin/tools/calculator', pf: 1 },
|
|
|
+ staff: { name: '员工', icon: homeIcon('员工'), url: '/admin/staff/list', pf: 1 },
|
|
|
+ profit: { name: '利润表', icon: homeIcon('利润表-filled'), url: '/admin/stat/profit', pf: 1 },
|
|
|
+ picText: { name: '图文', icon: homeIcon('图文'), url: '/admin/picText/picTextList', pf: 1 },
|
|
|
+ scanPay: { name: '收款码流水', icon: homeIcon('收款码'), url: '/admin/order/scanPay', pf: 1 },
|
|
|
+ redPacket: { name: '红包管理', icon: homeIcon('红包'), url: '/admin/hb/list', pf: 1 },
|
|
|
+ //moreApply: { name: '更多', icon: homeIcon('more-2'), url: '/admin/home/apply', pf: 1, fixed: true }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 默认菜单配置
|
|
|
+ * quickMenus: 快捷菜单, flowerMenus: 花束菜单, plantMenus: 绿植花材菜单, moreMenus: 更多菜单
|
|
|
+ */
|
|
|
+export const HOME_MENU_DEFAULT_KEYS = {
|
|
|
+ quickMenus: ['hsBill', 'hsQuickBill', 'task'],
|
|
|
+ flowerMenus: ['flower', 'mall', 'payCode', 'flowerCategory', 'flowerSort'],
|
|
|
+ plantMenus: ['plant', 'itemMall', 'itemBill', 'itemQuickBill', 'part', 'changePrice'],
|
|
|
+ moreMenus: ['calculator', 'staff', 'profit', 'picText', 'scanPay', 'payCode', 'redPacket']
|
|
|
+}
|
|
|
+
|
|
|
+export const HOME_MENU_STORAGE_KEYS = {
|
|
|
+ quickMenus: 'mallHome.quickMenus',
|
|
|
+ flowerMenus: 'mallHome.flowerMenus',
|
|
|
+ plantMenus: 'mallHome.plantMenus'
|
|
|
+}
|
|
|
+
|
|
|
+export const HOME_OVERVIEW_FALLBACK = [
|
|
|
+ { name: '花材数', value: 0, url: '/admin/item/list2' },
|
|
|
+ { name: '花材值(元)', value: 0, url: '/admin/stat/kind' },
|
|
|
+ { name: '花束', value: 0, url: '/admin/goods/list' },
|
|
|
+ { name: '客户总数', value: 0, url: '/admin/home/member', type: 4 },
|
|
|
+ { name: '总订单', value: 0, url: '/admin/home/order', type: 4 },
|
|
|
+ { name: '总挂账(元)', value: 0, url: '/admin/custom/showTotalBalance' }
|
|
|
+]
|
|
|
+
|
|
|
+export const getMenuItemKey = item => item.url || item.action || item.name
|
|
|
+
|
|
|
+export const getMenuByKeys = keys => {
|
|
|
+ return keys.map(key => {
|
|
|
+ let item = HOME_MENU_ITEMS[key]
|
|
|
+ if (!item) {
|
|
|
+ APPLY_MENU_GROUPS.some(group => {
|
|
|
+ const found = group.list.find(menu => getMenuItemKey(menu) === key || menu.url === key)
|
|
|
+ if (found) {
|
|
|
+ item = found
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return item ? { ...item, key } : null
|
|
|
+ }).filter(Boolean)
|
|
|
+}
|
|
|
+
|
|
|
+export const MENU_EDITOR_SCOPE = {
|
|
|
+ quickMenus: null,
|
|
|
+ flowerMenus: '花束',
|
|
|
+ plantMenus: '绿植花材'
|
|
|
+}
|
|
|
+
|
|
|
+export const getApplyCatalog = () => {
|
|
|
+ return APPLY_MENU_GROUPS.map(group => ({
|
|
|
+ ...group,
|
|
|
+ list: group.list.map(item => ({ ...item, key: getMenuItemKey(item) }))
|
|
|
+ }))
|
|
|
+}
|
|
|
+
|
|
|
+export const getEditorCatalog = menuType => {
|
|
|
+ const catalog = getApplyCatalog()
|
|
|
+ const scopeTitle = MENU_EDITOR_SCOPE[menuType]
|
|
|
+ if (scopeTitle) {
|
|
|
+ return catalog.filter(group => group.title === scopeTitle)
|
|
|
+ }
|
|
|
+ return catalog
|
|
|
+}
|
|
|
+
|
|
|
+export const isSameMenuEntry = (storedKey, catalogItem) => {
|
|
|
+ if (storedKey === catalogItem.key) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ const stored = HOME_MENU_ITEMS[storedKey]
|
|
|
+ if (!stored) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if (catalogItem.url && stored.url && catalogItem.url === stored.url) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ if (catalogItem.action && stored.action && catalogItem.action === stored.action) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+}
|
|
|
+
|
|
|
+export const findStoredKeyIndex = (keys, catalogItem) => {
|
|
|
+ const direct = keys.indexOf(catalogItem.key)
|
|
|
+ if (direct > -1) {
|
|
|
+ return direct
|
|
|
+ }
|
|
|
+ return keys.findIndex(key => isSameMenuEntry(key, catalogItem))
|
|
|
+}
|
|
|
+
|
|
|
+export const getStoredMenuKeys = type => {
|
|
|
+ const storageKey = HOME_MENU_STORAGE_KEYS[type]
|
|
|
+ const defaultKeys = HOME_MENU_DEFAULT_KEYS[type] || []
|
|
|
+ let storedKeys = []
|
|
|
+ if (storageKey) {
|
|
|
+ const stored = uni.getStorageSync(storageKey)
|
|
|
+ if (Array.isArray(stored)) {
|
|
|
+ storedKeys = stored
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const keys = storedKeys.length ? storedKeys : defaultKeys
|
|
|
+ return keys.filter(key => key !== 'allApply')
|
|
|
+}
|
|
|
+
|
|
|
+export const navigateMenuItem = (vm, item) => {
|
|
|
+ if (item.action && typeof vm[item.action] === 'function') {
|
|
|
+ vm[item.action]()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (vm.loginInfo && vm.loginInfo.pfShopId && Number(vm.loginInfo.pfShopId) > 0 && item.pf === 0) {
|
|
|
+ vm.$msg('开发中')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ vm.$util.pageTo(item)
|
|
|
+}
|
|
|
+
|
|
|
+export const HOME_MENU_BILLING_METHODS = {
|
|
|
+ goItemKjKd() {
|
|
|
+ if (this.myShopInfo && Number(this.myShopInfo.defaultCustomId) > 0) {
|
|
|
+ this.$util.pageTo({ url: '/admin/billing/index2?customId=' + this.myShopInfo.defaultCustomId })
|
|
|
+ } else {
|
|
|
+ this.$msg('请设置快捷开单的对应客户')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ goItemKd() {
|
|
|
+ this.$util.pageTo({ url: '/admin/custom/selectCustom' })
|
|
|
+ },
|
|
|
+ goHsKjKd() {
|
|
|
+ if (this.myShopInfo && Number(this.myShopInfo.defaultCustomId) > 0) {
|
|
|
+ this.$util.pageTo({ url: '/admin/billing/hs?customId=' + this.myShopInfo.defaultCustomId })
|
|
|
+ } else {
|
|
|
+ this.$msg('请设置快捷开单的对应客户')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ goHsKd() {
|
|
|
+ this.$util.pageTo({ url: '/admin/custom/selectCustom?style=3' })
|
|
|
+ }
|
|
|
+}
|