| | |
| | | <div class="flow-row flow-row--top"> |
| | | <template v-for="item in basicFlow" :key="item.key"> |
| | | <div class="flow-item"> |
| | | <article class="flow-node"> |
| | | <article class="flow-node" @click.stop="goPage(item.key)"> |
| | | <div class="flow-node__icon"> |
| | | <svg-icon :icon-class="item.icon" /> |
| | | </div> |
| | |
| | | <div class="flow-grid flow-grid--sale"> |
| | | <template v-for="(item, index) in saleFlow" :key="item.key"> |
| | | <div class="grid-cell"> |
| | | <article class="flow-node"> |
| | | <article class="flow-node" @click.stop="goPage(item.key)"> |
| | | <div class="flow-node__icon" :class="{ 'flow-node__icon--accent': item.accent }"> |
| | | <svg-icon :icon-class="item.icon" /> |
| | | </div> |
| | |
| | | <div class="flow-grid flow-grid--purchase"> |
| | | <template v-for="(item, index) in purchaseFlow" :key="item.key"> |
| | | <div class="grid-cell"> |
| | | <article class="flow-node"> |
| | | <article class="flow-node" @click.stop="goPage(item.key)"> |
| | | <div class="flow-node__icon" :class="{ 'flow-node__icon--accent': item.accent }"> |
| | | <svg-icon :icon-class="item.icon" /> |
| | | </div> |
| | |
| | | <div class="flow-row flow-row--wide"> |
| | | <template v-for="(item, index) in produceFlow" :key="item.key"> |
| | | <div class="flow-item"> |
| | | <article class="flow-node"> |
| | | <article class="flow-node" @click.stop="goPage(item.key)"> |
| | | <div class="flow-node__icon" :class="{ 'flow-node__icon--green': item.green, 'flow-node__icon--accent': item.accent }"> |
| | | <svg-icon :icon-class="item.icon" /> |
| | | </div> |
| | |
| | | <div class="flow-row flow-row--store"> |
| | | <template v-for="(item, index) in storeFlow" :key="item.key"> |
| | | <div class="flow-item"> |
| | | <article class="flow-node"> |
| | | <article class="flow-node" @click.stop="goPage(item.key)"> |
| | | <div class="flow-node__icon"> |
| | | <svg-icon :icon-class="item.icon" /> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { useRouter } from 'vue-router' |
| | | import aiHead from '@/assets/images/head.svg' |
| | | |
| | | const router = useRouter() |
| | | |
| | | const routeMap = { |
| | | 'basic-role': '/system/role', |
| | | 'basic-user': '/system/user', |
| | | 'basic-post': '/system/post', |
| | | 'basic-dept': '/system/dept', |
| | | 'basic-product': '/basicData/product', |
| | | 'basic-approval': '/collaborativeApproval/approvalManagement', |
| | | 'sale-customer': '/salesManagement/customerFile', |
| | | 'sale-quote': '/salesManagement/salesQuotation', |
| | | 'sale-ledger': '/salesManagement/salesLedger', |
| | | 'sale-delivery': '/salesManagement/deliveryLedger', |
| | | 'sale-return': '/salesManagement/returnOrder', |
| | | 'purchase-supplier': '/procurementManagement/supplierManage', |
| | | 'purchase-ledger': '/procurementManagement/procurementLedger', |
| | | 'purchase-return': '/procurementManagement/purchaseReturnOrder', |
| | | 'purchase-contact': '/procurementManagement/paymentLedger', |
| | | 'purchase-report': '/procurementManagement/procurementReport', |
| | | 'produce-process': '/processDesign/productionManagement/productionProcess/index', |
| | | 'produce-bom': '/processDesign/productionManagement/productStructure/index', |
| | | 'produce-route': '/processDesign/processRoute', |
| | | 'produce-order': '/productionManagement/productionOrder', |
| | | 'produce-schedule': '/productionManagement/productionManagement/workOrderEdit/index', |
| | | 'produce-work': '/productionManagement/workOrderManagement', |
| | | 'produce-ledger': '/productionManagement/productionReporting', |
| | | 'produce-cost': '/productionManagement/productionCosting', |
| | | 'store-in': '/inventoryManagement/receiptManagement', |
| | | 'store-out': '/inventoryManagement/dispatchLog', |
| | | 'store-stock': '/inventoryManagement/stockManagement' |
| | | } |
| | | |
| | | function goPage(key) { |
| | | const path = routeMap[key] |
| | | if (path) { |
| | | router.push(path) |
| | | } |
| | | } |
| | | |
| | | const basicFlow = [ |
| | | { key: 'basic-role', name: '角色管理', icon: 'user' }, |
| | |
| | | align-items: center; |
| | | gap: 8px; |
| | | text-align: center; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .flow-node__icon { |