Browse Source

节点阻断遗漏代码补全+用户重置日期bug修复

Bretton 5 years ago
parent
commit
890bca9708

+ 3 - 3
app/Components/Curl.php

@@ -14,7 +14,7 @@ class Curl
 	{
 		$ch = curl_init();
 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
-		curl_setopt($ch, CURLOPT_TIMEOUT, 3);
+		curl_setopt($ch, CURLOPT_TIMEOUT, 10);
 		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
 		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
 		curl_setopt($ch, CURLOPT_URL, $url);
@@ -24,9 +24,9 @@ class Curl
 			curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 		}
 
-		$res = curl_exec($ch);
+		$result = curl_exec($ch);
 		curl_close($ch);
 
-		return $res;
+		return $result;
 	}
 }

+ 3 - 6
app/Console/Commands/NodeBlockedDetection.php

@@ -2,6 +2,7 @@
 
 namespace App\Console\Commands;
 
+use App\Components\Curl;
 use App\Components\Helpers;
 use App\Components\ServerChan;
 use App\Http\Models\SsNode;
@@ -128,9 +129,9 @@ class NodeBlockedDetection extends Command
 		$checkName = $type? 'ICMP' : 'TCP';
 
 		try{
-			$ret = json_decode($this->curlRequest($url), TRUE);
+			$ret = json_decode(Curl::send($url), TRUE);
 			if(!$ret){
-				Log::warning("【".$checkName."阻断检测】检测".$ip."时,接口返回异常访问链接:");
+				Log::warning("【".$checkName."阻断检测】检测".$ip."时,接口返回异常访问链接:".$url);
 
 				return FALSE;
 			}elseif(!$ret['success']){
@@ -172,8 +173,4 @@ class NodeBlockedDetection extends Command
 		}
 		ServerChan::send($title, $content);
 	}
-
-	private function curlRequest(string $url)
-	{
-	}
 }

+ 4 - 3
app/Http/Controllers/UserController.php

@@ -62,7 +62,7 @@ class UserController extends Controller
 		$usedTransfer = Auth::user()->u+Auth::user()->d;
 		$unusedTransfer = $totalTransfer-$usedTransfer > 0? $totalTransfer-$usedTransfer : 0;
 		$expireTime = Auth::user()->expire_time;
-		$view['remainDays'] = $expireTime < date('Y-m-d') ? -1 : (strtotime($expireTime)-strtotime(date('Y-m-d')))/86400;
+		$view['remainDays'] = $expireTime < date('Y-m-d')? -1 : (strtotime($expireTime)-strtotime(date('Y-m-d')))/86400;
 		$view['resetDays'] = Auth::user()->reset_time? round((strtotime(Auth::user()->reset_time)-strtotime(date('Y-m-d')))/86400) : 0;
 		$view['unusedTransfer'] = $unusedTransfer;
 		$view['expireTime'] = $expireTime;
@@ -315,8 +315,9 @@ class UserController extends Controller
 		// 余额充值商品,只取10个
 		$view['chargeGoodsList'] = Goods::type(3)->where('status', 1)->orderBy('price', 'asc')->orderBy('price', 'asc')->limit(10)->get();
 		$view['goodsList'] = Goods::query()->where('status', 1)->where('type', '<=', '2')->orderBy('type', 'desc')->orderBy('sort', 'desc')->paginate(10)->appends($request->except('page'));
-		$renewPrice = Order::uid()->where('status', 2)->where('is_expire', 0)->first();
-		$view['renewTraffic'] = $renewPrice? $renewPrice->renew : 0;
+		$renewOrder = Order:: query()->with(['goods'])->where('user_id', Auth::user()->id)->where('status', 2)->where('is_expire', 0)->whereHas('goods', function($q){ $q->where('type', 2); })->first();
+		$renewPrice = Goods::query()->where('id', $renewOrder->goods_id)->first();
+		$view['renewTraffic'] = $renewPrice->renew? : 0;
 		// 有重置日时按照重置日为标准,否者就以过期日为标准
 		$dataPlusDays = Auth::user()->reset_time? Auth::user()->reset_time : Auth::user()->expire_time;
 		$view['dataPlusDays'] = $dataPlusDays > date('Y-m-d')? round((strtotime($dataPlusDays)-strtotime(date('Y-m-d')))/86400) : 0;

+ 3 - 12
app/helpers.php

@@ -1,5 +1,7 @@
 <?php
 
