qj-common 4.3.0 → 4.3.2

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.
Files changed (229) hide show
  1. package/.babelrc +12 -12
  2. package/.eslintrc.js +25 -25
  3. package/.idea/common.iml +11 -11
  4. package/.idea/modules.xml +7 -7
  5. package/.idea/vcs.xml +5 -5
  6. package/.postcssrc.js +9 -9
  7. package/.prettierrc.js +7 -7
  8. package/.project +37 -37
  9. package/README.md +2 -2
  10. package/gulpfile.js +20 -20
  11. package/package.json +18 -18
  12. package/src/api/apimanage.js +146 -146
  13. package/src/api/common/index.js +192 -192
  14. package/src/api/login.js +160 -160
  15. package/src/api/shopFbu.js +515 -515
  16. package/src/api/upload.js +8 -8
  17. package/src/components/Bounced/index.vue +145 -145
  18. package/src/components/Breadcrumb/index.vue +71 -71
  19. package/src/components/Checkbox/index.vue +53 -53
  20. package/src/components/Hamburger/index.vue +48 -48
  21. package/src/components/Logistics/logic.vue +186 -186
  22. package/src/components/ScrollBar/index.vue +60 -60
  23. package/src/components/Sticky/index.vue +76 -76
  24. package/src/components/SvgIcon/index.vue +42 -42
  25. package/src/components/ThemePicker/index.vue +243 -243
  26. package/src/components/Tinymce/components/editorImage.vue +94 -94
  27. package/src/components/Tinymce/index.vue +166 -166
  28. package/src/components/Tinymce/plugins.js +7 -7
  29. package/src/components/Tinymce/toolbar.js +6 -6
  30. package/src/components/TreeTable/customEval.js +44 -44
  31. package/src/components/TreeTable/eval.js +29 -29
  32. package/src/components/TreeTable/index.vue +124 -124
  33. package/src/components/TreeTable/readme.md +89 -89
  34. package/src/components/TreeTableApi/customEval.js +49 -49
  35. package/src/components/TreeTableApi/eval.js +29 -29
  36. package/src/components/TreeTableApi/index.vue +124 -124
  37. package/src/components/TreeTableApi/readme.md +89 -89
  38. package/src/components/Upload/singleImage.vue +123 -123
  39. package/src/components/Upload/singleImage2.vue +118 -118
  40. package/src/components/Upload/singleImage3.vue +138 -138
  41. package/src/components/Upload/upload.vue +295 -295
  42. package/src/components/workOrderList/index.vue +158 -158
  43. package/src/dependencies.js +119 -119
  44. package/src/iconShop/demo.css +539 -539
  45. package/src/iconShop/demo_index.html +8445 -8445
  46. package/src/iconShop/iconfont.css +1451 -1451
  47. package/src/iconShop/iconfont.json +2522 -2522
  48. package/src/iconShop/iconfont.svg +1070 -1070
  49. package/src/iconfont/demo.css +539 -539
  50. package/src/iconfont/demo_index.html +5276 -5276
  51. package/src/iconfont/iconfont.css +905 -905
  52. package/src/iconfont/iconfont.json +1563 -1563
  53. package/src/iconfont/iconfont.svg +692 -692
  54. package/src/icons/index.js +9 -9
  55. package/src/lang/e.js +48 -48
  56. package/src/lang/en.js +48 -48
  57. package/src/lang/zh.js +48 -48
  58. package/src/main.js +62 -62
  59. package/src/permission.js +283 -283
  60. package/src/permissionForMall.backup.js +375 -375
  61. package/src/permissionForMall.js +375 -375
  62. package/src/preset.js +67 -67
  63. package/src/router/_import_common.js +1 -1
  64. package/src/router/_import_development.js +1 -1
  65. package/src/router/_import_production.js +1 -1
  66. package/src/store/getters.js +39 -39
  67. package/src/store/index.js +18 -18
  68. package/src/store/modules/app.js +34 -30
  69. package/src/store/modules/menu.js +82 -82
  70. package/src/store/modules/user.js +227 -227
  71. package/src/styles/element-ui.scss +1368 -1368
  72. package/src/styles/index.scss +166 -166
  73. package/src/styles/mixin.scss +27 -27
  74. package/src/styles/pc-ui.scss +1031 -1031
  75. package/src/styles/scrollBar.scss +21 -21
  76. package/src/styles/sidebar.scss +123 -123
  77. package/src/styles/transition.scss +32 -32
  78. package/src/styles/variables.scss +44 -44
  79. package/src/styles/wf-ui.scss +86 -86
  80. package/src/utils/auth.js +57 -57
  81. package/src/utils/dom.js +12 -12
  82. package/src/utils/getQueryString.js +5 -5
  83. package/src/utils/import.js +5 -5
  84. package/src/utils/index.js +355 -355
  85. package/src/utils/interceptor.js +34 -34
  86. package/src/utils/menu.js +116 -116
  87. package/src/utils/proapp.js +35 -35
  88. package/src/utils/query.js +26 -26
  89. package/src/utils/request.js +366 -366
  90. package/src/utils/routeMapping.js +39 -39
  91. package/src/utils/routeMapping.json +310 -310
  92. package/src/utils/utils.js +84 -84
  93. package/src/utils/validate.js +102 -102
  94. package/src/views/404.vue +72 -72
  95. package/src/views/Layout.vue +106 -106
  96. package/src/views/imgSwiper/index.vue +34 -34
  97. package/src/views/layout/Layout.vue +181 -170
  98. package/src/views/layout/components/AppMain.vue +20 -20
  99. package/src/views/layout/components/Footer.vue +22 -22
  100. package/src/views/layout/components/LeftNavbar.vue +318 -310
  101. package/src/views/layout/components/NavMenu.vue +15 -15
  102. package/src/views/layout/components/Navbar.vue +664 -661
  103. package/src/views/layout/components/Sidebar/SidebarItem.vue +116 -113
  104. package/src/views/layout/components/Sidebar/index.vue +203 -193
  105. package/src/views/layout/components/index.js +19 -19
  106. package/src/views/layout/theme/darkBlue/Layout.vue +140 -140
  107. package/src/views/layout/theme/darkBlue/components/AppMain.vue +38 -38
  108. package/src/views/layout/theme/darkBlue/components/Footer.vue +147 -147
  109. package/src/views/layout/theme/darkBlue/components/LeftNavbar(/345/261/225/347/244/272/345/205/250/351/203/250/350/217/234/345/215/225).vue +448 -448
  110. package/src/views/layout/theme/darkBlue/components/LeftNavbar.3.vue +191 -191
  111. package/src/views/layout/theme/darkBlue/components/LeftNavbar.vue +466 -466
  112. package/src/views/layout/theme/darkBlue/components/Navbar.vue +200 -200
  113. package/src/views/layout/theme/darkBlue/components/Sidebar/SidebarItem.vue +71 -71
  114. package/src/views/layout/theme/darkBlue/components/Sidebar/index.vue +49 -49
  115. package/src/views/layout/theme/darkBlue/components/index.js +15 -15
  116. package/src/views/layout-default/Layout.vue +134 -134
  117. package/src/views/layout-default/components/AppMain.vue +19 -19
  118. package/src/views/layout-default/components/Footer.vue +22 -22
  119. package/src/views/layout-default/components/LeftNavbar.vue +164 -164
  120. package/src/views/layout-default/components/Navbar.vue +295 -295
  121. package/src/views/layout-default/components/Sidebar/SidebarItem.vue +67 -67
  122. package/src/views/layout-default/components/Sidebar/index.vue +59 -59
  123. package/src/views/layout-default/components/index.js +4 -4
  124. package/src/views/layout-default/theme/darkBlue/Layout.vue +140 -140
  125. package/src/views/layout-default/theme/darkBlue/components/AppMain.vue +38 -38
  126. package/src/views/layout-default/theme/darkBlue/components/Footer.vue +147 -147
  127. package/src/views/layout-default/theme/darkBlue/components/LeftNavbar.vue +465 -465
  128. package/src/views/layout-default/theme/darkBlue/components/Navbar.vue +200 -200
  129. package/src/views/layout-default/theme/darkBlue/components/Sidebar/SidebarItem.vue +69 -69
  130. package/src/views/layout-default/theme/darkBlue/components/Sidebar/index.vue +49 -49
  131. package/src/views/layout-default/theme/darkBlue/components/index.js +15 -15
  132. package/src/views/pc/Internationalization.vue +80 -80
  133. package/src/views/pc/default/Layout.vue +442 -442
  134. package/src/views/pc/default/LayoutCard.vue +424 -424
  135. package/src/views/pc/default/assets/flex.scss +99 -99
  136. package/src/views/pc/default/footer-modules/DgFooter/index.vue +179 -179
  137. package/src/views/pc/default/footer-modules/DgFooter/indexSDX.vue +187 -187
  138. package/src/views/pc/default/footer-modules/footer.vue +171 -171
  139. package/src/views/pc/default/footer-modules/footerAns.vue +167 -167
  140. package/src/views/pc/default/footer-modules/footerBulk.vue +169 -169
  141. package/src/views/pc/default/footer-modules/footerDM.vue +254 -254
  142. package/src/views/pc/default/footer-modules/footerDefault.vue +267 -267
  143. package/src/views/pc/default/footer-modules/footerDefaultA.vue +270 -270
  144. package/src/views/pc/default/footer-modules/footerDefaultNew.vue +201 -201
  145. package/src/views/pc/default/footer-modules/footerHDB.vue +153 -153
  146. package/src/views/pc/default/footer-modules/footerHy.vue +63 -63
  147. package/src/views/pc/default/footer-modules/footerKYW.vue +163 -163
  148. package/src/views/pc/default/footer-modules/footerMh.vue +30 -30
  149. package/src/views/pc/default/footer-modules/footerNew.vue +116 -116
  150. package/src/views/pc/default/footer-modules/footer_yzj.vue +169 -169
  151. package/src/views/pc/default/footer-modules/footerayd.vue +85 -85
  152. package/src/views/pc/default/footer-modules/ymFooter.vue +154 -154
  153. package/src/views/pc/default/footer-modules/zgl.vue +250 -250
  154. package/src/views/pc/default/header-modules/DgHeader/Logo.vue +57 -57
  155. package/src/views/pc/default/header-modules/DgHeader/Search.vue +135 -135
  156. package/src/views/pc/default/header-modules/DgHeader/Settleup.vue +46 -46
  157. package/src/views/pc/default/header-modules/DgHeader/index.vue +38 -38
  158. package/src/views/pc/default/header-modules/active.vue +177 -177
  159. package/src/views/pc/default/header-modules/header.vue +97 -97
  160. package/src/views/pc/default/header-modules/headerA.vue +142 -142
  161. package/src/views/pc/default/header-modules/headerFLPT.vue +157 -157
  162. package/src/views/pc/default/header-modules/headerMh.vue +187 -187
  163. package/src/views/pc/default/header-modules/headerNew.vue +121 -121
  164. package/src/views/pc/default/header-modules/headerSDX.vue +304 -304
  165. package/src/views/pc/default/header-modules/headerStyle2.vue +173 -173
  166. package/src/views/pc/default/header-modules/headerStyle3.vue +190 -190
  167. package/src/views/pc/default/header-modules/headerStyle4.vue +163 -163
  168. package/src/views/pc/default/header-modules/headerStyleAns.vue +400 -400
  169. package/src/views/pc/default/header-modules/headerStyleBulk.vue +427 -427
  170. package/src/views/pc/default/header-modules/headerStyleDefalut.vue +209 -209
  171. package/src/views/pc/default/header-modules/headerStyleKYW.vue +435 -435
  172. package/src/views/pc/default/header-modules/headerStyle_yzj.vue +427 -427
  173. package/src/views/pc/default/header-modules/headerayd.vue +187 -187
  174. package/src/views/pc/default/header-modules/index.vue +466 -466
  175. package/src/views/pc/default/header-modules/ymHeader.vue +292 -292
  176. package/src/views/pc/default/header-modules/ysHeader.vue +248 -248
  177. package/src/views/pc/default/header-modules/zgl.vue +855 -855
  178. package/src/views/pc/default/leftMenu-modules/leftMenu-logo.vue +194 -194
  179. package/src/views/pc/default/leftMenu-modules/leftMenu-style2.vue +206 -206
  180. package/src/views/pc/default/leftMenu-modules/leftMenu-style3.vue +207 -207
  181. package/src/views/pc/default/leftMenu-modules/leftMenu-style4.vue +192 -192
  182. package/src/views/pc/default/leftMenu-modules/leftMenu.vue +183 -183
  183. package/src/views/pc/default/leftMenu-modules/leftMenuDefault.vue +212 -212
  184. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultEn.vue +214 -214
  185. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultFLPT.vue +220 -220
  186. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultayd.vue +220 -220
  187. package/src/views/pc/default/nav-modules/nav.vue +52 -52
  188. package/src/views/pc/default/nav-modules/navAns.vue +60 -60
  189. package/src/views/pc/default/nav-modules/navBulk.vue +60 -60
  190. package/src/views/pc/default/top-modules/DgTopShortcut/index.vue +177 -177
  191. package/src/views/pc/default/top-modules/Toplg.vue +280 -280
  192. package/src/views/pc/default/top-modules/topA.vue +136 -136
  193. package/src/views/pc/default/top-modules/topAns.vue +261 -261
  194. package/src/views/pc/default/top-modules/topAns_yzj.vue +282 -282
  195. package/src/views/pc/default/top-modules/topBar.vue +304 -304
  196. package/src/views/pc/default/top-modules/topBulk.vue +280 -280
  197. package/src/views/pc/default/top-modules/topDefault.vue +244 -244
  198. package/src/views/pc/default/top-modules/topDefaultDM.vue +197 -197
  199. package/src/views/pc/default/top-modules/topDefaultNew.vue +271 -271
  200. package/src/views/pc/default/top-modules/topFLPT.vue +197 -197
  201. package/src/views/pc/default/top-modules/topHDB.vue +479 -479
  202. package/src/views/pc/default/top-modules/topKYW.vue +258 -258
  203. package/src/views/pc/default/top-modules/topMh.vue +174 -174
  204. package/src/views/pc/default/top-modules/topNew.vue +97 -97
  205. package/src/views/pc/default/top-modules/topSDX.vue +298 -298
  206. package/src/views/pc/default/top-modules/topSimple.vue +247 -247
  207. package/src/views/pc/default/top-modules/topSimpleHy.vue +256 -256
  208. package/src/views/pc/default/top-modules/topUcc.vue +264 -264
  209. package/src/views/pc/default/top-modules/topayd.vue +170 -170
  210. package/src/views/pc/default/top-modules/ymTop.vue +299 -299
  211. package/src/views/pc/default/top-modules/zgltop.vue +499 -499
  212. package/src/views/routerView.vue +9 -9
  213. package/src/views/templates/components/temp-select.vue +80 -80
  214. package/src/views/templates/components/temp-upload.vue +233 -233
  215. package/src/views/templates/readme.md +2 -2
  216. package/src/views/templates/templateInput.vue +421 -421
  217. package/src/views/templates/templateReadme.html +588 -588
  218. package/src/views/templates/templateReadme.md +619 -619
  219. package/src/views/templates/templateTable.vue +2243 -2243
  220. package/src/views/templates/templateTableData.vue +1883 -1883
  221. package/src/views/templates/templateUi/templateTableContent.vue +187 -187
  222. package/src/views/treeTemplate/index.vue +559 -559
  223. package/src/views/treeTemplate/treeTemplate.md +274 -274
  224. package/src/views/uploadDialog/index copy.vue +352 -352
  225. package/src/views/uploadDialog/index.vue +558 -558
  226. package/src/views/uploadDialog/indexOlay.vue +582 -582
  227. package/src/views/uploadDialog/indexPM.vue +578 -578
  228. package/src/views/uploadDialog/indexUpload.vue +543 -543
  229. package/src/views/uploadDialog/readme.md +45 -45
