qj-common 4.2.7 → 4.2.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qj-common",
3
- "version": "4.2.7",
3
+ "version": "4.2.9",
4
4
  "description": "common files && template for qj-paas",
5
5
  "scripts": {
6
6
  "gulp": "gulp css"
@@ -15,4 +15,4 @@
15
15
  "not ie <= 8"
16
16
  ],
17
17
  "license": "MIT"
18
- }
18
+ }
@@ -45,6 +45,7 @@ import topHDB from './top-modules/topHDB'; // 海德堡的top
45
45
  import topAYD from './top-modules/topayd'; // 爱婴岛的top
46
46
  import topMh from './top-modules/topMh'; // 麦和的top
47
47
  import topFLPT from './top-modules/topFLPT'; // 福利平台的top
48
+ import topYzj from './top-modules/topAns_yzj'; // 云之捷的top
48
49
 
49
50
  //header
50
51
  import VHeader from './header-modules/header';
@@ -66,6 +67,7 @@ import headerSDX from './header-modules/headerSDX'; // 蜀大侠头部
66
67
  import headerAYD from './header-modules/headerayd'; // 爱婴岛头部
67
68
  import headerMh from './header-modules/headerMh'; // 麦和头部
68
69
  import headerFLPT from './header-modules/headerFLPT'; // 福利平台header
70
+ import headerYzj from './header-modules/headerStyle_yzj'; // 云之捷header
69
71
 
70
72
  //leftMenu
71
73
  import LeftMenu from './leftMenu-modules/leftMenu';
@@ -94,6 +96,7 @@ import footerHDB from './footer-modules/footerHDB';
94
96
  import footerNew from './footer-modules/footerNew';
95
97
  import footerAYD from './footer-modules/footerayd'; //爱婴岛底部
96
98
  import footerMh from './footer-modules/footerMh'; //麦和底部
99
+ import footerYzj from './footer-modules/footer_yzj';//云之捷底部
97
100
  //nav
98
101
  import VNav from './nav-modules/nav';
99
102
  //theme
@@ -172,6 +175,10 @@ export default {
172
175
  topNew,
173
176
  topA,
174
177
  headerA,
178
+
179
+ topYzj,
180
+ headerYzj,
181
+ footerYzj,
175
182
  },