+use App\Components\Curl;
+
 // 生成SS密码
 if(!function_exists('makeRandStr')){
 	function makeRandStr($length = 6, $isNumbers = FALSE)
@@ -196,18 +198,7 @@ if(!function_exists('getIPv6')){
 		$url = 'https://api.ip.sb/geoip/'.$ip;
 
 		try{
-			$ch = curl_init();
-			curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
-			curl_setopt($ch, CURLOPT_TIMEOUT, 10);
-			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
-			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
-			curl_setopt($ch, CURLOPT_URL, $url);
-			curl_setopt($ch, CURLOPT_POST, 0);
-
-			$result = curl_exec($ch);
-			curl_close($ch);
-
-			$result = json_decode($result, TRUE);
+			$result = json_decode(Curl::send($url), TRUE);
 			if(!is_array($result) || isset($result['code'])){
 				throw new Exception('解析IPv6异常:'.$ip);
 			}

+ 1 - 1
resources/views/admin/addGroup.blade.php

@@ -15,7 +15,7 @@
 				<form action="#" method="post" enctype="multipart/form-data" class="form-horizontal" role="form" onsubmit="return Submit()">
 					<div class="form-group row">
 						<label class="col-form-label col-md-1" for="name">分组名称</label>
-						<input type="text" class="form-control col-md-5" name="name" value="" id="name" required/>
+						<input type="text" class="form-control col-md-5" name="name" id="name" required/>
 					</div>
 					<div class="form-group row">
 						<label class="col-form-label col-md-1" for="level">分组级别</label>

+ 8 - 8
resources/views/admin/addNode.blade.php

@@ -83,7 +83,7 @@
 									</div>
 									<div class="form-group row">
 										<label for="traffic_rate" class="col-md-3 col-form-label"> 流量比例 </label>
-										<input type="text" class="form-control col-md-4" name="traffic_rate" value="1.0" id="traffic_rate" required>
+										<input type="number" class="form-control col-md-4" name="traffic_rate" value="1.0" id="traffic_rate"number step="0.01" required>
 										<span class="text-help offset-md-3"> 举例:0.1用100M结算10M,5用100M结算500M </span>
 									</div>
 									<div class="form-group row">
@@ -121,7 +121,7 @@
 									</div>
 									<div class="form-group row">
 										<label for="sort" class="col-md-3 col-form-label">排序</label>
-										<input type="text" class="form-control col-md-4" name="sort" value="1" id="sort">
+										<input type="text" class="form-control col-md-4" name="sort" id="sort" value="1"/>
 										<span class="text-help offset-md-3"> 排序值越大排越前 &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;</span>
 									</div>
 									<div class="form-group row">
@@ -309,13 +309,13 @@
 										<div class="single-setting hidden">
 											<div class="form-group row">
 												<label for="port" class="col-md-3 col-form-label">[单] 端口</label>
-												<input type="text" class="form-control col-md-4" name="port" value="" id="port" placeholder="443">
+												<input type="number" class="form-control col-md-4" name="port" value="443" id="port"/>
 												<span class="text-help offset-md-3"> 推荐80或443,服务端需要配置 </span>
 												<span class="text-help offset-md-3"> 严格模式:用户的端口无法连接,只能通过以下指定的端口进行连接(<a href="javascript:showPortsOnlyConfig();">如何配置</a>)</span>
 											</div>
 											<div class="form-group row">
 												<label for="passwd" class="col-md-3 col-form-label">[单] 密码</label>
-												<input type="text" class="form-control col-md-4" name="passwd" value="" id="passwd" placeholder="password">
+												<input type="text" class="form-control col-md-4" name="passwd" id="passwd" placeholder="password">
 											</div>
 										</div>
 									</div>
@@ -323,11 +323,11 @@
 									<div class="v2ray-setting hidden">
 										<div class="form-group row">
 											<label for="v2_alter_id" class="col-md-3 col-form-label">额外ID</label>
-											<input type="text" class="form-control col-md-4" name="v2_alter_id" value="16" id="v2_alter_id" placeholder="16">
+											<input type="text" class="form-control col-md-4" name="v2_alter_id" value="16" id="v2_alter_id"/>
 										</div>
 										<div class="form-group row">
 											<label for="v2_port" class="col-md-3 col-form-label">端口</label>
-											<input type="text" class="form-control col-md-4" name="v2_port" value="10087" id="v2_port" placeholder="10087">
+											<input type="number" class="form-control col-md-4" name="v2_port" value="10087" id="v2_port"/>
 										</div>
 										<div class="form-group row">
 											<label for="v2_method" class="col-md-3 col-form-label">加密方式</label>
@@ -389,13 +389,13 @@
 										</div>
 										<div class="form-group row">
 											<label for="v2_insider_port" class="col-md-3 col-form-label">内部端口</label>
-											<input type="text" class="form-control col-md-4" name="v2_insider_port" value="10550" id="v2_insider_port" placeholder="10550">
+											<input type="number" class="form-control col-md-4" name="v2_insider_port" id="v2_insider_port" value="10550"/>
 											<span class="text-help offset-md-3"> 内部监听,当端口为0时启用,仅支持<a href="https://github.com/rico93/pay-v2ray-sspanel-v3-mod_Uim-plugin/" target="_blank">rico93版</a> </span>
 
 										</div>
 										<div class="form-group row">
 											<label for="v2_outsider_port" class="col-md-3 col-form-label">内部端口</label>
-											<input type="text" class="form-control col-md-4" name="v2_outsider_port" value="443" id="v2_outsider_port" placeholder="443">
+											<input type="number" class="form-control col-md-4" name="v2_outsider_port" id="v2_outsider_port" value="443"/>
 											<span class="text-help offset-md-3"> 外部覆盖,当端口为0时启用,仅支持<a href="https://github.com/rico93/pay-v2ray-sspanel-v3-mod_Uim-plugin/" target="_blank">rico93版</a> </span>
 										</div>
 									</div>

+ 6 - 6
resources/views/admin/addUser.blade.php

@@ -23,7 +23,7 @@
 							<div class="form-group row">
 								<label class="col-md-2 col-sm-3 col-form-label" for="password">密码</label>
 								<div class="col-xl-6 col-sm-8">
-									<input type="text" class="form-control" name="password" value="" id="password" value="" placeholder="留空则自动生成随机密码" autocomplete="off"/>
+									<input type="text" class="form-control" name="password" value="" id="password" placeholder="留空则自动生成随机密码" autocomplete="off"/>
 								</div>
 							</div>
 							<div class="form-group row">
@@ -196,7 +196,7 @@
 								<label class="col-md-2 col-sm-3 col-form-label" for="port">端口</label>
 								<div class="col-xl-5 col-sm-8">
 									<div class="input-group">
-										<input class="form-control" type="number" name="port" value="{{$last_port}}" id="port"/>
+										<input type="number" class="form-control" name="port" value="{{$last_port}}" id="port"/>
 										<span class="input-group-append"><button class="btn btn-success" type="button" onclick="makePort()"> <i class="icon wb-refresh"></i> </button></span>
 									</div>
 								</div>
@@ -205,7 +205,7 @@
 								<label class="col-md-2 col-sm-3 col-form-label" for="passwd">密码</label>
 								<div class="col-xl-5 col-sm-8">
 									<div class="input-group">
-										<input class="form-control" type="text" name="passwd" id="passwd" placeholder="留空则自动生成随机密码" autocomplete="off"/>
+										<input type="text" class="form-control" name="passwd" id="passwd" placeholder="留空则自动生成随机密码" autocomplete="off"/>
 										<span class="input-group-append"><button class="btn btn-success" type="button" onclick="makePasswd()"> <i class="icon wb-refresh"></i> </button></span>
 									</div>
 								</div>
@@ -286,7 +286,7 @@
 								<label class="col-md-2 col-sm-3 col-form-label" for="speed_limit_per_con">单连接限速</label>
 								<div class="col-xl-6 col-sm-8">
 									<div class="input-group">
-										<input type="text" class="form-control" name="speed_limit_per_con" id="speed_limit_per_con" value="10737418240" autocomplete="off"/>
+										<input type="number" class="form-control" name="speed_limit_per_con" id="speed_limit_per_con" value="10737418240" autocomplete="off"/>
 										<span class="input-group-text">Byte</span>
 									</div>
 									<span class="text-help"> 为 0 时不限速 </span>
@@ -296,7 +296,7 @@
 								<label class="col-md-2 col-sm-3 col-form-label" for="speed_limit_per_user">单用户限速</label>
 								<div class="col-xl-6 col-sm-8">
 									<div class="input-group">
-										<input type="text" class="form-control" name="speed_limit_per_user" id="speed_limit_per_user" value="10737418240" autocomplete="off"/>
+										<input type="number" class="form-control" name="speed_limit_per_user" id="speed_limit_per_user" value="10737418240" autocomplete="off"/>
 										<span class="input-group-text">Byte</span>
 									</div>
 									<span class="text-help">为 0 时不限速 </span>
@@ -307,7 +307,7 @@
 								<label class="col-md-2 col-sm-3 col-form-label" for="vmess_id">VMess UUID</label>
 								<div class="col-xl-6 col-sm-8">
 									<div class="input-group">
-										<input class="form-control" type="text" name="vmess_id" id="vmess_id" value="{{createGuid()}}" autocomplete="off"/>
+										<input type="text" class="form-control" name="vmess_id" id="vmess_id" value="{{createGuid()}}" autocomplete="off"/>
 										<span class="input-group-append"><button class="btn btn-success" type="button" onclick="makeVmessId()"> <i class="icon wb-refresh"></i> </button></span>
 									</div>
 									<span class="text-help"> V2Ray的账户ID </span>

+ 4 - 4
resources/views/admin/config.blade.php

@@ -158,10 +158,10 @@
 									@foreach($level_list as $level)
 										<tr>
 											<td>
-												<input id="level_{{$level->id}}" name="level" value="{{$level->level}}" type="text" class="form-control">
+												<input type="text" class="form-control" name="level" id="level_{{$level->id}}" value="{{$level->level}}"/>
 											</td>
 											<td>
-												<input id="level_name_{{$level->id}}" name="level_name" value="{{$level->level_name}}" type="text" class="form-control">
+												<input type="text" class="form-control" name="level_name" id="level_name_{{$level->id}}" value="{{$level->level_name}}"/>
 											</td>
 											<td>
 												<div class="btn-group">
@@ -203,10 +203,10 @@
 												</svg>
 											</td>
 											<td>
-												<input id="country_name_{{$country->id}}" name="country_name" value="{{$country->name}}" type="text" class="form-control">
+												<input type="text" class="form-control" name="country_name" id="country_name_{{$country->id}}" value="{{$country->name}}"/>
 											</td>
 											<td>
-												<input id="country_code_{{$country->id}}" name="country_code" value="{{$country->code}}" type="text" class="form-control">
+												<input type="text" class="form-control" name="country_code" id="country_code_{{$country->id}}" value="{{$country->code}}"/>
 											</td>
 											<td>
 												<div class="btn-group">

+ 2 - 2
resources/views/admin/editNode.blade.php

@@ -79,12 +79,12 @@
 									</div>
 									<div class="form-group row">
 										<label for="ssh_port" class="col-md-3 col-form-label"> SSH端口 </label>
-										<input type="number" class="form-control col-md-4" name="ssh_port" value="{{$node->ssh_port}}" id="ssh_port" placeholder="服务器SSH端口" required>
+										<input type="number" class="form-control col-md-4" name="ssh_port" id="ssh_port" value="{{$node->ssh_port}}" placeholder="服务器SSH端口" required>
 										<span class="text-help offset-md-3">请务必正确填写此值,否则TCP阻断检测可能误报</span>
 									</div>
 									<div class="form-group row">
 										<label for="traffic_rate" class="col-md-3 col-form-label"> 流量比例 </label>
-										<input type="number" class="form-control col-md-4" name="traffic_rate" value="{{$node->traffic_rate}}" id="traffic_rate" required>
+										<input type="number" class="form-control col-md-4" name="traffic_rate" id="traffic_rate" value="{{$node->traffic_rate}}" step="0.01" required>
 										<span class="text-help offset-md-3"> 举例:0.1用100M结算10M,5用100M结算500M </span>
 									</div>
 									<div class="form-group row">

+ 3 - 3
resources/views/admin/editUser.blade.php

@@ -26,7 +26,7 @@
 							<div class="form-group row">
 								<label class="col-md-2 col-sm-3 col-form-label" for="password">密码</label>
 								<div class="col-xl-6 col-sm-8">
-									<input type="text" class="form-control" name="password" value="" id="password" placeholder="不填则不变" autocomplete="off"/>
+									<input type="text" class="form-control" name="password" id="password" placeholder="不填则不变" autocomplete="off"/>
 								</div>
 							</div>
 							<div class="form-group row">
@@ -234,7 +234,7 @@
 								<label class="col-md-2 col-sm-3 col-form-label" for="port">端口</label>
 								<div class="col-xl-5 col-sm-8">
 									<div class="input-group">
-										<input class="form-control" type="number" name="port" value="{{$user->port}}" id="port"/>
+										<input type="number" class="form-control" name="port" value="{{$user->port}}" id="port"/>
 										<span class="input-group-append"><button class="btn btn-success" type="button" onclick="makePort()"> <i class="icon wb-refresh"></i> </button></span>
 									</div>
 								</div>
@@ -376,7 +376,7 @@
 					<div class="alert alert-danger" style="display: none;" id="msg"></div>
 					<div class="form-group row">
 						<label class="col-md-2 col-sm-3 col-form-label" for="amount"> 充值金额 </label>
-						<input type="number" class="col-sm-4 form-control" name="amount" id="amount" placeholder="填入负值则会扣余额" onkeydown="if(event.keyCode===13){return false;}"/>
+						<input type="number" class="col-sm-4 form-control" name="amount" id="amount" placeholder="填入负值则会扣余额" step="0.01" onkeydown="if(event.keyCode===13){return false;}"/>
 					</div>
 				</form>
 				<div class="modal-footer">

+ 2 - 2
resources/views/admin/orderList.blade.php

@@ -22,11 +22,11 @@
 							<div class="input-group-prepend">
 								<span class="input-group-text"><i class="icon wb-calendar" aria-hidden="true"></i></span>
 							</div>
-							<input type="text" class="form-control" name="start" id="start" value="" placeholder="{{date("Y-m-d")}}"/>
+							<input type="text" class="form-control" name="start" id="start" placeholder="{{date("Y-m-d")}}"/>
 							<div class="input-group-prepend">
 								<span class="input-group-text">至</span>
 							</div>
-							<input type="text" class="form-control" name="end" id="end" value="" placeholder="{{date("Y-m-d",strtotime("+1 month"))}}"/>
+							<input type="text" class="form-control" name="end" id="end" placeholder="{{date("Y-m-d",strtotime("+1 month"))}}"/>
 						</div>
 					</div>
 					<div class="form-group col-lg-2 col-sm-6">

+ 1 - 1
resources/views/admin/system.blade.php

@@ -450,7 +450,7 @@
 											<label class="col-md-3 col-form-label" for="admin_invite_days">管理员-邀请码有效期</label>
 											<div class="col-md-7">
 												<div class="input-group">
-													<input class="form-control" type="number" id="admin_invite_days" name="admin_invite_days" value="{{$admin_invite_days}}"/>
+													<input type="number" class="form-control" name="admin_invite_days" id="admin_invite_days" value="{{$admin_invite_days}}"/>
 													<div class="input-group-append">
 													</div>
 													<span class="input-group-text">天</span>

+ 1 - 1
resources/views/auth/login.blade.php

@@ -27,7 +27,7 @@
 		@switch(\App\Components\Helpers::systemConfig()['is_captcha'])
 			@case(1)<!-- Default Captcha -->
 			<div class="form-group form-material floating input-group" data-plugin="formMaterial">
-				<input type="text" class="form-control" name="captcha" value=""/>
+				<input type="text" class="form-control" name="captcha"/>
 				<label class="floating-label" for="captcha">{{trans('auth.captcha')}}</label>
 				<img src="{{captcha_src()}}" class="float-right" onclick="this.src='/captcha/default?'+Math.random()"
 				     alt="{{trans('auth.captcha')}}"/>

+ 4 - 4
resources/views/auth/register.blade.php

@@ -40,7 +40,7 @@
 			@if(\App\Components\Helpers::systemConfig()['is_verify_register'])
 				<div class="form-group form-material floating" data-plugin="formMaterial">
 					<div class="input-group" data-plugin="inputGroupFile">
-						<input type="text" class="form-control" autocomplete="off" name="verify_code" value="{{Request::old('verify_code')}}" required/>
+						<input type="text" class="form-control" name="verify_code" value="{{Request::old('verify_code')}}" required/>
 						<label class="floating-label" for="verify_code">{{trans('auth.captcha')}}</label>
 						<span class="input-group-btn">
                             <span class="btn btn-success" id="sendCode" onclick="sendVerifyCode()">
@@ -51,11 +51,11 @@
 				</div>
 			@endif
 			<div class="form-group form-material floating" data-plugin="formMaterial">
-				<input type="password" class="form-control" autocomplete="off" name="password" value="" required/>
+				<input type="password" class="form-control" autocomplete="off" name="password" required/>
 				<label class="floating-label" for="password">{{trans('auth.password')}}</label>
 			</div>
 			<div class="form-group form-material floating" data-plugin="formMaterial">
-				<input type="password" class="form-control" autocomplete="off" name="repassword" value="" required/>
+				<input type="password" class="form-control" autocomplete="off" name="repassword" required/>
 				<label class="floating-label" for="repassword">{{trans('auth.retype_password')}}</label>
 			</div>
 			@if(\App\Components\Helpers::systemConfig()['is_invite_register'])
@@ -73,7 +73,7 @@
 				@switch(\App\Components\Helpers::systemConfig()['is_captcha'])
 					@case(1)<!-- Default Captcha -->
 					<div class="form-group form-material floating input-group" data-plugin="formMaterial">
-						<input type="text" class="form-control" name="captcha" value="" required/>
+						<input type="text" class="form-control" name="captcha" required/>
 						<label class="floating-label" for="captcha">{{trans('auth.captcha')}}</label>
 						<img src="{{captcha_src()}}" class="float-right" onclick="this.src='/captcha/default?'+Math.random()" alt="{{trans('auth.captcha')}}"/>
 					</div>

+ 2 - 2
resources/views/auth/reset.blade.php

@@ -21,12 +21,12 @@
 				{{trans('auth.resetPassword')}}
 			</div>
 			<div class="form-group form-material floating" data-plugin="formMaterial">
-				<input class="form-control" type="password" autocomplete="off" name="password" value="" required/>
+				<input class="form-control" type="password" autocomplete="off" name="password" required/>
 				<label class="floating-label" for="password">{{trans('auth.new_password')}}</label>
 				{{csrf_field()}}
 			</div>
 			<div class="form-group form-material floating" data-plugin="formMaterial">
-				<input class="form-control" type="password" autocomplete="off" name="repassword" value="" required/>
+				<input class="form-control" type="password" autocomplete="off" name="repassword" required/>
 				<label class="floating-label" for="repassword">{{trans('auth.retype_password')}}</label>
 			</div>
 		@endif

+ 3 - 3
resources/views/coupon/addCoupon.blade.php

@@ -87,7 +87,7 @@
 					<div class="form-group row discount" style="display: none;">
 						<label class="col-md-2 col-form-label" for="discount">折扣</label>
 						<div class="col-md-4 input-group">
-							<input type="number" class="form-control" name="discount" id="discount" value="{{Request::old('discount')}}"/>
+							<input type="number" class="form-control" name="discount" id="discount" value="{{Request::old('discount')}}" step="0.1"/>
 							<span class="input-group-text">折</span>
 						</div>
 						<span class="text-help"> 范围为 1 ~ 9.9折,即 10% ~ 99% </span>
@@ -95,14 +95,14 @@
 					<div class="form-group row amount">
 						<label class="col-md-2 col-form-label" for="amount">金额</label>
 						<div class="col-md-4 input-group">
-							<input type="number" class="form-control" name="amount" id="amount" value="{{Request::old('amount')}}" required/>
+							<input type="number" class="form-control" name="amount" id="amount" value="{{Request::old('amount')}}" step="0.01" required/>
 							<span class="input-group-text">元</span>
 						</div>
 					</div>
 					<div class="form-group row usage">
 						<label class="col-md-2 col-form-label" for="rule">条件</label>
 						<div class="col-md-4 input-group">
-							<input type="number" class="form-control" name="rule" id="rule" value="{{Request::old('rule')}}" requied/>
+							<input type="number" class="form-control" name="rule" id="rule" value="{{Request::old('rule')}}" step="0.01" requied/>
 							<span class="input-group-text">元</span>
 						</div>
 						<span class="text-help"> 当套餐超过N值时,才能使用本优惠劵;0即使用无限制 </span>

+ 1 - 1
resources/views/marketing/pushList.blade.php

@@ -96,7 +96,7 @@
 								<div class="row">
 									<label for="title" class="col-md-2 control-label"> 标题 </label>
 									<div class="col-md-6">
-										<input type="text" class="form-control" name="title" id="title" placeholder="">
+										<input type="text" class="form-control" name="title" id="title"/>
 									</div>
 								</div>
 							</div>

+ 1 - 1
resources/views/sensitiveWords/addSensitiveWords.blade.php

@@ -16,7 +16,7 @@
 					<div class="form-group row">
 						<label class="col-form-label col-md-2">敏感词</label>
 						<div class="col-md-5">
-							<input type="text" class="form-control" name="words" value="" id="words" required/>
+							<input type="text" class="form-control" name="words" id="words" required/>
 						</div>
 					</div>
 					<div class="form-actions">

+ 2 - 2
resources/views/shop/addGoods.blade.php

@@ -76,14 +76,14 @@
 							<div class="form-group row">
 								<label class="col-md-3 col-form-label" for="price">售价</label>
 								<div class="col-md-4 input-group">
-									<input type="text" class="form-control" name="price" id="price" value="{{Request::old('price')}}" required/>
+									<input type="number" class="form-control" name="price" id="price" value="{{Request::old('price')}}" step="0.01" required/>
 									<span class="input-group-text">元</span>
 								</div>
 							</div>
 							<div class="form-group row package-renew" style="display: none">
 								<label class="col-md-3 col-form-label" for="renew">流量重置价格</label>
 								<div class="col-md-4 input-group">
-									<input type="number" class="form-control" name="renew" id="renew" value="{{Request::old('renew')? :0}}" required/>
+									<input type="number" class="form-control" name="renew" id="renew" value="{{Request::old('renew')? :0}}" step="0.01" required/>
 									<span class="input-group-text">元</span>
 								</div>
 								<span class="offset-md-3 text-help"> 用户自行重置流量价格, <code>0</code> 时代表改该商品不提供重置功能 </span>

+ 2 - 2
resources/views/shop/editGoods.blade.php

@@ -65,7 +65,7 @@
 					<div class="form-group row">
 						<label class="col-md-2 col-form-label" for="price">售价</label>
 						<div class="col-md-4 input-group">
-							<input type="text" class="form-control" name="price" id="price" value="{{$goods->price}}" required/>
+							<input type="number" class="form-control" name="price" id="price" value="{{$goods->price}}" step="0.01" required/>
 							<span class="input-group-text">元</span>
 						</div>
 					</div>
@@ -87,7 +87,7 @@
 							<div class="form-group row">
 								<label class="col-md-2 col-form-label" for="renew">流量重置价格</label>
 								<div class="col-md-4 input-group">
-									<input type="number" class="form-control" name="renew" id="renew" value="{{$goods->renew}}"/>
+									<input type="number" class="form-control" name="renew" id="renew" value="{{$goods->renew}}" step="0.01"/>
 									<span class="input-group-text">元</span>
 								</div>
 							</div>

+ 2 - 2
resources/views/subscribe/subscribeList.blade.php

@@ -11,7 +11,7 @@
 			<div class="panel-body">
 				<div class="form-row">
 					<div class="form-group col-lg-2 col-sm-6">
-						<input type="text" class="form-control" name="user_id" id="user_id" value="{{Request::get('user_id')}}" placeholder="ID"/>
+						<input type="number" class="form-control" name="user_id" id="user_id" value="{{Request::get('user_id')}}" placeholder="ID"/>
 					</div>
 					<div class="form-group col-lg-4 col-sm-6">
 						<input type="text" class="form-control" name="username" id="username" value="{{Request::get('username')}}" placeholder="用户名"/>
@@ -125,4 +125,4 @@
             });
         }
 	</script>
