@@ -73,6 +73,7 @@ import Vue from 'vue'
import * as API_Common from '@/api/common'
import * as API_Goods from '@/api/goods'
import * as API_Shop from '@/api/shop'
+import * as API_Crowdfunding from '@/api/crowdfunding'
import * as GoodsComponents from './components'
import Storage from '@/utils/storage'
import { Pagination } from 'element-ui'
@@ -113,7 +114,15 @@ export default {
// 商品是否可查看
canView: true,
// 店铺基本信息
- shopBaseInfo: {}
+ shopBaseInfo: {},
+ // 是否显示众筹
+ crowdfundingShowFlag: false,
+ // 众筹是否已结束
+ crowdfundingEndFlag: false,
+ // 众筹id
+ crowdfundingId: null,
+ // 众筹详情
+ crowdfundingDetail: null
}
},
watch: {
@@ -128,6 +137,9 @@ export default {
},
methods: {
async init() {
+ // 众筹参数
+ this.crowdfundingId = this.$route.query.crowdfundingId
+ await this.getCrowdfunding()
await this.getGoodsDetail()
// 如果商品可以查看
if (this.canView) {
@@ -182,6 +194,25 @@ export default {
params: { statusCode: 500, message: '商品已不存在' + e }
})
}
+ },
+ /** 获取众筹详情 */
+ async getCrowdfunding() {
+ if (!this.crowdfundingId) return
+ API_Crowdfunding.getDetail(this.crowdfundingId).then(res => {
+ this.crowdfundingDetail = res
+ if (this.crowdfundingDetail) {
+ // 活动状态是进行中,需要显示众筹活动
+ if (this.crowdfundingDetail.front_status === 0) {
+ this.crowdfundingShowFlag = true
+ this.crowdfundingEndFlag = false
+ }
+ // 活动已结束,需要显示众筹活动
+ if (this.crowdfundingDetail.front_status === 1) {
+ this.crowdfundingShowFlag = true
+ this.crowdfundingEndFlag = true
+ }
+ }
+ })
}
},
destroyed() {
diff --git a/manager-admin/src/api/crowdfunding.js b/manager-admin/src/api/crowdfunding.js
new file mode 100644
index 0000000000000000000000000000000000000000..ef788c3528e1da3c84c7abd7a196532601cb442c
--- /dev/null
+++ b/manager-admin/src/api/crowdfunding.js
@@ -0,0 +1,90 @@
+/**
+ * 众筹活动相关API
+ */
+
+import request from '@/utils/request'
+
+/**
+ * 分页列表
+ * @param params
+ */
+export function getList(params) {
+ return request({
+ url: '/admin/promotion/crowdfunding',
+ method: 'get',
+ params
+ })
+}
+
+/**
+ * 添加
+ * @param params
+ */
+export function add(params) {
+ return request({
+ url: '/admin/promotion/crowdfunding',
+ method: 'post',
+ headers: { 'Content-Type': 'application/json' },
+ data: params
+ })
+}
+
+/**
+ * 查询详情
+ * @param id
+ */
+export function getDetail(id) {
+ return request({
+ url: `/admin/promotion/crowdfunding/${id}`,
+ method: 'get'
+ })
+}
+
+/**
+ * 修改企业
+ * @param id
+ * @param params
+ */
+export function edit(id, params) {
+ return request({
+ url: `/admin/promotion/crowdfunding/${id}`,
+ method: 'put',
+ headers: { 'Content-Type': 'application/json' },
+ data: params
+ })
+}
+
+/**
+ * 删除
+ * @param id
+ */
+export function del(id) {
+ return request({
+ url: `/admin/promotion/crowdfunding/${id}`,
+ method: 'delete'
+ })
+}
+
+/**
+ * 终止
+ * @param id
+ */
+export function stop(id) {
+ return request({
+ url: `/admin/promotion/crowdfunding/${id}/stop`,
+ method: 'put'
+ })
+}
+
+/**
+ * 终止
+ * @param id
+ * @param flag
+ */
+export function updateEndShowFlag(id, flag) {
+ return request({
+ url: `/admin/promotion/crowdfunding/${id}/updateEndShowFlag?flag=${flag}`,
+ method: 'put'
+ })
+}
+
diff --git a/manager-admin/src/lang/en.js b/manager-admin/src/lang/en.js
index d362da2cf8d07d03c7f494e2f6afe5b2d76a6daf..3fe5f91baf974d7849a188cbd76775208dbb0982 100644
--- a/manager-admin/src/lang/en.js
+++ b/manager-admin/src/lang/en.js
@@ -112,6 +112,10 @@ export default {
viewSignIn: 'View Sign In',
editSignIn: 'Edit Sign In',
signInRecord: 'Sign In Record',
+ crowdfunding: 'crowdfunding',
+ addCrowdfunding: 'Add Crowdfunding',
+ editCrowdfunding: 'Edit Crowdfunding',
+ viewCrowdfunding: 'View Crowdfunding',
page: 'Page Manage',
decorationSetting: 'Decoration Setting',
diff --git a/manager-admin/src/lang/zh.js b/manager-admin/src/lang/zh.js
index e5ef7f0d8064804c71b16ccf50a186b264e06ce9..2d6a678018472353a343a164d529610c7952c0ee 100644
--- a/manager-admin/src/lang/zh.js
+++ b/manager-admin/src/lang/zh.js
@@ -104,6 +104,10 @@ export default {
viewSignIn: '查看签到活动',
editSignIn: '修改签到活动',
signInRecord: '签到记录',
+ crowdfunding: '众筹活动',
+ addCrowdfunding: '添加众筹活动',
+ editCrowdfunding: '编辑众筹活动',
+ viewCrowdfunding: '查看众筹活动',
page: '页面设置',
decorationSetting: '装修',
diff --git a/manager-admin/src/router/index.js b/manager-admin/src/router/index.js
index 47879a8747296e96de6c9d493ca8301e242e4639..95f1d4a5396e13077ab11f491e331c4b07050ff4 100644
--- a/manager-admin/src/router/index.js
+++ b/manager-admin/src/router/index.js
@@ -204,7 +204,16 @@ const asyncRouters = [
{ path: 'coupon-list', component: () => import('@/views/promotions/coupon-manage/couponList'), name: 'couponList', meta: { title: 'couponList' }},
{ path: 'coupon', component: () => import('@/views/promotions/coupon-manage/coupon'), name: 'coupon', meta: { title: 'coupon' }, hidden: true },
{ path: 'couponUpdate', component: () => import('@/views/promotions/coupon-manage/coupon'), name: 'couponUpdate', meta: { title: 'couponUpdate' }, hidden: true },
- { path: 'receive-list/:id', component: () => import('@/views/promotions/coupon-manage/ReceiveList'), name: 'ReceiveList', hidden: true, meta: { title: 'ReceiveList' }}
+ { path: 'receive-list/:id', component: () => import('@/views/promotions/coupon-manage/ReceiveList'), name: 'ReceiveList', hidden: true, meta: { title: 'ReceiveList' }},
+ { path: 'sign-in', component: () => import('@/views/promotions/sign-in-manage/signIn'), name: 'signIn', meta: { title: 'signIn' }},
+ { path: 'add-sign-in', component: () => import('@/views/promotions/sign-in-manage/addSignIn'), name: 'addSignIn', hidden: true, meta: { title: 'addSignIn' }},
+ { path: 'view-sign-in/:id', component: () => import('@/views/promotions/sign-in-manage/addSignIn'), name: 'viewSignIn', hidden: true, meta: { title: 'viewSignIn' }},
+ { path: 'edit-sign-in/:id', component: () => import('@/views/promotions/sign-in-manage/addSignIn'), name: 'editSignIn', hidden: true, meta: { title: 'editSignIn' }},
+ { path: 'sign-in-record', component: () => import('@/views/promotions/sign-in-manage/signInRecord'), name: 'signInRecord', hidden: true, meta: { title: 'signInRecord' }},
+ { path: 'crowdfunding', component: () => import('@/views/promotions/crowdfunding-manage'), name: 'crowdfunding', meta: { title: 'crowdfunding' }},
+ { path: 'add-crowdfunding', component: () => import('@/views/promotions/crowdfunding-manage/form'), name: 'addCrowdfunding', hidden: true, meta: { title: 'addCrowdfunding' }},
+ { path: 'view-crowdfunding', component: () => import('@/views/promotions/crowdfunding-manage/form'), name: 'viewCrowdfunding', hidden: true, meta: { title: 'viewCrowdfunding' }},
+ { path: 'edit-crowdfunding', component: () => import('@/views/promotions/crowdfunding-manage/form'), name: 'editCrowdfunding', hidden: true, meta: { title: 'editCrowdfunding' }}
]
},
// 售前售后
diff --git a/manager-admin/src/views/promotions/crowdfunding-manage/form.vue b/manager-admin/src/views/promotions/crowdfunding-manage/form.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7ca80c1f8a8c862e6fd37efe24bb2682ee3e1672
--- /dev/null
+++ b/manager-admin/src/views/promotions/crowdfunding-manage/form.vue
@@ -0,0 +1,414 @@
+
+
+
+
操作提示
+
+ - 众筹有开始和结束时间,在结束时间前达到目标值就算众筹成功,在结束时间点没有达到目标值就算众筹失败,钱退回。
+ - 众筹需要设置总金额,总金额达到设定的比例就算众筹成功。
+ - 众筹单价按阶梯来,比如前100个商品众筹单价为200元;101-200个商品众筹单价为220元;201个以上的商品众筹单价为240元。
+ - 金额达到目标值也可以继续众筹,直到活动结束。
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manager-admin/src/views/promotions/crowdfunding-manage/index.vue b/manager-admin/src/views/promotions/crowdfunding-manage/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..aec7ecb7494ea4eb303951f6d2c8c377789851e0
--- /dev/null
+++ b/manager-admin/src/views/promotions/crowdfunding-manage/index.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+ {{ scope.row.name }}
+
+
+ ¥{{ scope.row.total_price | unitPrice }}
+
+
+ {{ scope.row.price_ratio }}%
+
+
+ {{ scope.row.start_time | unixToDate }}
+
+
+ {{ scope.row.end_time | unixToDate }}
+
+
+ {{ scope.row.status_text }}
+
+
+
+
+
+
+
+ {{ scope.row.price_percent }}%
+
+
+
+ 编辑
+ 查看
+ 终止
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manager-seller/src/views/dashboard/index.vue b/manager-seller/src/views/dashboard/index.vue
index 6ba27a54fdcdb5897a85bcae2a5fbd6e9d2bc548..58f3ae2a7af72bf84ae2912a799d0a86e56f9660 100644
--- a/manager-seller/src/views/dashboard/index.vue
+++ b/manager-seller/src/views/dashboard/index.vue
@@ -225,6 +225,7 @@