同步项目
This commit is contained in:
parent
b5a6b2fda3
commit
4d50df2cf3
@ -179,7 +179,7 @@
|
||||
</site>
|
||||
<site name="ChatRoomServer.Www" id="4">
|
||||
<application path="/" applicationPool="Clr4IntegratedAppPool">
|
||||
<virtualDirectory path="/" physicalPath="E:\Develop\Bussiness\Light12306\ChatRoomServer.Www" />
|
||||
<virtualDirectory path="/" physicalPath="E:\iFishWork\12306\ChatRoomServer.Www" />
|
||||
</application>
|
||||
<bindings>
|
||||
<binding protocol="http" bindingInformation="*:28857:localhost" />
|
||||
|
@ -112,8 +112,8 @@ namespace TrainInfomationProviderService
|
||||
//var maxTimeRage = lines.Max(s => s.CalculatedMinutesBase);
|
||||
|
||||
var opt = new TrainTransitSearchOptions();
|
||||
opt.InitLimit(999999);
|
||||
var altLines = searchProvider.FindOnceTransitTrains(DateTime.Parse("2015-07-10"), "NVH", "JJG", opt).ToArray();
|
||||
opt.InitLimit(1357);
|
||||
var altLines = searchProvider.FindOnceTransitTrains(DateTime.Parse("2016-01-28"), "WMR", "WHN", opt).ToArray();
|
||||
|
||||
//var availableLines = lines.Select(s => s.Train.Code + "," + s.FromStation.Name + "," + s.ToStation.Name + "," + s.ElapsedTime).ToArray();
|
||||
Array.ForEach(altLines.Select(s =>
|
||||
|
@ -348,35 +348,35 @@ namespace TrainInfomationProviderService.TrainInfo.Entities
|
||||
void ProcessPriority()
|
||||
{
|
||||
//对换乘站点计算优先级
|
||||
var stData = _list.GroupBy(s => s.First.ToStation).Select(s => new KeyValuePair<StationDetailInfo, TrainTransitOnceResult[]>(s.Key, s.ToArray())).ToList();
|
||||
var stData = _list.GroupBy(s => s.First.ToStation).Select(s => new Tuple<StationDetailInfo, TrainTransitOnceResult[]>(s.Key, s.ToArray())).ToList();
|
||||
|
||||
stData.Sort((x, y) =>
|
||||
{
|
||||
//前车高铁/动车等,优先推荐
|
||||
var fhc1 = x.Value.Count(_ => _.First.Train.IsHighSpeedClass);
|
||||
var shc1 = y.Value.Count(_ => _.First.Train.IsHighSpeedClass);
|
||||
var fhc1 = x.Item2.Count(_ => _.First.Train.IsHighSpeedClass);
|
||||
var shc1 = y.Item2.Count(_ => _.First.Train.IsHighSpeedClass);
|
||||
if (shc1 != fhc1)
|
||||
return shc1 > fhc1 ? 1 : -1;
|
||||
|
||||
//否则推荐后车的高铁/动车
|
||||
var fhc2 = x.Value.Count(_ => _.Second.Train.IsHighSpeedClass);
|
||||
var shc2 = y.Value.Count(_ => _.Second.Train.IsHighSpeedClass);
|
||||
var fhc2 = x.Item2.Count(_ => _.Second.Train.IsHighSpeedClass);
|
||||
var shc2 = y.Item2.Count(_ => _.Second.Train.IsHighSpeedClass);
|
||||
if (shc2 != fhc2)
|
||||
return shc1 > fhc1 ? 1 : -1;
|
||||
return shc2 > fhc2 ? 1 : -1;
|
||||
|
||||
//如果都米有,则按线路数推荐
|
||||
if (x.Value.Length != y.Value.Length)
|
||||
return y.Value.Length - x.Value.Length;
|
||||
if (x.Item2.Length != y.Item2.Length)
|
||||
return y.Item2.Length - x.Item2.Length;
|
||||
|
||||
//线路数也相同。。。。那好像没啥再区别的了
|
||||
return 0;
|
||||
return string.CompareOrdinal(x.Item1.PyFull, y.Item1.PyFull);
|
||||
});
|
||||
CityOrder = stData.Select(s => s.Key.Code).ToArray();
|
||||
CityOrder = stData.Select(s => s.Item1.Code).ToArray();
|
||||
//对应起排序
|
||||
var stationWeight = new Dictionary<StationDetailInfo, int>(stData.Count);
|
||||
for (var i = 0; i < stData.Count; i++)
|
||||
{
|
||||
stationWeight.Add(stData[i].Key, i);
|
||||
stationWeight.Add(stData[i].Item1, i);
|
||||
}
|
||||
|
||||
//分组排序
|
||||
|
@ -5,7 +5,7 @@
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{C385D043-316A-4F05-A6B9-E70BF0ED8DB6}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>TrainInfomationProviderService</RootNamespace>
|
||||
<AssemblyName>TrainInfomationProviderService</AssemblyName>
|
||||
|
@ -283,11 +283,23 @@
|
||||
var originalTime = train.TrainInfo.elapsedTime.Value;
|
||||
//如果时间会超过原来最大的允许值,则排除
|
||||
var priceExtraRadio = ((current.ElapsedTime - originalTime).TotalSeconds / (1.0 * originalTime.TotalSeconds));
|
||||
current.BasePriceSeat = Cn12306SuggestionUtility.BaseSeatCodes.First(s => train.TrainInfo.ticketMap.ContainsKey(s));
|
||||
current.BasePriceSeat = Cn12306SuggestionUtility.BaseSeatCodes.FirstOrDefault(s => train.TrainInfo.ticketMap.ContainsKey(s));
|
||||
if (current.BasePriceSeat == '\0')
|
||||
{
|
||||
//没有席别
|
||||
line[i].Lines.RemoveAt(j);
|
||||
continue;
|
||||
}
|
||||
|
||||
current.BasePrice = train.TrainInfo.ticketMap[current.BasePriceSeat].price / 10.0;
|
||||
current.ExtraPrice = Math.Round(priceExtraRadio * current.BasePrice, 2);
|
||||
current.Radio = (int)(priceExtraRadio * 100);
|
||||
}
|
||||
|
||||
if (line[i].Lines.Count == 0)
|
||||
{
|
||||
line.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,22 +37,23 @@
|
||||
<add key="12306_keepaliveurl" value="http://test.fishlee.net/tt/keepalive" />
|
||||
<add key="local_disable_train_provider" value="1" />
|
||||
<add key="FSLib.MvcWeb.CsrfDefender.Disabled" value="1" />
|
||||
|
||||
|
||||
<add key="web_proxy" value="http://connect.fishlee.net:51100/" />
|
||||
<add key="web_proxy_username" value="fish" />
|
||||
<add key="web_proxy_password" value="fish" />
|
||||
|
||||
|
||||
</appSettings>
|
||||
<connectionStrings>
|
||||
<add name="chatroom" connectionString="Server=114.112.68.93;port=11119;Database=gopush;Uid=gopush;Pwd=c8488f421866b23758d52045429437c45;CharSet=utf8;" providerName="MySql.Data.MySqlClient" />
|
||||
</connectionStrings>
|
||||
<system.web>
|
||||
<compilation debug="true" targetFramework="4.5" />
|
||||
<httpRuntime targetFramework="4.5" />
|
||||
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" />
|
||||
<customErrors mode="RemoteOnly">
|
||||
<error statusCode="500" redirect="http://store.fishlee.net/static/errors/500.html" />
|
||||
</customErrors>
|
||||
<machineKey decryptionKey="388C1C2864EF95BC3D97ED6BA816FE070A90DD05C8860F53" validationKey="B76827CBA3E2F02288AFA80D633372F2988FEBD676F3DCE182C73DAAEE7BFB38FCDCBD3C36625611496C87DDE4AAD12DCB0EB4E346FE43C6D8309C320AE60890" />
|
||||
<pages validateRequest="false"></pages>
|
||||
</system.web>
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
|
@ -124,9 +124,10 @@
|
||||
.vc-touchclick-marker {
|
||||
position: absolute;
|
||||
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAflBMVEX/AAD/////////////////////////////////////////////////////////////////////////////////////////////////Zmb/AAD/o6P/1NT/6ur/9fX/////d3f/U1P/sLD/vLz/IyP/39//PT3/hob/lZX/yMhzeP54AAAAGXRSTlMAEBcgJzA3QEdQV2BncHeAh5CWoLDA0ODw9H53rAAAAUxJREFUeF6909tugzAMBmCga+l6GCsQqHPmTN//BedkEbE6adVuZqkXVT7s3yIk/EUlPPm1/gLSNII8z9NncND6gmBX1MwYKaX/R0G1dOqUlEpY8OG65gkYzoHlcks/3inICoZgbgsRwLyoTwIyLcA1tsNkAVYhdVsdaMjtQS7Gub0VfgUK3h8BjCvnkjUGC3uQDOXUi5nz/i5wPHTfKXRGtthfGYaQleCxREHXPDjQLUtc0077CN5KtR1JI3GYudfHmOFNr9xXh+Mf/RraR3AL51Yj6p2E9oOC2oZYDujRLzHQNY+6FwoQSARGg9dLFUGSXgvmwEBfiMzpmnsP8AiYB4sVahdBVk5yRAAbMHWxIyNCVzG70R7oeOUIGNzvjCAEICN054ACd9POw0+QXJoB4FFqd1dT1OgI8HVm7JSkeeq1aS4vP5x/BS/qC3YfObrN3LM7AAAAAElFTkSuQmCC') /*../images/vc-marker.png*/;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
z-index: 10;
|
||||
opacity: 0.5;
|
||||
cursor: pointer;
|
||||
transform: scale(2);
|
||||
}
|
@ -5,138 +5,150 @@
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.result .auto-refresh {
|
||||
}
|
||||
.result .auto-refresh {
|
||||
}
|
||||
|
||||
.result table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
color: #444444;
|
||||
font-size: 16px;
|
||||
border: 1px solid #dcdcdc;
|
||||
}
|
||||
.result table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
color: #444444;
|
||||
font-size: 16px;
|
||||
border: 1px solid #dcdcdc;
|
||||
}
|
||||
|
||||
.result table th {
|
||||
background: #f5f5f5;
|
||||
color: #777777;
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
border-left: 1px solid #dcdcdc;
|
||||
border-right: 1px solid #dcdcdc;
|
||||
text-align: center;
|
||||
}
|
||||
.result table th {
|
||||
background: #f5f5f5;
|
||||
color: #777777;
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
border-left: 1px solid #dcdcdc;
|
||||
border-right: 1px solid #dcdcdc;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.result tr.selected td {
|
||||
background-color: #ebf6e5;
|
||||
}
|
||||
.result tr.selected td {
|
||||
background-color: #ebf6e5;
|
||||
}
|
||||
|
||||
.result .train-num {
|
||||
padding: 8px 10px 8px 15px;
|
||||
width: 80px;
|
||||
font-family: tahoma;
|
||||
color: #4D5873;
|
||||
font-size: 24px;
|
||||
text-align: left;
|
||||
line-height: 19px;
|
||||
border: 1px solid #dcdcdc;
|
||||
border-right: 1px solid #ccc7ba;
|
||||
background: #fff9e8;
|
||||
position: relative;
|
||||
}
|
||||
.result .train-num {
|
||||
padding: 8px 10px 8px 15px;
|
||||
width: 80px;
|
||||
font-family: tahoma;
|
||||
color: #4D5873;
|
||||
font-size: 24px;
|
||||
text-align: left;
|
||||
line-height: 19px;
|
||||
border: 1px solid #dcdcdc;
|
||||
border-right: 1px solid #ccc7ba;
|
||||
background: #fff9e8;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.result .train-num .train-dp {
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
padding: 2px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
border-radius: 5px 0 0 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.result .train-num .train-dp {
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
padding: 2px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
border-radius: 5px 0 0 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.result tr.selected .train-num {
|
||||
background-color: #d3edcb;
|
||||
}
|
||||
.result tr.selected .train-num {
|
||||
background-color: #d3edcb;
|
||||
}
|
||||
|
||||
.result .train-empty td {
|
||||
font-size: 24px;
|
||||
line-height: 100px;
|
||||
color: #ccc;
|
||||
text-shadow: 3px 3px 5px rgba(150,150,150,0.2);
|
||||
text-align: center;
|
||||
}
|
||||
.result .train-empty td {
|
||||
font-size: 24px;
|
||||
line-height: 100px;
|
||||
color: #ccc;
|
||||
text-shadow: 3px 3px 5px rgba(150, 150, 150, 0.2);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.result .train-seats {
|
||||
padding: 6px 0 1px 0;
|
||||
border: 1px solid #cccccc;
|
||||
border-left: none;
|
||||
line-height: 18px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.result .train-seats {
|
||||
padding: 6px 0 1px 0;
|
||||
border: 1px solid #cccccc;
|
||||
border-left: none;
|
||||
line-height: 18px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.result .train-seats .train-illegal {
|
||||
border-radius: 5px 0 0 0;
|
||||
padding: 3px 3px 3px 6px;
|
||||
background-color: #D03737;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.result .train-seats .train-illegal {
|
||||
border-radius: 5px 0 0 0;
|
||||
padding: 3px 3px 3px 6px;
|
||||
background-color: #D03737;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.result .train-seats:empty:before {
|
||||
content: '本车次车票已售完';
|
||||
color: #cccccc;
|
||||
}
|
||||
.result .train-seats .train-notsell-note {
|
||||
border-radius: 0 0 0 5px;
|
||||
padding: 3px 3px 3px 6px;
|
||||
background-color: #73B3D6;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.result .train-seats .train-limitsell,
|
||||
.result .train-seats .train-notsell {
|
||||
font-size: 20px;
|
||||
color: #999;
|
||||
}
|
||||
.result .train-seats:empty:before {
|
||||
content: '本车次车票已售完';
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
.result .train-seats .train-notontime {
|
||||
font-size: 16px;
|
||||
color: #999;
|
||||
}
|
||||
.result .train-seats .train-limitsell,
|
||||
.result .train-seats .train-notsell {
|
||||
font-size: 20px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.result .train-seats .train-nostarttip {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.result .train-seats .train-notontime {
|
||||
font-size: 16px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.result .train-seats .train-nostarttip-insell {
|
||||
color: #7F7FE0;
|
||||
}
|
||||
.result .train-seats .train-nostarttip {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.result .train-seats .train-nostarttip-early {
|
||||
color: #7F7FE0;
|
||||
}
|
||||
.result .train-seats .train-nostarttip-insell {
|
||||
color: #7F7FE0;
|
||||
}
|
||||
|
||||
.result .train-seats .train-nostarttip-later {
|
||||
color: green;
|
||||
}
|
||||
.result .train-seats .train-nostarttip-early {
|
||||
color: #7F7FE0;
|
||||
}
|
||||
|
||||
.result .train-seats .row2 {
|
||||
}
|
||||
.result .train-seats .train-nostarttip-later {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.result .train-info {
|
||||
width: 120px;
|
||||
padding: 0 25px 0 25px;
|
||||
border-top: 1px solid #cccccc;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
.result .train-seats .row2 {
|
||||
}
|
||||
|
||||
.result .train-city {
|
||||
width: 110px;
|
||||
border-top: 1px solid #cccccc;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
padding: 0 0 0 5px;
|
||||
}
|
||||
.result .train-info {
|
||||
width: 120px;
|
||||
padding: 0 25px 0 25px;
|
||||
border-top: 1px solid #cccccc;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
.result .train-city {
|
||||
width: 110px;
|
||||
border-top: 1px solid #cccccc;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
padding: 0 0 0 5px;
|
||||
}
|
||||
|
||||
.ticket-block {
|
||||
display: block;
|
||||
@ -155,12 +167,12 @@
|
||||
|
||||
.ticket-block-selected {
|
||||
border-color: #e3c69b;
|
||||
background: linear-gradient(to bottom, #ffffff, #ffffff 5%, #fcf6e1 );
|
||||
background: linear-gradient(to bottom, #ffffff, #ffffff 5%, #fcf6e1);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ticket-block:hover {
|
||||
background: linear-gradient(to bottom,#FFFEFD,#F5E3D3);
|
||||
background: linear-gradient(to bottom, #FFFEFD, #F5E3D3);
|
||||
}
|
||||
|
||||
.ticket-block-selected:hover {
|
||||
@ -187,15 +199,27 @@
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.result .train-station-type:after {
|
||||
content: '';
|
||||
border-top: 5px solid #888;
|
||||
border-left: 5px solid transparent;
|
||||
border-right: 5px solid transparent;
|
||||
top: 13px;
|
||||
position: relative;
|
||||
left: 2px;
|
||||
}
|
||||
.result .train-station-type:after {
|
||||
content: '';
|
||||
border-top: 5px solid #888;
|
||||
border-left: 5px solid transparent;
|
||||
border-right: 5px solid transparent;
|
||||
top: 13px;
|
||||
position: relative;
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
/*禁用的车次席别*/
|
||||
.ticket-block[disabled] {
|
||||
background: #eee;
|
||||
color: #999;
|
||||
border: 1px solid #dddcdc;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.ticket-block[disabled] .ticket-num {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
/*始发终到标记*/
|
||||
.result .train-city .start:after {
|
||||
@ -214,9 +238,9 @@
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.result .train-needauto td button {
|
||||
margin-left: 20px;
|
||||
}
|
||||
.result .train-needauto td button {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.result .train-autotip {
|
||||
line-height: 50px;
|
||||
@ -225,9 +249,9 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.result .train-autotip td {
|
||||
border-top: 1px solid #cccccc;
|
||||
}
|
||||
.result .train-autotip td {
|
||||
border-top: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
.result .train-list-func {
|
||||
text-align: center;
|
||||
@ -242,86 +266,85 @@
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#suggestion > header {
|
||||
line-height: 30px;
|
||||
font-weight: bold;
|
||||
text-indent: 10px;
|
||||
}
|
||||
#suggestion > header {
|
||||
line-height: 30px;
|
||||
font-weight: bold;
|
||||
text-indent: 10px;
|
||||
}
|
||||
|
||||
#suggestion > header a {
|
||||
float: right;
|
||||
margin-right: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
#suggestion > header a {
|
||||
float: right;
|
||||
margin-right: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#suggestion > footer {
|
||||
padding: 10px;
|
||||
}
|
||||
#suggestion > footer {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#suggestion > footer > span {
|
||||
color: #c23825;
|
||||
font-weight: bold;
|
||||
}
|
||||
#suggestion > footer > span {
|
||||
color: #c23825;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#suggestion .result {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
#suggestion .result {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#suggestion .result th {
|
||||
text-indent: 15px;
|
||||
}
|
||||
#suggestion .result th {
|
||||
text-indent: 15px;
|
||||
}
|
||||
|
||||
#suggestion .result .train-linename {
|
||||
border: 1px solid #dcdcdc;
|
||||
border-left: none;
|
||||
line-height: 150%;
|
||||
text-align: center;
|
||||
color: #707070;
|
||||
width: 80px;
|
||||
}
|
||||
#suggestion .result .train-linename {
|
||||
border: 1px solid #dcdcdc;
|
||||
border-left: none;
|
||||
line-height: 150%;
|
||||
text-align: center;
|
||||
color: #707070;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
#suggestion .result .train-seats {
|
||||
border-right: none;
|
||||
}
|
||||
#suggestion .result .train-seats {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
#suggestion .result .train-linename span {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
color: #707070;
|
||||
}
|
||||
#suggestion .result .train-linename span {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
color: #707070;
|
||||
}
|
||||
|
||||
#suggestion .result .train-extraprice {
|
||||
border: 1px solid #dcdcdc;
|
||||
padding: 10px;
|
||||
border-right: none;
|
||||
width: 221px;
|
||||
}
|
||||
#suggestion .result .train-extraprice {
|
||||
border: 1px solid #dcdcdc;
|
||||
padding: 10px;
|
||||
border-right: none;
|
||||
width: 221px;
|
||||
}
|
||||
|
||||
#suggestion .result .train-extraprice span {
|
||||
font-weight: bold;
|
||||
color: rgb(209, 72, 72);
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
#suggestion .result .train-extraprice span {
|
||||
font-weight: bold;
|
||||
color: rgb(209, 72, 72);
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#suggestion .result .train-list {
|
||||
border: 1px solid #dcdcdc;
|
||||
padding: 10px;
|
||||
max-width: 500px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
#suggestion .result .train-list {
|
||||
border: 1px solid #dcdcdc;
|
||||
padding: 10px;
|
||||
max-width: 500px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
#suggestion .result .train-list span {
|
||||
font-weight: bold;
|
||||
color: rgb(209, 72, 72);
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#suggestion .result td.train-action {
|
||||
border: 1px solid #dcdcdc;
|
||||
}
|
||||
#suggestion .result .train-list span {
|
||||
font-weight: bold;
|
||||
color: rgb(209, 72, 72);
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#suggestion .result td.train-action {
|
||||
border: 1px solid #dcdcdc;
|
||||
}
|
||||
|
||||
#oncetrainsit {
|
||||
border: 1px solid #d5d5d5;
|
||||
@ -329,183 +352,183 @@
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#oncetrainsit > header {
|
||||
line-height: 30px;
|
||||
font-weight: bold;
|
||||
text-indent: 10px;
|
||||
background: linear-gradient(to bottom, #efefef, #d9d9d9);
|
||||
}
|
||||
#oncetrainsit > header {
|
||||
line-height: 30px;
|
||||
font-weight: bold;
|
||||
text-indent: 10px;
|
||||
background: linear-gradient(to bottom, #efefef, #d9d9d9);
|
||||
}
|
||||
|
||||
#oncetrainsit > header a {
|
||||
float: right;
|
||||
margin-right: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
#oncetrainsit > header a {
|
||||
float: right;
|
||||
margin-right: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#oncetrainsit > header > ul {
|
||||
float: right;
|
||||
overflow: hidden;
|
||||
font-weight: normal;
|
||||
}
|
||||
#oncetrainsit > header > ul {
|
||||
float: right;
|
||||
overflow: hidden;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#oncetrainsit > header > ul > li {
|
||||
float: right;
|
||||
}
|
||||
#oncetrainsit > header > ul > li {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#oncetrainsit > footer {
|
||||
padding: 10px;
|
||||
}
|
||||
#oncetrainsit > footer {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#oncetrainsit > footer > span {
|
||||
color: #c23825;
|
||||
font-weight: bold;
|
||||
}
|
||||
#oncetrainsit > footer > span {
|
||||
color: #c23825;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#oncetrainsit table {
|
||||
width: 100%;
|
||||
border-top: 1px solid #cccccc;
|
||||
}
|
||||
#oncetrainsit table {
|
||||
width: 100%;
|
||||
border-top: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
#oncetrainsit th {
|
||||
padding: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
#oncetrainsit th {
|
||||
padding: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#oncetrainsit tr:nth-child(6n+5),
|
||||
#oncetrainsit tr:nth-child(6n+6),
|
||||
#oncetrainsit tr:nth-child(6n+7) {
|
||||
background-color: #FFF9E9;
|
||||
}
|
||||
#oncetrainsit tr:nth-child(6n+5),
|
||||
#oncetrainsit tr:nth-child(6n+6),
|
||||
#oncetrainsit tr:nth-child(6n+7) {
|
||||
background-color: #FFF9E9;
|
||||
}
|
||||
|
||||
#oncetrainsit .ticket-container td {
|
||||
border-bottom: 1px solid #f8f8f8;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
vertical-align: top;
|
||||
}
|
||||
#oncetrainsit .ticket-container td {
|
||||
border-bottom: 1px solid #f8f8f8;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.recommand th {
|
||||
font-weight: bold;
|
||||
}
|
||||
#oncetrainsit tr.recommand th {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.header th {
|
||||
font-weight: bold;
|
||||
background-color: #f9f9f9;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
#oncetrainsit tr.header th {
|
||||
font-weight: bold;
|
||||
background-color: #f9f9f9;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.header th:nth-child(n+2) {
|
||||
border-left: 1px solid #cccccc;
|
||||
}
|
||||
#oncetrainsit tr.header th:nth-child(n+2) {
|
||||
border-left: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.sub th:nth-child(6) {
|
||||
border-left: 1px solid #cccccc;
|
||||
font-weight: bold;
|
||||
font-size: 130%;
|
||||
}
|
||||
#oncetrainsit tr.sub th:nth-child(6) {
|
||||
border-left: 1px solid #cccccc;
|
||||
font-weight: bold;
|
||||
font-size: 130%;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.sub th:nth-child(1) {
|
||||
font-weight: bold;
|
||||
font-size: 130%;
|
||||
}
|
||||
#oncetrainsit tr.sub th:nth-child(1) {
|
||||
font-weight: bold;
|
||||
font-size: 130%;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.sub th:nth-child(11) {
|
||||
border-left: 1px solid #cccccc;
|
||||
}
|
||||
#oncetrainsit tr.sub th:nth-child(11) {
|
||||
border-left: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.sub th:nth-child(3),
|
||||
#oncetrainsit tr.sub th:nth-child(8) {
|
||||
color: #ff781a;
|
||||
font-size: 120%;
|
||||
}
|
||||
#oncetrainsit tr.sub th:nth-child(3),
|
||||
#oncetrainsit tr.sub th:nth-child(8) {
|
||||
color: #ff781a;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.row td {
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
#oncetrainsit tr.row td {
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.ticket-container td {
|
||||
border-bottom: 1px solid #cccccc;
|
||||
line-height: 40px;
|
||||
}
|
||||
#oncetrainsit tr.ticket-container td {
|
||||
border-bottom: 1px solid #cccccc;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.ticket-container td:nth-child(n+2) {
|
||||
border-left: 1px solid #cccccc;
|
||||
}
|
||||
#oncetrainsit tr.ticket-container td:nth-child(n+2) {
|
||||
border-left: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
#oncetrainsit .button {
|
||||
padding: 0 4px;
|
||||
font-size: 90%;
|
||||
}
|
||||
#oncetrainsit .button {
|
||||
padding: 0 4px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
#oncetrainsit .remark {
|
||||
text-align: center;
|
||||
}
|
||||
#oncetrainsit .remark {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#oncetrainsit tr.catalog th {
|
||||
background: linear-gradient(to bottom, #fff, #f9f9f9);
|
||||
border-bottom: 1px solid #cccccc;
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
}
|
||||
#oncetrainsit tr.catalog th {
|
||||
background: linear-gradient(to bottom, #fff, #f9f9f9);
|
||||
border-bottom: 1px solid #cccccc;
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#oncetrainsit .ae, #oncetrainsit .fe {
|
||||
color: red;
|
||||
}
|
||||
#oncetrainsit .ae, #oncetrainsit .fe {
|
||||
color: red;
|
||||
}
|
||||
|
||||
#oncetrainsit .fa-angle-right {
|
||||
border: 1px solid #ff781a;
|
||||
padding: 0px 3px 0px 5px;
|
||||
border-radius: 50%;
|
||||
line-height: 14px;
|
||||
}
|
||||
#oncetrainsit .fa-angle-right {
|
||||
border: 1px solid #ff781a;
|
||||
padding: 0px 3px 0px 5px;
|
||||
border-radius: 50%;
|
||||
line-height: 14px;
|
||||
}
|
||||
|
||||
#oncetrainsit .ae:after,
|
||||
#oncetrainsit .fe:after {
|
||||
content: '终';
|
||||
color: white;
|
||||
display: inline-block;
|
||||
background: #FF9310;
|
||||
border-radius: 5px;
|
||||
padding: 2px 3px;
|
||||
font-weight: normal;
|
||||
font-size: 12px;
|
||||
margin-left: 4px;
|
||||
line-height: 12px;
|
||||
vertical-align: 10%;
|
||||
}
|
||||
#oncetrainsit .ae:after,
|
||||
#oncetrainsit .fe:after {
|
||||
content: '终';
|
||||
color: white;
|
||||
display: inline-block;
|
||||
background: #FF9310;
|
||||
border-radius: 5px;
|
||||
padding: 2px 3px;
|
||||
font-weight: normal;
|
||||
font-size: 12px;
|
||||
margin-left: 4px;
|
||||
line-height: 12px;
|
||||
vertical-align: 10%;
|
||||
}
|
||||
|
||||
#oncetrainsit .fe:after {
|
||||
content: '始';
|
||||
}
|
||||
#oncetrainsit .fe:after {
|
||||
content: '始';
|
||||
}
|
||||
|
||||
#oncetrainsit .btn-ticket-block {
|
||||
margin-right: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
#oncetrainsit .btn-ticket-block {
|
||||
margin-right: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#oncetrainsit time {
|
||||
font-weight: normal;
|
||||
}
|
||||
#oncetrainsit time {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.result .train-list-suggest {
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.result .train-list-suggest ul {
|
||||
padding: 5px;
|
||||
line-height: 200%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.result .train-list-suggest ul {
|
||||
padding: 5px;
|
||||
line-height: 200%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.result .train-list-suggest ul li {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.result .train-list-suggest ul li {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.result .train-list-suggest ul li i {
|
||||
color: #6072D4;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.result .train-list-suggest ul li i {
|
||||
color: #6072D4;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
@ -126,3 +126,20 @@
|
||||
#user-login-dialog .verify-code-touch a {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
|
||||
@media(min-width: 1024px){
|
||||
#user-login-dialog{
|
||||
width: 740px;
|
||||
}
|
||||
|
||||
#user-login-dialog .verify-code-touch span.verify-code-image {
|
||||
width: 596px;
|
||||
height: 380px;
|
||||
}
|
||||
|
||||
#user-login-dialog .vc-touchclick-marker{
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
}
|
||||
}
|
@ -272,7 +272,7 @@
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/*订单结果*/
|
||||
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#ticket-submit-info .ticket-submit-info-status-failed,
|
||||
#ticket-submit-info .ticket-submit-info-status-ok {
|
||||
display: none;
|
||||
@ -304,7 +304,6 @@
|
||||
}
|
||||
|
||||
|
||||
/*点触验证码*/
|
||||
#ticket-submit-info .ticket-submit-info-vc .verify-code-touch input {
|
||||
display: none;
|
||||
}
|
||||
@ -313,3 +312,30 @@
|
||||
height: 190px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
||||
@media(min-width: 1280px){
|
||||
#ticket-submit-container{
|
||||
width: 1200px;
|
||||
}
|
||||
|
||||
#ticket-info{
|
||||
height: 600px;
|
||||
}
|
||||
#ticket-submit-info{
|
||||
width: 790px;
|
||||
height: 600px;
|
||||
}
|
||||
#ticket-submit-info .ticket-submit-vc{
|
||||
width: 600px;
|
||||
}
|
||||
#ticket-submit-info .ticket-submit-info-vc .verify-code-touch span.verify-code-image{
|
||||
width: 594px;
|
||||
height: 380px;
|
||||
}
|
||||
|
||||
#ticket-submit-info .vc-touchclick-marker{
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
}
|
||||
}
|
||||
|
@ -725,8 +725,13 @@
|
||||
var t1=ext.param.findSeatData(t.ticketMap, code);
|
||||
if(!t1||!t1.count) continue;
|
||||
hasSeat=true;
|
||||
|
||||
var extraClass='';
|
||||
var extraAttr='';
|
||||
if(t.available===-1||t.available===0)
|
||||
extraAttr+="disabled='disabled' ";
|
||||
}}
|
||||
<a href="javascript:void(0);" class="ticket-block {{=it.selectedSeats[code]?'ticket-block-selected':''}}" data-traincode="{{=t.id}}" data-seatcode="{{=t1.code}}">
|
||||
<a {{=extraAttr}} href="javascript:void(0);" class="ticket-block {{=it.selectedSeats[code]?'ticket-block-selected':''}} {{=extraClass}}" data-traincode="{{=t.id}}" data-seatcode="{{=t1.code}}">
|
||||
<p><span>{{=t1.name}}</span></p>
|
||||
<p class="row2">
|
||||
<span class="ticket-num">{{=(t1.count?t1.count+"张":"无票")}} </span>
|
||||
@ -751,6 +756,9 @@
|
||||
{{?t.maybeIllegal}}
|
||||
<span class="train-illegal" title="经过检测显示此车票数据可能是无效的,提交可能会失败">可能无效</span>
|
||||
{{?}}
|
||||
{{?hasSeat&&(t.available===-1||t.available===0)&&t.selltime}}
|
||||
<span class="train-notsell-note" title="车次尚未起售">{{=ext.utility.formatSellDate(t.selltime)}} 起售</span>
|
||||
{{?}}
|
||||
</td>
|
||||
{{~}}
|
||||
{{?!it.original||!it.original.length}}
|
||||
|
@ -227,6 +227,26 @@
|
||||
callback(that.current);
|
||||
}
|
||||
};
|
||||
that.checkUser = function () {
|
||||
var def = new $.Deferred();
|
||||
|
||||
//获得用户json att
|
||||
ajax.sendPost("login/checkUser", "login/init", null, "json", function () {
|
||||
var m = this.model;
|
||||
|
||||
if (m && m.status && m.data && m.data.flag) {
|
||||
ajax.userAtts = m.data.attributes;
|
||||
|
||||
def.resolve(true);
|
||||
} else {
|
||||
def.reject(false);
|
||||
}
|
||||
}, function () {
|
||||
def.reject(null);
|
||||
});
|
||||
|
||||
return def;
|
||||
};
|
||||
this.defaultUser = { options: { soundPrompt: true, popupAt: true } };
|
||||
this.defaultProfile = {
|
||||
autoRefreshDelay: 5,
|
||||
@ -278,14 +298,7 @@
|
||||
|
||||
if (that.isLogined) {
|
||||
//获得用户json att
|
||||
ajax.sendPost("login/checkUser", "login/init", null, "json", function () {
|
||||
var m = this.model;
|
||||
|
||||
if (!m && !m.status && !m.data && m.data.flag) {
|
||||
ajax.userAtts = m.data.attributes;
|
||||
}
|
||||
}, function () {
|
||||
});
|
||||
that.checkUser();
|
||||
|
||||
keepAlive.start();
|
||||
} else {
|
||||
|
@ -103,9 +103,9 @@
|
||||
var exData = (dynamicKey ? encodeURIComponent(dynamicKey.code) + "=" + encodeURIComponent(dynamicKey.value) + "&" : "") + "myversion=undefined&";
|
||||
ajax.sendPost("confirmPassenger/autoSubmitOrderRequest", "leftTicket/init", exData + data, "json", function (json) {
|
||||
if (!json.status || !json.data) {
|
||||
var msg = parser.getError(json).message;
|
||||
var msg = parser.getError(json).message || "未知错误";
|
||||
|
||||
if ((msg.indexOf("非法请求") !== -1 || msg.indexOf("第三方") !== -1)) {
|
||||
if (msg.indexOf("非法请求") !== -1 || msg.indexOf("第三方") !== -1) {
|
||||
if (!forceReloadKey) {
|
||||
forceReloadKey = true;
|
||||
preparePageInfo();
|
||||
@ -116,9 +116,21 @@
|
||||
}
|
||||
forceReloadKey = false;
|
||||
|
||||
//**未登录,也提示有未完成订单**
|
||||
// 则检查一次登录状态。如果未登录,则返回未登录信息。
|
||||
if (msg.indexOf("未处理的订单") !== -1) {
|
||||
sessmgr.checkUser().done(function (state) {
|
||||
if (state === true)
|
||||
def.reject({ msg: msg });
|
||||
else def.reject({ msg: "12306取消了您的登录,请重新登录" });
|
||||
}).fail(def.reject({ msg: msg }));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (msg.indexOf("未登录") !== -1)
|
||||
msg = "12306取消了您的登录,请重新登录...";
|
||||
def.reject({ msg: msg || "12306返回了未知的状态信息,请刷新重试。" });
|
||||
def.reject({ msg: msg });
|
||||
} else if (json.data.isRelogin) {
|
||||
def.reject({ msg: "12306取消了您的登录,请重新登录" });
|
||||
} else if (json.data.errMsg) {
|
||||
|
@ -300,7 +300,7 @@
|
||||
"_jc_save_wfdc_flag": resign ? "gc" : "dc"
|
||||
} : {});
|
||||
if (isLogOpen) {
|
||||
exports.log(p, cookie);
|
||||
exports.log(p, cookie, true);
|
||||
}
|
||||
queryStartTime = new Date().getTime();
|
||||
ajax.sendGet(queryTicketUrl, "leftTicket/init", p, "json", function () {
|
||||
@ -357,8 +357,8 @@
|
||||
isLogOpen = m[2] === "Y";
|
||||
}
|
||||
if (!queryTicketUrl) {
|
||||
document.dispatchEvent(new CustomEvent("platformError"));
|
||||
def.reject("未能初始化查询地址");
|
||||
//document.dispatchEvent(new CustomEvent("platformError"));
|
||||
def.reject("由于12306访问故障,未能初始化查询, 请重试");
|
||||
}
|
||||
else postFetchTicketUrl();
|
||||
}).fail(function () {
|
||||
|
@ -74,8 +74,10 @@
|
||||
}).done(preprocessServerResponse).fail(function () {
|
||||
setTimeout(function () {
|
||||
that.clearQueryResultCache();
|
||||
//如果服务器出现错误,则等待十秒后再恢复状态
|
||||
}, 10000);
|
||||
//如果服务器出现错误,则等待30分钟后再恢复状态
|
||||
}, 1000*60*30);
|
||||
//直接当没有响应内容处理。
|
||||
preprocessServerResponse();
|
||||
});
|
||||
};
|
||||
var preprocessServerResponse = function (serverSuggestion) {
|
||||
|
File diff suppressed because one or more lines are too long
@ -20,6 +20,7 @@
|
||||
var that = this;
|
||||
var dlg = $("#user-login-dialog");
|
||||
var btn = dlg.find("button.button-primary");
|
||||
var notifysession=null;
|
||||
|
||||
ev.apply(this, arguments);
|
||||
|
||||
@ -116,6 +117,7 @@
|
||||
loginFailed((this.model.data && this.model.data.loginFail) || (this.model.messages || ["未知错误"]).join(","));
|
||||
} else {
|
||||
realName = this.model.data.username;
|
||||
notifysession=this.model.data.notifysession==="Y"?"警告:检测到登录冲突。12306已禁止一个账户多点登录,之前的登录已被注销。如果您需要多开浏览器,请使用多个账号。":null;
|
||||
submitLoginInfo();
|
||||
}
|
||||
}, function () {
|
||||
@ -129,7 +131,10 @@
|
||||
|
||||
//查询状态
|
||||
ajax.sendGet("index/initMy12306", "login/init", null, "text", function () {
|
||||
var notice = /var\s+(notify_TWO_2)\s*=['"]?([^;\r\n]+?)['"]?;/i.exec(this.model) && unescape(RegExp.$2.replace(/\\/g, '%'));
|
||||
var notice = notifysession || /var\s+(notify_TWO_2)\s*=['"]?([^;\r\n]+?)['"]?;/i.exec(this.model) && unescape(RegExp.$2.replace(/\\/g, '%'));
|
||||
////登录冲突
|
||||
//if(/var\s+(notify_SESSION)\s*=['"]?Y['"]?;/i.test(this.model))
|
||||
// notice="";
|
||||
|
||||
if (notice && notice.indexOf("null") === -1) {
|
||||
events.msgFrom12306.trigger(notice);
|
||||
|
@ -179,6 +179,9 @@
|
||||
});
|
||||
//监听订票请求
|
||||
$(document).on("click", ".ticket-block, .btn-ticket-block", function () {
|
||||
if(this.getAttribute("disabled"))
|
||||
return;
|
||||
|
||||
var id = this.dataset.traincode;
|
||||
var seatcode = this.dataset.seatcode;
|
||||
var train;
|
||||
|
@ -35,7 +35,8 @@
|
||||
var touchClick = function (e) {
|
||||
var img = $(this);
|
||||
var parent = img.parent();
|
||||
var pos = { x: e.offsetX, y: e.offsetY };
|
||||
var ratio = this.clientHeight > 220 ? 2 : 1;
|
||||
var pos = { x: Math.round(e.offsetX / ratio), y:Math.round( e.offsetY / ratio) };
|
||||
var realPos = { x: pos.x, y: pos.y - 30 };
|
||||
var poslist = img.data("poslist");
|
||||
var imgPos = img.position();
|
||||
@ -63,7 +64,7 @@
|
||||
poslist.push(realPos);
|
||||
|
||||
//add marker
|
||||
var marker = $("<span class='vc-touchclick-marker' style='top:" + (pos.y + imgPos.top - 16) + "px; left:" + (pos.x + imgPos.left - 16) + "px;'></span>");
|
||||
var marker = $("<span class='vc-touchclick-marker' style='top:" + (pos.y * ratio + imgPos.top - 16) + "px; left:" + (pos.x * ratio + imgPos.left - 16) + "px;'></span>");
|
||||
marker.data("pos", realPos);
|
||||
parent.append(marker);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user