Same Style

采集同款信息

  1. // ==UserScript==
  2. // @name Same Style
  3. // @name:zh-CN Same Style
  4. // @namespace com.hct.operate
  5. // @icon https://lk-data-collection.oss-cn-qingdao.aliyuncs.com/winner/winnercoupang/Icon.png
  6. // @version 1.61
  7. // @description Taobao commodity information collection applied to Operate system
  8. // @description:zh-cn 采集同款信息
  9. // @author hansel
  10. // @include https://item.taobao.com/*
  11. // @grant GM_xmlhttpRequest
  12. // @require http://libs.baidu.com/jquery/2.1.4/jquery.min.js
  13. // ==/UserScript==
  14. var sclickUrl168 ="https://detail.1688.com/offer/";
  15. var alClickUrl = "https://item.taobao.com/item.htm?id=";
  16. var vvicUrl = "https://www.vvic.com/item/";
  17. var rs_url = "http://rs.hagoto.com:8090";
  18. var api_url = "http://120.27.60.38:8093//search/api";
  19. var main_image = '';
  20. var details_id = "";
  21. var platform_type = 'vvic';
  22. var sort_by = 'sort_zh';
  23. var price_arr = [];
  24. var avg = "";
  25. var bmid = "";
  26.  
  27. var vvic_list = [],
  28. vvic_origin_list = [],
  29. alibaba_list = [],
  30. alibaba_origin_list = [],
  31. tb_list = [],
  32. tb_origin_list = [];
  33.  
  34. (function() {
  35. 'use strict';
  36. var cur_url = document.location.href;
  37. initializePage();
  38. })();
  39. function initializePage(){
  40. var url = window.location.href;
  41. if(url.indexOf("details_id=")>0){
  42. var keydatas = url.split('details_id=');
  43. details_id = keydatas[1];
  44. }
  45. if(details_id == ""){
  46. return;
  47. }
  48. if(url.indexOf("bmid=")>0){
  49. var key_datas = url.split('bmid=');
  50. bmid = key_datas[1];
  51. }
  52.  
  53. var div = document.createElement("div");
  54. div.setAttribute("style", "width: 100%;height: 30px;position: fixed;left: 84%;bottom: 50%;height: 35px;line-height: 35px;color: #333;font-size: 14px;");
  55. var inner_html = '<p style="border: 1px solid #ccc;border-bottom: none;font-size: 13px;width: 275px;padding-left: 5px;margin:0">当前已选择 <span class="have_choose" style="color:red">0</span> 件商品</p><input type="text" value="价格平均值:00.00" readonly class="input_price"><button class="btn-confirm">回传系统</button>';
  56. div.innerHTML = inner_html;
  57. document.body.appendChild(div);
  58. $(".input_price").attr("style","display: inline-block;width: 200px;padding: 5px;border: 1px solid #ccc;font-size:14px;color: #222;font-weight: bold;");
  59. $(".btn-confirm").attr("style","border: none;width: 82px;height: 33px;color: #fff;background: #fb658a;cursor: pointer;");
  60.  
  61. //确认回传价格平均值
  62. $('.btn-confirm').on('click',function() {
  63.  
  64. if (avg == '') {
  65. alert('数据有误');return false;
  66. }
  67. var params = {"avg":avg,"avg_num":price_arr.length};
  68. GM_xmlhttpRequest({
  69. method: "POST",
  70. url: api_url +"callbackAvg?bmid="+bmid,
  71. dataType: "json",
  72. data: JSON.stringify(params),
  73. headers: {
  74. "Content-Type": "application/json"
  75. },
  76. onload: function(result) {
  77. if(result.readyState==4&&result.status==200){
  78. var dataJson = JSON.parse(result.response);
  79. console.log(dataJson);
  80. alert(dataJson.msg);
  81. }
  82. }
  83. })
  84.  
  85. });
  86.  
  87. var params = {"bestId":details_id};
  88. var getDetailsInfo = api_url+'/bestInfo';
  89. GM_xmlhttpRequest({
  90. method: "POST",
  91. url: getDetailsInfo,
  92. dataType: "json",
  93. data: JSON.stringify(params),
  94. headers: {
  95. "Content-Type": "application/json"
  96. },
  97. onload: function(response) {
  98. if(response.readyState==4&&response.status==200){
  99. var jsondata = JSON.parse(response.responseText);
  100. if(jsondata.code==500){
  101. alert(jsondata.msg);
  102. return;
  103. }
  104. main_image = jsondata.data.goodImg;
  105. var div = document.createElement("div");
  106. div.setAttribute("style", "position: relative;width: 1190px;margin: 0 auto;");
  107. var html_one = "<div class='item-content clearfix'>" +
  108. " <div style='width: 970px;margin-top: 20px;float:left'>" +
  109. " <div style='padding: 0 20px 0 440px;min-height: 450px;position: relative;width: 530px;'>" +
  110. " <div style='position: relative;width: 530px;color: #333;padding-bottom: 10px;'>" +
  111. " <strong style='font-size: 18px;font-weight: 400;margin-bottom: 10px;'>"+jsondata.data.goodName+"</strong>" +
  112. " </div>" +
  113. " <div style='padding: 15px 20px;background-color: #fbf1f0;font-size: 14px;position: relative;'>" +
  114. " <div style='line-height: 1.2;height:40px;display: block;color: #999;overflow: hidden;'>" +
  115. " <div style='float: left;line-height:35px;width: 74px;'>韩国网店价</div>" +
  116. " <div style='color: #ff4640;width: 370px;float: left;'>" +
  117. " <span style='float: left;'>" +
  118. " <strong style='font-style: normal;font-size: 24px;font-family: Arial;margin-right: 3px;'>₩</strong>" +
  119. " <strong style='font-size: 26px;font-weight: bold;'>"+jsondata.data.goodPrice+"</strong>" +
  120. " </span>" +
  121. " </div>" +
  122. " <div style='clear: both;'></div>" +
  123. " </div>" +
  124. " </div>" +
  125. " <div style='position: relative;width: 530px;padding: 2px 0;'>" +
  126. " <div style='position: relative;zoom: 1;line-height: 30px;margin: 10px 20px;'>" +
  127. " <div style='float: left;font-size:14px;color: #6c6c6c;width: 86px;'>推荐采购价格</div>" +
  128. " <div style='display: inline-block;color: #6c6c6c;'>"+jsondata.data.recommendPrice+"元</div>" +
  129. " <div style='clear: both;'></div>" +
  130. " </div>" +
  131. " </div>" +
  132.  
  133. " <div style='position: absolute;top: 0;left: 20px;width: 408px;height: 420px;padding-left: 0;'>" +
  134. " <div class='thumbnail' style='height: 420px;position: relative;overflow: hidden;'>" +
  135. " <div style='position: relative;width: 400px;height: 400px;z-index: 1;background-color: #f5f5f5;' class='tb-booth tb-pic tb-s400'>" +
  136. " <div class='tb-pic-main'>" +
  137. " <a href="+jsondata.data.goodUrl+" target='_blank'>" +
  138. " <img src="+jsondata.data.goodImg+" alt='' class='jqzoom' style='max-height: 400px;max-width: 400px;cursor: pointer;'>" +
  139. " </a>" +
  140. " </div>" +
  141. " </div>" +
  142. " </div>" +
  143. " </div>" +
  144. " </div>" +
  145. " </div>" +
  146. " </div>" +
  147. " <div id='main-con' style='position: relative;clear:both;margin-top:20px;margin-bottom: 30px;z-index: 1;background-color: #fff;'>" +
  148. " <div style='height: 44px;line-height: 44px;margin: 0 auto;padding: 0;position: relative;float: left;border: 1px solid #E5E5E5;background-color: #F6F6F6;width:100%'>" +
  149. " <ul id='J_TabBar' style='margin:0;padding:0'>" +
  150. " <li id='vvic' data-platform='vvic' style='color:red;text-align:center;width: 110px;padding: 0 10px;display: inline;float: left;font-size: 14px;height: 46px;line-height: 46px;border-right: 1px solid #E5E5E5;margin-top: -1px;cursor: pointer;' class='ul-li list selected'><a class='tb-tab-anchor' data-index='5'>VVIC</a></li>" +
  151. " <li id='ali' data-platform='1688' style='text-align:center;width: 110px;padding: 0 10px;display: inline;float: left;font-size: 14px;height: 46px;line-height: 46px;border-right: 1px solid #E5E5E5;margin-top: -1px;cursor: pointer;' class='ul-li list'><a class='tb-tab-anchor' data-index='2'>1688</a></li>" +
  152. " <li id='tb' data-platform='tb' style='text-align:center;width: 110px;padding: 0 10px;display: inline;float: left;font-size: 14px;height: 46px;line-height: 46px;border-right: 1px solid #E5E5E5;margin-top: -1px;cursor: pointer;' class='ul-li list'><a class='tb-tab-anchor' data-index='1'>淘宝</a></li>" +
  153. " <li id='sort_price' style='text-align:center;width: 70px;padding: 0 10px;display: inline;float: right;font-size: 14px;height: 46px;line-height: 46px;border-right: 1px solid #E5E5E5;margin-top: -1px;cursor: pointer;' class='ul-li sort'><a class='tb-tab-anchor'>价格排序</a></li>" +
  154. " <li id='sort_sale' style='text-align:center;width: 70px;padding: 0 10px;display: inline;float: right;font-size: 14px;height: 46px;line-height: 46px;border-right: 1px solid #E5E5E5;margin-top: -1px;cursor: pointer;' class='ul-li sort'><a class='tb-tab-anchor'>销量排序</a></li>" +
  155. " <li id='sort_zh' style='text-align:center;width: 70px;padding: 0 10px;display: inline;float: right;font-size: 14px;height: 46px;line-height: 46px;border-right: 1px solid #E5E5E5;margin-top: -1px;cursor: pointer;color:blue' class='ul-li sort'><a class='tb-tab-anchor' >综合排序</a></li>" +
  156. " </ul>" +
  157. " </div>" +
  158. " <div class='tab-content' style='clear:both;'>" +
  159. " <div id='vvic_content' class='result_content' style='border: 1px solid #ccc;border-top: none;'>" +
  160. " <table id='vvic_table' class='pt_table' style='border-collapse:collapse'></table>" +
  161. " </div>" +
  162. " <div id='ali_content' class='result_content' style='display: none;border: 1px solid #ccc;border-top: none;'>" +
  163. " <table id='ali_table' class='pt_table' style='border-collapse:collapse'></table>" +
  164. " </div>" +
  165. " <div id='tb_content' class='result_content' style='display: none;border: 1px solid #ccc;border-top: none;'>" +
  166. " <table id='tb_table' class='pt_table' style='border-collapse:collapse'></table>" +
  167. " </div>" +
  168. " </div> " +
  169. " </div>";
  170. div.innerHTML = html_one;
  171. document.body.appendChild(div);
  172.  
  173. $('#J_TabBar li').on('click', function (e) {
  174. if ($(this).hasClass('list')) {
  175. $(".result_content").css("display","none");
  176. $('#J_TabBar li.list').css("color","#333");
  177. $(this).css("color","red");
  178. platform_type = $(this).attr('data-platform');
  179. if(e.currentTarget.id!=null&&e.currentTarget.id!=""){
  180. $("#"+e.currentTarget.id+"_content").css("display","block");
  181. }
  182. }
  183. $('#J_TabBar li.sort').css("color","#333");
  184. $("#sort_zh").css("color","blue");
  185. });
  186.  
  187. //价格排序
  188. $('#sort_price').on('click',function () {
  189. console.log(platform_type + '价格排序');
  190. $('#J_TabBar li.sort').css("color","#333");
  191. $(this).css("color","blue");
  192. if (platform_type == 'vvic') {
  193. showVvicList('price');
  194. }
  195. if (platform_type == '1688') {
  196. show1688List('price');
  197. }
  198. if (platform_type == 'tb') {
  199. showTbList('price');
  200. }
  201. })
  202. //销量排序
  203. $('#sort_sale').on('click',function () {
  204. console.log(platform_type+'销量排序');
  205. $('#J_TabBar li.sort').css("color","#333");
  206. $(this).css("color","blue");
  207. if (platform_type == 'vvic') {
  208. showVvicList('sale');
  209. }
  210. if (platform_type == '1688') {
  211. show1688List('sale');
  212. }
  213. if (platform_type == 'tb') {
  214. showTbList('sale');
  215. }
  216. })
  217. //综合排序
  218. $('#sort_zh').on('click',function () {
  219. console.log(platform_type+'综合排序');
  220. $('#J_TabBar li.sort').css("color","#333");
  221. $(this).css("color","blue");
  222. if (platform_type == 'vvic') {
  223. showVvicList('zh');
  224. }
  225. if (platform_type == '1688') {
  226. show1688List('zh');
  227. }
  228. if (platform_type == 'tb') {
  229. showTbList('zh');
  230. }
  231. });
  232. getVvicList(main_image);
  233. get1688List(main_image);
  234. // getTaobaoiList(main_image);
  235. }
  236. }
  237. });
  238.  
  239. }
  240.  
  241. //采集
  242. function collectData(params,obj){
  243. GM_xmlhttpRequest({
  244. method: "POST",
  245. url: api_url +"/grabGood/"+details_id,
  246. dataType: "json",
  247. data: params,
  248. headers: {
  249. "Content-Type": "application/json"
  250. },
  251. onload: function(result) {
  252. if(result.readyState==4&&result.status==200){
  253. var dataJson = JSON.parse(result.response);
  254. console.log(dataJson);
  255. if (dataJson.status == 1) {
  256. $(obj.currentTarget).attr("value","已选用");
  257. }
  258. alert(dataJson.msg);
  259. }
  260. }
  261. })
  262.  
  263. }
  264. function getSupplierInfo(params,obj){
  265. GM_xmlhttpRequest({
  266. method: "POST",
  267. url: api_url +"getSupplierInfo?details_id="+details_id,
  268. dataType: "json",
  269. data: params,
  270. headers: {
  271. "Content-Type": "application/json"
  272. },
  273. onload: function(result) {
  274. if(result.readyState==4&&result.status==200){
  275. var dataJson = JSON.parse(result.response);
  276. console.log(dataJson);
  277. if (dataJson.status == 1) {
  278. $(obj.currentTarget).attr("value","已获取");
  279. }
  280. alert(dataJson.msg);
  281. }
  282. }
  283. })
  284. }
  285.  
  286. //淘宝
  287. function getTaobaoiList(zhuImgUrl) {
  288. GM_xmlhttpRequest({
  289. method: "POST",
  290. url: "https://s.taobao.com/search?app=imgsearch&tfsid=" + encodeURI(zhuImgUrl),
  291. dataType: "json",
  292. headers: {
  293. "Content-Type": "application/json"
  294. },
  295. onload: function(result) {
  296. if(result.readyState==4&&result.status==200){
  297. if (result.responseText != null) {
  298. try {
  299. var beginCut = result.responseText.indexOf("g_page_config =");
  300. if (beginCut > 0) {
  301. var cutBeginStr = result.responseText.substring(beginCut + 15);
  302. var endCut = cutBeginStr.indexOf("};");
  303. var similarListStr = cutBeginStr.substring(0, endCut + 1).trim();
  304. var similarJson = JSON.parse(similarListStr);
  305. if(similarJson.mods.itemlist.data.collections!=null&&similarJson.mods.itemlist.data.collections.length>0){
  306. var similarList = similarJson.mods.itemlist.data.collections[0].auctions;
  307. if (similarList.length > 0) {
  308. tb_list = similarJson.mods.itemlist.data.collections[0].auctions;
  309. tb_origin_list = similarJson.mods.itemlist.data.collections[0].auctions;
  310. showTbList();
  311. } else {
  312. $("#tb_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  313. }
  314. }else {
  315. $("#tb_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  316. }
  317. } else if (result.responseText.indexOf("/verify/") > 0) {
  318. $("#tb_table").html('<tr><td class="lxSimilarImage" colspan="3" align="center"><a target="_blank" rel="norefferrer" href="' + result.finalUrl + '">点此验证后,刷新本页面重新加载</a></td></tr>');
  319. } else {
  320. $("#tb_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  321. }
  322. } catch (err) {
  323. console.log(err);
  324. }
  325. } else {
  326. $("#tb_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  327. }
  328. }
  329. }
  330. });
  331. }
  332.  
  333. function showTbList(sort_by) {
  334. var similarHtml="";
  335. var similarList = tb_list;
  336. if (sort_by == 'sale') {
  337. similarList = similarList.sort(sortTBSaleNum);
  338. }else if (sort_by == 'price') {
  339. similarList = similarList.sort(sortTBPrice);
  340. } else {
  341. similarList = tb_origin_list;
  342. }
  343. for (var i = 0; i < similarList.length; i++) {
  344. var thisBean = similarList[i];
  345.  
  346. var goodsSource = "淘宝网";
  347. if (thisBean.detail_url.indexOf("detail.tmall.com/") > -1) {
  348. goodsSource = "天猫商城";
  349. }
  350. var datajson = {"goodsId":thisBean.nid,"goodsImg":thisBean.pic_url,"goodsName":thisBean.title,"goodsPrice":thisBean.view_price,"goodsSource":goodsSource,"goodsUrl":alClickUrl + thisBean.nid,"promoPrice":thisBean.view_price,"saleNum":thisBean.view_sales,"shopName":thisBean.nick};
  351. var datastr = JSON.stringify(datajson);
  352. var trItemSame = '<tr class="tr_'+i+'"><td width="14%" rowspan="2" class="lxSimilarImage"><a target="_blank" href="' + alClickUrl + thisBean.nid +'"> '+
  353. '<img src="' + thisBean.pic_url + '" style="width:100px;height:100px;" /></a></td><td width="45%" class="lxSimilarTitle"><a target="_blank" href="' +
  354. alClickUrl + thisBean.nid +'">' + thisBean.title + '</a></td><td width="15%" class="lxSimilarSale">' + thisBean.view_sales +
  355. '</td><td width="16%" class="lxSimilarPrice">¥' + thisBean.view_price + '</td></tr><tr class="tr_'+i+'"><td class="lxSimilarShop">' + thisBean.nick +
  356. '</td><td class="lxSimilarLocation">' + thisBean.item_loc + '</td><td><input type="button" value="选用" class="cjtb_btn" data=\''+datastr+'\'/></td></tr></div>';
  357. similarHtml += trItemSame;
  358. }
  359. $("#tb_table").html(similarHtml);
  360. $(".lxSimilarImage").attr("style","padding-top: 5px;padding-left: 5px;");
  361. $(".lxSimilarTitle").attr("style","padding-left: 5px;");
  362. $(".lxSimilarTitle a").attr("style","color:#36c;text-decoration:none;font-size:14px");
  363. $(".lxSimilarPrice").attr("style","font-size:18px;");
  364. $(".lxSimilarShop").attr("style","padding-left: 5px;");
  365. $('.cjtb_btn').on('click', function (e) {
  366. var datastr = $(e.currentTarget).attr("data");
  367. $(e.currentTarget).attr("disabled","disabled");
  368. $(e.currentTarget).css("background-color","rgb(133, 159, 179)");
  369. collectData(datastr,e);
  370. });
  371. $(".cjtb_btn").attr("style","width: 70px;height: 32px;line-height: 32px;color: #fff;background-color: #1E9FFF;text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  372. $('.cjtb_btn').on('mouseover', function (e) {
  373. $(e.currentTarget).css("background-color","#48a9f5");
  374. });
  375. $('.cjtb_btn').on('mouseout', function (e) {
  376. $(e.currentTarget).css("background-color","#1E9FFF");
  377. });
  378. $('tr').on('mouseover', function (e) {
  379. var name = $(e.currentTarget).attr("class");
  380. $("."+name).css("background-color","#ddd");
  381. });
  382. $('tr').on('mouseout', function (e) {
  383. var name = $(e.currentTarget).attr("class");
  384. $("."+name).css("background-color","#fff");
  385. });
  386. }
  387.  
  388. function sortTBPrice(a,b){
  389. var a_price = a.view_price;
  390. var b_price = b.view_price;
  391. if(a_price!=null&&b_price!=null)
  392. {
  393. return parseFloat(a_price)-parseFloat(b_price);
  394. }
  395. return 0;
  396. }
  397.  
  398. function sortTBSaleNum(a,b){
  399. var a_sale = a.view_sales;
  400. var b_sale = b.view_sales;
  401. if(a_sale!=null&&b_sale!=null)
  402. {
  403. return parseFloat(b_sale)-parseFloat(a_sale);
  404. }
  405. return 0;
  406. }
  407.  
  408. //1688
  409. function get1688List(zhuImgUrl) {
  410. var currentTime = new Date().getTime();
  411. var appkey = window.btoa("pc_tusou;" + currentTime);
  412. GM_xmlhttpRequest({
  413. method: "POST",
  414. url: "https://open-s.1688.com/openservice/imageSearchOfferResultViewService?imageAddress=" + encodeURI(zhuImgUrl) + "&imageType=https://g-search2.alicdn.com&pageSize=40&beginPage=1&appName=pc_tusou&appKey=" + appkey,
  415. dataType: "json",
  416. headers: {
  417. "Content-Type": "application/json"
  418. },
  419. onload: function(result) {
  420. if(result.readyState==4&&result.status==200){
  421. try {
  422. var list_1688 = JSON.parse(result.response).data.offerList;
  423. if (list_1688.length > 0) {
  424. alibaba_list = JSON.parse(result.response).data.offerList;
  425. alibaba_origin_list = JSON.parse(result.response).data.offerList;
  426. show1688List();
  427. } else {
  428. $("#ali_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  429. }
  430. } catch (err) {
  431. console.log(err);
  432. $("#ali_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  433. }
  434. }
  435. }
  436. });
  437. }
  438.  
  439. function show1688List(sort_by) {
  440. var similarList1688 = alibaba_list;
  441. if (sort_by == 'sale') {
  442. similarList1688 = similarList1688.sort(sortSaleNum);
  443. }else if (sort_by == 'price') {
  444. similarList1688 = similarList1688.sort(sortPrice);
  445. } else {
  446. similarList1688 = alibaba_origin_list;
  447. }
  448. var similarHtml = "";
  449. for (var i = 0; i < similarList1688.length; i++) {
  450. var thisBean = similarList1688[i];
  451. var datajson = {"goodsId":thisBean.id,"goodsImg":thisBean.image.imgUrl,"goodsName":thisBean.information.subject,"goodsPrice":thisBean.tradePrice.offerPrice.valueString,"goodsSource":"1688","goodsUrl":sclickUrl168 + thisBean.id+".html","promoPrice":thisBean.tradePrice.offerPrice.valueString,"saleNum":thisBean.tradeQuantity.number,"shopName":thisBean.aliTalk.loginId};
  452. var datastr = JSON.stringify(datajson);
  453. var itemId = thisBean.id;
  454. var imageUrl = thisBean.image.imgUrlOf100x100;
  455. var title = thisBean.information.subject;
  456. var tradeNumber = thisBean.tradeQuantity.number;
  457. var price = "¥" + thisBean.tradePrice.offerPrice.valueString;
  458. if (thisBean.tradePrice.offerPrice.valueString == undefined) {
  459. thisBean.tradePrice.offerPrice.valueString = "999546548.99";
  460. price = "授权可见";
  461. }
  462. var trItemSame = '<tr class="tr_'+i+'"><td width="14%" rowspan="2" class="lxSimilarImage"><a target="_blank" href="' + sclickUrl168 + itemId + '.html"><img src="' +
  463. imageUrl + '" style="width:100px;height:100px;"/></a></td><td width="50%" class="lxSimilarTitle"><a target="_blank" href="' +
  464. sclickUrl168 + itemId + '.html">' + title + '</a></td><td width="25%" class="lxSimilarSale">成交' + tradeNumber + '笔</td><td width="16%" class="lxSimilarPrice">' +
  465. price + '</td></tr><tr class="tr_'+i+'"><td class="lxSimilarShop">' + thisBean.aliTalk.loginId + '</td><td class="lxSimilarLocation">' +
  466. thisBean.company.city + '</td><td align="center"><input type="button" value="选用" class="cj1688_btn" data=\''+datastr+'\'/><input type="button" value="价格比对" data-price="'+price+'" data-itemid="'+itemId+'" class="price_compare_1688" /></td></tr>';
  467.  
  468. for (var j = 0; j < price_arr.length; j++) {
  469. if (price_arr[j].itemid == itemId) {
  470. trItemSame = '<tr class="tr_'+i+'"><td width="14%" rowspan="2" class="lxSimilarImage"><a target="_blank" href="' + sclickUrl168 + itemId + '.html"><img src="' +
  471. imageUrl + '" style="width:100px;height:100px;"/></a></td><td width="50%" class="lxSimilarTitle"><a target="_blank" href="' +
  472. sclickUrl168 + itemId + '.html">' + title + '</a></td><td width="25%" class="lxSimilarSale">成交' + tradeNumber + '笔</td><td width="16%" class="lxSimilarPrice">' +
  473. price + '</td></tr><tr class="tr_'+i+'"><td class="lxSimilarShop">' + thisBean.aliTalk.loginId + '</td><td class="lxSimilarLocation">' +
  474. thisBean.company.city + '</td><td align="center"><input type="button" value="选用" class="cj1688_btn" data=\''+datastr+'\'/><input type="button" value="取消比对" data-price="'+price+'" data-itemid="'+itemId+'" class="price_compare_1688 has" /></td></tr>';
  475. }
  476. }
  477. similarHtml += trItemSame;
  478. }
  479. $("#ali_table").html(similarHtml);
  480. $(".lxSimilarImage").attr("style","padding-top: 5px;padding-left: 5px;");
  481. $(".lxSimilarTitle").attr("style","padding-left: 5px;");
  482. $(".lxSimilarTitle a").attr("style","color:#36c;text-decoration:none;font-size:14px");
  483. $(".lxSimilarPrice").attr("style","font-size:18px;");
  484. $(".lxSimilarShop").attr("style","padding-left: 5px;");
  485. //采集
  486. $('.cj1688_btn').on('click', function (e) {
  487. var datastr = $(e.currentTarget).attr("data");
  488. $(e.currentTarget).attr("disabled","disabled");
  489. $(e.currentTarget).css("background-color","rgb(133, 159, 179)");
  490. collectData(datastr,e);
  491. });
  492. //加入比对
  493. $('.price_compare_1688').on('click',function() {
  494. var get_itemid = $(this).attr('data-itemid');
  495. if ($(this).hasClass('has')) {
  496. for (var i = 0; i < price_arr.length; i++) {
  497. if (price_arr[i].itemid == get_itemid) {
  498. price_arr.splice(i, 1);
  499. }
  500. }
  501. $(this).css('background','rgb(30, 159, 255)');
  502. $(this).val('价格比对');
  503. $(this).removeClass('has');
  504. } else {
  505. $(this).css('background','rgb(177, 94, 46)');
  506. $(this).val('取消比对');
  507. $(this).addClass('has');
  508. var get_price = $(this).attr('data-price');
  509. get_price = get_price.trim();
  510. var price_temp = get_price.split("¥");
  511. var this_price = parseFloat(price_temp[1]);
  512. var temp = {};
  513. temp.itemid = get_itemid;
  514. temp.price = this_price;
  515. price_arr.push(temp);
  516. }
  517. console.log(price_arr);
  518. avg = getAvg();
  519. console.log(avg);
  520. var length = price_arr.length;
  521. $(".have_choose").text(length);
  522. $(".input_price").attr("value","价格平均值:"+avg);
  523. });
  524. $(".cj1688_btn").attr("style","width: 70px;height: 32px;line-height: 32px;color: #fff;background-color: #1E9FFF;text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  525. $(".price_compare_1688").attr("style","width: 90px;position: absolute;margin-left: 35px;height: 32px;line-height: 32px;color: #fff;background-color: #1E9FFF;text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  526. $(".price_compare_1688.has").attr("style","width: 90px;position: absolute;margin-left: 35px;height: 32px;line-height: 32px;color: #fff;background-color: rgb(177, 94, 46);text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  527. $('.cj1688_btn').on('mouseover', function (e) {
  528. $(e.currentTarget).css("background-color","#48a9f5");
  529. });
  530. $('.cjtb_btn').on('mouseout', function (e) {
  531. $(e.currentTarget).css("background-color","#1E9FFF");
  532. });
  533.  
  534. $('tr').on('mouseover', function (e) {
  535. var name = $(e.currentTarget).attr("class");
  536. $("."+name).css("background-color","#ddd");
  537. });
  538. $('tr').on('mouseout', function (e) {
  539. var name = $(e.currentTarget).attr("class");
  540. $("."+name).css("background-color","#fff");
  541. });
  542. }
  543.  
  544. function sortPrice(a,b){
  545. var a_price = a.tradePrice.offerPrice.valueString;
  546. var b_price = b.tradePrice.offerPrice.valueString;
  547. if(a_price!=null&&b_price!=null)
  548. {
  549. return parseFloat(a_price)-parseFloat(b_price);
  550. }
  551. return 0;
  552. }
  553.  
  554. function sortSaleNum(a,b){
  555. var a_sale = a.tradeQuantity.number;
  556. var b_sale = b.tradeQuantity.number;
  557. if(a_sale!=null&&b_sale!=null)
  558. {
  559. return parseFloat(b_sale)-parseFloat(a_sale);
  560. }
  561. return 0;
  562. }
  563. //VVIC
  564. function getVvicList(zhuImgUrl) {
  565. console.log(zhuImgUrl);
  566. GM_xmlhttpRequest({
  567. method: "POST",
  568. url: rs_url + "/ylfs/vvic/goodsSimilar?path=" +zhuImgUrl,
  569. dataType: "json",
  570. headers: {
  571. "Content-Type": "application/json"
  572. },
  573. onload: function(result) {
  574.  
  575. if(result.readyState==4&&result.status==200){
  576. try {
  577. var similarObj = JSON.parse(result.response);
  578. var status = similarObj.status;
  579. if (status==1) {
  580. vvic_list = JSON.parse(similarObj.data);
  581. vvic_origin_list = JSON.parse(similarObj.data);
  582. showVvicList();
  583. } else {
  584. $("#vvic_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  585. }
  586. } catch (err) {
  587. console.log(err);
  588. $("#vvic_table").html("<tr><td class='lxSimilarImage' colspan='3' align='center'>未找到相似商品</td></tr>");
  589. }
  590. }
  591. }
  592. });
  593. }
  594.  
  595.  
  596. function showVvicList(sort_by) {
  597. var similarHtml = "";
  598. var similarList = vvic_list;
  599. if (sort_by == 'sale') {
  600. similarList = similarList.sort(sortVvicSaleNum);
  601. }else if (sort_by == 'price') {
  602. similarList = similarList.sort(sortVvicPrice);
  603. } else {
  604. similarList = vvic_origin_list;
  605. }
  606. for (var i = 0; i < similarList.length; i++) {
  607. var thisBean = similarList[i];
  608. var datastr = JSON.stringify(thisBean);
  609. var itemId = thisBean.goodsId;
  610. var imageUrl = thisBean.goodsImg;
  611. var title = thisBean.goodsName;
  612. var tradeNumber = thisBean.saleNum;
  613. var price = "¥" + thisBean.goodsPrice;
  614. var shopName = thisBean.shopName;
  615.  
  616. var trItemSame = '<tr class="tr_'+i+'"><td width="14%" rowspan="2" class="lxSimilarImage"><a target="_blank" href="' + vvicUrl + itemId + '.html"><img src="' + imageUrl + '" style="width:100px;height:100px;"/></a></td><td width="50%" class="lxSimilarTitle"><a target="_blank" href="' + vvicUrl + itemId + '.html">' +
  617. title + '</a></td><td width="25%" class="lxSimilarSale">成交' + tradeNumber + '笔</td><td width="16%" class="lxSimilarPrice">' + price + '</td></tr><tr class="tr_'+i+'"><td class="lxSimilarShop">' + shopName +
  618. '</td><td class="lxSimilarLocation">' + "" + '</td><td align="center" style="width:100px;position:relative"><input type="button" value="选用" class="cjvvic_btn" data=\''+datastr+'\'/></td></tr>';
  619. for (var j = 0; j < price_arr.length; j++) {
  620. if (price_arr[j].itemid == itemId) {
  621. trItemSame = '<tr class="tr_'+i+'"><td width="14%" rowspan="2" class="lxSimilarImage"><a target="_blank" href="' + vvicUrl + itemId + '.html"><img src="' + imageUrl + '" style="width:100px;height:100px;"/></a></td><td width="50%" class="lxSimilarTitle"><a target="_blank" href="' + vvicUrl + itemId + '.html">' +
  622. title + '</a></td><td width="25%" class="lxSimilarSale">成交' + tradeNumber + '笔</td><td width="16%" class="lxSimilarPrice">' + price + '</td></tr><tr class="tr_'+i+'"><td class="lxSimilarShop">' + shopName +
  623. '</td><td class="lxSimilarLocation">' + "" + '</td><td align="center" style="width:100px;position:relative"><input type="button" value="选用" class="cjvvic_btn" data=\''+datastr+'\'/></td></tr>';
  624. }
  625. }
  626. similarHtml += trItemSame;
  627. }
  628. $("#vvic_table").html(similarHtml);
  629. $(".lxSimilarImage").attr("style","padding-top: 5px;padding-left: 5px;");
  630. $(".lxSimilarTitle").attr("style","padding-left: 5px;");
  631. $(".lxSimilarTitle a").attr("style","color:#36c;text-decoration:none;font-size:14px");
  632. $(".lxSimilarPrice").attr("style","font-size:18px;");
  633. $(".lxSimilarShop").attr("style","padding-left: 5px;");
  634. //采集
  635. $('.cjvvic_btn').on('click', function (e) {
  636. var datastr = $(e.currentTarget).attr("data");
  637. $(e.currentTarget).attr("disabled","disabled");
  638. $(e.currentTarget).css("background-color","rgb(133, 159, 179)");
  639. collectData(datastr,e);
  640. });
  641. //获取供应商信息
  642. $('.get_supplier_info').on('click', function (e) {
  643. var datastr = $(e.currentTarget).attr("data");
  644. $(e.currentTarget).attr("disabled","disabled");
  645. $(e.currentTarget).css("background-color","rgb(133, 159, 179)");
  646. getSupplierInfo(datastr,e);
  647. });
  648. //加入比对
  649. $('.price_compare').on('click',function() {
  650. var get_itemid = $(this).attr('data-itemid');
  651. if ($(this).hasClass('has')) {
  652. for (var i = 0; i < price_arr.length; i++) {
  653. if (price_arr[i].itemid == get_itemid) {
  654. price_arr.splice(i, 1);
  655. }
  656. }
  657. $(this).css('background','#1E9FFF');
  658. $(this).val('价格比对');
  659. $(this).removeClass('has');
  660. } else {
  661. $(this).css('background','rgb(177, 94, 46)');
  662. $(this).val('取消比对');
  663. $(this).addClass('has');
  664. var get_price = $(this).attr('data-price');
  665. get_price = get_price.trim();
  666. var price_temp = get_price.split("¥");
  667. var this_price = parseFloat(price_temp[1]);
  668. var temp = {};
  669. temp.itemid = get_itemid;
  670. temp.price = this_price;
  671. price_arr.push(temp);
  672. }
  673. console.log(price_arr);
  674. avg = getAvg();
  675. console.log(avg);
  676. var length = price_arr.length;
  677. $(".have_choose").text(length);
  678. $(".input_price").attr("value","价格平均值:"+avg);
  679. });
  680. $(".cjvvic_btn").attr("style","width: 70px;height: 32px;line-height: 32px;color: #fff;background-color: #1E9FFF;text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  681. $(".get_supplier_info").attr("style","width: 120px;position: absolute;margin-left: 20px;height: 32px;line-height: 32px;color: #fff;background-color: #1E9FFF;text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  682. $(".price_compare").attr("style","width: 90px;position: absolute;margin-left: 155px;height: 32px;line-height: 32px;color: #fff;background-color: #1E9FFF;text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  683. $(".price_compare.has").attr("style","background:rgb(177, 94, 46);width: 90px;position: absolute;margin-left: 155px;height: 32px;line-height: 32px;color: #fff;text-align: center;border: none;border-radius: 3px;cursor: pointer;");
  684. $('.cjvvic_btn,.get_supplier_info').on('mouseover', function (e) {
  685. $(e.currentTarget).css("background-color","#48a9f5");
  686. });
  687. $('.cjvvic_btn,.get_supplier_info').on('mouseout', function (e) {
  688. $(e.currentTarget).css("background-color","#1E9FFF");
  689. });
  690.  
  691. $('tr').on('mouseover', function (e) {
  692. var name = $(e.currentTarget).attr("class");
  693. $("."+name).css("background-color","#ddd");
  694. });
  695. $('tr').on('mouseout', function (e) {
  696. var name = $(e.currentTarget).attr("class");
  697. $("."+name).css("background-color","#fff");
  698. });
  699.  
  700. }
  701.  
  702.  
  703. function getAvg() {
  704. var len = price_arr.length;
  705. var sum = 0;
  706. if (len <= 0) return 0;
  707. for(var i = 0; i < len ; i++){
  708. sum += price_arr[i].price;
  709. }
  710. var avg = sum/len;
  711. var numStr = avg.toString();
  712. var index = numStr.indexOf('.');
  713. var result = numStr.slice(0, index + 3);
  714. return result;
  715. }
  716.  
  717. function sortVvicPrice(a,b){
  718. var a_price = a.goodsPrice;
  719. var b_price = b.goodsPrice;
  720. if(a_price!=null&&b_price!=null)
  721. {
  722. return parseFloat(a_price)-parseFloat(b_price);
  723. }
  724. return 0;
  725. }
  726. function sortVvicSaleNum(a,b){
  727. var a_sale = a.saleNum;
  728. var b_sale = b.saleNum;
  729. if(a_sale!=null&&b_sale!=null)
  730. {
  731. return parseFloat(b_sale)-parseFloat(a_sale);
  732. }
  733. return 0;
  734. }