fix:live_image[]改为每个URL单独发送,与Gin表单绑定兼容
This commit is contained in:
parent
9a8cc14b7a
commit
ba0829ba04
@ -890,7 +890,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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 { login as kongfzLogin, searchProducts, searchFacet } from '@/utils/kongfz.js'
|
||||||
import { uploadImages } from '@/utils/minio.js'
|
import { uploadImages } from '@/utils/minio.js'
|
||||||
|
|
||||||
@ -2129,6 +2129,7 @@ export default {
|
|||||||
|
|
||||||
var sign = calculateSign(params)
|
var sign = calculateSign(params)
|
||||||
params.sign = sign
|
params.sign = sign
|
||||||
|
var formBody = buildFormBodyWithImages(params, imageUrls)
|
||||||
|
|
||||||
const apiUrl = 'https://psi.api.buzhiyushu.cn/api/syncBook'
|
const apiUrl = 'https://psi.api.buzhiyushu.cn/api/syncBook'
|
||||||
const token = uni.getStorageSync('token') || ''
|
const token = uni.getStorageSync('token') || ''
|
||||||
@ -2143,7 +2144,7 @@ export default {
|
|||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
'Authorization': 'Bearer ' + token
|
'Authorization': 'Bearer ' + token
|
||||||
},
|
},
|
||||||
data: params,
|
data: formBody,
|
||||||
success: function (r) { resolve(r) },
|
success: function (r) { resolve(r) },
|
||||||
fail: function (e) { reject(e) }
|
fail: function (e) { reject(e) }
|
||||||
})
|
})
|
||||||
@ -2279,6 +2280,7 @@ export default {
|
|||||||
// 计算签名(与仓库列表一致的签名算法)
|
// 计算签名(与仓库列表一致的签名算法)
|
||||||
var sign = calculateSign(params)
|
var sign = calculateSign(params)
|
||||||
params.sign = sign
|
params.sign = sign
|
||||||
|
var formBody = buildFormBodyWithImages(params, imageUrls)
|
||||||
|
|
||||||
const apiUrl = 'https://psi.api.buzhiyushu.cn/api/syncBook'
|
const apiUrl = 'https://psi.api.buzhiyushu.cn/api/syncBook'
|
||||||
console.log('【syncBook】请求地址:', apiUrl)
|
console.log('【syncBook】请求地址:', apiUrl)
|
||||||
@ -2292,7 +2294,7 @@ export default {
|
|||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
'Authorization': 'Bearer ' + token
|
'Authorization': 'Bearer ' + token
|
||||||
},
|
},
|
||||||
data: params,
|
data: formBody,
|
||||||
success: function (r) { resolve(r) },
|
success: function (r) { resolve(r) },
|
||||||
fail: function (e) { reject(e) }
|
fail: function (e) { reject(e) }
|
||||||
})
|
})
|
||||||
@ -2390,6 +2392,8 @@ export default {
|
|||||||
}
|
}
|
||||||
var sign = calculateSign(params)
|
var sign = calculateSign(params)
|
||||||
params.sign = sign
|
params.sign = sign
|
||||||
|
// 构建 form body(live_image[] 每个 URL 单独发送)
|
||||||
|
var formBody = buildFormBodyWithImages(params, imageUrls)
|
||||||
var saveUrl = 'https://psi.api.buzhiyushu.cn/api/product/save'
|
var saveUrl = 'https://psi.api.buzhiyushu.cn/api/product/save'
|
||||||
console.log('【保存商品】请求地址:', saveUrl)
|
console.log('【保存商品】请求地址:', saveUrl)
|
||||||
console.log('【保存商品】请求参数:', params)
|
console.log('【保存商品】请求参数:', params)
|
||||||
@ -2403,7 +2407,7 @@ export default {
|
|||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
'Authorization': 'Bearer ' + token
|
'Authorization': 'Bearer ' + token
|
||||||
},
|
},
|
||||||
data: params,
|
data: formBody,
|
||||||
success: function (r) { resolve(r) },
|
success: function (r) { resolve(r) },
|
||||||
fail: function (e) { reject(e) }
|
fail: function (e) { reject(e) }
|
||||||
})
|
})
|
||||||
|
|||||||
24
utils/api.js
24
utils/api.js
@ -332,8 +332,32 @@ export function searchBookByIsbn(isbn) {
|
|||||||
// 导出 calculateSign 供组件按名导入
|
// 导出 calculateSign 供组件按名导入
|
||||||
export { 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 {
|
export default {
|
||||||
calculateSign,
|
calculateSign,
|
||||||
|
buildFormBodyWithImages,
|
||||||
getWarehouseList,
|
getWarehouseList,
|
||||||
getLocationList,
|
getLocationList,
|
||||||
psiLogin,
|
psiLogin,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user