{"ast":null,"code":"import \"core-js/modules/es.parse-int.js\";\nexport default {\n name: 'SalesOrderProcess',\n data: function data() {\n return {\n dialogVisible: false,\n currentNode: null,\n scale: 1,\n panEnabled: false,\n lastPosX: 0,\n lastPosY: 0,\n nodes: [{\n id: 'start',\n type: 'start',\n label: '开始',\n x: 400,\n y: 50,\n url: '/sales/start'\n }, {\n id: 'inquiry',\n type: 'process',\n label: '客户询价',\n x: 400,\n y: 150,\n url: '/sales/inquiry'\n }, {\n id: 'need-analysis',\n type: 'process',\n label: '需求分析',\n x: 400,\n y: 250,\n url: '/sales/analysis'\n }, {\n id: 'solution',\n type: 'process',\n label: '方案制定',\n x: 400,\n y: 350,\n url: '/sales/solution'\n }, {\n id: 'quotation',\n type: 'process',\n label: '报价单生成',\n x: 400,\n y: 450,\n url: '/sales/quotation'\n }, {\n id: 'negotiation',\n type: 'process',\n label: '商务谈判',\n x: 400,\n y: 550,\n url: '/sales/negotiation'\n }, {\n id: 'decision',\n type: 'condition',\n label: '客户决策',\n x: 400,\n y: 650,\n url: '/sales/decision'\n }, {\n id: 'contract',\n type: 'process',\n label: '签订合同',\n x: 600,\n y: 650,\n url: '/sales/contract'\n }, {\n id: 'reject-reason',\n type: 'process',\n label: '原因分析',\n x: 200,\n y: 650,\n url: '/sales/reject'\n }, {\n id: 'followup',\n type: 'process',\n label: '持续跟进',\n x: 200,\n y: 750,\n url: '/sales/followup'\n }, {\n id: 'production',\n type: 'process',\n label: '生产准备',\n x: 600,\n y: 750,\n url: '/sales/production'\n }, {\n id: 'end-success',\n type: 'end',\n label: '流程完成',\n x: 400,\n y: 850,\n url: '/sales/completed'\n }]\n };\n },\n methods: {\n handleNodeClick: function handleNodeClick(node) {\n this.currentNode = node;\n this.dialogVisible = true;\n },\n getNodeTypeName: function getNodeTypeName(type) {\n var types = {\n 'start': '开始节点',\n 'end': '结束节点',\n 'process': '流程节点',\n 'condition': '条件节点'\n };\n return types[type] || type;\n },\n zoomIn: function zoomIn() {\n if (this.scale < 2) {\n this.scale += 0.1;\n }\n },\n zoomOut: function zoomOut() {\n if (this.scale > 0.5) {\n this.scale -= 0.1;\n }\n },\n resetZoom: function resetZoom() {\n this.scale = 1;\n // 重置流程图位置\n if (this.$refs.processFlow) {\n this.$refs.processFlow.style.top = '0px';\n this.$refs.processFlow.style.left = '0px';\n }\n },\n startPanning: function startPanning(e) {\n // 如果是点击流程节点,则不启用平移\n if (e.target.closest('.flow-node')) {\n return;\n }\n this.panEnabled = true;\n this.lastPosX = e.clientX;\n this.lastPosY = e.clientY;\n document.body.style.cursor = 'grabbing';\n },\n pan: function pan(e) {\n if (!this.panEnabled) return;\n var flowEl = this.$refs.processFlow;\n if (!flowEl) return;\n var dx = e.clientX - this.lastPosX;\n var dy = e.clientY - this.lastPosY;\n var currentTop = parseInt(flowEl.style.top || '0');\n var currentLeft = parseInt(flowEl.style.left || '0');\n flowEl.style.top = currentTop + dy + 'px';\n flowEl.style.left = currentLeft + dx + 'px';\n this.lastPosX = e.clientX;\n this.lastPosY = e.clientY;\n },\n stopPanning: function stopPanning() {\n this.panEnabled = false;\n document.body.style.cursor = 'default';\n },\n handleEdit: function handleEdit() {\n this.$message({\n message: \"\\u7F16\\u8F91\\u8282\\u70B9: \".concat(this.currentNode.label),\n type: 'info'\n });\n this.dialogVisible = false;\n },\n handleViewDetails: function handleViewDetails() {\n this.$message({\n message: \"\\u67E5\\u770B\\u8282\\u70B9\\u8BE6\\u60C5: \".concat(this.currentNode.label),\n type: 'success'\n });\n this.dialogVisible = false;\n }\n }\n};","map":{"version":3,"names":["name","data","dialogVisible","currentNode","scale","panEnabled","lastPosX","lastPosY","nodes","id","type","label","x","y","url","methods","handleNodeClick","node","getNodeTypeName","types","zoomIn","zoomOut","resetZoom","$refs","processFlow","style","top","left","startPanning","e","target","closest","clientX","clientY","document","body","cursor","pan","flowEl","dx","dy","currentTop","parseInt","currentLeft","stopPanning","handleEdit","$message","message","concat","handleViewDetails"],"sources":["src/views/SalesOrderProcess.vue"],"sourcesContent":["\n \n \n \n 销售订单业务流程\n 正常运行\n \n \n \n 本流程详细描述了从客户询价到签订合同的销售订单全过程,提高销售转化率和客户满意度。\n \n \n \n 12\n 总步骤\n \n \n 8\n 已完成\n \n \n 7天\n 平均耗时\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 当前缩放: {{ Math.round(scale * 100) }}%\n \n \n \n \n \n {{ node.label }}\n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n 通过\n 未通过\n \n \n \n\n \n \n \n 节点ID: {{ currentNode.id }}\n 类型: {{ getNodeTypeName(currentNode.type) }}\n URL: {{ currentNode.url }}\n \n 编辑节点\n 查看详情\n \n \n \n 关闭\n \n \n \n\n\n\n\n "],"mappings":";AAsKA;EACAA,IAAA;EACAC,IAAA,WAAAA,KAAA;IACA;MACAC,aAAA;MACAC,WAAA;MACAC,KAAA;MACAC,UAAA;MACAC,QAAA;MACAC,QAAA;MACAC,KAAA,GACA;QACAC,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA,GACA;QACAL,EAAA;QACAC,IAAA;QACAC,KAAA;QACAC,CAAA;QACAC,CAAA;QACAC,GAAA;MACA;IAEA;EACA;EACAC,OAAA;IACAC,eAAA,WAAAA,gBAAAC,IAAA;MACA,KAAAd,WAAA,GAAAc,IAAA;MACA,KAAAf,aAAA;IACA;IACAgB,eAAA,WAAAA,gBAAAR,IAAA;MACA,IAAAS,KAAA;QACA;QACA;QACA;QACA;MACA;MACA,OAAAA,KAAA,CAAAT,IAAA,KAAAA,IAAA;IACA;IACAU,MAAA,WAAAA,OAAA;MACA,SAAAhB,KAAA;QACA,KAAAA,KAAA;MACA;IACA;IACAiB,OAAA,WAAAA,QAAA;MACA,SAAAjB,KAAA;QACA,KAAAA,KAAA;MACA;IACA;IACAkB,SAAA,WAAAA,UAAA;MACA,KAAAlB,KAAA;MACA;MACA,SAAAmB,KAAA,CAAAC,WAAA;QACA,KAAAD,KAAA,CAAAC,WAAA,CAAAC,KAAA,CAAAC,GAAA;QACA,KAAAH,KAAA,CAAAC,WAAA,CAAAC,KAAA,CAAAE,IAAA;MACA;IACA;IACAC,YAAA,WAAAA,aAAAC,CAAA;MACA;MACA,IAAAA,CAAA,CAAAC,MAAA,CAAAC,OAAA;QACA;MACA;MAEA,KAAA1B,UAAA;MACA,KAAAC,QAAA,GAAAuB,CAAA,CAAAG,OAAA;MACA,KAAAzB,QAAA,GAAAsB,CAAA,CAAAI,OAAA;MACAC,QAAA,CAAAC,IAAA,CAAAV,KAAA,CAAAW,MAAA;IACA;IACAC,GAAA,WAAAA,IAAAR,CAAA;MACA,UAAAxB,UAAA;MAEA,IAAAiC,MAAA,QAAAf,KAAA,CAAAC,WAAA;MACA,KAAAc,MAAA;MAEA,IAAAC,EAAA,GAAAV,CAAA,CAAAG,OAAA,QAAA1B,QAAA;MACA,IAAAkC,EAAA,GAAAX,CAAA,CAAAI,OAAA,QAAA1B,QAAA;MAEA,IAAAkC,UAAA,GAAAC,QAAA,CAAAJ,MAAA,CAAAb,KAAA,CAAAC,GAAA;MACA,IAAAiB,WAAA,GAAAD,QAAA,CAAAJ,MAAA,CAAAb,KAAA,CAAAE,IAAA;MAEAW,MAAA,CAAAb,KAAA,CAAAC,GAAA,GAAAe,UAAA,GAAAD,EAAA;MACAF,MAAA,CAAAb,KAAA,CAAAE,IAAA,GAAAgB,WAAA,GAAAJ,EAAA;MAEA,KAAAjC,QAAA,GAAAuB,CAAA,CAAAG,OAAA;MACA,KAAAzB,QAAA,GAAAsB,CAAA,CAAAI,OAAA;IACA;IACAW,WAAA,WAAAA,YAAA;MACA,KAAAvC,UAAA;MACA6B,QAAA,CAAAC,IAAA,CAAAV,KAAA,CAAAW,MAAA;IACA;IACAS,UAAA,WAAAA,WAAA;MACA,KAAAC,QAAA;QACAC,OAAA,+BAAAC,MAAA,MAAA7C,WAAA,CAAAQ,KAAA;QACAD,IAAA;MACA;MACA,KAAAR,aAAA;IACA;IACA+C,iBAAA,WAAAA,kBAAA;MACA,KAAAH,QAAA;QACAC,OAAA,2CAAAC,MAAA,MAAA7C,WAAA,CAAAQ,KAAA;QACAD,IAAA;MACA;MACA,KAAAR,aAAA;IACA;EACA;AACA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
本流程详细描述了从客户询价到签订合同的销售订单全过程,提高销售转化率和客户满意度。
节点ID: {{ currentNode.id }}
类型: {{ getNodeTypeName(currentNode.type) }}
URL: {{ currentNode.url }}