Merge remote-tracking branch 'origin/master'

master
夜笙歌 3 months ago
commit c1104a21ff

@ -26,4 +26,14 @@ public interface RemoteFileService
*/
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<SysFile> upload(@RequestPart(value = "file") MultipartFile file);
/**
*
*
* @param file
* @return
*/
@PostMapping(value = "/upload2SharePath", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<SysFile> upload2SharePath(@RequestPart(value = "file") MultipartFile file);
}

@ -30,6 +30,11 @@ public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileServ
{
return R.fail("上传文件失败:" + throwable.getMessage());
}
@Override
public R<SysFile> upload2SharePath(MultipartFile file) {
return R.fail("上传文件到共享文件夹失败:" + throwable.getMessage());
}
};
}
}

@ -45,4 +45,27 @@ public class SysFileController
return R.fail(e.getMessage());
}
}
/**
*
*/
@PostMapping("upload2SharePath")
public R<SysFile> upload2SharePath(MultipartFile file)
{
try
{
// 上传并返回访问地址
String url = sysFileService.uploadFile2SharePath(file);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(url));
sysFile.setUrl(url);
return R.ok(sysFile);
}
catch (Exception e)
{
log.error("上传文件到共享文件夹失败", e);
return R.fail(e.getMessage());
}
}
}

@ -43,4 +43,9 @@ public class FastDfsSysFileServiceImpl implements ISysFileService
IoUtils.closeQuietly(inputStream);
return domain + "/" + storePath.getFullPath();
}
@Override
public String uploadFile2SharePath(MultipartFile file) throws Exception {
return null;
}
}

@ -17,4 +17,13 @@ public interface ISysFileService
* @throws Exception
*/
public String uploadFile(MultipartFile file) throws Exception;
/**
*
*
* @param file
* @return 访
* @throws Exception
*/
public String uploadFile2SharePath(MultipartFile file) throws Exception;
}

@ -33,6 +33,19 @@ public class LocalSysFileServiceImpl implements ISysFileService
@Value("${file.path}")
private String localFilePath;
/**
*
*/
@Value("${file.sharePath}")
public String shareFilePath;
/**
*
*/
@Value("${file.sharePrefix}")
public String shareFilePrefix;
/**
*
*
@ -47,4 +60,21 @@ public class LocalSysFileServiceImpl implements ISysFileService
String url = domain + localFilePrefix + name;
return url;
}
/**
*
*
* @param file
* @return 访
* @throws Exception
*/
@Override
public String uploadFile2SharePath(MultipartFile file) throws Exception
{
String name = FileUploadUtils.upload(shareFilePath, file);
String url = domain + shareFilePrefix + name;
return url;
}
}

@ -46,4 +46,9 @@ public class MinioSysFileServiceImpl implements ISysFileService
IoUtils.closeQuietly(inputStream);
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
}
@Override
public String uploadFile2SharePath(MultipartFile file) throws Exception {
return null;
}
}

