更新websdk demo

This commit is contained in:
luoliangyi 2022-07-29 16:29:30 +08:00
parent dc05d1151f
commit fcd765f423
5 changed files with 249 additions and 306 deletions

View File

@ -2,9 +2,9 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b2ba291d-311b-4300-aa9d-2294abc20088" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/css/scan.css" beforeDir="false" afterPath="$PROJECT_DIR$/css/scan.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/js/WebScanController.js" beforeDir="false" afterPath="$PROJECT_DIR$/js/WebScanController.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/js/scanWeb.js" beforeDir="false" afterPath="$PROJECT_DIR$/js/scanWeb.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/logo.png" beforeDir="false" afterPath="$PROJECT_DIR$/logo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/webDemo.html" beforeDir="false" afterPath="$PROJECT_DIR$/webDemo.html" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -52,7 +52,7 @@
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="android.sdk.path" value="$PROJECT_DIR$/../../sdk" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/images/icons" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path" value="node" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="project.structure.last.edited" value="SDK Location" />
@ -64,8 +64,8 @@
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\web-sdk-demo\webdemoproject\images\icons" />
<recent name="E:\web-sdk-demo\webdemoproject" />
<recent name="E:\web-sdk-demo\webdemoproject\images\icons" />
</key>
</component>
<component name="RunManager">
@ -171,7 +171,12 @@
<workItem from="1654925267814" duration="46950000" />
<workItem from="1655166877166" duration="28058000" />
<workItem from="1655253093239" duration="22402000" />
<workItem from="1655339628294" duration="19283000" />
<workItem from="1655339628294" duration="21329000" />
<workItem from="1656290736715" duration="1116000" />
<workItem from="1656292180128" duration="14823000" />
<workItem from="1656642781712" duration="356000" />
<workItem from="1658798079592" duration="12987000" />
<workItem from="1659077228592" duration="2265000" />
</task>
<task id="LOCAL-00001" summary="init">
<created>1654157535371</created>
@ -201,7 +206,14 @@
<option name="project" value="LOCAL" />
<updated>1655281039716</updated>
</task>
<option name="localTasksCounter" value="5" />
<task id="LOCAL-00005" summary="添加动态参数配置">
<created>1655369381641</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1655369381641</updated>
</task>
<option name="localTasksCounter" value="6" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -224,6 +236,7 @@
<MESSAGE value="初版基本功能" />
<MESSAGE value="优化第一次使用缩略图加载,提高界面展示速度" />
<MESSAGE value="新增批量水印功能" />
<option name="LAST_COMMIT_MESSAGE" value="新增批量水印功能" />
<MESSAGE value="添加动态参数配置" />
<option name="LAST_COMMIT_MESSAGE" value="添加动态参数配置" />
</component>
</project>

View File

