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,295 +1,295 @@
1
- <template>
2
- <div>
3
- <input
4
- v-show="false"
5
- type="file"
6
- :id="filesone"
7
- name="file"
8
- @change="uploadChange"
9
- accept="image/*"
10
- >
11
- <div v-if="!isCheckBox" class="imgSrc">
12
- <label :for="filesone">
13
- <i class="el-icon-plus" v-show="show"></i>
14
- <img v-show="ident=='0'&&emptyImg" :src="classLogo?classLogo:null">
15
- <img v-show="ident=='1'" :src="editClassLogo">
16
- </label>
17
- </div>
18
- <div v-else>
19
- <div>
20
- <ul v-show="emptyImg">
21
- <li class="imgLi" v-for="(item,index) in items" :key="index">
22
- <div>
23
- <i class="el-icon-delete" @click="deleteIcon(index)"></i>
24
- </div>
25
- <img :src="item">
26
- </li>
27
- </ul>
28
- <div class="upload_input">
29
- <i class="el-icon-plus"></i>
30
- <input
31
- type="file"
32
- :id="filesone"
33
- name="file"
34
- multiple="multiple"
35
- @change="uploadChange"
36
- accept="image/png, image/gif"
37
- >
38
- </div>
39
- </div>
40
- </div>
41
- </div>
42
- </template>
43
- <script>
44
- import { uploadGoodsFile } from "#/api/shopFbu";
45
- export default {
46
- props: ["isCheckBox", "editClassLogo", "ident", "emptyImg", "items"],
47
- data() {
48
- return {
49
- classLogo: "",
50
- show: true,
51
- filesone: this.id || "vue-filesonel-" + +new Date() + +Math.random(),
52
- secDomainName:null
53
- };
54
- },
55
- mounted() {
56
- let hrefs = window.location.href, hosts = window.location.host;
57
- if (hrefs && hosts) {
58
- let name = hrefs.split(hosts)[1] ? hrefs.split(hosts)[1].split('/')[1] : null;
59
- this.secDomainName = name && name !== 'paas' && process.env.NODE_ENV != 'development' ? process.env.API_ROOT + '/' + name : process.env.API_ROOT
60
- } else {
61
- this.secDomainName = process.env.API_ROOT
62
- }
63
- },
64
- methods: {
65
- uploadChange(event) {
66
- console.log("shangchuan");
67
- if (event.target.files.length > 0) {
68
- this.show = false;
69
- this.files = event.target.files[0];
70
- let data = {};
71
- let files = this.files;
72
- let param = new FormData();
73
- if (files != "") {
74
- param.append("file", files, files.name);
75
- } else {
76
- this.$message.error("请添加图片");
77
- }
78
- param.append("tenantCode", "00000001");
79
- param.append("param", JSON.stringify(data));
80
- uploadGoodsFile(param).then(res => {
81
- document.getElementsByName("file").value = "";
82
- if (this.isCheckBox) {
83
- this.$emit("classLogoAttr", res.fileUrl);
84
- } else {
85
- this.classLogo = "";
86
- this.classLogo = res.fileUrl;
87
- this.$emit("emitClassLogo", this.classLogo);
88
- }
89
- });
90
- }
91
- },
92
- deleteIcon(index) {
93
- this.items.splice(index, 1);
94
- }
95
- },
96
- watch: {
97
- editClassLogo(val) {
98
- console.log("val发生改变");
99
-
100
- if (val) {
101
- this.show = false;
102
- } else {
103
- this.show = true;
104
- }
105
- }
106
- }
107
- };
108
- //单个图片上传方法引用:
109
- // 1.新增
110
- // <v-upload
111
- // @emitClassLogo="emitClassLogo"
112
- // :isCheckBox="isCheckBox"
113
- // :ident="0"
114
- // :emptyImg="emptyImg">
115
- // </v-upload>
116
- // 2.编辑
117
- // <v-upload
118
- // @emitClassLogo="emitClassLogo"
119
- // :isCheckBox="isCheckBox"
120
- // :editClassLogo="editForm.goodsClassLogo"
121
- // :ident="1">
122
- // </v-upload>
123
-
124
- //import Upload from "@/components/Upload/upload";
125
- // export default {
126
- // components:{
127
- // 'v-upload': Upload,
128
- // },
129
- // data() {
130
- // return {
131
- // isCheckBox:false,
132
- // editClassLogo:'',
133
- // emptyImg:false,
134
- // };
135
- // },
136
- // methods: {
137
- // addClassify(){
138
- // this.emptyImg=false;
139
- // },
140
-
141
- // emitClassLogo(value){
142
- // this.form.goodsClassLogo='';
143
- // this.form.goodsClassLogo= value ;
144
- // this.editForm.goodsClassLogo='';
145
- // this.editForm.goodsClassLogo= value ;
146
- // this.emptyImg=true;
147
- // },
148
- // },
149
- // };
150
-
151
- //多个图片上传方法:
152
- //1.新增
153
- // <v-upload
154
- // @classLogoAttr="classLogoAttr"
155
- // :isCheckBox="isCheckBox"
156
- // :ident="0"
157
- // :emptyImg="emptyImg"
158
- // :items="items"
159
- // >
160
- // </v-upload>
161
- //2.编辑
162
- // <v-upload
163
- // @classLogoAttr="classLogoAttr"
164
- // :isCheckBox="isCheckBox"
165
- // :ident="1"
166
- // :emptyImg="emptyImg"
167
- // :items="items"
168
- // >
169
- // </v-upload>
170
- //import Upload from "@/components/Upload/upload";
171
- // export default {
172
- // components:{
173
- // 'v-upload': Upload,
174
- // },
175
- // data() {
176
- // return {
177
- // isCheckBox:true,
178
- // editClassLogo:'',
179
- // emptyImg:false,
180
- // items:[],
181
- // },
182
- // methods: {
183
- // addClassify(){
184
- // this.showAddNewVirtual=true;
185
- // this.selectAdd=true;
186
- // this.emptyImg=false;
187
- // this.items=[];
188
- // },
189
-
190
- // emitClassLogo(value){
191
- // this.form.goodsClassLogo='';
192
- // this.form.goodsClassLogo= value ;
193
- // this.editForm.goodsClassLogo='';
194
- // this.editForm.goodsClassLogo= value ;
195
- // this.emptyImg=true;
196
- // },
197
- // classLogoAttr(value){
198
- // this.emptyImg=true;
199
- // this.items.push(value);
200
- // },
201
- // 点编辑的时候将获取到的图片数据赋值给this.items;
202
- // },
203
- // };
204
- </script>
205
-
206
- <style lang='scss' scoped>
207
- img {
208
- width: 148px;
209
- height: 148px;
210
- }
211
- .upload_input,
212
- .imgSrc,
213
- .imgLi {
214
- width: 148px;
215
- height: 148px;
216
- border: 1px dashed #c0ccda;
217
- background: #fbfdff;
218
- border-radius: 6px;
219
- }
220
- .upload_input {
221
- position: relative;
222
- border: 1px dashed #c0ccda;
223
- float: left;
224
- input {
225
- width: 100%;
226
- height: 100%;
227
- opacity: 0;
228
- position: absolute;
229
- cursor: pointer;
230
- }
231
- i {
232
- position: absolute;
233
- top: 50%;
234
- left: 50%;
235
- margin-top: -12px;
236
- margin-left: -12px;
237
- font-size: 24px;
238
- }
239
- }
240
- .imgSrc {
241
- position: relative;
242
- overflow: hidden;
243
- label {
244
- width: 100%;
245
- height: 100%;
246
- cursor: pointer;
247
- display: inline-block;
248
- i {
249
- white-space: pre;
250
- position: absolute;
251
- font-size: 24px;
252
- color: #8c939d;
253
- top: 50%;
254
- left: 50%;
255
- margin-top: -12px;
256
- margin-left: -12px;
257
- }
258
- }
259
- }
260
- ul {
261
- .imgLi {
262
- float: left;
263
- margin: 0 10px 10px 0;
264
- list-style: none;
265
- padding: 0;
266
- overflow: hidden;
267
- position: relative;
268
- cursor: pointer;
269
- div {
270
- position: absolute;
271
- width: 100%;
272
- height: 100%;
273
- top: 0;
274
- left: 0;
275
- opacity: 0.5;
276
- background-color: rgba(0, 0, 0, 0.4);
277
- display: none;
278
- i {
279
- position: absolute;
280
- font-size: 24px;
281
- top: 50%;
282
- left: 50%;
283
- margin-top: -12px;
284
- margin-left: -12px;
285
- color: #fff;
286
- }
287
- }
288
- }
289
- .imgLi:hover {
290
- div {
291
- display: block;
292
- }
293
- }
294
- }
295
- </style>
1
+ <template>
2
+ <div>
3
+ <input
4
+ v-show="false"
5
+ type="file"
6
+ :id="filesone"
7
+ name="file"
8
+ @change="uploadChange"
9
+ accept="image/*"
10
+ >
11
+ <div v-if="!isCheckBox" class="imgSrc">
12
+ <label :for="filesone">
13
+ <i class="el-icon-plus" v-show="show"></i>
14
+ <img v-show="ident=='0'&&emptyImg" :src="classLogo?classLogo:null">
15
+ <img v-show="ident=='1'" :src="editClassLogo">
16
+ </label>
17
+ </div>
18
+ <div v-else>
19
+ <div>
20
+ <ul v-show="emptyImg">
21
+ <li class="imgLi" v-for="(item,index) in items" :key="index">
22
+ <div>
23
+ <i class="el-icon-delete" @click="deleteIcon(index)"></i>
24
+ </div>
25
+ <img :src="item">
26
+ </li>
27
+ </ul>
28
+ <div class="upload_input">
29
+ <i class="el-icon-plus"></i>
30
+ <input
31
+ type="file"
32
+ :id="filesone"
33
+ name="file"
34
+ multiple="multiple"
35
+ @change="uploadChange"
36
+ accept="image/png, image/gif"
37
+ >
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </template>
43
+ <script>
44
+ import { uploadGoodsFile } from "#/api/shopFbu";
45
+ export default {
46
+ props: ["isCheckBox", "editClassLogo", "ident", "emptyImg", "items"],
47
+ data() {
48
+ return {
49
+ classLogo: "",
50
+ show: true,
51
+ filesone: this.id || "vue-filesonel-" + +new Date() + +Math.random(),
52
+ secDomainName:null
53
+ };
54
+ },
55
+ mounted() {
56
+ let hrefs = window.location.href, hosts = window.location.host;
57
+ if (hrefs && hosts) {
58
+ let name = hrefs.split(hosts)[1] ? hrefs.split(hosts)[1].split('/')[1] : null;
59
+ this.secDomainName = name && name !== 'paas' && process.env.NODE_ENV != 'development' ? process.env.API_ROOT + '/' + name : process.env.API_ROOT
60
+ } else {
61
+ this.secDomainName = process.env.API_ROOT
62
+ }
63
+ },
64
+ methods: {
65
+ uploadChange(event) {
66
+ console.log("shangchuan");
67
+ if (event.target.files.length > 0) {
68
+ this.show = false;
69
+ this.files = event.target.files[0];
70
+ let data = {};
71
+ let files = this.files;
72
+ let param = new FormData();
73
+ if (files != "") {
74
+ param.append("file", files, files.name);
75
+ } else {
76
+ this.$message.error("请添加图片");
77
+ }
78
+ param.append("tenantCode", "00000001");
79
+ param.append("param", JSON.stringify(data));
80
+ uploadGoodsFile(param).then(res => {
81
+ document.getElementsByName("file").value = "";
82
+ if (this.isCheckBox) {
83
+ this.$emit("classLogoAttr", res.fileUrl);
84
+ } else {
85
+ this.classLogo = "";
86
+ this.classLogo = res.fileUrl;
87
+ this.$emit("emitClassLogo", this.classLogo);
88
+ }
89
+ });
90
+ }
91
+ },
92
+ deleteIcon(index) {
93
+ this.items.splice(index, 1);
94
+ }
95
+ },
96
+ watch: {
97
+ editClassLogo(val) {
98
+ console.log("val发生改变");
99
+
100
+ if (val) {
101
+ this.show = false;
102
+ } else {
103
+ this.show = true;
104
+ }
105
+ }
106
+ }
107
+ };
108
+ //单个图片上传方法引用:
109
+ // 1.新增
110
+ // <v-upload
111
+ // @emitClassLogo="emitClassLogo"
112
+ // :isCheckBox="isCheckBox"
113
+ // :ident="0"
114
+ // :emptyImg="emptyImg">
115
+ // </v-upload>
116
+ // 2.编辑
117
+ // <v-upload
118
+ // @emitClassLogo="emitClassLogo"
119
+ // :isCheckBox="isCheckBox"
120
+ // :editClassLogo="editForm.goodsClassLogo"
121
+ // :ident="1">
122
+ // </v-upload>
123
+
124
+ //import Upload from "@/components/Upload/upload";
125
+ // export default {
126
+ // components:{
127
+ // 'v-upload': Upload,
128
+ // },
129
+ // data() {
130
+ // return {
131
+ // isCheckBox:false,
132
+ // editClassLogo:'',
133
+ // emptyImg:false,
134
+ // };
135
+ // },
136
+ // methods: {
137
+ // addClassify(){
138
+ // this.emptyImg=false;
139
+ // },
140
+
141
+ // emitClassLogo(value){
142
+ // this.form.goodsClassLogo='';
143
+ // this.form.goodsClassLogo= value ;
144
+ // this.editForm.goodsClassLogo='';
145
+ // this.editForm.goodsClassLogo= value ;
146
+ // this.emptyImg=true;
147
+ // },
148
+ // },
149
+ // };
150
+
151
+ //多个图片上传方法:
152
+ //1.新增
153
+ // <v-upload
154
+ // @classLogoAttr="classLogoAttr"
155
+ // :isCheckBox="isCheckBox"
156
+ // :ident="0"
157
+ // :emptyImg="emptyImg"
158
+ // :items="items"
159
+ // >
160
+ // </v-upload>
161
+ //2.编辑
162
+ // <v-upload
163
+ // @classLogoAttr="classLogoAttr"
164
+ // :isCheckBox="isCheckBox"
165
+ // :ident="1"
166
+ // :emptyImg="emptyImg"
167
+ // :items="items"
168
+ // >
169
+ // </v-upload>
170
+ //import Upload from "@/components/Upload/upload";
171
+ // export default {
172
+ // components:{
173
+ // 'v-upload': Upload,
174
+ // },
175
+ // data() {
176
+ // return {
177
+ // isCheckBox:true,
178
+ // editClassLogo:'',
179
+ // emptyImg:false,
180
+ // items:[],
181
+ // },
182
+ // methods: {
183
+ // addClassify(){
184
+ // this.showAddNewVirtual=true;
185
+ // this.selectAdd=true;
186
+ // this.emptyImg=false;
187
+ // this.items=[];
188
+ // },
189
+
190
+ // emitClassLogo(value){
191
+ // this.form.goodsClassLogo='';
192
+ // this.form.goodsClassLogo= value ;
193
+ // this.editForm.goodsClassLogo='';
194
+ // this.editForm.goodsClassLogo= value ;
195
+ // this.emptyImg=true;
196
+ // },
197
+ // classLogoAttr(value){
198
+ // this.emptyImg=true;
199
+ // this.items.push(value);
200
+ // },
201
+ // 点编辑的时候将获取到的图片数据赋值给this.items;
202
+ // },
203
+ // };
204
+ </script>
205
+
206
+ <style lang='scss' scoped>
207
+ img {
208
+ width: 148px;
209
+ height: 148px;
210
+ }
211
+ .upload_input,
212
+ .imgSrc,
213
+ .imgLi {
214
+ width: 148px;
215
+ height: 148px;
216
+ border: 1px dashed #c0ccda;
217
+ background: #fbfdff;
218
+ border-radius: 6px;
219
+ }
220
+ .upload_input {
221
+ position: relative;
222
+ border: 1px dashed #c0ccda;
223
+ float: left;
224
+ input {
225
+ width: 100%;
226
+ height: 100%;
227
+ opacity: 0;
228
+ position: absolute;
229
+ cursor: pointer;
230
+ }
231
+ i {
232
+ position: absolute;
233
+ top: 50%;
234
+ left: 50%;
235
+ margin-top: -12px;
236
+ margin-left: -12px;
237
+ font-size: 24px;
238
+ }
239
+ }
240
+ .imgSrc {
241
+ position: relative;
242
+ overflow: hidden;
243
+ label {
244
+ width: 100%;
245
+ height: 100%;
246
+ cursor: pointer;
247
+ display: inline-block;
248
+ i {
249
+ white-space: pre;
250
+ position: absolute;
251
+ font-size: 24px;
252
+ color: #8c939d;
253
+ top: 50%;
254
+ left: 50%;
255
+ margin-top: -12px;
256
+ margin-left: -12px;
257
+ }
258
+ }
259
+ }
260
+ ul {
261
+ .imgLi {
262
+ float: left;
263
+ margin: 0 10px 10px 0;
264
+ list-style: none;
265
+ padding: 0;
266
+ overflow: hidden;
267
+ position: relative;
268
+ cursor: pointer;
269
+ div {
270
+ position: absolute;
271
+ width: 100%;
272
+ height: 100%;
273
+ top: 0;
274
+ left: 0;
275
+ opacity: 0.5;
276
+ background-color: rgba(0, 0, 0, 0.4);
277
+ display: none;
278
+ i {
279
+ position: absolute;
280
+ font-size: 24px;
281
+ top: 50%;
282
+ left: 50%;
283
+ margin-top: -12px;
284
+ margin-left: -12px;
285
+ color: #fff;
286
+ }
287
+ }
288
+ }
289
+ .imgLi:hover {
290
+ div {
291
+ display: block;
292
+ }
293
+ }
294
+ }
295
+ </style>