@@ -1,436 +1,436 @@
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
- <input type="text" v-model="searchValue" placeholder="输入关键词" />
13
- <button type="button" class="flex-item1 bg-theme" @click="searchBtn">搜索</button>
14
- </div>
15
- <div
16
- class="ans-header__head--car flex justify-content--center align-items--center"
17
- @click="auctionHandler"
18
- >
19
- 我的竞价
20
- <span v-if="auctionNum">{{auctionNum}}</span>
21
- </div>
22
- </div>
23
- </div>
24
- </div>
25
- <div class="ans-header__nav">
26
- <div class="auto flex">
27
- <div @mouseenter="cateShow" @mouseleave="cateHide" class="ans-header__nav--class">
28
- <h3 class="bg-theme">产品分类</h3>
29
- <div class="ans-class flex" v-if="cateState">
30
- <div class="ans-class__tab">
31
- <ul>
32
- <!-- 二级 -->
33
- <li
34
- class="flex justify-content--center align-items--center"
35
- v-for="(item,index) in cate"
36
- :key="index"
37
- :class="[item.goodsClassCode === cateCode ? 'active':'']"
38
- @mouseover="cateHandler(item)"
39
- >
40
- <span></span>
41
- <p>{{item.goodsClassName}}</p>
42
- </li>
43
- </ul>
44
- </div>
45
- <div class="ans-class__content flex-item1">
46
- <!-- 三级 -->
47
- <div class="ans-class__content--item">
48
- <dl class="flex" v-for="(item,index) in cateThree" :key="index">
49
- <dt>{{item.goodsClassName}}</dt>
50
- <dd class="flex-item1 flex flex-wrap--wrap">
51
- <a
52
- v-for="(itemT,indexT) in item.childList"
53
- :key="indexT"
54
- @click="cateHref(itemT)"
55
- >{{itemT.goodsClassName}}</a>
56
- </dd>
57
- </dl>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- <div class="ans-header__nav--list flex-item1">
63
-
64
- <v-nav-ans v-if="navChildren" :navChildren="navChildren"></v-nav-ans>
65
- </div>
66
- </div>
67
- </div>
68
- </header>
69
- </template>
70
-
71
- <script>
72
- import api from "#/api/common/index";
73
- import VNavAns from "../nav-modules/navAns";
74
- export default {
75
- components: {
76
- VNavAns
77
- },
78
- data() {
79
- return {
80
- keywords: "",
81
- navChildren: null,
82
- searchValue: this.$route.query.searchParam
83
- ? this.$route.query.searchParam
84
- : "",
85
- menuList: JSON.parse(window.sessionStorage.getItem("menuList"))
86
- ? JSON.parse(window.sessionStorage.getItem("menuList")).menuList
87
- : [],
88
- cate: [], // 二级分类
89
- cateCode: null, //二级选中code
90
- cateThree: [], //三级分类
91
- cateThreeCode: null, //三级选中code,暂时没有用
92
- cateState: false, // 二级菜单默认false
93
- navChildren: null,
94
- auctionNum: null
95
- };
96
- },
97
- created() {
98
- localStorage.getItem("searchParam")
99
- ? (this.searchValue = localStorage.getItem("searchParam"))
100
- : "";
101
- let interval = setInterval(() => {
102
- let proappEnvLogo1 = JSON.parse(window.sessionStorage.getItem("proappEnvLayout"));
103
- if (proappEnvLogo1) {
104
- this.proappEnvLogo = proappEnvLogo1;
105
- clearInterval(interval)
106
- }
107
- }, 400);
108
- },
109
- mounted() {
110
- // 获取分类
111
- if (this.getUserCookie) {
112
- this.getauctionNum();
113
- }
114
- this.queryGoodsClassTree();
115
- //对nav导航进行操作
116
- this.menuList.forEach(el => {
117
- if (el.menuDefaultClass === "nav") {
118
- //表示是导航
119
- this.navChildren = JSON.parse(JSON.stringify(el.children));
120
- }
121
- });
122
- },
123
-
124
- computed: {
125
- proappEnvLogo() {
126
- let proappEnvLogo = sessionStorage.getItem("proappEnvLayout")
127
- ? JSON.parse(sessionStorage.getItem("proappEnvLayout"))
128
- : null;
129
- return proappEnvLogo;
130
- },
131
- searchValue() {
132
- return this.$route.query.searchParam ? this.$route.query.searchParam : "";
133
- },
134
- carName() {
135
- return sessionStorage.getItem("carName")
136
- ? sessionStorage.getItem("carName")
137
- : "购物车";
138
- }
139
- },
140
- methods: {
141
- cateShow() {
142
- this.cateState = true;
143
- },
144
- getauctionNum() {
145
- api.getauctionNum().then(res => {
146
- if (res.success) {
147
- this.auctionNum = res.dataObj;
148
- }
149
- });
150
- },
151
- cateHide() {
152
- this.cateState = false;
153
- },
154
- auctionHandler() {
155
- location.href = "/paas/order-manager/index.html#/auction";
156
- },
157
- queryGoodsClassTree() {
158
- api.queryGoodsClassTree().then(res => {
159
- console.log(res);
160
- this.cate = res; // 二级分类
161
- this.cateThree = res && res[0] && res[0].childList; //默认选中第一个二级分类
162
- this.cateCode = res && res[0] && res[0].goodsClassCode; //二级选中的code
163
- });
164
- },
165
- searchBtn() {
166
- localStorage.removeItem("searchParam");
167
-
168
- if (this.$route.path == "/forecastList") {
169
- location.href =
170
- "/paas/pc-mall/index.html#/forecastList?searchParam=" +
171
- this.searchValue;
172
- } else {
173
- // 默认是公共搜索
174
- location.href =
175
- "/paas/pc-mall/index.html#/noticeList?searchParam=" +
176
- this.searchValue;
177
- }
178
- },
179
- cateHandler(item) {
180
- this.cateThree = item.childList;
181
- this.cateCode = item.goodsClassCode; //二级选中的code
182
- },
183
- cateHref(item) {
184
- if (this.$route.path == "/noticeList") {
185
- if (location.href.indexOf("localhost") > 0) {
186
- this.$router.push({
187
- path: "/noticeList",
188
- query: {
189
- classtreeCode: item.classtreeCode,
190
- goodsClassName: item.goodsClassName
191
- }
192
- });
193
- } else {
194
- location.href =
195
- "/paas/pc-mall/index.html#/noticeList?classtreeCode=" +
196
- item.classtreeCode +
197
- "&&goodsClassName=" +
198
- item.goodsClassName;
199
- }
200
- } else if (this.$route.path == "/forecastList") {
201
- if (location.href.indexOf("localhost") > 0) {
202
- this.$router.push({
203
- path: "/forecastList",
204
- query: {
205
- classtreeCode: item.classtreeCode,
206
- goodsClassName: item.goodsClassName
207
- }
208
- });
209
- } else {
210
- location.href =
211
- "/paas/pc-mall/index.html#/forecastList?classtreeCode=" +
212
- item.classtreeCode +
213
- "&&goodsClassName=" +
214
- item.goodsClassName;
215
- }
216
- } else {
217
- if (location.href.indexOf("localhost") > 0) {
218
- this.$router.push({
219
- path: "/noticeList",
220
- query: {
221
- classtreeCode: item.classtreeCode,
222
- goodsClassName: item.goodsClassName
223
- }
224
- });
225
- } else {
226
- location.href =
227
- "/paas/pc-mall/index.html#/noticeList?classtreeCode=" +
228
- item.classtreeCode +
229
- "&&goodsClassName=" +
230
- item.goodsClassName;
231
- }
232
- }
233
- },
234
- getUserCookie() {
235
- let cookie = document.cookie;
236
- let start = cookie.indexOf("saas-user-");
237
- if (start > -1) {
238
- let end = cookie.indexOf("=", start);
239
- return cookie.substring(start, end);
240
- } else {
241
- return null;
242
- }
243
- }
244
- }
245
- };
246
- </script>
247
-
248
- <style lang="scss" scoped>
249
- .ans-header {
250
- &__head {
251
- height: 126px;
252
- line-height: 126px;
253
- background: #fff;
254
-
255
- .auto {
256
- height: inherit;
257
- }
258
-
259
- &--logo {
260
- width: 170px;
261
- text-align:center;
262
- img {
263
- width: 102px;
264
- }
265
- }
266
-
267
- &--search {
268
- width: 566px;
269
- height: 34px;
270
- line-height: 34px;
271
- border: 2px solid;
272
- margin-right: 20px;
273
- box-sizing: content-box;
274
-
275
- input {
276
- height: 34px;
277
- line-height: 34px;
278
- width: 450px;
279
- display: block;
280
- padding: 0 5px;
281
- font-size: 13px;
282
- }
283
-
284
- button {
285
- // background: #00c0dc;
286
- font-size: 16px;
287
- color: #fff;
288
- cursor: pointer;
289
- display: block;
290
- line-height: inherit;
291
- }
292
- }
293
-
294
- &--car {
295
- width: 124px;
296
- height: 36px;
297
- background: #f8f8f8;
298
- border: 1px solid #e1e1e1;
299
- color: #f23a3a;
300
- font-size: 14px;
301
- line-height: 36px;
302
- cursor: pointer;
303
-
304
- span {
305
- display: inline-block;
306
- width: 20px;
307
- height: 20px;
308
- text-align: center;
309
- line-height: 20px;
310
- background: #f23a3a;
311
- border-radius: 50%;
312
- font-size: 12px;
313
- color: #fff;
314
- margin-left: 10px;
315
- }
316
- }
317
- }
318
-
319
- &__nav {
320
- background: #fff;
321
- height: 40px;
322
- line-height: 40px;
323
- border-bottom: 1px solid #383838;
324
-
325
- &--class {
326
- margin-right: 8px;
327
- position: relative;
328
-
329
- // &:hover .ans-class {
330
- // display: flex;
331
- // display: -webkit-flex;
332
- // }
333
-
334
- h3 {
335
- width: 170px;
336
- font-size: 14px;
337
- color: #fff;
338
- // background: #00c0dc;
339
- text-align: center;
340
- }
341
- }
342
- }
343
- }
344
- .ans-class {
345
- position: absolute;
346
- width: 1200px;
347
- height: 440px;
348
- top: 40px;
349
- left: 0;
350
- z-index: 10;
351
- overflow: hidden;
352
- border-top: 1px solid #383838;
353
- box-shadow: 3px 3px 6px #e0dcdc;
354
-
355
- &__tab {
356
- width: 170px;
357
- background: #333;
358
-
359
- ul {
360
- li {
361
- height: 40px;
362
- line-height: 40px;
363
- color: #fff;
364
- font-size: 14px;
365
- cursor: pointer;
366
-
367
- p {
368
- width: 100px;
369
- overflow: hidden;
370
- text-overflow: ellipsis;
371
- white-space: nowrap;
372
- }
373
-
374
- span {
375
- display: block;
376
- width: 4px;
377
- height: 4px;
378
- background: rgba(153, 153, 153, 1);
379
- margin-right: 10px;
380
- }
381
-
382
- &:hover,
383
- &.active {
384
- background: #fff;
385
- color: #333;
386
- }
387
- }
388
- }
389
- }
390
-
391
- &__content {
392
- width: 100%;
393
- background: #fff;
394
- padding: 12px 30px;
395
-
396
- dl {
397
- line-height: 14px;
398
- margin: 12px 0;
399
-
400
- dt {
401
- font-size: 14px;
402
- font-weight: bold;
403
- color: rgba(51, 51, 51, 1);
404
- width: 76px;
405
- margin-right: 10px;
406
- overflow: hidden;
407
- text-overflow: ellipsis;
408
- white-space: nowrap;
409
- margin: 10px 0;
410
- }
411
-
412
- dd {
413
- a {
414
- font-size: 14px;
415
- color: #999999;
416
- padding: 0 10px;
417
- border-left: 1px solid #f5f5f5;
418
- margin: 10px 0;
419
-
420
- &:hover,
421
- &.active {
422
- color: #f33415;
423
- }
424
- }
425
- }
426
- }
427
- }
428
- }
429
- .ans-none {
430
- display: none;
431
- }
432
- .auto {
433
- margin: 0 auto;
434
- width: 1200px;
435
- }
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
+ <input type="text" v-model="searchValue" placeholder="输入关键词" />
13
+ <button type="button" class="flex-item1 bg-theme" @click="searchBtn">搜索</button>
14
+ </div>
15
+ <div
16
+ class="ans-header__head--car flex justify-content--center align-items--center"
17
+ @click="auctionHandler"
18
+ >
19
+ 我的竞价
20
+ <span v-if="auctionNum">{{auctionNum}}</span>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ <div class="ans-header__nav">
26
+ <div class="auto flex">
27
+ <div @mouseenter="cateShow" @mouseleave="cateHide" class="ans-header__nav--class">
28
+ <h3 class="bg-theme">产品分类</h3>
29
+ <div class="ans-class flex" v-if="cateState">
30
+ <div class="ans-class__tab">
31
+ <ul>
32
+ <!-- 二级 -->
33
+ <li
34
+ class="flex justify-content--center align-items--center"
35
+ v-for="(item,index) in cate"
36
+ :key="index"
37
+ :class="[item.goodsClassCode === cateCode ? 'active':'']"
38
+ @mouseover="cateHandler(item)"
39
+ >
40
+ <span></span>
41
+ <p>{{item.goodsClassName}}</p>
42
+ </li>
43
+ </ul>
44
+ </div>
45
+ <div class="ans-class__content flex-item1">
46
+ <!-- 三级 -->
47
+ <div class="ans-class__content--item">
48
+ <dl class="flex" v-for="(item,index) in cateThree" :key="index">
49
+ <dt>{{item.goodsClassName}}</dt>
50
+ <dd class="flex-item1 flex flex-wrap--wrap">
51
+ <a
52
+ v-for="(itemT,indexT) in item.childList"
53
+ :key="indexT"
54
+ @click="cateHref(itemT)"
55
+ >{{itemT.goodsClassName}}</a>
56
+ </dd>
57
+ </dl>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ <div class="ans-header__nav--list flex-item1">
63
+
64
+ <v-nav-ans v-if="navChildren" :navChildren="navChildren"></v-nav-ans>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </header>
69
+ </template>
70
+
71
+ <script>
72
+ import api from "#/api/common/index";
73
+ import VNavAns from "../nav-modules/navAns";
74
+ export default {
75
+ components: {
76
+ VNavAns
77
+ },
78
+ data() {
79
+ return {
80
+ keywords: "",
81
+ navChildren: null,
82
+ searchValue: this.$route.query.searchParam
83
+ ? this.$route.query.searchParam
84
+ : "",
85
+ menuList: JSON.parse(window.sessionStorage.getItem("menuList"))
86
+ ? JSON.parse(window.sessionStorage.getItem("menuList")).menuList
87
+ : [],
88
+ cate: [], // 二级分类
89
+ cateCode: null, //二级选中code
90
+ cateThree: [], //三级分类
91
+ cateThreeCode: null, //三级选中code,暂时没有用
92
+ cateState: false, // 二级菜单默认false
93
+ navChildren: null,
94
+ auctionNum: null
95
+ };
96
+ },
97
+ created() {
98
+ localStorage.getItem("searchParam")
99
+ ? (this.searchValue = localStorage.getItem("searchParam"))
100
+ : "";
101
+ let interval = setInterval(() => {
102
+ let proappEnvLogo1 = JSON.parse(window.sessionStorage.getItem("proappEnvLayout"));
103
+ if (proappEnvLogo1) {
104
+ this.proappEnvLogo = proappEnvLogo1;
105
+ clearInterval(interval)
106
+ }
107
+ }, 400);
108
+ },
109
+ mounted() {
110
+ // 获取分类
111
+ if (this.getUserCookie) {
112
+ this.getauctionNum();
113
+ }
114
+ this.queryGoodsClassTree();
115
+ //对nav导航进行操作
116
+ this.menuList.forEach(el => {
117
+ if (el.menuDefaultClass === "nav") {
118
+ //表示是导航
119
+ this.navChildren = JSON.parse(JSON.stringify(el.children));
120
+ }
121
+ });
122
+ },
123
+
124
+ computed: {
125
+ proappEnvLogo() {
126
+ let proappEnvLogo = sessionStorage.getItem("proappEnvLayout")
127
+ ? JSON.parse(sessionStorage.getItem("proappEnvLayout"))
128
+ : null;
129
+ return proappEnvLogo;
130
+ },
131
+ searchValue() {
132
+ return this.$route.query.searchParam ? this.$route.query.searchParam : "";
133
+ },
134
+ carName() {
135
+ return sessionStorage.getItem("carName")
136
+ ? sessionStorage.getItem("carName")
137
+ : "购物车";
138
+ }
139
+ },
140
+ methods: {
141
+ cateShow() {
142
+ this.cateState = true;
143
+ },
144
+ getauctionNum() {
145
+ api.getauctionNum().then(res => {
146
+ if (res.success) {
147
+ this.auctionNum = res.dataObj;
148
+ }
149
+ });
150
+ },
151
+ cateHide() {
152
+ this.cateState = false;
153
+ },
154
+ auctionHandler() {
155
+ location.href = "/paas/order-manager/index.html#/auction";
156
+ },
157
+ queryGoodsClassTree() {
158
+ api.queryGoodsClassTree().then(res => {
159
+ console.log(res);
160
+ this.cate = res; // 二级分类
161
+ this.cateThree = res && res[0] && res[0].childList; //默认选中第一个二级分类
162
+ this.cateCode = res && res[0] && res[0].goodsClassCode; //二级选中的code
163
+ });
164
+ },
165
+ searchBtn() {
166
+ localStorage.removeItem("searchParam");
167
+
168
+ if (this.$route.path == "/forecastList") {
169
+ location.href =
170
+ "/paas/pc-mall/index.html#/forecastList?searchParam=" +
171
+ this.searchValue;
172
+ } else {
173
+ // 默认是公共搜索
174
+ location.href =
175
+ "/paas/pc-mall/index.html#/noticeList?searchParam=" +
176
+ this.searchValue;
177
+ }
178
+ },
179
+ cateHandler(item) {
180
+ this.cateThree = item.childList;
181
+ this.cateCode = item.goodsClassCode; //二级选中的code
182
+ },
183
+ cateHref(item) {
184
+ if (this.$route.path == "/noticeList") {
185
+ if (location.href.indexOf("localhost") > 0) {
186
+ this.$router.push({
187
+ path: "/noticeList",
188
+ query: {
189
+ classtreeCode: item.classtreeCode,
190
+ goodsClassName: item.goodsClassName
191
+ }
192
+ });
193
+ } else {
194
+ location.href =
195
+ "/paas/pc-mall/index.html#/noticeList?classtreeCode=" +
196
+ item.classtreeCode +
197
+ "&&goodsClassName=" +
198
+ item.goodsClassName;
199
+ }
200
+ } else if (this.$route.path == "/forecastList") {
201
+ if (location.href.indexOf("localhost") > 0) {
202
+ this.$router.push({
203
+ path: "/forecastList",
204
+ query: {
205
+ classtreeCode: item.classtreeCode,
206
+ goodsClassName: item.goodsClassName
207
+ }
208
+ });
209
+ } else {
210
+ location.href =
211
+ "/paas/pc-mall/index.html#/forecastList?classtreeCode=" +
212
+ item.classtreeCode +
213
+ "&&goodsClassName=" +
214
+ item.goodsClassName;
215
+ }
216
+ } else {
217
+ if (location.href.indexOf("localhost") > 0) {
218
+ this.$router.push({
219
+ path: "/noticeList",
220
+ query: {
221
+ classtreeCode: item.classtreeCode,
222
+ goodsClassName: item.goodsClassName
223
+ }
224
+ });
225
+ } else {
226
+ location.href =
227
+ "/paas/pc-mall/index.html#/noticeList?classtreeCode=" +
228
+ item.classtreeCode +
229
+ "&&goodsClassName=" +
230
+ item.goodsClassName;
231
+ }
232
+ }
233
+ },
234
+ getUserCookie() {
235
+ let cookie = document.cookie;
236
+ let start = cookie.indexOf("saas-user-");
237
+ if (start > -1) {
238
+ let end = cookie.indexOf("=", start);
239
+ return cookie.substring(start, end);
240
+ } else {
241
+ return null;
242
+ }
243
+ }
244
+ }
245
+ };
246
+ </script>
247
+
248
+ <style lang="scss" scoped>
249
+ .ans-header {
250
+ &__head {
251
+ height: 126px;
252
+ line-height: 126px;
253
+ background: #fff;
254
+
255
+ .auto {
256
+ height: inherit;
257
+ }
258
+
259
+ &--logo {
260
+ width: 170px;
261
+ text-align:center;
262
+ img {
263
+ width: 102px;
264
+ }
265
+ }
266
+
267
+ &--search {
268
+ width: 566px;
269
+ height: 34px;
270
+ line-height: 34px;
271
+ border: 2px solid;
272
+ margin-right: 20px;
273
+ box-sizing: content-box;
274
+
275
+ input {
276
+ height: 34px;
277
+ line-height: 34px;
278
+ width: 450px;
279
+ display: block;
280
+ padding: 0 5px;
281
+ font-size: 13px;
282
+ }
283
+
284
+ button {
285
+ // background: #00c0dc;
286
+ font-size: 16px;
287
+ color: #fff;
288
+ cursor: pointer;
289
+ display: block;
290
+ line-height: inherit;
291
+ }
292
+ }
293
+
294
+ &--car {
295
+ width: 124px;
296
+ height: 36px;
297
+ background: #f8f8f8;
298
+ border: 1px solid #e1e1e1;
299
+ color: #f23a3a;
300
+ font-size: 14px;
301
+ line-height: 36px;
302
+ cursor: pointer;
303
+
304
+ span {
305
+ display: inline-block;
306
+ width: 20px;
307
+ height: 20px;
308
+ text-align: center;
309
+ line-height: 20px;
310
+ background: #f23a3a;
311
+ border-radius: 50%;
312
+ font-size: 12px;
313
+ color: #fff;
314
+ margin-left: 10px;
315
+ }
316
+ }
317
+ }
318
+
319
+ &__nav {
320
+ background: #fff;
321
+ height: 40px;
322
+ line-height: 40px;
323
+ border-bottom: 1px solid #383838;
324
+
325
+ &--class {
326
+ margin-right: 8px;
327
+ position: relative;
328
+
329
+ // &:hover .ans-class {
330
+ // display: flex;
331
+ // display: -webkit-flex;
332
+ // }
333
+
334
+ h3 {
335
+ width: 170px;
336
+ font-size: 14px;
337
+ color: #fff;
338
+ // background: #00c0dc;
339
+ text-align: center;
340
+ }
341
+ }
342
+ }
343
+ }
344
+ .ans-class {
345
+ position: absolute;
346
+ width: 1200px;
347
+ height: 440px;
348
+ top: 40px;
349
+ left: 0;
350
+ z-index: 10;
351
+ overflow: hidden;
352
+ border-top: 1px solid #383838;
353
+ box-shadow: 3px 3px 6px #e0dcdc;
354
+
355
+ &__tab {
356
+ width: 170px;
357
+ background: #333;
358
+
359
+ ul {
360
+ li {
361
+ height: 40px;
362
+ line-height: 40px;
363
+ color: #fff;
364
+ font-size: 14px;
365
+ cursor: pointer;
366
+
367
+ p {
368
+ width: 100px;
369
+ overflow: hidden;
370
+ text-overflow: ellipsis;
371
+ white-space: nowrap;
372
+ }
373
+
374
+ span {
375
+ display: block;
376
+ width: 4px;
377
+ height: 4px;
378
+ background: rgba(153, 153, 153, 1);
379
+ margin-right: 10px;
380
+ }
381
+
382
+ &:hover,
383
+ &.active {
384
+ background: #fff;
385
+ color: #333;
386
+ }
387
+ }
388
+ }
389
+ }
390
+
391
+ &__content {
392
+ width: 100%;
393
+ background: #fff;
394
+ padding: 12px 30px;
395
+
396
+ dl {
397
+ line-height: 14px;
398
+ margin: 12px 0;
399
+
400
+ dt {
401
+ font-size: 14px;
402
+ font-weight: bold;
403
+ color: rgba(51, 51, 51, 1);
404
+ width: 76px;
405
+ margin-right: 10px;
406
+ overflow: hidden;
407
+ text-overflow: ellipsis;
408
+ white-space: nowrap;
409
+ margin: 10px 0;
410
+ }
411
+
412
+ dd {
413
+ a {
414
+ font-size: 14px;
415
+ color: #999999;
416
+ padding: 0 10px;
417
+ border-left: 1px solid #f5f5f5;
418
+ margin: 10px 0;
419
+
420
+ &:hover,
421
+ &.active {
422
+ color: #f33415;
423
+ }
424
+ }
425
+ }
426
+ }
427
+ }
428
+ }
429
+ .ans-none {
430
+ display: none;
431
+ }
432
+ .auto {
433
+ margin: 0 auto;
434
+ width: 1200px;
435
+ }
436
436
  </style>