From c5ccc91586810664928fdd00ba6a724211de040a Mon Sep 17 00:00:00 2001 From: v Date: Thu, 11 Sep 2025 21:32:41 +0800 Subject: [PATCH] up. --- app/controller/admin/GlobalController.php | 14 ++++++ .../admin/member/MemberController.php | 2 +- app/model/XmChannel.php | 24 +++++++++++ app/model/XmMember.php | 9 ++++ route/api.php | 2 + z_ele/.env.development | 1 + z_ele/src/config/setting.ts | 8 +++- z_ele/src/main.ts | 3 +- z_ele/src/views/member/user/index.vue | 43 ++++++++++++------- 9 files changed, 87 insertions(+), 19 deletions(-) create mode 100644 app/controller/admin/GlobalController.php create mode 100644 app/model/XmChannel.php diff --git a/app/controller/admin/GlobalController.php b/app/controller/admin/GlobalController.php new file mode 100644 index 0000000..bd469af --- /dev/null +++ b/app/controller/admin/GlobalController.php @@ -0,0 +1,14 @@ +writeSuccess('success', []); + } +} \ No newline at end of file diff --git a/app/controller/admin/member/MemberController.php b/app/controller/admin/member/MemberController.php index b804069..4e68e0d 100644 --- a/app/controller/admin/member/MemberController.php +++ b/app/controller/admin/member/MemberController.php @@ -16,7 +16,7 @@ class MemberController extends BaseController 'telephone_md5' => $this->request->get('telephone_md5/s', ''), 'realname' => $this->request->get('realname/s', ''), 'register_channel_id ' => $this->request->get('register_channel_id/d', 0), - ]); + ])->append(['channel']); $paginate = CurdService::getPaginate($this->request, $model); diff --git a/app/model/XmChannel.php b/app/model/XmChannel.php new file mode 100644 index 0000000..d735939 --- /dev/null +++ b/app/model/XmChannel.php @@ -0,0 +1,24 @@ +hasMany(XmMember::class); + } +} \ No newline at end of file diff --git a/app/model/XmMember.php b/app/model/XmMember.php index 5d28b54..95aace8 100644 --- a/app/model/XmMember.php +++ b/app/model/XmMember.php @@ -4,6 +4,7 @@ namespace app\model; use app\BaseModel; use think\model\concern\SoftDelete; +use think\model\relation\HasOne; class XmMember extends BaseModel { @@ -11,4 +12,12 @@ class XmMember extends BaseModel protected $name = "xm_member"; protected $pk = "member_id"; + + /** + * 会员所属渠道 + */ + public function channel(): HasOne + { + return $this->hasOne(XmChannel::class); + } } \ No newline at end of file diff --git a/route/api.php b/route/api.php index ebb3fa3..9b11a6e 100644 --- a/route/api.php +++ b/route/api.php @@ -6,6 +6,7 @@ use app\entity\SysOrganization; use app\http\middleware\ClientMiddleware; use app\model\SysDictionary; use app\controller\admin\{auth, + GlobalController, member\MemberController, system\CacheController, system\CacheDataController, @@ -51,6 +52,7 @@ Route::group("adminapi", function () { Route::post("login", [auth\LoginController::class, "index"])->name("admin.SysUserLogin"); + Route::get("global", [GlobalController::class, "index"])->name("admin.SysUserLogin"); Route::group(function () { diff --git a/z_ele/.env.development b/z_ele/.env.development index 317e08c..ab02efd 100644 --- a/z_ele/.env.development +++ b/z_ele/.env.development @@ -2,6 +2,7 @@ #VITE_API_URL=https://v2.eleadmin.com/api #VITE_API_URL=http://a.tcp.run/adminapi VITE_API_URL=http://xm.tcp.run/adminapi +VITE_WS_URL=ws://xm.tcp.run/socket.io VITE_LICENSE=dk9mcwJyetRWQlxWRiojIiwiIzVHbQ5Wa6ICdjVmaiV3ciQWaiwCN3YDNW9ERolFcMJiOpNnclZnIsIyViQjLxIiOi42bQf0NW== # 禁请求加密 VITE_SKIP_REQUEST_ENCRYPTION=0 diff --git a/z_ele/src/config/setting.ts b/z_ele/src/config/setting.ts index a620648..ddef8e4 100644 --- a/z_ele/src/config/setting.ts +++ b/z_ele/src/config/setting.ts @@ -1,6 +1,9 @@ /** 接口地址 */ export const API_BASE_URL: string = import.meta.env.VITE_API_URL; +/** Ws地址 */ +export const WS_BASE_URL: string = import.meta.env.VITE_WS_URL; + /** 项目名称 */ export const PROJECT_NAME: string = import.meta.env.VITE_APP_NAME; @@ -35,7 +38,8 @@ export const MAP_KEY = '006d995d433058322319fa797f2876f5'; export const LICENSE_CODE = import.meta.env.VITE_LICENSE; /** 数据加密key */ -export const DATA_SECRET_KEY = import.meta.env.VITE_DATA_SECRET_KEY +export const DATA_SECRET_KEY = import.meta.env.VITE_DATA_SECRET_KEY; /** 请求加密开关 */ -export const SKIP_REQUEST_ENCRYPTION = import.meta.env.VITE_SKIP_REQUEST_ENCRYPTION; +export const SKIP_REQUEST_ENCRYPTION = import.meta.env + .VITE_SKIP_REQUEST_ENCRYPTION; diff --git a/z_ele/src/main.ts b/z_ele/src/main.ts index 29fafa0..c8ba4b0 100644 --- a/z_ele/src/main.ts +++ b/z_ele/src/main.ts @@ -16,12 +16,13 @@ import './styles/themes/rounded.scss'; import './styles/themes/dark.scss'; import './styles/themes/transparent.scss'; import './styles/index.scss'; +import { WS_BASE_URL } from '@/config/setting'; const app = createApp(App); // WebSocket配置 const websocketConfig: Partial = { - url: 'ws://139.155.146.146:19981', // 你的WebSocket服务器地址 + url: WS_BASE_URL, // 你的WebSocket服务器地址 reconnectAttempts: 10, reconnectDelay: 5000, autoConnect: true // 应用启动时自动连接 diff --git a/z_ele/src/views/member/user/index.vue b/z_ele/src/views/member/user/index.vue index 63b258d..e943877 100644 --- a/z_ele/src/views/member/user/index.vue +++ b/z_ele/src/views/member/user/index.vue @@ -67,28 +67,41 @@ align: 'center' }, { - prop: 'roleName', - label: '角色名称', - sortable: 'custom', - minWidth: 120 + prop: 'memberId', + label: '会员ID', + width: 80 }, { - prop: 'roleCode', - label: '角色标识', - sortable: 'custom', - minWidth: 120 + prop: 'realname', + label: '姓名', + width: 80 }, { - prop: 'comments', - label: '备注', - sortable: 'custom', - minWidth: 140 + prop: 'channel.name', + label: '姓名', + width: 80 + }, + { + prop: 'telephoneMd5', + label: '手机号MD5', + minWidth: 300 + }, + { + prop: 'onlineIp', + label: '最后在线Ip', + width: 170, + align: 'center' + }, + { + prop: 'onlineTime', + label: '最后在线时间', + width: 170, + align: 'center' }, { prop: 'createTime', - label: '创建时间', - sortable: 'custom', - width: 180, + label: '注册时间', + width: 170, align: 'center' }, {