miaoguo_develop.js 115 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828
  1. var vm;
  2. var browser="Chrome";
  3. $(document).ready(function () {
  4. var w = window.innerWidth
  5. || document.documentElement.clientWidth
  6. || document.body.clientWidth;
  7. browser=myBrowser();
  8. var currentField = "";
  9. var currentCursorPos = "",currentLatexCursorPos=-1;
  10. var selectInformation=[];
  11. var SymbolArray="+-×÷=<>≤≥*/·≈≠±∓“”()[]{}《》「」%‰°℃⁰¹²³⁴⁵⁶⁷⁸⁹ⁱʲᵏˡᵐⁿ⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑᵢₒᵤ﹫⓪①②③④⑤⑥⑦⑧⑨⑩ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ½⅓⅔¼¾⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞⅑⅒∵∴|‖≌∽∠⊥○☐△▽▷◁☆♤♧♡♢●■▲▼▶︎◀︎★⊙√ㄨ←↑→↓⇄⇅↖↗↘↙⇐⇑⇒⇓⇔āáǎàōóǒòēéěèīíǐìūúǔùǖǘǚǜüê$¥〒¢£ΓΔΘΞΠΣΥΦΨΧΩαβγδεζηθικλμνξπρστυφχψω∈∪∩⊆⊂⊇⊃∞";
  12. var SymbolMain=serverurl11;
  13. var arrCardType=["Urgent","Common","Empty"];
  14. var arrOrderType=["ac.MiaoguoCardID desc","ac.UpdateTime desc,ac.CreateTime desc","ac.MiaoguoCardID asc","ac.LearnNumber desc,ac.MiaoguoCardID desc","ac.LearnNumber,ac.MiaoguoCardID","ac.LastTime desc","ac.LimitTime asc","ac.LimitTime desc"];
  15. var tempCardType=0;//临时题卡类型参数
  16. vm = new Vue({
  17. el: '#app1',
  18. data: {
  19. ListMain: [],
  20. ListAlready: [],
  21. MenuSelect:"All",
  22. ToolSelect:"Add",
  23. UrgentCount:0,//紧急题卡总数
  24. OrderType:0,
  25. Count: 0,
  26. CurrentID: 0,
  27. CreateTime:"",
  28. UpdateTime:"",
  29. SearchInput:"",
  30. SearchInformationInput:"",
  31. Field:[],
  32. Tags:[],
  33. HasField2:false,
  34. HasField3:false,
  35. InfomationResult:{},
  36. ListInformation: [],
  37. NickName:serverurl1,
  38. AvatarUrl:serverurl18,
  39. SymbolMain:SymbolMain,
  40. SymbolArray:SymbolArray,
  41. SymbolShowAll:0,
  42. IsRecycleBin:0,//是否是回收站
  43. IsCollect:0,//是否是收藏夹
  44. CommonTags:serverurl9.split(" "),
  45. ShowButton:serverurl15,
  46. FolderList:[],//卡单列表
  47. FolderID:0,
  48. FolderName:"",//卡单名称
  49. IsShowCardInfo:0,
  50. ShowLimitTimeType:"无间隔",
  51. UserFamily:[],
  52. SelectCardCount:0,//选择的题卡数
  53. IsPrintNewWord:0,//是打印写字表
  54. HanziBookList:[],//语文书列表
  55. BookUnitList:[],//书中单元列表
  56. BookTypeList:[],//书中类型列表(写字、识字、词语)
  57. ExcelCards:[],//Excel卡片列表
  58. LatexMenu:[
  59. {Name:"小学数学",Selected:1},
  60. {Name:"初中数学",Selected:0},
  61. {Name:"高中数学",Selected:0},
  62. {Name:"初中物理",Selected:0},
  63. {Name:"高中物理",Selected:0},
  64. {Name:"初中化学",Selected:0},
  65. {Name:"高中化学",Selected:0},
  66. ],//公式菜单
  67. LatexList:[],//公式列表
  68. LatexSelected:["数学","小学"],//公式选择的类别
  69. LatexBtnList:[
  70. {Name:"分数",Content:"\\frac{1}{2}"},
  71. {Name:"平方根",Content:"\\sqrt{2}"},
  72. {Name:"换行",Content:"\\\\"},
  73. {Name:"空格",Content:"\\,"},
  74. {Name:"等距空格",Content:"\\quad"},
  75. {Name:"∵",Content:"∵"},
  76. {Name:"∴",Content:"∴"},
  77. {Name:"∠",Content:"∠"},
  78. {Name:"∥",Content:"∥"},
  79. {Name:"⟂",Content:"⟂"},
  80. {Name:"▵",Content:"▵"},
  81. {Name:"▱",Content:"▱"},
  82. {Name:"⊙",Content:"⊙"},
  83. {Name:"∼",Content:"∼"},
  84. {Name:"≅",Content:"≅"},
  85. {Name:"×",Content:"×"},
  86. {Name:"÷",Content:"÷"},
  87. {Name:"·",Content:"\\cdot"},
  88. {Name:"±",Content:"±"},
  89. {Name:"≠",Content:"≠"},
  90. {Name:"≥",Content:"≥"},
  91. {Name:"≤",Content:"≤"},
  92. {Name:"π",Content:"π"},
  93. {Name:"°",Content:"°"},
  94. {Name:"⇒",Content:"⇒"},
  95. {Name:"⇔",Content:"⇔"},
  96. {Name:"+∞",Content:"+∞"},
  97. {Name:"²",Content:"²"},
  98. {Name:"³",Content:"³"},
  99. {Name:"N次方",Content:"x^{n}"},
  100. {Name:"N次方根",Content:"\\sqrt[n]{a}"},
  101. {Name:"x₁",Content:"x₁"},
  102. {Name:"x₂",Content:"x₂"},
  103. {Name:"下标n",Content:"x_{n}"},
  104. {Name:"α",Content:"α"},
  105. {Name:"β",Content:"β"},
  106. {Name:"γ",Content:"γ"},
  107. {Name:"θ",Content:"θ"},
  108. {Name:"圆弧AB",Content:"\\widehat{AB}"},
  109. {Name:"向量a",Content:"\\overrightarrow{a}"},
  110. {Name:"组合C",Content:"C_{n}^{m}"},
  111. {Name:"求和",Content:"\\sum_{i=1}^{n}a_{i}"},
  112. ],
  113. txtLatexName:"",//可编辑的公式名称
  114. txtLatexContent:"",//可编辑的公式内容
  115. txtLatexFontSize:"48",//可编辑的公式字号
  116. },
  117. methods: {
  118. getList: function (event) {
  119. $("#imgMain").css("display","block");
  120. var param={};
  121. if (event.currentTarget && event.currentTarget.dataset.title=="newFirst"){
  122. param.PageID=0;
  123. $.post('/apiData/'+serverurl8,param, function (data) {
  124. $("#imgMain").css("display","none");
  125. vm.Count = data.result.Count;
  126. vm.UrgentCount=data.result.UrgentCount;
  127. data.result.List[0].Title1 = data.result.List[0].Content[1].Content.substr(0, 19);
  128. data.result.List[0].Title2 = data.result.List[0].Content[2].Content.substr(0, 19);
  129. vm.ListMain.unshift(data.result.List[0]);
  130. formatList(data.result.List);
  131. });
  132. }
  133. else{
  134. vm.IsRecycleBin=0;
  135. if (event.currentTarget && event.currentTarget.dataset.page=="nextPage"){
  136. param.PageID=vm.ListMain[vm.ListMain.length-1].MiaoguoCardID;
  137. $(".btnMore").text("请稍候...");
  138. $(".btnMore").attr("disabled",true);
  139. }
  140. var title = event.currentTarget.dataset.title;
  141. param.Key="";
  142. if (event.currentTarget.dataset.type=="search") {
  143. param.Key = vm.SearchInput;
  144. title=vm.MenuSelect;
  145. }
  146. else{
  147. vm.SearchInput = "";
  148. vm.MenuSelect=title;
  149. }
  150. vm.FolderName="";
  151. vm.FolderID=0;
  152. if (title=="All") {
  153. vm.getAdd();
  154. $("#selectCardType").find("option").eq(0).prop("selected",true);
  155. }
  156. else if (title=="Common") {
  157. vm.getAdd();
  158. param.CardType=0;
  159. $("#selectCardType").find("option").eq(0).prop("selected",true);
  160. }
  161. else if (title=="Empty") {
  162. vm.getAdd();
  163. param.CardType=-1;
  164. $("#selectCardType").find("option").eq(-1).prop("selected",true);
  165. }
  166. else if (title=="Urgent") {
  167. vm.getAdd();
  168. param.CardType=1;
  169. $("#selectCardType").find("option").eq(1).prop("selected",true);
  170. }
  171. else if (title=="Collect") {
  172. vm.getAdd();
  173. param.IsCollect=1;
  174. $("#IsCollect").prop("checked", true);
  175. $("#selectCardType").find("option").eq(0).prop("selected",true);
  176. }
  177. else if (title.indexOf("Folder")>=0) {
  178. param.FolderID = title.substr(6);
  179. for (var i = 0; i < vm.FolderList.length; i++) {
  180. if (param.FolderID == vm.FolderList[i].ID) {
  181. vm.getAdd();
  182. vm.FolderName = vm.FolderList[i].Name;
  183. vm.FolderID = param.FolderID;
  184. $("#selectFolder").val(param.FolderID);
  185. $("#selectCardType").find("option").eq(0).prop("selected", true);
  186. $("#IsCollect").prop("checked", false);
  187. if (event.currentTarget.dataset.title2 == "all") {
  188. $("#filterCardType").find("option").eq(0).prop("selected", true);
  189. }
  190. else if ($("#filterCardType").get(0) && $("#filterCardType").get(0).selectedIndex) {
  191. var filterCardType = $("#filterCardType").get(0).selectedIndex;
  192. if (filterCardType == 1)
  193. param.CardType = 0;
  194. else if (filterCardType == 2)
  195. param.CardType = 1;
  196. else if (filterCardType == 3)
  197. param.CardType = -1;
  198. }
  199. break;
  200. }
  201. }
  202. }
  203. vm.setMenuColor(title);
  204. var selectOrderType = 0;
  205. if ($("#OrderType").get(0))
  206. selectOrderType = $("#OrderType").get(0).selectedIndex;
  207. param.OrderType=arrOrderType[selectOrderType];
  208. vm.OrderType=selectOrderType;
  209. $.post('/apiData/'+serverurl16,param, function (data) {
  210. $("#imgMain").css("display","none");
  211. vm.Count = data.result.Count;
  212. vm.UrgentCount=data.result.UrgentCount;
  213. var list=formatList(data.result.List);
  214. if (event.currentTarget && event.currentTarget.dataset.page=="nextPage"){
  215. $(".btnMore").text("下拉显示更多");
  216. $(".btnMore").attr("disabled",false);
  217. for (var i = 0; i < list.length; i++)
  218. vm.ListMain.push(list[i]);
  219. }
  220. else{
  221. vm.ListMain=list;
  222. }
  223. });
  224. }
  225. },
  226. setMenuColor:function(name){
  227. $(".menu1").css("background-color","#ddd");
  228. $(".menu1").css("color","#1e1e1e");
  229. $("#menu"+name).css("background-color","#999");
  230. $("#menu"+name).css("color","#fff");
  231. },
  232. getDeleteList:function(event){
  233. vm.IsRecycleBin=1;
  234. vm.getAdd(null,1);
  235. $("#imgMain").css("display","block");
  236. var param={};
  237. param.Type="web";
  238. if (event.currentTarget && event.currentTarget.dataset.page=="nextPage"){
  239. param.PageID=vm.ListMain[vm.ListMain.length-1].MiaoguoCardID;
  240. param.PageCount=20;
  241. $(".btnMore").text("请稍候...");
  242. $(".btnMore").attr("disabled",true);
  243. }
  244. else{
  245. param.PageID="0";
  246. param.PageCount="20";
  247. }
  248. console.log(param);
  249. $.post('/apiData/'+serverurl17,param, function (data) {
  250. $("#imgMain").css("display","none");
  251. vm.Count = data.result.Count;
  252. var list=formatList(data.result.List);
  253. if (event.currentTarget && event.currentTarget.dataset.page=="nextPage"){
  254. $(".btnMore").text("下拉显示更多");
  255. $(".btnMore").attr("disabled",false);
  256. for (var i = 0; i < list.length; i++)
  257. vm.ListMain.push(list[i]);
  258. }
  259. else{
  260. vm.ListMain=list;
  261. }
  262. });
  263. $(".menu1").css("background-color","#ddd");
  264. $(".menu1").css("color","#1e1e1e");
  265. $("#menuDeleteList").css("background-color","#999");
  266. $("#menuDeleteList").css("color","#fff");
  267. $(".btnNavigation").css("background-color","#ccc");
  268. $(".btnNavigation").css("color","#1e1e1e");
  269. },
  270. getItem: function (event) {
  271. var that=this;
  272. //console.log(event.currentTarget);
  273. var id = event.currentTarget.dataset.title;
  274. for (var i = 0; i < vm.ListMain.length; i++) {
  275. if (id === vm.ListMain[i].MiaoguoCardID) {
  276. $("#Field1").val(EncryptUrl(vm.ListMain[i].Content[1].Content));
  277. $("#Field2").val(EncryptUrl(vm.ListMain[i].Content[2].Content));
  278. $("#Field3").val(EncryptUrl(vm.ListMain[i].Content[3].Content));
  279. if (vm.ListMain[i].Content[2].Content)
  280. vm.HasField2=true;
  281. else
  282. vm.HasField2=false;
  283. if (vm.ListMain[i].Content[3].Content)
  284. vm.HasField3=true;
  285. else
  286. vm.HasField3=false;
  287. if (vm.ListMain[i].IsCollect==1) {
  288. $("#IsCollect").prop("checked", true);
  289. }
  290. else
  291. $("#IsCollect").prop("checked",false);
  292. $("#selectCardType").find("option").eq(vm.ListMain[i].CardType).prop("selected",true);
  293. if (vm.ListMain[i].CardType>=0)
  294. $("#divLimitTime").css("visibility","");
  295. else
  296. $("#divLimitTime").css("visibility","hidden");
  297. $("#selectFolder").val(vm.ListMain[i].FolderID);
  298. if (vm.ListMain[i].LimitTime){
  299. $("#LimitTime").text(vm.ListMain[i].LimitTime.substr(0,10));
  300. }
  301. $("#ACardMain" + i).css("background-color", "#eee");
  302. if (event.currentTarget.dataset.type=="showCardInfo" && vm.IsShowCardInfo==1)
  303. vm.IsShowCardInfo=1;
  304. else
  305. vm.IsShowCardInfo=0;
  306. if (vm.ToolSelect=="Add" || vm.IsShowCardInfo==1){
  307. var content=changeStringToView(vm.ListMain[i].Content);
  308. var b=false;
  309. for(var k=1;k<content.Field.length;k++){
  310. for(var l=0;l<content.Field[k].length;l++){
  311. if (content.Field[k][l].Type=="latex"){
  312. content.Field[k][l].Content=(content.Field[k][l].Content).replace("$$","");
  313. content.Field[k][l].Content=(content.Field[k][l].Content).replace("$$","");
  314. b=true;
  315. }
  316. }
  317. }
  318. if (b){
  319. $('.textLaTeX').empty();
  320. $('.katex').empty();
  321. setTimeout(function () {
  322. var lis=$(".textLaTeX");
  323. lis.each(function(index,ele){
  324. var str=ele.title;
  325. var id=ele.id;
  326. that.renderLatex(id,str);
  327. });
  328. },500);
  329. }
  330. else{
  331. console.log("清空");
  332. $('.katex').empty();
  333. }
  334. vm.Tags=content.Tags;
  335. vm.Field=content.Field;
  336. vm.CreateTime=vm.ListMain[i].CreateTime;
  337. vm.UpdateTime=vm.ListMain[i].UpdateTime;
  338. vm.CurrentID = id;
  339. }
  340. else{
  341. if (event.target.localName!="input") {
  342. var isCheck=$("#ACardMain"+i + " input").prop("checked");
  343. if (isCheck) {
  344. $("#ACardMain"+ i + " input").prop("checked", false);
  345. vm.ListMain[i].Selected=false;
  346. vm.SelectCardCount--;
  347. }
  348. else{
  349. $("#ACardMain"+ i + " input").prop("checked", true);
  350. vm.ListMain[i].Selected=true;
  351. vm.SelectCardCount++;
  352. }
  353. }
  354. else {
  355. var selected=$("#ACardMain"+ i + " input").prop("checked");
  356. vm.ListMain[i].Selected=selected;
  357. }
  358. }
  359. }
  360. else {
  361. $("#ACardMain" + i).css("background-color", "#fff");
  362. }
  363. }
  364. getSelectedItemCount();
  365. },
  366. getAdd: function (event,NoRemind) {
  367. //if (!NoRemind)
  368. // showRemind("表单初始化成功",4000);
  369. $("#IsTodayStudy").attr("checked",false);
  370. $("#IsCollect").attr("checked",false);
  371. vm.CurrentID = 0;
  372. vm.CreateTime="";
  373. vm.UpdateTime="";
  374. vm.SearchInformationInput="";
  375. vm.Field=[];
  376. vm.Tags=[];
  377. vm.HasField2=false;
  378. vm.HasField3=false;
  379. for (var i = 0; i < vm.ListMain.length; i++) {
  380. $("#ACardMain" +i).css("background-color", "#fff");
  381. }
  382. $("#Field1").val("");
  383. $("#Field2").val("");
  384. $("#Field3").val("");
  385. $("#fileUpload").val("");
  386. $("#mySingleField").val("");
  387. $("#selectFolder").val("0");
  388. if (vm.MenuSelect=="All") {
  389. $("#selectCardType").find("option").eq(0).prop("selected",true);
  390. }
  391. else if (vm.MenuSelect=="Common") {
  392. $("#selectCardType").find("option").eq(0).prop("selected",true);
  393. }
  394. else if (vm.MenuSelect=="Empty") {
  395. $("#selectCardType").find("option").eq(-1).prop("selected",true);
  396. }
  397. else if (vm.MenuSelect=="Urgent") {
  398. $("#selectCardType").find("option").eq(1).prop("selected",true);
  399. }
  400. else if (vm.MenuSelect=="Collect") {
  401. $("#IsCollect").prop("checked", true);
  402. }
  403. else if (vm.MenuSelect.indexOf("Folder")>=0){
  404. var folderID=vm.MenuSelect.substr(6);
  405. for(var i=0;i<vm.FolderList.length;i++){
  406. if (folderID==vm.FolderList[i].ID){
  407. $("#selectFolder").val(folderID);
  408. break;
  409. }
  410. }
  411. }
  412. },
  413. deleteItem: function (event) {
  414. var that=this;
  415. var id = event.currentTarget.dataset.title;
  416. var url = "/apiData/"+serverurl4;
  417. var param = {};
  418. param.ID = id;
  419. param.VisitType = "vtqOSthN7vSwYmhc1gCjfw==";
  420. $.post(url, param, function (data) {
  421. //console.log(id);
  422. showRemind("删除成功");
  423. for(var i=0;i<vm.ListMain.length;i++){
  424. if (id==vm.ListMain[i].MiaoguoCardID){
  425. vm.ListMain.splice(i,1);
  426. break;
  427. }
  428. }
  429. that.getAdd();
  430. });
  431. },
  432. returnListItem: function (event) {
  433. var that=this;
  434. var id = event.currentTarget.dataset.title;
  435. var url = "/apiData/"+serverurl4;
  436. var param = {};
  437. param.ID = id;
  438. param.IsRecover = "true";
  439. param.VisitType = "vtqOSthN7vSwYmhc1gCjfw==";
  440. $.post(url, param, function (data) {
  441. console.log(id);
  442. showRemind("恢复成功");
  443. for(var i=0;i<vm.ListMain.length;i++){
  444. if (id==vm.ListMain[i].MiaoguoCardID){
  445. vm.ListMain.splice(i,1);
  446. break;
  447. }
  448. }
  449. that.getAdd();
  450. });
  451. },
  452. getInformationList: function (event) {
  453. if (vm.SearchInformationInput) {
  454. showRemind("loading...");
  455. $(".InfoListItem").css("background-color", "#fff");
  456. var param = {};
  457. param.Word = vm.SearchInformationInput;
  458. $.post('/apiData/'+serverurl5, param, function (data) {
  459. if (data.result){
  460. if (data.result.List) {
  461. if (data.result.List.length==0){
  462. showRemind("资料搜索暂无数据!");
  463. }
  464. else {
  465. vm.ListInformation = [];
  466. for (var i = 0; i < data.result.List.length; i++) {
  467. if (data.result.List[i].TypeName == "字词")
  468. data.result.List[i].TypeName = "";
  469. vm.ListInformation.push(data.result.List[i]);
  470. }
  471. }
  472. }
  473. else{
  474. if (!data.result.CHN && data.result.ENG && !data.result.ENG.Paraphrase){
  475. showRemind("资料搜索暂无数据!");
  476. }
  477. else{
  478. vm.InfomationResult=data.result;
  479. selectInformation=[];
  480. vm.ListInformation=[];
  481. var arr=[];
  482. var arrSource=CombineWords;
  483. if (vm.SearchInformationInput.length==1) {
  484. var CombineWords = data.result.CHN.CombineWords;
  485. arrSource=CombineWords;
  486. }
  487. else if (vm.SearchInformationInput.length>1) {
  488. var arr=[];
  489. if (data.result.CHN) {
  490. var Synonym = data.result.CHN.Synonym;
  491. var Antonym = data.result.CHN.Antonym;
  492. arrSource = [];
  493. if (Synonym && Synonym.length > 0) {
  494. for (var i = 0; i < Synonym.length; i++) {
  495. arrSource.push(Synonym[i]);
  496. }
  497. }
  498. if (Antonym && Antonym.length > 0) {
  499. for (var i = 0; i < Antonym.length; i++) {
  500. arrSource.push(Antonym[i]);
  501. }
  502. }
  503. }
  504. else if (data.result.ENG){
  505. if (data.result.ENG.ExamplesSentences){
  506. for (var i = 0; i < data.result.ENG.ExamplesSentences.length; i++) {
  507. var item = data.result.ENG.ExamplesSentences[i];
  508. var obj=[{ContentType:0,Content:""},{ContentType:1,Content:item[0]},{ContentType:2,Content:""},{ContentType:3,Content:""}];
  509. var obj2=changeStringToView(obj);
  510. var str=obj2.Field[1][0].Content;
  511. item.push(str);
  512. item[1]=ReplaceAllString(item[1],"<b>","");
  513. item[1]=ReplaceAllString(item[1],"</b>","");
  514. }
  515. }
  516. else{
  517. data.result.ENG.ExamplesSentences=[];
  518. }
  519. }
  520. }
  521. if (arrSource && arrSource.length > 0) {
  522. for(var i=0;i<arrSource.length;i++){
  523. var obj={};
  524. obj.Type="zici";
  525. obj.Key=arrSource[i];
  526. obj.TypeName="";
  527. obj.Remark="";
  528. obj.Content="";
  529. vm.ListInformation.push(obj);
  530. }
  531. }
  532. }
  533. }
  534. }
  535. else{
  536. showRemind("资料搜索暂无数据!");
  537. }
  538. });
  539. }
  540. },
  541. getInformationItem: function (event) {
  542. var that=this;
  543. showRemind("loading...");
  544. var index = event.currentTarget.id.substr(15);
  545. var title=event.currentTarget.dataset.title;
  546. title=title.split("_");
  547. $(".InfoListItem").css("background-color", "#fff");
  548. var param = {};
  549. param.Word = title[0];
  550. vm.SearchInformationInput=param.Word;
  551. if (title[1])
  552. param.SearchType=title[1];
  553. if (title[2] && title[2]!="undefined")
  554. param.Author=title[2];
  555. if (title[3] && title[3]!="undefined")
  556. param.ShiciUrl=title[3];
  557. //console.log("param:"+JSON.stringify(param));
  558. $.post('/apiData/'+serverurl5, param, function (data) {
  559. if (data.result) {
  560. if (data.result.List) {
  561. vm.ListInformation = [];
  562. for (var i = 0; i < data.result.List.length; i++) {
  563. if (data.result.List[i].TypeName == "字词")
  564. data.result.List[i].TypeName = "";
  565. vm.ListInformation.push(data.result.List[i]);
  566. }
  567. }
  568. else {
  569. vm.InfomationResult = data.result;
  570. if (data.result.LATEX) {
  571. var content=data.result.LATEX.LatexContent;
  572. content=ReplaceAllString(content,"##dyh##","'");
  573. content=ReplaceAllString(content,"##xg##","\\");
  574. vm.InfomationResult.LATEX.LatexContent1=content;
  575. setTimeout(function () {
  576. $("#divLatex").prop("title",content);
  577. that.renderLatex("divLatex",content);
  578. },500);
  579. }
  580. $("#InformationCard" + index).css("background-color", "#eee");
  581. }
  582. initInfomation();
  583. }
  584. else{
  585. showRemind("资料搜索暂无数据!");
  586. }
  587. });
  588. },
  589. getInputData: function (event) {
  590. var id=event.currentTarget.id;
  591. var num="";
  592. //console.log(id);
  593. $("#"+id).css("background-color", "#0071EF");
  594. $("#"+id).css("color", "#fff");
  595. $("#"+id+"_Select").css("background-color", "#0071EF");
  596. var text=$("#"+id+"_Select").text();
  597. if (text=="") {
  598. num = "1";
  599. }
  600. else if (text=="1")
  601. num="2";
  602. if (text=="2")
  603. num="3";
  604. if (text=="3") {
  605. num="";
  606. $("#"+id).css("background-color", "#fff");
  607. $("#"+id).css("color", "#1e1e1e");
  608. $("#"+id+"_Select").css("background-color", "#fff");
  609. }
  610. $("#"+id+"_Select").text(num);
  611. //console.log(id+":"+num);
  612. for(var i=0;i<selectInformation.length;i++){
  613. if (selectInformation[i].id==id){
  614. selectInformation.splice(i,1);
  615. break;
  616. }
  617. }
  618. selectInformation.push({
  619. id:id,
  620. num:num,
  621. });
  622. },
  623. addInformation:function(){
  624. for(var i=0;i<selectInformation.length;i++) {
  625. var str;
  626. if (!vm.Tags || vm.Tags.length == 0)
  627. vm.Tags = [];
  628. var tag = selectInformation[i].id.substr(selectInformation[i].id.indexOf("_") + 1);
  629. tag = tag.substr(0, tag.indexOf("_"));
  630. tag=tag.split("-");
  631. for (var j = 0; j < tag.length; j++) {
  632. if (vm.Tags.indexOf(tag[j]) === -1) vm.Tags.push(tag[j]);
  633. }
  634. var infotype=selectInformation[i].id.substr(0,selectInformation[i].id.indexOf("_"));
  635. if (infotype=="image"){
  636. str=$("#"+selectInformation[i].id+" .image1").attr("src");
  637. str="[图 w='650' h='650']"+str+"[/图]";
  638. }
  639. else if (infotype=="latex"){
  640. str=$("#"+selectInformation[i].id+" .latex").prop("title");
  641. var fontsize=$("#"+selectInformation[i].id+" .latex").attr("fontsize");
  642. var latexname=$("#"+selectInformation[i].id+" .latex").attr("latexname");
  643. //console.log(str);
  644. str=ReplaceAllString(str,"\n","");
  645. str="[公式 N=\""+latexname+"\" FS=\""+fontsize+"\"]"+str+"[/公式]";
  646. }
  647. else if (infotype=="soundmark"){
  648. str=$("#"+selectInformation[i].id+" .text1").text();
  649. var soundmark=$("#"+selectInformation[i].id+" .text1").attr("data-title");
  650. str="[读 src='"+soundmark+"']"+str+"[/读]";
  651. }
  652. else if (infotype=="sound"){
  653. str=$("#"+selectInformation[i].id+" .text1").text();
  654. if (tag=="拼音" || tag=="默写"){
  655. if (vm.InfomationResult.CHN.HanZi.length==1) {
  656. var sound = vm.InfomationResult.CHN.HanZi + "(" + getPinyinNormal(str) + ")";
  657. str = "[读 src='" + sound + "']" + str + "[/读]";
  658. }
  659. else
  660. str = "[读 src='" + vm.InfomationResult.CHN.HanZi + "']" + str + "[/读]";
  661. }
  662. else
  663. str="[读]"+str+"[/读]";
  664. }
  665. else if (infotype=="example"){
  666. str=$("#"+selectInformation[i].id+"_Select").attr("data-title");
  667. }
  668. else{
  669. str=$("#"+selectInformation[i].id+" .text1").text();
  670. if (tag == "诗词" || tag == "译文"){
  671. var arr1=str.split("\n");
  672. var arr2=[];
  673. for(var j=0;j<arr1.length;j++){
  674. var str2=Trim(arr1[j]);
  675. if (str2)
  676. arr2.push(str2);
  677. }
  678. str=arr2.join("");
  679. }
  680. else if (selectInformation[i].id.indexOf("_LatexName")>0){
  681. str="[特 FS=\"64\"]"+str+"[/特]";
  682. }
  683. }
  684. var val=$("#Field"+selectInformation[i].num).val();
  685. if (!val)
  686. val="";
  687. if (val=="")
  688. val=str;
  689. else if (i==0)
  690. val+="\n\n"+str;
  691. else
  692. val+="\n"+str;
  693. $("#Field"+selectInformation[i].num).val(EncryptUrl(val));
  694. }
  695. //console.log(vm.Tags);
  696. this.closeInfomation();
  697. },
  698. closeInfomation:function(event){
  699. //for(var i=1;i<=3;i++) {
  700. // $(".main" + i).css("display", "flex");
  701. //}
  702. $("#panelInfomation").css("display", "none");
  703. initInfomation();
  704. vm.InfomationResult={};
  705. vm.ListInformation=[];
  706. },
  707. closeLatex:function(event){
  708. $("#panelLatex").css("display", "none");
  709. vm.txtLatexContent="";
  710. vm.txtLatexFontSize=48;
  711. vm.txtLatexName="";
  712. },
  713. // exportData: function (event) {
  714. // var that=this;
  715. // var url = "/apiData/"+serverurl6;
  716. // if (vm.IsCollect==1)
  717. // url="/apiData/"+serverurl12;
  718. //
  719. // window.open (url);
  720. // },
  721. //选择标签
  722. selectTag:function(event){
  723. $('#myTags').tagit('createTag', event.currentTarget.innerText);
  724. },
  725. //加资料
  726. addInfomation: function(){
  727. $("#panelInfomation").css("display", "flex");
  728. $("#searchInformationInput").focus();
  729. },
  730. //加公式
  731. addLatex: function(){
  732. var that=this;
  733. $("#panelLatex").css("display", "flex");
  734. $.get('/apiData/'+serverurl31, function (data) {
  735. vm.LatexList = data.result;
  736. that.getLatexCategory({currentTarget:{dataset:{index:"0",name:"小学数学"}}});
  737. });
  738. },
  739. getLatexCategory:function(event){
  740. var that=this;
  741. var index=event.currentTarget.dataset.index;
  742. for(var i=0;i<vm.LatexMenu.length;i++)
  743. vm.LatexMenu[i].Selected=0;
  744. vm.LatexMenu[index].Selected=1;
  745. var name=event.currentTarget.dataset.name;
  746. vm.LatexSelected=[name.substr(2),name.substr(0,2)];
  747. setTimeout(function () {
  748. var lis=$(".textLaTeX2");
  749. lis.each(function(index,ele){
  750. var str=ele.title;
  751. str=str.replace("$$","");
  752. str=str.replace("$$","");
  753. var id=ele.id;
  754. that.renderLatex(id,str);
  755. });
  756. },500);
  757. },
  758. renderLatex:function(id,str){
  759. const obj = $("#"+id);
  760. if (obj.length > 0) {
  761. katex.render(
  762. str,
  763. $("#" + id)[0],{
  764. throwOnError: false,
  765. }
  766. );
  767. }
  768. else{
  769. console.log("对象无1");
  770. }
  771. },
  772. btnSelectLatex:function(event){
  773. var that=this;
  774. vm.txtLatexName=event.currentTarget.dataset.latexname;
  775. var str=event.currentTarget.dataset.latexcontent;
  776. str=str.replace("$$","");
  777. str=str.replace("$$","");
  778. if (currentLatexCursorPos>-1){
  779. var str1=vm.txtLatexContent.substr(0,currentLatexCursorPos);
  780. var str2=vm.txtLatexContent.substr(currentLatexCursorPos);
  781. vm.txtLatexContent=str1+str+str2;
  782. }
  783. else{
  784. vm.txtLatexContent+=str+" ";
  785. currentLatexCursorPos=vm.txtLatexContent.length;
  786. }
  787. vm.txtLatexFontSize=event.currentTarget.dataset.fontsize;
  788. that.renderLatex("divLatex9999",vm.txtLatexContent);
  789. },
  790. onLatexKeyup:function(event){
  791. this.renderLatex("divLatex9999",vm.txtLatexContent);
  792. },
  793. btnLatexOK:function(event){
  794. var str="[公式";
  795. if (vm.txtLatexName)
  796. str+=" N=\""+vm.txtLatexName+"\"";
  797. if (vm.txtLatexFontSize)
  798. str+=" FS=\""+vm.txtLatexFontSize+"\"";
  799. str+="]";
  800. str+=vm.txtLatexContent;
  801. str+="[/公式]";
  802. //console.log(str);
  803. if (!currentField)
  804. currentField="Field1";
  805. var val=$("#"+currentField).val();
  806. if (!val)
  807. val="";
  808. if (val=="")
  809. val=str;
  810. else if (currentField=="Field2")
  811. val+="\n\n"+str;
  812. else
  813. val+="\n"+str;
  814. $("#"+currentField).val(EncryptUrl(val));
  815. this.closeLatex();
  816. },
  817. //快捷符号按钮选择
  818. btnSymbolSelect:function(event){
  819. var btnName=event.currentTarget.id;
  820. if (btnName) {
  821. console.log(btnName);
  822. if (btnName=="symboledit"){
  823. var symbol=prompt("常用符号编辑(不要有空格):",vm.SymbolMain);
  824. if (symbol){
  825. var reg = new RegExp(" ", "g");
  826. //console.log(str);
  827. symbol=symbol.replace(reg, "");
  828. var obj={};
  829. obj.CommonSymbol=symbol;
  830. console.log("obj:" + obj);
  831. $.post('/apiData/'+serverurl10, obj, function (data) {
  832. showRemind("保存成功",4000);
  833. vm.SymbolMain=symbol;
  834. vm.SymbolShowAll=0;
  835. $(".btnSymbolMain").css("display","block");
  836. $(".btnSymbolList").css("display","none");
  837. });
  838. }
  839. }
  840. else if (btnName=="more"){
  841. vm.SymbolShowAll=1;
  842. $(".btnSymbolMain").css("display","none");
  843. $(".btnSymbolList").css("display","block");
  844. }
  845. else if (btnName == "packup") {
  846. vm.SymbolShowAll=0;
  847. $(".btnSymbolMain").css("display","block");
  848. $(".btnSymbolList").css("display","none");
  849. }
  850. else {
  851. var word=getSelectedWord();
  852. setInput(btnName);
  853. if (word){
  854. if (btnName=="[读]" || btnName=="[线]" || btnName=="[光]"){
  855. vm.SearchInformationInput=word;
  856. btnName="[/"+btnName.substr(1);
  857. currentCursorPos+=word.length;
  858. setInput(btnName);
  859. if (currentField=="Field1")
  860. currentField="Field2";
  861. else if (currentField=="Field2")
  862. currentField="Field3";
  863. }
  864. }
  865. }
  866. }
  867. },
  868. //保存题卡
  869. saveCard:function(event){
  870. if ($("#Field1").val() == "") {
  871. showRemind("第一段必填");
  872. }
  873. else {
  874. var selectCardType = $("#selectCardType").get(0).selectedIndex;
  875. if (selectCardType==2)
  876. selectCardType=-1;
  877. var maxUrgentCount=1000;
  878. if (vm.ID && vm.ID!=0)
  879. maxUrgentCount=1001;
  880. if ((vm.ListUrgentCount>=maxUrgentCount || vm.UrgentCount>=maxUrgentCount) && selectCardType==1){
  881. showRemind("紧急题卡不能过1000张");
  882. }
  883. else{
  884. $("#Field1").prop("disabled","disabled");
  885. $("#Field2").prop("disabled","disabled");
  886. $("#Field3").prop("disabled","disabled");
  887. $("#btnSaveCard").prop("disabled","disabled");
  888. var param = {};
  889. param.ID = vm.CurrentID;
  890. param.Field1 = DecryptUrl($("#Field1").val());
  891. param.Field2 = DecryptUrl($("#Field2").val());
  892. param.Field3 = DecryptUrl($("#Field3").val());
  893. if ($("#mySingleField").val()) {
  894. vm.Tags = $("#mySingleField").val();
  895. vm.Tags = vm.Tags.split(",");
  896. }
  897. param.Tags = vm.Tags;
  898. param.IsTodayStudy = 0;
  899. param.LimitTime = $("#LimitTime").text();
  900. param.CardType=selectCardType;
  901. var selectFolder = $("#selectFolder").val();
  902. param.FolderID=selectFolder;
  903. var IsCollect=$("#IsCollect")[0];
  904. if (IsCollect.checked)
  905. param.IsCollect = 1;
  906. else {
  907. param.IsCollect = 0;
  908. }
  909. param.VisitType = "vtqOSthN7vSwYmhc1gCjfw==";
  910. param.Type = "add";
  911. if (param.ID != 0)
  912. param.Type = "edit";
  913. //console.log("param:" + param);
  914. var url = "/apiData/"+serverurl2;
  915. $.post(url, param, function (data) {
  916. showRemind("保存成功",4000);
  917. if (vm.CurrentID==0){
  918. vm.getAdd();
  919. setTimeout(function(){
  920. vm.getList({currentTarget:{dataset:{title:"newFirst"}}});
  921. $("#Field1").prop("disabled","");
  922. $("#Field2").prop("disabled","");
  923. $("#Field3").prop("disabled","");
  924. $("#btnSaveCard").prop("disabled","");
  925. $("#selectFolder").val(param.FolderID);
  926. },3000);
  927. }
  928. else{
  929. for(var i=0;i<vm.ListMain.length;i++){
  930. if (vm.CurrentID==vm.ListMain[i].MiaoguoCardID){
  931. vm.ListMain[i].Content[0].Content=param.Tags.join(",");
  932. vm.ListMain[i].Content[1].Content=param.Field1;
  933. vm.ListMain[i].Content[2].Content=param.Field2;
  934. vm.ListMain[i].Content[3].Content=param.Field3;
  935. vm.ListMain[i].Title1=param.Field1.substr(0, 20);
  936. vm.ListMain[i].Title2=param.Field2.substr(0, 20);
  937. vm.ListMain[i].LimitTime=$("#LimitTime").text();
  938. vm.ListMain[i].UpdateTime=formatTime(new Date(),"-");
  939. vm.ListMain[i].IsTodayStudy=param.IsTodayStudy;
  940. vm.ListMain[i].IsCollect=param.IsCollect;
  941. vm.ListMain[i].CardType=param.CardType;
  942. vm.ListMain[i].FolderID=param.FolderID;
  943. break;
  944. }
  945. }
  946. vm.getItem({currentTarget:{dataset:{title:vm.CurrentID}}});
  947. $("#Field1").prop("disabled","");
  948. $("#Field2").prop("disabled","");
  949. $("#Field3").prop("disabled","");
  950. $("#btnSaveCard").prop("disabled","");
  951. }
  952. });
  953. }
  954. }
  955. },
  956. //上传图片
  957. referenceUpload: function (event) {
  958. var that=this;
  959. var count=0;
  960. for(var i=1;i<=3;i++) {
  961. var str = $("#Field" +i).val();
  962. if (str){
  963. while(str.indexOf("[/图]")>=0){
  964. count++;
  965. str=str.substr(str.indexOf("[/图]")+4);
  966. }
  967. }
  968. }
  969. if (count>=4){
  970. showRemind("只能上传四张图片!");
  971. }
  972. else {
  973. this.file = event.target.files[0];
  974. if (this.file.type.indexOf("jpeg") < 0 && this.file.type.indexOf("gif") < 0 && this.file.type.indexOf("png") < 0 && this.file.type.indexOf("jpg") < 0) {
  975. showRemind("图片格式不对!");
  976. }
  977. else if (this.file.size > 3145728) {
  978. showRemind("文件过大!");
  979. }
  980. else {
  981. let formdata = new FormData()
  982. formdata.append('file', this.file)
  983. formdata.append('submit', false);
  984. $.ajax({
  985. url: "/apiData/" + serverurl7,
  986. data: formdata,
  987. type: "POST",
  988. dataType: "json",
  989. cache: false, //上传文件无需缓存
  990. processData: false, //用于对data参数进行序列化处理 这里必须false
  991. contentType: false, //必须
  992. success: function (res) {
  993. if (res.errcode == 10000) {
  994. //console.log("上传完成!",res);
  995. if (!currentField) {
  996. currentField = "Field1";
  997. $("#" + currentField).val("");
  998. currentCursorPos = 0;
  999. vm.SearchInformationInput = "";
  1000. }
  1001. var imageName = "[图 w='' h='']#####4#####/" + res.result.Target + "[/图]";
  1002. setInput(imageName);
  1003. $("#fileUpload").val("");
  1004. }
  1005. else {
  1006. showRemind(res.errMsg);
  1007. }
  1008. },
  1009. });
  1010. }
  1011. }
  1012. },
  1013. changeList:function(event){
  1014. if ((vm.SelectCardCount+vm.ListAlready.length)>1000){
  1015. alert("一批只可处理1000张,当前选择"+vm.SelectCardCount+"张,已经在架子上"+vm.ListAlready.length+"张,请分批处理!");
  1016. }
  1017. else {
  1018. var selecttype = event.currentTarget.id;
  1019. var arrSelectType = selecttype.split("-");
  1020. var source = vm["List" + arrSelectType[0]];
  1021. var target = vm["List" + arrSelectType[1]];
  1022. var name = arrSelectType[1];
  1023. var selectCount = 0;
  1024. for (var i = source.length - 1; i >= 0; i--) {
  1025. var item = source[i];
  1026. if (item.Selected) {
  1027. selectCount++;
  1028. }
  1029. }
  1030. $(".ListItem1").css("background-color", "#ffffff");
  1031. for (var i = source.length - 1; i >= 0; i--) {
  1032. var item = source[i];
  1033. if (item.Selected) {
  1034. item.Selected = false;
  1035. target.unshift(item);
  1036. }
  1037. }
  1038. //去重
  1039. var newArr = [];
  1040. for (var i = 0; i < target.length; i++) {
  1041. var b = false;
  1042. for (var j = i + 1; j < target.length; j++) {
  1043. if (target[i].MiaoguoCardID == target[j].MiaoguoCardID) {
  1044. showRemind("有重复");
  1045. //console.log(target[i].Title1);
  1046. b = true;
  1047. }
  1048. }
  1049. if (!b) {
  1050. var item = JSON.stringify(target[i]);
  1051. newArr.push(JSON.parse(item));
  1052. }
  1053. }
  1054. target = newArr;
  1055. for (var i = 0; i < source.length; i++) {
  1056. $("#ACard" + arrSelectType[0] + i + " input").prop("checked", false);
  1057. source[i].Selected = false;
  1058. }
  1059. vm["List" + arrSelectType[0]] = source;
  1060. vm["List" + arrSelectType[1]] = target;
  1061. if (target.length > 0) {
  1062. $(".btnCanUse").prop("disabled", "");
  1063. }
  1064. else {
  1065. $(".btnCanUse").prop("disabled", "disabled");
  1066. }
  1067. if (vm.ToolSelect == "UpdateLimitTime")
  1068. vm.changeLimitTime();
  1069. vm.SelectCardCount=0;
  1070. getSelectedItemCount();
  1071. resizeFunction();
  1072. }
  1073. },
  1074. //全选所有的数据
  1075. checkAll:function(event){
  1076. var id=event.currentTarget.id;
  1077. var arrTemp=id.split("_");
  1078. var selected=arrTemp[1];
  1079. var selectedPart=false;
  1080. if (selected==1)
  1081. selected = true;
  1082. else if (selected==2){
  1083. selected = true;
  1084. selectedPart = true;
  1085. }
  1086. else if (selected==3){
  1087. selected = false;
  1088. selectedPart = true;
  1089. }
  1090. else
  1091. selected = false;
  1092. setSelect(vm["ListMain"],"Main",selected,selectedPart);
  1093. getSelectedItemCount();
  1094. function setSelect(list,name,isSelect,isSelectedPart){
  1095. var len=list.length;
  1096. var count=0;
  1097. for (var i = 0; i < len; i++) {
  1098. if (!selectedPart) {
  1099. list[i].Selected = isSelect;
  1100. }
  1101. else {
  1102. var obj=$("#ACard"+name + i + " input")[0].offsetParent;
  1103. var obj2=$("#mainlist")[0];
  1104. var pos1=obj.offsetTop-obj2.scrollTop;
  1105. console.log(obj.id+":"+(obj.offsetTop-obj2.scrollTop));
  1106. var pos2 = Number($(".main").css("height").toString().replace("px", ""));
  1107. console.log('pos2:'+pos2);
  1108. if (isSelect && pos1>0 && pos1<pos2 && count<=200){
  1109. list[i].Selected=isSelect;
  1110. }
  1111. else if (!isSelect && pos1>0 && pos1<pos2){
  1112. list[i].Selected=isSelect;
  1113. }
  1114. }
  1115. $("#ACard"+name + i + " input").prop("checked", list[i].Selected);
  1116. if (list[i].Selected)
  1117. count++;
  1118. }
  1119. vm.SelectCardCount=count;
  1120. if (isSelect){
  1121. count=vm.SelectCardCount+vm.ListAlready.length;
  1122. if (count<=1000)
  1123. showRemind("已选择 "+vm.SelectCardCount+" 条记录。");
  1124. else
  1125. showRemind("一批只可选1000张,当前选择"+vm.SelectCardCount+"张,已经在架子上"+vm.ListAlready.length+"张,请分批处理",8000);
  1126. }
  1127. }
  1128. },
  1129. //删除选择的题卡
  1130. deleteSelect:function(event){
  1131. var isDelete=confirm("您确认删除选择的 "+vm.ListAlready.length+" 张题卡吗?\n\n注:如果误删可以到回收站恢复。");
  1132. if (isDelete){
  1133. var url = "/apiData/"+serverurl4;
  1134. var param = {};
  1135. param.ID = getSelect(vm.ListAlready);
  1136. param.VisitType = "vtqOSthN7vSwYmhc1gCjfw==";
  1137. $.post(url, param, function (data) {
  1138. showRemind("删除批量成功!");
  1139. vm.ListAlready=[];
  1140. vm.getList({currentTarget:{dataset:{title:vm.MenuSelect}}});
  1141. });
  1142. }
  1143. },
  1144. //选择的题卡修改为新题卡
  1145. resetSelect:function(event){
  1146. var isReset=confirm("您确认选择的 "+vm.ListAlready.length+" 张题卡改为新题卡吗?\n\n注:本操作无法恢复。");
  1147. if (isReset){
  1148. var url = "/apiData/"+serverurl27;
  1149. var param = {};
  1150. param.List = getSelect(vm.ListAlready);
  1151. $.post(url, param, function (data) {
  1152. showRemind("改成新题卡成功!");
  1153. vm.ListAlready=[];
  1154. vm.getList({currentTarget:{dataset:{title:vm.MenuSelect}}});
  1155. });
  1156. }
  1157. },
  1158. //导出文件
  1159. exportFile:function(event){
  1160. var txtExport=$(".inputExport").val();
  1161. if (!txtExport || txtExport=="") {
  1162. alert("请先填写导出的文件名!");
  1163. $(".inputExport").focus();
  1164. }
  1165. else if (txtExport && !txtExport.match(/^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/)){
  1166. alert("导出的文件名只能是文字、字母、数字和下划线!");
  1167. $(".inputExport").focus();
  1168. }
  1169. else {
  1170. var url = "/apiData/"+serverurl23;
  1171. var param = {};
  1172. param.ID = getSelect(vm.ListAlready);
  1173. if (param.ID.length>30){
  1174. alert("导出的题卡数不能超过30!");
  1175. }
  1176. else{
  1177. param.Title = txtExport;
  1178. $.post(url, param, function (data) {
  1179. setTimeout(function () {
  1180. window.open(data);
  1181. showRemind("导出文件成功!");
  1182. },500);
  1183. $(".inputExport").val("");
  1184. $(".btnCanUse").prop("disabled", "disabled");
  1185. vm.ListAlready=[];
  1186. });
  1187. }
  1188. }
  1189. },
  1190. //导入数据
  1191. importFile:function(event){
  1192. this.file = event.target.files[0];
  1193. if (this.file.name.indexOf(".mg") < 0 || this.file.size > 1024) {
  1194. showRemind("文件格式不对!");
  1195. $("#importFile").val("");
  1196. }
  1197. else {
  1198. var isOK = confirm("导入数据将会生成一个同名的卡单,并放入归档题卡中。若要开始练习,请挑选题卡转入日常或紧急练习模式。确认吗?");
  1199. if (isOK){
  1200. let formdata = new FormData()
  1201. formdata.append('file', this.file)
  1202. formdata.append('submit', false);
  1203. $.ajax({
  1204. url: "/apiData/" + serverurl24,
  1205. data: formdata,
  1206. type: "POST",
  1207. dataType: "json",
  1208. cache: false, //上传文件无需缓存
  1209. processData: false, //用于对data参数进行序列化处理 这里必须false
  1210. contentType: false, //必须
  1211. success: function (res) {
  1212. if (res.errcode == 10000) {
  1213. showRemind("导入完成!");
  1214. $("#importFile").val("");
  1215. setTimeout(function(){
  1216. vm.getFolderList(function (folderID) {
  1217. setTimeout(function () {
  1218. vm.getList({currentTarget:{dataset:{title:"Folder"+folderID}}});
  1219. },1000);
  1220. });
  1221. },1000);
  1222. }
  1223. else {
  1224. showRemind(res.errMsg);
  1225. $("#importFile").val("");
  1226. }
  1227. },
  1228. });
  1229. }
  1230. else{
  1231. $("#importFile").val("");
  1232. }
  1233. }
  1234. },
  1235. //导出选择
  1236. exportSelect:function(){
  1237. var id=event.currentTarget.id;
  1238. var isShowAnswer=0;
  1239. if (id=="btnExportAnswer")
  1240. isShowAnswer=1;
  1241. else if (id=="btnExportQuestionAnswer")
  1242. isShowAnswer=2;
  1243. else if (id=="btnExportQuestionSpace")
  1244. isShowAnswer=3;
  1245. else if (id=="btnExportQuestionAnswer2")
  1246. isShowAnswer=4;
  1247. if (vm.ListAlready.length>0){
  1248. var id=[];
  1249. for(var i=0;i<vm.ListAlready.length;i++){
  1250. id.push(vm.ListAlready[i].MiaoguoCardID);
  1251. }
  1252. //console.log(id);
  1253. var url ="/apiData/"+serverurl14;
  1254. var param = {};
  1255. param.ID = id;
  1256. param.IsShowAnswer=isShowAnswer;
  1257. var win = window.open();
  1258. $.ajax({
  1259. url: url,
  1260. type: 'post',
  1261. data: param,
  1262. asyn: false
  1263. }).done(function(data) {
  1264. var doc = win.document;
  1265. doc.write(data);
  1266. doc.close();
  1267. });
  1268. }
  1269. else{
  1270. alert("您没有选择要导出的题卡。");
  1271. }
  1272. },
  1273. saveCardChangeStart:function(event){
  1274. tempCardType=event.currentTarget.dataset.cardtype;
  1275. if (tempCardType==1 && (vm.ListAlready.length+vm.UrgentCount)>1000){
  1276. var str="紧急练习模式题卡总数不能超过1000张。\n您当前已经有紧急练习题卡 "+vm.UrgentCount+" 张。";
  1277. if ((1000-vm.UrgentCount)>0){
  1278. str+="\n请在已选择题卡列表中选择至多 "+(1000-vm.UrgentCount)+" 张。";
  1279. }
  1280. else{
  1281. str+="\n您不能再往紧急练习模式中添加题卡。";
  1282. }
  1283. alert(str);
  1284. }
  1285. else {
  1286. //if ($.cookie('IsRemind')) {
  1287. this.saveCardChange(null, true);
  1288. //}
  1289. //else
  1290. // $(".container2").css("display", "inherit");
  1291. }
  1292. },
  1293. saveCardChange:function(e,noRemind) {
  1294. $(".container2").css("display", "none");
  1295. var param = {};
  1296. var isChange = true;
  1297. param.CardType=tempCardType;
  1298. if (noRemind) {
  1299. if (param.CardType==1)
  1300. isChange = confirm("保存之后,选择的题卡进入紧急练习模式,会被初始化为新题卡。\n您确认保存题卡为紧急练习模式吗?");
  1301. else if (param.CardType==-1)
  1302. isChange = confirm("您确认保存题卡为归档吗?");
  1303. else
  1304. isChange = confirm("您确认保存题卡为日常练习模式吗?");
  1305. }
  1306. if (isChange) {
  1307. param.List=getSelect(vm.ListAlready);
  1308. //console.log(JSON.stringify(param));
  1309. $.post('/apiData/' + serverurl13, param, function (data) {
  1310. showRemind("保存成功",4000);
  1311. vm.ListAlready=[];
  1312. vm.getList({currentTarget:{dataset:{title:vm.MenuSelect}}});
  1313. });
  1314. }
  1315. if ($("#checkIsRemind").prop("checked")) {
  1316. var Days = 90;
  1317. var exp = new Date();
  1318. exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
  1319. $.cookie('IsRemind', 1, {expires: exp.toGMTString()});
  1320. }
  1321. },
  1322. showContainer:function(event) {
  1323. var cType=event.currentTarget.dataset.containertype;
  1324. $(cType).css("display","inherit");
  1325. vm.FolderID=event.currentTarget.dataset.title;
  1326. },
  1327. closeContainer:function(event) {
  1328. var cType=event.currentTarget.dataset.containertype;
  1329. $(cType).css("display","none");
  1330. if (cType==".container3")
  1331. vm.changeToolSelect();
  1332. },
  1333. addFolder:function(event){
  1334. var that=this;
  1335. var name= $("#txtFolderName").val();
  1336. if (name){
  1337. var url = "/apiData/"+serverurl22;
  1338. var param = {};
  1339. param.Name = name;
  1340. $.post(url, param, function (data) {
  1341. showRemind("卡单新增成功");
  1342. vm.ListAlready=[];
  1343. that.getFolderList();
  1344. });
  1345. }
  1346. else{
  1347. alert("请输入卡单名称!");
  1348. }
  1349. },
  1350. updateFolder:function(){
  1351. var that=this;
  1352. var name= $("#txtFolderName").val();
  1353. if (name){
  1354. var url = "/apiData/"+serverurl22;
  1355. var param = {};
  1356. param.Name = name;
  1357. param.FolderID=vm.FolderID;
  1358. $.post(url, param, function (data) {
  1359. showRemind("卡单修改成功");
  1360. vm.ListAlready=[];
  1361. vm.FolderName=param.Name;
  1362. that.getFolderList();
  1363. that.closeContainer({currentTarget:{dataset:{containertype:".container2"}}});
  1364. });
  1365. }
  1366. else{
  1367. alert("请输入卡单名称!");
  1368. }
  1369. },
  1370. deleteFolder:function(){
  1371. var that=this;
  1372. var isChange = confirm("您确删除卡单【"+vm.FolderName+"】吗?");
  1373. if (isChange) {
  1374. var url = "/apiData/"+serverurl22;
  1375. var param = {};
  1376. param.FolderID=vm.FolderID;
  1377. param.Flag=-1;
  1378. $.post(url, param, function (data) {
  1379. showRemind("卡单删除成功");
  1380. vm.ListAlready=[];
  1381. vm.FolderName="";
  1382. that.getFolderList();
  1383. that.closeContainer({currentTarget:{dataset:{containertype:".container2"}}});
  1384. });
  1385. }
  1386. },
  1387. changeToolSelect:function(event) {
  1388. var that=this;
  1389. resizeFunction();
  1390. vm.IsShowCardInfo=0;
  1391. $(".btnNavigation").css("background-color","#ccc");
  1392. $(".btnNavigation").css("color","#1e1e1e");
  1393. if (event)
  1394. vm.ToolSelect=event.currentTarget.dataset.title;
  1395. else
  1396. vm.ToolSelect="Add";
  1397. $("#btnNavigation"+vm.ToolSelect).css("background-color","#999");
  1398. $("#btnNavigation"+vm.ToolSelect).css("color","#fff");
  1399. if (vm.ToolSelect=="PrintNewWord") {
  1400. vm.IsPrintNewWord = 1;
  1401. $.get('/apiData/'+serverurl28, function (data) {
  1402. vm.HanziBookList = data.result;
  1403. setTimeout(function () {
  1404. vm.getBookUnitWordList({currentTarget:{dataset:{title:13}}});
  1405. },500);
  1406. });
  1407. }
  1408. else if (vm.ToolSelect=="ExcelImport") {
  1409. that.showContainer({currentTarget:{dataset:{containertype:".container3"}}});
  1410. }
  1411. else {
  1412. vm.IsPrintNewWord = 0;
  1413. if (vm.IsRecycleBin==1){
  1414. vm.IsRecycleBin=0;
  1415. vm.MenuSelect="All";
  1416. vm.getList({currentTarget: {dataset: {title:vm.MenuSelect,type:"search"}}});
  1417. }
  1418. else{
  1419. setTimeout(function(){
  1420. if (vm.ListAlready.length>0){
  1421. $(".btnCanUse").prop("disabled", "");
  1422. }
  1423. else{
  1424. $(".btnCanUse").prop("disabled", "disabled");
  1425. }
  1426. if (vm.ToolSelect=="UpdateLimitTime" && $('#LimitTimeStart').length > 0) {
  1427. jeDate('#LimitTimeStart', {
  1428. minDate: formatTime(new Date(), "-", true),
  1429. isinitVal: true,
  1430. format: 'YYYY-MM-DD',
  1431. onClose: false,
  1432. donefun: function(obj){
  1433. //console.log(obj.val);
  1434. vm.changeLimitTime();
  1435. }
  1436. });
  1437. vm.changeLimitTime();
  1438. }
  1439. else if (vm.ToolSelect=="Add" && $('#LimitTime').length > 0) {
  1440. jeDate('#LimitTime', {
  1441. minDate: formatTime(new Date(), "-", true),
  1442. isinitVal: true,
  1443. format: 'YYYY-MM-DD',
  1444. onClose: false
  1445. });
  1446. $("#filterCardType").find("option").eq(0).prop("selected",true);
  1447. vm.getList({currentTarget:{dataset:{title:vm.MenuSelect}}});
  1448. }
  1449. that.getFolderList();
  1450. },500);
  1451. }
  1452. }
  1453. },
  1454. getBookUnitWordList:function(e){
  1455. var id=e.currentTarget.dataset.title;
  1456. var ismenu=e.currentTarget.dataset.ismenu;
  1457. $("#imgMain").css("display","block");
  1458. vm.setMenuColor("Book"+id);
  1459. for(var i=0;i<vm.HanziBookList.length;i++){
  1460. if (id==vm.HanziBookList[i].ID){
  1461. vm.BookTypeList=vm.HanziBookList[i].List;
  1462. if (ismenu) {
  1463. //setTimeout(function () {
  1464. $("input:radio[name='rdoPrintNewWord']:first").prop('checked',true);
  1465. //},100);
  1466. }
  1467. break;
  1468. }
  1469. }
  1470. var param={};
  1471. param.BookID=id;
  1472. $.post('/apiData/'+serverurl29, param,function (data) {
  1473. vm.BookUnitList = data.result;
  1474. $("#imgMain").css("display","none");
  1475. });
  1476. },
  1477. getFolderList:function(callback){
  1478. $("#imgMain").css("display","none");
  1479. $.get('/apiData/'+serverurl19, function (data) {
  1480. vm.FolderList = data.result;
  1481. if (callback && data.result.length>0) {
  1482. var id=0;
  1483. for(var i=0;i<data.result.length;i++){
  1484. if (id<data.result[i].ID)
  1485. id=data.result[i].ID;
  1486. }
  1487. callback(id);
  1488. }
  1489. });
  1490. },
  1491. //修改到期时间
  1492. changeLimitTime:function(){
  1493. var dateTime=$("#LimitTimeStart").text()+" 00:00:00";
  1494. var interval=0;
  1495. var intervalType=$("#selectIntervalType").val();
  1496. var interval1=$("#selectInterval1").val();
  1497. if (!interval1)
  1498. interval1=1;
  1499. var interval2=$("#selectInterval2").val();
  1500. if (!interval2)
  1501. interval2=2;
  1502. if (intervalType=="无间隔") {
  1503. interval = 0;
  1504. }
  1505. else if (intervalType=="一天几张") {
  1506. interval1=Number(interval1);
  1507. }
  1508. else if (intervalType=="几天一张") {
  1509. interval = Number(interval2);
  1510. }
  1511. vm.ShowLimitTimeType=intervalType;
  1512. console.log("interval:"+interval);
  1513. var selectCardLimitTimeOrderby=$("#selectCardLimitTimeOrderby").val();
  1514. var day= 0;
  1515. for(var i=0;i<vm.ListAlready.length;i++){
  1516. var index=i;
  1517. if (selectCardLimitTimeOrderby=="desc"){
  1518. index=vm.ListAlready.length-i-1;
  1519. }
  1520. if (intervalType=="一天几张") {
  1521. if(i==0)
  1522. day=-1;
  1523. if(((i)/interval1)==Math.floor((i)/interval1)){
  1524. day++;
  1525. }
  1526. vm.ListAlready[index].LimitTime=formatTime(addDate("d",day,new Date(dateTime)),"-",true);
  1527. }
  1528. else {
  1529. vm.ListAlready[index].LimitTime=formatTime(addDate("d",day,new Date(dateTime)),"-",true);
  1530. day += Number(interval);
  1531. }
  1532. //console.log(day);
  1533. }
  1534. },
  1535. deleteAlreadySelected:function(){
  1536. var id = event.currentTarget.dataset.title;
  1537. if (id=="all"){
  1538. vm.ListAlready=[];
  1539. }
  1540. else {
  1541. var list=vm.ListAlready;
  1542. for (var i = 0; i < list.length; i++) {
  1543. if (list[i].MiaoguoCardID == id) {
  1544. list.splice(i, 1);
  1545. break;
  1546. }
  1547. }
  1548. }
  1549. if (vm.ListAlready.length>0){
  1550. $(".btnCanUse").prop("disabled", "");
  1551. }
  1552. else{
  1553. $(".btnCanUse").prop("disabled", "disabled");
  1554. $(".btnCanUseUp").prop("disabled", "disabled");
  1555. $(".btnCanUseDown").prop("disabled", "disabled");
  1556. }
  1557. },
  1558. setLimitTime:function(){
  1559. var isChange = true;
  1560. var param={};
  1561. param.CardType = $("#selectCardType1").get(0).selectedIndex;
  1562. if (param.CardType==1 && (vm.ListAlready.length+vm.UrgentCount)>1000){
  1563. var str="紧急练习模式题卡总数不能超过1000张。\n您当前已经有紧急练习题卡 "+vm.UrgentCount+" 张。";
  1564. if ((1000-vm.UrgentCount)>0){
  1565. str+="\n请在已选择题卡列表中选择至多 "+(1000-vm.UrgentCount)+" 张。";
  1566. }
  1567. else{
  1568. str+="\n您不能再往紧急练习模式中添加题卡。";
  1569. }
  1570. alert(str);
  1571. }
  1572. else{
  1573. isChange = confirm("您确认将这些题卡延迟到指定时间练习吗?");
  1574. if (isChange) {
  1575. param.List = [];
  1576. param.LimitTimeList = [];
  1577. for (var i = 0; i < vm.ListAlready.length; i++) {
  1578. var item = vm.ListAlready[i];
  1579. param.List.push(item.MiaoguoCardID);
  1580. param.LimitTimeList.push(item.LimitTime);
  1581. }
  1582. //console.log(JSON.stringify(param));
  1583. $.post('/apiData/' + serverurl13, param, function (data) {
  1584. showRemind("保存成功",4000);
  1585. vm.ListAlready=[];
  1586. vm.getList({currentTarget:{dataset:{title:vm.MenuSelect}}});
  1587. });
  1588. }
  1589. }
  1590. },
  1591. //选中已经选择的题卡列表中的题卡
  1592. getItemAlready:function(){
  1593. vm.IsShowCardInfo=0;
  1594. var id = event.currentTarget.dataset.title;
  1595. for (var i = 0; i < vm.ListAlready.length; i++) {
  1596. if (id === vm.ListAlready[i].MiaoguoCardID) {
  1597. $("#ACardAlready" + i).css("background-color", "#eee");
  1598. vm.ListAlready[i].Selected=true;
  1599. $(".btnCanUseDown").prop("disabled", "");
  1600. $(".btnCanUseUp").prop("disabled", "");
  1601. if (i==0){
  1602. $(".btnCanUseUp").prop("disabled", "disabled");
  1603. }
  1604. else if (i==vm.ListAlready.length-1){
  1605. $(".btnCanUseDown").prop("disabled", "disabled");
  1606. }
  1607. }
  1608. else {
  1609. $("#ACardAlready" + i).css("background-color", "#fff");
  1610. vm.ListAlready[i].Selected=false;
  1611. }
  1612. }
  1613. },
  1614. //移动排序
  1615. moveOrder:function(){
  1616. var title = event.currentTarget.dataset.title;
  1617. for (var i = 0; i < vm.ListAlready.length; i++) {
  1618. if (vm.ListAlready[i].Selected) {
  1619. var a=1;
  1620. if (title=="up")
  1621. a=-1;
  1622. if (i+a>=0 && i+a<vm.ListAlready.length) {
  1623. var item=vm.ListAlready[i];
  1624. vm.ListAlready.splice(i,1);
  1625. $("#ACardAlready" + i).css("background-color", "#fff");
  1626. vm.ListAlready.splice(i + a, 0, item);
  1627. $("#ACardAlready" + (i + a)).css("background-color", "#eee");
  1628. }
  1629. vm.changeLimitTime();
  1630. break;
  1631. }
  1632. }
  1633. },
  1634. //检查紧急题卡是否过上限
  1635. checkUrgent:function(e){
  1636. var cardType=$("#selectCardType").get(0).selectedIndex;
  1637. if (cardType==0){
  1638. $("#divLimitTime").css("visibility","");
  1639. }
  1640. else if (cardType==1){
  1641. $("#divLimitTime").css("visibility","");
  1642. if (vm.UrgentCount>1000){
  1643. showRemind("紧急练习不能超过1000张!",3000);
  1644. $("#selectCardType").get(0).selectedIndex=0;
  1645. }
  1646. }
  1647. else if (cardType==2){
  1648. $("#divLimitTime").css("visibility","hidden");
  1649. }
  1650. },
  1651. downloadChrome:function(){
  1652. window.open("https://www.google.cn/intl/zh-CN/chrome/");
  1653. },
  1654. UpdateFolderList:function(event){
  1655. var that=this;
  1656. var id = event.currentTarget.dataset.title;
  1657. var url = "/apiData/"+serverurl20;
  1658. var param = {};
  1659. param.FolderID = id;
  1660. param.CardID = getSelect(vm.ListAlready);
  1661. $.post(url, param, function (data) {
  1662. showRemind("卡单更新成功");
  1663. vm.ListAlready=[];
  1664. that.getFolderList();
  1665. });
  1666. },
  1667. UpdateCollectList:function(event){
  1668. var that=this;
  1669. var id = event.currentTarget.title;
  1670. var url = "/apiData/"+serverurl21;
  1671. var param = {};
  1672. param.IsCollect = id;
  1673. param.CardID = getSelect(vm.ListAlready);
  1674. $.post(url, param, function (data) {
  1675. showRemind("星标更新成功");
  1676. vm.ListAlready=[];
  1677. });
  1678. },
  1679. ShowCardInfo:function(event){
  1680. vm.IsShowCardInfo=1;
  1681. var id=event.currentTarget.dataset.title;
  1682. vm.getItem({currentTarget:{dataset:{title:id,type:"showCardInfo"}}});
  1683. },
  1684. closeShowCardInfo:function(){
  1685. vm.IsShowCardInfo=0;
  1686. },
  1687. refresh:function(){
  1688. window.location.reload();
  1689. },
  1690. showLogout:function (event) {
  1691. $(".UserInfo").css("display","inherit");
  1692. event.cancelBubble = true;
  1693. //console.log(JSON.stringify(param));
  1694. $.get('/apiData/' + serverurl25, function (data) {
  1695. vm.UserFamily=data.result;
  1696. });
  1697. },
  1698. excelBuild:function (event) {
  1699. var arr= $("#txtExcelContent").val();
  1700. if (arr){
  1701. arr=arr.split("\n");
  1702. if (arr.length>200){
  1703. alert("一次导入不能超过1000张,请减少题卡数。");
  1704. }
  1705. else {
  1706. var result = [];
  1707. for (var i = 0; i < arr.length; i++) {
  1708. if (arr[i]) {
  1709. var item = arr[i].split("\t");
  1710. var obj = {};
  1711. obj.Question = item[0];
  1712. obj.Answer = "";
  1713. for (var j = 1; j < item.length; j++) {
  1714. if (j > 1 && item[j])
  1715. obj.Answer += "\n\n";
  1716. obj.Answer += item[j];
  1717. }
  1718. result.push(obj);
  1719. }
  1720. }
  1721. vm.ExcelCards = result;
  1722. $("#btnImportExcelData").attr("disabled",false);
  1723. }
  1724. }
  1725. },
  1726. selectSoundmark:function(event){
  1727. var id=event.currentTarget.id;
  1728. console.log(id);
  1729. if (id=="rdoSoundmark1") {
  1730. $("#txtSoundmark_发音_ENG_Soundmark_Eng_Select").text("英"+vm.InfomationResult.ENG.Soundmark.Eng);
  1731. $("#txtSoundmark_发音_ENG_Soundmark_AmE_Select").text("美"+vm.InfomationResult.ENG.Soundmark.AmE);
  1732. }
  1733. else {
  1734. $("#txtSoundmark_发音_ENG_Soundmark_Eng_Select").text("英式");
  1735. $("#txtSoundmark_发音_ENG_Soundmark_AmE_Select").text("美式");
  1736. }
  1737. },
  1738. excelTextareaFocus:function(event){
  1739. vm.ExcelCards = [];
  1740. $("#btnImportExcelData").attr("disabled",true);
  1741. },
  1742. importExcelData:function (event) {
  1743. var obj={};
  1744. obj.DataList=JSON.stringify(vm.ExcelCards);
  1745. $("#loading2").css("display","block");
  1746. $("#btnImportExcelData").attr("disabled",true);
  1747. $.post('/apiData/'+serverurl30, obj, function (data) {
  1748. showRemind("导入题卡到归档成功",4000);
  1749. $("#txtExcelContent").val("");
  1750. vm.ExcelCards=[];
  1751. $("#loading2").css("display","none");
  1752. setTimeout(function () {
  1753. vm.changeToolSelect();
  1754. vm.getFolderList();
  1755. },1000);
  1756. });
  1757. },
  1758. emptyExcelTxt:function (event) {
  1759. $("#txtExcelContent").val("");
  1760. this.excelTextareaFocus();
  1761. },
  1762. downloadExcelExample:function (event) {
  1763. window.open("https://miaguo-1253256735.file.myqcloud.com/web/_files/%E7%A7%92%E8%BF%87excel%E6%89%B9%E9%87%8F%E5%BB%BA%E5%8D%A1%E6%A8%A1%E6%9D%BF.xlsx");
  1764. },
  1765. goto:function (event) {
  1766. var url=event.currentTarget.dataset.url;
  1767. window.location.href=url;
  1768. },
  1769. logout:function () {
  1770. window.location.href="https://www.kylx365.com/";
  1771. $.get('/apiData/' + serverurl26, function () {});
  1772. }
  1773. }
  1774. });
  1775. function getSelect(source) {
  1776. var result = [];
  1777. for (var i = 0; i < source.length; i++) {
  1778. var item = source[i];
  1779. result.push(item.MiaoguoCardID);
  1780. }
  1781. return result;
  1782. }
  1783. scroll();
  1784. function scroll(){
  1785. $('#mainlist').mousewheel(function(event, delta) {
  1786. if (delta < 0) {
  1787. getMoreFunction();
  1788. }
  1789. return true;
  1790. });
  1791. $('#mainlist').scroll(function(event, delta) {
  1792. getMoreFunction();
  1793. });
  1794. }
  1795. function getMoreFunction(){
  1796. var obj=$("#btnMore");
  1797. var obj2=$("#mainlist");
  1798. if (obj && obj[0] && obj[0].offsetTop && obj2[0].scrollTop) {
  1799. var pos = (obj[0].offsetTop - obj2[0].scrollTop-100);
  1800. //console.log('pos:'+pos);
  1801. var pos2 = Number($(".main").css("height").toString().replace("px", ""));
  1802. //console.log('pos2:'+pos2);
  1803. if (pos < pos2) {
  1804. //console.log('$("#btnMore").text():'+$("#btnMore").text());
  1805. if ($("#btnMore").text() == "下拉显示更多") {
  1806. if (vm.IsRecycleBin==1)
  1807. vm.getDeleteList({currentTarget: {dataset: {page:"nextPage",title:vm.MenuSelect}}});
  1808. else
  1809. vm.getList({currentTarget: {dataset: {page:"nextPage",title:vm.MenuSelect,type:"search"}}});
  1810. }
  1811. }
  1812. }
  1813. }
  1814. function initInfomation(){
  1815. $(".panelSelect0").text("");
  1816. $(".panelItemFrame").css("background-color", "#fff");
  1817. $(".panelItemFrame").css("color", "#1e1e1e");
  1818. $(".panelSelect0").css("background-color", "#fff");
  1819. selectInformation=[];
  1820. }
  1821. $(".container").click(function () {
  1822. //console.log($(".UserInfo").css("display"));
  1823. if ($(".UserInfo").css("display")!="none")
  1824. $(".UserInfo").css("display","none");
  1825. });
  1826. $("#searchInformationInput").keydown(function(event){
  1827. if (event.keyCode == 13) {
  1828. vm.getInformationList();
  1829. }
  1830. });
  1831. $("#searchInput").keydown(function(event){
  1832. if (event.keyCode == 13) {
  1833. vm.getList({currentTarget: {dataset: {title:vm.MenuSelect,type:"search"}}});
  1834. }
  1835. });
  1836. $("#IsTodayStudy").change(function(event){
  1837. console.log(event.currentTarget.checked);
  1838. if (event.currentTarget.checked){
  1839. $(".today2").css("display","none");
  1840. }
  1841. else{
  1842. $(".today2").css("display","");
  1843. }
  1844. });
  1845. $(".textarea").focus(function () {
  1846. currentField = $(this).attr("id");
  1847. //console.log(currentField);
  1848. });
  1849. $(".textarea").blur(function () {
  1850. currentField = $(this).attr("id");
  1851. //console.log(currentField);
  1852. currentCursorPos = $(this).getCursorPosition();
  1853. //console.log(currentCursorPos);
  1854. vm.SearchInformationInput=getSelectedWord();
  1855. });
  1856. $("#txtLatexContent").blur(function () {
  1857. currentLatexCursorPos = $(this).getCursorPosition();
  1858. });
  1859. function getSelectedItemCount(){
  1860. var b=0;
  1861. for (var i = 0; i < vm.ListMain.length; i++) {
  1862. if ($("#ACardMain"+ i+" input").prop("checked")) {
  1863. b=1;
  1864. break;
  1865. }
  1866. }
  1867. if (b>0){
  1868. $("#Main-Already").prop("disabled","");
  1869. $("#Main-Already").css("background-color","#0071EF");
  1870. $("#Main-Already").css("color","#fff");
  1871. }
  1872. else{
  1873. $("#Main-Already").prop("disabled","disabled");
  1874. $("#Main-Already").css("background-color","#fff");
  1875. $("#Main-Already").css("color","-internal-light-dark-color(graytext, rgb(170, 170, 170))");
  1876. }
  1877. }
  1878. function getSelectedWord(){
  1879. var sText = "";
  1880. sText= document.selection == undefined ? document.getSelection().toString():document.selection.createRange().text;
  1881. if (sText != "") {
  1882. if (sText.length > 20)
  1883. sText = sText.substr(0, 20);
  1884. }
  1885. if (sText==""){
  1886. if (currentField){
  1887. var textBox=$("#" + currentField)[0];
  1888. if(textBox.selectionStart){
  1889. sText=textBox.value.substring(textBox.selectionStart,textBox.selectionEnd);
  1890. }
  1891. }
  1892. }
  1893. return sText;
  1894. }
  1895. $(".textarea").dblclick(function () {
  1896. vm.SearchInformationInput=getSelectedWord();
  1897. });
  1898. $(".textarea").keyup(function (event) {
  1899. currentCursorPos = $(this).getCursorPosition();
  1900. currentField = $(this).attr("id");
  1901. if (event.ctrlKey && event.shiftKey && event.altKey){
  1902. if (event.keyCode == 219) {
  1903. setInput("[光]");
  1904. }
  1905. else if (event.keyCode == 221) {
  1906. setInput("[/光]");
  1907. }
  1908. }
  1909. else if (event.ctrlKey && event.shiftKey){
  1910. if (event.keyCode == 219) {
  1911. setInput("[线]");
  1912. }
  1913. else if (event.keyCode == 221) {
  1914. setInput("[/线]");
  1915. }
  1916. }
  1917. else if (event.ctrlKey && event.altKey){
  1918. if (event.keyCode == 219) {
  1919. setInput("[读]");
  1920. }
  1921. else if (event.keyCode == 221) {
  1922. setInput("[/读]");
  1923. }
  1924. }
  1925. });
  1926. $(".textarea").on("dragenter",function (e) {
  1927. e.stopPropagation();
  1928. e.preventDefault();
  1929. });
  1930. $(".textarea").on("dragover",function (e) {
  1931. e.stopPropagation();
  1932. e.preventDefault();
  1933. });
  1934. $(".textarea").on("drop",function (e) {
  1935. //console.log(e);
  1936. currentField = e.currentTarget.id;
  1937. if(e.originalEvent.dataTransfer && e.originalEvent.dataTransfer.files.length) {
  1938. e.preventDefault();
  1939. e.stopPropagation();
  1940. vm.referenceUpload({target:{files:e.originalEvent.dataTransfer.files}});
  1941. }
  1942. });
  1943. $(".textarea").on("paste",function (e) {
  1944. let file = null;
  1945. const items = (e.originalEvent.clipboardData || window.clipboardData).items;
  1946. if (items && items.length) {
  1947. for (var i = 0; i < items.length; i++) {
  1948. if (items[i].type.indexOf('image') !== -1) {
  1949. file = items[i].getAsFile();
  1950. break;
  1951. }
  1952. }
  1953. }
  1954. if (file) {
  1955. //console.log(file);
  1956. var files=[];
  1957. files.push(file);
  1958. vm.referenceUpload({target:{files:files}});
  1959. }
  1960. });
  1961. //格式化列表
  1962. function formatList(list){
  1963. var result=[];
  1964. for (var i = 0; i < list.length; i++) {
  1965. list[i].Title1 = replaceString(list[i].Content[1].Content).substr(0, 19);
  1966. list[i].Title2 = replaceString(list[i].Content[2].Content).substr(0, 19);
  1967. var imageUrl = getImage(list[i].Content[1].Content);
  1968. if (imageUrl.length == 0 && list[i].Content[2].Content)
  1969. imageUrl = getImage(list[i].Content[2].Content);
  1970. if (imageUrl.length == 0 && list[i].Content[3].Content)
  1971. imageUrl = getImage(list[i].Content[3].Content);
  1972. if (imageUrl.length > 0) {
  1973. list[i].ImageUrlServer = imageUrl;
  1974. }
  1975. if (list[i].FirstTime < "1900-01-02")
  1976. list[i].CardCategory = "新题卡";
  1977. else
  1978. list[i].CardCategory = "旧题卡";
  1979. result.push(list[i]);
  1980. }
  1981. return result;
  1982. function getImage(str) {
  1983. var result = "";
  1984. if (str.indexOf("[图") >= 0) {
  1985. result = str.substring(str.indexOf("[图") + 3, str.indexOf("[/图]"));
  1986. result = result.substring(result.indexOf("]") + 1);
  1987. }
  1988. //console.log(result);
  1989. return result;
  1990. }
  1991. function replaceString(str) {
  1992. //str = str.replace(/\[图]/g, "");
  1993. //str = str.replace(/\[\/图\]/g, "");
  1994. var str2 = "";
  1995. if (str.indexOf("[读 src=") >= 0) {
  1996. str2 = str.substr(str.indexOf("[读 src="));
  1997. str2 = str2.substring(0, str2.indexOf("]") + 1);
  1998. }
  1999. str = str.replace(str2, "");
  2000. if (str.indexOf("[/读]") >= 0) {
  2001. str2 = str.substr(str.indexOf("[/读]"));
  2002. str2 = str2.substring(0, 4);
  2003. }
  2004. str = str.replace(str2, "");
  2005. if (str.indexOf("[读 src=") >= 0) {
  2006. str2 = str.substr(str.indexOf("[读 src="));
  2007. str2 = str2.substring(0, str2.indexOf("/读]") + 3);
  2008. }
  2009. str = str.replace(str2, "");
  2010. if (str.indexOf("[/读]") >= 0) {
  2011. str2 = str.substr(str.indexOf("[/读]"));
  2012. str2 = str2.substring(0, 4);
  2013. }
  2014. str = str.replace(str2, "");
  2015. str = str.replace(/\[读]/g, "");
  2016. str = str.replace(/\[\/读\]/g, "");
  2017. var str3 = "";
  2018. if (str.indexOf("[图") >= 0) {
  2019. str3 = str.substr(str.indexOf("[图"));
  2020. str3 = str3.substring(0, str3.indexOf("/图]") + 3);
  2021. }
  2022. str = str.replace(str3, "");
  2023. if (str.indexOf("[图") >= 0) {
  2024. str3 = str.substr(str.indexOf("[图"));
  2025. str3 = str3.substring(0, str3.indexOf("/图]") + 3);
  2026. }
  2027. str = str.replace(str3, "");
  2028. str = str.replace(/\[线]/g, "");
  2029. str = str.replace(/\[\/线\]/g, "");
  2030. if (str.indexOf("[特") >= 0) {
  2031. str2 = str.substr(str.indexOf("[特"));
  2032. str2 = str2.substring(0, str2.indexOf("]") + 1);
  2033. }
  2034. str = str.replace(str2, "");
  2035. if (str.indexOf("[/特") >= 0) {
  2036. str2 = str.substr(str.indexOf("[/特"));
  2037. str2 = str2.substring(0, 4);
  2038. }
  2039. str = str.replace(str2, "");
  2040. if (str.indexOf("[公式") >= 0) {
  2041. str2 = str.substr(str.indexOf("[公式"));
  2042. str2 = str2.substring(0, str2.indexOf("]") + 1);
  2043. }
  2044. str = str.replace(str2, "");
  2045. if (str.indexOf("[/公式") >= 0) {
  2046. str2 = str.substr(str.indexOf("[/公式"));
  2047. str2 = str2.substring(0, 5);
  2048. }
  2049. str = str.replace(str2, "");
  2050. str = EncryptUrl(str);
  2051. return str;
  2052. }
  2053. }
  2054. function setInput(content) {
  2055. if (!currentField)
  2056. currentField="Field1";
  2057. if (currentField) {
  2058. var str = $("#" + currentField).val();
  2059. var str1 = str.substring(0, currentCursorPos);
  2060. var str2 = str.substring(currentCursorPos);
  2061. //console.log(str1);
  2062. //console.log(str2);
  2063. var str3 = str1 + content + str2;
  2064. $("#" + currentField).val(str3);
  2065. currentCursorPos+=content.length;
  2066. $("#" + currentField).focus();
  2067. }
  2068. }
  2069. $('#myTags').tagit({
  2070. singleField: true,
  2071. singleFieldNode: $('#mySingleField'),
  2072. });
  2073. $(".CommonTagItemEdit").click(function(event) {
  2074. var tags=prompt("常用标签编辑(请用空格分隔):",vm.CommonTags.join(" "));
  2075. if (tags){
  2076. var obj={};
  2077. obj.CommonTags=tags;
  2078. console.log("obj:" + obj);
  2079. $.post('/apiData/'+serverurl10, obj, function (data) {
  2080. showRemind("保存成功",4000);
  2081. vm.CommonTags=tags.split(" ");
  2082. });
  2083. }
  2084. });
  2085. function showRemind(str,duration) {
  2086. if (!duration)
  2087. duration=3000;
  2088. $("#remind1").text(str);
  2089. $("#remind").css("display", "block");
  2090. $("#remind").fadeOut(duration);
  2091. setTimeout(function () {
  2092. $("#remind").css("display", "none");
  2093. }, duration);
  2094. }
  2095. function init(){
  2096. vm.getAdd();
  2097. vm.changeToolSelect();
  2098. vm.ListMain = [];
  2099. setTimeout(function () {
  2100. vm.getList({currentTarget: {dataset: {title:vm.MenuSelect,type:"search"}}});
  2101. setTimeout(function () {
  2102. vm.getAdd();
  2103. }, 1000);
  2104. }, 2000);
  2105. }
  2106. function changeStringToView(field) {
  2107. var result = {};
  2108. result.Field = [[]];
  2109. result.Images = [];
  2110. for (var j = 0; j < field.length; j++) {
  2111. if (j == 0) {
  2112. if (field[j].ContentType == 0 && field[j].Content && field[j].Content.length > 0) {
  2113. result.Tags = field[j].Content.toString().split(",");
  2114. }
  2115. else {
  2116. result.Tags = [];
  2117. }
  2118. }
  2119. else {
  2120. if (field[j].ContentType == j && field[j].Content && field[j].Content.length > 0) {
  2121. var arrResult = [], arrSoundMark = [];
  2122. var str = field[j].Content.toString();
  2123. str = DecryptUrl(str);
  2124. str = str.replace(/\[读/g, "\n[读");
  2125. str = str.replace(/\[图/g, "\n[图");
  2126. str = str.replace(/\[\/读\]/g, "[\/读]\n");
  2127. str = str.replace(/\[\/图\]/g, "[\/图]\n");
  2128. str = str.replace(/\n\n\n/g, "\n\n");
  2129. var arr = str.split("\n");
  2130. for (var k = 0; k < arr.length; k++) {
  2131. if (arr[k].indexOf("[图") >= 0 && arr[k].indexOf("[/图]") > 0) {
  2132. var obj = {};
  2133. obj.Type = "image";
  2134. if (arr[k].indexOf("[图") >= 0) {
  2135. obj.ContentServer = arr[k].substring(arr[k].indexOf("[图") + 3, arr[k].indexOf("[/图]"));
  2136. const w = 650;
  2137. if (obj.ContentServer.indexOf("w='") >= 0 && obj.ContentServer.indexOf("h='") >= 0) {
  2138. obj.Width = obj.ContentServer.substring(obj.ContentServer.indexOf("w='") + 3, obj.ContentServer.indexOf("h='") - 2);
  2139. obj.Height = obj.ContentServer.substring(obj.ContentServer.indexOf("h='") + 3, obj.ContentServer.indexOf("']"));
  2140. obj.Height = Math.round((w * Number(obj.Height)) / Number(obj.Width));
  2141. obj.Width = w;
  2142. }
  2143. else {
  2144. obj.Width = "";
  2145. obj.Height = "";
  2146. }
  2147. obj.ContentServer = obj.ContentServer.substring(obj.ContentServer.indexOf("]") + 1);
  2148. obj.Content = obj.ContentServer;
  2149. result.Images.push(obj.Content);
  2150. }
  2151. arrResult.push(obj);
  2152. }
  2153. else if (arr[k].indexOf("[特") >= 0 && arr[k].indexOf("[/特]") > 0) {
  2154. var obj = {};
  2155. obj.Type = "bigword";
  2156. var content = arr[k].substring(arr[k].indexOf("[特")+2,arr[k].indexOf("[/特]"));
  2157. obj.FontSize=108;
  2158. if (content.indexOf("FS")>0 && content.indexOf("FS")<5){
  2159. obj.FontSize=content.substring(content.indexOf("FS=")+4,content.indexOf("]")-1);
  2160. }
  2161. obj.FontSize=Number(obj.FontSize)/2;
  2162. content=content.substring(content.indexOf("]")+1);
  2163. //debugger;
  2164. obj.Content = content;
  2165. arrResult.push(obj);
  2166. }
  2167. else if (arr[k].indexOf("[公式") >= 0 && arr[k].indexOf("[/公式]") > 0) {
  2168. var obj = {};
  2169. obj.Type = "latex";
  2170. var content = arr[k].substring(arr[k].indexOf("[公式")+3,arr[k].indexOf("[/公式]"));
  2171. if (content.indexOf("N=")>=0){
  2172. obj.LatexName=content.substr(content.indexOf("N=")+3);
  2173. obj.LatexName= obj.LatexName.substring(0, obj.LatexName.indexOf("\""));
  2174. }
  2175. //debugger;
  2176. obj.FontSize=48;
  2177. if (content.indexOf("FS=")>=0){
  2178. obj.FontSize=content.substr(content.indexOf("FS=")+4);
  2179. obj.FontSize= obj.FontSize.substring(0, obj.FontSize.indexOf("\""));
  2180. }
  2181. obj.FontSize=Number(obj.FontSize)/2;
  2182. content = content.substring(content.indexOf("]")+1);
  2183. if (content.substr(0,2)!="$$")
  2184. obj.Content = "$$"+content+"$$";
  2185. else
  2186. obj.Content=content;
  2187. arrResult.push(obj);
  2188. }
  2189. else if ((arr[k].indexOf("[线]") >= 0 && arr[k].indexOf("[/线]") > 0) || (arr[k].indexOf("[光]") >= 0 && arr[k].indexOf("[/光]") > 0)) {
  2190. var obj;
  2191. var content = [], temp = arr[k];
  2192. do {
  2193. var num1 = temp.indexOf("[线]");
  2194. var num2 = temp.indexOf("[光]");
  2195. if (num1 >= 0 || num2 >= 0) {
  2196. if ((num1 < num2 && num1 >= 0 && num2 >= 0) || (num1 >= 0 && num2 < 0)) {
  2197. var temp1 = temp.substring(0, temp.indexOf("[线]"));
  2198. if (temp1) {
  2199. content.push({
  2200. key: "normal",
  2201. value: temp1,
  2202. });
  2203. }
  2204. else {
  2205. if (temp && temp.indexOf("[线]") < 0) {
  2206. content.push({
  2207. key: "normal",
  2208. value: temp,
  2209. });
  2210. temp = "";
  2211. }
  2212. }
  2213. }
  2214. else if ((num1 > num2 && num1 >= 0 && num2 >= 0) || (num1 < 0 && num2 >= 0)) {
  2215. var temp1 = temp.substring(0, temp.indexOf("[光]"));
  2216. if (temp1) {
  2217. content.push({
  2218. key: "normal",
  2219. value: temp1,
  2220. });
  2221. }
  2222. else {
  2223. if (temp && temp.indexOf("[光]") < 0) {
  2224. content.push({
  2225. key: "normal",
  2226. value: temp,
  2227. });
  2228. temp = "";
  2229. }
  2230. }
  2231. }
  2232. else{
  2233. content.push({
  2234. key: "normal",
  2235. value: temp,
  2236. });
  2237. temp = "";
  2238. }
  2239. }
  2240. else{
  2241. content.push({
  2242. key: "normal",
  2243. value: temp,
  2244. });
  2245. temp = "";
  2246. }
  2247. if (temp.length > 0 && ( num1>=0 || num2>=0 )){
  2248. if ((num1 < num2 && num1 >= 0 && num2 >= 0) || (num1>=0 && num2 < 0) ) {
  2249. temp = temp.substr(temp.indexOf("[线]") + 3);
  2250. temp1 = temp.substring(0, temp.indexOf("[/线]"));
  2251. if (temp1) {
  2252. content.push({
  2253. key: "line",
  2254. value: temp1,
  2255. });
  2256. }
  2257. temp = temp.substr(temp.indexOf("[/线]") + 4);
  2258. }
  2259. else if ((num1 > num2 && num1 >= 0 && num2 >= 0) || (num1 < 0 && num2>=0)) {
  2260. temp = temp.substr(temp.indexOf("[光]") + 3);
  2261. temp1 = temp.substring(0, temp.indexOf("[/光]"));
  2262. if (temp1) {
  2263. content.push({
  2264. key: "highlighter",
  2265. value: temp1,
  2266. });
  2267. }
  2268. temp = temp.substr(temp.indexOf("[/光]") + 4);
  2269. }
  2270. else
  2271. temp="";
  2272. }
  2273. else
  2274. temp="";
  2275. }
  2276. while (temp.length > 0);
  2277. for(var n=0;n<content.length;n++)
  2278. content[n].ChildID=n;
  2279. obj = {};
  2280. obj.Type = "line";
  2281. obj.Content = content;
  2282. arrResult.push(obj);
  2283. }
  2284. else if (arr[k].indexOf("[读") >= 0 && arr[k].indexOf("[/读]") > 0) {
  2285. var obj = {};
  2286. obj.Type = "sound";
  2287. if (arr[k].indexOf("[读]") >= 0) {
  2288. obj.Content = arr[k].substring(arr[k].indexOf("[读]") + 3, arr[k].indexOf("[/读]"));
  2289. }
  2290. else {
  2291. var tempIndex = arr[k].indexOf("\']") + 2;
  2292. obj.Content = arr[k].substring(tempIndex, arr[k].indexOf("[/读]"));
  2293. obj.SoundMark = arr[k].substring(arr[k].indexOf("src='") + 5, arr[k].indexOf("']"));;
  2294. }
  2295. arrResult.push(obj);
  2296. }
  2297. else if (arr[k].indexOf("[音") >= 0 && arr[k].indexOf("[/音]") > 0) {
  2298. var obj = {};
  2299. obj.Type = "recorder";
  2300. var tempIndex = arr[k].indexOf("\']") + 2;
  2301. //obj.Content = arr[k].substring(tempIndex, arr[k].indexOf("[/音]"));
  2302. obj.SoundMark = arr[k].substring(arr[k].indexOf("url='") + 5, arr[k].indexOf("']"));
  2303. arrResult.push(obj);
  2304. }
  2305. else if (arr[k].indexOf("[特") >= 0 && arr[k].indexOf("[/特]") > 0) {
  2306. var obj = {};
  2307. obj.Type = "bigword";
  2308. obj.Content = arr[k].substring(arr[k].indexOf("[特]")+3,arr[k].indexOf("[/特]"));
  2309. arrResult.push(obj);
  2310. }
  2311. else if (arr[k] != "") {
  2312. var obj = {};
  2313. obj.Type = "normal";
  2314. obj.Content = arr[k];
  2315. arrResult.push(obj);
  2316. }
  2317. else if (k > 0 && arr[k] == "") {
  2318. var obj = {};
  2319. obj.Type = "br";
  2320. obj.Content = "";
  2321. arrResult.push(obj);
  2322. }
  2323. var obj = {};
  2324. obj.Type = "return";
  2325. obj.Content="";
  2326. arrResult.push(obj);
  2327. }
  2328. //去掉前回车换行
  2329. // while (arrResult[0].Type == "return"
  2330. // || arrResult[0].Type == "br") {
  2331. // arrResult.shift();
  2332. // if (arrResult.length==0)
  2333. // break;
  2334. // }
  2335. //去掉后回车换行
  2336. for (var i = arrResult.length - 1; i >= 0; i--) {
  2337. if (arrResult[i].Type == "return"
  2338. || arrResult[i].Type == "br")
  2339. arrResult.pop();
  2340. else {
  2341. break;
  2342. }
  2343. }
  2344. for(var i=0;i<arrResult.length;i++){
  2345. arrResult[i].ID=i;
  2346. }
  2347. result.Field.push(arrResult);
  2348. }
  2349. else {
  2350. result.Field.push([]);
  2351. }
  2352. }
  2353. }
  2354. return result;
  2355. }
  2356. function getPinyinNormal(pinyin) {
  2357. var arr=[
  2358. ["ā","a",1],
  2359. ["á","a",2],
  2360. ["ǎ","a",3],
  2361. ["à","a",4],
  2362. ["ō","o",1],
  2363. ["ó","o",2],
  2364. ["ǒ","o",3],
  2365. ["ò","o",4],
  2366. ["ē","e",1],
  2367. ["é","e",2],
  2368. ["ě","e",3],
  2369. ["è","e",4],
  2370. ["ī","i",1],
  2371. ["í","i",2],
  2372. ["ǐ","i",3],
  2373. ["ì","i",4],
  2374. ["ū","u",1],
  2375. ["ú","u",2],
  2376. ["ǔ","u",3],
  2377. ["ù","u",4],
  2378. ["ǖ","v",1],
  2379. ["ǘ","v",2],
  2380. ["ǚ","v",3],
  2381. ["ǜ","v",4],
  2382. ["ü","v",5],
  2383. ];
  2384. for(var i=0;i<arr.length;i++){
  2385. if (pinyin.indexOf(arr[i][0])>=0){
  2386. pinyin=pinyin.replace(arr[i][0],arr[i][1]);
  2387. pinyin=pinyin+arr[i][2];
  2388. break;
  2389. }
  2390. }
  2391. if (pinyin.substr(pinyin.length-1,1)>5){
  2392. pinyin+="5";
  2393. }
  2394. return pinyin;
  2395. }
  2396. function EncryptUrl(str) {
  2397. if (str.constructor == Array) {
  2398. if (str.length > 0)
  2399. str = str.join(",");
  2400. else
  2401. str = "";
  2402. }
  2403. if (str) {
  2404. str = str.replace(/baidu.com/g, "#####1#####");
  2405. str = str.replace(/iciba.com/g, "#####2#####");
  2406. str = str.replace(/https:\/\/pinyin.kylx365.com\/sounds/g, "#####3#####");
  2407. str = str.replace(/https:\/\/pinyin-1253256735.file.myqcloud.com/g, "#####3#####");
  2408. str = str.replace(/https:\/\/miaguo-1253256735.file.myqcloud.com/g, "#####4#####");
  2409. }
  2410. if (str.substr(0, 1) == "\n")
  2411. str = str.substr(1);
  2412. return str;
  2413. }
  2414. function DecryptUrl(str) {
  2415. if (str.constructor == Array) {
  2416. if (str.length > 0)
  2417. str = str.join(",");
  2418. else
  2419. str = "";
  2420. }
  2421. if (str) {
  2422. str = str.replace(/#####1#####/g, "baidu.com");
  2423. str = str.replace(/#####2#####/g, "iciba.com");
  2424. str = str.replace(/#####3#####/g, "https://pinyin-1253256735.file.myqcloud.com");
  2425. str = str.replace(/#####4#####/g, "https://miaguo-1253256735.file.myqcloud.com");
  2426. }
  2427. return str;
  2428. }
  2429. function computerHeight(h){
  2430. var hMax=700,hInterval=50;
  2431. var h2= 0,t1=80,t2=80,t3=80;
  2432. if (h<hMax && h>=hMax-hInterval){
  2433. h2=80-(hMax-h);
  2434. t3=h2;
  2435. }
  2436. else if (h<hMax-hInterval && h>=hMax-2*hInterval){
  2437. h2=80-(hMax-h-50);
  2438. t2=h2;
  2439. t3=t3-hInterval;
  2440. }
  2441. else if (h<hMax-2*hInterval && h>=hMax-3*hInterval){
  2442. h2=80-(hMax-h-100);
  2443. t1=h2;
  2444. t2=t2-hInterval;
  2445. t3=t3-hInterval;
  2446. }
  2447. else if (h<hMax-3*hInterval){
  2448. t1=t1-hInterval;
  2449. t2=t2-hInterval;
  2450. t3=t3-hInterval;
  2451. }
  2452. $(".textarea1").css("height",t1);
  2453. $(".textarea2").css("height",t2);
  2454. $(".textarea3").css("height",t3);
  2455. //console.log("h2:"+h2);
  2456. }
  2457. function resizeFunction(){
  2458. var h = document.documentElement.clientHeight
  2459. || window.innerHeight
  2460. || document.body.clientHeight;
  2461. //console.log("window.innerHeight:"+window.innerHeight);
  2462. //console.log("document.documentElement.clientHeight:"+document.documentElement.clientHeight);
  2463. //console.log("document.body.clientHeight:"+document.body.clientHeight);
  2464. if (browser=="Safari"){
  2465. h=h+328;
  2466. }
  2467. $(".menu").css("height",h-20);
  2468. $(".main21").css("height",h-55);
  2469. computerHeight(h);
  2470. if (vm.ToolSelect!="Add")
  2471. $(".List").css("height",h-90);
  2472. else
  2473. $(".List").css("height",h-60);
  2474. $(".container2").css("height",h);
  2475. $(".container3").css("height",h);
  2476. $(".main4").css("height",h-80);
  2477. $(".main411").css("height",h-130);
  2478. $(".List2").css("height",h-156);
  2479. $(".main7").css("height",h-32);
  2480. $(".mainLatex0").css("height",h-102);
  2481. $(".List3").css("height",h-89);
  2482. $(".main0").css("top",$(".ListTop3").css("height"));
  2483. }
  2484. $(window).resize(function() {
  2485. resizeFunction();
  2486. });
  2487. init();
  2488. resizeFunction();
  2489. });