Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
welfare
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
达摩4.0重构
welfare
Commits
cca1636d
Commit
cca1636d
authored
Feb 19, 2021
by
chenxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 卡券包
parent
9fca119e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
101 additions
and
34 deletions
+101
-34
card-package.js
src/api/card-package.js
+5
-6
adjust-stock.vue
src/components/libs/adjust-stock.vue
+1
-1
form.vue
src/views/card-package/form.vue
+93
-25
list.vue
src/views/card-package/list.vue
+2
-2
No files found.
src/api/card-package.js
View file @
cca1636d
...
...
@@ -7,21 +7,20 @@ import { welfarePrefix } from '@/config';
// 卡券包
let
packages
=
{
savePackages
:
{
// 新增、编辑卡券包 /coupon-package/save-package /coupon-package/edit-package
url
:
'/coupon-package/{type}-package'
,
// edit add
addPackages
:
{
// 新建卡券包
url
:
'/coupon-package/save-package'
,
method
:
'post'
,
useFormData
:
true
,
rest
:
true
},
editPackages
:
'/coupon-package/edit-package'
,
// 编辑卡券包
pageCouponPackage
:
'/coupon-package/page-package'
,
// 获取卡券包列表
pagePackageLog
:
'/coupon-package/page-package-log'
,
// 卡券包发放记录
packageCouponReceiveLog
:
'/coupon-package/package-coupon-receive-log'
,
// 卡券领取记录详情 TODO:
getPackageDetail
:
'/coupon-package/package-detail'
,
// 获取卡券包详情
deletePackage
:
'/coupon-package/batch-del-package'
,
// 删除某个卡券包
optPackageStock
:
'/coupon-package/opt-package-stock'
,
// 调整卡券包库存 TODO:
updatePackageStock
:
'/coupon-package/update-package-stock'
,
// 调整卡券包库存
addPackageItem
:
'/coupon-package/add-package-item'
,
// 往卡券包里添加卡券
Edit
PackageItem
:
'/coupon-package/del-package-item'
,
// 往卡券包里删除卡券
del
PackageItem
:
'/coupon-package/del-package-item'
,
// 往卡券包里删除卡券
listCouponByPackageId
:
'/coupon-package/list-coupon'
,
// 根据卡券包id获取卡券列表
};
...
...
src/components/libs/adjust-stock.vue
View file @
cca1636d
...
...
@@ -98,7 +98,7 @@ export default {
.prepend-select
/
deep
/
{
.el-input__inner
{
box-shadow
:
none
!important
;
border-color
:
#c4c6cf
!important
;
border-color
:
$
gray-border
!important
;
border-right
:
none
!important
;
border-radius
:
2px
0
0
2px
;
}
...
...
src/views/card-package/form.vue
View file @
cca1636d
...
...
@@ -8,26 +8,27 @@
{{
$store
.
state
.
currentAreaName
||
'--'
}}
</el-form-item>
<el-form-item
prop=
"name"
label=
"卡券包名称"
>
<dm-input
v-model=
"ruleForm.name"
class=
"w400"
placeholder=
"请输入卡券包名称"
:byte-type=
"1"
:maxlength=
"9"
></dm-input>
<dm-input
:disabled=
"canEdit"
v-model=
"ruleForm.name"
class=
"w400"
placeholder=
"请输入卡券包名称"
:byte-type=
"1"
:maxlength=
"9"
></dm-input>
</el-form-item>
<el-form-item
prop=
"remarkName"
label=
"备注名"
>
<dm-input
v-model=
"ruleForm.remarkName"
class=
"w400"
placeholder=
"请输入备注名"
:byte-type=
"1"
:maxlength=
"10"
></dm-input>
<dm-input
:disabled=
"canEdit"
v-model=
"ruleForm.remarkName"
class=
"w400"
placeholder=
"请输入备注名"
:byte-type=
"1"
:maxlength=
"10"
></dm-input>
</el-form-item>
<el-form-item
prop=
"effectiveMode"
label=
"有效期限"
>
<el-date-picker
class=
"w400"
v-model=
"dateTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:picker-options=
"pickerOptions"
></el-date-picker>
<el-date-picker
:disabled=
"canEdit"
class=
"w400"
v-model=
"dateTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:picker-options=
"pickerOptions"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"卡券包库存"
prop=
"packageStock"
>
<el-input-number
class=
"w400"
v-model=
"ruleForm.packageStock"
controls-position=
"right"
:min=
"1"
:max=
"1000000"
></el-input-number>
</el-form-item>
<el-form-item
label=
"库存消耗方式"
prop=
"stockType"
>
<el-checkbox-group
v-model=
"stockType"
>
<el-form-item
label=
"库存消耗方式"
class=
"is-required"
prop=
"stockType"
>
<el-checkbox-group
:disabled=
"canEdit"
v-model=
"stockType"
>
<!-- (0:占用,1:动态 , 2占用+动态) -->
<el-checkbox
:label=
"0"
>
固定库存
</el-checkbox>
<el-checkbox
:label=
"1"
>
实时库存
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{
isAdd
?
'确认新建'
:
'保存'
}}
</el-button>
<el-button
type=
"primary"
v-if=
"isAdd"
@
click=
"addForm"
>
确认新建
</el-button>
<el-button
type=
"primary"
:disabled=
"ruleForm.packageStock == info.packageStock"
v-else
@
click=
"editForm"
>
保存
</el-button>
<el-button
@
click=
"$router.go(-1)"
>
返回
</el-button>
</el-form-item>
<el-form-item
v-if=
"!isAdd"
class=
"is-required"
>
...
...
@@ -35,14 +36,33 @@
<span
class=
"tooltip-icon"
>
添加卡券
</span>
</el-tooltip>
<div
v-loading=
"cardLoading"
>
<div
v-for=
"(item, idx) in couponList"
:key=
"idx"
class=
"mb10"
>
卡券id:
<el-input
v-model=
"item.couponId"
style=
"width:200px"
class=
"mr10"
/>
库存值:
<el-input
v-model=
"item.stock"
style=
"width:100px"
/>
<el-button
type=
"text"
@
click=
"addCard(item)"
>
保存
</el-button>
<el-button
type=
"text"
@
click=
"delCard(item)"
>
删除
</el-button>
<div
class=
"mb10"
>
卡券id:
<el-input
v-model=
"couponForm.couponId"
style=
"width:200px"
class=
"mr10"
/>
库存值:
<el-input
v-model=
"couponForm.stock"
style=
"width:100px"
/>
<el-button
type=
"text"
@
click=
"addCard"
class=
"ml5"
>
保存
</el-button>
</div>
<el-button
type=
"primary"
@
click=
"couponList.push(
{ couponId:'', stock: 0 })">添加卡券
</el-button>
</div>
<el-table
v-if=
" couponList.length"
:data=
"couponList"
v-loading=
"cardLoading"
>
<el-table-column
prop=
"date"
label=
"卡券信息"
min-width=
"200"
>
<!-- 卡券类型(0:抵金券,1:折扣券,2:兑换券, 3: 其他券) -->
<template
slot-scope=
"scope"
>
<el-tag
class=
"mr5"
>
{{
cardType
[
scope
.
row
.
cardType
].
label
}}
</el-tag>
{{
scope
.
row
.
cardName
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"date"
label=
"有效期"
min-width=
"200"
>
<span
slot-scope=
"scope"
v-html=
"effectiveDateFormate(scope.row)"
></span>
</el-table-column>
<el-table-column
prop=
"occupyStock"
label=
"卡券包内剩余库存"
min-width=
"200"
>
</el-table-column>
<el-table-column
prop=
"remainedStock"
label=
"福利可占库存"
min-width=
"180"
>
</el-table-column>
<el-table-column
prop=
"date"
label=
"福利状态"
min-width=
"180"
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<dm-delete
@
confirm=
"delCard(scope.row)"
tips=
"删除后已占用库存将被释放,确认删除?"
>
<el-button
type=
"text"
>
删除
</el-button>
</dm-delete>
</
template
>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div
class=
"hidden"
>
...
...
@@ -53,9 +73,10 @@
<
script
>
import
{
getTimesByReq
}
from
'@/utils/common.js'
;
import
{
cardType
}
from
'@/config/mapping/gic-card'
;
import
{
formatDateTimeByType
}
from
'@/utils/index.js'
;
import
fetch
from
'@/api/card-package.js'
;
const
{
savePackages
,
getPackageDetail
,
addPackageItem
,
deletePackage
}
=
fetch
;
const
{
addPackages
,
editPackages
,
getPackageDetail
,
addPackageItem
,
delPackageItem
}
=
fetch
;
export
default
{
...
...
@@ -84,6 +105,7 @@ export default {
loading
:
false
,
cardLoading
:
false
,
stockType
:
[],
cardType
,
couponPackageId
:
''
,
cardIds
:
''
,
// 卡券ids,多个id用逗号隔开
ruleForm
:
{
...
...
@@ -94,6 +116,10 @@ export default {
packageStock
:
undefined
,
stockUseType
:
''
,
// 库存使用类型(0:占用,1:动态 , 2占用+动态)
},
couponForm
:
{
couponId
:
''
,
stock
:
0
},
info
:
{},
// 备份详情
couponList
:
[],
dateTime
:
[],
...
...
@@ -127,11 +153,11 @@ export default {
},
methods
:
{
// 添加卡券
addCard
(
{
couponId
,
stock
}
)
{
addCard
()
{
const
params
=
{
couponPackageId
:
this
.
couponPackageId
,
couponId
,
stock
couponId
:
this
.
couponForm
.
couponId
,
stock
:
this
.
couponForm
.
stock
};
this
.
cardLoading
=
true
;
addPackageItem
(
params
).
then
(
res
=>
{
...
...
@@ -141,15 +167,14 @@ export default {
this
.
cardLoading
=
false
;
});
},
delCard
({
couponId
,
stock
,
packageItemId
})
{
// 删除卡券
delCard
({
couponId
})
{
const
params
=
{
couponPackageId
:
this
.
couponPackageId
,
couponId
,
stock
,
packageItemId
couponId
};
this
.
cardLoading
=
false
;
del
etePackage
(
params
).
then
(
res
=>
{
del
PackageItem
(
params
).
then
(
res
=>
{
this
.
cardLoading
=
false
;
this
.
refreshCouponList
();
}).
catch
(()
=>
{
...
...
@@ -174,13 +199,15 @@ export default {
Object
.
keys
(
this
.
ruleForm
).
map
(
v
=>
{
this
.
ruleForm
[
v
]
=
info
[
v
];
});
// this.stockType = info.stockUseType == 2 ? :
// params.stockUseType = this.stockType.length == 2 ? 2 : this.stockType[0];
this
.
dateTime
=
[
info
.
beginDate
,
info
.
endDate
];
this
.
couponList
=
res
.
result
.
couponList
||
[];
}).
finally
(()
=>
{
this
.
loading
=
false
;
});
},
submit
Form
()
{
add
Form
()
{
if
(
this
.
loading
)
{
return
;
}
...
...
@@ -194,9 +221,8 @@ export default {
params
.
stockUseType
=
this
.
stockType
.
length
==
2
?
2
:
this
.
stockType
[
0
];
params
.
beginDate
=
formatDateTimeByType
(
this
.
dateTime
[
0
],
'yyyy-MM-dd'
);
params
.
endDate
=
formatDateTimeByType
(
this
.
dateTime
[
1
],
'yyyy-MM-dd'
);
const
type
=
this
.
isAdd
?
'save'
:
'edit'
;
this
.
loading
=
true
;
savePackages
(
params
,
{
type
}
).
then
(
res
=>
{
addPackages
(
params
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
$tips
({
message
:
`
${
this
.
isAdd
?
'新建'
:
'编辑'
}
成功`
,
type
:
'success'
});
if
(
!
this
.
isAdd
)
{
...
...
@@ -210,6 +236,45 @@ export default {
}
});
},
// 编辑卡券包
editForm
()
{
const
params
=
{
couponPackageId
:
this
.
couponPackageId
,
count
:
Math
.
abs
(
this
.
info
.
packageStock
-
this
.
ruleForm
.
packageStock
),
optType
:
this
.
ruleForm
.
packageStock
>
this
.
info
.
packageStock
?
1
:
2
,
// 1增加,2减少
};
this
.
loading
=
true
;
editPackages
(
params
).
then
(
res
=>
{
this
.
getInfo
();
this
.
loading
=
false
;
}).
catch
(()
=>
{
this
.
loading
=
false
;
});
},
effectiveDateFormate
(
item
=
{})
{
const
{
cardEffectiveMode
,
startDate
,
expireDate
,
effectTimeMode
,
expireTimeCount
,
effectTimeCount
}
=
item
;
if
(
cardEffectiveMode
===
0
)
{
return
`<p>
${
formatDateTimeByType
(
startDate
,
'yyyy-MM-dd'
)}
~ </p><p>
${
formatDateTimeByType
(
expireDate
,
'yyyy-MM-dd'
)
}
</p>`
;
}
if
(
cardEffectiveMode
===
1
)
{
// 领取后第{{ info.effectTimeCount }}{{ info.effectTimeMode ? '月' : '天' }} - 第{{ info.expireTimeCount + info.effectTimeCount - 1 }}{{ info.effectTimeMode ? '月' : '天' }}
const
unit
=
effectTimeMode
?
'月'
:
'天'
;
let
pre
=
''
;
switch
(
effectTimeCount
)
{
case
1
:
pre
=
'当'
;
break
;
case
2
:
pre
=
'次'
;
break
;
default
:
pre
=
effectTimeCount
;
break
;
}
return
`<p>领取后
${
pre
}${
unit
}
生效,</p><p>有效天数
${
expireTimeCount
}${
unit
}
</p>`
;
}
return
'--'
;
},
},
computed
:
{
/**
...
...
@@ -228,8 +293,11 @@ export default {
return
1
;
}
return
new
Date
(
endDate
)
<
d
?
3
:
2
;
},
canEdit
()
{
return
!
this
.
isAdd
;
}
}
}
,
};
</
script
>
...
...
src/views/card-package/list.vue
View file @
cca1636d
...
...
@@ -116,7 +116,7 @@ import { page, formate } from '@/mixins/table.js';
import
{
showConfirm
}
from
'@/utils/common'
;
import
api
from
'@/api/card-package.js'
;
import
{
formatDateTimeByType
}
from
'@/utils/index.js'
;
const
{
pageCouponPackage
,
deletePackage
,
opt
PackageStock
}
=
api
;
const
{
pageCouponPackage
,
deletePackage
,
update
PackageStock
}
=
api
;
export
default
{
name
:
'CardPackageList'
,
components
:
{
...
...
@@ -225,7 +225,7 @@ export default {
}
this
.
$refs
.
adjust
.
loading
=
true
;
params
.
couponPackageId
=
this
.
adjust
.
couponPackageId
;
opt
PackageStock
(
params
).
then
(
res
=>
{
update
PackageStock
(
params
).
then
(
res
=>
{
this
.
$tips
({
message
:
'调整库存成功'
,
type
:
'success'
});
this
.
$refs
.
adjust
.
close
();
this
.
getTableList
();
...
...
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