-@endsection
+@endsection

+ 1 - 1
resources/views/ticket/replyTicket.blade.php

@@ -62,7 +62,7 @@
 				<div class="panel-footer pb-30">
 					<form>
 						<div class="input-group">
-							<input id="editor" type="text" class="form-control" placeholder="{{trans('home.ticket_reply_placeholder')}}"/>
+							<input type="text" class="form-control" id="editor" placeholder="{{trans('home.ticket_reply_placeholder')}}"/>
 							<span class="input-group-btn">
                                 <button type="button" class="btn btn-primary" onclick="replyTicket()"> {{trans('home.ticket_reply')}}</button>
                             </span>

+ 1 - 1
resources/views/user/buy.blade.php

@@ -52,7 +52,7 @@
 					<div class="row">
 						<div class="col-lg-3 pl-30">
 							<div class="input-group">
-								<input class="form-control" type="text" name="coupon_sn" id="coupon_sn" placeholder="{{trans('home.coupon')}}"/>
+								<input type="text" class="form-control" name="coupon_sn" id="coupon_sn" placeholder="{{trans('home.coupon')}}"/>
 								<div class="input-group-btn">
 									<button type="submit" class="btn btn-info" onclick="redeemCoupon()"><i class="icon wb-loop" aria-hidden="true"></i> {{trans('home.redeem_coupon')}}</button>
 								</div>

