55 KiB
✅已完成、⚠️部分完成、❌未完成这样显示 -----------------------------------------------------------------------------------------------需要解决
{ "openapi": "3.0.1", "info": { "title": "默认模块", "description": "", "version": "1.0.0" }, "tags": [], "paths": { "/api/v1/admin/good/goods/list": { "get": { "summary": "获取商品列表", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "count", "in": "query", "description": "获取条数 默认 10", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "description": "获取页码 默认 1", "required": false, "schema": { "type": "string" } }, { "name": "good_group_id", "in": "query", "description": "筛选商品组id", "required": false, "schema": { "type": "integer" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/goods/tag_list": { "get": { "summary": "获取商品标签列表", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/goods/create": { "post": { "summary": "创建商品", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "name": { "description": "名称", "example": "", "type": "string" }, "table": { "description": "商品所属表", "example": "", "type": "string" }, "tag": { "description": "商品标签,从 tag_list 接口中获取", "example": "", "type": "string" }, "content": { "description": "内容", "example": "", "type": "string" }, "cover_id": { "description": "封面id", "example": 0, "type": "integer" }, "inventory_control": { "description": "是否开启商品库存", "example": "", "type": "string" }, "inventory": { "description": "商品库存", "example": 0, "type": "integer" }, "price": { "description": "商品价格", "example": 0, "type": "integer" }, "pay_num": { "description": "单个商品数量", "example": 0, "type": "integer" }, "expire_time": { "description": "商品购买有效期 /天", "example": 0, "type": "integer" }, "recommend": { "description": "是否开启推介", "example": "", "type": "boolean" }, "recommend_rebate": { "description": "商品推介返还 /100%", "example": 0, "type": "integer" }, "good_group_id": { "description": "商品组id", "example": 0, "type": "integer" }, "arg_type": { "description": "商品参数类型 all 所有 / plan 套餐 / customize 自定义", "example": "", "type": "string" } } }, "examples": {} } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/goods/update": { "post": { "summary": "更新商品", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "id": { "description": "ID 编号", "example": "", "type": "string" }, "name": { "description": "名称", "example": "", "type": "string" }, "table": { "description": "商品所属表", "example": "", "type": "string" }, "tag": { "description": "商品标签,从 tag_list 接口中获取", "example": "", "type": "string" }, "content": { "description": "内容", "example": "", "type": "string" }, "cover_id": { "description": "封面id", "example": 0, "type": "integer" }, "inventory_control": { "description": "是否开启商品库存", "example": "", "type": "boolean" }, "inventory": { "description": "商品库存", "example": 0, "type": "integer" }, "price": { "description": "商品价格", "example": 0, "type": "integer" }, "pay_num": { "description": "单个商品数量", "example": 0, "type": "integer" }, "expire_time": { "description": "商品购买有效期 /天", "example": 0, "type": "integer" }, "recommend": { "description": "是否开启推介", "example": "", "type": "boolean" }, "recommend_rebate": { "description": "商品推介返还 /100%", "example": 0, "type": "integer" }, "good_group_id": { "description": "商品组id", "example": 0, "type": "integer" }, "arg_type": { "description": "商品参数类型 all 所有 / plan 套餐 / customize 自定义", "example": "", "type": "string" } } }, "examples": {} } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/goods/delete": { "delete": { "summary": "删除商品", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "id": { "description": "ID 编号", "example": "", "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } } }, "components": { "schemas": {}, "responses": {}, "securitySchemes": {} }, "servers": [], "security": [] }
{ "openapi": "3.0.1", "info": { "title": "默认模块", "description": "", "version": "1.0.0" }, "tags": [], "paths": { "/api/v1/admin/good/plan/list": { "get": { "summary": "获取商品套餐列表", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "good_id", "in": "query", "description": "商品id", "required": false, "schema": { "type": "string" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/plan/create": { "post": { "summary": "创建商品套餐", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "good_id": { "description": "商品id", "example": "", "type": "string" }, "name": { "description": "名称", "example": "", "type": "string" }, "note": { "description": "说明", "example": "", "type": "string" }, "args": { "description": "参数 json\n{\n"arg_id": 参数id,\n"name": "参数名称",\n"attr_id": 参数值id,\n"value": "参数值"(如果是 select 或 string 类型),\n"number": 参数值(如果是 number 类型),\n}", "example": "", "type": "string" }, "extra_arg_ids": { "description": "额外参数 示例:1,2,3,4", "example": "", "type": "string" }, "index": { "type": "integer", "description": "套餐排序索引", "example": 0 } } }, "examples": {} } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/plan/detail": { "get": { "summary": "获取商品套餐详情", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "good_id", "in": "query", "description": "商品id", "required": false, "schema": { "type": "integer" } }, { "name": "plan_id", "in": "query", "description": "套餐id", "required": false, "schema": { "type": "integer" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/plan/update": { "post": { "summary": "更新商品套餐", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "good_id": { "description": "商品id", "example": "", "type": "string" }, "plan_id": { "description": "套餐id", "example": "", "type": "string" }, "name": { "description": "名称", "example": "", "type": "string" }, "note": { "description": "说明", "example": "", "type": "string" }, "args": { "description": "参数 json\n{\n"arg_id": 参数id,\n"name": "参数名称",\n"attr_id": 参数值id,\n"value": "参数值"(如果是 select 或 string 类型),\n"number": 参数值(如果是 number 类型),\n}", "example": "", "type": "string" }, "extra_arg_ids": { "description": "额外参数 示例:1,2,3,4", "example": "", "type": "string" }, "index": { "description": "套餐排序索引", "example": 0, "type": "integer" }, "disable": { "type": "boolean", "description": "是否禁用", "example": "" } } }, "examples": {} } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/plan/delete": { "delete": { "summary": "删除商品套餐", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "good_id", "in": "query", "description": "商品id", "required": false, "schema": { "type": "string" } }, { "name": "plan_id", "in": "query", "description": "套餐id", "required": false, "schema": { "type": "string" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/plan/disable": { "post": { "summary": "禁用商品套餐", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "good_id": { "type": "integer", "description": "商品id", "example": 0 }, "plan_id": { "type": "integer", "description": "套餐id", "example": 0 } } }, "examples": {} } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/plan/enable": { "post": { "summary": "启用商品套餐", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "good_id": { "description": "商品id", "example": 0, "type": "integer" }, "plan_id": { "description": "套餐id", "example": 0, "type": "integer" } } }, "examples": {} } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } } }, "components": { "schemas": {}, "responses": {}, "securitySchemes": {} }, "servers": [], "security": [] }
{ "openapi": "3.0.1", "info": { "title": "默认模块", "description": "", "version": "1.0.0" }, "tags": [], "paths": { "/api/v1/admin/good/group/list": { "get": { "summary": "获取商品分组列表", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "count", "in": "query", "description": "获取条数 默认 10", "required": false, "schema": { "type": "string" } }, { "name": "page", "in": "query", "description": "获取页码 默认 1", "required": false, "schema": { "type": "string" } }, { "name": "key", "in": "query", "description": "关键词筛选", "required": false, "schema": { "type": "string" } }, { "name": "disable", "in": "query", "description": "筛选 隐藏/显示 的分组", "required": false, "schema": { "type": "boolean" } }, { "name": "level", "in": "query", "description": "筛选分组层级", "required": false, "schema": { "type": "integer" } }, { "name": "parent_id", "in": "query", "description": "筛选父级分组id", "required": false, "schema": { "type": "integer" } }, { "name": "tag", "in": "query", "description": "筛选分组标签", "required": false, "schema": { "type": "string" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group/create": { "post": { "summary": "创建商品分组", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "name": { "description": "名称", "example": "", "type": "string" }, "note": { "description": "备注", "example": "", "type": "string" }, "disable": { "description": "是否隐藏", "example": "", "type": "boolean" }, "level": { "description": "分组层级", "example": "", "type": "string" }, "parent_id": { "description": "父级分组id", "example": 0, "type": "integer" }, "cover_id": { "description": "分组封面id", "example": 0, "type": "integer" }, "tag_id": { "description": "分组标签id", "example": 0, "type": "integer" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group/update": { "post": { "summary": "更新商品分组", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "id": { "description": "ID 编号", "example": "", "type": "string" }, "name": { "description": "名称", "example": "", "type": "string" }, "note": { "description": "备注", "example": "", "type": "string" }, "disable": { "description": "是否隐藏", "example": "", "type": "boolean" }, "level": { "description": "分组层级", "example": "", "type": "string" }, "parent_id": { "description": "父级分组id", "example": 0, "type": "integer" }, "cover_id": { "description": "分组封面id", "example": 0, "type": "integer" }, "tag_id": { "description": "分组标签id", "example": 0, "type": "integer" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group/disable": { "post": { "summary": "隐藏商品组", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "id": { "example": "", "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group/enable": { "post": { "summary": "启用商品组", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "id": { "description": "ID 编号", "example": "", "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group/delete": { "delete": { "summary": "删除商品分组", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "id": { "description": "ID 编号", "example": "", "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } } }, "components": { "schemas": {}, "responses": {}, "securitySchemes": {} }, "servers": [], "security": [] }
1.http://localhost:5173/product/group分组页的table是需要分页的 2.点击商品分组页面的添加子级分组点击分组封面并没有弹出 3.添加顶级分组和添加子级分组失败, curl ^"https://apiservertest.s1f.ren/api/v1/admin/good/group/create^" ^ -H ^"Accept: application/json, text/plain, /^" ^ -H ^"Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6^" ^ -H ^"Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzAwNTk3MzYsImlzX2FkbWluIjp0cnVlLCJrZXkiOiJSUkR2MFJmT2RZRXpXaXpPIiwidXNlcl9ncm91cCI6MTEsInVzZXJfaWQiOjQsInVzZXJfbmFtZSI6InNoaXJhbiJ9.R5aT8pnXiHb31raNWyOCd39sPz3voov-OtENWvWCjR0^" ^ -H ^"Connection: keep-alive^" ^ -H ^"Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryswFqovBifaqLkuBL^" ^ -H ^"Origin: http://localhost:5173^" ^ -H ^"Referer: http://localhost:5173/^" ^ -H ^"Sec-Fetch-Dest: empty^" ^ -H ^"Sec-Fetch-Mode: cors^" ^ -H ^"Sec-Fetch-Site: cross-site^" ^ -H ^"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0^" ^ -H ^"sec-ch-ua: ^^"Not(A:Brand^^";v=^^"8^^", ^^"Chromium^^";v=^^"144^^", ^^"Microsoft Edge^^";v=^^"144^^"^" ^ -H ^"sec-ch-ua-mobile: ?0^" ^ -H ^"sec-ch-ua-platform: ^^"Windows^^"^" ^ --data-raw ^"------WebKitFormBoundaryswFqovBifaqLkuBL^
Content-Disposition: form-data; name=^^"name^^"^
^
^ ^ ^ ^
------WebKitFormBoundaryswFqovBifaqLkuBL^
Content-Disposition: form-data; name=^^"note^^"^
^
^ ^ ^ ^
------WebKitFormBoundaryswFqovBifaqLkuBL^
Content-Disposition: form-data; name=^^"disable^^"^
^
false^
------WebKitFormBoundaryswFqovBifaqLkuBL^
Content-Disposition: form-data; name=^^"level^^"^
^
1^
------WebKitFormBoundaryswFqovBifaqLkuBL^
Content-Disposition: form-data; name=^^"parent_id^^"^
^
0^
------WebKitFormBoundaryswFqovBifaqLkuBL^
Content-Disposition: form-data; name=^^"cover_id^^"^
^
0^
------WebKitFormBoundaryswFqovBifaqLkuBL^
Content-Disposition: form-data; name=^^"tag_id^^"^
^
0^
------WebKitFormBoundaryswFqovBifaqLkuBL--^
^" 4.获取套餐列表失败 curl ^"https://apiservertest.s1f.ren/api/v1/admin/good/plan/list?good_id=29^" ^ -H ^"Accept: application/json, text/plain, /^" ^ -H ^"Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6^" ^ -H ^"Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzAwNTk3MzYsImlzX2FkbWluIjp0cnVlLCJrZXkiOiJSUkR2MFJmT2RZRXpXaXpPIiwidXNlcl9ncm91cCI6MTEsInVzZXJfaWQiOjQsInVzZXJfbmFtZSI6InNoaXJhbiJ9.R5aT8pnXiHb31raNWyOCd39sPz3voov-OtENWvWCjR0^" ^ -H ^"Connection: keep-alive^" ^ -H ^"Origin: http://localhost:5173^" ^ -H ^"Referer: http://localhost:5173/^" ^ -H ^"Sec-Fetch-Dest: empty^" ^ -H ^"Sec-Fetch-Mode: cors^" ^ -H ^"Sec-Fetch-Site: cross-site^" ^ -H ^"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0^" ^ -H ^"sec-ch-ua: ^^"Not(A:Brand^^";v=^^"8^^", ^^"Chromium^^";v=^^"144^^", ^^"Microsoft Edge^^";v=^^"144^^"^" ^ -H ^"sec-ch-ua-mobile: ?0^" ^ -H ^"sec-ch-ua-platform: ^^"Windows^^"^"
5.创建新套餐失败,为什么会发出两个请求一个是options一个是post curl ^"https://apiservertest.s1f.ren/api/v1/admin/good/plan/create^" ^ -H ^"Accept: application/json, text/plain, /^" ^ -H ^"Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6^" ^ -H ^"Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzAwNTk3MzYsImlzX2FkbWluIjp0cnVlLCJrZXkiOiJSUkR2MFJmT2RZRXpXaXpPIiwidXNlcl9ncm91cCI6MTEsInVzZXJfaWQiOjQsInVzZXJfbmFtZSI6InNoaXJhbiJ9.R5aT8pnXiHb31raNWyOCd39sPz3voov-OtENWvWCjR0^" ^ -H ^"Connection: keep-alive^" ^ -H ^"Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryKCGyplVDbP3o88BN^" ^ -H ^"Origin: http://localhost:5173^" ^ -H ^"Referer: http://localhost:5173/^" ^ -H ^"Sec-Fetch-Dest: empty^" ^ -H ^"Sec-Fetch-Mode: cors^" ^ -H ^"Sec-Fetch-Site: cross-site^" ^ -H ^"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0^" ^ -H ^"sec-ch-ua: ^^"Not(A:Brand^^";v=^^"8^^", ^^"Chromium^^";v=^^"144^^", ^^"Microsoft Edge^^";v=^^"144^^"^" ^ -H ^"sec-ch-ua-mobile: ?0^" ^ -H ^"sec-ch-ua-platform: ^^"Windows^^"^" ^ --data-raw ^"------WebKitFormBoundaryKCGyplVDbP3o88BN^
Content-Disposition: form-data; name=^^"good_id^^"^
^
29^
------WebKitFormBoundaryKCGyplVDbP3o88BN^
Content-Disposition: form-data; name=^^"name^^"^
^
adasd^
------WebKitFormBoundaryKCGyplVDbP3o88BN^
Content-Disposition: form-data; name=^^"note^^"^
^
adasd^
------WebKitFormBoundaryKCGyplVDbP3o88BN^
Content-Disposition: form-data; name=^^"args^^"^
^
^[^{^^"arg_id^^":1,^^"name^^":^^"cpu^^",^^"attr_id^^":1,^^"value^^":^^"50BG^^"^}^]^
------WebKitFormBoundaryKCGyplVDbP3o88BN^
Content-Disposition: form-data; name=^^"extra_arg_ids^^"^
^
1^
------WebKitFormBoundaryKCGyplVDbP3o88BN^
Content-Disposition: form-data; name=^^"index^^"^
^
1^
------WebKitFormBoundaryKCGyplVDbP3o88BN--^
^"
6.在商品列表的编辑商品的弹窗中的封面id的点击按钮需要切换为符合整体的样式参照其他选择id,封面的样式,这个使用AvatarSelector组件
7.创建新产品需要添加一个商品参数类型的选择,修改也是arg_type:商品参数类型 all 所有 / plan 套餐 / customize 自定义
8.新增商品分组标签管理,查看添加到什么位置比较合适
{ "openapi": "3.0.1", "info": { "title": "默认模块", "description": "", "version": "1.0.0" }, "tags": [], "paths": { "/api/v1/admin/good/group_tag/list": { "get": { "summary": "获取商品分组标签列表", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "page", "in": "query", "description": "获取页码 默认 1", "required": false, "schema": { "type": "string" } }, { "name": "count", "in": "query", "description": "获取条数 默认 10", "required": false, "schema": { "type": "string" } }, { "name": "key", "in": "query", "description": "关键词筛选", "required": false, "schema": { "type": "string" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group_tag/detail": { "get": { "summary": "获取商品分组标签详情", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "id", "in": "query", "description": "", "required": false, "schema": { "type": "string" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group_tag/create": { "post": { "summary": "创建商品分组标签", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "name": { "description": "名称", "example": "", "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group_tag/update": { "post": { "summary": "更新商品分组标签", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "id": { "description": "ID 编号", "example": "", "type": "string" }, "name": { "description": "名称", "example": "", "type": "string" } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } }, "/api/v1/admin/good/group_tag/delete": { "delete": { "summary": "删除商品分组标签", "deprecated": false, "description": "", "tags": [], "parameters": [ { "name": "id", "in": "query", "description": "ID 编号", "required": false, "schema": { "type": "string" } }, { "name": "Authorization", "in": "header", "description": "", "example": "Bearer {{token}}", "schema": { "type": "string", "default": "Bearer {{token}}" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": {} } } }, "headers": {} } }, "security": [] } } }, "components": { "schemas": {}, "responses": {}, "securitySchemes": {} }, "servers": [], "security": [] }
-----------------------------------------------------------------------------------------------需要解决
规则限制:
1.在-------需要解决的中间进行写是否解决问题的判断也可以列todolist便于查看是否完成
2.不要将我原本的问题进行删除了,只需要在范围的最后面添加todolist判断对应问题是否完成就可以了
3.在以后只要有添加时间选择器就要遵循以下规则
时间选择器接受的是毫秒级时间戳,获取时的时间转换,将ISO格式转换为毫秒级时间戳
- 列表展示使用formatDate函数
- 时间选择器正确显示毫秒级时间戳
- 提交时转换为秒级时间戳 4.后续每次写的页面,组件都需要兼容移动端 5.只要是关于选择用户,文件,优惠卷,代金卷的都使用组件 6.只要是弹窗需要使用选择组件的都参照用户列表的编辑用户的推介人的选择样式在弹窗中
一、项目结构 ✅
src/
├── api/ # API接口层
│ ├── admin/ # 管理后台API (12个文件)
│ │ ├── activity.js ├── cdn.js ├── discount.js
│ │ ├── file.js ├── group.js ├── order.js
│ │ ├── Permission.js ├── product.js ├── product-test.js
│ │ ├── router.js ├── setting.js └── user.js
│ ├── domain.js ├── groupBuy.js
│ ├── login.js └── ticket.js
├── components/ # 公共组件 (14个)
│ ├── admin/
│ │ ├── AvatarSelector.vue # 头像选择组件
│ │ └── FileSelector.vue # 文件/封面选择组件 ✅新增
│ ├── Charts/ # 图表组件 (4个)
│ ├── layout/ # 布局组件 (4个)
│ ├── marketing/DiscountDetailDialog.vue
│ ├── UserSelector/index.vue # 用户选择组件(推荐人选择)
│ ├── Container.vue ├── MonacoEditor.vue
│ ├── Qrcode.vue └── TextTruncate.vue
├── views/ # 页面视图 (67个)
├── store/ # 状态管理 (2个)
├── router/index.js # 路由配置
├── utils/ # 工具函数
│ └── acs/ # ACS云服务工具 (12个)
├── config/menus.js # 菜单配置
├── assets/ # 静态资源
├── App.vue # 应用入口
├── main.js # 主入口
└── style.css # 全局样式
二、API接口统计 ✅ (约240+个)
| 模块 | 文件 | 接口数 |
|---|---|---|
| 登录认证 | login.js | 2 |
| 工单管理 | ticket.js | 12 |
| 域名白名单 | domain.js | 3 |
| 拼团管理 | groupBuy.js | 18 |
| 用户管理 | admin/user.js | 28 |
| 商品管理 | admin/product.js | 19 |
| 订单管理 | admin/order.js | 5 |
| 优惠码/代金券 | admin/discount.js | 21 |
| 权限管理 | admin/Permission.js | 8 |
| 管理员组 | admin/group.js | 6 |
| 配置管理 | admin/setting.js | 11 |
| 文件管理 | admin/file.js | 7 |
| 活动管理 | admin/activity.js | 8 |
| 路由管理 | admin/router.js | 2 |
| CDN管理 | admin/cdn.js | 1 |
| ACS服务器 | utils/acs/server.js | 60+ |
| ACS镜像 | utils/acs/mirror.js | 11 |
| ACS消息 | utils/acs/message.js | 8 |
| ACS审计 | utils/acs/audit.js | 4 |
| ACS远程桌面 | utils/acs/guacamole.js | 5 |
三、页面视图统计 ✅ (67个)
| 分类 | 页面 | 数量 |
|---|---|---|
| 基础页面 | Login, Dashboard, NotFound, Redirect, About, Home | 6 |
| 用户管理 | UserList, UserDetail, UserBalance, UserGroup, AdminGroup | 5 |
| 商品管理 | ProductList, ProductGroup | 2 |
| 订单管理 | OrderList | 1 |
| 优惠营销 | DiscountCode, Voucher, VoucherManagement + 6个子页面 | 9 |
| 活动管理 | SigninActivity, GroupBuyActivity, GroupBuyType | 3 |
| 工单管理 | TicketList, TicketDetail, TicketChat | 3 |
| 系统管理 | PermissionRoute/Admin, SystemFile, DomainWhitelist, SettingGroup, Setting, OperationLog, Users | 8 |
| 站点审计 | AllSites, ViolationSites | 2 |
| 全局设置 | GlobalSetting | 1 |
| 个人中心 | UserInfo, ChangePassword | 2 |
| ACS消息 | Announcements, Policies, News | 3 |
| ACS镜像 | VmImages, ContainerImages, ImageCategories, ImageForm, ImageRequests | 5 |
| ACS节点 | Nodes, server, ServerForm, VmDetail, containDetail, containerConsole, containFile + 2组件 | 9 |
| ACS远程桌面 | Guacamole | 1 |
四、CSS样式统计 ✅
style.css 全局样式
| 类型 | 内容 |
|---|---|
| 重置样式 | * { margin:0; padding:0; box-sizing:border-box; } |
| 文字颜色 | .text-primary .text-success .text-warning .text-danger .text-info |
| 文字对齐 | .text-center .text-left .text-right |
| Flex布局 | .flex .flex-column .justify-center .justify-between .items-center |
| 尺寸 | .w-full .h-full |
| 间距 | .mb-10 .mt-10 .mr-10 .ml-10 .p-10 .py-10 .px-10 |
| 响应式 | .hidden-xs .hidden-sm .hidden-md .hidden-lg |
App.vue 全局样式
| 类型 | 内容 |
|---|---|
| 过渡动画 | .fade-enter-active .fade-leave-active |
| 滚动条 | ::-webkit-scrollbar 自定义滚动条 |
| 按钮扁平化 | .el-button--primary/success/danger/default 无圆角深蓝灰主题 |
| 输入框扁平化 | .el-input__wrapper 无圆角边框 |
| 标签扁平化 | .el-tag--success/danger/info 无圆角彩色背景 |
| 卡片扁平化 | .el-card 无圆角1px边框 |
| 表格扁平化 | .el-table 深蓝灰表头 |
| 分页扁平化 | .el-pagination 无圆角深蓝灰选中 |
| 下拉菜单 | .el-dropdown-menu 无圆角阴影边框 |
| 对话框 | .el-dialog 无圆角扁平化头部尾部 |
五、全局主题配置 ✅
主色调
| 颜色 | 值 | 用途 |
|---|---|---|
| 主色 | #1890ff |
Element Plus主题色 |
| 深蓝灰 | #2c3e50 |
按钮主色、表头、激活状态 |
| 次深蓝灰 | #34495e |
悬浮状态、文字 |
| 绿色 | #27ae60 / #52c41a |
成功状态 |
| 红色 | #e74c3c / #f5222d |
危险/错误状态 |
| 橙色 | #faad14 |
警告状态 |
| 蓝色 | #3498db |
链接、信息 |
| 紫色 | #722ed1 |
转化率图表 |
| 背景灰 | #f5f7fa / #f0f2f5 |
页面背景 |
| 边框灰 | #e1e8ed / #d5d9e0 |
边框分割线 |
设计风格
| 特性 | 说明 |
|---|---|
| 圆角 | 全局0圆角扁平化设计 |
| 阴影 | 轻阴影 0 2px 8px rgba(44,62,80,0.1) |
| 字体 | Helvetica Neue, PingFang SC, Microsoft YaHei |
| 字号 | 基础14px |
六、Store状态管理 ✅
| Store | 功能 |
|---|---|
| userStore.js | 用户信息存储 userInfo setUserInfo() |
| tagsViewStore.js | 多标签页管理 visitedViews addVisitedView() delVisitedView() delOthersViews() delAllViews() delLeftViews() delRightViews() |
七、技术栈 ✅
| 技术 | 版本 |
|---|---|
| Vue | ^3.5.13 |
| Vite | ^6.0.3 |
| Element Plus | ^2.9.1 |
| Vue Router | ^4.5.0 |
| Pinia | ^3.0.2 |
| Axios | ^1.7.9 |
| ECharts | ^5.6.0 |
| VueUse | ^13.1.0 |
| Monaco Editor | ^0.52.2 |
| Xterm.js | ^5.3.0 |
| qrcode | ^1.5.4 |
| dayjs | ^1.11.13 |
表单组件优化 ✅已完成
1. FileSelector 文件选择组件 ✅
位置: src/components/admin/FileSelector.vue
功能:
- 通用文件/封面选择器
- 支持文件列表分页、搜索
- 支持文件上传
- 支持图片预览
- 支持按文件类型筛选(image/document/video/audio)
- 已选文件信息显示
2. UserSelector 用户选择组件 ✅
位置: src/components/UserSelector/index.vue
功能:
- 用户列表搜索选择
- 用于推荐人ID等需要选择用户的场景
- 显示用户ID、用户名、邮箱
3. UserDetail 编辑表单优化 ✅
- 推荐人ID: 改为使用UserSelector组件,显示用户头像、用户名、ID
- 用户封面: 新增FileSelector组件,支持预览和选择图片
-----------------------------------------------------------------------------------------------需要解决 每次解决后的内容写在-需要解决之间,不要写在外面 我不要你解释,不是我主动告诉你解释需求,那么你就根据问题开始直接编写代码解决问题或者完善功能,问题都是用-需要解决隔开的 对应完成的部分在当前文档记录并且进行标记✅已完成、⚠️部分完成、❌未完成这样显示