diff --git a/src/App.vue b/src/App.vue
index 705bc6c..305658f 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -16,6 +16,7 @@ import {getUserInfo} from "@/api/login.js";
const userStore = useUserStore()
onMounted(async () => {
let resp = await getUserInfo()
+ console.log("用户信息:",resp)
userStore.setUserInfo(resp.data)
console.log(userStore.userInfo)
})
diff --git a/src/api/admin/Permission.js b/src/api/admin/Permission.js
new file mode 100644
index 0000000..18f978b
--- /dev/null
+++ b/src/api/admin/Permission.js
@@ -0,0 +1,69 @@
+import {http2} from "@/utils/request.js";
+/* -------------------------------------------------------------- */
+/**管理员权限管理 */
+/**-------------------------------------------------------- */
+/**路由权限管理 */
+
+/**获取权限列表 */
+export const getPermissionList = (params) => {
+ return http2.get('/api/v1/admin/server/permission/path/list', {params: params})
+}
+/**新增权限信息 */
+export const addPermissionInfo = (data) => {
+ return http2.post('/api/v1/admin/server/permission/path/add', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**修改权限信息 */
+export const updatePermissionInfo = (data) => {
+ return http2.post('/api/v1/admin/server/permission/path/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除权限信息 */
+export const deletePermissionInfo = (data) => {
+ return http2.delete('/api/v1/admin/server/permission/path/delete', {
+ data: data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**-------------------------------------------------------- */
+/**管理员权限分配 */
+
+/**获取指定管理员的权限列表 */
+export const getPermissionListByAdmin = (params) => {
+ return http2.get('/api/v1/admin/server/permission/admin/list', {params: params})
+}
+/**新增管理员权限 */
+export const addPermissionAdmin = (data) => {
+ return http2.post('/api/v1/admin/server/permission/admin/add', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**修改管理员权限 */
+export const updatePermissionAdmin = (data) => {
+ return http2.post('/api/v1/admin/server/permission/admin/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除管理员权限 */
+export const deletePermissionAdmin = (data) => {
+ return http2.delete('/api/v1/admin/server/permission/admin/delete', {
+ data: data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
diff --git a/src/api/admin/activity.js b/src/api/admin/activity.js
new file mode 100644
index 0000000..f21cb68
--- /dev/null
+++ b/src/api/admin/activity.js
@@ -0,0 +1,17 @@
+import {http2} from "@/utils/request.js";
+/**新增签到奖励 */
+export const addSignReward = (data) => {
+ return http2.post('/api/v1/admin/activity/signin/add_reward', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**新增签到奖励类型 */
+export const addSignRewardType = (data) => {
+ return http2.post('/api/v1/admin/activity/signin/add_reward_type', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
diff --git a/src/api/admin/cdn.js b/src/api/admin/cdn.js
new file mode 100644
index 0000000..94c947b
--- /dev/null
+++ b/src/api/admin/cdn.js
@@ -0,0 +1,9 @@
+import {http2} from "@/utils/request.js";
+/**新增goedge服务器 */
+export const addGoedgeServer = (data) => {
+ return http2.post('/api/v1/admin/api/goedge/add_server', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
diff --git a/src/api/admin/discount.js b/src/api/admin/discount.js
new file mode 100644
index 0000000..ca37497
--- /dev/null
+++ b/src/api/admin/discount.js
@@ -0,0 +1,172 @@
+import {http2} from "@/utils/request.js";
+
+/**---------------------------------- */
+/**优惠码/代金券管理 (统一接口) */
+
+/**获取优惠码/代金券列表 */
+export const getDiscountCodeList = (params) => {
+ return http2.get('/api/v1/admin/code/discount/list', {params: params})
+}
+
+/**获取优惠码/代金券详情 */
+export const getDiscountCodeDetail = (params) => {
+ return http2.get('/api/v1/admin/code/discount/detail', {params: params})
+}
+
+/**创建优惠码/代金券 */
+export const createDiscountCode = (data) => {
+ return http2.post('/api/v1/admin/code/discount/create', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**更新优惠码/代金券 */
+export const updateDiscountCode = (data) => {
+ return http2.post('/api/v1/admin/code/discount/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**删除优惠码/代金券 */
+export const deleteDiscountCode = (data) => {
+ return http2.delete('/api/v1/admin/code/discount/delete?code_id=' + data.code_id)
+}
+
+/**---------------------------------- */
+/**商品关联管理 */
+
+/**获取优惠码/代金券商品列表 */
+export const getDiscountGoodsList = (params) => {
+ return http2.get('/api/v1/admin/code/discount/goods/list', {params: params})
+}
+
+/**新增优惠码/代金券商品关联 */
+export const addDiscountGoods = (data) => {
+ return http2.post('/api/v1/admin/code/discount/goods/add', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**修改优惠码/代金券商品关联 */
+export const updateDiscountGoods = (data) => {
+ return http2.post('/api/v1/admin/code/discount/goods/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**删除优惠码/代金券商品关联 */
+export const deleteDiscountGoods = (data) => {
+ return http2.delete('/api/v1/admin/code/discount/goods/delete', {
+ data: data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**---------------------------------- */
+/**用户关联管理 */
+
+/**获取优惠码/代金券用户关联列表 */
+export const getDiscountUsersList = (params) => {
+ return http2.get('/api/v1/admin/code/discount/users/list', {params: params})
+}
+
+/**新增优惠码/代金券用户关联 */
+export const addDiscountUsers = (data) => {
+ return http2.post('/api/v1/admin/code/discount/users/add', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**修改优惠码/代金券用户关联 */
+export const updateDiscountUsers = (data) => {
+ return http2.post('/api/v1/admin/code/discount/users/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**删除优惠码/代金券用户关联 */
+export const deleteDiscountUsers = (data) => {
+ return http2.delete('/api/v1/admin/code/discount/users/delete', {
+ data: data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**---------------------------------- */
+/**用户代金券管理 */
+
+/**获取用户优惠码/代金券列表 */
+export const getUserVoucherList = (params) => {
+ return http2.get('/api/v1/admin/code/discount/user/list', {params: params})
+}
+
+/**为用户添加代金券 */
+export const addUserVoucher = (data) => {
+ return http2.post('/api/v1/admin/code/discount/user/add_coupon', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**修改用户代金券 */
+export const updateUserVoucher = (data) => {
+ return http2.post('/api/v1/admin/code/discount/user/update_coupon', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**删除用户代金券 */
+export const deleteUserVoucher = (data) => {
+ return http2.delete('/api/v1/admin/code/discount/user/delete_coupon', {
+ data: data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**获取用户优惠码/代金券使用记录 */
+export const getUserVoucherHistory = (params) => {
+ return http2.get('/api/v1/admin/code/discount/user/history', {params: params})
+}
+
+/**为用户分配代金券 */
+export const allocateVoucher = (data) => {
+ return http2.post('/api/v1/admin/code/discount/coupon/allocate', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**查询代金券的拥有者列表 */
+export const getVoucherHolderList = (params) => {
+ return http2.get('/api/v1/admin/code/discount/coupon/holder_list', {params: params})
+}
+
+/**---------------------------------- */
+/**兼容旧接口别名 */
+export const getVoucherList = getDiscountCodeList
+export const getVoucherDetail = getDiscountCodeDetail
+export const createVoucher = createDiscountCode
+export const updateVoucher = updateDiscountCode
+export const deleteVoucher = deleteDiscountCode
diff --git a/src/api/admin/file.js b/src/api/admin/file.js
new file mode 100644
index 0000000..64c261a
--- /dev/null
+++ b/src/api/admin/file.js
@@ -0,0 +1,42 @@
+import {http2} from "@/utils/request.js";
+/**获取文件列表 */
+export const getFileList = (params) => {
+ return http2.get('/api/v1/admin/file/list',{params})
+}
+
+/**获取文件详情 */
+export const getFileDetail = (data) => {
+ return http2.get('/api/v1/admin/file/detail?file_id='+data.file_id)
+}
+
+/**删除文件 */
+export const deleteFile = (data) => {
+ return http2.delete('/api/v1/admin/file/delete', {
+ params: data
+ })
+}
+/**修改文件信息 */
+export const updateFile = (data) => {
+ return http2.post('/api/v1/admin/file/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**公共接口 获取文件信息 */
+export const getFile = (data) => {
+ return http2.get('/api/v1/tools/file/info?file_id='+data.file_id)
+}
+
+/**文件上传 */
+export const uploadFile = (data) => {
+ return http2.post('/api/v1/tools/file/upload', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**文件下载 */
+export const downloadFile = (data) => {
+ return http2.get('/api/v1/tool/file/down?file_id='+data.file_id)
+}
diff --git a/src/api/admin/group.js b/src/api/admin/group.js
new file mode 100644
index 0000000..2b4b8ba
--- /dev/null
+++ b/src/api/admin/group.js
@@ -0,0 +1,25 @@
+import {http2} from "@/utils/request.js";
+/**获取管理员组列表 */
+export const getAdminGroupList = (params) => {
+ return http2.get('/api/v1/admin/admin_group/list', {params: params})
+}
+/**获取管理员组成员列表 */
+export const getAdminGroupMemberList = (params) => {
+ return http2.get('/api/v1/admin/admin_group/member_list', {params:params})
+}
+/**获取管理员组详情 */
+export const getAdminGroupDetail = (params) => {
+ return http2.get('/api/v1/admin/admin_group/detail', {params: params})
+}
+/**新增管理员组 */
+export const addAdminGroup = (data) => {
+ return http2.post('/api/v1/admin/admin_group/create', data)
+}
+/**更新管理员组信息 */
+export const updateAdminGroupInfo = (data) => {
+ return http2.post('/api/v1/admin/admin_group/update', data)
+}
+/**删除管理员组 */
+export const deleteAdminGroup = (data) => {
+ return http2.delete('/api/v1/admin/admin_group/delete?group_id=' + data.group_id)
+}
diff --git a/src/api/admin/order.js b/src/api/admin/order.js
new file mode 100644
index 0000000..d58fa36
--- /dev/null
+++ b/src/api/admin/order.js
@@ -0,0 +1,35 @@
+import {http2} from "@/utils/request.js";
+/**获取订单列表 */
+export const getOrderList = (params) => {
+ return http2.get('/api/v1/admin/order/list', {params: params})
+}
+/**获取订单详情 */
+export const getOrderDetail = (params) => {
+ return http2.get('/api/v1/admin/order/detail', {params: params})
+}
+/**删除订单 (未提供删除接口,暂时保留) */
+/**删除订单 */
+export const deleteOrder = (data) => {
+ return http2.delete('/api/v1/admin/trades/delete_trade', {
+ data: data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**创建订单 */
+export const createOrder = (data) => {
+ return http2.post('/api/v1/admin/order/create', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**修改订单 */
+export const updateOrder = (data) => {
+ return http2.post('/api/v1/admin/order/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
diff --git a/src/api/admin/product.js b/src/api/admin/product.js
new file mode 100644
index 0000000..cc1d340
--- /dev/null
+++ b/src/api/admin/product.js
@@ -0,0 +1,142 @@
+import {http2} from "@/utils/request.js";
+/**---------------------------------- */
+/**商品组管理 */
+
+/**获取商品分组列表 */
+export const getProductGroupList = (params) => {
+ return http2.get('/api/v1/admin/good/group/list', {params: params})
+}
+/**创建商品分组 */
+export const createProductGroup = (data) => {
+ return http2.post('/api/v1/admin/good/group/create', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**更新商品分组 */
+export const updateProductGroup = (data) => {
+ return http2.post('/api/v1/admin/good/group/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**隐藏商品组 */
+export const hideProductGroup = (data) => {
+ return http2.post('/api/v1/admin/good/group/disable', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**启动商品组 */
+export const startProductGroup = (data) => {
+ return http2.post('/api/v1/admin/good/group/enable', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除商品分组 */
+export const deleteProductGroup = (data) => {
+ return http2.delete('/api/v1/admin/good/group/delete',{
+ data: data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+
+
+/**---------------------------------- */
+/**商品管理 */
+
+/**获取商品列表 */
+export const getProductList = (params) => {
+ return http2.get('/api/v1/admin/good/goods/list', {params: params})
+}
+/**创建商品 */
+export const createProduct = (data) => {
+ return http2.post('/api/v1/admin/good/goods/create', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**更新商品 */
+export const updateProduct = (data) => {
+ return http2.post('/api/v1/admin/good/goods/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除商品 */
+export const deleteProduct = (data) => {
+ return http2.delete('/api/v1/admin/good/goods/delete',{
+ data:data,
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+
+
+/**---------------------------------- */
+/**商品参数管理 */
+
+/**获取商品参数列表 */
+export const getProductParameterList = (params) => {
+ return http2.get('/api/v1/admin/good/spec/list', {params: params})
+}
+/**创建商品参数 */
+export const createProductParameter = (data) => {
+ return http2.post('/api/v1/admin/good/spec/create', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**获取商品参数详情 */
+export const getProductParameterDetail = (params) => {
+ return http2.get('/api/v1/admin/good/spec/detail', {params: params})
+}
+/**更新商品参数 */
+export const updateProductParameter = (data) => {
+ return http2.post('/api/v1/admin/good/spec/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除商品参数 */
+export const deleteProductParameter = (data) => {
+ return http2.delete('/api/v1/admin/good/spec/delete', {
+ params: data
+ })
+}
+/**增加商品参数值 */
+export const addProductParameterValue = (data) => {
+ return http2.post('/api/v1/admin/good/spec/add_value', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除商品参数值 */
+export const deleteProductParameterValue = (data) => {
+ return http2.delete('/api/v1/admin/good/spec/delete_value', {
+ params: data
+ })
+}
+/**更新商品参数值 */
+export const updateProductParameterValue = (data) => {
+ return http2.post('/api/v1/admin/good/spec/update_value', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
\ No newline at end of file
diff --git a/src/api/admin/router.js b/src/api/admin/router.js
new file mode 100644
index 0000000..70ff216
--- /dev/null
+++ b/src/api/admin/router.js
@@ -0,0 +1,19 @@
+import {http2} from "@/utils/request.js";
+
+/**路由管理 */
+/**新增前端路由 */
+export const addRouter = (data) => {
+ return http2.post('/api/v1/admin/web_routs/add', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**更新前端路由 */
+export const updateRouter = (data) => {
+ return http2.post('/api/v1/admin/web_routs/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
diff --git a/src/api/admin/setting.js b/src/api/admin/setting.js
new file mode 100644
index 0000000..2a40c93
--- /dev/null
+++ b/src/api/admin/setting.js
@@ -0,0 +1,86 @@
+import { http2 } from "@/utils/request.js"
+
+// ========== 配置组管理 ==========
+
+/** 获取配置分组列表 */
+export const getSettingGroupList = (params) => {
+ return http2.get('/api/v1/admin/server/setting/group/list', { params })
+}
+
+/** 获取配置分组信息 */
+export const getSettingGroupInfo = (params) => {
+ return http2.get('/api/v1/admin/server/setting/group/info', { params })
+}
+
+/** 创建配置分组 */
+export const createSettingGroup = (data) => {
+ return http2.post('/api/v1/admin/server/setting/group/create', data, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+}
+
+/** 修改配置分组 */
+export const updateSettingGroup = (data) => {
+ return http2.post('/api/v1/admin/server/setting/group/update', data, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+}
+
+/** 删除配置分组 */
+export const deleteSettingGroup = (params) => {
+ return http2.delete('/api/v1/admin/server/setting/group/delete', { params })
+}
+
+// ========== 配置管理 ==========
+
+/** 获取配置列表 */
+export const getSettingList = (params) => {
+ return http2.get('/api/v1/admin/server/setting/list', { params })
+}
+
+/** 获取配置信息 */
+export const getSettingInfo = (params) => {
+ return http2.get('/api/v1/admin/server/setting/info', { params })
+}
+
+/** 创建配置 */
+export const createSetting = (data) => {
+ return http2.post('/api/v1/admin/server/setting/create', data, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+}
+
+/** 修改配置 */
+export const updateSetting = (data) => {
+ return http2.post('/api/v1/admin/server/setting/update', data, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+}
+
+/** 修改配置是否开放访问 */
+export const setSettingOpen = (data) => {
+ return http2.post('/api/v1/admin/server/setting/set_open', data, {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+}
+
+/** 删除配置 */
+export const deleteSetting = (data) => {
+ return http2.delete('/api/v1/admin/server/setting/delete', {
+ data,
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ })
+}
+
diff --git a/src/api/admin/user.js b/src/api/admin/user.js
new file mode 100644
index 0000000..570c897
--- /dev/null
+++ b/src/api/admin/user.js
@@ -0,0 +1,165 @@
+import {http2} from "@/utils/request.js";
+
+/**用户余额管理 */
+/**修改用户余额 */
+export const editUserBalance = (data) => {
+ return http2.post('/api/v1/admin/user/balance/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**添加用户消费记录 */
+export const addUserConsumption = (data) => {
+ return http2.post('/api/v1/admin/user/balance/add_history', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**查询用户余额 */
+export const getUserBalance = (data) => {
+ return http2.get('/api/v1/admin/user/balance/select?user_id='+data.user_id)
+}
+
+/**获取用户余额记录 */
+export const getUserBalanceRecord = (data) => {
+ return http2.get('/api/v1/admin/user/balance/history?user_id='+data.user_id + '&balance_type=' + data.balance_type + '&page=' + data.page + '&count=' + data.count)
+}
+
+/**获取用户余额 */
+export const getUserBalanceCount = (data) => {
+ return http2.get('/api/v1/admin/user/balance/get?user_id='+data.user_id)
+}
+/**获取用户信息 */
+export const getUserInfo = (data) => {
+ return http2.get('/api/v1/admin/user/user/detail?user_id='+data.user_id)
+}
+
+/**获取用户列表 */
+export const getUserList = (data) => {
+ return http2.get('/api/v1/admin/user/user/list?page=' + data.page + '&count=' + data.count + '&key=' + data.key)
+}
+
+/**更新用户信息 */
+export const updateUserInfo = (data) => {
+ return http2.post('/api/v1/admin/user/user/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**删除用户 */
+export const deleteUser = (data) => {
+ return http2.delete('/api/v1/admin/user/user/delete?group_id='+data.group_id)
+}
+/**修改用户头像 */
+export const updateUserAvatar = (data) => {
+ return http2.post('/api/v1/admin/user/user/update_cover', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**修改用户密码 */
+export const updateUserPassword = (data) => {
+ return http2.post('/api/v1/admin/user/user/update_password', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**修改用户组 */
+export const updateUserGroup = (data) => {
+ return http2.post('/api/v1/admin/user/user/update_group', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**修改用户管理员权限*/
+export const updateUserAdmin = (data) => {
+ return http2.post('/api/v1/admin/user/user/user2admin', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**修改用户实名信息*/
+export const updateUserRealName = (data) => {
+ return http2.post('/api/v1/admin/user/user/update_real_name', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**获取用户登录记录*/
+export const getUserLoginRecord = (data) => {
+ return http2.get('/api/v1/admin/user/user/login_history?user_id='+data.user_id + '&page=' + data.page + '&count=' + data.count)
+}
+
+/**获取用户操作记录 */
+export const getUserOperationRecord = (data) => {
+ return http2.get('/api/v1/admin/user/user/manage_history?user_id='+data.user_id + '&page=' + data.page + '&count=' + data.count)
+}
+/**模拟用户登录 */
+export const mockUserLogin = (data) => {
+ return http2.get('/api/v1/admin/user/user/simulation_login?user_id='+data.user_id)
+}
+/**新建任务 */
+export const createTask = (data) => {
+ return http2.post('/api/v1/admin/user/user/create', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+
+/**用户组管理 */
+/**获取用户组列表 */
+export const getUserGroupList = (data) => {
+ return http2.get('/api/v1/admin/user_group/list?page=' + data.page + '&count=' + data.count)
+}
+/**获取用户组成员列表 */
+export const getUserGroupMemberList = (data) => {
+ return http2.get('/api/v1/admin/user_group/member_list?group_id=' + data.group_id + '&page=' + data.page + '&count=' + data.count)
+}
+/**获取用户组详情信息 */
+export const getUserGroupDetail = (data) => {
+ return http2.get('/api/v1/admin/user_group/detail?group_id=' + data.group_id)
+}
+/**新建用户组 */
+export const createUserGroup = (data) => {
+ return http2.post('/api/v1/admin/user_group/create', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**更新用户组信息 */
+export const updateUserGroupInfo = (data) => {
+ return http2.post('/api/v1/admin/user_group/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除用户组 */
+export const deleteUserGroup = (data) => {
+ return http2.delete(`/api/v1/admin/user_group/delete?group_id=`+data.group_id,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**添加用户组成员 */
+export const addUserGroupMember = (data) => {
+ return http2.post('/api/v1/admin/user_group/add_member', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
\ No newline at end of file
diff --git a/src/api/domain.js b/src/api/domain.js
index e6cddcd..b0fc1a9 100644
--- a/src/api/domain.js
+++ b/src/api/domain.js
@@ -11,15 +11,20 @@ export function addDomain(data) {
}
// 删除域名白名单
-export function deleteDomain(id) {
- return request.post("/api/v1/admin/server/domain_withe/delete",{domain_id: id})
+export function deleteDomain(data) {
+ return request.post("/api/v1/admin/server/domain_withe/delete",data,{
+
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
}
// 批量删除域名白名单
export async function batchDeleteDomain(ids) {
let promises = []
for (let id of ids) {
- promises.push(deleteDomain(id))
+ promises.push(deleteDomain({domain_id:id}))
}
return await Promise.all(promises)
}
\ No newline at end of file
diff --git a/src/api/ticket.js b/src/api/ticket.js
index dfc61f5..47f9dbd 100644
--- a/src/api/ticket.js
+++ b/src/api/ticket.js
@@ -29,12 +29,12 @@ export function getCompletedTicketList(count, page) {
return getTickerList(count,page,3)
}
-// 获取详情
+// 获取工单详情
export function getTicketDetail(work_id) {
return request.get('/api/v1/admin/work_order/detail', { work_id })
}
-// 回复
+// 回复工单
export function replyTicket(work_id, content, files) {
return request.post('/api/v1/admin/work_order/reply', { work_id, content, files })
}
@@ -67,4 +67,53 @@ export async function parseFilesToImages(files) {
const fileIds = files.split(',')
return await Promise.all(fileIds.map(async (id) => await getFileImage(id.trim())))
-}
\ No newline at end of file
+}
+
+/**获取工单数量 */
+export function getTicketCount() {
+ return request.get('/api/v1/admin/work_order/count')
+}
+/**修改工单信息 */
+export function updateTicketInfo(data) {
+ return request.post('/api/v1/admin/work_order/update', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**添加工单类型 */
+export function addTicketType(data) {
+ return request.post('/api/v1/admin/work_order/add_type', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**修改工单类型 */
+export function updateTicketType(data) {
+ return request.post('/api/v1/admin/work_order/update_type', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**删除工单类型 */
+export function deleteTicketType(data) {
+ return request.delete('/api/v1/admin/work_order/delete_type', data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
+/**获取工单类型列表 */
+export function getTicketTypeList(data) {
+ return request.get('/api/v1/admin/work_order/type_list', data)
+}
+/**修改工单回复信息 */
+export function updateTicketReplayInfo(data){
+ return request.post('/api/v1/admin/work_order/update_reply',data,{
+ headers:{
+ 'Content-Type':'multipart/form-data'
+ }
+ })
+}
diff --git a/src/components/admin/AvatarSelector.vue b/src/components/admin/AvatarSelector.vue
new file mode 100644
index 0000000..4652c90
--- /dev/null
+++ b/src/components/admin/AvatarSelector.vue
@@ -0,0 +1,431 @@
+
+ {{ file.realName }} {{ formatFileSize(file.size) }}用户文件列表
+
+
| 优惠码 | +{{ detailData.code }} | +
| {{ type === 'code' ? '名称' : '代金券名称' }} | +{{ detailData.name }} | +
| 备注 | +{{ detailData.note || '无' }} | +
| 优惠类型 | ++ + {{ detailData.percentage ? '百分比折扣' : '固定金额' }} + + | +
| {{ type === 'code' ? '优惠值' : '面额' }} | ++ + {{ (detailData.percentage / 100).toFixed(0) }}% + + + ¥{{ (detailData.amount / 100).toFixed(2) }} + + | +
| 最低消费 | +¥{{ (detailData.minAmount / 100).toFixed(2) }} | +
| 最大抵扣 | ++ ¥{{ (detailData.maxAmount / 100).toFixed(2) }} + 无限制 + | +
| 最大使用次数 | ++ {{ detailData.maxTimes }} + 无限制 + | +
| 单用户次数 | ++ {{ detailData.userTimes }} + 无限制 + | +
| 有效期(天) | ++ {{ detailData.duration ? (detailData.duration / 86400).toFixed(0) + '天' : '-' }} + | +
| {{ type === 'code' ? '有效期开始' : '发放时间开始' }} | +{{ formatISODate(detailData.startTime) }} | +
| {{ type === 'code' ? '有效期结束' : '发放时间结束' }} | +{{ formatISODate(detailData.endTime) }} | +
| 续费可用 | ++ + {{ detailData.renew ? '✓ 是' : '✗ 否' }} + + | +
| 同类型可叠加 | ++ + {{ detailData.canStacking ? '✓ 是' : '✗ 否' }} + + | +
| 其他类型可叠加 | ++ + {{ detailData.canCombine ? '✓ 是' : '✗ 否' }} + + | +
| 创建时间 | +{{ formatISODate(detailData.CreatedAt) }} | +
| 更新时间 | +{{ formatISODate(detailData.UpdatedAt) }} | +
{{ userSearchKey ? '未找到匹配的用户' : '暂无用户数据' }}
+当前头像ID: {{ editForm.CoverID || '未设置' }}
+头像ID: {{ avatarForm.cover_id || '未设置' }}
+头像ID: {{ avatarForm.cover_id || '未设置' }}
+