|
@@ -23,15 +23,15 @@
|
|
|
</view>
|
|
|
|
|
|
<view class="camera-scan-code-table">
|
|
|
- <view class="camera-scan-code-table-pair" v-if="joinRecord.imgname!=''" >
|
|
|
+ <view class="camera-scan-code-table-pair" v-if="joinRecord.imgname!=''">
|
|
|
<view class="camera-scan-code-table-pair-label">
|
|
|
<text>已存图片(最多能存{{joinRecord.num}}张)</text>
|
|
|
</view>
|
|
|
- <view class="camera-scan-code-table-pair-value">
|
|
|
+ <view class="camera-scan-code-table-pair-value">
|
|
|
<text class="txt">{{joinRecord.imgname}}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
-
|
|
|
+
|
|
|
<view class="camera-scan-code-table-pair">
|
|
|
<view class="camera-scan-code-table-pair-label">
|
|
|
<text>待存图片</text>
|
|
@@ -59,7 +59,7 @@
|
|
|
<view class="camera-scan-code-back-wrap">
|
|
|
<button type="default" class="btn bg-blue round" @click="navigateBack">返回拍照</button>
|
|
|
</view>
|
|
|
-
|
|
|
+
|
|
|
<view class="camera-scan-code-back-wrap">
|
|
|
<button type="default" class="btn bg-blue round" @click="navigateExit">退出拍照</button>
|
|
|
</view>
|
|
@@ -93,15 +93,15 @@
|
|
|
senum: 0,
|
|
|
photoitem: "",
|
|
|
productno: "",
|
|
|
- descb:"",
|
|
|
+ descb: "",
|
|
|
part: "",
|
|
|
date: "",
|
|
|
- partno : "",
|
|
|
- num : 0,
|
|
|
- status : 1,
|
|
|
- urlspl : "",
|
|
|
- imgname : "",
|
|
|
- urlpdt : "",
|
|
|
+ partno: "",
|
|
|
+ num: 0,
|
|
|
+ status: 1,
|
|
|
+ urlspl: "",
|
|
|
+ imgname: "",
|
|
|
+ urlpdt: "",
|
|
|
pid: 0,
|
|
|
workorder: "",
|
|
|
invname: ""
|
|
@@ -148,11 +148,11 @@
|
|
|
if (record != null) {
|
|
|
this.num = record.num;
|
|
|
this.dyImgName = record.workorder + record.invname + record.part + record.photoitem + record.partno;
|
|
|
- this.joinRecord = record
|
|
|
- this.imgArrLen = record.imgname.indexOf(",")>-1? record.imgname.split(",").length : (record.imgname!=''?1:0)
|
|
|
+ this.joinRecord = record
|
|
|
+ this.imgArrLen = record.imgname.indexOf(",") > -1 ? record.imgname.split(",").length : (record.imgname != '' ? 1 : 0)
|
|
|
// 计算最小可用编号
|
|
|
this.calculateMinAvailableNumber();
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -170,7 +170,7 @@
|
|
|
url: `/pages/work/record/Camera?id=${this.recordId}&num=${this.num}`
|
|
|
})
|
|
|
},
|
|
|
- navigateExit(){
|
|
|
+ navigateExit() {
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/work/record/InfoDetail?id=${this.joinRecord.pid}`
|
|
|
})
|
|
@@ -195,23 +195,23 @@
|
|
|
},
|
|
|
saveImage() {
|
|
|
//保存图片进入相册文件
|
|
|
- if(this.path==''){
|
|
|
+ if (this.path == '') {
|
|
|
uni.showToast({
|
|
|
- title: '没有拍照文件',
|
|
|
- icon: 'error',
|
|
|
- duration: 2000
|
|
|
+ title: '没有拍照文件',
|
|
|
+ icon: 'error',
|
|
|
+ duration: 2000
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
- if(this.imgArrLen == this.joinRecord.num){
|
|
|
+ if (this.imgArrLen == this.joinRecord.num) {
|
|
|
uni.showToast({
|
|
|
- title: '拍照图片已满',
|
|
|
- icon: 'error',
|
|
|
- duration: 2000
|
|
|
+ title: '拍照图片已满',
|
|
|
+ icon: 'error',
|
|
|
+ duration: 2000
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/*
|
|
|
uni.saveImageToPhotosAlbum({
|
|
|
filePath: this.path,
|
|
@@ -227,73 +227,74 @@
|
|
|
},
|
|
|
}); */
|
|
|
|
|
|
-
|
|
|
let updateImgs = ''
|
|
|
let updateNames = ''
|
|
|
let updateStatus = ''
|
|
|
-
|
|
|
+
|
|
|
// 动态生成最小的可用图片编号
|
|
|
const getMinAvailableNumber = () => {
|
|
|
- if(this.imgArrLen === 0) return 1;
|
|
|
-
|
|
|
+ if (this.imgArrLen === 0) return 1;
|
|
|
+
|
|
|
// 从已有的图片名称中提取编号
|
|
|
- const existingNumbers = new Set<number>();
|
|
|
- const imgNames = this.joinRecord.imgname.split(',');
|
|
|
-
|
|
|
- imgNames.forEach((name : string) => {
|
|
|
- if(name != '') {
|
|
|
- // 提取图片名称中的数字部分
|
|
|
- const match = name.match(/-(\d+)\.jpg$/);
|
|
|
- if(match != null && match[1] != null) {
|
|
|
- const numStr = match[1] as string;
|
|
|
- existingNumbers.add(parseInt(numStr));
|
|
|
+ const existingNumbers = new Set<number>();
|
|
|
+ const imgNames = this.joinRecord.imgname.split(',');
|
|
|
+
|
|
|
+ imgNames.forEach((name : string) => {
|
|
|
+ if (name != '') {
|
|
|
+ // 提取图片名称中的数字部分
|
|
|
+ const match = name.match(/-(\d+)\.jpg$/);
|
|
|
+ if (match != null && match[1] != null) {
|
|
|
+ const numStr = match[1] as string;
|
|
|
+ existingNumbers.add(parseInt(numStr));
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
+ });
|
|
|
+
|
|
|
// 查找1到所需图片数量之间最小的未使用编号
|
|
|
- for(let i = 1; i <= this.joinRecord.num; i++) {
|
|
|
- if(!existingNumbers.has(i)) {
|
|
|
+ for (let i = 1; i <= this.joinRecord.num; i++) {
|
|
|
+ if (!existingNumbers.has(i)) {
|
|
|
return i;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 如果1到所需数量都被使用了,则使用当前数量+1
|
|
|
return this.imgArrLen + 1;
|
|
|
};
|
|
|
-
|
|
|
+
|
|
|
const minAvailableNumber = getMinAvailableNumber();
|
|
|
- const newImgName = this.dyImgName + "-" + minAvailableNumber + ".jpg";
|
|
|
-
|
|
|
- if(this.imgArrLen == 0){
|
|
|
- updateImgs = this.path
|
|
|
+ const newImgName = this.dyImgName + "-" + minAvailableNumber + ".jpg";
|
|
|
+ const relativePath = `/uploadImgs/${newImgName}`
|
|
|
+
|
|
|
+ if (this.imgArrLen == 0) {
|
|
|
+ updateImgs = relativePath
|
|
|
updateNames = newImgName;
|
|
|
- }else{
|
|
|
- updateImgs = this.joinRecord.urlpdt + "," + this.path
|
|
|
+ } else {
|
|
|
+ updateImgs = this.joinRecord.urlpdt + "," + relativePath
|
|
|
updateNames = this.joinRecord.imgname + "," + newImgName;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
let updatedData = "imgname='" + updateNames + "',urlpdt='" + updateImgs + "'"
|
|
|
-
|
|
|
- if(this.joinRecord.num === this.imgArrLen + 1 ){
|
|
|
+
|
|
|
+ if (this.joinRecord.num === this.imgArrLen + 1) {
|
|
|
updateStatus = "status='3'"
|
|
|
updatedData = updatedData + "," + updateStatus
|
|
|
- }else if(this.joinRecord.status === 1){
|
|
|
+ } else if (this.joinRecord.status === 1) {
|
|
|
updateStatus = "status='2'"
|
|
|
updatedData = updatedData + "," + updateStatus
|
|
|
}
|
|
|
console.log(updatedData)
|
|
|
|
|
|
updateData('app_media_record', updatedData, 'sxid', this.recordId.toString()).then((res : UTSJSONObject) => {
|
|
|
- let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>()
|
|
|
- if (dataList != null && dataList.length > 0) {
|
|
|
- console.log(dataList[0])
|
|
|
+ let data = res?.['data'] as boolean ?? false
|
|
|
+ if (data != null && data== true) {
|
|
|
uni.showToast({
|
|
|
title: "保存成功!",
|
|
|
});
|
|
|
+ const newPath = `${uni.env.USER_DATA_PATH}/uploadImgs/${newImgName}`
|
|
|
+ this.renameFile(this.path, newPath)
|
|
|
/*
|
|
|
uni.reLaunch({
|
|
|
- url: '/pages/record/camera-scan-code?path='+this.path+'&recordId='+this.recordId+'&num='+this.num
|
|
|
+ url: '/pages/record/camera-scan-code?path='+this.path+'&recordId='+this.recordId+'&num='+this.num
|
|
|
}); */
|
|
|
}
|
|
|
});
|
|
@@ -306,6 +307,30 @@
|
|
|
loop: false // 是否可循环预览
|
|
|
});
|
|
|
},
|
|
|
+ renameFile(oldPath:string, newPath:string) {
|
|
|
+ // 先拷贝文件到新路径
|
|
|
+ uni.getFileSystemManager().copyFile({
|
|
|
+ srcPath: oldPath,
|
|
|
+ destPath: newPath,
|
|
|
+ success: function () {
|
|
|
+ // 可选:删除原文件,如果你需要释放空间的话
|
|
|
+ uni.getFileSystemManager().unlink({
|
|
|
+ filePath: oldPath,
|
|
|
+ success: function () {
|
|
|
+ console.log('原文件已删除');
|
|
|
+ },
|
|
|
+ fail: function (unlinkErr) {
|
|
|
+ console.error('删除原文件失败', unlinkErr);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ console.log('文件重命名成功');
|
|
|
+ },
|
|
|
+ fail: function (copyErr) {
|
|
|
+ console.error('拷贝文件失败', copyErr);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
handleScanCode(ev : UniCameraScanCodeEvent) {
|
|
|
const deatil = ev.detail;
|
|
|
this.result = {
|
|
@@ -315,34 +340,34 @@
|
|
|
},
|
|
|
// 计算最小的可用图片编号
|
|
|
calculateMinAvailableNumber() {
|
|
|
- if(this.imgArrLen === 0) {
|
|
|
+ if (this.imgArrLen === 0) {
|
|
|
this.minAvailableNumber = 1;
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 从已有的图片名称中提取编号
|
|
|
const existingNumbers = new Set<number>();
|
|
|
const imgNames = this.joinRecord.imgname.split(',');
|
|
|
-
|
|
|
+
|
|
|
imgNames.forEach((name : string) => {
|
|
|
- if(name != '') {
|
|
|
+ if (name != '') {
|
|
|
// 提取图片名称中的数字部分
|
|
|
const match = name.match(/-(\d+)\.jpg$/);
|
|
|
- if(match != null && match[1] != null) {
|
|
|
+ if (match != null && match[1] != null) {
|
|
|
const numStr = match[1] as string;
|
|
|
existingNumbers.add(parseInt(numStr));
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
// 查找1到所需图片数量之间最小的未使用编号
|
|
|
- for(let i = 1; i <= this.joinRecord.num; i++) {
|
|
|
- if(!existingNumbers.has(i)) {
|
|
|
+ for (let i = 1; i <= this.joinRecord.num; i++) {
|
|
|
+ if (!existingNumbers.has(i)) {
|
|
|
this.minAvailableNumber = i;
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 如果1到所需数量都被使用了,则使用当前数量+1
|
|
|
this.minAvailableNumber = this.imgArrLen + 1;
|
|
|
},
|
|
@@ -378,9 +403,9 @@
|
|
|
.camera-scan-code-table-pair-value {
|
|
|
flex-grow: 2;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.camera-scan-code-table-pair-value .txt {
|
|
|
- font-size: 14px;
|
|
|
+ font-size: 14px;
|
|
|
}
|
|
|
|
|
|
.camera-scan-code-table-top-line {
|