code_app/test/webservice/webdemoproject/webDemo.html

768 lines
46 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="Shortcut Icon" href="logo.png" type="image/x-icon"/>
<link rel="stylesheet" href="js/element-ui/index.css"/>
<link rel="stylesheet" href="css/scan.css"/>
</head>
<body>
<el-container id="container" style="min-width: 1500px;min-height: 900px">
<el-aside width="195px" class="aside" v-loading.fullscreen.lock="fullscreenLoading"
element-loading-text="拼命加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0,0,0,0.7)">
<div class="header">
<i class="el-icon-document"></i>
&nbsp;图像预览
</div>
<div ref="imageArea" class="scroll" style="overflow: auto;height: calc(100% - 60px);">
<ul style="margin:auto;padding:0;margin-top:5px">
<li v-for="(image,index) in urls" :key="image"
style="padding:10px;padding-right:25px">
<div style="display:inline;position: relative;">
<span style="font-size:12px;position: absolute;left:0;width:25px;text-align:right">{{index +
1}}.</span>
<el-image
:class="{'imageListSelect': selectManyImages.indexOf(index)>=0}"
ref="imageList" :src="image.thumbnail" fit="contain"
imageIndex="{{index}}"
lazy
@dblclick="showBigImage(index)"
@click="!$event.ctrlKey && selectImage(image,index)"
@click.ctrl="selectManyImage(image,index)"
style="height:150px;margin-left:35px;width:80%;border:2px solid #dedede"
>
</el-image>
</div>
</li>
</ul>
</div>
<div style="position: fixed;background-color: #eaeaea;bottom: 0px;width:195px;height:25px;
line-height: 25px;padding-left:20px;color:#666">
总张数&nbsp;{{urls.length}}
</div>
</el-aside>
<el-container>
<!-- <el-header>-->
<!-- <div style="height: 100px;width: 100%">-->
<!-- <el-radio-group style="margin: 10px auto" v-model="debugMode">-->
<!-- <el-radio-button :label="true">调试模式</el-radio-button>-->
<!-- <el-radio-button :label="false">开发模式</el-radio-button>-->
<!-- </el-radio-group>-->
<!-- </div>-->
<!-- </el-header>-->
<el-header height="auto" v-if="!debugMode">
<div class="menuContainer">
<!-- <ul style="width: 100%;height: 100%;overflow-x: scroll;float: left;padding-left: 0px">-->
<div class="menuStyle" @click="openDeviceSetting()">
<div class="iconContainer">
<img src="images/icons/setup.png"/>
</div>
<div class="menu">扫描设定</div>
</div>
<div v-show="deviceOpened">
<div class="menuStyle" @click="startScan()">
<div class="iconContainer">
<img src="images/icons/scan.png"/>
</div>
<div class="menu">顺序扫描</div>
</div>
<div class="menuStyle" @click="stopScan()">
<div class="iconContainer">
<img src="images/icons/stop.png"/>
</div>
<div class="menu">停止扫描</div>
</div>
<div class="menuStyle" @click="insertScan()">
<div class="iconContainer">
<img src="images/icons/insert-scan.png"/>
</div>
<div class="menu">插入扫描</div>
</div>
<div class="menuStyle" @click="coverScan()">
<div class="iconContainer">
<img src="images/icons/cover-scan.png"/>
</div>
<div class="menu">覆盖扫描</div>
</div>
<div class="menuStyle">
<el-popover
placement="bottom"
width="360"
v-model="showBatchList">
<p style="font-weight: bold;font-size: 21px;color: black">批次选择</p>
<div @click="changeBatch(item)" class="batch-item" v-for="(item,index) in batchIdList" :key="index"
style="text-align: center;margin: 0;height: 45px;width: 100%;font-size: 21px">
<div style="display: inline-block;float: right;width: 120px;height: 100%">
<div class="operaBg" @click.stop="modifyBatchId(item,index)"
style="position:relative;line-height: 45px;float: left;display: inline;width: 60px;height:100%;">
<img style="position: absolute; left: 50%; top: 50%;transform: translate(-50%, -50%);width: 28px;height: 28px"
src="images/icons/editor.png" title="编辑">
</div>
<div class="operaBg" @click.stop="deleteBatch(item,index)"
style="position:relative;float: left;display: inline;width: 50%;height:45px">
<img style="position: absolute; left: 50%; top: 50%;transform: translate(-50%, -50%);height: 28px;width: 28px"
src="images/icons/delete.png" title="删除">
</div>
</div>
<span style="line-height: 45px;text-align: center;overflow: hidden;display: inline-block;float: right;height: 100%;width: 240px">{{item}}</span>
</div>
<el-divider></el-divider>
<div @click="createNewBatch" class="batch-item"
style="font-weight: bold;text-align: center; margin: 0;width: 100%;font-size: 21px;height: 45px;line-height: 45px">
新建批次
</div>
<div slot="reference">
<div class="iconContainer">
<img src="images/icons/betch.png"/>
</div>
<div class="menu">选择批次</div>
</div>
</el-popover>
</div>
<div class="menuStyle" @click="deleteSelectedImage()">
<div class="iconContainer">
<img src="images/icons/delImage.png"/>
</div>
<div class="menu">删除图片</div>
</div>
<div class="menuStyle" @click="exchangeImage()">
<div class="iconContainer">
<img src="images/icons/exchange.png" style="height:31px"/>
</div>
<div class="menu">图片互换</div>
</div>
<div class="menuStyle" @click="mergeHorizontal(true)">
<div class="iconContainer">
<img src="images/icons/merge-horizontal.png"/>
</div>
<div class="menu">水平合并</div>
</div>
<div class="menuStyle" @click="mergeHorizontal(false)">
<div class="iconContainer">
<img src="images/icons/merge-vertical.png" style="height:31px"/>
</div>
<div class="menu">垂直合并</div>
</div>
<div class="menuStyle" @click="bookSort()">
<div class="iconContainer">
<img src="images/icons/book_sort.png" style="height:31px"/>
</div>
<div class="menu">书籍自动排序</div>
</div>
<div class="menuStyle" @click="showBatchMarkConfigure=true">
<div class="iconContainer">
<img src="images/icons/add-watermark.png" style="height:31px"/>
</div>
<div class="menu">批量添加水印</div>
</div>
<div class="menuStyle">
<el-popover
placement="bottom"
width="160"
v-model="showExportType">
<p style="font-weight: bold;font-size: 21px;color: black">导出类型选择</p>
<div style="text-align: center;margin: 0;height: 60px;width: 100%;font-size: 21px">
<div class="batch-item" @click="exportFile('pdf')"
style="position:relative;line-height: 45px;float: left;display: inline;width: 50%;height:100%;">
<img style="position: absolute; left: 50%; top: 50%;transform: translate(-50%, -50%);width: 40px;height: 40px"
src="images/icons/pdf.png" title="pdf">
</div>
<div class="batch-item" @click="exportFile('ofd')"
style="position:relative;float: left;display: inline;width: 50%;height:100%">
<img style="height: 40px;width:40px;position: absolute; left: 50%; top: 50%;transform: translate(-50%, -50%);"
src="images/icons/ofd.png" title="ofd">
</div>
<div class="batch-item" @click="exportFile('tif')"
style="position:relative;float: left;display: inline;width: 50%;height:100%">
<img style="position: absolute; left: 50%; top: 50%;transform: translate(-50%, -50%);height: 40px;width: 40px"
src="images/icons/tiff.png" title="tiff">
</div>
<div class="batch-item" @click="exportFile('zip')"
style="position:relative;float: left;display: inline;width: 50%;height:100%">
<img style="position: absolute; left: 50%; top: 50%;transform: translate(-50%, -50%);height: 40px;width: 40px"
src="images/icons/zip.png" title="zip">
</div>
</div>
<div slot="reference">
<div class="iconContainer">
<img src="images/icons/export-file.png"/>
</div>
<div class="menu">文件导出</div>
</div>
</el-popover>
</div>
<div class="menuStyle" 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>
</div>
<div class="menuStyle" @click="clearBatch()">
<div class="iconContainer">
<img src="images/icons/delAll.png"/>
</div>
<div class="menu">清空列表</div>
</div>
<div class="menuStyle" @click="clearGlobalFileSavePath()">
<div class="iconContainer">
<img src="images/icons/delete-all.png"/>
</div>
<div class="menu">清理全局文件保存目录</div>
</div>
</div>
<!-- </ul>-->
</div>
</el-header>
<el-main>
<div style="width: 100%;height: 100%">
<div v-if="debugMode" style="height: 100%">
<div style="float: left;width: 60%;height: 100%;margin-top: 10px;margin-left: 10px;display: inline-block">
<el-input style="display: inline-block;width: 200px" v-model="serverIP" placeholder="请输入ip"></el-input>
<el-input style="display: inline-block;width: 200px" v-model="serverPort" placeholder="请输入端口号"></el-input>
<el-button :disabled="!connectEnable" type="primary" @click="initWebSocket()">连接</el-button>
<el-button :disabled="connectEnable" type="primary" @click="disconnectSocket()">断开</el-button>
<div style="margin-top: 30px">
<el-input style="display: inline-block;width: 400px" type="textarea"
:autosize="{ minRows: 5, maxRows: 10}" v-model="socketCommand"
:placeholder="jsonCommadnHolder"></el-input>
<el-button style="margin:auto 0px" type="primary" @click="sendSocketCommand()">发送socket命令</el-button>
</div>
<div style="margin-top: 30px">
<span style="margin-right: 30px">接收到的socket信息以及异常:</span>
<el-button type="primary" @click="clearLog()">清空日志</el-button>
</div>
<div ref="logArea"
style="margin-top: 20px;height:400px;width: 100%;background-color: #e3e3e3;overflow: scroll;white-space: pre-wrap;line-height:1.5">
{{socketMsg}}
</div>
</div>
<div style="float: left;width: 1px;height: 100%;background-color:#e3e3e3;margin-right: 30px;margin-left: 30px;margin-top: 10px"></div>
<div style="float: left;width: 30%;height: 100%;margin-right: 30px;margin-top: 10px;display: inline-block">
<el-input type="textarea"
:autosize="{ minRows: 6, maxRows: 10}" v-model="originJson" style="display: inline-block;width: 400px;max-height: 400px"
placeholder="请输入数据源"></el-input>
<el-button style="margin-top: 10px" type="primary" @click="formatJson()">格式化json</el-button>
<div style="width:100%;height:60%;margin-top: 20px;background-color: #e3e3e3;overflow: scroll">
<pre id='preId' style="white-space: pre;line-height: 1.5">{{formatedJson}}</pre>
</div>
</div>
</div>
<div v-else style="height: 100%;width: 100%;position: relative">
<div class="opt">
<ul style="margin-left:-40px;line-height:24px">
<li @click="scaleMax($event)">
<img src="images/icons/amplify.png" title="放大"></img>
</li>
<li @click="scaleMin($event)">
<img src="images/icons/narrow.png" title="缩小"></img>
</li>
<li @click="ajustDimensions($event)">
<img src="images/icons/auto.png" title="自适应"></img>
</li>
<li @click="realDimensions($event,true)">
<img src="images/icons/real.png" title="实际大小"></img>
</li>
<li @click="addListenerToDiv($event)">
<img src="images/icons/drag.png" title="拖拽"></img>
</li>
<li @click="rotate(-90,$event)">
<img src="images/icons/left-roate.png" title="左旋90度"></img>
</li>
<li @click="rotate(90,$event)">
<img src="images/icons/right-roate.png" title="右旋90度"></img>
</li>
<li @click="rotate(180,$event)">
<img src="images/icons/roate.png" title="旋转180度"></img>
</li>
<li @click="innerErase($event)">
<img src="images/icons/erase-inner.png" title="内擦除"></img>
</li>
<li @click="outerErase($event)">
<img src="images/icons/erase-outter.png" title="外擦除"></img>
</li>
<li @click="rectification($event)" id="rectification">
<img src="images/icons/rectification.png" title="纠偏"></img>
</li>
<li @click="undo($event)">
<img src="images/icons/undo.png" title="撤销" v-if="undoStack.length>0"></img>
<img src="images/icons/undogray.png" title="撤销"
v-if="undoStack.length<=0"></img>
</li>
<li @click="redo($event)">
<img src="images/icons/redo.png" title="前进" v-if="redoStack.length>0"/>
<img src="images/icons/redogray.png" title="前进"
v-if="redoStack.length<=0"/>
</li>
<li @click="split(true,$event)">
<img src="images/icons/split-horizontal.png" title="垂直拆分">
</li>
<li @click="split(false,$event)">
<img src="images/icons/split-vertical.png" title="水平拆分"/>
</li>
<li @click="showWaterMarkConfigure($event)">
<img src="images/icons/water-mark.png" title="添加水印"/>
</li>
<li @click="save()">
<img src="images/icons/save.png" title="保存"/>
</li>
</ul>
</div>
<div class="image-container scroll" id="canvas-container" ref="canvasContainer"
@contextmenu.prevent>
<div v-show="showWaterMark" ref="water-mark-opt"
style="background-color: white;width: 300px;height: 300px;z-index:20;position: absolute;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);left: 80px;top: 450px;padding: 8px">
<div>
<span>输入文字</span>
<el-input v-model="waterMarkText" style="width: 220px" placeholder="请输入要添加的文字"></el-input>
</div>
<div style="margin-top: 8px"><span>选择字体</span>
<el-select v-model="markFontName" placeholder="请选择">
<el-option
v-for="item in markFontNameList"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</div>
<div style="margin-top: 6px"><span>选择字号</span>
<el-select v-model="markFontSize" placeholder="请选择">
<el-option
v-for="item in markFontSizeList"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</div>
<div>
<span>字体颜色</span>
<el-color-picker
v-model="markFontColor"
:predefine="markPredefineColors">
</el-color-picker>
</div>
<div style="width: 100%;margin-top: 8px">
<div>
<el-checkbox class="font-style" v-model="markFontBold">
粗体
</el-checkbox>
<el-checkbox class="font-style" v-model="markFontUnderline">下划线</el-checkbox>
</div>
<div>
<el-checkbox class="font-style" v-model="markFontItalic">斜体</el-checkbox>
<el-checkbox class="font-style" v-model="markFontStrikeout">删除线</el-checkbox>
</div>
</div>
<div style="margin: 0 auto;display: inline-block;position: absolute;right: 8px;bottom:8px ">
<el-button @click="showWaterMark=false" type="info">取消</el-button>
<el-button @click="confirmMarkConfigure" type="primary">确定</el-button>
</div>
</div>
<div v-show="showWaterMarkPosition" ref="water-mark-opt"
style="background-color: white;width: 160px;height: 40px;z-index:20;position: absolute;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);left: 80px;bottom: 120px;padding: 8px">
x:{{markPositionTipX}} y:{{markPositionTipY}}
</div>
<div style="position: absolute;z-index:20000;top:30px;right:32px"
v-if="rectificationDialog">
<div style="display: flex;">
<span style="margin-top:8px">拖动旋转</span>
<el-slider @change="sliderRotateChange" style="width:420px;margin-left:20px"
v-model="repSliderValue" :min=-360 :max=360 :step=1
show-input=true input-size="mini"></el-slider>
</div>
</div>
<canvas id="imageCanvas" height="100%" width="100%"></canvas>
</div>
<el-dialog
title="扫描设定"
:visible.sync="isSetup"
width="50%">
<div class="messageBox">
<el-form ref="form" :model="scanParams" label-width="120px"
style="padding-left:10px">
<el-tabs v-model="activeName">
<el-tab-pane style="margin: 18px" label="设备参数" name="1">
<el-form-item label="设备" required>
<el-select @change="onDeviceChanged" v-model="currDevice" placeholder="请选择扫描仪" filterable="true">
<el-option :label="device" :value="device"
v-for="(device, index) in devices" :key="device">
</el-option>
</el-select>
<el-tag class="cursor-pointer" style="margin-left: 30px" v-show="deviceOpened" @click="resetScanParams">参数重置
</el-tag>
</el-form-item>
<div v-if="deviceOpened">
<el-tabs type="border-card">
<el-tab-pane v-for="(groupParam,groupIndex) in scanParamsRange" :key="groupIndex"
:label="groupParam.group_name">
<el-form-item v-for="(singleParam,singleParamIndex) in groupParam.group_param" :key="singleParamIndex"
:label="singleParam.name" label-width="auto">
<el-switch v-if="singleParam.value_type==='bool'"
v-model="scanParams[groupIndex].group_param[singleParamIndex].value"></el-switch>
<el-select v-else-if="singleParam.value_type==='string'"
v-model="scanParams[groupIndex].group_param[singleParamIndex].value"
placeholder="请选择">
<el-option v-for="(paramRange,index) in singleParam.value_list" :label="paramRange"
:value="paramRange"></el-option>
</el-select>
<el-input-number
v-else-if="singleParam.value_type==='double'&&singleParam.range_type==='min_max'"
v-model="scanParams[groupIndex].group_param[singleParamIndex].value"
:min="singleParam.value_min"
:precision="2"
:step="0.01"
placeholder="请输入"
:max="singleParam.value_max"></el-input-number>
<el-input-number
v-else-if="singleParam.value_type==='int'&&singleParam.range_type==='min_max'"
v-model="scanParams[groupIndex].group_param[singleParamIndex].value"
:min="singleParam.value_min" :step="1" :precision="0"
placeholder="请输入"
:max="singleParam.value_max"></el-input-number>
<el-select
v-else-if="singleParam.value_type=='int'&&singleParam.range_type==='list'"
v-model="scanParams[groupIndex].group_param[singleParamIndex].value"
placeholder="请选择">
<el-option v-for="(paramRange,index) in singleParam.value_list" :label="paramRange"
:value="paramRange"></el-option>
</el-select>
<el-input-number
v-else-if="singleParam.value_type=='int'&&singleParam.range_type==undefined"
v-model="scanParams[groupIndex].group_param[singleParamIndex].value"
:min="1" :step="1" :precision="0"
placeholder="请输入"
:max="9999"></el-input-number>
</el-form-item>
</el-tab-pane>
</el-tabs>
</div>
</el-tab-pane>
<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>
</el-form-item>
<el-form-item label="文件绑定目录">
<el-input v-model="bindFolderPath"
placeholder="请输入文件绑定目录"></el-input>
</el-form-item>
<el-form-item label="文件名前缀">
<el-input v-model="globalConfig.file_name_prefix"
placeholder="请输入文件名前缀"></el-input>
</el-form-item>
<el-form-item label="文件命名规则">
<el-select v-model="globalConfig.file_name_mode" placeholder="请选择命名规则">
<el-option label="date_time" value="date_time"></el-option>
<el-option label="random" value="random"></el-option>
</el-select>
</el-form-item>
<el-form-item label="文件保存格式">
<el-select v-model="globalConfig.image_format" placeholder="请选择格式">
<el-option label="jpg" value="jpg"></el-option>
<el-option label="png" value="png"></el-option>
<el-option label="bmp" value="bmp"></el-option>
<el-option label="tif" value="tif"></el-option>
<el-option label="pdf" value="pdf"></el-option>
<el-option label="ofd" value="ofd"></el-option>
<el-option label="ocr-pdf" value="ocr-pdf"></el-option>
<el-option label="ocr-ofd" value="ocr-ofd"></el-option>
</el-select>
</el-form-item>
<el-form-item label="jpg图片质量" v-show='globalConfig.image_format=="jpg"'>
<el-slider v-model="globalConfig.image_jpeg_quality" :min="0"
:max="100"></el-slider>
</el-form-item>
<el-form-item label="tiff压缩方式" v-show='globalConfig.image_format=="tif"'>
<el-select v-model="globalConfig.image_tiff_compression">
<el-option label="none" value="none"></el-option>
<el-option label="lzw" value="lzw"></el-option>
<el-option label="jpeg" value="jpeg"></el-option>
</el-select>
</el-form-item>
<el-form-item label="tiff压缩质量"
v-show='globalConfig.image_format=="tif"&&globalConfig.image_tiff_compression=="jpeg"'>
<el-slider v-model="globalConfig.image_tiff_jpeg_quality" :min="0"
:max="100"></el-slider>
</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>
<el-dialog
title="批量添加水印"
:visible.sync="showBatchMarkConfigure"
width="30%">
<div style="margin-top: 8px">
<span>插入值</span>
<el-input style="width: 70%;margin-left: 16px" v-model="waterMarkText" placeholder="请输入文字"></el-input>
</div>
<div style="margin-top: 8px">
<span>插入位置</span>
<el-select style="margin-left: 16px" v-model="markPosition" placeholder="请选择">
<el-option
v-for="(item,index) in waterMarkPositionList"
:key="item"
:label="item"
:value="waterMarkPositionSignList[index]">
</el-option>
</el-select>
</div>
<div v-show="markPosition!='location'">
<div style="margin-top: 8px">
<span>上边距</span>
<el-input style="width: 70%;margin-left: 16px"
oninput="if(isNaN(value)) { value = ''}if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.'))}"
v-model="markMarginTop" placeholder="请输入距离"></el-input>
</div>
<div style="margin-top: 8px">
<span>下边距</span>
<el-input style="width: 70%;margin-left: 16px"
oninput="if(isNaN(value)) { value = ''}if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.'))}"
v-model="markMarginBottom" placeholder="请输入距离"></el-input>
</div>
<div style="margin-top: 8px">
<span>左边距</span>
<el-input style="width: 70%;margin-left: 16px"
oninput="if(isNaN(value)) { value = ''}if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.'))}"
v-model="markMarginLeft" placeholder="请输入距离"></el-input>
</div>
<div style="margin-top: 8px">
<span>右边距</span>
<el-input style="width: 70%;margin-left: 16px"
oninput="if(isNaN(value)) { value = ''}if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.'))}"
v-model="markMarginRight" placeholder="请输入距离"></el-input>
</div>
</div>
<div style="margin-top: 8px" v-show="markPosition=='location'">
<div style="margin-top: 8px">
<span>起始位置X坐标像素</span>
<el-input style="width: 50%;margin-left: 16px"
oninput="if(isNaN(value)) { value = ''}if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.'))}"
v-model="markAbsoluteX" placeholder="请输入X坐标"></el-input>
</div>
<div style="margin-top: 8px">
<span>起始位置Y坐标像素</span>
<el-input style="width: 50%;margin-left: 16px"
oninput="if(isNaN(value)) { value = ''}if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.'))}"
v-model="markAbsoluteY" placeholder="请输入Y坐标"></el-input>
</div>
</div>
<div style="margin-top: 8px">
<span>插入范围</span>
<el-slider
style="margin-left: 16px"
v-model="markInsertRange"
range
show-stops
:min="1"
:max="urls.length">
</el-slider>
</div>
<div style="margin-top: 8px"><span>选择字体</span>
<el-select style="margin-left: 16px" v-model="markFontName" placeholder="请选择">
<el-option
v-for="item in markFontNameList"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</div>
<div style="margin-top: 8px"><span>选择字号</span>
<el-select style="margin-left: 16px" v-model="markFontSize" placeholder="请选择">
<el-option
v-for="item in markFontSizeList"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</div>
<div style="margin-top: 8px">
<span>字体颜色</span>
<el-color-picker
style="margin-left: 16px"
v-model="markFontColor"
:predefine="markPredefineColors">
</el-color-picker>
</div>
<div style="width: 200px;margin-top: 8px;height: 60px">
<span>字体样式</span>
<div style="width: 100%">
<el-checkbox class="font-style" v-model="markFontBold">粗体</el-checkbox>
<el-checkbox class="font-style" v-model="markFontUnderline">下划线</el-checkbox>
</div>
<div style="width: 100%">
<el-checkbox class="font-style" v-model="markFontItalic">斜体</el-checkbox>
<el-checkbox class="font-style" v-model="markFontStrikeout">删除线</el-checkbox>
</div>
</div>
<div style="width: 100%;height: 40px">
<el-button style="float: right" type="primary" @click="addWaterMarkWithBatch">确 定</el-button>
<el-button style="float: right;margin-right: 16px" @click="showBatchMarkConfigure = false">取 消</el-button>
</div>
</el-dialog>
</div>
</div>
</el-main>
</el-container>
<div v-if="showBigImageDialog"
style="position: fixed;left: 0px;right: 0px;top: 0px;bottom: 0px;background-color: #000000">
<el-image @dblclick="showBigImageDialog=false"
ref="bigImage" :src="selectBigImage" fit="scale-down"
lazy
style="position:absolute;height:95%;width: 100%;left: 50%;top: 50%;transform: translate(-50%,-50%)">
</el-image>
</div>
</el-container>
<script src="js/polyfill.min.js"></script>
<script src="js/vue.min.js"></script>
<script src="js/element-ui/index.js"></script>
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/fabric.js"></script>
<script src="js/ScanEvent.js"></script>
<script src="js/WebScanController.js"></script>
<script src="js/util.js"></script>
<script src="js/FileSaver.js"></script>
<!--<script src="js/colorpicker.js"></script>-->
<script src="js/scanWeb.js"></script>
</body>
</html>