重新调整国产系统汉王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 Package: hanvonwebserver
Version: 4.52.16521.24142 Version: 1.0.5
Architecture: amd64 Architecture: amd64
Maintainer: hanvon Maintainer: scanner
Section: libs Section: libs
Priority: optional Priority: optional
Description: hanvon webscan server and application Description: scanner

View File

@ -1,14 +1,14 @@
#!/bin/bash #!/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" echo "installed in the dir /opt/hanvonwebscan"
#echo "demo web page in the static dir"
chmod 644 /etc/udev/rules.d/60-hanvon* chmod 644 /etc/udev/rules.d/60-hw*
udevadm control --reload-rules udevadm control --reload-rules
udevadm trigger udevadm trigger
@ -21,6 +21,6 @@ systemctl daemon-reload
echo "enable start.service " echo "enable start.service "
systemctl start hanvonwebscanserver.service systemctl start hanvonwebscanserver.service
sleep 10 sleep 10
echo "install hanvonwebserver finished" echo "install hanvonwebscanserver finished"

View File

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

View File

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

View File

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

View File

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

View File

@ -1,171 +1,171 @@
/* /*
* FileSaver.js * FileSaver.js
* A saveAs() FileSaver implementation. * A saveAs() FileSaver implementation.
* *
* By Eli Grey, http://eligrey.com * By Eli Grey, http://eligrey.com
* *
* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT) * License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)
* source : http://purl.eligrey.com/github/FileSaver.js * source : http://purl.eligrey.com/github/FileSaver.js
*/ */
// The one and only way of getting global scope in all environments // The one and only way of getting global scope in all environments
// https://stackoverflow.com/q/3277182/1008999 // https://stackoverflow.com/q/3277182/1008999
var _global = typeof window === 'object' && window.window === window var _global = typeof window === 'object' && window.window === window
? window : typeof self === 'object' && self.self === self ? window : typeof self === 'object' && self.self === self
? self : typeof global === 'object' && global.global === global ? self : typeof global === 'object' && global.global === global
? global ? global
: this : this
function bom (blob, opts) { function bom (blob, opts) {
if (typeof opts === 'undefined') opts = { autoBom: false } if (typeof opts === 'undefined') opts = { autoBom: false }
else if (typeof opts !== 'object') { else if (typeof opts !== 'object') {
console.warn('Deprecated: Expected third argument to be a object') console.warn('Deprecated: Expected third argument to be a object')
opts = { autoBom: !opts } opts = { autoBom: !opts }
} }
// prepend BOM for UTF-8 XML and text/* types (including HTML) // 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 // 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)) { 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 new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })
} }
return blob return blob
} }
function download (url, name, opts) { function download (url, name, opts) {
var xhr = new XMLHttpRequest() var xhr = new XMLHttpRequest()
xhr.open('GET', url) xhr.open('GET', url)
xhr.responseType = 'blob' xhr.responseType = 'blob'
xhr.onload = function () { xhr.onload = function () {
saveAs(xhr.response, name, opts) saveAs(xhr.response, name, opts)
} }
xhr.onerror = function () { xhr.onerror = function () {
console.error('could not download file') console.error('could not download file')
} }
xhr.send() xhr.send()
} }
function corsEnabled (url) { function corsEnabled (url) {
var xhr = new XMLHttpRequest() var xhr = new XMLHttpRequest()
// use sync to avoid popup blocker // use sync to avoid popup blocker
xhr.open('HEAD', url, false) xhr.open('HEAD', url, false)
try { try {
xhr.send() xhr.send()
} catch (e) {} } catch (e) {}
return xhr.status >= 200 && xhr.status <= 299 return xhr.status >= 200 && xhr.status <= 299
} }
// `a.click()` doesn't work for all browsers (#465) // `a.click()` doesn't work for all browsers (#465)
function click (node) { function click (node) {
try { try {
node.dispatchEvent(new MouseEvent('click')) node.dispatchEvent(new MouseEvent('click'))
} catch (e) { } catch (e) {
var evt = document.createEvent('MouseEvents') var evt = document.createEvent('MouseEvents')
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,
20, false, false, false, false, 0, null) 20, false, false, false, false, 0, null)
node.dispatchEvent(evt) node.dispatchEvent(evt)
} }
} }
// Detect WebView inside a native macOS app by ruling out all browsers // 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 // 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 // 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 isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)
var saveAs = _global.saveAs || ( var saveAs = _global.saveAs || (
// probably in some web worker // probably in some web worker
(typeof window !== 'object' || window !== _global) (typeof window !== 'object' || window !== _global)
? function saveAs () { /* noop */ } ? function saveAs () { /* noop */ }
// Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView
: ('download' in HTMLAnchorElement.prototype && !isMacOSWebView) : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)
? function saveAs (blob, name, opts) { ? function saveAs (blob, name, opts) {
var URL = _global.URL || _global.webkitURL var URL = _global.URL || _global.webkitURL
var a = document.createElement('a') var a = document.createElement('a')
name = name || blob.name || 'download' name = name || blob.name || 'download'
a.download = name a.download = name
a.rel = 'noopener' // tabnabbing a.rel = 'noopener' // tabnabbing
// TODO: detect chrome extensions & packaged apps // TODO: detect chrome extensions & packaged apps
// a.target = '_blank' // a.target = '_blank'
if (typeof blob === 'string') { if (typeof blob === 'string') {
// Support regular links // Support regular links
a.href = blob a.href = blob
if (a.origin !== location.origin) { if (a.origin !== location.origin) {
corsEnabled(a.href) corsEnabled(a.href)
? download(blob, name, opts) ? download(blob, name, opts)
: click(a, a.target = '_blank') : click(a, a.target = '_blank')
} else { } else {
click(a) click(a)
} }
} else { } else {
// Support blobs // Support blobs
a.href = URL.createObjectURL(blob) a.href = URL.createObjectURL(blob)
setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s
setTimeout(function () { click(a) }, 0) setTimeout(function () { click(a) }, 0)
} }
} }
// Use msSaveOrOpenBlob as a second approach // Use msSaveOrOpenBlob as a second approach
: 'msSaveOrOpenBlob' in navigator : 'msSaveOrOpenBlob' in navigator
? function saveAs (blob, name, opts) { ? function saveAs (blob, name, opts) {
name = name || blob.name || 'download' name = name || blob.name || 'download'
if (typeof blob === 'string') { if (typeof blob === 'string') {
if (corsEnabled(blob)) { if (corsEnabled(blob)) {
download(blob, name, opts) download(blob, name, opts)
} else { } else {
var a = document.createElement('a') var a = document.createElement('a')
a.href = blob a.href = blob
a.target = '_blank' a.target = '_blank'
setTimeout(function () { click(a) }) setTimeout(function () { click(a) })
} }
} else { } else {
navigator.msSaveOrOpenBlob(bom(blob, opts), name) navigator.msSaveOrOpenBlob(bom(blob, opts), name)
} }
} }
// Fallback to using FileReader and a popup // Fallback to using FileReader and a popup
: function saveAs (blob, name, opts, popup) { : function saveAs (blob, name, opts, popup) {
// Open a popup immediately do go around popup blocker // Open a popup immediately do go around popup blocker
// Mostly only available on user interaction and the fileReader is async so... // Mostly only available on user interaction and the fileReader is async so...
popup = popup || open('', '_blank') popup = popup || open('', '_blank')
if (popup) { if (popup) {
popup.document.title = popup.document.title =
popup.document.body.innerText = 'downloading...' popup.document.body.innerText = 'downloading...'
} }
if (typeof blob === 'string') return download(blob, name, opts) if (typeof blob === 'string') return download(blob, name, opts)
var force = blob.type === 'application/octet-stream' var force = blob.type === 'application/octet-stream'
var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari
var isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent) var isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent)
if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') { if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {
// Safari doesn't allow downloading of blob URLs // Safari doesn't allow downloading of blob URLs
var reader = new FileReader() var reader = new FileReader()
reader.onloadend = function () { reader.onloadend = function () {
var url = reader.result var url = reader.result
url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;') url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')
if (popup) popup.location.href = url if (popup) popup.location.href = url
else location = url else location = url
popup = null // reverse-tabnabbing #460 popup = null // reverse-tabnabbing #460
} }
reader.readAsDataURL(blob) reader.readAsDataURL(blob)
} else { } else {
var URL = _global.URL || _global.webkitURL var URL = _global.URL || _global.webkitURL
var url = URL.createObjectURL(blob) var url = URL.createObjectURL(blob)
if (popup) popup.location = url if (popup) popup.location = url
else location.href = url else location.href = url
popup = null // reverse-tabnabbing #460 popup = null // reverse-tabnabbing #460
setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s
} }
} }
) )
_global.saveAs = saveAs.saveAs = saveAs _global.saveAs = saveAs.saveAs = saveAs
if (typeof module !== 'undefined') { if (typeof module !== 'undefined') {
module.exports = saveAs; 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) { (function (window, debug, undefined) {
var loadding; var loadding;
var ajaxDefault = { var ajaxDefault = {
beforeSend: function (xhr) { beforeSend: function (xhr) {
loadding=window.eleLoadding(); loadding=window.eleLoadding();
}, },
complete: function (xhr) { complete: function (xhr) {
if(debug){ if(debug){
console.log(xhr); console.log(xhr);
} }
}, },
data: {}, data: {},
success: function (data, textStatus, jqXHR) { success: function (data, textStatus, jqXHR) {
if(debug){ if(debug){
console.log(data); console.log(data);
} }
if (data == undefined) { if (data == undefined) {
eleAlert('返回结果异常','warning'); eleAlert('返回结果异常','warning');
}else if(data.code==200){ }else if(data.code==200){
msg = '调用成功,放回状态码为:' + data.code; msg = '调用成功,放回状态码为:' + data.code;
if(msg.code!=200){ if(msg.code!=200){
msg+=';返回信息为:'+data.message; msg+=';返回信息为:'+data.message;
} }
// layer.alert(msg) // layer.alert(msg)
} }
}, },
error: function (xhr, error, exception) { error: function (xhr, error, exception) {
if(debug){ if(debug){
console.log(xhr); console.log(xhr);
console.log(error); console.log(error);
console.log(exception); console.log(exception);
} }
eleAlert('调用错误',"error"); eleAlert('调用错误',"error");
} }
}; };
function fnBeforeSend(xhr, callback) { function fnBeforeSend(xhr, callback) {
(callback || ajaxDefault.beforeSend)(xhr); (callback || ajaxDefault.beforeSend)(xhr);
} }
function fnAjaxSuccess(data, textStatus, jqXHR, callback) { function fnAjaxSuccess(data, textStatus, jqXHR, callback) {
/* if(data!=undefined&&data.code!=undefined){ /* if(data!=undefined&&data.code!=undefined){
if(data.code===401){ if(data.code===401){
layer.alert('请登陆',function(){ layer.alert('请登陆',function(){
window.location.href = loginUrl; window.location.href = loginUrl;
}); });
return; return;
}else if(data.code===403){ }else if(data.code===403){
layer.alert(data.message); layer.alert(data.message);
return; return;
}else if(data.code===404){ }else if(data.code===404){
layer.alert(data.message); layer.alert(data.message);
return; return;
}else if(data.code===500){ }else if(data.code===500){
layer.alert(data.message); layer.alert(data.message);
return; return;
} }
} */ } */
(callback || ajaxDefault.complete)(data, textStatus, jqXHR); (callback || ajaxDefault.complete)(data, textStatus, jqXHR);
} }
function fnComplete(data, textStatus, callback) { function fnComplete(data, textStatus, callback) {
loadding.close(); loadding.close();
(callback || ajaxDefault.complete)(data, textStatus); (callback || ajaxDefault.complete)(data, textStatus);
} }
window.utils = { window.utils = {
post: function (obj) { post: function (obj) {
var paramObj = {}; var paramObj = {};
jQuery.extend(paramObj, obj) jQuery.extend(paramObj, obj)
if (window.jQuery == undefined) { if (window.jQuery == undefined) {
alert('请引入jQuery'); alert('请引入jQuery');
} }
var finalData = {}; var finalData = {};
jQuery.extend(finalData, paramObj.data); jQuery.extend(finalData, paramObj.data);
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: paramObj.url, url: paramObj.url,
data: finalData, data: finalData,
beforeSend: function (xhr) { beforeSend: function (xhr) {
fnBeforeSend(xhr, paramObj.beforeSend); fnBeforeSend(xhr, paramObj.beforeSend);
}, },
complete: function (xhr, textStatus) { complete: function (xhr, textStatus) {
fnComplete(xhr, textStatus, paramObj.complete); fnComplete(xhr, textStatus, paramObj.complete);
}, },
success: function (data, textStatus, jqXHR) { success: function (data, textStatus, jqXHR) {
fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success); fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success);
} }
}); });
}, },
get: function (obj) { get: function (obj) {
var paramObj = {}; var paramObj = {};
jQuery.extend(paramObj, obj) jQuery.extend(paramObj, obj)
if (window.jQuery == undefined) { if (window.jQuery == undefined) {
alert('请引入jQuery'); alert('请引入jQuery');
} }
var finalData = {}; var finalData = {};
jQuery.extend(finalData, paramObj.data); jQuery.extend(finalData, paramObj.data);
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: paramObj.url, url: paramObj.url,
data: finalData, data: finalData,
beforeSend: function (xhr) { beforeSend: function (xhr) {
fnBeforeSend(xhr, paramObj.beforeSend); fnBeforeSend(xhr, paramObj.beforeSend);
}, },
complete: function (xhr, textStatus) { complete: function (xhr, textStatus) {
fnComplete(xhr, paramObj.complete); fnComplete(xhr, paramObj.complete);
}, },
dataType: paramObj.dataType || ajaxDefault.dataType, dataType: paramObj.dataType || ajaxDefault.dataType,
success: function (data, textStatus, jqXHR) { success: function (data, textStatus, jqXHR) {
fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success); fnAjaxSuccess(data, textStatus, jqXHR, paramObj.success);
} }
}); });
} }
}; };
})(window, false); })(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 Encoding=UTF-8
Type=Application Type=Application
Name=HanvonScan Name=HanvonScan
Name[zh_CN]=汉王扫描仪网页服务器重启 Name[zh_CN]=汉王扫描仪WebServer重启
Exec=sh /opt/hanvonwebscan/bin/restart.sh Exec=sh /opt/hanvonwebscan/bin/restart.sh
Icon=/opt/hanvonwebscan/static/hanvon_logo.png Icon=/opt/hanvonwebscan/static/hanvon_logo.png
Categories=Application; Categories=Application;