@ -222,7 +222,9 @@
iden: that.wslicence,
image_path: imagePath,
mode: mode,
location: location
location: location,
local_save: true,
get_base64: false
}, callBack)
},
//本地生成压缩文件
@ -232,7 +234,7 @@
this.sendCommand({
func: "local_make_zip_file",
iden: that.wslicence,
image_path_list: imagePathList
file_path_list: imagePathList
}, callBack)
},
//本地图像纠偏
@ -246,7 +248,9 @@
}, callBack)
},
//上传本地文件
uploadLocalFile: function (filePath, uploadMode, remoteFilePath, callBack) {
uploadLocalFile: function (filePath, uploadMode,
remoteFilePath, httpHost, httpPort, httpPath,
ftpUser, ftpPassword, ftpHost, ftpPort, callBack) {
const that = this
this.sendCommand({
@ -254,7 +258,14 @@
iden: that.wslicence,
file_path: filePath,
upload_mode: uploadMode,
remote_file_path: remoteFilePath
remote_file_path: remoteFilePath,
http_host: httpHost,
http_port: httpPort,
http_path: httpPath,
ftp_user: ftpUser,
ftp_password: ftpPassword,
ftp_host: ftpHost,
ftp_port: ftpPort
}, callBack)
},
@ -285,10 +296,44 @@
font_underline: fontUnderline,
font_italic: fontItalic,
font_strikeout: fontStrikeout,
local_save: true,
get_base64: getBase64
}, callBack)
},
//本地图像去污
localImageDecontamination: function (imagePath, mode, color, x, y, width, height, getBase64, callBack) {
const that = this
this.sendCommand({
func: "local_image_decontamination",
iden: that.wslicence,
image_path: imagePath,
mode: mode,
color: color,
x: x,
y: y,
width: width,
height: height,
local_save: true,
get_base64: getBase64
}, callBack)
},
//本地图像方向校正
localImageDirectionCorrect: function (imagePath, getBase64, callBack) {
const that = this
this.sendCommand({
func: "local_image_direction_correct",
iden: that.wslicence,
image_path: imagePath,
local_save: true,
get_base64: getBase64
}, callBack)
},
/*****************************************文件管理相关********************************************************************************/
//获取批次号列表
@ -604,6 +649,64 @@
this.sendCommand(params, callBack)
},
//图像去污
imageDecontamination: function (imageIndex, mode, color, x, y, width, height, getBase64,
callBack) {
const that = this
let params = {
func: "image_decontamination",
iden: that.wslicence,
image_index: imageIndex,
mode: mode,
color: color,
x: x,
y: y,
width: width,
height: height,
local_save: true,
get_base64: getBase64
}
this.sendCommand(params, callBack)
},
//图像方向校正
imageDirectionCorrect: function (imageIndex, getBase64,
callBack) {
const that = this
let params = {
func: "image_direction_correct",
iden: that.wslicence,
image_index: imageIndex,
local_save: true,
get_base64: getBase64
}
this.sendCommand(params, callBack)
},
uploadImage: function (imageIndex, uploadMode,
remoteFilePath, httpHost, httpPort, httpPath,
ftpUser, ftpPassword, ftpHost, ftpPort, callBack) {
const that = this
this.sendCommand({
func: "upload_image",
iden: that.wslicence,
image_index: imageIndex,
upload_mode: uploadMode,
remote_file_path: remoteFilePath,
http_host: httpHost,
http_port: httpPort,
http_path: httpPath,
ftp_user: ftpUser,
ftp_password: ftpPassword,
ftp_host: ftpHost,
ftp_port: ftpPort
}, callBack)
},
/*****************************************socket相关********************************************************************************/
callBackList: {}
,

View File