176
183
  data() {
177
184
  return {
@@ -203,6 +210,7 @@ export default {
203
210
  topAYD: topAYD,
204
211
  topMh:topMh ,
205
212
  topFLPT:topFLPT, //福利平台top
213
+ topYzj,//云之捷top
206
214
  },
207
215
  header: null, //头部组件 默认为VHeader
208
216
  headerObject: {
@@ -227,6 +235,7 @@ export default {
227
235
  headerNew: headerNew,
228
236
  zgl: zgl,
229
237
  headerFLPT:headerFLPT, //福利平台header
238
+ headerYzj,//云之捷header
230
239
  },
231
240
  leftMenu: LeftMenu, // 左侧菜单 默认为LeftMenu
232
241
  leftMenuObject: {
@@ -260,6 +269,7 @@ export default {
260
269
  footerSDX: footerSDX,
261
270
  footerAYD: footerAYD,
262
271
  footerMh:footerMh
272
+ footerYzj, // footer云之捷
263
273
  },
264
274
  leftMenuList: [],
265
275
  };
@@ -0,0 +1,170 @@
1
+ <template>
2
+ <footer class="ans-footer">
3
+ <div class="auto flex-between">
4
+ <div class="ans-footer--left flex">
5
+ <dl v-for="(item,index) in footerData" :key="index">
6
+ <dt>{{item.tginfoMenuName}}</dt>
7
+ <dd v-for="(childItem,childIndex) in item.children" :key="childIndex">
8
+ <!-- <a @click="hrefHandler(childItem.menuOpcode)">{{childItem.tginfoMenuName}}</a> -->
9
+ <a v-if="childItem.flag" :href="childItem.url">{{childItem.tginfoMenuName}}</a>
10
+ <a @click="hrefHandler(childItem.menuOpcode)" v-else>{{childItem.tginfoMenuName}}</a>
11
+ </dd>
12
+ </dl>
13
+ </div>
14
+ <div class="ans-footer--mini">
15
+ <img src="../assets/dllgwap.png" alt />
16
+ <p>{{th('erTitle')}}</p>
17
+ </div>
18
+ </div>
19
+ <div class="ans-footer__record flex-between">
20
+ <p>© 2018 All rights reserved.</p>
21
+ <p>{{th('record')}}</p>
22
+ </div>
23
+ </footer>
24
+ </template>
25
+
26
+
27
+ <script>
28
+ import api from "#/api/common/index";
29
+ export default {
30
+ data() {
31
+ return {
32
+ footerData: [],
33
+ // domion:process.env.API_ROOT,
34
+ };
35
+ },
36
+ updated() {},
37
+ mounted() {
38
+ this.getFooter();
39
+ },
40
+ methods: {
41
+ th(key) {
42
+ return this.$th("common.pc.default.footerModules.footer.footerAns.", key);
43
+ },
44
+ getFooter() {
45
+ setTimeout(() => {
46
+ api.queryTginfoPageForCm().then(reg => {
47
+ if(reg&&reg.rows && reg.rows.length > 0) {
48
+ let setVal = window.localStorage.getItem('saas-proappcode')
49
+ this.tginfoCode = reg.list && reg.list.filter(els => {
50
+ return els.proappCode == setVal
51
+ })
52
+ // console.log(this.tginfoCode, 'this.tginfoCode')
53
+ if(this.tginfoCode && this.tginfoCode.length == 1) {
54
+ this.getNew()
55
+ }else{
56
+ this.$message.error('底部配置失败')
57
+ }
58
+ }
59
+ })
60
+ }, 100)
61
+ },
62
+ getNew() {
63
+ api.queryTginfoMenuForAt({
64
+ tginfoCode: this.tginfoCode[0].tginfoCode
65
+ }).then(res => {
66
+ this.footerData =
67
+ res &&
68
+ res.rows &&
69
+ res.rows.filter(el => {
70
+ return el.menuOpcode != "indexpcA";
71
+ });
72
+ this.footerData.forEach(r=>{
73
+ if(r.menuOpcode === 'commonProblems'){
74
+ r.children.push({
75
+ tginfoMenuName:'授权委托书下载',
76
+ url:'https://qjstatic.oss-cn-shanghai.aliyuncs.com/excel/powerOfAttorneyNew.docx',
77
+ flag:true
78
+ },{
79
+ tginfoMenuName:'变更函下载',
80
+ url:process.env.API_ROOT +'/电商平台变更申请审批表.doc',
81
+ flag:true
82
+ })
83
+ console.log(process.env.API_ROOT,'domiondomion')
84
+ }
85
+ })
86
+ });
87
+ },
88
+ hrefHandler(id) {
89
+ location.href = `/paas/pc-mall/index.html#/publicDetails?id=${id}`;
90
+ }
91
+ }
92
+ };
93
+ </script>
94
+
95
+ <style rel="stylesheet/scss" lang="scss" scoped >
96
+ .ans-footer {
97
+ height: 320px;
98
+ width: 100%;
99
+ background: #495770;
100
+ .auto {
101
+ margin: 0 auto 22px;
102
+ width: 1200px;
103
+ height: 225px;
104
+ }
105
+
106
+ a {
107
+ color: #fff;
108
+ }
109
+
110
+ dl {
111
+ margin: 0 128px 0 0;
112
+
113
+ dt {
114
+ font-size: 18px;
115
+ color: #fff;
116
+ height: 26px;
117
+ width: 88px;
118
+ padding-bottom: 6px;
119
+ }
120
+
121
+ dd {
122
+ font-size: 14px;
123
+ line-height: 22px;
124
+ margin-top:14px;
125
+ &:hover a {
126
+ text-decoration: underline;
127
+ }
128
+ }
129
+ }
130
+ &--left{
131
+ border-right: 1px solid #fff;
132
+ margin-top: 44px;
133
+ }
134
+ &--mini {
135
+ color: #fff;
136
+ width: 140px;
137
+ text-align: center;
138
+ margin-top: 40px;
139
+ margin-left: 130px;
140
+ img {
141
+ width: 140px;
142
+ height: 140px;
143
+ }
144
+
145
+ p {
146
+ font-size: 18px;
147
+ text-align: center;
148
+ margin-top: 15px;
149
+ font-weight: 500;
150
+ }
151
+ }
152
+
153
+ &__record {
154
+ width: 1200px;
155
+ margin: 0 auto;
156
+ border-top: 1px solid #98A3B7;
157
+ line-height: 70px;
158
+ p {
159
+ text-align: center;
160
+ font-size: 12px;
161
+ color: #fff;
162
+
163
+ }
164
+ }
165
+ }
166
+ .flex-between{
167
+ display: flex;
168
+ justify-content: space-between;
169
+ }
170
+ </style>
@@ -0,0 +1,428 @@
1
+ <template>
2
+ <header class="ans-header">
3
+ <div class="ans-header__head">
4
+ <div class="auto flex align-items--center">
5
+ <div class="ans-header__head--logo">
6
+ <a href="/">
7
+ <img :src="proappEnvLogo && proappEnvLogo.proappEnvLogo" alt />
8
+ </a>
9
+ </div>
10
+ <div class="flex flex-item1 justify-content--flex-end">
11
+ <div class="ans-header__head--search flex border-theme">
12
+ <el-select v-model="selects" placeholder="" class="selects">
13
+ <el-option label="竞价" value="0"></el-option>
14
+ <el-option label="现货" value="1"></el-option>
15
+ </el-select>
16
+ <input type="text" v-model="searchValue" placeholder="商品名称、编号搜索"/>
17
+
18
+ <button type="button" class="flex-item1 bg-theme" @click="searchBtn"><i class="el-icon-search"></i></button>
19
+ </div>
20
+ <div
21
+ class="ans-header__head--car flex justify-content--center align-items--center border-theme c-theme"
22
+ @click="auctionHandler"
23
+ >
24
+ <i style="padding-right:5px"><img src="../../../../assets/chuizi.png" alt="" width="24" height="24"></i> 我的竞价
25
+ <span v-if="auctionNum">{{auctionNum}}</span>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <div class="ans-header__nav">
31
+ <div class="auto flex">
32
+ <div class="ans-header__nav--class">
33
+
34
+ </div>
35
+ <div class="ans-header__nav--list flex-item1">
36
+
37
+ <v-nav-ans v-if="navChildren" :navChildren="navChildren"></v-nav-ans>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </header>
42
+ </template>
43
+
44
+ <script>
45
+ import api from "#/api/common/index";
46
+ import VNavAns from "#/views/pc/default/nav-modules/navAns";
47
+ export default {
48
+ components: {
49
+ VNavAns
50
+ },
51
+ data() {
52
+ return {
53
+ keywords: "",
54
+ navChildren: null,
55
+ searchValue: this.$route.query.searchParam
56
+ ? this.$route.query.searchParam
57
+ : "",
58
+ menuList: JSON.parse(window.sessionStorage.getItem("menuList"))
59
+ ? JSON.parse(window.sessionStorage.getItem("menuList")).menuList
60
+ : [],
61
+ cate: [], // 二级分类
62
+ cateCode: null, //二级选中code
63
+ cateThree: [], //三级分类
64
+ cateThreeCode: null, //三级选中code,暂时没有用
65
+ cateState: false, // 二级菜单默认false
66
+ navChildren: null,
67
+ auctionNum: null,
68
+ selects:'1'
69
+ };
70
+ },
71
+ created() {
72
+ localStorage.getItem("searchParam")
73
+ ? (this.searchValue = localStorage.getItem("searchParam"))
74
+ : "";
75
+ },
76
+ mounted() {
77
+ // 获取分类
78
+ if (this.getUserCookie) {
79
+ this.getauctionNum();
80
+ }
81
+ this.queryGoodsClassTree();
82
+ //对nav导航进行操作
83
+ this.menuList.forEach(el => {
84
+ if (el.menuDefaultClass === "nav") {
85
+ //表示是导航
86
+ this.navChildren = JSON.parse(JSON.stringify(el.children));
87
+ }
88
+ });
89
+ },
90
+
91
+ computed: {
92
+ proappEnvLogo() {
93
+ let proappEnvLogo = sessionStorage.getItem("proappEnvLayout")
94
+ ? JSON.parse(sessionStorage.getItem("proappEnvLayout"))
95
+ : null;
96
+ return proappEnvLogo;
97
+ },
98
+ searchValue() {
99
+ return this.$route.query.searchParam ? this.$route.query.searchParam : "";
100
+ },
101
+ carName() {
102
+ return sessionStorage.getItem("carName")
103
+ ? sessionStorage.getItem("carName")
104
+ : "购物车";
105
+ }
106
+ },
107
+ methods: {
108
+ cateShow() {
109
+ this.cateState = true;
110
+ },
111
+ getauctionNum() {
112
+ api.getauctionNum().then(res => {
113
+ if (res.success) {
114
+ this.auctionNum = res.dataObj;
115
+ }
116
+ });
117
+ },
118
+ cateHide() {
119
+ this.cateState = false;
120
+ },
121
+ auctionHandler() {
122
+ location.href = "/paas/order-manager/index.html#/auction";
123
+ },
124
+ queryGoodsClassTree() {
125
+ api.queryGoodsClassTree().then(res => {
126
+ console.log(res);
127
+ this.cate = res; // 二级分类
128
+ this.cateThree = res && res[0] && res[0].childList; //默认选中第一个二级分类
129
+ this.cateCode = res && res[0] && res[0].goodsClassCode; //二级选中的code
130
+ });
131
+ },
132
+ searchBtn() {
133
+ localStorage.removeItem("searchParam");
134
+
135
+ if(this.selects == 0){
136
+ if (this.$route.path == "/forecastList") {
137
+ location.href =
138
+ "/paas/pc-mall/index.html#/forecastList?searchParam=" +
139
+ this.searchValue;
140
+ } else {
141
+ // 默认是公共搜索
142
+ location.href =
143
+ "/paas/pc-mall/index.html#/noticeList?searchParam=" +
144
+ this.searchValue;
145
+ }
146
+ }else{
147
+ location.href =
148
+ "/paas/pc-mall/index.html#/searchResult?searchParam=" +
149
+ this.searchValue;
150
+ }
151
+ },
152
+ cateHandler(item) {
153
+ this.cateThree = item.childList;
154
+ this.cateCode = item.goodsClassCode; //二级选中的code
155
+ },
156
+ cateHref(item) {
157
+ if (this.$route.path == "/noticeList") {
158
+ if (location.href.indexOf("localhost") > 0) {
159
+ this.$router.push({
160
+ path: "/noticeList",
161
+ query: {
162
+ classtreeCode: item.classtreeCode,
163
+ goodsClassName: item.goodsClassName
164
+ }
165
+ });
166
+ } else {
167
+ location.href =
168
+ "/paas/pc-mall/index.html#/noticeList?classtreeCode=" +
169
+ item.classtreeCode +
170
+ "&&goodsClassName=" +
171
+ item.goodsClassName;
172
+ }
173
+ } else if (this.$route.path == "/forecastList") {
174
+ if (location.href.indexOf("localhost") > 0) {
175
+ this.$router.push({
176
+ path: "/forecastList",
177
+ query: {
178
+ classtreeCode: item.classtreeCode,
179
+ goodsClassName: item.goodsClassName
180
+ }
181
+ });
182
+ } else {
183
+ location.href =
184
+ "/paas/pc-mall/index.html#/forecastList?classtreeCode=" +
185
+ item.classtreeCode +
186
+ "&&goodsClassName=" +
187
+ item.goodsClassName;
188
+ }
189
+ } else {
190
+ if (location.href.indexOf("localhost") > 0) {
191
+ this.$router.push({
192
+ path: "/noticeList",
193
+ query: {
194
+ classtreeCode: item.classtreeCode,
195
+ goodsClassName: item.goodsClassName
196
+ }
197
+ });
198
+ } else {
199
+ location.href =
200
+ "/paas/pc-mall/index.html#/noticeList?classtreeCode=" +
201
+ item.classtreeCode +
202
+ "&&goodsClassName=" +
203
+ item.goodsClassName;
204
+ }
205
+ }
206
+ },
207
+ getUserCookie() {
208
+ let cookie = document.cookie;
209
+ let start = cookie.indexOf("saas-user-");
210
+ if (start > -1) {
211
+ let end = cookie.indexOf("=", start);
212
+ return cookie.substring(start, end);
213
+ } else {
214
+ return null;
215
+ }
216
+ }
217
+ }
218
+ };
219
+ </script>
220
+
221
+ <style lang="scss" scoped>
222
+ .ans-header {
223
+ &__head {
224
+ height: 126px;
225
+ line-height: 126px;
226
+ background: #fff;
227
+
228
+ .auto {
229
+ height: inherit;
230
+ }
231
+
232
+ &--logo {
233
+ width: 240px;
234
+
235
+ img {
236
+ display: block;
237
+ }
238
+ }
239
+
240
+ &--search {
241
+ width: 654px;
242
+ height:48px;
243
+ line-height: 48px;
244
+ border: 1px solid;
245
+ margin-right: 24px;
246
+ box-sizing: content-box;
247
+ border-right: 0;
248
+ display: flex;
249
+ align-items: center;
250
+ justify-content: space-between;
251
+ .selects{
252
+ width: 60px;
253
+ height: 100%;
254
+ border: none;
255
+ border-right: 1px solid #54b2d3;
256
+ /deep/ .el-input{
257
+ .el-input__inner{
258
+ padding-left: 10px;
259
+ padding-right: 20px;
260
+ border: none;
261
+ }
262
+ .el-input__suffix{
263
+ right: 0;
264
+ }
265
+ }
266
+ }
267
+ input {
268
+ height: 48px;
269
+ line-height: 48px;
270
+ width: 500px;
271
+ display: block;
272
+ padding-left: 16px;
273
+ font-size: 13px;
274
+ }
275
+
276
+ button {
277
+ // background: #00c0dc;
278
+ width: 100px;
279
+ height: 48px;
280
+ line-height: 48px;
281
+ font-size: 22px;
282
+ color: #fff;
283
+ cursor: pointer;
284
+ display: block;
285
+ line-height: inherit;
286
+ }
287
+ }
288
+
289
+ &--car {
290
+ width: 188px;
291
+ height: 48px;
292
+ border: 1px solid;
293
+ font-size: 14px;
294
+ line-height: 48px;
295
+ cursor: pointer;
296
+ span {
297
+ display: inline-block;
298
+ width: 20px;
299
+ height: 20px;
300
+ text-align: center;
301
+ line-height: 20px;
302
+ background: #f23a3a;
303
+ border-radius: 50%;
304
+ font-size: 12px;
305
+ color: #fff;
306
+ margin-left: 10px;
307
+ }
308
+ }
309
+ }
310
+
311
+ &__nav {
312
+ background: #fff;
313
+ height: 40px;
314
+ line-height: 40px;
315
+ border-bottom: 1px solid #383838;
316
+
317
+ &--class {
318
+ margin-right: 8px;
319
+ position: relative;
320
+ width: 180px;
321
+ // &:hover .ans-class {
322
+ // display: flex;
323
+ // display: -webkit-flex;
324
+ // }
325
+
326
+ h3 {
327
+ width: 170px;
328
+ font-size: 14px;
329
+ color: #fff;
330
+ // background: #00c0dc;
331
+ text-align: center;
332
+ }
333
+ }
334
+ }
335
+ }
336
+ .ans-class {
337
+ position: absolute;
338
+ width: 1200px;
339
+ height: 440px;
340
+ top: 40px;
341
+ left: 0;
342
+ z-index: 10;
343
+ overflow: hidden;
344
+ border-top: 1px solid #383838;
345
+ box-shadow: 3px 3px 6px #e0dcdc;
346
+
347
+ &__tab {
348
+ width: 170px;
349
+ background: #333;
350
+
351
+ ul {
352
+ li {
353
+ height: 40px;
354
+ line-height: 40px;
355
+ color: #fff;
356
+ font-size: 14px;
357
+ cursor: pointer;
358
+
359
+ p {
360
+ width: 100px;
361
+ overflow: hidden;
362
+ text-overflow: ellipsis;
363
+ white-space: nowrap;
364
+ }
365
+
366
+ span {
367
+ display: block;
368
+ width: 4px;
369
+ height: 4px;
370
+ background: rgba(153, 153, 153, 1);
371
+ margin-right: 10px;
372
+ }
373
+
374
+ &:hover,
375
+ &.active {
376
+ background: #fff;
377
+ color: #333;
378
+ }
379
+ }
380
+ }
381
+ }
382
+
383
+ &__content {
384
+ width: 100%;
385
+ background: #fff;
386
+ padding: 12px 30px;
387
+
388
+ dl {
389
+ line-height: 14px;
390
+ margin: 12px 0;
391
+
392
+ dt {
393
+ font-size: 14px;
394
+ font-weight: bold;
395
+ color: rgba(51, 51, 51, 1);
396
+ width: 76px;
397
+ margin-right: 10px;
398
+ overflow: hidden;
399
+ text-overflow: ellipsis;
400
+ white-space: nowrap;
401
+ margin: 10px 0;
402
+ }
403
+
404
+ dd {
405
+ a {
406
+ font-size: 14px;
407
+ color: #999999;
408
+ padding: 0 10px;
409
+ border-left: 1px solid #f5f5f5;
410
+ margin: 10px 0;
411
+
412
+ &:hover,
413
+ &.active {
414
+ color: #f33415;
415
+ }
416
+ }
417
+ }
418
+ }
419
+ }
420
+ }
421
+ .ans-none {
422
+ display: none;
423
+ }
424
+ .auto {
425
+ margin: 0 auto;
426
+ width: 1200px;
427
+ }
428
+ </style>
@@ -0,0 +1,283 @@
1
+ <template>
2
+ <!-- 鞍钢的顶部 -->
3
+ <div class="ans-header">
4
+ <div class="ans-header__top">
5
+ <div class="auto flex">
6
+ <div class="ans-header__top--login flex flex-item1">
7
+ <div v-if="personalInfo" class="ans-header__top--user flex">
8
+ <p
9
+ @click="userHandler"
10
+ >你好,{{personalInfo.merberCompname}}</p>
11
+ <p class="quit" @click="logout">退出登录</p>
12
+ </div>
13
+ <div v-else class="ans-header__top--noLogin flex">
14
+ <a class="reg-href" >您好,欢迎来到大宗交易平台!</a>
15
+
16
+ <a class="login-href c-theme" href="/paas/index/index.html#/loginPcA">请登录</a>
17
+ <span>|</span>
18
+ <a class="reg-href" href="/paas/index/index.html#/choice" style="padding-left:10px;color:red">注册</a>
19
+ </div>
20
+ </div>
21
+ <div class="ans-header__top--list">
22
+ <ul class="flex">
23
+ <li>
24
+ <a href="/">首页</a>
25
+ <span>|</span>
26
+ </li>
27
+ <li>
28
+ <a href="/paas/user-manager/index.html#/user">买家中心</a>
29
+ <span>|</span>
30
+ </li>
31
+ <li>
32
+ <!-- <a href='http://mem.xh.dllg56.com'>卖家中心</a> -->
33
+ <!-- <a href='http://ctpmerchant.qjdemo.qjclouds.com/paas/index/index.html#/login'>卖家中心</a> -->
34
+ <a href='https://merchant.tianhemall.com/paas/index/index.html#/login'>卖家中心</a>
35
+ <span>|</span>
36
+ </li>
37
+ <li>
38
+ <a href='/paas/pc-mall/index.html#/publicDetails?id=suggestedBrowser'>帮助中心</a>
39
+ <span>|</span>
40
+ </li>
41
+ <li>
42
+ <!-- <a href>客服热线:<span style='color:#f23a3a'> 400-9855-888</span> </a> -->
43
+ <a href>客服热线:<span style='color:#f23a3a'> 18936883562</span> </a>
44
+ <span>|</span>
45
+ </li>
46
+ <li>
47
+ <a>
48
+ <i class="iconfont icon-weixin"></i>
49
+ 微信
50
+ </a>
51
+ <!-- <span>|</span> -->
52
+ <div class="er-box">
53
+ <!-- <img src="../assets/dllgwap.png" alt /> -->
54
+ </div>
55
+ </li>
56
+ <!-- <li>
57
+ <a href="http://wpa.qq.com/msgrd?v=3&uin=631502245&site=qq&menu=yes">
58
+ <i class="iconfont icon-QQ "></i>
59
+ QQ
60
+ </a>
61
+ <div class="er-box">
62
+ <img src="../../../../assets/WeChat.png" alt />
63
+ </div>
64
+ </li> -->
65
+ </ul>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <slot></slot>
70
+ </div>
71
+ </template>
72
+
73
+ <script>
74
+ import { logout } from "#/api/login";
75
+ import { getToken, removeToken } from "#/utils/auth";
76
+ import API from "#/api/common/index.js";
77
+ import erwm from "#/assets/newerwei.png";
78
+
79
+ export default {
80
+ data() {
81
+ return {
82
+ gw: "暂无顾问",
83
+ flaggw: false,
84
+ myerwm: erwm,
85
+ show: false,
86
+ userInfor: {},
87
+ personalInfo:"",
88
+ name: ""
89
+ };
90
+ },
91
+ computed: {
92
+ isLogin() {
93
+ return this.getUserCookie() ? true : false;
94
+ }
95
+ },
96
+ mounted() {
97
+ window.addEventListener("click", this.gwhide);
98
+ this.personalInfo = JSON.parse(this.getCookie('personalInfo'))
99
+ ? JSON.parse(this.getCookie('personalInfo'))
100
+ : '';
101
+ console.log("=====personalInfo=====", this.personalInfo)
102
+ this.userInfor =
103
+ this.getUserCookie() && this.getCookieDecodeURI(this.getUserCookie())
104
+ ? JSON.parse(this.getCookieDecodeURI(this.getUserCookie()))
105
+ : {};
106
+ console.log("=====userInfor=====", this.userInfor)
107
+ },
108
+ methods: {
109
+ gwopen() {
110
+ API.getCustrelByEmployee().then(res => {
111
+ if (res) {
112
+ if (res.employeePhone) {
113
+ this.gw = res.employeePhone;
114
+ } else {
115
+ this.gw = "暂无顾问";
116
+ }
117
+ } else {
118
+ this.gw = "暂无顾问";
119
+ }
120
+ });
121
+ this.flaggw = true;
122
+ },
123
+ getCookie(name) {
124
+ // 拆分 cookie 字符串
125
+ var cookieArr = document.cookie.split(';')
126
+ // 循环遍历数组元素
127
+ for (var i = 0; i < cookieArr.length; i++) {
128
+ var cookiePair = cookieArr[i].split('=')
129
+ /* 删除 cookie 名称开头的空白并将其与给定字符串进行比较 */
130
+ if (name == cookiePair[0].trim()) {
131
+ // 解码cookie值并返回
132
+ return decodeURIComponent(cookiePair[1])
133
+ }
134
+ }
135
+ // 如果未找到,则返回null
136
+ return null
137
+ },
138
+ // 获取用户登录信息
139
+ getCookieDecodeURI(name) {
140
+ let arr,
141
+ reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
142
+ if ((arr = document.cookie.match(reg))) {
143
+ return decodeURIComponent(arr[2]);
144
+ } else {
145
+ return null;
146
+ }
147
+ },
148
+ gwhide() {
149
+ this.flaggw = false;
150
+ },
151
+ enter() {
152
+ this.show = true;
153
+ },
154
+ leave() {
155
+ this.show = false;
156
+ },
157
+ login() {
158
+ location.href = "/paas/pc-mall/index.html#/loginPc";
159
+ },
160
+ register() {
161
+ location.href = "/paas/pc-mall/index.html#/regPc";
162
+ },
163
+ userHandler() {
164
+ location.href = "/paas/user-manager/index.html#/user";
165
+ },
166
+ indexHandler() {
167
+ location.href = location.origin;
168
+ },
169
+ logout() {
170
+ // 退出
171
+ logout({}).then((res) => {
172
+ const newDomain = document.domain.split('.').splice(-2).join('.')
173
+ removeToken('LOGININFO', newDomain, '/')
174
+ removeToken('personalInfo', newDomain, '/')
175
+ removeToken('saas-user-pc', newDomain, '/')
176
+ location.reload()
177
+ })
178
+ },
179
+ getUserCookie() {
180
+ let cookie = document.cookie;
181
+ let start = cookie.indexOf("saas-user-");
182
+ if (start > -1) {
183
+ let end = cookie.indexOf("=", start);
184
+ return cookie.substring(start, end);
185
+ } else {
186
+ return null;
187
+ }
188
+ }
189
+ }
190
+ };
191
+ </script>
192
+
193
+ <style rel="stylesheet/scss" lang="scss" scoped>
194
+ @import "../assets/flex";
195
+
196
+ .ans-header {
197
+ position: relative;
198
+ &__top {
199
+ border-bottom: 1px solid #eee;
200
+ height: 36px;
201
+ line-height: 36px;
202
+ background: #fff;
203
+ font-size: 14px;
204
+ color: #253554;
205
+ &--user {
206
+ p {
207
+ margin-right: 12px;
208
+ cursor: pointer;
209
+ &:hover {
210
+ color: #f23a3a;
211
+ }
212
+ }
213
+ }
214
+ &--noLogin {
215
+ a {
216
+ margin-right: 12px;
217
+ }
218
+ }
219
+ &--login {
220
+ a {
221
+ margin-right: 12px;
222
+ cursor: pointer;
223
+ display: block;
224
+
225
+ &:hover {
226
+ color: #ee4b3f;
227
+ }
228
+ }
229
+ }
230
+
231
+ &--list {
232
+ li {
233
+ position: relative;
234
+
235
+ &:hover {
236
+ a {
237
+ color: #ee4b3f;
238
+ }
239
+
240
+ .er-box {
241
+ display: block;
242
+ }
243
+ }
244
+
245
+ .er-box {
246
+ background: url("../../../../assets/er_bg.png");
247
+ width: 56px;
248
+ height: 64px;
249
+ position: absolute;
250
+ top: 44px;
251
+ left: 0px;
252
+ display: none;
253
+ z-index: 10;
254
+
255
+ img {
256
+ width: 52px;
257
+ height: 52px;
258
+ display: block;
259
+ margin: 10px 2px 2px 2px;
260
+ }
261
+ }
262
+ }
263
+
264
+ a {
265
+ color: #253554;
266
+
267
+ i {
268
+ color: #253554;
269
+ }
270
+ }
271
+
272
+ span {
273
+ color: #d8d8d8;
274
+ margin: 0 12px;
275
+ }
276
+ }
277
+ }
278
+ }
279
+ .auto {
280
+ margin: 0 auto;
281
+ width: 1200px;
282
+ }
283
+ </style>
@@ -3,9 +3,9 @@
3
3
  <h3 class="template-title" v-if="title">
4
4
  <p>{{ title }}</p>
5
5
  </h3>
6
- <el-form v-if="temInputPack" :model="ruleForm" :rules="rules ? rules : {}" ref="ruleForm" :label-width="labelWidth ? labelWidth : '10rem'" class="demo-ruleForm">
6
+ <el-form v-if="temInput" :model="ruleForm" :rules="rules ? rules : {}" ref="ruleForm" :label-width="labelWidth ? labelWidth : '10rem'" class="demo-ruleForm">
7
7
  <el-form-item
8
- v-for="(item, index) in temInputPack"
8
+ v-for="(item, index) in temInput"
9
9
  :key="index"
10
10
  v-if="('state' in item ? item.state : true) && ('btnArray' in item ? true : 'label' in item)"
11
11
  :label="'label' in item && ('state' in item ? item.state : true) ? item.label + ':' : ''"
@@ -121,7 +121,7 @@ import tempSelect from './components/temp-select';
121
121
  import tempUpload from './components/temp-upload';
122
122
  const querystring = require('querystring');
123
123
  export default {
124
- props: ['temInputPack', 'rules', 'labelWidth', 'tabState', 'title'],
124
+ props: ['temInput', 'rules', 'labelWidth', 'tabState', 'title'],
125
125
  components: {
126
126
  tempSelect,
127
127
  tempUpload,
@@ -194,7 +194,7 @@ export default {
194
194
  setReset() {
195
195
  //数据重置
196
196
  this.$refs['ruleForm'].resetFields();
197
- this.temInputPack.forEach((el) => {
197
+ this.temInput.forEach((el) => {
198
198
  if ('label' in el) {
199
199
  if (el.type === 'cascader') {
200
200
  el.value = [];
@@ -220,7 +220,7 @@ export default {
220
220
  this.tabState.value = this.ruleForm[this.tabState.name];
221
221
  for (let i in this.tabState.dataTemplate) {
222
222
  if (i === this.tabState.value) {
223
- this.temInputPack.forEach((el) => {
223
+ this.temInput.forEach((el) => {
224
224
  if ('state' in el) {
225
225
  if (this.tabState.dataTemplate[i].includes(el.name)) {
226
226
  el.state = true; //是否显示
@@ -248,7 +248,7 @@ export default {
248
248
  if (valid) {
249
249
  if (url) {
250
250
  let data = JSON.parse(JSON.stringify(this.ruleForm)); //去除数据的双向绑定
251
- this.temInputPack.forEach((el) => {
251
+ this.temInput.forEach((el) => {
252
252
  if ('label' in el) {
253
253
  if (el.type === 'cascader') {
254
254
  if (el.value.length > 0) {
@@ -316,7 +316,7 @@ export default {
316
316
  selChange(val, item) {
317
317
  //select选中的事件
318
318
  console.log(item, '目前选中的值');
319
- console.log(this.temInputPack);
319
+ console.log(this.temInput);
320
320
  this.$emit('selChange', val, item);
321
321
  },
322
322
  },
@@ -324,8 +324,8 @@ export default {
324
324
  ruleForm: {
325
325
  get() {
326
326
  let ruleForm = {};
327
- // console.log(this.temInputPack, "ccccccccccccccc");
328
- this.temInputPack.forEach((el) => {
327
+ // console.log(this.temInput, "ccccccccccccccc");
328
+ this.temInput.forEach((el) => {
329
329
  if ('state' in el) {
330
330
  el.state && el.name ? this.$set(ruleForm, el.name, el.value) : '';
331
331
  } else {
@@ -549,7 +549,7 @@
549
549
  <template-input
550
550
  :labelWidth="dialogData.template.labelWidth"
551
551
  :rules="dialogData.template.rules"
552
- :temInputPack="dialogData.template.html"
552
+ :temInput="dialogData.template.html"
553
553
  @cancel="dialogCancel"
554
554
  @getData="getDataList"
555
555
  @handleSelect="handleSelect"