Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
op-web-service
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
op-web-service
Commits
06e8b187
Commit
06e8b187
authored
Jul 06, 2021
by
mengwenhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feature:设置菜单
parent
121e76bb
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
632 additions
and
431 deletions
+632
-431
index.css
src/pages/Goods/Detail/index.css
+0
-45
index.vue
src/pages/Goods/List/index.vue
+214
-206
index.vue
src/pages/Goods/Retail/index.vue
+235
-180
User.vue
src/pages/Goods/components/PageHeader/User.vue
+54
-0
config.js
src/pages/Goods/components/PageHeader/config.js
+26
-0
index.vue
src/pages/Goods/components/PageHeader/index.vue
+73
-0
index.less
src/pages/Goods/layout/index.less
+9
-0
index.vue
src/pages/Goods/layout/index.vue
+21
-0
No files found.
src/pages/Goods/Detail/index.css
deleted
100644 → 0
View file @
121e76bb
.detail
{
height
:
100%
;
}
.detail
.state
{
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-start
;
}
.detail
.state
.some_state
{
display
:
inline
;
}
.detail
.state
.update_time
{
margin
:
0
20px
;
}
.detail
.message
{
display
:
flex
;
justify-content
:
flex-start
;
}
.message_border
{
margin
:
10px
0
;
}
.width50p
{
width
:
50%
;
padding
:
20px
;
}
.el-textarea
.el-textarea__inner
{
resize
:
none
;
}
.operationButton
{
margin-top
:
30px
;
display
:
flex
;
justify-content
:
center
;
}
.deep_place
.el-form-item__content
{
display
:
flex
;
align-items
:
center
;
}
.deep_place
a
{
margin-left
:
10px
;
text-align
:
center
;
width
:
200px
;
border-radius
:
20px
;
color
:
#fff
;
background-color
:
#199ffb
;
}
src/pages/Goods/List/index.vue
View file @
06e8b187
<
template
>
<
template
>
<el-card
class=
"goods"
>
<layout>
<!-- 筛选区 -->
<el-card
class=
"goods"
>
<el-form
<!-- 筛选区 -->
inline
<el-form
class=
"search_condition"
inline
>
class=
"search_condition"
<!-- 商品id -->
<el-form-item
label=
"商品id"
>
<el-input
v-model=
"searchProps.goods_spu_id"
></el-input>
</el-form-item>
<!-- 商品名称 -->
<el-form-item
label=
"商品名称"
>
<el-input
v-model=
"searchProps.goods_name"
></el-input>
</el-form-item>
<!-- 所属分类 -->
<el-form-item
label=
"所属分类"
>
<el-cascader
@
change=
"handleTypeChange"
:options=
"labelOptions"
:props=
"cascaderProps"
collapse-tags
clearable
></el-cascader>
</el-form-item>
<!-- 生活号ID -->
<el-form-item
label=
"生活号id"
>
<el-input
v-model=
"searchProps.life_account_id"
></el-input>
</el-form-item>
<!-- 生活号名称 -->
<el-form-item
label=
"生活号名称"
>
<el-input
v-model=
"searchProps.life_account_name"
></el-input>
</el-form-item>
<!-- 商品状态 -->
<el-form-item
label=
"商品状态"
>
<el-select
v-model=
"audit_status"
multiple
collapse-tags
@
change=
"handleStatusChange"
>
<el-option
v-for=
"item in stateOption"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"上架状态"
>
<el-select
v-model=
"onlineStatus"
multiple
collapse-tags
@
change=
"handleOnlineStatusChange"
>
<el-option
v-for=
"item in onlineStateOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<!-- 按钮操作 -->
<el-form-item
style=
"justify-self: flex-end;"
>
<el-button
@
click=
"searchList"
type=
"primary"
>
搜索
</el-button>
<el-button
@
click=
"resetList"
>
重置
</el-button>
</el-form-item>
</el-form>
<!-- 列表区 -->
<el-table
class=
"goods_list"
:data=
"goodsList"
border
stripe
>
<el-table-column
label=
"商品id"
prop=
"goods_spu_id"
align=
"center"
></el-table-column>
<el-table-column
label=
"商品名称"
prop=
"goods_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"一级分类"
prop=
"category_1_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"二级分类"
prop=
"category_2_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"生活号id"
prop=
"life_account_id"
align=
"center"
></el-table-column>
<el-table-column
label=
"生活号名称"
prop=
"life_account_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"发布者"
prop=
"publish_user_id"
align=
"center"
></el-table-column>
<el-table-column
label=
"状态"
align=
"center"
>
>
<template
#
default=
"scope"
>
<!-- 商品id -->
<span
<el-form-item
label=
"商品id"
>
v-if=
"scope.row.audit_status == 0"
<el-input
v-model=
"searchProps.goods_spu_id"
></el-input>
style=
"color:#FF982C;"
</el-form-item>
>
待审核
</span>
<!-- 商品名称 -->
<span
<el-form-item
label=
"商品名称"
>
v-if=
"scope.row.audit_status == 1"
<el-input
v-model=
"searchProps.goods_name"
></el-input>
style=
"color:#5CC247;"
</el-form-item>
>
审核通过
</span>
<!-- 所属分类 -->
<span
<el-form-item
label=
"所属分类"
>
v-if=
"scope.row.audit_status == 2"
<el-cascader
style=
"color:#FD6B6F;"
@
change=
"handleTypeChange"
>
审核驳回
</span>
:options=
"labelOptions"
:props=
"cascaderProps"
<span
collapse-tags
v-if=
"scope.row.online_status == 0"
clearable
style=
"color:#FF982C;"
></el-cascader>
>
未上架
</span>
</el-form-item>
<span
<!-- 生活号ID -->
v-if=
"scope.row.online_status == 1"
<el-form-item
label=
"生活号id"
>
style=
"color:#5CC247;"
<el-input
v-model=
"searchProps.life_account_id"
></el-input>
>
已上架
</span>
</el-form-item>
<span
<!-- 生活号名称 -->
v-if=
"scope.row.online_status == 2"
<el-form-item
label=
"生活号名称"
>
style=
"color:#FD6B6F;"
<el-input
v-model=
"searchProps.life_account_name"
></el-input>
>
已下架
</span>
</el-form-item>
</
template
>
<!-- 商品状态 -->
</el-table-column>
<el-form-item
label=
"商品状态"
>
<el-table-column
<el-select
label=
"状态更新时间"
v-model=
"audit_status"
prop=
"update_time"
multiple
align=
"center"
collapse-tags
></el-table-column>
@
change=
"handleStatusChange"
<el-table-column
>
label=
"商品创建时间"
<el-option
prop=
"create_time"
v-for=
"item in stateOption"
align=
"center"
:key=
"item.value"
></el-table-column>
:label=
"item.label"
<!-- 操作快捷键 -->
:value=
"item.value"
<el-table-column
></el-option>
label=
"操作"
</el-select>
align=
"center"
</el-form-item>
fixed=
"right"
<el-form-item
label=
"上架状态"
>
width=
"200"
<el-select
>
v-model=
"onlineStatus"
<
template
#
default=
"scope"
>
multiple
collapse-tags
@
change=
"handleOnlineStatusChange"
>
<el-option
v-for=
"item in onlineStateOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<!-- 按钮操作 -->
<el-form-item
style=
"justify-self: flex-end;"
>
<el-button
<el-button
type=
"text"
@
click=
"searchList"
@
click=
"goDetail(`EDIT`,scope.row.goods_spu_id)"
type=
"primary"
>
编辑
</el-button>
>
搜索
</el-button>
<el-button
@
click=
"resetList"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-button
<!-- 列表区 -->
v-if=
"scope.row.audit_status == 0"
<el-table
type=
"text"
class=
"goods_list"
@
click=
"goDetail(`AUDIT`,scope.row.goods_spu_id)"
:data=
"goodsList"
>
审核
</el-button>
border
stripe
>
<el-table-column
label=
"商品id"
prop=
"goods_spu_id"
align=
"center"
></el-table-column>
<el-table-column
label=
"商品名称"
prop=
"goods_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"一级分类"
prop=
"category_1_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"二级分类"
prop=
"category_2_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"生活号id"
prop=
"life_account_id"
align=
"center"
></el-table-column>
<el-table-column
label=
"生活号名称"
prop=
"life_account_name"
align=
"center"
></el-table-column>
<el-table-column
label=
"发布者"
prop=
"publish_user_id"
align=
"center"
></el-table-column>
<el-table-column
label=
"状态"
align=
"center"
>
<template
#
default=
"scope"
>
<span
v-if=
"scope.row.audit_status == 0"
style=
"color:#FF982C;"
>
待审核
</span>
<span
v-if=
"scope.row.audit_status == 1"
style=
"color:#5CC247;"
>
审核通过
</span>
<span
v-if=
"scope.row.audit_status == 2"
style=
"color:#FD6B6F;"
>
审核驳回
</span>
<span
v-if=
"scope.row.online_status == 0"
style=
"color:#FF982C;"
>
未上架
</span>
<span
v-if=
"scope.row.online_status == 1"
style=
"color:#5CC247;"
>
已上架
</span>
<span
v-if=
"scope.row.online_status == 2"
style=
"color:#FD6B6F;"
>
已下架
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态更新时间"
prop=
"update_time"
align=
"center"
></el-table-column>
<el-table-column
label=
"商品创建时间"
prop=
"create_time"
align=
"center"
></el-table-column>
<!-- 操作快捷键 -->
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
width=
"200"
>
<
template
#
default=
"scope"
>
<el-button
type=
"text"
@
click=
"goDetail(`EDIT`,scope.row.goods_spu_id)"
>
编辑
</el-button>
<!-- v-if="scope.row.audit_status == 1 && scope.row.online_status == 2 || scope.row.audit_status == 1 && scope.row.online_status == 0" -->
<el-button
<el-popconfirm
v-if=
"scope.row.audit_status == 0"
title=
"您确定要上架该商品吗?"
type=
"text"
cancelButtonType=
"default"
@
click=
"goDetail(`AUDIT`,scope.row.goods_spu_id)"
@
confirm=
"changeGoodsState('GROUNDING', scope.row.goods_spu_id)"
>
审核
</el-button>
>
<template
#
reference
>
<el-button
type=
"text"
>
上架
</el-button>
</
template
>
</el-popconfirm>
<!-- v-if="scope.row.online_status == 1" -->
<!-- v-if="scope.row.audit_status == 1 && scope.row.online_status == 2 || scope.row.audit_status == 1 && scope.row.online_status == 0" -->
<el-popconfirm
<el-popconfirm
title=
"您确定要下架该商品吗?"
title=
"您确定要上架该商品吗?"
cancelButtonType=
"default"
cancelButtonType=
"default"
@
confirm=
"
@
confirm=
"changeGoodsState('GROUNDING', scope.row.goods_spu_id)"
>
<template
#
reference
>
<el-button
type=
"text"
>
上架
</el-button>
</
template
>
</el-popconfirm>
<!-- v-if="scope.row.online_status == 1" -->
<el-popconfirm
title=
"您确定要下架该商品吗?"
cancelButtonType=
"default"
@
confirm=
"
changeGoodsState('UNDERCARRIAGE', scope.row.goods_spu_id)
changeGoodsState('UNDERCARRIAGE', scope.row.goods_spu_id)
"
"
>
>
<
template
#
reference
>
<
template
#
reference
>
<el-button
type=
"text"
>
下架
</el-button>
<el-button
type=
"text"
>
下架
</el-button>
</
template
>
</
template
>
</el-popconfirm>
</el-popconfirm>
</template>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!-- 页码区 -->
<el-pagination
class=
"pagination"
@
current-change=
"handleCurrentChange"
v-model:currentPage=
"searchProps.page"
:page-size=
"searchProps.page_size"
layout=
"total,prev, pager, next, jumper"
:total=
"totalCount"
>
</el-pagination>
</el-card>
</layout>
<!-- 页码区 -->
<el-pagination
class=
"pagination"
@
current-change=
"handleCurrentChange"
v-model:currentPage=
"searchProps.page"
:page-size=
"searchProps.page_size"
layout=
"total,prev, pager, next, jumper"
:total=
"totalCount"
>
</el-pagination>
</el-card>
</template>
</template>
<
style
lang=
"less"
src=
"./index.less"
scope
></
style
>
<
style
lang=
"less"
src=
"./index.less"
scope
></
style
>
...
@@ -224,9 +227,14 @@ import {
...
@@ -224,9 +227,14 @@ import {
putOnline
,
putOnline
,
putOffline
putOffline
}
from
"@/service/Goods/goods"
;
}
from
"@/service/Goods/goods"
;
import
Layout
from
'../layout/index.vue'
export
default
{
export
default
{
name
:
"GoodsList"
,
name
:
"GoodsList"
,
components
:
{
Layout
},
created
()
{
created
()
{
// 获取级联选择
// 获取级联选择
this
.
getOptionList
();
this
.
getOptionList
();
...
...
src/pages/Goods/Retail/index.vue
View file @
06e8b187
<
template
>
<
template
>
<el-card
class=
"container"
style=
"width: 100%; height: 100%"
>
<layout>
<div
class=
"retail"
>
<el-card
<el-form
inline
:model=
"retailActivitie"
ref=
"retailActivitie"
>
class=
"container"
<!-- 查询 -->
style=
"width: 100%; height: 100%"
<el-row>
>
<el-form-item
label=
"分销活动id"
prop=
"marketing_id"
>
<div
class=
"retail"
>
<!-- :rules="[
{ type: 'number', message: '活动id必须为数字值' }]" -->
<el-form
<el-input
inline
onkeyup=
"value=value.replace(/[^\d]/g,'')"
:model=
"retailActivitie"
v-model
.
number=
"retailActivitie.marketing_id"
ref=
"retailActivitie"
></el-input>
</el-form-item>
<el-form-item
label=
"分销活动名称"
>
<el-input
v-model=
"retailActivitie.marketing_name"
></el-input>
</el-form-item>
<el-form-item
label=
"商品id"
>
<el-input
v-model=
"retailActivitie.goods_sku_id"
></el-input>
</el-form-item>
<el-form-item
label=
"状态"
>
<el-select
v-model=
"retailActivitie.online_status"
multiple
collapse-tags
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<!-- 按钮操作 -->
<el-form-item
class=
"search_button"
>
<el-button
type=
"primary"
@
click=
"toSearch"
>
搜索
</el-button>
<el-button
@
click=
"reset('retailActivitie')"
>
重置
</el-button>
</el-form-item>
</el-row>
<el-button
type=
"primary"
style=
"margin-bottom: 10px"
@
click=
"createDtb"
>
创建分销活动
</el-button
>
>
<!-- Tab -->
<!-- 查询 -->
<el-table
:data=
"tableData"
type=
"index"
align=
"center"
border
>
<el-row>
<el-table-column
<el-form-item
align=
"center"
label=
"分销活动id"
prop=
"marketing_id"
prop=
"marketing_id"
fixed
>
label=
"分销活动id"
<!-- :rules="[
{ type: 'number', message: '活动id必须为数字值' }]" -->
>
<el-input
</el-table-column>
onkeyup=
"value=value.replace(/[^\d]/g,'')"
<el-table-column
v-model
.
number=
"retailActivitie.marketing_id"
align=
"center"
></el-input>
prop=
"marketing_name"
</el-form-item>
label=
"分销活动名称"
<el-form-item
label=
"分销活动名称"
>
>
<el-input
v-model=
"retailActivitie.marketing_name"
></el-input>
</el-table-column>
</el-form-item>
<el-table-column
<el-form-item
label=
"商品id"
>
align=
"center"
<el-input
v-model=
"retailActivitie.goods_sku_id"
></el-input>
prop=
"commission_mode"
</el-form-item>
label=
"关联商品数"
<el-form-item
label=
"状态"
>
>
<el-select
</el-table-column>
v-model=
"retailActivitie.online_status"
<el-table-column
multiple
align=
"center"
collapse-tags
prop=
"first_commission_value"
>
label=
"一级分销金额"
<el-option
>
v-for=
"item in options"
</el-table-column>
:key=
"item.value"
<el-table-column
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<!-- 按钮操作 -->
<el-form-item
class=
"search_button"
>
<el-button
type=
"primary"
@
click=
"toSearch"
>
搜索
</el-button>
<el-button
@
click=
"reset('retailActivitie')"
>
重置
</el-button>
</el-form-item>
</el-row>
<el-button
type=
"primary"
style=
"margin-bottom: 10px"
@
click=
"createDtb"
>
创建分销活动
</el-button>
<!-- Tab -->
<el-table
:data=
"tableData"
type=
"index"
align=
"center"
align=
"center"
prop=
"second_commission_value"
border
label=
"二级分销金额"
>
>
</el-table-column>
<el-table-column
<el-table-column
align=
"center"
prop=
"online_status"
label=
"状态"
>
align=
"center"
<template
#
default=
"scope"
>
prop=
"marketing_id"
<span
fixed
:style=
"
{ color: scope.row.online_status == 3 ? 'red' : '' }"
label=
"分销活动id"
>
>
{{
</el-table-column>
<el-table-column
align=
"center"
prop=
"marketing_name"
label=
"分销活动名称"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"commission_mode"
label=
"关联商品数"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"first_commission_value"
label=
"一级分销金额"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"second_commission_value"
label=
"二级分销金额"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"online_status"
label=
"状态"
>
<template
#
default=
"scope"
>
<span
:style=
"
{ color: scope.row.online_status == 3 ? 'red' : '' }">
{{
scope
.
row
.
online_status
==
2
scope
.
row
.
online_status
==
2
?
"关闭"
?
"关闭"
:
scope
.
row
.
online_status
==
1
:
scope
.
row
.
online_status
==
1
?
"启用"
?
"启用"
:
"到期"
:
"到期"
}}
}}
</span>
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
align=
"center"
align=
"center"
prop=
"create_user_email"
prop=
"create_user_email"
label=
"创建人"
label=
"创建人"
>
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
prop=
"create_time"
label=
"创建时间"
>
<el-table-column
</el-table-column>
align=
"center"
<el-table-column
align=
"center"
prop=
"update_time"
label=
"更新时间"
>
prop=
"create_time"
</el-table-column>
label=
"创建时间"
<el-table-column
align=
"center"
prop=
"end_time"
label=
"分销到期时间"
>
>
</el-table-column>
</el-table-column>
<el-table-column
fixed=
"right"
align=
"center"
label=
"操作"
>
<el-table-column
<
template
#
default=
"scope"
>
align=
"center"
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"mini"
prop=
"update_time"
>
查看
</el-button
label=
"更新时间"
>
>
<el-button
</el-table-column>
type=
"text"
<el-table-column
size=
"mini"
align=
"center"
@
click
.
stop=
"handelEnable(scope.row, 2)"
prop=
"end_time"
v-if=
"
label=
"分销到期时间"
>
</el-table-column>
<el-table-column
fixed=
"right"
align=
"center"
label=
"操作"
>
<
template
#
default=
"scope"
>
<el-button
@
click=
"handleClick(scope.row)"
type=
"text"
size=
"mini"
>
查看
</el-button>
<el-button
type=
"text"
size=
"mini"
@
click
.
stop=
"handelEnable(scope.row, 2)"
v-if=
"
scope.row.online_status === 1 && scope.row.online_status !== 3
scope.row.online_status === 1 && scope.row.online_status !== 3
"
"
>
>
关闭
关闭
</el-button>
</el-button>
<el-button
<el-button
type=
"text"
type=
"text"
size=
"mini"
size=
"mini"
v-if=
"
v-if=
"
scope.row.online_status === 2 && scope.row.online_status !== 3
scope.row.online_status === 2 && scope.row.online_status !== 3
"
"
@
click
.
stop=
"handelEnable(scope.row, 1)"
@
click
.
stop=
"handelEnable(scope.row, 1)"
>
启用
</el-button
>
启用
</el-button
>
>
</
template
>
</
template
>
</
el-table-column
>
</el-table
-column
>
</el-table>
</el-
table
>
</el-
form
>
</
el-form
>
</
div
>
</div
>
<!-- 页码区 --
>
<!-- 页码区 -->
<el-pagination
<el-pagination
class=
"pagination"
class=
"pagination
"
@
current-change=
"handleCurrentChange
"
@
current-change=
"handleCurrentChan
ge"
v-model
.
current-page=
"retailActivitie.pa
ge"
v-model
.
current-page=
"retailActivitie.pag
e"
:page-size=
"retailActivitie.page_siz
e"
:page-size=
"retailActivitie.page_size
"
layout=
"prev, pager, next, jumper, ->,page , total
"
layout=
"prev, pager, next, jumper, ->,page , total
"
:total=
"retailActivitie.count
"
:total=
"retailActivitie.count"
>
>
</el-pagination
>
</el-
pagination
>
</el-
card
>
</
el-card
>
</
layout
>
<!-- 创建分销活动 -->
<!-- 创建分销活动 -->
<el-dialog
<el-dialog
v-show=
"shopStart == 0"
:fullscreen=
"true"
fullscreen
title=
"创建分销活动"
title=
"创建分销活动"
v-model=
"dialogFormVisible"
v-model=
"dialogFormVisible"
width=
"100%"
width=
"100%"
:show-close=
"false"
:show-close=
"false"
dialogClass=
"no-close"
>
>
<div
class=
"bor"
>
<div
class=
"bor"
>
<el-row
:gutter=
"50"
>
<el-row
:gutter=
"50"
>
...
@@ -171,7 +210,10 @@
...
@@ -171,7 +210,10 @@
:disabled=
"shopStart !== 0"
:disabled=
"shopStart !== 0"
></el-input>
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"一级佣金:"
prop=
"first_commission_value"
>
<el-form-item
label=
"一级佣金:"
prop=
"first_commission_value"
>
<el-input
<el-input
v-model=
"ruleForm.first_commission_value"
v-model=
"ruleForm.first_commission_value"
:disabled=
"shopStart !== 0"
:disabled=
"shopStart !== 0"
...
@@ -206,7 +248,10 @@
...
@@ -206,7 +248,10 @@
ref=
"ruleIdForm"
ref=
"ruleIdForm"
size=
"mini"
size=
"mini"
>
>
<div
class=
"queryBox"
v-show=
"shopStart == 0"
>
<div
class=
"queryBox"
v-show=
"shopStart == 0"
>
<el-form-item
label=
"关联商品:"
>
</el-form-item>
<el-form-item
label=
"关联商品:"
>
</el-form-item>
<el-form-item
label=
"商品id:"
>
<el-form-item
label=
"商品id:"
>
<el-input
<el-input
...
@@ -225,8 +270,7 @@
...
@@ -225,8 +270,7 @@
size=
"mini"
size=
"mini"
style=
"margin-bottom: 30px"
style=
"margin-bottom: 30px"
@
click=
"findProducts"
@
click=
"findProducts"
>
查询
</el-button
>
查询
</el-button>
>
</div>
</div>
<div
:class=
"shopStart == 0 ? 'newTab' : 'readTab'"
>
<div
:class=
"shopStart == 0 ? 'newTab' : 'readTab'"
>
<el-table
<el-table
...
@@ -239,7 +283,10 @@
...
@@ -239,7 +283,10 @@
style=
"width: 100%"
style=
"width: 100%"
@
selection-change=
"selectGoodsChange"
@
selection-change=
"selectGoodsChange"
>
>
<el-table-column
align=
"center"
type=
"selection"
>
<el-table-column
align=
"center"
type=
"selection"
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
align=
"center"
align=
"center"
...
@@ -273,7 +320,11 @@
...
@@ -273,7 +320,11 @@
</div>
</div>
<
template
#
footer
>
<
template
#
footer
>
<span
class=
"dialog-footer"
>
<span
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"cancel"
style=
"width: 150px"
>
{{
<el-button
type=
"primary"
@
click=
"cancel"
style=
"width: 150px"
>
{{
shopStart
==
0
?
"取消"
:
"返回"
shopStart
==
0
?
"取消"
:
"返回"
}}
</el-button>
}}
</el-button>
<el-button
<el-button
...
@@ -281,8 +332,7 @@
...
@@ -281,8 +332,7 @@
@
click=
"addList"
@
click=
"addList"
style=
"width: 150px"
style=
"width: 150px"
v-if=
"shopStart == 0"
v-if=
"shopStart == 0"
>
确 定
</el-button
>
确 定
</el-button>
>
</span>
</span>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
...
@@ -293,11 +343,12 @@ import {
...
@@ -293,11 +343,12 @@ import {
getFindGoodsList
,
getFindGoodsList
,
getAddMarketingList
,
getAddMarketingList
,
getMarketingInfo
,
getMarketingInfo
,
updateMarketingList
,
updateMarketingList
}
from
"@/service/Goods/goods"
;
}
from
"@/service/Goods/goods"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
ElMessage
}
from
"element-plus"
;
import
Layout
from
"../layout/index.vue"
;
// 开启关闭防抖
// 开启关闭防抖
function
debounce
(
callback
,
delay
)
{
function
debounce
(
callback
,
delay
)
{
let
timer
=
null
;
let
timer
=
null
;
return
function
(...
args
)
{
return
function
(...
args
)
{
if
(
timer
)
{
if
(
timer
)
{
...
@@ -311,7 +362,8 @@ function debounce(callback, delay) {
...
@@ -311,7 +362,8 @@ function debounce(callback, delay) {
}
}
export
default
{
export
default
{
name
:
"GoodsRetail"
,
name
:
"GoodsRetail"
,
data
()
{
components
:
{
Layout
},
data
()
{
return
{
return
{
tableData
:
[{
create_user_email
:
"v-pengyuqian@yidian-inc.com"
}],
tableData
:
[{
create_user_email
:
"v-pengyuqian@yidian-inc.com"
}],
// 详情页
// 详情页
...
@@ -320,14 +372,14 @@ export default {
...
@@ -320,14 +372,14 @@ export default {
first_commission_value
:
""
,
first_commission_value
:
""
,
second_commission_value
:
""
,
second_commission_value
:
""
,
start_time
:
""
,
start_time
:
""
,
end_time
:
""
,
end_time
:
""
},
},
goods_list
:
[],
goods_list
:
[],
options
:
[
options
:
[
{
value
:
0
,
label
:
"全部"
},
{
value
:
0
,
label
:
"全部"
},
{
value
:
1
,
label
:
"启用"
},
{
value
:
1
,
label
:
"启用"
},
{
value
:
2
,
label
:
"关闭"
},
{
value
:
2
,
label
:
"关闭"
},
{
value
:
3
,
label
:
"到期"
}
,
{
value
:
3
,
label
:
"到期"
}
],
],
// 搜索条件
// 搜索条件
retailActivitie
:
{
retailActivitie
:
{
...
@@ -337,7 +389,7 @@ export default {
...
@@ -337,7 +389,7 @@ export default {
online_status
:
[],
online_status
:
[],
page
:
1
,
page
:
1
,
page_size
:
5
,
page_size
:
5
,
count
:
0
,
count
:
0
},
},
ruleForm
:
{
ruleForm
:
{
...
@@ -346,23 +398,23 @@ export default {
...
@@ -346,23 +398,23 @@ export default {
second_commission_value
:
""
,
second_commission_value
:
""
,
start_time
:
""
,
start_time
:
""
,
end_time
:
""
,
end_time
:
""
,
goods_sku_id
:
[]
,
goods_sku_id
:
[]
},
},
timeSelect
:
[],
timeSelect
:
[],
ruleIdForm
:
{
ruleIdForm
:
{
life_account_id
:
""
,
life_account_id
:
""
,
goods_sku_id
:
""
,
goods_sku_id
:
""
,
start_time
:
""
,
start_time
:
""
,
end_time
:
""
,
end_time
:
""
},
},
rules
:
{
rules
:
{
marketing_name
:
[
marketing_name
:
[
{
required
:
true
,
message
:
"请输入活动名称"
,
trigger
:
"blur"
},
{
required
:
true
,
message
:
"请输入活动名称"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
50
,
message
:
"长度在 50个字符内"
,
trigger
:
"blur"
}
,
{
min
:
1
,
max
:
50
,
message
:
"长度在 50个字符内"
,
trigger
:
"blur"
}
],
],
first_commission_value
:
[
first_commission_value
:
[
{
required
:
true
,
message
:
"请填写一级佣金"
,
trigger
:
"blur"
}
,
{
required
:
true
,
message
:
"请填写一级佣金"
,
trigger
:
"blur"
}
]
,
]
// goods_sku_id: [
// goods_sku_id: [
// { type: "number", message: "商品id必须为数字值", trigger: "change" },
// { type: "number", message: "商品id必须为数字值", trigger: "change" },
// ],
// ],
...
@@ -374,12 +426,12 @@ export default {
...
@@ -374,12 +426,12 @@ export default {
endTime
:
""
,
endTime
:
""
,
marketing_id
:
""
,
marketing_id
:
""
,
marketing_info
:
{},
marketing_info
:
{},
disabled
:
false
,
disabled
:
false
};
};
},
},
methods
:
{
methods
:
{
// 查看详情列表
// 查看详情列表
async
handleClick
(
row
)
{
async
handleClick
(
row
)
{
this
.
dialogFormVisible
=
true
;
this
.
dialogFormVisible
=
true
;
this
.
shopStart
=
1
;
this
.
shopStart
=
1
;
this
.
disabled
=
true
;
this
.
disabled
=
true
;
...
@@ -395,13 +447,13 @@ export default {
...
@@ -395,13 +447,13 @@ export default {
}
}
},
},
// 页码变化
// 页码变化
handleCurrentChange
(
e
)
{
handleCurrentChange
(
e
)
{
this
.
retailActivitie
.
page
=
e
;
this
.
retailActivitie
.
page
=
e
;
this
.
getMarketingList
();
this
.
getMarketingList
();
},
},
// 营销活动列表
// 营销活动列表
async
getMarketingList
()
{
async
getMarketingList
()
{
try
{
try
{
const
res
=
await
getMarketingList
(
this
.
retailActivitie
);
const
res
=
await
getMarketingList
(
this
.
retailActivitie
);
this
.
tableData
=
res
.
result
;
this
.
tableData
=
res
.
result
;
...
@@ -442,7 +494,7 @@ export default {
...
@@ -442,7 +494,7 @@ export default {
try
{
try
{
await
updateMarketingList
({
await
updateMarketingList
({
marketing_id
:
row
.
marketing_id
,
marketing_id
:
row
.
marketing_id
,
online_status
:
type
,
online_status
:
type
});
});
this
.
getMarketingList
();
this
.
getMarketingList
();
ElMessage
.
success
(
type
===
1
?
"状态已启用"
:
"状态已关闭"
);
ElMessage
.
success
(
type
===
1
?
"状态已启用"
:
"状态已关闭"
);
...
@@ -451,29 +503,29 @@ export default {
...
@@ -451,29 +503,29 @@ export default {
}
}
},
300
),
},
300
),
// 创建分销活动
// 创建分销活动
createDtb
()
{
createDtb
()
{
this
.
dialogFormVisible
=
true
;
this
.
dialogFormVisible
=
true
;
this
.
shopStart
=
0
;
this
.
shopStart
=
0
;
},
},
// 重置
// 重置
reset
(
retailActivitie
)
{
reset
(
retailActivitie
)
{
(
this
.
retailActivitie
=
{
(
this
.
retailActivitie
=
{
marketing_id
:
""
,
marketing_id
:
""
,
marketing_name
:
""
,
marketing_name
:
""
,
goods_sku_id
:
""
,
goods_sku_id
:
""
,
online_status
:
[],
online_status
:
[],
page
:
1
,
page
:
1
,
page_size
:
5
,
page_size
:
5
}),
}),
this
.
$refs
[
retailActivitie
].
resetFields
();
this
.
$refs
[
retailActivitie
].
resetFields
();
this
.
getMarketingList
({});
this
.
getMarketingList
({});
},
},
// 搜索
// 搜索
toSearch
()
{
toSearch
()
{
this
.
getMarketingList
();
this
.
getMarketingList
();
console
.
log
(
this
.
retailActivitie
);
console
.
log
(
this
.
retailActivitie
);
},
},
selectTime
(
e
)
{
selectTime
(
e
)
{
let
date
=
new
Date
();
let
date
=
new
Date
();
if
(
e
&&
e
[
1
]
<
date
)
{
if
(
e
&&
e
[
1
]
<
date
)
{
ElMessage
(
`'活动结束时间不能早于当前时间'`
);
ElMessage
(
`'活动结束时间不能早于当前时间'`
);
...
@@ -481,9 +533,9 @@ export default {
...
@@ -481,9 +533,9 @@ export default {
}
}
},
},
// 获取时间格式
// 获取时间格式
formatTime
(
date
)
{
formatTime
(
date
)
{
// 封装函数判断是否要在目标前边加 ’0‘
// 封装函数判断是否要在目标前边加 ’0‘
function
getStr
(
target
)
{
function
getStr
(
target
)
{
return
(
""
+
target
).
length
===
1
?
"0"
+
target
:
target
;
return
(
""
+
target
).
length
===
1
?
"0"
+
target
:
target
;
}
}
// 获取月
// 获取月
...
@@ -504,7 +556,7 @@ export default {
...
@@ -504,7 +556,7 @@ export default {
return
timeStr
;
return
timeStr
;
},
},
// 查询商品列表
// 查询商品列表
async
findProducts
()
{
async
findProducts
()
{
// 获取参数
// 获取参数
const
{
goods_sku_id
,
life_account_id
}
=
this
.
ruleIdForm
;
const
{
goods_sku_id
,
life_account_id
}
=
this
.
ruleIdForm
;
let
[
start_time
,
end_time
]
=
this
.
timeSelect
;
let
[
start_time
,
end_time
]
=
this
.
timeSelect
;
...
@@ -521,7 +573,7 @@ export default {
...
@@ -521,7 +573,7 @@ export default {
goods_sku_id
,
goods_sku_id
,
life_account_id
,
life_account_id
,
start_time
,
start_time
,
end_time
,
end_time
};
};
try
{
try
{
// 发请求
// 发请求
...
@@ -533,18 +585,18 @@ export default {
...
@@ -533,18 +585,18 @@ export default {
ElMessage
.
error
(
"请求查询商品列表失败"
);
ElMessage
.
error
(
"请求查询商品列表失败"
);
}
}
},
},
selectGoodsChange
(
e
)
{
selectGoodsChange
(
e
)
{
this
.
ruleForm
.
goods_sku_id
=
e
.
map
(
(
item
)
=>
item
.
goods_sku_id
);
this
.
ruleForm
.
goods_sku_id
=
e
.
map
(
item
=>
item
.
goods_sku_id
);
},
},
async
getAllList
()
{
async
getAllList
()
{
let
all
=
await
getMarketingList
({
let
all
=
await
getMarketingList
({
page
:
1
,
page
:
1
,
page_size
:
this
.
retailActivitie
.
count
,
page_size
:
this
.
retailActivitie
.
count
});
});
this
.
allList
=
all
.
result
;
this
.
allList
=
all
.
result
;
},
},
// 添加活动列表
// 添加活动列表
async
addList
()
{
async
addList
()
{
console
.
log
(
this
.
ruleForm
.
goods_sku_id
);
console
.
log
(
this
.
ruleForm
.
goods_sku_id
);
if
(
this
.
ruleForm
.
goods_sku_id
.
length
<=
0
)
{
if
(
this
.
ruleForm
.
goods_sku_id
.
length
<=
0
)
{
ElMessage
(
"请选择商品"
);
ElMessage
(
"请选择商品"
);
...
@@ -554,8 +606,11 @@ export default {
...
@@ -554,8 +606,11 @@ export default {
this
.
ruleForm
.
goods_sku_id
&&
this
.
ruleForm
.
goods_sku_id
.
join
(
","
);
this
.
ruleForm
.
goods_sku_id
&&
this
.
ruleForm
.
goods_sku_id
.
join
(
","
);
}
}
// console.log(goods_sku_id);
// console.log(goods_sku_id);
let
{
marketing_name
,
first_commission_value
,
second_commission_value
}
=
let
{
this
.
ruleForm
;
marketing_name
,
first_commission_value
,
second_commission_value
}
=
this
.
ruleForm
;
let
[
start_time
,
end_time
]
=
this
.
timeSelect
;
let
[
start_time
,
end_time
]
=
this
.
timeSelect
;
if
(
if
(
!
marketing_name
||
!
marketing_name
||
...
@@ -572,7 +627,7 @@ export default {
...
@@ -572,7 +627,7 @@ export default {
first_commission_value
,
first_commission_value
,
second_commission_value
,
second_commission_value
,
start_time
:
this
.
formatTime
(
start_time
),
start_time
:
this
.
formatTime
(
start_time
),
end_time
:
this
.
formatTime
(
end_time
)
,
end_time
:
this
.
formatTime
(
end_time
)
};
};
// let resList = [];
// let resList = [];
// // 遍历选择的商品
// // 遍历选择的商品
...
@@ -613,14 +668,14 @@ export default {
...
@@ -613,14 +668,14 @@ export default {
},
},
// 清空
// 清空
resetDate
()
{
resetDate
()
{
(
this
.
ruleForm
=
{
(
this
.
ruleForm
=
{
marketing_name
:
""
,
marketing_name
:
""
,
first_commission_value
:
""
,
first_commission_value
:
""
,
second_commission_value
:
""
,
second_commission_value
:
""
,
start_time
:
""
,
start_time
:
""
,
end_time
:
""
,
end_time
:
""
,
goods_sku_id
:
[]
,
goods_sku_id
:
[]
}),
}),
(
this
.
timeSelect
=
[]),
(
this
.
timeSelect
=
[]),
(
this
.
goods_list
=
[]),
(
this
.
goods_list
=
[]),
...
@@ -628,20 +683,20 @@ export default {
...
@@ -628,20 +683,20 @@ export default {
life_account_id
:
""
,
life_account_id
:
""
,
goods_sku_id
:
""
,
goods_sku_id
:
""
,
start_time
:
""
,
start_time
:
""
,
end_time
:
""
,
end_time
:
""
});
});
},
},
// 取消
// 取消
cancel
()
{
cancel
()
{
this
.
dialogFormVisible
=
false
;
this
.
dialogFormVisible
=
false
;
this
.
resetDate
();
this
.
resetDate
();
this
.
getMarketingList
();
this
.
getMarketingList
();
}
,
}
},
},
created
()
{
created
()
{
this
.
getMarketingList
();
this
.
getMarketingList
();
this
.
getAllList
();
this
.
getAllList
();
}
,
}
};
};
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
...
@@ -684,4 +739,4 @@ export default {
...
@@ -684,4 +739,4 @@ export default {
.marketing
{
.marketing
{
margin-top
:
0
;
margin-top
:
0
;
}
}
</
style
>
</
style
>
\ No newline at end of file
src/pages/Goods/components/PageHeader/User.vue
0 → 100644
View file @
06e8b187
<
template
>
<el-dropdown>
<div
class=
"user-info"
>
<el-avatar
:src=
"userInfo.avatar || DEFAULT_AVATAR"
size=
"small"
></el-avatar>
<span
class=
"user-name"
>
{{
userInfo
.
name
}}
</span>
</div>
<template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item>
<i
class=
"el-icon-message"
></i>
{{
userInfo
.
email
}}
</el-dropdown-item>
<el-dropdown-item>
<span><a
class=
"link"
href=
"//pandora.yidian-inc.com/"
>
返回pandora工具平台
</a></span>
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
</template>
<
script
>
import
{
mapState
}
from
'vuex'
import
{
HEADER_CONFIG
}
from
'@/config/pageconfig'
;
export
default
{
computed
:
mapState
({
userInfo
:
state
=>
(
state
.
userInfo
||
{}),
}),
data
()
{
return
{
DEFAULT_AVATAR
:
HEADER_CONFIG
.
miscellaneous
.
defaultAvatar
,
};
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.user-info {
display: flex;
align-items: center;
}
.user-name {
margin-left: 12px;
color: #fff;
}
</
style
>
src/pages/Goods/components/PageHeader/config.js
0 → 100644
View file @
06e8b187
const
headerConfig
=
[
{
title
:
"商品中心"
,
menuItem
:
[
{
name
:
"商品管理"
,
path
:
"/goods/list"
}
]
},
{
title
:
"营销中心"
,
menuItem
:
[
{
name
:
"分销"
,
path
:
"/goods/retail"
},
{
name
:
"秒杀"
,
path
:
"/death"
}
]
}
];
export
default
headerConfig
;
\ No newline at end of file
src/pages/Goods/components/PageHeader/index.vue
0 → 100644
View file @
06e8b187
<
template
>
<div
id=
"pageheader"
>
<div
class=
"line"
></div>
<el-menu
class=
"header-menu"
mode=
"horizontal"
:router=
"true"
background-color=
"#545c64"
text-color=
"#fff"
:default-active=
"activeMenu"
active-text-color=
"#ffd04b"
>
<el-submenu
v-for=
"item in headerConfig"
:key=
"item.title"
:index=
"item.title"
>
<template
#
title
>
{{
item
.
title
}}
</
template
>
<el-menu-item
v-for=
"meItem in item.menuItem"
:index=
"meItem.path"
:key=
"meItem.name"
>
{{ meItem.name }}
</el-menu-item>
</el-submenu>
<el-menu-item
key=
"usermenu"
class=
"user-menu"
>
<user></user>
</el-menu-item>
</el-menu>
</div>
</template>
<
script
>
import
headerConfig
from
"./config"
;
import
User
from
"./User.vue"
;
export
default
{
name
:
"PageHeader"
,
components
:
{
User
},
data
()
{
return
{
headerConfig
};
},
computed
:
{
activeMenu
()
{
return
this
.
$route
.
path
;
}
},
beforeMount
()
{
console
.
log
(
headerConfig
);
console
.
log
(
"当前激活"
,
this
.
activeMenu
);
},
methods
:
{}
};
</
script
>
<
style
lang=
"less"
>
.menu-router {
display: inline-block;
line-height: 60px;
width: 100%;
}
.header-menu .user-menu {
float: right !important;
margin-right: 20px;
}
</
style
>
src/pages/Goods/layout/index.less
0 → 100644
View file @
06e8b187
.layout {
display: flex;
flex-direction: column;
height: 100%;
}
.main {
flex: 1;
}
src/pages/Goods/layout/index.vue
0 → 100644
View file @
06e8b187
<
template
>
<div
class=
"layout"
>
<!-- 页面公共 header -->
<page-header
class=
"page-header"
></page-header>
<!-- 页面主体部分 -->
<div
class=
"main"
>
<slot></slot>
</div>
</div>
</
template
>
<
script
>
import
PageHeader
from
'../components/PageHeader'
;
export
default
{
components
:
{
PageHeader
},
};
</
script
>
<
style
lang=
"less"
src=
"./index.less"
></
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment