fix:live_image[]改为每个URL单独发送,与Gin表单绑定兼容

This commit is contained in:
97694732@qq.com 2026-06-23 16:22:41 +08:00
parent 9a8cc14b7a
commit ba0829ba04
2 changed files with 32 additions and 4 deletions

View File

@ -890,7 +890,7 @@
</template>
<script>
import { getWarehouseList, getLocationList, searchBookByIsbn, calculateSign } from '@/utils/api.js'
import { getWarehouseList, getLocationList, searchBookByIsbn, calculateSign, buildFormBodyWithImages } from '@/utils/api.js'
import { login as kongfzLogin, searchProducts, searchFacet } from '@/utils/kongfz.js'
import { uploadImages } from '@/utils/minio.js'
@ -2129,6 +2129,7 @@ export default {
var sign = calculateSign(params)
params.sign = sign
var formBody = buildFormBodyWithImages(params, imageUrls)
const apiUrl = 'https://psi.api.buzhiyushu.cn/api/syncBook'
const token = uni.getStorageSync('token') || ''
@ -2143,7 +2144,7 @@ export default {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Bearer ' + token
},
data: params,
data: formBody,
success: function (r) { resolve(r) },
fail: function (e) { reject(e) }
})
@ -2279,6 +2280,7 @@ export default {
//
var sign = calculateSign(params)
params.sign = sign
var formBody = buildFormBodyWithImages(params, imageUrls)
const apiUrl = 'https://psi.api.buzhiyushu.cn/api/syncBook'
console.log('【syncBook】请求地址:', apiUrl)
@ -2292,7 +2294,7 @@ export default {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Bearer ' + token
},
data: params,
data: formBody,
success: function (r) { resolve(r) },
fail: function (e) { reject(e) }
})
@ -2390,6 +2392,8 @@ export default {
}
var sign = calculateSign(params)
params.sign = sign
// form bodylive_image[] URL
var formBody = buildFormBodyWithImages(params, imageUrls)
var saveUrl = 'https://psi.api.buzhiyushu.cn/api/product/save'
console.log('【保存商品】请求地址:', saveUrl)
console.log('【保存商品】请求参数:', params)
@ -2403,7 +2407,7 @@ export default {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Bearer ' + token
},
data: params,
data: formBody,
success: function (r) { resolve(r) },
fail: function (e) { reject(e) }
})

View File

@ -332,8 +332,32 @@ export function searchBookByIsbn(isbn) {
// 导出 calculateSign 供组件按名导入
export { calculateSign }
/**
* 构建 form-urlencoded body支持 live_image[] 以多个单独字段发送
* @param {Object} params - 已包含 sign params 对象live_image[] 为逗号拼接
* @param {string[]} imageUrls - 图片 URL 数组
* @returns {string} form-urlencoded 字符串
*/
function buildFormBodyWithImages(params, imageUrls) {
var parts = []
for (var key in params) {
if (key === 'live_image[]') {
// 每个 URL 单独发送
for (var j = 0; j < imageUrls.length; j++) {
parts.push(encodeURIComponent('live_image[]') + '=' + encodeURIComponent(imageUrls[j]))
}
} else {
parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(String(params[key])))
}
}
return parts.join('&')
}
export { buildFormBodyWithImages }
export default {
calculateSign,
buildFormBodyWithImages,
getWarehouseList,
getLocationList,
psiLogin,