jufubao-admin-library 1.1.27 → 1.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.settings.saas +230 -0
- package/library/viewModules/viewCardsGift/router/greeting_card.js +13 -3
- package/library/viewModules/viewCardsGift/schemas/greeting_card.js +50 -8
- package/library/viewModules/viewCardsGift/viewCardsGift/config.vue +386 -75
- package/library/viewModules/viewCardsGift/viewCardsGift/list.vue +13 -12
- package/library/viewModules/viewTask/schemas/tasks.js +2 -2
- package/library/viewModules/viewsAccounts/schemas/mAccounts.js +2 -3
- package/library/viewModules/viewsAccounts/viewsAccounts/list.vue +6 -1
- package/library/viewModules/viewsCompany/schemas/mCompany.js +13 -0
- package/library/viewModules/viewsCompany/viewsCompany/list.vue +37 -2
- package/package.json +4 -2
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const settings = {
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @description 阿里云前端监控配置
|
|
7
|
+
*/
|
|
8
|
+
aliPid: 'aa2vphu6tr@f7f6bac23dcef56',
|
|
9
|
+
aliEnvironment: 'daily', //daily测试环境 //prod线上环境
|
|
10
|
+
aliSample: 1, //1表示100%采样,10表示10%采样,100表示1%采样
|
|
11
|
+
aliPvSample: 1, //1表示100%采样,10表示10%采样,100表示1%采样
|
|
12
|
+
aliDisableHook: true, //是否禁用api上报 true=禁用 false=开启
|
|
13
|
+
aliBehavior: true, //是否为了便于排查错误而记录报错的用户行为。
|
|
14
|
+
aliEnableSPA: false, //是否启动单页面上报pv日志
|
|
15
|
+
aliEnableConsole: false, //是否劫持Console
|
|
16
|
+
aliSendResource: true, //静态资源错误上报
|
|
17
|
+
aliAutoSendPerf: true, //性能和api分析日志
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @type {string}
|
|
21
|
+
* @description routerMode值 hash,history
|
|
22
|
+
*/
|
|
23
|
+
routerMode: 'history',
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @type {string}
|
|
27
|
+
* @description 项目名称
|
|
28
|
+
*/
|
|
29
|
+
title: '工会福利系统(测试)',
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @type {boolean}
|
|
33
|
+
* @description 无返回结构体{code: 200, data: {}, message:'success'},返回格式:{}
|
|
34
|
+
*/
|
|
35
|
+
isOpenNoResultKey: true,
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @type {string}
|
|
39
|
+
* @description 项目标识
|
|
40
|
+
*/
|
|
41
|
+
system: 'saas-admin',
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @type {string}
|
|
45
|
+
* @description 图片cdn域名地址
|
|
46
|
+
*/
|
|
47
|
+
cdnBaseUrl: '//sandbox-img.jufubao.cn',
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @type {Array}
|
|
51
|
+
* @description API白名单(不需要token,上报日志)
|
|
52
|
+
*/
|
|
53
|
+
apiWhiteList: [
|
|
54
|
+
'/api/pb/host/get-brand',
|
|
55
|
+
'/api/pb/host/minfo',
|
|
56
|
+
'/api/pb/host/malert',
|
|
57
|
+
],
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @type {Number}
|
|
61
|
+
* @description 接口返回时间超时上报日志(单位:毫秒)
|
|
62
|
+
*/
|
|
63
|
+
apiDelay: 10000,
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @type {string}
|
|
67
|
+
* @description 百度AK
|
|
68
|
+
*/
|
|
69
|
+
baiduAK: 'btKt57MWjMx2P1ds2OjZIttLOOjR2Ndf',
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @type Function
|
|
73
|
+
* @description 页面layout页面路径
|
|
74
|
+
*/
|
|
75
|
+
layout: () => import('@/layout'),
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @type {boolean}
|
|
80
|
+
* @description 是否启用本地演示路由配置
|
|
81
|
+
*/
|
|
82
|
+
isOpenLocalDemoRouter: false,
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @type { Array }
|
|
86
|
+
* @description 不验证登录状态
|
|
87
|
+
*/
|
|
88
|
+
whiteList:[
|
|
89
|
+
'/login'
|
|
90
|
+
],
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* @description 用户登录页面
|
|
94
|
+
* @type {String}
|
|
95
|
+
*/
|
|
96
|
+
login: '/login',
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @type {String}
|
|
100
|
+
* @description 入口页面
|
|
101
|
+
*/
|
|
102
|
+
index: '/',
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* @type {String}
|
|
106
|
+
* @description 跳转到登录地址
|
|
107
|
+
*/
|
|
108
|
+
superAdminLogin: '/login',
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @type {String}
|
|
112
|
+
* @description 后台请求base域名
|
|
113
|
+
*/
|
|
114
|
+
apiBaseUrl: '//sandbox-fuli-admin.jufubao.cn',
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @type {String}
|
|
118
|
+
* @description 后台管理API地址
|
|
119
|
+
*/
|
|
120
|
+
getBrandHostBaseUrl: 'http://sandbox-c.jufubao.cn',
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @type {string}
|
|
124
|
+
* @description 开发环境api baseurl地址 (开发环境生效)
|
|
125
|
+
*/
|
|
126
|
+
//getBrandHost: 'sandbox-gonghui-admin.jufubao.cn',
|
|
127
|
+
getBrandHost: 'sandbox-c.jufubao.cn',
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* @type {String} 聚福宝储存token名字
|
|
132
|
+
* @description cookie token key
|
|
133
|
+
*/
|
|
134
|
+
jufubaoTokenKey: 'jufubao-company-token',
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* @type {String} 当前后台系统tokenKey
|
|
139
|
+
* @description cookie token key
|
|
140
|
+
*/
|
|
141
|
+
currentToken: 'jufubao-company-token',
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @type {string}
|
|
146
|
+
* @description 系统版本
|
|
147
|
+
*/
|
|
148
|
+
version: 'v1.0.0',
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @type {boolean}
|
|
152
|
+
* @description 是否关闭eslint语法检测
|
|
153
|
+
*/
|
|
154
|
+
isCloseEslint: false,
|
|
155
|
+
|
|
156
|
+
/***
|
|
157
|
+
* @description 请求列表返回数据条数
|
|
158
|
+
* @type { number }
|
|
159
|
+
*/
|
|
160
|
+
limit: 10,
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* @type {boolean} true | false
|
|
165
|
+
* @description 是否开启方法执行逻辑定位位置显示
|
|
166
|
+
*/
|
|
167
|
+
isTimeLog: false,
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @type {boolean} true | false
|
|
172
|
+
* @description 开发环境与生产环境
|
|
173
|
+
*/
|
|
174
|
+
isDebug: false,
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* @type {boolean} true | false
|
|
178
|
+
* @description 是否加载模拟数据
|
|
179
|
+
*/
|
|
180
|
+
isTestData: false,
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* @type {number}
|
|
184
|
+
* @description 开发环境端口号
|
|
185
|
+
*/
|
|
186
|
+
port: 8099,
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* @type {boolean} true | false
|
|
190
|
+
* @description Whether show the settings right-panel
|
|
191
|
+
*/
|
|
192
|
+
showSettings: false,
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @type {boolean} true | false
|
|
196
|
+
* @description Whether need tagsView
|
|
197
|
+
*/
|
|
198
|
+
tagsView: true,
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* @type {boolean} true | false
|
|
202
|
+
* @description Whether fix the header
|
|
203
|
+
*/
|
|
204
|
+
fixedHeader: false,
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* @type {boolean} true | false
|
|
208
|
+
* @description Whether show the logo in sidebar
|
|
209
|
+
*/
|
|
210
|
+
sidebarLogo: true,
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* @type {boolean} true | false
|
|
214
|
+
* @description 启动营销中心导航
|
|
215
|
+
*/
|
|
216
|
+
showTopNavMenu: false,
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* @type {string | array} 'production' | ['production', 'development']
|
|
220
|
+
* @description Need show err logs component.
|
|
221
|
+
* The default is only used in the production env
|
|
222
|
+
* If you want to also use it in dev, you can pass ['production', 'development']
|
|
223
|
+
*/
|
|
224
|
+
errorLog: 'production',
|
|
225
|
+
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
module.exports = settings;
|
|
229
|
+
|
|
230
|
+
|
|
@@ -10,7 +10,10 @@ const greetingCardRouter = {
|
|
|
10
10
|
component: Layout,
|
|
11
11
|
sort: 80,
|
|
12
12
|
name: '贺卡管理',
|
|
13
|
-
alwaysShow:
|
|
13
|
+
alwaysShow: false,
|
|
14
|
+
// #ifdef saas-admin
|
|
15
|
+
hidden: true,
|
|
16
|
+
// #endif
|
|
14
17
|
redirect: '/greeting_card/list',
|
|
15
18
|
meta: {
|
|
16
19
|
title: '贺卡管理',
|
|
@@ -19,6 +22,7 @@ const greetingCardRouter = {
|
|
|
19
22
|
//roles: []
|
|
20
23
|
},
|
|
21
24
|
children: [
|
|
25
|
+
// #ifdef admin
|
|
22
26
|
{
|
|
23
27
|
path: 'list',
|
|
24
28
|
name: 'GreetingCardList',
|
|
@@ -29,6 +33,7 @@ const greetingCardRouter = {
|
|
|
29
33
|
//roles: []
|
|
30
34
|
}
|
|
31
35
|
},
|
|
36
|
+
// #endif
|
|
32
37
|
{
|
|
33
38
|
path: 'config/:material_id?/:group_id?',
|
|
34
39
|
name: 'GreetingCardConfig',
|
|
@@ -37,8 +42,13 @@ const greetingCardRouter = {
|
|
|
37
42
|
meta: {
|
|
38
43
|
title: '贺卡配置',
|
|
39
44
|
icon: 'el-icon-s-platform',
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
roles: [],
|
|
46
|
+
// #ifdef admin
|
|
47
|
+
activeMenu: "/greeting_card/list",
|
|
48
|
+
// #endif
|
|
49
|
+
// #ifdef saas-admin
|
|
50
|
+
activeMenu: '/cards/list'
|
|
51
|
+
// #endif
|
|
42
52
|
}
|
|
43
53
|
}
|
|
44
54
|
]
|
|
@@ -8,7 +8,6 @@ module.exports = {
|
|
|
8
8
|
{
|
|
9
9
|
title: '贺卡管理 - 组列表',
|
|
10
10
|
mapFn: "getGreetingCardGroupList",
|
|
11
|
-
isPublic: true,
|
|
12
11
|
path: '/saas-admin/v1/bless_material_group/options',
|
|
13
12
|
isRule: false,
|
|
14
13
|
data: {},
|
|
@@ -18,7 +17,6 @@ module.exports = {
|
|
|
18
17
|
{
|
|
19
18
|
title: '贺卡管理 - 创建',
|
|
20
19
|
mapFn: "AddGreetingCardGroup",
|
|
21
|
-
isPublic: true,
|
|
22
20
|
path: '/saas-admin/v1/bless_material_group',
|
|
23
21
|
isRule: false,
|
|
24
22
|
data: {
|
|
@@ -30,7 +28,6 @@ module.exports = {
|
|
|
30
28
|
{
|
|
31
29
|
title: '贺卡管理 - 删除',
|
|
32
30
|
mapFn: "delGreetingCardGroup",
|
|
33
|
-
isPublic: true,
|
|
34
31
|
path: '/saas-admin/v1/bless_material_group/:group_id',
|
|
35
32
|
isRule: false,
|
|
36
33
|
data: {
|
|
@@ -43,7 +40,6 @@ module.exports = {
|
|
|
43
40
|
{
|
|
44
41
|
title: '贺卡管理 - 贺卡列表',
|
|
45
42
|
mapFn: "getGreetingCardList",
|
|
46
|
-
isPublic: true,
|
|
47
43
|
path: '/saas-admin/v1/bless_material/items',
|
|
48
44
|
isRule: false,
|
|
49
45
|
data: {
|
|
@@ -57,7 +53,6 @@ module.exports = {
|
|
|
57
53
|
{
|
|
58
54
|
title: '贺卡管理 - 创建贺卡',
|
|
59
55
|
mapFn: "addGreetingCard",
|
|
60
|
-
isPublic: true,
|
|
61
56
|
path: '/saas-admin/v1/bless_material',
|
|
62
57
|
isRule: false,
|
|
63
58
|
data: {
|
|
@@ -69,7 +64,6 @@ module.exports = {
|
|
|
69
64
|
{
|
|
70
65
|
title: '贺卡管理 - 编辑贺卡',
|
|
71
66
|
mapFn: "updateGreetingCard",
|
|
72
|
-
isPublic: true,
|
|
73
67
|
path: '/saas-admin/v1/bless_material/:material_id',
|
|
74
68
|
isRule: false,
|
|
75
69
|
data: {
|
|
@@ -83,7 +77,6 @@ module.exports = {
|
|
|
83
77
|
{
|
|
84
78
|
title: '贺卡管理 - 复制贺卡',
|
|
85
79
|
mapFn: "copyGreetingCard",
|
|
86
|
-
isPublic: true,
|
|
87
80
|
path: '/saas-admin/v1/bless_material/copy/:copy_material_id',
|
|
88
81
|
isRule: false,
|
|
89
82
|
data: {
|
|
@@ -96,7 +89,6 @@ module.exports = {
|
|
|
96
89
|
{
|
|
97
90
|
title: '贺卡管理 - 获取贺卡信息',
|
|
98
91
|
mapFn: "getGreetingCardById",
|
|
99
|
-
isPublic: true,
|
|
100
92
|
path: '/saas-admin/v1/bless_material/item/:material_id',
|
|
101
93
|
isRule: false,
|
|
102
94
|
data: {
|
|
@@ -105,5 +97,55 @@ module.exports = {
|
|
|
105
97
|
disabled: true,
|
|
106
98
|
role: '',
|
|
107
99
|
},
|
|
100
|
+
{
|
|
101
|
+
title: '贺卡管理 - 素材配置数据',
|
|
102
|
+
mapFn: "setGreetingCardBaseConfig",
|
|
103
|
+
path: '/saas-admin/v1/bless_material/:material_id',
|
|
104
|
+
isRule: false,
|
|
105
|
+
data: {
|
|
106
|
+
material_id:['素材ID', 'string|number', '必填'],
|
|
107
|
+
item: ['素材配置对象', 'string|number', '必填']
|
|
108
|
+
},
|
|
109
|
+
disabled: true,
|
|
110
|
+
role: '',
|
|
111
|
+
method: 'put'
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
//custom
|
|
115
|
+
{
|
|
116
|
+
title: '贺卡管理 - 获取自定义素材信息',
|
|
117
|
+
mapFn: "getCustomMaterialInfo",
|
|
118
|
+
path: '/saas-company/v1/bless_x_material/item/:x_material_id',
|
|
119
|
+
isRule: false,
|
|
120
|
+
params: {
|
|
121
|
+
x_material_id:['素材ID', 'string|number', '必填'],
|
|
122
|
+
},
|
|
123
|
+
disabled: true,
|
|
124
|
+
role: '',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: '贺卡管理 - 创建自定义素材',
|
|
128
|
+
mapFn: "createCustomMaterial",
|
|
129
|
+
path: '/saas-company/v1/bless_x_material',
|
|
130
|
+
isRule: false,
|
|
131
|
+
data: {
|
|
132
|
+
item: ['素材配置对象', 'string|number', '必填']
|
|
133
|
+
},
|
|
134
|
+
disabled: true,
|
|
135
|
+
role: '',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
title: '贺卡管理 - 编辑自定义素材',
|
|
139
|
+
mapFn: "updateCustomMaterial",
|
|
140
|
+
path: '/saas-company/v1/bless_x_material/:x_material_id',
|
|
141
|
+
isRule: false,
|
|
142
|
+
data: {
|
|
143
|
+
x_material_id:['素材ID', 'string|number', '必填'],
|
|
144
|
+
item: ['素材配置对象', 'string|number', '必填']
|
|
145
|
+
},
|
|
146
|
+
disabled: true,
|
|
147
|
+
role: '',
|
|
148
|
+
method: 'put'
|
|
149
|
+
},
|
|
108
150
|
],
|
|
109
151
|
}
|
|
@@ -2,37 +2,59 @@
|
|
|
2
2
|
<div class="xd-edit-layout-page" id="xd-edit-layout-page">
|
|
3
3
|
<xd-edit-layout v-if="firstLoading" :width="isPc?300:220" is-scroll-full v-model="isFull">
|
|
4
4
|
<div class="pages-top" slot="top">
|
|
5
|
+
<!--#ifdef admin-->
|
|
6
|
+
<el-button type="primary" :disabled="isPublish" @click="handlePublish">保存</el-button>
|
|
7
|
+
<!--#endif-->
|
|
8
|
+
<!--#ifdef saas-admin-->
|
|
9
|
+
<el-button type="primary" :disabled="!isShowPhone || isPublish" @click="handleCustomPublish">使用</el-button>
|
|
10
|
+
<!--#endif-->
|
|
5
11
|
<el-button icon="el-icon-back" @click="$router.back()">返回</el-button>
|
|
6
|
-
<el-button type="primary" icon="el-icon-coin" :disabled="isPublish" @click="handlePublish">保存</el-button>
|
|
7
12
|
</div>
|
|
8
|
-
<div class="pages-left" slot="left"
|
|
13
|
+
<div class="pages-left" slot="left">
|
|
9
14
|
<div class="pages-left__header" v-if="is_search_show">
|
|
10
|
-
<el-dropdown type="primary">
|
|
15
|
+
<el-dropdown type="primary" trigger="click" @command="handleCommand">
|
|
11
16
|
<div class="text"><i class="iconfont iconshaixuanbiaoji_mian"></i></div>
|
|
12
17
|
<el-dropdown-menu slot="dropdown">
|
|
13
|
-
<el-dropdown-item
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
<el-dropdown-item
|
|
19
|
+
:class="{'g-active':item.value === custom_group_id,'g-no-active':item.value !== custom_group_id}"
|
|
20
|
+
v-for="item in search_group_list"
|
|
21
|
+
:icon="item.value === custom_group_id?'el-icon-check':''"
|
|
22
|
+
:command="item.value"
|
|
23
|
+
>{{item.label}}</el-dropdown-item>
|
|
18
24
|
</el-dropdown-menu>
|
|
19
25
|
</el-dropdown>
|
|
20
|
-
<el-input placeholder="搜索模版" v-model="search_group_name"></el-input>
|
|
21
|
-
<el-button type="primary" icon="el-icon-search"></el-button>
|
|
26
|
+
<el-input placeholder="搜索模版" v-model="search_group_name" clearable></el-input>
|
|
27
|
+
<el-button type="primary" icon="el-icon-search" @click="handleSearch()"></el-button>
|
|
22
28
|
</div>
|
|
23
|
-
<div class="pages-left__content">
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
<div class="pages-left__content" v-if="leftGroupList !== null">
|
|
30
|
+
<!--#ifdef saas-admin-->
|
|
31
|
+
<div class="pages-left__content-title" v-if="leftGroupList && leftGroupList.length === 0">【<span>{{custom_group_name}}</span>】可用模版列表</div>
|
|
32
|
+
<!--#endif-->
|
|
33
|
+
<template v-for="(item,index) in leftGroupList" >
|
|
34
|
+
<!--#ifdef saas-admin-->
|
|
35
|
+
<div class="pages-left__content-title" v-if="index ===0 && item.isSelected">当前使用模版</div>
|
|
36
|
+
<div class="pages-left__content-title" v-if="index ===0 && !item.isSelected">【<span>{{custom_group_name}}</span>】可用模版列表</div>
|
|
37
|
+
<!--#endif-->
|
|
38
|
+
<div
|
|
39
|
+
class="pages-left__content-item"
|
|
40
|
+
:key="item.value"
|
|
41
|
+
:class="{active: active === item.value}"
|
|
42
|
+
@click="handleChange(item)"
|
|
43
|
+
>
|
|
44
|
+
<el-image fit="contain" :src="item['material_cover_url']">
|
|
45
|
+
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
|
|
46
|
+
</el-image>
|
|
47
|
+
<div>{{item.label}}</div>
|
|
48
|
+
</div>
|
|
49
|
+
<!--#ifdef saas-admin-->
|
|
50
|
+
<div class="pages-left__content-title" v-if="index === 0 && item.isSelected">【<span>{{custom_group_name}}</span>】可用模版列表</div>
|
|
51
|
+
<!--#endif-->
|
|
52
|
+
</template>
|
|
35
53
|
</div>
|
|
54
|
+
<div
|
|
55
|
+
class="nodata"
|
|
56
|
+
v-if="leftGroupList && leftGroupList.length === (custom_active_item===null?0:1)"
|
|
57
|
+
>当前分组下暂无数据列表</div>
|
|
36
58
|
</div>
|
|
37
59
|
<div class="pages-main" id="pages-main" slot="main">
|
|
38
60
|
<div class="line"></div>
|
|
@@ -47,7 +69,9 @@
|
|
|
47
69
|
<hr>
|
|
48
70
|
<div style="font-size: 30px">Detail:{{materialDetailConfig}}</div>
|
|
49
71
|
</template>
|
|
72
|
+
{{materialData}}
|
|
50
73
|
<div
|
|
74
|
+
v-if="isShowPhone"
|
|
51
75
|
v-for="(item,key) in materialData"
|
|
52
76
|
:key="key"
|
|
53
77
|
class="iphone-box-content"
|
|
@@ -107,6 +131,11 @@ export default {
|
|
|
107
131
|
return this.$xdHelper.isEmpty(this.materialCoverConfig) ||
|
|
108
132
|
this.$xdHelper.isEmpty(this.materialDetailConfig)
|
|
109
133
|
},
|
|
134
|
+
|
|
135
|
+
isShowPhone(){
|
|
136
|
+
return !this.$xdHelper.isEmpty(this.materialData.cover)
|
|
137
|
+
|| !this.$xdHelper.isEmpty(this.materialData.detail)
|
|
138
|
+
}
|
|
110
139
|
},
|
|
111
140
|
|
|
112
141
|
watch:{
|
|
@@ -125,6 +154,24 @@ export default {
|
|
|
125
154
|
},
|
|
126
155
|
deep: true
|
|
127
156
|
},
|
|
157
|
+
|
|
158
|
+
// #ifdef admin
|
|
159
|
+
materialCoverConfig(val){
|
|
160
|
+
this.leftGroupList = this.leftGroupList.map(item=>{
|
|
161
|
+
if(this.active_material_id === item.id) {
|
|
162
|
+
let material_cover_url = item['material_cover_url'];
|
|
163
|
+
if(val.material_image && val.material_image.url) {
|
|
164
|
+
material_cover_url = this.getImageFullPath(val.material_image.url,'size8');
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
...item,
|
|
168
|
+
material_cover_url
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return item;
|
|
172
|
+
})
|
|
173
|
+
},
|
|
174
|
+
// #endif
|
|
128
175
|
},
|
|
129
176
|
|
|
130
177
|
data(){
|
|
@@ -135,40 +182,47 @@ export default {
|
|
|
135
182
|
defaultCoverImage: '//img.jufubao.cn/component/dome-cover.png',
|
|
136
183
|
defaultDetailImage: '//img.jufubao.cn/component/dome-detail.png',
|
|
137
184
|
|
|
138
|
-
|
|
185
|
+
//地址栏中参数(超管)
|
|
139
186
|
group_id: '',
|
|
140
187
|
material_id: '',
|
|
141
188
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
189
|
+
|
|
190
|
+
//自定义素材ID(SaaS后台)
|
|
191
|
+
custom_x_material_id:null, //自定义素材对象ID
|
|
192
|
+
custom_x_material_item: null, //获取自定义素材对象
|
|
193
|
+
custom_group_id: null, //分组ID
|
|
194
|
+
custom_group_name:'', //分组名称
|
|
195
|
+
custom_active_item: null, //自定义素材所使用到原始素材对象
|
|
196
|
+
custom_active_material_id: null,//自定义素材所使用到原始素材对象ID
|
|
197
|
+
|
|
198
|
+
//search(SaaS后台)
|
|
145
199
|
is_search_show: false,
|
|
200
|
+
search_group_list: [],
|
|
201
|
+
search_group_name:'',
|
|
146
202
|
|
|
203
|
+
//left data
|
|
204
|
+
leftGroupList:null,
|
|
147
205
|
|
|
148
|
-
//left
|
|
149
|
-
leftGroupList:[],
|
|
150
|
-
active:'',
|
|
151
206
|
|
|
152
207
|
//main ---> material_cover_config/material_detail_config
|
|
153
|
-
|
|
154
|
-
|
|
208
|
+
active:'',//当前选中到素材ID
|
|
209
|
+
activeItem: null, //当前选中操作贺卡数据
|
|
210
|
+
active_material_id:null, //原素材ID切换的参数
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
//编辑模式下使用变量
|
|
214
|
+
mainActive:'', //编辑时候区分是封面还是详情原始快
|
|
155
215
|
materialCoverKey:{
|
|
156
216
|
material_cover_config:'materialCoverConfig',
|
|
157
217
|
material_detail_config:'materialDetailConfig'
|
|
158
218
|
},
|
|
159
219
|
materialCoverDefault:{
|
|
160
|
-
material_cover_config:{"material_image": "", "material_height": 780, "material_status": "Y", "material_nickname": "亲爱的 {{name}}!", "material_content": "", "material_end": "{{company}}", "material_color": "#333", "material_margin": { "top": 470, "right": 20, "bottom": 0, "left": 20 } },
|
|
161
|
-
material_detail_config:{"material_image": "", "material_height": 1334, "material_status": "Y", "material_nickname": "亲爱的 {{name}}!", "material_content": "", "material_end": "{{company}}", "material_color": "#F99E15", "material_margin": { "top": 450, "right": 100, "bottom": 0, "left": 100 } }
|
|
220
|
+
material_cover_config:{},//{"material_image": "", "material_height": 780, "material_status": "Y", "material_nickname": "亲爱的 {{name}}!", "material_content": "", "material_end": "{{company}}", "material_color": "#333", "material_margin": { "top": 470, "right": 20, "bottom": 0, "left": 20 } },
|
|
221
|
+
material_detail_config:{},//{"material_image": "", "material_height": 1334, "material_status": "Y", "material_nickname": "亲爱的 {{name}}!", "material_content": "", "material_end": "{{company}}", "material_color": "#F99E15", "material_margin": { "top": 450, "right": 100, "bottom": 0, "left": 100 } }
|
|
162
222
|
},
|
|
163
|
-
|
|
164
|
-
//封面配置信息
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
//详情配置信息
|
|
168
|
-
materialDetailConfig:{},
|
|
169
|
-
|
|
170
|
-
//封面图
|
|
171
|
-
material_cover:null,
|
|
223
|
+
material_cover:null,//封面图
|
|
224
|
+
materialCoverConfig:{}, //封面配置信息
|
|
225
|
+
materialDetailConfig:{}, //详情配置信息
|
|
172
226
|
|
|
173
227
|
//pages data
|
|
174
228
|
materialDataTimer:null,
|
|
@@ -191,9 +245,17 @@ export default {
|
|
|
191
245
|
|
|
192
246
|
created() {
|
|
193
247
|
let params = this.$route.params;
|
|
248
|
+
let query = this.$route.query;
|
|
194
249
|
if(params.group_id) this.group_id = params.group_id;
|
|
195
250
|
if(params.material_id){
|
|
196
|
-
this.material_id = params.material_id;
|
|
251
|
+
this.material_id = Number(params.material_id);
|
|
252
|
+
this.active_material_id = Number(params.material_id);
|
|
253
|
+
this.active = Number(params.material_id);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
//自定义素材ID
|
|
257
|
+
if(query.x_material_id) {
|
|
258
|
+
this.custom_x_material_id = Number(query.x_material_id);
|
|
197
259
|
}
|
|
198
260
|
this.isPc = isPlatform().isPc;
|
|
199
261
|
this.initDataCard();
|
|
@@ -203,6 +265,10 @@ export default {
|
|
|
203
265
|
...mapActions('greetingCard',[
|
|
204
266
|
'getGreetingCardGroupList',
|
|
205
267
|
'getGreetingCardList',
|
|
268
|
+
'setGreetingCardBaseConfig',
|
|
269
|
+
'getCustomMaterialInfo',
|
|
270
|
+
'createCustomMaterial',
|
|
271
|
+
'updateCustomMaterial'
|
|
206
272
|
]),
|
|
207
273
|
initDataCard(){
|
|
208
274
|
// #ifdef admin
|
|
@@ -212,45 +278,223 @@ export default {
|
|
|
212
278
|
this.initDataCardSaasAdmin();
|
|
213
279
|
// #endif
|
|
214
280
|
},
|
|
281
|
+
|
|
282
|
+
//获取到列表之后初始化页面
|
|
283
|
+
handleInitLeftData(list, material_id){
|
|
284
|
+
let activeItem = null;
|
|
285
|
+
this.leftGroupList = list.map(item=>{
|
|
286
|
+
item['material_cover_url'] = this.getImageFullPath(item.material_cover,'size8');
|
|
287
|
+
item['value'] = item.id + '';
|
|
288
|
+
item['label'] = item.material_name;
|
|
289
|
+
if(item.id === material_id) activeItem = item;
|
|
290
|
+
return item
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
// #ifdef saas-admin
|
|
294
|
+
this.search_group_list.map(item=>{
|
|
295
|
+
if(item.value === this.custom_group_id+''){
|
|
296
|
+
this.custom_group_name = item.label;
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
// #endif
|
|
300
|
+
|
|
301
|
+
//设置当前选中
|
|
302
|
+
if(activeItem){
|
|
303
|
+
this.handleChange(activeItem, true);
|
|
304
|
+
this.firstLoading = true;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
else this.firstLoading = true;
|
|
309
|
+
},
|
|
310
|
+
checkIsPublish(cover,detail){
|
|
311
|
+
if(!cover.material_image) {
|
|
312
|
+
this.$message({message:'请上传贺卡封面图片',type:'error'});
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
if(!detail.material_image) {
|
|
317
|
+
this.$message({message:'请上传贺卡详情背景图片',type:'error'});
|
|
318
|
+
return true;
|
|
319
|
+
}
|
|
320
|
+
return false;
|
|
321
|
+
},
|
|
322
|
+
|
|
215
323
|
// #ifdef admin
|
|
216
324
|
initDataCardAdmin(){
|
|
217
325
|
this.is_search_show = false;
|
|
218
326
|
let params = {
|
|
219
327
|
filters: {
|
|
220
328
|
group_id: Number(this.group_id),
|
|
221
|
-
material_ids:[Number(this.material_id)
|
|
329
|
+
material_ids:[Number(this.material_id)]
|
|
222
330
|
},
|
|
223
331
|
page_token:'1',
|
|
224
332
|
page_size: 20,
|
|
225
333
|
}
|
|
226
334
|
this.getGreetingCardList(params)
|
|
227
335
|
.then(res=>{
|
|
228
|
-
|
|
229
|
-
this.leftGroupList = res.data.list.map(item=>{
|
|
230
|
-
item['material_cover_url'] = this.getImageFullPath(item.material_cover,'size8');
|
|
231
|
-
item['value'] = item.id + '';
|
|
232
|
-
item['label'] = item.material_name;
|
|
233
|
-
if(item.id === Number(this.material_id)) activeItem = item;
|
|
234
|
-
return item
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
//设置当前选中
|
|
238
|
-
if(activeItem){
|
|
239
|
-
this.handleChange(activeItem, true);
|
|
240
|
-
this.firstLoading = true;
|
|
241
|
-
}
|
|
242
|
-
else this.firstLoading = true;
|
|
336
|
+
this.handleInitLeftData(res.data.list, this.active || this.material_id);
|
|
243
337
|
}).catch();
|
|
244
338
|
},
|
|
339
|
+
handlePublish(){
|
|
340
|
+
if(this.checkIsPublish(this.materialCoverConfig,this.materialDetailConfig)) return;
|
|
341
|
+
let cover = this.materialCoverConfig.material_image && this.materialCoverConfig.material_image.url;
|
|
342
|
+
let params = {
|
|
343
|
+
material_id: Number(this.active_material_id),
|
|
344
|
+
item: {
|
|
345
|
+
material_cover: cover,
|
|
346
|
+
material_cover_config:JSON.stringify(this.materialCoverConfig),
|
|
347
|
+
material_detail_config:JSON.stringify(this.materialDetailConfig),
|
|
348
|
+
},
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
let loading = Loading.service({});
|
|
352
|
+
this.setGreetingCardBaseConfig(params)
|
|
353
|
+
.then(res=>{
|
|
354
|
+
this.$message({message:'操作成功!',type:"success"});
|
|
355
|
+
loading.close()
|
|
356
|
+
})
|
|
357
|
+
.catch(err=>{
|
|
358
|
+
loading.close()
|
|
359
|
+
})
|
|
360
|
+
},
|
|
245
361
|
// #endif
|
|
246
362
|
|
|
247
363
|
// #ifdef saas-admin
|
|
248
|
-
initDataCardSaasAdmin(){
|
|
249
|
-
|
|
364
|
+
async initDataCardSaasAdmin(){
|
|
365
|
+
if(this.custom_x_material_id) {
|
|
366
|
+
let item = this.custom_x_material_item = await this.getCustomMaterialList(this.custom_x_material_id);
|
|
367
|
+
item['material_info']['isSelected'] = true;
|
|
368
|
+
//设置当前选中原始模版数据
|
|
369
|
+
this.custom_active_item = [item['material_info']];
|
|
370
|
+
this.custom_group_id = (item['material_info'].group_id || item.group_id) + '';
|
|
371
|
+
this.custom_active_material_id = item.material_id;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
//初始化组
|
|
375
|
+
let group = await this.getGreetingGroupList();
|
|
376
|
+
let list = await this.getGreetingMaterialList([], this.custom_group_id);
|
|
377
|
+
this.search_group_list = group;
|
|
378
|
+
|
|
379
|
+
//有自定义数据初始化
|
|
380
|
+
if(this.custom_x_material_id) {
|
|
381
|
+
this.handleInitLeftData(list, this.custom_active_material_id);
|
|
382
|
+
}
|
|
383
|
+
//无自定义数据初始化
|
|
384
|
+
else this.handleInitLeftData(list);
|
|
385
|
+
|
|
386
|
+
this.is_search_show = true;
|
|
387
|
+
this.firstLoading = true
|
|
388
|
+
|
|
389
|
+
},
|
|
390
|
+
getCustomMaterialList(x_material_id){
|
|
391
|
+
return new Promise((resolve, reject)=>{
|
|
392
|
+
this.getCustomMaterialInfo({x_material_id})
|
|
393
|
+
.then(res=>{
|
|
394
|
+
resolve(res.data)
|
|
395
|
+
})
|
|
396
|
+
.catch(err=>{
|
|
397
|
+
resolve({})
|
|
398
|
+
})
|
|
399
|
+
})
|
|
400
|
+
},
|
|
401
|
+
getGreetingGroupList(){
|
|
402
|
+
return new Promise((resolve, reject)=>{
|
|
403
|
+
this.getGreetingCardGroupList()
|
|
404
|
+
.then(res=>{
|
|
405
|
+
let data = res.data.list.map(item=>{
|
|
406
|
+
return { ...item, value: item.value + ''}
|
|
407
|
+
});
|
|
408
|
+
if(!this.custom_group_id) this.custom_group_id = data[0].value;
|
|
409
|
+
resolve(data);
|
|
410
|
+
})
|
|
411
|
+
.catch(err=>{
|
|
412
|
+
resolve([])
|
|
413
|
+
});
|
|
414
|
+
})
|
|
415
|
+
},
|
|
416
|
+
getGreetingMaterialList(ids=[],group_id){
|
|
417
|
+
return new Promise((resolve,reject)=>{
|
|
418
|
+
let params = {
|
|
419
|
+
filters: {
|
|
420
|
+
group_id:Number(group_id),
|
|
421
|
+
material_ids: ids || [],
|
|
422
|
+
material_status:'Y',
|
|
423
|
+
},
|
|
424
|
+
page_size: 50,
|
|
425
|
+
page_token: '1'
|
|
426
|
+
}
|
|
427
|
+
if(this.search_group_name) params.filters.material_name = this.search_group_name;
|
|
428
|
+
this.getGreetingCardList(params)
|
|
429
|
+
.then(res=>{
|
|
430
|
+
if(this.custom_active_item) {
|
|
431
|
+
res.data.list = this.custom_active_item.concat(res.data.list.filter(item=>{
|
|
432
|
+
return item.id !== this.custom_active_material_id
|
|
433
|
+
}))
|
|
434
|
+
}
|
|
435
|
+
resolve(res.data.list);
|
|
436
|
+
})
|
|
437
|
+
.catch(er=>{
|
|
438
|
+
resolve([])
|
|
439
|
+
})
|
|
440
|
+
})
|
|
441
|
+
},
|
|
442
|
+
handleCommand(group_id){
|
|
443
|
+
if(this.custom_group_id === group_id) return
|
|
444
|
+
this.custom_group_id = group_id;
|
|
445
|
+
this.handleSearch();
|
|
446
|
+
},
|
|
447
|
+
async handleSearch(){
|
|
448
|
+
this.active = '';
|
|
449
|
+
this.materialDataTimer = null;
|
|
450
|
+
this.materialData = { cover:{}, detail:{}}
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
//清除面板编辑信息
|
|
454
|
+
this.handleChangeClear();
|
|
455
|
+
let list = await this.getGreetingMaterialList([],this.custom_group_id);
|
|
456
|
+
|
|
457
|
+
//this.handleInitLeftData(list, );
|
|
458
|
+
//有自定义数据初始化
|
|
459
|
+
if(this.custom_x_material_id) {
|
|
460
|
+
this.handleInitLeftData(list, this.custom_active_material_id);
|
|
461
|
+
}
|
|
462
|
+
//无自定义数据初始化
|
|
463
|
+
else this.handleInitLeftData(list);
|
|
464
|
+
},
|
|
465
|
+
handleCustomPublish(){
|
|
466
|
+
if(this.checkIsPublish(this.materialCoverConfig,this.materialDetailConfig)) return;
|
|
467
|
+
let fn = 'createCustomMaterial';
|
|
468
|
+
let params = {
|
|
469
|
+
item: {
|
|
470
|
+
group_id: Number(this.custom_group_id),
|
|
471
|
+
material_id: this.active_material_id,
|
|
472
|
+
material_cover_config:JSON.stringify(this.materialCoverConfig),
|
|
473
|
+
material_detail_config:JSON.stringify(this.materialDetailConfig),
|
|
474
|
+
},
|
|
475
|
+
}
|
|
476
|
+
if(this.custom_x_material_id){
|
|
477
|
+
params['x_material_id'] = this.custom_x_material_id;
|
|
478
|
+
fn = 'updateCustomMaterial';
|
|
479
|
+
}
|
|
480
|
+
let loading = Loading.service({});
|
|
481
|
+
this[fn](params)
|
|
482
|
+
.then(res=>{
|
|
483
|
+
debugger
|
|
484
|
+
this.$message({message:'操作成功!',type:"success"});
|
|
485
|
+
window['xdLocalStore'].set('xd-card-x-material-id', res.data.x_material_id || this.custom_x_material_id);
|
|
486
|
+
setTimeout(()=>{
|
|
487
|
+
this.$router.back();
|
|
488
|
+
},1500)
|
|
489
|
+
loading.close()
|
|
490
|
+
})
|
|
491
|
+
.catch(err=>{
|
|
492
|
+
loading.close()
|
|
493
|
+
})
|
|
250
494
|
},
|
|
251
495
|
// #endif
|
|
252
496
|
|
|
253
|
-
|
|
497
|
+
//==切换贺卡=====
|
|
254
498
|
handleChangeClear(){
|
|
255
499
|
this.materialCoverConfig = {};
|
|
256
500
|
this.materialDetailConfig = {};
|
|
@@ -262,17 +506,16 @@ export default {
|
|
|
262
506
|
this.material_cover = '';
|
|
263
507
|
},
|
|
264
508
|
|
|
265
|
-
//点击左侧贺卡初始化贺卡功能方法
|
|
266
509
|
handleChange(item, init = false){
|
|
267
510
|
if(item.value === this.active) return;
|
|
268
|
-
if(init) {
|
|
511
|
+
if(init || this.active === '') {
|
|
269
512
|
this.handleChangeClear();
|
|
270
513
|
this.activeItem = this.$xdHelper.cloneDeep(item);
|
|
271
514
|
this.active = item.value;
|
|
272
515
|
this.setConfigPage(item);
|
|
273
516
|
return;
|
|
274
517
|
}
|
|
275
|
-
this.$confirm('
|
|
518
|
+
this.$confirm('切换贺卡模版时,未保存数据可能会丢失,您确定要切换贺卡模版吗?', '温馨提示', {
|
|
276
519
|
confirmButtonText: '确定',
|
|
277
520
|
cancelButtonText: '取消',
|
|
278
521
|
type: 'warning'
|
|
@@ -283,7 +526,9 @@ export default {
|
|
|
283
526
|
this.setConfigPage(item);
|
|
284
527
|
}).catch(err=>{})
|
|
285
528
|
},
|
|
529
|
+
//==切换贺卡=====
|
|
286
530
|
|
|
531
|
+
//==tools====
|
|
287
532
|
toJson(item,key){
|
|
288
533
|
let defaultValue = this.$xdHelper.cloneDeep(this.materialCoverDefault[key]);
|
|
289
534
|
if(this.material_cover){
|
|
@@ -292,7 +537,14 @@ export default {
|
|
|
292
537
|
try{
|
|
293
538
|
if(typeof item === 'string') {
|
|
294
539
|
if(item === '') return defaultValue
|
|
295
|
-
|
|
540
|
+
else {
|
|
541
|
+
let data = JSON.parse(item);
|
|
542
|
+
if(this.material_cover && key === 'material_cover_config'){
|
|
543
|
+
data.material_image = {url: this.material_cover};
|
|
544
|
+
}
|
|
545
|
+
return data
|
|
546
|
+
}
|
|
547
|
+
|
|
296
548
|
}else {
|
|
297
549
|
return defaultValue
|
|
298
550
|
}
|
|
@@ -302,20 +554,43 @@ export default {
|
|
|
302
554
|
},
|
|
303
555
|
|
|
304
556
|
setConfigPage(item){
|
|
557
|
+
this.active_material_id = item.id;
|
|
305
558
|
this.material_cover = item['material_cover'];
|
|
559
|
+
|
|
560
|
+
// #ifdef admin
|
|
561
|
+
this.$set(this.materialCoverDefault,'material_cover_config',JSON.parse(item['default_material_cover_config']));
|
|
562
|
+
this.$set(this.materialCoverDefault,'material_detail_config',JSON.parse(item['default_material_detail_config']));
|
|
306
563
|
this.materialCoverConfig = this.toJson(item['material_cover_config'],'material_cover_config');
|
|
307
564
|
this.materialDetailConfig = this.toJson(item['material_detail_config'],'material_detail_config');
|
|
308
|
-
//
|
|
309
|
-
|
|
565
|
+
// #endif
|
|
566
|
+
|
|
567
|
+
// #ifdef saas-admin
|
|
568
|
+
//封面数据
|
|
569
|
+
if(this.custom_x_material_item && this.custom_x_material_item['material_cover_config']
|
|
570
|
+
&& item.id === this.custom_x_material_item['material_id']
|
|
571
|
+
) {
|
|
572
|
+
this.materialCoverConfig = JSON.parse(this.custom_x_material_item['material_cover_config']);
|
|
573
|
+
}
|
|
574
|
+
else this.materialCoverConfig = this.toJson(item['material_cover_config'],'material_cover_config');
|
|
575
|
+
|
|
576
|
+
//详情
|
|
577
|
+
if(this.custom_x_material_item && this.custom_x_material_item['material_detail_config']
|
|
578
|
+
&& item.id === this.custom_x_material_item['material_id']
|
|
579
|
+
) {
|
|
580
|
+
this.materialDetailConfig = JSON.parse(this.custom_x_material_item['material_detail_config']);
|
|
581
|
+
}
|
|
582
|
+
else this.materialDetailConfig = this.toJson(item['material_detail_config'],'material_detail_config');
|
|
583
|
+
// #endif
|
|
584
|
+
|
|
310
585
|
Object.keys(this.materialCoverMap).map(key=>{
|
|
311
586
|
this.setMaterialData(this[this.materialCoverKey[key]],key);
|
|
312
587
|
})
|
|
313
588
|
},
|
|
314
589
|
|
|
315
|
-
|
|
316
590
|
setMaterialConfig(item){
|
|
317
591
|
this[this.materialCoverKey[this.mainActive]] = item;
|
|
318
592
|
},
|
|
593
|
+
//==tools====
|
|
319
594
|
|
|
320
595
|
//== right form ===============
|
|
321
596
|
clearEditCard(){
|
|
@@ -517,6 +792,8 @@ export default {
|
|
|
517
792
|
height: params['key'] === 'material_detail_config'?'1334px':`450px`,
|
|
518
793
|
backgroundImage: `url(${thumb})`
|
|
519
794
|
};
|
|
795
|
+
|
|
796
|
+
|
|
520
797
|
if((this.mainActive || key)) {
|
|
521
798
|
this.$set(this.materialData, this.materialCoverMap[this.mainActive || key], params);
|
|
522
799
|
}
|
|
@@ -568,18 +845,19 @@ export default {
|
|
|
568
845
|
}
|
|
569
846
|
|
|
570
847
|
&__content {
|
|
571
|
-
|
|
572
|
-
|
|
848
|
+
width: 100%;
|
|
849
|
+
&-item {
|
|
850
|
+
width: 100%;
|
|
573
851
|
padding: 5px;
|
|
574
852
|
box-sizing: border-box;
|
|
575
853
|
border-radius: 5px;
|
|
576
|
-
border:
|
|
854
|
+
border: 3px solid #eee;
|
|
577
855
|
margin-bottom: 10px;
|
|
578
856
|
cursor: pointer;
|
|
579
857
|
|
|
580
858
|
&.active {
|
|
581
|
-
border:
|
|
582
|
-
background: rgba(
|
|
859
|
+
border: 3px dashed rgba(28, 88, 229, 0.6);
|
|
860
|
+
background: rgba(47, 100, 229, 0.15);
|
|
583
861
|
|
|
584
862
|
& > *:first-child {
|
|
585
863
|
background: rgba(88, 135, 247, 0.05);
|
|
@@ -610,6 +888,29 @@ export default {
|
|
|
610
888
|
}
|
|
611
889
|
}
|
|
612
890
|
}
|
|
891
|
+
&-title {
|
|
892
|
+
font-size: 14px;
|
|
893
|
+
font-weight: 500;
|
|
894
|
+
background: #f8f8f8;
|
|
895
|
+
color: #999;
|
|
896
|
+
border-radius: 4px;
|
|
897
|
+
line-height: 40px;
|
|
898
|
+
margin-bottom: 10px;
|
|
899
|
+
padding: 0 10px;
|
|
900
|
+
width: 100%;
|
|
901
|
+
|
|
902
|
+
& > span {
|
|
903
|
+
color: red;
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
.nodata {
|
|
909
|
+
height: 100px;
|
|
910
|
+
font-size: 14px;
|
|
911
|
+
color: #bbb;
|
|
912
|
+
line-height: 100px;
|
|
913
|
+
text-align: center;
|
|
613
914
|
}
|
|
614
915
|
|
|
615
916
|
}
|
|
@@ -632,7 +933,7 @@ export default {
|
|
|
632
933
|
position: relative;
|
|
633
934
|
|
|
634
935
|
.iphone-top {
|
|
635
|
-
background: rgba(
|
|
936
|
+
background: rgba(255,0,0,.8);
|
|
636
937
|
position: absolute;
|
|
637
938
|
top: 62px;
|
|
638
939
|
left: 14px;
|
|
@@ -751,3 +1052,13 @@ export default {
|
|
|
751
1052
|
|
|
752
1053
|
|
|
753
1054
|
</style>
|
|
1055
|
+
<style lang="scss">
|
|
1056
|
+
.g-active {
|
|
1057
|
+
padding: 0 15px 0 10px!important;
|
|
1058
|
+
color:$blue;
|
|
1059
|
+
}
|
|
1060
|
+
.g-no-active {
|
|
1061
|
+
margin-left: 18px;
|
|
1062
|
+
padding: 0 15px 0 10px!important;;
|
|
1063
|
+
}
|
|
1064
|
+
</style>
|
|
@@ -191,7 +191,7 @@ export default {
|
|
|
191
191
|
},
|
|
192
192
|
|
|
193
193
|
handleSubmit(){
|
|
194
|
-
this.$refs['form'].
|
|
194
|
+
this.$refs['form'].submitAll()
|
|
195
195
|
.then(res=>{
|
|
196
196
|
let loading = Loading.service({})
|
|
197
197
|
let form = this.$refs['form'].getAllFormData();
|
|
@@ -354,7 +354,7 @@ export default {
|
|
|
354
354
|
}
|
|
355
355
|
this.greetingCardListForm = [
|
|
356
356
|
params['id'] && {
|
|
357
|
-
label: "
|
|
357
|
+
label: "贺卡ID",
|
|
358
358
|
ele: "el-input",
|
|
359
359
|
value: params['id'],
|
|
360
360
|
valueKey: "id",
|
|
@@ -362,13 +362,14 @@ export default {
|
|
|
362
362
|
disabled: true,
|
|
363
363
|
},
|
|
364
364
|
{
|
|
365
|
-
label: "
|
|
365
|
+
label: "贺卡名称",
|
|
366
366
|
ele: "el-input",
|
|
367
367
|
value: params['material_name'] || '',
|
|
368
368
|
valueKey: "material_name",
|
|
369
369
|
className: "input80",
|
|
370
|
+
placeholder: '请输入贺卡名称',
|
|
370
371
|
rules: [
|
|
371
|
-
{ required: true, message: "
|
|
372
|
+
{ required: true, message: "请输入贺卡名称" }
|
|
372
373
|
]
|
|
373
374
|
},
|
|
374
375
|
{
|
|
@@ -378,13 +379,15 @@ export default {
|
|
|
378
379
|
type:'textarea',
|
|
379
380
|
valueKey: "material_desc",
|
|
380
381
|
className: "input80",
|
|
382
|
+
placeholder: '请输入贺卡描述',
|
|
381
383
|
},
|
|
382
384
|
{
|
|
383
|
-
label:
|
|
384
|
-
ele:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
385
|
+
label: '贺卡分组',
|
|
386
|
+
ele: 'xd-select-list',
|
|
387
|
+
valueKey: 'group_id',
|
|
388
|
+
value: params['group_id'] || this.getGroupActive().value,
|
|
389
|
+
list: this.groupList,
|
|
390
|
+
disabled: !params['id'],
|
|
388
391
|
className: "input80",
|
|
389
392
|
},
|
|
390
393
|
{
|
|
@@ -429,15 +432,13 @@ export default {
|
|
|
429
432
|
|
|
430
433
|
handleCardSubmit(){
|
|
431
434
|
let form = this.$refs['formCard'];
|
|
432
|
-
form.
|
|
435
|
+
form.submitAll()
|
|
433
436
|
.then(res=>{
|
|
434
437
|
let loading = Loading.service({})
|
|
435
438
|
let item = this.$xdHelper.cloneDeep(form.getAllFormData());
|
|
436
|
-
if(item['group_name']) delete item['group_name'];
|
|
437
439
|
if(item['material_cover']) {
|
|
438
440
|
item['material_cover'] = item['material_cover']['url'];
|
|
439
441
|
}
|
|
440
|
-
item['group_id'] = Number(this.activeName);
|
|
441
442
|
let params = {item:item};
|
|
442
443
|
let fn = 'addGreetingCard';
|
|
443
444
|
if(item.id) {
|
|
@@ -9,7 +9,7 @@ module.exports = {
|
|
|
9
9
|
mapFn: 'getAsyncList',
|
|
10
10
|
isRule: false,
|
|
11
11
|
title: '获取任务列表',
|
|
12
|
-
// #ifdef admin partner partner-stat oa-finance supplier
|
|
12
|
+
// #ifdef admin partner partner-stat oa-finance supplier saas-admin saas-admin partner-saas
|
|
13
13
|
path: '/@@@@/v1/async/list',
|
|
14
14
|
// #endif
|
|
15
15
|
//#ifdef partner-gift partner-mall partner-movie partner-market
|
|
@@ -33,7 +33,7 @@ module.exports = {
|
|
|
33
33
|
mapFn: 'asyncRetry',
|
|
34
34
|
isRule: false,
|
|
35
35
|
title: '任务query',
|
|
36
|
-
// #ifdef admin partner partner-stat oa-finance supplier
|
|
36
|
+
// #ifdef admin partner partner-stat oa-finance supplier saas-admin partner-saas
|
|
37
37
|
path: '/@@@@/v1/async/retry',
|
|
38
38
|
// #endif
|
|
39
39
|
// #ifdef partner-gift partner-mall partner-movie partner-market
|
|
@@ -19,8 +19,7 @@ module.exports = {
|
|
|
19
19
|
{
|
|
20
20
|
title: '管理员 - 角色列表',
|
|
21
21
|
mapFn: "getSaasRolesList",
|
|
22
|
-
|
|
23
|
-
path: '/idaas-partner/v1/roles/options',
|
|
22
|
+
path: '/saas-partner/v1/roles/options',
|
|
24
23
|
isRule: false,
|
|
25
24
|
params: {
|
|
26
25
|
query_pool_id: ['用户池', 'String', '必填','jfb-saas'],
|
|
@@ -52,7 +51,7 @@ module.exports = {
|
|
|
52
51
|
{
|
|
53
52
|
title: '管理员 - 获取单个',
|
|
54
53
|
mapFn: "getSaasUserById",
|
|
55
|
-
path: '
|
|
54
|
+
path: '/@@@@/v1/users/:user_id',
|
|
56
55
|
isRule: false,
|
|
57
56
|
params: {
|
|
58
57
|
user_id: ['id', 'String', '必填'],
|
|
@@ -190,8 +190,10 @@ export default {
|
|
|
190
190
|
let params ={
|
|
191
191
|
user: {
|
|
192
192
|
...form,
|
|
193
|
+
// #ifdef partner-saas
|
|
193
194
|
company_id: company[0].value,
|
|
194
195
|
company_name: company[0].label,
|
|
196
|
+
// #endif
|
|
195
197
|
}
|
|
196
198
|
}
|
|
197
199
|
let loading = Loading.service({});
|
|
@@ -200,7 +202,6 @@ export default {
|
|
|
200
202
|
params['user_id'] = this.user_id
|
|
201
203
|
fn = 'updateSaasUser';
|
|
202
204
|
}
|
|
203
|
-
debugger
|
|
204
205
|
this[fn](params)
|
|
205
206
|
.then(res=>{
|
|
206
207
|
loading.close();
|
|
@@ -231,6 +232,7 @@ export default {
|
|
|
231
232
|
{ required: true, message: "站点名称不能为空", trigger:'blur'}
|
|
232
233
|
]
|
|
233
234
|
},
|
|
235
|
+
// #ifdef partner-saas
|
|
234
236
|
{
|
|
235
237
|
label: "客户名称",
|
|
236
238
|
ele: 'xd-remote-select',
|
|
@@ -252,6 +254,7 @@ export default {
|
|
|
252
254
|
{ required: true, message: "请选择客户名称",trigger: ['change']}
|
|
253
255
|
]
|
|
254
256
|
},
|
|
257
|
+
// #endif
|
|
255
258
|
{
|
|
256
259
|
label: "管理员账号:",
|
|
257
260
|
ele: "el-input",
|
|
@@ -354,7 +357,9 @@ export default {
|
|
|
354
357
|
username: row.username,
|
|
355
358
|
role_ids: row.role_ids,
|
|
356
359
|
status: row.status,
|
|
360
|
+
// #ifdef partner-saas
|
|
357
361
|
company:[{label: row.company_name, value: row.company_id}]
|
|
362
|
+
// #endif
|
|
358
363
|
};
|
|
359
364
|
this.initForm(info);
|
|
360
365
|
this.dialog = true;
|
|
@@ -15,6 +15,19 @@ module.exports = {
|
|
|
15
15
|
disabled: true,
|
|
16
16
|
role: '',
|
|
17
17
|
},
|
|
18
|
+
{
|
|
19
|
+
title: '客户管理 - 获取站点所有应用',
|
|
20
|
+
mapFn: "getSaasSiteAppList",
|
|
21
|
+
isPublic: true,
|
|
22
|
+
path: '/editx/v1/platforms/all-platform-catelogs',
|
|
23
|
+
isRule: false,
|
|
24
|
+
params: {
|
|
25
|
+
site_id:['站点id', 'String', '必选'],
|
|
26
|
+
},
|
|
27
|
+
resultKey: "data",
|
|
28
|
+
disabled: true,
|
|
29
|
+
role: '',
|
|
30
|
+
},
|
|
18
31
|
{
|
|
19
32
|
title: '客户管理 - 设置',
|
|
20
33
|
mapFn: "updateSaasCompany",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
label-width="120px"
|
|
46
46
|
v-if="status"
|
|
47
47
|
:list="listForm"
|
|
48
|
+
:key="key"
|
|
48
49
|
@success="handleSuccess"
|
|
49
50
|
@onApiSuccessUrl="handleApiSuccessUrl"
|
|
50
51
|
@onGetParamsAndHeader="handleGetParamsAndHeader"
|
|
@@ -92,6 +93,11 @@ export default {
|
|
|
92
93
|
]
|
|
93
94
|
}
|
|
94
95
|
},
|
|
96
|
+
watch:{
|
|
97
|
+
'listValue.site_id'(){
|
|
98
|
+
this.initForm(this.listValue);
|
|
99
|
+
},
|
|
100
|
+
},
|
|
95
101
|
data () {
|
|
96
102
|
return {
|
|
97
103
|
//分页参数
|
|
@@ -113,6 +119,7 @@ export default {
|
|
|
113
119
|
listForm: [],
|
|
114
120
|
status: false,
|
|
115
121
|
id:null, //客户记录ID
|
|
122
|
+
key: Date.now()
|
|
116
123
|
}
|
|
117
124
|
},
|
|
118
125
|
|
|
@@ -123,7 +130,8 @@ export default {
|
|
|
123
130
|
...mapActions('mCompany', [
|
|
124
131
|
'getSaasCompanyList',
|
|
125
132
|
'getSaasSiteList',
|
|
126
|
-
'updateSaasCompany'
|
|
133
|
+
'updateSaasCompany',
|
|
134
|
+
'getSaasSiteAppList'
|
|
127
135
|
]),
|
|
128
136
|
|
|
129
137
|
//create and edit
|
|
@@ -144,7 +152,6 @@ export default {
|
|
|
144
152
|
.then(res=>{
|
|
145
153
|
let form = this.$xdHelper.cloneDeep(this.$refs['form'].getAllFormData());
|
|
146
154
|
let loading = Loading.service({});
|
|
147
|
-
debugger
|
|
148
155
|
this.updateSaasCompany({id:this.id,item:form})
|
|
149
156
|
.then(res=>{
|
|
150
157
|
loading.close();
|
|
@@ -206,6 +213,33 @@ export default {
|
|
|
206
213
|
{ required: true, message: "请选择指定站点",trigger: ['change']}
|
|
207
214
|
]
|
|
208
215
|
},
|
|
216
|
+
params['site_id'] && {
|
|
217
|
+
label: '指定站点应用',
|
|
218
|
+
ele: 'xd-remote-select-list',
|
|
219
|
+
valueKey: 'index_path',
|
|
220
|
+
value: params['index_path'] || null,
|
|
221
|
+
placeholder: '请选择指定站点应用:',
|
|
222
|
+
setting: { multiple: false,},
|
|
223
|
+
className: 'input80',
|
|
224
|
+
handleCustom:({action, data}) =>{
|
|
225
|
+
this.getSaasSiteAppList({site_id: params['site_id']})
|
|
226
|
+
.then(res=>{
|
|
227
|
+
data.cb(res.data.items.map(item=>{
|
|
228
|
+
return {
|
|
229
|
+
label: item.label,
|
|
230
|
+
value: item.route,
|
|
231
|
+
id: item.value
|
|
232
|
+
}
|
|
233
|
+
}))
|
|
234
|
+
})
|
|
235
|
+
.catch(err=>{
|
|
236
|
+
data.cb([])
|
|
237
|
+
})
|
|
238
|
+
},
|
|
239
|
+
rules: [
|
|
240
|
+
{ required: true, message: "请选择指定站点",trigger: ['change']}
|
|
241
|
+
]
|
|
242
|
+
},
|
|
209
243
|
{
|
|
210
244
|
label: '客户状态:',
|
|
211
245
|
ele: 'xd-radio-status',
|
|
@@ -217,6 +251,7 @@ export default {
|
|
|
217
251
|
},
|
|
218
252
|
].filter(ii => ii)
|
|
219
253
|
this.status = true
|
|
254
|
+
this.key = Date.now()
|
|
220
255
|
},
|
|
221
256
|
//create and edit
|
|
222
257
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jufubao-admin-library",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.29",
|
|
4
4
|
"description": "聚福宝福利后台管理系统公共模块",
|
|
5
5
|
"author": "goashiyong <gaoshiyong1272@vip.163.com>",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"serve": "cross-env type=test cover=true service=serve npm run entry bus",
|
|
8
|
+
"serve.saas": "cross-env type=test cover=true service=serve npm run entry bus saas",
|
|
9
|
+
"serve.supplier": "cross-env type=test cover=true service=serve npm run entry bus supplier",
|
|
8
10
|
"serve.domain": "cross-env type=test cover=true service=serve domain=http://sandbox-editx.jufubao.cn npm run entry bus",
|
|
9
11
|
"dev": "cross-env type=dev cover=true service=build npm run entry bus",
|
|
10
12
|
"test": "cross-env type=test cover=true service=build npm run entry bus",
|
|
@@ -27,7 +29,7 @@
|
|
|
27
29
|
"element-ui": "2.13.2",
|
|
28
30
|
"gxd-file-preview": "1.2.1",
|
|
29
31
|
"gxd-helper": "2.0.21",
|
|
30
|
-
"gxd-vue-library": "1.1.
|
|
32
|
+
"gxd-vue-library": "1.1.96",
|
|
31
33
|
"js-base64": "^3.4.5",
|
|
32
34
|
"js-cookie": "2.2.0",
|
|
33
35
|
"md5": "^2.3.0",
|