fix:live_image[]改为每个URL单独发送,与Gin表单绑定兼容
This commit is contained in:
parent
9a8cc14b7a
commit
ba0829ba04
@ -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 body(live_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) }
|
||||
})
|
||||
|
||||
24
utils/api.js
24
utils/api.js
@ -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,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user