@ -100,6 +100,18 @@ new Vue({
image_tiff_compression: 'lzw', // 可以为none、 lzw和jpeg
image_tiff_jpeg_quality: 80, // tiff-jpeg质量0-100
},
//上传配置
uploadConfig: {
remote_file_path: '/images',
upload_mode: 'none',
http_host: '',
http_port: 80,
http_path: '/upload.cgi',
ftp_user: 'administrator',
ftp_password: '2018',
ftp_host: '192.168.0.22',
ftp_port: 21
},
//水印信息
waterMarkInfo: {
text: '0001',
@ -483,18 +495,19 @@ new Vue({
setScanParams: function () {
let that = this
let ori = this.scanParams
let result = new Array()
for (let i = 0; i < ori.length; i++) {
let group = ori[i].group_param
for (let j = 0; j < group.length; j++) {
if (group[j].value != undefined) {
result.push({
name: group[j].name,
value: group[j].value
})
}
}
}
this.WebScanController.setScanParams(result, function (info) {
console.log('setScanParams :' + info)
that.eleMessage("设置扫描参数成功")
@ -506,14 +519,6 @@ new Vue({
this.WebScanController.getScanParams(function (info) {
that.eleUnloadding()
console.log('获取到的扫描参数 ' + JSON.stringify(info))
/* let par = info.device_param
let result = new Array()
result.push({
group_name: '一个团',
group_param: par
})
that.scanParamsRange = result*/
that.scanParamsRange = info.device_param
that.parameterCoerceIn()
})
@ -1061,6 +1066,55 @@ new Vue({
})
})
},
//文件上传
uploadFile: function () {
let data = this.urls
if (data.length == 0) {
this.eleMessage('请先扫描!')
return
}
for (let index = 0; index < data.length; index++) {
let path = data[index].path
let config = this.uploadConfig
let fileName = path.slice(path.lastIndexOf('\\') + 1, path.length)
if (fileName.length == 0) {
fileName = this.currentBatch + '-' + index + ".jpg"
}
console.log('fileName:' + fileName)
let remoteFilePath = config.remote_file_path
if (!remoteFilePath.startsWith("/")) {
remoteFilePath = "/" + remoteFilePath
}
remoteFilePath = remoteFilePath.endsWith("/") ? remoteFilePath + fileName : remoteFilePath + "/" + fileName
console.log('全路径名:' + remoteFilePath)
this.WebScanController.uploadImage(index,
config.upload_mode,
remoteFilePath,
config.http_host,
config.http_port,
config.http_path,
config.ftp_user,
config.ftp_password,
config.ftp_host,
config.ftp_port,
function (info) {
console.log('上传完成:' + JSON.stringify(info))
})
}
},
/*******************************************canvas图像处理***************************************************************/
selectImage: function (image, index) {
@ -2152,179 +2206,7 @@ new Vue({
console.log('当前强强强扫描参数:' + JSON.stringify(paramsRange))
this.$forceUpdate()
// this.scanParams.some(function (value, index, array) {
// console.log('value:' + JSON.stringify(value), 'index:' + index)
//
// return false
// })
},
parameterSupport: function (param) {
let match =//
console.log('是否匹配:' + /"name":"背景移除",/.test(JSON.stringify(value)))
// vice_param": [
// {
// "name": "多流输出",
// "value_type": "bool",
// "value": false
// },
// {
// "name": "多流输出类型",
// "value_type": "string",
// "value": "无",
// "value_list": [
// "彩色+灰度+黑白",
// "彩色+灰度",
// "彩色+黑白",
// "灰度+黑白"
// ]
// },
// {
// "name": "背景移除",
// "value_type": "bool",
// "value": false
// },
// {
// "name": "背景色彩浮动范围",
// "value_type": "int",
// "value": 20,
// "range_type": "min_max",
// "value_min": 1,
// "value_max": 128
// },
// {
// "name": "黑白图像噪点优化",
// "value_type": "bool",
// "value": false
// },
// {
// "name": "噪点优化尺寸",
// "value_type": "int",
// "value": 30,
// "range_type": "min_max",
// "value_min": 10,
// "value_max": 50
// },
// {
// "name": "自定义扫描区域",
// "value_type": "bool",
// "value": false
// },
// {
// "name": "扫描区域左侧mm",
// "value_type": "double",
// "value": 0,
// "range_type": "min_max",
// "value_min": 0,
// "value_max": 210
// },
// {
// "name": "扫描区域右侧mm",
// "value_type": "double",
// "value": 210,
// "range_type": "min_max",
// "value_min": 0,
// "value_max": 210
// },
// {
// "name": "扫描区域上侧mm",
// "value_type": "double",
// "value": 0,
// "range_type": "min_max",
// "value_min": 0,
// "value_max": 297
// },
// {
// "name": "扫描区域下侧mm",
// "value_type": "double",
// "value": 297,
// "range_type": "min_max",
// "value_min": 0,
// "value_max": 297
// },
// {
// "name": "扫描页面",
// "value_type": "string",
// "value": "双面",
// "value_list": [
// "单面",
// "双面",
// "跳过空白页(通用)",
// "跳过空白页(发票纸)",
// "对折"
// ]
// },
// {
// "name": "跳过空白页灵敏度",
// "value_type": "int",
// "value": 50,
// "range_type": "min_max",
// "value_min": 1,
// "value_max": 100
// },
// {
// "name": "深色样张",
// "value_type": "bool",
// "value": false
// },
// {
// "name": "阈值",
// "value_type": "int",
// "value": 40,
// "range_type": "min_max",
// "value_min": 30,
// "value_max": 50
// },
// {
// "name": "背景抗噪等级",
// "value_type": "int",
// "value": 8,
// "range_type": "min_max",
// "value_min": 1,
// "value_max": 20
// },
//
// {
// "name": "扫描张数",
// "value_type": "string",
// "value": "连续扫描",
// "value_list": [
// "连续扫描",
// "扫描指定张数"
// ]
// },
// {
// "name": "扫描数量",
// "value_type": "int",
// "value": 1
// },
},
// parameterCoerceIn: function () {
// let paramsRange = this.scanParamsRange
//
// this.scanParams.color_mode = paramsRange.color_mode
// this.scanParams.page_mode = paramsRange.page_mode
// this.scanParams.resolution = paramsRange.resolution
// this.scanParams.paper_size = paramsRange.paper_size
// this.scanParams.brightness = paramsRange.brightness
// this.scanParams.contrast = paramsRange.contrast
// this.scanParams.gamma = paramsRange.gamma
// this.scanParams.paper_cut_enabled = paramsRange.paper_cut_enabled
//
// this.scanParams.paper_cut_left = paramsRange.paper_cut_left
// this.scanParams.paper_cut_top = paramsRange.paper_cut_top
// this.scanParams.paper_cut_right = paramsRange.paper_cut_right
// this.scanParams.paper_cut_bottom = paramsRange.paper_cut_bottom
// this.scanParams.auto_crop = paramsRange.auto_crop
// },
// 将base64转换为blob
dataURLtoBlob: function (dataUrl) {
let data

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -209,6 +209,12 @@
</div>
</el-popover>
</li>
<li v-if="uploadConfig.upload_mode!=='none'" @click="uploadFile">
<div class="iconContainer">
<img src="images/icons/upload.png" style="height:31px"/>
</div>
<div class="menu">一键上传</div>
</li>
<li @click="clearBatch()">
<div class="iconContainer">
<img src="images/icons/delAll.png"/>
@ -484,85 +490,59 @@
:max="9999"></el-input-number>
</el-form-item>
</el-tab-pane>
</el-tabs>
<!--
<el-form-item label="模式">
<el-radio-group v-model="scanParams.color_mode">
<el-radio v-for="(itemInfo,index) in scanParamsRange.color_mode_list" :label="itemInfo">
{{parameterTranslation(itemInfo)}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="单双面">
<el-radio-group v-model="scanParams.page_mode">
<el-radio v-for="(itemInfo,index) in scanParamsRange.page_mode_list" :label="itemInfo">
{{parameterTranslation(itemInfo)}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="分辨率">
<el-select v-model="scanParams.resolution" placeholder="请选择分辨率">
<el-option v-for="(itemInfo,index) in scanParamsRange.resolution_list" :label="itemInfo"
:value="itemInfo"></el-option>
</el-select>
</el-form-item>
<el-form-item label="扫描幅面">
<el-select v-model="scanParams.paper_size" placeholder="请选择幅面">
<el-option v-for="(itemInfo,index) in scanParamsRange.paper_size_list"
:label="parameterTranslation(itemInfo)" :value="itemInfo"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否纠偏">
<el-switch v-model="scanParams.auto_crop"></el-switch>
</el-form-item>
<el-form-item label="是否裁剪">
<el-switch v-model="scanParams.paper_cut_enabled"></el-switch>
</el-form-item>
<div v-show="scanParams.paper_cut_enabled">
<el-form-item label="起始位置点坐标X">
<el-input v-model="scanParams.paper_cut_left"
placeholder="请输入坐标点X的值"></el-input>
</el-form-item>
<el-form-item label="起始位置点坐标Y">
<el-input v-model="scanParams.paper_cut_top"
placeholder="请输入坐标点Y的值"></el-input>
</el-form-item>
<el-form-item label="终点位置点坐标X">
<el-input v-model="scanParams.paper_cut_right"
placeholder="请输入坐标点X的值"></el-input>
</el-form-item>
<el-form-item label="终点位置点坐标Y">
<el-input v-model="scanParams.paper_cut_bottom"
placeholder="请输入坐标点Y的值"></el-input>
</el-form-item>
</div>
<el-form-item label="亮度">
<el-slider v-model="scanParams.brightness" :min="1"
:max="255"></el-slider>
</el-form-item>
<el-form-item label="对比度">
<el-slider v-model="scanParams.contrast" :min="1"
:max="7"></el-slider>
</el-form-item>
<el-form-item label="伽马值">
<el-input-number v-model="scanParams.gamma" :precision="2" :min="0.01" :step="0.01"
:max="5.00"></el-input-number>
</el-form-item>
-->
</div>
</el-tab-pane>
<el-tab-pane style="margin: 18px" label="全局配置" name="2" :disabled="!deviceOpened">
<el-tab-pane style="margin: 18px" label="上传配置" name="2" :disabled="!deviceOpened">
<el-form-item label="模式">
<el-radio-group v-model="uploadConfig.upload_mode">
<el-radio label="none"></el-radio>
<el-radio label="http">HTTP</el-radio>
<el-radio label="ftp">FTP</el-radio>
</el-radio-group>
</el-form-item>
<div v-if="uploadConfig.upload_mode==='http'">
<el-form-item label="IP地址">
<el-input v-model="uploadConfig.http_host"
placeholder="192.168.1.100"></el-input>
</el-form-item>
<el-form-item label="端口号">
<el-input v-model="uploadConfig.http_port"
placeholder="80"></el-input>
</el-form-item>
<el-form-item label="上传路径">
<el-input v-model="uploadConfig.http_path"
placeholder="/upload.cgi"></el-input>
</el-form-item>
</div>
<div v-if="uploadConfig.upload_mode==='ftp'">
<el-form-item label="ftp地址">
<el-input v-model="uploadConfig.ftp_host"
placeholder="192.168.1.100"></el-input>
</el-form-item>
<el-form-item label="端口">
<el-input v-model="uploadConfig.ftp_port"
placeholder="默认21"></el-input>
</el-form-item>
<el-form-item label="路径">
<el-input v-model="uploadConfig.remote_file_path"
placeholder="请输入存放路径(默认/images)"></el-input>
</el-form-item>
<el-form-item label="用户名">
<el-input v-model="uploadConfig.ftp_user"
placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input type="password" v-model="uploadConfig.ftp_password"
placeholder="请输入ftp密码"></el-input>
</el-form-item>
</div>
</el-tab-pane>
<el-tab-pane style="margin: 18px" label="全局配置" name="3" :disabled="!deviceOpened">
<el-form-item label="文件保存目录">
<el-input v-model="globalConfig.file_save_path"
placeholder="请输入文件保存目录"></el-input>
@ -617,50 +597,15 @@
<el-slider v-model="globalConfig.image_tiff_jpeg_quality" :min="0"
:max="100"></el-slider>
</el-form-item>
<!--
<el-divider content-position="center">HTTP上传配置</el-divider>
<el-form-item label="上传地址">
<el-input v-model="globalConfig.upload_http_host"
placeholder="请输入上传地址"></el-input>
</el-form-item>
<el-form-item label="端口">
<el-input v-model="globalConfig.upload_http_port"
placeholder="请输入端口号"></el-input>
</el-form-item>
<el-form-item label="上传路径">
<el-input v-model="globalConfig.upload_http_path"
placeholder="请输入上传路径"></el-input>
</el-form-item>
<el-divider content-position="center">FTP上传配置</el-divider>
<el-form-item label="上传地址">
<el-input v-model="globalConfig.upload_ftp_host"
placeholder="请输入上传地址"></el-input>
</el-form-item>
<el-form-item label="端口号">
<el-input v-model="globalConfig.upload_ftp_port"
placeholder="请输入端口号"></el-input>
</el-form-item>
<el-form-item label="用户名">
<el-input v-model="globalConfig.upload_ftp_user"
placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input v-model="globalConfig.upload_ftp_password"
placeholder="请输入密码"></el-input>
</el-form-item>
-->
</el-tab-pane>
</el-tabs>
</el-form>
<el-row style="text-align:center" v-if="deviceOpened">
<el-button type="primary" @click="saveParams()">保存</el-button>
</el-row>
</div>
</el-dialog>