From 5a7a95768b4a31a3bc3b0ef45316d63f314c2d01 Mon Sep 17 00:00:00 2001 From: Swanky <413564165@qq.com> Date: Sun, 3 Mar 2024 21:27:48 +0800 Subject: [PATCH] 1 --- App.vue | 2 +- pages/lssjgl/lssjgl.vue | 108 ++++++++++++++++++++++++++++++++-- pages/sjsb/sjsb.vue | 87 +++++++++++++++++---------- pages/workbench/workbench.vue | 2 +- 4 files changed, 160 insertions(+), 39 deletions(-) diff --git a/App.vue b/App.vue index 996d61e..de698f1 100644 --- a/App.vue +++ b/App.vue @@ -35,7 +35,7 @@ } }) } - }, + }, fail(err) { console.log('error', err); if (token) { diff --git a/pages/lssjgl/lssjgl.vue b/pages/lssjgl/lssjgl.vue index 3e82084..cd332a3 100644 --- a/pages/lssjgl/lssjgl.vue +++ b/pages/lssjgl/lssjgl.vue @@ -1,5 +1,8 @@ @@ -29,10 +35,21 @@ data() { return { datas: [], - submiting: false + submiting: false, + token: '', + successDatas: [] } }, - onLoad() {}, + onLoad() { + uni.getStorage({ + key: 'token', + success: (resp) => { + this.token = resp.data; + }, + fail(err) {}, + complete: () => {} + }) + }, onShow(e) { console.log('onshow', e) uni.getStorage({ @@ -45,8 +62,90 @@ }) }, methods: { + _uploadFiles(index, paths, callback, resultUrls) { + if (!resultUrls) { + resultUrls = [] + } + if (paths[index]) { + uni.uploadFile({ + url: `${helper.serverUrl}/system/oss/upload`, + method: 'POST', + header: { + Authorization: `Bearer ${this.token}` + }, + files: [{ + uri: paths[index] + }], + // name: 'file', + success: (resp) => { + let data = resp.data; + if (typeof(resp.data) === 'string') { + data = JSON.parse(resp.data); + } + resultUrls.push(data.data.url) + this._uploadFiles(++index, paths, callback, resultUrls); + }, + fail(resp) { + this._uploadFiles(++index, paths, callback, resultUrls); + }, + complete: () => {} + }) + } else { + callback(resultUrls); + } + }, + _submit(index, callback, successDatas) { + if (!successDatas) { + successDatas = []; + } + if (this.datas[index]) { + console.log(this.datas[index].imgPaths) + this._uploadFiles(0, this.datas[index].imgPaths, (urls) => { + console.log(urls); + uni.request({ + url: `${helper.serverUrl}/ffzy/ffzy`, + method: 'POST', + data: { + geom: this.datas[index].geom, + img: urls.join(','), + reason: this.datas[index].reason + }, + header: { + Authorization: `Bearer ${this.token}` + }, + success: (resp) => { + if (resp.data.code === 200) { + successDatas.push(this.datas[index]); + } + this._submit(++index, callback, successDatas) + }, + fail: () => { + this._submit(++index, callback, successDatas) + }, + complete: () => {} + }) + + }) + } else { + callback(successDatas); + } + }, submit() { + if (this.datas.length === 0) { + return; + } + this.submiting = true; + this._submit(0, (successDatas) => { + this.datas = this.datas.filter(item => { + return successDatas.indexOf(item) === -1; + }) + this.submiting = false; + uni.setStorage({ + data: this.datas, + key: 'sbsjTemp' + }) + }); }, delItem(index) { uni.showModal({ @@ -94,5 +193,4 @@ .sjgl>>>.uni-card { padding: 0 !important; } - \ No newline at end of file diff --git a/pages/sjsb/sjsb.vue b/pages/sjsb/sjsb.vue index a56bcc8..fdb2875 100644 --- a/pages/sjsb/sjsb.vue +++ b/pages/sjsb/sjsb.vue @@ -157,7 +157,7 @@ this.wd = parseFloat(strs[1]); this.reason = item.reason; this.imgStrs = item.img?.split(','); - // this.imgs = item.img?.split(','); + this.imgs = item.img?.split(','); } }, }) @@ -260,38 +260,61 @@ } } }, + _saveFile(index, imgPaths, callback, resultPaths) { + if (!resultPaths) { + resultPaths = []; + } + if (imgPaths[index]) { + uni.saveFile({ + tempFilePath: imgPaths[index], + success: (res) => { + resultPaths.push(res.savedFilePath); + this._saveFile(++index, imgPaths, callback, resultPaths); + }, + fail: () => { + this._saveFile(++index, imgPaths, callback, resultPaths); + } + }) + } else { + callback(resultPaths); + } + }, saveTemp(data) { - uni.getStorage({ - key: 'sbsjTemp', - success: (resp) => { - console.log(resp); - uni.setStorage({ - key: 'sbsjTemp', - data: [...resp.data || [], data], - success: () => { - uni.showToast({ - title: '已保存到临时数据管理' - }) - setTimeout(() => { - uni.navigateBack(); - }, 1500) - } - }) - }, - fail: () => { - uni.setStorage({ - key: 'sbsjTemp', - data: [data], - success: () => { - uni.showToast({ - title: '已保存到临时数据管理' - }) - setTimeout(() => { - uni.navigateBack(); - }, 1500) - } - }) - } + this._saveFile(0, data.imgPaths, (paths) => { + data.imgPaths = paths; + uni.getStorage({ + key: 'sbsjTemp', + success: (resp) => { + console.log(resp); + uni.setStorage({ + key: 'sbsjTemp', + data: [...resp.data || [], data], + success: () => { + uni.showToast({ + title: '已保存到临时数据管理' + }) + setTimeout(() => { + uni.navigateBack(); + }, 1500) + } + }) + }, + fail: () => { + uni.setStorage({ + key: 'sbsjTemp', + data: [data], + success: () => { + uni.showToast({ + title: '已保存到临时数据管理' + }) + setTimeout(() => { + uni.navigateBack(); + }, 1500) + } + }) + } + }) + }) }, chooseImg() { diff --git a/pages/workbench/workbench.vue b/pages/workbench/workbench.vue index ad65a47..0bb2738 100644 --- a/pages/workbench/workbench.vue +++ b/pages/workbench/workbench.vue @@ -25,7 +25,7 @@ - + 临时数据管理