fix:修改参数管理对接
This commit is contained in:
@@ -216,15 +216,23 @@
|
||||
style="width: 100%"
|
||||
:header-cell-style="{ background: '#fafafa', color: '#333', fontWeight: 600 }"
|
||||
>
|
||||
<el-table-column prop="id" label="参数ID" width="100" />
|
||||
<el-table-column prop="name" label="参数名称" min-width="150" />
|
||||
<el-table-column prop="type" label="参数类型" width="120">
|
||||
<el-table-column prop="id" label="参数ID" width="80" />
|
||||
<el-table-column prop="name" label="参数名称" min-width="120" />
|
||||
<el-table-column prop="type" label="参数类型" width="100">
|
||||
<template #default="{ row }">
|
||||
<el-tag :type="getArgTypeTag(row.type)">
|
||||
{{ getArgTypeText(row.type) }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数值配置" min-width="180">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.type === 'number'">
|
||||
<span class="number-config">步进: {{ row.step || '-' }} | 范围: {{ row.min ?? '-' }} ~ {{ row.max ?? '-' }}</span>
|
||||
</template>
|
||||
<span v-else class="text-muted">-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="250" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<div class="action-buttons">
|
||||
@@ -248,7 +256,7 @@
|
||||
ref="paramFormRef"
|
||||
:model="paramForm"
|
||||
:rules="paramRules"
|
||||
label-width="100px"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="参数名称" prop="arg_name">
|
||||
<el-input v-model="paramForm.arg_name" placeholder="请输入参数名称" />
|
||||
@@ -260,6 +268,19 @@
|
||||
<el-radio label="select">选择</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- number 类型参数的额外配置 -->
|
||||
<template v-if="paramForm.arg_type === 'number'">
|
||||
<el-divider content-position="left">数值参数配置</el-divider>
|
||||
<el-form-item label="步进值" prop="arg_step">
|
||||
<el-input-number v-model="paramForm.arg_step" :min="1" placeholder="步进值" style="width: 100%" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最小值" prop="arg_min">
|
||||
<el-input-number v-model="paramForm.arg_min" placeholder="最小值" style="width: 100%" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最大值" prop="arg_max">
|
||||
<el-input-number v-model="paramForm.arg_max" placeholder="最大值" style="width: 100%" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
@@ -289,15 +310,26 @@
|
||||
style="width: 100%; margin-top: 20px"
|
||||
:header-cell-style="{ background: '#fafafa', color: '#333', fontWeight: 600 }"
|
||||
>
|
||||
<el-table-column prop="id" label="值ID" width="100" />
|
||||
<el-table-column prop="name" label="值名称" min-width="150" />
|
||||
<el-table-column prop="value" label="值" min-width="150" />
|
||||
<el-table-column label="价格" width="120">
|
||||
<el-table-column prop="id" label="值ID" width="80" />
|
||||
<el-table-column prop="name" label="值名称" min-width="120" />
|
||||
<el-table-column label="值/范围" min-width="150">
|
||||
<template #default="{ row }">
|
||||
¥{{ (row.price / 100).toFixed(2) }}
|
||||
<template v-if="currentParam?.type === 'select'">
|
||||
{{ row.value || '-' }}
|
||||
</template>
|
||||
<template v-else-if="currentParam?.type === 'number'">
|
||||
<el-tag size="small" type="info">{{ getRangeTypeText(row.rangeType) }} {{ row.range }}</el-tag>
|
||||
</template>
|
||||
<template v-else>{{ row.value || '-' }}</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="200" fixed="right">
|
||||
<el-table-column prop="index" label="排序" width="80" />
|
||||
<el-table-column label="价格" width="100">
|
||||
<template #default="{ row }">
|
||||
¥{{ row.price }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="150" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<div class="action-buttons">
|
||||
<el-button type="primary" link @click="handleEditParamValue(row)">编辑</el-button>
|
||||
@@ -312,23 +344,41 @@
|
||||
<el-dialog
|
||||
v-model="paramValueFormDialogVisible"
|
||||
:title="paramValueFormType === 'add' ? '添加参数值' : '编辑参数值'"
|
||||
width="500px"
|
||||
width="550px"
|
||||
append-to-body
|
||||
>
|
||||
<el-form
|
||||
ref="paramValueFormRef"
|
||||
:model="paramValueForm"
|
||||
:rules="paramValueRules"
|
||||
label-width="100px"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="值名称" prop="attr_name">
|
||||
<el-input v-model="paramValueForm.attr_name" placeholder="请输入值名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="值" prop="attr_value">
|
||||
<el-input v-model="paramValueForm.attr_value" placeholder="请输入值" />
|
||||
<!-- select 类型显示参数值 -->
|
||||
<el-form-item v-if="currentParam?.type === 'select'" label="参数值" prop="attr_value">
|
||||
<el-input v-model="paramValueForm.attr_value" placeholder="请输入参数值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="价格(元)" prop="attr_price">
|
||||
<el-input-number v-model="paramValueForm.attr_price" :min="0" :precision="2" :step="0.01" placeholder="请输入价格" style="width: 100%" />
|
||||
<!-- number 类型显示范围配置 -->
|
||||
<template v-if="currentParam?.type === 'number'">
|
||||
<el-divider content-position="left">数值范围配置</el-divider>
|
||||
<el-form-item label="范围类型" prop="range_type">
|
||||
<el-select v-model="paramValueForm.range_type" placeholder="请选择范围类型" style="width: 100%">
|
||||
<el-option label="大于 (after)" value="after" />
|
||||
<el-option label="小于 (before)" value="before" />
|
||||
<el-option label="等于 (equal)" value="equal" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="范围值" prop="attr_range">
|
||||
<el-input-number v-model="paramValueForm.attr_range" placeholder="范围值" style="width: 100%" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
<el-form-item label="排序索引" prop="index">
|
||||
<el-input-number v-model="paramValueForm.index" :min="0" placeholder="排序索引" style="width: 100%" />
|
||||
</el-form-item>
|
||||
<el-form-item label="价格" prop="attr_price">
|
||||
<el-input-number v-model="paramValueForm.attr_price" :min="0" placeholder="请输入价格" style="width: 100%" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
@@ -686,7 +736,10 @@ const paramFormRef = ref(null)
|
||||
const paramForm = reactive({
|
||||
arg_id: undefined,
|
||||
arg_name: '',
|
||||
arg_type: 'string'
|
||||
arg_type: 'string',
|
||||
arg_step: 1,
|
||||
arg_min: 0,
|
||||
arg_max: 100
|
||||
})
|
||||
|
||||
const paramRules = {
|
||||
@@ -713,9 +766,7 @@ const paramValueForm = reactive({
|
||||
})
|
||||
|
||||
const paramValueRules = {
|
||||
attr_name: [{ required: true, message: '请输入值名称', trigger: 'blur' }],
|
||||
attr_value: [{ required: true, message: '请输入值', trigger: 'blur' }],
|
||||
attr_price: [{ required: true, message: '请输入价格', trigger: 'blur' }]
|
||||
attr_name: [{ required: true, message: '请输入值名称', trigger: 'blur' }]
|
||||
}
|
||||
|
||||
// 打开参数管理
|
||||
@@ -752,6 +803,12 @@ const getArgTypeTag = (type) => {
|
||||
return tagMap[type] || 'info'
|
||||
}
|
||||
|
||||
// 范围类型显示
|
||||
const getRangeTypeText = (type) => {
|
||||
const typeMap = { 'after': '大于 >', 'before': '小于 <', 'equal': '等于 =' }
|
||||
return typeMap[type] || type || '-'
|
||||
}
|
||||
|
||||
// 新增参数
|
||||
const handleAddParameter = () => {
|
||||
paramFormType.value = 'add'
|
||||
@@ -759,7 +816,10 @@ const handleAddParameter = () => {
|
||||
Object.assign(paramForm, {
|
||||
arg_id: undefined,
|
||||
arg_name: '',
|
||||
arg_type: 'string'
|
||||
arg_type: 'string',
|
||||
arg_step: 1,
|
||||
arg_min: 0,
|
||||
arg_max: 100
|
||||
})
|
||||
paramFormRef.value?.resetFields()
|
||||
}
|
||||
@@ -771,7 +831,10 @@ const handleEditParameter = (row) => {
|
||||
Object.assign(paramForm, {
|
||||
arg_id: row.id,
|
||||
arg_name: row.name,
|
||||
arg_type: row.type
|
||||
arg_type: row.type,
|
||||
arg_step: row.step || 1,
|
||||
arg_min: row.min || 0,
|
||||
arg_max: row.max || 100
|
||||
})
|
||||
}
|
||||
|
||||
@@ -802,6 +865,12 @@ const submitParamForm = () => {
|
||||
arg_name: paramForm.arg_name,
|
||||
arg_type: paramForm.arg_type
|
||||
}
|
||||
// number 类型添加额外参数
|
||||
if (paramForm.arg_type === 'number') {
|
||||
submitData.arg_step = Number(paramForm.arg_step)
|
||||
submitData.arg_min = Number(paramForm.arg_min)
|
||||
submitData.arg_max = Number(paramForm.arg_max)
|
||||
}
|
||||
if (paramFormType.value === 'edit') {
|
||||
submitData.arg_id = paramForm.arg_id
|
||||
}
|
||||
@@ -871,11 +940,11 @@ const handleEditParamValue = (row) => {
|
||||
Object.assign(paramValueForm, {
|
||||
attr_id: row.id,
|
||||
attr_name: row.name,
|
||||
attr_value: row.value,
|
||||
attr_price: row.price / 100,
|
||||
attr_value: row.value || '',
|
||||
attr_price: row.price || 0,
|
||||
index: row.index || 0,
|
||||
attr_range: row.attr_range || 0,
|
||||
range_type: row.range_type || 'equal'
|
||||
attr_range: row.range || 0,
|
||||
range_type: row.rangeType || 'equal'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -908,11 +977,17 @@ const submitParamValueForm = () => {
|
||||
good_id: Number(currentProductId.value),
|
||||
arg_id: Number(currentParam.value.id),
|
||||
attr_name: paramValueForm.attr_name,
|
||||
attr_value: paramValueForm.attr_value,
|
||||
attr_price: paramValueForm.attr_price,
|
||||
index: Number(paramValueForm.index),
|
||||
attr_range: Number(paramValueForm.attr_range),
|
||||
range_type: paramValueForm.range_type
|
||||
attr_price: Number(paramValueForm.attr_price)
|
||||
}
|
||||
// select 类型添加 attr_value
|
||||
if (currentParam.value.type === 'select') {
|
||||
submitData.attr_value = paramValueForm.attr_value
|
||||
}
|
||||
// number 类型添加范围参数
|
||||
if (currentParam.value.type === 'number') {
|
||||
submitData.attr_range = Number(paramValueForm.attr_range)
|
||||
submitData.range_type = paramValueForm.range_type
|
||||
}
|
||||
if (paramValueFormType.value === 'edit') {
|
||||
submitData.attr_id = paramValueForm.attr_id
|
||||
@@ -1080,5 +1155,14 @@ const submitParamValueForm = () => {
|
||||
justify-content: flex-end;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.number-config {
|
||||
color: #909399;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #c0c4cc;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
+516
-49
@@ -7,62 +7,17 @@
|
||||
},
|
||||
"tags": [],
|
||||
"paths": {
|
||||
"/api/v1/admin/order/list": {
|
||||
"/api/v1/admin/good/spec/list": {
|
||||
"get": {
|
||||
"summary": "获取订单列表",
|
||||
"summary": "获取商品参数列表",
|
||||
"deprecated": false,
|
||||
"description": "",
|
||||
"tags": [],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "count",
|
||||
"name": "good_id",
|
||||
"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": "state",
|
||||
"in": "query",
|
||||
"description": "状态筛选",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "user_id",
|
||||
"in": "query",
|
||||
"description": "用户id筛选",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "user_key",
|
||||
"in": "query",
|
||||
"description": "用户关键词筛选(用户名 手机号 邮箱)",
|
||||
"description": "商品id",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
@@ -95,6 +50,518 @@
|
||||
},
|
||||
"security": []
|
||||
}
|
||||
},
|
||||
"/api/v1/admin/good/spec/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": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"arg_name": {
|
||||
"description": "参数名称",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"arg_type": {
|
||||
"description": "参数类型 string | number | select",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"arg_step": {
|
||||
"description": "参数值步进值(number 类型参数)",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"arg_max": {
|
||||
"description": "参数值最大值(number 类型参数)",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"arg_min": {
|
||||
"description": "参数值最小值(number 类型参数)",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"headers": {}
|
||||
}
|
||||
},
|
||||
"security": []
|
||||
}
|
||||
},
|
||||
"/api/v1/admin/good/spec/detail": {
|
||||
"get": {
|
||||
"summary": "获取商品参数详情",
|
||||
"deprecated": false,
|
||||
"description": "",
|
||||
"tags": [],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "good_id",
|
||||
"in": "query",
|
||||
"description": "商品id",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_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/spec/update": {
|
||||
"post": {
|
||||
"summary": "更新商品参数",
|
||||
"deprecated": false,
|
||||
"description": "",
|
||||
"tags": [],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "good_id",
|
||||
"in": "query",
|
||||
"description": "商品id",
|
||||
"required": false,
|
||||
"example": "",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_id",
|
||||
"in": "query",
|
||||
"description": "参数id",
|
||||
"required": false,
|
||||
"example": "",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_name",
|
||||
"in": "query",
|
||||
"description": "参数名称",
|
||||
"required": false,
|
||||
"example": "",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_type",
|
||||
"in": "query",
|
||||
"description": "参数类型 string | number | select",
|
||||
"required": false,
|
||||
"example": "",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_step",
|
||||
"in": "query",
|
||||
"description": "参数值步进值(number 类型参数)",
|
||||
"required": false,
|
||||
"example": 0,
|
||||
"schema": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_max",
|
||||
"in": "query",
|
||||
"description": "参数值最大值(number 类型参数)",
|
||||
"required": false,
|
||||
"example": 0,
|
||||
"schema": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_min",
|
||||
"in": "query",
|
||||
"description": "参数值最小值(number 类型参数)",
|
||||
"required": false,
|
||||
"example": 0,
|
||||
"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/spec/delete": {
|
||||
"delete": {
|
||||
"summary": "删除商品参数",
|
||||
"deprecated": false,
|
||||
"description": "",
|
||||
"tags": [],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "good_id",
|
||||
"in": "query",
|
||||
"description": "商品id",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "arg_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/spec/add_value": {
|
||||
"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"
|
||||
},
|
||||
"arg_id": {
|
||||
"description": "参数id",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"attr_name": {
|
||||
"description": "值名称",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"attr_value": {
|
||||
"description": "参数值 (select 类型使用)",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"index": {
|
||||
"description": "商品参数排序索引",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"attr_range": {
|
||||
"description": "参数值范围 (number类型使用)",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"range_type": {
|
||||
"description": "参数值范围类型 after \\ before \\ equal (number类型使用)",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"attr_price": {
|
||||
"description": "价格",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"headers": {}
|
||||
}
|
||||
},
|
||||
"security": []
|
||||
}
|
||||
},
|
||||
"/api/v1/admin/good/spec/delete_value": {
|
||||
"delete": {
|
||||
"summary": "删除商品参数值",
|
||||
"deprecated": false,
|
||||
"description": "",
|
||||
"tags": [],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "good_id",
|
||||
"in": "query",
|
||||
"description": "商品id",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "attr_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/spec/update_value": {
|
||||
"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"
|
||||
},
|
||||
"attr_id": {
|
||||
"description": "参数值id",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"attr_name": {
|
||||
"description": "值名称",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"attr_value": {
|
||||
"description": "参数值 (select 类型使用)",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"attr_range": {
|
||||
"description": "参数值范围 (number类型使用)",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"index": {
|
||||
"description": "商品参数排序索引",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
},
|
||||
"range_type": {
|
||||
"description": "参数值范围类型 after \\ before \\ equal (number类型使用)",
|
||||
"example": "",
|
||||
"type": "string"
|
||||
},
|
||||
"attr_price": {
|
||||
"description": "价格",
|
||||
"example": 0,
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"headers": {}
|
||||
}
|
||||
},
|
||||
"security": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
|
||||
Reference in New Issue
Block a user