+ 266 - 178
resources/views/user/help.blade.php

@@ -76,239 +76,327 @@
 												<div class="nav-tabs-horizontal" data-plugin="tabs">
 													<ul class="nav nav-tabs nav-tabs-line mr-25" role="tablist">
 														<li class="nav-item" role="presentation">
-															<a class="nav-link active" data-toggle="tab" href="#tab_1" aria-controls="tab_1" role="tab" aria-expanded="true">
+															<a class="nav-link active" data-toggle="tab" href="#android_client" aria-controls="android_client" role="tab" aria-expanded="true">
 																<i class="icon fa-android" aria-hidden="true"></i>Android</a>
 														</li>
 														<li class="nav-item" role="presentation">
-															<a class="nav-link" data-toggle="tab" href="#tab_2" aria-controls="tab_2" role="tab">
+															<a class="nav-link" data-toggle="tab" href="#shadowrocket_client" aria-controls="shadowrocket_client" role="tab">
 																<i class="icon fa-apple" aria-hidden="true"></i>iOS-小火箭<span class="badge badge-danger up">推荐</span></a>
 														</li>
 														<li class="nav-item" role="presentation">
-															<a class="nav-link" data-toggle="tab" href="#tab_3" aria-controls="tab_3" role="tab">
+															<a class="nav-link" data-toggle="tab" href="#quantumult_client" aria-controls="quantumult_client" role="tab">
+																<i class="icon fa-apple" aria-hidden="true"></i>iOS-Quantumult<span class="badge badge-danger up">进阶</span></a>
+														</li>
+														<li class="nav-item" role="presentation">
+															<a class="nav-link" data-toggle="tab" href="#windows_client" aria-controls="windows_client" role="tab">
 																<i class="icon fa-windows" aria-hidden="true"></i>Windows</a>
 														</li>
 														<li class="nav-item" role="presentation">
