客户详情.html 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>叁强鲜配 - 客户详情</title>
  7. <link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css">
  8. <style>
  9. * { margin: 0; padding: 0; box-sizing: border-box; }
  10. body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f7fa; color: #303133; }
  11. .topbar { height: 60px; background: linear-gradient(135deg, #1989fa 0%, #07c160 100%); display: flex; align-items: center; justify-content: space-between; padding: 0 24px; color: white; }
  12. .topbar-logo h1 { font-size: 22px; font-weight: 600; }
  13. .topbar-logo span { font-size: 13px; opacity: 0.85; }
  14. .topbar-user { display: flex; align-items: center; gap: 16px; }
  15. .main-container { display: flex; min-height: calc(100vh - 60px); }
  16. .sidebar { width: 220px; background: #fff; border-right: 1px solid #e4e7ed; padding: 16px 0; }
  17. .menu-item { padding: 14px 24px; cursor: pointer; display: flex; align-items: center; gap: 12px; color: #606266; font-size: 14px; }
  18. .menu-item:hover { background: #f5f7fa; color: #1989fa; }
  19. .menu-item.active { background: #ecf5ff; color: #1989fa; border-right: 3px solid #1989fa; }
  20. .content { flex: 1; padding: 24px; }
  21. .breadcrumb { font-size: 13px; color: #909399; margin-bottom: 8px; }
  22. .card { background: #fff; border-radius: 12px; padding: 24px; margin-bottom: 20px; box-shadow: 0 2px 12px rgba(0,0,0,0.05); }
  23. .card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #ebeef5; }
  24. .card-title { font-size: 16px; font-weight: 600; }
  25. .profile-section { display: flex; gap: 24px; margin-bottom: 24px; }
  26. .profile-avatar { width: 80px; height: 80px; border-radius: 50%; background: linear-gradient(135deg, #07c160 0%, #1989fa 100%); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 32px; flex-shrink: 0; }
  27. .profile-info { flex: 1; }
  28. .profile-name { font-size: 20px; font-weight: 600; margin-bottom: 8px; }
  29. .profile-tags { display: flex; gap: 8px; }
  30. .info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
  31. .info-item { }
  32. .info-label { font-size: 13px; color: #909399; margin-bottom: 4px; }
  33. .info-value { font-size: 14px; color: #303133; }
  34. .address-section { margin-top: 20px; padding: 16px; background: #f5f7fa; border-radius: 8px; }
  35. .address-title { font-size: 14px; font-weight: 500; margin-bottom: 12px; color: #07c160; display: flex; justify-content: space-between; }
  36. .address-item { padding: 12px 0; border-bottom: 1px solid #ebeef5; }
  37. .address-item:last-child { border-bottom: none; }
  38. .address-row { display: flex; gap: 16px; font-size: 14px; margin-bottom: 4px; }
  39. .address-label { color: #909399; width: 60px; }
  40. .address-value { color: #303133; flex: 1; }
  41. .address-tag { display: inline-block; padding: 2px 8px; background: #07c160; color: #fff; border-radius: 4px; font-size: 11px; }
  42. .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 20px; }
  43. .stat-card { background: #f5f7fa; border-radius: 8px; padding: 16px; text-align: center; }
  44. .stat-num { font-size: 28px; font-weight: 700; color: #1989fa; }
  45. .stat-num.danger { color: #ee0a24; }
  46. .stat-label { font-size: 13px; color: #909399; margin-top: 4px; }
  47. </style>
  48. </head>
  49. <body>
  50. <div id="app">
  51. <div class="topbar">
  52. <div class="topbar-logo"><h1>叁强鲜配</h1><span>运营管理后台</span></div>
  53. <div class="topbar-user"><el-avatar :size="32" style="background:#fff;color:#1989fa;">管</el-avatar><span>管理员</span></div>
  54. </div>
  55. <div class="main-container">
  56. <div class="sidebar">
  57. <div class="menu-item"><el-icon><User /></el-icon><span>用户管理</span></div>
  58. <div class="menu-item active"><el-icon><View /></el-icon><span>客户详情</span></div>
  59. </div>
  60. <div class="content">
  61. <div class="breadcrumb">首页 / 用户管理 / 客户详情</div>
  62. <div class="card">
  63. <div class="card-header">
  64. <span class="card-title">基本信息</span>
  65. <div style="display:flex;gap:8px;">
  66. <el-button @click="history.back()">返回</el-button>
  67. <el-button type="primary" size="small">编辑</el-button>
  68. <el-button type="warning" size="small">重置密码</el-button>
  69. </div>
  70. </div>
  71. <div class="profile-section">
  72. <div class="profile-avatar">客</div>
  73. <div class="profile-info">
  74. <div class="profile-name">王小明</div>
  75. <div class="profile-tags">
  76. <el-tag size="small" type="success">客户</el-tag>
  77. <el-tag size="small" type="success">启用</el-tag>
  78. <el-tag size="small">城东区域</el-tag>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="info-grid">
  83. <div class="info-item">
  84. <div class="info-label">用户名</div>
  85. <div class="info-value">client001</div>
  86. </div>
  87. <div class="info-item">
  88. <div class="info-label">企业名称</div>
  89. <div class="info-value">AA餐厅</div>
  90. </div>
  91. <div class="info-item">
  92. <div class="info-label">联系人</div>
  93. <div class="info-value">王小明</div>
  94. </div>
  95. <div class="info-item">
  96. <div class="info-label">手机号</div>
  97. <div class="info-value">13900009999</div>
  98. </div>
  99. <div class="info-item">
  100. <div class="info-label">所属区域</div>
  101. <div class="info-value">城东区域</div>
  102. </div>
  103. <div class="info-item">
  104. <div class="info-label">创建时间</div>
  105. <div class="info-value">2026-01-10 14:20:00</div>
  106. </div>
  107. </div>
  108. <div class="address-section">
  109. <div class="address-title">
  110. <span>收货地址</span>
  111. <el-button size="small" type="primary" link>+ 添加地址</el-button>
  112. </div>
  113. <div class="address-item">
  114. <div class="address-row">
  115. <span class="address-label">地址1</span>
  116. <span class="address-value">城东区YY路YY号 AA餐厅</span>
  117. <span class="address-tag">默认</span>
  118. </div>
  119. <div class="address-row">
  120. <span class="address-label">电话</span>
  121. <span class="address-value">13900009999</span>
  122. </div>
  123. </div>
  124. <div class="address-item">
  125. <div class="address-row">
  126. <span class="address-label">地址2</span>
  127. <span class="address-value">城东区ZZ路ZZ号 分店</span>
  128. </div>
  129. <div class="address-row">
  130. <span class="address-label">电话</span>
  131. <span class="address-value">13900008888</span>
  132. </div>
  133. </div>
  134. </div>
  135. </div>
  136. <div class="card">
  137. <div class="card-header"><span class="card-title">订单统计</span></div>
  138. <div class="stats-grid">
  139. <div class="stat-card">
  140. <div class="stat-num">156</div>
  141. <div class="stat-label">总订单数</div>
  142. </div>
  143. <div class="stat-card">
  144. <div class="stat-num">128</div>
  145. <div class="stat-label">已完成</div>
  146. </div>
  147. <div class="stat-card">
  148. <div class="stat-num">28</div>
  149. <div class="stat-label">进行中</div>
  150. </div>
  151. <div class="stat-card">
  152. <div class="stat-num danger">¥12,560</div>
  153. <div class="stat-label">待结算金额</div>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  161. <script src="https://unpkg.com/element-plus"></script>
  162. <script>
  163. const { createApp } = Vue;
  164. const app = createApp({ setup() { return {}; } });
  165. app.use(ElementPlus);
  166. app.mount('#app');
  167. </script>
  168. </body>
  169. </html>