Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integral-mall
Overview
Overview
Details
Activity
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
integralMall
integral-mall
Commits
744c09cd
Commit
744c09cd
authored
Jan 22, 2022
by
crushh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: 规则列表
parent
fd7f6e16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
169 additions
and
77 deletions
+169
-77
index.js
src/router/index.js
+9
-1
request.js
src/service/request.js
+56
-17
info.vue
src/views/goods/ruleList/info.vue
+104
-59
ruleList.vue
src/views/goods/ruleList/ruleList.vue
+0
-0
No files found.
src/router/index.js
View file @
744c09cd
...
...
@@ -111,7 +111,7 @@ const router = new Router({
},
},
{
path
:
'/editRule'
,
path
:
'/editRule
/:id
'
,
name
:
'editRule'
,
component
:
ruleInfo
,
meta
:
{
...
...
@@ -127,6 +127,14 @@ const router = new Router({
},
},
{
path
:
'/copyRule/:id'
,
name
:
'copyRule'
,
component
:
ruleInfo
,
meta
:
{
type
:
'copy'
,
},
},
{
path
:
'/giftExchange'
,
name
:
'giftExchange'
,
component
:
giftExchange
,
...
...
src/service/request.js
View file @
744c09cd
...
...
@@ -2,7 +2,7 @@
import
axios
from
'axios'
;
import
store
from
'../store/index'
;
import
router
from
'../router'
;
import
{
Message
}
from
'element-ui'
;
// axios 配置
// axios.defaults.timeout = 5000;
// let adminUrl = 'http://gicdev.demogic.com'
...
...
@@ -46,26 +46,65 @@ request.interceptors.request.use(
// http response 拦截器
request
.
interceptors
.
response
.
use
(
response
=>
{
if
(
response
.
status
==
200
&&
response
.
data
.
errorCode
===
401
)
{
window
.
location
.
href
=
window
.
location
.
origin
+
'/gic-web'
;
// window.location.href = 'http://gicdev.com/gic-web'
console
.
log
(
'===>'
);
console
.
log
(
response
);
const
{
data
,
config
}
=
response
;
let
err
;
const
{
errorCode
}
=
data
;
switch
(
errorCode
)
{
case
0
:
return
response
;
case
401
:
Message
({
message
:
'登录失效'
,
type
:
'error'
,
});
window
.
location
.
href
=
window
.
location
.
origin
+
'/gic-web'
;
break
;
case
undefined
:
break
;
default
:
Message
({
message
:
data
.
message
,
type
:
'error'
,
});
err
=
new
Error
(
`
${
data
.
message
}
:
${
config
.
url
}
`
);
if
(
__DEVELOPMENT
)
{
console
.
log
(
'>>>>>>>>>> response data error >>>>>>>>>>'
);
}
return
Promise
.
reject
(
err
);
}
return
response
;
},
error
=>
{
if
(
error
.
response
)
{
switch
(
error
.
response
.
status
)
{
case
401
:
// 401 清除token信息并跳转到登录页面
store
.
commit
(
types
.
LOGOUT
);
router
.
replace
({
name
:
'login'
,
query
:
{
redirect
:
router
.
currentRoute
.
fullPath
}
});
}
console
.
log
(
'===>'
);
console
.
log
(
error
);
const
status
=
err
.
response
.
status
;
switch
(
status
)
{
case
400
:
err
.
message
=
'请求错误'
;
break
;
case
401
:
err
.
message
=
'未授权,请登录'
;
store
.
commit
(
types
.
LOGOUT
);
window
.
location
.
href
=
window
.
location
.
origin
+
'/gic-web'
;
break
;
case
403
:
err
.
message
=
'拒绝访问'
;
break
;
case
404
:
err
.
message
=
`请求地址出错:
${
err
.
response
.
config
.
url
}
`
;
break
;
case
408
:
err
.
message
=
'请求超时'
;
break
;
case
500
:
err
.
message
=
'服务器内部错误'
;
break
;
case
501
:
err
.
message
=
'服务未实现'
;
break
;
case
502
:
err
.
message
=
'网关错误'
;
break
;
case
503
:
err
.
message
=
'服务不可用'
;
break
;
case
504
:
err
.
message
=
'网关超时'
;
break
;
case
505
:
err
.
message
=
'HTTP版本不受支持'
;
break
;
default
:
break
;
}
return
Promise
.
reject
(
error
.
response
.
data
);
if
(
__DEVELOPMENT
)
{
console
.
log
(
'>>>>>>>>>> response error >>>>>>>>>>'
);
}
Message
({
message
:
'系统异常'
,
type
:
'error'
,
});
return
Promise
.
reject
(
err
);
}
);
...
...
src/views/goods/ruleList/info.vue
View file @
744c09cd
...
...
@@ -8,11 +8,13 @@
</el-breadcrumb-item>
<el-breadcrumb-item>
积分商城
</el-breadcrumb-item>
<el-breadcrumb-item>
商品
</el-breadcrumb-item>
<el-breadcrumb-item>
上架规则
</el-breadcrumb-item>
<el-breadcrumb-item>
新建上架规则
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ path: '/ruleList' }">
上架规则
</el-breadcrumb-item>
<el-breadcrumb-item>
{{
breadcrumbTitle
}}
</el-breadcrumb-item>
</el-breadcrumb>
<h3>
<span>
新建上架规则
</span>
<span>
{{
breadcrumbTitle
}}
</span>
</h3>
</div>
<div
class=
"section"
>
...
...
@@ -29,6 +31,8 @@
show-word-limit
placeholder=
"请输入上架规则名称"
v-model=
"ruleForm.ruleTitle"
clearable
@
clear=
"ruleForm.ruleTitle=''"
style=
"width:340px"
/>
</el-form-item>
...
...
@@ -41,35 +45,18 @@
style=
"width:340px"
/>
</el-form-item>
<el-form-item
label=
"适用人群"
prop=
"
activityTim
e"
>
<el-form-item
label=
"适用人群"
prop=
"
memberTyp
e"
>
<el-radio
v-model=
"ruleForm.memberType"
:label=
"1"
>
全部会员
</el-radio>
<el-radio
v-model=
"ruleForm.memberType"
:label=
"2"
>
会员分组
</el-radio>
<el-radio
v-model=
"ruleForm.memberType"
:label=
"3"
>
会员筛选
</el-radio>
</el-form-item>
<el-form-item
v-if=
"ruleForm.memberType === 2"
>
<vue-gic-member-group
style=
"padding-left:0"
:readonly=
"readonly"
:height=
"543"
:defaltSelected=
"defaltSelected"
:projectName=
"projectName"
:effectiveStatus=
"1"
@
handleDataTransferred=
"handleDataTransferred"
@
handleDataLeft=
"handleDataLeft"
/>
</el-form-item>
<el-form-item
v-if=
"ruleForm.memberType === 3"
>
<el-form-item
v-show=
"ruleForm.memberType === 3"
>
<vue-gic-people
v-bind=
"storeParams"
:projectName=
"projectName"
:searchBackTxt
.
sync=
"searchBackTxt"
:conditionList
.
sync=
"conditionList"
:triggerReset=
"true"
:useId=
"useId"
:hasSearchData=
"hasSearchData"
...
...
@@ -90,11 +77,12 @@
</el-button>
</div>
</el-form-item>
<div
class=
"confim-btn"
:style=
"
{ width: fixedWidth + 'px' }">
<el-button
type=
"primary"
size=
"small"
@
click=
"nextStep()"
>
确认新建
</el-button>
<div>
<el-form-item
style=
"margin-top:50px"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"submit()"
>
确认新建
</el-button>
</el-form-item>
</div>
</el-form>
</div>
...
...
@@ -103,15 +91,17 @@
</
template
>
<
script
>
import
request
from
'../../../service/request'
;
export
default
{
data
()
{
const
activityTimeVal
=
(
rule
,
value
,
callback
)
=>
{
callback
(
new
Error
(
'请填写'
));
};
return
{
breadcrumbTitle
:
'新建上架规则'
,
fixedWidth
:
document
.
documentElement
.
clientWidth
-
200
,
ruleForm
:
{
memberType
:
1
,
},
rules
:
{
ruleTitle
:
[
...
...
@@ -122,58 +112,113 @@ export default {
],
},
projectName
:
'integral-mall'
,
searchBackTxt
:
''
,
// 保存选中的筛选条件用来不走接口查缩略信息
conditionList
:
[],
useId
:
''
,
hasSearchData
:
''
,
sceneValue
:
'member'
,
// 场景值
responseParams
:
[],
// 回显的数据
defaltSelected
:
[],
headerList
:
[
'isRealTime'
,
'latestUpdateTime'
,
'updateType'
,
'effectiveStatus'
,
'effectiveDate'
],
// 表头配置,默认全部,分组名称默认显示不可配置
toggleTag
:
true
,
isEdit
:
this
.
$route
.
meta
.
type
===
'edit'
,
isAdd
:
this
.
$route
.
meta
.
type
===
'add'
,
isCopy
:
this
.
$route
.
meta
.
type
===
'copy'
,
};
},
computed
:
{
storeParams
()
{
return
!
this
.
isAdd
?
{
creatorId
:
this
.
ruleForm
.
creatorId
}
:
{};
},
},
mounted
()
{
console
.
log
(
this
.
$route
.
params
.
id
);
if
(
!
this
.
isAdd
)
{
this
.
integralMallProRuleId
=
this
.
$route
.
params
.
id
;
this
.
getDatail
(
this
.
$route
.
params
.
id
);
}
const
obj
=
{
edit
:
'编辑上架规则'
,
add
:
'新建上架规则'
,
copy
:
'复制上架规则'
,
};
this
.
breadcrumbTitle
=
obj
[
this
.
$route
.
meta
.
type
];
},
methods
:
{
// 子组件触发父组件事件,返回过滤条件数据
findFilter
(
value
)
{
/** 人群筛选器 */
cancelFilter
()
{
// 取消
this
.
$refs
.
peopleFilter
.
cancelSet
();
},
getData
()
{
this
.
$refs
.
peopleFilter
.
confirmSet
();
},
// 获取需要回显的数据, 供保存时候使用
getBackData
()
{
getBackData
(
val
)
{
console
.
log
(
val
);
this
.
ruleForm
.
searchJson
=
val
;
},
// 显示编辑,保存按钮隐藏,确认按钮显示 (子组件会调用)
editShow
()
{
console
.
log
(
'hideBtn'
);
this
.
toggleTag
=
true
;
},
// 显示保存按钮,隐藏确认按钮显示 (子组件会调用)
editHide
()
{
console
.
log
(
'hideBtn'
);
console
.
log
(
this
.
useId
);
this
.
toggleTag
=
false
;
},
// 显示编辑,保存按钮隐藏,确认按钮显示 (子组件会调用)
editShow
()
{
// 子组件触发父组件事件,返回过滤条件数据
findFilter
(
value
)
{
console
.
log
(
value
);
this
.
ruleForm
.
filterJson
=
value
;
},
// 隐藏保存按钮和确认按钮 (子组件会调用)
// 传个参数给父组件 来查数据
hideBtn
(
refresh
)
{
hideBtn
()
{
console
.
log
(
'hideBtn'
);
this
.
toggleTag
=
false
;
},
handleDataTransferred
(
data
)
{
this
.
defaltSelected
=
data
;
getDatail
(
integralMallProRuleId
)
{
request
.
get
(
'/api-integral-mall/get-rule'
,
{
params
:
{
integralMallProRuleId
}
}).
then
(
res
=>
{
if
(
res
.
data
.
result
)
{
this
.
ruleForm
=
res
.
data
.
result
;
if
(
this
.
ruleForm
.
memberType
==
3
)
{
this
.
hasSearchData
=
this
.
ruleForm
.
filterJson
;
}
}
});
},
handleDataLeft
(
selectedData
,
selectionToRemove
)
{
this
.
defaltSelected
=
selectedData
;
submit
()
{
if
(
this
.
ruleForm
.
memberType
===
3
)
{
if
(
this
.
toggleTag
&&
!
this
.
ruleForm
.
filterJson
)
{
this
.
$message
.
error
(
'请选中人群筛选器的数据'
);
return
false
;
}
}
this
.
$refs
.
ruleForm
.
validate
(
val
=>
{
if
(
val
)
{
let
params
=
{};
if
(
this
.
isCopy
)
{
const
{
ruleTitle
,
ruleExplanation
,
filterJson
,
memberType
,
searchJson
}
=
this
.
ruleForm
;
params
=
{
ruleTitle
,
ruleExplanation
,
memberType
,
filterJson
,
searchJson
};
}
else
{
params
=
this
.
ruleForm
;
}
if
(
params
.
memberType
==
1
)
{
delete
params
.
filterJson
;
delete
params
.
searchJson
;
}
request
.
get
(
'/api-integral-mall/add-update-rule'
,
{
params
}).
then
(
res
=>
{
this
.
$router
.
go
(
-
1
);
});
}
});
},
},
};
</
script
>
<
style
scoped
>
.confim-btn
{
height
:
32px
;
padding
:
12px
0
;
position
:
fixed
;
bottom
:
0px
;
left
:
200px
;
background
:
#fff
;
z-index
:
2
;
text-align
:
center
;
border-top
:
1px
solid
#dcdfe6
;
}
.fix-btn
{
margin-left
:
-100px
;
.gic-people--button
{
background
:
#f2f3f4
;
padding
:
0
0
20px
124px
;
}
</
style
>
src/views/goods/ruleList/ruleList.vue
View file @
744c09cd
This diff is collapsed.
Click to expand it.
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