mirror of http://192.168.10.4:8099/sane/dpkg.git
重新调整国产系统汉王webscan
This commit is contained in:
parent
adaa11a51f
commit
930bc996ab
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
service hanvonwebscanserver restart
|
service hanvonwebscanserver restart
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
@ -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
|
@ -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;
|
Loading…
Reference in New Issue