商城管理
This commit is contained in:
parent
2462924061
commit
9e3f782cd9
|
|
@ -23,8 +23,8 @@
|
|||
|
||||
## Tasks
|
||||
|
||||
- [-] 1. 后端API开发
|
||||
- [ ] 1.1 创建钻石商品Models
|
||||
- [x] 1. 后端API开发
|
||||
- [x] 1.1 创建钻石商品Models
|
||||
- 在 `HoneyBox.Admin.Business/Models/Diamond/` 创建目录
|
||||
- 创建 `DiamondModels.cs` 定义请求和响应模型
|
||||
- 定义 `DiamondProductListRequest` 列表查询请求
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
- 定义 `DiamondProductStatusRequest` 状态切换请求
|
||||
- _Requirements: 8.1_
|
||||
|
||||
- [ ] 1.2 创建钻石商品Service接口
|
||||
- [x] 1.2 创建钻石商品Service接口
|
||||
- 在 `HoneyBox.Admin.Business/Services/Interfaces/` 创建 `IDiamondService.cs`
|
||||
- 定义 `GetDiamondProductsAsync` 列表查询方法
|
||||
- 定义 `GetDiamondProductByIdAsync` 详情查询方法
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
- 定义 `GetMaxSortOrderAsync` 获取最大排序值方法
|
||||
- _Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6_
|
||||
|
||||
- [ ] 1.3 实现钻石商品Service
|
||||
- [x] 1.3 实现钻石商品Service
|
||||
- 在 `HoneyBox.Admin.Business/Services/` 创建 `DiamondService.cs`
|
||||
- 实现列表查询逻辑,支持名称和状态筛选
|
||||
- 实现分页逻辑
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
- 实现获取最大排序值逻辑
|
||||
- _Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6_
|
||||
|
||||
- [ ] 1.4 创建钻石商品Controller
|
||||
- [x] 1.4 创建钻石商品Controller
|
||||
- 在 `HoneyBox.Admin.Business/Controllers/` 创建 `DiamondController.cs`
|
||||
- 实现 `GET /api/business/diamond` 列表查询接口
|
||||
- 实现 `GET /api/business/diamond/{id}` 详情查询接口
|
||||
|
|
@ -67,23 +67,23 @@
|
|||
- 实现 `GET /api/business/diamond/max-sort` 获取最大排序值接口
|
||||
- _Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6_
|
||||
|
||||
- [ ] 1.5 注册钻石商品服务
|
||||
- [x] 1.5 注册钻石商品服务
|
||||
- 在 `ServiceCollectionExtensions.cs` 注册 `IDiamondService` 和 `DiamondService`
|
||||
- _Requirements: 8.1_
|
||||
|
||||
- [ ] 1.6 创建菜单SQL脚本
|
||||
- [x] 1.6 创建菜单SQL脚本
|
||||
- 在 `HoneyBox/scripts/` 创建 `seed_diamond_management_menus.sql`
|
||||
- 添加钻石商城菜单项
|
||||
- 添加相关权限配置
|
||||
- _Requirements: 7.3_
|
||||
|
||||
- [ ] 2. Checkpoint - 后端API验证
|
||||
- [x] 2. Checkpoint - 后端API验证
|
||||
- 确保所有API编译通过
|
||||
- 使用Swagger测试API基本功能
|
||||
- 确保权限验证正常工作
|
||||
|
||||
- [ ] 3. 前端API层开发
|
||||
- [ ] 3.1 创建钻石商品API模块
|
||||
- [x] 3. 前端API层开发
|
||||
- [x] 3.1 创建钻石商品API模块
|
||||
- 创建 `src/api/business/diamond.ts`
|
||||
- 定义所有TypeScript接口(DiamondProductListRequest, DiamondProductResponse等)
|
||||
- 实现钻石商品列表查询API调用 `getDiamondProducts`
|
||||
|
|
@ -101,8 +101,8 @@
|
|||
- 测试响应数据处理
|
||||
- _Requirements: 6.8_
|
||||
|
||||
- [ ] 4. 前端钻石商品页面开发
|
||||
- [ ] 4.1 创建钻石商品列表主页面
|
||||
- [x] 4. 前端钻石商品页面开发
|
||||
- [x] 4.1 创建钻石商品列表主页面
|
||||
- 创建 `src/views/business/diamond/list.vue`
|
||||
- 实现页面布局(搜索区 + 表格区)
|
||||
- 集成搜索表单和表格组件
|
||||
|
|
@ -110,14 +110,14 @@
|
|||
- 实现新增、编辑、删除操作
|
||||
- _Requirements: 1.1, 1.3, 1.5, 1.6_
|
||||
|
||||
- [ ] 4.2 创建钻石商品搜索表单组件
|
||||
- [x] 4.2 创建钻石商品搜索表单组件
|
||||
- 创建 `src/views/business/diamond/components/DiamondSearchForm.vue`
|
||||
- 实现商品名称输入框
|
||||
- 实现状态下拉选择(启用/禁用)
|
||||
- 实现搜索和重置按钮
|
||||
- _Requirements: 1.2_
|
||||
|
||||
- [ ] 4.3 创建钻石商品表格组件
|
||||
- [x] 4.3 创建钻石商品表格组件
|
||||
- 创建 `src/views/business/diamond/components/DiamondTable.vue`
|
||||
- 实现表格列配置(ID、商品名称、商品编号、价格、是否首充、展示图、排序、状态、时间)
|
||||
- 实现图片预览功能
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
- 实现操作按钮(编辑、删除)
|
||||
- _Requirements: 1.1, 1.4, 1.5, 1.6_
|
||||
|
||||
- [ ] 4.4 创建钻石商品表单弹窗
|
||||
- [x] 4.4 创建钻石商品表单弹窗
|
||||
- 创建 `src/views/business/diamond/components/DiamondFormDialog.vue`
|
||||
- 实现商品基本信息表单(名称、编号、类型、价格)
|
||||
- 实现赠送货币配置
|
||||
|
|
@ -137,7 +137,7 @@
|
|||
- 实现提交逻辑
|
||||
- _Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.1, 3.2, 3.3, 3.4, 3.5_
|
||||
|
||||
- [ ] 4.5 创建赠送货币配置组件
|
||||
- [x] 4.5 创建赠送货币配置组件
|
||||
- 创建 `src/views/business/diamond/components/RewardConfigInput.vue`
|
||||
- 实现货币类型选择(钻石/积分/UU币等)
|
||||
- 实现数量输入
|
||||
|
|
@ -145,7 +145,7 @@
|
|||
- 实现JSON序列化/反序列化
|
||||
- _Requirements: 4.1, 4.2, 4.3, 4.4_
|
||||
|
||||
- [ ] 5. Checkpoint - 页面功能验证
|
||||
- [x] 5. Checkpoint - 页面功能验证
|
||||
- 确保钻石商品列表页面正常显示
|
||||
- 测试搜索和分页功能
|
||||
- 测试新增商品功能
|
||||
|
|
@ -154,19 +154,19 @@
|
|||
- 测试状态切换功能
|
||||
- 测试首充字段条件显示
|
||||
|
||||
- [ ] 6. 路由和菜单配置
|
||||
- [ ] 6.1 配置路由
|
||||
- [x] 6. 路由和菜单配置
|
||||
- [x] 6.1 配置路由
|
||||
- 在 `src/router/modules/business.ts` 添加钻石商城路由配置
|
||||
- 配置钻石商品列表路由 `/business/diamond/list`
|
||||
- 配置权限标识 `diamond:list`, `diamond:add`, `diamond:edit`, `diamond:delete`
|
||||
- _Requirements: 7.1, 7.2_
|
||||
|
||||
- [ ] 6.2 执行菜单SQL脚本
|
||||
- [x] 6.2 执行菜单SQL脚本
|
||||
- 执行 `seed_diamond_management_menus.sql` 添加菜单
|
||||
- 验证菜单显示正常
|
||||
- _Requirements: 7.3_
|
||||
|
||||
- [ ] 7. Checkpoint - 完整功能验证
|
||||
- [x] 7. Checkpoint - 完整功能验证
|
||||
- 确保页面正常访问
|
||||
- 测试完整的商品管理流程
|
||||
- 验证权限控制正常工作
|
||||
|
|
|
|||
173
server/HoneyBox/scripts/seed_diamond_management_menus.sql
Normal file
173
server/HoneyBox/scripts/seed_diamond_management_menus.sql
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
-- =============================================
|
||||
-- 钻石商城模块菜单初始化脚本
|
||||
-- 用于在后台管理系统中添加钻石商城相关菜单
|
||||
-- =============================================
|
||||
|
||||
-- 注意:执行此脚本前请确保:
|
||||
-- 1. 已存在超级管理员角色 (Code = 'super_admin')
|
||||
-- 2. 数据库中已有基础菜单数据
|
||||
|
||||
-- 声明变量
|
||||
DECLARE @DiamondMenuId INT;
|
||||
DECLARE @BusinessMenuId INT;
|
||||
DECLARE @SuperAdminRoleId INT;
|
||||
|
||||
-- 获取超级管理员角色ID
|
||||
SELECT @SuperAdminRoleId = Id FROM roles WHERE Code = 'super_admin';
|
||||
|
||||
-- 获取业务管理目录ID(如果存在)
|
||||
SELECT @BusinessMenuId = Id FROM menus WHERE Path = '/business' AND ParentId = 0;
|
||||
|
||||
-- 如果业务管理目录不存在,创建它
|
||||
IF @BusinessMenuId IS NULL
|
||||
BEGIN
|
||||
INSERT INTO menus (ParentId, Name, Path, Component, Icon, MenuType, Permission, SortOrder, Status, IsExternal, IsCache, CreatedAt)
|
||||
VALUES (0, N'业务管理', '/business', 'Layout', 'Operation', 1, NULL, 30, 1, 0, 0, GETDATE());
|
||||
|
||||
SET @BusinessMenuId = SCOPE_IDENTITY();
|
||||
PRINT N'创建业务管理目录,ID: ' + CAST(@BusinessMenuId AS VARCHAR);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT N'业务管理目录已存在,ID: ' + CAST(@BusinessMenuId AS VARCHAR);
|
||||
END
|
||||
|
||||
-- =============================================
|
||||
-- 1. 创建钻石商城目录
|
||||
-- =============================================
|
||||
IF NOT EXISTS (SELECT 1 FROM menus WHERE Path = '/business/diamond')
|
||||
BEGIN
|
||||
INSERT INTO menus (ParentId, Name, Path, Component, Icon, MenuType, Permission, SortOrder, Status, IsExternal, IsCache, CreatedAt)
|
||||
VALUES (@BusinessMenuId, N'钻石商城', '/business/diamond', NULL, 'Money', 1, NULL, 50, 1, 0, 0, GETDATE());
|
||||
|
||||
SET @DiamondMenuId = SCOPE_IDENTITY();
|
||||
PRINT N'创建钻石商城目录,ID: ' + CAST(@DiamondMenuId AS VARCHAR);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SELECT @DiamondMenuId = Id FROM menus WHERE Path = '/business/diamond';
|
||||
PRINT N'钻石商城目录已存在,ID: ' + CAST(@DiamondMenuId AS VARCHAR);
|
||||
END
|
||||
|
||||
-- =============================================
|
||||
-- 2. 创建钻石商城子菜单
|
||||
-- =============================================
|
||||
|
||||
-- 2.1 钻石商品管理
|
||||
IF NOT EXISTS (SELECT 1 FROM menus WHERE Path = '/business/diamond/list')
|
||||
BEGIN
|
||||
INSERT INTO menus (ParentId, Name, Path, Component, Icon, MenuType, Permission, SortOrder, Status, IsExternal, IsCache, CreatedAt)
|
||||
VALUES (@DiamondMenuId, N'钻石商品', '/business/diamond/list', 'business/diamond/list', 'Diamond', 2, 'diamond:list', 1, 1, 0, 1, GETDATE());
|
||||
PRINT N'创建钻石商品菜单';
|
||||
END
|
||||
|
||||
-- =============================================
|
||||
-- 3. 添加钻石商城相关权限
|
||||
-- =============================================
|
||||
|
||||
-- 钻石商品管理权限
|
||||
IF NOT EXISTS (SELECT 1 FROM permissions WHERE Code = 'diamond:list')
|
||||
INSERT INTO permissions (Name, Code, Module, CreatedAt) VALUES (N'钻石商品列表', 'diamond:list', N'钻石商城', GETDATE());
|
||||
IF NOT EXISTS (SELECT 1 FROM permissions WHERE Code = 'diamond:add')
|
||||
INSERT INTO permissions (Name, Code, Module, CreatedAt) VALUES (N'新增钻石商品', 'diamond:add', N'钻石商城', GETDATE());
|
||||
IF NOT EXISTS (SELECT 1 FROM permissions WHERE Code = 'diamond:edit')
|
||||
INSERT INTO permissions (Name, Code, Module, CreatedAt) VALUES (N'编辑钻石商品', 'diamond:edit', N'钻石商城', GETDATE());
|
||||
IF NOT EXISTS (SELECT 1 FROM permissions WHERE Code = 'diamond:delete')
|
||||
INSERT INTO permissions (Name, Code, Module, CreatedAt) VALUES (N'删除钻石商品', 'diamond:delete', N'钻石商城', GETDATE());
|
||||
|
||||
-- =============================================
|
||||
-- 4. 为超级管理员角色分配新菜单和权限
|
||||
-- =============================================
|
||||
IF @SuperAdminRoleId IS NOT NULL
|
||||
BEGIN
|
||||
-- 分配业务管理目录
|
||||
IF NOT EXISTS (SELECT 1 FROM role_menus WHERE RoleId = @SuperAdminRoleId AND MenuId = @BusinessMenuId)
|
||||
BEGIN
|
||||
INSERT INTO role_menus (RoleId, MenuId) VALUES (@SuperAdminRoleId, @BusinessMenuId);
|
||||
PRINT N'为超级管理员分配业务管理目录';
|
||||
END
|
||||
|
||||
-- 分配钻石商城目录
|
||||
IF NOT EXISTS (SELECT 1 FROM role_menus WHERE RoleId = @SuperAdminRoleId AND MenuId = @DiamondMenuId)
|
||||
BEGIN
|
||||
INSERT INTO role_menus (RoleId, MenuId) VALUES (@SuperAdminRoleId, @DiamondMenuId);
|
||||
PRINT N'为超级管理员分配钻石商城目录';
|
||||
END
|
||||
|
||||
-- 分配所有新创建的子菜单
|
||||
INSERT INTO role_menus (RoleId, MenuId)
|
||||
SELECT @SuperAdminRoleId, m.Id
|
||||
FROM menus m
|
||||
WHERE m.ParentId = @DiamondMenuId
|
||||
AND NOT EXISTS (SELECT 1 FROM role_menus rm WHERE rm.RoleId = @SuperAdminRoleId AND rm.MenuId = m.Id);
|
||||
|
||||
PRINT N'为超级管理员分配钻石商城子菜单';
|
||||
|
||||
-- 分配新增的权限
|
||||
INSERT INTO role_permissions (RoleId, PermissionId)
|
||||
SELECT @SuperAdminRoleId, p.Id
|
||||
FROM permissions p
|
||||
WHERE p.Code IN ('diamond:list', 'diamond:add', 'diamond:edit', 'diamond:delete')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM role_permissions rp
|
||||
WHERE rp.RoleId = @SuperAdminRoleId AND rp.PermissionId = p.Id
|
||||
);
|
||||
|
||||
PRINT N'为超级管理员分配钻石商城权限';
|
||||
END
|
||||
|
||||
-- =============================================
|
||||
-- 5. 验证结果
|
||||
-- =============================================
|
||||
PRINT N'';
|
||||
PRINT N'========== 菜单创建结果 ==========';
|
||||
SELECT
|
||||
m.Id,
|
||||
m.ParentId,
|
||||
m.Name,
|
||||
m.Path,
|
||||
m.Component,
|
||||
m.MenuType,
|
||||
m.Permission,
|
||||
m.SortOrder
|
||||
FROM menus m
|
||||
WHERE m.Path LIKE '/business/diamond%'
|
||||
ORDER BY m.ParentId, m.SortOrder;
|
||||
|
||||
PRINT N'';
|
||||
PRINT N'========== 权限创建结果 ==========';
|
||||
SELECT
|
||||
p.Id,
|
||||
p.Name,
|
||||
p.Code,
|
||||
p.Module
|
||||
FROM permissions p
|
||||
WHERE p.Code LIKE 'diamond:%'
|
||||
ORDER BY p.Code;
|
||||
|
||||
PRINT N'';
|
||||
PRINT N'========== 角色菜单分配结果 ==========';
|
||||
SELECT
|
||||
r.Name AS RoleName,
|
||||
m.Name AS MenuName,
|
||||
m.Path
|
||||
FROM role_menus rm
|
||||
INNER JOIN roles r ON rm.RoleId = r.Id
|
||||
INNER JOIN menus m ON rm.MenuId = m.Id
|
||||
WHERE m.Path LIKE '/business/diamond%'
|
||||
ORDER BY r.Name, m.Path;
|
||||
|
||||
PRINT N'';
|
||||
PRINT N'========== 角色权限分配结果 ==========';
|
||||
SELECT
|
||||
r.Name AS RoleName,
|
||||
p.Name AS PermissionName,
|
||||
p.Code
|
||||
FROM role_permissions rp
|
||||
INNER JOIN roles r ON rp.RoleId = r.Id
|
||||
INNER JOIN permissions p ON rp.PermissionId = p.Id
|
||||
WHERE p.Code LIKE 'diamond:%'
|
||||
ORDER BY r.Name, p.Code;
|
||||
|
||||
PRINT N'';
|
||||
PRINT N'钻石商城模块菜单初始化完成';
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
using HoneyBox.Admin.Business.Attributes;
|
||||
using HoneyBox.Admin.Business.Models;
|
||||
using HoneyBox.Admin.Business.Models.Diamond;
|
||||
using HoneyBox.Admin.Business.Services.Interfaces;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace HoneyBox.Admin.Business.Controllers;
|
||||
|
||||
/// <summary>
|
||||
/// 钻石商品管理控制器
|
||||
/// </summary>
|
||||
[Route("api/admin/business/[controller]")]
|
||||
public class DiamondController : BusinessControllerBase
|
||||
{
|
||||
private readonly IDiamondService _diamondService;
|
||||
|
||||
public DiamondController(IDiamondService diamondService)
|
||||
{
|
||||
_diamondService = diamondService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取钻石商品列表
|
||||
/// </summary>
|
||||
/// <param name="request">查询请求</param>
|
||||
/// <returns>分页钻石商品列表</returns>
|
||||
[HttpGet]
|
||||
[BusinessPermission("diamond:list")]
|
||||
public async Task<IActionResult> GetDiamondProducts([FromQuery] DiamondProductListRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _diamondService.GetDiamondProductsAsync(request);
|
||||
return Ok(result);
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取钻石商品详情
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <returns>商品详情</returns>
|
||||
[HttpGet("{id}")]
|
||||
[BusinessPermission("diamond:list")]
|
||||
public async Task<IActionResult> GetDiamondProductById(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _diamondService.GetDiamondProductByIdAsync(id);
|
||||
if (result == null)
|
||||
{
|
||||
return NotFoundError("钻石商品不存在");
|
||||
}
|
||||
return Ok(result);
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建钻石商品
|
||||
/// </summary>
|
||||
/// <param name="request">创建请求</param>
|
||||
/// <returns>新商品ID</returns>
|
||||
[HttpPost]
|
||||
[BusinessPermission("diamond:add")]
|
||||
public async Task<IActionResult> CreateDiamondProduct([FromBody] DiamondProductCreateRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var productId = await _diamondService.CreateDiamondProductAsync(request);
|
||||
return Ok(new { id = productId }, "创建成功");
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新钻石商品
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <param name="request">更新请求</param>
|
||||
/// <returns>操作结果</returns>
|
||||
[HttpPut("{id}")]
|
||||
[BusinessPermission("diamond:edit")]
|
||||
public async Task<IActionResult> UpdateDiamondProduct(int id, [FromBody] DiamondProductUpdateRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _diamondService.UpdateDiamondProductAsync(id, request);
|
||||
return result ? Ok("更新成功") : Error(BusinessErrorCodes.InternalError, "更新失败");
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除钻石商品
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <returns>操作结果</returns>
|
||||
[HttpDelete("{id}")]
|
||||
[BusinessPermission("diamond:delete")]
|
||||
public async Task<IActionResult> DeleteDiamondProduct(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _diamondService.DeleteDiamondProductAsync(id);
|
||||
return result ? Ok("删除成功") : Error(BusinessErrorCodes.InternalError, "删除失败");
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新钻石商品状态
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <param name="request">状态请求</param>
|
||||
/// <returns>操作结果</returns>
|
||||
[HttpPut("{id}/status")]
|
||||
[BusinessPermission("diamond:edit")]
|
||||
public async Task<IActionResult> UpdateDiamondProductStatus(int id, [FromBody] DiamondProductStatusRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = await _diamondService.UpdateDiamondProductStatusAsync(id, request.Status);
|
||||
var message = request.Status == 1 ? "启用成功" : "禁用成功";
|
||||
return result ? Ok(message) : Error(BusinessErrorCodes.InternalError, "操作失败");
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取最大排序值
|
||||
/// </summary>
|
||||
/// <returns>最大排序值</returns>
|
||||
[HttpGet("max-sort")]
|
||||
[BusinessPermission("diamond:list")]
|
||||
public async Task<IActionResult> GetMaxSortOrder()
|
||||
{
|
||||
try
|
||||
{
|
||||
var maxSort = await _diamondService.GetMaxSortOrderAsync();
|
||||
return Ok(new DiamondMaxSortResponse { MaxSort = maxSort });
|
||||
}
|
||||
catch (BusinessException ex)
|
||||
{
|
||||
return Error(ex.Code, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,211 @@
|
|||
namespace HoneyBox.Admin.Business.Models.Diamond;
|
||||
|
||||
#region Request Models
|
||||
|
||||
/// <summary>
|
||||
/// 钻石商品列表查询请求
|
||||
/// </summary>
|
||||
public class DiamondProductListRequest : PagedRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 商品名称(模糊搜索)
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态:0-禁用 1-启用
|
||||
/// </summary>
|
||||
public int? Status { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建钻石商品请求
|
||||
/// </summary>
|
||||
public class DiamondProductCreateRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 商品名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID(商品编号)
|
||||
/// </summary>
|
||||
public string ProductsId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品类型
|
||||
/// </summary>
|
||||
public string ProductsType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 基础奖励(JSON格式)
|
||||
/// </summary>
|
||||
public string BaseReward { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 价格
|
||||
/// </summary>
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否首充商品:0-否 1-是
|
||||
/// </summary>
|
||||
public int IsFirst { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 首充额外奖励(JSON格式)
|
||||
/// </summary>
|
||||
public string? FirstBonusReward { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 首充图片URL
|
||||
/// </summary>
|
||||
public string? FirstChargeImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 首充选中图片URL
|
||||
/// </summary>
|
||||
public string? FirstSelectChargeImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 普通图片URL
|
||||
/// </summary>
|
||||
public string? NormalImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 普通选中图片URL
|
||||
/// </summary>
|
||||
public string? NormalSelectImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序值
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态:0-禁用 1-启用
|
||||
/// </summary>
|
||||
public int Status { get; set; } = 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新钻石商品请求
|
||||
/// </summary>
|
||||
public class DiamondProductUpdateRequest : DiamondProductCreateRequest
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 钻石商品状态更新请求
|
||||
/// </summary>
|
||||
public class DiamondProductStatusRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 状态:0-禁用 1-启用
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Response Models
|
||||
|
||||
/// <summary>
|
||||
/// 钻石商品响应模型
|
||||
/// </summary>
|
||||
public class DiamondProductResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 商品ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID(商品编号)
|
||||
/// </summary>
|
||||
public string ProductsId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品类型
|
||||
/// </summary>
|
||||
public string ProductsType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 基础奖励(JSON格式)
|
||||
/// </summary>
|
||||
public string BaseReward { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 价格
|
||||
/// </summary>
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否首充商品:0-否 1-是
|
||||
/// </summary>
|
||||
public int IsFirst { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 首充额外奖励(JSON格式)
|
||||
/// </summary>
|
||||
public string? FirstBonusReward { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 首充图片URL
|
||||
/// </summary>
|
||||
public string? FirstChargeImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 首充选中图片URL
|
||||
/// </summary>
|
||||
public string? FirstSelectChargeImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 普通图片URL
|
||||
/// </summary>
|
||||
public string? NormalImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 普通选中图片URL
|
||||
/// </summary>
|
||||
public string? NormalSelectImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序值
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态:0-禁用 1-启用
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 最大排序值响应
|
||||
/// </summary>
|
||||
public class DiamondMaxSortResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 最大排序值
|
||||
/// </summary>
|
||||
public int MaxSort { get; set; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
@ -0,0 +1,238 @@
|
|||
using HoneyBox.Admin.Business.Models;
|
||||
using HoneyBox.Admin.Business.Models.Diamond;
|
||||
using HoneyBox.Admin.Business.Services.Interfaces;
|
||||
using HoneyBox.Model.Data;
|
||||
using HoneyBox.Model.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace HoneyBox.Admin.Business.Services;
|
||||
|
||||
/// <summary>
|
||||
/// 钻石商品管理服务实现
|
||||
/// </summary>
|
||||
public class DiamondService : IDiamondService
|
||||
{
|
||||
private readonly HoneyBoxDbContext _dbContext;
|
||||
private readonly ILogger<DiamondService> _logger;
|
||||
|
||||
public DiamondService(
|
||||
HoneyBoxDbContext dbContext,
|
||||
ILogger<DiamondService> logger)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<PagedResult<DiamondProductResponse>> GetDiamondProductsAsync(DiamondProductListRequest request)
|
||||
{
|
||||
var query = _dbContext.DiamondProducts.AsNoTracking();
|
||||
|
||||
// 应用过滤条件
|
||||
if (!string.IsNullOrWhiteSpace(request.Name))
|
||||
{
|
||||
query = query.Where(p => p.Name.Contains(request.Name));
|
||||
}
|
||||
|
||||
if (request.Status.HasValue)
|
||||
{
|
||||
query = query.Where(p => p.Status == request.Status.Value);
|
||||
}
|
||||
|
||||
// 获取总数
|
||||
var total = await query.CountAsync();
|
||||
|
||||
// 获取商品列表
|
||||
var products = await query
|
||||
.OrderByDescending(p => p.SortOrder)
|
||||
.ThenByDescending(p => p.Id)
|
||||
.Skip(request.Skip)
|
||||
.Take(request.PageSize)
|
||||
.ToListAsync();
|
||||
|
||||
// 映射结果
|
||||
var list = products.Select(MapToResponse).ToList();
|
||||
|
||||
return PagedResult<DiamondProductResponse>.Create(list, total, request.Page, request.PageSize);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<DiamondProductResponse?> GetDiamondProductByIdAsync(int id)
|
||||
{
|
||||
var product = await _dbContext.DiamondProducts
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(p => p.Id == id);
|
||||
|
||||
return product == null ? null : MapToResponse(product);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<int> CreateDiamondProductAsync(DiamondProductCreateRequest request)
|
||||
{
|
||||
// 验证必填字段
|
||||
ValidateRequest(request);
|
||||
|
||||
var now = DateTime.Now;
|
||||
var product = new DiamondProduct
|
||||
{
|
||||
Name = request.Name,
|
||||
ProductsId = request.ProductsId,
|
||||
ProductsType = request.ProductsType,
|
||||
BaseReward = request.BaseReward,
|
||||
Price = request.Price,
|
||||
IsFirst = (byte)request.IsFirst,
|
||||
FirstBonusReward = request.FirstBonusReward,
|
||||
FirstChargeImage = request.FirstChargeImage,
|
||||
FirstSelectChargeImage = request.FirstSelectChargeImage,
|
||||
NormalImage = request.NormalImage,
|
||||
NormalSelectImage = request.NormalSelectImage,
|
||||
SortOrder = request.SortOrder,
|
||||
Status = (byte)request.Status,
|
||||
CreatedAt = now,
|
||||
UpdatedAt = now
|
||||
};
|
||||
|
||||
_dbContext.DiamondProducts.Add(product);
|
||||
await _dbContext.SaveChangesAsync();
|
||||
|
||||
_logger.LogInformation("创建钻石商品成功: Id={Id}, Name={Name}", product.Id, product.Name);
|
||||
|
||||
return product.Id;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<bool> UpdateDiamondProductAsync(int id, DiamondProductUpdateRequest request)
|
||||
{
|
||||
var product = await _dbContext.DiamondProducts.FirstOrDefaultAsync(p => p.Id == id);
|
||||
if (product == null)
|
||||
{
|
||||
throw new BusinessException(BusinessErrorCodes.NotFound, "钻石商品不存在");
|
||||
}
|
||||
|
||||
// 验证必填字段
|
||||
ValidateRequest(request);
|
||||
|
||||
product.Name = request.Name;
|
||||
product.ProductsId = request.ProductsId;
|
||||
product.ProductsType = request.ProductsType;
|
||||
product.BaseReward = request.BaseReward;
|
||||
product.Price = request.Price;
|
||||
product.IsFirst = (byte)request.IsFirst;
|
||||
product.FirstBonusReward = request.FirstBonusReward;
|
||||
product.FirstChargeImage = request.FirstChargeImage;
|
||||
product.FirstSelectChargeImage = request.FirstSelectChargeImage;
|
||||
product.NormalImage = request.NormalImage;
|
||||
product.NormalSelectImage = request.NormalSelectImage;
|
||||
product.SortOrder = request.SortOrder;
|
||||
product.Status = (byte)request.Status;
|
||||
product.UpdatedAt = DateTime.Now;
|
||||
|
||||
var result = await _dbContext.SaveChangesAsync() > 0;
|
||||
|
||||
_logger.LogInformation("更新钻石商品成功: Id={Id}, Name={Name}", id, product.Name);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<bool> DeleteDiamondProductAsync(int id)
|
||||
{
|
||||
var product = await _dbContext.DiamondProducts.FirstOrDefaultAsync(p => p.Id == id);
|
||||
if (product == null)
|
||||
{
|
||||
throw new BusinessException(BusinessErrorCodes.NotFound, "钻石商品不存在");
|
||||
}
|
||||
|
||||
_dbContext.DiamondProducts.Remove(product);
|
||||
var result = await _dbContext.SaveChangesAsync() > 0;
|
||||
|
||||
_logger.LogInformation("删除钻石商品成功: Id={Id}, Name={Name}", id, product.Name);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<bool> UpdateDiamondProductStatusAsync(int id, int status)
|
||||
{
|
||||
var product = await _dbContext.DiamondProducts.FirstOrDefaultAsync(p => p.Id == id);
|
||||
if (product == null)
|
||||
{
|
||||
throw new BusinessException(BusinessErrorCodes.NotFound, "钻石商品不存在");
|
||||
}
|
||||
|
||||
var oldStatus = product.Status;
|
||||
product.Status = (byte)status;
|
||||
product.UpdatedAt = DateTime.Now;
|
||||
|
||||
var result = await _dbContext.SaveChangesAsync() > 0;
|
||||
|
||||
_logger.LogInformation("更新钻石商品状态: Id={Id}, OldStatus={OldStatus}, NewStatus={NewStatus}",
|
||||
id, oldStatus, status);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<int> GetMaxSortOrderAsync()
|
||||
{
|
||||
var maxSort = await _dbContext.DiamondProducts.MaxAsync(p => (int?)p.SortOrder) ?? 0;
|
||||
return maxSort;
|
||||
}
|
||||
|
||||
#region Private Helper Methods
|
||||
|
||||
/// <summary>
|
||||
/// 验证请求参数
|
||||
/// </summary>
|
||||
private void ValidateRequest(DiamondProductCreateRequest request)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(request.Name))
|
||||
{
|
||||
throw new BusinessException(BusinessErrorCodes.ValidationFailed, "商品名称不能为空");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(request.ProductsId))
|
||||
{
|
||||
throw new BusinessException(BusinessErrorCodes.ValidationFailed, "商品编号不能为空");
|
||||
}
|
||||
|
||||
if (request.Price <= 0)
|
||||
{
|
||||
throw new BusinessException(BusinessErrorCodes.ValidationFailed, "价格必须大于0");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(request.BaseReward))
|
||||
{
|
||||
throw new BusinessException(BusinessErrorCodes.ValidationFailed, "基础奖励不能为空");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 映射实体到响应模型
|
||||
/// </summary>
|
||||
private DiamondProductResponse MapToResponse(DiamondProduct product)
|
||||
{
|
||||
return new DiamondProductResponse
|
||||
{
|
||||
Id = product.Id,
|
||||
Name = product.Name,
|
||||
ProductsId = product.ProductsId,
|
||||
ProductsType = product.ProductsType,
|
||||
BaseReward = product.BaseReward,
|
||||
Price = product.Price,
|
||||
IsFirst = product.IsFirst ?? 0,
|
||||
FirstBonusReward = product.FirstBonusReward,
|
||||
FirstChargeImage = product.FirstChargeImage,
|
||||
FirstSelectChargeImage = product.FirstSelectChargeImage,
|
||||
NormalImage = product.NormalImage,
|
||||
NormalSelectImage = product.NormalSelectImage,
|
||||
SortOrder = product.SortOrder ?? 0,
|
||||
Status = product.Status ?? 0,
|
||||
CreatedAt = product.CreatedAt,
|
||||
UpdatedAt = product.UpdatedAt
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
using HoneyBox.Admin.Business.Models;
|
||||
using HoneyBox.Admin.Business.Models.Diamond;
|
||||
|
||||
namespace HoneyBox.Admin.Business.Services.Interfaces;
|
||||
|
||||
/// <summary>
|
||||
/// 钻石商品管理服务接口
|
||||
/// </summary>
|
||||
public interface IDiamondService
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取钻石商品列表
|
||||
/// </summary>
|
||||
/// <param name="request">查询请求</param>
|
||||
/// <returns>分页钻石商品列表</returns>
|
||||
Task<PagedResult<DiamondProductResponse>> GetDiamondProductsAsync(DiamondProductListRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// 获取钻石商品详情
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <returns>商品详情</returns>
|
||||
Task<DiamondProductResponse?> GetDiamondProductByIdAsync(int id);
|
||||
|
||||
/// <summary>
|
||||
/// 创建钻石商品
|
||||
/// </summary>
|
||||
/// <param name="request">创建请求</param>
|
||||
/// <returns>新商品ID</returns>
|
||||
Task<int> CreateDiamondProductAsync(DiamondProductCreateRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// 更新钻石商品
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <param name="request">更新请求</param>
|
||||
/// <returns>是否成功</returns>
|
||||
Task<bool> UpdateDiamondProductAsync(int id, DiamondProductUpdateRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// 删除钻石商品
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <returns>是否成功</returns>
|
||||
Task<bool> DeleteDiamondProductAsync(int id);
|
||||
|
||||
/// <summary>
|
||||
/// 更新钻石商品状态
|
||||
/// </summary>
|
||||
/// <param name="id">商品ID</param>
|
||||
/// <param name="status">状态:0-禁用 1-启用</param>
|
||||
/// <returns>是否成功</returns>
|
||||
Task<bool> UpdateDiamondProductStatusAsync(int id, int status);
|
||||
|
||||
/// <summary>
|
||||
/// 获取最大排序值
|
||||
/// </summary>
|
||||
/// <returns>最大排序值</returns>
|
||||
Task<int> GetMaxSortOrderAsync();
|
||||
}
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
import { request, type ApiResponse, type PagedResult } from '@/utils/request'
|
||||
|
||||
// ==================== 钻石商品状态枚举 ====================
|
||||
|
||||
/** 钻石商品状态枚举 */
|
||||
export enum DiamondProductStatus {
|
||||
Disabled = 0, // 禁用
|
||||
Enabled = 1 // 启用
|
||||
}
|
||||
|
||||
/** 钻石商品状态标签映射 */
|
||||
export const DiamondProductStatusLabels: Record<number, string> = {
|
||||
[DiamondProductStatus.Disabled]: '禁用',
|
||||
[DiamondProductStatus.Enabled]: '启用',
|
||||
}
|
||||
|
||||
/** 是否首充枚举 */
|
||||
export enum IsFirstCharge {
|
||||
No = 0, // 否
|
||||
Yes = 1 // 是
|
||||
}
|
||||
|
||||
/** 是否首充标签映射 */
|
||||
export const IsFirstChargeLabels: Record<number, string> = {
|
||||
[IsFirstCharge.No]: '否',
|
||||
[IsFirstCharge.Yes]: '是',
|
||||
}
|
||||
|
||||
// ==================== 钻石商品相关类型定义 ====================
|
||||
|
||||
/** 钻石商品列表查询参数 */
|
||||
export interface DiamondProductListRequest {
|
||||
page: number
|
||||
pageSize: number
|
||||
name?: string
|
||||
status?: number
|
||||
}
|
||||
|
||||
/** 钻石商品响应 */
|
||||
export interface DiamondProductResponse {
|
||||
id: number
|
||||
name: string
|
||||
productsId: string
|
||||
productsType: string
|
||||
baseReward: string
|
||||
price: number
|
||||
isFirst: number
|
||||
firstBonusReward?: string
|
||||
firstChargeImage?: string
|
||||
firstSelectChargeImage?: string
|
||||
normalImage?: string
|
||||
normalSelectImage?: string
|
||||
sortOrder: number
|
||||
status: number
|
||||
createdAt?: string
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
/** 创建钻石商品请求 */
|
||||
export interface DiamondProductCreateRequest {
|
||||
name: string
|
||||
productsId: string
|
||||
productsType: string
|
||||
baseReward: string
|
||||
price: number
|
||||
isFirst: number
|
||||
firstBonusReward?: string
|
||||
firstChargeImage?: string
|
||||
firstSelectChargeImage?: string
|
||||
normalImage?: string
|
||||
normalSelectImage?: string
|
||||
sortOrder: number
|
||||
status: number
|
||||
}
|
||||
|
||||
/** 更新钻石商品请求 */
|
||||
export interface DiamondProductUpdateRequest extends DiamondProductCreateRequest {}
|
||||
|
||||
/** 钻石商品状态更新请求 */
|
||||
export interface DiamondProductStatusRequest {
|
||||
status: number
|
||||
}
|
||||
|
||||
/** 最大排序值响应 */
|
||||
export interface DiamondMaxSortResponse {
|
||||
maxSort: number
|
||||
}
|
||||
|
||||
// ==================== 赠送货币配置类型 ====================
|
||||
|
||||
/** 赠送货币配置项 */
|
||||
export interface RewardConfigItem {
|
||||
type: string // 货币类型:diamond/integral/score等
|
||||
amount: number // 数量
|
||||
}
|
||||
|
||||
// ==================== API 基础路径 ====================
|
||||
|
||||
const DIAMOND_BASE_URL = '/admin/business/diamond'
|
||||
|
||||
// ==================== 钻石商品 API ====================
|
||||
|
||||
/**
|
||||
* 获取钻石商品列表
|
||||
* @param params 查询参数
|
||||
* @returns 分页钻石商品列表
|
||||
*/
|
||||
export function getDiamondProducts(params: DiamondProductListRequest): Promise<ApiResponse<PagedResult<DiamondProductResponse>>> {
|
||||
return request({
|
||||
url: DIAMOND_BASE_URL,
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取钻石商品详情
|
||||
* @param id 商品ID
|
||||
* @returns 商品详情
|
||||
*/
|
||||
export function getDiamondProductById(id: number): Promise<ApiResponse<DiamondProductResponse>> {
|
||||
return request({
|
||||
url: `${DIAMOND_BASE_URL}/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建钻石商品
|
||||
* @param data 创建请求数据
|
||||
* @returns 新商品ID
|
||||
*/
|
||||
export function createDiamondProduct(data: DiamondProductCreateRequest): Promise<ApiResponse<{ id: number }>> {
|
||||
return request({
|
||||
url: DIAMOND_BASE_URL,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新钻石商品
|
||||
* @param id 商品ID
|
||||
* @param data 更新请求数据
|
||||
* @returns 操作结果
|
||||
*/
|
||||
export function updateDiamondProduct(id: number, data: DiamondProductUpdateRequest): Promise<ApiResponse<string>> {
|
||||
return request({
|
||||
url: `${DIAMOND_BASE_URL}/${id}`,
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除钻石商品
|
||||
* @param id 商品ID
|
||||
* @returns 操作结果
|
||||
*/
|
||||
export function deleteDiamondProduct(id: number): Promise<ApiResponse<string>> {
|
||||
return request({
|
||||
url: `${DIAMOND_BASE_URL}/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新钻石商品状态
|
||||
* @param id 商品ID
|
||||
* @param status 状态值(0-禁用 1-启用)
|
||||
* @returns 操作结果
|
||||
*/
|
||||
export function updateDiamondProductStatus(id: number, status: number): Promise<ApiResponse<string>> {
|
||||
return request({
|
||||
url: `${DIAMOND_BASE_URL}/${id}/status`,
|
||||
method: 'put',
|
||||
data: { status }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取最大排序值
|
||||
* @returns 最大排序值
|
||||
*/
|
||||
export function getDiamondMaxSort(): Promise<ApiResponse<DiamondMaxSortResponse>> {
|
||||
return request({
|
||||
url: `${DIAMOND_BASE_URL}/max-sort`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
|
@ -233,6 +233,27 @@ export const businessRoutes: RouteRecordRaw[] = [
|
|||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
// 钻石商城
|
||||
{
|
||||
path: 'diamond',
|
||||
redirect: '/business/diamond/list',
|
||||
meta: {
|
||||
title: '钻石商城',
|
||||
icon: 'Money'
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
name: 'DiamondList',
|
||||
component: () => import('@/views/business/diamond/list.vue'),
|
||||
meta: {
|
||||
title: '钻石商品',
|
||||
permission: 'diamond:list',
|
||||
keepAlive: true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -402,4 +423,39 @@ export const orderPermissions = {
|
|||
export: 'order:export'
|
||||
}
|
||||
|
||||
/**
|
||||
* 钻石商城模块路由配置参考
|
||||
*
|
||||
* 后端菜单配置示例:
|
||||
*
|
||||
* 1. 钻石商城(目录)
|
||||
* - name: 钻石商城
|
||||
* - path: /business/diamond
|
||||
* - menuType: 1 (目录)
|
||||
* - icon: Money
|
||||
* - sortOrder: 50
|
||||
*
|
||||
* 2. 钻石商品(菜单)
|
||||
* - name: 钻石商品
|
||||
* - path: /business/diamond/list
|
||||
* - component: business/diamond/list
|
||||
* - menuType: 2 (菜单)
|
||||
* - permission: diamond:list
|
||||
* - sortOrder: 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 钻石商城模块权限配置
|
||||
* 用于按钮级别权限控制
|
||||
*/
|
||||
export const diamondPermissions = {
|
||||
// 钻石商品列表
|
||||
list: 'diamond:list',
|
||||
|
||||
// 钻石商品操作
|
||||
add: 'diamond:add',
|
||||
edit: 'diamond:edit',
|
||||
delete: 'diamond:delete'
|
||||
}
|
||||
|
||||
export default businessRoutes
|
||||
|
|
|
|||
|
|
@ -0,0 +1,359 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-model="dialogVisible"
|
||||
:title="isEdit ? '编辑钻石商品' : '新增钻石商品'"
|
||||
width="700px"
|
||||
:close-on-click-modal="false"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
label-width="120px"
|
||||
>
|
||||
<!-- 基本信息 -->
|
||||
<el-divider content-position="left">基本信息</el-divider>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商品名称" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入商品名称" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商品编号" prop="productsId">
|
||||
<el-input v-model="formData.productsId" placeholder="请输入商品编号" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商品类型" prop="productsType">
|
||||
<el-input v-model="formData.productsType" placeholder="请输入商品类型" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="价格" prop="price">
|
||||
<el-input-number
|
||||
v-model="formData.price"
|
||||
:min="0.01"
|
||||
:max="999999"
|
||||
:precision="2"
|
||||
placeholder="请输入价格"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 赠送货币配置 -->
|
||||
<el-divider content-position="left">赠送货币配置</el-divider>
|
||||
|
||||
<el-form-item label="基础赠送" prop="baseReward">
|
||||
<RewardConfigInput v-model="formData.baseReward" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 图片配置 -->
|
||||
<el-divider content-position="left">图片配置</el-divider>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="展示图" prop="normalImage">
|
||||
<div class="image-upload-wrapper">
|
||||
<el-input v-model="formData.normalImage" placeholder="请输入图片URL" />
|
||||
<div class="image-preview" v-if="formData.normalImage">
|
||||
<el-image :src="formData.normalImage" fit="cover" :preview-src-list="[formData.normalImage]" preview-teleported />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="选中图" prop="normalSelectImage">
|
||||
<div class="image-upload-wrapper">
|
||||
<el-input v-model="formData.normalSelectImage" placeholder="请输入图片URL" />
|
||||
<div class="image-preview" v-if="formData.normalSelectImage">
|
||||
<el-image :src="formData.normalSelectImage" fit="cover" :preview-src-list="[formData.normalSelectImage]" preview-teleported />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- 首充配置 -->
|
||||
<el-divider content-position="left">首充配置</el-divider>
|
||||
|
||||
<el-form-item label="是否首充" prop="isFirst">
|
||||
<el-radio-group v-model="formData.isFirst">
|
||||
<el-radio :value="0">否</el-radio>
|
||||
<el-radio :value="1">是</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 首充相关字段(条件显示) -->
|
||||
<template v-if="formData.isFirst === 1">
|
||||
<el-form-item label="首充额外赠送" prop="firstBonusReward">
|
||||
<RewardConfigInput v-model="formData.firstBonusReward" />
|
||||
</el-form-item>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="首充展示图" prop="firstChargeImage">
|
||||
<div class="image-upload-wrapper">
|
||||
<el-input v-model="formData.firstChargeImage" placeholder="请输入图片URL" />
|
||||
<div class="image-preview" v-if="formData.firstChargeImage">
|
||||
<el-image :src="formData.firstChargeImage" fit="cover" :preview-src-list="[formData.firstChargeImage]" preview-teleported />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="首充选中图" prop="firstSelectChargeImage">
|
||||
<div class="image-upload-wrapper">
|
||||
<el-input v-model="formData.firstSelectChargeImage" placeholder="请输入图片URL" />
|
||||
<div class="image-preview" v-if="formData.firstSelectChargeImage">
|
||||
<el-image :src="formData.firstSelectChargeImage" fit="cover" :preview-src-list="[formData.firstSelectChargeImage]" preview-teleported />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<!-- 其他配置 -->
|
||||
<el-divider content-position="left">其他配置</el-divider>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="排序" prop="sortOrder">
|
||||
<el-input-number
|
||||
v-model="formData.sortOrder"
|
||||
:min="0"
|
||||
:max="9999"
|
||||
placeholder="请输入排序值"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-radio-group v-model="formData.status">
|
||||
<el-radio :value="1">启用</el-radio>
|
||||
<el-radio :value="0">禁用</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="handleClose">取消</el-button>
|
||||
<el-button type="primary" :loading="submitLoading" @click="handleSubmit">
|
||||
确定
|
||||
</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, watch } from 'vue'
|
||||
import { ElMessage, type FormInstance, type FormRules } from 'element-plus'
|
||||
import RewardConfigInput from './RewardConfigInput.vue'
|
||||
import {
|
||||
createDiamondProduct,
|
||||
updateDiamondProduct,
|
||||
getDiamondMaxSort,
|
||||
type DiamondProductResponse,
|
||||
type DiamondProductCreateRequest
|
||||
} from '@/api/business/diamond'
|
||||
|
||||
const props = defineProps<{
|
||||
modelValue: boolean
|
||||
product: DiamondProductResponse | null
|
||||
isEdit: boolean
|
||||
}>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'update:modelValue', value: boolean): void
|
||||
(e: 'success'): void
|
||||
}>()
|
||||
|
||||
// 弹窗显示状态
|
||||
const dialogVisible = computed({
|
||||
get: () => props.modelValue,
|
||||
set: (val) => emit('update:modelValue', val)
|
||||
})
|
||||
|
||||
// 表单引用
|
||||
const formRef = ref<FormInstance>()
|
||||
const submitLoading = ref(false)
|
||||
|
||||
// 表单数据 - 使用内部类型确保所有字段都有值
|
||||
interface FormDataType {
|
||||
name: string
|
||||
productsId: string
|
||||
productsType: string
|
||||
baseReward: string
|
||||
price: number
|
||||
isFirst: number
|
||||
firstBonusReward: string
|
||||
firstChargeImage: string
|
||||
firstSelectChargeImage: string
|
||||
normalImage: string
|
||||
normalSelectImage: string
|
||||
sortOrder: number
|
||||
status: number
|
||||
}
|
||||
|
||||
const formData = reactive<FormDataType>({
|
||||
name: '',
|
||||
productsId: '',
|
||||
productsType: '',
|
||||
baseReward: '',
|
||||
price: 0,
|
||||
isFirst: 0,
|
||||
firstBonusReward: '',
|
||||
firstChargeImage: '',
|
||||
firstSelectChargeImage: '',
|
||||
normalImage: '',
|
||||
normalSelectImage: '',
|
||||
sortOrder: 0,
|
||||
status: 1
|
||||
})
|
||||
|
||||
// 表单验证规则
|
||||
const formRules: FormRules = {
|
||||
name: [
|
||||
{ required: true, message: '请输入商品名称', trigger: 'blur' },
|
||||
{ min: 1, max: 50, message: '商品名称长度在1-50个字符', trigger: 'blur' }
|
||||
],
|
||||
productsId: [
|
||||
{ required: true, message: '请输入商品编号', trigger: 'blur' }
|
||||
],
|
||||
productsType: [
|
||||
{ required: true, message: '请输入商品类型', trigger: 'blur' }
|
||||
],
|
||||
price: [
|
||||
{ required: true, message: '请输入价格', trigger: 'blur' },
|
||||
{ type: 'number', min: 0.01, message: '价格必须大于0', trigger: 'blur' }
|
||||
],
|
||||
baseReward: [
|
||||
{ required: true, message: '请配置基础赠送货币', trigger: 'change' }
|
||||
]
|
||||
}
|
||||
|
||||
// 监听弹窗打开,初始化数据
|
||||
watch(() => props.modelValue, async (visible) => {
|
||||
if (visible) {
|
||||
if (props.isEdit && props.product) {
|
||||
// 编辑模式:回显数据
|
||||
Object.assign(formData, {
|
||||
name: props.product.name,
|
||||
productsId: props.product.productsId,
|
||||
productsType: props.product.productsType,
|
||||
baseReward: props.product.baseReward || '',
|
||||
price: props.product.price,
|
||||
isFirst: props.product.isFirst,
|
||||
firstBonusReward: props.product.firstBonusReward || '',
|
||||
firstChargeImage: props.product.firstChargeImage || '',
|
||||
firstSelectChargeImage: props.product.firstSelectChargeImage || '',
|
||||
normalImage: props.product.normalImage || '',
|
||||
normalSelectImage: props.product.normalSelectImage || '',
|
||||
sortOrder: props.product.sortOrder,
|
||||
status: props.product.status
|
||||
})
|
||||
} else {
|
||||
// 新增模式:重置数据并获取最大排序值
|
||||
resetForm()
|
||||
try {
|
||||
const res = await getDiamondMaxSort()
|
||||
formData.sortOrder = (res.data.maxSort || 0) + 1
|
||||
} catch {
|
||||
formData.sortOrder = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 重置表单
|
||||
const resetForm = () => {
|
||||
Object.assign(formData, {
|
||||
name: '',
|
||||
productsId: '',
|
||||
productsType: '',
|
||||
baseReward: '',
|
||||
price: 0,
|
||||
isFirst: 0,
|
||||
firstBonusReward: '',
|
||||
firstChargeImage: '',
|
||||
firstSelectChargeImage: '',
|
||||
normalImage: '',
|
||||
normalSelectImage: '',
|
||||
sortOrder: 0,
|
||||
status: 1
|
||||
})
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
|
||||
// 关闭弹窗
|
||||
const handleClose = () => {
|
||||
dialogVisible.value = false
|
||||
resetForm()
|
||||
}
|
||||
|
||||
// 提交表单
|
||||
const handleSubmit = async () => {
|
||||
if (!formRef.value) return
|
||||
|
||||
try {
|
||||
await formRef.value.validate()
|
||||
} catch {
|
||||
return
|
||||
}
|
||||
|
||||
submitLoading.value = true
|
||||
try {
|
||||
const submitData: DiamondProductCreateRequest = {
|
||||
...formData,
|
||||
// 非首充时清空首充相关字段
|
||||
firstBonusReward: formData.isFirst === 1 ? formData.firstBonusReward : undefined,
|
||||
firstChargeImage: formData.isFirst === 1 ? formData.firstChargeImage : undefined,
|
||||
firstSelectChargeImage: formData.isFirst === 1 ? formData.firstSelectChargeImage : undefined
|
||||
}
|
||||
|
||||
if (props.isEdit && props.product) {
|
||||
await updateDiamondProduct(props.product.id, submitData)
|
||||
ElMessage.success('更新成功')
|
||||
} else {
|
||||
await createDiamondProduct(submitData)
|
||||
ElMessage.success('创建成功')
|
||||
}
|
||||
|
||||
emit('success')
|
||||
handleClose()
|
||||
} finally {
|
||||
submitLoading.value = false
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.image-upload-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.image-preview {
|
||||
margin-top: 8px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border: 1px solid #dcdfe6;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.image-preview :deep(.el-image) {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
<template>
|
||||
<el-form :inline="true" :model="searchForm" class="search-form">
|
||||
<el-form-item label="商品名称">
|
||||
<el-input
|
||||
v-model="searchForm.name"
|
||||
placeholder="请输入商品名称"
|
||||
clearable
|
||||
@keyup.enter="handleSearch"
|
||||
style="width: 180px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-select
|
||||
v-model="searchForm.status"
|
||||
placeholder="全部状态"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option label="启用" :value="1" />
|
||||
<el-option label="禁用" :value="0" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleSearch">
|
||||
<el-icon><Search /></el-icon>查询
|
||||
</el-button>
|
||||
<el-button @click="handleReset">
|
||||
<el-icon><Refresh /></el-icon>重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive } from 'vue'
|
||||
import { Search, Refresh } from '@element-plus/icons-vue'
|
||||
import type { DiamondProductListRequest } from '@/api/business/diamond'
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'search', params: Partial<DiamondProductListRequest>): void
|
||||
(e: 'reset'): void
|
||||
}>()
|
||||
|
||||
const searchForm = reactive({
|
||||
name: '',
|
||||
status: undefined as number | undefined
|
||||
})
|
||||
|
||||
const handleSearch = () => {
|
||||
const params: Partial<DiamondProductListRequest> = {}
|
||||
|
||||
if (searchForm.name) {
|
||||
params.name = searchForm.name
|
||||
}
|
||||
if (searchForm.status !== undefined) {
|
||||
params.status = searchForm.status
|
||||
}
|
||||
|
||||
emit('search', params)
|
||||
}
|
||||
|
||||
const handleReset = () => {
|
||||
searchForm.name = ''
|
||||
searchForm.status = undefined
|
||||
emit('reset')
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.search-form {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
<template>
|
||||
<div class="diamond-table">
|
||||
<el-table :data="data" v-loading="loading" border stripe>
|
||||
<el-table-column prop="id" label="ID" width="80" align="center" />
|
||||
|
||||
<el-table-column prop="name" label="商品名称" min-width="120" />
|
||||
|
||||
<el-table-column prop="productsId" label="商品编号" width="120" align="center" />
|
||||
|
||||
<el-table-column prop="price" label="价格" width="100" align="right">
|
||||
<template #default="{ row }">
|
||||
<span class="money">¥{{ row.price?.toFixed(2) || '0.00' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="是否首充" width="90" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-tag :type="row.isFirst === 1 ? 'success' : 'info'" size="small">
|
||||
{{ row.isFirst === 1 ? '是' : '否' }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="展示图" width="100" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-image
|
||||
v-if="getDisplayImage(row)"
|
||||
:src="getDisplayImage(row)"
|
||||
:preview-src-list="[getDisplayImage(row)]"
|
||||
fit="cover"
|
||||
style="width: 50px; height: 50px; border-radius: 4px;"
|
||||
preview-teleported
|
||||
>
|
||||
<template #error>
|
||||
<div class="image-error">
|
||||
<el-icon><Picture /></el-icon>
|
||||
</div>
|
||||
</template>
|
||||
</el-image>
|
||||
<span v-else class="text-muted">-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="sortOrder" label="排序" width="80" align="center" />
|
||||
|
||||
<el-table-column label="状态" width="90" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-switch
|
||||
v-model="row.status"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
@change="(val: number) => handleStatusChange(row, val)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="创建时间" width="160" align="center">
|
||||
<template #default="{ row }">
|
||||
{{ row.createdAt || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="更新时间" width="160" align="center">
|
||||
<template #default="{ row }">
|
||||
{{ row.updatedAt || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="150" align="center" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link size="small" @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="danger" link size="small" @click="handleDelete(row)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页 -->
|
||||
<el-pagination
|
||||
v-model:current-page="currentPage"
|
||||
v-model:page-size="currentPageSize"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handlePageChange"
|
||||
class="pagination"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from 'vue'
|
||||
import { Picture } from '@element-plus/icons-vue'
|
||||
import type { DiamondProductResponse } from '@/api/business/diamond'
|
||||
|
||||
interface Props {
|
||||
data: DiamondProductResponse[]
|
||||
loading: boolean
|
||||
total: number
|
||||
page: number
|
||||
pageSize: number
|
||||
}
|
||||
|
||||
const props = defineProps<Props>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'page-change', page: number): void
|
||||
(e: 'size-change', size: number): void
|
||||
(e: 'edit', row: DiamondProductResponse): void
|
||||
(e: 'delete', row: DiamondProductResponse): void
|
||||
(e: 'status-change', row: DiamondProductResponse, status: number): void
|
||||
}>()
|
||||
|
||||
const currentPage = ref(props.page)
|
||||
const currentPageSize = ref(props.pageSize)
|
||||
|
||||
watch(() => props.page, (val) => {
|
||||
currentPage.value = val
|
||||
})
|
||||
|
||||
watch(() => props.pageSize, (val) => {
|
||||
currentPageSize.value = val
|
||||
})
|
||||
|
||||
// 获取展示图片(首充商品显示首充图,否则显示普通图)
|
||||
const getDisplayImage = (row: DiamondProductResponse): string => {
|
||||
if (row.isFirst === 1 && row.firstChargeImage) {
|
||||
return row.firstChargeImage
|
||||
}
|
||||
return row.normalImage || ''
|
||||
}
|
||||
|
||||
const handlePageChange = (page: number) => {
|
||||
emit('page-change', page)
|
||||
}
|
||||
|
||||
const handleSizeChange = (size: number) => {
|
||||
emit('size-change', size)
|
||||
}
|
||||
|
||||
const handleEdit = (row: DiamondProductResponse) => {
|
||||
emit('edit', row)
|
||||
}
|
||||
|
||||
const handleDelete = (row: DiamondProductResponse) => {
|
||||
emit('delete', row)
|
||||
}
|
||||
|
||||
const handleStatusChange = (row: DiamondProductResponse, status: number) => {
|
||||
emit('status-change', row, status)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.diamond-table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.money {
|
||||
color: #e6a23c;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
.image-error {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background: #f5f7fa;
|
||||
color: #909399;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
margin-top: 16px;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
<template>
|
||||
<div class="reward-config-input">
|
||||
<div v-for="(item, index) in rewardList" :key="index" class="reward-item">
|
||||
<el-select
|
||||
v-model="item.type"
|
||||
placeholder="货币类型"
|
||||
style="width: 120px"
|
||||
@change="handleChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="opt in currencyOptions"
|
||||
:key="opt.value"
|
||||
:label="opt.label"
|
||||
:value="opt.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input-number
|
||||
v-model="item.amount"
|
||||
:min="0"
|
||||
:max="999999999"
|
||||
placeholder="数量"
|
||||
style="width: 150px; margin-left: 8px"
|
||||
@change="handleChange"
|
||||
/>
|
||||
<el-button
|
||||
type="danger"
|
||||
:icon="Delete"
|
||||
circle
|
||||
size="small"
|
||||
style="margin-left: 8px"
|
||||
@click="removeItem(index)"
|
||||
:disabled="rewardList.length <= 1"
|
||||
/>
|
||||
</div>
|
||||
<el-button type="primary" link @click="addItem" style="margin-top: 8px">
|
||||
<el-icon><Plus /></el-icon>添加货币
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, onMounted } from 'vue'
|
||||
import { Plus, Delete } from '@element-plus/icons-vue'
|
||||
import type { RewardConfigItem } from '@/api/business/diamond'
|
||||
|
||||
interface Props {
|
||||
modelValue: string
|
||||
}
|
||||
|
||||
const props = defineProps<Props>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'update:modelValue', value: string): void
|
||||
}>()
|
||||
|
||||
// 货币类型选项
|
||||
const currencyOptions = [
|
||||
{ label: '钻石', value: 'diamond' },
|
||||
{ label: '积分', value: 'integral' },
|
||||
{ label: 'UU币', value: 'score' },
|
||||
{ label: '余额', value: 'money' }
|
||||
]
|
||||
|
||||
// 内部数据
|
||||
const rewardList = ref<RewardConfigItem[]>([{ type: 'diamond', amount: 0 }])
|
||||
|
||||
// 解析JSON字符串
|
||||
const parseRewardConfig = (jsonStr: string): RewardConfigItem[] => {
|
||||
if (!jsonStr) {
|
||||
return [{ type: 'diamond', amount: 0 }]
|
||||
}
|
||||
try {
|
||||
const parsed = JSON.parse(jsonStr)
|
||||
if (Array.isArray(parsed) && parsed.length > 0) {
|
||||
return parsed.map(item => ({
|
||||
type: item.type || 'diamond',
|
||||
amount: item.amount || 0
|
||||
}))
|
||||
}
|
||||
} catch {
|
||||
// 解析失败,返回默认值
|
||||
}
|
||||
return [{ type: 'diamond', amount: 0 }]
|
||||
}
|
||||
|
||||
// 序列化为JSON字符串
|
||||
const serializeRewardConfig = (list: RewardConfigItem[]): string => {
|
||||
const validList = list.filter(item => item.type && item.amount > 0)
|
||||
if (validList.length === 0) {
|
||||
return ''
|
||||
}
|
||||
return JSON.stringify(validList)
|
||||
}
|
||||
|
||||
// 监听外部值变化
|
||||
watch(() => props.modelValue, (newVal) => {
|
||||
rewardList.value = parseRewardConfig(newVal)
|
||||
}, { immediate: true })
|
||||
|
||||
// 处理变化
|
||||
const handleChange = () => {
|
||||
const jsonStr = serializeRewardConfig(rewardList.value)
|
||||
emit('update:modelValue', jsonStr)
|
||||
}
|
||||
|
||||
// 添加货币配置
|
||||
const addItem = () => {
|
||||
rewardList.value.push({ type: 'diamond', amount: 0 })
|
||||
}
|
||||
|
||||
// 移除货币配置
|
||||
const removeItem = (index: number) => {
|
||||
if (rewardList.value.length > 1) {
|
||||
rewardList.value.splice(index, 1)
|
||||
handleChange()
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
rewardList.value = parseRewardConfig(props.modelValue)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.reward-config-input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.reward-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.reward-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
<template>
|
||||
<div class="page-container">
|
||||
<el-card>
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>钻石商品管理</span>
|
||||
<el-button type="primary" @click="handleAdd">
|
||||
<el-icon><Plus /></el-icon>新增商品
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- 搜索表单 -->
|
||||
<DiamondSearchForm @search="handleSearch" @reset="handleReset" />
|
||||
|
||||
<!-- 商品表格 -->
|
||||
<DiamondTable
|
||||
:data="productList"
|
||||
:loading="loading"
|
||||
:total="total"
|
||||
:page="queryParams.page"
|
||||
:page-size="queryParams.pageSize"
|
||||
@page-change="handlePageChange"
|
||||
@size-change="handleSizeChange"
|
||||
@edit="handleEdit"
|
||||
@delete="handleDelete"
|
||||
@status-change="handleStatusChange"
|
||||
/>
|
||||
</el-card>
|
||||
|
||||
<!-- 新增/编辑弹窗 -->
|
||||
<DiamondFormDialog
|
||||
v-model="formDialogVisible"
|
||||
:product="currentProduct"
|
||||
:is-edit="isEdit"
|
||||
@success="fetchData"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { Plus } from '@element-plus/icons-vue'
|
||||
import DiamondSearchForm from './components/DiamondSearchForm.vue'
|
||||
import DiamondTable from './components/DiamondTable.vue'
|
||||
import DiamondFormDialog from './components/DiamondFormDialog.vue'
|
||||
import {
|
||||
getDiamondProducts,
|
||||
deleteDiamondProduct,
|
||||
updateDiamondProductStatus,
|
||||
type DiamondProductListRequest,
|
||||
type DiamondProductResponse
|
||||
} from '@/api/business/diamond'
|
||||
|
||||
// 列表数据
|
||||
const loading = ref(false)
|
||||
const productList = ref<DiamondProductResponse[]>([])
|
||||
const total = ref(0)
|
||||
|
||||
// 查询参数
|
||||
const queryParams = reactive<DiamondProductListRequest>({
|
||||
page: 1,
|
||||
pageSize: 20
|
||||
})
|
||||
|
||||
// 弹窗控制
|
||||
const formDialogVisible = ref(false)
|
||||
const isEdit = ref(false)
|
||||
const currentProduct = ref<DiamondProductResponse | null>(null)
|
||||
|
||||
// 获取商品列表
|
||||
const fetchData = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const res = await getDiamondProducts(queryParams)
|
||||
productList.value = res.data.list
|
||||
total.value = res.data.total
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// 搜索
|
||||
const handleSearch = (params: Partial<DiamondProductListRequest>) => {
|
||||
queryParams.name = params.name
|
||||
queryParams.status = params.status
|
||||
queryParams.page = 1
|
||||
fetchData()
|
||||
}
|
||||
|
||||
// 重置
|
||||
const handleReset = () => {
|
||||
queryParams.name = undefined
|
||||
queryParams.status = undefined
|
||||
queryParams.page = 1
|
||||
fetchData()
|
||||
}
|
||||
|
||||
// 分页
|
||||
const handlePageChange = (page: number) => {
|
||||
queryParams.page = page
|
||||
fetchData()
|
||||
}
|
||||
|
||||
const handleSizeChange = (size: number) => {
|
||||
queryParams.pageSize = size
|
||||
queryParams.page = 1
|
||||
fetchData()
|
||||
}
|
||||
|
||||
// 新增商品
|
||||
const handleAdd = () => {
|
||||
isEdit.value = false
|
||||
currentProduct.value = null
|
||||
formDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 编辑商品
|
||||
const handleEdit = (row: DiamondProductResponse) => {
|
||||
isEdit.value = true
|
||||
currentProduct.value = { ...row }
|
||||
formDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 删除商品
|
||||
const handleDelete = async (row: DiamondProductResponse) => {
|
||||
try {
|
||||
await ElMessageBox.confirm(
|
||||
`确定要删除商品 "${row.name}" 吗?删除后不可恢复!`,
|
||||
'删除确认',
|
||||
{ type: 'warning' }
|
||||
)
|
||||
await deleteDiamondProduct(row.id)
|
||||
ElMessage.success('删除成功')
|
||||
fetchData()
|
||||
} catch {
|
||||
// 取消操作
|
||||
}
|
||||
}
|
||||
|
||||
// 状态切换
|
||||
const handleStatusChange = async (row: DiamondProductResponse, status: number) => {
|
||||
try {
|
||||
await updateDiamondProductStatus(row.id, status)
|
||||
ElMessage.success('状态更新成功')
|
||||
fetchData()
|
||||
} catch {
|
||||
// 恢复原状态
|
||||
fetchData()
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
fetchData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.page-container {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as r,c as a,b as t,e as p,w as _,g as l,t as d,i as c,k as u,_ as i}from"./index-C69OfkED.js";const m={class:"error-page"},f={class:"error-content"},x=r({__name:"404",setup(k){const o=c(),s=()=>{o.push("/")};return(v,e)=>{const n=l("el-button");return u(),a("div",m,[t("div",f,[e[1]||(e[1]=t("h1",null,"404",-1)),e[2]||(e[2]=t("p",null,"抱歉,您访问的页面不存在",-1)),p(n,{type:"primary",onClick:s},{default:_(()=>[...e[0]||(e[0]=[d("返回首页",-1)])]),_:1})])])}}}),b=i(x,[["__scopeId","data-v-7e9f7d47"]]);export{b as default};
|
||||
import{d as r,c as a,b as t,e as p,w as _,g as l,t as d,i as c,k as u,_ as i}from"./index-VHOuw44X.js";const m={class:"error-page"},f={class:"error-content"},x=r({__name:"404",setup(k){const o=c(),s=()=>{o.push("/")};return(v,e)=>{const n=l("el-button");return u(),a("div",m,[t("div",f,[e[1]||(e[1]=t("h1",null,"404",-1)),e[2]||(e[2]=t("p",null,"抱歉,您访问的页面不存在",-1)),p(n,{type:"primary",onClick:s},{default:_(()=>[...e[0]||(e[0]=[d("返回首页",-1)])]),_:1})])])}}}),b=i(x,[["__scopeId","data-v-7e9f7d47"]]);export{b as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as j,r as z,D as P,g as u,H as A,c as d,k as l,I as E,e as s,z as x,w as n,b as t,G as c,x as a,l as G,K as H,t as g,_ as K}from"./index-C69OfkED.js";import{O as k}from"./order-Bq5-e0yY.js";const $={class:"order-table"},q={class:"user-info"},J={class:"nickname"},L={class:"uid"},Q={key:0,class:"mobile"},R={class:"order-num"},W={class:"goods-info"},X={class:"image-error"},Y={class:"goods-detail"},Z={class:"goods-title"},w={class:"goods-meta"},ee={class:"money-info"},te={class:"money"},ae={key:0},se={class:"discount"},ne={class:"money"},ie={class:"pay-info"},oe={key:0},le={key:1},de={key:2},ce={key:3},re={key:4},ue={class:"time-info"},_e={key:0},me=j({__name:"BuyOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail"],setup(v,{emit:C}){const h=v,y=C,f=z(h.page),b=z(h.pageSize);P(()=>h.page,i=>{f.value=i}),P(()=>h.pageSize,i=>{b.value=i});const S=i=>{switch(i){case k.Paid:return"success";case k.Unpaid:return"warning";case k.Cancelled:return"info";default:return"info"}},N=i=>{y("page-change",i)},T=i=>{y("size-change",i)},B=i=>{y("view-detail",i)};return(i,o)=>{const r=u("el-table-column"),I=u("el-icon"),U=u("el-image"),D=u("el-tag"),F=u("el-button"),V=u("el-table"),O=u("el-pagination"),M=A("loading");return l(),d("div",$,[E((l(),x(V,{data:v.data,border:"",stripe:""},{default:n(()=>[s(r,{label:"用户信息","min-width":"160",fixed:"left"},{default:n(({row:e})=>[t("div",q,[t("div",J,a(e.userNickname||"-"),1),t("div",L,"UID: "+a(e.userId),1),e.userMobile?(l(),d("div",Q,a(e.userMobile),1)):c("",!0)])]),_:1}),s(r,{prop:"orderNum",label:"订单号","min-width":"180"},{default:n(({row:e})=>[t("span",R,a(e.orderNum),1)]),_:1}),s(r,{label:"盒子信息","min-width":"200"},{default:n(({row:e})=>[t("div",W,[e.goodsImgUrl?(l(),x(U,{key:0,src:e.goodsImgUrl,"preview-src-list":[e.goodsImgUrl],fit:"cover",class:"goods-img",lazy:""},{error:n(()=>[t("div",X,[s(I,null,{default:n(()=>[s(G(H))]),_:1})])]),_:1},8,["src","preview-src-list"])):c("",!0),t("div",Y,[t("div",Z,a(e.goodsTitle||"-"),1),t("div",w,[t("span",null,"抽奖次数: "+a(e.num),1),t("span",null,"中奖数: "+a(e.prizeNum),1)])])])]),_:1}),s(r,{label:"金额详情","min-width":"180"},{default:n(({row:e})=>{var _,m,p;return[t("div",ee,[t("div",null,[o[2]||(o[2]=g("订单金额: ",-1)),t("span",te,"¥"+a(((_=e.orderTotal)==null?void 0:_.toFixed(2))||"0.00"),1)]),e.discount>0?(l(),d("div",ae,[o[3]||(o[3]=g("折扣: ",-1)),t("span",se,"-¥"+a((m=e.discount)==null?void 0:m.toFixed(2)),1)])):c("",!0),t("div",null,[o[4]||(o[4]=g("实付金额: ",-1)),t("span",ne,"¥"+a(((p=e.discountTotal)==null?void 0:p.toFixed(2))||"0.00"),1)])])]}),_:1}),s(r,{label:"支付方式","min-width":"140"},{default:n(({row:e})=>{var _,m,p;return[t("div",ie,[e.weChatPayment>0?(l(),d("div",oe,"微信: ¥"+a((_=e.weChatPayment)==null?void 0:_.toFixed(2)),1)):c("",!0),e.balancePayment>0?(l(),d("div",le,"余额: ¥"+a((m=e.balancePayment)==null?void 0:m.toFixed(2)),1)):c("",!0),e.integralPayment>0?(l(),d("div",de,"积分: "+a(e.integralPayment),1)):c("",!0),e.scorePayment>0?(l(),d("div",ce,"评分: "+a(e.scorePayment),1)):c("",!0),e.couponPayment&&e.couponPayment>0?(l(),d("div",re,"优惠券: ¥"+a((p=e.couponPayment)==null?void 0:p.toFixed(2)),1)):c("",!0)])]}),_:1}),s(r,{label:"状态",width:"100",align:"center"},{default:n(({row:e})=>[s(D,{type:S(e.status),size:"small"},{default:n(()=>[g(a(e.statusName),1)]),_:2},1032,["type"])]),_:1}),s(r,{label:"时间","min-width":"160"},{default:n(({row:e})=>[t("div",ue,[t("div",null,"下单: "+a(e.createdAt),1),e.payTime?(l(),d("div",_e,"支付: "+a(e.payTime),1)):c("",!0)])]),_:1}),s(r,{label:"操作",width:"120",fixed:"right",align:"center"},{default:n(({row:e})=>[s(F,{type:"primary",link:"",onClick:_=>B(e)},{default:n(()=>[...o[5]||(o[5]=[g(" 查看详情 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[M,v.loading]]),s(O,{"current-page":f.value,"onUpdate:currentPage":o[0]||(o[0]=e=>f.value=e),"page-size":b.value,"onUpdate:pageSize":o[1]||(o[1]=e=>b.value=e),"page-sizes":[10,20,50,100],total:v.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:T,onCurrentChange:N,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),ve=K(me,[["__scopeId","data-v-3010f6cf"]]);export{ve as default};
|
||||
import{d as j,r as z,G as P,g as u,J as A,c as d,k as l,K as E,e as s,z as x,w as n,b as t,H as c,x as a,l as G,L as H,t as g,_ as J}from"./index-VHOuw44X.js";import{O as k}from"./order-nzz6w9AQ.js";const K={class:"order-table"},L={class:"user-info"},$={class:"nickname"},q={class:"uid"},Q={key:0,class:"mobile"},R={class:"order-num"},W={class:"goods-info"},X={class:"image-error"},Y={class:"goods-detail"},Z={class:"goods-title"},w={class:"goods-meta"},ee={class:"money-info"},te={class:"money"},ae={key:0},se={class:"discount"},ne={class:"money"},ie={class:"pay-info"},oe={key:0},le={key:1},de={key:2},ce={key:3},re={key:4},ue={class:"time-info"},_e={key:0},me=j({__name:"BuyOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail"],setup(v,{emit:C}){const h=v,y=C,f=z(h.page),b=z(h.pageSize);P(()=>h.page,i=>{f.value=i}),P(()=>h.pageSize,i=>{b.value=i});const S=i=>{switch(i){case k.Paid:return"success";case k.Unpaid:return"warning";case k.Cancelled:return"info";default:return"info"}},N=i=>{y("page-change",i)},T=i=>{y("size-change",i)},B=i=>{y("view-detail",i)};return(i,o)=>{const r=u("el-table-column"),U=u("el-icon"),F=u("el-image"),I=u("el-tag"),D=u("el-button"),V=u("el-table"),O=u("el-pagination"),M=A("loading");return l(),d("div",K,[E((l(),x(V,{data:v.data,border:"",stripe:""},{default:n(()=>[s(r,{label:"用户信息","min-width":"160",fixed:"left"},{default:n(({row:e})=>[t("div",L,[t("div",$,a(e.userNickname||"-"),1),t("div",q,"UID: "+a(e.userId),1),e.userMobile?(l(),d("div",Q,a(e.userMobile),1)):c("",!0)])]),_:1}),s(r,{prop:"orderNum",label:"订单号","min-width":"180"},{default:n(({row:e})=>[t("span",R,a(e.orderNum),1)]),_:1}),s(r,{label:"盒子信息","min-width":"200"},{default:n(({row:e})=>[t("div",W,[e.goodsImgUrl?(l(),x(F,{key:0,src:e.goodsImgUrl,"preview-src-list":[e.goodsImgUrl],fit:"cover",class:"goods-img",lazy:""},{error:n(()=>[t("div",X,[s(U,null,{default:n(()=>[s(G(H))]),_:1})])]),_:1},8,["src","preview-src-list"])):c("",!0),t("div",Y,[t("div",Z,a(e.goodsTitle||"-"),1),t("div",w,[t("span",null,"抽奖次数: "+a(e.num),1),t("span",null,"中奖数: "+a(e.prizeNum),1)])])])]),_:1}),s(r,{label:"金额详情","min-width":"180"},{default:n(({row:e})=>{var _,m,p;return[t("div",ee,[t("div",null,[o[2]||(o[2]=g("订单金额: ",-1)),t("span",te,"¥"+a(((_=e.orderTotal)==null?void 0:_.toFixed(2))||"0.00"),1)]),e.discount>0?(l(),d("div",ae,[o[3]||(o[3]=g("折扣: ",-1)),t("span",se,"-¥"+a((m=e.discount)==null?void 0:m.toFixed(2)),1)])):c("",!0),t("div",null,[o[4]||(o[4]=g("实付金额: ",-1)),t("span",ne,"¥"+a(((p=e.discountTotal)==null?void 0:p.toFixed(2))||"0.00"),1)])])]}),_:1}),s(r,{label:"支付方式","min-width":"140"},{default:n(({row:e})=>{var _,m,p;return[t("div",ie,[e.weChatPayment>0?(l(),d("div",oe,"微信: ¥"+a((_=e.weChatPayment)==null?void 0:_.toFixed(2)),1)):c("",!0),e.balancePayment>0?(l(),d("div",le,"余额: ¥"+a((m=e.balancePayment)==null?void 0:m.toFixed(2)),1)):c("",!0),e.integralPayment>0?(l(),d("div",de,"积分: "+a(e.integralPayment),1)):c("",!0),e.scorePayment>0?(l(),d("div",ce,"评分: "+a(e.scorePayment),1)):c("",!0),e.couponPayment&&e.couponPayment>0?(l(),d("div",re,"优惠券: ¥"+a((p=e.couponPayment)==null?void 0:p.toFixed(2)),1)):c("",!0)])]}),_:1}),s(r,{label:"状态",width:"100",align:"center"},{default:n(({row:e})=>[s(I,{type:S(e.status),size:"small"},{default:n(()=>[g(a(e.statusName),1)]),_:2},1032,["type"])]),_:1}),s(r,{label:"时间","min-width":"160"},{default:n(({row:e})=>[t("div",ue,[t("div",null,"下单: "+a(e.createdAt),1),e.payTime?(l(),d("div",_e,"支付: "+a(e.payTime),1)):c("",!0)])]),_:1}),s(r,{label:"操作",width:"120",fixed:"right",align:"center"},{default:n(({row:e})=>[s(D,{type:"primary",link:"",onClick:_=>B(e)},{default:n(()=>[...o[5]||(o[5]=[g(" 查看详情 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[M,v.loading]]),s(O,{"current-page":f.value,"onUpdate:currentPage":o[0]||(o[0]=e=>f.value=e),"page-size":b.value,"onUpdate:pageSize":o[1]||(o[1]=e=>b.value=e),"page-sizes":[10,20,50,100],total:v.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:T,onCurrentChange:N,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),ve=J(me,[["__scopeId","data-v-3010f6cf"]]);export{ve as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
.image-upload-wrapper[data-v-9faeb9fb]{width:100%}.image-preview[data-v-9faeb9fb]{margin-top:8px;width:80px;height:80px;border:1px solid #dcdfe6;border-radius:4px;overflow:hidden}.image-preview[data-v-9faeb9fb] .el-image{width:100%;height:100%}
|
||||
|
|
@ -0,0 +1 @@
|
|||
.search-form[data-v-328e75c4]{margin-bottom:16px}
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{d as x,a as y,g as a,z as k,k as w,w as l,e,f as C,t as i,l as p,I as F,s as S,_ as B}from"./index-VHOuw44X.js";const D=x({__name:"DiamondSearchForm",emits:["search","reset"],setup(I,{emit:f}){const r=f,t=y({name:"",status:void 0}),u=()=>{const n={};t.name&&(n.name=t.name),t.status!==void 0&&(n.status=t.status),r("search",n)},h=()=>{t.name="",t.status=void 0,r("reset")};return(n,o)=>{const b=a("el-input"),s=a("el-form-item"),d=a("el-option"),v=a("el-select"),_=a("el-icon"),c=a("el-button"),V=a("el-form");return w(),k(V,{inline:!0,model:t,class:"search-form"},{default:l(()=>[e(s,{label:"商品名称"},{default:l(()=>[e(b,{modelValue:t.name,"onUpdate:modelValue":o[0]||(o[0]=m=>t.name=m),placeholder:"请输入商品名称",clearable:"",onKeyup:C(u,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),e(s,{label:"状态"},{default:l(()=>[e(v,{modelValue:t.status,"onUpdate:modelValue":o[1]||(o[1]=m=>t.status=m),placeholder:"全部状态",clearable:"",style:{width:"120px"}},{default:l(()=>[e(d,{label:"启用",value:1}),e(d,{label:"禁用",value:0})]),_:1},8,["modelValue"])]),_:1}),e(s,null,{default:l(()=>[e(c,{type:"primary",onClick:u},{default:l(()=>[e(_,null,{default:l(()=>[e(p(F))]),_:1}),o[2]||(o[2]=i("查询 ",-1))]),_:1}),e(c,{onClick:h},{default:l(()=>[e(_,null,{default:l(()=>[e(p(S))]),_:1}),o[3]||(o[3]=i("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),N=B(D,[["__scopeId","data-v-328e75c4"]]);export{N as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
.diamond-table[data-v-8e189c08]{width:100%}.money[data-v-8e189c08]{color:#e6a23c;font-weight:500}.text-muted[data-v-8e189c08]{color:#909399}.image-error[data-v-8e189c08]{display:flex;justify-content:center;align-items:center;width:50px;height:50px;background:#f5f7fa;color:#909399;border-radius:4px}.pagination[data-v-8e189c08]{margin-top:16px;justify-content:flex-end}
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{d as A,r as v,G as b,g as o,J as E,c as z,k as g,K as $,e as a,z as C,w as n,b as x,x as u,t as c,l as j,L as G,_ as J}from"./index-VHOuw44X.js";const K={class:"diamond-table"},L={class:"money"},O={class:"image-error"},q={key:1,class:"text-muted"},H=A({__name:"DiamondTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","edit","delete","status-change"],setup(d,{emit:y}){const p=d,r=y,_=v(p.page),m=v(p.pageSize);b(()=>p.page,t=>{_.value=t}),b(()=>p.pageSize,t=>{m.value=t});const h=t=>t.isFirst===1&&t.firstChargeImage?t.firstChargeImage:t.normalImage||"",k=t=>{r("page-change",t)},w=t=>{r("size-change",t)},S=t=>{r("edit",t)},D=t=>{r("delete",t)},I=(t,i)=>{r("status-change",t,i)};return(t,i)=>{const l=o("el-table-column"),V=o("el-tag"),B=o("el-icon"),F=o("el-image"),P=o("el-switch"),f=o("el-button"),U=o("el-table"),N=o("el-pagination"),T=E("loading");return g(),z("div",K,[$((g(),C(U,{data:d.data,border:"",stripe:""},{default:n(()=>[a(l,{prop:"id",label:"ID",width:"80",align:"center"}),a(l,{prop:"name",label:"商品名称","min-width":"120"}),a(l,{prop:"productsId",label:"商品编号",width:"120",align:"center"}),a(l,{prop:"price",label:"价格",width:"100",align:"right"},{default:n(({row:e})=>{var s;return[x("span",L,"¥"+u(((s=e.price)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),a(l,{label:"是否首充",width:"90",align:"center"},{default:n(({row:e})=>[a(V,{type:e.isFirst===1?"success":"info",size:"small"},{default:n(()=>[c(u(e.isFirst===1?"是":"否"),1)]),_:2},1032,["type"])]),_:1}),a(l,{label:"展示图",width:"100",align:"center"},{default:n(({row:e})=>[h(e)?(g(),C(F,{key:0,src:h(e),"preview-src-list":[h(e)],fit:"cover",style:{width:"50px",height:"50px","border-radius":"4px"},"preview-teleported":""},{error:n(()=>[x("div",O,[a(B,null,{default:n(()=>[a(j(G))]),_:1})])]),_:1},8,["src","preview-src-list"])):(g(),z("span",q,"-"))]),_:1}),a(l,{prop:"sortOrder",label:"排序",width:"80",align:"center"}),a(l,{label:"状态",width:"90",align:"center"},{default:n(({row:e})=>[a(P,{modelValue:e.status,"onUpdate:modelValue":s=>e.status=s,"active-value":1,"inactive-value":0,onChange:s=>I(e,s)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),a(l,{label:"创建时间",width:"160",align:"center"},{default:n(({row:e})=>[c(u(e.createdAt||"-"),1)]),_:1}),a(l,{label:"更新时间",width:"160",align:"center"},{default:n(({row:e})=>[c(u(e.updatedAt||"-"),1)]),_:1}),a(l,{label:"操作",width:"150",align:"center",fixed:"right"},{default:n(({row:e})=>[a(f,{type:"primary",link:"",size:"small",onClick:s=>S(e)},{default:n(()=>[...i[2]||(i[2]=[c(" 编辑 ",-1)])]),_:1},8,["onClick"]),a(f,{type:"danger",link:"",size:"small",onClick:s=>D(e)},{default:n(()=>[...i[3]||(i[3]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[T,d.loading]]),a(N,{"current-page":_.value,"onUpdate:currentPage":i[0]||(i[0]=e=>_.value=e),"page-size":m.value,"onUpdate:pageSize":i[1]||(i[1]=e=>m.value=e),"page-sizes":[10,20,50,100],total:d.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:w,onCurrentChange:k,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),Q=J(H,[["__scopeId","data-v-8e189c08"]]);export{Q as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as K,v as y,r as g,a as P,D as W,g as r,z as I,k as u,w as t,c,G as D,e as o,b as p,l as X,m as Y,x as s,F as m,y as Z,t as d,E as B,T as $,_ as ee}from"./index-C69OfkED.js";import{a as te}from"./user-CpNQ-zyC.js";const ae={key:0,class:"user-info"},le={class:"user-detail"},oe={class:"nickname"},se={class:"uid"},ne={class:"coupon-option"},ue={class:"coupon-title"},ie={class:"coupon-value"},re={key:0,class:"quantity-tip"},de=K({__name:"GiftCouponDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","success"],setup(_,{emit:T}){const k=_,L=T,b=y({get:()=>k.modelValue,set:a=>L("update:modelValue",a)}),V=g(),h=g(!1),x=g(!1),f=g([]),i=P({couponId:0,quantity:1}),U={couponId:[{required:!0,message:"请选择优惠券",trigger:"change"}],quantity:[{required:!0,message:"请输入赠送数量",trigger:"blur"},{type:"number",min:1,message:"数量必须大于0",trigger:"blur"}]},l=y(()=>f.value.find(a=>a.id===i.couponId)),z=y(()=>l.value?{1:"满减券",2:"折扣券",3:"无门槛券"}[l.value.type]||"未知":""),E=y(()=>{var a;return(a=l.value)!=null&&a.stock?l.value.stock:999}),F=async()=>{x.value=!0;try{const a=await $({url:"/admin/business/coupons/templates",method:"get",params:{status:1}});f.value=a.data||[]}catch(a){console.error("加载优惠券列表失败",a),f.value=[]}finally{x.value=!1}},G=()=>{var a;i.couponId=0,i.quantity=1,(a=V.value)==null||a.resetFields(),F()},C=()=>{b.value=!1},M=async()=>{var n;if(!k.user){B.warning("用户信息不存在");return}if(await((n=V.value)==null?void 0:n.validate())){h.value=!0;try{await te(k.user.id,i),B.success("赠送成功"),L("success"),C()}catch(q){B.error(q.message||"赠送失败")}finally{h.value=!1}}};return W(()=>i.couponId,()=>{i.quantity=1}),(a,n)=>{const q=r("el-icon"),R=r("el-avatar"),O=r("el-option"),S=r("el-select"),w=r("el-form-item"),v=r("el-descriptions-item"),Q=r("el-descriptions"),j=r("el-input-number"),A=r("el-form"),N=r("el-button"),H=r("el-dialog");return u(),I(H,{modelValue:b.value,"onUpdate:modelValue":n[2]||(n[2]=e=>b.value=e),title:"赠送优惠券",width:"600px","close-on-click-modal":!1,onClose:C,onOpen:G},{footer:t(()=>[o(N,{onClick:C},{default:t(()=>[...n[3]||(n[3]=[d("取消",-1)])]),_:1}),o(N,{type:"primary",onClick:M,loading:h.value},{default:t(()=>[...n[4]||(n[4]=[d("确定赠送",-1)])]),_:1},8,["loading"])]),default:t(()=>[_.user?(u(),c("div",ae,[o(R,{src:_.user.avatar,size:40},{default:t(()=>[o(q,null,{default:t(()=>[o(X(Y))]),_:1})]),_:1},8,["src"]),p("div",le,[p("div",oe,s(_.user.nickname||"-"),1),p("div",se,"UID: "+s(_.user.id),1)])])):D("",!0),o(A,{ref_key:"formRef",ref:V,model:i,rules:U,"label-width":"100px"},{default:t(()=>[o(w,{label:"选择优惠券",prop:"couponId"},{default:t(()=>[o(S,{modelValue:i.couponId,"onUpdate:modelValue":n[0]||(n[0]=e=>i.couponId=e),placeholder:"请选择优惠券",style:{width:"100%"},filterable:"",loading:x.value},{default:t(()=>[(u(!0),c(m,null,Z(f.value,e=>(u(),I(O,{key:e.id,label:e.title,value:e.id},{default:t(()=>[p("div",ne,[p("span",ue,s(e.title),1),p("span",ie,[e.type===1?(u(),c(m,{key:0},[d("满"+s(e.minMoney)+"减"+s(e.money),1)],64)):e.type===2?(u(),c(m,{key:1},[d(s(e.discount)+"折",1)],64)):(u(),c(m,{key:2},[d(s(e.money)+"元",1)],64))])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),l.value?(u(),I(w,{key:0,label:"优惠券详情"},{default:t(()=>[o(Q,{column:2,border:"",size:"small"},{default:t(()=>[o(v,{label:"名称"},{default:t(()=>[d(s(l.value.title),1)]),_:1}),o(v,{label:"类型"},{default:t(()=>[d(s(z.value),1)]),_:1}),o(v,{label:"面值"},{default:t(()=>[l.value.type===1?(u(),c(m,{key:0},[d("满"+s(l.value.minMoney)+"减"+s(l.value.money),1)],64)):l.value.type===2?(u(),c(m,{key:1},[d(s(l.value.discount)+"折",1)],64)):(u(),c(m,{key:2},[d(s(l.value.money)+"元",1)],64))]),_:1}),o(v,{label:"剩余数量"},{default:t(()=>[d(s(l.value.stock??"不限"),1)]),_:1})]),_:1})]),_:1})):D("",!0),o(w,{label:"赠送数量",prop:"quantity"},{default:t(()=>{var e;return[o(j,{modelValue:i.quantity,"onUpdate:modelValue":n[1]||(n[1]=J=>i.quantity=J),min:1,max:E.value,style:{width:"200px"}},null,8,["modelValue","max"]),(e=l.value)!=null&&e.stock?(u(),c("span",re," (最多可赠送 "+s(l.value.stock)+" 张) ",1)):D("",!0)]}),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),pe=ee(de,[["__scopeId","data-v-5333f49e"]]);export{pe as default};
|
||||
import{d as K,v as y,r as g,a as P,G as W,g as r,z as I,k as u,w as t,c,H as D,e as o,b as p,l as X,m as Y,x as s,F as m,y as Z,t as d,E as B,D as $,_ as ee}from"./index-VHOuw44X.js";import{a as te}from"./user-CKTn20xm.js";const ae={key:0,class:"user-info"},le={class:"user-detail"},oe={class:"nickname"},se={class:"uid"},ne={class:"coupon-option"},ue={class:"coupon-title"},ie={class:"coupon-value"},re={key:0,class:"quantity-tip"},de=K({__name:"GiftCouponDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue","success"],setup(_,{emit:U}){const k=_,L=U,b=y({get:()=>k.modelValue,set:a=>L("update:modelValue",a)}),V=g(),h=g(!1),x=g(!1),f=g([]),i=P({couponId:0,quantity:1}),z={couponId:[{required:!0,message:"请选择优惠券",trigger:"change"}],quantity:[{required:!0,message:"请输入赠送数量",trigger:"blur"},{type:"number",min:1,message:"数量必须大于0",trigger:"blur"}]},l=y(()=>f.value.find(a=>a.id===i.couponId)),E=y(()=>l.value?{1:"满减券",2:"折扣券",3:"无门槛券"}[l.value.type]||"未知":""),F=y(()=>{var a;return(a=l.value)!=null&&a.stock?l.value.stock:999}),G=async()=>{x.value=!0;try{const a=await $({url:"/admin/business/coupons/templates",method:"get",params:{status:1}});f.value=a.data||[]}catch(a){console.error("加载优惠券列表失败",a),f.value=[]}finally{x.value=!1}},M=()=>{var a;i.couponId=0,i.quantity=1,(a=V.value)==null||a.resetFields(),G()},C=()=>{b.value=!1},R=async()=>{var n;if(!k.user){B.warning("用户信息不存在");return}if(await((n=V.value)==null?void 0:n.validate())){h.value=!0;try{await te(k.user.id,i),B.success("赠送成功"),L("success"),C()}catch(q){B.error(q.message||"赠送失败")}finally{h.value=!1}}};return W(()=>i.couponId,()=>{i.quantity=1}),(a,n)=>{const q=r("el-icon"),T=r("el-avatar"),O=r("el-option"),S=r("el-select"),w=r("el-form-item"),v=r("el-descriptions-item"),H=r("el-descriptions"),Q=r("el-input-number"),j=r("el-form"),N=r("el-button"),A=r("el-dialog");return u(),I(A,{modelValue:b.value,"onUpdate:modelValue":n[2]||(n[2]=e=>b.value=e),title:"赠送优惠券",width:"600px","close-on-click-modal":!1,onClose:C,onOpen:M},{footer:t(()=>[o(N,{onClick:C},{default:t(()=>[...n[3]||(n[3]=[d("取消",-1)])]),_:1}),o(N,{type:"primary",onClick:R,loading:h.value},{default:t(()=>[...n[4]||(n[4]=[d("确定赠送",-1)])]),_:1},8,["loading"])]),default:t(()=>[_.user?(u(),c("div",ae,[o(T,{src:_.user.avatar,size:40},{default:t(()=>[o(q,null,{default:t(()=>[o(X(Y))]),_:1})]),_:1},8,["src"]),p("div",le,[p("div",oe,s(_.user.nickname||"-"),1),p("div",se,"UID: "+s(_.user.id),1)])])):D("",!0),o(j,{ref_key:"formRef",ref:V,model:i,rules:z,"label-width":"100px"},{default:t(()=>[o(w,{label:"选择优惠券",prop:"couponId"},{default:t(()=>[o(S,{modelValue:i.couponId,"onUpdate:modelValue":n[0]||(n[0]=e=>i.couponId=e),placeholder:"请选择优惠券",style:{width:"100%"},filterable:"",loading:x.value},{default:t(()=>[(u(!0),c(m,null,Z(f.value,e=>(u(),I(O,{key:e.id,label:e.title,value:e.id},{default:t(()=>[p("div",ne,[p("span",ue,s(e.title),1),p("span",ie,[e.type===1?(u(),c(m,{key:0},[d("满"+s(e.minMoney)+"减"+s(e.money),1)],64)):e.type===2?(u(),c(m,{key:1},[d(s(e.discount)+"折",1)],64)):(u(),c(m,{key:2},[d(s(e.money)+"元",1)],64))])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),l.value?(u(),I(w,{key:0,label:"优惠券详情"},{default:t(()=>[o(H,{column:2,border:"",size:"small"},{default:t(()=>[o(v,{label:"名称"},{default:t(()=>[d(s(l.value.title),1)]),_:1}),o(v,{label:"类型"},{default:t(()=>[d(s(E.value),1)]),_:1}),o(v,{label:"面值"},{default:t(()=>[l.value.type===1?(u(),c(m,{key:0},[d("满"+s(l.value.minMoney)+"减"+s(l.value.money),1)],64)):l.value.type===2?(u(),c(m,{key:1},[d(s(l.value.discount)+"折",1)],64)):(u(),c(m,{key:2},[d(s(l.value.money)+"元",1)],64))]),_:1}),o(v,{label:"剩余数量"},{default:t(()=>[d(s(l.value.stock??"不限"),1)]),_:1})]),_:1})]),_:1})):D("",!0),o(w,{label:"赠送数量",prop:"quantity"},{default:t(()=>{var e;return[o(Q,{modelValue:i.quantity,"onUpdate:modelValue":n[1]||(n[1]=J=>i.quantity=J),min:1,max:F.value,style:{width:"200px"}},null,8,["modelValue","max"]),(e=l.value)!=null&&e.stock?(u(),c("span",re," (最多可赠送 "+s(l.value.stock)+" 张) ",1)):D("",!0)]}),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),pe=ee(de,[["__scopeId","data-v-5333f49e"]]);export{pe as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as w,a as C,g as s,z as f,k as r,w as l,e as t,f as F,c as g,F as B,y as S,t as y,l as v,J as T,s as U,_ as G}from"./index-C69OfkED.js";const K=w({__name:"GoodsSearchForm",props:{goodsTypes:{}},emits:["search","reset"],setup(b,{emit:V}){const p=V,e=C({title:"",status:void 0,type:void 0}),i=()=>{const n={};e.title&&(n.title=e.title),e.status!==void 0&&(n.status=e.status),e.type!==void 0&&(n.type=e.type),p("search",n)},h=()=>{e.title="",e.status=void 0,e.type=void 0,p("reset")};return(n,o)=>{const x=s("el-input"),u=s("el-form-item"),d=s("el-option"),m=s("el-select"),c=s("el-icon"),_=s("el-button"),k=s("el-form");return r(),f(k,{inline:!0,model:e,class:"search-form"},{default:l(()=>[t(u,{label:"盒子标题"},{default:l(()=>[t(x,{modelValue:e.title,"onUpdate:modelValue":o[0]||(o[0]=a=>e.title=a),placeholder:"请输入盒子标题",clearable:"",onKeyup:F(i,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),t(u,{label:"状态"},{default:l(()=>[t(m,{modelValue:e.status,"onUpdate:modelValue":o[1]||(o[1]=a=>e.status=a),placeholder:"全部状态",clearable:"",style:{width:"120px"}},{default:l(()=>[t(d,{label:"上架",value:1}),t(d,{label:"下架",value:0}),t(d,{label:"售罄",value:2})]),_:1},8,["modelValue"])]),_:1}),t(u,{label:"盒子类型"},{default:l(()=>[t(m,{modelValue:e.type,"onUpdate:modelValue":o[2]||(o[2]=a=>e.type=a),placeholder:"全部类型",clearable:"",style:{width:"140px"}},{default:l(()=>[(r(!0),g(B,null,S(b.goodsTypes,a=>(r(),f(d,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(u,null,{default:l(()=>[t(_,{type:"primary",onClick:i},{default:l(()=>[t(c,null,{default:l(()=>[t(v(T))]),_:1}),o[3]||(o[3]=y("查询 ",-1))]),_:1}),t(_,{onClick:h},{default:l(()=>[t(c,null,{default:l(()=>[t(v(U))]),_:1}),o[4]||(o[4]=y("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),z=G(K,[["__scopeId","data-v-af89f674"]]);export{z as default};
|
||||
import{d as w,a as C,g as s,z as f,k as r,w as l,e as t,f as F,c as g,F as B,y as S,t as y,l as v,I as T,s as U,_ as G}from"./index-VHOuw44X.js";const I=w({__name:"GoodsSearchForm",props:{goodsTypes:{}},emits:["search","reset"],setup(b,{emit:V}){const p=V,e=C({title:"",status:void 0,type:void 0}),i=()=>{const n={};e.title&&(n.title=e.title),e.status!==void 0&&(n.status=e.status),e.type!==void 0&&(n.type=e.type),p("search",n)},h=()=>{e.title="",e.status=void 0,e.type=void 0,p("reset")};return(n,o)=>{const x=s("el-input"),u=s("el-form-item"),d=s("el-option"),m=s("el-select"),c=s("el-icon"),_=s("el-button"),k=s("el-form");return r(),f(k,{inline:!0,model:e,class:"search-form"},{default:l(()=>[t(u,{label:"盒子标题"},{default:l(()=>[t(x,{modelValue:e.title,"onUpdate:modelValue":o[0]||(o[0]=a=>e.title=a),placeholder:"请输入盒子标题",clearable:"",onKeyup:F(i,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),t(u,{label:"状态"},{default:l(()=>[t(m,{modelValue:e.status,"onUpdate:modelValue":o[1]||(o[1]=a=>e.status=a),placeholder:"全部状态",clearable:"",style:{width:"120px"}},{default:l(()=>[t(d,{label:"上架",value:1}),t(d,{label:"下架",value:0}),t(d,{label:"售罄",value:2})]),_:1},8,["modelValue"])]),_:1}),t(u,{label:"盒子类型"},{default:l(()=>[t(m,{modelValue:e.type,"onUpdate:modelValue":o[2]||(o[2]=a=>e.type=a),placeholder:"全部类型",clearable:"",style:{width:"140px"}},{default:l(()=>[(r(!0),g(B,null,S(b.goodsTypes,a=>(r(),f(d,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(u,null,{default:l(()=>[t(_,{type:"primary",onClick:i},{default:l(()=>[t(c,null,{default:l(()=>[t(v(T))]),_:1}),o[3]||(o[3]=y("查询 ",-1))]),_:1}),t(_,{onClick:h},{default:l(()=>[t(c,null,{default:l(()=>[t(v(U))]),_:1}),o[4]||(o[4]=y("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),N=G(I,[["__scopeId","data-v-af89f674"]]);export{N as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as G,v as H,r as m,g as s,H as M,z as k,k as g,w as o,c as $,G as w,I as q,e as l,b as d,l as A,m as F,x as u,t as v,E as z,_ as J}from"./index-C69OfkED.js";import{b as K}from"./user-CpNQ-zyC.js";const Q={key:0,class:"user-info"},R={class:"user-detail"},W={class:"nickname"},X={class:"uid"},Y={class:"login-stats"},Z={class:"ip-info"},ee={class:"ip-address"},te=G({__name:"IpLogDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue"],setup(r,{emit:V}){const f=r,D=V,h=H({get:()=>f.modelValue,set:a=>D("update:modelValue",a)}),b=m(!1),C=m([]),_=m(0),n=m(1),p=m(20),y=async()=>{var a,e;if(f.user){b.value=!0;try{const i=await K(f.user.id,n.value,p.value);C.value=((a=i.data)==null?void 0:a.list)||[],_.value=((e=i.data)==null?void 0:e.total)||0}catch(i){console.error("获取IP登录历史失败",i),C.value=[],_.value=0}finally{b.value=!1}}},P=a=>{n.value=a,y()},L=a=>{p.value=a,n.value=1,y()},B=async a=>{try{await navigator.clipboard.writeText(a),z.success("IP地址已复制")}catch{const e=document.createElement("textarea");e.value=a,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),z.success("IP地址已复制")}},S=()=>{n.value=1,p.value=20,y()},x=()=>{h.value=!1};return(a,e)=>{const i=s("el-icon"),U=s("el-avatar"),E=s("el-statistic"),c=s("el-table-column"),I=s("el-button"),N=s("el-table"),T=s("el-pagination"),O=s("el-dialog"),j=M("loading");return g(),k(O,{modelValue:h.value,"onUpdate:modelValue":e[2]||(e[2]=t=>h.value=t),title:"IP登录历史",width:"800px","close-on-click-modal":!1,onClose:x,onOpen:S},{footer:o(()=>[l(I,{onClick:x},{default:o(()=>[...e[4]||(e[4]=[v("关闭",-1)])]),_:1})]),default:o(()=>[r.user?(g(),$("div",Q,[l(U,{src:r.user.avatar,size:40},{default:o(()=>[l(i,null,{default:o(()=>[l(A(F))]),_:1})]),_:1},8,["src"]),d("div",R,[d("div",W,u(r.user.nickname||"-"),1),d("div",X,"UID: "+u(r.user.id),1)]),d("div",Y,[l(E,{title:"登录记录数",value:_.value},null,8,["value"])])])):w("",!0),q((g(),k(N,{data:C.value,border:"",stripe:"","max-height":"400"},{default:o(()=>[l(c,{prop:"id",label:"ID",width:"80"}),l(c,{prop:"loginDate",label:"登录日期",width:"120"}),l(c,{label:"登录时间",width:"170"},{default:o(({row:t})=>[v(u(t.loginTime||t.lastLoginTime||"-"),1)]),_:1}),l(c,{prop:"ip",label:"IP地址","min-width":"150"},{default:o(({row:t})=>[d("div",Z,[d("span",ee,u(t.ip||"-"),1),t.ip?(g(),k(I,{key:0,type:"primary",link:"",size:"small",onClick:ae=>B(t.ip)},{default:o(()=>[...e[3]||(e[3]=[v(" 复制 ",-1)])]),_:1},8,["onClick"])):w("",!0)])]),_:1}),l(c,{prop:"location",label:"归属地","min-width":"150"},{default:o(({row:t})=>[v(u(t.location||"-"),1)]),_:1}),l(c,{prop:"device",label:"设备信息","min-width":"150","show-overflow-tooltip":""},{default:o(({row:t})=>[v(u(t.device||"-"),1)]),_:1})]),_:1},8,["data"])),[[j,b.value]]),l(T,{"current-page":n.value,"onUpdate:currentPage":e[0]||(e[0]=t=>n.value=t),"page-size":p.value,"onUpdate:pageSize":e[1]||(e[1]=t=>p.value=t),"page-sizes":[10,20,50,100],total:_.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:L,onCurrentChange:P,class:"pagination"},null,8,["current-page","page-size","total"])]),_:1},8,["modelValue"])}}}),se=J(te,[["__scopeId","data-v-85f89221"]]);export{se as default};
|
||||
import{d as H,v as J,r as m,g as s,J as K,z as k,k as g,w as o,c as M,H as I,K as $,e as l,b as d,l as q,m as A,x as u,t as v,E as z,_ as F}from"./index-VHOuw44X.js";import{b as G}from"./user-CKTn20xm.js";const Q={key:0,class:"user-info"},R={class:"user-detail"},W={class:"nickname"},X={class:"uid"},Y={class:"login-stats"},Z={class:"ip-info"},ee={class:"ip-address"},te=H({__name:"IpLogDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue"],setup(r,{emit:V}){const f=r,D=V,h=J({get:()=>f.modelValue,set:a=>D("update:modelValue",a)}),b=m(!1),C=m([]),_=m(0),n=m(1),p=m(20),y=async()=>{var a,e;if(f.user){b.value=!0;try{const i=await G(f.user.id,n.value,p.value);C.value=((a=i.data)==null?void 0:a.list)||[],_.value=((e=i.data)==null?void 0:e.total)||0}catch(i){console.error("获取IP登录历史失败",i),C.value=[],_.value=0}finally{b.value=!1}}},P=a=>{n.value=a,y()},L=a=>{p.value=a,n.value=1,y()},B=async a=>{try{await navigator.clipboard.writeText(a),z.success("IP地址已复制")}catch{const e=document.createElement("textarea");e.value=a,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),z.success("IP地址已复制")}},S=()=>{n.value=1,p.value=20,y()},x=()=>{h.value=!1};return(a,e)=>{const i=s("el-icon"),U=s("el-avatar"),E=s("el-statistic"),c=s("el-table-column"),w=s("el-button"),N=s("el-table"),T=s("el-pagination"),O=s("el-dialog"),j=K("loading");return g(),k(O,{modelValue:h.value,"onUpdate:modelValue":e[2]||(e[2]=t=>h.value=t),title:"IP登录历史",width:"800px","close-on-click-modal":!1,onClose:x,onOpen:S},{footer:o(()=>[l(w,{onClick:x},{default:o(()=>[...e[4]||(e[4]=[v("关闭",-1)])]),_:1})]),default:o(()=>[r.user?(g(),M("div",Q,[l(U,{src:r.user.avatar,size:40},{default:o(()=>[l(i,null,{default:o(()=>[l(q(A))]),_:1})]),_:1},8,["src"]),d("div",R,[d("div",W,u(r.user.nickname||"-"),1),d("div",X,"UID: "+u(r.user.id),1)]),d("div",Y,[l(E,{title:"登录记录数",value:_.value},null,8,["value"])])])):I("",!0),$((g(),k(N,{data:C.value,border:"",stripe:"","max-height":"400"},{default:o(()=>[l(c,{prop:"id",label:"ID",width:"80"}),l(c,{prop:"loginDate",label:"登录日期",width:"120"}),l(c,{label:"登录时间",width:"170"},{default:o(({row:t})=>[v(u(t.loginTime||t.lastLoginTime||"-"),1)]),_:1}),l(c,{prop:"ip",label:"IP地址","min-width":"150"},{default:o(({row:t})=>[d("div",Z,[d("span",ee,u(t.ip||"-"),1),t.ip?(g(),k(w,{key:0,type:"primary",link:"",size:"small",onClick:ae=>B(t.ip)},{default:o(()=>[...e[3]||(e[3]=[v(" 复制 ",-1)])]),_:1},8,["onClick"])):I("",!0)])]),_:1}),l(c,{prop:"location",label:"归属地","min-width":"150"},{default:o(({row:t})=>[v(u(t.location||"-"),1)]),_:1}),l(c,{prop:"device",label:"设备信息","min-width":"150","show-overflow-tooltip":""},{default:o(({row:t})=>[v(u(t.device||"-"),1)]),_:1})]),_:1},8,["data"])),[[j,b.value]]),l(T,{"current-page":n.value,"onUpdate:currentPage":e[0]||(e[0]=t=>n.value=t),"page-size":p.value,"onUpdate:pageSize":e[1]||(e[1]=t=>p.value=t),"page-sizes":[10,20,50,100],total:_.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:L,onCurrentChange:P,class:"pagination"},null,8,["current-page","page-size","total"])]),_:1},8,["modelValue"])}}}),se=F(te,[["__scopeId","data-v-85f89221"]]);export{se as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{c as A}from"./user-CpNQ-zyC.js";import{d as G,v as l,r as M,a as H,D as J,g as u,z as K,k as O,w as o,e as n,b as p,x as m,t as v,S as P,E as V,_ as Q}from"./index-C69OfkED.js";const W={class:"current-value"},X={class:"preview-info"},Y={class:"operation-symbol"},Z={class:"amount-value"},ee=G({__name:"MoneyChangeDialog",props:{modelValue:{type:Boolean},user:{},type:{},action:{default:"add"}},emits:["update:modelValue","success"],setup($,{emit:L}){const t=$,w=L,f=l({get:()=>t.modelValue,set:r=>w("update:modelValue",r)}),_=M(),g=M(!1),a=H({type:1,amount:0,operation:1,remark:""}),S=l(()=>({operation:[{required:!0,message:"请选择操作类型",trigger:"change"}],amount:[{required:!0,message:"请输入金额",trigger:"blur"},{type:"number",min:.01,message:"金额必须大于0",trigger:"blur"},{validator:(r,e,s)=>{a.operation===2&&e>d.value?s(new Error(`扣除金额不能超过当前${c.value}`)):s()},trigger:"blur"}]})),c=l(()=>({1:"余额",2:"积分",3:"钻石"})[t.type]||"余额"),U=l(()=>`${t.action==="add"?"充值":"扣除"}${c.value}`),x=l(()=>`当前${c.value}`),h=l(()=>`${c.value}数量`),d=l(()=>t.user&&{1:t.user.balance||0,2:t.user.integral||0,3:t.user.diamond||0}[t.type]||0),k=l(()=>t.type===1?`¥${d.value.toFixed(2)}`:d.value.toString()),B=l(()=>t.type===1?2:0),E=l(()=>(t.type===1,1)),b=l(()=>{const r=a.amount||0;return a.operation===1?d.value+r:Math.max(0,d.value-r)}),F=l(()=>t.type===1?`¥${b.value.toFixed(2)}`:b.value.toString()),N=l(()=>a.operation===1?"positive":b.value<d.value?"negative":"");J(()=>t.modelValue,r=>{var e;r&&(a.type=t.type,a.operation=t.action==="add"?1:2,a.amount=0,a.remark="",(e=_.value)==null||e.resetFields())});const y=()=>{f.value=!1},R=async()=>{var e;if(!t.user){V.warning("用户信息不存在");return}if(await((e=_.value)==null?void 0:e.validate())){g.value=!0;try{await A(t.user.id,a),V.success("操作成功"),w("success"),y()}catch(s){V.error(s.message||"操作失败")}finally{g.value=!1}}};return(r,e)=>{const s=u("el-form-item"),C=u("el-radio"),q=u("el-radio-group"),z=u("el-input-number"),T=u("el-input"),I=u("el-form"),D=u("el-button"),j=u("el-dialog");return O(),K(j,{modelValue:f.value,"onUpdate:modelValue":e[3]||(e[3]=i=>f.value=i),title:U.value,width:"450px","close-on-click-modal":!1,onClose:y},{footer:o(()=>[n(D,{onClick:y},{default:o(()=>[...e[7]||(e[7]=[v("取消",-1)])]),_:1}),n(D,{type:"primary",onClick:R,loading:g.value},{default:o(()=>[...e[8]||(e[8]=[v("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(I,{ref_key:"formRef",ref:_,model:a,rules:S.value,"label-width":"100px"},{default:o(()=>[n(s,{label:x.value},{default:o(()=>[p("span",W,m(k.value),1)]),_:1},8,["label"]),n(s,{label:"操作类型",prop:"operation"},{default:o(()=>[n(q,{modelValue:a.operation,"onUpdate:modelValue":e[0]||(e[0]=i=>a.operation=i)},{default:o(()=>[n(C,{value:1},{default:o(()=>[...e[4]||(e[4]=[v("充值(增加)",-1)])]),_:1}),n(C,{value:2},{default:o(()=>[...e[5]||(e[5]=[v("扣除(减少)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(s,{label:h.value,prop:"amount"},{default:o(()=>[n(z,{modelValue:a.amount,"onUpdate:modelValue":e[1]||(e[1]=i=>a.amount=i),min:.01,max:999999999,precision:B.value,step:E.value,style:{width:"100%"},placeholder:"请输入金额"},null,8,["modelValue","precision","step"])]),_:1},8,["label"]),n(s,{label:"备注",prop:"remark"},{default:o(()=>[n(T,{modelValue:a.remark,"onUpdate:modelValue":e[2]||(e[2]=i=>a.remark=i),type:"textarea",rows:3,placeholder:"请输入操作备注(选填)",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),n(s,{label:"操作预览"},{default:o(()=>[p("div",X,[p("span",null,m(x.value)+":"+m(k.value),1),p("span",Y,m(a.operation===1?"+":"-"),1),p("span",Z,m(a.amount||0),1),e[6]||(e[6]=p("span",{class:"result-symbol"},"=",-1)),p("span",{class:P(["result-value",N.value])},m(F.value),3)])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])}}}),le=Q(ee,[["__scopeId","data-v-7219a039"]]);export{le as default};
|
||||
import{c as j}from"./user-CKTn20xm.js";import{d as A,v as l,r as $,a as H,G as J,g as u,z as K,k as O,w as o,e as n,b as p,x as m,t as v,T as P,E as V,_ as Q}from"./index-VHOuw44X.js";const W={class:"current-value"},X={class:"preview-info"},Y={class:"operation-symbol"},Z={class:"amount-value"},ee=A({__name:"MoneyChangeDialog",props:{modelValue:{type:Boolean},user:{},type:{},action:{default:"add"}},emits:["update:modelValue","success"],setup(D,{emit:L}){const t=D,w=L,f=l({get:()=>t.modelValue,set:r=>w("update:modelValue",r)}),_=$(),g=$(!1),a=H({type:1,amount:0,operation:1,remark:""}),U=l(()=>({operation:[{required:!0,message:"请选择操作类型",trigger:"change"}],amount:[{required:!0,message:"请输入金额",trigger:"blur"},{type:"number",min:.01,message:"金额必须大于0",trigger:"blur"},{validator:(r,e,s)=>{a.operation===2&&e>d.value?s(new Error(`扣除金额不能超过当前${c.value}`)):s()},trigger:"blur"}]})),c=l(()=>({1:"余额",2:"积分",3:"钻石"})[t.type]||"余额"),h=l(()=>`${t.action==="add"?"充值":"扣除"}${c.value}`),x=l(()=>`当前${c.value}`),B=l(()=>`${c.value}数量`),d=l(()=>t.user&&{1:t.user.balance||0,2:t.user.integral||0,3:t.user.diamond||0}[t.type]||0),k=l(()=>t.type===1?`¥${d.value.toFixed(2)}`:d.value.toString()),S=l(()=>t.type===1?2:0),E=l(()=>(t.type===1,1)),b=l(()=>{const r=a.amount||0;return a.operation===1?d.value+r:Math.max(0,d.value-r)}),F=l(()=>t.type===1?`¥${b.value.toFixed(2)}`:b.value.toString()),N=l(()=>a.operation===1?"positive":b.value<d.value?"negative":"");J(()=>t.modelValue,r=>{var e;r&&(a.type=t.type,a.operation=t.action==="add"?1:2,a.amount=0,a.remark="",(e=_.value)==null||e.resetFields())});const y=()=>{f.value=!1},R=async()=>{var e;if(!t.user){V.warning("用户信息不存在");return}if(await((e=_.value)==null?void 0:e.validate())){g.value=!0;try{await j(t.user.id,a),V.success("操作成功"),w("success"),y()}catch(s){V.error(s.message||"操作失败")}finally{g.value=!1}}};return(r,e)=>{const s=u("el-form-item"),C=u("el-radio"),T=u("el-radio-group"),q=u("el-input-number"),z=u("el-input"),G=u("el-form"),M=u("el-button"),I=u("el-dialog");return O(),K(I,{modelValue:f.value,"onUpdate:modelValue":e[3]||(e[3]=i=>f.value=i),title:h.value,width:"450px","close-on-click-modal":!1,onClose:y},{footer:o(()=>[n(M,{onClick:y},{default:o(()=>[...e[7]||(e[7]=[v("取消",-1)])]),_:1}),n(M,{type:"primary",onClick:R,loading:g.value},{default:o(()=>[...e[8]||(e[8]=[v("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(G,{ref_key:"formRef",ref:_,model:a,rules:U.value,"label-width":"100px"},{default:o(()=>[n(s,{label:x.value},{default:o(()=>[p("span",W,m(k.value),1)]),_:1},8,["label"]),n(s,{label:"操作类型",prop:"operation"},{default:o(()=>[n(T,{modelValue:a.operation,"onUpdate:modelValue":e[0]||(e[0]=i=>a.operation=i)},{default:o(()=>[n(C,{value:1},{default:o(()=>[...e[4]||(e[4]=[v("充值(增加)",-1)])]),_:1}),n(C,{value:2},{default:o(()=>[...e[5]||(e[5]=[v("扣除(减少)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(s,{label:B.value,prop:"amount"},{default:o(()=>[n(q,{modelValue:a.amount,"onUpdate:modelValue":e[1]||(e[1]=i=>a.amount=i),min:.01,max:999999999,precision:S.value,step:E.value,style:{width:"100%"},placeholder:"请输入金额"},null,8,["modelValue","precision","step"])]),_:1},8,["label"]),n(s,{label:"备注",prop:"remark"},{default:o(()=>[n(z,{modelValue:a.remark,"onUpdate:modelValue":e[2]||(e[2]=i=>a.remark=i),type:"textarea",rows:3,placeholder:"请输入操作备注(选填)",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),n(s,{label:"操作预览"},{default:o(()=>[p("div",X,[p("span",null,m(x.value)+":"+m(k.value),1),p("span",Y,m(a.operation===1?"+":"-"),1),p("span",Z,m(a.amount||0),1),e[6]||(e[6]=p("span",{class:"result-symbol"},"=",-1)),p("span",{class:P(["result-value",N.value])},m(F.value),3)])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])}}}),le=Q(ee,[["__scopeId","data-v-7219a039"]]);export{le as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as L,r as b,D as I,g as u,H as R,z as h,k as d,w as e,I as q,c as _,G as g,F as C,e as t,t as o,x as s,b as n,y as J,l as Q,K as W,_ as X}from"./index-C69OfkED.js";import{i as Y,O as z,j as k}from"./order-Bq5-e0yY.js";const Z={class:"order-detail"},$={class:"money"},ee={class:"money"},te={key:0,class:"prize-section"},le={class:"prize-groups"},se={class:"prize-header"},ae={class:"image-error"},oe={class:"prize-info"},ne={class:"prize-title"},ie={class:"prize-meta"},re={class:"money"},de={class:"recovery-money"},ce={key:0,class:"prize-items"},ue={key:0},_e={key:1},me={key:2,class:"text-muted"},pe=L({__name:"OrderDetailDialog",props:{modelValue:{type:Boolean},orderId:{}},emits:["update:modelValue","close"],setup(O,{emit:T}){const p=O,N=T,f=b(p.modelValue),y=b(!1),l=b(null);I(()=>p.modelValue,i=>{f.value=i,i&&p.orderId&&F()}),I(f,i=>{N("update:modelValue",i)});const F=async()=>{if(p.orderId){y.value=!0;try{const i=await Y(p.orderId);l.value=i.data}catch(i){console.error("获取订单详情失败:",i)}finally{y.value=!1}}},S=i=>{switch(i){case z.Paid:return"success";case z.Unpaid:return"warning";case z.Cancelled:return"info";default:return"info"}},B=i=>{switch(i){case k.Pending:return"warning";case k.Recovered:return"info";case k.Shipped:return"success";default:return"info"}},V=()=>{f.value=!1,l.value=null,N("close")};return(i,c)=>{const r=u("el-descriptions-item"),w=u("el-tag"),U=u("el-descriptions"),G=u("el-icon"),A=u("el-image"),v=u("el-table-column"),M=u("el-table"),P=u("el-empty"),j=u("el-button"),E=u("el-dialog"),H=R("loading");return d(),h(E,{modelValue:f.value,"onUpdate:modelValue":c[0]||(c[0]=a=>f.value=a),title:"订单详情",width:"800px","close-on-click-modal":!1,onClose:V},{footer:e(()=>[t(j,{onClick:V},{default:e(()=>[...c[4]||(c[4]=[o("关闭",-1)])]),_:1})]),default:e(()=>[q((d(),_("div",Z,[l.value?(d(),_(C,{key:0},[t(U,{column:2,border:"",class:"order-info"},{default:e(()=>[t(r,{label:"订单号"},{default:e(()=>[o(s(l.value.orderNum),1)]),_:1}),t(r,{label:"订单状态"},{default:e(()=>[t(w,{type:S(l.value.status),size:"small"},{default:e(()=>[o(s(l.value.statusName),1)]),_:1},8,["type"])]),_:1}),t(r,{label:"用户昵称"},{default:e(()=>[o(s(l.value.userNickname||"-"),1)]),_:1}),t(r,{label:"用户ID"},{default:e(()=>[o(s(l.value.userId),1)]),_:1}),t(r,{label:"手机号"},{default:e(()=>[o(s(l.value.userMobile||"-"),1)]),_:1}),t(r,{label:"盒子名称"},{default:e(()=>[o(s(l.value.goodsTitle||"-"),1)]),_:1}),t(r,{label:"抽奖次数"},{default:e(()=>[o(s(l.value.num),1)]),_:1}),t(r,{label:"中奖数量"},{default:e(()=>[o(s(l.value.prizeNum),1)]),_:1}),t(r,{label:"订单金额"},{default:e(()=>{var a;return[n("span",$,"¥"+s(((a=l.value.orderTotal)==null?void 0:a.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{label:"实付金额"},{default:e(()=>{var a;return[n("span",ee,"¥"+s(((a=l.value.discountTotal)==null?void 0:a.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{label:"下单时间"},{default:e(()=>[o(s(l.value.createdAt),1)]),_:1}),t(r,{label:"支付时间"},{default:e(()=>[o(s(l.value.payTime||"-"),1)]),_:1})]),_:1}),l.value.prizeGroups&&l.value.prizeGroups.length>0?(d(),_("div",te,[c[3]||(c[3]=n("h4",{class:"section-title"},"中奖奖品明细",-1)),n("div",le,[(d(!0),_(C,null,J(l.value.prizeGroups,(a,K)=>{var x,D;return d(),_("div",{key:K,class:"prize-group"},[n("div",se,[a.imgUrl?(d(),h(A,{key:0,src:a.imgUrl,"preview-src-list":[a.imgUrl],fit:"cover",class:"prize-img",lazy:""},{error:e(()=>[n("div",ae,[t(G,null,{default:e(()=>[t(Q(W))]),_:1})])]),_:1},8,["src","preview-src-list"])):g("",!0),n("div",oe,[n("div",ne,s(a.title||"-"),1),n("div",ie,[n("span",null,[c[1]||(c[1]=o("价值: ",-1)),n("span",re,"¥"+s(((x=a.price)==null?void 0:x.toFixed(2))||"0.00"),1)]),n("span",null,[c[2]||(c[2]=o("兑换价值: ",-1)),n("span",de,"¥"+s(((D=a.recoveryMoney)==null?void 0:D.toFixed(2))||"0.00"),1)]),n("span",null,"数量: "+s(a.count),1)])])]),a.items&&a.items.length>0?(d(),_("div",ce,[t(M,{data:a.items,size:"small",border:""},{default:e(()=>[t(v,{prop:"luckNo",label:"幸运号",width:"80",align:"center"}),t(v,{label:"状态",width:"100",align:"center"},{default:e(({row:m})=>[t(w,{type:B(m.status),size:"small"},{default:e(()=>[o(s(m.statusName),1)]),_:2},1032,["type"])]),_:1}),t(v,{label:"关联单号","min-width":"180"},{default:e(({row:m})=>[m.recoveryNum?(d(),_("span",ue,"回收: "+s(m.recoveryNum),1)):m.sendNum?(d(),_("span",_e,"发货: "+s(m.sendNum),1)):(d(),_("span",me,"-"))]),_:1}),t(v,{prop:"createdAt",label:"中奖时间","min-width":"160"})]),_:1},8,["data"])])):g("",!0)])}),128))])])):(d(),h(P,{key:1,description:"暂无中奖记录"}))],64)):g("",!0)])),[[H,y.value]])]),_:1},8,["modelValue"])}}}),ye=X(pe,[["__scopeId","data-v-caf193f4"]]);export{ye as default};
|
||||
import{d as K,r as b,G as I,g as u,J as R,z as h,k as d,w as e,K as j,c as _,H as g,F as C,e as t,t as o,x as s,b as n,y as q,l as Q,L as W,_ as X}from"./index-VHOuw44X.js";import{a as Y,O as z,b as k}from"./order-nzz6w9AQ.js";const Z={class:"order-detail"},$={class:"money"},ee={class:"money"},te={key:0,class:"prize-section"},le={class:"prize-groups"},se={class:"prize-header"},ae={class:"image-error"},oe={class:"prize-info"},ne={class:"prize-title"},ie={class:"prize-meta"},re={class:"money"},de={class:"recovery-money"},ce={key:0,class:"prize-items"},ue={key:0},_e={key:1},me={key:2,class:"text-muted"},pe=K({__name:"OrderDetailDialog",props:{modelValue:{type:Boolean},orderId:{}},emits:["update:modelValue","close"],setup(O,{emit:T}){const p=O,N=T,f=b(p.modelValue),y=b(!1),l=b(null);I(()=>p.modelValue,i=>{f.value=i,i&&p.orderId&&F()}),I(f,i=>{N("update:modelValue",i)});const F=async()=>{if(p.orderId){y.value=!0;try{const i=await Y(p.orderId);l.value=i.data}catch(i){console.error("获取订单详情失败:",i)}finally{y.value=!1}}},S=i=>{switch(i){case z.Paid:return"success";case z.Unpaid:return"warning";case z.Cancelled:return"info";default:return"info"}},B=i=>{switch(i){case k.Pending:return"warning";case k.Recovered:return"info";case k.Shipped:return"success";default:return"info"}},V=()=>{f.value=!1,l.value=null,N("close")};return(i,c)=>{const r=u("el-descriptions-item"),w=u("el-tag"),U=u("el-descriptions"),G=u("el-icon"),A=u("el-image"),v=u("el-table-column"),L=u("el-table"),M=u("el-empty"),P=u("el-button"),E=u("el-dialog"),H=R("loading");return d(),h(E,{modelValue:f.value,"onUpdate:modelValue":c[0]||(c[0]=a=>f.value=a),title:"订单详情",width:"800px","close-on-click-modal":!1,onClose:V},{footer:e(()=>[t(P,{onClick:V},{default:e(()=>[...c[4]||(c[4]=[o("关闭",-1)])]),_:1})]),default:e(()=>[j((d(),_("div",Z,[l.value?(d(),_(C,{key:0},[t(U,{column:2,border:"",class:"order-info"},{default:e(()=>[t(r,{label:"订单号"},{default:e(()=>[o(s(l.value.orderNum),1)]),_:1}),t(r,{label:"订单状态"},{default:e(()=>[t(w,{type:S(l.value.status),size:"small"},{default:e(()=>[o(s(l.value.statusName),1)]),_:1},8,["type"])]),_:1}),t(r,{label:"用户昵称"},{default:e(()=>[o(s(l.value.userNickname||"-"),1)]),_:1}),t(r,{label:"用户ID"},{default:e(()=>[o(s(l.value.userId),1)]),_:1}),t(r,{label:"手机号"},{default:e(()=>[o(s(l.value.userMobile||"-"),1)]),_:1}),t(r,{label:"盒子名称"},{default:e(()=>[o(s(l.value.goodsTitle||"-"),1)]),_:1}),t(r,{label:"抽奖次数"},{default:e(()=>[o(s(l.value.num),1)]),_:1}),t(r,{label:"中奖数量"},{default:e(()=>[o(s(l.value.prizeNum),1)]),_:1}),t(r,{label:"订单金额"},{default:e(()=>{var a;return[n("span",$,"¥"+s(((a=l.value.orderTotal)==null?void 0:a.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{label:"实付金额"},{default:e(()=>{var a;return[n("span",ee,"¥"+s(((a=l.value.discountTotal)==null?void 0:a.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{label:"下单时间"},{default:e(()=>[o(s(l.value.createdAt),1)]),_:1}),t(r,{label:"支付时间"},{default:e(()=>[o(s(l.value.payTime||"-"),1)]),_:1})]),_:1}),l.value.prizeGroups&&l.value.prizeGroups.length>0?(d(),_("div",te,[c[3]||(c[3]=n("h4",{class:"section-title"},"中奖奖品明细",-1)),n("div",le,[(d(!0),_(C,null,q(l.value.prizeGroups,(a,J)=>{var x,D;return d(),_("div",{key:J,class:"prize-group"},[n("div",se,[a.imgUrl?(d(),h(A,{key:0,src:a.imgUrl,"preview-src-list":[a.imgUrl],fit:"cover",class:"prize-img",lazy:""},{error:e(()=>[n("div",ae,[t(G,null,{default:e(()=>[t(Q(W))]),_:1})])]),_:1},8,["src","preview-src-list"])):g("",!0),n("div",oe,[n("div",ne,s(a.title||"-"),1),n("div",ie,[n("span",null,[c[1]||(c[1]=o("价值: ",-1)),n("span",re,"¥"+s(((x=a.price)==null?void 0:x.toFixed(2))||"0.00"),1)]),n("span",null,[c[2]||(c[2]=o("兑换价值: ",-1)),n("span",de,"¥"+s(((D=a.recoveryMoney)==null?void 0:D.toFixed(2))||"0.00"),1)]),n("span",null,"数量: "+s(a.count),1)])])]),a.items&&a.items.length>0?(d(),_("div",ce,[t(L,{data:a.items,size:"small",border:""},{default:e(()=>[t(v,{prop:"luckNo",label:"幸运号",width:"80",align:"center"}),t(v,{label:"状态",width:"100",align:"center"},{default:e(({row:m})=>[t(w,{type:B(m.status),size:"small"},{default:e(()=>[o(s(m.statusName),1)]),_:2},1032,["type"])]),_:1}),t(v,{label:"关联单号","min-width":"180"},{default:e(({row:m})=>[m.recoveryNum?(d(),_("span",ue,"回收: "+s(m.recoveryNum),1)):m.sendNum?(d(),_("span",_e,"发货: "+s(m.sendNum),1)):(d(),_("span",me,"-"))]),_:1}),t(v,{prop:"createdAt",label:"中奖时间","min-width":"160"})]),_:1},8,["data"])])):g("",!0)])}),128))])])):(d(),h(M,{key:1,description:"暂无中奖记录"}))],64)):g("",!0)])),[[H,y.value]])]),_:1},8,["modelValue"])}}}),ye=X(pe,[["__scopeId","data-v-caf193f4"]]);export{ye as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as g,a as D,r as L,g as d,z as i,k as m,w as o,e as l,f as y,c as v,F as V,y as h,l as c,t as k,J as C,s as F,_ as K}from"./index-C69OfkED.js";import{c as Y,A,d as B}from"./order-Bq5-e0yY.js";const O=g({__name:"OrderListSearchForm",emits:["search","reset"],setup(M,{emit:I}){const x=I,e=D({userId:"",mobile:"",orderNum:"",status:void 0,accountType:void 0,accountStatus:void 0}),s=L(null),p=()=>{const u={};e.userId&&(u.userId=parseInt(e.userId)),e.mobile&&(u.mobile=e.mobile),e.orderNum&&(u.orderNum=e.orderNum),e.status!==void 0&&(u.status=e.status),e.accountType!==void 0&&(u.accountType=e.accountType),e.accountStatus!==void 0&&(u.accountStatus=e.accountStatus),s.value&&s.value.length===2&&(u.startDate=s.value[0],u.endDate=s.value[1]),x("search",u)},w=()=>{e.userId="",e.mobile="",e.orderNum="",e.status=void 0,e.accountType=void 0,e.accountStatus=void 0,s.value=null,x("reset")};return(u,a)=>{const f=d("el-input"),n=d("el-form-item"),_=d("el-option"),b=d("el-select"),T=d("el-date-picker"),N=d("el-icon"),S=d("el-button"),U=d("el-form");return m(),i(U,{inline:!0,model:e,class:"search-form"},{default:o(()=>[l(n,{label:"用户ID"},{default:o(()=>[l(f,{modelValue:e.userId,"onUpdate:modelValue":a[0]||(a[0]=t=>e.userId=t),placeholder:"用户ID",clearable:"",onKeyup:y(p,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(n,{label:"手机号"},{default:o(()=>[l(f,{modelValue:e.mobile,"onUpdate:modelValue":a[1]||(a[1]=t=>e.mobile=t),placeholder:"手机号",clearable:"",onKeyup:y(p,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(n,{label:"订单号"},{default:o(()=>[l(f,{modelValue:e.orderNum,"onUpdate:modelValue":a[2]||(a[2]=t=>e.orderNum=t),placeholder:"订单号",clearable:"",onKeyup:y(p,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),l(n,{label:"支付状态"},{default:o(()=>[l(b,{modelValue:e.status,"onUpdate:modelValue":a[3]||(a[3]=t=>e.status=t),placeholder:"全部",clearable:"",style:{width:"120px"}},{default:o(()=>[(m(!0),v(V,null,h(c(Y),(t,r)=>(m(),i(_,{key:r,label:t,value:Number(r)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"账号类型"},{default:o(()=>[l(b,{modelValue:e.accountType,"onUpdate:modelValue":a[4]||(a[4]=t=>e.accountType=t),placeholder:"全部",clearable:"",style:{width:"100px"}},{default:o(()=>[(m(!0),v(V,null,h(c(A),(t,r)=>(m(),i(_,{key:r,label:t,value:Number(r)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"账号状态"},{default:o(()=>[l(b,{modelValue:e.accountStatus,"onUpdate:modelValue":a[5]||(a[5]=t=>e.accountStatus=t),placeholder:"全部",clearable:"",style:{width:"100px"}},{default:o(()=>[(m(!0),v(V,null,h(c(B),(t,r)=>(m(),i(_,{key:r,label:t,value:Number(r)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"下单时间"},{default:o(()=>[l(T,{modelValue:s.value,"onUpdate:modelValue":a[6]||(a[6]=t=>s.value=t),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(n,null,{default:o(()=>[l(S,{type:"primary",onClick:p},{default:o(()=>[l(N,null,{default:o(()=>[l(c(C))]),_:1}),a[7]||(a[7]=k("查询 ",-1))]),_:1}),l(S,{onClick:w},{default:o(()=>[l(N,null,{default:o(()=>[l(c(F))]),_:1}),a[8]||(a[8]=k("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),E=K(O,[["__scopeId","data-v-d503489c"]]);export{E as default};
|
||||
import{d as g,a as D,r as L,g as d,z as i,k as m,w as o,e as l,f as y,c as v,F as V,y as h,l as c,t as S,I as C,s as F,_ as K}from"./index-VHOuw44X.js";import{c as Y,A,d as B}from"./order-nzz6w9AQ.js";const O=g({__name:"OrderListSearchForm",emits:["search","reset"],setup(M,{emit:k}){const x=k,e=D({userId:"",mobile:"",orderNum:"",status:void 0,accountType:void 0,accountStatus:void 0}),s=L(null),p=()=>{const u={};e.userId&&(u.userId=parseInt(e.userId)),e.mobile&&(u.mobile=e.mobile),e.orderNum&&(u.orderNum=e.orderNum),e.status!==void 0&&(u.status=e.status),e.accountType!==void 0&&(u.accountType=e.accountType),e.accountStatus!==void 0&&(u.accountStatus=e.accountStatus),s.value&&s.value.length===2&&(u.startDate=s.value[0],u.endDate=s.value[1]),x("search",u)},w=()=>{e.userId="",e.mobile="",e.orderNum="",e.status=void 0,e.accountType=void 0,e.accountStatus=void 0,s.value=null,x("reset")};return(u,a)=>{const f=d("el-input"),n=d("el-form-item"),_=d("el-option"),b=d("el-select"),T=d("el-date-picker"),I=d("el-icon"),N=d("el-button"),U=d("el-form");return m(),i(U,{inline:!0,model:e,class:"search-form"},{default:o(()=>[l(n,{label:"用户ID"},{default:o(()=>[l(f,{modelValue:e.userId,"onUpdate:modelValue":a[0]||(a[0]=t=>e.userId=t),placeholder:"用户ID",clearable:"",onKeyup:y(p,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(n,{label:"手机号"},{default:o(()=>[l(f,{modelValue:e.mobile,"onUpdate:modelValue":a[1]||(a[1]=t=>e.mobile=t),placeholder:"手机号",clearable:"",onKeyup:y(p,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(n,{label:"订单号"},{default:o(()=>[l(f,{modelValue:e.orderNum,"onUpdate:modelValue":a[2]||(a[2]=t=>e.orderNum=t),placeholder:"订单号",clearable:"",onKeyup:y(p,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),l(n,{label:"支付状态"},{default:o(()=>[l(b,{modelValue:e.status,"onUpdate:modelValue":a[3]||(a[3]=t=>e.status=t),placeholder:"全部",clearable:"",style:{width:"120px"}},{default:o(()=>[(m(!0),v(V,null,h(c(Y),(t,r)=>(m(),i(_,{key:r,label:t,value:Number(r)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"账号类型"},{default:o(()=>[l(b,{modelValue:e.accountType,"onUpdate:modelValue":a[4]||(a[4]=t=>e.accountType=t),placeholder:"全部",clearable:"",style:{width:"100px"}},{default:o(()=>[(m(!0),v(V,null,h(c(A),(t,r)=>(m(),i(_,{key:r,label:t,value:Number(r)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"账号状态"},{default:o(()=>[l(b,{modelValue:e.accountStatus,"onUpdate:modelValue":a[5]||(a[5]=t=>e.accountStatus=t),placeholder:"全部",clearable:"",style:{width:"100px"}},{default:o(()=>[(m(!0),v(V,null,h(c(B),(t,r)=>(m(),i(_,{key:r,label:t,value:Number(r)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"下单时间"},{default:o(()=>[l(T,{modelValue:s.value,"onUpdate:modelValue":a[6]||(a[6]=t=>s.value=t),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(n,null,{default:o(()=>[l(N,{type:"primary",onClick:p},{default:o(()=>[l(I,null,{default:o(()=>[l(c(C))]),_:1}),a[7]||(a[7]=S("查询 ",-1))]),_:1}),l(N,{onClick:w},{default:o(()=>[l(I,null,{default:o(()=>[l(c(F))]),_:1}),a[8]||(a[8]=S("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),E=K(O,[["__scopeId","data-v-d503489c"]]);export{E as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as y,a as x,r as N,g as d,z as k,k as w,w as t,e as l,f as p,t as f,l as b,J as D,s as g,_ as C}from"./index-C69OfkED.js";const U=y({__name:"OrderSearchForm",emits:["search","reset"],setup(K,{emit:V}){const i=V,e=x({userId:"",mobile:"",orderNum:""}),a=N(null),s=()=>{const r={};e.userId&&(r.userId=parseInt(e.userId)),e.mobile&&(r.mobile=e.mobile),e.orderNum&&(r.orderNum=e.orderNum),a.value&&a.value.length===2&&(r.startDate=a.value[0],r.endDate=a.value[1]),i("search",r)},h=()=>{e.userId="",e.mobile="",e.orderNum="",a.value=null,i("reset")};return(r,o)=>{const m=d("el-input"),u=d("el-form-item"),I=d("el-date-picker"),_=d("el-icon"),c=d("el-button"),v=d("el-form");return w(),k(v,{inline:!0,model:e,class:"search-form"},{default:t(()=>[l(u,{label:"用户ID"},{default:t(()=>[l(m,{modelValue:e.userId,"onUpdate:modelValue":o[0]||(o[0]=n=>e.userId=n),placeholder:"用户ID/UID",clearable:"",onKeyup:p(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"手机号"},{default:t(()=>[l(m,{modelValue:e.mobile,"onUpdate:modelValue":o[1]||(o[1]=n=>e.mobile=n),placeholder:"手机号",clearable:"",onKeyup:p(s,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"订单号"},{default:t(()=>[l(m,{modelValue:e.orderNum,"onUpdate:modelValue":o[2]||(o[2]=n=>e.orderNum=n),placeholder:"订单号",clearable:"",onKeyup:p(s,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"下单时间"},{default:t(()=>[l(I,{modelValue:a.value,"onUpdate:modelValue":o[3]||(o[3]=n=>a.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(u,null,{default:t(()=>[l(c,{type:"primary",onClick:s},{default:t(()=>[l(_,null,{default:t(()=>[l(b(D))]),_:1}),o[4]||(o[4]=f("查询 ",-1))]),_:1}),l(c,{onClick:h},{default:t(()=>[l(_,null,{default:t(()=>[l(b(g))]),_:1}),o[5]||(o[5]=f("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),F=C(U,[["__scopeId","data-v-9eaa58b8"]]);export{F as default};
|
||||
import{d as y,a as x,r as N,g as d,z as k,k as w,w as t,e as l,f as p,t as f,l as b,I as D,s as g,_ as C}from"./index-VHOuw44X.js";const U=y({__name:"OrderSearchForm",emits:["search","reset"],setup(K,{emit:V}){const i=V,e=x({userId:"",mobile:"",orderNum:""}),a=N(null),s=()=>{const r={};e.userId&&(r.userId=parseInt(e.userId)),e.mobile&&(r.mobile=e.mobile),e.orderNum&&(r.orderNum=e.orderNum),a.value&&a.value.length===2&&(r.startDate=a.value[0],r.endDate=a.value[1]),i("search",r)},I=()=>{e.userId="",e.mobile="",e.orderNum="",a.value=null,i("reset")};return(r,o)=>{const m=d("el-input"),u=d("el-form-item"),h=d("el-date-picker"),_=d("el-icon"),c=d("el-button"),v=d("el-form");return w(),k(v,{inline:!0,model:e,class:"search-form"},{default:t(()=>[l(u,{label:"用户ID"},{default:t(()=>[l(m,{modelValue:e.userId,"onUpdate:modelValue":o[0]||(o[0]=n=>e.userId=n),placeholder:"用户ID/UID",clearable:"",onKeyup:p(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"手机号"},{default:t(()=>[l(m,{modelValue:e.mobile,"onUpdate:modelValue":o[1]||(o[1]=n=>e.mobile=n),placeholder:"手机号",clearable:"",onKeyup:p(s,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"订单号"},{default:t(()=>[l(m,{modelValue:e.orderNum,"onUpdate:modelValue":o[2]||(o[2]=n=>e.orderNum=n),placeholder:"订单号",clearable:"",onKeyup:p(s,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"下单时间"},{default:t(()=>[l(h,{modelValue:a.value,"onUpdate:modelValue":o[3]||(o[3]=n=>a.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(u,null,{default:t(()=>[l(c,{type:"primary",onClick:s},{default:t(()=>[l(_,null,{default:t(()=>[l(b(D))]),_:1}),o[4]||(o[4]=f("查询 ",-1))]),_:1}),l(c,{onClick:I},{default:t(()=>[l(_,null,{default:t(()=>[l(b(g))]),_:1}),o[5]||(o[5]=f("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),F=C(U,[["__scopeId","data-v-9eaa58b8"]]);export{F as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
import{d as R,r as A,v as E,D as V,g as c,z as f,k as u,w as e,b as o,c as b,G,F as K,e as t,t as r,x as s,l as h,K as k,_ as P}from"./index-C69OfkED.js";const S={class:"recovery-detail"},T={class:"money"},j={key:0,class:"prize-section"},q={class:"image-error"},H={key:1,class:"image-error"},J={class:"prize-code"},L={class:"price"},O={class:"recovery-money"},Q={class:"summary-bar"},W={class:"price"},X={class:"recovery-money"},Y=R({__name:"RecoveryDetailDialog",props:{modelValue:{type:Boolean},recoveryData:{}},emits:["update:modelValue","close"],setup(a,{emit:x}){const p=a,g=x,m=A(p.modelValue),w=E(()=>{var d;return(d=p.recoveryData)!=null&&d.prizes?p.recoveryData.prizes.reduce((l,i)=>l+(i.price||0),0):0});V(()=>p.modelValue,d=>{m.value=d}),V(m,d=>{g("update:modelValue",d)});const D=()=>{m.value=!1,g("close")};return(d,l)=>{const i=c("el-descriptions-item"),C=c("el-tag"),F=c("el-descriptions"),z=c("el-icon"),N=c("el-image"),_=c("el-table-column"),U=c("el-table"),B=c("el-empty"),I=c("el-button"),M=c("el-dialog");return u(),f(M,{modelValue:m.value,"onUpdate:modelValue":l[0]||(l[0]=v=>m.value=v),title:"回收订单详情",width:"800px","close-on-click-modal":!1,onClose:D},{footer:e(()=>[t(I,{onClick:D},{default:e(()=>[...l[6]||(l[6]=[r("关闭",-1)])]),_:1})]),default:e(()=>{var v;return[o("div",S,[a.recoveryData?(u(),b(K,{key:0},[t(F,{column:2,border:"",class:"order-info"},{default:e(()=>[t(i,{label:"回收单号"},{default:e(()=>[r(s(a.recoveryData.recoveryNum),1)]),_:1}),t(i,{label:"回收数量"},{default:e(()=>[t(C,{type:"info",size:"small"},{default:e(()=>[r(s(a.recoveryData.count)+" 件",1)]),_:1})]),_:1}),t(i,{label:"用户昵称"},{default:e(()=>[r(s(a.recoveryData.userNickname||"-"),1)]),_:1}),t(i,{label:"用户ID"},{default:e(()=>[r(s(a.recoveryData.userId),1)]),_:1}),t(i,{label:"手机号"},{default:e(()=>[r(s(a.recoveryData.userMobile||"-"),1)]),_:1}),t(i,{label:"用户UID"},{default:e(()=>[r(s(a.recoveryData.userUid||"-"),1)]),_:1}),t(i,{label:"回收金额"},{default:e(()=>{var n;return[o("span",T,"¥"+s(((n=a.recoveryData.money)==null?void 0:n.toFixed(2))||"0.00"),1)]}),_:1}),t(i,{label:"回收时间"},{default:e(()=>[r(s(a.recoveryData.createdAt),1)]),_:1})]),_:1}),a.recoveryData.prizes&&a.recoveryData.prizes.length>0?(u(),b("div",j,[l[5]||(l[5]=o("h4",{class:"section-title"},"回收奖品明细",-1)),t(U,{data:a.recoveryData.prizes,border:"",size:"small"},{default:e(()=>[t(_,{label:"奖品图片",width:"80",align:"center"},{default:e(({row:n})=>[n.imgUrl?(u(),f(N,{key:0,src:n.imgUrl,"preview-src-list":[n.imgUrl],fit:"cover",class:"prize-img",lazy:""},{error:e(()=>[o("div",q,[t(z,null,{default:e(()=>[t(h(k))]),_:1})])]),_:1},8,["src","preview-src-list"])):(u(),b("div",H,[t(z,null,{default:e(()=>[t(h(k))]),_:1})]))]),_:1}),t(_,{prop:"title",label:"奖品名称","min-width":"180"},{default:e(({row:n})=>[o("span",null,s(n.title||"-"),1)]),_:1}),t(_,{prop:"prizeCode",label:"奖品编码","min-width":"120"},{default:e(({row:n})=>[o("span",J,s(n.prizeCode||"-"),1)]),_:1}),t(_,{label:"奖品价值",width:"120",align:"right"},{default:e(({row:n})=>{var y;return[o("span",L,"¥"+s(((y=n.price)==null?void 0:y.toFixed(2))||"0.00"),1)]}),_:1}),t(_,{label:"回收金额",width:"120",align:"right"},{default:e(({row:n})=>{var y;return[o("span",O,"¥"+s(((y=n.recoveryMoney)==null?void 0:y.toFixed(2))||"0.00"),1)]}),_:1})]),_:1},8,["data"]),o("div",Q,[o("span",null,[l[1]||(l[1]=r("共 ",-1)),o("strong",null,s(a.recoveryData.prizes.length),1),l[2]||(l[2]=r(" 件奖品",-1))]),o("span",null,[l[3]||(l[3]=r("总价值: ",-1)),o("span",W,"¥"+s(w.value.toFixed(2)),1)]),o("span",null,[l[4]||(l[4]=r("回收总额: ",-1)),o("span",X,"¥"+s(((v=a.recoveryData.money)==null?void 0:v.toFixed(2))||"0.00"),1)])])])):(u(),f(B,{key:1,description:"暂无回收奖品记录"}))],64)):G("",!0)])]}),_:1},8,["modelValue"])}}}),$=P(Y,[["__scopeId","data-v-de0cb6ca"]]);export{$ as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{d as R,r as A,v as E,G as V,g as c,z as f,k as u,w as e,b as o,c as b,H as G,F as H,e as t,t as r,x as s,l as h,L as k,_ as L}from"./index-VHOuw44X.js";const P={class:"recovery-detail"},S={class:"money"},T={key:0,class:"prize-section"},j={class:"image-error"},q={key:1,class:"image-error"},J={class:"prize-code"},K={class:"price"},O={class:"recovery-money"},Q={class:"summary-bar"},W={class:"price"},X={class:"recovery-money"},Y=R({__name:"RecoveryDetailDialog",props:{modelValue:{type:Boolean},recoveryData:{}},emits:["update:modelValue","close"],setup(a,{emit:x}){const p=a,g=x,m=A(p.modelValue),w=E(()=>{var d;return(d=p.recoveryData)!=null&&d.prizes?p.recoveryData.prizes.reduce((l,i)=>l+(i.price||0),0):0});V(()=>p.modelValue,d=>{m.value=d}),V(m,d=>{g("update:modelValue",d)});const D=()=>{m.value=!1,g("close")};return(d,l)=>{const i=c("el-descriptions-item"),C=c("el-tag"),F=c("el-descriptions"),z=c("el-icon"),N=c("el-image"),_=c("el-table-column"),U=c("el-table"),B=c("el-empty"),I=c("el-button"),M=c("el-dialog");return u(),f(M,{modelValue:m.value,"onUpdate:modelValue":l[0]||(l[0]=v=>m.value=v),title:"回收订单详情",width:"800px","close-on-click-modal":!1,onClose:D},{footer:e(()=>[t(I,{onClick:D},{default:e(()=>[...l[6]||(l[6]=[r("关闭",-1)])]),_:1})]),default:e(()=>{var v;return[o("div",P,[a.recoveryData?(u(),b(H,{key:0},[t(F,{column:2,border:"",class:"order-info"},{default:e(()=>[t(i,{label:"回收单号"},{default:e(()=>[r(s(a.recoveryData.recoveryNum),1)]),_:1}),t(i,{label:"回收数量"},{default:e(()=>[t(C,{type:"info",size:"small"},{default:e(()=>[r(s(a.recoveryData.count)+" 件",1)]),_:1})]),_:1}),t(i,{label:"用户昵称"},{default:e(()=>[r(s(a.recoveryData.userNickname||"-"),1)]),_:1}),t(i,{label:"用户ID"},{default:e(()=>[r(s(a.recoveryData.userId),1)]),_:1}),t(i,{label:"手机号"},{default:e(()=>[r(s(a.recoveryData.userMobile||"-"),1)]),_:1}),t(i,{label:"用户UID"},{default:e(()=>[r(s(a.recoveryData.userUid||"-"),1)]),_:1}),t(i,{label:"回收金额"},{default:e(()=>{var n;return[o("span",S,"¥"+s(((n=a.recoveryData.money)==null?void 0:n.toFixed(2))||"0.00"),1)]}),_:1}),t(i,{label:"回收时间"},{default:e(()=>[r(s(a.recoveryData.createdAt),1)]),_:1})]),_:1}),a.recoveryData.prizes&&a.recoveryData.prizes.length>0?(u(),b("div",T,[l[5]||(l[5]=o("h4",{class:"section-title"},"回收奖品明细",-1)),t(U,{data:a.recoveryData.prizes,border:"",size:"small"},{default:e(()=>[t(_,{label:"奖品图片",width:"80",align:"center"},{default:e(({row:n})=>[n.imgUrl?(u(),f(N,{key:0,src:n.imgUrl,"preview-src-list":[n.imgUrl],fit:"cover",class:"prize-img",lazy:""},{error:e(()=>[o("div",j,[t(z,null,{default:e(()=>[t(h(k))]),_:1})])]),_:1},8,["src","preview-src-list"])):(u(),b("div",q,[t(z,null,{default:e(()=>[t(h(k))]),_:1})]))]),_:1}),t(_,{prop:"title",label:"奖品名称","min-width":"180"},{default:e(({row:n})=>[o("span",null,s(n.title||"-"),1)]),_:1}),t(_,{prop:"prizeCode",label:"奖品编码","min-width":"120"},{default:e(({row:n})=>[o("span",J,s(n.prizeCode||"-"),1)]),_:1}),t(_,{label:"奖品价值",width:"120",align:"right"},{default:e(({row:n})=>{var y;return[o("span",K,"¥"+s(((y=n.price)==null?void 0:y.toFixed(2))||"0.00"),1)]}),_:1}),t(_,{label:"回收金额",width:"120",align:"right"},{default:e(({row:n})=>{var y;return[o("span",O,"¥"+s(((y=n.recoveryMoney)==null?void 0:y.toFixed(2))||"0.00"),1)]}),_:1})]),_:1},8,["data"]),o("div",Q,[o("span",null,[l[1]||(l[1]=r("共 ",-1)),o("strong",null,s(a.recoveryData.prizes.length),1),l[2]||(l[2]=r(" 件奖品",-1))]),o("span",null,[l[3]||(l[3]=r("总价值: ",-1)),o("span",W,"¥"+s(w.value.toFixed(2)),1)]),o("span",null,[l[4]||(l[4]=r("回收总额: ",-1)),o("span",X,"¥"+s(((v=a.recoveryData.money)==null?void 0:v.toFixed(2))||"0.00"),1)])])])):(u(),f(B,{key:1,description:"暂无回收奖品记录"}))],64)):G("",!0)])]}),_:1},8,["modelValue"])}}}),$=L(Y,[["__scopeId","data-v-de0cb6ca"]]);export{$ as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{d as D,r as h,G as v,g as c,J as V,c as f,k as m,K as P,e as a,z as I,w as n,b as i,H as T,x as o,t as b,_ as U}from"./index-VHOuw44X.js";const A={class:"order-table"},M={class:"user-info"},O={class:"nickname"},R={class:"uid"},j={key:0,class:"mobile"},E={class:"order-num"},F={class:"money"},G={class:"time-text"},H=D({__name:"RecoveryOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail"],setup(r,{emit:z}){const d=r,p=z,u=h(d.page),g=h(d.pageSize);v(()=>d.page,t=>{u.value=t}),v(()=>d.pageSize,t=>{g.value=t});const y=t=>{p("page-change",t)},x=t=>{p("size-change",t)},C=t=>{p("view-detail",t)};return(t,l)=>{const s=c("el-table-column"),k=c("el-tag"),w=c("el-button"),S=c("el-table"),N=c("el-pagination"),B=V("loading");return m(),f("div",A,[P((m(),I(S,{data:r.data,border:"",stripe:""},{default:n(()=>[a(s,{label:"用户信息","min-width":"160",fixed:"left"},{default:n(({row:e})=>[i("div",M,[i("div",O,o(e.userNickname||"-"),1),i("div",R,"UID: "+o(e.userId),1),e.userMobile?(m(),f("div",j,o(e.userMobile),1)):T("",!0)])]),_:1}),a(s,{prop:"recoveryNum",label:"回收单号","min-width":"180"},{default:n(({row:e})=>[i("span",E,o(e.recoveryNum),1)]),_:1}),a(s,{label:"兑换金额","min-width":"120",align:"right"},{default:n(({row:e})=>{var _;return[i("span",F,"¥"+o(((_=e.money)==null?void 0:_.toFixed(2))||"0.00"),1)]}),_:1}),a(s,{prop:"count",label:"兑换数量","min-width":"100",align:"center"},{default:n(({row:e})=>[a(k,{type:"info",size:"small"},{default:n(()=>[b(o(e.count)+" 件",1)]),_:2},1024)]),_:1}),a(s,{prop:"createdAt",label:"兑换时间","min-width":"160"},{default:n(({row:e})=>[i("span",G,o(e.createdAt),1)]),_:1}),a(s,{label:"操作",width:"120",fixed:"right",align:"center"},{default:n(({row:e})=>[a(w,{type:"primary",link:"",onClick:_=>C(e)},{default:n(()=>[...l[2]||(l[2]=[b(" 查看详情 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[B,r.loading]]),a(N,{"current-page":u.value,"onUpdate:currentPage":l[0]||(l[0]=e=>u.value=e),"page-size":g.value,"onUpdate:pageSize":l[1]||(l[1]=e=>g.value=e),"page-sizes":[10,20,50,100],total:r.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:x,onCurrentChange:y,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),K=U(H,[["__scopeId","data-v-9c430daf"]]);export{K as default};
|
||||
|
|
@ -1 +0,0 @@
|
|||
import{d as B,r as h,D as v,g as c,H as V,c as f,k as m,I,e as a,z as P,w as n,b as i,G as T,x as o,t as b,_ as U}from"./index-C69OfkED.js";const A={class:"order-table"},M={class:"user-info"},O={class:"nickname"},R={class:"uid"},j={key:0,class:"mobile"},E={class:"order-num"},F={class:"money"},G={class:"time-text"},H=B({__name:"RecoveryOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail"],setup(r,{emit:z}){const d=r,p=z,u=h(d.page),g=h(d.pageSize);v(()=>d.page,t=>{u.value=t}),v(()=>d.pageSize,t=>{g.value=t});const y=t=>{p("page-change",t)},x=t=>{p("size-change",t)},C=t=>{p("view-detail",t)};return(t,l)=>{const s=c("el-table-column"),k=c("el-tag"),w=c("el-button"),S=c("el-table"),N=c("el-pagination"),D=V("loading");return m(),f("div",A,[I((m(),P(S,{data:r.data,border:"",stripe:""},{default:n(()=>[a(s,{label:"用户信息","min-width":"160",fixed:"left"},{default:n(({row:e})=>[i("div",M,[i("div",O,o(e.userNickname||"-"),1),i("div",R,"UID: "+o(e.userId),1),e.userMobile?(m(),f("div",j,o(e.userMobile),1)):T("",!0)])]),_:1}),a(s,{prop:"recoveryNum",label:"回收单号","min-width":"180"},{default:n(({row:e})=>[i("span",E,o(e.recoveryNum),1)]),_:1}),a(s,{label:"兑换金额","min-width":"120",align:"right"},{default:n(({row:e})=>{var _;return[i("span",F,"¥"+o(((_=e.money)==null?void 0:_.toFixed(2))||"0.00"),1)]}),_:1}),a(s,{prop:"count",label:"兑换数量","min-width":"100",align:"center"},{default:n(({row:e})=>[a(k,{type:"info",size:"small"},{default:n(()=>[b(o(e.count)+" 件",1)]),_:2},1024)]),_:1}),a(s,{prop:"createdAt",label:"兑换时间","min-width":"160"},{default:n(({row:e})=>[i("span",G,o(e.createdAt),1)]),_:1}),a(s,{label:"操作",width:"120",fixed:"right",align:"center"},{default:n(({row:e})=>[a(w,{type:"primary",link:"",onClick:_=>C(e)},{default:n(()=>[...l[2]||(l[2]=[b(" 查看详情 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,r.loading]]),a(N,{"current-page":u.value,"onUpdate:currentPage":l[0]||(l[0]=e=>u.value=e),"page-size":g.value,"onUpdate:pageSize":l[1]||(l[1]=e=>g.value=e),"page-sizes":[10,20,50,100],total:r.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:x,onCurrentChange:y,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),q=U(H,[["__scopeId","data-v-9c430daf"]]);export{q as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{d as R,r as B,G as L,o as O,g as u,c as r,k as d,e as o,F as y,y as v,w as c,l as g,M as z,t as A,B as F,_ as J}from"./index-VHOuw44X.js";const M={class:"reward-config-input"},S=R({__name:"RewardConfigInput",props:{modelValue:{}},emits:["update:modelValue"],setup(h,{emit:V}){const m=h,b=V,C=[{label:"钻石",value:"diamond"},{label:"积分",value:"integral"},{label:"UU币",value:"score"},{label:"余额",value:"money"}],a=B([{type:"diamond",amount:0}]),p=e=>{if(!e)return[{type:"diamond",amount:0}];try{const t=JSON.parse(e);if(Array.isArray(t)&&t.length>0)return t.map(n=>({type:n.type||"diamond",amount:n.amount||0}))}catch{}return[{type:"diamond",amount:0}]},w=e=>{const t=e.filter(n=>n.type&&n.amount>0);return t.length===0?"":JSON.stringify(t)};L(()=>m.modelValue,e=>{a.value=p(e)},{immediate:!0});const i=()=>{const e=w(a.value);b("update:modelValue",e)},x=()=>{a.value.push({type:"diamond",amount:0})},k=e=>{a.value.length>1&&(a.value.splice(e,1),i())};return O(()=>{a.value=p(m.modelValue)}),(e,t)=>{const n=u("el-option"),U=u("el-select"),I=u("el-input-number"),_=u("el-button"),N=u("el-icon");return d(),r("div",M,[(d(!0),r(y,null,v(a.value,(s,f)=>(d(),r("div",{key:f,class:"reward-item"},[o(U,{modelValue:s.type,"onUpdate:modelValue":l=>s.type=l,placeholder:"货币类型",style:{width:"120px"},onChange:i},{default:c(()=>[(d(),r(y,null,v(C,l=>o(n,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue","onUpdate:modelValue"]),o(I,{modelValue:s.amount,"onUpdate:modelValue":l=>s.amount=l,min:0,max:999999999,placeholder:"数量",style:{width:"150px","margin-left":"8px"},onChange:i},null,8,["modelValue","onUpdate:modelValue"]),o(_,{type:"danger",icon:g(z),circle:"",size:"small",style:{"margin-left":"8px"},onClick:l=>k(f),disabled:a.value.length<=1},null,8,["icon","onClick","disabled"])]))),128)),o(_,{type:"primary",link:"",onClick:x,style:{"margin-top":"8px"}},{default:c(()=>[o(N,null,{default:c(()=>[o(g(F))]),_:1}),t[0]||(t[0]=A("添加货币 ",-1))]),_:1})])}}}),G=J(S,[["__scopeId","data-v-f0c83e30"]]);export{G as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
.reward-config-input[data-v-f0c83e30]{width:100%}.reward-item[data-v-f0c83e30]{display:flex;align-items:center;margin-bottom:8px}.reward-item[data-v-f0c83e30]:last-child{margin-bottom:0}
|
||||
|
|
@ -1 +1 @@
|
|||
import{s as B}from"./order-Bq5-e0yY.js";import{d as O,r as p,a as Y,D as N,g as s,z as F,k as V,w as t,e as n,c as I,F as J,y as M,t as C,E as v,_ as R}from"./index-C69OfkED.js";const U=O({__name:"ShipDialog",props:{modelValue:{type:Boolean},sendId:{}},emits:["update:modelValue","close","success"],setup(h,{emit:y}){const i=h,m=y,u=p(i.modelValue),c=p(),d=p(!1),o=Y({courierName:"",courierNumber:"",courierCode:""}),f=[{code:"SF",name:"顺丰速运"},{code:"YTO",name:"圆通速递"},{code:"ZTO",name:"中通快递"},{code:"STO",name:"申通快递"},{code:"YD",name:"韵达快递"},{code:"HTKY",name:"百世快递"},{code:"JD",name:"京东物流"},{code:"EMS",name:"EMS"},{code:"YZPY",name:"邮政包裹"},{code:"DBL",name:"德邦快递"},{code:"JTSD",name:"极兔速递"},{code:"ZJS",name:"宅急送"}],w={courierName:[{required:!0,message:"请选择或输入物流公司",trigger:["change","blur"]},{validator:(r,e,l)=>{!e||typeof e=="string"&&e.trim()===""?l(new Error("物流公司不能为空或纯空白字符")):l()},trigger:["change","blur"]}],courierNumber:[{required:!0,message:"请输入快递单号",trigger:["change","blur"]},{validator:(r,e,l)=>{!e||typeof e=="string"&&e.trim()===""?l(new Error("快递单号不能为空或纯空白字符")):l()},trigger:["change","blur"]}]};N(()=>i.modelValue,r=>{var e;u.value=r,r&&(o.courierName="",o.courierNumber="",o.courierCode="",(e=c.value)==null||e.resetFields())}),N(u,r=>{m("update:modelValue",r)});const S=r=>{const e=f.find(l=>l.name===r);o.courierCode=(e==null?void 0:e.code)||""},D=async()=>{var r;if(i.sendId){try{await((r=c.value)==null?void 0:r.validate())}catch{return}d.value=!0;try{await B(i.sendId,{courierName:o.courierName.trim(),courierNumber:o.courierNumber.trim(),courierCode:o.courierCode||void 0}),v.success("发货成功"),u.value=!1,m("success")}catch(e){console.error("发货失败:",e),v.error(e.message||"发货失败")}finally{d.value=!1}}},_=()=>{u.value=!1,m("close")};return(r,e)=>{const l=s("el-option"),k=s("el-select"),g=s("el-form-item"),x=s("el-input"),E=s("el-form"),b=s("el-button"),T=s("el-dialog");return V(),F(T,{modelValue:u.value,"onUpdate:modelValue":e[2]||(e[2]=a=>u.value=a),title:"发货",width:"500px","close-on-click-modal":!1,onClose:_},{footer:t(()=>[n(b,{onClick:_},{default:t(()=>[...e[3]||(e[3]=[C("取消",-1)])]),_:1}),n(b,{type:"primary",loading:d.value,onClick:D},{default:t(()=>[...e[4]||(e[4]=[C(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:t(()=>[n(E,{ref_key:"formRef",ref:c,model:o,rules:w,"label-width":"100px",class:"ship-form"},{default:t(()=>[n(g,{label:"物流公司",prop:"courierName"},{default:t(()=>[n(k,{modelValue:o.courierName,"onUpdate:modelValue":e[0]||(e[0]=a=>o.courierName=a),placeholder:"请选择物流公司",filterable:"","allow-create":"",style:{width:"100%"},onChange:S},{default:t(()=>[(V(),I(J,null,M(f,a=>n(l,{key:a.code,label:a.name,value:a.name},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),n(g,{label:"快递单号",prop:"courierNumber"},{default:t(()=>[n(x,{modelValue:o.courierNumber,"onUpdate:modelValue":e[1]||(e[1]=a=>o.courierNumber=a),placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),L=R(U,[["__scopeId","data-v-cf6388a6"]]);export{L as default};
|
||||
import{s as B}from"./order-nzz6w9AQ.js";import{d as O,r as p,a as Y,G as N,g as s,z as F,k as V,w as t,e as n,c as I,F as J,y as M,t as C,E as v,_ as R}from"./index-VHOuw44X.js";const U=O({__name:"ShipDialog",props:{modelValue:{type:Boolean},sendId:{}},emits:["update:modelValue","close","success"],setup(h,{emit:y}){const i=h,m=y,u=p(i.modelValue),c=p(),d=p(!1),o=Y({courierName:"",courierNumber:"",courierCode:""}),f=[{code:"SF",name:"顺丰速运"},{code:"YTO",name:"圆通速递"},{code:"ZTO",name:"中通快递"},{code:"STO",name:"申通快递"},{code:"YD",name:"韵达快递"},{code:"HTKY",name:"百世快递"},{code:"JD",name:"京东物流"},{code:"EMS",name:"EMS"},{code:"YZPY",name:"邮政包裹"},{code:"DBL",name:"德邦快递"},{code:"JTSD",name:"极兔速递"},{code:"ZJS",name:"宅急送"}],w={courierName:[{required:!0,message:"请选择或输入物流公司",trigger:["change","blur"]},{validator:(r,e,l)=>{!e||typeof e=="string"&&e.trim()===""?l(new Error("物流公司不能为空或纯空白字符")):l()},trigger:["change","blur"]}],courierNumber:[{required:!0,message:"请输入快递单号",trigger:["change","blur"]},{validator:(r,e,l)=>{!e||typeof e=="string"&&e.trim()===""?l(new Error("快递单号不能为空或纯空白字符")):l()},trigger:["change","blur"]}]};N(()=>i.modelValue,r=>{var e;u.value=r,r&&(o.courierName="",o.courierNumber="",o.courierCode="",(e=c.value)==null||e.resetFields())}),N(u,r=>{m("update:modelValue",r)});const S=r=>{const e=f.find(l=>l.name===r);o.courierCode=(e==null?void 0:e.code)||""},k=async()=>{var r;if(i.sendId){try{await((r=c.value)==null?void 0:r.validate())}catch{return}d.value=!0;try{await B(i.sendId,{courierName:o.courierName.trim(),courierNumber:o.courierNumber.trim(),courierCode:o.courierCode||void 0}),v.success("发货成功"),u.value=!1,m("success")}catch(e){console.error("发货失败:",e),v.error(e.message||"发货失败")}finally{d.value=!1}}},_=()=>{u.value=!1,m("close")};return(r,e)=>{const l=s("el-option"),x=s("el-select"),g=s("el-form-item"),D=s("el-input"),E=s("el-form"),b=s("el-button"),T=s("el-dialog");return V(),F(T,{modelValue:u.value,"onUpdate:modelValue":e[2]||(e[2]=a=>u.value=a),title:"发货",width:"500px","close-on-click-modal":!1,onClose:_},{footer:t(()=>[n(b,{onClick:_},{default:t(()=>[...e[3]||(e[3]=[C("取消",-1)])]),_:1}),n(b,{type:"primary",loading:d.value,onClick:k},{default:t(()=>[...e[4]||(e[4]=[C(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:t(()=>[n(E,{ref_key:"formRef",ref:c,model:o,rules:w,"label-width":"100px",class:"ship-form"},{default:t(()=>[n(g,{label:"物流公司",prop:"courierName"},{default:t(()=>[n(x,{modelValue:o.courierName,"onUpdate:modelValue":e[0]||(e[0]=a=>o.courierName=a),placeholder:"请选择物流公司",filterable:"","allow-create":"",style:{width:"100%"},onChange:S},{default:t(()=>[(V(),I(J,null,M(f,a=>n(l,{key:a.code,label:a.name,value:a.name},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),n(g,{label:"快递单号",prop:"courierNumber"},{default:t(()=>[n(D,{modelValue:o.courierNumber,"onUpdate:modelValue":e[1]||(e[1]=a=>o.courierNumber=a),placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),L=R(U,[["__scopeId","data-v-cf6388a6"]]);export{L as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as j,r as g,D as B,g as u,H as q,z as b,k as r,w as e,I as J,e as l,c as f,G as S,F as L,t as i,x as t,b as c,l as h,K as T,_ as Q}from"./index-C69OfkED.js";import{k as W,S as p}from"./order-Bq5-e0yY.js";import X from"./ShipDialog-P6910G7S.js";const Y={class:"shipping-detail"},Z={class:"freight"},$={key:0,class:"logistics-section"},ee={class:"courier-number"},le={key:1,class:"prize-section"},ae={class:"image-error"},te={key:1,class:"image-error"},se={class:"prize-code"},oe={class:"money"},ie=j({__name:"ShippingDetailDialog",props:{modelValue:{type:Boolean},sendId:{}},emits:["update:modelValue","close","shipped"],setup(D,{emit:U}){const _=D,y=U,m=g(_.modelValue),V=g(!1),a=g(null),k=g(!1);B(()=>_.modelValue,d=>{m.value=d,d&&_.sendId&&C()}),B(m,d=>{y("update:modelValue",d)});const C=async()=>{if(_.sendId){V.value=!0;try{const d=await W(_.sendId);a.value=d.data}catch(d){console.error("获取发货订单详情失败:",d)}finally{V.value=!1}}},F=d=>{switch(d){case p.Pending:return"warning";case p.Shipped:return"info";case p.Received:return"success";case p.Cancelled:return"danger";default:return"info"}},O=()=>{k.value=!0},P=()=>{},A=()=>{C(),y("shipped")},w=()=>{m.value=!1,a.value=null,y("close")};return(d,n)=>{const s=u("el-descriptions-item"),E=u("el-tag"),z=u("el-descriptions"),N=u("el-icon"),G=u("el-image"),v=u("el-table-column"),H=u("el-table"),K=u("el-empty"),x=u("el-button"),M=u("el-dialog"),R=q("loading");return r(),b(M,{modelValue:m.value,"onUpdate:modelValue":n[1]||(n[1]=o=>m.value=o),title:"发货订单详情",width:"800px","close-on-click-modal":!1,onClose:w},{footer:e(()=>[l(x,{onClick:w},{default:e(()=>[...n[4]||(n[4]=[i("关闭",-1)])]),_:1}),a.value&&a.value.status===h(p).Pending?(r(),b(x,{key:0,type:"primary",onClick:O},{default:e(()=>[...n[5]||(n[5]=[i(" 发货 ",-1)])]),_:1})):S("",!0)]),default:e(()=>[J((r(),f("div",Y,[a.value?(r(),f(L,{key:0},[l(z,{column:2,border:"",class:"order-info"},{default:e(()=>[l(s,{label:"发货单号"},{default:e(()=>[i(t(a.value.sendNum),1)]),_:1}),l(s,{label:"订单状态"},{default:e(()=>[l(E,{type:F(a.value.status),size:"small"},{default:e(()=>[i(t(a.value.statusName),1)]),_:1},8,["type"])]),_:1}),l(s,{label:"收件人"},{default:e(()=>[i(t(a.value.name||"-"),1)]),_:1}),l(s,{label:"收货手机号"},{default:e(()=>[i(t(a.value.receiverMobile||"-"),1)]),_:1}),l(s,{label:"收货地址",span:2},{default:e(()=>[i(t(a.value.address||"-"),1)]),_:1}),l(s,{label:"用户昵称"},{default:e(()=>[i(t(a.value.userNickname||"-"),1)]),_:1}),l(s,{label:"用户ID"},{default:e(()=>[i(t(a.value.userId),1)]),_:1}),l(s,{label:"发货数量"},{default:e(()=>[i(t(a.value.count),1)]),_:1}),l(s,{label:"运费"},{default:e(()=>{var o;return[c("span",Z,"¥"+t(((o=a.value.freight)==null?void 0:o.toFixed(2))||"0.00"),1)]}),_:1}),l(s,{label:"下单时间"},{default:e(()=>[i(t(a.value.createdAt),1)]),_:1}),l(s,{label:"支付时间"},{default:e(()=>[i(t(a.value.payTime||"-"),1)]),_:1}),l(s,{label:"备注",span:2},{default:e(()=>[i(t(a.value.message||"-"),1)]),_:1})]),_:1}),a.value.status>=h(p).Shipped&&a.value.courierName?(r(),f("div",$,[n[2]||(n[2]=c("h4",{class:"section-title"},"物流信息",-1)),l(z,{column:2,border:""},{default:e(()=>[l(s,{label:"快递公司"},{default:e(()=>[i(t(a.value.courierName),1)]),_:1}),l(s,{label:"快递单号"},{default:e(()=>[c("span",ee,t(a.value.courierNumber),1)]),_:1}),l(s,{label:"发货时间"},{default:e(()=>[i(t(a.value.sendTime||"-"),1)]),_:1}),l(s,{label:"签收时间"},{default:e(()=>[i(t(a.value.receiveTime||"-"),1)]),_:1})]),_:1})])):S("",!0),a.value.prizes&&a.value.prizes.length>0?(r(),f("div",le,[n[3]||(n[3]=c("h4",{class:"section-title"},"发货奖品明细",-1)),l(H,{data:a.value.prizes,size:"small",border:""},{default:e(()=>[l(v,{label:"奖品图片",width:"80",align:"center"},{default:e(({row:o})=>[o.imgUrl?(r(),b(G,{key:0,src:o.imgUrl,"preview-src-list":[o.imgUrl],fit:"cover",class:"prize-img",lazy:""},{error:e(()=>[c("div",ae,[l(N,null,{default:e(()=>[l(h(T))]),_:1})])]),_:1},8,["src","preview-src-list"])):(r(),f("div",te,[l(N,null,{default:e(()=>[l(h(T))]),_:1})]))]),_:1}),l(v,{prop:"title",label:"奖品名称","min-width":"180"},{default:e(({row:o})=>[c("span",null,t(o.title||"-"),1)]),_:1}),l(v,{prop:"prizeCode",label:"奖品编码",width:"120"},{default:e(({row:o})=>[c("span",se,t(o.prizeCode||"-"),1)]),_:1}),l(v,{label:"价值",width:"100",align:"right"},{default:e(({row:o})=>{var I;return[c("span",oe,"¥"+t(((I=o.price)==null?void 0:I.toFixed(2))||"0.00"),1)]}),_:1})]),_:1},8,["data"])])):(r(),b(K,{key:2,description:"暂无奖品信息"}))],64)):S("",!0)])),[[R,V.value]]),l(X,{modelValue:k.value,"onUpdate:modelValue":n[0]||(n[0]=o=>k.value=o),"send-id":D.sendId,onClose:P,onSuccess:A},null,8,["modelValue","send-id"])]),_:1},8,["modelValue"])}}}),re=Q(ie,[["__scopeId","data-v-e135a069"]]);export{re as default};
|
||||
import{d as M,r as g,G as B,g as u,J as R,z as b,k as r,w as e,K as j,e as l,c as f,H as k,F as q,t as i,x as t,b as c,l as h,L as T,_ as Q}from"./index-VHOuw44X.js";import{f as W,S as p}from"./order-nzz6w9AQ.js";import X from"./ShipDialog-CxHhFfUJ.js";const Y={class:"shipping-detail"},Z={class:"freight"},$={key:0,class:"logistics-section"},ee={class:"courier-number"},le={key:1,class:"prize-section"},ae={class:"image-error"},te={key:1,class:"image-error"},se={class:"prize-code"},oe={class:"money"},ie=M({__name:"ShippingDetailDialog",props:{modelValue:{type:Boolean},sendId:{}},emits:["update:modelValue","close","shipped"],setup(D,{emit:U}){const _=D,y=U,m=g(_.modelValue),V=g(!1),a=g(null),S=g(!1);B(()=>_.modelValue,d=>{m.value=d,d&&_.sendId&&C()}),B(m,d=>{y("update:modelValue",d)});const C=async()=>{if(_.sendId){V.value=!0;try{const d=await W(_.sendId);a.value=d.data}catch(d){console.error("获取发货订单详情失败:",d)}finally{V.value=!1}}},F=d=>{switch(d){case p.Pending:return"warning";case p.Shipped:return"info";case p.Received:return"success";case p.Cancelled:return"danger";default:return"info"}},O=()=>{S.value=!0},P=()=>{},A=()=>{C(),y("shipped")},w=()=>{m.value=!1,a.value=null,y("close")};return(d,n)=>{const s=u("el-descriptions-item"),E=u("el-tag"),z=u("el-descriptions"),N=u("el-icon"),G=u("el-image"),v=u("el-table-column"),H=u("el-table"),J=u("el-empty"),x=u("el-button"),K=u("el-dialog"),L=R("loading");return r(),b(K,{modelValue:m.value,"onUpdate:modelValue":n[1]||(n[1]=o=>m.value=o),title:"发货订单详情",width:"800px","close-on-click-modal":!1,onClose:w},{footer:e(()=>[l(x,{onClick:w},{default:e(()=>[...n[4]||(n[4]=[i("关闭",-1)])]),_:1}),a.value&&a.value.status===h(p).Pending?(r(),b(x,{key:0,type:"primary",onClick:O},{default:e(()=>[...n[5]||(n[5]=[i(" 发货 ",-1)])]),_:1})):k("",!0)]),default:e(()=>[j((r(),f("div",Y,[a.value?(r(),f(q,{key:0},[l(z,{column:2,border:"",class:"order-info"},{default:e(()=>[l(s,{label:"发货单号"},{default:e(()=>[i(t(a.value.sendNum),1)]),_:1}),l(s,{label:"订单状态"},{default:e(()=>[l(E,{type:F(a.value.status),size:"small"},{default:e(()=>[i(t(a.value.statusName),1)]),_:1},8,["type"])]),_:1}),l(s,{label:"收件人"},{default:e(()=>[i(t(a.value.name||"-"),1)]),_:1}),l(s,{label:"收货手机号"},{default:e(()=>[i(t(a.value.receiverMobile||"-"),1)]),_:1}),l(s,{label:"收货地址",span:2},{default:e(()=>[i(t(a.value.address||"-"),1)]),_:1}),l(s,{label:"用户昵称"},{default:e(()=>[i(t(a.value.userNickname||"-"),1)]),_:1}),l(s,{label:"用户ID"},{default:e(()=>[i(t(a.value.userId),1)]),_:1}),l(s,{label:"发货数量"},{default:e(()=>[i(t(a.value.count),1)]),_:1}),l(s,{label:"运费"},{default:e(()=>{var o;return[c("span",Z,"¥"+t(((o=a.value.freight)==null?void 0:o.toFixed(2))||"0.00"),1)]}),_:1}),l(s,{label:"下单时间"},{default:e(()=>[i(t(a.value.createdAt),1)]),_:1}),l(s,{label:"支付时间"},{default:e(()=>[i(t(a.value.payTime||"-"),1)]),_:1}),l(s,{label:"备注",span:2},{default:e(()=>[i(t(a.value.message||"-"),1)]),_:1})]),_:1}),a.value.status>=h(p).Shipped&&a.value.courierName?(r(),f("div",$,[n[2]||(n[2]=c("h4",{class:"section-title"},"物流信息",-1)),l(z,{column:2,border:""},{default:e(()=>[l(s,{label:"快递公司"},{default:e(()=>[i(t(a.value.courierName),1)]),_:1}),l(s,{label:"快递单号"},{default:e(()=>[c("span",ee,t(a.value.courierNumber),1)]),_:1}),l(s,{label:"发货时间"},{default:e(()=>[i(t(a.value.sendTime||"-"),1)]),_:1}),l(s,{label:"签收时间"},{default:e(()=>[i(t(a.value.receiveTime||"-"),1)]),_:1})]),_:1})])):k("",!0),a.value.prizes&&a.value.prizes.length>0?(r(),f("div",le,[n[3]||(n[3]=c("h4",{class:"section-title"},"发货奖品明细",-1)),l(H,{data:a.value.prizes,size:"small",border:""},{default:e(()=>[l(v,{label:"奖品图片",width:"80",align:"center"},{default:e(({row:o})=>[o.imgUrl?(r(),b(G,{key:0,src:o.imgUrl,"preview-src-list":[o.imgUrl],fit:"cover",class:"prize-img",lazy:""},{error:e(()=>[c("div",ae,[l(N,null,{default:e(()=>[l(h(T))]),_:1})])]),_:1},8,["src","preview-src-list"])):(r(),f("div",te,[l(N,null,{default:e(()=>[l(h(T))]),_:1})]))]),_:1}),l(v,{prop:"title",label:"奖品名称","min-width":"180"},{default:e(({row:o})=>[c("span",null,t(o.title||"-"),1)]),_:1}),l(v,{prop:"prizeCode",label:"奖品编码",width:"120"},{default:e(({row:o})=>[c("span",se,t(o.prizeCode||"-"),1)]),_:1}),l(v,{label:"价值",width:"100",align:"right"},{default:e(({row:o})=>{var I;return[c("span",oe,"¥"+t(((I=o.price)==null?void 0:I.toFixed(2))||"0.00"),1)]}),_:1})]),_:1},8,["data"])])):(r(),b(J,{key:2,description:"暂无奖品信息"}))],64)):k("",!0)])),[[L,V.value]]),l(X,{modelValue:S.value,"onUpdate:modelValue":n[0]||(n[0]=o=>S.value=o),"send-id":D.sendId,onClose:P,onSuccess:A},null,8,["modelValue","send-id"])]),_:1},8,["modelValue"])}}}),re=Q(ie,[["__scopeId","data-v-e135a069"]]);export{re as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{S as p}from"./order-Bq5-e0yY.js";import{d as O,r as y,D as z,g as _,H as $,c as r,k as c,I as j,e as n,z as C,w as s,b as l,G as u,x as a,t as b,_ as w}from"./index-C69OfkED.js";const A={class:"shipping-order-table"},E={class:"user-info"},G={class:"nickname"},H={class:"uid"},R={key:0,class:"mobile"},q={class:"order-num"},J={class:"count"},K={class:"money"},L={class:"freight"},Q={class:"receiver-info"},W={class:"receiver-name"},X={key:0,class:"receiver-mobile"},Y={key:1,class:"receiver-address"},Z={class:"time-info"},ee={key:0},te={key:1},ae={key:2},se={class:"message"},ne=O({__name:"ShippingOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail","cancel-ship"],setup(g,{emit:S}){const h=g,m=S,v=y(h.page),f=y(h.pageSize);z(()=>h.page,t=>{v.value=t}),z(()=>h.pageSize,t=>{f.value=t});const x=t=>!t.prizes||t.prizes.length===0?0:t.prizes.reduce((o,i)=>o+(i.price||0),0),T=t=>{switch(t){case p.Pending:return"warning";case p.Shipped:return"info";case p.Received:return"success";case p.Cancelled:return"danger";default:return"info"}},N=t=>t===p.Pending,P=t=>{m("page-change",t)},D=t=>{m("size-change",t)},B=t=>{m("view-detail",t)},V=t=>{m("cancel-ship",t)};return(t,o)=>{const i=_("el-table-column"),I=_("el-tag"),k=_("el-button"),M=_("el-table"),U=_("el-pagination"),F=$("loading");return c(),r("div",A,[j((c(),C(M,{data:g.data,border:"",stripe:""},{default:s(()=>[n(i,{label:"用户信息","min-width":"160",fixed:"left"},{default:s(({row:e})=>[l("div",E,[l("div",G,a(e.userNickname||"-"),1),l("div",H,"UID: "+a(e.userId),1),e.userMobile?(c(),r("div",R,a(e.userMobile),1)):u("",!0)])]),_:1}),n(i,{prop:"sendNum",label:"发货单号","min-width":"180"},{default:s(({row:e})=>[l("span",q,a(e.sendNum),1)]),_:1}),n(i,{prop:"count",label:"发货数量",width:"100",align:"center"},{default:s(({row:e})=>[l("span",J,a(e.count),1)]),_:1}),n(i,{label:"总价格",width:"120",align:"right"},{default:s(({row:e})=>{var d;return[l("span",K,"¥"+a(((d=x(e))==null?void 0:d.toFixed(2))||"0.00"),1)]}),_:1}),n(i,{label:"运费",width:"100",align:"right"},{default:s(({row:e})=>{var d;return[l("span",L,"¥"+a(((d=e.freight)==null?void 0:d.toFixed(2))||"0.00"),1)]}),_:1}),n(i,{label:"收货信息","min-width":"200"},{default:s(({row:e})=>[l("div",Q,[l("div",W,a(e.name||"-"),1),e.receiverMobile?(c(),r("div",X,a(e.receiverMobile),1)):u("",!0),e.address?(c(),r("div",Y,a(e.address),1)):u("",!0)])]),_:1}),n(i,{label:"状态",width:"100",align:"center"},{default:s(({row:e})=>[n(I,{type:T(e.status),size:"small"},{default:s(()=>[b(a(e.statusName),1)]),_:2},1032,["type"])]),_:1}),n(i,{label:"时间","min-width":"160"},{default:s(({row:e})=>[l("div",Z,[l("div",null,"申请: "+a(e.createdAt),1),e.payTime?(c(),r("div",ee,"支付: "+a(e.payTime),1)):u("",!0),e.sendTime?(c(),r("div",te,"发货: "+a(e.sendTime),1)):u("",!0),e.receiveTime?(c(),r("div",ae,"签收: "+a(e.receiveTime),1)):u("",!0)])]),_:1}),n(i,{prop:"message",label:"备注","min-width":"120"},{default:s(({row:e})=>[l("span",se,a(e.message||"-"),1)]),_:1}),n(i,{label:"操作",width:"160",fixed:"right",align:"center"},{default:s(({row:e})=>[n(k,{type:"primary",link:"",onClick:d=>B(e)},{default:s(()=>[...o[2]||(o[2]=[b(" 查看详情 ",-1)])]),_:1},8,["onClick"]),N(e.status)?(c(),C(k,{key:0,type:"danger",link:"",onClick:d=>V(e)},{default:s(()=>[...o[3]||(o[3]=[b(" 取消发货 ",-1)])]),_:1},8,["onClick"])):u("",!0)]),_:1})]),_:1},8,["data"])),[[F,g.loading]]),n(U,{"current-page":v.value,"onUpdate:currentPage":o[0]||(o[0]=e=>v.value=e),"page-size":f.value,"onUpdate:pageSize":o[1]||(o[1]=e=>f.value=e),"page-sizes":[10,20,50,100],total:g.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:D,onCurrentChange:P,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),oe=w(ne,[["__scopeId","data-v-3e6b02ef"]]);export{oe as default};
|
||||
import{S as p}from"./order-nzz6w9AQ.js";import{d as O,r as y,G as z,g as _,J as $,c as r,k as c,K as j,e as n,z as C,w as s,b as l,H as u,x as a,t as b,_ as w}from"./index-VHOuw44X.js";const A={class:"shipping-order-table"},E={class:"user-info"},G={class:"nickname"},H={class:"uid"},J={key:0,class:"mobile"},K={class:"order-num"},R={class:"count"},q={class:"money"},L={class:"freight"},Q={class:"receiver-info"},W={class:"receiver-name"},X={key:0,class:"receiver-mobile"},Y={key:1,class:"receiver-address"},Z={class:"time-info"},ee={key:0},te={key:1},ae={key:2},se={class:"message"},ne=O({__name:"ShippingOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail","cancel-ship"],setup(g,{emit:S}){const h=g,m=S,v=y(h.page),f=y(h.pageSize);z(()=>h.page,t=>{v.value=t}),z(()=>h.pageSize,t=>{f.value=t});const x=t=>!t.prizes||t.prizes.length===0?0:t.prizes.reduce((o,i)=>o+(i.price||0),0),T=t=>{switch(t){case p.Pending:return"warning";case p.Shipped:return"info";case p.Received:return"success";case p.Cancelled:return"danger";default:return"info"}},N=t=>t===p.Pending,P=t=>{m("page-change",t)},B=t=>{m("size-change",t)},D=t=>{m("view-detail",t)},V=t=>{m("cancel-ship",t)};return(t,o)=>{const i=_("el-table-column"),M=_("el-tag"),k=_("el-button"),I=_("el-table"),U=_("el-pagination"),F=$("loading");return c(),r("div",A,[j((c(),C(I,{data:g.data,border:"",stripe:""},{default:s(()=>[n(i,{label:"用户信息","min-width":"160",fixed:"left"},{default:s(({row:e})=>[l("div",E,[l("div",G,a(e.userNickname||"-"),1),l("div",H,"UID: "+a(e.userId),1),e.userMobile?(c(),r("div",J,a(e.userMobile),1)):u("",!0)])]),_:1}),n(i,{prop:"sendNum",label:"发货单号","min-width":"180"},{default:s(({row:e})=>[l("span",K,a(e.sendNum),1)]),_:1}),n(i,{prop:"count",label:"发货数量",width:"100",align:"center"},{default:s(({row:e})=>[l("span",R,a(e.count),1)]),_:1}),n(i,{label:"总价格",width:"120",align:"right"},{default:s(({row:e})=>{var d;return[l("span",q,"¥"+a(((d=x(e))==null?void 0:d.toFixed(2))||"0.00"),1)]}),_:1}),n(i,{label:"运费",width:"100",align:"right"},{default:s(({row:e})=>{var d;return[l("span",L,"¥"+a(((d=e.freight)==null?void 0:d.toFixed(2))||"0.00"),1)]}),_:1}),n(i,{label:"收货信息","min-width":"200"},{default:s(({row:e})=>[l("div",Q,[l("div",W,a(e.name||"-"),1),e.receiverMobile?(c(),r("div",X,a(e.receiverMobile),1)):u("",!0),e.address?(c(),r("div",Y,a(e.address),1)):u("",!0)])]),_:1}),n(i,{label:"状态",width:"100",align:"center"},{default:s(({row:e})=>[n(M,{type:T(e.status),size:"small"},{default:s(()=>[b(a(e.statusName),1)]),_:2},1032,["type"])]),_:1}),n(i,{label:"时间","min-width":"160"},{default:s(({row:e})=>[l("div",Z,[l("div",null,"申请: "+a(e.createdAt),1),e.payTime?(c(),r("div",ee,"支付: "+a(e.payTime),1)):u("",!0),e.sendTime?(c(),r("div",te,"发货: "+a(e.sendTime),1)):u("",!0),e.receiveTime?(c(),r("div",ae,"签收: "+a(e.receiveTime),1)):u("",!0)])]),_:1}),n(i,{prop:"message",label:"备注","min-width":"120"},{default:s(({row:e})=>[l("span",se,a(e.message||"-"),1)]),_:1}),n(i,{label:"操作",width:"160",fixed:"right",align:"center"},{default:s(({row:e})=>[n(k,{type:"primary",link:"",onClick:d=>D(e)},{default:s(()=>[...o[2]||(o[2]=[b(" 查看详情 ",-1)])]),_:1},8,["onClick"]),N(e.status)?(c(),C(k,{key:0,type:"danger",link:"",onClick:d=>V(e)},{default:s(()=>[...o[3]||(o[3]=[b(" 取消发货 ",-1)])]),_:1},8,["onClick"])):u("",!0)]),_:1})]),_:1},8,["data"])),[[F,g.loading]]),n(U,{"current-page":v.value,"onUpdate:currentPage":o[0]||(o[0]=e=>v.value=e),"page-size":f.value,"onUpdate:pageSize":o[1]||(o[1]=e=>f.value=e),"page-sizes":[10,20,50,100],total:g.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:B,onCurrentChange:P,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),oe=w(ne,[["__scopeId","data-v-3e6b02ef"]]);export{oe as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as S,a as w,r as D,g as s,z as C,k as b,w as o,e as l,f as i,c as U,F,y as K,t as v,l as V,J as Y,s as B,_ as R}from"./index-C69OfkED.js";import{S as m}from"./order-Bq5-e0yY.js";const M=S({__name:"ShippingSearchForm",emits:["search","reset"],setup(z,{emit:h}){const c=h,e=w({userId:"",mobile:"",sendNum:"",status:void 0}),u=D(null),y=[{value:m.Pending,label:"待发货"},{value:m.Shipped,label:"已发货"},{value:m.Received,label:"已签收"},{value:m.Cancelled,label:"已取消"}],r=()=>{const n={};e.userId&&(n.userId=parseInt(e.userId)),e.mobile&&(n.mobile=e.mobile),e.sendNum&&(n.sendNum=e.sendNum),e.status!==void 0&&(n.status=e.status),u.value&&u.value.length===2&&(n.startDate=u.value[0],n.endDate=u.value[1]),c("search",n)},I=()=>{e.userId="",e.mobile="",e.sendNum="",e.status=void 0,u.value=null,c("reset")};return(n,t)=>{const p=s("el-input"),d=s("el-form-item"),g=s("el-option"),x=s("el-select"),k=s("el-date-picker"),_=s("el-icon"),f=s("el-button"),N=s("el-form");return b(),C(N,{inline:!0,model:e,class:"search-form"},{default:o(()=>[l(d,{label:"用户ID"},{default:o(()=>[l(p,{modelValue:e.userId,"onUpdate:modelValue":t[0]||(t[0]=a=>e.userId=a),placeholder:"用户ID/UID",clearable:"",onKeyup:i(r,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"手机号"},{default:o(()=>[l(p,{modelValue:e.mobile,"onUpdate:modelValue":t[1]||(t[1]=a=>e.mobile=a),placeholder:"手机号",clearable:"",onKeyup:i(r,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"发货单号"},{default:o(()=>[l(p,{modelValue:e.sendNum,"onUpdate:modelValue":t[2]||(t[2]=a=>e.sendNum=a),placeholder:"发货单号",clearable:"",onKeyup:i(r,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"状态"},{default:o(()=>[l(x,{modelValue:e.status,"onUpdate:modelValue":t[3]||(t[3]=a=>e.status=a),placeholder:"全部状态",clearable:"",style:{width:"120px"}},{default:o(()=>[(b(),U(F,null,K(y,a=>l(g,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"申请时间"},{default:o(()=>[l(k,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=a=>u.value=a),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(d,null,{default:o(()=>[l(f,{type:"primary",onClick:r},{default:o(()=>[l(_,null,{default:o(()=>[l(V(Y))]),_:1}),t[5]||(t[5]=v("查询 ",-1))]),_:1}),l(f,{onClick:I},{default:o(()=>[l(_,null,{default:o(()=>[l(V(B))]),_:1}),t[6]||(t[6]=v("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),L=R(M,[["__scopeId","data-v-2a2261fe"]]);export{L as default};
|
||||
import{d as S,a as w,r as D,g as s,z as C,k as b,w as o,e as l,f as i,c as U,F,y as K,t as v,l as V,I as Y,s as B,_ as R}from"./index-VHOuw44X.js";import{S as m}from"./order-nzz6w9AQ.js";const M=S({__name:"ShippingSearchForm",emits:["search","reset"],setup(z,{emit:h}){const c=h,e=w({userId:"",mobile:"",sendNum:"",status:void 0}),u=D(null),y=[{value:m.Pending,label:"待发货"},{value:m.Shipped,label:"已发货"},{value:m.Received,label:"已签收"},{value:m.Cancelled,label:"已取消"}],r=()=>{const n={};e.userId&&(n.userId=parseInt(e.userId)),e.mobile&&(n.mobile=e.mobile),e.sendNum&&(n.sendNum=e.sendNum),e.status!==void 0&&(n.status=e.status),u.value&&u.value.length===2&&(n.startDate=u.value[0],n.endDate=u.value[1]),c("search",n)},I=()=>{e.userId="",e.mobile="",e.sendNum="",e.status=void 0,u.value=null,c("reset")};return(n,t)=>{const p=s("el-input"),d=s("el-form-item"),g=s("el-option"),x=s("el-select"),k=s("el-date-picker"),_=s("el-icon"),f=s("el-button"),N=s("el-form");return b(),C(N,{inline:!0,model:e,class:"search-form"},{default:o(()=>[l(d,{label:"用户ID"},{default:o(()=>[l(p,{modelValue:e.userId,"onUpdate:modelValue":t[0]||(t[0]=a=>e.userId=a),placeholder:"用户ID/UID",clearable:"",onKeyup:i(r,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"手机号"},{default:o(()=>[l(p,{modelValue:e.mobile,"onUpdate:modelValue":t[1]||(t[1]=a=>e.mobile=a),placeholder:"手机号",clearable:"",onKeyup:i(r,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"发货单号"},{default:o(()=>[l(p,{modelValue:e.sendNum,"onUpdate:modelValue":t[2]||(t[2]=a=>e.sendNum=a),placeholder:"发货单号",clearable:"",onKeyup:i(r,["enter"]),style:{width:"180px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"状态"},{default:o(()=>[l(x,{modelValue:e.status,"onUpdate:modelValue":t[3]||(t[3]=a=>e.status=a),placeholder:"全部状态",clearable:"",style:{width:"120px"}},{default:o(()=>[(b(),U(F,null,K(y,a=>l(g,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"申请时间"},{default:o(()=>[l(k,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=a=>u.value=a),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(d,null,{default:o(()=>[l(f,{type:"primary",onClick:r},{default:o(()=>[l(_,null,{default:o(()=>[l(V(Y))]),_:1}),t[5]||(t[5]=v("查询 ",-1))]),_:1}),l(f,{onClick:I},{default:o(()=>[l(_,null,{default:o(()=>[l(V(B))]),_:1}),t[6]||(t[6]=v("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),O=R(M,[["__scopeId","data-v-2a2261fe"]]);export{O as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as M,r as k,D as z,g as r,H as O,c as d,k as i,I as j,e as s,z as x,w as n,b as t,G as c,x as a,l as A,K as E,t as p,_ as G}from"./index-C69OfkED.js";const H={class:"order-table"},K={class:"user-info"},$={class:"nickname"},q={class:"uid"},J={key:0,class:"mobile"},L={class:"order-num"},Q={class:"goods-info"},R={class:"image-error"},W={class:"goods-detail"},X={class:"goods-title"},Y={class:"goods-meta"},Z={class:"money-info"},w={class:"money"},ee={key:0},te={class:"discount"},ae={class:"money"},se={class:"pay-info"},ne={key:0},oe={key:1},ie={key:2},le={key:3},de={key:4},ce={class:"time-info"},_e={key:0},re=M({__name:"StuckOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail"],setup(v,{emit:P}){const h=v,y=P,f=k(h.page),b=k(h.pageSize);z(()=>h.page,l=>{f.value=l}),z(()=>h.pageSize,l=>{b.value=l});const C=l=>{y("page-change",l)},S=l=>{y("size-change",l)},N=l=>{y("view-detail",l)};return(l,o)=>{const _=r("el-table-column"),T=r("el-icon"),I=r("el-image"),D=r("el-tag"),F=r("el-button"),U=r("el-table"),B=r("el-pagination"),V=O("loading");return i(),d("div",H,[j((i(),x(U,{data:v.data,border:"",stripe:""},{default:n(()=>[s(_,{label:"用户信息","min-width":"160",fixed:"left"},{default:n(({row:e})=>[t("div",K,[t("div",$,a(e.userNickname||"-"),1),t("div",q,"UID: "+a(e.userId),1),e.userMobile?(i(),d("div",J,a(e.userMobile),1)):c("",!0)])]),_:1}),s(_,{prop:"orderNum",label:"订单号","min-width":"180"},{default:n(({row:e})=>[t("span",L,a(e.orderNum),1)]),_:1}),s(_,{label:"盒子信息","min-width":"200"},{default:n(({row:e})=>[t("div",Q,[e.goodsImgUrl?(i(),x(I,{key:0,src:e.goodsImgUrl,"preview-src-list":[e.goodsImgUrl],fit:"cover",class:"goods-img",lazy:""},{error:n(()=>[t("div",R,[s(T,null,{default:n(()=>[s(A(E))]),_:1})])]),_:1},8,["src","preview-src-list"])):c("",!0),t("div",W,[t("div",X,a(e.goodsTitle||"-"),1),t("div",Y,[t("span",null,"抽奖次数: "+a(e.num),1),t("span",null,"中奖数: "+a(e.prizeNum),1)])])])]),_:1}),s(_,{label:"金额详情","min-width":"180"},{default:n(({row:e})=>{var u,m,g;return[t("div",Z,[t("div",null,[o[2]||(o[2]=p("订单金额: ",-1)),t("span",w,"¥"+a(((u=e.orderTotal)==null?void 0:u.toFixed(2))||"0.00"),1)]),e.discount>0?(i(),d("div",ee,[o[3]||(o[3]=p("折扣: ",-1)),t("span",te,"-¥"+a((m=e.discount)==null?void 0:m.toFixed(2)),1)])):c("",!0),t("div",null,[o[4]||(o[4]=p("实付金额: ",-1)),t("span",ae,"¥"+a(((g=e.discountTotal)==null?void 0:g.toFixed(2))||"0.00"),1)])])]}),_:1}),s(_,{label:"支付方式","min-width":"140"},{default:n(({row:e})=>{var u,m,g;return[t("div",se,[e.weChatPayment>0?(i(),d("div",ne,"微信: ¥"+a((u=e.weChatPayment)==null?void 0:u.toFixed(2)),1)):c("",!0),e.balancePayment>0?(i(),d("div",oe,"余额: ¥"+a((m=e.balancePayment)==null?void 0:m.toFixed(2)),1)):c("",!0),e.integralPayment>0?(i(),d("div",ie,"积分: "+a(e.integralPayment),1)):c("",!0),e.scorePayment>0?(i(),d("div",le,"评分: "+a(e.scorePayment),1)):c("",!0),e.couponPayment&&e.couponPayment>0?(i(),d("div",de,"优惠券: ¥"+a((g=e.couponPayment)==null?void 0:g.toFixed(2)),1)):c("",!0)])]}),_:1}),s(_,{label:"状态",width:"100",align:"center"},{default:n(({row:e})=>[s(D,{type:"danger",size:"small"},{default:n(()=>[p(a(e.statusName||"卡单"),1)]),_:2},1024)]),_:1}),s(_,{label:"时间","min-width":"160"},{default:n(({row:e})=>[t("div",ce,[t("div",null,"下单: "+a(e.createdAt),1),e.payTime?(i(),d("div",_e,"支付: "+a(e.payTime),1)):c("",!0)])]),_:1}),s(_,{label:"操作",width:"120",fixed:"right",align:"center"},{default:n(({row:e})=>[s(F,{type:"primary",link:"",onClick:u=>N(e)},{default:n(()=>[...o[5]||(o[5]=[p(" 查看详情 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[V,v.loading]]),s(B,{"current-page":f.value,"onUpdate:currentPage":o[0]||(o[0]=e=>f.value=e),"page-size":b.value,"onUpdate:pageSize":o[1]||(o[1]=e=>b.value=e),"page-sizes":[10,20,50,100],total:v.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:S,onCurrentChange:C,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),me=G(re,[["__scopeId","data-v-ae55e431"]]);export{me as default};
|
||||
import{d as M,r as k,G as z,g as r,J as O,c as d,k as i,K as j,e as s,z as x,w as n,b as t,H as c,x as a,l as A,L as E,t as p,_ as G}from"./index-VHOuw44X.js";const H={class:"order-table"},J={class:"user-info"},K={class:"nickname"},L={class:"uid"},$={key:0,class:"mobile"},q={class:"order-num"},Q={class:"goods-info"},R={class:"image-error"},W={class:"goods-detail"},X={class:"goods-title"},Y={class:"goods-meta"},Z={class:"money-info"},w={class:"money"},ee={key:0},te={class:"discount"},ae={class:"money"},se={class:"pay-info"},ne={key:0},oe={key:1},ie={key:2},le={key:3},de={key:4},ce={class:"time-info"},_e={key:0},re=M({__name:"StuckOrderTable",props:{data:{},loading:{type:Boolean},total:{},page:{},pageSize:{}},emits:["page-change","size-change","view-detail"],setup(v,{emit:P}){const h=v,y=P,f=k(h.page),b=k(h.pageSize);z(()=>h.page,l=>{f.value=l}),z(()=>h.pageSize,l=>{b.value=l});const C=l=>{y("page-change",l)},S=l=>{y("size-change",l)},N=l=>{y("view-detail",l)};return(l,o)=>{const _=r("el-table-column"),T=r("el-icon"),F=r("el-image"),I=r("el-tag"),U=r("el-button"),B=r("el-table"),D=r("el-pagination"),V=O("loading");return i(),d("div",H,[j((i(),x(B,{data:v.data,border:"",stripe:""},{default:n(()=>[s(_,{label:"用户信息","min-width":"160",fixed:"left"},{default:n(({row:e})=>[t("div",J,[t("div",K,a(e.userNickname||"-"),1),t("div",L,"UID: "+a(e.userId),1),e.userMobile?(i(),d("div",$,a(e.userMobile),1)):c("",!0)])]),_:1}),s(_,{prop:"orderNum",label:"订单号","min-width":"180"},{default:n(({row:e})=>[t("span",q,a(e.orderNum),1)]),_:1}),s(_,{label:"盒子信息","min-width":"200"},{default:n(({row:e})=>[t("div",Q,[e.goodsImgUrl?(i(),x(F,{key:0,src:e.goodsImgUrl,"preview-src-list":[e.goodsImgUrl],fit:"cover",class:"goods-img",lazy:""},{error:n(()=>[t("div",R,[s(T,null,{default:n(()=>[s(A(E))]),_:1})])]),_:1},8,["src","preview-src-list"])):c("",!0),t("div",W,[t("div",X,a(e.goodsTitle||"-"),1),t("div",Y,[t("span",null,"抽奖次数: "+a(e.num),1),t("span",null,"中奖数: "+a(e.prizeNum),1)])])])]),_:1}),s(_,{label:"金额详情","min-width":"180"},{default:n(({row:e})=>{var u,m,g;return[t("div",Z,[t("div",null,[o[2]||(o[2]=p("订单金额: ",-1)),t("span",w,"¥"+a(((u=e.orderTotal)==null?void 0:u.toFixed(2))||"0.00"),1)]),e.discount>0?(i(),d("div",ee,[o[3]||(o[3]=p("折扣: ",-1)),t("span",te,"-¥"+a((m=e.discount)==null?void 0:m.toFixed(2)),1)])):c("",!0),t("div",null,[o[4]||(o[4]=p("实付金额: ",-1)),t("span",ae,"¥"+a(((g=e.discountTotal)==null?void 0:g.toFixed(2))||"0.00"),1)])])]}),_:1}),s(_,{label:"支付方式","min-width":"140"},{default:n(({row:e})=>{var u,m,g;return[t("div",se,[e.weChatPayment>0?(i(),d("div",ne,"微信: ¥"+a((u=e.weChatPayment)==null?void 0:u.toFixed(2)),1)):c("",!0),e.balancePayment>0?(i(),d("div",oe,"余额: ¥"+a((m=e.balancePayment)==null?void 0:m.toFixed(2)),1)):c("",!0),e.integralPayment>0?(i(),d("div",ie,"积分: "+a(e.integralPayment),1)):c("",!0),e.scorePayment>0?(i(),d("div",le,"评分: "+a(e.scorePayment),1)):c("",!0),e.couponPayment&&e.couponPayment>0?(i(),d("div",de,"优惠券: ¥"+a((g=e.couponPayment)==null?void 0:g.toFixed(2)),1)):c("",!0)])]}),_:1}),s(_,{label:"状态",width:"100",align:"center"},{default:n(({row:e})=>[s(I,{type:"danger",size:"small"},{default:n(()=>[p(a(e.statusName||"卡单"),1)]),_:2},1024)]),_:1}),s(_,{label:"时间","min-width":"160"},{default:n(({row:e})=>[t("div",ce,[t("div",null,"下单: "+a(e.createdAt),1),e.payTime?(i(),d("div",_e,"支付: "+a(e.payTime),1)):c("",!0)])]),_:1}),s(_,{label:"操作",width:"120",fixed:"right",align:"center"},{default:n(({row:e})=>[s(U,{type:"primary",link:"",onClick:u=>N(e)},{default:n(()=>[...o[5]||(o[5]=[p(" 查看详情 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[V,v.loading]]),s(D,{"current-page":f.value,"onUpdate:currentPage":o[0]||(o[0]=e=>f.value=e),"page-size":b.value,"onUpdate:pageSize":o[1]||(o[1]=e=>b.value=e),"page-sizes":[10,20,50,100],total:v.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:S,onCurrentChange:C,class:"pagination"},null,8,["current-page","page-size","total"])])}}}),me=G(re,[["__scopeId","data-v-ae55e431"]]);export{me as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as g,a as h,r as v,g as u,z as x,k as U,w as t,e as l,f as m,t as _,l as I,J as w,s as D,_ as L}from"./index-C69OfkED.js";const K=g({__name:"UserSearchForm",emits:["search","reset"],setup(C,{emit:b}){const i=b,e=h({userId:"",parentId:"",mobile:"",nickname:"",lastLoginIp:""}),r=v(null),s=()=>{const o={};e.userId&&(o.userId=parseInt(e.userId)),e.parentId&&(o.parentId=parseInt(e.parentId)),e.mobile&&(o.mobile=e.mobile),e.nickname&&(o.nickname=e.nickname),e.lastLoginIp&&(o.lastLoginIp=e.lastLoginIp),r.value&&r.value.length===2&&(o.startDate=r.value[0],o.endDate=r.value[1]),i("search",o)},V=()=>{e.userId="",e.parentId="",e.mobile="",e.nickname="",e.lastLoginIp="",r.value=null,i("reset")};return(o,a)=>{const p=u("el-input"),d=u("el-form-item"),y=u("el-date-picker"),f=u("el-icon"),c=u("el-button"),k=u("el-form");return U(),x(k,{inline:!0,model:e,class:"search-form"},{default:t(()=>[l(d,{label:"UID"},{default:t(()=>[l(p,{modelValue:e.userId,"onUpdate:modelValue":a[0]||(a[0]=n=>e.userId=n),placeholder:"用户ID",clearable:"",onKeyup:m(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"推荐人UID"},{default:t(()=>[l(p,{modelValue:e.parentId,"onUpdate:modelValue":a[1]||(a[1]=n=>e.parentId=n),placeholder:"推荐人ID",clearable:"",onKeyup:m(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"手机号"},{default:t(()=>[l(p,{modelValue:e.mobile,"onUpdate:modelValue":a[2]||(a[2]=n=>e.mobile=n),placeholder:"手机号",clearable:"",onKeyup:m(s,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"昵称"},{default:t(()=>[l(p,{modelValue:e.nickname,"onUpdate:modelValue":a[3]||(a[3]=n=>e.nickname=n),placeholder:"昵称",clearable:"",onKeyup:m(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"IP地址"},{default:t(()=>[l(p,{modelValue:e.lastLoginIp,"onUpdate:modelValue":a[4]||(a[4]=n=>e.lastLoginIp=n),placeholder:"IP地址",clearable:"",onKeyup:m(s,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"登录时间"},{default:t(()=>[l(y,{modelValue:r.value,"onUpdate:modelValue":a[5]||(a[5]=n=>r.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(d,null,{default:t(()=>[l(c,{type:"primary",onClick:s},{default:t(()=>[l(f,null,{default:t(()=>[l(I(w))]),_:1}),a[6]||(a[6]=_("查询 ",-1))]),_:1}),l(c,{onClick:V},{default:t(()=>[l(f,null,{default:t(()=>[l(I(D))]),_:1}),a[7]||(a[7]=_("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),F=L(K,[["__scopeId","data-v-7ad1e470"]]);export{F as default};
|
||||
import{d as g,a as h,r as v,g as u,z as x,k as U,w as t,e as l,f as m,t as I,l as _,I as w,s as D,_ as L}from"./index-VHOuw44X.js";const K=g({__name:"UserSearchForm",emits:["search","reset"],setup(C,{emit:b}){const i=b,e=h({userId:"",parentId:"",mobile:"",nickname:"",lastLoginIp:""}),r=v(null),s=()=>{const o={};e.userId&&(o.userId=parseInt(e.userId)),e.parentId&&(o.parentId=parseInt(e.parentId)),e.mobile&&(o.mobile=e.mobile),e.nickname&&(o.nickname=e.nickname),e.lastLoginIp&&(o.lastLoginIp=e.lastLoginIp),r.value&&r.value.length===2&&(o.startDate=r.value[0],o.endDate=r.value[1]),i("search",o)},V=()=>{e.userId="",e.parentId="",e.mobile="",e.nickname="",e.lastLoginIp="",r.value=null,i("reset")};return(o,a)=>{const p=u("el-input"),d=u("el-form-item"),y=u("el-date-picker"),f=u("el-icon"),c=u("el-button"),k=u("el-form");return U(),x(k,{inline:!0,model:e,class:"search-form"},{default:t(()=>[l(d,{label:"UID"},{default:t(()=>[l(p,{modelValue:e.userId,"onUpdate:modelValue":a[0]||(a[0]=n=>e.userId=n),placeholder:"用户ID",clearable:"",onKeyup:m(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"推荐人UID"},{default:t(()=>[l(p,{modelValue:e.parentId,"onUpdate:modelValue":a[1]||(a[1]=n=>e.parentId=n),placeholder:"推荐人ID",clearable:"",onKeyup:m(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"手机号"},{default:t(()=>[l(p,{modelValue:e.mobile,"onUpdate:modelValue":a[2]||(a[2]=n=>e.mobile=n),placeholder:"手机号",clearable:"",onKeyup:m(s,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"昵称"},{default:t(()=>[l(p,{modelValue:e.nickname,"onUpdate:modelValue":a[3]||(a[3]=n=>e.nickname=n),placeholder:"昵称",clearable:"",onKeyup:m(s,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"IP地址"},{default:t(()=>[l(p,{modelValue:e.lastLoginIp,"onUpdate:modelValue":a[4]||(a[4]=n=>e.lastLoginIp=n),placeholder:"IP地址",clearable:"",onKeyup:m(s,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),l(d,{label:"登录时间"},{default:t(()=>[l(y,{modelValue:r.value,"onUpdate:modelValue":a[5]||(a[5]=n=>r.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),l(d,null,{default:t(()=>[l(c,{type:"primary",onClick:s},{default:t(()=>[l(f,null,{default:t(()=>[l(_(w))]),_:1}),a[6]||(a[6]=I("查询 ",-1))]),_:1}),l(c,{onClick:V},{default:t(()=>[l(f,null,{default:t(()=>[l(_(D))]),_:1}),a[7]||(a[7]=I("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])}}}),F=L(K,[["__scopeId","data-v-7ad1e470"]]);export{F as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{d as q,v as J,r as m,g as d,H as K,z as P,k as v,w as a,c as S,G as O,b as i,I as Q,e as t,l as j,m as N,x as c,t as g,U as W,E,_ as X}from"./index-C69OfkED.js";import{j as R}from"./user-CpNQ-zyC.js";const Y={key:0,class:"user-info"},Z={class:"user-detail"},ee={class:"nickname"},te={class:"uid"},ae={class:"team-stats"},le={class:"toolbar"},se={class:"member-info"},oe={class:"member-detail"},ne={class:"member-nickname"},ie={class:"member-uid"},ce={key:0,class:"member-mobile"},re={class:"money"},de={class:"money"},ue={key:1,class:"text-muted"},_e=q({__name:"UserTeamDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue"],setup(f,{emit:M}){const u=f,T=M,V=J({get:()=>u.modelValue,set:o=>T("update:modelValue",o)}),U=m(!1),z=m(!1),L=m([]),y=m(0),_=m(1),h=m(20),D=async()=>{var o,l;if(u.user){U.value=!0;try{const n=await R(u.user.id,_.value,h.value);L.value=((o=n.data)==null?void 0:o.list)||[],y.value=((l=n.data)==null?void 0:l.total)||0}catch(n){console.error("获取下级用户失败",n),L.value=[],y.value=0}finally{U.value=!1}}},$=o=>{_.value=o,D()},A=o=>{h.value=o,_.value=1,D()},G=async()=>{var o;if(u.user){z.value=!0;try{const n=((o=(await R(u.user.id,1,1e4)).data)==null?void 0:o.list)||[];if(n.length===0){E.warning("没有数据可导出");return}const k=["UID","昵称","手机号","余额","积分","钻石","总消费","VIP等级","状态","注册时间"],I=n.map(s=>{var C,w;return[s.id,s.nickname||"-",s.mobile||"-",((C=s.balance)==null?void 0:C.toFixed(2))||"0.00",s.integral||0,s.diamond||0,((w=s.totalConsumption)==null?void 0:w.toFixed(2))||"0.00",s.vipLevel>0?`VIP${s.vipLevel}`:"-",s.status===1?"正常":"封禁",s.createdAt||"-"]}),r="\uFEFF"+[k.join(","),...I.map(s=>s.join(","))].join(`
|
||||
`),x=new Blob([r],{type:"text/csv;charset=utf-8;"}),p=document.createElement("a");p.href=URL.createObjectURL(x),p.download=`下级用户_${u.user.id}_${new Date().toISOString().slice(0,10)}.csv`,p.click(),URL.revokeObjectURL(p.href),E.success("导出成功")}catch(l){console.error("导出失败",l),E.error("导出失败")}finally{z.value=!1}}},H=()=>{_.value=1,h.value=20,D()},F=()=>{V.value=!1};return(o,l)=>{const n=d("el-icon"),k=d("el-avatar"),I=d("el-statistic"),B=d("el-button"),r=d("el-table-column"),x=d("el-tag"),p=d("el-table"),s=d("el-pagination"),C=d("el-dialog"),w=K("loading");return v(),P(C,{modelValue:V.value,"onUpdate:modelValue":l[2]||(l[2]=e=>V.value=e),title:"下级用户",width:"1000px","close-on-click-modal":!1,onClose:F,onOpen:H},{footer:a(()=>[t(B,{onClick:F},{default:a(()=>[...l[4]||(l[4]=[g("关闭",-1)])]),_:1})]),default:a(()=>[f.user?(v(),S("div",Y,[t(k,{src:f.user.avatar,size:40},{default:a(()=>[t(n,null,{default:a(()=>[t(j(N))]),_:1})]),_:1},8,["src"]),i("div",Z,[i("div",ee,c(f.user.nickname||"-"),1),i("div",te,"UID: "+c(f.user.id),1)]),i("div",ae,[t(I,{title:"下级总数",value:y.value},null,8,["value"])])])):O("",!0),i("div",le,[t(B,{type:"primary",onClick:G,loading:z.value},{default:a(()=>[t(n,null,{default:a(()=>[t(j(W))]),_:1}),l[3]||(l[3]=g("导出Excel ",-1))]),_:1},8,["loading"])]),Q((v(),P(p,{data:L.value,border:"",stripe:"","max-height":"400"},{default:a(()=>[t(r,{label:"用户信息","min-width":"200"},{default:a(({row:e})=>[i("div",se,[t(k,{src:e.avatar,size:40},{default:a(()=>[t(n,null,{default:a(()=>[t(j(N))]),_:1})]),_:1},8,["src"]),i("div",oe,[i("div",ne,c(e.nickname||"-"),1),i("div",ie,"UID: "+c(e.id),1),e.mobile?(v(),S("div",ce,c(e.mobile),1)):O("",!0)])])]),_:1}),t(r,{prop:"balance",label:"余额",width:"100",align:"right"},{default:a(({row:e})=>{var b;return[i("span",re,"¥"+c(((b=e.balance)==null?void 0:b.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{prop:"integral",label:"积分",width:"80",align:"right"},{default:a(({row:e})=>[g(c(e.integral||0),1)]),_:1}),t(r,{prop:"diamond",label:"钻石",width:"80",align:"right"},{default:a(({row:e})=>[g(c(e.diamond||0),1)]),_:1}),t(r,{prop:"totalConsumption",label:"总消费",width:"120",align:"right"},{default:a(({row:e})=>{var b;return[i("span",de,"¥"+c(((b=e.totalConsumption)==null?void 0:b.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{prop:"vipLevel",label:"VIP",width:"80",align:"center"},{default:a(({row:e})=>[e.vipLevel>0?(v(),P(x,{key:0,type:"warning",size:"small"},{default:a(()=>[g("VIP"+c(e.vipLevel),1)]),_:2},1024)):(v(),S("span",ue,"-"))]),_:1}),t(r,{label:"状态",width:"100",align:"center"},{default:a(({row:e})=>[t(x,{type:e.status===1?"success":"danger",size:"small"},{default:a(()=>[g(c(e.status===1?"正常":"封禁"),1)]),_:2},1032,["type"])]),_:1}),t(r,{prop:"createdAt",label:"注册时间",width:"170"})]),_:1},8,["data"])),[[w,U.value]]),t(s,{"current-page":_.value,"onUpdate:currentPage":l[0]||(l[0]=e=>_.value=e),"page-size":h.value,"onUpdate:pageSize":l[1]||(l[1]=e=>h.value=e),"page-sizes":[10,20,50,100],total:y.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:A,onCurrentChange:$,class:"pagination"},null,8,["current-page","page-size","total"])]),_:1},8,["modelValue"])}}}),ve=X(_e,[["__scopeId","data-v-b700a117"]]);export{ve as default};
|
||||
import{d as K,v as q,r as m,g as d,J as G,z as P,k as v,w as a,c as S,H as O,b as i,K as Q,e as t,l as j,m as N,x as c,t as g,U as W,E,_ as X}from"./index-VHOuw44X.js";import{j as R}from"./user-CKTn20xm.js";const Y={key:0,class:"user-info"},Z={class:"user-detail"},ee={class:"nickname"},te={class:"uid"},ae={class:"team-stats"},le={class:"toolbar"},se={class:"member-info"},oe={class:"member-detail"},ne={class:"member-nickname"},ie={class:"member-uid"},ce={key:0,class:"member-mobile"},re={class:"money"},de={class:"money"},ue={key:1,class:"text-muted"},_e=K({__name:"UserTeamDialog",props:{modelValue:{type:Boolean},user:{}},emits:["update:modelValue"],setup(f,{emit:M}){const u=f,T=M,V=q({get:()=>u.modelValue,set:o=>T("update:modelValue",o)}),U=m(!1),z=m(!1),L=m([]),y=m(0),_=m(1),h=m(20),D=async()=>{var o,l;if(u.user){U.value=!0;try{const n=await R(u.user.id,_.value,h.value);L.value=((o=n.data)==null?void 0:o.list)||[],y.value=((l=n.data)==null?void 0:l.total)||0}catch(n){console.error("获取下级用户失败",n),L.value=[],y.value=0}finally{U.value=!1}}},$=o=>{_.value=o,D()},A=o=>{h.value=o,_.value=1,D()},H=async()=>{var o;if(u.user){z.value=!0;try{const n=((o=(await R(u.user.id,1,1e4)).data)==null?void 0:o.list)||[];if(n.length===0){E.warning("没有数据可导出");return}const k=["UID","昵称","手机号","余额","积分","钻石","总消费","VIP等级","状态","注册时间"],I=n.map(s=>{var C,w;return[s.id,s.nickname||"-",s.mobile||"-",((C=s.balance)==null?void 0:C.toFixed(2))||"0.00",s.integral||0,s.diamond||0,((w=s.totalConsumption)==null?void 0:w.toFixed(2))||"0.00",s.vipLevel>0?`VIP${s.vipLevel}`:"-",s.status===1?"正常":"封禁",s.createdAt||"-"]}),r="\uFEFF"+[k.join(","),...I.map(s=>s.join(","))].join(`
|
||||
`),x=new Blob([r],{type:"text/csv;charset=utf-8;"}),p=document.createElement("a");p.href=URL.createObjectURL(x),p.download=`下级用户_${u.user.id}_${new Date().toISOString().slice(0,10)}.csv`,p.click(),URL.revokeObjectURL(p.href),E.success("导出成功")}catch(l){console.error("导出失败",l),E.error("导出失败")}finally{z.value=!1}}},J=()=>{_.value=1,h.value=20,D()},F=()=>{V.value=!1};return(o,l)=>{const n=d("el-icon"),k=d("el-avatar"),I=d("el-statistic"),B=d("el-button"),r=d("el-table-column"),x=d("el-tag"),p=d("el-table"),s=d("el-pagination"),C=d("el-dialog"),w=G("loading");return v(),P(C,{modelValue:V.value,"onUpdate:modelValue":l[2]||(l[2]=e=>V.value=e),title:"下级用户",width:"1000px","close-on-click-modal":!1,onClose:F,onOpen:J},{footer:a(()=>[t(B,{onClick:F},{default:a(()=>[...l[4]||(l[4]=[g("关闭",-1)])]),_:1})]),default:a(()=>[f.user?(v(),S("div",Y,[t(k,{src:f.user.avatar,size:40},{default:a(()=>[t(n,null,{default:a(()=>[t(j(N))]),_:1})]),_:1},8,["src"]),i("div",Z,[i("div",ee,c(f.user.nickname||"-"),1),i("div",te,"UID: "+c(f.user.id),1)]),i("div",ae,[t(I,{title:"下级总数",value:y.value},null,8,["value"])])])):O("",!0),i("div",le,[t(B,{type:"primary",onClick:H,loading:z.value},{default:a(()=>[t(n,null,{default:a(()=>[t(j(W))]),_:1}),l[3]||(l[3]=g("导出Excel ",-1))]),_:1},8,["loading"])]),Q((v(),P(p,{data:L.value,border:"",stripe:"","max-height":"400"},{default:a(()=>[t(r,{label:"用户信息","min-width":"200"},{default:a(({row:e})=>[i("div",se,[t(k,{src:e.avatar,size:40},{default:a(()=>[t(n,null,{default:a(()=>[t(j(N))]),_:1})]),_:1},8,["src"]),i("div",oe,[i("div",ne,c(e.nickname||"-"),1),i("div",ie,"UID: "+c(e.id),1),e.mobile?(v(),S("div",ce,c(e.mobile),1)):O("",!0)])])]),_:1}),t(r,{prop:"balance",label:"余额",width:"100",align:"right"},{default:a(({row:e})=>{var b;return[i("span",re,"¥"+c(((b=e.balance)==null?void 0:b.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{prop:"integral",label:"积分",width:"80",align:"right"},{default:a(({row:e})=>[g(c(e.integral||0),1)]),_:1}),t(r,{prop:"diamond",label:"钻石",width:"80",align:"right"},{default:a(({row:e})=>[g(c(e.diamond||0),1)]),_:1}),t(r,{prop:"totalConsumption",label:"总消费",width:"120",align:"right"},{default:a(({row:e})=>{var b;return[i("span",de,"¥"+c(((b=e.totalConsumption)==null?void 0:b.toFixed(2))||"0.00"),1)]}),_:1}),t(r,{prop:"vipLevel",label:"VIP",width:"80",align:"center"},{default:a(({row:e})=>[e.vipLevel>0?(v(),P(x,{key:0,type:"warning",size:"small"},{default:a(()=>[g("VIP"+c(e.vipLevel),1)]),_:2},1024)):(v(),S("span",ue,"-"))]),_:1}),t(r,{label:"状态",width:"100",align:"center"},{default:a(({row:e})=>[t(x,{type:e.status===1?"success":"danger",size:"small"},{default:a(()=>[g(c(e.status===1?"正常":"封禁"),1)]),_:2},1032,["type"])]),_:1}),t(r,{prop:"createdAt",label:"注册时间",width:"170"})]),_:1},8,["data"])),[[w,U.value]]),t(s,{"current-page":_.value,"onUpdate:currentPage":l[0]||(l[0]=e=>_.value=e),"page-size":h.value,"onUpdate:pageSize":l[1]||(l[1]=e=>h.value=e),"page-sizes":[10,20,50,100],total:y.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:A,onCurrentChange:$,class:"pagination"},null,8,["current-page","page-size","total"])]),_:1},8,["modelValue"])}}}),ve=X(_e,[["__scopeId","data-v-b700a117"]]);export{ve as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as x,r as l,a as k,o as z,g as p,c as I,k as L,e as r,w as s,b as _,t as N,l as R,U,E as m,_ as E}from"./index-C69OfkED.js";import B from"./OrderSearchForm-DMEEA2yd.js";import j from"./BuyOrderTable-DJTeaxLw.js";import P from"./OrderDetailDialog-C0zPMWCM.js";import{g as M,e as T}from"./order-Bq5-e0yY.js";const q={class:"page-container"},F={class:"card-header"},$=x({__name:"buy",setup(A){const d=l(!1),g=l([]),v=l(0),i=l(!1),e=k({page:1,pageSize:20}),c=l(!1),u=l(null),n=async()=>{d.value=!0;try{const a=await M(e);g.value=a.data.list,v.value=a.data.total}catch(a){console.error("获取订单列表失败:",a),m.error("获取订单列表失败")}finally{d.value=!1}},f=a=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,Object.assign(e,a),e.page=1,n()},h=()=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.page=1,n()},b=a=>{e.page=a,n()},D=a=>{e.pageSize=a,e.page=1,n()},y=a=>{u.value=a.id,c.value=!0},w=()=>{u.value=null},C=async()=>{i.value=!0;try{const a=await T({userId:e.userId,mobile:e.mobile,orderNum:e.orderNum,startDate:e.startDate,endDate:e.endDate}),o=window.URL.createObjectURL(a),t=document.createElement("a");t.href=o,t.download=`购买订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(t),t.click(),document.body.removeChild(t),window.URL.revokeObjectURL(o),m.success("导出成功")}catch(a){console.error("导出失败:",a),m.error("导出失败")}finally{i.value=!1}};return z(()=>{n()}),(a,o)=>{const t=p("el-icon"),O=p("el-button"),S=p("el-card");return L(),I("div",q,[r(S,null,{header:s(()=>[_("div",F,[o[2]||(o[2]=_("span",null,"购买订单",-1)),r(O,{type:"primary",onClick:C,loading:i.value},{default:s(()=>[r(t,null,{default:s(()=>[r(R(U))]),_:1}),o[1]||(o[1]=N("导出 ",-1))]),_:1},8,["loading"])])]),default:s(()=>[r(B,{onSearch:f,onReset:h}),r(j,{data:g.value,loading:d.value,total:v.value,page:e.page,"page-size":e.pageSize,onPageChange:b,onSizeChange:D,onViewDetail:y},null,8,["data","loading","total","page","page-size"])]),_:1}),r(P,{modelValue:c.value,"onUpdate:modelValue":o[0]||(o[0]=V=>c.value=V),"order-id":u.value,onClose:w},null,8,["modelValue","order-id"])])}}}),W=E($,[["__scopeId","data-v-2660d200"]]);export{W as default};
|
||||
import{d as x,r as l,a as k,o as z,g as p,c as I,k as L,e as r,w as s,b as _,t as N,l as R,U,E as m,_ as E}from"./index-VHOuw44X.js";import B from"./OrderSearchForm-CEBZHo_s.js";import j from"./BuyOrderTable--xqBw9IZ.js";import P from"./OrderDetailDialog-DiTfbMD2.js";import{g as M,e as T}from"./order-nzz6w9AQ.js";const q={class:"page-container"},F={class:"card-header"},$=x({__name:"buy",setup(A){const d=l(!1),g=l([]),v=l(0),i=l(!1),e=k({page:1,pageSize:20}),c=l(!1),u=l(null),n=async()=>{d.value=!0;try{const a=await M(e);g.value=a.data.list,v.value=a.data.total}catch(a){console.error("获取订单列表失败:",a),m.error("获取订单列表失败")}finally{d.value=!1}},f=a=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,Object.assign(e,a),e.page=1,n()},h=()=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.page=1,n()},b=a=>{e.page=a,n()},D=a=>{e.pageSize=a,e.page=1,n()},y=a=>{u.value=a.id,c.value=!0},w=()=>{u.value=null},C=async()=>{i.value=!0;try{const a=await T({userId:e.userId,mobile:e.mobile,orderNum:e.orderNum,startDate:e.startDate,endDate:e.endDate}),o=window.URL.createObjectURL(a),t=document.createElement("a");t.href=o,t.download=`购买订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(t),t.click(),document.body.removeChild(t),window.URL.revokeObjectURL(o),m.success("导出成功")}catch(a){console.error("导出失败:",a),m.error("导出失败")}finally{i.value=!1}};return z(()=>{n()}),(a,o)=>{const t=p("el-icon"),O=p("el-button"),S=p("el-card");return L(),I("div",q,[r(S,null,{header:s(()=>[_("div",F,[o[2]||(o[2]=_("span",null,"购买订单",-1)),r(O,{type:"primary",onClick:C,loading:i.value},{default:s(()=>[r(t,null,{default:s(()=>[r(R(U))]),_:1}),o[1]||(o[1]=N("导出 ",-1))]),_:1},8,["loading"])])]),default:s(()=>[r(B,{onSearch:f,onReset:h}),r(j,{data:g.value,loading:d.value,total:v.value,page:e.page,"page-size":e.pageSize,onPageChange:b,onSizeChange:D,onViewDetail:y},null,8,["data","loading","total","page","page-size"])]),_:1}),r(P,{modelValue:c.value,"onUpdate:modelValue":o[0]||(o[0]=V=>c.value=V),"order-id":u.value,onClose:w},null,8,["modelValue","order-id"])])}}}),W=E($,[["__scopeId","data-v-2660d200"]]);export{W as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{T as t}from"./index-C69OfkED.js";function m(){return t({url:"/admin/departments",method:"get"})}function a(e){return t({url:"/admin/departments",method:"post",data:e})}function u(e,n){return t({url:`/admin/departments/${e}`,method:"put",data:n})}function d(e){return t({url:`/admin/departments/${e}`,method:"delete"})}function s(e){return t({url:`/admin/departments/${e}/menus`,method:"get"})}function p(e){return t({url:`/admin/departments/${e.departmentId}/menus`,method:"put",data:{menuIds:e.menuIds}})}export{s as a,p as b,a as c,d,m as g,u};
|
||||
import{D as t}from"./index-VHOuw44X.js";function m(){return t({url:"/admin/departments",method:"get"})}function a(e){return t({url:"/admin/departments",method:"post",data:e})}function u(e,n){return t({url:`/admin/departments/${e}`,method:"put",data:n})}function d(e){return t({url:`/admin/departments/${e}`,method:"delete"})}function s(e){return t({url:`/admin/departments/${e}/menus`,method:"get"})}function p(e){return t({url:`/admin/departments/${e.departmentId}/menus`,method:"put",data:{menuIds:e.menuIds}})}export{s as a,p as b,a as c,d,m as g,u};
|
||||
|
|
@ -1 +1 @@
|
|||
import{T as n}from"./index-C69OfkED.js";var i=(t=>(t[t.YiFanShang=1]="YiFanShang",t[t.WuXianShang=2]="WuXianShang",t[t.LeiTaiShang=3]="LeiTaiShang",t[t.FuDai=5]="FuDai",t[t.XingYunShang=6]="XingYunShang",t[t.LingZhuShang=8]="LingZhuShang",t[t.LianJiShang=9]="LianJiShang",t[t.MangHe=10]="MangHe",t[t.XingYunShangNew=11]="XingYunShangNew",t[t.FuLiWu=15]="FuLiWu",t[t.FanBeiShang=16]="FanBeiShang",t[t.TeShuHeZi=17]="TeShuHeZi",t))(i||{});const h={1:"一番赏",2:"无限赏",3:"擂台赏",5:"福袋",6:"幸运赏",8:"领主赏",9:"连击赏",10:"盲盒",11:"幸运赏(新)",15:"福利屋",16:"翻倍赏",17:"特殊盒子"},e="/admin/business/goods";function d(t){return n({url:e,method:"get",params:t})}function l(t){return n({url:`${e}/${t}`,method:"get"})}function g(t){return n({url:e,method:"post",data:t})}function c(t,u){return n({url:`${e}/${t}`,method:"put",data:u})}function $(t){return n({url:`${e}/${t}`,method:"delete"})}function S(t,u){return n({url:`${e}/${t}/status`,method:"put",data:{status:u}})}function m(t){return n({url:`${e}/${t}/copy`,method:"post"})}function f(t){return n({url:`${e}/${t}/clear-lottery`,method:"post"})}var s=(t=>(t[t.XianHuo=1]="XianHuo",t[t.YuShou=2]="YuShou",t[t.HuoBi=3]="HuoBi",t[t.BaoXiang=4]="BaoXiang",t))(s||{});const L={1:"现货",2:"预售",3:"货币",4:"宝箱"},r="/admin/business/prizes";function X(t){return n({url:`${e}/${t}/prizes`,method:"get"})}function B(t,u){return n({url:`${e}/${t}/prizes`,method:"post",data:u})}function Y(t,u){return n({url:`${r}/${t}`,method:"put",data:u})}function E(t){return n({url:`${r}/${t}`,method:"delete"})}const a="/admin/business/goods-types";function F(){return n({url:a,method:"get"})}function H(t){return n({url:a,method:"post",data:t})}function p(t,u){return n({url:`${a}/${t}`,method:"put",data:u})}function x(t){return n({url:`${a}/${t}`,method:"delete"})}function _(t,u){return n({url:`${a}/${t}/status`,method:"put",data:u})}function b(t){return n({url:`${e}/${t}/extend`,method:"get"})}function D(t,u){return n({url:`${e}/${t}/extend`,method:"put",data:u})}function Z(t){return n({url:`${e}/${t}/extend`,method:"delete"})}export{h as G,L as P,F as a,f as b,m as c,$ as d,g as e,l as f,d as g,b as h,D as i,Z as j,X as k,E as l,Y as m,s as n,i as o,B as p,x as q,_ as r,S as s,p as t,c as u,H as v};
|
||||
import{D as n}from"./index-VHOuw44X.js";var i=(t=>(t[t.YiFanShang=1]="YiFanShang",t[t.WuXianShang=2]="WuXianShang",t[t.LeiTaiShang=3]="LeiTaiShang",t[t.FuDai=5]="FuDai",t[t.XingYunShang=6]="XingYunShang",t[t.LingZhuShang=8]="LingZhuShang",t[t.LianJiShang=9]="LianJiShang",t[t.MangHe=10]="MangHe",t[t.XingYunShangNew=11]="XingYunShangNew",t[t.FuLiWu=15]="FuLiWu",t[t.FanBeiShang=16]="FanBeiShang",t[t.TeShuHeZi=17]="TeShuHeZi",t))(i||{});const h={1:"一番赏",2:"无限赏",3:"擂台赏",5:"福袋",6:"幸运赏",8:"领主赏",9:"连击赏",10:"盲盒",11:"幸运赏(新)",15:"福利屋",16:"翻倍赏",17:"特殊盒子"},e="/admin/business/goods";function d(t){return n({url:e,method:"get",params:t})}function l(t){return n({url:`${e}/${t}`,method:"get"})}function g(t){return n({url:e,method:"post",data:t})}function c(t,u){return n({url:`${e}/${t}`,method:"put",data:u})}function $(t){return n({url:`${e}/${t}`,method:"delete"})}function S(t,u){return n({url:`${e}/${t}/status`,method:"put",data:{status:u}})}function m(t){return n({url:`${e}/${t}/copy`,method:"post"})}function f(t){return n({url:`${e}/${t}/clear-lottery`,method:"post"})}var s=(t=>(t[t.XianHuo=1]="XianHuo",t[t.YuShou=2]="YuShou",t[t.HuoBi=3]="HuoBi",t[t.BaoXiang=4]="BaoXiang",t))(s||{});const L={1:"现货",2:"预售",3:"货币",4:"宝箱"},r="/admin/business/prizes";function X(t){return n({url:`${e}/${t}/prizes`,method:"get"})}function B(t,u){return n({url:`${e}/${t}/prizes`,method:"post",data:u})}function Y(t,u){return n({url:`${r}/${t}`,method:"put",data:u})}function E(t){return n({url:`${r}/${t}`,method:"delete"})}const a="/admin/business/goods-types";function F(){return n({url:a,method:"get"})}function H(t){return n({url:a,method:"post",data:t})}function p(t,u){return n({url:`${a}/${t}`,method:"put",data:u})}function x(t){return n({url:`${a}/${t}`,method:"delete"})}function _(t,u){return n({url:`${a}/${t}/status`,method:"put",data:u})}function b(t){return n({url:`${e}/${t}/extend`,method:"get"})}function D(t,u){return n({url:`${e}/${t}/extend`,method:"put",data:u})}function Z(t){return n({url:`${e}/${t}/extend`,method:"delete"})}export{h as G,L as P,F as a,f as b,m as c,$ as d,g as e,l as f,d as g,b as h,D as i,Z as j,X as k,E as l,Y as m,s as n,i as o,B as p,x as q,_ as r,S as s,p as t,c as u,H as v};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as v,u as x,v as b,c as u,e as t,w as a,g as r,t as n,x as o,F as g,y as k,b as N,k as c,z as h,_ as y}from"./index-C69OfkED.js";const B={class:"page-container"},C=v({__name:"index",setup(I){const i=x(),s=b(()=>i.userInfo);return(S,_)=>{const l=r("el-descriptions-item"),p=r("el-tag"),m=r("el-descriptions"),f=r("el-card");return c(),u("div",B,[t(f,null,{header:a(()=>[..._[0]||(_[0]=[N("span",null,"个人中心",-1)])]),default:a(()=>[t(m,{column:2,border:""},{default:a(()=>[t(l,{label:"用户名"},{default:a(()=>{var e;return[n(o((e=s.value)==null?void 0:e.username),1)]}),_:1}),t(l,{label:"姓名"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.realName)||"-"),1)]}),_:1}),t(l,{label:"手机号"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.phone)||"-"),1)]}),_:1}),t(l,{label:"邮箱"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.email)||"-"),1)]}),_:1}),t(l,{label:"部门"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.departmentName)||"-"),1)]}),_:1}),t(l,{label:"角色"},{default:a(()=>{var e;return[(c(!0),u(g,null,k((e=s.value)==null?void 0:e.roles,d=>(c(),h(p,{key:d,size:"small",style:{"margin-right":"4px"}},{default:a(()=>[n(o(d),1)]),_:2},1024))),128))]}),_:1})]),_:1})]),_:1})])}}}),w=y(C,[["__scopeId","data-v-e4ec3187"]]);export{w as default};
|
||||
import{d as v,u as x,v as b,c as u,e as t,w as a,g as r,t as n,x as o,F as g,y as k,b as N,k as c,z as h,_ as y}from"./index-VHOuw44X.js";const B={class:"page-container"},C=v({__name:"index",setup(I){const i=x(),s=b(()=>i.userInfo);return(S,_)=>{const l=r("el-descriptions-item"),p=r("el-tag"),m=r("el-descriptions"),f=r("el-card");return c(),u("div",B,[t(f,null,{header:a(()=>[..._[0]||(_[0]=[N("span",null,"个人中心",-1)])]),default:a(()=>[t(m,{column:2,border:""},{default:a(()=>[t(l,{label:"用户名"},{default:a(()=>{var e;return[n(o((e=s.value)==null?void 0:e.username),1)]}),_:1}),t(l,{label:"姓名"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.realName)||"-"),1)]}),_:1}),t(l,{label:"手机号"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.phone)||"-"),1)]}),_:1}),t(l,{label:"邮箱"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.email)||"-"),1)]}),_:1}),t(l,{label:"部门"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.departmentName)||"-"),1)]}),_:1}),t(l,{label:"角色"},{default:a(()=>{var e;return[(c(!0),u(g,null,k((e=s.value)==null?void 0:e.roles,d=>(c(),h(p,{key:d,size:"small",style:{"margin-right":"4px"}},{default:a(()=>[n(o(d),1)]),_:2},1024))),128))]}),_:1})]),_:1})]),_:1})])}}}),w=y(C,[["__scopeId","data-v-e4ec3187"]]);export{w as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as M,r as s,a as N,o as A,g as f,c as R,k as j,e as l,w as u,b as _,t as q,l as F,B as O,E as d,C as h,_ as H}from"./index-C69OfkED.js";import J from"./GoodsSearchForm-D9H5_-Aj.js";import K from"./GoodsTable-C-JdHHwD.js";import Q from"./GoodsAddDialog-Cm2T8VUu.js";import W from"./GoodsEditDialog-BPYVe9Ua.js";import X from"./PrizeListDialog-3lEJvzHL.js";import Y from"./GoodsExtendDialog-BmKdWHa2.js";import{g as Z,a as ee,s as ae,u as oe,d as te,c as se,b as le}from"./goods-wpPao-Zr.js";import"./typeFieldConfig-GJPjVGdW.js";import"./PrizeAddDialog-BbKcSHp8.js";import"./PrizeEditDialog-CBWeQHsp.js";const ne={class:"page-container"},de={class:"card-header"},ie=M({__name:"index",setup(ce){const r=s(!1),V=s([]),b=s(0),i=s([]),o=N({page:1,pageSize:20}),c=s(0),C=s(0),p=s(""),g=s(!1),m=s(!1),v=s(!1),y=s(!1),t=async()=>{r.value=!0;try{const e=await Z(o);V.value=e.data.list,b.value=e.data.total}finally{r.value=!1}},G=async()=>{try{const e=await ee();i.value=e.data}catch{}},S=e=>{o.title=void 0,o.status=void 0,o.type=void 0,Object.assign(o,e),o.page=1,t()},x=()=>{o.title=void 0,o.status=void 0,o.type=void 0,o.page=1,t()},D=e=>{o.page=e,t()},k=e=>{o.pageSize=e,o.page=1,t()},z=()=>{g.value=!0},T=async(e,a)=>{try{await ae(e.id,a),d.success(a===1?"上架成功":"下架成功"),t()}catch{t()}},w=async(e,a)=>{try{await oe(e.id,{...e,sort:a}),d.success("排序更新成功"),t()}catch{t()}},B=async(e,a)=>{switch(c.value=a.id,C.value=a.type,p.value=a.title,e){case"edit":m.value=!0;break;case"delete":await E(a);break;case"copy":await L(a);break;case"prizes":v.value=!0;break;case"extend":y.value=!0;break;case"clearLottery":await P(a);break}},E=async e=>{try{await h.confirm(`确定要删除盒子 "${e.title}" 吗?删除后不可恢复!`,"删除确认",{type:"warning"}),await te(e.id),d.success("删除成功"),t()}catch{}},L=async e=>{try{await h.confirm(`确定要复制盒子 "${e.title}" 吗?将同时复制所有奖品配置。`,"复制确认",{type:"info"});const a=await se(e.id);d.success(`复制成功,新盒子ID: ${a.data.id}`),t()}catch{}},P=async e=>{try{await h.confirm(`⚠️ 危险操作!确定要清空盒子 "${e.title}" 的所有抽奖记录吗?此操作不可恢复!`,"危险操作确认",{type:"error",confirmButtonText:"确定清空",cancelButtonText:"取消",confirmButtonClass:"el-button--danger"}),await le(e.id),d.success("清空抽奖记录成功"),t()}catch{}};return A(()=>{G(),t()}),(e,a)=>{const U=f("el-icon"),$=f("el-button"),I=f("el-card");return j(),R("div",ne,[l(I,null,{header:u(()=>[_("div",de,[a[5]||(a[5]=_("span",null,"盒子管理",-1)),l($,{type:"primary",onClick:z},{default:u(()=>[l(U,null,{default:u(()=>[l(F(O))]),_:1}),a[4]||(a[4]=q("新增盒子 ",-1))]),_:1})])]),default:u(()=>[l(J,{"goods-types":i.value,onSearch:S,onReset:x},null,8,["goods-types"]),l(K,{data:V.value,loading:r.value,total:b.value,page:o.page,"page-size":o.pageSize,onPageChange:D,onSizeChange:k,onCommand:B,onStatusChange:T,onSortChange:w},null,8,["data","loading","total","page","page-size"])]),_:1}),l(Q,{modelValue:g.value,"onUpdate:modelValue":a[0]||(a[0]=n=>g.value=n),"goods-types":i.value,onSuccess:t},null,8,["modelValue","goods-types"]),l(W,{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=n=>m.value=n),"goods-id":c.value,"goods-types":i.value,onSuccess:t},null,8,["modelValue","goods-id","goods-types"]),l(X,{modelValue:v.value,"onUpdate:modelValue":a[2]||(a[2]=n=>v.value=n),"goods-id":c.value,"goods-type":C.value,"goods-title":p.value},null,8,["modelValue","goods-id","goods-type","goods-title"]),l(Y,{modelValue:y.value,"onUpdate:modelValue":a[3]||(a[3]=n=>y.value=n),"goods-id":c.value,"goods-title":p.value,onSuccess:t},null,8,["modelValue","goods-id","goods-title"])])}}}),Ce=H(ie,[["__scopeId","data-v-9ce75b41"]]);export{Ce as default};
|
||||
import{d as M,r as s,a as N,o as A,g as f,c as R,k as j,e as l,w as u,b as _,t as q,l as F,B as O,E as d,C as h,_ as H}from"./index-VHOuw44X.js";import J from"./GoodsSearchForm-BxLhT2TL.js";import K from"./GoodsTable-v2h6gFUT.js";import Q from"./GoodsAddDialog-4VW6LIzt.js";import W from"./GoodsEditDialog-Byf9adur.js";import X from"./PrizeListDialog-BT0xaYex.js";import Y from"./GoodsExtendDialog-D6rawaBT.js";import{g as Z,a as ee,s as ae,u as oe,d as te,c as se,b as le}from"./goods-g1MWBUfa.js";import"./typeFieldConfig-GJPjVGdW.js";import"./PrizeAddDialog-McOhxEif.js";import"./PrizeEditDialog-BqN2jj9r.js";const ne={class:"page-container"},de={class:"card-header"},ie=M({__name:"index",setup(ce){const r=s(!1),V=s([]),b=s(0),i=s([]),o=N({page:1,pageSize:20}),c=s(0),C=s(0),p=s(""),g=s(!1),m=s(!1),v=s(!1),y=s(!1),t=async()=>{r.value=!0;try{const e=await Z(o);V.value=e.data.list,b.value=e.data.total}finally{r.value=!1}},G=async()=>{try{const e=await ee();i.value=e.data}catch{}},S=e=>{o.title=void 0,o.status=void 0,o.type=void 0,Object.assign(o,e),o.page=1,t()},x=()=>{o.title=void 0,o.status=void 0,o.type=void 0,o.page=1,t()},D=e=>{o.page=e,t()},k=e=>{o.pageSize=e,o.page=1,t()},z=()=>{g.value=!0},T=async(e,a)=>{try{await ae(e.id,a),d.success(a===1?"上架成功":"下架成功"),t()}catch{t()}},w=async(e,a)=>{try{await oe(e.id,{...e,sort:a}),d.success("排序更新成功"),t()}catch{t()}},B=async(e,a)=>{switch(c.value=a.id,C.value=a.type,p.value=a.title,e){case"edit":m.value=!0;break;case"delete":await E(a);break;case"copy":await L(a);break;case"prizes":v.value=!0;break;case"extend":y.value=!0;break;case"clearLottery":await P(a);break}},E=async e=>{try{await h.confirm(`确定要删除盒子 "${e.title}" 吗?删除后不可恢复!`,"删除确认",{type:"warning"}),await te(e.id),d.success("删除成功"),t()}catch{}},L=async e=>{try{await h.confirm(`确定要复制盒子 "${e.title}" 吗?将同时复制所有奖品配置。`,"复制确认",{type:"info"});const a=await se(e.id);d.success(`复制成功,新盒子ID: ${a.data.id}`),t()}catch{}},P=async e=>{try{await h.confirm(`⚠️ 危险操作!确定要清空盒子 "${e.title}" 的所有抽奖记录吗?此操作不可恢复!`,"危险操作确认",{type:"error",confirmButtonText:"确定清空",cancelButtonText:"取消",confirmButtonClass:"el-button--danger"}),await le(e.id),d.success("清空抽奖记录成功"),t()}catch{}};return A(()=>{G(),t()}),(e,a)=>{const U=f("el-icon"),$=f("el-button"),I=f("el-card");return j(),R("div",ne,[l(I,null,{header:u(()=>[_("div",de,[a[5]||(a[5]=_("span",null,"盒子管理",-1)),l($,{type:"primary",onClick:z},{default:u(()=>[l(U,null,{default:u(()=>[l(F(O))]),_:1}),a[4]||(a[4]=q("新增盒子 ",-1))]),_:1})])]),default:u(()=>[l(J,{"goods-types":i.value,onSearch:S,onReset:x},null,8,["goods-types"]),l(K,{data:V.value,loading:r.value,total:b.value,page:o.page,"page-size":o.pageSize,onPageChange:D,onSizeChange:k,onCommand:B,onStatusChange:T,onSortChange:w},null,8,["data","loading","total","page","page-size"])]),_:1}),l(Q,{modelValue:g.value,"onUpdate:modelValue":a[0]||(a[0]=n=>g.value=n),"goods-types":i.value,onSuccess:t},null,8,["modelValue","goods-types"]),l(W,{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=n=>m.value=n),"goods-id":c.value,"goods-types":i.value,onSuccess:t},null,8,["modelValue","goods-id","goods-types"]),l(X,{modelValue:v.value,"onUpdate:modelValue":a[2]||(a[2]=n=>v.value=n),"goods-id":c.value,"goods-type":C.value,"goods-title":p.value},null,8,["modelValue","goods-id","goods-type","goods-title"]),l(Y,{modelValue:y.value,"onUpdate:modelValue":a[3]||(a[3]=n=>y.value=n),"goods-id":c.value,"goods-title":p.value,onSuccess:t},null,8,["modelValue","goods-id","goods-title"])])}}}),Ce=H(ie,[["__scopeId","data-v-9ce75b41"]]);export{Ce as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as R,u as z,r as d,a as B,o as U,c as _,b as l,e as a,w as o,f as E,g as n,h as F,E as x,i as I,j as N,k as h,l as c,m as M,n as S,p as j,q as H,s as L,t as T,_ as A}from"./index-C69OfkED.js";const D={class:"login-container"},G={class:"login-box"},J={class:"captcha-container"},O=["src"],P={key:1,class:"captcha-loading"},Q=R({__name:"index",setup(W){const C=I(),V=N(),b=z(),u=d(),p=d(!1),m=d(""),v=d(""),s=B({username:"",password:"",captchaCode:""}),k={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码至少6个字符",trigger:"blur"}],captchaCode:[{required:!0,message:"请输入验证码",trigger:"blur"},{min:4,max:6,message:"验证码为4-6位字符",trigger:"blur"}]},f=async()=>{try{const t=await F();v.value=t.data.captchaKey,m.value=t.data.captchaImage}catch{x.error("获取验证码失败,请重试")}},y=async()=>{u.value&&await u.value.validate(async t=>{if(t){p.value=!0;try{await b.login({username:s.username,password:s.password,captchaKey:v.value,captchaCode:s.captchaCode}),x.success("登录成功");const e=V.query.redirect;C.push(e||"/")}catch{s.captchaCode="",await f()}finally{p.value=!1}}})};return U(()=>{f()}),(t,e)=>{const g=n("el-input"),i=n("el-form-item"),w=n("el-icon"),q=n("el-button"),K=n("el-form");return h(),_("div",D,[l("div",G,[e[4]||(e[4]=l("div",{class:"login-header"},[l("h1",null,"HoneyBox 后台管理系统")],-1)),a(K,{ref_key:"loginFormRef",ref:u,model:s,rules:k,class:"login-form",onKeyup:E(y,["enter"])},{default:o(()=>[a(i,{prop:"username"},{default:o(()=>[a(g,{modelValue:s.username,"onUpdate:modelValue":e[0]||(e[0]=r=>s.username=r),placeholder:"请输入用户名","prefix-icon":c(M),size:"large"},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"password"},{default:o(()=>[a(g,{modelValue:s.password,"onUpdate:modelValue":e[1]||(e[1]=r=>s.password=r),type:"password",placeholder:"请输入密码","prefix-icon":c(S),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"captchaCode"},{default:o(()=>[l("div",J,[a(g,{modelValue:s.captchaCode,"onUpdate:modelValue":e[2]||(e[2]=r=>s.captchaCode=r),placeholder:"请输入验证码","prefix-icon":c(j),size:"large",class:"captcha-input"},null,8,["modelValue","prefix-icon"]),l("div",{class:"captcha-image-wrapper",onClick:f},[m.value?(h(),_("img",{key:0,src:m.value,alt:"验证码",class:"captcha-image",title:"点击刷新验证码"},null,8,O)):(h(),_("div",P,[a(w,{class:"is-loading"},{default:o(()=>[a(c(H))]),_:1})])),a(w,{class:"refresh-icon"},{default:o(()=>[a(c(L))]),_:1})])])]),_:1}),a(i,null,{default:o(()=>[a(q,{type:"primary",size:"large",loading:p.value,class:"login-btn",onClick:y},{default:o(()=>[...e[3]||(e[3]=[T(" 登 录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])])])}}}),Y=A(Q,[["__scopeId","data-v-91501f26"]]);export{Y as default};
|
||||
import{d as R,u as z,r as d,a as B,o as U,c as _,b as l,e as a,w as o,f as E,g as n,h as F,E as x,i as I,j as N,k as h,l as c,m as M,n as S,p as j,q as H,s as L,t as T,_ as A}from"./index-VHOuw44X.js";const D={class:"login-container"},G={class:"login-box"},J={class:"captcha-container"},O=["src"],P={key:1,class:"captcha-loading"},Q=R({__name:"index",setup(W){const C=I(),V=N(),b=z(),u=d(),p=d(!1),m=d(""),v=d(""),s=B({username:"",password:"",captchaCode:""}),k={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码至少6个字符",trigger:"blur"}],captchaCode:[{required:!0,message:"请输入验证码",trigger:"blur"},{min:4,max:6,message:"验证码为4-6位字符",trigger:"blur"}]},f=async()=>{try{const t=await F();v.value=t.data.captchaKey,m.value=t.data.captchaImage}catch{x.error("获取验证码失败,请重试")}},y=async()=>{u.value&&await u.value.validate(async t=>{if(t){p.value=!0;try{await b.login({username:s.username,password:s.password,captchaKey:v.value,captchaCode:s.captchaCode}),x.success("登录成功");const e=V.query.redirect;C.push(e||"/")}catch{s.captchaCode="",await f()}finally{p.value=!1}}})};return U(()=>{f()}),(t,e)=>{const g=n("el-input"),i=n("el-form-item"),w=n("el-icon"),q=n("el-button"),K=n("el-form");return h(),_("div",D,[l("div",G,[e[4]||(e[4]=l("div",{class:"login-header"},[l("h1",null,"HoneyBox 后台管理系统")],-1)),a(K,{ref_key:"loginFormRef",ref:u,model:s,rules:k,class:"login-form",onKeyup:E(y,["enter"])},{default:o(()=>[a(i,{prop:"username"},{default:o(()=>[a(g,{modelValue:s.username,"onUpdate:modelValue":e[0]||(e[0]=r=>s.username=r),placeholder:"请输入用户名","prefix-icon":c(M),size:"large"},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"password"},{default:o(()=>[a(g,{modelValue:s.password,"onUpdate:modelValue":e[1]||(e[1]=r=>s.password=r),type:"password",placeholder:"请输入密码","prefix-icon":c(S),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"captchaCode"},{default:o(()=>[l("div",J,[a(g,{modelValue:s.captchaCode,"onUpdate:modelValue":e[2]||(e[2]=r=>s.captchaCode=r),placeholder:"请输入验证码","prefix-icon":c(j),size:"large",class:"captcha-input"},null,8,["modelValue","prefix-icon"]),l("div",{class:"captcha-image-wrapper",onClick:f},[m.value?(h(),_("img",{key:0,src:m.value,alt:"验证码",class:"captcha-image",title:"点击刷新验证码"},null,8,O)):(h(),_("div",P,[a(w,{class:"is-loading"},{default:o(()=>[a(c(H))]),_:1})])),a(w,{class:"refresh-icon"},{default:o(()=>[a(c(L))]),_:1})])])]),_:1}),a(i,null,{default:o(()=>[a(q,{type:"primary",size:"large",loading:p.value,class:"login-btn",onClick:y},{default:o(()=>[...e[3]||(e[3]=[T(" 登 录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])])])}}}),Y=A(Q,[["__scopeId","data-v-91501f26"]]);export{Y as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as P,r as w,a as b,c as v,e as s,w as a,g as d,t as x,b as V,A as y,E as i,k as h,_ as k}from"./index-C69OfkED.js";const C={class:"page-container"},E=P({__name:"index",setup(q){const u=w(),n=w(!1),o=b({oldPassword:"",newPassword:"",confirmPassword:""}),p={oldPassword:[{required:!0,message:"请输入原密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],newPassword:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],confirmPassword:[{required:!0,message:"请再次输入新密码",trigger:"blur"},{validator:(m,e,r)=>{e!==o.newPassword?r(new Error("两次输入密码不一致")):r()},trigger:"blur"}]},f=async()=>{var e;if(await((e=u.value)==null?void 0:e.validate())){n.value=!0;try{await y({oldPassword:o.oldPassword,newPassword:o.newPassword}),i.success("密码修改成功"),o.oldPassword="",o.newPassword="",o.confirmPassword=""}catch(r){i.error(r.message||"修改失败")}finally{n.value=!1}}};return(m,e)=>{const r=d("el-input"),t=d("el-form-item"),c=d("el-button"),_=d("el-form"),g=d("el-card");return h(),v("div",C,[s(g,null,{header:a(()=>[...e[3]||(e[3]=[V("span",null,"修改密码",-1)])]),default:a(()=>[s(_,{ref_key:"formRef",ref:u,model:o,rules:p,"label-width":"100px",style:{"max-width":"400px"}},{default:a(()=>[s(t,{label:"原密码",prop:"oldPassword"},{default:a(()=>[s(r,{modelValue:o.oldPassword,"onUpdate:modelValue":e[0]||(e[0]=l=>o.oldPassword=l),type:"password",placeholder:"请输入原密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"新密码",prop:"newPassword"},{default:a(()=>[s(r,{modelValue:o.newPassword,"onUpdate:modelValue":e[1]||(e[1]=l=>o.newPassword=l),type:"password",placeholder:"请输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"确认密码",prop:"confirmPassword"},{default:a(()=>[s(r,{modelValue:o.confirmPassword,"onUpdate:modelValue":e[2]||(e[2]=l=>o.confirmPassword=l),type:"password",placeholder:"请再次输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,null,{default:a(()=>[s(c,{type:"primary",onClick:f,loading:n.value},{default:a(()=>[...e[4]||(e[4]=[x(" 确认修改 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])]),_:1})])}}}),N=k(E,[["__scopeId","data-v-928c0ade"]]);export{N as default};
|
||||
import{d as P,r as w,a as b,c as v,e as s,w as a,g as d,t as x,b as V,A as y,E as i,k as h,_ as k}from"./index-VHOuw44X.js";const C={class:"page-container"},E=P({__name:"index",setup(q){const u=w(),n=w(!1),o=b({oldPassword:"",newPassword:"",confirmPassword:""}),p={oldPassword:[{required:!0,message:"请输入原密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],newPassword:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],confirmPassword:[{required:!0,message:"请再次输入新密码",trigger:"blur"},{validator:(m,e,r)=>{e!==o.newPassword?r(new Error("两次输入密码不一致")):r()},trigger:"blur"}]},f=async()=>{var e;if(await((e=u.value)==null?void 0:e.validate())){n.value=!0;try{await y({oldPassword:o.oldPassword,newPassword:o.newPassword}),i.success("密码修改成功"),o.oldPassword="",o.newPassword="",o.confirmPassword=""}catch(r){i.error(r.message||"修改失败")}finally{n.value=!1}}};return(m,e)=>{const r=d("el-input"),t=d("el-form-item"),c=d("el-button"),_=d("el-form"),g=d("el-card");return h(),v("div",C,[s(g,null,{header:a(()=>[...e[3]||(e[3]=[V("span",null,"修改密码",-1)])]),default:a(()=>[s(_,{ref_key:"formRef",ref:u,model:o,rules:p,"label-width":"100px",style:{"max-width":"400px"}},{default:a(()=>[s(t,{label:"原密码",prop:"oldPassword"},{default:a(()=>[s(r,{modelValue:o.oldPassword,"onUpdate:modelValue":e[0]||(e[0]=l=>o.oldPassword=l),type:"password",placeholder:"请输入原密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"新密码",prop:"newPassword"},{default:a(()=>[s(r,{modelValue:o.newPassword,"onUpdate:modelValue":e[1]||(e[1]=l=>o.newPassword=l),type:"password",placeholder:"请输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"确认密码",prop:"confirmPassword"},{default:a(()=>[s(r,{modelValue:o.confirmPassword,"onUpdate:modelValue":e[2]||(e[2]=l=>o.confirmPassword=l),type:"password",placeholder:"请再次输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,null,{default:a(()=>[s(c,{type:"primary",onClick:f,loading:n.value},{default:a(()=>[...e[4]||(e[4]=[x(" 确认修改 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])]),_:1})])}}}),N=k(E,[["__scopeId","data-v-928c0ade"]]);export{N as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{d as N,u as z,r as y,o as B,g as i,c as V,k as I,e as t,w as e,b as n,l,m as g,x as _,W as k,Y as w,Z as $,t as a,_ as T}from"./index-C69OfkED.js";const D={class:"dashboard-container"},E={class:"stat-icon stat-icon-primary"},L={class:"stat-content"},M={class:"stat-value"},q={class:"stat-icon stat-icon-success"},H={class:"stat-content"},Q={class:"stat-value"},U={class:"stat-icon stat-icon-warning"},W={class:"stat-content"},Y={class:"stat-value"},Z={class:"stat-icon stat-icon-danger"},j={class:"stat-content"},A={class:"stat-value"},F={class:"welcome-content"},G={class:"quick-actions"},J=N({__name:"index",setup(K){const C=z(),p=y({userCount:0,roleCount:0,menuCount:0,departmentCount:0}),x=y(new Date().toLocaleString());return B(()=>{p.value={userCount:1,roleCount:1,menuCount:5,departmentCount:1}}),(f,s)=>{const o=i("el-icon"),u=i("el-card"),d=i("el-col"),c=i("el-row"),m=i("el-descriptions-item"),S=i("el-descriptions"),v=i("el-button");return I(),V("div",D,[t(c,{gutter:20},{default:e(()=>[t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",E,[t(o,{size:"32"},{default:e(()=>[t(l(g))]),_:1})]),n("div",L,[n("div",M,_(p.value.userCount),1),s[4]||(s[4]=n("div",{class:"stat-label"},"管理员数量",-1))])]),_:1})]),_:1}),t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",q,[t(o,{size:"32"},{default:e(()=>[t(l(k))]),_:1})]),n("div",H,[n("div",Q,_(p.value.roleCount),1),s[5]||(s[5]=n("div",{class:"stat-label"},"角色数量",-1))])]),_:1})]),_:1}),t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",U,[t(o,{size:"32"},{default:e(()=>[t(l(w))]),_:1})]),n("div",W,[n("div",Y,_(p.value.menuCount),1),s[6]||(s[6]=n("div",{class:"stat-label"},"菜单数量",-1))])]),_:1})]),_:1}),t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",Z,[t(o,{size:"32"},{default:e(()=>[t(l($))]),_:1})]),n("div",j,[n("div",A,_(p.value.departmentCount),1),s[7]||(s[7]=n("div",{class:"stat-label"},"部门数量",-1))])]),_:1})]),_:1})]),_:1}),t(c,{gutter:20,style:{"margin-top":"20px"}},{default:e(()=>[t(d,{span:12},{default:e(()=>[t(u,null,{header:e(()=>[...s[8]||(s[8]=[n("span",null,"欢迎使用",-1)])]),default:e(()=>{var r,b;return[n("div",F,[s[9]||(s[9]=n("h2",null,"HoneyBox 后台管理系统",-1)),n("p",null,"当前登录用户:"+_(((r=l(C).userInfo)==null?void 0:r.realName)||((b=l(C).userInfo)==null?void 0:b.username)),1),n("p",null,"登录时间:"+_(x.value),1)])]}),_:1})]),_:1}),t(d,{span:12},{default:e(()=>[t(u,null,{header:e(()=>[...s[10]||(s[10]=[n("span",null,"系统信息",-1)])]),default:e(()=>[t(S,{column:1,border:""},{default:e(()=>[t(m,{label:"系统版本"},{default:e(()=>[...s[11]||(s[11]=[a("1.0.0",-1)])]),_:1}),t(m,{label:"框架版本"},{default:e(()=>[...s[12]||(s[12]=[a(".NET 10 + Vue 3",-1)])]),_:1}),t(m,{label:"数据库"},{default:e(()=>[...s[13]||(s[13]=[a("SQL Server",-1)])]),_:1}),t(m,{label:"缓存"},{default:e(()=>[...s[14]||(s[14]=[a("Memory Cache",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t(c,{gutter:20,style:{"margin-top":"20px"}},{default:e(()=>[t(d,{span:24},{default:e(()=>[t(u,null,{header:e(()=>[...s[15]||(s[15]=[n("span",null,"快捷操作",-1)])]),default:e(()=>[n("div",G,[t(v,{type:"primary",onClick:s[0]||(s[0]=r=>f.$router.push("/system/user"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l(g))]),_:1}),s[16]||(s[16]=a("管理员管理 ",-1))]),_:1}),t(v,{type:"success",onClick:s[1]||(s[1]=r=>f.$router.push("/system/role"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l(k))]),_:1}),s[17]||(s[17]=a("角色管理 ",-1))]),_:1}),t(v,{type:"warning",onClick:s[2]||(s[2]=r=>f.$router.push("/system/menu"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l(w))]),_:1}),s[18]||(s[18]=a("菜单管理 ",-1))]),_:1}),t(v,{type:"info",onClick:s[3]||(s[3]=r=>f.$router.push("/system/department"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l($))]),_:1}),s[19]||(s[19]=a("部门管理 ",-1))]),_:1})])]),_:1})]),_:1})]),_:1})])}}}),P=T(J,[["__scopeId","data-v-8b9d4c2a"]]);export{P as default};
|
||||
import{d as N,u as z,r as y,o as B,g as i,c as V,k as I,e as t,w as e,b as n,l,m as g,x as _,W as k,Y as w,Z as $,t as a,_ as T}from"./index-VHOuw44X.js";const D={class:"dashboard-container"},E={class:"stat-icon stat-icon-primary"},L={class:"stat-content"},M={class:"stat-value"},q={class:"stat-icon stat-icon-success"},H={class:"stat-content"},Q={class:"stat-value"},U={class:"stat-icon stat-icon-warning"},W={class:"stat-content"},Y={class:"stat-value"},Z={class:"stat-icon stat-icon-danger"},j={class:"stat-content"},A={class:"stat-value"},F={class:"welcome-content"},G={class:"quick-actions"},J=N({__name:"index",setup(K){const C=z(),p=y({userCount:0,roleCount:0,menuCount:0,departmentCount:0}),x=y(new Date().toLocaleString());return B(()=>{p.value={userCount:1,roleCount:1,menuCount:5,departmentCount:1}}),(f,s)=>{const o=i("el-icon"),u=i("el-card"),d=i("el-col"),c=i("el-row"),m=i("el-descriptions-item"),S=i("el-descriptions"),v=i("el-button");return I(),V("div",D,[t(c,{gutter:20},{default:e(()=>[t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",E,[t(o,{size:"32"},{default:e(()=>[t(l(g))]),_:1})]),n("div",L,[n("div",M,_(p.value.userCount),1),s[4]||(s[4]=n("div",{class:"stat-label"},"管理员数量",-1))])]),_:1})]),_:1}),t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",q,[t(o,{size:"32"},{default:e(()=>[t(l(k))]),_:1})]),n("div",H,[n("div",Q,_(p.value.roleCount),1),s[5]||(s[5]=n("div",{class:"stat-label"},"角色数量",-1))])]),_:1})]),_:1}),t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",U,[t(o,{size:"32"},{default:e(()=>[t(l(w))]),_:1})]),n("div",W,[n("div",Y,_(p.value.menuCount),1),s[6]||(s[6]=n("div",{class:"stat-label"},"菜单数量",-1))])]),_:1})]),_:1}),t(d,{span:6},{default:e(()=>[t(u,{class:"stat-card"},{default:e(()=>[n("div",Z,[t(o,{size:"32"},{default:e(()=>[t(l($))]),_:1})]),n("div",j,[n("div",A,_(p.value.departmentCount),1),s[7]||(s[7]=n("div",{class:"stat-label"},"部门数量",-1))])]),_:1})]),_:1})]),_:1}),t(c,{gutter:20,style:{"margin-top":"20px"}},{default:e(()=>[t(d,{span:12},{default:e(()=>[t(u,null,{header:e(()=>[...s[8]||(s[8]=[n("span",null,"欢迎使用",-1)])]),default:e(()=>{var r,b;return[n("div",F,[s[9]||(s[9]=n("h2",null,"HoneyBox 后台管理系统",-1)),n("p",null,"当前登录用户:"+_(((r=l(C).userInfo)==null?void 0:r.realName)||((b=l(C).userInfo)==null?void 0:b.username)),1),n("p",null,"登录时间:"+_(x.value),1)])]}),_:1})]),_:1}),t(d,{span:12},{default:e(()=>[t(u,null,{header:e(()=>[...s[10]||(s[10]=[n("span",null,"系统信息",-1)])]),default:e(()=>[t(S,{column:1,border:""},{default:e(()=>[t(m,{label:"系统版本"},{default:e(()=>[...s[11]||(s[11]=[a("1.0.0",-1)])]),_:1}),t(m,{label:"框架版本"},{default:e(()=>[...s[12]||(s[12]=[a(".NET 10 + Vue 3",-1)])]),_:1}),t(m,{label:"数据库"},{default:e(()=>[...s[13]||(s[13]=[a("SQL Server",-1)])]),_:1}),t(m,{label:"缓存"},{default:e(()=>[...s[14]||(s[14]=[a("Memory Cache",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t(c,{gutter:20,style:{"margin-top":"20px"}},{default:e(()=>[t(d,{span:24},{default:e(()=>[t(u,null,{header:e(()=>[...s[15]||(s[15]=[n("span",null,"快捷操作",-1)])]),default:e(()=>[n("div",G,[t(v,{type:"primary",onClick:s[0]||(s[0]=r=>f.$router.push("/system/user"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l(g))]),_:1}),s[16]||(s[16]=a("管理员管理 ",-1))]),_:1}),t(v,{type:"success",onClick:s[1]||(s[1]=r=>f.$router.push("/system/role"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l(k))]),_:1}),s[17]||(s[17]=a("角色管理 ",-1))]),_:1}),t(v,{type:"warning",onClick:s[2]||(s[2]=r=>f.$router.push("/system/menu"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l(w))]),_:1}),s[18]||(s[18]=a("菜单管理 ",-1))]),_:1}),t(v,{type:"info",onClick:s[3]||(s[3]=r=>f.$router.push("/system/department"))},{default:e(()=>[t(o,null,{default:e(()=>[t(l($))]),_:1}),s[19]||(s[19]=a("部门管理 ",-1))]),_:1})])]),_:1})]),_:1})]),_:1})])}}}),P=T(J,[["__scopeId","data-v-8b9d4c2a"]]);export{P as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{d as G,r as h,a as K,o as Q,g as s,H as W,c as D,k,e,w as t,I as X,b as u,t as m,l as x,J as Z,s as ee,z as te,m as E,x as c,S as ae,U as le,E as j,_ as ne}from"./index-C69OfkED.js";import{p as oe}from"./user-CpNQ-zyC.js";const se={class:"page-container"},ie={class:"card-header"},de={key:0,class:"expand-content"},re={class:"user-info-small"},ue={class:"money-text"},ce={key:1,class:"expand-empty"},pe={class:"user-info"},_e={class:"user-detail"},me={class:"nickname"},fe={class:"uid"},ve={class:"money-text"},ge={class:"pagination-container"},he=G({__name:"invite-stats",setup(be){const C=h(!1),I=h([]),U=h(0),z=h(!1),v=h([]),f=h(null),l=K({userId:void 0,uid:void 0,minInviteCount:void 0,startTime:void 0,endTime:void 0,page:1,pageSize:20}),L=o=>o===1?"rank-gold":o===2?"rank-silver":o===3?"rank-bronze":"",M=o=>o?new Date(o).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-",b=async()=>{C.value=!0;try{f.value&&f.value.length===2?(l.startTime=f.value[0],l.endTime=f.value[1]):(l.startTime=void 0,l.endTime=void 0);const o=await oe(l);I.value=o.data.list,U.value=o.data.total}catch(o){console.error("获取邀请统计失败:",o)}finally{C.value=!1}},O=()=>{l.page=1,v.value=[],b()},B=()=>{l.userId=void 0,l.uid=void 0,l.minInviteCount=void 0,f.value=null,l.startTime=void 0,l.endTime=void 0,l.page=1,v.value=[],b()},F=o=>{l.page=o,v.value=[],b()},N=o=>{l.pageSize=o,l.page=1,v.value=[],b()},P=(o,n)=>{v.value=n.map(_=>_.userId)},R=async()=>{z.value=!0;try{const o=I.value.map(i=>{var g;return{排名:i.index,用户ID:i.userId,UID:i.uid||"",昵称:i.nickname||"",邀请人数:i.inviteNumber||0,绑定手机数:i.countMobile||0,消费人数:i.sumOrder||0,消费总金额:((g=i.sumPrice)==null?void 0:g.toFixed(2))||"0.00"}}),n=Object.keys(o[0]||{}),_=[n.join(","),...o.map(i=>n.map(g=>`"${i[g]}"`).join(","))].join(`
|
||||
`),y="\uFEFF",w=new Blob([y+_],{type:"text/csv;charset=utf-8;"}),p=document.createElement("a");p.href=URL.createObjectURL(w),p.download=`用户邀请统计_${new Date().toISOString().slice(0,10)}.csv`,p.click(),URL.revokeObjectURL(p.href),j.success("导出成功")}catch(o){console.error("导出失败:",o),j.error("导出失败")}finally{z.value=!1}};return Q(()=>{b()}),(o,n)=>{const _=s("el-icon"),y=s("el-button"),w=s("el-input"),p=s("el-form-item"),i=s("el-input-number"),g=s("el-date-picker"),Y=s("el-form"),V=s("el-avatar"),d=s("el-table-column"),S=s("el-table"),$=s("el-empty"),q=s("el-tag"),A=s("el-pagination"),H=s("el-card"),J=W("loading");return k(),D("div",se,[e(H,null,{header:t(()=>[u("div",ie,[n[7]||(n[7]=u("span",null,"用户邀请统计",-1)),e(y,{type:"primary",onClick:R,loading:z.value},{default:t(()=>[e(_,null,{default:t(()=>[e(x(le))]),_:1}),n[6]||(n[6]=m("导出Excel ",-1))]),_:1},8,["loading"])])]),default:t(()=>[e(Y,{model:l,inline:"",class:"search-form"},{default:t(()=>[e(p,{label:"用户ID"},{default:t(()=>[e(w,{modelValue:l.userId,"onUpdate:modelValue":n[0]||(n[0]=a=>l.userId=a),placeholder:"请输入用户ID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),e(p,{label:"UID"},{default:t(()=>[e(w,{modelValue:l.uid,"onUpdate:modelValue":n[1]||(n[1]=a=>l.uid=a),placeholder:"请输入UID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),e(p,{label:"最少邀请数"},{default:t(()=>[e(i,{modelValue:l.minInviteCount,"onUpdate:modelValue":n[2]||(n[2]=a=>l.minInviteCount=a),min:0,max:9999,style:{width:"150px"}},null,8,["modelValue"])]),_:1}),e(p,{label:"时间范围"},{default:t(()=>[e(g,{modelValue:f.value,"onUpdate:modelValue":n[3]||(n[3]=a=>f.value=a),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),e(p,null,{default:t(()=>[e(y,{type:"primary",onClick:O},{default:t(()=>[e(_,null,{default:t(()=>[e(x(Z))]),_:1}),n[8]||(n[8]=m("搜索 ",-1))]),_:1}),e(y,{onClick:B},{default:t(()=>[e(_,null,{default:t(()=>[e(x(ee))]),_:1}),n[9]||(n[9]=m("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"]),X((k(),te(S,{data:I.value,border:"",stripe:"","row-key":"userId","expand-row-keys":v.value,onExpandChange:P},{default:t(()=>[e(d,{type:"expand"},{default:t(({row:a})=>[a.info&&a.info.length>0?(k(),D("div",de,[e(S,{data:a.info,border:"",size:"small"},{default:t(()=>[e(d,{label:"被邀请用户","min-width":"150"},{default:t(({row:r})=>[u("div",re,[e(V,{src:r.headimg,size:28},{default:t(()=>[e(_,null,{default:t(()=>[e(x(E))]),_:1})]),_:1},8,["src"]),u("span",null,c(r.nickname||r.uid||"-"),1)])]),_:1}),e(d,{label:"手机号",prop:"mobile",width:"130"},{default:t(({row:r})=>[m(c(r.mobile||"-"),1)]),_:1}),e(d,{label:"订单数",prop:"orderCount",align:"center",width:"80"}),e(d,{label:"消费金额",align:"right",width:"120"},{default:t(({row:r})=>{var T;return[u("span",ue,"¥"+c(((T=r.totalPrice)==null?void 0:T.toFixed(2))||"0.00"),1)]}),_:1}),e(d,{label:"注册时间",width:"180"},{default:t(({row:r})=>[m(c(M(r.createdAt)),1)]),_:1})]),_:1},8,["data"])])):(k(),D("div",ce,[e($,{description:"暂无被邀请用户数据","image-size":60})]))]),_:1}),e(d,{label:"排名",align:"center",width:"70"},{default:t(({row:a})=>[u("span",{class:ae(L(a.index))},c(a.index),3)]),_:1}),e(d,{label:"邀请人信息","min-width":"180"},{default:t(({row:a})=>[u("div",pe,[e(V,{src:a.headimg,size:40},{default:t(()=>[e(_,null,{default:t(()=>[e(x(E))]),_:1})]),_:1},8,["src"]),u("div",_e,[u("div",me,c(a.nickname||"-"),1),u("div",fe,"UID: "+c(a.uid||"-"),1)])])]),_:1}),e(d,{label:"邀请人数",align:"center",width:"100"},{default:t(({row:a})=>[e(q,{type:"primary"},{default:t(()=>[m(c(a.inviteNumber||0),1)]),_:2},1024)]),_:1}),e(d,{label:"绑定手机数",align:"center",width:"100"},{default:t(({row:a})=>[m(c(a.countMobile||0),1)]),_:1}),e(d,{label:"消费人数",align:"center",width:"100"},{default:t(({row:a})=>[m(c(a.sumOrder||0),1)]),_:1}),e(d,{label:"消费总金额",align:"right",width:"120"},{default:t(({row:a})=>{var r;return[u("span",ve,"¥"+c(((r=a.sumPrice)==null?void 0:r.toFixed(2))||"0.00"),1)]}),_:1})]),_:1},8,["data","expand-row-keys"])),[[J,C.value]]),u("div",ge,[e(A,{"current-page":l.page,"onUpdate:currentPage":n[4]||(n[4]=a=>l.page=a),"page-size":l.pageSize,"onUpdate:pageSize":n[5]||(n[5]=a=>l.pageSize=a),"page-sizes":[20,50,100],total:U.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:N,onCurrentChange:F},null,8,["current-page","page-size","total"])])]),_:1})])}}}),we=ne(he,[["__scopeId","data-v-b59834ed"]]);export{we as default};
|
||||
import{d as G,r as h,a as H,o as Q,g as s,J as W,c as D,k,e,w as t,K as X,b as u,t as m,l as x,I as Z,s as ee,z as te,m as E,x as c,T as ae,U as le,E as j,_ as ne}from"./index-VHOuw44X.js";import{p as oe}from"./user-CKTn20xm.js";const se={class:"page-container"},ie={class:"card-header"},de={key:0,class:"expand-content"},re={class:"user-info-small"},ue={class:"money-text"},ce={key:1,class:"expand-empty"},pe={class:"user-info"},_e={class:"user-detail"},me={class:"nickname"},fe={class:"uid"},ve={class:"money-text"},ge={class:"pagination-container"},he=G({__name:"invite-stats",setup(be){const C=h(!1),I=h([]),U=h(0),z=h(!1),v=h([]),f=h(null),l=H({userId:void 0,uid:void 0,minInviteCount:void 0,startTime:void 0,endTime:void 0,page:1,pageSize:20}),L=o=>o===1?"rank-gold":o===2?"rank-silver":o===3?"rank-bronze":"",M=o=>o?new Date(o).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-",b=async()=>{C.value=!0;try{f.value&&f.value.length===2?(l.startTime=f.value[0],l.endTime=f.value[1]):(l.startTime=void 0,l.endTime=void 0);const o=await oe(l);I.value=o.data.list,U.value=o.data.total}catch(o){console.error("获取邀请统计失败:",o)}finally{C.value=!1}},O=()=>{l.page=1,v.value=[],b()},B=()=>{l.userId=void 0,l.uid=void 0,l.minInviteCount=void 0,f.value=null,l.startTime=void 0,l.endTime=void 0,l.page=1,v.value=[],b()},F=o=>{l.page=o,v.value=[],b()},N=o=>{l.pageSize=o,l.page=1,v.value=[],b()},P=(o,n)=>{v.value=n.map(_=>_.userId)},R=async()=>{z.value=!0;try{const o=I.value.map(i=>{var g;return{排名:i.index,用户ID:i.userId,UID:i.uid||"",昵称:i.nickname||"",邀请人数:i.inviteNumber||0,绑定手机数:i.countMobile||0,消费人数:i.sumOrder||0,消费总金额:((g=i.sumPrice)==null?void 0:g.toFixed(2))||"0.00"}}),n=Object.keys(o[0]||{}),_=[n.join(","),...o.map(i=>n.map(g=>`"${i[g]}"`).join(","))].join(`
|
||||
`),y="\uFEFF",w=new Blob([y+_],{type:"text/csv;charset=utf-8;"}),p=document.createElement("a");p.href=URL.createObjectURL(w),p.download=`用户邀请统计_${new Date().toISOString().slice(0,10)}.csv`,p.click(),URL.revokeObjectURL(p.href),j.success("导出成功")}catch(o){console.error("导出失败:",o),j.error("导出失败")}finally{z.value=!1}};return Q(()=>{b()}),(o,n)=>{const _=s("el-icon"),y=s("el-button"),w=s("el-input"),p=s("el-form-item"),i=s("el-input-number"),g=s("el-date-picker"),Y=s("el-form"),V=s("el-avatar"),d=s("el-table-column"),S=s("el-table"),$=s("el-empty"),q=s("el-tag"),A=s("el-pagination"),J=s("el-card"),K=W("loading");return k(),D("div",se,[e(J,null,{header:t(()=>[u("div",ie,[n[7]||(n[7]=u("span",null,"用户邀请统计",-1)),e(y,{type:"primary",onClick:R,loading:z.value},{default:t(()=>[e(_,null,{default:t(()=>[e(x(le))]),_:1}),n[6]||(n[6]=m("导出Excel ",-1))]),_:1},8,["loading"])])]),default:t(()=>[e(Y,{model:l,inline:"",class:"search-form"},{default:t(()=>[e(p,{label:"用户ID"},{default:t(()=>[e(w,{modelValue:l.userId,"onUpdate:modelValue":n[0]||(n[0]=a=>l.userId=a),placeholder:"请输入用户ID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),e(p,{label:"UID"},{default:t(()=>[e(w,{modelValue:l.uid,"onUpdate:modelValue":n[1]||(n[1]=a=>l.uid=a),placeholder:"请输入UID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),e(p,{label:"最少邀请数"},{default:t(()=>[e(i,{modelValue:l.minInviteCount,"onUpdate:modelValue":n[2]||(n[2]=a=>l.minInviteCount=a),min:0,max:9999,style:{width:"150px"}},null,8,["modelValue"])]),_:1}),e(p,{label:"时间范围"},{default:t(()=>[e(g,{modelValue:f.value,"onUpdate:modelValue":n[3]||(n[3]=a=>f.value=a),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),e(p,null,{default:t(()=>[e(y,{type:"primary",onClick:O},{default:t(()=>[e(_,null,{default:t(()=>[e(x(Z))]),_:1}),n[8]||(n[8]=m("搜索 ",-1))]),_:1}),e(y,{onClick:B},{default:t(()=>[e(_,null,{default:t(()=>[e(x(ee))]),_:1}),n[9]||(n[9]=m("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"]),X((k(),te(S,{data:I.value,border:"",stripe:"","row-key":"userId","expand-row-keys":v.value,onExpandChange:P},{default:t(()=>[e(d,{type:"expand"},{default:t(({row:a})=>[a.info&&a.info.length>0?(k(),D("div",de,[e(S,{data:a.info,border:"",size:"small"},{default:t(()=>[e(d,{label:"被邀请用户","min-width":"150"},{default:t(({row:r})=>[u("div",re,[e(V,{src:r.headimg,size:28},{default:t(()=>[e(_,null,{default:t(()=>[e(x(E))]),_:1})]),_:1},8,["src"]),u("span",null,c(r.nickname||r.uid||"-"),1)])]),_:1}),e(d,{label:"手机号",prop:"mobile",width:"130"},{default:t(({row:r})=>[m(c(r.mobile||"-"),1)]),_:1}),e(d,{label:"订单数",prop:"orderCount",align:"center",width:"80"}),e(d,{label:"消费金额",align:"right",width:"120"},{default:t(({row:r})=>{var T;return[u("span",ue,"¥"+c(((T=r.totalPrice)==null?void 0:T.toFixed(2))||"0.00"),1)]}),_:1}),e(d,{label:"注册时间",width:"180"},{default:t(({row:r})=>[m(c(M(r.createdAt)),1)]),_:1})]),_:1},8,["data"])])):(k(),D("div",ce,[e($,{description:"暂无被邀请用户数据","image-size":60})]))]),_:1}),e(d,{label:"排名",align:"center",width:"70"},{default:t(({row:a})=>[u("span",{class:ae(L(a.index))},c(a.index),3)]),_:1}),e(d,{label:"邀请人信息","min-width":"180"},{default:t(({row:a})=>[u("div",pe,[e(V,{src:a.headimg,size:40},{default:t(()=>[e(_,null,{default:t(()=>[e(x(E))]),_:1})]),_:1},8,["src"]),u("div",_e,[u("div",me,c(a.nickname||"-"),1),u("div",fe,"UID: "+c(a.uid||"-"),1)])])]),_:1}),e(d,{label:"邀请人数",align:"center",width:"100"},{default:t(({row:a})=>[e(q,{type:"primary"},{default:t(()=>[m(c(a.inviteNumber||0),1)]),_:2},1024)]),_:1}),e(d,{label:"绑定手机数",align:"center",width:"100"},{default:t(({row:a})=>[m(c(a.countMobile||0),1)]),_:1}),e(d,{label:"消费人数",align:"center",width:"100"},{default:t(({row:a})=>[m(c(a.sumOrder||0),1)]),_:1}),e(d,{label:"消费总金额",align:"right",width:"120"},{default:t(({row:a})=>{var r;return[u("span",ve,"¥"+c(((r=a.sumPrice)==null?void 0:r.toFixed(2))||"0.00"),1)]}),_:1})]),_:1},8,["data","expand-row-keys"])),[[K,C.value]]),u("div",ge,[e(A,{"current-page":l.page,"onUpdate:currentPage":n[4]||(n[4]=a=>l.page=a),"page-size":l.pageSize,"onUpdate:pageSize":n[5]||(n[5]=a=>l.pageSize=a),"page-sizes":[20,50,100],total:U.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:N,onCurrentChange:F},null,8,["current-page","page-size","total"])])]),_:1})])}}}),we=ne(he,[["__scopeId","data-v-b59834ed"]]);export{we as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
.page-container[data-v-8fa6f389]{padding:0}.card-header[data-v-8fa6f389]{display:flex;justify-content:space-between;align-items:center}
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{d as x,r as s,a as b,o as B,g as r,c as k,k as M,e as n,w as d,b as g,t as N,l as F,B as R,C as T,E as f,_ as q}from"./index-VHOuw44X.js";import A from"./DiamondSearchForm-D0SzMwyO.js";import I from"./DiamondTable-D4OvYFYG.js";import{D as L,g as U,d as $,u as j}from"./DiamondFormDialog-BaxVtvLo.js";import"./RewardConfigInput-CwV_JCBE.js";const G={class:"page-container"},H={class:"card-header"},J=x({__name:"list",setup(K){const c=s(!1),p=s([]),m=s(0),a=b({page:1,pageSize:20}),l=s(!1),u=s(!1),i=s(null),t=async()=>{c.value=!0;try{const e=await U(a);p.value=e.data.list,m.value=e.data.total}finally{c.value=!1}},v=e=>{a.name=e.name,a.status=e.status,a.page=1,t()},_=()=>{a.name=void 0,a.status=void 0,a.page=1,t()},h=e=>{a.page=e,t()},D=e=>{a.pageSize=e,a.page=1,t()},S=()=>{u.value=!1,i.value=null,l.value=!0},y=e=>{u.value=!0,i.value={...e},l.value=!0},C=async e=>{try{await T.confirm(`确定要删除商品 "${e.name}" 吗?删除后不可恢复!`,"删除确认",{type:"warning"}),await $(e.id),f.success("删除成功"),t()}catch{}},z=async(e,o)=>{try{await j(e.id,o),f.success("状态更新成功"),t()}catch{t()}};return B(()=>{t()}),(e,o)=>{const E=r("el-icon"),P=r("el-button"),V=r("el-card");return M(),k("div",G,[n(V,null,{header:d(()=>[g("div",H,[o[2]||(o[2]=g("span",null,"钻石商品管理",-1)),n(P,{type:"primary",onClick:S},{default:d(()=>[n(E,null,{default:d(()=>[n(F(R))]),_:1}),o[1]||(o[1]=N("新增商品 ",-1))]),_:1})])]),default:d(()=>[n(A,{onSearch:v,onReset:_}),n(I,{data:p.value,loading:c.value,total:m.value,page:a.page,"page-size":a.pageSize,onPageChange:h,onSizeChange:D,onEdit:y,onDelete:C,onStatusChange:z},null,8,["data","loading","total","page","page-size"])]),_:1}),n(L,{modelValue:l.value,"onUpdate:modelValue":o[0]||(o[0]=w=>l.value=w),product:i.value,"is-edit":u.value,onSuccess:t},null,8,["modelValue","product","is-edit"])])}}}),Z=q(J,[["__scopeId","data-v-8fa6f389"]]);export{Z as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as x,r as s,a as L,o as k,g as p,c as z,k as I,e as n,w as l,b as _,t as N,l as R,U as T,E as v,_ as U}from"./index-C69OfkED.js";import E from"./OrderListSearchForm-CZ9N0DCl.js";import j from"./OrderListTable-Ct23_mdL.js";import B from"./OrderDetailDialog-C0zPMWCM.js";import{a as P,b as M}from"./order-Bq5-e0yY.js";const q={class:"page-container"},F={class:"card-header"},$=x({__name:"list",setup(A){const d=s(!1),m=s([]),g=s(0),i=s(!1),e=L({page:1,pageSize:20}),c=s(!1),u=s(null),r=async()=>{d.value=!0;try{const a=await P(e);m.value=a.data.list,g.value=a.data.total}catch(a){console.error("获取综合订单列表失败:",a),v.error("获取综合订单列表失败")}finally{d.value=!1}},f=a=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,e.accountType=void 0,e.accountStatus=void 0,Object.assign(e,a),e.page=1,r()},h=()=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,e.accountType=void 0,e.accountStatus=void 0,e.page=1,r()},b=a=>{e.page=a,r()},D=a=>{e.pageSize=a,e.page=1,r()},y=a=>{u.value=a.id,c.value=!0},C=()=>{u.value=null},S=async()=>{i.value=!0;try{const a=await M({userId:e.userId,mobile:e.mobile,orderNum:e.orderNum,startDate:e.startDate,endDate:e.endDate,status:e.status,accountType:e.accountType,accountStatus:e.accountStatus}),t=window.URL.createObjectURL(a),o=document.createElement("a");o.href=t,o.download=`综合订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(t),v.success("导出成功")}catch(a){console.error("导出失败:",a),v.error("导出失败")}finally{i.value=!1}};return k(()=>{r()}),(a,t)=>{const o=p("el-icon"),w=p("el-button"),O=p("el-card");return I(),z("div",q,[n(O,null,{header:l(()=>[_("div",F,[t[2]||(t[2]=_("span",null,"综合订单",-1)),n(w,{type:"primary",onClick:S,loading:i.value},{default:l(()=>[n(o,null,{default:l(()=>[n(R(T))]),_:1}),t[1]||(t[1]=N("导出 ",-1))]),_:1},8,["loading"])])]),default:l(()=>[n(E,{onSearch:f,onReset:h}),n(j,{data:m.value,loading:d.value,total:g.value,page:e.page,"page-size":e.pageSize,onPageChange:b,onSizeChange:D,onViewDetail:y},null,8,["data","loading","total","page","page-size"])]),_:1}),n(B,{modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=V=>c.value=V),"order-id":u.value,onClose:C},null,8,["modelValue","order-id"])])}}}),W=U($,[["__scopeId","data-v-2b0d52a1"]]);export{W as default};
|
||||
import{d as x,r as s,a as L,o as k,g as p,c as z,k as I,e as n,w as l,b as _,t as N,l as R,U as T,E as v,_ as U}from"./index-VHOuw44X.js";import E from"./OrderListSearchForm-Dill1qa-.js";import j from"./OrderListTable-f0erg_bY.js";import B from"./OrderDetailDialog-DiTfbMD2.js";import{h as P,i as M}from"./order-nzz6w9AQ.js";const q={class:"page-container"},F={class:"card-header"},$=x({__name:"list",setup(A){const d=s(!1),m=s([]),g=s(0),i=s(!1),e=L({page:1,pageSize:20}),c=s(!1),u=s(null),r=async()=>{d.value=!0;try{const a=await P(e);m.value=a.data.list,g.value=a.data.total}catch(a){console.error("获取综合订单列表失败:",a),v.error("获取综合订单列表失败")}finally{d.value=!1}},f=a=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,e.accountType=void 0,e.accountStatus=void 0,Object.assign(e,a),e.page=1,r()},h=()=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,e.accountType=void 0,e.accountStatus=void 0,e.page=1,r()},b=a=>{e.page=a,r()},D=a=>{e.pageSize=a,e.page=1,r()},y=a=>{u.value=a.id,c.value=!0},C=()=>{u.value=null},S=async()=>{i.value=!0;try{const a=await M({userId:e.userId,mobile:e.mobile,orderNum:e.orderNum,startDate:e.startDate,endDate:e.endDate,status:e.status,accountType:e.accountType,accountStatus:e.accountStatus}),t=window.URL.createObjectURL(a),o=document.createElement("a");o.href=t,o.download=`综合订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(t),v.success("导出成功")}catch(a){console.error("导出失败:",a),v.error("导出失败")}finally{i.value=!1}};return k(()=>{r()}),(a,t)=>{const o=p("el-icon"),w=p("el-button"),O=p("el-card");return I(),z("div",q,[n(O,null,{header:l(()=>[_("div",F,[t[2]||(t[2]=_("span",null,"综合订单",-1)),n(w,{type:"primary",onClick:S,loading:i.value},{default:l(()=>[n(o,null,{default:l(()=>[n(R(T))]),_:1}),t[1]||(t[1]=N("导出 ",-1))]),_:1},8,["loading"])])]),default:l(()=>[n(E,{onSearch:f,onReset:h}),n(j,{data:m.value,loading:d.value,total:g.value,page:e.page,"page-size":e.pageSize,onPageChange:b,onSizeChange:D,onViewDetail:y},null,8,["data","loading","total","page","page-size"])]),_:1}),n(B,{modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=V=>c.value=V),"order-id":u.value,onClose:C},null,8,["modelValue","order-id"])])}}}),W=U($,[["__scopeId","data-v-2b0d52a1"]]);export{W as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{T as r}from"./index-C69OfkED.js";var t=(e=>(e[e.Unpaid=0]="Unpaid",e[e.Paid=1]="Paid",e[e.Cancelled=2]="Cancelled",e))(t||{});const l={0:"待支付",1:"已支付",2:"已取消"};var s=(e=>(e[e.Unpaid=0]="Unpaid",e[e.Pending=1]="Pending",e[e.Shipped=2]="Shipped",e[e.Received=3]="Received",e[e.Cancelled=4]="Cancelled",e))(s||{}),i=(e=>(e[e.Pending=0]="Pending",e[e.Recovered=1]="Recovered",e[e.Shipped=2]="Shipped",e))(i||{}),d=(e=>(e[e.Unpaid=0]="Unpaid",e[e.WeChat=1]="WeChat",e[e.Alipay=2]="Alipay",e))(d||{});const p={0:"正常",1:"推广",2:"测试"},u={0:"正常",1:"封号"},n="/admin/business/orders";function a(e){return r({url:n,method:"get",params:e})}function h(e){return r({url:`${n}/${e}`,method:"get"})}function g(e){return r({url:`${n}/export`,method:"get",params:e,responseType:"blob"})}function $(e){return r({url:`${n}/stuck`,method:"get",params:e})}function f(e){return r({url:`${n}/shipping`,method:"get",params:e})}function m(e){return r({url:`${n}/shipping/${e}`,method:"get"})}function v(e,o){return r({url:`${n}/${e}/ship`,method:"put",data:o})}function b(e){return r({url:`${n}/${e}/ship`,method:"delete"})}function x(e){return r({url:`${n}/shipping/export`,method:"get",params:e,responseType:"blob"})}function R(e){return r({url:`${n}/shipping/stats`,method:"get",params:e})}function C(e){return r({url:`${n}/recovery`,method:"get",params:e})}function U(e){return r({url:`${n}/recovery/export`,method:"get",params:e,responseType:"blob"})}function A(e){return r({url:`${n}/list`,method:"get",params:e})}function O(e){return r({url:`${n}/list/export`,method:"get",params:e,responseType:"blob"})}export{p as A,t as O,d as P,s as S,A as a,O as b,l as c,u as d,g as e,C as f,a as g,U as h,h as i,i as j,m as k,f as l,R as m,b as n,x as o,$ as p,v as s};
|
||||
import{D as r}from"./index-VHOuw44X.js";var t=(e=>(e[e.Unpaid=0]="Unpaid",e[e.Paid=1]="Paid",e[e.Cancelled=2]="Cancelled",e))(t||{});const l={0:"待支付",1:"已支付",2:"已取消"};var s=(e=>(e[e.Unpaid=0]="Unpaid",e[e.Pending=1]="Pending",e[e.Shipped=2]="Shipped",e[e.Received=3]="Received",e[e.Cancelled=4]="Cancelled",e))(s||{}),i=(e=>(e[e.Pending=0]="Pending",e[e.Recovered=1]="Recovered",e[e.Shipped=2]="Shipped",e))(i||{}),d=(e=>(e[e.Unpaid=0]="Unpaid",e[e.WeChat=1]="WeChat",e[e.Alipay=2]="Alipay",e))(d||{});const p={0:"正常",1:"推广",2:"测试"},u={0:"正常",1:"封号"},n="/admin/business/orders";function a(e){return r({url:n,method:"get",params:e})}function h(e){return r({url:`${n}/${e}`,method:"get"})}function g(e){return r({url:`${n}/export`,method:"get",params:e,responseType:"blob"})}function $(e){return r({url:`${n}/stuck`,method:"get",params:e})}function f(e){return r({url:`${n}/shipping`,method:"get",params:e})}function m(e){return r({url:`${n}/shipping/${e}`,method:"get"})}function v(e,o){return r({url:`${n}/${e}/ship`,method:"put",data:o})}function b(e){return r({url:`${n}/${e}/ship`,method:"delete"})}function x(e){return r({url:`${n}/shipping/export`,method:"get",params:e,responseType:"blob"})}function R(e){return r({url:`${n}/shipping/stats`,method:"get",params:e})}function C(e){return r({url:`${n}/recovery`,method:"get",params:e})}function U(e){return r({url:`${n}/recovery/export`,method:"get",params:e,responseType:"blob"})}function A(e){return r({url:`${n}/list`,method:"get",params:e})}function O(e){return r({url:`${n}/list/export`,method:"get",params:e,responseType:"blob"})}export{p as A,t as O,d as P,s as S,h as a,i as b,l as c,u as d,g as e,m as f,a as g,A as h,O as i,C as j,U as k,f as l,R as m,b as n,x as o,$ as p,v as s};
|
||||
|
|
@ -1 +1 @@
|
|||
import{T as s}from"./index-C69OfkED.js";function r(){return s({url:"/admin/permissions",method:"get"})}function t(){return s({url:"/admin/permissions/by-module",method:"get"})}function o(e){return s({url:"/admin/permissions",method:"post",data:e})}function m(e,i){return s({url:`/admin/permissions/${e}`,method:"put",data:i})}function u(e){return s({url:`/admin/permissions/${e}`,method:"delete"})}export{r as a,o as c,u as d,t as g,m as u};
|
||||
import{D as s}from"./index-VHOuw44X.js";function r(){return s({url:"/admin/permissions",method:"get"})}function t(){return s({url:"/admin/permissions/by-module",method:"get"})}function o(e){return s({url:"/admin/permissions",method:"post",data:e})}function m(e,i){return s({url:`/admin/permissions/${e}`,method:"put",data:i})}function u(e){return s({url:`/admin/permissions/${e}`,method:"delete"})}export{r as a,o as c,u as d,t as g,m as u};
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{d as O,r as v,a as Y,o as N,g as c,H as Z,c as $,k as U,e as t,w as a,I as q,b as u,t as p,l as C,J as H,s as J,z as A,m as G,x as r,S as K,U as Q,E as V,_ as W}from"./index-C69OfkED.js";import{r as X}from"./user-CpNQ-zyC.js";const ee={class:"page-container"},te={class:"card-header"},ae={class:"user-info"},le={class:"user-detail"},oe={class:"nickname"},ne={class:"uid"},se={class:"mobile"},ie={class:"money-text"},de={class:"money-text"},re={class:"money-text"},ue={class:"money-text"},ce={class:"money-text"},_e={class:"money-text"},pe={class:"pagination-container"},ge=O({__name:"profit-loss",setup(fe){const D=v(!1),I=v([]),z=v(0),S=v(!1),g=v(null),l=Y({userId:void 0,uid:void 0,startTime:void 0,endTime:void 0,page:1,pageSize:20}),T=i=>i>0?"profit-positive":i<0?"profit-negative":"",h=async()=>{D.value=!0;try{g.value&&g.value.length===2?(l.startTime=g.value[0],l.endTime=g.value[1]):(l.startTime=void 0,l.endTime=void 0);const i=await X(l);I.value=i.data.list,z.value=i.data.total}catch(i){console.error("获取盈亏列表失败:",i)}finally{D.value=!1}},L=()=>{l.page=1,h()},B=()=>{l.userId=void 0,l.uid=void 0,g.value=null,l.startTime=void 0,l.endTime=void 0,l.page=1,h()},R=i=>{l.page=i,h()},j=i=>{l.pageSize=i,l.page=1,h()},E=async()=>{S.value=!0;try{const i=I.value.map(n=>{var m,x,d,w,M,F,k;return{用户ID:n.userId,UID:n.uid||"",昵称:n.nickname||"",手机号:n.mobile||"",账户余额:((m=n.money)==null?void 0:m.toFixed(2))||"0.00",积分:n.integral||0,钻石:n.money2||0,订单数:n.orderCount||0,订单总额:((x=n.orderZheTotal)==null?void 0:x.toFixed(2))||"0.00",RMB支付:((d=n.money1)==null?void 0:d.toFixed(2))||"0.00",钻石支付:n.money2Pay||0,用户支付:((w=n.useMoney)==null?void 0:w.toFixed(2))||"0.00",发货金额:((M=n.fhMoney)==null?void 0:M.toFixed(2))||"0.00",背包金额:((F=n.bbMoney)==null?void 0:F.toFixed(2))||"0.00",剩余达达券:n.syMoney||0,盈亏金额:((k=n.yueMoney)==null?void 0:k.toFixed(2))||"0.00",盈亏状态:n.profitStatus||""}}),o=Object.keys(i[0]||{}),f=[o.join(","),...i.map(n=>o.map(m=>`"${n[m]}"`).join(","))].join(`
|
||||
`),y="\uFEFF",b=new Blob([y+f],{type:"text/csv;charset=utf-8;"}),_=document.createElement("a");_.href=URL.createObjectURL(b),_.download=`用户盈亏统计_${new Date().toISOString().slice(0,10)}.csv`,_.click(),URL.revokeObjectURL(_.href),V.success("导出成功")}catch(i){console.error("导出失败:",i),V.error("导出失败")}finally{S.value=!1}};return N(()=>{h()}),(i,o)=>{const f=c("el-icon"),y=c("el-button"),b=c("el-input"),_=c("el-form-item"),n=c("el-date-picker"),m=c("el-form"),x=c("el-avatar"),d=c("el-table-column"),w=c("el-tag"),M=c("el-table"),F=c("el-pagination"),k=c("el-card"),P=Z("loading");return U(),$("div",ee,[t(k,null,{header:a(()=>[u("div",te,[o[6]||(o[6]=u("span",null,"用户盈亏统计",-1)),t(y,{type:"primary",onClick:E,loading:S.value},{default:a(()=>[t(f,null,{default:a(()=>[t(C(Q))]),_:1}),o[5]||(o[5]=p("导出Excel ",-1))]),_:1},8,["loading"])])]),default:a(()=>[t(m,{model:l,inline:"",class:"search-form"},{default:a(()=>[t(_,{label:"用户ID"},{default:a(()=>[t(b,{modelValue:l.userId,"onUpdate:modelValue":o[0]||(o[0]=e=>l.userId=e),placeholder:"请输入用户ID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),t(_,{label:"UID"},{default:a(()=>[t(b,{modelValue:l.uid,"onUpdate:modelValue":o[1]||(o[1]=e=>l.uid=e),placeholder:"请输入UID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),t(_,{label:"时间范围"},{default:a(()=>[t(n,{modelValue:g.value,"onUpdate:modelValue":o[2]||(o[2]=e=>g.value=e),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),t(_,null,{default:a(()=>[t(y,{type:"primary",onClick:L},{default:a(()=>[t(f,null,{default:a(()=>[t(C(H))]),_:1}),o[7]||(o[7]=p("搜索 ",-1))]),_:1}),t(y,{onClick:B},{default:a(()=>[t(f,null,{default:a(()=>[t(C(J))]),_:1}),o[8]||(o[8]=p("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"]),q((U(),A(M,{data:I.value,border:"",stripe:""},{default:a(()=>[t(d,{label:"用户信息","min-width":"180"},{default:a(({row:e})=>[u("div",ae,[t(x,{src:e.headimg,size:40},{default:a(()=>[t(f,null,{default:a(()=>[t(C(G))]),_:1})]),_:1},8,["src"]),u("div",le,[u("div",oe,r(e.nickname||"-"),1),u("div",ne,"UID: "+r(e.uid||"-"),1),u("div",se,r(e.mobile||"-"),1)])])]),_:1}),t(d,{label:"账户余额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",ie,"¥"+r(((s=e.money)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"积分",align:"right",width:"80"},{default:a(({row:e})=>[p(r(e.integral||0),1)]),_:1}),t(d,{label:"钻石",align:"right",width:"80"},{default:a(({row:e})=>[p(r(e.money2||0),1)]),_:1}),t(d,{label:"订单数",align:"center",width:"80"},{default:a(({row:e})=>[p(r(e.orderCount||0),1)]),_:1}),t(d,{label:"订单总额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",de,"¥"+r(((s=e.orderZheTotal)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"RMB支付",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",re,"¥"+r(((s=e.money1)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"钻石支付",align:"right",width:"100"},{default:a(({row:e})=>[p(r(e.money2Pay||0),1)]),_:1}),t(d,{label:"用户支付",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",ue,"¥"+r(((s=e.useMoney)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"发货金额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",ce,"¥"+r(((s=e.fhMoney)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"背包金额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",_e,"¥"+r(((s=e.bbMoney)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"剩余达达券",align:"right",width:"100"},{default:a(({row:e})=>[p(r(e.syMoney||0),1)]),_:1}),t(d,{label:"盈亏金额",align:"right",width:"120"},{default:a(({row:e})=>{var s;return[u("span",{class:K(T(e.yueMoney))},r(e.yueMoney>=0?"+":"")+"¥"+r(((s=e.yueMoney)==null?void 0:s.toFixed(2))||"0.00"),3)]}),_:1}),t(d,{label:"盈亏状态",align:"center",width:"100"},{default:a(({row:e})=>[t(w,{type:e.profitStatus==="盈利"?"success":"danger"},{default:a(()=>[p(r(e.profitStatus||"-"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[P,D.value]]),u("div",pe,[t(F,{"current-page":l.page,"onUpdate:currentPage":o[3]||(o[3]=e=>l.page=e),"page-size":l.pageSize,"onUpdate:pageSize":o[4]||(o[4]=e=>l.pageSize=e),"page-sizes":[20,50,100],total:z.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:j,onCurrentChange:R},null,8,["current-page","page-size","total"])])]),_:1})])}}}),ye=W(ge,[["__scopeId","data-v-76180e5c"]]);export{ye as default};
|
||||
import{d as O,r as v,a as Y,o as N,g as c,J as Z,c as $,k as U,e as t,w as a,K as q,b as u,t as p,l as C,I as J,s as K,z as A,m as G,x as r,T as H,U as Q,E as T,_ as W}from"./index-VHOuw44X.js";import{r as X}from"./user-CKTn20xm.js";const ee={class:"page-container"},te={class:"card-header"},ae={class:"user-info"},le={class:"user-detail"},oe={class:"nickname"},ne={class:"uid"},se={class:"mobile"},ie={class:"money-text"},de={class:"money-text"},re={class:"money-text"},ue={class:"money-text"},ce={class:"money-text"},_e={class:"money-text"},pe={class:"pagination-container"},ge=O({__name:"profit-loss",setup(fe){const D=v(!1),I=v([]),S=v(0),z=v(!1),g=v(null),l=Y({userId:void 0,uid:void 0,startTime:void 0,endTime:void 0,page:1,pageSize:20}),V=i=>i>0?"profit-positive":i<0?"profit-negative":"",h=async()=>{D.value=!0;try{g.value&&g.value.length===2?(l.startTime=g.value[0],l.endTime=g.value[1]):(l.startTime=void 0,l.endTime=void 0);const i=await X(l);I.value=i.data.list,S.value=i.data.total}catch(i){console.error("获取盈亏列表失败:",i)}finally{D.value=!1}},L=()=>{l.page=1,h()},B=()=>{l.userId=void 0,l.uid=void 0,g.value=null,l.startTime=void 0,l.endTime=void 0,l.page=1,h()},R=i=>{l.page=i,h()},j=i=>{l.pageSize=i,l.page=1,h()},E=async()=>{z.value=!0;try{const i=I.value.map(n=>{var m,x,d,w,M,F,k;return{用户ID:n.userId,UID:n.uid||"",昵称:n.nickname||"",手机号:n.mobile||"",账户余额:((m=n.money)==null?void 0:m.toFixed(2))||"0.00",积分:n.integral||0,钻石:n.money2||0,订单数:n.orderCount||0,订单总额:((x=n.orderZheTotal)==null?void 0:x.toFixed(2))||"0.00",RMB支付:((d=n.money1)==null?void 0:d.toFixed(2))||"0.00",钻石支付:n.money2Pay||0,用户支付:((w=n.useMoney)==null?void 0:w.toFixed(2))||"0.00",发货金额:((M=n.fhMoney)==null?void 0:M.toFixed(2))||"0.00",背包金额:((F=n.bbMoney)==null?void 0:F.toFixed(2))||"0.00",剩余达达券:n.syMoney||0,盈亏金额:((k=n.yueMoney)==null?void 0:k.toFixed(2))||"0.00",盈亏状态:n.profitStatus||""}}),o=Object.keys(i[0]||{}),f=[o.join(","),...i.map(n=>o.map(m=>`"${n[m]}"`).join(","))].join(`
|
||||
`),y="\uFEFF",b=new Blob([y+f],{type:"text/csv;charset=utf-8;"}),_=document.createElement("a");_.href=URL.createObjectURL(b),_.download=`用户盈亏统计_${new Date().toISOString().slice(0,10)}.csv`,_.click(),URL.revokeObjectURL(_.href),T.success("导出成功")}catch(i){console.error("导出失败:",i),T.error("导出失败")}finally{z.value=!1}};return N(()=>{h()}),(i,o)=>{const f=c("el-icon"),y=c("el-button"),b=c("el-input"),_=c("el-form-item"),n=c("el-date-picker"),m=c("el-form"),x=c("el-avatar"),d=c("el-table-column"),w=c("el-tag"),M=c("el-table"),F=c("el-pagination"),k=c("el-card"),P=Z("loading");return U(),$("div",ee,[t(k,null,{header:a(()=>[u("div",te,[o[6]||(o[6]=u("span",null,"用户盈亏统计",-1)),t(y,{type:"primary",onClick:E,loading:z.value},{default:a(()=>[t(f,null,{default:a(()=>[t(C(Q))]),_:1}),o[5]||(o[5]=p("导出Excel ",-1))]),_:1},8,["loading"])])]),default:a(()=>[t(m,{model:l,inline:"",class:"search-form"},{default:a(()=>[t(_,{label:"用户ID"},{default:a(()=>[t(b,{modelValue:l.userId,"onUpdate:modelValue":o[0]||(o[0]=e=>l.userId=e),placeholder:"请输入用户ID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),t(_,{label:"UID"},{default:a(()=>[t(b,{modelValue:l.uid,"onUpdate:modelValue":o[1]||(o[1]=e=>l.uid=e),placeholder:"请输入UID",clearable:"",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),t(_,{label:"时间范围"},{default:a(()=>[t(n,{modelValue:g.value,"onUpdate:modelValue":o[2]||(o[2]=e=>g.value=e),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),t(_,null,{default:a(()=>[t(y,{type:"primary",onClick:L},{default:a(()=>[t(f,null,{default:a(()=>[t(C(J))]),_:1}),o[7]||(o[7]=p("搜索 ",-1))]),_:1}),t(y,{onClick:B},{default:a(()=>[t(f,null,{default:a(()=>[t(C(K))]),_:1}),o[8]||(o[8]=p("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"]),q((U(),A(M,{data:I.value,border:"",stripe:""},{default:a(()=>[t(d,{label:"用户信息","min-width":"180"},{default:a(({row:e})=>[u("div",ae,[t(x,{src:e.headimg,size:40},{default:a(()=>[t(f,null,{default:a(()=>[t(C(G))]),_:1})]),_:1},8,["src"]),u("div",le,[u("div",oe,r(e.nickname||"-"),1),u("div",ne,"UID: "+r(e.uid||"-"),1),u("div",se,r(e.mobile||"-"),1)])])]),_:1}),t(d,{label:"账户余额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",ie,"¥"+r(((s=e.money)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"积分",align:"right",width:"80"},{default:a(({row:e})=>[p(r(e.integral||0),1)]),_:1}),t(d,{label:"钻石",align:"right",width:"80"},{default:a(({row:e})=>[p(r(e.money2||0),1)]),_:1}),t(d,{label:"订单数",align:"center",width:"80"},{default:a(({row:e})=>[p(r(e.orderCount||0),1)]),_:1}),t(d,{label:"订单总额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",de,"¥"+r(((s=e.orderZheTotal)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"RMB支付",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",re,"¥"+r(((s=e.money1)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"钻石支付",align:"right",width:"100"},{default:a(({row:e})=>[p(r(e.money2Pay||0),1)]),_:1}),t(d,{label:"用户支付",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",ue,"¥"+r(((s=e.useMoney)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"发货金额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",ce,"¥"+r(((s=e.fhMoney)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"背包金额",align:"right",width:"100"},{default:a(({row:e})=>{var s;return[u("span",_e,"¥"+r(((s=e.bbMoney)==null?void 0:s.toFixed(2))||"0.00"),1)]}),_:1}),t(d,{label:"剩余达达券",align:"right",width:"100"},{default:a(({row:e})=>[p(r(e.syMoney||0),1)]),_:1}),t(d,{label:"盈亏金额",align:"right",width:"120"},{default:a(({row:e})=>{var s;return[u("span",{class:H(V(e.yueMoney))},r(e.yueMoney>=0?"+":"")+"¥"+r(((s=e.yueMoney)==null?void 0:s.toFixed(2))||"0.00"),3)]}),_:1}),t(d,{label:"盈亏状态",align:"center",width:"100"},{default:a(({row:e})=>[t(w,{type:e.profitStatus==="盈利"?"success":"danger"},{default:a(()=>[p(r(e.profitStatus||"-"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[P,D.value]]),u("div",pe,[t(F,{"current-page":l.page,"onUpdate:currentPage":o[3]||(o[3]=e=>l.page=e),"page-size":l.pageSize,"onUpdate:pageSize":o[4]||(o[4]=e=>l.pageSize=e),"page-sizes":[20,50,100],total:S.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:j,onCurrentChange:R},null,8,["current-page","page-size","total"])])]),_:1})])}}}),ye=W(ge,[["__scopeId","data-v-76180e5c"]]);export{ye as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as B,r as u,a as C,o as K,g as i,c as N,k as P,e as a,w as t,f as k,t as b,l as D,J as j,s as T,b as x,U as q,E as h,_ as F}from"./index-C69OfkED.js";import J from"./RecoveryOrderTable-DE101FO4.js";import $ from"./RecoveryDetailDialog-Df1_CpS_.js";import{f as A,h as G}from"./order-Bq5-e0yY.js";const H={class:"page-container"},Q={class:"card-header"},W=B({__name:"recovery",setup(X){const m=u(!1),V=u([]),w=u(0),v=u(!1),n=C({userId:"",mobile:""}),d=u(null),e=C({page:1,pageSize:20}),f=u(!1),_=u(null),c=async()=>{m.value=!0;try{const o=await A(e);V.value=o.data.list,w.value=o.data.total}catch(o){console.error("获取回收订单列表失败:",o),h.error("获取回收订单列表失败")}finally{m.value=!1}},g=()=>{e.userId=void 0,e.mobile=void 0,e.startDate=void 0,e.endDate=void 0,n.userId&&(e.userId=parseInt(n.userId)),n.mobile&&(e.mobile=n.mobile),d.value&&d.value.length===2&&(e.startDate=d.value[0],e.endDate=d.value[1]),e.page=1,c()},R=()=>{n.userId="",n.mobile="",d.value=null,e.userId=void 0,e.mobile=void 0,e.startDate=void 0,e.endDate=void 0,e.page=1,c()},U=o=>{e.page=o,c()},S=o=>{e.pageSize=o,e.page=1,c()},z=o=>{_.value=o,f.value=!0},L=()=>{_.value=null},O=async()=>{v.value=!0;try{const o=await G({userId:e.userId,mobile:e.mobile,startDate:e.startDate,endDate:e.endDate}),l=window.URL.createObjectURL(o),r=document.createElement("a");r.href=l,r.download=`回收订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(l),h.success("导出成功")}catch(o){console.error("导出失败:",o),h.error("导出失败")}finally{v.value=!1}};return K(()=>{c()}),(o,l)=>{const r=i("el-icon"),y=i("el-button"),I=i("el-input"),p=i("el-form-item"),E=i("el-date-picker"),M=i("el-form"),Y=i("el-card");return P(),N("div",H,[a(Y,null,{header:t(()=>[x("div",Q,[l[5]||(l[5]=x("span",null,"回收订单",-1)),a(y,{type:"primary",onClick:O,loading:v.value},{default:t(()=>[a(r,null,{default:t(()=>[a(D(q))]),_:1}),l[4]||(l[4]=b("导出 ",-1))]),_:1},8,["loading"])])]),default:t(()=>[a(M,{inline:!0,model:n,class:"search-form"},{default:t(()=>[a(p,{label:"用户ID"},{default:t(()=>[a(I,{modelValue:n.userId,"onUpdate:modelValue":l[0]||(l[0]=s=>n.userId=s),placeholder:"用户ID/UID",clearable:"",onKeyup:k(g,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),a(p,{label:"手机号"},{default:t(()=>[a(I,{modelValue:n.mobile,"onUpdate:modelValue":l[1]||(l[1]=s=>n.mobile=s),placeholder:"手机号",clearable:"",onKeyup:k(g,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),a(p,{label:"回收时间"},{default:t(()=>[a(E,{modelValue:d.value,"onUpdate:modelValue":l[2]||(l[2]=s=>d.value=s),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),a(p,null,{default:t(()=>[a(y,{type:"primary",onClick:g},{default:t(()=>[a(r,null,{default:t(()=>[a(D(j))]),_:1}),l[6]||(l[6]=b("查询 ",-1))]),_:1}),a(y,{onClick:R},{default:t(()=>[a(r,null,{default:t(()=>[a(D(T))]),_:1}),l[7]||(l[7]=b("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"]),a(J,{data:V.value,loading:m.value,total:w.value,page:e.page,"page-size":e.pageSize,onPageChange:U,onSizeChange:S,onViewDetail:z},null,8,["data","loading","total","page","page-size"])]),_:1}),a($,{modelValue:f.value,"onUpdate:modelValue":l[3]||(l[3]=s=>f.value=s),"recovery-data":_.value,onClose:L},null,8,["modelValue","recovery-data"])])}}}),oe=F(W,[["__scopeId","data-v-e1f725cf"]]);export{oe as default};
|
||||
import{d as j,r as u,a as C,o as B,g as i,c as K,k as N,e as a,w as t,f as k,t as b,l as D,I as P,s as T,b as x,U as q,E as h,_ as F}from"./index-VHOuw44X.js";import $ from"./RecoveryOrderTable-BlTrW-eP.js";import A from"./RecoveryDetailDialog-DhlwpFYG.js";import{j as G,k as H}from"./order-nzz6w9AQ.js";const J={class:"page-container"},Q={class:"card-header"},W=j({__name:"recovery",setup(X){const m=u(!1),I=u([]),V=u(0),v=u(!1),n=C({userId:"",mobile:""}),d=u(null),e=C({page:1,pageSize:20}),f=u(!1),_=u(null),c=async()=>{m.value=!0;try{const o=await G(e);I.value=o.data.list,V.value=o.data.total}catch(o){console.error("获取回收订单列表失败:",o),h.error("获取回收订单列表失败")}finally{m.value=!1}},g=()=>{e.userId=void 0,e.mobile=void 0,e.startDate=void 0,e.endDate=void 0,n.userId&&(e.userId=parseInt(n.userId)),n.mobile&&(e.mobile=n.mobile),d.value&&d.value.length===2&&(e.startDate=d.value[0],e.endDate=d.value[1]),e.page=1,c()},R=()=>{n.userId="",n.mobile="",d.value=null,e.userId=void 0,e.mobile=void 0,e.startDate=void 0,e.endDate=void 0,e.page=1,c()},U=o=>{e.page=o,c()},S=o=>{e.pageSize=o,e.page=1,c()},z=o=>{_.value=o,f.value=!0},L=()=>{_.value=null},O=async()=>{v.value=!0;try{const o=await H({userId:e.userId,mobile:e.mobile,startDate:e.startDate,endDate:e.endDate}),l=window.URL.createObjectURL(o),r=document.createElement("a");r.href=l,r.download=`回收订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(l),h.success("导出成功")}catch(o){console.error("导出失败:",o),h.error("导出失败")}finally{v.value=!1}};return B(()=>{c()}),(o,l)=>{const r=i("el-icon"),y=i("el-button"),w=i("el-input"),p=i("el-form-item"),E=i("el-date-picker"),M=i("el-form"),Y=i("el-card");return N(),K("div",J,[a(Y,null,{header:t(()=>[x("div",Q,[l[5]||(l[5]=x("span",null,"回收订单",-1)),a(y,{type:"primary",onClick:O,loading:v.value},{default:t(()=>[a(r,null,{default:t(()=>[a(D(q))]),_:1}),l[4]||(l[4]=b("导出 ",-1))]),_:1},8,["loading"])])]),default:t(()=>[a(M,{inline:!0,model:n,class:"search-form"},{default:t(()=>[a(p,{label:"用户ID"},{default:t(()=>[a(w,{modelValue:n.userId,"onUpdate:modelValue":l[0]||(l[0]=s=>n.userId=s),placeholder:"用户ID/UID",clearable:"",onKeyup:k(g,["enter"]),style:{width:"120px"}},null,8,["modelValue"])]),_:1}),a(p,{label:"手机号"},{default:t(()=>[a(w,{modelValue:n.mobile,"onUpdate:modelValue":l[1]||(l[1]=s=>n.mobile=s),placeholder:"手机号",clearable:"",onKeyup:k(g,["enter"]),style:{width:"140px"}},null,8,["modelValue"])]),_:1}),a(p,{label:"回收时间"},{default:t(()=>[a(E,{modelValue:d.value,"onUpdate:modelValue":l[2]||(l[2]=s=>d.value=s),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"240px"}},null,8,["modelValue"])]),_:1}),a(p,null,{default:t(()=>[a(y,{type:"primary",onClick:g},{default:t(()=>[a(r,null,{default:t(()=>[a(D(P))]),_:1}),l[6]||(l[6]=b("查询 ",-1))]),_:1}),a(y,{onClick:R},{default:t(()=>[a(r,null,{default:t(()=>[a(D(T))]),_:1}),l[7]||(l[7]=b("重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"]),a($,{data:I.value,loading:m.value,total:V.value,page:e.page,"page-size":e.pageSize,onPageChange:U,onSizeChange:S,onViewDetail:z},null,8,["data","loading","total","page","page-size"])]),_:1}),a(A,{modelValue:f.value,"onUpdate:modelValue":l[3]||(l[3]=s=>f.value=s),"recovery-data":_.value,onClose:L},null,8,["modelValue","recovery-data"])])}}}),oe=F(W,[["__scopeId","data-v-e1f725cf"]]);export{oe as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{T as s}from"./index-C69OfkED.js";function r(e){return s({url:"/admin/roles",method:"get",params:e})}function t(){return s({url:"/admin/roles/all",method:"get"})}function u(e){return s({url:"/admin/roles",method:"post",data:e})}function l(e,n){return s({url:`/admin/roles/${e}`,method:"put",data:n})}function i(e){return s({url:`/admin/roles/${e}`,method:"delete"})}function m(e){return s({url:`/admin/roles/${e}/menus`,method:"get"})}function d(e){return s({url:`/admin/roles/${e.roleId}/menus`,method:"put",data:{menuIds:e.menuIds}})}function a(e){return s({url:`/admin/roles/${e}/permissions`,method:"get"})}function c(e){return s({url:`/admin/roles/${e.roleId}/permissions`,method:"put",data:{permissionCodes:e.permissionCodes}})}export{m as a,d as b,u as c,i as d,a as e,c as f,r as g,t as h,l as u};
|
||||
import{D as s}from"./index-VHOuw44X.js";function r(e){return s({url:"/admin/roles",method:"get",params:e})}function t(){return s({url:"/admin/roles/all",method:"get"})}function u(e){return s({url:"/admin/roles",method:"post",data:e})}function l(e,n){return s({url:`/admin/roles/${e}`,method:"put",data:n})}function i(e){return s({url:`/admin/roles/${e}`,method:"delete"})}function m(e){return s({url:`/admin/roles/${e}/menus`,method:"get"})}function d(e){return s({url:`/admin/roles/${e.roleId}/menus`,method:"put",data:{menuIds:e.menuIds}})}function a(e){return s({url:`/admin/roles/${e}/permissions`,method:"get"})}function c(e){return s({url:`/admin/roles/${e.roleId}/permissions`,method:"put",data:{permissionCodes:e.permissionCodes}})}export{m as a,d as b,u as c,i as d,a as e,c as f,r as g,t as h,l as u};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as L,r as i,a as U,o as P,g as p,c as w,k as C,e as o,w as r,G as T,t as g,b as c,x as S,l as j,U as F,E as u,C as M,_ as q}from"./index-C69OfkED.js";import G from"./ShippingSearchForm-BNgeCKAw.js";import $ from"./ShippingOrderTable-B-_71pQL.js";import A from"./ShippingDetailDialog-C9Kxg0i_.js";import{l as H,m as J,n as K,o as Q}from"./order-Bq5-e0yY.js";import"./ShipDialog-P6910G7S.js";const W={class:"page-container"},X={class:"card-header"},Y={key:0,class:"stats-bar"},Z={class:"stats-value"},ee={class:"stats-value"},ae={class:"stats-value"},te=L({__name:"shipping",setup(oe){const m=i(!1),b=i([]),y=i(0),d=i(null),v=i(!1),e=U({page:1,pageSize:20}),h=i(!1),_=i(null),s=async()=>{m.value=!0;try{const[t,a]=await Promise.all([H(e),J(e)]);b.value=t.data.list,y.value=t.data.total,d.value=a.data}catch(t){console.error("获取发货订单列表失败:",t),u.error("获取发货订单列表失败")}finally{m.value=!1}},D=t=>{e.userId=void 0,e.mobile=void 0,e.sendNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,Object.assign(e,t),e.page=1,s()},x=()=>{e.userId=void 0,e.mobile=void 0,e.sendNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,e.page=1,s()},V=t=>{e.page=t,s()},z=t=>{e.pageSize=t,e.page=1,s()},k=t=>{_.value=t.id,h.value=!0},N=()=>{_.value=null},O=()=>{s()},R=async t=>{try{await M.confirm("确定要取消发货吗?取消后奖品将返回用户盒柜","取消发货确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await K(t.id),u.success("取消发货成功"),s()}catch(a){a!=="cancel"&&(console.error("取消发货失败:",a),u.error("取消发货失败"))}},I=async()=>{v.value=!0;try{const t=await Q({userId:e.userId,mobile:e.mobile,sendNum:e.sendNum,startDate:e.startDate,endDate:e.endDate,status:e.status}),a=window.URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=`发货订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(n),n.click(),document.body.removeChild(n),window.URL.revokeObjectURL(a),u.success("导出成功")}catch(t){console.error("导出失败:",t),u.error("导出失败")}finally{v.value=!1}};return P(()=>{s()}),(t,a)=>{const n=p("el-icon"),B=p("el-button"),f=p("el-tag"),E=p("el-card");return C(),w("div",W,[o(E,null,{header:r(()=>[c("div",X,[a[2]||(a[2]=c("span",null,"发货订单",-1)),o(B,{type:"primary",onClick:I,loading:v.value},{default:r(()=>[o(n,null,{default:r(()=>[o(j(F))]),_:1}),a[1]||(a[1]=g("导出 ",-1))]),_:1},8,["loading"])])]),default:r(()=>[o(G,{onSearch:D,onReset:x}),d.value?(C(),w("div",Y,[o(f,{type:"info",size:"large"},{default:r(()=>[a[3]||(a[3]=g(" 数据条数: ",-1)),c("span",Z,S(d.value.totalCount),1)]),_:1}),o(f,{type:"warning",size:"large"},{default:r(()=>{var l;return[a[4]||(a[4]=g(" 全部价值: ",-1)),c("span",ee,"¥"+S(((l=d.value.totalValue)==null?void 0:l.toFixed(2))||"0.00"),1)]}),_:1}),o(f,{type:"success",size:"large"},{default:r(()=>{var l;return[a[5]||(a[5]=g(" 本页总发货价值: ",-1)),c("span",ae,"¥"+S(((l=d.value.pageValue)==null?void 0:l.toFixed(2))||"0.00"),1)]}),_:1})])):T("",!0),o($,{data:b.value,loading:m.value,total:y.value,page:e.page,"page-size":e.pageSize,onPageChange:V,onSizeChange:z,onViewDetail:k,onCancelShip:R},null,8,["data","loading","total","page","page-size"])]),_:1}),o(A,{modelValue:h.value,"onUpdate:modelValue":a[0]||(a[0]=l=>h.value=l),"send-id":_.value,onClose:N,onShipped:O},null,8,["modelValue","send-id"])])}}}),ce=q(te,[["__scopeId","data-v-8bfb7245"]]);export{ce as default};
|
||||
import{d as L,r as i,a as U,o as P,g as p,c as w,k as C,e as o,w as r,H as T,t as g,b as c,x as S,l as j,U as F,E as u,C as M,_ as q}from"./index-VHOuw44X.js";import H from"./ShippingSearchForm-Q3wRnc_u.js";import $ from"./ShippingOrderTable-zR1O58Rt.js";import A from"./ShippingDetailDialog-DYFXa5c_.js";import{l as G,m as J,n as K,o as Q}from"./order-nzz6w9AQ.js";import"./ShipDialog-CxHhFfUJ.js";const W={class:"page-container"},X={class:"card-header"},Y={key:0,class:"stats-bar"},Z={class:"stats-value"},ee={class:"stats-value"},ae={class:"stats-value"},te=L({__name:"shipping",setup(oe){const m=i(!1),b=i([]),y=i(0),d=i(null),v=i(!1),e=U({page:1,pageSize:20}),h=i(!1),_=i(null),s=async()=>{m.value=!0;try{const[t,a]=await Promise.all([G(e),J(e)]);b.value=t.data.list,y.value=t.data.total,d.value=a.data}catch(t){console.error("获取发货订单列表失败:",t),u.error("获取发货订单列表失败")}finally{m.value=!1}},D=t=>{e.userId=void 0,e.mobile=void 0,e.sendNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,Object.assign(e,t),e.page=1,s()},x=()=>{e.userId=void 0,e.mobile=void 0,e.sendNum=void 0,e.startDate=void 0,e.endDate=void 0,e.status=void 0,e.page=1,s()},V=t=>{e.page=t,s()},z=t=>{e.pageSize=t,e.page=1,s()},k=t=>{_.value=t.id,h.value=!0},N=()=>{_.value=null},O=()=>{s()},R=async t=>{try{await M.confirm("确定要取消发货吗?取消后奖品将返回用户盒柜","取消发货确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await K(t.id),u.success("取消发货成功"),s()}catch(a){a!=="cancel"&&(console.error("取消发货失败:",a),u.error("取消发货失败"))}},I=async()=>{v.value=!0;try{const t=await Q({userId:e.userId,mobile:e.mobile,sendNum:e.sendNum,startDate:e.startDate,endDate:e.endDate,status:e.status}),a=window.URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=`发货订单_${new Date().toISOString().slice(0,10)}.csv`,document.body.appendChild(n),n.click(),document.body.removeChild(n),window.URL.revokeObjectURL(a),u.success("导出成功")}catch(t){console.error("导出失败:",t),u.error("导出失败")}finally{v.value=!1}};return P(()=>{s()}),(t,a)=>{const n=p("el-icon"),B=p("el-button"),f=p("el-tag"),E=p("el-card");return C(),w("div",W,[o(E,null,{header:r(()=>[c("div",X,[a[2]||(a[2]=c("span",null,"发货订单",-1)),o(B,{type:"primary",onClick:I,loading:v.value},{default:r(()=>[o(n,null,{default:r(()=>[o(j(F))]),_:1}),a[1]||(a[1]=g("导出 ",-1))]),_:1},8,["loading"])])]),default:r(()=>[o(H,{onSearch:D,onReset:x}),d.value?(C(),w("div",Y,[o(f,{type:"info",size:"large"},{default:r(()=>[a[3]||(a[3]=g(" 数据条数: ",-1)),c("span",Z,S(d.value.totalCount),1)]),_:1}),o(f,{type:"warning",size:"large"},{default:r(()=>{var l;return[a[4]||(a[4]=g(" 全部价值: ",-1)),c("span",ee,"¥"+S(((l=d.value.totalValue)==null?void 0:l.toFixed(2))||"0.00"),1)]}),_:1}),o(f,{type:"success",size:"large"},{default:r(()=>{var l;return[a[5]||(a[5]=g(" 本页总发货价值: ",-1)),c("span",ae,"¥"+S(((l=d.value.pageValue)==null?void 0:l.toFixed(2))||"0.00"),1)]}),_:1})])):T("",!0),o($,{data:b.value,loading:m.value,total:y.value,page:e.page,"page-size":e.pageSize,onPageChange:V,onSizeChange:z,onViewDetail:k,onCancelShip:R},null,8,["data","loading","total","page","page-size"])]),_:1}),o(A,{modelValue:h.value,"onUpdate:modelValue":a[0]||(a[0]=l=>h.value=l),"send-id":_.value,onClose:N,onShipped:O},null,8,["modelValue","send-id"])])}}}),ce=q(te,[["__scopeId","data-v-8bfb7245"]]);export{ce as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as O,r as n,a as w,o as x,g as d,c as B,k as p,e as t,w as s,z as v,b as m,l as I,V as N,E,_ as P}from"./index-C69OfkED.js";import M from"./OrderSearchForm-DMEEA2yd.js";import R from"./StuckOrderTable-DmgotYfy.js";import j from"./OrderDetailDialog-C0zPMWCM.js";import{p as q}from"./order-Bq5-e0yY.js";const F={class:"page-container"},L={class:"card-header"},T=O({__name:"stuck",setup(U){const r=n(!1),i=n([]),g=n(0),e=w({page:1,pageSize:20}),c=n(!1),u=n(null),l=async()=>{r.value=!0;try{const a=await q(e);i.value=a.data.list,g.value=a.data.total}catch(a){console.error("获取卡单订单列表失败:",a),E.error("获取卡单订单列表失败")}finally{r.value=!1}},_=a=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,Object.assign(e,a),e.page=1,l()},f=()=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.page=1,l()},h=a=>{e.page=a,l()},D=a=>{e.pageSize=a,e.page=1,l()},k=a=>{u.value=a.id,c.value=!0},S=()=>{u.value=null};return x(()=>{l()}),(a,o)=>{const z=d("el-icon"),C=d("el-tooltip"),V=d("el-empty"),y=d("el-card");return p(),B("div",F,[t(y,null,{header:s(()=>[m("div",L,[o[1]||(o[1]=m("span",null,"卡单订单",-1)),t(C,{content:"卡单订单是指支付成功但未发奖的异常订单",placement:"top"},{default:s(()=>[t(z,{class:"info-icon"},{default:s(()=>[t(I(N))]),_:1})]),_:1})])]),default:s(()=>[t(M,{onSearch:_,onReset:f}),!r.value&&i.value.length===0?(p(),v(V,{key:0,description:"暂无卡单订单","image-size":120},{description:s(()=>[...o[2]||(o[2]=[m("p",null,"当前没有支付成功但未发奖的异常订单",-1)])]),_:1})):(p(),v(R,{key:1,data:i.value,loading:r.value,total:g.value,page:e.page,"page-size":e.pageSize,onPageChange:h,onSizeChange:D,onViewDetail:k},null,8,["data","loading","total","page","page-size"]))]),_:1}),t(j,{modelValue:c.value,"onUpdate:modelValue":o[0]||(o[0]=b=>c.value=b),"order-id":u.value,onClose:S},null,8,["modelValue","order-id"])])}}}),Q=P(T,[["__scopeId","data-v-30cc634d"]]);export{Q as default};
|
||||
import{d as O,r as n,a as w,o as x,g as d,c as B,k as p,e as t,w as s,z as v,b as m,l as I,V as N,E,_ as P}from"./index-VHOuw44X.js";import M from"./OrderSearchForm-CEBZHo_s.js";import R from"./StuckOrderTable--ysJCgrm.js";import j from"./OrderDetailDialog-DiTfbMD2.js";import{p as q}from"./order-nzz6w9AQ.js";const F={class:"page-container"},L={class:"card-header"},T=O({__name:"stuck",setup(U){const r=n(!1),i=n([]),g=n(0),e=w({page:1,pageSize:20}),c=n(!1),u=n(null),l=async()=>{r.value=!0;try{const a=await q(e);i.value=a.data.list,g.value=a.data.total}catch(a){console.error("获取卡单订单列表失败:",a),E.error("获取卡单订单列表失败")}finally{r.value=!1}},_=a=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,Object.assign(e,a),e.page=1,l()},f=()=>{e.userId=void 0,e.mobile=void 0,e.orderNum=void 0,e.startDate=void 0,e.endDate=void 0,e.page=1,l()},h=a=>{e.page=a,l()},D=a=>{e.pageSize=a,e.page=1,l()},k=a=>{u.value=a.id,c.value=!0},S=()=>{u.value=null};return x(()=>{l()}),(a,o)=>{const z=d("el-icon"),C=d("el-tooltip"),V=d("el-empty"),y=d("el-card");return p(),B("div",F,[t(y,null,{header:s(()=>[m("div",L,[o[1]||(o[1]=m("span",null,"卡单订单",-1)),t(C,{content:"卡单订单是指支付成功但未发奖的异常订单",placement:"top"},{default:s(()=>[t(z,{class:"info-icon"},{default:s(()=>[t(I(N))]),_:1})]),_:1})])]),default:s(()=>[t(M,{onSearch:_,onReset:f}),!r.value&&i.value.length===0?(p(),v(V,{key:0,description:"暂无卡单订单","image-size":120},{description:s(()=>[...o[2]||(o[2]=[m("p",null,"当前没有支付成功但未发奖的异常订单",-1)])]),_:1})):(p(),v(R,{key:1,data:i.value,loading:r.value,total:g.value,page:e.page,"page-size":e.pageSize,onPageChange:h,onSizeChange:D,onViewDetail:k},null,8,["data","loading","total","page","page-size"]))]),_:1}),t(j,{modelValue:c.value,"onUpdate:modelValue":o[0]||(o[0]=b=>c.value=b),"order-id":u.value,onClose:S},null,8,["modelValue","order-id"])])}}}),Q=P(T,[["__scopeId","data-v-30cc634d"]]);export{Q as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as M,r as m,o as O,g as u,H as W,c as T,k as d,e as l,w as n,I as $,z as p,b,G as y,t as i,x as z,l as w,B as q,C as A,E as k,_ as H}from"./index-C69OfkED.js";import K from"./TypeFormDialog-BnR6d5uM.js";import{a as L,q as j,r as J,t as P}from"./goods-wpPao-Zr.js";const Q={class:"page-container"},R={class:"card-header"},X={class:"pay-methods"},Y={key:1,class:"text-muted"},Z=M({__name:"type",setup(ee){const f=m(!1),V=m([]),_=m(!1),v=m(!1),g=m(null),c=async()=>{f.value=!0;try{const a=await L();V.value=a.data}finally{f.value=!1}},B=()=>{v.value=!1,g.value=null,_.value=!0},S=a=>{v.value=!0,g.value={...a},_.value=!0},U=async a=>{try{await A.confirm(`确定要删除类型 "${a.name}" 吗?删除后不可恢复!`,"删除确认",{type:"warning"}),await j(a.id),k.success("删除成功"),c()}catch{}},x=async(a,t,h)=>{try{await J(a.id,{type:t,value:h}),k.success("操作成功")}catch{c()}},E=async(a,t)=>{try{await P(a.id,{name:a.name,value:a.value,sortOrder:t,isShow:a.isShow,isFenlei:a.isFenlei,flName:a.flName,cornerText:a.cornerText||void 0,payWechat:a.payWechat,payBalance:a.payBalance,payCurrency:a.payCurrency,payCurrency2:a.payCurrency2,payCoupon:a.payCoupon,isDeduction:a.isDeduction,remark:a.remark||void 0}),k.success("排序更新成功")}catch{c()}};return O(()=>{c()}),(a,t)=>{const h=u("el-icon"),C=u("el-button"),o=u("el-table-column"),N=u("el-input-number"),D=u("el-switch"),r=u("el-tag"),F=u("el-table"),G=u("el-card"),I=W("loading");return d(),T("div",Q,[l(G,null,{header:n(()=>[b("div",R,[t[2]||(t[2]=b("span",null,"盒子类型管理",-1)),l(C,{type:"primary",onClick:B},{default:n(()=>[l(h,null,{default:n(()=>[l(w(q))]),_:1}),t[1]||(t[1]=i("新增类型 ",-1))]),_:1})])]),default:n(()=>[$((d(),p(F,{data:V.value,border:"",stripe:"",style:{width:"100%"}},{default:n(()=>[l(o,{prop:"id",label:"ID",width:"80",align:"center"}),l(o,{prop:"name",label:"类型名称","min-width":"120"}),l(o,{prop:"value",label:"类型Key",width:"100",align:"center"}),l(o,{prop:"sortOrder",label:"排序",width:"100",align:"center"},{default:n(({row:e})=>[l(N,{modelValue:e.sortOrder,"onUpdate:modelValue":s=>e.sortOrder=s,min:0,max:9999,size:"small","controls-position":"right",onChange:s=>E(e,s)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(o,{label:"首页显示",width:"100",align:"center"},{default:n(({row:e})=>[l(D,{modelValue:e.isShow,"onUpdate:modelValue":s=>e.isShow=s,"active-value":1,"inactive-value":0,onChange:s=>x(e,"is_show",s)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(o,{label:"分类显示",width:"100",align:"center"},{default:n(({row:e})=>[l(D,{modelValue:e.isFenlei,"onUpdate:modelValue":s=>e.isFenlei=s,"active-value":1,"inactive-value":0,onChange:s=>x(e,"is_fenlei",s)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(o,{label:"支付方式","min-width":"200"},{default:n(({row:e})=>[b("div",X,[e.payWechat===1?(d(),p(r,{key:0,type:"success",size:"small"},{default:n(()=>[...t[3]||(t[3]=[i("微信",-1)])]),_:1})):y("",!0),e.payBalance===1?(d(),p(r,{key:1,type:"warning",size:"small"},{default:n(()=>[...t[4]||(t[4]=[i("余额",-1)])]),_:1})):y("",!0),e.payCurrency===1?(d(),p(r,{key:2,type:"info",size:"small"},{default:n(()=>[...t[5]||(t[5]=[i("积分",-1)])]),_:1})):y("",!0),e.payCurrency2===1?(d(),p(r,{key:3,type:"danger",size:"small"},{default:n(()=>[...t[6]||(t[6]=[i("积分2",-1)])]),_:1})):y("",!0),e.payCoupon===1?(d(),p(r,{key:4,size:"small"},{default:n(()=>[...t[7]||(t[7]=[i("优惠券",-1)])]),_:1})):y("",!0)])]),_:1}),l(o,{label:"支付类型",width:"100",align:"center"},{default:n(({row:e})=>[l(r,{type:e.isDeduction===1?"warning":"primary",size:"small"},{default:n(()=>[i(z(e.isDeduction===1?"抵扣":"支付"),1)]),_:2},1032,["type"])]),_:1}),l(o,{prop:"cornerText",label:"角标文字",width:"100",align:"center"},{default:n(({row:e})=>[e.cornerText?(d(),p(r,{key:0,type:"danger",size:"small"},{default:n(()=>[i(z(e.cornerText),1)]),_:2},1024)):(d(),T("span",Y,"-"))]),_:1}),l(o,{label:"操作",width:"150",align:"center",fixed:"right"},{default:n(({row:e})=>[l(C,{type:"primary",link:"",size:"small",onClick:s=>S(e)},{default:n(()=>[...t[8]||(t[8]=[i(" 编辑 ",-1)])]),_:1},8,["onClick"]),l(C,{type:"danger",link:"",size:"small",onClick:s=>U(e)},{default:n(()=>[...t[9]||(t[9]=[i(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[I,f.value]])]),_:1}),l(K,{modelValue:_.value,"onUpdate:modelValue":t[0]||(t[0]=e=>_.value=e),"type-data":g.value,"is-edit":v.value,onSuccess:c},null,8,["modelValue","type-data","is-edit"])])}}}),ne=H(Z,[["__scopeId","data-v-d601140b"]]);export{ne as default};
|
||||
import{d as O,r as m,o as W,g as u,J as $,c as T,k as d,e as l,w as n,K as w,z as p,b,H as y,t as i,x as z,l as I,B as K,C as q,E as k,_ as A}from"./index-VHOuw44X.js";import H from"./TypeFormDialog-mlPQVOS8.js";import{a as J,q as L,r as j,t as P}from"./goods-g1MWBUfa.js";const Q={class:"page-container"},R={class:"card-header"},X={class:"pay-methods"},Y={key:1,class:"text-muted"},Z=O({__name:"type",setup(ee){const f=m(!1),V=m([]),_=m(!1),v=m(!1),g=m(null),c=async()=>{f.value=!0;try{const a=await J();V.value=a.data}finally{f.value=!1}},B=()=>{v.value=!1,g.value=null,_.value=!0},S=a=>{v.value=!0,g.value={...a},_.value=!0},U=async a=>{try{await q.confirm(`确定要删除类型 "${a.name}" 吗?删除后不可恢复!`,"删除确认",{type:"warning"}),await L(a.id),k.success("删除成功"),c()}catch{}},x=async(a,t,h)=>{try{await j(a.id,{type:t,value:h}),k.success("操作成功")}catch{c()}},E=async(a,t)=>{try{await P(a.id,{name:a.name,value:a.value,sortOrder:t,isShow:a.isShow,isFenlei:a.isFenlei,flName:a.flName,cornerText:a.cornerText||void 0,payWechat:a.payWechat,payBalance:a.payBalance,payCurrency:a.payCurrency,payCurrency2:a.payCurrency2,payCoupon:a.payCoupon,isDeduction:a.isDeduction,remark:a.remark||void 0}),k.success("排序更新成功")}catch{c()}};return W(()=>{c()}),(a,t)=>{const h=u("el-icon"),C=u("el-button"),o=u("el-table-column"),N=u("el-input-number"),D=u("el-switch"),r=u("el-tag"),F=u("el-table"),G=u("el-card"),M=$("loading");return d(),T("div",Q,[l(G,null,{header:n(()=>[b("div",R,[t[2]||(t[2]=b("span",null,"盒子类型管理",-1)),l(C,{type:"primary",onClick:B},{default:n(()=>[l(h,null,{default:n(()=>[l(I(K))]),_:1}),t[1]||(t[1]=i("新增类型 ",-1))]),_:1})])]),default:n(()=>[w((d(),p(F,{data:V.value,border:"",stripe:"",style:{width:"100%"}},{default:n(()=>[l(o,{prop:"id",label:"ID",width:"80",align:"center"}),l(o,{prop:"name",label:"类型名称","min-width":"120"}),l(o,{prop:"value",label:"类型Key",width:"100",align:"center"}),l(o,{prop:"sortOrder",label:"排序",width:"100",align:"center"},{default:n(({row:e})=>[l(N,{modelValue:e.sortOrder,"onUpdate:modelValue":s=>e.sortOrder=s,min:0,max:9999,size:"small","controls-position":"right",onChange:s=>E(e,s)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(o,{label:"首页显示",width:"100",align:"center"},{default:n(({row:e})=>[l(D,{modelValue:e.isShow,"onUpdate:modelValue":s=>e.isShow=s,"active-value":1,"inactive-value":0,onChange:s=>x(e,"is_show",s)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(o,{label:"分类显示",width:"100",align:"center"},{default:n(({row:e})=>[l(D,{modelValue:e.isFenlei,"onUpdate:modelValue":s=>e.isFenlei=s,"active-value":1,"inactive-value":0,onChange:s=>x(e,"is_fenlei",s)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(o,{label:"支付方式","min-width":"200"},{default:n(({row:e})=>[b("div",X,[e.payWechat===1?(d(),p(r,{key:0,type:"success",size:"small"},{default:n(()=>[...t[3]||(t[3]=[i("微信",-1)])]),_:1})):y("",!0),e.payBalance===1?(d(),p(r,{key:1,type:"warning",size:"small"},{default:n(()=>[...t[4]||(t[4]=[i("余额",-1)])]),_:1})):y("",!0),e.payCurrency===1?(d(),p(r,{key:2,type:"info",size:"small"},{default:n(()=>[...t[5]||(t[5]=[i("积分",-1)])]),_:1})):y("",!0),e.payCurrency2===1?(d(),p(r,{key:3,type:"danger",size:"small"},{default:n(()=>[...t[6]||(t[6]=[i("积分2",-1)])]),_:1})):y("",!0),e.payCoupon===1?(d(),p(r,{key:4,size:"small"},{default:n(()=>[...t[7]||(t[7]=[i("优惠券",-1)])]),_:1})):y("",!0)])]),_:1}),l(o,{label:"支付类型",width:"100",align:"center"},{default:n(({row:e})=>[l(r,{type:e.isDeduction===1?"warning":"primary",size:"small"},{default:n(()=>[i(z(e.isDeduction===1?"抵扣":"支付"),1)]),_:2},1032,["type"])]),_:1}),l(o,{prop:"cornerText",label:"角标文字",width:"100",align:"center"},{default:n(({row:e})=>[e.cornerText?(d(),p(r,{key:0,type:"danger",size:"small"},{default:n(()=>[i(z(e.cornerText),1)]),_:2},1024)):(d(),T("span",Y,"-"))]),_:1}),l(o,{label:"操作",width:"150",align:"center",fixed:"right"},{default:n(({row:e})=>[l(C,{type:"primary",link:"",size:"small",onClick:s=>S(e)},{default:n(()=>[...t[8]||(t[8]=[i(" 编辑 ",-1)])]),_:1},8,["onClick"]),l(C,{type:"danger",link:"",size:"small",onClick:s=>U(e)},{default:n(()=>[...t[9]||(t[9]=[i(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[M,f.value]])]),_:1}),l(H,{modelValue:_.value,"onUpdate:modelValue":t[0]||(t[0]=e=>_.value=e),"type-data":g.value,"is-edit":v.value,onSuccess:c},null,8,["modelValue","type-data","is-edit"])])}}}),ne=A(Z,[["__scopeId","data-v-d601140b"]]);export{ne as default};
|
||||
|
|
@ -1 +1 @@
|
|||
import{T as t}from"./index-C69OfkED.js";function r(s){return t({url:"/admin/business/users",method:"get",params:s})}function i(s,e){return t({url:`/admin/business/users/${s}/money`,method:"put",data:e})}function a(s,e){return t({url:`/admin/business/users/${s}/status`,method:"put",data:{status:e}})}function o(s,e){return t({url:`/admin/business/users/${s}/test`,method:"put",data:{isTest:e}})}function d(s){return t({url:`/admin/business/users/${s}/mobile`,method:"delete"})}function m(s){return t({url:`/admin/business/users/${s}/wechat`,method:"delete"})}function l(s,e){return t({url:`/admin/business/users/${s}/mobile`,method:"put",data:{mobile:e}})}function g(s,e){return t({url:`/admin/business/users/${s}/coupon`,method:"post",data:e})}function c(s,e){return t({url:`/admin/business/users/${s}/card`,method:"post",data:e})}function b(s,e=1,n=20){return t({url:`/admin/business/users/${s}/team`,method:"get",params:{page:e,pageSize:n}})}function f(s,e){return t({url:`/admin/business/users/${s}/box`,method:"get",params:e})}function h(s,e){return t({url:`/admin/business/users/${s}/orders`,method:"get",params:e})}function p(s,e){return t({url:`/admin/business/users/${s}/money-detail`,method:"get",params:e})}function $(s,e){return t({url:`/admin/business/users/${s}/integral-detail`,method:"get",params:e})}function U(s,e){return t({url:`/admin/business/users/${s}/score-detail`,method:"get",params:e})}function L(s,e=1,n=20){return t({url:`/admin/business/users/${s}/ip-logs`,method:"get",params:{page:e,pageSize:n}})}function v(s){return t({url:"/admin/business/users/profit-loss-list",method:"get",params:s})}function S(s){return t({url:"/admin/business/users/invite-stats",method:"get",params:s})}function y(s){return t({url:"/admin/business/users/login-stats",method:"get",params:s})}function M(){return t({url:"/admin/business/vip",method:"get"})}function x(s,e){return t({url:`/admin/business/vip/${s}`,method:"put",data:e})}export{g as a,L as b,i as c,p as d,U as e,$ as f,c as g,f as h,h as i,b as j,r as k,o as l,d as m,m as n,l as o,S as p,y as q,v as r,a as s,M as t,x as u};
|
||||
import{D as t}from"./index-VHOuw44X.js";function r(s){return t({url:"/admin/business/users",method:"get",params:s})}function i(s,e){return t({url:`/admin/business/users/${s}/money`,method:"put",data:e})}function a(s,e){return t({url:`/admin/business/users/${s}/status`,method:"put",data:{status:e}})}function o(s,e){return t({url:`/admin/business/users/${s}/test`,method:"put",data:{isTest:e}})}function d(s){return t({url:`/admin/business/users/${s}/mobile`,method:"delete"})}function m(s){return t({url:`/admin/business/users/${s}/wechat`,method:"delete"})}function l(s,e){return t({url:`/admin/business/users/${s}/mobile`,method:"put",data:{mobile:e}})}function g(s,e){return t({url:`/admin/business/users/${s}/coupon`,method:"post",data:e})}function c(s,e){return t({url:`/admin/business/users/${s}/card`,method:"post",data:e})}function b(s,e=1,n=20){return t({url:`/admin/business/users/${s}/team`,method:"get",params:{page:e,pageSize:n}})}function f(s,e){return t({url:`/admin/business/users/${s}/box`,method:"get",params:e})}function h(s,e){return t({url:`/admin/business/users/${s}/orders`,method:"get",params:e})}function p(s,e){return t({url:`/admin/business/users/${s}/money-detail`,method:"get",params:e})}function $(s,e){return t({url:`/admin/business/users/${s}/integral-detail`,method:"get",params:e})}function U(s,e){return t({url:`/admin/business/users/${s}/score-detail`,method:"get",params:e})}function L(s,e=1,n=20){return t({url:`/admin/business/users/${s}/ip-logs`,method:"get",params:{page:e,pageSize:n}})}function v(s){return t({url:"/admin/business/users/profit-loss-list",method:"get",params:s})}function S(s){return t({url:"/admin/business/users/invite-stats",method:"get",params:s})}function y(s){return t({url:"/admin/business/users/login-stats",method:"get",params:s})}function D(){return t({url:"/admin/business/vip",method:"get"})}function M(s,e){return t({url:`/admin/business/vip/${s}`,method:"put",data:e})}export{g as a,L as b,i as c,p as d,U as e,$ as f,c as g,f as h,h as i,b as j,r as k,o as l,d as m,m as n,l as o,S as p,y as q,v as r,a as s,D as t,M as u};
|
||||
|
|
@ -1 +1 @@
|
|||
import{d as S,r as u,a as $,o as q,g as i,H as z,c as A,k,e,w as l,I as M,z as T,t as s,x as m,b as v,l as F,L as H,E as j,_ as G}from"./index-C69OfkED.js";import{t as J,u as K}from"./user-CpNQ-zyC.js";const O={class:"page-container"},Q={class:"number-text"},W=S({__name:"vip",setup(X){const c=u(!1),V=u([]),d=u(!1),p=u(!1),_=u(),o=$({id:0,level:0,title:"",number:0}),h={title:[{required:!0,message:"请输入等级名称",trigger:"blur"},{max:50,message:"等级名称不能超过50个字符",trigger:"blur"}],number:[{required:!0,message:"请输入升级所需积分",trigger:"blur"},{type:"number",min:0,message:"积分不能为负数",trigger:"blur"}]},y=n=>n?new Date(n).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"-",w=async()=>{c.value=!0;try{const n=await J();V.value=n.data||[]}catch(n){console.error("获取VIP等级列表失败:",n)}finally{c.value=!1}},C=n=>{o.id=n.id,o.level=n.level,o.title=n.title,o.number=n.number,d.value=!0},I=async()=>{if(_.value)try{await _.value.validate(),p.value=!0,await K(o.id,{title:o.title,number:o.number}),j.success("更新成功"),d.value=!1,w()}catch(n){console.error("更新VIP等级失败:",n)}finally{p.value=!1}};return q(()=>{w()}),(n,t)=>{const L=i("el-tag"),r=i("el-table-column"),D=i("el-icon"),f=i("el-button"),P=i("el-table"),B=i("el-card"),x=i("el-input"),g=i("el-form-item"),E=i("el-input-number"),N=i("el-form"),U=i("el-dialog"),R=z("loading");return k(),A("div",O,[e(B,null,{header:l(()=>[...t[5]||(t[5]=[v("div",{class:"card-header"},[v("span",null,"VIP等级管理")],-1)])]),default:l(()=>[M((k(),T(P,{data:V.value,border:"",stripe:""},{default:l(()=>[e(r,{label:"等级",align:"center",width:"80"},{default:l(({row:a})=>[e(L,{type:"warning"},{default:l(()=>[s("VIP"+m(a.level),1)]),_:2},1024)]),_:1}),e(r,{label:"等级名称",prop:"title","min-width":"150"}),e(r,{label:"升级所需积分",align:"right",width:"150"},{default:l(({row:a})=>{var b;return[v("span",Q,m(((b=a.number)==null?void 0:b.toLocaleString())||0),1)]}),_:1}),e(r,{label:"创建时间",width:"180"},{default:l(({row:a})=>[s(m(y(a.createdAt)),1)]),_:1}),e(r,{label:"更新时间",width:"180"},{default:l(({row:a})=>[s(m(y(a.updatedAt)),1)]),_:1}),e(r,{label:"操作",align:"center",width:"120",fixed:"right"},{default:l(({row:a})=>[e(f,{type:"primary",link:"",onClick:b=>C(a)},{default:l(()=>[e(D,null,{default:l(()=>[e(F(H))]),_:1}),t[6]||(t[6]=s("编辑 ",-1))]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[R,c.value]])]),_:1}),e(U,{modelValue:d.value,"onUpdate:modelValue":t[4]||(t[4]=a=>d.value=a),title:`编辑VIP${o.level}等级`,width:"500px","close-on-click-modal":!1},{footer:l(()=>[e(f,{onClick:t[3]||(t[3]=a=>d.value=!1)},{default:l(()=>[...t[7]||(t[7]=[s("取消",-1)])]),_:1}),e(f,{type:"primary",onClick:I,loading:p.value},{default:l(()=>[...t[8]||(t[8]=[s("确定",-1)])]),_:1},8,["loading"])]),default:l(()=>[e(N,{ref_key:"formRef",ref:_,model:o,rules:h,"label-width":"120px"},{default:l(()=>[e(g,{label:"等级",prop:"level"},{default:l(()=>[e(x,{modelValue:o.level,"onUpdate:modelValue":t[0]||(t[0]=a=>o.level=a),disabled:""},null,8,["modelValue"])]),_:1}),e(g,{label:"等级名称",prop:"title"},{default:l(()=>[e(x,{modelValue:o.title,"onUpdate:modelValue":t[1]||(t[1]=a=>o.title=a),placeholder:"请输入等级名称",maxlength:"50"},null,8,["modelValue"])]),_:1}),e(g,{label:"升级所需积分",prop:"number"},{default:l(()=>[e(E,{modelValue:o.number,"onUpdate:modelValue":t[2]||(t[2]=a=>o.number=a),min:0,max:999999999,step:100,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),ee=G(W,[["__scopeId","data-v-513a5002"]]);export{ee as default};
|
||||
import{d as S,r as u,a as $,o as q,g as i,J as z,c as A,k,e,w as l,K as M,z as T,t as s,x as m,b as v,l as F,N as J,E as K,_ as j}from"./index-VHOuw44X.js";import{t as G,u as H}from"./user-CKTn20xm.js";const O={class:"page-container"},Q={class:"number-text"},W=S({__name:"vip",setup(X){const c=u(!1),V=u([]),d=u(!1),p=u(!1),_=u(),o=$({id:0,level:0,title:"",number:0}),h={title:[{required:!0,message:"请输入等级名称",trigger:"blur"},{max:50,message:"等级名称不能超过50个字符",trigger:"blur"}],number:[{required:!0,message:"请输入升级所需积分",trigger:"blur"},{type:"number",min:0,message:"积分不能为负数",trigger:"blur"}]},y=n=>n?new Date(n).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"-",w=async()=>{c.value=!0;try{const n=await G();V.value=n.data||[]}catch(n){console.error("获取VIP等级列表失败:",n)}finally{c.value=!1}},C=n=>{o.id=n.id,o.level=n.level,o.title=n.title,o.number=n.number,d.value=!0},D=async()=>{if(_.value)try{await _.value.validate(),p.value=!0,await H(o.id,{title:o.title,number:o.number}),K.success("更新成功"),d.value=!1,w()}catch(n){console.error("更新VIP等级失败:",n)}finally{p.value=!1}};return q(()=>{w()}),(n,t)=>{const I=i("el-tag"),r=i("el-table-column"),L=i("el-icon"),f=i("el-button"),N=i("el-table"),P=i("el-card"),x=i("el-input"),g=i("el-form-item"),B=i("el-input-number"),E=i("el-form"),U=i("el-dialog"),R=z("loading");return k(),A("div",O,[e(P,null,{header:l(()=>[...t[5]||(t[5]=[v("div",{class:"card-header"},[v("span",null,"VIP等级管理")],-1)])]),default:l(()=>[M((k(),T(N,{data:V.value,border:"",stripe:""},{default:l(()=>[e(r,{label:"等级",align:"center",width:"80"},{default:l(({row:a})=>[e(I,{type:"warning"},{default:l(()=>[s("VIP"+m(a.level),1)]),_:2},1024)]),_:1}),e(r,{label:"等级名称",prop:"title","min-width":"150"}),e(r,{label:"升级所需积分",align:"right",width:"150"},{default:l(({row:a})=>{var b;return[v("span",Q,m(((b=a.number)==null?void 0:b.toLocaleString())||0),1)]}),_:1}),e(r,{label:"创建时间",width:"180"},{default:l(({row:a})=>[s(m(y(a.createdAt)),1)]),_:1}),e(r,{label:"更新时间",width:"180"},{default:l(({row:a})=>[s(m(y(a.updatedAt)),1)]),_:1}),e(r,{label:"操作",align:"center",width:"120",fixed:"right"},{default:l(({row:a})=>[e(f,{type:"primary",link:"",onClick:b=>C(a)},{default:l(()=>[e(L,null,{default:l(()=>[e(F(J))]),_:1}),t[6]||(t[6]=s("编辑 ",-1))]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[R,c.value]])]),_:1}),e(U,{modelValue:d.value,"onUpdate:modelValue":t[4]||(t[4]=a=>d.value=a),title:`编辑VIP${o.level}等级`,width:"500px","close-on-click-modal":!1},{footer:l(()=>[e(f,{onClick:t[3]||(t[3]=a=>d.value=!1)},{default:l(()=>[...t[7]||(t[7]=[s("取消",-1)])]),_:1}),e(f,{type:"primary",onClick:D,loading:p.value},{default:l(()=>[...t[8]||(t[8]=[s("确定",-1)])]),_:1},8,["loading"])]),default:l(()=>[e(E,{ref_key:"formRef",ref:_,model:o,rules:h,"label-width":"120px"},{default:l(()=>[e(g,{label:"等级",prop:"level"},{default:l(()=>[e(x,{modelValue:o.level,"onUpdate:modelValue":t[0]||(t[0]=a=>o.level=a),disabled:""},null,8,["modelValue"])]),_:1}),e(g,{label:"等级名称",prop:"title"},{default:l(()=>[e(x,{modelValue:o.title,"onUpdate:modelValue":t[1]||(t[1]=a=>o.title=a),placeholder:"请输入等级名称",maxlength:"50"},null,8,["modelValue"])]),_:1}),e(g,{label:"升级所需积分",prop:"number"},{default:l(()=>[e(B,{modelValue:o.number,"onUpdate:modelValue":t[2]||(t[2]=a=>o.number=a),min:0,max:999999999,step:100,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),ee=j(W,[["__scopeId","data-v-513a5002"]]);export{ee as default};
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>HoneyBox 后台管理系统</title>
|
||||
<script type="module" crossorigin src="/assets/index-C69OfkED.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-VHOuw44X.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-BVL2BX8v.css">
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user