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