@ -3,6 +3,7 @@ package com.hw.mes.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.hw.common.core.constant.MesConstants;
import com.hw.common.core.domain.R;
import com.hw.common.core.utils.StringUtils;
import com.hw.common.core.utils.uuid.UUID;
@ -24,14 +25,13 @@ import org.springframework.web.multipart.MultipartFile;
/**
* Controller
*
*
* @author Yinq
* @date 2024-01-26
*/
@RestController
@RequestMapping("/baseAttachInfo")
public class MesBaseAttachInfoController extends BaseController
{
public class MesBaseAttachInfoController extends BaseController {
@Autowired
private IMesBaseAttachInfoService mesBaseAttachInfoService;
@ -43,8 +43,7 @@ public class MesBaseAttachInfoController extends BaseController
*/
@RequiresPermissions("mes:baseAttachInfo:list")
@GetMapping("/list")
public TableDataInfo list(MesBaseAttachInfo mesBaseAttachInfo)
{
public TableDataInfo list(MesBaseAttachInfo mesBaseAttachInfo) {
startPage();
List<MesBaseAttachInfo> list = mesBaseAttachInfoService.selectMesBaseAttachInfoList(mesBaseAttachInfo);
return getDataTable(list);
@ -56,8 +55,7 @@ public class MesBaseAttachInfoController extends BaseController
@RequiresPermissions("mes:baseAttachInfo:export")
@Log(title = "附件信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, MesBaseAttachInfo mesBaseAttachInfo)
{
public void export(HttpServletResponse response, MesBaseAttachInfo mesBaseAttachInfo) {
List<MesBaseAttachInfo> list = mesBaseAttachInfoService.selectMesBaseAttachInfoList(mesBaseAttachInfo);
ExcelUtil<MesBaseAttachInfo> util = new ExcelUtil<MesBaseAttachInfo>(MesBaseAttachInfo.class);
util.exportExcel(response, list, "附件信息数据");
@ -68,8 +66,7 @@ public class MesBaseAttachInfoController extends BaseController
*/
@RequiresPermissions("mes:baseAttachInfo:query")
@GetMapping(value = "/{attachId}")
public AjaxResult getInfo(@PathVariable("attachId") Long attachId)
{
public AjaxResult getInfo(@PathVariable("attachId") Long attachId) {
return success(mesBaseAttachInfoService.selectMesBaseAttachInfoByAttachId(attachId));
}
@ -79,8 +76,7 @@ public class MesBaseAttachInfoController extends BaseController
@RequiresPermissions("mes:baseAttachInfo:add")
@Log(title = "附件信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody MesBaseAttachInfo mesBaseAttachInfo)
{
public AjaxResult add(@RequestBody MesBaseAttachInfo mesBaseAttachInfo) {
return toAjax(mesBaseAttachInfoService.insertMesBaseAttachInfo(mesBaseAttachInfo));
}
@ -90,8 +86,7 @@ public class MesBaseAttachInfoController extends BaseController
@RequiresPermissions("mes:baseAttachInfo:edit")
@Log(title = "附件信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody MesBaseAttachInfo mesBaseAttachInfo)
{
public AjaxResult edit(@RequestBody MesBaseAttachInfo mesBaseAttachInfo) {
return toAjax(mesBaseAttachInfoService.updateMesBaseAttachInfo(mesBaseAttachInfo));
}
@ -100,26 +95,29 @@ public class MesBaseAttachInfoController extends BaseController
*/
@RequiresPermissions("mes:baseAttachInfo:remove")
@Log(title = "附件信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{attachIds}")
public AjaxResult remove(@PathVariable Long[] attachIds)
{
@DeleteMapping("/{attachIds}")
public AjaxResult remove(@PathVariable Long[] attachIds) {
return toAjax(mesBaseAttachInfoService.deleteMesBaseAttachInfoByAttachIds(attachIds));
}
/**
* MES
* @param file
* @param processId
*
* @param file
* @param processId
* @param attachType
* @return
*/
@PostMapping(value = "/drawingFileUpload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public AjaxResult drawingFileUpload(@RequestPart(value = "file") MultipartFile file, Long processId, String attachType){
if (!file.isEmpty())
{
public AjaxResult drawingFileUpload(@RequestPart(value = "file") MultipartFile file, Long processId, String attachType) {
if (!file.isEmpty()) {
R<SysFile> fileResult = null;
try {
fileResult = remoteFileService.upload(file);
if (attachType.equals(MesConstants.MES_ATTACH_TYPE_DRAWING)) {
fileResult = remoteFileService.upload2SharePath(file);
} else {
fileResult = remoteFileService.upload(file);
}
} catch (Exception e) {
return error("文件服务异常,请联系管理员");
}

@ -192,7 +192,7 @@
icon="el-icon-search"
size="mini"
type="success"
@click="handleSOP(scope.row)"
@click="handleSop(scope.row)"
v-if="scope.row.processType !== PROCESS_TYPE.AUTO && scope.row.children != null && scope.row.children !== undefined"
>SOP
</el-button>
@ -242,9 +242,9 @@
single
ref="drawingUpload"
list-type="picture-card"
action="uploadImgUrl"
action="uploadDrawingUrl"
:auto-upload="true"
:limit="limit"
:limit="drawingLimit"
:headers="headers"
:before-upload="handleBeforeUpload"
:http-request="httpRequest"
@ -275,7 +275,7 @@
</span>
<span
class="el-upload-list__item-delete"
@click="handleRemove(file)"
@click="handleRemoveDrawing(file)"
>
<i class="el-icon-delete"></i>
</span>
@ -306,7 +306,7 @@
list-type="picture-card"
action="uploadImgUrl"
:auto-upload="true"
:limit="limit"
:limit="sopLimit"
:headers="headers"
:before-upload="handleBeforeUpload"
:http-request="httpSopRequest"
@ -337,7 +337,7 @@
</span>
<span
class="el-upload-list__item-delete"
@click="handleRemove(file)"
@click="handleRemoveSop(file)"
>
<i class="el-icon-delete"></i>
</span>
@ -423,15 +423,22 @@ export default {
},
props: {
value: [String, Object, Array, Number],
//
limit: {
// sop
sopLimit: {
type: Number,
default: 10,
},
//
drawingLimit: {
type: Number,
default: 3,
default: 10,
},
// (MB)
// (K)
fileSize: {
type: Number,
default: 5,
default: 500000,
},
// , ['png', 'jpg', 'jpeg']
fileType: {
@ -456,6 +463,7 @@ export default {
checkedMesProductPlanList: [],
//
uploadImgUrl: process.env.VUE_APP_BASE_API,
uploadDrawingUrl: process.env.VUE_APP_BASE_API + "/file/upload2SharePath",
// name
activeName: "columnInfo",
//
@ -509,15 +517,19 @@ export default {
// Sop
groupSopFile: {},
// Sop
groupSopFileList: [],
groupSopFileList: {},
// SOP
uploadSopList: [],
//
groupAttachFile: {},
//
groupAttachFileList: [],
groupAttachFileList: {},
//
uploadAttachList: [],
// SOP
uploadSopList: [],
uploadAttachList: {},
previewSopFlag: {},//SOP
previewDrawingFlag: {},//
//-
addProductPlanObject: {},
headers: {
@ -768,10 +780,10 @@ export default {
if (processUser.userId && processUser.userId !== '') {
toUpdatedProductPlan.userId = processUser.userId;
if(processUser.planBeginTime && processUser.planBeginTime!=='' &&
processUser.planEndTime && processUser.planEndTime!=='' &&
processUser.planBeginTime >= processUser.planEndTime){
this.$modal.msgError("序号"+(parseInt(e.index)+1)+":计划开始时间须小于计划结束时间");
if (processUser.planBeginTime && processUser.planBeginTime !== '' &&
processUser.planEndTime && processUser.planEndTime !== '' &&
processUser.planBeginTime >= processUser.planEndTime) {
this.$modal.msgError("序号" + (parseInt(e.index) + 1) + ":计划开始时间须小于计划结束时间");
return;
}
toUpdatedProductPlan.planBeginTime = processUser.planBeginTime;
@ -802,11 +814,11 @@ export default {
return;
}
if(e.firstFlag && e.firstFlag==="1"){//
if (e.firstFlag && e.firstFlag === "1") {//
let dispatchAmount = e.dispatchAmount;
const numericAmount = parseInt(dispatchAmount, 10);
if (!this.isPositiveInteger(numericAmount) || numericAmount <= 0) {
this.$modal.msgError( "派工数量须为大于等于0的正整数");
this.$modal.msgError("派工数量须为大于等于0的正整数");
return;
}
@ -1045,11 +1057,13 @@ export default {
window.open(file.url);
},
/** 查看图纸 */
handleDrawing(row) {
this.fileList = [];
this.uploadAttachList = [];
if (row.oldRowFlag) {
if (row.oldRowFlag && (!this.previewDrawingFlag[row.dispatchCode + "-" + row.processId]
|| this.previewDrawingFlag[row.dispatchCode + "-" + row.processId] !== "1")) {
this.previewDrawingFlag[row.dispatchCode + "-" + row.processId] = "1";
getDispatchDrawingList(row.dispatchCode, row.processId).then(res => {
let attachList = res.data;
attachList.forEach(e => {
@ -1057,52 +1071,36 @@ export default {
previewFile.url = e.attachPath;
previewFile.name = e.attachName;
this.fileList.push(previewFile);
this.uploadAttachList.push(e.attachId);
})
})
}
this.groupAttachFileList.forEach(e => {
if (e.dispatchCode === row.dispatchCode && e.processId === row.processId) {
let previewFile = {};
previewFile.url = e.attachPath;
previewFile.name = e.attachName;
this.fileList.push(previewFile);
this.uploadAttachList.push(e.attachId);
}
})
this.addProductPlanObject = row;
this.blueprintModel = true;
},
let groupAttachFile = {};
groupAttachFile.dispatchCode = row.dispatchCode;
groupAttachFile.processId = row.processId;
groupAttachFile.attachId = e.attachId;
groupAttachFile.attachPath = e.attachPath;
groupAttachFile.attachName = e.attachName;
let groupAttachFileList = this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = groupAttachFileList ? this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(groupAttachFile);
/** 查看SOP附件 */
handleSOP(row) {
this.fileList = [];
this.uploadSopList = [];
if (row.oldRowFlag) {
getDispatchSOPAttachList(row.dispatchCode, row.processId).then(res => {
let attachList = res.data;
attachList.forEach(e => {
let uploadAttachList = this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = uploadAttachList ? this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(e.attachId);
})
})
} else {
if (this.groupAttachFileList[row.dispatchCode + "-" + row.processId]) {
this.groupAttachFileList[row.dispatchCode + "-" + row.processId].forEach(e => {
let previewFile = {};
previewFile.url = e.attachPath;
previewFile.name = e.attachName;
this.fileList.push(previewFile);
this.uploadSopList.push(e.attachId);
})
})
}
}
this.groupSopFileList.forEach(e => {
if (e.dispatchCode === row.dispatchCode && e.processId === row.processId) {
let previewFile = {};
previewFile.url = e.attachPath;
previewFile.name = e.attachName;
this.fileList.push(previewFile);
this.uploadSopList.push(e.attachId);
}
})
this.addProductPlanObject = row;
this.sopViewModel = true;
this.blueprintModel = true;
},
//
@ -1112,28 +1110,14 @@ export default {
if (mesProductPlan.dispatchCode === this.addProductPlanObject.dispatchCode
&& mesProductPlan.processId === this.addProductPlanObject.processId) {
this.mesProductPlanList[i].attachId = this.uploadAttachList.join(",");
this.mesProductPlanList[i].attachId = this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].join(",");
}
}
this.uploadAttachList = [];
// this.uploadAttachList = [];
this.addProductPlanObject = null;
this.blueprintModel = false;
},
//SOP
sopFileUploadSubmit() {
for (let i = 0; i < this.mesProductPlanList.length; i++) {
let mesProductPlan = this.mesProductPlanList[i];
if (mesProductPlan.dispatchCode === this.addProductPlanObject.dispatchCode
&& mesProductPlan.processId === this.addProductPlanObject.processId) {
this.mesProductPlanList[i].sopId = this.uploadSopList.join(",");
}
}
this.uploadSopList = [];
this.addProductPlanObject = null;
this.sopViewModel = false;
},
//
httpRequest(file) {
@ -1145,6 +1129,10 @@ export default {
formData.append("attachType", "1");
uploadFile(formData).then(
(res) => {
let uploadAttachList = this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = uploadAttachList ? this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(res.attachId);
//
let groupAttachFile = {};
groupAttachFile.dispatchCode = this.addProductPlanObject.dispatchCode;
@ -1152,8 +1140,9 @@ export default {
groupAttachFile.attachId = res.attachId;
groupAttachFile.attachPath = res.imgUrl;
groupAttachFile.attachName = res.fileName;
this.groupAttachFileList.push(groupAttachFile);
this.uploadAttachList.push(res.attachId);
let groupAttachFileList = this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = groupAttachFileList ? this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(groupAttachFile);
}, (err) => {
this.$refs.drawingUpload.clearFiles(); //
this.$modal.closeLoading();
@ -1161,17 +1150,110 @@ export default {
);
},
//
handleRemoveDrawing(file) {
let arrPic = this.$refs.drawingUpload.uploadFiles;
let index = arrPic.indexOf(file);
this.uploadAttachList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].splice(index, 1);
// this.uploadAttachList.splice(index, 1);
// this.fileList.splice(index, 1);
this.groupAttachFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].splice(index, 1);
let num = 0;
arrPic.map((item) => {
if (item.uid === file.uid) {
arrPic.splice(num, 1);
}
num++;
});
},
//SOP
/** 查看sop */
handleSop(row) {
this.fileList = [];
if (row.oldRowFlag && (!this.previewSopFlag[row.dispatchCode + "-" + row.processId]
|| this.previewSopFlag[row.dispatchCode + "-" + row.processId] !== "1")) {
this.previewSopFlag[row.dispatchCode + "-" + row.processId] = "1";
getDispatchSOPAttachList(row.dispatchCode, row.processId).then(res => {
let attachList = res.data;
attachList.forEach(e => {
let previewFile = {};
previewFile.url = e.attachPath;
previewFile.name = e.attachName;
this.fileList.push(previewFile);
let groupSopFile = {};
groupSopFile.dispatchCode = row.dispatchCode;
groupSopFile.processId = row.processId;
groupSopFile.attachId = e.attachId;
groupSopFile.attachPath = e.attachPath;
groupSopFile.attachName = e.attachName;
let groupSopFileList = this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = groupSopFileList ? this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(groupSopFile);
let uploadSopList = this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = uploadSopList ? this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(e.attachId);
})
})
} else {
if (this.groupSopFileList[row.dispatchCode + "-" + row.processId]) {
this.groupSopFileList[row.dispatchCode + "-" + row.processId].forEach(e => {
let previewFile = {};
previewFile.url = e.attachPath;
previewFile.name = e.attachName;
this.fileList.push(previewFile);
})
}
}
this.addProductPlanObject = row;
this.sopViewModel = true;
},
//sop
sopFileUploadSubmit() {
for (let i = 0; i < this.mesProductPlanList.length; i++) {
let mesProductPlan = this.mesProductPlanList[i];
if (mesProductPlan.dispatchCode === this.addProductPlanObject.dispatchCode
&& mesProductPlan.processId === this.addProductPlanObject.processId) {
this.mesProductPlanList[i].sopId = this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].join(",");
}
}
// this.uploadAttachList = [];
this.addProductPlanObject = null;
this.sopViewModel = false;
},
//Sop
httpSopRequest(file) {
//
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
formData.append("processId", this.addProductPlanObject.processId);
formData.append("attachType", "1");
formData.append("attachType", "2");
uploadFile(formData).then(
(res) => {
let uploadSopList = this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = uploadSopList ? this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(res.attachId);
//
let groupSopFile = {};
groupSopFile.dispatchCode = this.addProductPlanObject.dispatchCode;
@ -1179,8 +1261,9 @@ export default {
groupSopFile.attachId = res.attachId;
groupSopFile.attachPath = res.imgUrl;
groupSopFile.attachName = res.fileName;
this.groupSopFileList.push(groupSopFile);
this.uploadSopList.push(res.attachId);
let groupSopFileList = this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId];
this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] = groupSopFileList ? this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId] : [];
this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].push(groupSopFile);
}, (err) => {
this.$refs.drawingUpload.clearFiles(); //
this.$modal.closeLoading();
@ -1188,21 +1271,12 @@ export default {
);
},
//
uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
this.form.monitorPic = this.fileList[0];
this.$modal.closeLoading();
}
},
//
handleRemove(file) {
handleRemoveSop(file) {
let arrPic = this.$refs.drawingUpload.uploadFiles;
let index = arrPic.indexOf(file);
this.uploadList.splice(index, 1);
this.uploadSopList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].splice(index, 1);
this.groupSopFileList[this.addProductPlanObject.dispatchCode + "-" + this.addProductPlanObject.processId].splice(index, 1);
let num = 0;
arrPic.map((item) => {
if (item.uid === file.uid) {
@ -1211,6 +1285,11 @@ export default {
num++;
});
},
// loading
handleBeforeUpload(file) {
// let isImg = false;

Loading…
Cancel
Save