重新调整国产系统汉王webscan

This commit is contained in:
yangjiaxuan 2024-05-22 10:06:32 +08:00
parent adaa11a51f
commit 930bc996ab
18 changed files with 37593 additions and 37631 deletions

View File

@ -1,7 +1,7 @@
Package: hanvonwebscan
Version: 4.52.16521.24142
Package: hanvonwebserver
Version: 1.0.5
Architecture: amd64
Maintainer: hanvon
Maintainer: scanner
Section: libs
Priority: optional
Description: hanvon webscan server and application
Description: scanner

View File

@ -1,14 +1,14 @@
#!/bin/bash
#RC_LOCAL="/etc/rc.local"
chmod 777 -R /opt/hanvonwebscan/bin/*
chmod 777 -R /opt/hanvonwebscan/bin/*
udevadm control --reload
udevadm trigger
echo "installed in the dir /opt/hanvonwebscan"
chmod 644 /etc/udev/rules.d/60-hanvon*
#echo "demo web page in the static dir"
chmod 644 /etc/udev/rules.d/60-hw*
udevadm control --reload-rules
udevadm trigger
@ -21,6 +21,6 @@ systemctl daemon-reload
echo "enable start.service "
systemctl start hanvonwebscanserver.service
sleep 10
echo "install hanvonwebserver finished"
echo "install hanvonwebscanserver finished"

View File

@ -1,29 +1,27 @@
#!/bin/bash
systemctl daemon-reload
/opt/hanvonwebscan/bin/server.sh stop
systemctl stop hanvonwebscanserver.service
sleep 3
test -h /etc/systemd/system/multi-user.target.wants/hanvonwebscanserver.service
if [ $? -eq 0 ];then
rm -rf /etc/systemd/system/multi-user.target.wants/hanvonwebscanserver.service
test -h /etc/systemd/system/multi-user.target.wants/hanvonwebscanserver.service
if [ $? -eq 0 ]; then
rm -rf /etc/systemd/system/multi-user.target.wants/hanvonwebscanserver.service
echo "services uninstall is success"
fi
test -h /etc/systemd/system/hanvonwebscanserver
if [ $? -eq 0 ];then
rm -rf /etc/systemd/system/hanvonwebscanserver
if [ $? -eq 0 ]; then
rm -rf /etc/systemd/system/hanvonwebscanserver
fi
test -e /lib/systemd/system/hanvonwebscanserver.service
if [ $? -eq 0 ];then
rm -rf /lib/systemd/system/hanvonwebscanserver.service
if [ $? -eq 0 ]; then
rm -rf /lib/systemd/system/hanvonwebscanserver.service
fi
test -d /opt/hanvonwebscan/
if [ $? -eq 0 ];then
rm -rf /opt/hanvonwebscan
fi
systemctl stop hanvonwebscanserver.service
systemctl daemon-reload
test -d /opt/hanvonwebscan/
if [ $? -eq 0 ]; then
rm -rf /opt/hanvonwebscan
fi

View File

@ -11,11 +11,8 @@ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idPro
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idProduct}=="0239", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idProduct}=="0339", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idProduct}=="0439", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idProduct}=="0402", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idProduct}=="0303", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idProduct}=="0302", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="064b", ATTR{idProduct}=="7823", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3072", ATTR{idProduct}=="0306", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
#Lanxum --->G100~G400
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8620", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8730", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
@ -26,9 +23,8 @@ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idPro
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8739", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8429", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8529", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8630", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8426", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="31c9", ATTR{idProduct}=="8626", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
#Hanvon --->G100~G400
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="2903", ATTR{idProduct}=="7000", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
@ -40,36 +36,4 @@ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="2903", ATTR{idPro
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="2903", ATTR{idProduct}=="7002", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="2903", ATTR{idProduct}=="7039", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
#cts --->G100~G400
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3308", ATTR{idProduct}=="6006", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3308", ATTR{idProduct}=="6005", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3308", ATTR{idProduct}=="6007", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="3308", ATTR{idProduct}=="6008", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
#microtek
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="05da", ATTR{idProduct}=="9220", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="05da", ATTR{idProduct}=="9222", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="05da", ATTR{idProduct}=="9223", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
#unis
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="32ec", ATTR{idProduct}=="0200", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="32ec", ATTR{idProduct}=="0210", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="32ec", ATTR{idProduct}=="0201", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
#Deli --->G100~G400
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="401c", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="401d", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="401e", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="401f", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4020", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4021", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4022", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4015", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4016", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4017", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4018", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="4019", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="401a", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="300e", ATTR{idProduct}=="401b", MODE="0666", OWNER="root", GROUP="lp", ENV{libsane_matched}="yes"
LABEL="mud_rules_end"

View File

@ -1,2 +1,2 @@
#!/bin/bash
service hanvonwebscanserver restart
#!/bin/bash
service hanvonwebscanserver restart

View File

@ -1,89 +1,89 @@
#!/bin/bash
DIR="$( cd "$( dirname "$0" )" && pwd )"
echo "current dir $DIR"
BASE_DIR="$DIR"
export LD_LIBRARY_PATH="$DIR"
APP_NAME=HwWebService
APP_PATH="$BASE_DIR/HwWebService"
echo "APP_PATH = $APP_PATH"
LIB_PARH="$BASE_DIR/libhwdriver.so"
echo "LIB_PARH = $LIB_PARH"
#userage
usage() {
echo "Usage: sh script.sh [start|stop|restart|status]"
exit 1
}
is_exist(){
if [ ! -f $BASE_DIR/HwWebService ]; then
return 1
else
pid=`ps -ef | grep "HwWebService" | grep -v grep | awk '{print $2}'`
echo "PID: $pid"
appNum=`ps -ef|awk '{print $2}'|grep -c -e "^${pid}\$"`
echo appNum $appNum
if [ ${appNum} -gt 0 ]; then
return 0
else
rm -rf $BASE_DIR/HwWebService.pid >/dev/null 2>&1 &
return 1
fi
fi
}
#start server
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
echo "APP_PATH: $APP_PATH"
echo "LIB_PATH: $LIB_PARH"
"$DIR"/HwWebService &
fi
}
#stop webserver
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
rm -rf $BASE_DIR/application.pid >/dev/null 2>&1 &
else
echo "${APP_NAME} is not running"
fi
}
#running status
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#restart server
restart(){
stop
start
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
#!/bin/bash
DIR="$( cd "$( dirname "$0" )" && pwd )"
echo "current dir $DIR"
BASE_DIR="$DIR"
export LD_LIBRARY_PATH="$DIR"
APP_NAME=HwWebService
APP_PATH="$BASE_DIR/HwWebService"
echo "APP_PATH = $APP_PATH"
LIB_PARH="$BASE_DIR/libhwdriver.so"
echo "LIB_PARH = $LIB_PARH"
#userage
usage() {
echo "Usage: sh script.sh [start|stop|restart|status]"
exit 1
}
is_exist(){
if [ ! -f $BASE_DIR/HwWebService ]; then
return 1
else
pid=`ps -ef | grep "HGWebService" | grep -v grep | awk '{print $2}'`
echo "PID: $pid"
appNum=`ps -ef|awk '{print $2}'|grep -c -e "^${pid}\$"`
echo appNum $appNum
if [ ${appNum} -gt 0 ]; then
return 0
else
rm -rf $BASE_DIR/HwWebService.pid >/dev/null 2>&1 &
return 1
fi
fi
}
#start server
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
echo "APP_PATH: $APP_PATH"
echo "LIB_PATH: $LIB_PARH"
"$DIR"/HwWebService &
fi
}
#stop webserver
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
rm -rf $BASE_DIR/application.pid >/dev/null 2>&1 &
else
echo "${APP_NAME} is not running"
fi
}
#running status
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#restart server
restart(){
stop
start
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac

View File

@ -1,220 +1,220 @@
html {
height: 100%
}
body {
margin: 0;
font-size: 14px;
font-family: "PingFang SC";
min-width: 1200px;
min-height: 900px;
height: 100%;
}
.el-container {
height: 100%;
border: 1px solid #eee;
}
ul {
list-style: none;
}
.imageListSelect {
/* border: 1px solid #909399; */
/*box-shadow: 0 2px 6px #ADADAD;*/
border: 2px solid #fa7857 !important;
}
.aside {
border-right: 1px solid #eee;
border-bottom: 1px solid #eee;
height: 100%
}
.aside .header {
height: 40px;
background-color: #eaeaea;
line-height: 40px;
padding-left: 20px;
/* margin-top:10px; */
color: #09aaff;
}
.scroll::-webkit-scrollbar {
width: 8px;
height: 8px;
}
/* 设置滚动条的滑轨 */
.scroll::-webkit-scrollbar-track {
background-color: #eaeaea;
}
/* 滑块 */
.scroll::-webkit-scrollbar-thumb {
/* background-color: rgba(0, 0, 0, 0.6); */
background-color: #cdcdcd;
border-radius: 4px;
}
/* 滑轨两头的监听按钮 */
.scroll::-webkit-scrollbar-button {
/* background-color: #444; */
background-color: #cdcdcd;
display: none;
}
.el-container .el-header {
border-bottom: 1px solid #eee;
}
.el-container .el-header .iconContainer {
width: 100%;
text-align: center;
height: 35px
}
.el-container .el-header .menus {
width: 100%;
text-align: center;
font-size: 14px
}
.el-container .el-header .menuContainer {
float: left;
margin-left: 15px;
}
.el-container .el-header .menuContainer ul {
padding-left: 10px;
}
.el-container .el-header ul li {
float: left;
padding-left: 20px;
cursor: pointer;
}
.el-container .el-header .menuRight {
float: right;
}
.el-container .el-header .menuRight ul li {
padding-right: 20px;
float: right;
cursor: pointer;
}
.el-container .el-header .menuRight .iconContainer {
height: 28px;
}
.el-main {
height: 100%;
padding: 0px;
position: relative;
overflow: hidden;
}
.el-main .opt {
width: 58px;
height: 100%;
border-right: 1px solid #eee;
float: left;
background-color: #eaeaea;
}
.el-main .opt .active {
border-radius: 4px;
border: 1px solid #fff;
background-color: #cecece;
margin-left: 4px;
margin-right: 4px;
}
.image-container {
overflow: auto;
height: 100%;
box-sizing: border-box;
margin: auto;
}
.el-main .opt ul li {
cursor: pointer;
text-align: center;
line-height: 16px;
padding-top: 4px
}
.mask {
background-color: rgba(0, 0, 0, 0.6);
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.mask .messageBox {
width: 500px;
border-radius: 3px;
position: fixed;
left: 50%;
top: 45%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
background-color: #fff;
padding: 15px;
}
.mask .messageBox .title {
border-radius: 3px;
margin-bottom: 30px;
padding-bottom: 15px;
border-bottom: 1px solid #eee;
font-size: 16px;
}
.mask .messageBox .title .closeReport {
float: right;
cursor: pointer;
}
.canvas-container {
margin: 0 auto;
}
.el-dropdown-link {
cursor: pointer;
color: #409EFF;
}
.el-icon-arrow-down {
font-size: 12px;
}
.batch-item {
background-color: white;
}
.batch-item:hover {
background-color: #eaeaea;
}
.operaBg:hover {
background-color: #C0C4CC;
}
.font-style {
display: inline-block;
float: left;
width: 30%
}
.cursor-pointer {
cursor: pointer
}
html {
height: 100%
}
body {
margin: 0;
font-size: 14px;
font-family: "PingFang SC";
min-width: 1200px;
min-height: 900px;
height: 100%;
}
.el-container {
height: 100%;
border: 1px solid #eee;
}
ul {
list-style: none;
}
.imageListSelect {
/* border: 1px solid #909399; */
/*box-shadow: 0 2px 6px #ADADAD;*/
border: 2px solid #fa7857 !important;
}
.aside {
border-right: 1px solid #eee;
border-bottom: 1px solid #eee;
height: 100%
}
.aside .header {
height: 40px;
background-color: #eaeaea;
line-height: 40px;
padding-left: 20px;
/* margin-top:10px; */
color: #09aaff;
}
.scroll::-webkit-scrollbar {
width: 8px;
height: 8px;
}
/* 设置滚动条的滑轨 */
.scroll::-webkit-scrollbar-track {
background-color: #eaeaea;
}
/* 滑块 */
.scroll::-webkit-scrollbar-thumb {
/* background-color: rgba(0, 0, 0, 0.6); */
background-color: #cdcdcd;
border-radius: 4px;
}
/* 滑轨两头的监听按钮 */
.scroll::-webkit-scrollbar-button {
/* background-color: #444; */
background-color: #cdcdcd;
display: none;
}
.el-container .el-header {
border-bottom: 1px solid #eee;
}
.el-container .el-header .iconContainer {
width: 100%;
text-align: center;
height: 35px
}
.el-container .el-header .menus {
width: 100%;
text-align: center;
font-size: 14px
}
.el-container .el-header .menuContainer {
float: left;
margin-left: 15px;
}
.el-container .el-header .menuContainer ul {
padding-left: 10px;
}
.el-container .el-header ul li {
float: left;
padding-left: 20px;
cursor: pointer;
}
.el-container .el-header .menuRight {
float: right;
}
.el-container .el-header .menuRight ul li {
padding-right: 20px;
float: right;
cursor: pointer;
}
.el-container .el-header .menuRight .iconContainer {
height: 28px;
}
.el-main {
height: 100%;
padding: 0px;
position: relative;
overflow: hidden;
}
.el-main .opt {
width: 58px;
height: 100%;
border-right: 1px solid #eee;
float: left;
background-color: #eaeaea;
}
.el-main .opt .active {
border-radius: 4px;
border: 1px solid #fff;
background-color: #cecece;
margin-left: 4px;
margin-right: 4px;
}
.image-container {
overflow: auto;
height: 100%;
box-sizing: border-box;
margin: auto;
}
.el-main .opt ul li {
cursor: pointer;
text-align: center;
line-height: 16px;
padding-top: 4px
}
.mask {
background-color: rgba(0, 0, 0, 0.6);
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.mask .messageBox {
width: 500px;
border-radius: 3px;
position: fixed;
left: 50%;
top: 45%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
background-color: #fff;
padding: 15px;
}
.mask .messageBox .title {
border-radius: 3px;
margin-bottom: 30px;
padding-bottom: 15px;
border-bottom: 1px solid #eee;
font-size: 16px;
}
.mask .messageBox .title .closeReport {
float: right;
cursor: pointer;
}
.canvas-container {
margin: 0 auto;
}
.el-dropdown-link {
cursor: pointer;
color: #409EFF;
}
.el-icon-arrow-down {
font-size: 12px;
}
.batch-item {
background-color: white;
}
.batch-item:hover {
background-color: #eaeaea;
}
.operaBg:hover {
background-color: #C0C4CC;
}
.font-style {
display: inline-block;
float: left;
width: 30%
}
.cursor-pointer {
cursor: pointer
}

View File

@ -1,171 +1,171 @@
/*
* FileSaver.js
* A saveAs() FileSaver implementation.
*
* By Eli Grey, http://eligrey.com
*
* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)
* source : http://purl.eligrey.com/github/FileSaver.js
*/
// The one and only way of getting global scope in all environments
// https://stackoverflow.com/q/3277182/1008999
var _global = typeof window === 'object' && window.window === window
? window : typeof self === 'object' && self.self === self
? self : typeof global === 'object' && global.global === global
? global
: this
function bom (blob, opts) {
if (typeof opts === 'undefined') opts = { autoBom: false }
else if (typeof opts !== 'object') {
console.warn('Deprecated: Expected third argument to be a object')
opts = { autoBom: !opts }
}
// prepend BOM for UTF-8 XML and text/* types (including HTML)
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
if (opts.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })
}
return blob
}
function download (url, name, opts) {
var xhr = new XMLHttpRequest()
xhr.open('GET', url)
xhr.responseType = 'blob'
xhr.onload = function () {
saveAs(xhr.response, name, opts)
}
xhr.onerror = function () {
console.error('could not download file')
}
xhr.send()
}
function corsEnabled (url) {
var xhr = new XMLHttpRequest()
// use sync to avoid popup blocker
xhr.open('HEAD', url, false)
try {
xhr.send()
} catch (e) {}
return xhr.status >= 200 && xhr.status <= 299
}
// `a.click()` doesn't work for all browsers (#465)
function click (node) {
try {
node.dispatchEvent(new MouseEvent('click'))
} catch (e) {
var evt = document.createEvent('MouseEvents')
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,
20, false, false, false, false, 0, null)
node.dispatchEvent(evt)
}
}
// Detect WebView inside a native macOS app by ruling out all browsers
// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too
// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos
var isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)
var saveAs = _global.saveAs || (
// probably in some web worker
(typeof window !== 'object' || window !== _global)
? function saveAs () { /* noop */ }
// Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView
: ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)
? function saveAs (blob, name, opts) {
var URL = _global.URL || _global.webkitURL
var a = document.createElement('a')
name = name || blob.name || 'download'
a.download = name
a.rel = 'noopener' // tabnabbing
// TODO: detect chrome extensions & packaged apps
// a.target = '_blank'
if (typeof blob === 'string') {
// Support regular links
a.href = blob
if (a.origin !== location.origin) {
corsEnabled(a.href)
? download(blob, name, opts)
: click(a, a.target = '_blank')
} else {
click(a)
}
} else {
// Support blobs
a.href = URL.createObjectURL(blob)
setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s
setTimeout(function () { click(a) }, 0)
}
}
// Use msSaveOrOpenBlob as a second approach
: 'msSaveOrOpenBlob' in navigator
? function saveAs (blob, name, opts) {
name = name || blob.name || 'download'
if (typeof blob === 'string') {
if (corsEnabled(blob)) {
download(blob, name, opts)
} else {
var a = document.createElement('a')
a.href = blob
a.target = '_blank'
setTimeout(function () { click(a) })
}
} else {
navigator.msSaveOrOpenBlob(bom(blob, opts), name)
}
}
// Fallback to using FileReader and a popup
: function saveAs (blob, name, opts, popup) {
// Open a popup immediately do go around popup blocker
// Mostly only available on user interaction and the fileReader is async so...
popup = popup || open('', '_blank')
if (popup) {
popup.document.title =
popup.document.body.innerText = 'downloading...'
}
if (typeof blob === 'string') return download(blob, name, opts)
var force = blob.type === 'application/octet-stream'
var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari
var isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent)
if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {
// Safari doesn't allow downloading of blob URLs
var reader = new FileReader()
reader.onloadend = function () {
var url = reader.result
url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')
if (popup) popup.location.href = url
else location = url
popup = null // reverse-tabnabbing #460
}
reader.readAsDataURL(blob)
} else {
var URL = _global.URL || _global.webkitURL
var url = URL.createObjectURL(blob)
if (popup) popup.location = url
else location.href = url
popup = null // reverse-tabnabbing #460
setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s
}
}
)
_global.saveAs = saveAs.saveAs = saveAs
if (typeof module !== 'undefined') {
module.exports = saveAs;
}
/*
* FileSaver.js
* A saveAs() FileSaver implementation.
*
* By Eli Grey, http://eligrey.com
*
* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)
* source : http://purl.eligrey.com/github/FileSaver.js
*/
// The one and only way of getting global scope in all environments
// https://stackoverflow.com/q/3277182/1008999
var _global = typeof window === 'object' && window.window === window
? window : typeof self === 'object' && self.self === self
? self : typeof global === 'object' && global.global === global
? global
: this
function bom (blob, opts) {
if (typeof opts === 'undefined') opts = { autoBom: false }
else if (typeof opts !== 'object') {
console.warn('Deprecated: Expected third argument to be a object')
opts = { autoBom: !opts }
}
// prepend BOM for UTF-8 XML and text/* types (including HTML)
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
if (opts.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })
}
return blob
}
function download (url, name, opts) {
var xhr = new XMLHttpRequest()
xhr.open('GET', url)
xhr.responseType = 'blob'
xhr.onload = function () {
saveAs(xhr.response, name, opts)
}
xhr.onerror = function () {
console.error('could not download file')
}
xhr.send()
}
function corsEnabled (url) {
var xhr = new XMLHttpRequest()
// use sync to avoid popup blocker
xhr.open('HEAD', url, false)
try {
xhr.send()
} catch (e) {}
return xhr.status >= 200 && xhr.status <= 299
}
// `a.click()` doesn't work for all browsers (#465)
function click (node) {
try {
node.dispatchEvent(new MouseEvent('click'))
} catch (e) {
var evt = document.createEvent('MouseEvents')
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,
20, false, false, false, false, 0, null)
node.dispatchEvent(evt)
}
}
// Detect WebView inside a native macOS app by ruling out all browsers
// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too
// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos
var isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)
var saveAs = _global.saveAs || (
// probably in some web worker
(typeof window !== 'object' || window !== _global)
? function saveAs () { /* noop */ }
// Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView
: ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)
? function saveAs (blob, name, opts) {
var URL = _global.URL || _global.webkitURL
var a = document.createElement('a')
name = name || blob.name || 'download'
a.download = name
a.rel = 'noopener' // tabnabbing
// TODO: detect chrome extensions & packaged apps
// a.target = '_blank'
if (typeof blob === 'string') {
// Support regular links
a.href = blob
if (a.origin !== location.origin) {
corsEnabled(a.href)
? download(blob, name, opts)
: click(a, a.target = '_blank')
} else {
click(a)
}
} else {
// Support blobs
a.href = URL.createObjectURL(blob)
setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s
setTimeout(function () { click(a) }, 0)
}
}
// Use msSaveOrOpenBlob as a second approach
: 'msSaveOrOpenBlob' in navigator
? function saveAs (blob, name, opts) {
name = name || blob.name || 'download'
if (typeof blob === 'string') {
if (corsEnabled(blob)) {
download(blob, name, opts)
} else {
var a = document.createElement('a')
a.href = blob
a.target = '_blank'
setTimeout(function () { click(a) })
}
} else {
navigator.msSaveOrOpenBlob(bom(blob, opts), name)
}
}
// Fallback to using FileReader and a popup
: function saveAs (blob, name, opts, popup) {
// Open a popup immediately do go around popup blocker
// Mostly only available on user interaction and the fileReader is async so...
popup = popup || open('', '_blank')
if (popup) {
popup.document.title =
popup.document.body.innerText = 'downloading...'
}
if (typeof blob === 'string') return download(blob, name, opts)
var force = blob.type === 'application/octet-stream'
var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari
var isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent)
if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {
// Safari doesn't allow downloading of blob URLs
var reader = new FileReader()
reader.onloadend = function () {
var url = reader.result
url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')
if (popup) popup.location.href = url
else location = url
popup = null // reverse-tabnabbing #460
}
reader.readAsDataURL(blob)
} else {
var URL = _global.URL || _global.webkitURL
var url = URL.createObjectURL(blob)
if (popup) popup.location = url
else location.href = url
popup = null // reverse-tabnabbing #460
setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s
}
}
)
_global.saveAs = saveAs.saveAs = saveAs
if (typeof module !== 'undefined') {
module.exports = saveAs;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,121 +1,121 @@
(function (window, debug, undefined) {
var loadding;
var ajaxDefault = {
beforeSend: function (xhr) {
loadding=window.eleLoadding();
},
complete: function (xhr) {
if(debug){
console.log(xhr);
}
},
data: {},
success: function (data, textStatus, jqXHR) {
if(debug){
console.log(data);
}
if (data == undefined) {
eleAlert('返回结果异常','warning');
}else if(data.code==200){
msg = '调用成功,放回状态码为:' + data.code;
if(msg.code!=200){
msg+=';返回信息为:'+data.message;
}
// layer.alert(msg)
}
},
error: function (xhr, error, exception) {
if(debug){
console.log(xhr);
console.log(error);
console.log(exception);
}
eleAlert('调用错误',"error");
}
};
function fnBeforeSend(xhr, callback) {
(callback || ajaxDefault.beforeSend)(xhr);
}
function fnAjaxSuccess(data, textStatus, jqXHR, callback) {
/* if(data!=undefined&&data.code!=undefined){
if(data.code===401){
layer.alert('请登陆',function(){
window.location.href = loginUrl;
});
return;
}else if(data.code===403){
layer.alert(data.message);
return;
}else if(data.code===404){
layer.alert(data.message);
return;
}else if(data.code===500){
layer.alert(data.message);
return;
}
} */
(callback || ajaxDefault.complete)(data, textStatus, jqXHR);
}
function fnComplete(data, textStatus, callback) {
loadding.close();
(callback || ajaxDefault.complete)(data, textStatus);
}
window.utils = {
post: function (obj) {
var paramObj = {};
jQuery.extend(paramObj, obj)
if (window.jQuery == undefined) {
alert('请引入jQuery');
}
var finalData = {};
jQuery.extend(finalData, paramObj.data);
$.ajax({
type: 'POST',
url: paramObj.url,
data: finalData,
beforeSend: function (xhr) {
fnBeforeSend(xhr, paramObj.beforeSend);
},
complete: function (xhr, textStatus) {
fnComplete(xhr, textStatus, paramObj.complete);
},
success: function (data, textStatus, jqXHR) {
fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success);
}
});
},
get: function (obj) {
var paramObj = {};
jQuery.extend(paramObj, obj)
if (window.jQuery == undefined) {
alert('请引入jQuery');
}
var finalData = {};
jQuery.extend(finalData, paramObj.data);
$.ajax({
type: 'GET',
url: paramObj.url,
data: finalData,
beforeSend: function (xhr) {
fnBeforeSend(xhr, paramObj.beforeSend);
},
complete: function (xhr, textStatus) {
fnComplete(xhr, paramObj.complete);
},
dataType: paramObj.dataType || ajaxDefault.dataType,
success: function (data, textStatus, jqXHR) {
fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success);
}
});
}
};
})(window, false);
(function (window, debug, undefined) {
var loadding;
var ajaxDefault = {
beforeSend: function (xhr) {
loadding=window.eleLoadding();
},
complete: function (xhr) {
if(debug){
console.log(xhr);
}
},
data: {},
success: function (data, textStatus, jqXHR) {
if(debug){
console.log(data);
}
if (data == undefined) {
eleAlert('返回结果异常','warning');
}else if(data.code==200){
msg = '调用成功,放回状态码为:' + data.code;
if(msg.code!=200){
msg+=';返回信息为:'+data.message;
}
// layer.alert(msg)
}
},
error: function (xhr, error, exception) {
if(debug){
console.log(xhr);
console.log(error);
console.log(exception);
}
eleAlert('调用错误',"error");
}
};
function fnBeforeSend(xhr, callback) {
(callback || ajaxDefault.beforeSend)(xhr);
}
function fnAjaxSuccess(data, textStatus, jqXHR, callback) {
/* if(data!=undefined&&data.code!=undefined){
if(data.code===401){
layer.alert('请登陆',function(){
window.location.href = loginUrl;
});
return;
}else if(data.code===403){
layer.alert(data.message);
return;
}else if(data.code===404){
layer.alert(data.message);
return;
}else if(data.code===500){
layer.alert(data.message);
return;
}
} */
(callback || ajaxDefault.complete)(data, textStatus, jqXHR);
}
function fnComplete(data, textStatus, callback) {
loadding.close();
(callback || ajaxDefault.complete)(data, textStatus);
}
window.utils = {
post: function (obj) {
var paramObj = {};
jQuery.extend(paramObj, obj)
if (window.jQuery == undefined) {
alert('请引入jQuery');
}
var finalData = {};
jQuery.extend(finalData, paramObj.data);
$.ajax({
type: 'POST',
url: paramObj.url,
data: finalData,
beforeSend: function (xhr) {
fnBeforeSend(xhr, paramObj.beforeSend);
},
complete: function (xhr, textStatus) {
fnComplete(xhr, textStatus, paramObj.complete);
},
success: function (data, textStatus, jqXHR) {
fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success);
}
});
},
get: function (obj) {
var paramObj = {};
jQuery.extend(paramObj, obj)
if (window.jQuery == undefined) {
alert('请引入jQuery');
}
var finalData = {};
jQuery.extend(finalData, paramObj.data);
$.ajax({
type: 'GET',
url: paramObj.url,
data: finalData,
beforeSend: function (xhr) {
fnBeforeSend(xhr, paramObj.beforeSend);
},
complete: function (xhr, textStatus) {
fnComplete(xhr, paramObj.complete);
},
dataType: paramObj.dataType || ajaxDefault.dataType,
success: function (data, textStatus, jqXHR) {
fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success);
}
});
}
};
})(window, false);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
Encoding=UTF-8
Type=Application
Name=HanvonScan
Name[zh_CN]=汉王扫描仪网页服务器重启
Name[zh_CN]=汉王扫描仪WebServer重启
Exec=sh /opt/hanvonwebscan/bin/restart.sh
Icon=/opt/hanvonwebscan/static/hanvon_logo.png
Categories=Application;