dpkg/kylin/lscweb/opt/lanxumwebscan/static/js/WebScanController.js

657 lines
22 KiB
JavaScript
Raw Normal View History

2022-07-04 08:39:15 +00:00
(function (window) {
const TAG = 'WebScanController:'
let Result = function (code, msg, data) {
this.code = code;
this.msg = msg;
this.data = data;
};
function WebScanController(options) {
if (options.wsUrl == '' || options.wsUrl == null || options.wsUrl == undefined) {
WebScanController.prototype.wsUrl = "ws://localhost:38999";
} else {
WebScanController.prototype.wsUrl = options.wsUrl;
}
WebScanController.prototype.wslicence = options.wslicence;
return WebScanController.prototype;
}
WebScanController.prototype = {
constructor: WebScanController,
/*****************************************扫描仪相关********************************************************************************/
initDevice: function (callBack) {
const that = this
this.sendCommand({
func: "init_device",
iden: that.wslicence
}, callBack)
},
deinitDevices: function (callBack) {
const that = this
this.sendCommand({
func: "deinit_device",
iden: that.wslicence
}, callBack)
},
getDeviceNameList: function (callBack) {
const that = this
this.sendCommand({
func: "get_device_name_list",
iden: that.wslicence
}, callBack)
},
openDevice: function (device_name, callBack) {
const that = this
this.sendCommand({
func: "open_device",
iden: that.wslicence,
device_name: device_name
}, callBack)
},
closeDevice: function (callBack) {
const that = this
this.sendCommand({
func: "close_device",
iden: that.wslicence
}, callBack)
},
setScanParams: function (appendParams, callBack) {
const that = this
let fixedParams = {
func: "set_device_param",
iden: that.wslicence
}
fixedParams.device_param = appendParams
console.log('final set scan params:' + JSON.stringify(fixedParams))
this.sendCommand(fixedParams, callBack)
},
getScanParams: function (callBack) {
const that = this
this.sendCommand({
func: "get_device_param",
iden: that.wslicence
}, callBack)
},
resetScanParams: function (callBack) {
const that = this
this.sendCommand({
func: "reset_device_param",
iden: that.wslicence
}, callBack)
},
getCurrDeviceName: function (callBack) {
const that = this
this.sendCommand({
func: "get_curr_device_name",
iden: that.wslicence
}, callBack)
},
//开始扫描
startScan: function (callBack) {
const that = this
this.sendCommand({
func: "start_scan",
iden: that.wslicence,
get_base64: true
}, callBack)
},
stopScan: function (callBack) {
const that = this
this.sendCommand({
func: "stop_scan",
iden: that.wslicence
}, callBack)
},
/*****************************************基本接口********************************************************************************/
getLocalPic(path, callBack) {
let that = this
const cmd = {
func: "load_local_image",
iden: that.wslicence,
image_path: path
}
console.log(TAG, 'getLocalPic', JSON.parse(cmd))
this.sendCommand(cmd, callBack)
},
saveLocalPic(base64, callBack) {
const that = this
const cmd = {
func: "save_local_image",
iden: that.wslicence,
image_base64: base64
}
console.log(TAG, 'saveLocalPic', JSON.parse(cmd))
this.sendCommand(cmd, callBack)
},
//获取全局配置
getGlobalConfig: function (callBack) {
const that = this
this.sendCommand({
func: "get_global_config",
iden: that.wslicence
}, callBack)
},
//设置全局配置
setGlobalConfig: function (appendParams, callBack) {
const that = this
let fixedParams = {
func: "set_global_config",
iden: that.wslicence
}
const finalParams = Object.assign({}, appendParams, fixedParams)
console.log('final set global params:' + JSON.stringify(finalParams))
this.sendCommand(finalParams, callBack)
},
//加载本地图像
loadLocalImage: function (imagePath, callBack) {
const that = this
this.sendCommand({
func: "load_local_image",
iden: that.wslicence,
image_path: imagePath
}, callBack)
},
//保存本地图像
saveLocalImage: function (imageBase64, callBack) {
const that = this
this.sendCommand({
func: "save_local_image",
iden: that.wslicence,
image_base64: imageBase64
}, callBack)
},
//删除本地文件(为了安全,仅能删除后端生成的文件)
deleteLocalFile: function (filePath, callBack) {
const that = this
this.sendCommand({
func: "delete_local_file",
iden: that.wslicence,
file_path: filePath
}, callBack)
},
//清理全局文件保存目录(为了安全,只会删除后端生成的文件)
clearGlobalFileSavePath: function (callBack) {
const that = this
this.sendCommand({
func: "clear_global_file_save_path",
iden: that.wslicence
}, callBack)
},
//合成本地图像
mergeLocalImage: function (imagePathList, mode, align, getBase64, callBack) {
const that = this
this.sendCommand({
func: "merge_local_image",
iden: that.wslicence,
image_path_list: imagePathList,
mode: mode,
align: align,
interval: 0,
get_base64: getBase64
}, callBack)
},
//本地合成多张图像
localMakeMultiImage: function (imagePathList, format, tiffCompression, tiffJpegQuality, callBack) {
const that = this
this.sendCommand({
func: "local_make_multi_image",
iden: that.wslicence,
image_path_list: imagePathList,
format: format,
tiff_compression: tiffCompression,
tiff_jpeg_quality: tiffJpegQuality
}, callBack)
},
//拆分本地图像
splitLocalImage: function (imagePath, mode, location, callBack) {
const that = this
this.sendCommand({
func: "split_local_image",
iden: that.wslicence,
image_path: imagePath,
mode: mode,
location: location
}, callBack)
},
//本地生成压缩文件
localMakeZipFile: function (imagePathList, callBack) {
const that = this
this.sendCommand({
func: "local_make_zip_file",
iden: that.wslicence,
image_path_list: imagePathList
}, callBack)
},
//本地图像纠偏
localImageDeskew: function (imagePath, callBack) {
const that = this
this.sendCommand({
func: "local_image_deskew",
iden: that.wslicence,
image_path: imagePath
}, callBack)
},
//上传本地文件
uploadLocalFile: function (filePath, uploadMode, remoteFilePath, callBack) {
const that = this
this.sendCommand({
func: "upload_local_file",
iden: that.wslicence,
file_path: filePath,
upload_mode: uploadMode,
remote_file_path: remoteFilePath
}, callBack)
},
//本地图片添加水印
localImageAddWatermark: function (imagePath, text, textColor, textOpacity, textPos, marginRight,
marginBottom, locationX, locationY, fontName, fontSize, fontBold, fontUnderline,
fontItalic, fontStrikeout, getBase64,
callBack) {
const that = this
this.sendCommand({
func: "local_image_add_watermark",
iden: that.wslicence,
image_path: imagePath,
text: text,
text_color: textColor,
text_opacity: textOpacity,
text_pos: textPos,
margin_left: parseInt(marginLeft),
margin_top: parseInt(marginTop),
margin_right: parseInt(marginRight),
margin_bottom: parseInt(marginBottom),
location_x: parseInt(locationX),
location_y: parseInt(locationY),
font_name: fontName,
font_size: parseInt(fontSize),
font_bold: fontBold,
font_underline: fontUnderline,
font_italic: fontItalic,
font_strikeout: fontStrikeout,
get_base64: getBase64
}, callBack)
},
/*****************************************文件管理相关********************************************************************************/
//获取批次号列表
getBatchIdList: function (callBack) {
const that = this
this.sendCommand({
func: "get_batch_id_list",
iden: that.wslicence
}, callBack)
},
//打开批次后端启动后默认打开最近批次没有最近批次则会新建default批次并打开
openBatch: function (batchId, callBack) {
const that = this
this.sendCommand({
func: "open_batch",
iden: that.wslicence,
batch_id: batchId + ""
}, callBack)
},
//删除批次
deleteBatch: function (batchId, callBack) {
const that = this
this.sendCommand({
func: "delete_batch",
iden: that.wslicence,
batch_id: batchId + ""// 批次id不能是当前批次
}, callBack)
},
//新建批次(新建批次到列表尾部并打开该批次)
createNewBatch: function (batchId, callBack) {
const that = this
this.sendCommand({
func: "new_batch",
iden: that.wslicence,
batch_id: batchId + ""
}, callBack)
},
//获取当前批次号
getCurrBatchId: function (callBack) {
const that = this
this.sendCommand({
func: "get_curr_batch_id",
iden: that.wslicence
}, callBack)
},
//修改批次号
modifyBatchId: function (batchId, newBatchId, callBack) {
const that = this
this.sendCommand({
func: "modify_batch_id",
iden: that.wslicence,
batch_id: batchId,
new_batch_id: newBatchId
}, callBack)
},
//加载图像缩略图列表
getImageThumbnailList: function (callBack) {
const that = this
this.sendCommand({
func: "get_image_thumbnail_list",
iden: that.wslicence
}, callBack)
},
//获取图像数量
getImageCount: function (callBack) {
const that = this
this.sendCommand({
func: "get_image_count",
iden: that.wslicence
}, callBack)
},
//绑定文件夹
bindFolder: function (folder, callBack) {
const that = this
this.sendCommand({
func: "bind_folder",
iden: that.wslicence,
folder: folder,
name_mode: "order",
name_width: 4,
name_base: 0
}, callBack)
},
//停止绑定文件夹
stopBindFolder: function (callBack) {
const that = this
this.sendCommand({
func: "stop_bind_folder",
iden: that.wslicence,
}, callBack)
},
//加载图像
loadImage: function (imageIndex, callBack) {
let that = this
this.sendCommand({
func: "load_image",
iden: imageIndex + "",
image_index: imageIndex
}, callBack)
},
//保存图像
saveImage: function (imageIndex, callBack) {
const that = this
this.sendCommand({
func: "save_image",
iden: that.wslicence,
image_index: imageIndex
}, callBack)
},
//插入本地图像需返回成功后前端缩略图才能作相应的UI修改
insertLocalImage: function (imagePath, insertIndex, callBack) {
const that = this
this.sendCommand({
func: "insert_local_image",
iden: that.wslicence,
image_path: imagePath,
insert_pos: insertIndex,//插入位置,-1表示最后
image_tag: ''//标签名,可以为空
}, callBack)
},
//插入图像
insertImage: function (imageBase64, insertIndex, callBack) {
const that = this
this.sendCommand({
func: "insert_image",
iden: that.wslicence,
image_base64: imageBase64,
insert_pos: insertIndex,//插入位置,-1表示最后
image_tag: ''//标签名,可以为空
}, callBack)
},
//修改图像标签
modifyImageTag: function (imageIndexList, imageTagList, callBack) {
const that = this
this.sendCommand({
func: "modify_image_tag",
iden: that.wslicence,
image_index_list: imageIndexList,
image_tag_list: imageTagList
}, callBack)
},
//删除图像
deleteImage: function (imageIndexList, callBack) {
const that = this
this.sendCommand({
func: "delete_image",
iden: that.wslicence,
image_index_list: imageIndexList
}, callBack)
},
//清理图像列表
clearImageList: function (callBack) {
const that = this
this.sendCommand({
func: "clear_image_list",
iden: that.wslicence
}, callBack)
},
//修改图像
modifyImage: function (imageIndex, imageBase64, callBack) {
const that = this
this.sendCommand({
func: "modify_image",
iden: that.wslicence,
image_index: imageIndex,
image_base64: imageBase64
}, callBack)
},
//使用本地图像修改图像
modifyImageByLocal: function (imageIndex, imagePath, callBack) {
const that = this
this.sendCommand({
func: "modify_image_by_local",
iden: that.wslicence,
image_index: imageIndex,
image_path: imagePath
}, callBack)
},
//移动图像
moveImage: function (imageIndexList, target, callBack) {
const that = this
this.sendCommand({
func: "move_image",
iden: that.wslicence,
image_index_list: imageIndexList,
mode: 'index',
target: target
}, callBack)
},
//图像书籍排序
imageBookSort: function (callBack) {
const that = this
this.sendCommand({
func: "image_book_sort",
iden: that.wslicence
}, callBack)
},
//合成图像
mergeImage: function (imageIndexList, mode, align, getBase64, callBack) {
const that = this
this.sendCommand({
func: "merge_image",
iden: that.wslicence,
image_index_list: imageIndexList,
mode: mode,
align: align,
interval: 0,
get_base64: getBase64
}, callBack)
},
//合成多张图像
makeMultiImage: function (imageIndexList, format, callBack) {
const that = this
let msg = {
func: "make_multi_image",
iden: that.wslicence,
image_index_list: imageIndexList,
format: format,
tiff_compression: 'none',
tiff_jpeg_quality: 80,
get_base64: true
}
this.sendCommand(msg, callBack)
},
//交换图片
exchangeImage: function (index1, index2, callBack) {
const that = this
this.sendCommand({
func: "exchange_image",
iden: that.wslicence,
image_index_1: index1,
image_index_2: index2
}, callBack)
},
//拆分图像
splitImage: function (imageIndex, mode, location, callBack) {
const that = this
this.sendCommand({
func: "split_image",
iden: that.wslicence,
image_index: imageIndex,
mode: mode,
location: location,
get_base64: true
}, callBack)
},
//压缩图像
makeZipFile: function (imageIndexList, callBack) {
const that = this
this.sendCommand({
func: "make_zip_file",
iden: that.wslicence,
image_index_list: imageIndexList,
get_base64: true
}, callBack)
},
//图像纠偏
imageDeskew: function (imageIndex, getBase64, callBack) {
const that = this
this.sendCommand({
func: "image_deskew",
iden: that.wslicence,
image_index: imageIndex,
get_base64: getBase64
}, callBack)
},
//图片添加水印
imageAddWatermark: function (imageIndex, markInfo, getBase64,
callBack) {
const that = this
let params = {
func: "image_add_watermark",
iden: that.wslicence,
image_index: imageIndex,
text: markInfo.text,
text_color: markInfo.text_color,
text_opacity: markInfo.text_opacity,
text_pos: markInfo.text_pos,
margin_left: parseInt(markInfo.margin_left),
margin_top: parseInt(markInfo.margin_top),
margin_right: parseInt(markInfo.margin_right),
margin_bottom: parseInt(markInfo.margin_bottom),
location_x: parseInt(markInfo.location_x),
location_y: parseInt(markInfo.location_y),
font_name: markInfo.font_name,
font_size: parseInt(markInfo.font_size),
font_bold: markInfo.font_bold,
font_underline: markInfo.font_underline,
font_italic: markInfo.font_italic,
font_strikeout: markInfo.font_strikeout,
get_base64: getBase64
}
console.log('添加水印params===' + JSON.stringify(params))
this.sendCommand(params, callBack)
},
/*****************************************socket相关********************************************************************************/
callBackList: {}
,
addCallBack: function (key, listener) {
this.callBackList[key] = listener;
},
removeCallBack: function (key) {
delete this.callBackList[key];
},
getCallBack: function (key) {
return this.callBackList[key];
},
sendCommand: function (json, callBackListener) {
if (json.func && callBackListener) {
this.addCallBack(json.func, callBackListener)
}
this.SocketClient.send(JSON.stringify(json))
},
//初始化socketIO
initSocketIo: function (socketCallBack) {
this.socketCallBacks = socketCallBack
console.log(TAG, "initSocketIo ===============" + 'ws:' + this.wsUrl);
this.SocketClient = new WebSocket(this.wsUrl);
this.SocketClient.onopen = function (msg) {
console.log(TAG, "connect onopen")
socketCallBack(new Result(SOCKET_CONNECTED, "", null))
};
this.SocketClient.onmessage = function (event) {
console.log(TAG, "connect onmessage data:" + event.data)
if (event && event.data) {
socketCallBack(new Result(SOCKET_EVENT, "", event.data))
}
};
this.SocketClient.onclose = function (msg) {
console.log(TAG, "connect onclose:" + JSON.stringify(msg))
socketCallBack(new Result(SOCKET_DISCONNECTED, "", msg))
};
},
disconnect: function () {
if (this.SocketClient) {
this.SocketClient.close()
this.SocketClient = null
}
}
};
window.WebScanController = WebScanController;
})(window);