-															<a class="nav-link" data-toggle="tab" href="#tab_4" aria-controls="tab_4" role="tab">
-																<i class="icon fa-windows" aria-hidden="true"></i>Windows<span class="badge badge-info up">游戏</span></a>
+															<a class="nav-link" data-toggle="tab" href="#game_client_sstap" aria-controls="game_client_sstap" role="tab">
+																<i class="icon fa-windows" aria-hidden="true"></i>Windows-SSTAP<span class="badge badge-info up">游戏</span></a>
 														</li>
 														<li class="nav-item" role="presentation">
-															<a class="nav-link" data-toggle="tab" href="#tab_5" aria-controls="tab_5" role="tab">
-																<i class="icon fa-apple" aria-hidden="true"></i>MacOS</a>
+															<a class="nav-link" data-toggle="tab" href="#game_client_netch" aria-controls="game_client_netch" role="tab">
+																<i class="icon fa-windows" aria-hidden="true"></i>Windows-Netch<span class="badge badge-info up">游戏推荐</span></a>
 														</li>
 														<li class="nav-item" role="presentation">
-															<a class="nav-link" data-toggle="tab" href="#tab_6" aria-controls="tab_6" role="tab">
-																<i class="icon fa-apple" aria-hidden="true"></i>iOS-Quantumult<span class="badge badge-danger up">进阶</span></a>
+															<a class="nav-link" data-toggle="tab" href="#macos_client" aria-controls="macos_client" role="tab">
+																<i class="icon fa-apple" aria-hidden="true"></i>MacOS</a>
 														</li>
 													</ul>
 													<div class="tab-content py-15">
