操作前注意
源碼下載后根據括號中的日期在20230610之后的可以直接配置使用即可
怎么判斷用的是快遞100的還是漢印的打印機
有可能會二開,在配置分類中確認當前電子面單的表單路徑
如果二次開發過根據自己的配置找到自己修改過的表單即可,如圖上 配置的表單id 是129
設置表單中原來的必填驗證
修改后即可和圖1一樣 刪除打印機編號即可使用本機鏈接的 漢印打印機 打印電子面單
Java源碼更改位置
一號通服務 端有參數兼容,Java程序也需要對應調整,如下所示。
修改路徑 src/main/java/com/zbkj/service/service/impl/OnePassServiceImpl.java
/**
* 電子面單
* 兼容老設備 siid參數不存在的時候必須填寫,print_type=IMAGE 返回面單圖
* 并且Header中再新增一個version=v1.1的參數
* @param record 電子面單參數
* @return
*/
@Override
public MyRecord expressDump(MyRecord record) {
HashMap<String, String> header = onePassUtil.getCommonHeader(onePassUtil.getToken());
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
Map<String, Object> columns = record.getColumns();
logger.info("電子面單原本的參數:{}", JSON.toJSONString(columns));
Object siid = columns.get("siid");
logger.info("原始數據的siid數據:{}", siid);
if(ObjectUtil.isEmpty(siid)){
columns.put("print_type", "IMAGE");
header.put("version", "v1.1");
}
columns.forEach(params::add);
logger.info("請求前參數params:{}", JSON.toJSONString(params));
logger.info("請求前參數header:{}", JSON.toJSONString(header));
columns.forEach(params::add);
JSONObject post = onePassUtil.postFrom(OnePassConstants.ONE_PASS_API_URL + OnePassConstants.ONE_PASS_API_EXPRESS_DUMP_URI, params, header);
MyRecord myRecord = new MyRecord();
JSONObject jsonObject = post.getJSONObject("data");
return myRecord.setColums(jsonObject);
}
Vue管理端更改位置
打開WEB PC 管理端,也就是VUE項目,安裝打印的JS 插件
npm i printjs --save
修改源碼路徑
src/views/order/orderSend.vue
如下:
putSend:Debounce(function(name) {
// 打印測試
this.printImg("http://api.kuaidi100.com/label/getImage/20230505/FBA3DFCE5C684CB9A13DADA8EE8357FB");
// 正常業務中使用
// this.formItem.orderNo = this.orderId;
// this.$refs[name].validate((valid) => {
// if (valid) {
// orderSendApi(this.formItem).then(data => {
// // data -》 label是一個網絡圖片地址,直接打印即可
// this.printImg(data.label);
// this.$message.success('發送貨成功');
// this.modals = false;
// this.$refs[name].resetFields();
// this.$emit('submitFail')
// })
// } else {
// this.$message.error('請填寫信息');
// }
// })
}),
如上圖描述打印測試后再開啟正式業務中的邏輯代碼。
確認打印結果
在系統中找一個訂單,點擊發貨打印電子面單測試結果,
注意:切記在使用正式打印電子面單時必須要正確配置有效的月結賬號以及購買一號通電子面單打印次數之后才可以正確使用