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.
@@ -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: true,
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
- // roles: [],
41
- activeMenu: "/greeting_card/list"
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>黄金糕</el-dropdown-item>
14
- <el-dropdown-item>狮子头</el-dropdown-item>
15
- <el-dropdown-item>螺蛳粉</el-dropdown-item>
16
- <el-dropdown-item>双皮奶</el-dropdown-item>
17
- <el-dropdown-item>蚵仔煎</el-dropdown-item>
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
- <div
25
- v-for="item in leftGroupList"
26
- :key="item.value"
27
- :class="{active: active === item.value}"
28
- @click="handleChange(item)"
29
- >
30
- <el-image fit="contain" :src="item['material_cover_url']">
31
- <div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
32
- </el-image>
33
- <div>{{item.label}}</div>
34
- </div>
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
- //group
143
- search_group_id: 0,
144
- search_group_name:'',
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
- activeItem: null, //当前操作贺卡数据
154
- mainActive:'',
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
- materialCoverConfig:{},
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),16]
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
- let activeItem = null;
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
- console.log('initDataCardSaasAdmin')
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
- handlePublish(){},
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
- return JSON.parse(item)
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
- //this.$set(this.materialCoverDefault,'material_cover_config',JSON.parse(item['default_material_cover_config']));
309
- //this.$set(this.materialCoverDefault,'material_detail_config',JSON.parse(item['default_material_detail_config']));
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
- & > div {
572
- width: 280px;
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: 1px solid #eee;
854
+ border: 3px solid #eee;
577
855
  margin-bottom: 10px;
578
856
  cursor: pointer;
579
857
 
580
858
  &.active {
581
- border: 1px solid rgba(88, 135, 247, 0.5);
582
- background: rgba(88, 135, 247, 0.15);
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(0,0,0,.8);
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'].submit()
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: "el-input",
385
- value: this.getGroupActive().label,
386
- disabled: true,
387
- valueKey: "group_name",
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.submit()
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
- isPublic: true,
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: '/saas-partner/v1/users/:user_id',
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.27",
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.93",
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",