-														<div class="tab-pane active" id="tab_1" role="tabpanel">
+														<div class="tab-pane active" id="android_client" role="tabpanel">
+															@if(Agent::isAndroidOS())
+																<ol>
+																	<li>
+																		<a class="btn btn-xs btn-primary" href="/clients/Otaku_android.apk"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载客户端
+																			<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> -> 安装 -> 启动
+																	</li>
+																	<li>点击软件左上方<code>Otaku SSR</code>进入主界面 -> 点击右下角
+																		<code class="blue-600 icon fa-plus-circle" aria-hidden="true"></code> 图标
+																		-> 点击<code>添加/升级SSR订阅</code>
+																	</li>
+																	<li>点击<code>添加订阅地址</code> ->
+																		<button class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard" data-clipboard-action="copy" data-clipboard-text="{{$link}}"><span><i class="icon wb-copy" aria-hidden="true"></i>点击复制订阅地址</span></button>
+																		-> 粘贴进输入框 ->
+																		<code>确定</code> -> <code>确定并更新</code></li>
+																	<li>软件刷新线路信息(未出现的话,请重启软件) -> 选择线路 -> 点击界面右上角
+																		<code class="icon md-airplane-off" aria-hidden="true"></code> 启动代理
+																	</li>
+																	<li>享受您的加速服务吧!</li>
+																	<li>关闭代理:再次点击
+																		<code class="icon md-airplane" aria-hidden="true"></code> 关闭代理
+																	</li>
+																</ol>
+															@else
+																<div class="alert alert-info text-center font-size-20" role="alert">
+																	本教程只能在
+																	<mark>安卓设备</mark>
+																	下浏览
+																</div>
+															@endif
+														</div>
+														<div class="tab-pane" id="shadowrocket_client" role="tabpanel">
+															@if(Agent::is('iOS'))
+																<ol>
+																	<li>
+																		<a class="btn btn-xs btn-primary" href="{{$Shadowrocket_install}}"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载客户端
+																			<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> -> 弹窗选<code>安装</code> -> 等待下载 -> 启动
+																	</li>
+																	<li>返回手机主界面 -> 等待Shadowrocket下载/安装完毕 -> 进入软件</li>
+																	@if (\App\Components\Helpers::systemConfig()['AppStore_id'] && \App\Components\Helpers::systemConfig()['AppStore_password'])
+																		<div class="alert alert-info" role="alert" style="width: fit-content">
+																			@if($not_paying_user)
+																				<i class="icon wb-lock" aria-hidden="true"></i>
+																				<mark>由于iOS的特殊性,我们只为付费用户提供iOS的共享账号用于安装客户端 或者 自行购买 Shadowrocket</mark>
+																				<br>
+																				请购买服务后
+																				<code>刷新界面</code>再来获取共享的苹果账号
+																			@else
+																				<i class="wb-unlock" aria-hidden="true"></i> 首次安装软件可能会需要苹果ID激活软件,请输入以下账号信息:
+																				<br>
+																				账号(Apple ID):
+																				<code id="accountId">{{\App\Components\Helpers::systemConfig()['AppStore_id']}}</code>
+																				<button class="btn btn-xs btn-primary mt-clipboard" data-clipboard-target="#accountId" data-clipboard-action="copy"><i class="wb-copy" aria-hidden="true"></i></button>
+																				<br> 密码:
+																				<code id="accountPasswd">{{\App\Components\Helpers::systemConfig()['AppStore_password']}}</code>
+																				<button class="btn btn-xs btn-primary mt-clipboard" data-clipboard-target="#accountPasswd" data-clipboard-action="copy"><i class="wb-copy" aria-hidden="true"></i></button>
+																			@endif
+																		</div>
+																	@endif
+																	<li>如果软件跳出登录信息(请看上面信息框) ->
+																		<a class="btn btn-xs btn-primary" href="{{$Shadowrocket_link}}">点击自动设置软件</a>
+																	</li>
+																	<li>等待软件线路更新 (如果线路未出现,请向左滑订阅标签 ->
+																		<code>更新</code>) -> 选择线路 -> 点击开关按钮,运行代理(按钮与'未连接'同一行)
+																	</li>
+																	<li>享受您的加速服务吧!</li>
+																	<li>关闭代理:再次点击开关按钮即可</li>
+																</ol>
+															@else
+																<div class="alert alert-info text-center font-size-20" role="alert">
+																	本教程只能在
+																	<mark>iOS设备</mark>
+																	下浏览
+																</div>
+															@endif
+														</div>
+														<div class="tab-pane" id="quantumult_client" role="tabpanel">
+															@if(Agent::is('iOS'))
+																<ol>
+																	<ol>
+																		<li>
+																			<a class="btn btn-xs btn-primary" href="{{$Quantumult_install}}"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载客户端
+																				<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> -> 弹窗选<code>安装</code> -> 等待下载 -> 启动
+																		</li>
+																		<li>返回手机主界面 -> 等待Quantumult下载/安装完毕 -> 进入软件</li>
+																		@if (\App\Components\Helpers::systemConfig()['AppStore_id'] && \App\Components\Helpers::systemConfig()['AppStore_password'])
+																			<div class="alert alert-info" role="alert" style="width: fit-content">
+																				@if($not_paying_user)
+																					<i class="icon wb-lock" aria-hidden="true"></i>
+																					<mark>由于iOS的特殊性,我们只为付费用户提供iOS的共享账号用于安装客户端 或者自行购买 Quantumult</mark>
+																					<br>
+																					请购买服务后
+																					<code>刷新界面</code>再来获取共享的苹果账号
+																				@else
+																					<i class="wb-unlock" aria-hidden="true"></i> 首次安装软件可能会需要苹果ID激活软件,请输入以下账号信息:
+																					<br>
+																					账号(Apple ID):
+																					<code id="accountId">{{\App\Components\Helpers::systemConfig()['AppStore_id']}}</code>
+																					<button class="btn btn-xs btn-primary mt-clipboard" data-clipboard-target="#accountId" data-clipboard-action="copy"><i class="wb-copy" aria-hidden="true"></i></button>
+																					<br> 密码:
+																					<code id="accountPasswd">{{\App\Components\Helpers::systemConfig()['AppStore_password']}}</code>
+																					<button class="btn btn-xs btn-primary mt-clipboard" data-clipboard-target="#accountPasswd" data-clipboard-action="copy"><i class="wb-copy" aria-hidden="true"></i></button>
+																				@endif
+																			</div>
+																		@endif
+																		<li>如果软件跳出登录信息(请看上面信息框)->
+																			<a class="btn btn-xs btn-primary" href="{{$Quantumult_linkOut}}">自动设置-访问海外</a> |
+																			<a class="btn btn-xs btn-primary" href="{{$Quantumult_linkIn}}">自动设置-访问国内</a> 转跳至软件进行快速设置 -> 任何提示选择<code>确认|允许</code>
+																		</li>
+																		<li>等待软件线路更新 -> 后台关闭软件 -> 重新打开软件 -> 点击底部菜单栏中间的黑色图标 -> 选择线路 -> 点击软件上方 Quantumult 旁的按钮,开启代理</li>
+																		<li>享受您的加速服务吧!</li>
+																		<li>关闭代理:点击开关按钮,关闭按钮</li>
+																	</ol>
+																</ol>
+															@else
+																<div class="alert alert-info text-center font-size-20" role="alert">
+																	本教程只能在
+																	<mark>iOS设备</mark>
+																	下浏览
+																</div>
+															@endif
+														</div>
+														<div class="tab-pane" id="windows_client" role="tabpanel">
 															<ol>
 																<li>
-																	<a class="btn btn-xs btn-primary" href="#"><i
-																				class="icon fa-hand-o-right"
-																				aria-hidden="true"></i> 点此下载客户端
-																		<i class="icon fa-hand-o-left"
-																		   aria-hidden="true"></i></a>
+																	<a class="btn btn-xs btn-primary" href="/clients/OtakuSSR.exe"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载客户端
+																		<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> |
+																	<a class="btn btn-xs btn-danger" href="/clients/OtakuSSR_XP.exe"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载 XP 版本
+																		<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> -> 启动
 																</li>
-																<li>
-																	<button
-																			class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard"
-																			data-clipboard-action="copy"
-																			data-clipboard-text="{{$link}}"><span><i
-																					class="icon wb-copy"
-																					aria-hidden="true"></i>点击复制订阅地址</span>
-																	</button>
+																<li>在右下角任务栏中找到软件并右键点击 -> 在菜单中选择<code>订阅</code> -> 点击<code>订阅设置</code>
 																</li>
-																<li>
-																	待添加
+																<li>点击新出现界面上的<code>添加</code>按钮 ->
+																	<button class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard" data-clipboard-action="copy" data-clipboard-text="{{$link}}"><span><i class="icon wb-copy" aria-hidden="true"></i>点击复制订阅地址</span></button>
+																	=> 黏贴到<code>网址</code>的输入框内 => 点击<code>确定</code>
 																</li>
-															</ol>
-														</div>
-														<div class="tab-pane" id="tab_2" role="tabpanel">
-															<ol>
-																<li>
-																	<a class="btn btn-xs btn-primary" href="#"><i
-																				class="icon fa-hand-o-right"
-																				aria-hidden="true"></i> 点此下载客户端
-																		<i class="icon fa-hand-o-left"
-																		   aria-hidden="true"></i></a>
+																<li>再次右键图标 -> <code>订阅</code> ->
+																	<code>更新订阅(不通过代理)</code>更新软件的线路信息
 																</li>
-																@if (\App\Components\Helpers::systemConfig()['AppStore_id'] && \App\Components\Helpers::systemConfig()['AppStore_password'])
-																	<div class="alert alert-info" role="alert"
-																	     style="width: fit-content">
-																		@if($is_paying_user)
-																			<i class="icon wb-lock"></i>
-																			<mark>由于iOS的特殊性,我们只为付费用户提供iOS的共享账号用于安装客户端
-																				或者自行购买 Quantumult
-																			</mark>
-																			<br>
-																			请购买服务后
-																			<code>刷新界面</code>再来获取共享的苹果账号
-																		@else
-																			<i class="wb-unlock"></i>
-																			首次安装软件可能会需要苹果ID激活软件,请输入以下账号信息:
-																			<br>
-																			账号(Apple ID):
-																			<code
-																					id="accountId">{{\App\Components\Helpers::systemConfig()['AppStore_id']}}</code>
-																			<button
-																					class="btn btn-xs btn-primary mt-clipboard"
-																					data-clipboard-target="#accountId"
-																					data-clipboard-action="copy"><i
-																						class="wb-copy"></i></button>
-																			<br> 密码:
-																			<code
-																					id="accountPasswd">{{\App\Components\Helpers::systemConfig()['AppStore_password']}}</code>
-																			<button
-																					class="btn btn-xs btn-primary mt-clipboard"
-																					data-clipboard-target="#accountPasswd"
-																					data-clipboard-action="copy"><i
-																						class="wb-copy"></i></button>
-																		@endif
-																	</div>
-																@endif
-																<li>
-																	<button
-																			class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard"
-																			data-clipboard-action="copy"
-																			data-clipboard-text="{{$link}}"><span><i
-																					class="icon wb-copy"
-																					aria-hidden="true"></i>点击复制订阅地址</span>
-																	</button>
+																<li>提示“更新成功”后,再次右键图标 -> <code>服务器</code> ->
+																	<code>御宅云</code> -> 选择线路
 																</li>
