62dc663294
Replace the sparse staff-record table on /staff with a channel-tabbed employee account view mirroring the 云客 backend's 员工微信列表 + WhatsApp 员工列表. Each tab loads /api/accounts?channel=<channel> with its own pagination state; rows open the existing account all-fields drawer (reused from AccountList via accountFields.ts). WeChat tab columns: 头像/微信昵称/微信号/手机号/员工姓名/好友数/群数/ 发送/接收/数据库大小/在职/在线状态/最后更新. WhatsApp tab columns: 头像(el-avatar initials)/昵称/员工姓名/手机/销售手机/好友数/群数/ 联系人数/新增好友/在职/最后更新. Reads raw_json via the structured-first readField helper; tolerates boolean and 1/0 forms of isOnJob/onlineStatus. Also fix the avatar field key in accountFields.ts (headImageUrl, with headImgUrl as a legacy alias) so the WeChat drawer avatar renders — the upstream wxUser record uses headImageUrl. Co-Authored-By: Claude <noreply@anthropic.com>
Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.
Learn more about the recommended Project Setup and IDE Support in the Vue Docs TypeScript Guide.