| @@ -212,6 +212,15 @@ | |||
| <artifactId>hanlp</artifactId> | |||
| <version>portable-1.8.2</version> | |||
| </dependency> | |||
| <dependency> | |||
| <groupId>org.java-websocket</groupId> | |||
| <artifactId>Java-WebSocket</artifactId> | |||
| <version>1.3.8</version> | |||
| </dependency> | |||
| </dependencies> | |||
| @@ -0,0 +1,419 @@ | |||
| package com.stonedt.intelligence.controller; | |||
| import com.alibaba.fastjson.JSONArray; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| import com.stonedt.intelligence.aop.SystemControllerLog; | |||
| import com.stonedt.intelligence.entity.FullPolymerization; | |||
| import com.stonedt.intelligence.entity.FullType; | |||
| import com.stonedt.intelligence.entity.FullWord; | |||
| import com.stonedt.intelligence.entity.TimelyPolymerization; | |||
| import com.stonedt.intelligence.entity.User; | |||
| import com.stonedt.intelligence.service.FullSearchService; | |||
| import com.stonedt.intelligence.service.TimelysearchService; | |||
| import com.stonedt.intelligence.util.DateUtil; | |||
| import com.stonedt.intelligence.util.TxtUtil; | |||
| import com.stonedt.intelligence.util.UserUtil; | |||
| import com.stonedt.intelligence.vo.FullSearchParam; | |||
| import com.stonedt.intelligence.websocket.WebSocketUtils; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.beans.factory.annotation.Value; | |||
| import org.springframework.stereotype.Controller; | |||
| import org.springframework.ui.Model; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import org.springframework.web.servlet.ModelAndView; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import java.io.File; | |||
| import java.io.UnsupportedEncodingException; | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * 全文搜索控制器 | |||
| */ | |||
| @Controller | |||
| @RequestMapping(value = "/timelysearch") | |||
| public class TimelySearchController { | |||
| @Value("${xmlFilePath}") | |||
| private String xmlPath; | |||
| @Autowired | |||
| private FullSearchService fullSearchService; | |||
| @Autowired | |||
| private TimelysearchService searchearchService; | |||
| @Autowired | |||
| UserUtil userUtil; | |||
| /** | |||
| * 全文搜索页面 | |||
| */ | |||
| @SystemControllerLog(module = "全文搜索", submodule = "全文搜索", type = "全文搜索页面", operation = "search") | |||
| @GetMapping(value = "") | |||
| public String search(Integer full_poly, @RequestParam(defaultValue = "1") Integer full_type, Model model) { | |||
| model.addAttribute("fulltype", full_type); | |||
| model.addAttribute("full_poly", full_poly); | |||
| model.addAttribute("menu", "full_search"); | |||
| return "timely_search/full_search"; | |||
| } | |||
| /** | |||
| * 全文搜索结果页面 | |||
| */ | |||
| @GetMapping(value = "/result") | |||
| @SystemControllerLog(module = "全文搜索", submodule = "搜索结果", type = "查询", operation = "result") | |||
| public String result(@RequestParam(value = "menuStyle", required = false, defaultValue = "1") Integer menuStyle, | |||
| @RequestParam(value = "pageSize", required = false, defaultValue = "50") Integer pageSize, | |||
| Integer full_poly, String fulltype, @RequestParam(value = "keyword", required = false, defaultValue = "疫情")String keyword, | |||
| String sourcename, Integer page, Model model, | |||
| HttpServletRequest request, | |||
| @RequestParam(value = "website_id", required = false, defaultValue = "0") String website_id, | |||
| @RequestParam(value = "stype", required = false, defaultValue = "1") String stype, | |||
| @RequestParam(value = "pageNoData", required = false, defaultValue = "1") String pageNoData) { | |||
| model.addAttribute("searchWord", keyword);//搜索关键词 | |||
| model.addAttribute("page", page); | |||
| model.addAttribute("source_name", sourcename); | |||
| model.addAttribute("fulltype", fulltype);//搜索引擎类型 | |||
| model.addAttribute("full_poly", full_poly); | |||
| model.addAttribute("menuStyle", menuStyle); | |||
| model.addAttribute("website_id", website_id); | |||
| model.addAttribute("stype", stype); | |||
| model.addAttribute("pageNoData", pageNoData); | |||
| model.addAttribute("pageSize", pageSize); | |||
| model.addAttribute("menu", "full_search"); | |||
| //将搜索的词存到数据库 | |||
| User user = userUtil.getuser(request); | |||
| String user_id = String.valueOf(user.getUser_id()); | |||
| String create_time = DateUtil.getNowTime(); | |||
| if (!keyword.equals("")) { | |||
| FullWord fullWord = new FullWord(); | |||
| fullWord.setUser_id(Long.valueOf(user_id)); | |||
| fullWord.setCreate_time(create_time); | |||
| fullWord.setSearch_word(keyword); | |||
| boolean result = fullSearchService.saveFullWord(fullWord); | |||
| } | |||
| return "timely_search/search_result"; | |||
| } | |||
| /** | |||
| * 资讯数据列表 | |||
| */ | |||
| // @SystemControllerLog(module = "全文搜索", submodule = "资讯列表", type = "查询", operation = "informationList") | |||
| // @GetMapping(value = "/informationList") | |||
| // public @ResponseBody | |||
| // JSONObject informationList(FullSearchParam informationListParam) { | |||
| // | |||
| // | |||
| // JSONObject informationList = fullSearchService.informationList(informationListParam); | |||
| // | |||
| // return informationList; | |||
| // } | |||
| /** | |||
| * 资讯数据列表 | |||
| */ | |||
| // @SystemControllerLog(module = "全文搜索", submodule = "资讯列表", type = "查询", operation = "informationList1") | |||
| // @PostMapping(value = "/informationListpost") | |||
| // public @ResponseBody | |||
| // JSONObject informationList1(@RequestBody FullSearchParam informationListParam) { | |||
| // | |||
| // | |||
| // informationListParam.setMatchType(1); | |||
| // informationListParam.setSortType(1); | |||
| // informationListParam.setMergeType(0); | |||
| // | |||
| // JSONObject informationList = fullSearchService.informationListSearch(informationListParam); | |||
| // | |||
| // return informationList; | |||
| // } | |||
| /** | |||
| * @param [articleid, groupid, projectid, menu, mv] | |||
| * @return org.springframework.web.servlet.ModelAndView | |||
| * @description: 跳转 资讯文章详情页面 <br> | |||
| * @version: 1.0 <br> | |||
| * @date: 2020/4/13 14:32 <br> | |||
| * @author: huajiancheng <br> | |||
| */ | |||
| // @SystemControllerLog(module = "全文搜索", submodule = "资讯文章详情", type = "查询", operation = "thesisnDetail") | |||
| // @GetMapping(value = "/detail/{articleid}") | |||
| // public ModelAndView skiparticle(@PathVariable() String articleid, | |||
| // String groupid, String projectid, String relatedWord, | |||
| // String menu, String page, ModelAndView mv, | |||
| // String menuStyle, String fulltype, | |||
| // String fullpoly, String searchWord,String publish_time, | |||
| // HttpServletRequest request) { | |||
| // if (StringUtils.isBlank(groupid)) groupid = ""; | |||
| // if (StringUtils.isBlank(projectid)) projectid = ""; | |||
| // if (StringUtils.isBlank(articleid)) articleid = ""; | |||
| // if (StringUtils.isBlank(relatedWord)) relatedWord = ""; | |||
| // if (StringUtils.isBlank(publish_time)) publish_time = ""; | |||
| // if (StringUtils.isBlank(menu)) menu = "full_search"; | |||
| // mv.addObject("menuStyle", menuStyle); | |||
| // mv.addObject("full_poly", fullpoly); | |||
| // mv.addObject("fulltype", fulltype); | |||
| // mv.addObject("searchWord", searchWord); | |||
| // mv.addObject("publish_time", publish_time); | |||
| // mv.addObject("articleid", articleid); | |||
| // mv.addObject("groupid", groupid); | |||
| // mv.addObject("projectid", projectid); | |||
| // mv.addObject("relatedword", relatedWord); | |||
| // mv.addObject("menu", "full_search"); | |||
| // mv.setViewName("search/search_detail"); | |||
| // return mv; | |||
| // } | |||
| /** | |||
| * 获取一级菜单 | |||
| * | |||
| * @return | |||
| */ | |||
| // @GetMapping("listFullTypeByFirst") | |||
| // public @ResponseBody | |||
| // List<FullType> listFullTypeByFirst() { | |||
| // List<FullType> listFullTypeByFirst = fullSearchService.listFullTypeByFirst(); | |||
| // return listFullTypeByFirst; | |||
| // } | |||
| /** | |||
| * 获取二级菜单 | |||
| * | |||
| * @param type_one_id | |||
| * @return | |||
| */ | |||
| // @GetMapping("listFullTypeBySecond") | |||
| // public @ResponseBody | |||
| // List<FullType> listFullTypeBysecond(Integer type_one_id) { | |||
| // List<FullType> listFullTypeBysecond = fullSearchService.listFullTypeBysecond(type_one_id); | |||
| // return listFullTypeBysecond; | |||
| // } | |||
| /** | |||
| * 获取三级菜单 | |||
| * | |||
| * @param type_one_id | |||
| * @return | |||
| */ | |||
| // @GetMapping("listFullTypeByThird") | |||
| // public @ResponseBody | |||
| // List<FullType> listFullTypeBythird(Integer type_two_id) { | |||
| // List<FullType> listFullTypeBythird = fullSearchService.listFullTypeBythird(type_two_id); | |||
| // return listFullTypeBythird; | |||
| // } | |||
| /** | |||
| * 获取聚合分类 | |||
| * | |||
| * @return | |||
| */ | |||
| @GetMapping("listFullPolymerization") | |||
| public @ResponseBody | |||
| List<TimelyPolymerization> listFullPolymerization() { | |||
| return searchearchService.listFullPolymerization(); | |||
| } | |||
| // /** | |||
| // * @return | |||
| // */ | |||
| // @GetMapping("getBreadCrumbs") | |||
| // public @ResponseBody | |||
| // JSONObject getBreadCrumbs(Integer menuStyle, Integer fulltype, Integer onlyid, Integer polyid) { | |||
| // return fullSearchService.getBreadCrumbs(menuStyle, fulltype, onlyid, polyid); | |||
| // } | |||
| // | |||
| // /** | |||
| // * 获取全文搜索一级分类列表 通过id list | |||
| // * | |||
| // * @param id | |||
| // * @return | |||
| // */ | |||
| // @GetMapping("listFullTypeOneByIdList") | |||
| // public @ResponseBody | |||
| // List<FullType> listFullTypeOneByIdList(String id) { | |||
| // | |||
| // return fullSearchService.listFullTypeOneByIdList(list); | |||
| // } | |||
| // | |||
| // | |||
| // /** | |||
| // * @param [request] | |||
| // * @return com.alibaba.fastjson.JSONObject | |||
| // * @description: 获取用户输入的关键词 <br> | |||
| // * @version: 1.0 <br> | |||
| // * @date: 2020/7/13 14:05 <br> | |||
| // * @author: huajiancheng <br> | |||
| // */ | |||
| // | |||
| @PostMapping(value = "/search") | |||
| @ResponseBody | |||
| public JSONObject getSearchWordById(HttpServletRequest request) { | |||
| JSONObject response = new JSONObject(); | |||
| JSONObject paramJson = new JSONObject(); | |||
| User user = userUtil.getuser(request); | |||
| String user_id = String.valueOf(user.getUser_id()); | |||
| paramJson.put("user_id", user_id); | |||
| response = fullSearchService.getSearchWordById(paramJson); | |||
| return response; | |||
| } | |||
| @GetMapping(value = "/data") | |||
| @ResponseBody | |||
| public String getSpiderData(String keyword,String website_id,String pageNoData) { | |||
| long startJiebaTime = System.currentTimeMillis(); | |||
| String resultdata = ""; | |||
| // | |||
| // if(!"1".equals(website_id)) { | |||
| //Map map = templeteService.get(website_id); | |||
| File file = new File(xmlPath+website_id+".txt"); | |||
| String xml_data = TxtUtil.txt2String(file); | |||
| //String data = WebSocketUtils.data(keyword,map.get("xml").toString(),pageNoData); | |||
| String data = WebSocketUtils.data(keyword,xml_data,pageNoData); | |||
| resultdata = dealdata(data); | |||
| // | |||
| // }else { | |||
| // String source_url = "https://weixin.sogou.com/weixin?oq=&query="+keyword+"&_sug_type_=&sut=281&s_from=input&ri=0&_sug_=n&type=2&sst0=&page="+pageNoData+"&ie=utf8&w=&dr=1"; | |||
| // | |||
| // String html = PlaywrightUtil2.getHtml(source_url); | |||
| // | |||
| // | |||
| // | |||
| // Document parse = Jsoup.parse(html); | |||
| // | |||
| // Elements select = parse.select("#main > div.news-box > ul > li"); | |||
| // JSONArray jsonArray = new JSONArray(); | |||
| // for (int i = 0; i < select.size(); i++) { | |||
| // JSONObject jsonObject = new JSONObject(); | |||
| // | |||
| // Element element = select.get(i); | |||
| // String title = element.select("h3").get(0).text();//标题 | |||
| // | |||
| // String title_data = (title.indexOf(keyword)!=0)?(title.replaceAll(keyword,"<b class=\"key\" style=\"color:red\">"+keyword+"</b>")):(title); | |||
| // | |||
| // jsonObject.put("title", title_data); | |||
| // | |||
| // String abstract1 = element.select("#sogou_vr_11002601_summary_"+i).get(0).text();//摘要 | |||
| // | |||
| // | |||
| // | |||
| // String abstractdata = (abstract1.indexOf(keyword)!=0)?(abstract1.replaceAll(keyword,"<b class=\"key\" style=\"color:red\">"+keyword+"</b>")):(abstract1); | |||
| // jsonObject.put("abstract", abstractdata); | |||
| // | |||
| // | |||
| // | |||
| // | |||
| // | |||
| // String url = element.select("h3").get(0).attr("href");//原始链接 | |||
| // | |||
| // jsonObject.put("url", url); | |||
| // String publish_time = element.select("#sogou_vr_11002601_box_"+i+" > div.txt-box > div > span").get(0).text(); | |||
| // jsonObject.put("publish_time", publish_time); | |||
| // | |||
| // String source = "微信"; | |||
| // jsonObject.put("source", source); | |||
| // jsonArray.add(jsonObject); | |||
| // } | |||
| // resultdata = jsonArray.toJSONString(); | |||
| // } | |||
| long time = (System.currentTimeMillis() - startJiebaTime);//毫秒值 | |||
| JSONObject jsonObject = new JSONObject(); | |||
| jsonObject.put("time", time); | |||
| jsonObject.put("data", resultdata); | |||
| return jsonObject.toJSONString(); | |||
| } | |||
| public String dealdata(String data) { | |||
| JSONArray resultArray = new JSONArray(); | |||
| JSONArray parseArray = JSONArray.parseArray(data); | |||
| for (int i = 0; i < parseArray.size(); i++) { | |||
| JSONObject parseObject = JSONObject.parseObject(parseArray.get(i).toString()); | |||
| JSONObject parseObject2 = JSONObject.parseObject(parseObject.getString("message")); | |||
| JSONArray parseArray2 = JSONArray.parseArray(parseObject2.getString("outputNames")); | |||
| JSONArray valuesArray = JSONArray.parseArray(parseObject2.getString("values")); | |||
| JSONObject jsonObject = new JSONObject(); | |||
| for (int j = 0; j < parseArray2.size(); j++) { | |||
| String string = parseArray2.get(j).toString(); | |||
| System.out.println("json数据:"+parseArray2); | |||
| System.out.println("json数据2:"+valuesArray); | |||
| String values = ""; | |||
| if(valuesArray.get(j)!=null) { | |||
| values = valuesArray.get(j).toString(); | |||
| } | |||
| jsonObject.put(string, values); | |||
| } | |||
| resultArray.add(jsonObject); | |||
| } | |||
| return resultArray.toJSONString(); | |||
| } | |||
| @GetMapping(value = "/index") | |||
| public ModelAndView getSpiderData(ModelAndView mv, | |||
| @RequestParam(value = "website_id", required = false, defaultValue = "3") String website_id, | |||
| @RequestParam(value = "stype", required = false, defaultValue = "1") String stype, | |||
| @RequestParam(value = "keyword", required = false, defaultValue = "疫情") String keyword, | |||
| @RequestParam(value = "pageNoData", required = false, defaultValue = "1") String pageNoData) { | |||
| mv.addObject("website_id", website_id); | |||
| mv.addObject("stype", stype); | |||
| mv.addObject("keyword", keyword); | |||
| mv.addObject("pageNoData", pageNoData); | |||
| mv.setViewName("index"); | |||
| return mv; | |||
| } | |||
| @GetMapping(value = "/templete") | |||
| @ResponseBody | |||
| public List templete(String stype) { | |||
| List<Map<String,Object>> list = searchearchService.getTemplete(stype); | |||
| return list; | |||
| } | |||
| } | |||
| @@ -0,0 +1,18 @@ | |||
| package com.stonedt.intelligence.dao; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| import org.apache.ibatis.annotations.Mapper; | |||
| import com.stonedt.intelligence.entity.TimelyPolymerization; | |||
| @Mapper | |||
| public interface TimelysearchDao { | |||
| List<TimelyPolymerization> listFullPolymerization(); | |||
| List<Map<String, Object>> getTemplete(String stype); | |||
| } | |||
| @@ -0,0 +1,93 @@ | |||
| package com.stonedt.intelligence.entity; | |||
| import java.io.Serializable; | |||
| /** | |||
| * | |||
| * @author wangyi | |||
| * | |||
| */ | |||
| public class TimelyPolymerization implements Serializable{ | |||
| /** | |||
| * | |||
| */ | |||
| private static final long serialVersionUID = 1L; | |||
| private Integer id; | |||
| private String create_time; | |||
| private Integer type; | |||
| private String type_name; | |||
| private String value; | |||
| private String icon; | |||
| private Integer status; | |||
| public Integer getId() { | |||
| return id; | |||
| } | |||
| public void setId(Integer id) { | |||
| this.id = id; | |||
| } | |||
| public String getCreate_time() { | |||
| return create_time; | |||
| } | |||
| public void setCreate_time(String create_time) { | |||
| this.create_time = create_time; | |||
| } | |||
| public Integer getType() { | |||
| return type; | |||
| } | |||
| public void setType(Integer type) { | |||
| this.type = type; | |||
| } | |||
| public String getType_name() { | |||
| return type_name; | |||
| } | |||
| public void setType_name(String type_name) { | |||
| this.type_name = type_name; | |||
| } | |||
| public String getValue() { | |||
| return value; | |||
| } | |||
| public void setValue(String value) { | |||
| this.value = value; | |||
| } | |||
| public String getIcon() { | |||
| return icon; | |||
| } | |||
| public void setIcon(String icon) { | |||
| this.icon = icon; | |||
| } | |||
| public Integer getStatus() { | |||
| return status; | |||
| } | |||
| public void setStatus(Integer status) { | |||
| this.status = status; | |||
| } | |||
| public static long getSerialversionuid() { | |||
| return serialVersionUID; | |||
| } | |||
| public TimelyPolymerization(Integer id, String create_time, Integer type, String type_name, String value, | |||
| String icon, Integer status) { | |||
| super(); | |||
| this.id = id; | |||
| this.create_time = create_time; | |||
| this.type = type; | |||
| this.type_name = type_name; | |||
| this.value = value; | |||
| this.icon = icon; | |||
| this.status = status; | |||
| } | |||
| public TimelyPolymerization() { | |||
| super(); | |||
| // TODO Auto-generated constructor stub | |||
| } | |||
| } | |||
| @@ -0,0 +1,15 @@ | |||
| package com.stonedt.intelligence.service; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| import com.stonedt.intelligence.entity.FullPolymerization; | |||
| import com.stonedt.intelligence.entity.TimelyPolymerization; | |||
| public interface TimelysearchService { | |||
| List<TimelyPolymerization> listFullPolymerization(); | |||
| List<Map<String, Object>> getTemplete(String stype); | |||
| } | |||
| @@ -0,0 +1,40 @@ | |||
| package com.stonedt.intelligence.service.impl; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import com.stonedt.intelligence.dao.TimelysearchDao; | |||
| import com.stonedt.intelligence.entity.TimelyPolymerization; | |||
| import com.stonedt.intelligence.service.TimelysearchService; | |||
| @Service | |||
| public class TimelysearchServiceImpl implements TimelysearchService{ | |||
| @Autowired | |||
| private TimelysearchDao timelysearchDao; | |||
| @Override | |||
| public List<TimelyPolymerization> listFullPolymerization() { | |||
| // TODO Auto-generated method stub | |||
| return timelysearchDao.listFullPolymerization(); | |||
| } | |||
| @Override | |||
| public List<Map<String, Object>> getTemplete(String stype) { | |||
| return timelysearchDao.getTemplete(stype); | |||
| } | |||
| } | |||
| @@ -0,0 +1,32 @@ | |||
| package com.stonedt.intelligence.util; | |||
| import java.io.BufferedReader; | |||
| import java.io.File; | |||
| import java.io.FileReader; | |||
| public class TxtUtil { | |||
| /** | |||
| * 读取txt文件的内容 | |||
| * @param file 想要读取的文件对象 | |||
| * @return 返回文件内容 | |||
| */ | |||
| public static String txt2String(File file){ | |||
| StringBuilder result = new StringBuilder(); | |||
| try{ | |||
| BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件 | |||
| String s = null; | |||
| while((s = br.readLine())!=null){//使用readLine方法,一次读一行 | |||
| result.append(System.lineSeparator()+s); | |||
| } | |||
| br.close(); | |||
| }catch(Exception e){ | |||
| e.printStackTrace(); | |||
| } | |||
| return result.toString(); | |||
| } | |||
| public static void main(String[] args){ | |||
| File file = new File("/Users/wangyi/Desktop/smart-api/1.txt"); | |||
| System.out.println(txt2String(file)); | |||
| } | |||
| } | |||
| @@ -0,0 +1,75 @@ | |||
| package com.stonedt.intelligence.websocket; | |||
| import java.net.URI; | |||
| import org.java_websocket.client.WebSocketClient; | |||
| import org.java_websocket.handshake.ServerHandshake; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| /** | |||
| * websocket客户端监听类 | |||
| * @author 。 | |||
| */ | |||
| public class MyWebSocketClient extends WebSocketClient { | |||
| private static Logger logger = LoggerFactory.getLogger(MyWebSocketClient.class); | |||
| //用来接收数据 | |||
| private String excptMessage; | |||
| public MyWebSocketClient(URI serverUri) { | |||
| super(serverUri); | |||
| } | |||
| @Override | |||
| public void onOpen(ServerHandshake serverHandshake) { | |||
| logger.info(">>>>>>>>>>>websocket open"); | |||
| } | |||
| @Override | |||
| public void onMessage(String s) { | |||
| this.excptMessage = s; | |||
| JSONObject parseObject = JSONObject.parseObject(s); | |||
| if(parseObject.getString("eventType").equals("output")) { | |||
| WebSocketUtils.array.add(parseObject); | |||
| } | |||
| System.out.println("s:"+s); | |||
| } | |||
| @Override | |||
| public void onClose(int i, String s, boolean b) { | |||
| logger.info(">>>>>>>>>>>websocket close"); | |||
| } | |||
| @Override | |||
| public void onError(Exception e) { | |||
| logger.error(">>>>>>>>>websocket error {}",e); | |||
| } | |||
| //获取接收到的信息 | |||
| public String getExcptMessage() { | |||
| if(excptMessage != null){ | |||
| String message = new String(excptMessage); | |||
| System.out.println("message:"+message); | |||
| excptMessage = null; | |||
| return message; | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -0,0 +1,80 @@ | |||
| package com.stonedt.intelligence.websocket; | |||
| import java.net.URI; | |||
| import java.net.URISyntaxException; | |||
| import org.java_websocket.WebSocket; | |||
| import com.alibaba.fastjson.JSONArray; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| public class WebSocketUtils { | |||
| static JSONArray array = new JSONArray(); | |||
| public static void main(String[] args) { | |||
| String xml = ""; | |||
| String data = data("疫情",xml,"1"); | |||
| System.out.println(data); | |||
| } | |||
| public static String data(String keyword,String xml,String pageNoData){ | |||
| long start = System.nanoTime(); | |||
| array.clear(); | |||
| String message = null; | |||
| xml = xml.replaceAll("北京", keyword); | |||
| xml = xml.replaceAll("pageNoData", pageNoData); | |||
| System.out.println(xml); | |||
| JSONObject jsonObject = new JSONObject(); | |||
| jsonObject.put("eventType", "test"); | |||
| jsonObject.put("message", xml); | |||
| String data = jsonObject.toJSONString(); | |||
| try { | |||
| //实例WebSocketClient对象,并连接到WebSocket服务端 | |||
| MyWebSocketClient client = new MyWebSocketClient(new URI("ws://s1.stonedt.com:6388/ws")); | |||
| client.connect(); | |||
| //等待服务端响应 | |||
| while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) { | |||
| System.out.println("连接中···请稍后"); | |||
| Thread.sleep(1000); | |||
| } | |||
| //向WebSocket服务端发送数据 | |||
| client.send(data); | |||
| //等待WebSocket服务端响应 | |||
| // while((message = client.getExcptMessage())==null){ | |||
| // System.out.println("服务忙等待..."); | |||
| // Thread.sleep(1000); | |||
| // } | |||
| while((message = client.getExcptMessage())==null||!JSONObject.parseObject(message).getString("eventType").equals("finish")){ | |||
| System.out.println("服务忙等待..."); | |||
| Thread.sleep(500); | |||
| } | |||
| //打印服务端返回的数据 | |||
| System.out.println("成功获取数据:" + message); | |||
| //关闭连接 | |||
| client.close(); | |||
| // System.out.println(array); | |||
| } catch (URISyntaxException e) { | |||
| e.printStackTrace(); | |||
| } catch (InterruptedException e) { | |||
| e.printStackTrace(); | |||
| } | |||
| return array.toJSONString(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,29 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | |||
| <mapper namespace="com.stonedt.intelligence.dao.TimelysearchDao"> | |||
| <select id="listFullPolymerization" resultType="com.stonedt.intelligence.entity.TimelyPolymerization"> | |||
| select * from search_type where status = 1 | |||
| </select> | |||
| <select id="getTemplete" parameterType="String" resultType="map"> | |||
| select id,engine from templete where type = #{stype} and status = 1 | |||
| </select> | |||
| </mapper> | |||
| @@ -1,9 +1,14 @@ | |||
| //if(!full_type) full_type = 1 | |||
| if(menuStyle == 0){ | |||
| listFullPolymerization() | |||
| }else{ | |||
| listFullTypeByFirst() | |||
| } | |||
| // if(menuStyle == 0){ | |||
| // listFullPolymerization() | |||
| // }else{ | |||
| // listFullTypeByFirst() | |||
| // } | |||
| listFullPolymerization(); | |||
| /** | |||
| * 展开模式菜单 | |||
| @@ -54,7 +59,7 @@ function listFullTypeByFirst(){ | |||
| function listFullPolymerization(){ | |||
| $.ajax({ | |||
| type: 'GET', | |||
| url: ctx + 'fullsearch/listFullPolymerization', | |||
| url: ctx + 'timelysearch/listFullPolymerization', | |||
| dataType: 'json', | |||
| data: {}, | |||
| contentType: 'application/json;charset=utf-8', | |||
| @@ -69,11 +74,11 @@ function listFullPolymerization(){ | |||
| if(full_poly == res[i].id){ | |||
| aaa = 'sidebar-item comactive' | |||
| idList = res[i].value | |||
| } | |||
| var htmlStr = '<li class="'+aaa+'" data-id="'+res[i].value+'" data-poly="'+res[i].id+'">' | |||
| } | |||
| var htmlStr = '<li class="'+aaa+'" data-id="'+res[i].id+'" data-poly="'+res[i].id+'">' | |||
| + '<a class="sidebar-link waves-effect waves-dark" href="javascript:void(0)">' | |||
| + ' <i class="'+res[i].icon+'"></i>' | |||
| + ' <span class="hide-menu">' + res[i].name + '</span>' | |||
| + ' <span class="hide-menu">' + res[i].type_name + '</span>' | |||
| + ' </a>' | |||
| + '</li>' | |||
| $('#sidebarnav').append(htmlStr) | |||
| @@ -0,0 +1,542 @@ | |||
| //左侧菜单变化 | |||
| $('#sidebarnav li').each(function() { | |||
| if ($(this).data('id') == stype) { | |||
| $(this).siblings().removeClass("comactive") | |||
| $(this).addClass("comactive") | |||
| } | |||
| }); | |||
| //总页数 | |||
| let totalPage = 10; | |||
| let currentPage = pageNoData; | |||
| //updatepageHelper(currentPage, totalPage); | |||
| gettempleteinfo(stype, website_id); | |||
| /** | |||
| * 获取模版信息 | |||
| */ | |||
| function gettempleteinfo(fulltype, website_id) { | |||
| debugger; | |||
| $.ajax({ | |||
| url: "/timelysearch/templete?stype=" + fulltype, | |||
| type: "get", | |||
| success: function(data) { | |||
| let resultdata = ''; | |||
| if (data.length > 0) { | |||
| for (let i = 0; i < data.length; i++) { | |||
| let strdata = ''; | |||
| if (website_id == 0 && i == 0) { | |||
| strdata = '<span data-engine="' + data[i].id + | |||
| '" class="badge badge-pill badge-info">' + data[i].engine + '</span>'; | |||
| } else { | |||
| if (data[i].id == website_id) { | |||
| //strdata = '<input type="radio" value="'+data[i].id+'" name="sex" checked/>'+data[i].engine; | |||
| strdata = '<span data-engine="' + data[i].id + | |||
| '" class="badge badge-pill badge-info">' + data[i].engine + '</span>'; | |||
| } else { | |||
| //strdata = '<input type="radio" value="'+data[i].id+'" name="sex"/>'+data[i].engine; | |||
| strdata = '<span data-engine="' + data[i].id + | |||
| '" class="badge badge-pill badge-light">' + data[i].engine + '</span>'; | |||
| } | |||
| } | |||
| resultdata += strdata; | |||
| } | |||
| } | |||
| $("#engine").html(resultdata); | |||
| pageHelper(currentPage, totalPage); | |||
| ///updatepageHelper(currentPage, totalPage); | |||
| //var sexdata = $("input[name='sex']:checked").val(); | |||
| //搜索引擎 | |||
| var sexdata = ''; | |||
| $('span[data-engine]').each(function() { | |||
| if ($(this).hasClass('badge-info')) { | |||
| sexdata = $(this).data('engine'); | |||
| } | |||
| }); | |||
| var keywords = $("#searchWord").val(); | |||
| //var pageNum = $("input[name='pageNum']:checked").val(); | |||
| $('span[data-pagenum]').each(function() { | |||
| if ($(this).data('pagenum') == pageNoData) { | |||
| $(this).removeClass(normal); | |||
| $(this).removeClass(active); | |||
| $(this).addClass(active); | |||
| } else { | |||
| $(this).removeClass(normal); | |||
| $(this).removeClass(active); | |||
| $(this).addClass(normal); | |||
| } | |||
| }); | |||
| var pageNum = currentPage; | |||
| // $('#page li').each(function() { | |||
| // if ($(this).hasClass('active')) { | |||
| // pageNum = $(this).val(); | |||
| // } | |||
| // }); | |||
| loadContent(fulltype,keywords,sexdata,pageNum); | |||
| } | |||
| }); | |||
| } | |||
| //搜索引擎点击事件 | |||
| $(document).ready(function() { | |||
| $(document).on("click", "#engine span", function() { | |||
| var active = "badge-info"; | |||
| var normal = "badge-light"; | |||
| var act = $(this).hasClass(active); | |||
| if (act) {} else { | |||
| $(this).siblings().removeClass(active); | |||
| $(this).siblings().addClass(normal); | |||
| $(this).removeClass(normal); | |||
| $(this).addClass(active); | |||
| } | |||
| $('span[data-pagenum]').each(function() { | |||
| if ($(this).data('pagenum') == '1') { | |||
| $(this).removeClass(normal); | |||
| $(this).removeClass(active); | |||
| $(this).addClass(active); | |||
| } else { | |||
| $(this).removeClass(normal); | |||
| $(this).removeClass(active); | |||
| $(this).addClass(normal); | |||
| } | |||
| }); | |||
| pageHelper(1, totalPage); | |||
| var stype = ''; | |||
| $('#sidebarnav li').each(function() { | |||
| if ($(this).hasClass('comactive')) { | |||
| stype = $(this).data('id'); | |||
| } | |||
| }); | |||
| var sexdata = ''; | |||
| $('span[data-engine]').each(function() { | |||
| if ($(this).hasClass('badge-info')) { | |||
| sexdata = $(this).data('engine'); | |||
| } | |||
| }); | |||
| var keywords = $("#searchWord").val(); | |||
| loadContent(stype, keywords, sexdata, 1); | |||
| }) | |||
| }); | |||
| function loadContent(stype, keywords, sexdata, pageNum) { | |||
| $.ajax({ | |||
| url: "/timelysearch/data" + "?keyword=" + keywords + "&website_id=" + sexdata + "&pageNoData=" + | |||
| pageNum, | |||
| type: "get", | |||
| beforeSend: function() { | |||
| $("#contentdata").html(''); | |||
| debugger; | |||
| loading("#monitor-content"); | |||
| $('#div1').show(); | |||
| }, | |||
| success: function(data) { | |||
| $('#div1').hide(); | |||
| let jsondatadata = JSON.parse(data); | |||
| $("#spider_time").html(jsondatadata.time + "ms"); | |||
| let resultresultdata = ''; | |||
| let jsondata = JSON.parse(jsondatadata.data); | |||
| if (jsondata.length > 0) { | |||
| if (stype == "5") { | |||
| resultresultdata = '<div class="flex">'; | |||
| for (let i = 0; i < jsondata.length; i++) { | |||
| let imgdata = JSON.parse(jsondata[i].videojson); | |||
| strdata = '<div class="item"><a target="_blank" href="' + jsondata[i].url + | |||
| '"><img src="' + imgdata.imglist[0].imgurl + '"/><span >' + jsondata[i].title + | |||
| '</span></a></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } | |||
| resultresultdata += '</div>'; | |||
| } else if (stype == '4') { | |||
| resultresultdata = '<div class="flex">'; | |||
| for (let i = 0; i < jsondata.length; i++) { | |||
| let imgdata = JSON.parse(jsondata[i].videojson); | |||
| strdata = '<div class="item"><a target="_blank" href="' + jsondata[i].url + | |||
| '"><img src="' + imgdata.videoorientationurl + '"/><span >' + jsondata[i] | |||
| .title + '</span></a></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } | |||
| resultresultdata += '</div>'; | |||
| } else { | |||
| for (let i = 0; i < jsondata.length; i++) { | |||
| let resultdata = jsondata[i]; | |||
| if (resultdata.videojson != null) { | |||
| let vediodata = resultdata.videojson; | |||
| console.info("i" + vediodata); | |||
| if (vediodata != '') { | |||
| let imgjsondata = JSON.parse(vediodata); | |||
| if (imgjsondata != null && isEmptyObj(imgjsondata) == true) { | |||
| if (imgjsondata.imglist.length > 0) { | |||
| let imgurl = imgjsondata.imglist[0].imgurl; | |||
| if (imgurl != '') { | |||
| let strdata = '<div class="monitor-right">' + | |||
| '<div class="monitor-content-title"><a target="_blank" title="' + | |||
| resultdata.author + '" style="width: 65%"' + | |||
| 'href="' + resultdata.url + '"' + | |||
| 'class="link font-bold"><span class="content-logo"' + | |||
| 'style="background: url(' + imgurl + | |||
| ');"></span><span' + | |||
| 'style="width:95%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;">' + | |||
| resultdata.title + '</span></a><span class="sl-date">' + | |||
| resultdata.publish_time + ' </span>' + | |||
| '</div>' + | |||
| '<div class="wb-content-imgbox">' + | |||
| '<div class="wb-left-imgbox"><img src="' + imgurl + | |||
| '" class="img-cover" alt=""></div>' + | |||
| '<div class="wb-right-content">' + | |||
| '<div class="monitor-content-con font-13">' + resultdata | |||
| .abstract + '</div>' + | |||
| '</div>' + | |||
| '</div>' + | |||
| '<div class="like-comm m-t-10 font-13"><span class="link m-r-10"> <i class="mdi mdi-earth "></i> 来源 ' + | |||
| resultdata.source + '</span></div></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } else { | |||
| let strdata = '<div class="monitor-right">' + | |||
| '<div class="monitor-content-title">' + | |||
| '<a target="_blank" title="" style="width: 65%" href="' + | |||
| jsondata[i].url + | |||
| '" class="link font-bold"><span class="content-logo" style="background: url(http://www.njrb.njdaily.cn/favicon.ico);"></span><span style="width:95%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;">' + | |||
| jsondata[i].title + '</span></a>' + | |||
| '<span class="sl-date">' + jsondata[i].publish_time + | |||
| ' </span></div>' + | |||
| '<div class="monitor-content-con font-13">' + jsondata[i] | |||
| .abstract + '</div>' + | |||
| '<div class="like-comm m-t-10 font-13"><span class="link m-r-10"> <i class="mdi mdi-earth "></i> 来源 ' + | |||
| jsondata[i].source + '</span><span class="link m-r-0">' + | |||
| '</span></div></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } | |||
| } else { | |||
| let strdata = '<div class="monitor-right">' + | |||
| '<div class="monitor-content-title">' + | |||
| '<a target="_blank" title="" style="width: 65%" href="' + | |||
| jsondata[i].url + | |||
| '" class="link font-bold"><span class="content-logo" style="background: url(http://www.njrb.njdaily.cn/favicon.ico);"></span><span style="width:95%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;">' + | |||
| jsondata[i].title + '</span></a>' + | |||
| '<span class="sl-date">' + jsondata[i].publish_time + | |||
| ' </span></div>' + | |||
| '<div class="monitor-content-con font-13">' + jsondata[i] | |||
| .abstract + '</div>' + | |||
| '<div class="like-comm m-t-10 font-13"><span class="link m-r-10"> <i class="mdi mdi-earth "></i> 来源 ' + | |||
| jsondata[i].source + '</span><span class="link m-r-0">' + | |||
| '</span></div></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } | |||
| } else { | |||
| let strdata = '<div class="monitor-right">' + | |||
| '<div class="monitor-content-title">' + | |||
| '<a target="_blank" title="" style="width: 65%" href="' + jsondata[ | |||
| i].url + | |||
| '" class="link font-bold"><span class="content-logo" style="background: url(http://www.njrb.njdaily.cn/favicon.ico);"></span><span style="width:95%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;">' + | |||
| jsondata[i].title + '</span></a>' + | |||
| '<span class="sl-date">' + jsondata[i].publish_time + | |||
| ' </span></div>' + | |||
| '<div class="monitor-content-con font-13">' + jsondata[i].abstract + | |||
| '</div>' + | |||
| '<div class="like-comm m-t-10 font-13"><span class="link m-r-10"> <i class="mdi mdi-earth "></i> 来源 ' + | |||
| jsondata[i].source + '</span><span class="link m-r-0">' + | |||
| '</span></div></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } | |||
| } else { | |||
| let strdata = '<div class="monitor-right">' + | |||
| '<div class="monitor-content-title">' + | |||
| '<a target="_blank" title="" style="width: 65%" href="' + jsondata[i] | |||
| .url + | |||
| '" class="link font-bold"><span class="content-logo" style="background: url(http://www.njrb.njdaily.cn/favicon.ico);"></span><span style="width:95%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;">' + | |||
| jsondata[i].title + '</span></a>' + | |||
| '<span class="sl-date">' + jsondata[i].publish_time + ' </span></div>' + | |||
| '<div class="monitor-content-con font-13">' + jsondata[i].abstract + | |||
| '</div>' + | |||
| '<div class="like-comm m-t-10 font-13"><span class="link m-r-10"> <i class="mdi mdi-earth "></i> 来源 ' + | |||
| jsondata[i].source + '</span><span class="link m-r-0">' + | |||
| '</span></div></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } | |||
| } else { | |||
| let strdata = '<div class="monitor-right">' + | |||
| '<div class="monitor-content-title">' + | |||
| '<a target="_blank" title="" style="width: 65%" href="' + jsondata[i].url + | |||
| '" class="link font-bold"><span class="content-logo" style="background: url(http://www.njrb.njdaily.cn/favicon.ico);"></span><span style="width:95%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;">' + | |||
| jsondata[i].title + '</span></a>' + | |||
| '<span class="sl-date">' + jsondata[i].publish_time + ' </span></div>' + | |||
| '<div class="monitor-content-con font-13">' + jsondata[i].abstract + | |||
| '</div>' + | |||
| '<div class="like-comm m-t-10 font-13"><span class="link m-r-10"> <i class="mdi mdi-earth "></i> 来源 ' + | |||
| jsondata[i].source + '</span><span class="link m-r-0">' + | |||
| '</span></div></div><hr>'; | |||
| resultresultdata += strdata; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| $("#monitor-content").html(resultresultdata); | |||
| } | |||
| }); | |||
| let url = "result?website_id=" + sexdata + "&pageNoData=" + pageNum + "&keyword=" + keywords + "&stype=" + stype + | |||
| "&fulltype=" + stype; | |||
| console.info("11111111"+url); | |||
| setUrl(url); | |||
| } | |||
| /** | |||
| * 左侧菜单 点击 | |||
| * | |||
| * @param e | |||
| * @returns | |||
| */ | |||
| $('body').on( | |||
| 'click', | |||
| '#sidebarnav li', | |||
| function(e) { | |||
| if (!$(this).hasClass("comactive")) { | |||
| $(this).siblings().removeClass("comactive") | |||
| $(this).addClass("comactive") | |||
| //alert(); | |||
| var stype = $(this).attr("data-id"); | |||
| gettempleteinfo(stype, 0); | |||
| pageHelper(1, totalPage); | |||
| var keywords = $("#searchWord").val(); | |||
| var website_id = ''; | |||
| $('span[data-engine]').each(function() { | |||
| if ($(this).hasClass('badge-info')) { | |||
| website_id = $(this).data('engine'); | |||
| } | |||
| }); | |||
| debugger; | |||
| loadContent(stype, keywords, website_id, 1); | |||
| let url = "result?website_id=" + website_id + "&pageNoData=1&keyword=" + keywords + | |||
| "&stype=" + stype + "&fulltype=" + stype; | |||
| console.info("22222222222"+url); | |||
| setUrl(url); | |||
| } | |||
| }) | |||
| //搜索框点击事件 | |||
| $('body').on( | |||
| 'click', | |||
| '#searchBtn', | |||
| function(e) { | |||
| var keywords = $("#searchWord").val(); | |||
| var website_id = ''; | |||
| $('span[data-engine]').each(function() { | |||
| if ($(this).hasClass('badge-info')) { | |||
| website_id = $(this).data('engine'); | |||
| } | |||
| }); | |||
| var stype = ''; | |||
| $('#sidebarnav li').each(function() { | |||
| if ($(this).hasClass('comactive')) { | |||
| stype = $(this).data('id'); | |||
| } | |||
| }); | |||
| loadContent(stype, keywords, website_id, currentPage); | |||
| pageHelper(1, totalPage); | |||
| let url = "result?website_id=" + website_id + "&pageNoData=1&keyword=" + keywords + | |||
| "&stype=" + stype + "&fulltype=" + stype; | |||
| console.info("3333333"+url); | |||
| setUrl(url); | |||
| }) | |||
| function setUrl(url) { | |||
| history.pushState({ | |||
| url: url, | |||
| title: document.title | |||
| }, document.title, url) | |||
| } | |||
| function isEmptyObj(obj) { | |||
| for (let item in obj) { | |||
| return true | |||
| } | |||
| return false | |||
| } | |||
| function pageHelper(currentPage, totalPages) { | |||
| $("#page").bootstrapPaginator({ | |||
| bootstrapMajorVersion: 3, //版本 | |||
| currentPage: currentPage, //当前页数 | |||
| numberOfPages: 10, //每次显示页数 | |||
| totalPages: totalPages, //总页数 | |||
| shouldShowPage: true, //是否显示该按钮 | |||
| useBootstrapTooltip: false, | |||
| onPageClicked: function (event, originalEvent, type, page) { | |||
| let keywords = $("#searchWord").val(); | |||
| var website_id = ''; | |||
| $('span[data-engine]').each(function() { | |||
| if ($(this).hasClass('badge-info')) { | |||
| website_id = $(this).data('engine'); | |||
| } | |||
| }); | |||
| var stype = ''; | |||
| $('#sidebarnav li').each(function() { | |||
| if ($(this).hasClass('comactive')) { | |||
| stype = $(this).data('id'); | |||
| } | |||
| }); | |||
| loadContent(stype, keywords, website_id, page); | |||
| // let url = "result?website_id=" + website_id + "&pageNoData=" + page + "&keyword=" + keywords + | |||
| // "&stype=" + stype + "&fulltype=" + stype; | |||
| // setUrl(url); | |||
| } | |||
| } | |||
| ); | |||
| } | |||
| //更新分页参数 | |||
| // function updatepageHelper(currentPage, totalPages) { | |||
| // $("#page").bootstrapPaginator({ | |||
| // bootstrapMajorVersion: 3, //版本 | |||
| // currentPage: currentPage, //当前页数 | |||
| // numberOfPages: 10, //每次显示页数 | |||
| // totalPages: totalPages, //总页数 | |||
| // shouldShowPage: true, //是否显示该按钮 | |||
| // useBootstrapTooltip: false | |||
| // } | |||
| // ); | |||
| // } | |||
| @@ -80,14 +80,14 @@ | |||
| </a> | |||
| </li> | |||
| <!-- <li data-type="full_search" th:classappend="${menu=='full_search'?'nav-active3':''}" | |||
| <li data-type="full_search" th:classappend="${menu=='full_search'?'nav-active3':''}" | |||
| class="nav-item dropdown hover-none navLi"> | |||
| <a style="display: block; position: absolute; font-size: 12px; color: #fff; margin-left: 76px; margin-top: 6px; background-color: #fe475d; width: 25px; height: 17px; border-radius: 45%; padding-left: 7px;transform: scale(0.9);">新</a> | |||
| <a class="nav-link dropdown-toggle waves-effect waves-dark"> | |||
| <span class="d-none d-md-block"> <i class="fa fa-search"></i> 情报搜索</span> | |||
| <span class="d-block d-md-none">情报搜索</span> | |||
| <span class="d-none d-md-block"> <i class="fa fa-search"></i> 即时搜索</span> | |||
| <span class="d-block d-md-none">即时搜索</span> | |||
| </a> | |||
| </li> --> | |||
| </li> | |||
| <li data-type="public_option" th:classappend="${menu=='public_option'?'nav-active3':''}" | |||
| class="nav-item dropdown hover-none navLi" id="yqypfx"> | |||
| <a class="nav-link dropdown-toggle waves-effect waves-dark"> | |||
| @@ -513,7 +513,7 @@ | |||
| window.location.href = ctxPath + 'volume' + param; | |||
| } | |||
| else if (menu == 'full_search') { | |||
| window.location.href = ctxPath + 'fullsearch'; | |||
| window.location.href = ctxPath + 'timelysearch'; | |||
| }else if (menu == 'public_option') { | |||
| window.location.href = ctxPath + 'publicoption'; | |||
| }else if (menu == 'syswarning') { | |||
| @@ -0,0 +1,266 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <!-- Tell the browser to be responsive to screen width --> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>全文搜索·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .timeline.timeline-left.hot-content-list>.nodata{ | |||
| margin-left: -55px; | |||
| } | |||
| .timeline.timeline-left.hot-content-list>.text-center.over-load{ | |||
| margin-left: 25px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <!-- ============================================================== --> | |||
| <!-- Preloader - style you can find in spinners.css --> | |||
| <!-- ============================================================== --> | |||
| <!-- <div class="preloader"> --> | |||
| <!-- <div class="lds-ripple"> --> | |||
| <!-- <div class="lds-pos"></div> --> | |||
| <!-- <div class="lds-pos"></div> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| <!-- ============================================================== --> | |||
| <!-- Main wrapper - style you can find in pages.scss --> | |||
| <!-- ============================================================== --> | |||
| <div id="main-wrapper"> | |||
| <!-- ============================================================== --> | |||
| <!-- Topbar header - style you can find in pages.scss --> | |||
| <!-- ============================================================== --> | |||
| <div th:replace="common/header::header"></div> | |||
| <!-- ============================================================== --> | |||
| <!-- End Topbar header --> | |||
| <!-- ============================================================== --> | |||
| <!-- ============================================================== --> | |||
| <!-- Left Sidebar - style you can find in sidebar.scss --> | |||
| <!-- ============================================================== --> | |||
| <div th:replace="common/monitor_left::monitor_left"></div> | |||
| <!-- ============================================================== --> | |||
| <!-- End Left Sidebar - style you can find in sidebar.scss --> | |||
| <!-- ============================================================== --> | |||
| <!-- Page wrapper --> | |||
| <!-- ============================================================== --> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <!-- <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb"> | |||
| <li class="breadcrumb-item">全文搜索</li> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <div class="col-lg-7 align-self-center "> | |||
| <div class="d-flex no-block justify-content-end align-items-center data-number-min"> | |||
| <small>24H数据量</small> | |||
| <h4 class="text-info m-b-0 m-l-10"> 58256</h4> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> --> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <div class="card"> | |||
| <div class="card-body p-45"> | |||
| <div class="full-search-box"> | |||
| <div class="search-group d-flex"> | |||
| <!-- <button class="btn search-select"> | |||
| <span id="showselect">全部</span><i class="fa fa-angle-down"> </i> | |||
| </button> --> | |||
| <button style="z-index: 1;" class="btn btn-info"><i class="fa fa-bars"></i> 搜索</button> | |||
| <div> | |||
| <input id="searchText" type="text" class="form-control" placeholder="请输入搜索内容"> | |||
| <i id="searchI" class="fa fa-search"></i> | |||
| </div> | |||
| <!-- <button class="btn btn-info"> | |||
| <i class="fa fa-search"></i> | |||
| 搜索 | |||
| </button> --> | |||
| <ul class="select-menu"> | |||
| <li>全部</li> | |||
| <li>百度</li> | |||
| <li>自媒体</li> | |||
| <li>客户端APP</li> | |||
| <li>政府网站</li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <!-- 24h start--> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <!-- 24h start --> | |||
| <div class="hot-con-box m-b-20"> | |||
| <div class="hot-content"> | |||
| <span><i class="fa fas fa-fire"></i> 12小时热点内容</span> | |||
| </div> | |||
| </div> | |||
| <!-- 24h end --> | |||
| <!-- content start --> | |||
| <ul class="timeline timeline-left hot-content-list" id="articleList"> | |||
| <!-- <li class="timeline-inverted timeline-item"> --> | |||
| <!-- <div class="hot-time"> 18:28</div> --> | |||
| <!-- <div class="timeline-panel"> --> | |||
| <!-- <div class="timeline-heading"> --> | |||
| <!-- <h4 class="timeline-title font-14"> <a th:href="@{/monitor/detail/123}">唐山钢坯周降50 库存仍处高位 本周钢材指数(Myspic)下跌</a> --> | |||
| <!-- </h4> --> | |||
| <!-- <p><small class="text-muted"><i class="fa fa-clock-o"></i> 11 hours ago via Twitter</small> </p> --> | |||
| <!-- </div> --> | |||
| <!-- <div class="timeline-body"> --> | |||
| <!-- <p class="text-over-2">唐山钢坯周降50 库存仍处高位 本周钢材指数(Myspic)下跌本周Myspic综合指数报131.12点,较上一周下跌1.06。本周建筑钢材市场价格下跌,全国25个主要市场螺纹HRB400(20mm)均价为3647元/吨,较上周下跌25元/吨。本周全国钢坯价格下行为主,截止3月27日,唐山钢坯价格出厂报3110元/吨,周比降50元/吨。下游产销利润的压力以及目前厂内钢坯库存水平导致采坯情绪显弱,下游厂家更多以降库为主(成品库存以及钢坯库存)。库存方面,虽然本周国内钢厂及市场建筑钢材库存双双下降,但目前库存量仍处于高位。综上,目前国内下游建筑工程用钢需求逐步恢复,同时建材产量亦呈现持续攀升态势,建筑钢材高位库存仍需时间消化,预计短期国内建筑钢材价格弱势震荡为主。 库存仍处高位 本周钢材指数(Myspic)下跌本周Myspic综合指数报131.12</p> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| <!-- </li> --> | |||
| </ul> | |||
| <!-- content end --> | |||
| </div> | |||
| </div> | |||
| <!-- 24h end --> | |||
| </div> | |||
| <!-- ============================================================== --> | |||
| <!-- footer start --> | |||
| <!-- ============================================================== --> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| <!-- ============================================================== --> | |||
| <!-- footer end --> | |||
| <!-- ============================================================== --> | |||
| </div> | |||
| </div> | |||
| <!-- ============================================================== --> | |||
| <!-- End Page wrapper --> | |||
| <!-- ============================================================== --> | |||
| </div> | |||
| <!-- ============================================================== --> | |||
| <!-- End Wrapper --> | |||
| <!-- ============================================================== --> | |||
| <!-- All Jquery --> | |||
| <!-- ============================================================== --> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <!-- Bootstrap tether Core JavaScript --> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <!-- apps --> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <!-- slimscrollbar scrollbar JavaScript --> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <!--Wave Effects --> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <!--Menu sidebar --> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <!--Custom JavaScript --> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/dist/search.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| </script> | |||
| <!--<script th:inline="javascript" type="text/javascript">--> | |||
| <!----> | |||
| <!--// twelveHotArticle();--> | |||
| <!----> | |||
| <!--// 搜索按钮--> | |||
| <!--$('#searchI').click(function(){--> | |||
| <!--alert($('#searchText').val().trim());--> | |||
| <!--});--> | |||
| <!----> | |||
| <!--// 左侧方案切换--> | |||
| <!--function switchProject(event) {--> | |||
| <!--let $event = $(event);--> | |||
| <!--var groupId = $event.attr("data-groupid");--> | |||
| <!--var projectId = $event.attr("data-index");--> | |||
| <!--window.location.href = ctxPath+'monitor?groupid='+groupId+'&projectid='+projectId;--> | |||
| <!--}--> | |||
| <!----> | |||
| <!--// 回车搜索--> | |||
| <!--$(document).keydown(function (event) {--> | |||
| <!--if (event.keyCode == 13) {--> | |||
| <!--$('#searchI').trigger("click");--> | |||
| <!--}--> | |||
| <!--});--> | |||
| <!----> | |||
| <!--// 12小时热点内容--> | |||
| <!--function twelveHotArticle(){--> | |||
| <!--$.ajax({--> | |||
| <!--url: ctxPath + 'search/twelveHotArticle',--> | |||
| <!--type: 'post',--> | |||
| <!--dataType: 'json',--> | |||
| <!--data: {},--> | |||
| <!--beforeSend: function(){--> | |||
| <!--loading('#articleList');--> | |||
| <!--},--> | |||
| <!--success: function(res){--> | |||
| <!--var list = res;--> | |||
| <!--$('#articleList').html('');--> | |||
| <!--for(var i=0; i<list.length; i++){--> | |||
| <!--var html = '<li class="timeline-inverted timeline-item">'+--> | |||
| <!--'<div class="hot-time">'+list[i].publish_time.substring(11, 16)+'</div>'+--> | |||
| <!--'<div class="timeline-panel">'+--> | |||
| <!--'<div class="timeline-heading">'+--> | |||
| <!--'<h4 class="timeline-title font-14"> <a href="'+ctxPath+'monitor/detail/'+list[i].article_public_id+'?menu=search">'+list[i].title+'</a>'+--> | |||
| <!--'</h4>'+--> | |||
| <!--// '<p><small class="text-muted"><i class="fa fa-clock-o"></i> 11 hours ago via Twitter</small> </p>'+--> | |||
| <!--'</div>'+--> | |||
| <!--'<div class="timeline-body">'+--> | |||
| <!--'<p class="text-over-2">'+list[i].content+'</p>'+--> | |||
| <!--'</div>'+--> | |||
| <!--'</div>'+--> | |||
| <!--'</li>';--> | |||
| <!--$('#articleList').append(html);--> | |||
| <!--}--> | |||
| <!--if(list.length == 0){--> | |||
| <!--nodata('#articleList');--> | |||
| <!--}--> | |||
| <!--},--> | |||
| <!--error: function(){--> | |||
| <!--dataerror('#articleList');--> | |||
| <!--}--> | |||
| <!--});--> | |||
| <!--}--> | |||
| <!--</script>--> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,221 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="author" content=""> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>即时搜索·网络情报分析系统</title> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <style> | |||
| .timeline.timeline-left.hot-content-list > .nodata { | |||
| margin-left: -55px; | |||
| } | |||
| .timeline.timeline-left.hot-content-list > .text-center.over-load { | |||
| margin-left: 25px; | |||
| } | |||
| .search-record li { | |||
| margin: 10px 0; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <div class="p-20"> | |||
| <div class="card"> | |||
| <div class="card-body p-45"> | |||
| <div class="full-search-box"> | |||
| <div class="search-group d-flex" style="padding-left: 0;"> | |||
| <div style="width: 100%;"> | |||
| <input id="searchWord" type="text" class="form-control" | |||
| placeholder="请输入企业名称、企业简称、产品名、行业名称、政策法规、人名等,多关键词用空格隔开"> | |||
| </div> | |||
| <button id="searchBtn" | |||
| style="z-index: 1; border-radius: 0 2px 2px 0 !important;width: auto;" | |||
| class="btn btn-info">即时搜索 | |||
| </button> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <div class="hot-con-box m-b-20"> | |||
| <div class="hot-content" style="margin-left: 40px;"> | |||
| <span>搜索记录</span> | |||
| </div> | |||
| </div> | |||
| <div class="search-record" style="width: 1000px; margin: 0 auto;"> | |||
| <div style="display: flex; width: calc(100% - 80px); margin: 0 auto;" id="searchwords"> | |||
| <!--<ul class="timeline timeline-left hot-content-list"--> | |||
| <!--style="padding-left: 200px;">--> | |||
| <!--<li><span class="v-hot">1</span> <a href=""><span>习近平</span></a>--> | |||
| <!--</li>--> | |||
| <!--<li><span class="v-hot">3</span> <a href=""><span>南京</span></a>--> | |||
| <!--</li>--> | |||
| <!--<li><span class="v-hot">5</span> <a href=""><span>中共中央</span></a>--> | |||
| <!--</li>--> | |||
| <!--</ul>--> | |||
| <!--<ul class="timeline timeline-left hot-content-list"--> | |||
| <!--style="padding-left: 100px;">--> | |||
| <!--<li><span class="v-hot">2</span> <a href=""><span>微博</span></a>--> | |||
| <!--</li>--> | |||
| <!--<li><span class="v-hot">4</span> <a href=""><span>威马汽车</span></a>--> | |||
| <!--</li>--> | |||
| <!--<li><span class="v-hot">6</span> <a href=""><span>汽车轮胎</span></a>--> | |||
| <!--</li>--> | |||
| <!--</ul>--> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer">© 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1</div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script th:inline="javascript" type="text/javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| // var ctx = [[@{/}]]; | |||
| var ctx = /*[[@{/}]]*/''; | |||
| $(document).ready(function () { | |||
| getSearchWordById(); | |||
| }); | |||
| $('body').on('click', '#sidebarnav li', function (e) { | |||
| // alert("aaaa") | |||
| // console.log(e) | |||
| if (!$(this).hasClass("comactive")) { | |||
| $(this).siblings().removeClass("comactive") | |||
| $(this).addClass("comactive") | |||
| if (menuStyle == 0) { | |||
| let arry = $(this).attr("data-id").split(','); | |||
| //full_type = arry[0] | |||
| idList = $(this).attr("data-id") | |||
| full_poly = $(this).attr("data-poly") | |||
| if (full_poly == 1) { | |||
| $('#searchWord').attr("placeholder", "请输入竞争对手企业名称、企业简称、产品名、行业名称、人名等,多关键词用空格隔开") | |||
| } | |||
| if (full_poly == 2) { | |||
| $('#searchWord').attr("placeholder", "请输入领域范围、行业名称、人名等,多关键词用空格隔开") | |||
| } | |||
| if (full_poly == 3) { | |||
| $('#searchWord').attr("placeholder", "请输入政策法规、关注产品、行业名称、人名等,多关键词用空格隔开") | |||
| } | |||
| if (full_poly == 4) { | |||
| $('#searchWord').attr("placeholder", "请输入产业名称、企业名称、企业简称等,多关键词用空格隔开") | |||
| } | |||
| if (full_poly == 5) { | |||
| $('#searchWord').attr("placeholder", "请输入产品名称、品牌名称、企业简称等,多关键词用空格隔开") | |||
| } | |||
| if (full_poly == 6) { | |||
| $('#searchWord').attr("placeholder", "请输入技术名称、专家名称、企业简称等,多关键词用空格隔开") | |||
| } | |||
| } else { | |||
| full_type = $(this).attr("data-id") | |||
| } | |||
| } | |||
| }) | |||
| // 搜索按钮 | |||
| $('#searchBtn').click(function () { | |||
| var searchWord = $('#searchWord').val().trim(); | |||
| var params = '?keyword=' + searchWord + '&stype=' + full_type + '&full_poly=' + full_poly+"&fulltype="+full_type; | |||
| window.location.href = ctx + 'timelysearch/result' + params; | |||
| }) | |||
| // 回车搜索 | |||
| $(document).keydown(function (event) { | |||
| if (event.keyCode == 13) { | |||
| $('#searchBtn').trigger("click"); | |||
| } | |||
| }); | |||
| // 顶部导航跳转 | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), null, null); | |||
| }) | |||
| // 获取用户搜索的词 | |||
| function getSearchWordById() { | |||
| $.ajax({ | |||
| url: ctx + 'timelysearch/search', | |||
| type: 'post', | |||
| dataType: 'json', | |||
| data: {}, | |||
| success: function (res) { | |||
| console.log(res); | |||
| installSearchWord(res); | |||
| }, | |||
| error: function (xhr, ajaxOptions, thrownError) { | |||
| if (xhr.status == 403) { | |||
| window.location.href = ctxPath + "login"; | |||
| } | |||
| } | |||
| }); | |||
| } | |||
| /** | |||
| * 组装数据 | |||
| * @param res | |||
| */ | |||
| function installSearchWord(res) { | |||
| let code = res.code; | |||
| if (code == 200) { | |||
| let data = res.data; | |||
| let StrAll = ''; | |||
| let str1 = ''; | |||
| let str2 = ''; | |||
| for (let i = 0; i < data.length; i++) { | |||
| let dataJson = data[i]; | |||
| let search_word = dataJson.search_word; | |||
| let index = i % 2; | |||
| if (index == 0) { | |||
| str1 += '<li><span class="v-hot">' + (i + 1) + '</span> <a href=""><span>' + search_word + '</span></a></li>'; | |||
| } else { | |||
| str2 += '<li><span class="v-hot">' + (i + 1) + '</span> <a href=""><span>' + search_word + '</span></a></li>'; | |||
| } | |||
| } | |||
| let str3 = '<ul class="timeline timeline-left hot-content-list" style="padding-left: 200px;">' + str1 + '</ul>'; | |||
| let str4 = '<ul class="timeline timeline-left hot-content-list" style="padding-left: 100px;">' + str2 + '</ul>'; | |||
| StrAll = str3 + str4; | |||
| $("#searchwords").html(StrAll); | |||
| } | |||
| } | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,166 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title" th:text="${bidding.title}"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="publish_time">发布时间:<span th:text="${#strings.substring(bidding.publish_time,0,10)}"></span></span> | |||
| <span id="author">招标项目编号:<span th:text="${bidding.numberid}"></span></span> | |||
| <span id="source">信息来源:<span th:text="${bidding.sourceplatform}"></span></span> | |||
| <span id="yuanwen"><a target="_blank" th:href="${bidding.detail_url}">原文地址</a></span> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content" th:utext="${bidding.content_html}"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| }); | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,384 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| .mainTable{ | |||
| border-spacing:0; | |||
| border-collapse:collapse; | |||
| } | |||
| .tb{ | |||
| background:#F2F9FC; | |||
| width:13%; | |||
| } | |||
| .mainTable td{ | |||
| padding:10px 10px 11px 10px;border:#E4EEF6 1px solid;word-break:break-all;font-size:14px; | |||
| line-height: 1.6; | |||
| color: #222; | |||
| word-wrap: break-word; | |||
| } | |||
| .mainTable2 .tx{ | |||
| text-align: center; | |||
| width: 56px; | |||
| } | |||
| .mainTable2 th{ | |||
| text-align:center; | |||
| background:#F2F9FC; | |||
| border:#E4EEF6 1px solid; | |||
| border-collapse: collapse; | |||
| padding:12px 12px 12px 12px; | |||
| font-weight: normal; | |||
| color: #444; | |||
| line-height: 19px; | |||
| } | |||
| .mainTable2 td{ | |||
| padding:10px 10px 11px 10px;border:#E4EEF6 1px solid;word-break:break-all;font-size:14px; | |||
| line-height: 1.6; | |||
| color: #222; | |||
| word-wrap: break-word; | |||
| } | |||
| table{ | |||
| margin-bottom:40px; | |||
| } | |||
| .lcontent{ | |||
| float: left; | |||
| margin:18px 0px 10px 10px; | |||
| font-size: 14px; | |||
| color: #000; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="phone"></span> | |||
| <span id="address"></span> | |||
| <span id="publish_time"></span> | |||
| <span id="yuanwen"></span> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| articleDetail(); | |||
| }); | |||
| // 文章详情 | |||
| function articleDetail() { | |||
| $.ajax({ | |||
| url: ctxPath + 'fullsearch/companyDetails', | |||
| type: 'GET', | |||
| dataType: 'json', | |||
| data: { | |||
| article_public_id: articleId, | |||
| }, | |||
| success: function (res) { | |||
| let phone=res.phone_number; | |||
| let address=res.address; | |||
| let legal_person=res.legal_representative; | |||
| let code=res.uniformSocialCreditCode; | |||
| let insured_num=res.insured_num; | |||
| if(typeof phone=="undefined"){ | |||
| phone=res.phone; | |||
| } | |||
| if(typeof address=="undefined"){ | |||
| address=res.location; | |||
| } | |||
| if(typeof legal_person=="undefined"){ | |||
| legal_person=res.legal_person; | |||
| } | |||
| if(typeof code=="undefined"){ | |||
| code=res.taxpayer_identification; | |||
| } | |||
| if(typeof insured_num=="undefined"){ | |||
| insured_num=res.insureds; | |||
| } | |||
| //主要人员 | |||
| var keypersonhtml=''; | |||
| let keypersion=res.key_person; | |||
| var keypersonhead=''; | |||
| if(keypersion!=null){ | |||
| keypersonhead+='<h3>主要人员</h3><table class="mainTable2"><tbody>'+ | |||
| '<tr>'+ | |||
| '<th style="width:100px;">序号</th>'+ | |||
| '<th style="width:300px;">姓名</th>'+ | |||
| '<th style="width:410px;">职务</th>'+ | |||
| '</tr>'; | |||
| let person=JSON.parse(keypersion); | |||
| var keypersoncon=''; | |||
| console.log(person); | |||
| for(var i=0;i<person.length;i++){ | |||
| keypersoncon+='<tr>'+ | |||
| '<td>'+person[i].id+'</td>'+ | |||
| '<td>'+person[i].name+'</td>'+ | |||
| '<td>'+person[i].position+'</td>'+ | |||
| '</tr>'; | |||
| } | |||
| keypersoncon+='</tbody></table>'; | |||
| keypersonhtml=keypersonhead+keypersoncon; | |||
| } | |||
| var changeRecordHtml=''; | |||
| if(res.change_record!=null){ | |||
| //变更记录 | |||
| let changeRecord=JSON.parse(res.change_record); | |||
| if(changeRecord.length!=0){ | |||
| var changeRecordhead=''; | |||
| changeRecordhead+='<h3>变更记录</h3><table class="mainTable2"><tbody>'+ | |||
| '<tr>'+ | |||
| '<th style="width:100px;">序号</th>'+ | |||
| '<th style="width:200px;">变更日期</th>'+ | |||
| '<th style="width:220px;">变更项目</th>'+ | |||
| '<th style="width:287px;">变更前</th>'+ | |||
| '<th style="width:288px;">变更后</th>'+ | |||
| '</tr>'; | |||
| var changeRecordcon=''; | |||
| for(var i=0;i<changeRecord.length;i++){ | |||
| changeRecordcon+='<tr>'+ | |||
| '<td>'+changeRecord[i].id+'</td>'+ | |||
| '<td>'+changeRecord[i].alterDate+'</td>'+ | |||
| '<td>'+changeRecord[i].alterItem+'</td>'+ | |||
| '<td>'+changeRecord[i].alterBefore+'</td>'+ | |||
| '<td>'+changeRecord[i].alterAfter+'</td>'+ | |||
| '</tr>'; | |||
| } | |||
| changeRecordcon+='</tbody></table>'; | |||
| changeRecordHtml+=changeRecordhead+changeRecordcon; | |||
| } | |||
| } | |||
| //股东 | |||
| var gudonghtml=''; | |||
| if(res.shareholder!=null){ | |||
| let gu=JSON.parse(res.shareholder); | |||
| //股东信息 | |||
| if(gu.length!=0){ | |||
| var gudonghead=''; | |||
| gudonghead+='<h3>股东信息</h3><table class="mainTable2"><tbody>'+ | |||
| '<tr>'+ | |||
| '<th style="width:100px;">序号</th>'+ | |||
| '<th style="width:300px;">发起人/股东</th>'+ | |||
| '<th style="width:410px;">认缴出资额</th>'+ | |||
| '<th style="width:410px;">实际出资额</th>'+ | |||
| '</tr>'; | |||
| var gucon=''; | |||
| for(var i=0;i<gu.length;i++){ | |||
| gucon+='<tr>'+ | |||
| '<td>'+gu[i].id+'</td>'+ | |||
| '<td>'+gu[i].name+'</td>'+ | |||
| '<td>'+gu[i].capital_contribution+'</td>'+ | |||
| '<td>'+gu[i].actual_contribution+'</td>'+ | |||
| '</tr>'; | |||
| } | |||
| gucon+='</tbody></table>'; | |||
| gudonghtml+=gudonghead+gucon; | |||
| } | |||
| } | |||
| var push_time=res.establish_time; | |||
| push_time=/\d{4}-\d{1,2}-\d{1,2}/g.exec(push_time); | |||
| $('#title').html(res.name) | |||
| $('#phone').html('电话:' + phone) | |||
| $('#address').html('地址:' + address) | |||
| var html='<div class="row" style="margin-left:0px;margin-bottom:20px">'+ | |||
| '</div>'+ | |||
| '<h3>工商信息</h3>'+ | |||
| '<table class="mainTable">'+ | |||
| '<tbody>'+ | |||
| '<tr>'+ | |||
| '<td class="tb">法定代表人</td>'+ | |||
| '<td style="width:20%">'+legal_person+'</td>'+ | |||
| '<td class="tb">企业名称</td>'+ | |||
| '<td style="width:20%">'+res.name+'</td>'+ | |||
| '<td class="tb">统一社会信用代码</td>'+ | |||
| '<td style="width:14%">'+code+'</td>'+ | |||
| '</tr>'+ | |||
| '<tr>'+ | |||
| '<td class="tb">工商注册号</td>'+ | |||
| '<td style="width:20%">'+res.registration+'</td>'+ | |||
| '<td class="tb">核准日期</td>'+ | |||
| '<td style="width:20%">'+push_time+'</td>'+ | |||
| '<td class="tb">成立日期</td>'+ | |||
| '<td style="width:14%">'+push_time+'</td>'+ | |||
| '</tr><tr>'+ | |||
| '<td class="tb">参保人数</td>'+ | |||
| '<td style="width:20%">'+insured_num+'</td>'+ | |||
| '<td class="tb">登记状态</td>'+ | |||
| '<td style="width:20%">'+res.status+'</td>'+ | |||
| '<td class="tb">纳税人识别号</td>'+ | |||
| '<td style="width:14%">'+code+'</td>'+ | |||
| '</tr>'+ | |||
| '<tr>'+ | |||
| '<td class="tb">企业类型</td>'+ | |||
| '<td style="width:20%">'+res.enterprise_type+'</td>'+ | |||
| '<td class="tb">注册资本</td>'+ | |||
| '<td style="width:20%">'+res.registered_capital_str+'</td>'+ | |||
| '<td class="tb">所属行业</td>'+ | |||
| '<td style="width:14%">'+res.industry_involved+'</td>'+ | |||
| '</tr>'+ | |||
| '<tr>'+ | |||
| '<td class="tb">经营范围</td>'+ | |||
| '<td colspan=5>'+res.business_scope+'</td>'+ | |||
| '</tr>'+ | |||
| '</tbody></table>'; | |||
| html+=keypersonhtml+gudonghtml+changeRecordHtml; | |||
| $('#content').html(html); | |||
| }, | |||
| error: function (xhr, ajaxOptions, thrownError) { | |||
| console.log(xhr); | |||
| if (xhr.status == 403) { | |||
| window.location.href = ctxPath + "login"; | |||
| } | |||
| } | |||
| } | |||
| ); | |||
| } | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,873 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-8"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="source"></span> | |||
| <span id="author"></span> | |||
| <span id="publish_time"></span> | |||
| <span id="category"></span> | |||
| <span id="industrylable"></span> | |||
| <span id="eventlable"></span> | |||
| <span id="yuanwen"></span> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="col-lg-4"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title m-b-0"> | |||
| 情感分析 | |||
| <span class="btn waves-effect waves-light btn-rounded btn-sm btn-success" | |||
| id="emotionText"></span> | |||
| </div> | |||
| <div class="mood-content"> | |||
| <div id="mood"></div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及关键词</div> | |||
| <div class="detail-tags" id="referredList"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">文章标签</div> | |||
| <div class="detail-tags" id="keywordList"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="orgCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及企业</div> | |||
| <div class="detail-tags" id="org"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="ntoCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及政府机构</div> | |||
| <div class="detail-tags" id="nto"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="bankCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及银行</div> | |||
| <div class="detail-tags" id="bank"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="hospitalCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及医院</div> | |||
| <div class="detail-tags" id="hospital"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="schoolCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及高校院所</div> | |||
| <div class="detail-tags" id="school"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="ipoCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及主板上市</div> | |||
| <div class="detail-tags" id="ipo"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="xsbCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及新三板上市</div> | |||
| <div class="detail-tags" id="xsb"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="hkCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及海外/港股</div> | |||
| <div class="detail-tags" id="hk"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="w500"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及世界五百强</div> | |||
| <div class="detail-tags" id="wt"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="c500"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及中国五百强</div> | |||
| <div class="detail-tags" id="ct"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="td"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及高科技企业</div> | |||
| <div class="detail-tags" id="th"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="vcCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及投资机构</div> | |||
| <div class="detail-tags" id="vc"></div> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="card" id="perCard">--> | |||
| <!-- <div class="card-body">--> | |||
| <!-- <div class="detail-card-title">文章涉及人物</div>--> | |||
| <!-- <div class="detail-tags" id="per"></div>--> | |||
| <!-- </div>--> | |||
| <!-- </div>--> | |||
| <div class="card" id="locCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及地点</div> | |||
| <div class="detail-tags" id="loc"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="policyCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">涉及政策条例</div> | |||
| <div class="detail-tags" id="policy"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="industrylableCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">行业标签</div> | |||
| <div class="detail-tags" id="industrylable"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card" id="eventlableCard"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">事件标签</div> | |||
| <div class="detail-tags" id="eventlable"></div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0"> | |||
| <div class="card-body"> | |||
| <div class="detail-card-title">相关文章</div> | |||
| <div class="article-content" style="max-height:400px;" id="relatedArticlesList"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var groupId = [[${groupid}]]; | |||
| var projectId = [[${projectid}]]; | |||
| var articleId = [[${articleid}]]; | |||
| var relatedword = [[${relatedword}]]; | |||
| var publish_time = [[${publish_time}]]; | |||
| var menu = [[${menu}]]; | |||
| // let currentPageByDetail = [[${currentPageByDetail}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| articleDetail(); | |||
| }); | |||
| // 文章详情 | |||
| function articleDetail() { | |||
| $.ajax({ | |||
| url: ctxPath + 'monitor/articleDetail', | |||
| type: 'post', | |||
| dataType: 'json', | |||
| data: { | |||
| articleId: articleId, | |||
| projectId: projectId,relatedword:relatedword,publish_time: publish_time | |||
| }, | |||
| success: function (res) { | |||
| console.log(res); | |||
| if (res.emotionText) { | |||
| $('#emotionText').html(res.emotionText); | |||
| } | |||
| if (res.detail) { | |||
| // let articleIdArray = articleIds.split(","); | |||
| // let currentBeforeId = ''; | |||
| // let currentBefore = ''; | |||
| // let currentAfterId = ''; | |||
| // let currentAfter = ''; | |||
| // let pageStrAll = ''; | |||
| // let pageStrStart = '<div id="pageArticle" class="page-up-next" style=" display: flex !important;padding-top: 20px !important;">'; | |||
| // let pageStrEnd = '</div>'; | |||
| // for (let i = 0; i < articleIdArray.length; i++) { | |||
| // let articleIdJson = articleIdArray[i]; | |||
| // let currentArticleId = articleIdJson.id; | |||
| //// let currentTitle = articleIdJson.title; | |||
| // if (currentArticleId == articleId) { | |||
| // if (i != 0) { | |||
| // let articleIdJsonBefore = articleIdArray[i - 1]; | |||
| // currentBeforeId = articleIdJsonBefore.id; | |||
| // let currentBeforeTitle = articleIdJsonBefore.title; | |||
| // currentBefore = '<a style="cursor:pointer;" onclick="toDetail('' + currentBeforeId + '','' + groupId + '','' + projectId + '')"><span data-id="' + currentBeforeId + '">上一篇</span>' + currentBeforeTitle + '</a>'; | |||
| // } else { | |||
| // currentBefore = '<a style="cursor:pointer;" href="javascript:volid(0);"><span>上一篇</span>暂无上一篇</a>'; | |||
| // } | |||
| // | |||
| // if (i != (articleIdArray.length - 1)) { | |||
| // let articleIdJsonAfter = articleIdArray[i + 1]; | |||
| // currentAfterId = articleIdJsonAfter.id; | |||
| // let currentAfterTitle = articleIdJsonAfter.title; | |||
| // currentAfter = '<a style="cursor:pointer;" onclick="toDetail('' + currentAfterId + '','' + groupId + '','' + projectId + '')"><span data-id="' + currentAfterId + '">下一篇</span>' + currentAfterTitle + '</a>'; | |||
| // } else { | |||
| // currentAfter = '<a style="cursor:pointer;" href="javascript:volid(0);"><span>下一篇</span>暂无下一篇</a>'; | |||
| // } | |||
| // } | |||
| // } | |||
| // | |||
| // pageStrAll = pageStrStart + currentBefore + currentAfter + pageStrEnd; | |||
| var detail = res.detail; | |||
| let imgListAll = ''; | |||
| let imgListStr1 = '<div>'; | |||
| let imgListStr2 = ''; | |||
| let imgListStr3 = '</div>'; | |||
| var imggroup = ''; | |||
| if (detail.sourcewebsitename == "微博") { | |||
| let extend_string_one = detail.extend_string_one; | |||
| if (extend_string_one != "") { | |||
| let extend_string_oneJson = JSON.parse(extend_string_one); | |||
| debugger; | |||
| let imglist = extend_string_oneJson.imglist; | |||
| for (let i = 0; i < imglist.length; i++) { | |||
| let imgurl = imglist[i].imgurl; | |||
| // console.info("img:" + imgurl); | |||
| let imgurlstr = ' <div class="img-box" style=" background: url(' + imgurl + ') no-repeat; background-size: cover;display: inline-block !important;width: 160px;background-position: center;"></div>' | |||
| imgListStr2 += imgurlstr; | |||
| } | |||
| let veviostr = ''; | |||
| if(extend_string_oneJson.hasOwnProperty('videoorientationurl')){ | |||
| veviostr+='<video src="'+extend_string_oneJson.videoorientationurl+'" controls="controls"></video>'; | |||
| } | |||
| imggroup = '<div class="img-group">' + imgListStr2 + '</div>' | |||
| imggroup = imggroup+veviostr; | |||
| } | |||
| }else{ | |||
| debugger; | |||
| let veviostr = ''; | |||
| let extend_string_one = detail.extend_string_one; | |||
| if (extend_string_one != "") { | |||
| let extend_string_oneJson = JSON.parse(extend_string_one); | |||
| if(extend_string_oneJson.hasOwnProperty('videoorientationurl')){ | |||
| if(extend_string_oneJson.videoorientationurl!=''){ | |||
| veviostr+='<div align="center"><video src="'+extend_string_oneJson.videoorientationurl+'" controls="controls" style="width:30%;height:40%;text-align: center"></video></div>'; | |||
| } | |||
| } | |||
| } | |||
| imggroup = imggroup+veviostr; | |||
| } | |||
| imgListAll = imgListStr1 + imggroup + imgListStr3; | |||
| $('#title').html(res.title); | |||
| $('#source').html('<i class="mdi mdi-earth"></i> 来源: ' + detail.sourcewebsitename); | |||
| $('#author').html('<i class="mdi mdi-face"></i> 作者:' + isNull(detail.author)); | |||
| $('#publish_time').html('<i class="mdi mdi-clock"></i> ' + timeParse(detail.publish_time)); | |||
| $('#industrylable').html('<i class="mdi fa-industry"></i> ' + detail.industrylable) | |||
| $('#eventlable').html('<i class="mdi fa-map-marker"></i> ' + detail.eventlable) | |||
| $('#yuanwen').html('<a href="' + detail.source_url + '" target="_blank">查看原文</a>'); | |||
| if (detail.sourcewebsitename == "微博" && detail.extend_string_one != "") { | |||
| $('#content').html(res.text + imgListAll); | |||
| } else { | |||
| if(detail.sourcewebsitename == "微信"){ | |||
| let datahtml = res.text; | |||
| //datahtml = '<img data-ratio="1" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/YdtjuibsaqbsAkluHgg5lCtTSm0TRRByI8y8QNouvwWYSvN8TYVB5Rfskqn5pnsibEAI7VqXEekvjYveJHdIk4rg/640?wx_fmt=jpeg" data-type="jpeg" data-w="1" height="475" style="box-sizing:border-box;width: 299px;height: 475px;" width="299">'; | |||
| datahtml = datahtml.replace(/data-src/g, "src"); | |||
| $('#content').html(datahtml + imgListAll); | |||
| }else{ | |||
| $('#content').html(res.text + imgListAll); | |||
| } | |||
| } | |||
| // $('#content').html(detail.text + pageStrAll); | |||
| var classArray = ['btn-outline-primary', 'btn-outline-success', 'btn-outline-info', 'btn-outline-warning']; | |||
| if (detail.hasOwnProperty('key_words') && detail.key_words) { | |||
| var keywords = JSON.parse(detail.key_words); | |||
| var index = 0; | |||
| var keywordArrary = []; | |||
| $('#keywordList').html(''); | |||
| for (key in keywords) { | |||
| if (index < 5) { | |||
| keywordArrary.push(key); | |||
| } | |||
| var classIndex = Math.floor(Math.random() * (3)); | |||
| $('#keywordList').append('<span style="margin-right: 5px;" class="btn waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| index++; | |||
| } | |||
| if (keywordArrary.length > 0) { | |||
| relatedArticles(keywordArrary.join(',')); | |||
| } | |||
| } | |||
| if (detail.hasOwnProperty('ner') && detail.ner) { | |||
| let ner = JSON.parse(detail.ner); | |||
| let org = ner.org; | |||
| let orgmap = new Map(Object.entries(org)); | |||
| if (orgmap.size < 1) { | |||
| $('#orgCard').hide(); | |||
| } else { | |||
| $('#org').html(''); | |||
| // console.log(map) | |||
| orgmap.forEach(function (value, key) { | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#org').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| }) | |||
| } | |||
| let bank = ner.bank; | |||
| let bankmap = new Map(Object.entries(bank)); | |||
| if (bankmap.size < 1) { | |||
| $('#bankCard').hide(); | |||
| } else { | |||
| $('#bank').html(''); | |||
| // console.log(map) | |||
| bankmap.forEach(function (value, key) { | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#bank').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| }) | |||
| } | |||
| let hospital = ner.hospital; | |||
| let hospitalmap = new Map(Object.entries(hospital)); | |||
| if (hospitalmap.size < 1) { | |||
| $('#hospitalCard').hide(); | |||
| } else { | |||
| $('#hospital').html(''); | |||
| // console.log(map) | |||
| hospitalmap.forEach(function (value, key) { | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#hospital').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| }) | |||
| } | |||
| let school = ner.school; | |||
| let schoolmap = new Map(Object.entries(school)); | |||
| if (schoolmap.size < 1) { | |||
| $('#schoolCard').hide(); | |||
| } else { | |||
| $('#school').html(''); | |||
| // console.log(map) | |||
| schoolmap.forEach(function (value, key) { | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#school').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| }) | |||
| } | |||
| let nto = ner.nto; | |||
| let ntomap = new Map(Object.entries(nto)); | |||
| if (ntomap.size < 1) { | |||
| $('#ntoCard').hide(); | |||
| } else { | |||
| $('#nto').html(''); | |||
| // console.log(map) | |||
| ntomap.forEach(function (value, key) { | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#nto').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| }) | |||
| } | |||
| // let per = ner.per; | |||
| // let permap = new Map(Object.entries(per)); | |||
| // if (permap.size<1) { | |||
| // $('#perCard').hide(); | |||
| // }else{ | |||
| // $('#per').html(''); | |||
| // // console.log(map) | |||
| // permap.forEach(function (value, key) { | |||
| // let classIndex = Math.floor(Math.random() * (3)); | |||
| // $('#per').append('<span style="margin-right: 5px;" class="btn waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| // }) | |||
| // } | |||
| let ipo = ner.IPO; | |||
| let ipomap = new Map(Object.entries(ipo)); | |||
| let sz = false; | |||
| if (ipomap.size < 1) { | |||
| $('#ipoCard').hide(); | |||
| } else { | |||
| $('#ipo').html(''); | |||
| // console.log(map) | |||
| ipomap.forEach(function (value, key) { | |||
| let v = new Map(Object.entries(value)); | |||
| if (v.get("chara").indexOf("SZ") != -1 || v.get("chara").indexOf("SH") != -1|| v.get("chara").indexOf("KCB") != -1) { | |||
| sz = true; | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#ipo').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| } | |||
| }) | |||
| if (!sz) { | |||
| $('#ipoCard').hide(); | |||
| } | |||
| } | |||
| let xsb = ner.IPO; | |||
| let xsbmap = new Map(Object.entries(xsb)); | |||
| let ff = false; | |||
| if (xsbmap.size < 1) { | |||
| $('#xsbCard').hide(); | |||
| } else { | |||
| $('#xsb').html(''); | |||
| // console.log(map) | |||
| xsbmap.forEach(function (value, key) { | |||
| let v = new Map(Object.entries(value)); | |||
| if (v.get("chara").indexOf("XSB") != -1) { | |||
| ff = true; | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#xsb').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| } | |||
| }) | |||
| if (!ff) { | |||
| $('#xsbCard').hide(); | |||
| } | |||
| } | |||
| let hongkong = ner.IPO; | |||
| let hkmap = new Map(Object.entries(hongkong)); | |||
| let hh = false; | |||
| if (hkmap.size < 1) { | |||
| $('#hkCard').hide(); | |||
| } else { | |||
| $('#hk').html(''); | |||
| // console.log(map) | |||
| hkmap.forEach(function (value, key) { | |||
| let v = new Map(Object.entries(value)); | |||
| if (v.get("chara").indexOf("HK") != -1 || v.get("chara").indexOf("NYSE") != -1|| v.get("chara").indexOf("NASDAQ") != -1) { | |||
| hh = true; | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#hk').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| } | |||
| }) | |||
| if (!hh) { | |||
| $('#hkCard').hide(); | |||
| } | |||
| } | |||
| let w500t = ner.IPO; | |||
| let wtmap = new Map(Object.entries(w500t)); | |||
| let ww = false; | |||
| if (wtmap.size < 1) { | |||
| $('#w500').hide(); | |||
| } else { | |||
| $('#wt').html(''); | |||
| // console.log(map) | |||
| wtmap.forEach(function (value, key) { | |||
| let v = new Map(Object.entries(value)); | |||
| if (v.get("chara").indexOf("W500T") != -1) { | |||
| ww = true; | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#wt').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| } | |||
| }) | |||
| if (!ww) { | |||
| $('#w500').hide(); | |||
| } | |||
| } | |||
| let c500t = ner.IPO; | |||
| let ctmap = new Map(Object.entries(c500t)); | |||
| let cc = false; | |||
| if (ctmap.size < 1) { | |||
| $('#c500').hide(); | |||
| } else { | |||
| $('#ct').html(''); | |||
| // console.log(map) | |||
| ctmap.forEach(function (value, key) { | |||
| let v = new Map(Object.entries(value)); | |||
| if (v.get("chara").indexOf("C500T") != -1) { | |||
| cc = true; | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#ct').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| } | |||
| }) | |||
| if (!cc) { | |||
| $('#c500').hide(); | |||
| } | |||
| } | |||
| let th = ner.IPO; | |||
| let thmap = new Map(Object.entries(th)); | |||
| let tt = false; | |||
| if (thmap.size < 1) { | |||
| $('#td').hide(); | |||
| } else { | |||
| $('#th').html(''); | |||
| // console.log(map) | |||
| thmap.forEach(function (value, key) { | |||
| let v = new Map(Object.entries(value)); | |||
| if (v.get("chara").indexOf("Innovative") != -1||v.get("chara").indexOf("Unicorn") != -1||v.get("chara").indexOf("TechInnovDemon") != -1||v.get("chara").indexOf("AdvTechServe") != -1||v.get("chara").indexOf("TechBusIncu") != -1||v.get("chara").indexOf("Gazelle") != -1||v.get("chara").indexOf("InvisaChampion") != -1||v.get("chara").indexOf("MakerSpace") != -1||v.get("chara").indexOf("Specialized") != -1) { | |||
| tt = true; | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#th').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| } | |||
| }) | |||
| if (!tt) { | |||
| $('#td').hide(); | |||
| } | |||
| } | |||
| let vc = ner.IPO; | |||
| let vcmap = new Map(Object.entries(vc)); | |||
| let vv = false; | |||
| if (vcmap.size < 1) { | |||
| $('#vcCard').hide(); | |||
| } else { | |||
| $('#vc').html(''); | |||
| // console.log(map) | |||
| vcmap.forEach(function (value, key) { | |||
| let v = new Map(Object.entries(value)); | |||
| if (v.get("chara").indexOf("VC") != -1) { | |||
| vv = true; | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#vc').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| } | |||
| }) | |||
| if (!vv) { | |||
| $('#vcCard').hide(); | |||
| } | |||
| } | |||
| let loc = ner.loc; | |||
| let locmap = new Map(Object.entries(loc)); | |||
| if (locmap.size < 1) { | |||
| $('#locCard').hide(); | |||
| } else { | |||
| $('#loc').html(''); | |||
| // console.log(map) | |||
| locmap.forEach(function (value, key) { | |||
| let classIndex = Math.floor(Math.random() * (3)); | |||
| $('#loc').append('<span data-keyword="' + key + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + key + '</span>'); | |||
| }) | |||
| } | |||
| } | |||
| if (detail.hasOwnProperty('policylable') && detail.policylable) { | |||
| let policylable = JSON.parse(detail.policylable); | |||
| if(policylable.length>0){ | |||
| for(let i=0;i<policylable.length;i++){ | |||
| var classIndex = Math.floor(Math.random() * (3)); | |||
| $('#policy').append('<span data-keyword="' + policylable[i].policy + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">《' + policylable[i].policy + '》</span>'); | |||
| } | |||
| }else{ | |||
| $("#policyCard").hide(); | |||
| } | |||
| }else{ | |||
| $("#policyCard").hide(); | |||
| } | |||
| //行业标签 | |||
| /* if (detail.hasOwnProperty('industrylable') && detail.industrylable) { | |||
| let industrylable = detail.industrylable; | |||
| if(industrylable!=''){ | |||
| var classIndex = Math.floor(Math.random() * (3)); | |||
| $('#industrylable').append('<span data-keyword="' + industrylable + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + industrylable + '</span>'); | |||
| }else{ | |||
| $("#industrylableCard").hide(); | |||
| } | |||
| }else{ | |||
| $("#industrylableCard").hide(); | |||
| } */ | |||
| //事件标签 | |||
| /* if (detail.hasOwnProperty('eventlable') && detail.eventlable) { | |||
| let eventlable = detail.eventlable; | |||
| if(eventlable!=''){ | |||
| var classIndex = Math.floor(Math.random() * (3)); | |||
| $('#eventlable').append('<span data-keyword="' + eventlable + '" style="margin-right: 5px;" class="btn skipkeyword waves-effect waves-light btn-rounded ' + classArray[classIndex] + ' btn-sm">' + eventlable + '</span>'); | |||
| }else{ | |||
| $("#eventlableCard").hide(); | |||
| } | |||
| }else{ | |||
| $("#eventlableCard").hide(); | |||
| } */ | |||
| } | |||
| if (res.emotionChart) { | |||
| emotionChart(res.emotionChart); | |||
| } | |||
| }, | |||
| error: function (xhr, ajaxOptions, thrownError) { | |||
| console.log(xhr); | |||
| if (xhr.status == 403) { | |||
| window.location.href = ctxPath + "login"; | |||
| } | |||
| } | |||
| } | |||
| ); | |||
| } | |||
| // function toDetail(article_public_id, g_id, p_id) { | |||
| // window.location.href = ctxPath + 'monitor/detail/' + article_public_id + '?groupid=' + g_id + '&projectid=' + p_id + '&articleids=' + encodeURI(articleIds); | |||
| // } | |||
| // 相关文章 | |||
| function relatedArticles(keywords) { | |||
| $.ajax({ | |||
| url: ctxPath + 'monitor/relatedArticles', | |||
| type: 'post', | |||
| dataType: 'json', | |||
| data: { | |||
| keywords: keywords | |||
| }, | |||
| beforeSend: function () { | |||
| loading("#relatedArticlesList"); | |||
| }, | |||
| success: function (res) { | |||
| console.log(res); | |||
| var list = res; | |||
| $('#relatedArticlesList').html(''); | |||
| for (var i = 0; i < list.length; i++) { | |||
| var time = timeParse(list[i].publishTime); | |||
| if (time.length > 10) { | |||
| time = time.substring(0, 10); | |||
| } | |||
| var html = '<div class="article-content-list">' + | |||
| '<a target="_blank" href="' + ctxPath + 'monitor/detail/' + list[i].article_public_id + '?menu=' + menu + '&groupid=' + groupId + '&projectid=' + projectId + '">' + | |||
| '<div class="font-medium">' + list[i].title + '</div>' + | |||
| '<div class="article-content-list-con text-over-2 font-13">' + | |||
| list[i].content + | |||
| '</div>' + | |||
| '<div class="article-content-footer">' + | |||
| '<span class="text-muted"><i class="mdi mdi-earth"></i> ' + list[i].sourceName + '</span>' + | |||
| '<span class="text-muted"><i class="mdi mdi-clock"></i> ' + time + '</span>' + | |||
| '</div>' + | |||
| '</a>' + | |||
| '</div>'; | |||
| $('#relatedArticlesList').append(html); | |||
| } | |||
| if (list.length == 0) { | |||
| $('#relatedArticlesList').html('<div class="article-content-list">暂无数据!</div>'); | |||
| } | |||
| }, | |||
| error: function (xhr, ajaxOptions, thrownError) { | |||
| console.log(xhr); | |||
| if (xhr.status == 403) { | |||
| window.location.href = ctxPath + "login"; | |||
| } | |||
| } | |||
| }); | |||
| } | |||
| function isNull(arg) { | |||
| if (arg) { | |||
| return arg; | |||
| } else { | |||
| return '-'; | |||
| } | |||
| } | |||
| // 左侧方案切换 | |||
| function switchProject(event) { | |||
| let $event = $(event); | |||
| var groupId = $event.attr("data-groupid"); | |||
| var projectId = $event.attr("data-index"); | |||
| window.location.href = ctxPath + 'monitor?groupid=' + groupId + '&projectid=' + projectId; | |||
| } | |||
| // 情感分析 | |||
| function emotionChart(data) { | |||
| var o = c3.generate({ | |||
| bindto: "#mood", | |||
| size: {height: 200}, | |||
| color: {pattern: ["#72d0c0", "#989898", "#ed8b80"]}, | |||
| data: { | |||
| // columns: [ | |||
| // ["正面", 7304], | |||
| // ["中性", 1540], | |||
| // ["负面", 1156], | |||
| // ], | |||
| columns: data, | |||
| type: "pie", | |||
| }, | |||
| legend: { | |||
| show: false | |||
| } | |||
| }); | |||
| } | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,253 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="source"></span> | |||
| <span id="author"></span> | |||
| <span id="publish_time"></span> | |||
| <span id="yuanwen"></span> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content"> | |||
| <div id="jianjie"> | |||
| </div> | |||
| <br> | |||
| <div class="feed-activity-list"> | |||
| <table class="table table-bordered"> | |||
| <thead> | |||
| <tr> | |||
| <th>图标</th> | |||
| <th>受资方</th> | |||
| <th>时间</th> | |||
| <th>轮次</th> | |||
| <th>金额</th> | |||
| <th>投资方</th> | |||
| <th>采集时间</th> | |||
| </tr> | |||
| </thead> | |||
| <tbody id="list"> | |||
| </tbody> | |||
| </table> | |||
| </div> | |||
| <br> | |||
| <div class="feed-activity-list"> | |||
| <h3>融资历史</h3> | |||
| <table class="table table-bordered"> | |||
| <thead> | |||
| <tr> | |||
| <th>序号</th> | |||
| <th>轮次</th> | |||
| <th>投资方</th> | |||
| <th>时间</th> | |||
| <th>金额</th> | |||
| </tr> | |||
| </thead> | |||
| <tbody id="list2"> | |||
| </tbody> | |||
| </table> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| var investment = [[${investment}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| articleDetail(); | |||
| }); | |||
| // 文章详情 | |||
| function articleDetail() { | |||
| let res = investment | |||
| console.log(res) | |||
| $('#title').html(res.title) | |||
| $("#jianjie").html('<p>简介 : '+res.infoIntro+'</p><p>行业 : ' + res.industry + '</p>'); | |||
| var investorArray = JSON.parse(res.investorArray) | |||
| var investors = [] | |||
| for (var j = 0; j < investorArray.length; j++) { | |||
| var investor = investorArray[j]; | |||
| investors.push(investor.investorName) | |||
| } | |||
| var push_time=res.push_time; | |||
| push_time=/\d{4}-\d{1,2}-\d{1,2}/g.exec(push_time); | |||
| var html = '<tr>' | |||
| +'<td><img style="width: 100px;" src="'+res.companyLogo+'"></td>' | |||
| +'<td><a target="_blank" href="'+res.deatilUrl+'">'+res.companyName+'</a></td>' | |||
| +'<td>'+push_time+'</td>' | |||
| +'<td>'+res.rounds+'</td>' | |||
| +'<td>'+res.money+'</td>' | |||
| +'<td>'+investors.join('<br>')+'</td>' | |||
| +'<td>'+res.spider_time+'</td>' | |||
| +'</tr>' | |||
| $('#list').html(html) | |||
| var historyArray = JSON.parse(res.historyArray) | |||
| for (var i = 0; i < historyArray.length; i++) { | |||
| var obj = historyArray[i] | |||
| var history_time=obj.history_time; | |||
| history_time=/\d{4}-\d{1,2}-\d{1,2}/g.exec(push_time); | |||
| var html = '<tr>' | |||
| +'<td>'+(i+1)+'</td>' | |||
| +'<td>'+obj.history_rounds+'</td>' | |||
| +'<td>'+obj.history_investors+'</td>' | |||
| +'<td>'+history_time+'</td>' | |||
| +'<td>'+obj.history_money+'</td>' | |||
| +'</tr>' | |||
| $('#list2').append(html) | |||
| } | |||
| if (historyArray.length == 0) { | |||
| $('#list2').html('<tr><td colspan=5>暂无数据!</td></tr>') | |||
| } | |||
| } | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,181 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title" th:text="${invite.invite_title}"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="author" style="float: inherit;"><a th:text="${invite.company_name}"></a><span th:text="${invite.min_salary}"></span>-<span th:text="${invite.max_salary}"></span>/月</span> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content"> | |||
| <div class="conSelect detail"> | |||
| <p class="titleList">职位信息</p> | |||
| <div id="duty_info"> | |||
| <p th:text="${invite.duty_describe}"></p> | |||
| </div> | |||
| </div> | |||
| <div class="conSelect detail"> | |||
| <p class="titleList">联系方式</p> | |||
| <div id="address"> | |||
| <p th:text="${invite.work_address}"></p> | |||
| </div> | |||
| </div> | |||
| <div class="conSelect detail"> | |||
| <p class="titleList">公司信息</p> | |||
| <div id="companyInfos"> | |||
| <p th:text="${invite.company_intro}"></p> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| }); | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,169 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title" th:text="${judgment.title}"></h4> | |||
| <div class="detail-tips"> | |||
| <!-- 截取时间(去除时分秒) --> | |||
| <span>法院:<span th:text="${judgment.caseCourt}"></span></span> | |||
| <span id="publish_time">发布时间:<span th:text="${#strings.substring(judgment.publishDate,0,10)}"></span></span> | |||
| <span id="author">仲裁时间:<span th:text="${#strings.substring(judgment.refereeTime,0,10)}"></span></span><br> | |||
| <span id="source">案件类型:<span th:text="${judgment.caseType}"></span></span> | |||
| <span id="source">信息来源:<span th:text="${judgment.sourceName}"></span></span> | |||
| <span id="yuanwen"><a target="_blank" th:href="${judgment.sourceUrl}">原文地址</a></span> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content" th:utext="${judgment.judgment_html}"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| }); | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,172 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| #content td{ | |||
| width: 25%; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title" th:text="${knowLedge.title}"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="author">申请号:<span th:text="${knowLedge.applyMark}"></span></span> | |||
| <span id="author" style="float: inherit;">申请日:<span th:text="${knowLedge.applyDay}"></span></span> | |||
| <!-- <span id="yuanwen"><a target="_blank" th:href="${bidding.detail_url}">原文地址</a></span> --> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content" th:utext="${knowLedge.content_html}"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| let html=[[${knowLedge.content_html}]] | |||
| console.log(html) | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| }); | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,211 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <!-- <div class="card"> | |||
| <div class="card-body"> | |||
| </div> | |||
| </div> --> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="source"></span> | |||
| <span id="author"></span> | |||
| <span id="publish_time"></span> | |||
| <span id="yuanwen"></span> | |||
| </div> | |||
| <div class="detail-content" id="content"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| articleDetail(); | |||
| }); | |||
| // 文章详情 | |||
| function articleDetail() { | |||
| $.ajax({ | |||
| url: ctxPath + 'fullsearch/getresearch-report-detail', | |||
| type: 'GET', | |||
| dataType: 'json', | |||
| data: { | |||
| article_public_id: articleId, | |||
| type:type | |||
| }, | |||
| beforeSend: function () { | |||
| loading("#content") | |||
| }, | |||
| success: function (res) { | |||
| console.log(res); | |||
| //res = JSON.parse(res); | |||
| let date=/\d{4}-\d{1,2}-\d{1,2}/g.exec(res.reportDate); | |||
| var html = ''; | |||
| $('#title').html(res.title) | |||
| html+='<div>'+ | |||
| '</div>'+ | |||
| '<div style="margin-top: 5px;">'+ | |||
| '<span style="float: left;">'+date+'</span>'+ | |||
| '<a href="'+res.url+'" target="_black" style="float: left; margin-left: 20px;">'+ | |||
| '</div>'+ | |||
| '<i class="fa fa-arrows-alt"></i> 全屏查看</a> '+ | |||
| '<p id="detial_information" style="width:85%;margin-top: 50px !important;">'+ | |||
| '<iframe id="myiframe" src="'+res.url+'" scrolling="no" name="pdfPage" frameborder="0" width="100%" height="905px">'+ | |||
| '</p>' | |||
| '</iframe>'+ | |||
| $('#content').html(html); | |||
| }, | |||
| error: function (xhr, ajaxOptions, thrownError) { | |||
| console.log(xhr); | |||
| if (xhr.status == 403) { | |||
| window.location.href = ctxPath + "login"; | |||
| } | |||
| } | |||
| } | |||
| ); | |||
| } | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,422 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="author" content=""> | |||
| <meta name="referrer" content="no-referrer" /> | |||
| <link rel="icon" type="image/png" sizes="16x16" | |||
| th:href="@{/assets/images/favicon.png}"> | |||
| <title>即时搜索·网络情报分析系统</title> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/site.min.css}" rel="stylesheet" /> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" | |||
| rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <link rel="stylesheet" href="../dist/css/main.css" /> | |||
| <style type="text/css"> | |||
| i { | |||
| font-style: normal; | |||
| } | |||
| .monitor-content-title>a { | |||
| cursor: pointer; | |||
| } | |||
| .ntag { | |||
| color: #128bed; | |||
| background: #e7f4ff; | |||
| height: 22px; | |||
| font-weight: normal; | |||
| display: inline-block; | |||
| line-height: 14px; | |||
| font-size: 12px; | |||
| padding: 4px 8px 4px 8px; | |||
| margin-right: 4px; | |||
| border-radius: 2px; | |||
| } | |||
| .govtag { | |||
| color: #666; | |||
| background: #e7f4ff; | |||
| height: 22px; | |||
| font-weight: normal; | |||
| display: inline-block; | |||
| line-height: 14px; | |||
| font-size: 12px; | |||
| padding: 4px 8px 4px 8px; | |||
| margin-right: 4px; | |||
| border-radius: 2px; | |||
| } | |||
| .ipotag { | |||
| color: #747f88; | |||
| background: #fff7f6; | |||
| height: 22px; | |||
| font-weight: normal; | |||
| display: inline-block; | |||
| line-height: 14px; | |||
| font-size: 12px; | |||
| padding: 4px 8px 4px 8px; | |||
| margin-right: 4px; | |||
| border-radius: 2px; | |||
| } | |||
| .eventlable { | |||
| color: #747f88; | |||
| background: #e7f4f6; | |||
| height: 22px; | |||
| font-weight: normal; | |||
| display: inline-block; | |||
| line-height: 14px; | |||
| font-size: 12px; | |||
| padding: 4px 8px 4px 8px; | |||
| margin-right: 4px; | |||
| border-radius: 2px; | |||
| } | |||
| .industrylable { | |||
| color: #747f88; | |||
| background: #fff800; | |||
| height: 22px; | |||
| font-weight: normal; | |||
| display: inline-block; | |||
| line-height: 14px; | |||
| font-size: 12px; | |||
| padding: 4px 8px 4px 8px; | |||
| margin-right: 4px; | |||
| border-radius: 2px; | |||
| } | |||
| .categorylable { | |||
| color: #ffffff; | |||
| background: #74aeea; | |||
| height: 22px; | |||
| font-weight: normal; | |||
| display: inline-block; | |||
| line-height: 14px; | |||
| font-size: 12px; | |||
| padding: 4px 8px 4px 8px; | |||
| margin-right: 4px; | |||
| border-radius: 2px; | |||
| } | |||
| #plus:hover { | |||
| color: #128bed; | |||
| } | |||
| #articlebody{ | |||
| padding-top: 10px !important; | |||
| } | |||
| .ddda { | |||
| line-height: 35px; | |||
| color: #979797; | |||
| font-size: 14px; | |||
| cursor: pointer; | |||
| width: 6.34%; | |||
| font-family: "Microsoft YaHei"; | |||
| position: relative; | |||
| left: 0; | |||
| } | |||
| .numaa { | |||
| color: #b6b6b6; | |||
| } | |||
| /* .btn { | |||
| padding: 0px; | |||
| } */ | |||
| .industrylist { | |||
| /* width: 68vw; */ | |||
| width: 100%; | |||
| height: 40px; | |||
| overflow: hidden; | |||
| float: left; | |||
| margin: 0 auto; | |||
| } | |||
| .industrylist1 { | |||
| /* width: 68vw; */ | |||
| width: 100%; | |||
| height: auto; | |||
| overflow: auto; | |||
| float: left; | |||
| margin: 0 auto; | |||
| } | |||
| </style> | |||
| <style type="text/css"> | |||
| .monitor-content-title>a { | |||
| cursor: pointer | |||
| } | |||
| .right-pic { | |||
| float: right; | |||
| min-height: 100px; | |||
| margin-right: 60px; | |||
| margin-top: 15px; | |||
| } | |||
| .head-img { | |||
| width: 35px; | |||
| height: 35px; | |||
| border-radius: 50%; | |||
| overflow: hidden; | |||
| margin-right: 10px; | |||
| } | |||
| .head-img>div { | |||
| width: 100%; | |||
| height: 100%; | |||
| background-size: cover !important; | |||
| background-position: center !important; | |||
| } | |||
| .bd-answer { | |||
| background: #f8f8f8; | |||
| padding: 5px; | |||
| border-radius: 4px; | |||
| } | |||
| .bd-tips { | |||
| margin-top: 10px; | |||
| margin-bottom: 10px; | |||
| } | |||
| .first-line { | |||
| display: flex; | |||
| align-items: center; | |||
| margin-bottom: 10px; | |||
| position: relative; | |||
| } | |||
| #plus:hover { | |||
| color: #128bed; | |||
| } | |||
| .ddda { | |||
| line-height: 35px; | |||
| color: #979797; | |||
| font-size: 14px; | |||
| cursor: pointer; | |||
| width: 6.34%; | |||
| font-family: "Microsoft YaHei"; | |||
| position: relative; | |||
| left: 0; | |||
| } | |||
| .industrylist { | |||
| /* width: 68vw; */ | |||
| width: 100%; | |||
| height: 40px; | |||
| overflow: hidden; | |||
| float: left; | |||
| margin: 0 auto; | |||
| } | |||
| .custom-page-breadcrumb { | |||
| width: calc(100%) !important; | |||
| position: fixed; | |||
| top: 64px; | |||
| left: 190px; | |||
| z-index: 1; | |||
| } | |||
| .left-filtrate { | |||
| width: calc(100%) !important; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content left-filtrate"> | |||
| <div class="custom-page-breadcrumb"> | |||
| <div class="custom-box-info"> | |||
| <div class="row"> | |||
| <div class="col-lg-10 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <div class="search-group d-flex" style="padding-left: 0;"> | |||
| <div style="width: 100%;"> | |||
| <input id="searchWord" th:value="${searchWord}" type="text" | |||
| class="form-control" | |||
| placeholder="请输入企业名称、企业简称、产品名、行业名称、政策法规、人名等,多关键词用空格隔开"> | |||
| </div> | |||
| <button id="searchBtn" | |||
| style="z-index: 1; border-radius: 0 2px 2px 0 !important; width: auto;" | |||
| class="btn btn-info">即时搜索</button> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-2 align-self-center ">--> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min">--> | |||
| <!-- <span id="search-setting" onclick="searchSetting()">搜索设置</span>--> | |||
| <!-- </div>--> | |||
| <!-- </div>--> | |||
| </div> | |||
| <ul class="create-tab-report pro-bb" id="search-tab"> | |||
| </ul> | |||
| <div class="col-lg-2 align-self-center " id="all-count"> | |||
| <div | |||
| class="d-flex no-block justify-content-end align-items-center data-number-min"> | |||
| 总数据量 <span id="totalCount">0</span>条 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="p-20" id="my_serach_information"> | |||
| <div class="card"> | |||
| <div class="p-t-10"> | |||
| <!-- double line start--> | |||
| <div class="warning-edit-double"> | |||
| <div style="display: flex; overflow: hidden; width: 90%"> | |||
| <div class="preference-left" | |||
| style="padding-left: 15px; width: 100px !important"> | |||
| 搜索引擎</div> | |||
| <div class="m-l-0 industrylist" id="engine"> | |||
| <!-- <span class="badge badge-pill badge-light">全部</span> --> | |||
| </div> | |||
| <!-- <div | |||
| class="m-l-0" | |||
| id="industrylist1" | |||
| style="display: none; width: 85%" | |||
| > | |||
| <span class="badge badge-pill badge-light">全部(0)</span> | |||
| </div> --> | |||
| </div> | |||
| <!-- <div id="plus" class="ddda"> | |||
| 更多 <i data-v-8ad03c8e="" class="fa fa-angle-down"></i> | |||
| </div> --> | |||
| </div> | |||
| <!-- double line end--> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="p-20" id="articlebody" style="padding-top: 10px !important;"> | |||
| <!-- <div class="p-20"> --> | |||
| <div class="card" id="card-body"> | |||
| <div class="card-body"> | |||
| <div class="monitor-content" id="monitor-content"></div> | |||
| <div class="all-pagebox m-t-20"> | |||
| <ul class="pagination float-right" id="page"> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 | |||
| 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <script th:src=" @{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src=" @{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src=" @{/dist/js/app.min.js}"></script> | |||
| <script th:src=" @{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src=" @{/dist/js/app-style-switcher.js}"></script> | |||
| <script | |||
| th:src=" @{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src=" @{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src=" @{/dist/js/waves.js}"></script> | |||
| <script th:src=" @{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script | |||
| th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script | |||
| th:src="@{/assets/libs/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js}"></script> | |||
| <script | |||
| th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/libs/block-ui/jquery.blockUI.js}"></script> | |||
| <!--js调用--> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <!-- <script src="https://cdn.jsdelivr.net/npm/jutils-src"></script> --> | |||
| <script th:src="@{/dist/js/jutils.min.js}"></script> | |||
| <script th:inline="javascript" type="text/javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var ctx = [[@{/}]]; | |||
| var pageNoData = [[${pageNoData}]]; | |||
| var sourcename = [[${source_name}]]; | |||
| var website_id = [[${website_id}]]; | |||
| var classify = [[${classify}]]; | |||
| var menuStyle = [[${menuStyle}]]; | |||
| var pageSize = [[${pageSize}]]; | |||
| if(!pageSize) pageSize = 25; | |||
| var fulltype = [[${fulltype}]]; | |||
| var stype = [[${stype}]]; | |||
| var onlyid = ''; | |||
| function setFilterType(idclass){ | |||
| var id = "#"+idclass+"" | |||
| var object = $(id) | |||
| var active = "badge-info"; | |||
| var normal = "badge-light"; | |||
| var act = object.attr("class") | |||
| if (act.indexOf(active) == -1) { | |||
| object.siblings().removeClass(active); | |||
| object.siblings().addClass(normal); | |||
| object.removeClass(normal); | |||
| object.addClass(active); | |||
| } | |||
| } | |||
| function setTypeRadio(idclass){ | |||
| var id = "#"+idclass+"" | |||
| var object = $(id) | |||
| var active = "badge-info"; | |||
| var normal = "badge-light"; | |||
| var act = object.attr("class") | |||
| if (act.indexOf(active) == -1) { | |||
| object.siblings().removeClass(active); | |||
| object.siblings().addClass(normal); | |||
| object.removeClass(normal); | |||
| object.addClass(active); | |||
| if(full_type == 100){ | |||
| lawyerList(1) | |||
| }else if(full_type == 101){ | |||
| executionPersonList(1) | |||
| } | |||
| } | |||
| } | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), null, null); | |||
| }) | |||
| function search() { | |||
| console.log(full_type) | |||
| if(full_type==100){ | |||
| lawyerList(1) | |||
| }else if(full_type==101){ | |||
| executionPersonList(1) | |||
| } | |||
| } | |||
| </script> | |||
| <script | |||
| th:src="@{/dist/timelysearch/search_result_data.js?unixtemp=122222333222222211132}"></script> | |||
| <script th:src="@{/dist/timelysearch/search_result.js?unixtemp=122222312221132222332}"></script> | |||
| <script th:src="@{/dist/timelysearch/monitorsearch.js?unixtemp=1222221221122233332}"></script> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,196 @@ | |||
| <!DOCTYPE html> | |||
| <html dir="ltr" lang="en" xmlns:th="http://www.thymeleaf.org"> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="referrer" content="no-referrer"/> | |||
| <meta name="author" content=""> | |||
| <!-- Favicon icon --> | |||
| <link rel="icon" type="image/png" sizes="16x16" th:href="@{/assets/images/favicon.png}"> | |||
| <title>文章详情·网络情报分析系统</title> | |||
| <!-- Custom CSS --> | |||
| <link th:href="@{/dist/css/style.min.css}" rel="stylesheet"> | |||
| <link th:href="@{/dist/css/custom.css}" rel="stylesheet"> | |||
| <link th:href="@{/assets/libs/sweetalert2/dist/sweetalert2.min.css}" rel="stylesheet"> | |||
| <link rel="stylesheet" type="text/css" | |||
| th:href="@{/assets/libs/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css}"> | |||
| <!--<script src="//at.alicdn.com/t/font_1709263_w16payhc3l.js"></script>--> | |||
| <link th:href="@{/assets/extra-libs/c3/c3.min.css}" rel="stylesheet"> | |||
| <script th:src="@{/common/analyze-cloud.js}"></script> | |||
| <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | |||
| <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | |||
| <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <style> | |||
| .detail-content div { | |||
| visibility: unset !important; | |||
| } | |||
| .page-up-next { | |||
| justify-content: space-between; | |||
| padding-top: 40px; | |||
| border-top: 1px dashed rgba(0, 0, 0, .1); | |||
| align-items: center; | |||
| } | |||
| .page-up-next > a { | |||
| width: calc(50% - 10px); | |||
| display: inline-block; | |||
| overflow: hidden; | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 12px; | |||
| color: #2962FF !important; | |||
| } | |||
| .page-up-next > a:first-child { | |||
| text-align: left; | |||
| } | |||
| .page-up-next > a:last-child { | |||
| text-align: right; | |||
| } | |||
| .page-up-next > a > span { | |||
| margin-right: 10px; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="main-wrapper"> | |||
| <div th:replace="common/header::header"></div> | |||
| <div th:replace="common/search_left::search_left"></div> | |||
| <div class="page-wrapper"> | |||
| <div class="right-part right-content"> | |||
| <!-- nav start--> | |||
| <div class="page-breadcrumb"> | |||
| <div class="row"> | |||
| <div class="col-lg-5 align-self-center"> | |||
| <div class="d-flex align-items-center"> | |||
| <nav aria-label="breadcrumb"> | |||
| <ol class="breadcrumb" id="breadCrumbs"> | |||
| </ol> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <!-- <div class="col-lg-7 align-self-center "> --> | |||
| <!-- <div class="d-flex no-block justify-content-end align-items-center data-number-min"> --> | |||
| <!-- <button class="btn btn-outline-secondary btn-sm bnone" type="button" id="goback"> --> | |||
| <!-- <i class="mdi mdi-redo-variant"></i> 返回 --> | |||
| <!-- </button> --> | |||
| <!-- </div> --> | |||
| <!-- </div> --> | |||
| </div> | |||
| </div> | |||
| <!-- nav end--> | |||
| <div class="p-20"> | |||
| <!-- basic table --> | |||
| <div class="row m-b-20"> | |||
| <div class="col-lg-12"> | |||
| <div class="card"> | |||
| <div class="card-body"> | |||
| <h4 class="card-title" id="title"></h4> | |||
| <div class="detail-tips"> | |||
| <span id="source"></span> | |||
| <span id="author"></span> | |||
| <span id="read_num"></span> | |||
| <span id="publish_time"></span> | |||
| <span id="yuanwen"></span> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="card m-b-0" style="min-height: 100vh;"> | |||
| <div class="card-body"> | |||
| <div class="detail-content" id="content"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="page-footer"> | |||
| © 2014-<span id="currentyear"></span> 南京涌亿思信息技术有限公司 苏ICP备17066984号-1 | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script th:src="@{/assets/libs/jquery/dist/jquery.min.js}"></script> | |||
| <script th:src="@{/assets/libs/popper.js/dist/umd/popper.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap/dist/js/bootstrap.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.min.js}"></script> | |||
| <script th:src="@{/dist/js/app.init.light-sidebar.js}"></script> | |||
| <script th:src="@{/dist/js/app-style-switcher.js}"></script> | |||
| <script th:src="@{/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/sparkline/sparkline.js}"></script> | |||
| <script th:src="@{/dist/js/waves.js}"></script> | |||
| <script th:src="@{/dist/js/sidebarmenu.js}"></script> | |||
| <script th:src="@{/dist/js/custom.min.js}"></script> | |||
| <script th:src="@{/assets/libs/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js}"></script> | |||
| <script th:src="@{/assets/libs/sweetalert2/dist/sweetalert2.all.min.js}"></script> | |||
| <script th:src="@{/dist/js/pages.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/d3.min.js}"></script> | |||
| <script th:src="@{/assets/extra-libs/c3/c3.min.js}"></script> | |||
| <script th:src="@{/common/tools.js}"></script> | |||
| <script th:src="@{/dist/search_detail.js}"></script> | |||
| <script th:src="@{/dist/baidu/baidu_statistics.js}"></script> | |||
| <script type="text/javascript" th:inline="javascript"> | |||
| $("#currentyear").text((new Date()).getFullYear()); | |||
| var articleId = [[${articleid}]]; | |||
| var menu = [[${menu}]]; | |||
| var type = [[${type}]]; | |||
| var thesisn = [[${thesisn}]]; | |||
| $(function () { | |||
| breadCrumbs(); | |||
| articleDetail(); | |||
| }); | |||
| // 文章详情 | |||
| function articleDetail() { | |||
| let res = thesisn | |||
| $('#title').html(res.title) | |||
| var push_time=res.spider_time; | |||
| var push = push_time.substr(0,16); | |||
| var authorName = JSON.parse(res.co_author); | |||
| var name = ""; | |||
| for(let i=0;i<authorName.length;i++){ | |||
| name = authorName[i].name+","+name; | |||
| } | |||
| name = name.substring(0,name.length-1) | |||
| $('#source').html('来源:' + res.source_name) | |||
| $('#author').html('作者:'+ name) | |||
| $('#read_num').html('阅读量:' + res.read_num) | |||
| $('#publish_time').html('时间:'+ push) | |||
| $('#yuanwen').html('<a href="'+res.detail_url+'" target="_blank">查看原文</a>') | |||
| var html = '<div class="feed-element">'+ | |||
| ' <div class="search-result" style="width: 90%;margin: auto;">'+ | |||
| '<div class="content-con">'+res.summary+'</div>'+ | |||
| '<div class = "content-con" style="margin-top: 50px !important;">关键词:'+JSON.parse(res.key_words)+'<div>'+ | |||
| '</div>'+ | |||
| ' </div>' | |||
| $('#content').html(html) | |||
| } | |||
| $('.navLi').click(function () { | |||
| jumpNavLocation($(this).data('type'), groupId, projectId); | |||
| }) | |||
| $("#goback1").click(function (param) { | |||
| // window.location.href = ctxPath + "monitor?projectId="+projectId+"&groupid="+groupId+"&page=6"; | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||