-																<li>
-																	待添加
+																<li>再次右键图标 ->
+																	<code>PAC</code> -> 点击<code>更新PAC为 代理常见被墙域名</code> -> 提示“更新成功”
 																</li>
+																<li>再次右键图标 ->
+																	<code>代理模式</code> -> 点击<code>智能</code>
+																</li>
+																<li>代理开启完成,享受您的加速服务吧!</li>
+																<li>关闭代理:右键图标 -> 点击<code>退出</code></li>
 															</ol>
 														</div>
-														<div class="tab-pane" id="tab_3" role="tabpanel">
+														<div class="tab-pane" id="game_client_sstap" role="tabpanel">
 															<ol>
 																<li>
-																	<a class="btn btn-xs btn-primary" href="#"><i
-																				class="icon fa-hand-o-right"
-																				aria-hidden="true"></i> 点此下载客户端
-																		<i class="icon fa-hand-o-left"
-																		   aria-hidden="true"></i></a>
+																	<a class="btn btn-xs btn-primary" href="/clients/Windows_game.exe"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载客户端
+																		<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> -> 安装(确认安装一切) -> 启动
 																</li>
-																<li>
-																	<button
-																			class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard"
-																			data-clipboard-action="copy"
-																			data-clipboard-text="{{$link}}"><span><i
-																					class="icon wb-copy"
-																					aria-hidden="true"></i>点击复制订阅地址</span>
-																	</button>
+																<li>在软件主界面找到并点击
+																	<code class="icon md-settings"></code> 图标 -> 点击<code>SSR订阅</code> -> 点击<code>SSR订阅管理</code>
 																</li>
 																<li>
-																	待添加
+																	<button class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard" data-clipboard-action="copy" data-clipboard-text="{{$link}}"><span><i class="icon wb-copy" aria-hidden="true"></i>点击复制订阅地址</span></button>
+																	-> 黏贴到<code>URL</code>输入框中 -> 点击<code>添加</code>再关闭设置界面
+																</li>
+																<li>点击
+																	<code class="fa fa-gear"></code> -> 选择<code>SSR订阅</code> -> 点击<code>手动更新SSR订阅</code>更新软件的线路信息
+																</li>
+																<li>更新成功后,在主界面中<strong>代理</strong>选项中选择线路 -> 在<strong>模式</strong>选项中选择代理规则
+																</li>
+																<li>最后,点击<code>连接</code></li>
+																<li>享受您的加速服务吧!</li>
+																<li>关闭代理:在主界面点击<code>断开连接</code>再关闭软件!<strong>直接关闭软件会造成电脑网卡错误!!!</strong>
 																</li>
 															</ol>
 														</div>
-														<div class="tab-pane" id="tab_4" role="tabpanel">
+														<div class="tab-pane" id="game_client_netch" role="tabpanel">
 															<ol>
 																<li>
-																	<a class="btn btn-xs btn-primary" href="#"><i
-																				class="icon fa-hand-o-right"
-																				aria-hidden="true"></i> 点此下载客户端
-																		<i class="icon fa-hand-o-left"
-																		   aria-hidden="true"></i></a>
+																	<a class="btn btn-xs btn-primary" href="/clients/Netch.x64.7z"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载 X64 版本客户端 ←推荐下这个
+																		<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> | <a class="btn btn-xs btn-danger" href="/clients/Netch.x86.7z"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载 X32 版本客户端
+																		<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> -> 解压文件 -> 启动 Netch.exe 文件
 																</li>
-																<li>
-																	<button
-																			class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard"
-																			data-clipboard-action="copy"
-																			data-clipboard-text="{{$link}}"><span><i
-																					class="icon wb-copy"
-																					aria-hidden="true"></i>点击复制订阅地址</span>
-																	</button>
+																<li>在右下角任务栏中找到软件并双击左键-> 点击<code>订阅</code> -> 点击<code>管理订阅链接</code>
 																</li>
 																<li>
-																	待添加
+																	<button class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard" data-clipboard-action="copy" data-clipboard-text="{{$link}}"><span><i class="icon wb-copy" aria-hidden="true"></i>点击复制订阅地址</span></button>
+																	-> 黏贴到<code>链接</code>输入框中 -> <code>备注</code>填入 {{\App\Components\Helpers::systemConfig()['website_name']}} ->点击<code>添加</code>->再点击<code>保存</code>-> <code>确定</code>
+																</li>
+																<li>再次点击<code>订阅</code> -> 点击<code>从订阅链接更新服务器</code> -> 弹出“正在后台更新中”的弹窗-> 等待“更新完成”的弹窗
+																</li>
+																<li>更新成功后,在主界面中在<strong>服务器</strong>选择框中选择线路 -> 在<strong>模式</strong>选择框中选择代理模式
+																</li>
+																<li>最后,点击<code>启动</code></li>
+																<li>享受您的加速服务吧!</li>
+																<li>关闭代理:在主界面点击<code>停止</code>再关闭软件!
 																</li>
 															</ol>
 														</div>
-														<div class="tab-pane" id="tab_5" role="tabpanel">
+														<div class="tab-pane" id="macos_client" role="tabpanel">
 															<ol>
 																<li>
-																	<a class="btn btn-xs btn-primary"
-																	   href="#"><i
-																				class="icon fa-hand-o-right"
-																				aria-hidden="true"></i> 点此下载客户端
-																		<i class="icon fa-hand-o-left"
-																		   aria-hidden="true"></i></a>
+																	<a class="btn btn-xs btn-primary" href="/clients/Otaku_MacOS.dmg"><i class="icon fa-hand-o-right" aria-hidden="true"></i> 点此下载客户端
+																		<i class="icon fa-hand-o-left" aria-hidden="true"></i></a> -> 安装 -> 启动
 																</li>
-																<li>
-																	<button
-																			class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard"
-																			data-clipboard-action="copy"
-																			data-clipboard-text="{{$link}}"><span><i
-																					class="icon wb-copy"
-																					aria-hidden="true"></i>点击复制订阅地址</span>
-																	</button>
+																<li>单击状态栏中的
+																	<i class="icon fa-paper-plane" aria-hidden="true"></i> 图标 -> 选择<code>服务器</code> -> 点击<code>编辑订阅</code>
 																</li>
 																<li>
-																	待添加
+																	<button class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard" data-clipboard-action="copy" data-clipboard-text="{{$link}}"><span><i class="icon wb-copy" aria-hidden="true"></i>点击复制订阅地址</span></button>
+																	-> 黏贴至<code>订阅地址</code>输入框中 ->
+																	<code>OK</code></li>
+																<li>单击<i class="icon fa-paper-plane" aria-hidden="true"></i> ->
+																	<code>服务器</code> ->
+																	<code>手动更新订阅</code>更新软件的线路信息
+																</li>
+																<li>更新成功后,单击
+																	<i class="icon fa-paper-plane" aria-hidden="true"></i> ->
+																	<code>服务器</code> ->
+																	<code>御宅云</code> -> 选择线路
+																</li>
+																<li>单击
+																	<i class="icon fa-paper-plane" aria-hidden="true"></i> -> 点击<code>PAC自动模式</code>
+																</li>
+																<li>享受您的加速服务吧!</li>
+																<li>关闭代理:单击
+																	<i class="icon fa-paper-plane" aria-hidden="true"></i> -> 点击<code>退出</code>
 																</li>
 															</ol>
 														</div>
