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,578 +1,578 @@
1
- <template>
2
- <el-dialog :title="title" width="766px" :append-to-body="true" :visible.sync="diaVisible" @close="handelClose"
3
- class="file-box">
4
- <!-- 点击上传弹出的第一个框 -->
5
-
6
- <el-form class="dialog-form" v-if="!type || type=='0'">
7
- <span class="el-upload__tip cor-red">最多上传{{picLimit}}张</span>
8
- <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
9
- <el-tab-pane label="上传本地图片" name="first"></el-tab-pane>
10
- <!-- <el-tab-pane label="添加网络图片" name="second"></el-tab-pane> -->
11
- <el-tab-pane label="图片库" name="third"></el-tab-pane>
12
- </el-tabs>
13
- <el-form-item label="上传本地图片" class="dialog-form-item" v-if="activeName=='first'">
14
- <el-button type="primary" class="file-btn" @click="changeFile">添加图片</el-button>
15
- <span class="el-upload__tip cor-red">只能上传{{imgType}}文件,且不超过{{num || 5}}M</span>
16
- </el-form-item>
17
- <el-form-item label="添加网络图片" class="dialog-form-item" v-if="activeName=='second'">
18
- <el-col :span="14">
19
- <el-input v-model="fileUrl"></el-input>
20
- </el-col>
21
- <el-col :span="5" :offset="1">
22
- <el-button type="primary" @click="getNetFile">提取</el-button>
23
- </el-col>
24
- </el-form-item>
25
- <el-form-item class="dialog-form-item" v-if="activeName=='third'">
26
- <el-row>
27
- <el-col :span="2">货号:</el-col>
28
- <el-col :span="14">
29
- <el-input v-model="skuNo"></el-input>
30
- </el-col>
31
- <el-col :span="5" :offset="1">
32
- <el-button type="primary" @click="getSkuImg">查询</el-button>
33
- </el-col>
34
- </el-row>
35
- <el-row style="margin-top:20px">
36
- <el-checkbox-group :max="picLimit || 5" v-model="checkList" @change="hanlderFileImg">
37
- <el-checkbox v-for="(item, index) in arrList" :label="item" :key="index">
38
- <img v-lazy="item.fileUrl" class="image" v-if="item.fileUrl.indexOf('http') > -1" />
39
- <img v-lazy="`/paas/shop/${item.fileUrl}`" class="image" v-else />
40
- </el-checkbox>
41
- </el-checkbox-group>
42
- <div v-if="btnShow" style="text-align:center">
43
- <el-button type="text" @click="morePage">更多</el-button>
44
- </div>
45
- </el-row>
46
- </el-form-item>
47
- </el-form>
48
- <el-form class="dialog-form" v-else>
49
- <el-form-item label="上传本地文件" class="dialog-form-item">
50
- <el-button type="primary" class="file-btn" @click="changeFile">添加文件</el-button>
51
- <span class="el-upload__tip cor-red" v-if="noLimit">只能上传常见的mp4,ogg,flv,mkv格式文件</span>
52
- <span class="el-upload__tip cor-red"
53
- v-else>只能上传常见的mp4,ogg,flv,mkv格式文件,且不超过{{nums || 5}}M,最多上传{{picLimit}}个</span>
54
- </el-form-item>
55
- <el-form-item label="添加网络文件" class="dialog-form-item">
56
- <el-col :span="14">
57
- <el-input v-model="fileUrl"></el-input>
58
- </el-col>
59
- <el-col :span="5" :offset="1">
60
- <el-button type="primary" @click="getNetFile">提取</el-button>
61
- </el-col>
62
- </el-form-item>
63
- </el-form>
64
- <div class="file-list">
65
- <el-upload v-if="!type || type=='0'" ref="picUpload" class="pic-div" :action="fileUploadUrl" :data="otherData"
66
- :before-upload="beforeAvatarUpload" :on-success="handelSuccess" :with-credentials="true"
67
- :on-remove="handleRemove" list-type="picture-card" :file-list="nFileList" :multiple="multiple"></el-upload>
68
- <el-upload v-else ref="picUpload" :action="fileUploadUrl" :data="otherData" :with-credentials="true"
69
- :on-success="handelSuccess" :on-error="handelError" :on-remove="handleRemove" :before-upload="beforeUpload"
70
- :file-list="nFileList" :multiple="multiple"></el-upload>
71
- </div>
72
- <div slot="footer" class="dialog-footer">
73
- <el-button @click="diaVisible = false">取消</el-button>
74
- <el-button type="primary"
75
- v-show="(uploading.length==0&&activeName=='first')||activeName=='second'||activeName=='third'"
76
- @click="setFileList">确定</el-button>
77
- </div>
78
- </el-dialog>
79
- </template>
80
- <script>
81
- import API from "#/api/common";
82
- import request from "#/utils/request";
83
- const querystring = require("querystring");
84
- import {
85
- Loading
86
- } from "element-ui";
87
- import {
88
- validateURL
89
- } from "#/utils/validate";
90
- export default {
91
- // props: ["fileList", "type", "limit", "visible", fileUploadUrl:{}],
92
- props: {
93
- fileList: Array,
94
- type: String,
95
- limit: Number,
96
- visible: Boolean,
97
- imgType: String,
98
- num: {
99
- type: Number,
100
- default: 5,
101
- },
102
- noLimit: {
103
- type: Boolean,
104
- default: false,
105
- },
106
- multiple: {
107
- type: Boolean,
108
- default: false,
109
- },
110
- fileUploadUrl: {
111
- type: String,
112
- default: process.env.API_ROOT + "/web/rs/goodsFile/uploadGoodsFile.json",
113
- },
114
- fileImgUrl: {
115
- type: String,
116
- default: process.env.API_ROOT +
117
- "/web/fm/file/queryFilelistView.json?fileSort=FILE_GD",
118
- },
119
- },
120
- data() {
121
- return {
122
- checked: true,
123
- activeName: "first",
124
- title: "选择图片",
125
- diaVisible: false,
126
- fileUrl: "",
127
- imgType: "jpg/png/gif",
128
- nums: 5,
129
- noLimit: false,
130
- total: "",
131
- pageNo: 1,
132
- pageSize: 10,
133
- picLimit: this.limit || 1,
134
- nFileList: this.fileList || [],
135
- otherData: {
136
- tenantCode: "00000001",
137
- },
138
- checkList: [],
139
- tabName: "",
140
- imgList: [],
141
- arrList: [],
142
- skuNo: "",
143
- btnShow: true,
144
- imgState: true,
145
- fileListArray: [], //初始化组件时候
146
- imgUrlArrayList: [], //判断哪些添加了
147
- uploading: [], //正在上传的文件集合
148
- };
149
- },
150
-
151
- mounted() {},
152
- methods: {
153
- handleClick(tab, event) {
154
- this.tabName = tab.name;
155
- if (tab.name == "third") {
156
- if (this.imgState) {
157
- this.getImgData();
158
- this.checkList = [];
159
- }
160
- }
161
- },
162
- hanlderFileImg(data) {
163
- console.log(data, this.nFileList);
164
- },
165
- getImgData() {
166
- console.log(this.fileImgUrl);
167
-
168
- request({
169
- url: this.fileImgUrl,
170
- method: "post",
171
- data: querystring.stringify({
172
- rows: this.pageSize,
173
- page: this.pageNo
174
- }),
175
- }).then((res) => {
176
- console.log(res.rows);
177
-
178
- this.imgList = res.rows;
179
- this.arrList = this.arrList.concat(this.imgList);
180
- this.total = res.total;
181
- this.imgState = false;
182
- if (res && res.total > this.pageSize) {
183
- this.btnShow = true;
184
- } else {
185
- this.btnShow = false;
186
- }
187
- });
188
- },
189
- getSkuImg() {
190
- this.fileImgUrl =
191
- process.env.API_ROOT +
192
- "/web/fm/file/queryFilelistView.json?fileSort=FILE_GD&fileRemark=" +
193
- this.skuNo;
194
- this.arrList = [];
195
- this.pageNo = 1;
196
- this.getImgData();
197
- },
198
- morePage() {
199
- this.pageNo++;
200
- var pagelist = Math.ceil(this.total / this.pageSize);
201
- // console.log(this.pageNo, pagelist);
202
- if (this.pageNo <= pagelist) {
203
- this.getImgData();
204
- // this.arrList.concat(this.imgList)
205
- } else {
206
- this.btnShow = false;
207
- }
208
- },
209
- handleSizeChange(val) {
210
- //分页
211
- this.pageSize = val;
212
- this.getImgData();
213
- },
214
- handleCurrentChange(val) {
215
- this.pageNo = val;
216
- this.getImgData();
217
- },
218
-
219
- uploadPic(index, rows) {
220
- //规格上传图片
221
- this.rowSer = rows;
222
- this.defaultPicList = rows.rsGoodsFileDomainList;
223
- this.diaVisible = true;
224
- },
225
- handelClose() {
226
- this.nFileList = [];
227
- this.fileUrl = "";
228
- if (this.$refs.picUpload) {
229
- this.$refs.picUpload.abort();
230
- }
231
- this.uploading = [];
232
- this.$emit("toggle", false);
233
- },
234
- handleRemove(file, fileList) {
235
- console.log(file, "0000");
236
- this.checkList.forEach((el, index) => {
237
- if (`/paas/shop/${el.fileUrl}` == file.url) {
238
- this.checkList.splice(index, 1);
239
- } else if (el.fileUrl.indexOf('http') > -1 && el.fileUrl == file.url) {
240
- this.checkList.splice(index, 1);
241
- }
242
- });
243
- //移除正在上传的文件 需要从this.uploading中移除
244
- let index = this.uploading.indexOf(file.uid);
245
- if (index > -1) {
246
- this.uploading.splice(index, 1);
247
- }
248
- this.nFileList = fileList;
249
- this.fileListArray = [];
250
- this.nFileList.forEach((el) => {
251
- this.fileListArray.push(el.url);
252
- });
253
- },
254
- beforeAvatarUpload(file) {
255
- console.log(file, "file", this.beforeAvatarUpload);
256
- //上传之前的回调
257
- const fileType = /\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(
258
- file.name.toLowerCase()
259
- );
260
- if (!fileType) {
261
- this.$message.error("图片格式为常见的jpg、png、gif格式!");
262
- }
263
- const isLt2M = file.size / 1024 / 1024 < (this.num ? this.num : this.nums);
264
- if (!isLt2M) {
265
- this.$message.error(
266
- "上传的图片大小不能超过 " + (this.num ? this.num : this.nums) + "MB!"
267
- );
268
- }
269
- if (isLt2M && fileType) {
270
- this.uploading.push(file.uid);
271
- }
272
- return isLt2M && fileType;
273
- },
274
- beforeUpload(file) {
275
- //上传之前的回调
276
- const fileType = /\.(mp4|ogg|flv|mkv|MP4|FLV|MKV|OGG)$/.test(
277
- file.name.toLowerCase()
278
- );
279
- if (!fileType) {
280
- this.$message.error("文件格式为常见的mp4,ogg,flv,mkv格式!");
281
- }
282
- if (this.noLimit) {
283
- return fileType;
284
- } else {
285
- const isLt2M =
286
- file.size / 1024 / 1024 < (this.num ? this.num : this.nums);
287
- if (!isLt2M) {
288
- this.$message.error(
289
- "上传的文件大小不能超过 " + (this.num ? this.num : this.nums) + "MB!"
290
- );
291
- }
292
- if (isLt2M && fileType) {
293
- this.uploading.push(file.uid);
294
- }
295
- return isLt2M && fileType;
296
- }
297
- },
298
- handelSuccess(response, file, fileList) {
299
- console.log(response);
300
- console.log(file);
301
- console.log(fileList, "999");
302
- if (
303
- response &&
304
- typeof response == "object" &&
305
- "success" in response &&
306
- !response.success
307
- ) {
308
- let nJson = JSON.parse(response.data.dataObj);
309
- let nUrl = window.location.href;
310
- if (process.env.NODE_ENV === "development") {
311
- window.location.href =
312
- process.env.API_ROOT + nJson.loginurl + "?url=" + nUrl;
313
- } else {
314
- window.location.href = nJson.loginurl + "?url=" + nUrl;
315
- }
316
- return;
317
- }
318
- let njson = {
319
- name: file.name,
320
- url: response.fileUrl,
321
- goodsFileUrl: response.fileUrl,
322
- uid: file.uid,
323
- goodsFileType: this.type,
324
- goodsFileName: response.fileCode,
325
- status: "success",
326
- };
327
- //文件上传 需要从this.uploading中移除
328
- let index = this.uploading.indexOf(file.uid);
329
- this.uploading.splice(index, 1);
330
-
331
- fileList.splice(fileList.indexOf(file), 1, njson);
332
- console.log(fileList);
333
- this.nFileList = fileList;
334
- },
335
- handelError(error, file, fileList) {
336
- console.log(
337
- response,
338
- this.fileUploadUrl,
339
- "handelErrorhandelErrorhandelErrorhandelErrorhandelErrorhandelErrorhandelErrorhandelError"
340
- );
341
- console.log(file);
342
- console.log(fileList);
343
- },
344
- changeFile() {
345
- if (this.nFileList.length >= this.picLimit) {
346
- this.$message.error(
347
- `最多上传${this.picLimit}${this.type == "0" ? "张图片" : "个文件"}`
348
- );
349
- return;
350
- }
351
- this.$refs.picUpload.$refs["upload-inner"].$el.dispatchEvent(
352
- new MouseEvent("click")
353
- );
354
- },
355
- getNetFile() {
356
- if (this.nFileList.length >= this.picLimit) {
357
- this.$message.error(
358
- `最多上传${this.picLimit}${this.type == "0" ? "张图片" : "个文件"}`
359
- );
360
- this.fileUrl = "";
361
- return;
362
- }
363
- if (validateURL(this.fileUrl)) {
364
- let fileInfo = {
365
- url: this.fileUrl,
366
- goodsFileUrl: this.fileUrl,
367
- name: this.fileUrl,
368
- goodsFileType: this.type,
369
- };
370
- this.nFileList.push(fileInfo);
371
- this.fileUrl = "";
372
- } else {
373
- this.$message.error("请输入正确的图片地址");
374
- }
375
- },
376
- setPicList(response, file, fileList) {},
377
- beyond() {
378
- //图片个数超出的验证
379
- this.$message.error("最多5张!");
380
- },
381
- setFileList() {
382
- let nList = [];
383
- console.log(this.imgUrlArrayList, "xx imgUrlArrayList");
384
- if (this.nFileList.length > 0) {
385
- nList = JSON.parse(JSON.stringify(this.nFileList));
386
- }
387
- this.checkList.forEach((res) => {
388
- if (res.fileUrl.indexOf('http') > -1) {
389
- nList.push({
390
- url: res.fileUrl,
391
- goodsFileUrl: res.fileUrl,
392
- name: res.fileName,
393
- });
394
- console.log(nList, '无passshop')
395
- } else if (res.fileUrl) {
396
- nList.push({
397
- url: `/paas/shop/${res.fileUrl}`,
398
- goodsFileUrl: `/paas/shop/${res.fileUrl}`,
399
- name: res.fileName,
400
- });
401
- console.log(nList, 'passshop')
402
- }
403
- });
404
- this.imgUrlArrayList = this.fileListArray;
405
- if (this.uploading.length > 0) {
406
- this.$confirm(
407
- "请确认所有文件都上传完成,继续操作会移除正在上传的文件!",
408
- "提示", {
409
- confirmButtonText: "确定",
410
- cancelButtonText: "取消",
411
- type: "warning",
412
- }
413
- ).then(() => {
414
- this.$refs.picUpload.abort();
415
- this.$emit("setFileList", nList);
416
- this.diaVisible = false;
417
- });
418
- } else {
419
- this.$emit("setFileList", nList);
420
- this.diaVisible = false;
421
- }
422
- },
423
- },
424
- mounted() {
425
- console.log(this.multiple, "multiple");
426
- },
427
- watch: {
428
- visible() {
429
- this.diaVisible = this.visible;
430
- if (this.visible) {
431
- if (
432
- this.fileImgUrl &&
433
- this.fileImgUrl.lastIndexOf("&fileRemark") > -1
434
- ) {
435
- let index = this.fileImgUrl.lastIndexOf("=");
436
- console.log(index, index, "0000");
437
- if (index > -1) {
438
- console.log(index);
439
- this.skuNo = this.fileImgUrl.slice(index + 1);
440
- }
441
- } else {
442
- this.skuNo = "";
443
- }
444
- console.log(this.skuNo, "00000");
445
- let nList = [],
446
- delList = [];
447
- if (this.fileList.length > 0) {
448
- nList = JSON.parse(JSON.stringify(this.fileList));
449
- //查找删除后的存在的对象
450
- nList.forEach((el, index) => {
451
- if (this.fileListArray.indexOf(el.goodsFileUrl || el.url) >= 0) {
452
- delList.push(el.goodsFileUrl || el.url);
453
- }
454
- });
455
- // console.log(delList, this.checkList, "this.checkList");
456
- this.checkList.forEach((el, index) => {
457
- if (delList.indexOf(`/paas/shop/${el.fileUrl}`) < 0 && el.fileUrl.indexOf('http') < 0) {
458
- this.checkList.splice(index, 1);
459
- } else if (el.fileUrl.indexOf('/paas/shop/') < 0 && delList.indexOf(el.fileUrl) < 0) {
460
- this.checkList.splice(index, 1);
461
- }
462
- });
463
- this.fileListArray = [];
464
- nList.forEach((item) => {
465
- item.url = item.goodsFileUrl || item.url;
466
- this.fileListArray.push(item.url);
467
- });
468
- } else {
469
- this.checkList = [];
470
- this.fileListArray = [];
471
- }
472
- this.$nextTick(() => {
473
- console.log(this.$refs);
474
- if (this.$refs) {
475
- this.$refs.picUpload.$refs["upload-inner"].$el.style.display =
476
- "none";
477
- }
478
- });
479
- this.nFileList = nList;
480
- }
481
- if (this.type && this.type == "1") {
482
- this.title = "选择文件";
483
- } else {
484
- this.title = "选择图片";
485
- }
486
- },
487
- limit() {
488
- this.picLimit = this.limit || 1;
489
- },
490
- fileList() {
491
- let nList = [];
492
- if (this.fileList.length > 0) {
493
- nList = JSON.parse(JSON.stringify(this.fileList));
494
- }
495
- this.nFileList = nList;
496
- console.log(this.nFileList);
497
- },
498
- },
499
- };
500
- </script>
501
-
502
- <style rel="stylesheet/scss" lang="scss" scoped>
503
- .dialog-form {
504
- width: 100%;
505
- box-sizing: border-box;
506
- padding-left: 20px;
507
-
508
- .dialog-form-item {
509
- width: 100% !important;
510
- margin-left: 0 !important;
511
- }
512
- }
513
-
514
- .el-dialog {
515
- border-radius: 6px;
516
- }
517
-
518
- .file-btn {
519
- position: relative;
520
- overflow: hidden;
521
- }
522
-
523
- .file-input {
524
- display: none;
525
- }
526
-
527
- .cor-red {
528
- color: #ff0000;
529
- }
530
-
531
- .image {
532
- width: 100px;
533
- height: 100px;
534
- display: block;
535
- }
536
-
537
- .clearfix:before,
538
- .clearfix:after {
539
- display: table;
540
- content: "";
541
- }
542
-
543
- .clearfix:after {
544
- clear: both;
545
- }
546
-
547
- .elcard {
548
- margin-top: 20px;
549
- }
550
- </style>
551
- <style lang="scss">
552
- .file-box {
553
- .el-checkbox {
554
- margin-left: 30px;
555
- position: relative;
556
-
557
- .el-checkbox__input {
558
- position: absolute;
559
- top: 0;
560
- left: 0;
561
- }
562
-
563
- .el-checkbox__label {
564
- padding: 0;
565
- }
566
- }
567
-
568
- .el-checkbox-group {
569
- height: 230px;
570
- overflow-y: scroll;
571
- }
572
-
573
- .el-upload-list--picture-card .el-upload-list__item {
574
- width: 100px;
575
- height: 100px;
576
- }
577
- }
578
- </style>
1
+ <template>
2
+ <el-dialog :title="title" width="766px" :append-to-body="true" :visible.sync="diaVisible" @close="handelClose"
3
+ class="file-box">
4
+ <!-- 点击上传弹出的第一个框 -->
5
+
6
+ <el-form class="dialog-form" v-if="!type || type=='0'">
7
+ <span class="el-upload__tip cor-red">最多上传{{picLimit}}张</span>
8
+ <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
9
+ <el-tab-pane label="上传本地图片" name="first"></el-tab-pane>
10
+ <!-- <el-tab-pane label="添加网络图片" name="second"></el-tab-pane> -->
11
+ <el-tab-pane label="图片库" name="third"></el-tab-pane>
12
+ </el-tabs>
13
+ <el-form-item label="上传本地图片" class="dialog-form-item" v-if="activeName=='first'">
14
+ <el-button type="primary" class="file-btn" @click="changeFile">添加图片</el-button>
15
+ <span class="el-upload__tip cor-red">只能上传{{imgType}}文件,且不超过{{num || 5}}M</span>
16
+ </el-form-item>
17
+ <el-form-item label="添加网络图片" class="dialog-form-item" v-if="activeName=='second'">
18
+ <el-col :span="14">
19
+ <el-input v-model="fileUrl"></el-input>
20
+ </el-col>
21
+ <el-col :span="5" :offset="1">
22
+ <el-button type="primary" @click="getNetFile">提取</el-button>
23
+ </el-col>
24
+ </el-form-item>
25
+ <el-form-item class="dialog-form-item" v-if="activeName=='third'">
26
+ <el-row>
27
+ <el-col :span="2">货号:</el-col>
28
+ <el-col :span="14">
29
+ <el-input v-model="skuNo"></el-input>
30
+ </el-col>
31
+ <el-col :span="5" :offset="1">
32
+ <el-button type="primary" @click="getSkuImg">查询</el-button>
33
+ </el-col>
34
+ </el-row>
35
+ <el-row style="margin-top:20px">
36
+ <el-checkbox-group :max="picLimit || 5" v-model="checkList" @change="hanlderFileImg">
37
+ <el-checkbox v-for="(item, index) in arrList" :label="item" :key="index">
38
+ <img v-lazy="item.fileUrl" class="image" v-if="item.fileUrl.indexOf('http') > -1" />
39
+ <img v-lazy="`/paas/shop/${item.fileUrl}`" class="image" v-else />
40
+ </el-checkbox>
41
+ </el-checkbox-group>
42
+ <div v-if="btnShow" style="text-align:center">
43
+ <el-button type="text" @click="morePage">更多</el-button>
44
+ </div>
45
+ </el-row>
46
+ </el-form-item>
47
+ </el-form>
48
+ <el-form class="dialog-form" v-else>
49
+ <el-form-item label="上传本地文件" class="dialog-form-item">
50
+ <el-button type="primary" class="file-btn" @click="changeFile">添加文件</el-button>
51
+ <span class="el-upload__tip cor-red" v-if="noLimit">只能上传常见的mp4,ogg,flv,mkv格式文件</span>
52
+ <span class="el-upload__tip cor-red"
53
+ v-else>只能上传常见的mp4,ogg,flv,mkv格式文件,且不超过{{nums || 5}}M,最多上传{{picLimit}}个</span>
54
+ </el-form-item>
55
+ <el-form-item label="添加网络文件" class="dialog-form-item">
56
+ <el-col :span="14">
57
+ <el-input v-model="fileUrl"></el-input>
58
+ </el-col>
59
+ <el-col :span="5" :offset="1">
60
+ <el-button type="primary" @click="getNetFile">提取</el-button>
61
+ </el-col>
62
+ </el-form-item>
63
+ </el-form>
64
+ <div class="file-list">
65
+ <el-upload v-if="!type || type=='0'" ref="picUpload" class="pic-div" :action="fileUploadUrl" :data="otherData"
66
+ :before-upload="beforeAvatarUpload" :on-success="handelSuccess" :with-credentials="true"
67
+ :on-remove="handleRemove" list-type="picture-card" :file-list="nFileList" :multiple="multiple"></el-upload>
68
+ <el-upload v-else ref="picUpload" :action="fileUploadUrl" :data="otherData" :with-credentials="true"
69
+ :on-success="handelSuccess" :on-error="handelError" :on-remove="handleRemove" :before-upload="beforeUpload"
70
+ :file-list="nFileList" :multiple="multiple"></el-upload>
71
+ </div>
72
+ <div slot="footer" class="dialog-footer">
73
+ <el-button @click="diaVisible = false">取消</el-button>
74
+ <el-button type="primary"
75
+ v-show="(uploading.length==0&&activeName=='first')||activeName=='second'||activeName=='third'"
76
+ @click="setFileList">确定</el-button>
77
+ </div>
78
+ </el-dialog>
79
+ </template>
80
+ <script>
81
+ import API from "#/api/common";
82
+ import request from "#/utils/request";
83
+ const querystring = require("querystring");
84
+ import {
85
+ Loading
86
+ } from "element-ui";
87
+ import {
88
+ validateURL
89
+ } from "#/utils/validate";
90
+ export default {
91
+ // props: ["fileList", "type", "limit", "visible", fileUploadUrl:{}],
92
+ props: {
93
+ fileList: Array,
94
+ type: String,
95
+ limit: Number,
96
+ visible: Boolean,
97
+ imgType: String,
98
+ num: {
99
+ type: Number,
100
+ default: 5,
101
+ },
102
+ noLimit: {
103
+ type: Boolean,
104
+ default: false,
105
+ },
106
+ multiple: {
107
+ type: Boolean,
108
+ default: false,
109
+ },
110
+ fileUploadUrl: {
111
+ type: String,
112
+ default: process.env.API_ROOT + "/web/rs/goodsFile/uploadGoodsFile.json",
113
+ },
114
+ fileImgUrl: {
115
+ type: String,
116
+ default: process.env.API_ROOT +
117
+ "/web/fm/file/queryFilelistView.json?fileSort=FILE_GD",
118
+ },
119
+ },
120
+ data() {
121
+ return {
122
+ checked: true,
123
+ activeName: "first",
124
+ title: "选择图片",
125
+ diaVisible: false,
126
+ fileUrl: "",
127
+ imgType: "jpg/png/gif",
128
+ nums: 5,
129
+ noLimit: false,
130
+ total: "",
131
+ pageNo: 1,
132
+ pageSize: 10,
133
+ picLimit: this.limit || 1,
134
+ nFileList: this.fileList || [],
135
+ otherData: {
136
+ tenantCode: "00000001",
137
+ },
138
+ checkList: [],
139
+ tabName: "",
140
+ imgList: [],
141
+ arrList: [],
142
+ skuNo: "",
143
+ btnShow: true,
144
+ imgState: true,
145
+ fileListArray: [], //初始化组件时候
146
+ imgUrlArrayList: [], //判断哪些添加了
147
+ uploading: [], //正在上传的文件集合
148
+ };
149
+ },
150
+
151
+ mounted() {},
152
+ methods: {
153
+ handleClick(tab, event) {
154
+ this.tabName = tab.name;
155
+ if (tab.name == "third") {
156
+ if (this.imgState) {
157
+ this.getImgData();
158
+ this.checkList = [];
159
+ }
160
+ }
161
+ },
162
+ hanlderFileImg(data) {
163
+ console.log(data, this.nFileList);
164
+ },
165
+ getImgData() {
166
+ console.log(this.fileImgUrl);
167
+
168
+ request({
169
+ url: this.fileImgUrl,
170
+ method: "post",
171
+ data: querystring.stringify({
172
+ rows: this.pageSize,
173
+ page: this.pageNo
174
+ }),
175
+ }).then((res) => {
176
+ console.log(res.rows);
177
+
178
+ this.imgList = res.rows;
179
+ this.arrList = this.arrList.concat(this.imgList);
180
+ this.total = res.total;
181
+ this.imgState = false;
182
+ if (res && res.total > this.pageSize) {
183
+ this.btnShow = true;
184
+ } else {
185
+ this.btnShow = false;
186
+ }
187
+ });
188
+ },
189
+ getSkuImg() {
190
+ this.fileImgUrl =
191
+ process.env.API_ROOT +
192
+ "/web/fm/file/queryFilelistView.json?fileSort=FILE_GD&fileRemark=" +
193
+ this.skuNo;
194
+ this.arrList = [];
195
+ this.pageNo = 1;
196
+ this.getImgData();
197
+ },
198
+ morePage() {
199
+ this.pageNo++;
200
+ var pagelist = Math.ceil(this.total / this.pageSize);
201
+ // console.log(this.pageNo, pagelist);
202
+ if (this.pageNo <= pagelist) {
203
+ this.getImgData();
204
+ // this.arrList.concat(this.imgList)
205
+ } else {
206
+ this.btnShow = false;
207
+ }
208
+ },
209
+ handleSizeChange(val) {
210
+ //分页
211
+ this.pageSize = val;
212
+ this.getImgData();
213
+ },
214
+ handleCurrentChange(val) {
215
+ this.pageNo = val;
216
+ this.getImgData();
217
+ },
218
+
219
+ uploadPic(index, rows) {
220
+ //规格上传图片
221
+ this.rowSer = rows;
222
+ this.defaultPicList = rows.rsGoodsFileDomainList;
223
+ this.diaVisible = true;
224
+ },
225
+ handelClose() {
226
+ this.nFileList = [];
227
+ this.fileUrl = "";
228
+ if (this.$refs.picUpload) {
229
+ this.$refs.picUpload.abort();
230
+ }
231
+ this.uploading = [];
232
+ this.$emit("toggle", false);
233
+ },
234
+ handleRemove(file, fileList) {
235
+ console.log(file, "0000");
236
+ this.checkList.forEach((el, index) => {
237
+ if (`/paas/shop/${el.fileUrl}` == file.url) {
238
+ this.checkList.splice(index, 1);
239
+ } else if (el.fileUrl.indexOf('http') > -1 && el.fileUrl == file.url) {
240
+ this.checkList.splice(index, 1);
241
+ }
242
+ });
243
+ //移除正在上传的文件 需要从this.uploading中移除
244
+ let index = this.uploading.indexOf(file.uid);
245
+ if (index > -1) {
246
+ this.uploading.splice(index, 1);
247
+ }
248
+ this.nFileList = fileList;
249
+ this.fileListArray = [];
250
+ this.nFileList.forEach((el) => {
251
+ this.fileListArray.push(el.url);
252
+ });
253
+ },
254
+ beforeAvatarUpload(file) {
255
+ console.log(file, "file", this.beforeAvatarUpload);
256
+ //上传之前的回调
257
+ const fileType = /\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(
258
+ file.name.toLowerCase()
259
+ );
260
+ if (!fileType) {
261
+ this.$message.error("图片格式为常见的jpg、png、gif格式!");
262
+ }
263
+ const isLt2M = file.size / 1024 / 1024 < (this.num ? this.num : this.nums);
264
+ if (!isLt2M) {
265
+ this.$message.error(
266
+ "上传的图片大小不能超过 " + (this.num ? this.num : this.nums) + "MB!"
267
+ );
268
+ }
269
+ if (isLt2M && fileType) {
270
+ this.uploading.push(file.uid);
271
+ }
272
+ return isLt2M && fileType;
273
+ },
274
+ beforeUpload(file) {
275
+ //上传之前的回调
276
+ const fileType = /\.(mp4|ogg|flv|mkv|MP4|FLV|MKV|OGG)$/.test(
277
+ file.name.toLowerCase()
278
+ );
279
+ if (!fileType) {
280
+ this.$message.error("文件格式为常见的mp4,ogg,flv,mkv格式!");
281
+ }
282
+ if (this.noLimit) {
283
+ return fileType;
284
+ } else {
285
+ const isLt2M =
286
+ file.size / 1024 / 1024 < (this.num ? this.num : this.nums);
287
+ if (!isLt2M) {
288
+ this.$message.error(
289
+ "上传的文件大小不能超过 " + (this.num ? this.num : this.nums) + "MB!"
290
+ );
291
+ }
292
+ if (isLt2M && fileType) {
293
+ this.uploading.push(file.uid);
294
+ }
295
+ return isLt2M && fileType;
296
+ }
297
+ },
298
+ handelSuccess(response, file, fileList) {
299
+ console.log(response);
300
+ console.log(file);
301
+ console.log(fileList, "999");
302
+ if (
303
+ response &&
304
+ typeof response == "object" &&
305
+ "success" in response &&
306
+ !response.success
307
+ ) {
308
+ let nJson = JSON.parse(response.data.dataObj);
309
+ let nUrl = window.location.href;
310
+ if (process.env.NODE_ENV === "development") {
311
+ window.location.href =
312
+ process.env.API_ROOT + nJson.loginurl + "?url=" + nUrl;
313
+ } else {
314
+ window.location.href = nJson.loginurl + "?url=" + nUrl;
315
+ }
316
+ return;
317
+ }
318
+ let njson = {
319
+ name: file.name,
320
+ url: response.fileUrl,
321
+ goodsFileUrl: response.fileUrl,
322
+ uid: file.uid,
323
+ goodsFileType: this.type,
324
+ goodsFileName: response.fileCode,
325
+ status: "success",
326
+ };
327
+ //文件上传 需要从this.uploading中移除
328
+ let index = this.uploading.indexOf(file.uid);
329
+ this.uploading.splice(index, 1);
330
+
331
+ fileList.splice(fileList.indexOf(file), 1, njson);
332
+ console.log(fileList);
333
+ this.nFileList = fileList;
334
+ },
335
+ handelError(error, file, fileList) {
336
+ console.log(
337
+ response,
338
+ this.fileUploadUrl,
339
+ "handelErrorhandelErrorhandelErrorhandelErrorhandelErrorhandelErrorhandelErrorhandelError"
340
+ );
341
+ console.log(file);
342
+ console.log(fileList);
343
+ },
344
+ changeFile() {
345
+ if (this.nFileList.length >= this.picLimit) {
346
+ this.$message.error(
347
+ `最多上传${this.picLimit}${this.type == "0" ? "张图片" : "个文件"}`
348
+ );
349
+ return;
350
+ }
351
+ this.$refs.picUpload.$refs["upload-inner"].$el.dispatchEvent(
352
+ new MouseEvent("click")
353
+ );
354
+ },
355
+ getNetFile() {
356
+ if (this.nFileList.length >= this.picLimit) {
357
+ this.$message.error(
358
+ `最多上传${this.picLimit}${this.type == "0" ? "张图片" : "个文件"}`
359
+ );
360
+ this.fileUrl = "";
361
+ return;
362
+ }
363
+ if (validateURL(this.fileUrl)) {
364
+ let fileInfo = {
365
+ url: this.fileUrl,
366
+ goodsFileUrl: this.fileUrl,
367
+ name: this.fileUrl,
368
+ goodsFileType: this.type,
369
+ };
370
+ this.nFileList.push(fileInfo);
371
+ this.fileUrl = "";
372
+ } else {
373
+ this.$message.error("请输入正确的图片地址");
374
+ }
375
+ },
376
+ setPicList(response, file, fileList) {},
377
+ beyond() {
378
+ //图片个数超出的验证
379
+ this.$message.error("最多5张!");
380
+ },
381
+ setFileList() {
382
+ let nList = [];
383
+ console.log(this.imgUrlArrayList, "xx imgUrlArrayList");
384
+ if (this.nFileList.length > 0) {
385
+ nList = JSON.parse(JSON.stringify(this.nFileList));
386
+ }
387
+ this.checkList.forEach((res) => {
388
+ if (res.fileUrl.indexOf('http') > -1) {
389
+ nList.push({
390
+ url: res.fileUrl,
391
+ goodsFileUrl: res.fileUrl,
392
+ name: res.fileName,
393
+ });
394
+ console.log(nList, '无passshop')
395
+ } else if (res.fileUrl) {
396
+ nList.push({
397
+ url: `/paas/shop/${res.fileUrl}`,
398
+ goodsFileUrl: `/paas/shop/${res.fileUrl}`,
399
+ name: res.fileName,
400
+ });
401
+ console.log(nList, 'passshop')
402
+ }
403
+ });
404
+ this.imgUrlArrayList = this.fileListArray;
405
+ if (this.uploading.length > 0) {
406
+ this.$confirm(
407
+ "请确认所有文件都上传完成,继续操作会移除正在上传的文件!",
408
+ "提示", {
409
+ confirmButtonText: "确定",
410
+ cancelButtonText: "取消",
411
+ type: "warning",
412
+ }
413
+ ).then(() => {
414
+ this.$refs.picUpload.abort();
415
+ this.$emit("setFileList", nList);
416
+ this.diaVisible = false;
417
+ });
418
+ } else {
419
+ this.$emit("setFileList", nList);
420
+ this.diaVisible = false;
421
+ }
422
+ },
423
+ },
424
+ mounted() {
425
+ console.log(this.multiple, "multiple");
426
+ },
427
+ watch: {
428
+ visible() {
429
+ this.diaVisible = this.visible;
430
+ if (this.visible) {
431
+ if (
432
+ this.fileImgUrl &&
433
+ this.fileImgUrl.lastIndexOf("&fileRemark") > -1
434
+ ) {
435
+ let index = this.fileImgUrl.lastIndexOf("=");
436
+ console.log(index, index, "0000");
437
+ if (index > -1) {
438
+ console.log(index);
439
+ this.skuNo = this.fileImgUrl.slice(index + 1);
440
+ }
441
+ } else {
442
+ this.skuNo = "";
443
+ }
444
+ console.log(this.skuNo, "00000");
445
+ let nList = [],
446
+ delList = [];
447
+ if (this.fileList.length > 0) {
448
+ nList = JSON.parse(JSON.stringify(this.fileList));
449
+ //查找删除后的存在的对象
450
+ nList.forEach((el, index) => {
451
+ if (this.fileListArray.indexOf(el.goodsFileUrl || el.url) >= 0) {
452
+ delList.push(el.goodsFileUrl || el.url);
453
+ }
454
+ });
455
+ // console.log(delList, this.checkList, "this.checkList");
456
+ this.checkList.forEach((el, index) => {
457
+ if (delList.indexOf(`/paas/shop/${el.fileUrl}`) < 0 && el.fileUrl.indexOf('http') < 0) {
458
+ this.checkList.splice(index, 1);
459
+ } else if (el.fileUrl.indexOf('/paas/shop/') < 0 && delList.indexOf(el.fileUrl) < 0) {
460
+ this.checkList.splice(index, 1);
461
+ }
462
+ });
463
+ this.fileListArray = [];
464
+ nList.forEach((item) => {
465
+ item.url = item.goodsFileUrl || item.url;
466
+ this.fileListArray.push(item.url);
467
+ });
468
+ } else {
469
+ this.checkList = [];
470
+ this.fileListArray = [];
471
+ }
472
+ this.$nextTick(() => {
473
+ console.log(this.$refs);
474
+ if (this.$refs) {
475
+ this.$refs.picUpload.$refs["upload-inner"].$el.style.display =
476
+ "none";
477
+ }
478
+ });
479
+ this.nFileList = nList;
480
+ }
481
+ if (this.type && this.type == "1") {
482
+ this.title = "选择文件";
483
+ } else {
484
+ this.title = "选择图片";
485
+ }
486
+ },
487
+ limit() {
488
+ this.picLimit = this.limit || 1;
489
+ },
490
+ fileList() {
491
+ let nList = [];
492
+ if (this.fileList.length > 0) {
493
+ nList = JSON.parse(JSON.stringify(this.fileList));
494
+ }
495
+ this.nFileList = nList;
496
+ console.log(this.nFileList);
497
+ },
498
+ },
499
+ };
500
+ </script>
501
+
502
+ <style rel="stylesheet/scss" lang="scss" scoped>
503
+ .dialog-form {
504
+ width: 100%;
505
+ box-sizing: border-box;
506
+ padding-left: 20px;
507
+
508
+ .dialog-form-item {
509
+ width: 100% !important;
510
+ margin-left: 0 !important;
511
+ }
512
+ }
513
+
514
+ .el-dialog {
515
+ border-radius: 6px;
516
+ }
517
+
518
+ .file-btn {
519
+ position: relative;
520
+ overflow: hidden;
521
+ }
522
+
523
+ .file-input {
524
+ display: none;
525
+ }
526
+
527
+ .cor-red {
528
+ color: #ff0000;
529
+ }
530
+
531
+ .image {
532
+ width: 100px;
533
+ height: 100px;
534
+ display: block;
535
+ }
536
+
537
+ .clearfix:before,
538
+ .clearfix:after {
539
+ display: table;
540
+ content: "";
541
+ }
542
+
543
+ .clearfix:after {
544
+ clear: both;
545
+ }
546
+
547
+ .elcard {
548
+ margin-top: 20px;
549
+ }
550
+ </style>
551
+ <style lang="scss">
552
+ .file-box {
553
+ .el-checkbox {
554
+ margin-left: 30px;
555
+ position: relative;
556
+
557
+ .el-checkbox__input {
558
+ position: absolute;
559
+ top: 0;
560
+ left: 0;
561
+ }
562
+
563
+ .el-checkbox__label {
564
+ padding: 0;
565
+ }
566
+ }
567
+
568
+ .el-checkbox-group {
569
+ height: 230px;
570
+ overflow-y: scroll;
571
+ }
572
+
573
+ .el-upload-list--picture-card .el-upload-list__item {
574
+ width: 100px;
575
+ height: 100px;
576
+ }
577
+ }
578
+ </style>