This commit is contained in:
扶桑花间 2025-09-11 21:32:41 +08:00
parent 9d077cb93e
commit c5ccc91586
9 changed files with 87 additions and 19 deletions

View File

@ -0,0 +1,14 @@
<?php
namespace app\controller\admin;
use app\BaseController;
use think\response\Json;
class GlobalController extends BaseController
{
public function index(): Json
{
return $this->writeSuccess('success', []);
}
}

View File

@ -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);

24
app/model/XmChannel.php Normal file
View File

@ -0,0 +1,24 @@
<?php
namespace app\model;
use app\BaseModel;
use think\model\concern\SoftDelete;
use think\model\relation\HasMany;
class XmChannel extends BaseModel
{
use SoftDelete;
protected $name = "xm_channel";
protected $pk = "channel_id";
/**
* 渠道下的会员列表
* @return HasMany
*/
public function members(): HasMany
{
return $this->hasMany(XmMember::class);
}
}

View File

@ -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);
}
}

View File

@ -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 () {

View File

@ -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

View File

@ -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;

View File

@ -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<WsConfig> = {
url: 'ws://139.155.146.146:19981', // 你的WebSocket服务器地址
url: WS_BASE_URL, // 你的WebSocket服务器地址
reconnectAttempts: 10,
reconnectDelay: 5000,
autoConnect: true // 应用启动时自动连接

View File

@ -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'
},
{