-														<div class="tab-pane" id="tab_6" role="tabpanel">
-
+													</div>
+												</div>
+											</div>
+										</div>
+									</div>
+									<div class="panel">
+										<div class="panel-heading" id="question-3" role="tab">
+											<a class="panel-title" aria-controls="answer-3" aria-expanded="false" data-toggle="collapse" href="#answer-3" data-parent="#accordion1"><i class="icon wb-extension" aria-hidden="true"></i>客户端 相关问题解决
+											</a>
+										</div>
+										<div class="panel-collapse collapse" id="answer-3" aria-labelledby="question-3" role="tabpanel">
+											<div class="panel-body">
+												<div class="nav-tabs-horizontal" data-plugin="tabs">
+													<ul class="nav nav-tabs" role="tablist">
+														<li class="nav-item" role="presentation">
+															<a class="nav-link active" data-toggle="tab" href="#android" aria-controls="android" role="tab">
+																<i class="icon fa-android" aria-hidden="true"></i>Android</a>
+														</li>
+														<li class="nav-item" role="presentation">
+															<a class="nav-link" data-toggle="tab" href="#ios" aria-controls="ios" role="tab">
+																<i class="icon fa-apple" aria-hidden="true"></i>iOS</a>
+														</li>
+														<li class="nav-item" role="presentation">
+															<a class="nav-link" data-toggle="tab" href="#Windows" aria-controls="Windows" role="tab">
+																<i class="icon fa-windows" aria-hidden="true"></i>Windows</a>
+														</li>
+														<li class="nav-item" role="presentation">
+															<a class="nav-link" data-toggle="tab" href="#MacOS" aria-controls="MacOS" role="tab">
+																<i class="icon fa-apple" aria-hidden="true"></i>MacOS</a>
+														</li>
+													</ul>
+													<div class="tab-content pt-20">
+														<div class="tab-pane active" id="android" role="tabpanel">
+															暂无
+														</div>
+														<div class="tab-pane" id="ios" role="tabpanel">
+															<h4>Q: 软件安装后,闪退?</h4>
+															<p>A: 闪退的情况大概分以下三种</p>
 															<ol>
-																<li>
-																	<a class="btn btn-xs btn-primary" href="#"><i
-																				class="icon fa-hand-o-right"
-																				aria-hidden="true"></i> 点此下载客户端
-																		<i class="icon fa-hand-o-left"
-																		   aria-hidden="true"></i></a>
+																<li>安装完成后,一打开就秒退。
+																	<br> 解决办法:登陆网站上提供的对应ID,先在苹果商店搜索安装最新版,运行一次后,在通过网站直接覆盖安装。
 																</li>
-																@if (\App\Components\Helpers::systemConfig()['AppStore_id'] && \App\Components\Helpers::systemConfig()['AppStore_password'])
-																	<div class="alert alert-info" role="alert"
-																	     style="width: fit-content">
-																		@if($is_paying_user)
-																			<i class="icon wb-lock"></i>
-																			<mark>由于iOS的特殊性,我们只为付费用户提供iOS的共享账号用于安装客户端
-																				或者自行购买 Quantumult
-																			</mark>
-																			<br>
-																			请购买服务后
-																			<code>刷新界面</code>再来获取共享的苹果账号
-																		@else
-																			<i class="wb-unlock"></i>
-																			首次安装软件可能会需要苹果ID激活软件,请输入以下账号信息:
-																			<br>
-																			账号(Apple ID):
-																			<code
-																					id="accountId">{{\App\Components\Helpers::systemConfig()['AppStore_id']}}</code>
-																			<button
-																					class="btn btn-xs btn-primary mt-clipboard"
-																					data-clipboard-target="#accountId"
-																					data-clipboard-action="copy"><i
-																						class="wb-copy"></i></button>
-																			<br> 密码:
-																			<code
-																					id="accountPasswd">{{\App\Components\Helpers::systemConfig()['AppStore_password']}}</code>
-																			<button
-																					class="btn btn-xs btn-primary mt-clipboard"
-																					data-clipboard-target="#accountPasswd"
-																					data-clipboard-action="copy"><i
-																						class="wb-copy"></i></button>
-																		@endif
-																	</div>
-																@endif
-																<li>
-																	<button
-																			class="btn btn-xs btn-animate btn-animate-side btn-info mt-clipboard"
-																			data-clipboard-action="copy"
-																			data-clipboard-text="{{$link}}"><span><i
-																					class="icon wb-copy"
-																					aria-hidden="true"></i>点击复制订阅地址</span>
-																	</button>
+																<li>打开软件,且弹出ID验证框,输入ID后闪退。
+																	<br> 解决办法:同上。
 																</li>
-																<li>
-																	待添加
+																<li>打开软件,运行一段时间后闪退。
+																	<br> 这类问题,一般是因为软件的适配性引起的,基本无解。
 																</li>
 															</ol>
-
+															<h4>Q: 软件安装失败?</h4>
+															<p>A: 出现此类问题,绝大多数是你的网络不好,更换个网络即可,最好使用数据流量进行下载。</p>
+														</div>
+														<div class="tab-pane" id="Windows" role="tabpanel">
+															{{--                                                            <h4>Q: PAC 更新失败</h4>--}}
+															{{--                                                            <p>A: 这个情况都是PC链接访问网站不稳定造成的!--}}
+															{{--                                                                <br>--}}
+															{{--                                                                解决方案: 手动下载--}}
+															{{--                                                            </p>--}}
+															暂无
+														</div>
+														<div class="tab-pane" id="MacOS" role="tabpanel">
+															暂无
 														</div>
 													</div>
 												</div>

+ 1 - 1
resources/views/user/profile.blade.php

@@ -72,7 +72,7 @@
 									</div>
 									<div class="form-group row">
 										<label for="qq" class="col-md-2 col-form-label">QQ</label>
-										<input type="text" class="form-control col-md-5 round" name="qq" id="qq" value="{{Auth::user()->qq}}" required/>
+										<input type="number" class="form-control col-md-5 round" name="qq" id="qq" value="{{Auth::user()->qq}}" required/>
 									</div>
 									<div class="form-actions">
 										<button type="submit" class="btn btn-info">{{trans('home.submit')}}</button>

+ 1 - 1
resources/views/user/replyTicket.blade.php

@@ -61,7 +61,7 @@
 				<div class="panel-footer pb-30">
 					<form>
 						<div class="input-group">
-							<input id="editor" type="text" class="form-control" placeholder="{{trans('home.ticket_reply_placeholder')}}"/>
+							<input type="text" class="form-control" id="editor" placeholder="{{trans('home.ticket_reply_placeholder')}}"/>
 							<span class="input-group-btn">
                                 <button type="button" class="btn btn-primary" onclick="replyTicket()"> {{trans('home.ticket_reply')}}</button>
                             </span>

+ 1 - 1
resources/views/user/services.blade.php

@@ -26,7 +26,7 @@
 							<div class="content-text text-center mb-0">
 								<span class="font-size-20 font-weight-100">需要 <code>{{$renewTraffic}}</code> 元</span>
 								<br/>
-								<button class="btn btn-danger" onclick="resetTraffic()">重置</button>
+								<button class="btn btn-danger mt-10" onclick="resetTraffic()">重置</button>
 							</div>
 						</div>
 					</div>