Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
store-manage-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
ui
store-manage-ui
Commits
8bb65e9e
Commit
8bb65e9e
authored
Nov 10, 2021
by
王苓芝
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/storeManage' into 'master'
Feature/store manage See merge request
!1
parents
23874f93
780bb1a0
Changes
23
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1706 additions
and
140 deletions
+1706
-140
package-lock.json
package-lock.json
+2
-2
env.config.js
src/config/env.config.js
+6
-6
index.js
src/router/index.js
+48
-14
activity.service.js
src/services/apis/activity.service.js
+29
-0
coupon.service.js
src/services/apis/coupon.service.js
+3
-0
offcialLanding.js
src/services/apis/offcialLanding.js
+14
-0
user.service.js
src/services/apis/user.service.js
+94
-55
index.vue
src/view/activeTemplateManage/index.vue
+5
-8
cashPayList.vue
src/view/activityGoodManag/cashPayList.vue
+475
-0
data.js
src/view/activityGoodManag/data.js
+10
-0
specialList.vue
src/view/activityGoodManag/specialList.vue
+26
-37
activityTopicList.vue
src/view/activityManag/activityTopicList.vue
+18
-9
appConfig.vue
src/view/appconfig/appConfig.vue
+19
-9
landingHead.png
src/view/privateManage/landingHead.png
+0
-0
officialLanding.vue
src/view/privateManage/officialLanding.vue
+76
-0
constData.js
src/view/statementManage/constData.js
+210
-0
dayConsumeAnalysis.vue
src/view/statementManage/dayConsumeAnalysis.vue
+83
-0
expenditure.vue
src/view/statementManage/expenditure.vue
+105
-0
invoiceRecord.vue
src/view/statementManage/invoiceRecord.vue
+91
-0
wxPayRecord.vue
src/view/statementManage/wxPayRecord.vue
+94
-0
billModal.vue
src/view/userManage/components/billModal.vue
+66
-0
constData.js
src/view/userManage/constData.js
+59
-0
index.vue
src/view/userManage/index.vue
+173
-0
No files found.
package-lock.json
View file @
8bb65e9e
{
{
"name"
:
"
new-op-optimized
-ui"
,
"name"
:
"
store-manage
-ui"
,
"version"
:
"1.0.
1
"
,
"version"
:
"1.0.
0
"
,
"lockfileVersion"
:
1
,
"lockfileVersion"
:
1
,
"requires"
:
true
,
"requires"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
...
...
src/config/env.config.js
View file @
8bb65e9e
const
qiniuHost
=
'
https://appsync.lkbang.net/
'
;
const
qiniuHost
=
'
https://appsync.lkbang.net/
'
;
const
opapiHost
=
'
https://opapi-test
4
.liangkebang.net
'
;
const
opapiHost
=
'
https://opapi-test
2
.liangkebang.net
'
;
// const opapiHost = 'http://192.168.29.89:8097';
// const opapiHost = 'http://192.168.29.89:8097';
const
limitApi
=
`http://backstms-test
4
.liangkebang.net`
;
const
limitApi
=
`http://backstms-test
2
.liangkebang.net`
;
const
baseURI
=
'
http://zeus-test
4
.liangkebang.net
'
;
const
baseURI
=
'
http://zeus-test
2
.liangkebang.net
'
;
const
smsApiBaseUrls
=
`
${
opapiHost
}
/msgTmp`
;
const
smsApiBaseUrls
=
`
${
opapiHost
}
/msgTmp`
;
const
opUrl
=
'
//op-test
4
.liangkebang.net
'
;
const
opUrl
=
'
//op-test
2
.liangkebang.net
'
;
const
moConfigApi
=
'
/sapi
'
;
const
moConfigApi
=
'
/sapi
'
;
const
appApi
=
`
${
opapiHost
}
/kdspOp`
;
const
appApi
=
`
${
opapiHost
}
/kdspOp`
;
// const appApi = `${opapiHost}/`;
// const appApi = `${opapiHost}/`;
// const appApi = `${opapiHost}`;
// const appApi = `${opapiHost}`;
// const appApi = 'http://192.168.29.89:8097';
// const appApi = 'http://192.168.29.89:8097';
// const appApi = `${opapiHost}`;
// const appApi = `${opapiHost}`;
const
hostUrl
=
'
vcc-spider-test
4
.liangkebang.net/
'
;
const
hostUrl
=
'
vcc-spider-test.liangkebang.net/
'
;
// const homeApi = 'https://kdsp-operation-test
4
2.liangkebang.net';
// const homeApi = 'https://kdsp-operation-test
2
2.liangkebang.net';
export
default
{
export
default
{
qiniuHost
,
qiniuHost
,
opapiHost
,
opapiHost
,
...
...
src/router/index.js
View file @
8bb65e9e
...
@@ -7,8 +7,13 @@ const home = r => require.ensure([], () => r(require('../view/common/Home.vue'))
...
@@ -7,8 +7,13 @@ const home = r => require.ensure([], () => r(require('../view/common/Home.vue'))
const
micro
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/common/Micro.vue
'
)),
'
microLayout
'
);
const
micro
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/common/Micro.vue
'
)),
'
microLayout
'
);
const
adList
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/operation/AdList.vue
'
)),
'
adList
'
);
const
adList
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/operation/AdList.vue
'
)),
'
adList
'
);
const
newAdList
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/operation/newAdList.vue
'
)),
'
newAdList
'
);
const
newAdList
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/operation/newAdList.vue
'
)),
'
newAdList
'
);
const
userManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/userManage/index.vue
'
)),
'
userManage
'
);
const
dayConsumeAnalysis
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/statementManage/dayConsumeAnalysis.vue
'
)),
'
dayConsumeAnalysis
'
);
const
expenditure
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/statementManage/expenditure.vue
'
)),
'
expenditure
'
);
const
wxPayRecord
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/statementManage/wxPayRecord.vue
'
)),
'
wxPayRecord
'
);
const
invoiceRecord
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/statementManage/invoiceRecord.vue
'
)),
'
invoiceRecord
'
);
const
loanHomePage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/operation/LoanHomePage.vue
'
)),
'
loanHomePage
'
);
//
const loanHomePage = r => require.ensure([], () => r(require('../view/operation/LoanHomePage.vue')), 'loanHomePage');
const
templateManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/templateManage.vue
'
)),
'
templateManage
'
);
const
templateManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/templateManage.vue
'
)),
'
templateManage
'
);
const
strategyManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/StrategyManage.vue
'
)),
'
strategyManage
'
);
const
strategyManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/StrategyManage.vue
'
)),
'
strategyManage
'
);
const
createMessage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/CreateMessage.vue
'
)),
'
CreateMessage
'
);
const
createMessage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/CreateMessage.vue
'
)),
'
CreateMessage
'
);
...
@@ -18,9 +23,11 @@ const sendPush = r => require.ensure([], () => r(require('../view/sendManagement
...
@@ -18,9 +23,11 @@ const sendPush = r => require.ensure([], () => r(require('../view/sendManagement
const
sendMail
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/sendMail.vue
'
)),
'
sendMail
'
);
const
sendMail
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/sendMail.vue
'
)),
'
sendMail
'
);
const
linkTransform
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/linkTransform.vue
'
)),
'
linkTransform
'
);
const
linkTransform
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/sendManagement/linkTransform.vue
'
)),
'
linkTransform
'
);
//
积分系列
//
会员中心
const
pointList
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/myPoint/pointList.vue
'
)),
'
pointList
'
);
const
pointList
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/myPoint/pointList.vue
'
)),
'
pointList
'
);
const
pointRecord
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/myPoint/pointRecord.vue
'
)),
'
pointRecord
'
);
const
pointRecord
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/myPoint/pointRecord.vue
'
)),
'
pointRecord
'
);
const
memberLevel
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/member/memberLevel.vue
'
)),
'
memberLevel
'
);
const
memberRights
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/member/memberRights.vue
'
)),
'
memberRights
'
);
// 用户管理
// 用户管理
const
friendRecord
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/userManagement/friendRecord.vue
'
)),
'
friendRecord
'
);
const
friendRecord
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/userManagement/friendRecord.vue
'
)),
'
friendRecord
'
);
// 奖券管理
// 奖券管理
...
@@ -49,10 +56,6 @@ const activeTemplateManage = r => require.ensure([], () => r(require('../view/ac
...
@@ -49,10 +56,6 @@ const activeTemplateManage = r => require.ensure([], () => r(require('../view/ac
// 公众号通知消息模块
// 公众号通知消息模块
const
wechatMessage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/wechatMessage/wechatMessage.vue
'
)),
'
wechatMessage
'
);
const
wechatMessage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/wechatMessage/wechatMessage.vue
'
)),
'
wechatMessage
'
);
// 会员权益
const
memberLevel
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/member/memberLevel.vue
'
)),
'
memberLevel
'
);
const
memberRights
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/member/memberRights.vue
'
)),
'
memberRights
'
);
// 流量工厂模块
// 流量工厂模块
const
kaManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/trafficFactory/kaManage.vue
'
)),
'
kaManage
'
);
const
kaManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/trafficFactory/kaManage.vue
'
)),
'
kaManage
'
);
const
userGroup
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/userGroup
'
)),
'
userGroup
'
);
const
userGroup
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/userGroup
'
)),
'
userGroup
'
);
...
@@ -61,6 +64,9 @@ const marketingAllocation = r => require.ensure([], () => r(require('../view/tra
...
@@ -61,6 +64,9 @@ const marketingAllocation = r => require.ensure([], () => r(require('../view/tra
const
homePageLayout
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/homePageLayout/index.vue
'
)),
'
homePageLayout
'
);
const
homePageLayout
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/homePageLayout/index.vue
'
)),
'
homePageLayout
'
);
// 微信公众号登录页图片上传
const
officialLanding
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'
../view/privateManage/officialLanding.vue
'
)),
'
officialLanding
'
);
const
routes
=
[
const
routes
=
[
{
{
path
:
'
/
'
,
path
:
'
/
'
,
...
@@ -73,6 +79,30 @@ const routes = [
...
@@ -73,6 +79,30 @@ const routes = [
requireAuth
:
true
,
requireAuth
:
true
,
},
},
children
:
[
children
:
[
{
path
:
'
invoiceRecord
'
,
component
:
invoiceRecord
,
},
{
path
:
'
wxPayRecord
'
,
component
:
wxPayRecord
,
},
{
path
:
'
expenditure
'
,
component
:
expenditure
,
},
{
path
:
'
dayConsumeAnalysis
'
,
component
:
dayConsumeAnalysis
,
},
{
path
:
'
userManage
'
,
component
:
userManage
,
},
{
path
:
'
adList
'
,
component
:
adList
,
},
{
{
path
:
'
specialList
'
,
path
:
'
specialList
'
,
component
:
specialList
,
component
:
specialList
,
...
@@ -133,10 +163,10 @@ const routes = [
...
@@ -133,10 +163,10 @@ const routes = [
path
:
'
createMessage
'
,
path
:
'
createMessage
'
,
component
:
createMessage
,
component
:
createMessage
,
},
},
{
//
{
path
:
'
adList
'
,
//
path: 'adList',
component
:
adList
,
//
component: adList,
},
//
},
{
{
path
:
'
newAdList
'
,
path
:
'
newAdList
'
,
component
:
newAdList
,
component
:
newAdList
,
...
@@ -150,10 +180,10 @@ const routes = [
...
@@ -150,10 +180,10 @@ const routes = [
component
:
memberLevel
,
component
:
memberLevel
,
},
},
{
//
{
path
:
'
loanHomePage
'
,
//
path: 'loanHomePage',
component
:
loanHomePage
,
//
component: loanHomePage,
},
//
},
{
{
path
:
'
templateManage
'
,
path
:
'
templateManage
'
,
component
:
templateManage
,
component
:
templateManage
,
...
@@ -226,6 +256,10 @@ const routes = [
...
@@ -226,6 +256,10 @@ const routes = [
path
:
'
tabDeploy
'
,
path
:
'
tabDeploy
'
,
component
:
tabDeploy
,
component
:
tabDeploy
,
},
},
{
path
:
'
officialLanding
'
,
component
:
officialLanding
,
},
],
],
},
},
];
];
...
...
src/services/apis/activity.service.js
View file @
8bb65e9e
...
@@ -167,6 +167,27 @@ export default {
...
@@ -167,6 +167,27 @@ export default {
}
}
});
});
},
},
// 导出限额支付的商品数据
exportCashList
()
{
return
http
.
get
(
`
${
appApi
}
/api/kdsp/new-user/exclusive/sku-limit/export`
,
{
responseType
:
'
arraybuffer
'
,
})
.
then
(
data
=>
{
if
(
data
.
byteLength
>
0
)
{
const
blob
=
new
Blob
([
data
],
{
type
:
'
application/vnd.ms-excel;
'
});
fileSaver
.
saveAs
(
blob
,
`支付限额的商品数据列表.xlsx`
);
}
});
},
// 添加限额支付限制商品
getCashLimitList
(
params
)
{
return
http
.
post
(
`
${
appApi
}
/api/kdsp/new-user/exclusive/sku-limit/submit`
,
params
);
},
// 限额支付页停用启用按钮
updateStatus
(
params
)
{
return
http
.
get
(
`
${
appApi
}
/api/kdsp/new-user/exclusive/sku-limit/start-stop?enable=
${
params
.
enable
}
`
);
},
changeProductLableStatus
(
params
)
{
changeProductLableStatus
(
params
)
{
return
http
.
post
(
`
${
appApi
}
/api/kdsp/activity/activity-goods/label-info/sku-label/update`
,
params
);
return
http
.
post
(
`
${
appApi
}
/api/kdsp/activity/activity-goods/label-info/sku-label/update`
,
params
);
},
},
...
@@ -206,4 +227,12 @@ export default {
...
@@ -206,4 +227,12 @@ export default {
params
.
append
(
'
previewId
'
,
previewId
);
params
.
append
(
'
previewId
'
,
previewId
);
return
http
.
post
(
`
${
appApi
}
/api/kdsp/activity/activity-goods/special/upload-template`
,
params
);
return
http
.
post
(
`
${
appApi
}
/api/kdsp/activity/activity-goods/special/upload-template`
,
params
);
},
},
// 获取现金支付的已有数据
getCashList
()
{
return
http
.
get
(
`
${
appApi
}
/api/kdsp/new-user/exclusive/sku-limit/get`
);
},
// 查看详情
lookDetails
(
params
)
{
return
http
.
get
(
`
${
appApi
}
/api/kdsp/new-user/exclusive/sku-limit/page?
${
qs
.
stringify
(
params
)}
`
);
},
};
};
src/services/apis/coupon.service.js
View file @
8bb65e9e
...
@@ -63,6 +63,9 @@ export default {
...
@@ -63,6 +63,9 @@ export default {
categoryQuery
()
{
categoryQuery
()
{
return
http
.
get
(
`
${
appApi
}
/api/kdsp/op/rear-category/query/all`
);
return
http
.
get
(
`
${
appApi
}
/api/kdsp/op/rear-category/query/all`
);
},
},
threeCategoryQuery
()
{
return
http
.
get
(
`
${
appApi
}
/api/kdsp/op/rear-category/sku-limit/query/all`
);
},
// 用户领取的优惠券冻结解冻(是否可用)
// 用户领取的优惠券冻结解冻(是否可用)
receiverUpdate
(
params
)
{
receiverUpdate
(
params
)
{
return
http
.
post
(
`
${
appApi
}
/api/kdsp/op/coupon/receiver/update`
,
params
);
return
http
.
post
(
`
${
appApi
}
/api/kdsp/op/coupon/receiver/update`
,
params
);
...
...
src/services/apis/offcialLanding.js
0 → 100644
View file @
8bb65e9e
import
config
from
'
../../config
'
;
const
{
appApi
}
=
config
;
export
default
{
submit
(
params
)
{
return
http
.
post
(
`
${
appApi
}
/api/kdsp/pre-login/img-url/save`
,
params
);
},
getImg
()
{
return
http
.
get
(
`
${
appApi
}
/api/kdsp/pre-login/img-url/get`
);
},
update
(
params
)
{
return
http
.
put
(
`
${
appApi
}
/api/kdsp/pre-login/img-url/update`
,
params
);
},
};
src/services/apis/user.service.js
View file @
8bb65e9e
...
@@ -53,6 +53,19 @@ const menus = [
...
@@ -53,6 +53,19 @@ const menus = [
},
},
childNodes
:
[],
childNodes
:
[],
},
},
{
node
:
{
id
:
'
dbeaef7d-acf7-4d27-9432-9421bb5743f1
'
,
name
:
'
新广告位列表
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
newAdList
'
,
},
childNodes
:
[],
},
],
],
},
},
{
{
...
@@ -184,6 +197,19 @@ const menus = [
...
@@ -184,6 +197,19 @@ const menus = [
},
},
childNodes
:
[],
childNodes
:
[],
},
},
{
node
:
{
id
:
'
dde9bb49-97cb-417e-b890-5cdee4bd12e1
'
,
name
:
'
发送微信公众号通知
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
wechatMessage
'
,
},
childNodes
:
[],
},
],
],
},
},
{
{
...
@@ -211,6 +237,19 @@ const menus = [
...
@@ -211,6 +237,19 @@ const menus = [
},
},
childNodes
:
[],
childNodes
:
[],
},
},
{
node
:
{
id
:
'
3a1cedbf-f4d6-4fe7-bcfc-8d2f327ca6cd
'
,
// 自己设置的id
name
:
'
首页布局
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
homePageLayout
'
,
},
childNodes
:
[],
},
{
{
node
:
{
node
:
{
id
:
'
3a1cedbf-f4d6-4fe7-bcfc-8d2f327ca6cc
'
,
id
:
'
3a1cedbf-f4d6-4fe7-bcfc-8d2f327ca6cc
'
,
...
@@ -322,7 +361,7 @@ const menus = [
...
@@ -322,7 +361,7 @@ const menus = [
{
{
node
:
{
node
:
{
id
:
'
119d1160-c446-4370-8d50-8fd749ebb39c
'
,
id
:
'
119d1160-c446-4370-8d50-8fd749ebb39c
'
,
name
:
'
积分
'
,
name
:
'
会员中心
'
,
picture
:
'
ios-list
'
,
picture
:
'
ios-list
'
,
type
:
{
type
:
{
name
:
'
资源组
'
,
name
:
'
资源组
'
,
...
@@ -334,7 +373,7 @@ const menus = [
...
@@ -334,7 +373,7 @@ const menus = [
{
{
node
:
{
node
:
{
id
:
'
43a9714d-84da-459e-9182-55e06e5e717d
'
,
id
:
'
43a9714d-84da-459e-9182-55e06e5e717d
'
,
name
:
'
积分列表
'
,
name
:
'
会员任务
'
,
picture
:
null
,
picture
:
null
,
type
:
{
type
:
{
name
:
'
菜单
'
,
name
:
'
菜单
'
,
...
@@ -347,7 +386,7 @@ const menus = [
...
@@ -347,7 +386,7 @@ const menus = [
{
{
node
:
{
node
:
{
id
:
'
c13c3287-5580-4b2e-b979-bd58e5f11554
'
,
id
:
'
c13c3287-5580-4b2e-b979-bd58e5f11554
'
,
name
:
'
积分明细记录
'
,
name
:
'
成长值明细
'
,
picture
:
null
,
picture
:
null
,
type
:
{
type
:
{
name
:
'
菜单
'
,
name
:
'
菜单
'
,
...
@@ -357,6 +396,32 @@ const menus = [
...
@@ -357,6 +396,32 @@ const menus = [
},
},
childNodes
:
[],
childNodes
:
[],
},
},
{
node
:
{
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
name
:
'
会员等级
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
memberLevel
'
,
},
childNodes
:
[],
},
{
node
:
{
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
name
:
'
会员权益
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
memberRights
'
,
},
childNodes
:
[],
},
],
],
},
},
{
{
...
@@ -371,6 +436,19 @@ const menus = [
...
@@ -371,6 +436,19 @@ const menus = [
uri
:
null
,
uri
:
null
,
},
},
childNodes
:
[
childNodes
:
[
{
node
:
{
id
:
'
7fec0d98-8693-9f90-7d8e-770f958fda4b
'
,
// 此处自己设置的
name
:
'
用户管理
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
userManage
'
,
},
childNodes
:
[],
},
{
{
node
:
{
node
:
{
id
:
'
7fec0d98-8693-9f90-7d8e-770f958fda4a
'
,
id
:
'
7fec0d98-8693-9f90-7d8e-770f958fda4a
'
,
...
@@ -403,7 +481,7 @@ const menus = [
...
@@ -403,7 +481,7 @@ const menus = [
node
:
{
node
:
{
id
:
'
580b8099-2c3b-43a6-8c5d-0edfc757ee38
'
,
id
:
'
580b8099-2c3b-43a6-8c5d-0edfc757ee38
'
,
name
:
'
活动管理
'
,
name
:
'
活动管理
'
,
picture
:
null
,
picture
:
'
checkmark-circled
'
,
type
:
{
type
:
{
name
:
'
资源组
'
,
name
:
'
资源组
'
,
value
:
1
,
value
:
1
,
...
@@ -443,7 +521,7 @@ const menus = [
...
@@ -443,7 +521,7 @@ const menus = [
node
:
{
node
:
{
id
:
'
89deb3bc-f794-4dfa-b63f-5d0ce49a06eb
'
,
id
:
'
89deb3bc-f794-4dfa-b63f-5d0ce49a06eb
'
,
name
:
'
活动商品管理
'
,
name
:
'
活动商品管理
'
,
picture
:
null
,
picture
:
'
checkmark-circled
'
,
type
:
{
type
:
{
name
:
'
资源组
'
,
name
:
'
资源组
'
,
value
:
1
,
value
:
1
,
...
@@ -490,30 +568,16 @@ const menus = [
...
@@ -490,30 +568,16 @@ const menus = [
},
},
childNodes
:
[],
childNodes
:
[],
},
},
],
},
{
node
:
{
id
:
'
72f586b1-a65b-45fb-847a-cf11c3b56bc3
'
,
name
:
'
活动模版管理
'
,
picture
:
'
ios-settings
'
,
type
:
{
name
:
'
资源组
'
,
value
:
1
,
},
uri
:
null
,
},
childNodes
:
[
{
{
node
:
{
node
:
{
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
id
:
'
e8be713e-aaf1-470a-81d3-67ad15d59c62
'
,
// 自己给的id
name
:
'
活动模版管理
'
,
name
:
'
支付限额商品列表
'
,
picture
:
null
,
picture
:
null
,
type
:
{
type
:
{
name
:
'
菜单
'
,
name
:
'
菜单
'
,
value
:
2
,
value
:
2
,
},
},
uri
:
'
activeTemplateManage
'
,
uri
:
'
cashPayList
'
,
},
},
childNodes
:
[],
childNodes
:
[],
},
},
...
@@ -522,7 +586,7 @@ const menus = [
...
@@ -522,7 +586,7 @@ const menus = [
{
{
node
:
{
node
:
{
id
:
'
72f586b1-a65b-45fb-847a-cf11c3b56bc3
'
,
id
:
'
72f586b1-a65b-45fb-847a-cf11c3b56bc3
'
,
name
:
'
流量工厂
'
,
name
:
'
活动模版管理
'
,
picture
:
'
ios-settings
'
,
picture
:
'
ios-settings
'
,
type
:
{
type
:
{
name
:
'
资源组
'
,
name
:
'
资源组
'
,
...
@@ -534,26 +598,13 @@ const menus = [
...
@@ -534,26 +598,13 @@ const menus = [
{
{
node
:
{
node
:
{
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
name
:
'
KA管理
'
,
name
:
'
活动模版管理
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
kaManage
'
,
},
childNodes
:
[],
},
{
node
:
{
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
name
:
'
营销配置
'
,
picture
:
null
,
picture
:
null
,
type
:
{
type
:
{
name
:
'
菜单
'
,
name
:
'
菜单
'
,
value
:
2
,
value
:
2
,
},
},
uri
:
'
marketingAllocation
'
,
uri
:
'
activeTemplateManage
'
,
},
},
childNodes
:
[],
childNodes
:
[],
},
},
...
@@ -562,7 +613,7 @@ const menus = [
...
@@ -562,7 +613,7 @@ const menus = [
{
{
node
:
{
node
:
{
id
:
'
72f586b1-a65b-45fb-847a-cf11c3b56bc3
'
,
id
:
'
72f586b1-a65b-45fb-847a-cf11c3b56bc3
'
,
name
:
'
会员权益
'
,
name
:
'
私域管理
'
,
picture
:
'
ios-settings
'
,
picture
:
'
ios-settings
'
,
type
:
{
type
:
{
name
:
'
资源组
'
,
name
:
'
资源组
'
,
...
@@ -573,27 +624,14 @@ const menus = [
...
@@ -573,27 +624,14 @@ const menus = [
childNodes
:
[
childNodes
:
[
{
{
node
:
{
node
:
{
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc4
'
,
// 自己设置的id
name
:
'
会员等级
'
,
name
:
'
公众号登录页
'
,
picture
:
null
,
type
:
{
name
:
'
菜单
'
,
value
:
2
,
},
uri
:
'
memberLevel
'
,
},
childNodes
:
[],
},
{
node
:
{
id
:
'
f802681d-cf34-4eff-8838-1839ebe54bc3
'
,
name
:
'
等级权益
'
,
picture
:
null
,
picture
:
null
,
type
:
{
type
:
{
name
:
'
菜单
'
,
name
:
'
菜单
'
,
value
:
2
,
value
:
2
,
},
},
uri
:
'
memberRights
'
,
uri
:
'
officialLanding
'
,
},
},
childNodes
:
[],
childNodes
:
[],
},
},
...
@@ -611,6 +649,7 @@ export function getMenuData() {
...
@@ -611,6 +649,7 @@ export function getMenuData() {
export
function
normalization
(
menuData
=
menus
)
{
export
function
normalization
(
menuData
=
menus
)
{
const
value
=
[];
const
value
=
[];
const
data
=
[...
menuData
];
const
data
=
[...
menuData
];
console
.
log
(
'
data-menu
'
,
data
);
data
.
forEach
(
item
=>
{
data
.
forEach
(
item
=>
{
let
obj
=
{};
let
obj
=
{};
obj
=
{
...
item
.
node
};
obj
=
{
...
item
.
node
};
...
...
src/view/activeTemplateManage/index.vue
View file @
8bb65e9e
...
@@ -282,6 +282,7 @@
...
@@ -282,6 +282,7 @@
v-model=
"form.kaChannelNo"
v-model=
"form.kaChannelNo"
ref=
"select"
ref=
"select"
filterable
filterable
:label=
"kaLabel"
class=
"select-width-280"
class=
"select-width-280"
transfer
transfer
:disabled=
"readOnly"
:disabled=
"readOnly"
...
@@ -547,7 +548,6 @@ export default {
...
@@ -547,7 +548,6 @@ export default {
remoteMethod
(
query
)
{
remoteMethod
(
query
)
{
if
(
query
)
{
if
(
query
)
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
console
.
log
(
res
,
'
reskalist
'
);
res
.
records
.
forEach
(
item
=>
{
res
.
records
.
forEach
(
item
=>
{
item
.
label
=
item
.
channelNo
+
'
_
'
+
item
.
channelName
;
item
.
label
=
item
.
channelNo
+
'
_
'
+
item
.
channelName
;
});
});
...
@@ -588,7 +588,6 @@ export default {
...
@@ -588,7 +588,6 @@ export default {
}
}
const
listDetail
=
[];
const
listDetail
=
[];
this
.
form
.
formModule
.
forEach
(
e
=>
{
this
.
form
.
formModule
.
forEach
(
e
=>
{
console
.
log
(
'
e
'
,
e
,
this
.
form
.
type
);
const
{
startTime
,
endTime
,
bgcolor
,
img
,
cid1
,
activityGoodsSpecialId
,
timeRange
,
limitQuantity
}
=
e
;
const
{
startTime
,
endTime
,
bgcolor
,
img
,
cid1
,
activityGoodsSpecialId
,
timeRange
,
limitQuantity
}
=
e
;
const
itemData
=
{
startTime
,
bgcolor
,
endTime
,
img
,
cid1
,
activityGoodsSpecialId
,
timeRange
,
limitQuantity
};
const
itemData
=
{
startTime
,
bgcolor
,
endTime
,
img
,
cid1
,
activityGoodsSpecialId
,
timeRange
,
limitQuantity
};
itemData
.
startTime
=
this
.
form
.
type
!==
1
?
''
:
this
.
form
.
timeSelectionFormat
===
0
?
getTime
(
itemData
.
startTime
)
:
getTime
(
timeRange
[
0
]);
itemData
.
startTime
=
this
.
form
.
type
!==
1
?
''
:
this
.
form
.
timeSelectionFormat
===
0
?
getTime
(
itemData
.
startTime
)
:
getTime
(
timeRange
[
0
]);
...
@@ -601,7 +600,6 @@ export default {
...
@@ -601,7 +600,6 @@ export default {
itemData
.
img
=
this
.
form
.
type
===
1
?
itemData
&&
itemData
.
img
[
0
]
:
''
;
itemData
.
img
=
this
.
form
.
type
===
1
?
itemData
&&
itemData
.
img
[
0
]
:
''
;
listDetail
.
push
(
itemData
);
listDetail
.
push
(
itemData
);
});
});
console
.
log
(
listDetail
);
const
param
=
deepCopy
(
this
.
form
);
const
param
=
deepCopy
(
this
.
form
);
param
.
zeroBuyRule
&&
param
.
zeroBuyRule
&&
param
.
zeroBuyRule
.
forEach
(
item
=>
{
param
.
zeroBuyRule
.
forEach
(
item
=>
{
...
@@ -610,7 +608,6 @@ export default {
...
@@ -610,7 +608,6 @@ export default {
delete
item
.
specialCaseRatio
;
delete
item
.
specialCaseRatio
;
}
}
});
});
console
.
log
(
param
,
'
param
'
);
param
.
bannerUrl
=
param
.
bannerUrl
&&
param
.
bannerUrl
.
join
(
''
);
param
.
bannerUrl
=
param
.
bannerUrl
&&
param
.
bannerUrl
.
join
(
''
);
// param.showBanner = +this.form.showBanner;
// param.showBanner = +this.form.showBanner;
if
(
this
.
form
.
type
===
1
)
{
if
(
this
.
form
.
type
===
1
)
{
...
@@ -684,7 +681,7 @@ export default {
...
@@ -684,7 +681,7 @@ export default {
this
.
title
=
'
新建
'
;
this
.
title
=
'
新建
'
;
},
},
async
getInfo
(
params
,
type
)
{
async
getInfo
(
params
,
type
)
{
this
.
f
irstEdit
=
true
;
this
.
f
orm
=
{}
;
this
.
kaChannelList
=
[];
this
.
kaChannelList
=
[];
this
.
readOnly
=
type
;
this
.
readOnly
=
type
;
this
.
title
=
type
?
'
查看
'
:
'
修改
'
;
this
.
title
=
type
?
'
查看
'
:
'
修改
'
;
...
@@ -695,10 +692,11 @@ export default {
...
@@ -695,10 +692,11 @@ export default {
if
(
item
.
channelNo
===
res
.
kaChannelNo
)
{
if
(
item
.
channelNo
===
res
.
kaChannelNo
)
{
this
.
kaLabel
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
this
.
kaLabel
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
}
}
item
.
label
=
item
.
channelNo
+
'
_
'
+
item
.
channelName
;
item
.
label
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
});
});
this
.
kaChannelList
=
Object
.
assign
([],
...
result
.
records
)
;
this
.
kaChannelList
=
result
.
records
;
}
}
this
.
changeChannel
(
res
.
kaChannelNo
);
this
.
editContent
=
res
;
this
.
editContent
=
res
;
// delete res.kaChannelNo;
// delete res.kaChannelNo;
const
listDetail
=
[];
const
listDetail
=
[];
...
@@ -714,7 +712,6 @@ export default {
...
@@ -714,7 +712,6 @@ export default {
this
.
form
.
img
=
(
this
.
form
.
img
&&
this
.
form
.
img
.
split
(
'
,
'
))
||
[];
this
.
form
.
img
=
(
this
.
form
.
img
&&
this
.
form
.
img
.
split
(
'
,
'
))
||
[];
this
.
form
.
bannerUrl
=
this
.
form
.
bannerUrl
&&
this
.
form
.
bannerUrl
.
split
(
'
,
'
);
this
.
form
.
bannerUrl
=
this
.
form
.
bannerUrl
&&
this
.
form
.
bannerUrl
.
split
(
'
,
'
);
this
.
form
.
couponMutex
=
res
.
couponMutex
&&
res
.
couponMutex
?
1
:
0
;
this
.
form
.
couponMutex
=
res
.
couponMutex
&&
res
.
couponMutex
?
1
:
0
;
this
.
firstEdit
=
false
;
this
.
modal
=
true
;
this
.
modal
=
true
;
},
},
newDel
(
index
,
isFormModule
,
crowd
)
{
newDel
(
index
,
isFormModule
,
crowd
)
{
...
...
src/view/activityGoodManag/cashPayList.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div
class=
"about"
>
<Form
inline
:label-width=
"88"
>
<Table
border
:columns=
"columns"
:data=
"cashData"
></Table>
<Modal
v-model=
"cashModal"
width=
"600"
:closable=
"false"
:mask-closable=
"false"
>
<h3>
编辑
</h3>
<Form
:model=
"form"
:rules=
"ruleValidate"
ref=
"ruleForm"
:label-width=
"120"
style=
"margin-top: 20px"
>
<FormItem
label=
"限制商品类型"
>
<Select
v-model.number=
"form.type"
style=
"width: 150px"
placeholder=
"请选择"
clearable
>
<Option
v-for=
"item in limitgoodsList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
</Option>
</Select>
</FormItem>
<FormItem
label=
"标签ID:"
prop=
"usedLimitLabelIds"
v-if=
"form.type === 1"
>
<Select
v-model=
"form.usedLimitLabelIds"
style=
"width: 250px"
multiple
transfer
placeholder=
"请选择"
clearable
>
<Option
v-for=
"item in labelList"
:key=
"item.id"
:value=
"item.id"
:label=
"item.labelName"
>
{{
item
.
labelName
}}
</Option>
</Select>
</FormItem>
<FormItem
label=
"商品品类:"
prop=
"selectUsedCategoryIdList"
v-if=
"form.type === 2"
>
<treeselect
v-model=
"form.selectUsedCategoryIdList"
:disabled=
"showDisabled"
multiple
:options=
"productCategory"
:normalizer=
"normalizer"
placeholder=
"请选择"
style=
"width: 250px"
/>
<!--
<p
class=
"color_red"
>
#不选默认即为全选
</p>
-->
</FormItem>
<FormItem
label=
"毛利小于"
v-if=
"form.type === 2"
prop=
"preProfit"
>
<Input
v-model=
"form.preProfit"
style=
"width: 50px"
/>
%
</FormItem>
</Form>
<div
slot=
"footer"
>
<Button
type=
"primary"
@
click=
"onSave()"
>
保存
</Button>
<Button
@
click=
"onCancel"
>
取消
</Button>
</div>
</Modal>
<Modal
v-model=
"cashDetailModal"
width=
"900"
:closeable=
"false"
:mask-closable=
"true"
>
<h3>
查看详情
</h3>
<Form
ref=
"ruleDetailForm"
:model=
"detailForm"
:rules=
"rule"
:label-width=
"120"
style=
"margin-top: 20px"
>
<Table
border
:columns=
"detailColumns"
:data=
"detailData"
></Table>
</Form>
<Page
:total=
"total"
show-total
:current.sync=
"search.pageNo"
:page-size=
"search.pageSize"
show-elevator
style=
"margin-top: 20px"
@
on-change=
"changePage"
/>
<div
slot=
"footer"
>
<Button
type=
"primary"
@
click=
"onSure()"
>
确定
</Button>
</div>
</Modal>
</Form>
</div>
</
template
>
<
script
>
import
activityApi
from
'
../../services/apis/activity.service
'
;
import
couponSerivce
from
'
../../services/apis/coupon.service
'
;
import
Treeselect
from
'
@riophae/vue-treeselect
'
;
import
'
@riophae/vue-treeselect/dist/vue-treeselect.css
'
;
import
{
limitgoodsList
}
from
'
./data.js
'
;
export
default
{
components
:
{
Treeselect
,
},
data
()
{
return
{
form
:
{
type
:
''
,
id
:
''
,
selectUsedCategoryIdList
:
[],
preProfit
:
''
,
usedLimitLabelIds
:
[],
},
search
:
{
pageNo
:
1
,
pageSize
:
10
,
},
total
:
0
,
ruleValidate
:
{
usedLimitLabelIds
:
[
{
required
:
true
,
message
:
'
请选择标签
'
,
trigger
:
'
change
'
,
type
:
'
array
'
,
},
],
},
treeData
:
[],
treeNode
:
[],
oldNode
:
[],
cashData
:
[],
cashModal
:
false
,
cashDetailModal
:
false
,
limitgoodsList
,
labelList
:
[],
productCategory
:
[],
detailData
:
[],
sourceList
:
{
1
:
'
自营
'
,
2
:
'
京东开普勒
'
,
3
:
'
京东联盟
'
,
4
:
'
众联
'
,
5
:
'
企业购
'
,
6
:
'
企业购直连
'
,
},
typeList
:
{
// 0: '不限制',
1
:
'
标签
'
,
2
:
'
品类
'
,
},
detailColumns
:
[
{
key
:
'
rank
'
,
title
:
'
ID
'
,
align
:
'
center
'
,
},
{
key
:
'
skuNo
'
,
title
:
'
sku_no
'
,
align
:
'
center
'
,
width
:
'
140px
'
,
},
{
key
:
'
skuName
'
,
title
:
'
商品名称
'
,
align
:
'
center
'
,
width
:
'
150px
'
,
},
{
key
:
'
skuSource
'
,
title
:
'
商品渠道
'
,
align
:
'
center
'
,
width
:
'
100px
'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'
div
'
,
this
.
sourceList
[
params
.
row
.
skuSource
]);
},
},
{
key
:
'
salePrice
'
,
title
:
'
销售价格
'
,
align
:
'
center
'
,
width
:
'
100px
'
,
},
{
key
:
'
marketPrice
'
,
title
:
'
划线价格
'
,
align
:
'
center
'
,
width
:
'
100px
'
,
},
{
key
:
'
costPrice
'
,
title
:
'
供货价格
'
,
align
:
'
center
'
,
width
:
'
100px
'
,
},
{
key
:
'
goodsStatus
'
,
title
:
'
商品状态
'
,
align
:
'
center
'
,
width
:
'
100px
'
,
render
:
h
=>
{
return
h
(
'
div
'
,
'
上架
'
);
},
},
],
columns
:
[
{
key
:
'
id
'
,
title
:
'
ID
'
,
align
:
'
center
'
,
},
{
key
:
'
type
'
,
title
:
'
限制商品类型
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'
div
'
,
params
.
row
.
type
?
this
.
typeList
[
params
.
row
.
type
]
:
'
不限制
'
);
},
},
{
key
:
'
skuInfoSize
'
,
title
:
'
商品数量
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'
div
'
,
params
.
row
.
type
?
params
.
row
.
skuInfoSize
:
'
xxx
'
);
},
},
{
key
:
'
action
'
,
title
:
'
操作
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'
div
'
,
[
h
(
'
Button
'
,
{
props
:
{
type
:
'
primary
'
,
},
style
:
{
margin
:
'
2px 5px
'
,
},
on
:
{
click
:
()
=>
{
console
.
log
(
params
.
row
,
'
paramsrow
'
);
this
.
showEdit
(
params
.
row
);
},
},
},
'
编辑
'
),
h
(
'
Button
'
,
{
props
:
{
type
:
'
primary
'
,
},
style
:
{
margin
:
'
2px 5px
'
,
},
on
:
{
click
:
()
=>
{
this
.
showDetail
(
params
.
row
);
},
},
},
'
查看详情
'
),
h
(
'
Button
'
,
{
props
:
{
type
:
'
primary
'
,
},
on
:
{
click
:
()
=>
{
this
.
useOrStop
(
params
.
row
.
enable
);
},
},
},
params
.
row
.
enable
===
'
VALID
'
?
'
停用
'
:
'
启用
'
),
h
(
'
Button
'
,
{
props
:
{
type
:
'
primary
'
,
},
style
:
{
margin
:
'
2px 5px
'
,
},
on
:
{
click
:
()
=>
{
this
.
exportProductByLabel
(
params
.
row
);
},
},
},
'
导出标签商品列表
'
),
]);
},
},
],
};
},
methods
:
{
spread
(
node
)
{
console
.
log
(
node
,
'
node
'
);
if
(
node
.
children
)
{
node
.
children
.
map
(
item
=>
{
if
(
!
item
.
children
)
{
this
.
treeData
.
push
(
item
.
id
);
}
else
{
item
.
children
.
map
(
it
=>
{
if
(
!
it
.
children
)
{
this
.
treeData
.
push
(
it
.
id
);
}
else
{
it
.
children
.
map
(
itemData
=>
{
if
(
!
itemData
.
children
)
{
this
.
treeData
.
push
(
itemData
.
id
);
}
});
}
});
}
});
}
else
{
this
.
treeData
.
push
(
node
.
id
);
}
},
delete
(
node
)
{
if
(
node
.
children
)
{
node
.
children
.
map
(
item
=>
{
if
(
!
item
.
children
)
{
this
.
form
.
selectUsedCategoryIdList
.
splice
(
this
.
form
.
selectUsedCategoryIdList
.
indexOf
(
item
.
id
),
1
);
}
else
{
item
.
children
.
map
(
it
=>
{
if
(
!
it
.
children
)
{
this
.
form
.
selectUsedCategoryIdList
.
splice
(
this
.
form
.
selectUsedCategoryIdList
.
indexOf
(
it
.
id
),
1
);
}
else
{
it
.
children
.
map
(
itemData
=>
{
if
(
!
itemData
.
children
)
{
this
.
form
.
selectUsedCategoryIdList
.
splice
(
this
.
form
.
selectUsedCategoryIdList
.
indexOf
(
itemData
.
id
),
1
);
}
});
}
});
}
});
}
else
{
return
;
}
},
showEdit
(
params
)
{
this
.
cashModal
=
true
;
this
.
treeData
=
[];
this
.
oldNode
=
[];
this
.
form
=
{
...
params
};
this
.
form
.
usedLimitLabelIds
=
params
.
type
===
1
?
params
.
limitIds
.
split
(
'
,
'
).
map
(
i
=>
(
i
=
+
i
))
:
[];
this
.
form
.
selectUsedCategoryIdList
=
params
.
type
===
2
?
params
.
limitIds
.
split
(
'
,
'
)
:
[];
console
.
log
(
this
.
productCategory
,
'
this.productCategory
'
);
this
.
form
.
selectUsedCategoryIdList
.
map
(
item
=>
{
this
.
findNode
(
this
.
productCategory
,
item
);
});
this
.
oldNode
.
map
(
item
=>
{
this
.
delete
(
item
);
});
},
findNode
(
list
,
value
)
{
list
.
map
(
item
=>
{
if
(
item
.
id
===
value
)
{
this
.
oldNode
.
push
(
item
);
this
.
treeNode
.
push
(
item
);
}
else
if
(
item
.
children
)
{
this
.
findNode
(
item
.
children
,
value
);
}
});
},
showDetail
()
{
// 查看详情
this
.
cashDetailModal
=
true
;
this
.
search
.
pageNo
=
1
;
activityApi
.
lookDetails
({
pageNo
:
this
.
search
.
pageNo
,
pageSize
:
10
}).
then
(
res
=>
{
if
(
this
.
search
.
pageNo
*
10
<
this
.
total
)
{
for
(
let
i
=
0
;
i
<
10
;
i
++
)
{
res
[
i
].
rank
=
(
this
.
search
.
pageNo
-
1
)
*
10
+
1
+
i
;
}
}
else
{
for
(
let
i
=
0
;
i
<
this
.
total
-
(
this
.
search
.
pageNo
-
1
)
*
10
;
i
++
)
{
res
[
i
].
rank
=
(
this
.
search
.
pageNo
-
1
)
*
10
+
1
+
i
;
}
}
this
.
detailData
=
res
;
});
},
getChooseList
()
{
couponSerivce
.
labelInfoList
().
then
(
res
=>
{
res
.
forEach
(
item
=>
{
item
.
labelName
=
`
${
item
.
id
}
--
${
item
.
labelName
}
`
;
});
this
.
labelList
=
res
;
});
couponSerivce
.
threeCategoryQuery
().
then
(
res
=>
{
this
.
productCategory
=
res
.
level1List
?
recursionData
(
res
.
level1List
)
:
[];
function
recursionData
(
data
)
{
const
list
=
[];
data
.
forEach
(
item
=>
{
const
{
categoryId
:
id
,
categoryName
:
label
,
children
}
=
item
;
const
itemData
=
{
id
:
id
+
''
,
label
};
if
(
item
.
children
&&
item
.
children
.
length
)
itemData
.
children
=
recursionData
(
children
);
list
.
push
(
itemData
);
});
return
list
;
}
});
this
.
query
();
},
normalizer
(
node
)
{
// 去掉children=[]的children属性
// 参数options的数据转换
if
(
node
.
children
&&
!
node
.
children
.
length
)
{
delete
node
.
children
;
}
return
{
id
:
node
.
id
||
null
,
// 将name转换成必填的label键
label
:
node
.
label
,
children
:
node
.
children
,
};
},
onCancel
()
{
this
.
cashModal
=
false
;
},
onSure
()
{
this
.
cashDetailModal
=
false
;
},
onSave
()
{
this
.
treeNode
=
[];
if
(
this
.
form
.
selectUsedCategoryIdList
)
{
this
.
form
.
selectUsedCategoryIdList
.
map
(
item
=>
{
this
.
findNode
(
this
.
productCategory
,
item
);
});
}
console
.
log
(
this
.
treeNode
,
'
treeNode
'
);
if
(
this
.
form
.
type
===
2
)
{
console
.
log
(
'
123345r563456
'
);
this
.
treeNode
.
map
(
item
=>
{
this
.
spread
(
item
);
});
this
.
treeData
=
[...
this
.
treeData
,
...
this
.
form
.
selectUsedCategoryIdList
];
this
.
treeData
=
Array
.
from
(
new
Set
(
this
.
treeData
));
console
.
log
(
this
.
treeData
,
'
000000000
'
);
}
this
.
$refs
[
'
ruleForm
'
].
validate
(
valid
=>
{
if
(
valid
)
{
const
params
=
{
...
this
.
form
,
preProfit
:
this
.
form
.
preProfit
?
this
.
form
.
preProfit
:
'
100.00
'
,
limitIds
:
this
.
form
.
type
===
1
?
this
.
form
.
usedLimitLabelIds
.
join
(
'
,
'
)
:
this
.
treeData
.
join
(
'
,
'
),
};
delete
params
.
selectUsedCategoryIdList
;
delete
params
.
usedLimitLabelIds
;
delete
params
.
skuInfos
;
if
(
+
params
.
preProfit
<
0
||
+
params
.
preProfit
>
100
)
{
this
.
$Message
.
error
(
'
请输入大于等于0且小于等于100的数
'
);
return
;
}
activityApi
.
getCashLimitList
(
params
).
then
(()
=>
{
this
.
$Message
.
success
(
'
保存成功!
'
);
this
.
treeData
=
[];
this
.
cashModal
=
false
;
this
.
query
();
});
}
else
{
this
.
$Message
.
error
(
'
请检查表单是否填写完整!
'
);
}
});
},
async
exportProductByLabel
()
{
// todo 导出现金支付的商品数据列表
await
activityApi
.
exportCashList
();
},
query
()
{
activityApi
.
getCashList
().
then
(
res
=>
{
console
.
log
(
res
,
'
res
'
);
this
.
cashData
=
[
res
];
this
.
total
=
res
.
skuInfoSize
;
});
},
changePage
(
page
)
{
this
.
search
.
pageNo
=
page
;
activityApi
.
lookDetails
({
pageNo
:
this
.
search
.
pageNo
,
pageSize
:
10
}).
then
(
res
=>
{
if
(
this
.
search
.
pageNo
*
10
<
this
.
total
)
{
for
(
let
i
=
0
;
i
<
10
;
i
++
)
{
res
[
i
].
rank
=
(
this
.
search
.
pageNo
-
1
)
*
10
+
1
+
i
;
}
}
else
{
for
(
let
i
=
0
;
i
<
this
.
total
-
(
this
.
search
.
pageNo
-
1
)
*
10
;
i
++
)
{
res
[
i
].
rank
=
(
this
.
search
.
pageNo
-
1
)
*
10
+
1
+
i
;
}
}
this
.
detailData
=
res
;
});
},
// 0:停用、1:启用
useOrStop
(
enable
)
{
const
params
=
{
enable
:
enable
===
'
VALID
'
?
0
:
1
,
};
activityApi
.
updateStatus
(
params
).
then
(()
=>
{
this
.
$Notice
.
success
({
title
:
'
操作成功!
'
,
});
this
.
query
();
});
},
},
mounted
()
{
this
.
getChooseList
();
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.color_red {
color: red;
}
</
style
>
src/view/activityGoodManag/data.js
View file @
8bb65e9e
...
@@ -142,3 +142,13 @@ export const dynamicRules = {
...
@@ -142,3 +142,13 @@ export const dynamicRules = {
pattern
:
/^
[
0-9
]
*
[
1-9
][
0-9
]
*$/
,
pattern
:
/^
[
0-9
]
*
[
1-9
][
0-9
]
*$/
,
},
},
};
};
export
const
limitgoodsList
=
[
{
id
:
2
,
name
:
'
指定品类
'
,
},
{
id
:
1
,
name
:
'
指定标签
'
,
},
];
src/view/activityGoodManag/specialList.vue
View file @
8bb65e9e
...
@@ -65,6 +65,7 @@
...
@@ -65,6 +65,7 @@
class=
"select-width-280"
class=
"select-width-280"
:disabled=
"disabled()"
:disabled=
"disabled()"
transfer
transfer
:label=
"kaLabel"
clearable
clearable
filterable
filterable
remote
remote
...
@@ -73,7 +74,7 @@
...
@@ -73,7 +74,7 @@
:not-found-text=
"kaChannelList.length !== 0 ? '' : '无匹配数据'"
:not-found-text=
"kaChannelList.length !== 0 ? '' : '无匹配数据'"
placeholder=
"请输入"
placeholder=
"请输入"
>
>
<Option
v-for=
"item in kaChannelList"
:key=
"item.channelNo"
:value=
"item.channelNo"
>
{{
item
.
channelNo
+
'
_
'
+
item
.
channelName
}}
</Option>
<Option
v-for=
"item in kaChannelList"
:key=
"item.channelNo"
:value=
"item.channelNo"
:label=
"item.label"
>
</Option>
</Select>
</Select>
<p
style=
"color: #ff6600"
>
提示:此参数配置选中后,表示以上配置内容仅在此渠道生效;
</p>
<p
style=
"color: #ff6600"
>
提示:此参数配置选中后,表示以上配置内容仅在此渠道生效;
</p>
</FormItem>
</FormItem>
...
@@ -117,6 +118,7 @@ export default {
...
@@ -117,6 +118,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
kaLabel
:
''
,
kaReminderModal
:
false
,
kaReminderModal
:
false
,
channelTitle
:
''
,
channelTitle
:
''
,
search
:
{
search
:
{
...
@@ -133,7 +135,7 @@ export default {
...
@@ -133,7 +135,7 @@ export default {
activityTime
:
[],
activityTime
:
[],
kaChannelList
:
[],
kaChannelList
:
[],
form
:
{
form
:
{
kaChannelNo
:
[]
,
kaChannelNo
:
''
,
listSpecialLabel
:
[
listSpecialLabel
:
[
{
{
labelInfoId
:
null
,
labelInfoId
:
null
,
...
@@ -311,14 +313,15 @@ export default {
...
@@ -311,14 +313,15 @@ export default {
remoteMethod
(
query
)
{
remoteMethod
(
query
)
{
if
(
query
)
{
if
(
query
)
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
// console.log(res, 'reskalist');
res
.
records
.
forEach
(
item
=>
{
item
.
label
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
});
this
.
kaChannelList
=
res
.
records
||
[];
this
.
kaChannelList
=
res
.
records
||
[];
});
});
}
}
},
},
changeChannel
(
item
)
{
changeChannel
(
item
)
{
if
(
item
)
{
if
(
item
)
{
console
.
log
(
this
.
form
.
kaChannelNo
,
'
0000000
'
);
this
.
channelTitle
=
this
.
kaChannelList
.
find
(
i
=>
i
.
channelNo
===
item
).
channelName
;
this
.
channelTitle
=
this
.
kaChannelList
.
find
(
i
=>
i
.
channelNo
===
item
).
channelName
;
}
}
},
},
...
@@ -326,7 +329,6 @@ export default {
...
@@ -326,7 +329,6 @@ export default {
this
.
kaReminderModal
=
false
;
this
.
kaReminderModal
=
false
;
this
.
form
.
startTime
=
getTime
(
this
.
activityTime
&&
this
.
activityTime
[
0
]);
this
.
form
.
startTime
=
getTime
(
this
.
activityTime
&&
this
.
activityTime
[
0
]);
this
.
form
.
endTime
=
getTime
(
this
.
activityTime
&&
this
.
activityTime
[
1
]);
this
.
form
.
endTime
=
getTime
(
this
.
activityTime
&&
this
.
activityTime
[
1
]);
console
.
log
(
this
.
form
,
'
this.form
'
);
if
(
this
.
title
===
'
新增
'
)
{
if
(
this
.
title
===
'
新增
'
)
{
this
.
$refs
[
'
ruleForm
'
].
validate
(
valid
=>
{
this
.
$refs
[
'
ruleForm
'
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
...
@@ -403,32 +405,6 @@ export default {
...
@@ -403,32 +405,6 @@ export default {
onSure
()
{
onSure
()
{
this
.
kaReminderModal
=
true
;
this
.
kaReminderModal
=
true
;
// this.form.startTime = getTime(this.activityTime && this.activityTime[0]);
// this.form.endTime = getTime(this.activityTime && this.activityTime[1]);
// if (this.title === '新增') {
// this.$refs['ruleForm'].validate(valid => {
// if (valid) {
// if (!this.form.startTime) {
// return this.$Message.error('请检查专题有效期!');
// }
// this.$refs.nextModalRef.openNextTemplateModal(this.form, 0);
// } else {
// this.$Message.error('请检查表单是否填写完整!');
// }
// });
// }
// if (this.title === '编辑') {
// const delItem = [];
// this.delNameList.forEach(item => {
// if (!this.labelNameList.includes(item)) {
// delItem.push(item.id);
// }
// });
// if (delItem.length) {
// activityApi.specialDeleteLabel({ ids: delItem.join(',') });
// }
// this.$refs.nextModalRef.openNextTemplateModal(this.form, 1);
// }
},
},
disabled
()
{
disabled
()
{
if
(
this
.
title
===
'
编辑
'
)
return
true
;
if
(
this
.
title
===
'
编辑
'
)
return
true
;
...
@@ -439,9 +415,18 @@ export default {
...
@@ -439,9 +415,18 @@ export default {
return
true
;
return
true
;
},
},
showEdit
(
e
)
{
showEdit
(
e
)
{
this
.
form
=
{
listSpecialLabel
:
[
{
labelInfoId
:
null
,
goodsCount
:
null
,
},
],
};
this
.
kaChannelList
=
[];
this
.
kaLabel
=
''
;
this
.
title
=
'
编辑
'
;
this
.
title
=
'
编辑
'
;
activityApi
.
specialGet
({
id
:
e
.
id
}).
then
(
res
=>
{
activityApi
.
specialGet
({
id
:
e
.
id
}).
then
(
res
=>
{
console
.
log
(
res
,
'
resres
'
);
this
.
form
.
name
=
res
.
name
;
this
.
form
.
name
=
res
.
name
;
this
.
form
.
id
=
res
.
id
;
this
.
form
.
id
=
res
.
id
;
this
.
form
.
discount
=
res
.
discount
*
10
;
this
.
form
.
discount
=
res
.
discount
*
10
;
...
@@ -449,14 +434,18 @@ export default {
...
@@ -449,14 +434,18 @@ export default {
this
.
activityTime
=
[
res
.
startTime
,
res
.
endTime
];
this
.
activityTime
=
[
res
.
startTime
,
res
.
endTime
];
this
.
labelNameList
=
[...
res
.
listSpecialLabel
];
this
.
labelNameList
=
[...
res
.
listSpecialLabel
];
this
.
delNameList
=
[...
res
.
listSpecialLabel
];
this
.
delNameList
=
[...
res
.
listSpecialLabel
];
console
.
log
(
this
.
form
.
kaChannelNo
);
if
(
res
.
kaChannelNo
)
{
if
(
res
.
kaChannelNo
)
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
res
.
kaChannelNo
}).
then
(
result
=>
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
res
.
kaChannelNo
}).
then
(
result
=>
{
console
.
log
(
result
,
'
reskalist
'
);
result
.
records
.
forEach
(
item
=>
{
if
(
item
.
channelNo
===
res
.
kaChannelNo
)
{
this
.
kaLabel
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
}
item
.
label
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
});
this
.
kaChannelList
=
result
.
records
||
[];
this
.
kaChannelList
=
result
.
records
||
[];
this
.
$nextTick
(()
=>
{
//
this.$nextTick(() => {
this
.
form
.
kaChannelNo
=
res
.
kaChannelNo
;
this
.
form
.
kaChannelNo
=
res
.
kaChannelNo
;
});
//
});
});
});
}
}
});
});
...
...
src/view/activityManag/activityTopicList.vue
View file @
8bb65e9e
...
@@ -47,6 +47,7 @@
...
@@ -47,6 +47,7 @@
v-model=
"form.kaChannelNo"
v-model=
"form.kaChannelNo"
class=
"select-width-280"
class=
"select-width-280"
:disabled=
"isEdit"
:disabled=
"isEdit"
:label=
"kaLabel"
filterable
filterable
remote
remote
:remote-method=
"remoteMethod"
:remote-method=
"remoteMethod"
...
@@ -56,7 +57,7 @@
...
@@ -56,7 +57,7 @@
:not-found-text=
"kaChannelList.length !== 0 ? '' : '无匹配数据'"
:not-found-text=
"kaChannelList.length !== 0 ? '' : '无匹配数据'"
placeholder=
"请输入"
placeholder=
"请输入"
>
>
<Option
v-for=
"item in kaChannelList"
:key=
"item.channelNo"
:value=
"item.channelNo"
>
{{
item
.
channelNo
+
'
_
'
+
item
.
channelName
}}
</Option>
<Option
v-for=
"item in kaChannelList"
:key=
"item.channelNo"
:value=
"item.channelNo"
:label=
"item.label"
>
</Option>
</Select>
</Select>
<p
style=
"color: #ff6600"
>
提示:此参数配置选中后,表示以上配置内容仅在此渠道生效;
</p>
<p
style=
"color: #ff6600"
>
提示:此参数配置选中后,表示以上配置内容仅在此渠道生效;
</p>
</FormItem>
</FormItem>
...
@@ -143,6 +144,7 @@ export default {
...
@@ -143,6 +144,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
kaLabel
:
''
,
channelTitle
:
''
,
channelTitle
:
''
,
kaReminderModal
:
false
,
kaReminderModal
:
false
,
search
:
{
search
:
{
...
@@ -300,20 +302,17 @@ export default {
...
@@ -300,20 +302,17 @@ export default {
},
},
methods
:
{
methods
:
{
remoteMethod
(
query
)
{
remoteMethod
(
query
)
{
console
.
log
(
'
99999999999
'
);
if
(
query
)
{
if
(
query
)
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
res
.
records
.
forEach
(
item
=>
{
item
.
label
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
});
this
.
kaChannelList
=
res
.
records
||
[];
this
.
kaChannelList
=
res
.
records
||
[];
});
});
}
}
},
},
changeChannel
(
item
)
{
changeChannel
(
item
)
{
if
(
item
)
{
if
(
item
)
{
setTimeout
(()
=>
{
console
.
log
(
this
.
kaChannelList
,
'
item888
'
);
this
.
channelTitle
=
this
.
kaChannelList
.
find
(
i
=>
i
.
channelNo
===
item
).
channelName
;
},
300
);
console
.
log
(
item
,
'
item111
'
);
activityApi
.
reductionList
({
kaChannelNo
:
item
}).
then
(
res
=>
{
activityApi
.
reductionList
({
kaChannelNo
:
item
}).
then
(
res
=>
{
this
.
templateList
=
res
||
[];
this
.
templateList
=
res
||
[];
});
});
...
@@ -368,9 +367,15 @@ export default {
...
@@ -368,9 +367,15 @@ export default {
this
.
search
=
{};
this
.
search
=
{};
},
},
onSure
()
{
onSure
()
{
if
(
this
.
form
.
kaChannelNo
)
{
this
.
channelTitle
=
this
.
kaChannelList
.
find
(
i
=>
i
.
channelNo
===
this
.
form
.
kaChannelNo
).
channelName
;
}
this
.
kaReminderModal
=
true
;
this
.
kaReminderModal
=
true
;
},
},
showDetail
(
data
,
isEdit
)
{
showDetail
(
data
,
isEdit
)
{
this
.
form
=
{};
this
.
kaChannelList
=
[];
// this.kaLabel = '';
this
.
editId
=
data
.
id
;
this
.
editId
=
data
.
id
;
this
.
title
=
isEdit
?
'
查看活动
'
:
'
编辑活动
'
;
this
.
title
=
isEdit
?
'
查看活动
'
:
'
编辑活动
'
;
this
.
isEdit
=
isEdit
;
this
.
isEdit
=
isEdit
;
...
@@ -379,7 +384,12 @@ export default {
...
@@ -379,7 +384,12 @@ export default {
const
{
startTime
,
endTime
,
url
,
title
,
activityTemplateId
,
forward
,
shareTitle
,
shareSubTitle
,
iconUrl
,
kaChannelNo
}
=
res
;
const
{
startTime
,
endTime
,
url
,
title
,
activityTemplateId
,
forward
,
shareTitle
,
shareSubTitle
,
iconUrl
,
kaChannelNo
}
=
res
;
if
(
res
.
kaChannelNo
)
{
if
(
res
.
kaChannelNo
)
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
res
.
kaChannelNo
}).
then
(
result
=>
{
api
.
getSimpleList
({
kaChannelNameOrNo
:
res
.
kaChannelNo
}).
then
(
result
=>
{
// console.log(res, 'reskalist');
result
.
records
.
forEach
(
item
=>
{
if
(
item
.
channelNo
===
res
.
kaChannelNo
)
{
this
.
kaLabel
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
}
item
.
label
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
});
this
.
kaChannelList
=
result
.
records
||
[];
this
.
kaChannelList
=
result
.
records
||
[];
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
form
.
kaChannelNo
=
kaChannelNo
;
this
.
form
.
kaChannelNo
=
kaChannelNo
;
...
@@ -390,7 +400,6 @@ export default {
...
@@ -390,7 +400,6 @@ export default {
this
.
templateList
=
r
||
[];
this
.
templateList
=
r
||
[];
this
.
form
=
{
startTime
,
endTime
,
url
,
title
,
activityTemplateId
,
forward
,
shareTitle
,
shareSubTitle
,
iconUrl
};
this
.
form
=
{
startTime
,
endTime
,
url
,
title
,
activityTemplateId
,
forward
,
shareTitle
,
shareSubTitle
,
iconUrl
};
this
.
form
=
res
;
this
.
form
=
res
;
console
.
log
(
this
.
form
,
'
this.form
'
);
this
.
form
.
activityPlaybillUrl
=
(
this
.
form
.
activityPlaybillUrl
&&
this
.
form
.
activityPlaybillUrl
.
split
(
'
,
'
))
||
[];
this
.
form
.
activityPlaybillUrl
=
(
this
.
form
.
activityPlaybillUrl
&&
this
.
form
.
activityPlaybillUrl
.
split
(
'
,
'
))
||
[];
this
.
form
.
iconUrl
=
(
this
.
form
.
iconUrl
&&
this
.
form
.
iconUrl
.
split
(
'
,
'
))
||
[];
this
.
form
.
iconUrl
=
(
this
.
form
.
iconUrl
&&
this
.
form
.
iconUrl
.
split
(
'
,
'
))
||
[];
this
.
form
.
terminal
=
res
.
terminal
.
split
(
'
,
'
);
this
.
form
.
terminal
=
res
.
terminal
.
split
(
'
,
'
);
...
...
src/view/appconfig/appConfig.vue
View file @
8bb65e9e
...
@@ -43,6 +43,7 @@
...
@@ -43,6 +43,7 @@
class=
"select-width-280"
class=
"select-width-280"
:disabled=
"!!form.id"
:disabled=
"!!form.id"
filterable
filterable
:label=
"kaLabel"
remote
remote
:remote-method=
"remoteMethod"
:remote-method=
"remoteMethod"
transfer
transfer
...
@@ -51,7 +52,7 @@
...
@@ -51,7 +52,7 @@
placeholder=
"请输入"
placeholder=
"请输入"
:not-found-text=
"kaChannelList.length !== 0 ? '' : '无匹配数据'"
:not-found-text=
"kaChannelList.length !== 0 ? '' : '无匹配数据'"
>
>
<Option
v-for=
"item in kaChannelList"
:key=
"item.channelNo"
:value=
"item.channelNo"
>
{{
item
.
channelNo
+
'
_
'
+
item
.
channelName
}}
</Option>
<Option
v-for=
"item in kaChannelList"
:key=
"item.channelNo"
:value=
"item.channelNo"
:label=
"item.label"
>
</Option>
</Select>
</Select>
<p
style=
"color: #ff6600"
>
提示:此参数配置选中后,表示以上配置内容仅在此渠道生效;
</p>
<p
style=
"color: #ff6600"
>
提示:此参数配置选中后,表示以上配置内容仅在此渠道生效;
</p>
</FormItem>
</FormItem>
...
@@ -215,6 +216,7 @@ export default {
...
@@ -215,6 +216,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
kaLabel
:
''
,
kaReminderModal
:
false
,
kaReminderModal
:
false
,
channelTitle
:
''
,
channelTitle
:
''
,
title
:
''
,
title
:
''
,
...
@@ -430,17 +432,24 @@ export default {
...
@@ -430,17 +432,24 @@ export default {
if
(
params
.
row
.
elementType
===
101
)
{
if
(
params
.
row
.
elementType
===
101
)
{
this
.
form
=
{};
this
.
form
=
{};
}
}
this
.
form
=
{};
this
.
kaLabel
=
''
;
this
.
kaChannelList
=
[];
api
.
find
({
id
:
params
.
row
.
id
}).
then
(
res
=>
{
api
.
find
({
id
:
params
.
row
.
id
}).
then
(
res
=>
{
if
(
res
.
kaChannelNo
)
{
if
(
res
.
kaChannelNo
)
{
this
.
kaChannelNo
=
res
.
kaChannelNo
;
this
.
kaChannelNo
=
res
.
kaChannelNo
;
delete
res
.
kaChannelNo
;
//
delete res.kaChannelNo;
apis
.
getSimpleList
({
kaChannelNameOrNo
:
this
.
kaChannelNo
}).
then
(
result
=>
{
apis
.
getSimpleList
({
kaChannelNameOrNo
:
this
.
kaChannelNo
}).
then
(
result
=>
{
// console.log(res, 'reskalist');
result
.
records
.
forEach
(
item
=>
{
if
(
item
.
channelNo
===
res
.
kaChannelNo
)
{
this
.
kaLabel
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
}
item
.
label
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
});
this
.
kaChannelList
=
result
.
records
||
[];
this
.
kaChannelList
=
result
.
records
||
[];
console
.
log
(
this
.
kaChannelList
,
'
this.kaChannelList
'
);
// this.$nextTick(() => {
this
.
$nextTick
(()
=>
{
this
.
form
.
kaChannelNo
=
this
.
kaChannelNo
;
this
.
form
.
kaChannelNo
=
this
.
kaChannelNo
;
});
//
});
});
});
}
}
if
(
res
.
elementType
===
101
)
{
if
(
res
.
elementType
===
101
)
{
...
@@ -641,7 +650,9 @@ export default {
...
@@ -641,7 +650,9 @@ export default {
remoteMethod
(
query
)
{
remoteMethod
(
query
)
{
if
(
query
)
{
if
(
query
)
{
apis
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
apis
.
getSimpleList
({
kaChannelNameOrNo
:
query
}).
then
(
res
=>
{
// console.log(res, 'reskalist');
res
.
records
.
forEach
(
item
=>
{
item
.
label
=
`
${
item
.
channelNo
}
_
${
item
.
channelName
}
`
;
});
this
.
kaChannelList
=
res
.
records
||
[];
this
.
kaChannelList
=
res
.
records
||
[];
});
});
}
}
...
@@ -1007,7 +1018,6 @@ export default {
...
@@ -1007,7 +1018,6 @@ export default {
img
:
(
this
.
form
.
img
&&
this
.
form
.
img
.
join
(
'
,
'
))
||
''
,
img
:
(
this
.
form
.
img
&&
this
.
form
.
img
.
join
(
'
,
'
))
||
''
,
badgeUrl
:
(
this
.
form
.
badgeUrl
&&
this
.
form
.
badgeUrl
.
join
(
'
,
'
))
||
''
,
badgeUrl
:
(
this
.
form
.
badgeUrl
&&
this
.
form
.
badgeUrl
.
join
(
'
,
'
))
||
''
,
};
};
console
.
log
(
params
,
'
888888888
'
);
if
(
this
.
form
.
id
)
{
if
(
this
.
form
.
id
)
{
delete
params
.
elementTypeEdit
;
delete
params
.
elementTypeEdit
;
delete
params
.
terminalEdit
;
delete
params
.
terminalEdit
;
...
...
src/view/privateManage/landingHead.png
0 → 100644
View file @
8bb65e9e
87.7 KB
src/view/privateManage/officialLanding.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div
style=
"margin-left: 30px;margin-top: 30px;"
>
<p>
上传介绍图一:
<upload
:uploadurl=
"upImgUri"
:max=
"1"
qiniu-host=
""
/></p>
<p
style=
"margin-top:10px"
>
上传介绍图二:
<upload
:uploadurl=
"downImgUri"
:max=
"1"
qiniu-host=
""
/></p>
<div
style=
"margin-top: 10px"
>
<Button
type=
"primary"
@
click=
"onSure"
:disabled=
"isUpload"
>
确认
</Button>
<span
v-if=
"uploadSuccess"
style=
"display: inline-block"
@
click=
"showPreview"
><Button>
点击预览
</Button></span>
</div>
<div
v-if=
"isPreview"
style=
"display:flex;flex-direction:column;margin-top:10px"
>
<h2>
预览
</h2>
<img
src=
"./landingHead.png"
alt=
""
style=
"height:auto;width:200px"
/>
<img
:src=
"preview.upimg"
style=
"height:auto;width:200px"
/>
<img
:src=
"preview.downimg"
style=
"height:auto;width:200px"
/>
</div>
</div>
</
template
>
<
script
>
import
config
from
'
../../../config/index.js
'
;
import
upload
from
'
../../components/qn-upload.vue
'
;
import
api
from
'
../../services/apis/offcialLanding
'
;
const
qiniuHost
=
config
.
qiniuHost
;
export
default
{
components
:
{
upload
,
},
computed
:
{
isUpload
:
function
()
{
return
!
(
this
.
upImgUri
.
length
&&
this
.
downImgUri
.
length
);
},
},
data
()
{
return
{
qiniuHost
,
upImgUri
:
[],
downImgUri
:
[],
uploadSuccess
:
false
,
preview
:
{},
isPreview
:
false
,
id
:
0
,
};
},
methods
:
{
async
onSure
()
{
const
params
=
{
upImgUri
:
this
.
upImgUri
[
0
],
downImgUri
:
this
.
downImgUri
[
0
]
};
try
{
if
(
this
.
id
)
{
await
api
.
update
({
...
params
,
id
:
this
.
id
});
}
else
{
await
api
.
submit
(
params
);
}
this
.
uploadSuccess
=
true
;
this
.
upImgUri
=
[];
this
.
downImgUri
=
[];
}
catch
(
err
)
{
console
.
log
(
err
);
this
.
uploadSuccess
=
false
;
}
},
async
showPreview
()
{
this
.
isPreview
=
false
;
const
res
=
await
api
.
getImg
();
this
.
preview
.
upimg
=
res
.
upImgUri
;
this
.
preview
.
downimg
=
res
.
downImgUri
;
this
.
isPreview
=
true
;
},
},
mounted
()
{
api
.
getImg
().
then
(
res
=>
{
this
.
id
=
res
.
id
||
null
;
this
.
preview
.
upimg
=
res
.
upImgUri
;
this
.
preview
.
downimg
=
res
.
downImgUri
;
this
.
isPreview
=
true
;
});
},
};
</
script
>
src/view/statementManage/constData.js
0 → 100644
View file @
8bb65e9e
export
const
dayColumns
=
[
{
key
:
'
date
'
,
title
:
'
日期
'
,
align
:
'
center
'
,
},
{
key
:
'
count
'
,
title
:
'
主订单数量
'
,
align
:
'
center
'
,
},
{
key
:
'
GMV
'
,
title
:
'
GMV金额
'
,
align
:
'
center
'
,
},
{
key
:
'
price
'
,
title
:
'
当日有效成交额
'
,
align
:
'
center
'
,
},
{
key
:
'
balance
'
,
title
:
'
余额支付总金额
'
,
align
:
'
center
'
,
},
{
key
:
'
totalPrice
'
,
title
:
'
微信支付总金额
'
,
align
:
'
center
'
,
},
{
key
:
'
meanPrice
'
,
title
:
'
当日订单平均金额
'
,
align
:
'
center
'
,
},
{
key
:
'
dayPerson
'
,
title
:
'
当日支付订单人数
'
,
align
:
'
center
'
,
},
{
key
:
'
status
'
,
title
:
'
订单付款取消率
'
,
align
:
'
center
'
,
},
];
export
const
expenditureColumns
=
[
{
key
:
'
date
'
,
title
:
'
下单时间
'
,
align
:
'
center
'
,
},
{
key
:
'
mainBillNo
'
,
title
:
'
主订单号
'
,
align
:
'
center
'
,
},
{
key
:
'
secondBillNo
'
,
title
:
'
子订单号
'
,
align
:
'
center
'
,
},
{
key
:
'
skuNo
'
,
title
:
'
商品sku编号
'
,
align
:
'
center
'
,
},
{
key
:
'
userId
'
,
title
:
'
下单用户id
'
,
align
:
'
center
'
,
},
{
key
:
'
userName
'
,
title
:
'
收货人姓名
'
,
align
:
'
center
'
,
},
{
key
:
'
phone
'
,
title
:
'
收货人手机号
'
,
align
:
'
center
'
,
},
{
key
:
'
address
'
,
title
:
'
收货地址
'
,
align
:
'
center
'
,
},
{
key
:
'
billStatus
'
,
title
:
'
订单状态
'
,
align
:
'
center
'
,
},
{
key
:
'
count
'
,
title
:
'
购买数量
'
,
align
:
'
center
'
,
},
{
key
:
'
mainAccount
'
,
title
:
'
主订单金额
'
,
align
:
'
center
'
,
},
{
key
:
'
refundTime
'
,
title
:
'
退款时间
'
,
align
:
'
center
'
,
},
{
key
:
'
refundPrice
'
,
title
:
'
退款金额
'
,
align
:
'
center
'
,
},
{
key
:
'
firstCategory
'
,
title
:
'
商品一级类目
'
,
align
:
'
center
'
,
},
{
key
:
'
secondCategory
'
,
title
:
'
商品二级类目
'
,
align
:
'
center
'
,
},
{
key
:
'
threeCategory
'
,
title
:
'
商品三级类目
'
,
align
:
'
center
'
,
},
{
key
:
'
brand
'
,
title
:
'
品牌
'
,
align
:
'
center
'
,
},
{
key
:
'
goodsName
'
,
title
:
'
商品名称
'
,
align
:
'
center
'
,
// width: 120,
// minWidth: '100px',
},
];
export
const
weixinPayRecord
=
[
{
key
:
'
date
'
,
title
:
'
下单时间
'
,
align
:
'
center
'
,
},
{
key
:
'
mainBillNo
'
,
title
:
'
主订单号
'
,
align
:
'
center
'
,
},
{
key
:
'
secondBillNo
'
,
title
:
'
子订单号
'
,
align
:
'
center
'
,
},
{
key
:
'
skuNo
'
,
title
:
'
商品sku编号
'
,
align
:
'
center
'
,
},
{
key
:
'
payAccount
'
,
title
:
'
微信支付金额
'
,
align
:
'
center
'
,
},
{
key
:
'
payStatus
'
,
title
:
'
微信支付结果
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
(
params
.
row
.
payStatus
===
1
?
'
已支付
'
:
'
未支付
'
),
},
];
export
const
invoiceRecord
=
[
{
key
:
'
date
'
,
title
:
'
下单时间
'
,
align
:
'
center
'
,
},
{
key
:
'
mainBillNo
'
,
title
:
'
主订单号
'
,
align
:
'
center
'
,
},
{
key
:
'
secondBillNo
'
,
title
:
'
子订单号
'
,
align
:
'
center
'
,
},
{
key
:
'
skuNo
'
,
title
:
'
商品sku编号
'
,
align
:
'
center
'
,
},
{
key
:
'
liushui
'
,
title
:
'
开票流水单号
'
,
align
:
'
center
'
,
},
{
key
:
'
payStatus
'
,
title
:
'
微信支付结果
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
(
params
.
row
.
payStatus
===
1
?
'
已支付
'
:
'
未支付
'
),
},
];
src/view/statementManage/dayConsumeAnalysis.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div>
<Form
ref=
"form"
:label-width=
"90"
inline
:model=
"form"
style=
"margin-top:20px;"
>
<FormItem
label=
"日期选择"
>
<DatePicker
v-model=
"form.date"
placeholder=
"请选择"
style=
"width: 200px"
/>
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"getList()"
>
查询
</Button>
<Button
type=
""
@
click=
"reset()"
>
重置
</Button>
</FormItem>
</Form>
<Table
ref=
"currentRowTable"
border
:columns=
"dayColumns"
:data=
"dataList"
/>
<Page
style=
"margin:20px"
:total=
"count"
:current=
"form.pageNo"
:page-size=
"form.pageSize"
size=
"small"
show-total
show-elevator
@
on-change=
"changePage"
/>
</div>
</
template
>
<
script
>
// import sendMessageApi from '../../services/apis/appUrl.service';
import
{
dayColumns
}
from
'
./constData.js
'
;
export
default
{
data
()
{
return
{
form
:
{
pageNo
:
1
,
pageSize
:
10
,
date
:
''
,
},
count
:
0
,
dayColumns
,
dataList
:
[],
};
},
mounted
()
{
this
.
getList
();
},
methods
:
{
reset
()
{
this
.
$refs
[
'
form
'
].
resetFields
();
this
.
getList
();
// 接口好了以后调用
},
getList
(
page
=
1
)
{
// const reg = /^[0-9]+.?[0-9]*$/;
// if (this.form.inviterId !== '' && !reg.test(this.form.inviterId)) {
// this.$Notice.error({
// title: '请输入数字类型的userId',
// });
// return;
// }
this
.
form
.
pageNo
=
page
;
this
.
dataList
=
[
{
date
:
123
,
GMV
:
'
GMV
'
,
meanPrice
:
987
,
price
:
1
,
count
:
1000
,
balance
:
100
,
totalPrice
:
10000
,
status
:
1
,
dayPerson
:
345
,
},
{
date
:
321
,
GMV
:
'
GMV
'
,
meanPrice
:
987
,
price
:
1
,
count
:
1000
,
balance
:
100
,
totalPrice
:
10000
,
status
:
1
,
dayPerson
:
345
,
},
];
// sendMessageApi.inviteList(this.form).then(res => {
// this.dataList = res.dataList || [];
// this.count = res.totalCount;
// });
},
changePage
(
page
)
{
this
.
getList
(
page
);
},
},
};
</
script
>
src/view/statementManage/expenditure.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div>
<Form
ref=
"form"
:label-width=
"90"
inline
:model=
"form"
style=
"margin-top:20px;"
>
<FormItem
label=
"日期选择"
prop=
"date"
>
<DatePicker
type=
"datetime"
:value=
"form.date"
placeholder=
"请选择"
style=
"width: 200px"
@
on-change=
"changeDate"
/>
</FormItem>
<FormItem
label=
"主订单号:"
prop=
"mainBillNo"
>
<Input
v-model=
"form.mainBillNo"
placeholder=
"请输入主订单号"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"子订单号:"
prop=
"secondBillNo"
>
<Input
v-model=
"form.secondBillNo"
placeholder=
"请输入子订单号"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"商品sku编号:"
prop=
"skuNo"
>
<Input
v-model=
"form.skuNo"
placeholder=
"请输入商品sku"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"下单用户id:"
prop=
"userId"
>
<Input
v-model=
"form.userId"
placeholder=
"请输入商品sku"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"收货人姓名:"
prop=
"userName"
>
<Input
v-model=
"form.userName"
placeholder=
"请输入用户姓名"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"getList()"
>
查询
</Button>
<Button
type=
""
@
click=
"reset()"
>
重置
</Button>
</FormItem>
</Form>
<Table
border
:columns=
"expenditureColumns"
:data=
"dataList"
class=
"dataTable"
/>
<Page
style=
"margin:20px"
:total=
"count"
:current=
"form.pageNo"
:page-size=
"form.pageSize"
size=
"small"
show-total
show-elevator
@
on-change=
"changePage"
/>
</div>
</
template
>
<
script
>
// import sendMessageApi from '../../services/apis/appUrl.service';
import
{
expenditureColumns
}
from
'
./constData.js
'
;
export
default
{
data
()
{
return
{
form
:
{
pageNo
:
1
,
pageSize
:
10
,
},
count
:
0
,
expenditureColumns
,
dataList
:
[],
};
},
mounted
()
{
this
.
getList
();
},
methods
:
{
changeDate
(
date
)
{
this
.
form
.
date
=
date
||
''
;
},
reset
()
{
this
.
$refs
[
'
form
'
].
resetFields
();
this
.
form
.
date
=
''
;
this
.
getList
();
// 接口好了以后调用
},
getList
(
page
=
1
)
{
// const reg = /^[0-9]+.?[0-9]*$/;
// if (this.form.inviterId !== '' && !reg.test(this.form.inviterId)) {
// this.$Notice.error({
// title: '请输入数字类型的userId',
// });
// returnhis;
// }
this
.
form
.
pageNo
=
page
;
console
.
log
(
'
this.form
'
,
this
.
form
);
this
.
dataList
=
[
{
date
:
123
,
mainBillNo
:
'
GMV
'
,
secondBillNo
:
987
,
skuNo
:
1
,
userId
:
1000
,
userName
:
100
,
phone
:
10000
,
address
:
1
,
billStatus
:
345
,
count
:
345
,
mainAccount
:
1000
,
refundTime
:
'
2012-09-22
'
,
refundPrice
:
200
,
firstCategory
:
'
一级类目
'
,
secondCategory
:
'
二级类目
'
,
threeCategory
:
'
三级类目
'
,
brand
:
'
品牌
'
,
goodsName
:
'
商品名称
'
,
},
];
// sendMessageApi.inviteList(this.form).then(res => {
// this.dataList = res.dataList || [];
// this.count = res.totalCount;
// });
},
changePage
(
page
)
{
this
.
getList
(
page
);
},
},
};
</
script
>
<
style
>
.dataTable
{
clear
:
both
;
}
</
style
>
src/view/statementManage/invoiceRecord.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div>
<Form
ref=
"form"
:label-width=
"90"
inline
:model=
"form"
style=
"margin-top:20px;"
>
<FormItem
label=
"日期选择"
prop=
"date"
>
<DatePicker
type=
"datetime"
:value=
"form.date"
placeholder=
"请选择"
style=
"width: 200px"
@
on-change=
"changeDate"
/>
</FormItem>
<FormItem
label=
"主订单号:"
prop=
"mainBillNo"
>
<Input
v-model=
"form.mainBillNo"
placeholder=
"请输入主订单号"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"子订单号:"
prop=
"secondBillNo"
>
<Input
v-model=
"form.secondBillNo"
placeholder=
"请输入子订单号"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"商品sku编号:"
prop=
"skuNo"
>
<Input
v-model=
"form.skuNo"
placeholder=
"请输入商品sku"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"开票流水单号:"
prop=
"liushui"
>
<Input
v-model=
"form.liushui"
placeholder=
"请输入商品sku"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"getList()"
>
查询
</Button>
<Button
type=
""
@
click=
"reset()"
>
重置
</Button>
</FormItem>
</Form>
<Table
border
:columns=
"weixinPayRecord"
:data=
"dataList"
class=
"dataTable"
/>
<Page
style=
"margin:20px"
:total=
"count"
:current=
"form.pageNo"
:page-size=
"form.pageSize"
size=
"small"
show-total
show-elevator
@
on-change=
"changePage"
/>
</div>
</
template
>
<
script
>
// import sendMessageApi from '../../services/apis/appUrl.service';
import
{
weixinPayRecord
}
from
'
./constData.js
'
;
export
default
{
data
()
{
return
{
form
:
{
pageNo
:
1
,
pageSize
:
10
,
},
count
:
0
,
weixinPayRecord
,
dataList
:
[],
};
},
mounted
()
{
this
.
getList
();
},
methods
:
{
changeDate
(
date
)
{
this
.
form
.
date
=
date
||
''
;
},
reset
()
{
this
.
$refs
[
'
form
'
].
resetFields
();
this
.
form
.
date
=
''
;
this
.
getList
();
// 接口好了以后调用
},
getList
(
page
=
1
)
{
// const reg = /^[0-9]+.?[0-9]*$/;
// if (this.form.inviterId !== '' && !reg.test(this.form.inviterId)) {
// this.$Notice.error({
// title: '请输入数字类型的userId',
// });
// returnhis;
// }
this
.
form
.
pageNo
=
page
;
console
.
log
(
'
this.form
'
,
this
.
form
);
this
.
dataList
=
[
{
date
:
123
,
mainBillNo
:
'
GMV
'
,
secondBillNo
:
987
,
skuNo
:
1
,
liushui
:
'
流水单号
'
,
payStatus
:
0
,
},
];
// sendMessageApi.inviteList(this.form).then(res => {
// this.dataList = res.dataList || [];
// this.count = res.totalCount;
// });
},
changePage
(
page
)
{
this
.
getList
(
page
);
},
},
};
</
script
>
<
style
scoped
>
.dataTable
{
clear
:
both
;
}
</
style
>
src/view/statementManage/wxPayRecord.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div>
<Form
ref=
"form"
:label-width=
"90"
inline
:model=
"form"
style=
"margin-top:20px;"
>
<FormItem
label=
"日期选择"
prop=
"date"
>
<DatePicker
type=
"datetime"
:value=
"form.date"
placeholder=
"请选择"
style=
"width: 200px"
@
on-change=
"changeDate"
/>
</FormItem>
<FormItem
label=
"主订单号:"
prop=
"mainBillNo"
>
<Input
v-model=
"form.mainBillNo"
placeholder=
"请输入主订单号"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"子订单号:"
prop=
"secondBillNo"
>
<Input
v-model=
"form.secondBillNo"
placeholder=
"请输入子订单号"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"商品sku编号:"
prop=
"skuNo"
>
<Input
v-model=
"form.skuNo"
placeholder=
"请输入商品sku"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"微信支付结果:"
prop=
"userName"
>
<Select
v-model=
"form.payStatus"
style=
"width:180px"
filterable
>
<Option
:value=
"0"
>
已到期
</Option>
<Option
:value=
"1"
>
未到期
</Option>
</Select>
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"getList()"
>
查询
</Button>
<Button
type=
""
@
click=
"reset()"
>
重置
</Button>
</FormItem>
</Form>
<Table
border
:columns=
"weixinPayRecord"
:data=
"dataList"
class=
"dataTable"
/>
<Page
style=
"margin:20px"
:total=
"count"
:current=
"form.pageNo"
:page-size=
"form.pageSize"
size=
"small"
show-total
show-elevator
@
on-change=
"changePage"
/>
</div>
</
template
>
<
script
>
// import sendMessageApi from '../../services/apis/appUrl.service';
import
{
weixinPayRecord
}
from
'
./constData.js
'
;
export
default
{
data
()
{
return
{
form
:
{
pageNo
:
1
,
pageSize
:
10
,
},
count
:
0
,
weixinPayRecord
,
dataList
:
[],
};
},
mounted
()
{
this
.
getList
();
},
methods
:
{
changeDate
(
date
)
{
this
.
form
.
date
=
date
||
''
;
},
reset
()
{
this
.
$refs
[
'
form
'
].
resetFields
();
this
.
form
.
date
=
''
;
this
.
getList
();
// 接口好了以后调用
},
getList
(
page
=
1
)
{
// const reg = /^[0-9]+.?[0-9]*$/;
// if (this.form.inviterId !== '' && !reg.test(this.form.inviterId)) {
// this.$Notice.error({
// title: '请输入数字类型的userId',
// });
// returnhis;
// }
this
.
form
.
pageNo
=
page
;
console
.
log
(
'
this.form
'
,
this
.
form
);
this
.
dataList
=
[
{
date
:
123
,
mainBillNo
:
'
GMV
'
,
secondBillNo
:
987
,
skuNo
:
1
,
payStatus
:
0
,
payAccount
:
100
,
},
];
// sendMessageApi.inviteList(this.form).then(res => {
// this.dataList = res.dataList || [];
// this.count = res.totalCount;
// });
},
changePage
(
page
)
{
this
.
getList
(
page
);
},
},
};
</
script
>
<
style
scoped
>
.dataTable
{
clear
:
both
;
}
</
style
>
src/view/userManage/components/billModal.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div>
<Modal
width=
"750"
v-model=
"visible"
title=
"查看订单"
@
on-cancel=
"cancel"
>
<Table
ref=
"currentRowTable"
border
:columns=
"columns"
:data=
"data"
/>
<div
slot=
"footer"
class=
"foot"
>
<Button
size=
"large"
@
click=
"cancel"
>
取消
</Button>
</div>
</Modal>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
visible
:
{
type
:
Boolean
,
default
:
false
,
},
data
:
{
type
:
Array
,
default
:
()
=>
[],
},
},
data
()
{
return
{
columns
:
[
{
key
:
'
billNo
'
,
title
:
'
订单编号
'
,
align
:
'
center
'
,
},
{
key
:
'
payStatus
'
,
title
:
'
支付状态
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
(
+
params
.
row
.
payStatus
?
'
未支付
'
:
'
已支付
'
),
},
{
key
:
'
balance
'
,
title
:
'
余额支付金额
'
,
align
:
'
center
'
,
},
{
key
:
'
weixinCount
'
,
title
:
'
微信支付金额
'
,
align
:
'
center
'
,
},
{
key
:
'
time
'
,
title
:
'
下单时间
'
,
align
:
'
center
'
,
},
{
key
:
'
goodsName
'
,
title
:
'
商品名称
'
,
align
:
'
center
'
,
},
],
};
},
methods
:
{
cancel
()
{
this
.
$emit
(
'
cancle
'
);
},
},
};
</
script
>
src/view/userManage/constData.js
0 → 100644
View file @
8bb65e9e
// 余额状态
const
bstaus
=
{
0
:
'
未到期
'
,
1
:
'
已到期
'
,
};
//用户状态
const
userStatus
=
{
0
:
'
未启用
'
,
1
:
'
启用
'
,
};
export
const
columns
=
[
{
key
:
'
userId
'
,
title
:
'
用户Id
'
,
align
:
'
center
'
,
},
{
key
:
'
phone
'
,
title
:
'
用户手机号
'
,
align
:
'
center
'
,
},
{
key
:
'
bstatus
'
,
title
:
'
余额状态
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
bstaus
[
params
.
row
.
bstatus
],
},
{
key
:
'
count
'
,
title
:
'
初始金额
'
,
align
:
'
center
'
,
},
{
key
:
'
balance
'
,
title
:
'
当前余额
'
,
align
:
'
center
'
,
},
{
key
:
'
joinDate
'
,
title
:
'
注册时间
'
,
align
:
'
center
'
,
},
{
key
:
'
date
'
,
title
:
'
余额到期日期
'
,
align
:
'
center
'
,
},
{
key
:
'
totalPrice
'
,
title
:
'
微信支付累计金额
'
,
align
:
'
center
'
,
},
{
key
:
'
status
'
,
title
:
'
用户状态
'
,
align
:
'
center
'
,
render
:
(
h
,
params
)
=>
userStatus
[
params
.
row
.
status
],
},
];
src/view/userManage/index.vue
0 → 100644
View file @
8bb65e9e
<
template
>
<div>
<Form
ref=
"form"
:label-width=
"90"
inline
:model=
"form"
style=
"margin-top:20px;"
>
<FormItem
label=
"用户id:"
prop=
"userId"
>
<Input
v-model=
"form.userId"
placeholder=
"请输入用户userId"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"用户手机号:"
prop=
"phoneNo"
>
<Input
v-model=
"form.phoneNo"
placeholder=
"请输入用户userId"
clearable
style=
"width: 180px"
/>
</FormItem>
<FormItem
label=
"余额状态:"
prop=
"status"
>
<Select
v-model=
"form.status"
style=
"width:180px"
filterable
>
<Option
:value=
"0"
>
已到期
</Option>
<Option
:value=
"1"
>
未到期
</Option>
</Select>
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"getList()"
>
查询
</Button>
<Button
type=
""
@
click=
"reset()"
>
重置
</Button>
</FormItem>
</Form>
<Table
ref=
"currentRowTable"
border
:columns=
"columns"
:data=
"dataList"
/>
<Page
style=
"margin:20px"
:total=
"count"
:current=
"form.pageNo"
:page-size=
"form.pageSize"
size=
"small"
show-total
show-elevator
@
on-change=
"changePage"
/>
<bill-modal
:visible=
"showBillModal"
:data=
"billInfoList"
@
cancle=
"showBillModal = false"
/>
</div>
</
template
>
<
script
>
// import sendMessageApi from '../../services/apis/appUrl.service';
import
{
columns
}
from
'
./constData.js
'
;
import
BillModal
from
'
./components/billModal.vue
'
;
export
default
{
data
()
{
return
{
form
:
{
pageNo
:
1
,
pageSize
:
10
,
userId
:
''
,
phoneNo
:
''
,
status
:
''
,
},
count
:
0
,
columns
:
[
...
columns
,
{
key
:
'
option
'
,
title
:
'
操作
'
,
align
:
'
center
'
,
width
:
'
200px
'
,
render
:
(
h
,
params
)
=>
{
return
h
(
'
div
'
,
[
h
(
'
Button
'
,
{
props
:
{
type
:
'
primary
'
,
size
:
'
small
'
,
},
style
:
{
margin
:
'
5px
'
,
},
on
:
{
click
:
()
=>
{
console
.
log
(
'
点击停用&启用
'
);
},
},
},
params
.
row
.
status
?
'
停用
'
:
'
启用
'
),
h
(
'
Button
'
,
{
props
:
{
type
:
'
primary
'
,
size
:
'
small
'
,
},
style
:
{
margin
:
'
0 5px
'
,
},
on
:
{
click
:
()
=>
{
console
.
log
(
'
查看订单
'
);
this
.
showBillModal
=
true
;
},
},
},
'
查看订单
'
),
]);
},
},
],
dataList
:
[],
showBillModal
:
false
,
billInfoList
:
[
{
billNo
:
123456
,
payStatus
:
0
,
balance
:
1000
,
weixinCount
:
893
,
time
:
'
2012-09-23
'
,
goodsName
:
'
商品名称
'
,
},
],
};
},
components
:
{
BillModal
,
},
mounted
()
{
this
.
getList
();
},
methods
:
{
reset
()
{
this
.
$refs
[
'
form
'
].
resetFields
();
this
.
getList
();
// 接口好了以后调用
},
getList
(
page
=
1
)
{
// const reg = /^[0-9]+.?[0-9]*$/;
// if (this.form.inviterId !== '' && !reg.test(this.form.inviterId)) {
// this.$Notice.error({
// title: '请输入数字类型的userId',
// });
// return;
// }
this
.
form
.
pageNo
=
page
;
this
.
dataList
=
[
{
userId
:
123
,
phone
:
18809090987
,
bstatus
:
1
,
count
:
1000
,
balance
:
100
,
joinDate
:
'
2021-09-08
'
,
date
:
'
2021-09-43
'
,
totalPrice
:
10000
,
status
:
1
,
},
{
userId
:
321
,
phone
:
18809090987
,
bstatus
:
0
,
count
:
1000
,
balance
:
100
,
joinDate
:
'
2021-09-08
'
,
date
:
'
2021-09-43
'
,
totalPrice
:
10000
,
status
:
0
,
},
];
// sendMessageApi.inviteList(this.form).then(res => {
// this.dataList = res.dataList || [];
// this.count = res.totalCount;
// });
},
changePage
(
page
)
{
this
.
getList
(
page
);
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.col-option {
margin: 5px 10px 5px 0;
display: flex;
align-content: center;
justify-content: center;
.label-option {
line-height: 30px;
margin-right: 10px;
}
}
</
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