diagram.svg 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  1. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3500 1650">
  2. <!-- Background -->
  3. <rect x="0" y="0" width="3500" height="1650" fill="#FAFAFA"/>
  4. <!-- Title Bar -->
  5. <rect x="0" y="0" width="3500" height="52" fill="#2C3E50" rx="0"/>
  6. <text x="1750" y="34" text-anchor="middle" font-size="20" fill="#FFFFFF" font-weight="bold">汇丰银行权益中台业务流程图</text>
  7. <!-- Column Headers -->
  8. <rect x="65" y="52" width="3435" height="40" fill="#34495E"/>
  9. <line x1="65" y1="52" x2="65" y2="92" stroke="#7F8C8D" stroke-width="1"/>
  10. <text x="280" y="78" text-anchor="middle" font-size="13" fill="#FFFFFF" font-weight="bold">规则管理</text>
  11. <text x="670" y="78" text-anchor="middle" font-size="13" fill="#FFFFFF" font-weight="bold">人群圈选</text>
  12. <text x="1100" y="78" text-anchor="middle" font-size="13" fill="#FFFFFF" font-weight="bold">权益管理</text>
  13. <text x="1550" y="78" text-anchor="middle" font-size="13" fill="#FFFFFF" font-weight="bold">券码导入</text>
  14. <text x="2060" y="78" text-anchor="middle" font-size="13" fill="#FFFFFF" font-weight="bold">发放计划(测试和正式流程相同)</text>
  15. <text x="2950" y="78" text-anchor="middle" font-size="13" fill="#FFFFFF" font-weight="bold">页面管理</text>
  16. <!-- Column Dividers -->
  17. <line x1="490" y1="92" x2="490" y2="1650" stroke="#BDC3C7" stroke-width="1" stroke-dasharray="6,4"/>
  18. <line x1="870" y1="92" x2="870" y2="1650" stroke="#BDC3C7" stroke-width="1" stroke-dasharray="6,4"/>
  19. <line x1="1330" y1="92" x2="1330" y2="1650" stroke="#BDC3C7" stroke-width="1" stroke-dasharray="6,4"/>
  20. <line x1="1780" y1="92" x2="1780" y2="1650" stroke="#BDC3C7" stroke-width="1" stroke-dasharray="6,4"/>
  21. <line x1="2350" y1="92" x2="2350" y2="1650" stroke="#2980B9" stroke-width="1.5" stroke-dasharray="8,4"/>
  22. <!-- Row Divider (Maker/Checker) -->
  23. <line x1="0" y1="1100" x2="3500" y2="1100" stroke="#2C3E50" stroke-width="2"/>
  24. <!-- Row Labels -->
  25. <rect x="0" y="92" width="65" height="1008" fill="#ECF0F1"/>
  26. <text x="32" y="600" text-anchor="middle" font-size="16" fill="#2C3E50" font-weight="bold" transform="rotate(-90,32,600)">Maker</text>
  27. <rect x="0" y="1100" width="65" height="550" fill="#ECF0F1"/>
  28. <text x="32" y="1375" text-anchor="middle" font-size="16" fill="#2C3E50" font-weight="bold" transform="rotate(-90,32,1375)">Checker</text>
  29. <!-- Outer border -->
  30. <rect x="0" y="0" width="3500" height="1650" fill="none" stroke="#2C3E50" stroke-width="2" rx="0"/>
  31. <!-- ==================== MAKER ROW ==================== -->
  32. <!-- === Column 1: 规则管理 (Maker) === -->
  33. <g id="maker-rules">
  34. <rect x="125" y="120" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  35. <text x="190" y="146" text-anchor="middle" font-size="12" fill="#2C3E50">新建规则组</text>
  36. <rect x="310" y="120" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  37. <text x="375" y="146" text-anchor="middle" font-size="12" fill="#2C3E50">规则组上线</text>
  38. <!-- Arrow: 新建规则组 → 规则组上线 -->
  39. <line x1="255" y1="141" x2="306" y2="141" stroke="#2C3E50" stroke-width="1.2"/>
  40. <polygon points="306,137 314,141 306,145" fill="#2C3E50"/>
  41. <!-- Arrow down from 新建规则组 -->
  42. <line x1="190" y1="162" x2="190" y2="200" stroke="#2C3E50" stroke-width="1.2"/>
  43. <polygon points="186,200 190,208 194,200" fill="#2C3E50"/>
  44. <rect x="125" y="210" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  45. <text x="190" y="236" text-anchor="middle" font-size="12" fill="#2C3E50">完成创建</text>
  46. <!-- Arrow down -->
  47. <line x1="190" y1="252" x2="190" y2="290" stroke="#2C3E50" stroke-width="1.2"/>
  48. <polygon points="186,290 190,298 194,290" fill="#2C3E50"/>
  49. <!-- Diamond: 是否存在相同规则组 -->
  50. <polygon points="190,300 270,345 190,390 110,345" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  51. <text x="190" y="340" text-anchor="middle" font-size="10" fill="#2C3E50">是否存在相同</text>
  52. <text x="190" y="355" text-anchor="middle" font-size="10" fill="#2C3E50">规则组</text>
  53. <!-- 是 branch (left-down) -->
  54. <text x="100" y="340" text-anchor="middle" font-size="11" fill="#E74C3C" font-weight="bold">是</text>
  55. <line x1="110" y1="345" x2="85" y2="345" stroke="#2C3E50" stroke-width="1.2"/>
  56. <line x1="85" y1="345" x2="85" y2="440" stroke="#2C3E50" stroke-width="1.2"/>
  57. <polygon points="81,440 85,448 89,440" fill="#2C3E50"/>
  58. <!-- 否 branch (down) -->
  59. <text x="200" y="398" text-anchor="middle" font-size="11" fill="#27AE60" font-weight="bold">否</text>
  60. <line x1="190" y1="390" x2="190" y2="440" stroke="#2C3E50" stroke-width="1.2"/>
  61. <rect x="85" y="450" width="120" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  62. <text x="145" y="476" text-anchor="middle" font-size="12" fill="#2C3E50">规则组修改</text>
  63. <rect x="250" y="450" width="140" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  64. <text x="320" y="476" text-anchor="middle" font-size="12" fill="#2C3E50">规则组提交审核</text>
  65. <!-- Arrow: 规则组修改 → 规则组提交审核 -->
  66. <line x1="205" y1="471" x2="246" y2="471" stroke="#2C3E50" stroke-width="1.2"/>
  67. <polygon points="246,467 254,471 246,475" fill="#2C3E50"/>
  68. </g>
  69. <!-- === Column 2: 人群圈选 (Maker) === -->
  70. <g id="maker-crowd">
  71. <rect x="510" y="120" width="150" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  72. <text x="585" y="138" text-anchor="middle" font-size="11" fill="#2C3E50">新增/修改自动</text>
  73. <text x="585" y="152" text-anchor="middle" font-size="11" fill="#2C3E50">圈选规则</text>
  74. <rect x="700" y="120" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  75. <text x="765" y="146" text-anchor="middle" font-size="12" fill="#2C3E50">手动圈选人群</text>
  76. <!-- Arrow down from 新增/修改 -->
  77. <line x1="585" y1="162" x2="585" y2="200" stroke="#2C3E50" stroke-width="1.2"/>
  78. <polygon points="581,200 585,208 589,200" fill="#2C3E50"/>
  79. <rect x="510" y="210" width="150" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  80. <text x="585" y="236" text-anchor="middle" font-size="12" fill="#2C3E50">运行圈选规则</text>
  81. <!-- Arrow down -->
  82. <line x1="585" y1="252" x2="585" y2="290" stroke="#2C3E50" stroke-width="1.2"/>
  83. <polygon points="581,290 585,298 589,290" fill="#2C3E50"/>
  84. <rect x="505" y="300" width="160" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  85. <text x="585" y="318" text-anchor="middle" font-size="11" fill="#2C3E50">验证count、</text>
  86. <text x="585" y="332" text-anchor="middle" font-size="11" fill="#2C3E50">sample数据</text>
  87. <!-- Arrow down -->
  88. <line x1="585" y1="342" x2="585" y2="380" stroke="#2C3E50" stroke-width="1.2"/>
  89. <polygon points="581,380 585,388 589,380" fill="#2C3E50"/>
  90. <!-- Diamond: 是否验证通过 -->
  91. <polygon points="585,390 660,430 585,470 510,430" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  92. <text x="585" y="434" text-anchor="middle" font-size="10" fill="#2C3E50">是否验证通过</text>
  93. <!-- 否 branch (left, loops back up) -->
  94. <text x="500" y="425" text-anchor="middle" font-size="11" fill="#E74C3C" font-weight="bold">否</text>
  95. <line x1="510" y1="430" x2="495" y2="430" stroke="#2C3E50" stroke-width="1.2"/>
  96. <line x1="495" y1="430" x2="495" y2="141" stroke="#2C3E50" stroke-width="1.2"/>
  97. <line x1="495" y1="141" x2="506" y2="141" stroke="#2C3E50" stroke-width="1.2"/>
  98. <polygon points="506,137 514,141 506,145" fill="#2C3E50"/>
  99. <!-- 是 branch (down) -->
  100. <text x="596" y="478" text-anchor="middle" font-size="11" fill="#27AE60" font-weight="bold">是</text>
  101. <line x1="585" y1="470" x2="585" y2="510" stroke="#2C3E50" stroke-width="1.2"/>
  102. <polygon points="581,510 585,518 589,510" fill="#2C3E50"/>
  103. <rect x="520" y="520" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  104. <text x="585" y="546" text-anchor="middle" font-size="12" fill="#2C3E50">提交审核</text>
  105. <!-- Arrow down -->
  106. <line x1="585" y1="562" x2="585" y2="600" stroke="#2C3E50" stroke-width="1.2"/>
  107. <polygon points="581,600 585,608 589,600" fill="#2C3E50"/>
  108. <rect x="510" y="610" width="150" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  109. <text x="585" y="636" text-anchor="middle" font-size="12" fill="#2C3E50">上线圈选规则</text>
  110. <!-- Arrow down -->
  111. <line x1="585" y1="652" x2="585" y2="690" stroke="#2C3E50" stroke-width="1.2"/>
  112. <polygon points="581,690 585,698 589,690" fill="#2C3E50"/>
  113. <rect x="490" y="700" width="190" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  114. <text x="585" y="726" text-anchor="middle" font-size="12" fill="#2C3E50">上送fulllist给行内</text>
  115. </g>
  116. <!-- === Column 3: 权益管理 (Maker) === -->
  117. <g id="maker-equity">
  118. <rect x="900" y="120" width="160" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  119. <text x="980" y="146" text-anchor="middle" font-size="12" fill="#2C3E50">填写权益商品信息</text>
  120. <!-- Arrow down -->
  121. <line x1="980" y1="162" x2="980" y2="200" stroke="#2C3E50" stroke-width="1.2"/>
  122. <polygon points="976,200 980,208 984,200" fill="#2C3E50"/>
  123. <!-- Diamond: 是否权益平台兑换 -->
  124. <polygon points="980,210 1075,260 980,310 885,260" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  125. <text x="980" y="255" text-anchor="middle" font-size="10" fill="#2C3E50">是否权益平台</text>
  126. <text x="980" y="268" text-anchor="middle" font-size="10" fill="#2C3E50">兑换</text>
  127. <!-- 否 branch (left) -->
  128. <text x="880" y="252" text-anchor="end" font-size="11" fill="#E74C3C" font-weight="bold">否</text>
  129. <line x1="885" y1="260" x2="835" y2="260" stroke="#2C3E50" stroke-width="1.2"/>
  130. <line x1="835" y1="260" x2="835" y2="340" stroke="#2C3E50" stroke-width="1.2"/>
  131. <polygon points="831,340 835,348 839,340" fill="#2C3E50"/>
  132. <!-- Red bordered box for 否 path -->
  133. <rect x="770" y="350" width="130" height="50" rx="5" fill="#FFF5F5" stroke="#E74C3C" stroke-width="1.8"/>
  134. <text x="835" y="372" text-anchor="middle" font-size="11" fill="#2C3E50">填写外部</text>
  135. <text x="835" y="386" text-anchor="middle" font-size="11" fill="#2C3E50">权益链接</text>
  136. <!-- 是 branch (right) -->
  137. <text x="1085" y="252" text-anchor="start" font-size="11" fill="#27AE60" font-weight="bold">是</text>
  138. <line x1="1075" y1="260" x2="1125" y2="260" stroke="#2C3E50" stroke-width="1.2"/>
  139. <line x1="1125" y1="260" x2="1125" y2="340" stroke="#2C3E50" stroke-width="1.2"/>
  140. <polygon points="1121,340 1125,348 1129,340" fill="#2C3E50"/>
  141. <!-- Red bordered box for 是 path -->
  142. <rect x="1050" y="350" width="150" height="50" rx="5" fill="#FFF5F5" stroke="#E74C3C" stroke-width="1.8"/>
  143. <text x="1125" y="372" text-anchor="middle" font-size="11" fill="#2C3E50">选商品类型</text>
  144. <text x="1125" y="386" text-anchor="middle" font-size="11" fill="#2C3E50">(券码/立减金)</text>
  145. <!-- Both paths merge down -->
  146. <line x1="835" y1="400" x2="835" y2="445" stroke="#2C3E50" stroke-width="1.2"/>
  147. <line x1="835" y1="445" x2="980" y2="445" stroke="#2C3E50" stroke-width="1.2"/>
  148. <line x1="1125" y1="400" x2="1125" y2="445" stroke="#2C3E50" stroke-width="1.2"/>
  149. <line x1="1125" y1="445" x2="980" y2="445" stroke="#2C3E50" stroke-width="1.2"/>
  150. <line x1="980" y1="445" x2="980" y2="480" stroke="#2C3E50" stroke-width="1.2"/>
  151. <polygon points="976,480 980,488 984,480" fill="#2C3E50"/>
  152. <rect x="890" y="490" width="180" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  153. <text x="980" y="516" text-anchor="middle" font-size="12" fill="#2C3E50">设置权益商品规则</text>
  154. <!-- Arrow down -->
  155. <line x1="980" y1="532" x2="980" y2="570" stroke="#2C3E50" stroke-width="1.2"/>
  156. <polygon points="976,570 980,578 984,570" fill="#2C3E50"/>
  157. <rect x="890" y="580" width="180" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  158. <text x="980" y="606" text-anchor="middle" font-size="12" fill="#2C3E50">提交权益商品信息</text>
  159. </g>
  160. <!-- === Column 4: 券码导入 (Maker) === -->
  161. <g id="maker-coupon">
  162. <rect x="1370" y="120" width="190" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  163. <text x="1465" y="138" text-anchor="middle" font-size="11" fill="#2C3E50">新增券码信息(券码、</text>
  164. <text x="1465" y="152" text-anchor="middle" font-size="11" fill="#2C3E50">生效时间、过期时间等)</text>
  165. <!-- Arrow down -->
  166. <line x1="1465" y1="162" x2="1465" y2="200" stroke="#2C3E50" stroke-width="1.2"/>
  167. <polygon points="1461,200 1465,208 1469,200" fill="#2C3E50"/>
  168. <rect x="1390" y="210" width="150" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  169. <text x="1465" y="236" text-anchor="middle" font-size="12" fill="#2C3E50">上传券码文件</text>
  170. <!-- Arrow down -->
  171. <line x1="1465" y1="252" x2="1465" y2="290" stroke="#2C3E50" stroke-width="1.2"/>
  172. <polygon points="1461,290 1465,298 1469,290" fill="#2C3E50"/>
  173. <rect x="1390" y="300" width="150" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  174. <text x="1465" y="326" text-anchor="middle" font-size="12" fill="#2C3E50">提交券码信息</text>
  175. <!-- Arrow down -->
  176. <line x1="1465" y1="342" x2="1465" y2="380" stroke="#2C3E50" stroke-width="1.2"/>
  177. <polygon points="1461,380 1465,388 1469,380" fill="#2C3E50"/>
  178. <rect x="1400" y="390" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  179. <text x="1465" y="416" text-anchor="middle" font-size="12" fill="#2C3E50">校验券码</text>
  180. <!-- Arrow down to diamond -->
  181. <line x1="1465" y1="432" x2="1465" y2="460" stroke="#2C3E50" stroke-width="1.2"/>
  182. <polygon points="1461,460 1465,468 1469,460" fill="#2C3E50"/>
  183. <!-- Diamond: 校验结果 -->
  184. <polygon points="1465,470 1545,510 1465,550 1385,510" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  185. <text x="1465" y="514" text-anchor="middle" font-size="10" fill="#2C3E50">全部校验成功</text>
  186. <!-- 全部失败 branch (left) -->
  187. <text x="1375" y="500" text-anchor="end" font-size="10" fill="#E74C3C">全部失败</text>
  188. <line x1="1385" y1="510" x2="1350" y2="510" stroke="#2C3E50" stroke-width="1.2"/>
  189. <line x1="1350" y1="510" x2="1350" y2="600" stroke="#2C3E50" stroke-width="1.2"/>
  190. <polygon points="1346,600 1350,608 1354,600" fill="#2C3E50"/>
  191. <rect x="1340" y="610" width="120" height="42" rx="5" fill="#FFFFFF" stroke="#E74C3C" stroke-width="1.5"/>
  192. <text x="1400" y="636" text-anchor="middle" font-size="11" fill="#2C3E50">全部不入库</text>
  193. <!-- 部分失败 branch (middle-left) -->
  194. <text x="1460" y="558" text-anchor="middle" font-size="10" fill="#E67E22">部分失败</text>
  195. <line x1="1465" y1="550" x2="1465" y2="600" stroke="#2C3E50" stroke-width="1.2"/>
  196. <polygon points="1461,600 1465,608 1469,600" fill="#2C3E50"/>
  197. <rect x="1470" y="610" width="140" height="42" rx="5" fill="#FFFFFF" stroke="#E67E22" stroke-width="1.5"/>
  198. <text x="1540" y="628" text-anchor="middle" font-size="10" fill="#2C3E50">校验成功的</text>
  199. <text x="1540" y="642" text-anchor="middle" font-size="10" fill="#2C3E50">入库</text>
  200. <!-- 全部成功 branch (right) -->
  201. <text x="1555" y="500" text-anchor="start" font-size="10" fill="#27AE60">全部成功</text>
  202. <line x1="1545" y1="510" x2="1620" y2="510" stroke="#2C3E50" stroke-width="1.2"/>
  203. <line x1="1620" y1="510" x2="1620" y2="600" stroke="#2C3E50" stroke-width="1.2"/>
  204. <polygon points="1616,600 1620,608 1624,600" fill="#2C3E50"/>
  205. <rect x="1620" y="610" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#27AE60" stroke-width="1.5"/>
  206. <text x="1685" y="636" text-anchor="middle" font-size="12" fill="#2C3E50">券码入库</text>
  207. <!-- 下载失败明细 (from 全部不入库 and 校验成功的入库) -->
  208. <line x1="1400" y1="652" x2="1400" y2="700" stroke="#2C3E50" stroke-width="1.2"/>
  209. <line x1="1400" y1="700" x2="1500" y2="700" stroke="#2C3E50" stroke-width="1.2"/>
  210. <line x1="1540" y1="652" x2="1540" y2="700" stroke="#2C3E50" stroke-width="1.2"/>
  211. <line x1="1540" y1="700" x2="1500" y2="700" stroke="#2C3E50" stroke-width="1.2"/>
  212. <line x1="1500" y1="700" x2="1500" y2="730" stroke="#2C3E50" stroke-width="1.2"/>
  213. <polygon points="1496,730 1500,738 1504,730" fill="#2C3E50"/>
  214. <rect x="1400" y="740" width="170" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  215. <text x="1485" y="766" text-anchor="middle" font-size="12" fill="#2C3E50">下载失败明细文件</text>
  216. </g>
  217. <!-- === Column 5: 发放计划 (Maker) === -->
  218. <g id="maker-plan">
  219. <rect x="1830" y="120" width="160" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  220. <text x="1910" y="146" text-anchor="middle" font-size="12" fill="#2C3E50">新建发放计划</text>
  221. <!-- Arrow down -->
  222. <line x1="1910" y1="162" x2="1910" y2="200" stroke="#2C3E50" stroke-width="1.2"/>
  223. <polygon points="1906,200 1910,208 1914,200" fill="#2C3E50"/>
  224. <rect x="1810" y="210" width="200" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  225. <text x="1910" y="228" text-anchor="middle" font-size="11" fill="#2C3E50">填写发放信息,选</text>
  226. <text x="1910" y="242" text-anchor="middle" font-size="11" fill="#2C3E50">择客群、权益</text>
  227. <!-- Arrow down -->
  228. <line x1="1910" y1="252" x2="1910" y2="290" stroke="#2C3E50" stroke-width="1.2"/>
  229. <polygon points="1906,290 1910,298 1914,290" fill="#2C3E50"/>
  230. <rect x="1840" y="300" width="140" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  231. <text x="1910" y="326" text-anchor="middle" font-size="12" fill="#2C3E50">提交审核</text>
  232. </g>
  233. <!-- === Column 6: 页面管理 (Maker) === -->
  234. <g id="maker-page">
  235. <!-- Sub-column 1: 介绍页/首页 -->
  236. <rect x="2400" y="120" width="170" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  237. <text x="2485" y="138" text-anchor="middle" font-size="11" fill="#2C3E50">编辑权益介绍页、</text>
  238. <text x="2485" y="152" text-anchor="middle" font-size="11" fill="#2C3E50">权益首页</text>
  239. <!-- Sub-column 2: 新建组装页 -->
  240. <rect x="2620" y="120" width="170" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  241. <text x="2705" y="146" text-anchor="middle" font-size="12" fill="#2C3E50">新建权益组装页</text>
  242. <!-- Sub-column 3: 编辑组装页 -->
  243. <rect x="2840" y="120" width="170" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  244. <text x="2925" y="146" text-anchor="middle" font-size="12" fill="#2C3E50">编辑权益组装页</text>
  245. <!-- Arrow down from 新建组装页 -->
  246. <line x1="2705" y1="162" x2="2705" y2="200" stroke="#2C3E50" stroke-width="1.2"/>
  247. <polygon points="2701,200 2705,208 2709,200" fill="#2C3E50"/>
  248. <rect x="2600" y="210" width="210" height="50" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  249. <text x="2705" y="232" text-anchor="middle" font-size="11" fill="#2C3E50">配置页面组件</text>
  250. <text x="2705" y="248" text-anchor="middle" font-size="11" fill="#2C3E50">(图片、文案、按钮、模块)</text>
  251. <!-- Arrow right from 编辑组装页 -->
  252. <line x1="2925" y1="162" x2="2925" y2="200" stroke="#2C3E50" stroke-width="1.2"/>
  253. <polygon points="2921,200 2925,208 2929,200" fill="#2C3E50"/>
  254. <rect x="2850" y="210" width="180" height="50" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  255. <text x="2940" y="232" text-anchor="middle" font-size="11" fill="#2C3E50">更改权益组装页</text>
  256. <text x="2940" y="248" text-anchor="middle" font-size="11" fill="#2C3E50">基础信息</text>
  257. <!-- Arrow down from 配置页面组件 -->
  258. <line x1="2705" y1="260" x2="2705" y2="300" stroke="#2C3E50" stroke-width="1.2"/>
  259. <polygon points="2701,300 2705,308 2709,300" fill="#2C3E50"/>
  260. <!-- Arrow from 更改基础信息 to right -->
  261. <line x1="2940" y1="260" x2="2940" y2="300" stroke="#2C3E50" stroke-width="1.2"/>
  262. <polygon points="2936,300 2940,308 2944,300" fill="#2C3E50"/>
  263. <rect x="2830" y="310" width="200" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  264. <text x="2930" y="336" text-anchor="middle" font-size="11" fill="#2C3E50">调整权益商品展示顺序</text>
  265. <!-- Arrow down -->
  266. <line x1="2705" y1="310" x2="2705" y2="400" stroke="#2C3E50" stroke-width="1.2"/>
  267. <rect x="2640" y="400" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  268. <text x="2705" y="426" text-anchor="middle" font-size="12" fill="#2C3E50">保存草稿</text>
  269. <!-- Arrow down -->
  270. <line x1="2705" y1="442" x2="2705" y2="480" stroke="#2C3E50" stroke-width="1.2"/>
  271. <polygon points="2701,480 2705,488 2709,480" fill="#2C3E50"/>
  272. <rect x="2630" y="490" width="150" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  273. <text x="2705" y="516" text-anchor="middle" font-size="12" fill="#2C3E50">生成预览链接</text>
  274. <!-- 组装页不符合预期 feedback -->
  275. <text x="3150" y="400" text-anchor="middle" font-size="11" fill="#E74C3C">组装页不符合预期</text>
  276. <line x1="3150" y1="410" x2="3150" y2="310" stroke="#E74C3C" stroke-width="1.2" stroke-dasharray="4,3"/>
  277. <line x1="3150" y1="310" x2="3040" y2="310" stroke="#E74C3C" stroke-width="1.2" stroke-dasharray="4,3"/>
  278. <polygon points="3040,306 3032,310 3040,314" fill="#E74C3C"/>
  279. </g>
  280. <!-- ==================== CHECKER ROW ==================== -->
  281. <!-- === Column 1: 规则管理 (Checker) === -->
  282. <g id="checker-rules">
  283. <rect x="125" y="1160" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  284. <text x="190" y="1186" text-anchor="middle" font-size="12" fill="#2C3E50">审核规则组</text>
  285. <!-- Arrow down -->
  286. <line x1="190" y1="1202" x2="190" y2="1240" stroke="#2C3E50" stroke-width="1.2"/>
  287. <polygon points="186,1240 190,1248 194,1240" fill="#2C3E50"/>
  288. <!-- Diamond: 是否通过 -->
  289. <polygon points="190,1250 255,1290 190,1330 125,1290" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  290. <text x="190" y="1294" text-anchor="middle" font-size="10" fill="#2C3E50">是否通过</text>
  291. <text x="118" y="1285" text-anchor="end" font-size="11" fill="#E74C3C" font-weight="bold">否</text>
  292. </g>
  293. <!-- === Column 2: 人群圈选 (Checker) — 无 === -->
  294. <!-- === Column 3: 权益管理 (Checker) === -->
  295. <g id="checker-equity">
  296. <!-- Yellow highlight region -->
  297. <rect x="880" y="1130" width="430" height="400" rx="8" fill="none" stroke="#F1C40F" stroke-width="2" stroke-dasharray="8,4"/>
  298. <rect x="920" y="1160" width="170" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  299. <text x="1005" y="1178" text-anchor="middle" font-size="11" fill="#2C3E50">审核权益商品</text>
  300. <text x="1005" y="1192" text-anchor="middle" font-size="11" fill="#2C3E50">信息</text>
  301. <!-- Arrow down -->
  302. <line x1="1005" y1="1202" x2="1005" y2="1240" stroke="#2C3E50" stroke-width="1.2"/>
  303. <polygon points="1001,1240 1005,1248 1009,1240" fill="#2C3E50"/>
  304. <!-- Diamond: 是否通过 -->
  305. <polygon points="1005,1250 1080,1290 1005,1330 930,1290" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  306. <text x="1005" y="1294" text-anchor="middle" font-size="10" fill="#2C3E50">是否通过</text>
  307. <text x="920" y="1285" text-anchor="end" font-size="11" fill="#E74C3C" font-weight="bold">否</text>
  308. </g>
  309. <!-- === Column 5: 发放计划 (Checker) === -->
  310. <g id="checker-plan">
  311. <rect x="1830" y="1160" width="160" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  312. <text x="1910" y="1186" text-anchor="middle" font-size="12" fill="#2C3E50">审核发放计划</text>
  313. <!-- Arrow down -->
  314. <line x1="1910" y1="1202" x2="1910" y2="1240" stroke="#2C3E50" stroke-width="1.2"/>
  315. <polygon points="1906,1240 1910,1248 1914,1240" fill="#2C3E50"/>
  316. <!-- Diamond: 是否通过 -->
  317. <polygon points="1910,1250 1990,1290 1910,1330 1830,1290" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  318. <text x="1910" y="1294" text-anchor="middle" font-size="10" fill="#2C3E50">是否通过</text>
  319. <text x="1822" y="1285" text-anchor="end" font-size="11" fill="#E74C3C" font-weight="bold">否</text>
  320. <!-- 是 branch (down) -->
  321. <text x="1920" y="1340" text-anchor="start" font-size="11" fill="#27AE60" font-weight="bold">是</text>
  322. <line x1="1910" y1="1330" x2="1910" y2="1380" stroke="#2C3E50" stroke-width="1.2"/>
  323. <polygon points="1906,1380 1910,1388 1914,1380" fill="#2C3E50"/>
  324. <rect x="1830" y="1390" width="160" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  325. <text x="1910" y="1416" text-anchor="middle" font-size="12" fill="#2C3E50">发放计划生效</text>
  326. <!-- Arrow right: to 页面管理 check -->
  327. <line x1="1990" y1="1290" x2="2100" y2="1290" stroke="#2C3E50" stroke-width="1.2"/>
  328. <!-- Diamond: 介绍页/首页是否符合预期 -->
  329. <polygon points="2200,1250 2310,1290 2200,1330 2090,1290" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  330. <text x="2200" y="1284" text-anchor="middle" font-size="9" fill="#2C3E50">介绍页/首页</text>
  331. <text x="2200" y="1298" text-anchor="middle" font-size="9" fill="#2C3E50">是否符合预期</text>
  332. <!-- 不符合 (up, back to page management) -->
  333. <text x="2200" y="1245" text-anchor="middle" font-size="10" fill="#E74C3C">不符合预期</text>
  334. <line x1="2200" y1="1250" x2="2200" y2="1100" stroke="#E74C3C" stroke-width="1.2" stroke-dasharray="4,3"/>
  335. <polygon points="2196,1100 2200,1092 2204,1100" fill="#E74C3C"/>
  336. </g>
  337. <!-- === Column 6: 页面管理 (Checker) === -->
  338. <g id="checker-page">
  339. <!-- Yellow highlight region -->
  340. <rect x="2380" y="1130" width="1080" height="470" rx="8" fill="none" stroke="#F1C40F" stroke-width="2" stroke-dasharray="8,4"/>
  341. <rect x="2600" y="1160" width="130" height="42" rx="5" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  342. <text x="2665" y="1186" text-anchor="middle" font-size="12" fill="#2C3E50">预览页面</text>
  343. <!-- Arrow right -->
  344. <line x1="2730" y1="1181" x2="2780" y2="1181" stroke="#2C3E50" stroke-width="1.2"/>
  345. <polygon points="2780,1177 2788,1181 2780,1185" fill="#2C3E50"/>
  346. <!-- Diamond: 是否符合预期 -->
  347. <polygon points="2890,1145 2990,1181 2890,1217 2790,1181" fill="#FFFFFF" stroke="#2C3E50" stroke-width="1.5"/>
  348. <text x="2890" y="1176" text-anchor="middle" font-size="9" fill="#2C3E50">是否符合预期</text>
  349. <text x="2890" y="1190" text-anchor="middle" font-size="9" fill="#2C3E50">(组装页)</text>
  350. <!-- 不符合 branch (up) -->
  351. <text x="2890" y="1138" text-anchor="middle" font-size="10" fill="#E74C3C">组装页不符合预期</text>
  352. <line x1="2890" y1="1145" x2="2890" y2="1100" stroke="#E74C3C" stroke-width="1.2" stroke-dasharray="4,3"/>
  353. <polygon points="2886,1100 2890,1092 2894,1100" fill="#E74C3C"/>
  354. <!-- 符合 branch (right) -->
  355. <text x="3010" y="1175" text-anchor="start" font-size="11" fill="#27AE60" font-weight="bold">符合</text>
  356. <line x1="2990" y1="1181" x2="3060" y2="1181" stroke="#2C3E50" stroke-width="1.2"/>
  357. <polygon points="3060,1177 3068,1181 3060,1185" fill="#2C3E50"/>
  358. <!-- Arrow down -->
  359. <line x1="3120" y1="1181" x2="3200" y2="1181" stroke="#2C3E50" stroke-width="1.2"/>
  360. <rect x="3070" y="1160" width="130" height="42" rx="5" fill="#27AE60" stroke="#1E8449" stroke-width="1.5"/>
  361. <text x="3135" y="1186" text-anchor="middle" font-size="13" fill="#FFFFFF" font-weight="bold">发布上线</text>
  362. </g>
  363. <!-- ==================== CROSS-ROW CONNECTIONS ==================== -->
  364. <!-- Maker 规则组提交审核 → Checker 审核规则组 -->
  365. <line x1="320" y1="492" x2="320" y2="1100" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  366. <line x1="320" y1="1100" x2="190" y2="1100" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  367. <line x1="190" y1="1100" x2="190" y2="1156" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  368. <polygon points="186,1156 190,1164 194,1156" fill="#7F8C8D"/>
  369. <!-- Maker 提交权益商品信息 → Checker 审核权益商品信息 -->
  370. <line x1="980" y1="622" x2="980" y2="1100" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  371. <line x1="980" y1="1100" x2="1005" y2="1100" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  372. <line x1="1005" y1="1100" x2="1005" y2="1156" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  373. <polygon points="1001,1156 1005,1164 1009,1156" fill="#7F8C8D"/>
  374. <!-- Maker 提交审核(发放) → Checker 审核发放计划 -->
  375. <line x1="1910" y1="342" x2="1910" y2="1100" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  376. <line x1="1910" y1="1100" x2="1910" y2="1156" stroke="#7F8C8D" stroke-width="1" stroke-dasharray="4,3"/>
  377. <polygon points="1906,1156 1910,1164 1914,1156" fill="#7F8C8D"/>
  378. </svg>