Prechádzať zdrojové kódy

Merge branch 'develop' of 192.168.3.17:zhanghongbo/qfw into develop

张金坤 9 rokov pred
rodič
commit
305ad9d810
36 zmenil súbory, kde vykonal 1210 pridanie a 665 odobranie
  1. 1 0
      common/src/github.com/go-xweb/xweb/app.go
  2. 4 3
      common/src/qfw/util/mongodb/mongodbutil.go
  3. 2 2
      core/src/main.go
  4. 2 2
      core/src/qfw/front/webcentent.go
  5. 12 55
      core/src/qfw/search/searchService.go
  6. 3 3
      core/src/qfw/search/wxsearch.go
  7. 29 10
      core/src/qfw/search/wxsearchservice.go
  8. 23 0
      core/src/qfw/yellowpage/yellowpage_test.go
  9. 27 48
      core/src/qfw/yellowpage/yellowpagemanager.go
  10. 1 1
      core/src/timetask.json
  11. 41 8
      core/src/web/staticres/css/entcommunity.css
  12. 90 4
      core/src/web/staticres/css/mobile/incmobile.css
  13. 16 0
      core/src/web/staticres/css/qfw.css
  14. BIN
      core/src/web/staticres/fonts.zip
  15. BIN
      core/src/web/staticres/fonts/qimingxing.eot
  16. BIN
      core/src/web/staticres/fonts/qimingxing.svg
  17. BIN
      core/src/web/staticres/fonts/qimingxing.ttf
  18. BIN
      core/src/web/staticres/fonts/qimingxing.woff
  19. 221 10
      core/src/web/staticres/js/entcommunity.js
  20. 145 99
      core/src/web/staticres/js/entportrait.js
  21. 80 170
      core/src/web/staticres/js/relation.js
  22. 70 0
      core/src/web/templates/member/incmobile/alter.html
  23. 72 51
      core/src/web/templates/member/incmobile/baseinfo.html
  24. 184 41
      core/src/web/templates/member/incmobile/detailindex.html
  25. 1 1
      core/src/web/templates/member/incmobile/index.html
  26. 55 24
      core/src/web/templates/member/incmobile/list.html
  27. 4 34
      core/src/web/templates/member/incmobile/member.html
  28. 17 6
      core/src/web/templates/member/incmobile/news.html
  29. 23 55
      core/src/web/templates/member/incmobile/relation.html
  30. 12 0
      core/src/web/templates/member/incmobile/sx.html
  31. 32 10
      core/src/web/templates/member/incmobile/yellowpage.html
  32. 21 21
      core/src/web/templates/yellowpage/enterpriseinfo.html
  33. 4 3
      push/src/main.go
  34. 16 1
      push/src/qfw/push/cache.go
  35. 1 2
      weixin/src/qfw/weixin/msgtxtchandler.go
  36. 1 1
      weixin/src/qfw/weixin/wxadmin.go

+ 1 - 0
common/src/github.com/go-xweb/xweb/app.go

@@ -593,6 +593,7 @@ func (a *App) run(req *http.Request, w http.ResponseWriter, route Route, args []
 	}
 
 	w.Header().Set("Content-Length", strconv.Itoa(len(content)))
+
 	_, err = w.Write(content)
 	if err != nil {
 		a.Error("Error during write: %v", err)

+ 4 - 3
common/src/qfw/util/mongodb/mongodbutil.go

@@ -3,13 +3,14 @@ package mongodb
 import (
 	"encoding/json"
 	"fmt"
-	mgo "gopkg.in/mgo.v2"
-	. "gopkg.in/mgo.v2/bson"
 	"log"
 	. "qfw/util"
 	"runtime"
 	"strings"
 	"time"
+
+	mgo "gopkg.in/mgo.v2"
+	. "gopkg.in/mgo.v2/bson"
 )
 
 //连接池
@@ -74,7 +75,7 @@ func GetMgoConn() (session *mgo.Session) {
 			}
 			return nil
 		}
-	case <-time.After(time.Second * 2):
+	case <-time.After(time.Second * 5):
 		//超时
 		return nil
 	}

+ 2 - 2
core/src/main.go

@@ -3,7 +3,6 @@ package main
 
 import (
 	"flag"
-	"github.com/go-xweb/xweb"
 	_ "qfw/active"
 	_ "qfw/chat"
 	. "qfw/coreconfig"
@@ -35,6 +34,8 @@ import (
 	_ "qfw/yellowpage"
 	"runtime"
 	"time"
+
+	"github.com/go-xweb/xweb"
 )
 
 //初始化
@@ -75,7 +76,6 @@ func init() {
 	xweb.RootApp().AddTmplVar("Msg", tag.Msg)
 	xweb.RootApp().AddTmplVar("Ad", tag.Ad)
 	xweb.RootApp().AppConfig.CacheTemplates = SysConfig.TemplateCache
-
 	xweb.RootApp().Logger.SetOutputLevel(0) //输出日志,改为4则不输出任何日志
 	//敏感词
 	fsw.ReadFswDict()

+ 2 - 2
core/src/qfw/front/webcentent.go

@@ -200,6 +200,7 @@ func (n *Newscont) viewContent4Front(_id string, temp string) error {
 	if ret := redis.Get("other", n.Url()); ret != nil {
 		return n.SetBody([]byte(ret.(string)))
 	} else {
+		contenttype := "qykb"
 		r := elastic.GetByIdField("content", "content", _id, `"_id","s_title","l_createdate","s_pic","s_author","s_editorname","s_contenttype","praise","releasetime","s_subcontent","s_url","s_content","s_source","s_keywords","s_description","s_contenttype"`)
 		//r := mongodb.FindById("content", _id, `{"_id":1,"s_title":1,"l_createdate":1,"s_editorname":1,"s_contenttype":1,"s_content":1,"s_source":1}`)
 		if nil != r {
@@ -207,7 +208,6 @@ func (n *Newscont) viewContent4Front(_id string, temp string) error {
 			time := (*r)["releasetime"]
 			if time != nil && time != "" {
 				time = time.(float64)
-				contenttype := "qykb"
 				if (*r)["s_contenttype"] == "zhsk" {
 					contenttype = "zhsk"
 				}
@@ -241,7 +241,7 @@ func (n *Newscont) viewContent4Front(_id string, temp string) error {
 			if len(author) < 1 {
 				(*r)["s_author"] = ""
 			}
-			hotnews := elastic.GetPage("content", "content", `{"s_contenttype": "qykb"}`, `{"praise":-1}`, `{"_id":1,"s_title":1,"praise":1}`, 0, 10)
+			hotnews := elastic.GetPage("content", "content", `{"s_contenttype": "`+contenttype+`"}`, `{"praise":-1}`, `{"_id":1,"s_title":1,"praise":1}`, 0, 10)
 			(*r)["hotnews"] = hotnews
 			n.T = *r
 			(*r)["s_content"] = template.HTML((*r)["s_content"].(string))

+ 12 - 55
core/src/qfw/search/searchService.go

@@ -7,7 +7,6 @@ import (
 	"github.com/go-xweb/xweb"
 	"gopkg.in/mgo.v2/bson"
 	"html/template"
-	"log"
 	"qfw/front"
 	. "qfw/member"
 	"qfw/mobile"
@@ -18,6 +17,7 @@ import (
 	ip "qfw/util/ip17mon"
 	. "qfw/util/mongodb"
 	"qfw/util/redis"
+	"regexp"
 	"strconv"
 	"strings"
 )
@@ -34,8 +34,9 @@ type EntInfo struct {
 
 //企业社区首页
 func (search *Search) EntCommunity() error {
-	ismobile := strings.Index(search.Header("User-Agent"), "Mobile")
-	if ismobile > -1 {
+	regex, _ := regexp.Compile("(Android|Mobile)")
+	ismobile := regex.FindAllString(search.Header("User-Agent"), -1)
+	if len(ismobile) > 0 {
 		search.T["signature"] = mobile.GetSignature(search.Url())
 		search.Render("/member/incmobile/index.html", &search.T)
 		return nil
@@ -139,8 +140,7 @@ func (n *Search) GetEnterpriseList(reqType, param /*参数*/ string) error {
 	//必须是登录之后的已认证用户才可以进入企业社区
 	//if ui, _ := (n.GetSession("userInfo")).(*map[string]interface{}); reqType == "m_" || (n.GetSession("userType") != nil && IntAll(n.GetSession("userType")) > 0) && ((n.GetSession("identWay") != nil && IntAll(n.GetSession("identWay")) == 1) || ((*ui)["s_pid"] != nil && (*ui)["s_pid"].(string) != "")) {
 	//n.T["uri"] = n.Uri()
-	ismobile := strings.Index(n.Header("User-Agent"), "Mobile")
-	i_mingpian := n.GetString("i_mingpian") //是否走名片查询
+
 	if len(param) == 0 {
 		//请求是表单提交,走的查询
 		//拼装查询对象
@@ -157,18 +157,8 @@ func (n *Search) GetEnterpriseList(reqType, param /*参数*/ string) error {
 			"cityNo":      n.GetString("cityNo"), // 是否是第一次查询并且没有选择地市,自动根据IP来设
 		}
 		//查询生成列表数据
-		var data *[]map[string]interface{}
-		var pagination *[]interface{}
-		var has bool = false
-		if i_mingpian != "" {
-			data, pagination, has = searhWebContententMp(querymap, n, reqType, false)
-			if !has {
-				data, pagination = searhWebContentent(querymap, n, reqType)
-			}
-		} else {
-			data, pagination = searhWebContentent(querymap, n, reqType)
-		}
-		log.Println(len(*data))
+		data, pagination := searhWebContentent(querymap, n, reqType)
+
 		//查询送积分
 		queryStr := querymap["query"]
 		if len(queryStr) > 0 {
@@ -183,25 +173,7 @@ func (n *Search) GetEnterpriseList(reqType, param /*参数*/ string) error {
 				}
 			}
 		}
-		if ismobile > -1 {
-			entinfos := make([]map[string]string, 0)
-			for _, v := range *data {
-				tmp := map[string]string{
-					"_id":           fmt.Sprint(v["_id"]),
-					"EntName":       fmt.Sprint(v["EntName"]),
-					"RegNo":         fmt.Sprint(v["RegNo"]),
-					"LeRep":         fmt.Sprint(v["LeRep"]),
-					"OpLocDistrict": fmt.Sprint(v["OpLocDistrict"]),
-					"EstDate":       fmt.Sprint(v["EstDate"]),
-					"OpStateName":   fmt.Sprint(v["OpStateName"]),
-				}
-				entinfos = append(entinfos, tmp)
-			}
-			d, _ := json.Marshal(entinfos)
-			n.Render("/member/incmobile/list.html", &xweb.T{"data": string(d)})
-		} else {
-			n.Render("/search/enterpriseList.html", &xweb.T{"querymap": querymap, "data": data, "pagination": pagination})
-		}
+		n.Render("/search/enterpriseList.html", &xweb.T{"querymap": querymap, "data": data, "pagination": pagination})
 	} else {
 		//反转生成map
 		paramstr := param[1:]
@@ -210,27 +182,12 @@ func (n *Search) GetEnterpriseList(reqType, param /*参数*/ string) error {
 
 		json.Unmarshal(bs, &querymap)
 		data, pagination := searhWebContentent(querymap, n, reqType)
-		if ismobile > -1 {
-			entinfos := make([]map[string]string, 0)
-			for _, v := range *data {
-				tmp := map[string]string{
-					"_id":           fmt.Sprint(v["_id"]),
-					"EntName":       fmt.Sprint(v["EntName"]),
-					"RegNo":         fmt.Sprint(v["RegNo"]),
-					"LeRep":         fmt.Sprint(v["LeRep"]),
-					"OpLocDistrict": fmt.Sprint(v["OpLocDistrict"]),
-					"EstDate":       fmt.Sprint(v["EstDate"]),
-					"OpStateName":   fmt.Sprint(v["OpStateName"]),
-				}
-				entinfos = append(entinfos, tmp)
-			}
-			d, _ := json.Marshal(entinfos)
-			n.Render("/member/incmobile/list.html", &xweb.T{"data": string(d)})
-		} else {
-			n.Render("/search/enterpriseList.html", &xweb.T{"querymap": querymap, "data": data, "pagination": pagination})
-		}
+		n.Render("/search/enterpriseList.html", &xweb.T{"querymap": querymap, "data": data, "pagination": pagination})
 	}
 	return nil
+	//} else {
+	//return n.Render("/search/entcommunity.html")
+	//}
 }
 
 //即时搜索

+ 3 - 3
core/src/qfw/search/wxsearch.go

@@ -10,9 +10,9 @@ import (
 
 type Wxsearch struct {
 	*xweb.Action
-	wxIndex             xweb.Mapper `xweb:"/wx/search/enterprise/index.html"` //查询企业列表
-	wxMingpian          xweb.Mapper `xweb:"/wx/search/enterprise/mingpian"`   //获取名片
-	wxgetEnterpriseList xweb.Mapper `xweb:"/wx/search/enterprise/list.html"`  //查询企业列表
+	wxIndex             xweb.Mapper `xweb:"/wx/search/enterprise/index.html"`              //查询企业列表
+	wxMingpian          xweb.Mapper `xweb:"/wx/search/enterprise/mingpian"`                //获取名片
+	wxgetEnterpriseList xweb.Mapper `xweb:"/wx/search/enterprise/([^.]*)list([^.]*).html"` //查询企业列表
 }
 
 var mpian_reg *regexp.Regexp //名片

+ 29 - 10
core/src/qfw/search/wxsearchservice.go

@@ -5,10 +5,10 @@ import (
 	"encoding/json"
 	"fmt"
 	"github.com/go-xweb/xweb"
+	"github.com/p/mahonia"
 	"html/template"
-	"log"
 	"qfw/coreutil"
-	"qfw/mobile"
+	//	"qfw/mobile"
 	. "qfw/util"
 	"qfw/util/consts"
 	"qfw/util/elastic"
@@ -21,7 +21,7 @@ import (
 
 //企业社区首页
 func (n *Wxsearch) WxIndex() error {
-	n.T["signature"] = mobile.GetSignature(n.Url())
+	//n.T["signature"] = mobile.GetSignature(n.Url())
 	n.Render("/member/incmobile/index.html", &n.T)
 	return nil
 }
@@ -43,10 +43,10 @@ func (n *Wxsearch) WxgetEnterpriseList(reqType, param /*参数*/ string) error {
 			"c_author":    n.GetString("c_author"),
 			"cityNo":      n.GetString("cityNo"), //是否是第一次查询并且没有选择地市,自动根据IP来设
 		}
+
 		//查询生成列表数据
 		var data *[]map[string]interface{}
-
-		var has bool = false
+		var has bool
 		if i_mingpian != "" {
 			data, has = wxsearhWebContententMp(querymap, n, reqType, false)
 			if !has {
@@ -55,21 +55,41 @@ func (n *Wxsearch) WxgetEnterpriseList(reqType, param /*参数*/ string) error {
 		} else {
 			data = wxsearhWebContentent(querymap, n, reqType)
 		}
-		n.Render("/member/incombile/list.html", &xweb.T{"querymap": querymap, "data": data})
+		rs := FormatData(data)
+		n.Render("/member/incmobile/list.html", &xweb.T{"data": rs, "querymap": querymap})
 	} else {
 		//反转生成map
 		paramstr := param[1:]
 		bs, _ := base64.StdEncoding.DecodeString(paramstr)
 		querymap := map[string]string{}
-
 		json.Unmarshal(bs, &querymap)
-		log.Println(querymap)
 		data := wxsearhWebContentent(querymap, n, reqType)
-		n.Render("/member/incombile/list.html", &xweb.T{"querymap": querymap, "data": data})
+		rs := FormatData(data)
+		n.Render("/member/incmobile/list.html", &xweb.T{"data": rs, "querymap": querymap})
 	}
 	return nil
 }
 
+func FormatData(data *[]map[string]interface{}) string {
+	entinfos := make([]map[string]string, 0)
+	for _, v := range *data {
+		tmp := map[string]string{
+			"_id":           fmt.Sprint(v["_id"]),
+			"EntName":       fmt.Sprint(v["EntName"]),
+			"RegNo":         fmt.Sprint(v["RegNo"]),
+			"LeRep":         fmt.Sprint(v["LeRep"]),
+			"OpLocDistrict": fmt.Sprint(v["OpLocDistrict"]),
+			"EstDate":       fmt.Sprint(v["EstDate"]),
+			"OpStateName":   fmt.Sprint(v["OpStateName"]),
+		}
+		entinfos = append(entinfos, tmp)
+	}
+	b, _ := json.Marshal(entinfos)
+	m := mahonia.NewDecoder("utf8")
+	str := m.ConvertString(string(b))
+	return str
+}
+
 //实际的查询企业社区业务逻辑
 func wxsearhWebContentent(querymap map[string]string, n *Wxsearch, reqType string) *[]map[string]interface{} {
 	perPage, _ := strconv.Atoi(querymap["perPage"])
@@ -502,7 +522,6 @@ func (n *Wxsearch) WxMingpian() error {
 		serverId := n.GetString("serverId")
 		ret := coreutil.WxDownloadImg(serverId)
 		if len(ret) > 1 {
-			log.Println("picpath", ret[1])
 			res["on"] = ret[0]
 			code, tmps := coreutil.CardRecognition(ret[1])
 			if code == "434" {

+ 23 - 0
core/src/qfw/yellowpage/yellowpage_test.go

@@ -3,9 +3,12 @@ package yellowpage
 //企业黄页的测试类
 import (
 	"encoding/base64"
+	"encoding/json"
 	"fmt"
 	. "gopkg.in/mgo.v2/bson"
 	"log"
+	cf "qfw/coreconfig"
+	"qfw/util"
 	. "qfw/util/mongodb"
 	"regexp"
 	"strings"
@@ -51,3 +54,23 @@ func Test_isEmail(test *testing.T) {
 	ok, _ := regexp.MatchString("^[239]$|^\\s*$", t)
 	fmt.Println(ok)
 }
+func Test_filter(test *testing.T) {
+	//d := "拉进来看见"
+	//log.Println(len([]rune(d)))
+	//return
+	/*r := regexp.MustCompile("(有限公司|有限责任公司|股份有限公司|总公司|分公司|公司|事务所|合伙企业)$|\\([^\\)]*\\)|([^)]*)")
+	log.Println(r.ReplaceAllString("(水电费)金水路附件(水电费)", ""))
+	log.Println(r.ReplaceAllString("(水电费)金水路附件(水电费)", ""))
+	return*/
+	util.ReadConfig("../../config.json", &cf.SysConfig)
+	InitMongodbPool(1, "192.168.3.18:27080", "qfw")
+	log.Println(getCopyright("55a85bdba442ceca9e215a01", "西藏自然密码环保制品有限公司"))
+	return
+	relation := makeRelation("540126200001082", "西藏自然密码环保制品有限公司")
+	var nodes *[]map[string]interface{}
+	if d, err := json.Marshal(relation.(map[string]interface{})["nodes"]); err == nil && json.Unmarshal(d, &nodes) == nil && len(*nodes) > 0 {
+		go func() {
+			filterEntName(nodes)
+		}()
+	}
+}

+ 27 - 48
core/src/qfw/yellowpage/yellowpagemanager.go

@@ -208,58 +208,25 @@ func WxGetEntInfo(id string, flag bool) interface{} {
 }
 
 //企业黄查询结果
-func (yp *Yellowpage) WxenterpriseInfo(id string) error {
-	//redisEnt := redis.Get("ent", "Key")
-	id = strings.Split(id, "#")[0]
-	//没有登录
-	key := "wx_enterpriseInfo_" + id
-	//登录并认证
-	keyuser := "wx_enterpriseInfo_user_" + id
-	//登录没有认证
-	keyunrzuser := "wx_enterpriseInfo_unrzuser_" + id
-	if yp.GetSession("userId") == nil {
-		//用户没有登录
-		if ret, err := redis.GetBytes("enterprise", key); err == nil {
-			return yp.SetBody(*ret)
-		} else {
-			yp.T["res"] = WxGetEntInfo(id, false)
-			content, err := yp.Render4Cache("/yellowpage/ungxenterpriseinfo.html", &yp.T)
-			if err == nil {
-				redis.PutBytes("enterprise", key, &content, ONEDAY)
-			}
-			return yp.SetBody(content)
-		}
-	} else if util.IntAll(yp.GetSession("identWay")) == 1 {
-		//已认证
-		if ret, err := redis.GetBytes("enterprise", keyuser); err == nil {
-			return yp.SetBody(*ret)
-		} else {
-			yp.T["res"] = WxGetEntInfo(id, true)
-			contentuser, erruser := yp.Render4Cache("/yellowpage/wxentinfo.html", &yp.T)
-			if erruser == nil {
-				redis.PutBytes("enterprise", keyuser, &contentuser, ONEDAY)
-			}
-			return yp.SetBody(contentuser)
-		}
-	} else {
-		//用户没有认证登录
-		if ret, err := redis.GetBytes("enterprise", keyunrzuser); err == nil {
-			return yp.SetBody(*ret)
-		} else {
-			yp.T["res"] = WxGetEntInfo(id, false)
-			contentuser, erruser := yp.Render4Cache("/yellowpage/unrzenterpriseinfo.html", &yp.T)
-			if erruser == nil {
-				redis.PutBytes("enterprise", keyunrzuser, &contentuser, ONEDAY)
-			}
-			return yp.SetBody(contentuser)
-		}
+func (yp *Yellowpage) WxenterpriseInfo(regNO string) error {
+	r := FindOne("enterprise", M{"RegNo": regNO})
+	if r == nil || len(*r) == 0 {
+		return yp.Render("/yellowpage/error.html")
 	}
+	id := strings.Split(fmt.Sprintf("%s", (*r)["_id"]), `"`)[1]
+	return yp.Redirect("/enterprise/" + id + ".html")
 }
 
 //企业黄查询结果
 func (yp *Yellowpage) EnterpriseInfo(id string) error {
 	id = strings.Split(id, "#")[0]
-	if ret, err := redis.GetBytes("enterprise", "enterpriseInfo_"+id); err == nil {
+	regex, _ := regexp.Compile("(Android|Mobile)")
+	ismobile := regex.FindAllString(yp.Header("User-Agent"), -1)
+	key := "enterpriseInfo_"
+	if len(ismobile) > 0 {
+		key = "menterpriseInfo_"
+	}
+	if ret, err := redis.GetBytes("enterprise", key+id); err == nil {
 		return yp.SetBody(*ret)
 	} else {
 		if info := GetEntInfo(id); info != nil {
@@ -319,9 +286,21 @@ func (yp *Yellowpage) EnterpriseInfo(id string) error {
 			yp.T["relation"] = relation
 			//著作权
 			yp.T["copyright"] = FindOne("enterprise_copyright", `{"EntId":"`+id+`"}`)
-			contentuser, erruser := yp.Render4Cache("/yellowpage/enterpriseinfo.html", &yp.T)
+
+			var contentuser []byte
+			var erruser error
+			if len(ismobile) > 0 {
+				contentuser, erruser = yp.Render4Cache("/member/incmobile/detailindex.html", &yp.T)
+			} else {
+				contentuser, erruser = yp.Render4Cache("/yellowpage/enterpriseinfo.html", &yp.T)
+			}
+
 			if erruser == nil {
-				redis.PutBytes("enterprise", "enterpriseInfo_"+id, &contentuser, 7*ONEDAY)
+				if len(ismobile) > 0 {
+					redis.PutBytes("enterprise", "menterpriseInfo_"+id, &contentuser, 7*ONEDAY)
+				} else {
+					redis.PutBytes("enterprise", "enterpriseInfo_"+id, &contentuser, 7*ONEDAY)
+				}
 			}
 			//过滤企业名
 			if ok && nodes != nil && len(*nodes) > 0 {

+ 1 - 1
core/src/timetask.json

@@ -1 +1 @@
-{"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-03-23 15:15:05"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-03-23 15:15:05"}},"marketisstart":true,"marketrate":300}
+{"comment":{"c_rate":720,"commentrate":900},"market":{"demand":{"attr":["i_hits","i_bids","i_status"],"timepoint":"2016-03-24 11:22:15"},"service":{"attr":["i_hits","i_sales","i_comments","i_score","i_appcounts"],"timepoint":"2016-03-24 11:22:15"}},"marketisstart":true,"marketrate":300}

+ 41 - 8
core/src/web/staticres/css/entcommunity.css

@@ -359,13 +359,12 @@ a:focus, a:hover{
 }
 .ent-tab li{
 	padding: 0px 20px;
-	border-top-width: 3px;
 	height: 50px;
 	line-height: 50px;
-	border-top: 3px solid #F6F8FA;
 	cursor: pointer;
 	border-right: 1px solid #FFFFFF;
 	font-weight: bold;
+	position: relative;
 }
 .ent-tab li.disabled{
 	cursor: auto;
@@ -373,13 +372,24 @@ a:focus, a:hover{
 	opacity: 0.5;
 }
 .ent-tab .ent-active{
-	border-top-color: #16a086;
 	background-color: #FFFFFF;
 	color: #16a086;
 }
+.ent-tab li>.b-com-border-top{
+	display: none;
+}
+.ent-tab .ent-active>.b-com-border-top{
+	position: absolute;
+	background-color: #16a086;
+	height: 3px;
+	left: 0px;
+	right: 0px;
+	top: 0px;
+	display: block;
+}
 .ent-tab-content{
 	margin-top: 10px;
-	min-height: 491px;
+	min-height: 500px;
 }
 /********************企业画像**********************/
 .entinfo-basicinfo .b-com-content{
@@ -644,18 +654,36 @@ a:focus, a:hover{
 /*全屏代码*/
 .entrelation .entrelation-controlls{
 	position: absolute;
-	margin-top: 10px;
 	z-index: 2;
+	right: 0px;
+	width: 91px;
+}
+.entrelation .entrelation-controlls-fullscreen{
+	top: 15px;
+	right: 15px;
 }
 .entrelation .entrelation-controlls>div{
-	margin-bottom: 15px;
+	margin-bottom: 10px;
+	margin-left: 10px;
+	display: inline-block;
+	width: 35px;
+	height: 35px;
+	box-shadow: 0px 0px 5px #DADADA;
+	padding-top: 8px;
+}
+.entrelation .entrelation-controlls>div:nth-child(n+3){
+	padding-top: 10px;
 }
 .entrelation .entrelation-controlls .entrelation-box{
 	border: 1px solid #e5e6e9;
-	width: 80px;
-	line-height: 30px;
 	text-align: center;
 	cursor: pointer;
+	vertical-align: top;
+	border-radius: 3px;
+	
+}
+.entrelation .entrelation-controlls .entrelation-box.checked{
+	color: #16a086;
 }
 :-moz-full-screen .entrelation,:-webkit-full-screen .entrelation,:-o-full-screen .entrelation,
 :-ms-full-screen .entrelation,:fullscreen .entrelation,:-ms-fullscreen .entrelation,:full-screen .entrelation{
@@ -972,4 +1000,9 @@ a:focus, a:hover{
 }
 .ent-copyright table{
 	margin-top: 15px;
+}
+.entinfo-page .badge{
+	background-color: #16a086;
+	margin-left: 5px;
+	color: #ffffff;
 }

+ 90 - 4
core/src/web/staticres/css/mobile/incmobile.css

@@ -55,7 +55,7 @@ ul{
 	border-radius: 17px;
 	height: 30px;
 	width: 30px;
-	margin:0  0 0 -29px;
+	margin:0  0 0 -35px;
 	text-align:center;
 	background-color:#16A086 !important;
 }
@@ -115,6 +115,15 @@ hr.list{
 	border:1px solid #16A086 !important;
 	color:#16A086
 }
+.loadmore:focus,.loadmore:hover{
+	background-color:#16A086;
+	color:#FFF;
+	text-decoration:none;
+}
+.nomore{
+	color:#B5B6BB;
+	font-size:11px;
+}
 .col-xs-12{
 	padding:0;	
 }
@@ -214,7 +223,9 @@ hr.list{
 	display:block;
 }
 /*首页*/
-
+#header div,.index span{
+	text-align:center;
+}
 .index-header{
 	height:185px;
 	width:100%;
@@ -259,10 +270,30 @@ hr.list{
 .index-middle div:first-child{
 	border-right:1px solid #16A086;
 }
-.index-navtable div{
+.index-navtable div.content{
 	border-right:1px solid #CCC;
 	border-bottom:1px solid #CCC;
 }
+.b-com-content>div {
+	margin-bottom: 20px;
+	margin-left:5px;
+	text-align: center;
+	word-wrap: break-word;
+	display: inline-block;
+	word-break: normal;
+	width: 90px;
+	vertical-align: top;
+}
+.b-com-content img {
+    width: 70px;
+    height: 70px;
+    border: 2px solid #16a086;
+    border-radius: 50%;
+    margin-bottom: 10px;
+}
+.b-com-content span{
+	display: block;
+}
 .index-navtable div:nth-child(3n+0)
 {
 	border-right:none;
@@ -319,6 +350,10 @@ hr.list{
 	min-width:70px;
 	text-align:center;
 }
+.baseinfo .entnull{
+	background:#DDD;
+	color:#7F7F7F;
+}
 .baseinfo .entvar{
 	display:inline-block;
 	padding-bottom:15px;
@@ -381,7 +416,7 @@ hr.list{
 	border-radius:70px;
 }
 .yellowpage{
-	padding-left:20px;
+	padding-left:15px;
 }
 .yellowpage li div.text-right{
 	padding-right:20px;
@@ -459,4 +494,55 @@ hr.list{
 }
 .border-left{
 	border-left:1px solid #E5E6E9;
+}
+.inclist span.highlight {
+    text-decoration: inherit;
+}
+.inclist span.highlight {
+    /* color: #D5012C; */
+    color: #dd4814 !important;
+    font-weight: bold;
+}
+.creditrules div.title{
+	border-bottom: 1px solid #B2B2B2;
+	height: 40px;
+	line-height: 42px;
+	padding-left: 20px;
+	font-size: 13px;
+	color: #000;
+	background: #F6F7F8;
+}
+.creditrules div.content{
+	min-height: 170px;
+	padding: 20px 20px;
+}
+.ent-dishonesty{
+	text-align:left;
+	padding:20px;
+	padding-top:0px;
+}
+.ent-dishonesty .ent-table .b-com-first {
+    margin-bottom: 5px;
+    font-weight: bold;
+    font-size: 13px;
+}
+.ent-dishonesty .ent-table .b-com-second,.ent-dishonesty .ent-table .b-com-third {
+    margin-bottom: 5px;
+    color: #a0a0a0;
+	font-size:10px;
+}
+.ent-dishonesty .ent-table td {
+	text-align:left;
+	padding:0px !important;
+	margin-bottom:5px !important;
+}
+.ent-table tr:first-child {
+    border-top: none !important;
+}
+.entinfo-page .b-right{
+	margin-top:0px;
+}
+.colorfont{
+	font-size:13px;
+	color:#16A086;
 }

+ 16 - 0
core/src/web/staticres/css/qfw.css

@@ -1008,6 +1008,22 @@ span.highlight {
 	content: "\A9";
 }
 
+.quanping:before{
+	content: "\AA";
+}
+
+.suofang:before{
+	content: "\AB";
+}
+
+.yibanmoshi:before{
+	content: "\AC";
+}
+
+.xiangximoshi:before{
+	content: "\AE";
+}
+
 .icon-small {
 	font-size: 12px;
 }

BIN
core/src/web/staticres/fonts.zip


BIN
core/src/web/staticres/fonts/qimingxing.eot


BIN
core/src/web/staticres/fonts/qimingxing.svg


BIN
core/src/web/staticres/fonts/qimingxing.ttf


BIN
core/src/web/staticres/fonts/qimingxing.woff


+ 221 - 10
core/src/web/staticres/js/entcommunity.js

@@ -58,7 +58,7 @@ mCommunity.prototype={
 			var child=obj[i].s;
 			var ulchild=$("<ul></ul>");
 			ulchild.attr("id","city_"+obj[i].k);
-			ulchild.append("<li></li>");
+			ulchild.append("<li></li><li data-id="+obj[i].k+">全部</li>");
 			ulchild.addClass("hides");
 			for(var k=0;k<child.length;k++){
 				var lichild=$("<li></li>")	
@@ -103,9 +103,11 @@ mCommunity.prototype={
 			var node=$(i.target);
 			$("#city li[class='hover']").attr("class","");
 			node.attr("class","hover");
+			$("#citys").val(node.attr("data-id"));
+			$("#queryform").submit();
 		});
 		$("#province ul li").on("click",function(i){
-		var node=$(i.target);
+			var node=$(i.target);
 			$("#province ul li[class='hover']").attr("class","");
 			node.attr("class","hover");
 			target=$("#city #city_"+node.attr("data-id"));
@@ -114,18 +116,227 @@ mCommunity.prototype={
 					target.attr("class","shows");
 			}
 		});
-		$("#city li").click(function(n){
-			//这里处理地区筛选事物
-		})
+		$("#category li").click(function(n){
+			//这里处理行业筛选
+			var node=$(n.target);
+			$("#c_hfl").val(node.attr("value"));
+			$("#queryform").submit();
+		});
+		$("#reg li").click(function(n){
+			//这里处理注册资本筛选
+			var node=$(n.target);
+			$("#c_zb").val(node.attr("value"));
+			$("#queryform").submit();
+		});
 		return this;
+	},
+	initmemer:function(){
+		if(typeof(staffinfo) != "undefined" && staffinfo != null && staffinfo.length > 0){
+			var staffinfos1 = [],staffinfos2 = [],staffinfos3 = [],staffinfos4 = [];
+			for(var i=0;i<staffinfo.length;i++){
+				switch(staffinfo[i].Position){
+					case "410A":
+					case "410B":
+					case "410C":
+					case "431A":
+					case "431B":
+						staffinfos1.push(staffinfo[i]);
+						break;
+					case "432A":
+					case "432K":
+						staffinfos2.push(staffinfo[i]);
+						break;
+					case "434Q":
+					case "434R":
+					case "436A":
+						staffinfos3.push(staffinfo[i]);
+						break;
+					default:
+						staffinfos4.push(staffinfo[i]);
+						break;
+				}
+			}
+			staffinfos1.sort(function(a,b){return a.Position-b.Position});
+			staffinfos2.sort(function(a,b){return a.Position-b.Position});
+			staffinfos3.sort(function(a,b){return a.Position-b.Position});
+			staffinfos4.sort(function(a,b){return a.Position-b.Position});
+			var hm = '<div class="ent-mainpersons">';
+			//计算出一行可以放几个
+			var maxCout = parseInt($(".ent-tab-content").width() / (207+20));
+			var verticalFlag = false;
+			var appendStaffinfo = function(obj,index){
+				var tmp = 0;
+				for(var i=0;i<obj.length;i++){
+					var positionName = obj[i].PositionName;
+					if(typeof(positionName) == "undefined" || positionName == null || positionName == ""){
+						positionName = "监事";
+					}
+					tmp++;
+					if(i==0){
+						hm+='<div class="staffinfo-level-'+index+'">';
+						if(verticalFlag){
+							hm+='<a class="staffinfo-vertical"></a>';
+						}
+					}
+					verticalFlag = true;
+					hm+='<div><img src="'+cdn+'/images/entcommunity/mainperson'+index+'.png">'
+						+'<span><font class="b-com-name">'+obj[i].Name+'</font><font class="ent-positionName">'+positionName+'</font></span></div>';
+					if (i%2==0){
+						hm+="<div class='sp'>&nbsp;</div>";
+					}
+					//竖线
+					if(tmp == maxCout && i != obj.length-1){
+						hm+='<a class="staffinfo-vertical"></a>';
+					}
+					//横线
+					if(i != obj.length-1){
+						if(tmp <= maxCout-1){
+							hm+='<a class="staffinfo-horizontal"></a>';
+						}else{
+							tmp = 0;
+						}
+					}
+					if(i==obj.length-1){
+						hm+='</div>';
+					}
+				}
+			}
+			appendStaffinfo(staffinfos1,1);
+			appendStaffinfo(staffinfos2,2);
+			appendStaffinfo(staffinfos3,3);
+			appendStaffinfo(staffinfos4,4);
+			hm+='</div>';
+			$(".ent-mainperson").html(hm);
+			for(var i=0;i<5;i++){
+				var node=$(".staffinfo-level-"+i).children().last();
+				var node1=$(".staffinfo-level-"+i).children().first();
+				if(node.attr("class")=="sp"){
+					node.remove();
+				}
+				node1.css("margin-bottom","-5px");
+			}
+		}
+		else{
+			$(".memberinfo").show();
+		}
 	}
 }
 
 mCommunity.prototype.init.prototype = mCommunity.prototype;
 
 function changeSearchBorder(){
-		var width=$("#query").css("width");
-		width=width.substr(0,width.indexOf("p"))-30+"px";
-		$("#immediately").css("width",width);
-		$("#immediately").css("margin-left",$("#query").offset().left+15);
-	}
+	var width=$("#query").css("width");
+	width=width.substr(0,width.indexOf("p"))-30+"px";
+	$("#immediately").css("width",width);
+	$("#immediately").css("margin-left",$("#query").offset().left+15);
+}
+
+function viewcontent(n){
+	var node=$(n);
+	$(".modal-backdrop").show();
+	$(".creditrules").show();
+	$(".creditrules .content").text(node.parent().find("div").text());
+}
+hasLoadPagingJs=false
+//失信信息
+function DishonestyPaging(){
+	this.initDishonesty = function(){
+		var paging = new Paging("dishonestyListPaging","/front/getDishonesty",{legcerNo:legcerNo},dishonesty.pageSize,function(r){
+			var html = '';
+			for(var i=0;i<r.length;i++){
+				html += '<tr><td>'
+					+'<div style="height:10px;"></div>'
+					+'<div class="b-com-first">'+r[i].iname+'</div>'
+					+'<div class="b-com-second"><span>案号:'+r[i].case_code+'</span>&nbsp;&nbsp;<span>法院:'+r[i].court_name+'</span>'+'</div>'
+					+'<div class="b-com-third">'
+						+'<span>状态:'+r[i].performance+'</span>'
+						+'<span>立案日期:'+new Date(Number(r[i].l_date+"000")).Format("yyyy-MM-dd")+'</span>'
+					+'</div>'
+					+'</td></tr>';;
+			}
+			$("#dishonestyListPaging").append(html);
+		},dishonesty);
+		paging.firstPageDatas = null;
+	}
+	if(hasLoadPagingJs){
+		this.initDishonesty();
+	}else{
+		var thisClass = this;
+		loadJS(cdn+"/js/paging.js",function(){
+			hasLoadPagingJs = true;
+			thisClass.initDishonesty();
+		});
+	}
+}
+var identWayFlag = true;
+var isLogined=true;
+var relationFlag=false;
+
+//加载关系网
+function initRelation(){
+	if(isLogined){
+		/*if($("#entrelation-limit").hasClass("hide")){
+			$(".entrelation").height($(".ent-tab-content").height());
+		}*/
+		var relationNoData = function(){
+			$("#entrelation-limit,#entrelation-nologin").addClass("hide");
+			relationEntity = "";
+			$("#entrelation-infovis").hide();
+			$("#entrelation-findnull").removeClass("hide");
+		}
+		if(identWayFlag){
+			if(relationFlag){
+				relationNoData();
+			}else{
+				$("#entrelation-limit,#entrelation-nologin").addClass("hide");
+				$(".entrelation").height($(".ent-tab-content").height());
+				loadJS(cdn+"/js/d3.v3.min.js",function(){
+					loadJS(cdn+"/js/geometry.js",function(){
+						loadJS(cdn+"/js/provinceData.min.js",function(){
+							loadJS(cdn+"/js/relation.js",function(){
+								relationEntity = new Relation(legcerNo,regNo,regCapCurName,relation);
+								relationEntity.init();
+							});
+						});
+					});
+				});
+			}
+		}else{
+			$("#entrelation-nologin").addClass("hide");
+			$("#entrelation-limit,#entrelation-noauthe").removeClass("hide");
+			$("#entrelation-infovis").hide();
+		}
+		/*$.ajax({
+			url: "/member/getRelation",
+			method: "post",
+			data: {regNo:regNo,entName:entName},
+			success: function(r){
+				if(r.flag == false){
+					$("#entrelation-nologin").addClass("hide");
+					$("#entrelation-limit,#entrelation-noauthe").removeClass("hide");
+					$("#entrelation-infovis").hide();
+				}else if(r.flag == true && (r == null || typeof(r) == "undefined" || typeof(r.relation.links) == "undefined" || r.relation.links.length == 0 || typeof(r.relation.nodes) == "undefined" || r.relation.nodes.length <= 1)){
+					relationNoData();
+				}else if(r.flag == true){
+					$("#entrelation-limit,#entrelation-nologin").addClass("hide");
+					$(".entrelation").height(500);
+					loadJS("/js/d3.v3.min.js",function(){
+						loadJS("/js/geometry.js",function(){
+							loadJS("/js/relation.js",function(){
+								relationEntity = new Relation(legcerNo,regNo,regCapCurName,r.relation);
+								relationEntity.init();
+							});
+						});
+					});
+				}else{
+					relationNoData();
+				}
+			},
+			error: function(){
+				relationNoData();
+			}
+		});*/
+	}else{
+		$("#entrelation-limit,#entrelation-nologin").removeClass("hide");
+	}
+}

+ 145 - 99
core/src/web/staticres/js/entportrait.js

@@ -1,98 +1,61 @@
 var entType = "企业";
-var relationEntity = null;
-var copyrightEntity = null;
-//var servicePaging = null;
-//var dishonestyPaging = null;
-var hasLoadPagingJs = false;
-var relationFlag = false;
-var identWayFlag = false;
+var relationEntity = null;//关系网
+var copyrightEntity = null;//著作权
+var servicePaging = null;//服务列表
+var staffinfoEntity = null;//主要人员
+var dishonestyPaging = null;//失信
+var hasLoadPagingJs = false;//是否已经加载过js
+var relationFlag = false;//关系网标识
+var identWayFlag = false;//认证状态
+var staffinfoFlag = false;
+/**************著作权**************/
+var copyrightFlag = false;
+//作品
+var workCopyRight = null;
+var workCopyRightFlag = false;
+//软件
+var computerSoftCopyRight = null;
+var computerSoftCopyRightFlag = false;
+//专利
+var patent = null;
+var patentFlag = false;
 //解析服务列表
 $(function(){
-	$(".ent-tab-content.b-left").css("min-height",$(".b-right").height());
-	//失信信息如果没有数据,选项卡不可点
-	if(dishonesty.count > 0){
-		DishonestyPaging();
+	staffinfoFlag = typeof(staffinfo) != "undefined" && staffinfo != null && staffinfo.length > 0;
+	copyrightFlag = typeof(copyright) != "undefined" && copyright != null;
+	if(copyrightFlag){
+		//作品
+		workCopyRight = copyright.WorkCopyRight;
+		workCopyRightFlag = typeof(workCopyRight) != "undefined" && workCopyRight != null;
+		//软件
+		computerSoftCopyRight = copyright.ComputerSoftCopyRight;
+		computerSoftCopyRightFlag = typeof(computerSoftCopyRight) != "undefined" && computerSoftCopyRight != null;
+		//专利
+		patent = copyright.Patent;
+		patentFlag = typeof(patent) != "undefined" && patent != null;
 	}
-	//企业黄页如果没有数据,选项卡不可点
-	if(service.count > 0){
-		ServicePaging();
+	if($(".b-right").height() >= 500){
+		$(".ent-tab-content.b-left").css("min-height",$(".b-right").height());
 	}
-	//主要人员
-	if(typeof(staffinfo) != "undefined" && staffinfo != null && staffinfo.length > 0){
-		var staffinfos1 = [],staffinfos2 = [],staffinfos3 = [],staffinfos4 = [];
-		for(var i=0;i<staffinfo.length;i++){
-			switch(staffinfo[i].Position){
-				case "410A":
-				case "410B":
-				case "410C":
-				case "431A":
-				case "431B":
-					staffinfos1.push(staffinfo[i]);
-					break;
-				case "432A":
-				case "432K":
-					staffinfos2.push(staffinfo[i]);
-					break;
-				case "434Q":
-				case "434R":
-				case "436A":
-					staffinfos3.push(staffinfo[i]);
-					break;
-				default:
-					staffinfos4.push(staffinfo[i]);
-					break;
-			}
+	//显示著作权数量
+	if(copyrightFlag){
+		var copyrightCount = 0;
+		if(workCopyRightFlag){
+			copyrightCount += workCopyRight.length;
 		}
-		staffinfos1.sort(function(a,b){return a.Position-b.Position});
-		staffinfos2.sort(function(a,b){return a.Position-b.Position});
-		staffinfos3.sort(function(a,b){return a.Position-b.Position});
-		staffinfos4.sort(function(a,b){return a.Position-b.Position});
-		var hm = '<div class="ent-mainpersons">';
-		//计算出一行可以放几个
-		var maxCout = parseInt($(".ent-tab-content").width() / (207+20));
-		var verticalFlag = false;
-		var appendStaffinfo = function(obj,index){
-			var tmp = 0;
-			for(var i=0;i<obj.length;i++){
-				var positionName = obj[i].PositionName;
-				if(typeof(positionName) == "undefined" || positionName == null || positionName == ""){
-					positionName = "监事";
-				}
-				tmp++;
-				if(i==0){
-					hm+='<div class="staffinfo-level-'+index+'">';
-					if(verticalFlag){
-						hm+='<a class="staffinfo-vertical"></a>';
-					}
-				}
-				verticalFlag = true;
-				hm+='<div><img src="'+cdn+'/images/entcommunity/mainperson'+index+'.png">'
-					+'<span><font class="b-com-name">'+obj[i].Name+'</font><font class="ent-positionName">'+positionName+'</font></span></div>';
-				//竖线
-				if(tmp == maxCout && i != obj.length-1){
-					hm+='<a class="staffinfo-vertical"></a>';
-				}
-				//横线
-				if(i != obj.length-1){
-					if(tmp <= maxCout-1){
-						hm+='<a class="staffinfo-horizontal"></a>';
-					}else{
-						tmp = 0;
-					}
-				}
-				if(i==obj.length-1){
-					hm+='</div>';
-				}
-			}
+		if(computerSoftCopyRightFlag){
+			copyrightCount += computerSoftCopyRight.length;
 		}
-		appendStaffinfo(staffinfos1,1);
-		appendStaffinfo(staffinfos2,2);
-		appendStaffinfo(staffinfos3,3);
-		appendStaffinfo(staffinfos4,4);
-		hm+='</div>';
-		$(".ent-mainperson").html(hm);
-	}else{
-		$(".ent-mainperson .ent-findnull").removeClass("hide");
+		if(patentFlag){
+			copyrightCount += patent.length;
+		}
+		$("#ent-tab-copyright").text(copyrightCount);
+	}
+	//显示失信数量
+	$("#ent-tab-dishonesty").text(dishonesty.count);
+	//显示失信数量
+	if(staffinfoFlag){
+		$("#ent-tab-staffinfo").text(staffinfo.length);
 	}
 	//联系地址
 	if($address){
@@ -142,16 +105,19 @@ $(function(){
 		}
 		if(index == 1){
 			b_afterLogin();
+		}else if($(this).index() == 2 && staffinfoEntity == null){
+			//加载服务列表
+			staffinfoEntity = new StaffinfoEntity();
 		}else if($(this).index() == 3 && copyrightEntity == null){
 			//加载服务列表
 			copyrightEntity = new CopyrightEntity();
-		}/*else if($(this).index() == 4 && dishonestyPaging == null){
-			//加载服务列表
+		}else if($(this).index() == 5 && dishonestyPaging == null){
+			//加载失信列表
 			dishonestyPaging = new DishonestyPaging();
-		}else if($(this).index() == 5 && servicePaging == null){
+		}else if($(this).index() == 6 && servicePaging == null){
 			//加载服务列表
 			servicePaging = new ServicePaging();
-		}*/
+		}
 	});
 	pcShare();
 });
@@ -182,6 +148,7 @@ function b_afterLogin(flag,result){
 	if(typeof(result) != "undefined"){
 		identWayFlag = result.identWay == 1;
 	}
+	identWayFlag = true;//暂时把认证权限放开
 	relationFlag = flag && identWayFlag && (relation == null || typeof(relation) == "undefined" || typeof(relation.links) == "undefined" || relation.links == null || relation.links.length == 0 || typeof(relation.nodes) == "undefined" || relation.nodes == null || relation.nodes.length <= 1);
 	if(!$(".ent-tab>li:eq(1)").hasClass("ent-active") && relationFlag){
 		$(".ent-tab>li:eq(1)").addClass("disabled");
@@ -258,12 +225,91 @@ function initRelation(){
 		$("#entrelation-limit,#entrelation-nologin").removeClass("hide");
 	}
 }
+function StaffinfoEntity(){
+	//主要人员
+	if(staffinfoFlag){
+		var staffinfos1 = [],staffinfos2 = [],staffinfos3 = [],staffinfos4 = [];
+		for(var i=0;i<staffinfo.length;i++){
+			switch(staffinfo[i].Position){
+				case "410A":
+				case "410B":
+				case "410C":
+				case "431A":
+				case "431B":
+					staffinfos1.push(staffinfo[i]);
+					break;
+				case "432A":
+				case "432K":
+					staffinfos2.push(staffinfo[i]);
+					break;
+				case "434Q":
+				case "434R":
+				case "436A":
+					staffinfos3.push(staffinfo[i]);
+					break;
+				default:
+					staffinfos4.push(staffinfo[i]);
+					break;
+			}
+		}
+		staffinfos1.sort(function(a,b){return a.Position-b.Position});
+		staffinfos2.sort(function(a,b){return a.Position-b.Position});
+		staffinfos3.sort(function(a,b){return a.Position-b.Position});
+		staffinfos4.sort(function(a,b){return a.Position-b.Position});
+		var hm = '<div class="ent-mainpersons">';
+		//计算出一行可以放几个
+		var maxCout = parseInt($(".ent-tab-content").width() / (207+20));
+		var verticalFlag = false;
+		var appendStaffinfo = function(obj,index){
+			var tmp = 0;
+			for(var i=0;i<obj.length;i++){
+				var positionName = obj[i].PositionName;
+				if(typeof(positionName) == "undefined" || positionName == null || positionName == ""){
+					positionName = "监事";
+				}
+				tmp++;
+				if(i==0){
+					hm+='<div class="staffinfo-level-'+index+'">';
+					if(verticalFlag){
+						hm+='<a class="staffinfo-vertical"></a>';
+					}
+				}
+				verticalFlag = true;
+				hm+='<div><img src="'+cdn+'/images/entcommunity/mainperson'+index+'.png">'
+					+'<span><font class="b-com-name">'+obj[i].Name+'</font><font class="ent-positionName">'+positionName+'</font></span></div>';
+				//竖线
+				if(tmp == maxCout && i != obj.length-1){
+					hm+='<a class="staffinfo-vertical"></a>';
+				}
+				//横线
+				if(i != obj.length-1){
+					if(tmp <= maxCout-1){
+						hm+='<a class="staffinfo-horizontal"></a>';
+					}else{
+						tmp = 0;
+					}
+				}
+				if(i==obj.length-1){
+					hm+='</div>';
+				}
+			}
+		}
+		appendStaffinfo(staffinfos1,1);
+		appendStaffinfo(staffinfos2,2);
+		appendStaffinfo(staffinfos3,3);
+		appendStaffinfo(staffinfos4,4);
+		hm+='</div>';
+		$(".ent-mainperson").html(hm);
+	}else{
+		$(".ent-mainperson .ent-findnull").removeClass("hide");
+	}
+}
 function CopyrightEntity(){
 	//著作权
-	if(typeof(copyright) != "undefined" && copyright != null){
+	if(copyrightFlag){
 		loadJS(cdn+"/js/frontpaging.js",function(){
-			var workCopyRight = copyright.WorkCopyRight;
-			if(typeof(workCopyRight) != "undefined" && workCopyRight != null){
+			if(workCopyRightFlag){
+				$("#workCopyRightList .badge").text(workCopyRight.length);
 				workCopyRight.sort(function(a,b){
 					if(a.FirstPublishDate<b.FirstPublishDate){
 						return 1;
@@ -288,8 +334,8 @@ function CopyrightEntity(){
 					$("#workCopyRightListPaging").parent().before(hm);
 				});
 			}
-			var computerSoftCopyRight = copyright.ComputerSoftCopyRight;
-			if(typeof(computerSoftCopyRight) != "undefined" && computerSoftCopyRight != null){
+			if(computerSoftCopyRightFlag){
+				$("#computerSoftCopyRightList .badge").text(computerSoftCopyRight.length);
 				computerSoftCopyRight.sort(function(a,b){
 					if(a.FirstPublishDate<b.FirstPublishDate){
 						return 1;
@@ -315,8 +361,8 @@ function CopyrightEntity(){
 					$("#computerSoftCopyRightListPaging").parent().before(hm);
 				});
 			}
-			var patent = copyright.Patent;
-			if(typeof(patent) != "undefined" && patent != null){
+			if(patentFlag){
+				$("#patentList .badge").text(patent.length);
 				patent.sort(function(a,b){
 					if(a.PublicDate<b.PublicDate){
 						return 1;

+ 80 - 170
core/src/web/staticres/js/relation.js

@@ -26,27 +26,40 @@ Relation.prototype.init = function(){
 	thisClass.w = $("#entrelation").width();
 	thisClass.h = $("#entrelation").height();
 	$("#entrelation-infovis").width(thisClass.w).append(
-		'<div class="entrelation-controlls hidden-sm hidden-xs">'
-		+'<div id="entrelation-pattern" class="entrelation-box" title_pos="left">一般模式</div>'
-		+'<div id="entrelation-verbosemode" class="entrelation-box" title_pos="left">详细模式</div>'
-			+'<div id="entrelation-fullscreen" class="entrelation-box" title_pos="left">全屏</div>'
+		'<div class="entrelation-controlls hidden-sm">'
+		+'<div id="entrelation-pattern" class="entrelation-box'+(thisClass.modleFlag?' checked':'')+'" title="一般模式"><span class="glyphicon yibanmoshi"></span></div>'
+		+'<div id="entrelation-verbosemode" class="entrelation-box'+(thisClass.modleFlag?'':' checked')+'" title="详细模式"><span class="glyphicon xiangximoshi"></span></div>'
+		+'<div id="entrelation-restore" class="entrelation-box checked" title="退出"><span class="glyphicon suofang"></span></div>'
+		+'<div id="entrelation-fullscreen" class="entrelation-box" title="全屏"><span class="glyphicon quanping"></span></div>'
 		+'</div>'
 	);
 	//一般模式
 	$("#entrelation-pattern").click(function(){
+		if($(this).hasClass("checked")){
+			return;
+		}
+		$("#entrelation-verbosemode").removeClass("checked");
+		$(this).addClass("checked");
 		thisClass.pattern();
 	});
 	//详细模式
 	$("#entrelation-verbosemode").click(function(){
+		if($(this).hasClass("checked")){
+			return;
+		}
+		$("#entrelation-pattern").removeClass("checked");
+		$(this).addClass("checked");
 		thisClass.verbosemode();
 	});
 	//全屏
-	$("#entrelation-fullscreen").click(function(){
+	$("#entrelation-restore,#entrelation-fullscreen").click(function(){
+		if($(this).hasClass("checked")){
+			return;
+		}
+		$("#entrelation-restore,#entrelation-fullscreen").removeClass("checked");
+		$(this).addClass("checked");
 		thisClass.initFullScreen();
 	});
-	if($(".entrelation-controlls").length>0){
-		$(".entrelation-controlls").css({left:$("#entrelation").width()-$(".entrelation-controlls").width()});
-	}
 	//处理全屏
 	$(document).on('webkitfullscreenchange mozfullscreenchange msfullscreenchange fullscreenchange', function(){
 	    if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement){
@@ -84,7 +97,7 @@ Relation.prototype.init = function(){
 	///////////////////////关系网实例////////////////////////////
 	var htmls="<div style='position:absolute;top:0px;' class='legend'>";
 	htmls= htmls+ "<div class='legend-text-bg' style='margin-top: 10px;'><div style='background-color: #ff9800;opacity: 0.8;'></div><span style='margin-left: 20px;color: #ffffff;'>本企业</span></div>";
-	htmls= htmls+ "<div class='legend-text-bg' style='margin-top: 10px;'><div style='background-color: #ABE6DB;'></div><span style='margin-left: 12px;'>其他企业</span></div>";
+	htmls= htmls+ "<div class='legend-text-bg' style='margin-top: 10px;'><div style='background-color: #ABE6DB;'></div><span style='margin-left: 12px;color: #056351;'>其他企业</span></div>";
 	htmls= htmls+ "<div class='legend-text-bg' style='margin-top: 10px;'><div style='background-color: #2196f3;'></div><span style='margin-left: 25px;color: #ffffff;'>个人</span></div>";
 	htmls= htmls+ "<div class='legend-text-bg' style='margin-top: 10px;margin-bottom: 10px;'><div style='background-color: #afafaf;'></div><span style='margin-left: 5px;color: #ffffff;'>注吊销企业</span></div>";
 	htmls= htmls+ "<div style='position: relative;'><span style='position: absolute;top: 7.5px;width: 25px;height: 5px;background-color: #e2e2e2;'></span><span style='position: absolute;left: 25px;top: 4px;border-top: 6px solid transparent;border-bottom: 6px solid transparent;border-left: 12px solid #e2e2e2;'></span><span style='margin-left: 45px;'>投资关系(股东→企业)</span></div>";
@@ -102,7 +115,8 @@ Relation.prototype.pattern = function(){
 		return;
 	}
 	var thisClass = this;
-	d3.selectAll("text").each(function (p){
+	d3.selectAll(".textpath").style("display","none");
+	d3.selectAll(".textnode").each(function (p){
 		if(p.type == "ce" || p.type == "e"){
 			$(this).text(p.shorttext);
 		}
@@ -118,7 +132,8 @@ Relation.prototype.verbosemode = function(){
 		return;
 	}
 	var thisClass = this;
-	d3.selectAll("text").each(function (p){
+	d3.selectAll(".textpath").style("display","block");
+	d3.selectAll(".textnode").each(function (p){
 		if(p.type == "ce" || p.type == "e"){
 			$(this).text(p.text);
 		}
@@ -172,6 +187,7 @@ Relation.prototype.dataProcess = function(){
 	/*********************************连线处理***********************************/
 	var minLink=-1,maxLink=-1;
 	for(var i=0;i<this.data.links.length;i++){
+		this.data.links[i]["nodeId"] = "path-"+(i+1);
 		var linkObj = this.data.links[i];
 		if(linkObj.target==this.index && this.data.nodes[linkObj.source].name==this.legcerNo){
 			//this.data.nodes[linkObj.source].type="cp";
@@ -393,12 +409,12 @@ Relation.prototype.launchFullScreen = function(element) {
 }
 Relation.prototype.cancelFullScreen = function(){
 	this.h = $("#entrelation-infovis").height();  
-	$("#entrelation-fullscreen").text("全屏").attr("title","进入全屏视图"+((!!window.ActiveXObject || "ActiveXObject" in window)?"":" (F11)"));	
+	//$("#entrelation-fullscreen").text("全屏").attr("title","进入全屏视图"+((!!window.ActiveXObject || "ActiveXObject" in window)?"":" (F11)"));	
 	//force.linkDistance(120).charge(-200).size([w,h]).resume();
 	$("#entrelation-infovis").css({width:this.w,height:this.h});
 	//设置svg标签的宽度与高度
 	d3.select("svg").attr("width", this.w).attr("height", this.h);
-	$(".entrelation-controlls").css({left:$("#entrelation").width()-$(".entrelation-controlls").width()-30});
+	$(".entrelation-controlls").removeClass("entrelation-controlls-fullscreen");
     if(document.exitFullscreen) {
       document.exitFullscreen();
     } else if (document.msExitFullscreen) {
@@ -418,7 +434,7 @@ Relation.prototype.initFullScreen = function(){
 		document.msFullscreenElement;
 	if(!fullscreenElement || fullscreenElement==null){
 		this.redrawflag = true;
-		$("#entrelation-fullscreen").text("退出").attr("title","退出全屏视图 (F11)");
+		//$("#entrelation-fullscreen").text("退出").attr("title","退出全屏视图 (F11)");
 		this.launchFullScreen(this.infovisdiv);
 		var timeout = 100;
 		if(!!window.ActiveXObject || "ActiveXObject" in window){
@@ -434,7 +450,7 @@ Relation.prototype.initFullScreen = function(){
 				//}
 				$("#entrelation-infovis").css({width:w,height:h});
 				d3.select("svg").attr("width", w).attr("height", h);
-				$(".entrelation-controlls").css({left:w-$(".entrelation-controlls").width() - 70});
+				$(".entrelation-controlls").addClass("entrelation-controlls-fullscreen");
 				thisClass.force.linkDistance(h).charge(-700).size([w,h]).resume();
 			}
 			
@@ -483,14 +499,16 @@ Relation.prototype.removeNode = function(obj){
 			});
 		}
 	}
-	d3.selectAll("path").each(function (){
+	d3.selectAll("path").each(function (p){
 		if(name == this.__data__.target.name){
 			var fromNodeName = this.__data__.source.name;
 			d3.select(this).remove();
+			$('#text'+p.nodeId).parent().remove();
 			removeAloneNode(fromNodeName);
 		}else if(name == this.__data__.source.name){
 			var toNodeName = this.__data__.target.name;
 			d3.select(this).remove();
+			$('#text'+p.nodeId).parent().remove();
 			removeAloneNode(toNodeName);
 		}
 	});
@@ -543,34 +561,6 @@ Relation.prototype.tick = function(){
 		}
 		return "translate(" + d.x + "," + d.y + ")scale(" + thisClass.zoomlevel+ ")";
 	});
-	/*this.lineLables.attr("transform",function(d){
-		var sx   = d.source.x,
-			sy   = d.source.y,
-			x    = d.target.x,
-            y    = d.target.y;
-		if(sy > y){
-			sy -= 12;
-		}else{
-			sy += 5;
-		}
-		var line = new geo.LineSegment(sx, sy, x, y);
-		for (var e in d.target.edge) {
-            var ix = line.intersect(d.target.edge[e].offset(x, y));
-            if (ix.in1 && ix.in2) {
-                x = ix.x;
-                y = ix.y;
-                break;
-            }
-        }
-        var dx = x - sx,
-	        dy = y - sy,
-	        dr = Math.sqrt(dx * dx + dy * dy);
-		var cx = (sx + x) / 2,
-			cy = (sy + y) / 2,
-			cr = dr - Math.sqrt(Math.pow(dr,2) - Math.pow(dr / 2,2));
-		//var c = convert(sx,sy,x,y,0,0,dr,dr,0);
-		return "translate("+(cx-cr)+","+(cy-cr)+")";
-	});*/
 	if(thisClass.tickFlag){
 		thisClass.force.tick();
 	}
@@ -587,8 +577,9 @@ Relation.prototype.highlightObject = function(obj,flag){
 		d3.selectAll(".node").each(function (){
 			d3.select(this).style("opacity","1");
 		});
-		d3.selectAll("path").each(function (){
+		d3.selectAll("path").each(function (p){
 			d3.select(this).style("opacity","1");
+			d3.select("#text"+p.nodeId).style("opacity","1");
 		});
 		return;
 	}
@@ -598,15 +589,17 @@ Relation.prototype.highlightObject = function(obj,flag){
 			d3.select(this).style("opacity","0.2");
 		}
 	});
-	d3.selectAll("path").each(function (){
+	d3.selectAll("path").each(function (p){
 		var targetName = this.__data__.target.name;
 		var sourceName = this.__data__.source.name;
 		if(name != targetName && name != sourceName){
 			d3.select(this).style("opacity","0.2");
+			d3.select("#text"+p.nodeId).style("opacity","0.2");
 		}else{
 			d3.selectAll(".node").each(function (){
 				if(targetName == this.__data__.name || sourceName == this.__data__.name){
 					d3.select(this).style("opacity","1");
+					d3.select("#text"+p.nodeId).style("opacity","1");
 				}
 			});
 		}
@@ -649,16 +642,21 @@ Relation.prototype.makeRelation = function(){
 	var zoom = d3.behavior.zoom().scaleExtent([0.4, 10]).on("zoom", function(){
 		thisClass.zoomed();
 	});
+	
 	this.svg = d3.select("#entrelation-infovis").append("svg:svg")
 	    .attr("width", this.w)
 	    .attr("height", this.h)
 		.call(zoom)
 		.append("g");
-	var gs = this.svg.append("svg:g")
+		
+	this.lines = this.svg.append("svg:g")
 	    .selectAll("path")
 	    .data(this.force.links())
-	    .enter();
-	this.lines = gs.append("path")
+	    .enter()
+	 	.append("path")
+		.attr("id",function(p){
+			return p.nodeId;
+		})
 		.style("fill", function(p){
 	    	return (p.type=="cp" || p.isLegal)?"#cd93d7":"#e2e2e2";
 	    })
@@ -668,18 +666,37 @@ Relation.prototype.makeRelation = function(){
 		.attr("stroke-width",function (e,i){
 			return e.linkVal;
 		});
-	/*this.lineLables = gs.append("g").each(function(d){
-		var invacconam = new Number(d.invacconam);
-		if(invacconam > 0){
-			var lenInvacconam = (invacconam + "").length;
-			if(lenInvacconam > 4 && (invacconam + "").indexOf(".") > -1 && (lenInvacconam - (invacconam + "").indexOf(".")) > 4){
-				invacconam = (new Number(invacconam)).toFixed(4);
+		
+	this.svg.append("svg:g")
+	 	.selectAll("textPath")
+		.data(this.force.links())
+		.enter()
+		.append("text")
+		.attr("x", "0")
+		.attr("y", "0")
+		.append("textPath")
+		.attr("class", "textpath")
+		.attr("id", function(d) { 
+			return 'text'+d.nodeId;
+		})
+		.attr("xlink:href", function(d) { 
+			return '#'+d.nodeId;
+		})
+		.text(function(d) { 
+			var invacconam = new Number(d.invacconam);
+			if(invacconam > 0){
+				var lenInvacconam = (invacconam + "").length;
+				if(lenInvacconam > 4 && (invacconam + "").indexOf(".") > -1 && (lenInvacconam - (invacconam + "").indexOf(".")) > 4){
+					invacconam = (new Number(invacconam)).toFixed(4);
+				}
+				return invacconam+"万元";
+			}else{
+				return "";
 			}
-			d3.select(this).append("text").text(invacconam+"万元");
-		}else{
-			d3.select(this).remove();
-		}
-	});*/
+		})
+		.style("fill", "#4e5051")
+		.attr("startOffset", "20%")
+		.style("display", this.modleFlag?"none":"block");
 	
 	this.lines.each(function (d,i){
 		var invacconam = new Number(d.invacconam);
@@ -732,8 +749,9 @@ Relation.prototype.makeRelation = function(){
 	    });
 	this.makeTitle();
 	this.nodes.append('text')
+	.attr("class","textnode")
     .text(function(d){
-		if(thisClass.modleFlag){
+		if(d.type != "p" && thisClass.modleFlag){
 			return d.shorttext;
 		}else{
 			return d.text;
@@ -757,7 +775,7 @@ Relation.prototype.makeRelation = function(){
 		if(p.type == "e" && (p.opstate == "11" || p.opstate == "07")){
 			return "#ffffff";
 		}
-    	return p.type=="p"?"#ffffff":p.type=="ce"?"#ffffff":"auto";
+    	return p.type=="p"?"#ffffff":p.type=="ce"?"#ffffff":"#056351";
 	})
 	.on("click",function (d,i){
 		if(!dragstatus && d.type == "e"){
@@ -859,112 +877,4 @@ Relation.prototype.makeTextBg = function(){
             bottom : new geo.LineSegment(bounds.x1, bounds.y2, bounds.x2, bounds.y2)
         };
     });
-}
-// svg : [A | a] (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
-
-/* x1 y1 x2 y2 fA fS rx ry φ */
-function  radian( ux, uy, vx, vy ) {
-    var  dot = ux * vx + uy * vy;
-    var  mod = Math.sqrt( ( ux * ux + uy * uy ) * ( vx * vx + vy * vy ) );
-    var  rad = Math.acos( dot / mod );
-    if( ux * vy - uy * vx < 0.0 ) rad = -rad;
-    return  rad;
-}
-//https://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
-//conversion_from_endpoint_to_center_parameterization
-//sample :  convert(200,200,300,200,1,1,50,50,0,{})
-function convert(x1, y1, x2, y2, fA, fS, rx, ry, phi) {
-    var cx,cy,theta1,delta_theta;
-
-    if( rx == 0.0 || ry == 0.0 ) return -1;  // invalid arguments
-
-    var  s_phi = Math.sin( phi );
-    var  c_phi = Math.cos( phi );
-    var  hd_x = ( x1 - x2 ) / 2.0;   // half diff of x
-    var  hd_y = ( y1 - y2 ) / 2.0;   // half diff of y
-    var  hs_x = ( x1 + x2 ) / 2.0;   // half sum of x
-    var  hs_y = ( y1 + y2 ) / 2.0;   // half sum of y
-
-    // F6.5.1
-    var  x1_ = c_phi * hd_x + s_phi * hd_y;
-    var  y1_ = c_phi * hd_y - s_phi * hd_x;
-
-    var  rxry = rx * ry;
-    var  rxy1_ = rx * y1_;
-    var  ryx1_ = ry * x1_;
-    var  sum_of_sq = rxy1_ * rxy1_ + ryx1_ * ryx1_;   // sum of square
-    var  coe = Math.sqrt( ( rxry * rxry - sum_of_sq ) / sum_of_sq );
-    if( fA == fS ) coe = -coe;
-
-    // F6.5.2
-    var  cx_ = coe * rxy1_ / ry;
-    var  cy_ = -coe * ryx1_ / rx;
-
-    // F6.5.3
-    cx = c_phi * cx_ - s_phi * cy_ + hs_x;
-    cy = s_phi * cx_ + c_phi * cy_ + hs_y;
-
-    var  xcr1 = ( x1_ - cx_ ) / rx;
-    var  xcr2 = ( x1_ + cx_ ) / rx;
-    var  ycr1 = ( y1_ - cy_ ) / ry;
-    var  ycr2 = ( y1_ + cy_ ) / ry;
-
-    // F6.5.5
-    theta1 = radian( 1.0, 0.0, xcr1, ycr1 );
-
-    // F6.5.6
-    delta_theta = radian( xcr1, ycr1, -xcr2, -ycr2 );
-    var  PIx2 = Math.PI * 2.0;
-    while( delta_theta > PIx2 ) delta_theta -= PIx2;
-    while( delta_theta < 0.0 ) delta_theta += PIx2;
-    if( fS == false ) delta_theta -= PIx2;
-
-    var outputObj = { /* cx, cy, theta1, delta_theta */ 
-        cx : cx,
-        cy : cy,
-        theta1 : theta1,
-        delta_theta : delta_theta
-    }
-    console.dir(outputObj);
-
-    return outputObj;
-}
-function convert_tmp(x1, y1, x2, y2, fA, fS, rx, ry, phi) {
-    var cx,cy,theta1,delta_theta;
-
-    if( rx == 0.0 || ry == 0.0 ) return -1;  // invalid arguments
-
-    var  s_phi = Math.sin( phi );
-    var  c_phi = Math.cos( phi );
-    var  hd_x = ( x1 - x2 ) / 2.0;   // half diff of x
-    var  hd_y = ( y1 - y2 ) / 2.0;   // half diff of y
-    var  hs_x = ( x1 + x2 ) / 2.0;   // half sum of x
-    var  hs_y = ( y1 + y2 ) / 2.0;   // half sum of y
-
-    // F6.5.1
-    var  x1_ = c_phi * hd_x + s_phi * hd_y;
-    var  y1_ = c_phi * hd_y - s_phi * hd_x;
-
-    var  rxry = rx * ry;
-    var  rxy1_ = rx * y1_;
-    var  ryx1_ = ry * x1_;
-    var  sum_of_sq = rxy1_ * rxy1_ + ryx1_ * ryx1_;   // sum of square
-    var  coe = Math.sqrt( ( rxry * rxry - sum_of_sq ) / sum_of_sq );
-    if( fA == fS ) coe = -coe;
-
-    // F6.5.2
-    var  cx_ = coe * rxy1_ / ry;
-    var  cy_ = -coe * ryx1_ / rx;
-
-    // F6.5.3
-    cx = c_phi * cx_ - s_phi * cy_ + hs_x;
-    cy = s_phi * cx_ + c_phi * cy_ + hs_y;
-
-    var outputObj = { /* cx, cy */ 
-        cx : rxry,
-        cy : rxy1_
-    }
-    console.dir(outputObj);
-
-    return outputObj;
 }

+ 70 - 0
core/src/web/templates/member/incmobile/alter.html

@@ -0,0 +1,70 @@
+<div class="comnav">
+	<span></span>
+	变更信息
+	<span style="float:right;font-size:11px;padding-right:10px;" data="c_alter" onclick="childrenshow(this);">{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}</span>
+</div>
+<div class="ent-alterinfo">
+	<div class="ent-layout-up">
+		<div class="b-com-content">
+			<ul>
+			{{range $k,$v := .T.res.alterInfo}}
+				<li>
+					<div>
+						<div class="date">{{$v.AltDate}}</div>
+						<div>{{$v.AltItemName}}</div>
+						<div>
+							<span onclick="viewcontent(this);">查看详情</span>
+							<div class="hides content">
+							变更前:{{$v.AltBe}}<br>变更后:{{$v.AltAf}}
+							</div>
+						</div>
+						<a></a>
+					</div>
+					<div>
+						<div class="date">{{$v.AltDate}}</div>
+						<div>{{$v.AltItemName}}</div>
+						<div>
+							<span onclick="viewcontent(this);">查看详情</span>
+							<div class="hides content">
+							变更前:{{$v.AltBe}}<br>变更后:{{$v.AltAf}}
+							</div>
+						</div>
+						
+						<a></a>
+					</div>
+				</li>
+			{{end}}
+				<li class="end">
+					<div>
+						<div></div>
+						<div></div>
+						<div></div>
+						<a></a>
+					</div>
+					<div>
+						<div></div>
+						<div></div>
+						<div></div>
+						<a></a>
+					</div>
+				</li>
+				<script>
+					if($(".end").prev().length==0){
+						$(".end").remove();
+					}
+					document.write("<center>暂无变更信息<center>");
+				</script>
+				<div class="clearfix"></div>
+			</ul>
+	</div>
+	</div>
+</div>
+<div style="position: absolute;width:100%;z-index:4410;background:#FFF;bottom: 0;min-height: 270px;display:none;font-size:12px;" class="creditrules">
+		<div class="title">
+			详细变更信息
+			<button class="btn btn-link navcolor " style="float:right;"onclick="$(this).parent().parent().hide();$('.modal-backdrop').hide()" >确定</button>
+		</div>
+		<div class="content">
+		
+		</div>
+	</div>

+ 72 - 51
core/src/web/templates/member/incmobile/baseinfo.html

@@ -1,115 +1,136 @@
 <div class="comnav">
 	<span></span>
 	基本信息
+	<span style="float:right;font-size:11px;padding-right:10px;" data="c_baseinfo" onclick="childrenshow(this);">{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}</span>
 </div>
 <div class="combody baseinfo">
 	<ul>
 		<li>
 			<div class="col-xs-4">
 					<span class="glyphicon glyphicon-flag colorc"></span>
-					<span class="ent">注册号</span>
+					<span class="ent {{if not .T.res.RegNo}}entnull{{end}}">注册号</span>
 			</div>
-			<span class="col-xs-8 entvar">1112012350545</span>
+			<span class="col-xs-8 entvar">{{if .T.res.RegNo}}{{.T.res.RegNo}}{{end}}</span>
 		</li>
 		<li>
 			<div class="col-xs-4">
 				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">行业</span>
+				<span class="ent {{if not .T.res.IndustryPhyName}}entnull{{end}}">行业</span>
 			</div>
-			<span class="col-xs-8 entvar">互联网-电子商务</span>
+			<span class="col-xs-8 entvar">{{if .T.res.IndustryPhyName}}{{.T.res.IndustryPhyName}}{{end}}</span>
 		</li>
 		<li>
 			<div class="col-xs-4">
 				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">成立日期</span>
+				<span class="ent {{if not .T.res.EstDate}}entnull{{end}}">成立日期</span>
 			</div>
-			<span class="col-xs-8 entvar">1999年8月4日</span>
+			<span class="col-xs-8 entvar">{{if .T.res.EstDate}}{{.T.res.EstDate}}{{end}}</span>
 		</li>
 		<li>
 			<div class="col-xs-4">
 				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">营业期限</span>
+				<span class="ent {{if and (not .T.res.OpFrom) (not .T.res.OpTo)}} entnull{{end}}">营业期限</span>
 			</div>
-			<span class="col-xs-8 entvar">1999年18月14日-1999年18月14日</span>
+			<span class="col-xs-8 entvar">{{if .T.res.OpFrom}}{{.T.res.OpFrom}}{{end}}{{if .T.res.OpTo}}&nbsp;-&nbsp;{{.T.res.OpTo}}{{else}}&nbsp;-&nbsp;长期{{end}}</span>
 		</li>
 		<li>
-			<div class="col-xs-4">
-				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">注册资本</span>
-			</div>
-			<span class="col-xs-8 entvar">无</span>
+		{{if and .T.res.RegCap .T.res.EntType}}
+			{{if and (ne .T.res.EntType "9600") (ne .T.res.EntType "5810") (ne .T.res.EntType "4540") (ne .T.res.EntType "4533")}}
+				<div class="col-xs-4">
+					<span class="glyphicon glyphicon-flag colorc"></span>
+					<span class="ent">注册资本</span>
+				</div>
+				<span class="col-xs-8 entvar">
+								<script>var d1={{.T.res.RegCap}};d1=d1?d1:0; var lenD1=(d1+"").length ;if(lenD1>4&&(d1+"").indexOf(".")>-1&&(lenD1-(d1+"").indexOf("."))>4){document.write(d1.toFixed(4))}else{document.write(d1)}</script>万{{if .T.res.RegCapCurName}}{{.T.res.RegCapCurName}}{{else}}元{{end}}
+				</span>
+				{{else}}
+					<div class="col-xs-4">
+						<span class="glyphicon glyphicon-flag colorc"></span>
+						<span class="ent entnull">注册资本</span>
+					</div>
+					<span class="col-xs-8 entvar">
+						空
+					</span>
+				{{end}}
+			{{else}}
+				<div class="col-xs-4">
+					<span class="glyphicon glyphicon-flag colorc"></span>
+					<span class="ent entnull">注册资本</span>
+				</div>
+				<span class="col-xs-8 entvar">
+					空
+				</span>
+			{{end}}
+			
 		</li>
 		<li>
 			<div class="col-xs-4">
 				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">地址</span>
+				<span class="ent {{if not .T.res.Dom}}entnull{{end}}">地址</span>
 			</div>
-			<span class="col-xs-8 entvar">郑州市经三路财富广场</span>
+			<span class="col-xs-8 entvar">{{if .T.res.Dom}}{{.T.res.Dom}}{{else}}空{{end}}</span>
 		</li>
 		<li>
 			<div class="col-xs-4">
 				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">企业类型</span>
+				<span class="ent {{if not .T.res.EntTypeName}} entnull{{end}}">企业类型</span>
 			</div>
-			<span class="col-xs-8 entvar">其他股份制有限公司(上市)</span>
+			<span class="col-xs-8 entvar">{{if .T.res.EntTypeName}}{{.T.res.EntTypeName}}{{else}}空{{end}}</span>
 		</li>
 		<li>
 			<div class="col-xs-4">
-				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">登记机关</span>
+				<span class="glyphicon glyphicon-flag colorc "></span>
+				<span class="ent {{if not .T.res.RegOrgName}}entnull{{end}}">登记机关</span>
 			</div>
-			<span class="col-xs-8 entvar">北京市工商行政管理局</span>
+			<span class="col-xs-8 entvar ">{{if .T.res.RegOrgName}}{{.T.res.RegOrgName}}{{else}}空{{end}}</span>
 		</li>
 		<li>
 			<div class="col-xs-4">
 				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">公司规模</span>
+				<span class="ent entnull">公司规模</span>
 			</div>
-			<span class="col-xs-8 entvar">500-999人</span>
+			<span class="col-xs-8 entvar"></span>
 		</li>
 		<li>
 			<div class="col-xs-5">
 				<span class="glyphicon glyphicon-flag colorc"></span>
-				<span class="ent">法定代表人</span>
+				<span class="ent {{if not .T.res.LeRep}} entnull {{end}}">法定代表人</span>
 			</div>
-			<div class="col-xs-2">
-				<span class="col-xs-12 entvar">空</span>
+			<div class="col-xs-6" style="margin-left:-8.33333334%;">
+				<span class="col-xs-8 entvar">{{if not .T.res.LeRep}}空{{else}}{{.T.res.LeRep}}{{end}}</span>
 			</div>
 		</li>
 	</ul>
 </div>
+{{if .T.res.investor}}
 <div class="secnav navcolor">
 	<span class="navbg">&gt;</span>
 	股东信息
 </div>
-<div class="clear shareholder">
-	<div class="icon col-xs-4">				
-		<img src="/images/entcommunity/ziranren.png" width=70>
-		<div class="type" ><b>自然人</b></div>
-		<span class="name">陈国光</span>
-	</div>
-	<div class="icon col-xs-4">				
-		<img src="/images/entcommunity/ziranren.png" width=70>
-		<div class="type" ><b>自然人</b></div>
-		<span class="name">陈国光</span>
-	</div>
-	<div class="icon col-xs-4">				
-		<img src="/images/entcommunity/ziranren.png" width=70>
-		<div class="type" ><b>自然人</b></div>
-		<span class="name">陈国光</span>
-	</div>
-	<div class="icon col-xs-4">				
-		<img src="/images/entcommunity/ziranren.png" width=70>
-		<div class="type" ><b>自然人</b></div>
-		<span class="name">陈国光</span>
-	</div>
-	<div class="icon col-xs-4">				
-		<img src="/images/entcommunity/ziranren.png" width=70>
-		<div class="type" ><b>自然人</b></div>
-		<span class="name">陈国光</span>
+<div class="clear shareholder ">
+	<div class="b-com-content ">
+	{{range $k,$v := .T.res.investor}}
+		{{if $v.InvType}}
+		<div >
+			{{if eq $v.InvType "20" "21" "22"}}
+			<img src="{{Msg "seo" "cdn"}}/images/entcommunity/ziranren.png" width=70>
+			{{else}}
+			<img src="{{Msg "seo" "cdn"}}/images/entcommunity/faren.png" width=70>
+			{{end}}
+			<span><b>{{$v.InvTypeName}}</b></span>
+			<span><script>document.write({{$v.Inv}}.replace(/\s/gm,""));</script></span>
+		</div>
+		{{end}}
+		{{end}}
 	</div>
 </div>
+{{end}}
+{{if .T.res.OpScope}}
 <div class="secnav navcolor">
 	<span class="navbg">&gt;</span>
 	经营范围
-</div>
+</div>
+<div style="padding:0 15px;">
+{{.T.res.OpScope}}
+</div>
+{{end}}

+ 184 - 41
core/src/web/templates/member/incmobile/detailindex.html

@@ -5,65 +5,208 @@
 	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
 	<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
 	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable="yes" />
-	<link href="/css/bootstrap.min.css" rel="stylesheet">
- 	<link href="/css/mobile/incmobile.css" rel="stylesheet">
+	<link href="/css/bootstrap.min.css" rel="stylesheet" />
+	<link href="/css/qfw.css" rel="stylesheet" />
+	<link href="/css/entcommunity.css" rel="stylesheet" />
+ 	<link href="/css/mobile/incmobile.css" rel="stylesheet" />
+	<style>
+		body{
+			background:#FFF;
+		}
+		.ent-mainpersons img{
+			width: 60px;
+		   height: 60px;
+		   display: inline-block;
+		   vertical-align: top;
+		}
+		.ent-mainpersons span{
+			display: inline-block;
+			vertical-align: top;
+			margin-top: 10px;
+			text-align: center;
+		}
+		.ent-mainpersons .b-com-name{
+			font-weight: bold;
+			font-size: 13px;
+			margin-bottom: 5px;
+		}
+		.ent-mainpersons font {
+			display: block;
+			text-overflow: ellipsis;
+			overflow: hidden;
+			white-space: nowrap;
+			width: 75px;
+		}
+		.ent-mainpersons>div>div{
+			margin-top:5px;
+		}
+		
+		.ent-mainpersons{
+			padding-left: 0px; 
+			margin:0px auto;
+			max-width:310px;
+		}
+		.sp{
+			border: none !important;
+			border-bottom: 1px solid #e5e6e9 !important;
+			border-radius: 0px !important;
+		}
+		.entrelation svg{
+			width:1000px;
+			height:1000px;
+		}
+	</style>
  </head>
  <body>
-	<div class="col-xs-12 index-header" style="text-align:center;">
-		<img src="	" height=85 width=85/>
-		<div class="col-xs-12 title"> 
-			新浪网技术(中国)有限公司
-		</div > 
-		<div class="col-xs-12" style="text-align:center;clear:both;">
-			<div  class="type">其他股份有限公司(上市)</div>
-			<div  class="note taupe"><span>续存</span></div>
-			<div  class="abn" >经营异常</div>
+<div class="modal-backdrop fade in" style="display:none;"></div>
+	<div id="header">
+		<div class="col-xs-12 index-header" style="text-align:center;">
+			<img src="{{if .T.res.s_avatar}}{{Msg "seo" "cdn"}}{{.T.res.s_avatar}}{{else}}null{{end}}" onerror="this.src='{{Msg "seo" "cdn"}}/images/ent-logo.png'" height=85 width=85>
+			<div class="col-xs-12 title"> 
+				{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}
+			</div > 
+			<div class="col-xs-12" style="text-align:center;clear:both;">
+				<div  class="type">{{.T.res.EntTypeName}}</div>
+				<div class="taupe {{if eq .T.res.OpStateName "注销" "吊销"}}ent-status-r{{else}}ent-status-g{{end}}">
+				<script>
+					var OpStateName = {{.T.res.OpStateName}};
+					if(OpStateName.length > 2){
+						OpStateName = OpStateName.substring(0,2);
+					}
+					document.write(OpStateName);
+				</script>
+				</div>
+			<!--	<div  class="abn" >经营异常</div>-->
+			</div>
 		</div>
-	</div>
-	<div class="col-xs-12 index-middle">
-		<div class="col-xs-6">企业名片</div>
-		<div class="col-xs-6">微官网</div>
-	</div>
-	<div class="col-xs-12 index-navtable">
-		<div class="col-xs-4">
-			<span class="glyphicon glyphicon-flag"></span>
-			企业黄页
-		</div>
-		<div class="col-xs-4">
-			企业概况
-		</div>
-		<div class="col-xs-4">
-			关系网
-		</div>
-		<div class="col-xs-4">
-			主要人员
+		<div class="col-xs-12 index-middle">
+			<div class="col-xs-6" style="border-right: 1px solid #16A086;" data-id="c_card" onclick="childrenshow(this);"><span class="glyphicon qiyemingpian" style="font-size:11px;"></span>&nbsp;企业名片</div>
+			<div class="col-xs-6"><span class="glyphicon weiguanwang2"></span>&nbsp;微官网</div>
 		</div>
-		<div class="col-xs-4">
-			变更信息
-		</div>
-		<div class="col-xs-4">
-			失信信息
-		</div>
-		<div class="col-xs-4">
-			企业新闻
+		<div class="col-xs-12 index-navtable">
+			<div class="col-xs-4 content" data-id="c_baseinfo" onclick="childrenshow(this);">
+				<div style="height:50%;padding-top:30%;">
+						<span class="glyphicon qiyehuangye" ></span>
+					</div>
+					<div style="height:50%;" >
+						基本信息
+					</div>
+			</div>
+			<div class="col-xs-4 content" data-id="c_relation" onclick="childrenshow(this);">
+				<div style="height:50%;padding-top:30%;">
+						<span class="glyphicon guanxiwang1"></span>
+					</div>
+					<div style="height:50%;" >
+						关系网
+					</div>
+			</div>
+			<div class="col-xs-4 content" data-id="c_member" onclick="childrenshow(this);">
+				<div style="height:50%;padding-top:30%;">
+						<span class="glyphicon zhuyaorenyuan " ></span>
+					</div>
+					<div style="height:50%;" >
+						主要人员
+					</div>
+			</div>
+			<div class="col-xs-4 content" data-id="c_alter" onclick="childrenshow(this);">
+				<div style="height:50%;padding-top:30%;">
+					<span class="glyphicon bofangjilu" ></span>
+				</div>
+				<div style="height:50%;" >
+					变更信息
+				</div>
+			</div>
+			<div class="col-xs-4 content" data-id="c_sx" onclick="childrenshow(this);">
+				<div style="height:50%;padding-top:30%;">
+					<span class="glyphicon shixinxinxi " ></span>
+				</div>
+				<div style="height:50%;" >
+					失信信息
+				</div>
+			</div>
+			<div class="col-xs-4 content" data-id="c_news" onclick="childrenshow(this);">
+				<div style="height:50%;padding-top:30%;">
+					<span class="glyphicon qiyexinwen " ></span>
+				</div>
+				<div style="height:50%;" >
+					企业新闻
+				</div>
+			</div>
 		</div>
 	</div>
+	<script src="/js/jquery.js"></script>
+	<script src="/js/qfw.js"></script>
+	<div id="c_baseinfo" style="clear:both;display:none;">
+			{{include "/member/incmobile/baseinfo.html"}}
+	</div>
+	<div id="c_relation" style="clear:both;display:none;">
+			{{include "/member/incmobile/relation.html"}}
+	</div>
+	<div id="c_member" style="clear:both;display:none;">
+			{{include "/member/incmobile/member.html"}}
+	</div>
+	<div id="c_alter" style="clear:both;display:none;">
+			{{include "/member/incmobile/alter.html"}}
+	</div>
+	<div id="c_news" style="clear:both;display:none;">
+			{{include "/member/incmobile/news.html"}}
+	</div>
+	<div id="c_sx" style="clear:both;display:none;">
+			{{include "/member/incmobile/sx.html"}}
+	</div>
+	<div id="c_card" style="clear:both;display:none;">
+			{{include "/member/incmobile/yellowpage.html"}}
+	</div>
 <body>
-<script src="/js/jquery.js"></script>
-<script src="/js/qfw.js"></script>
+
 <script src="/js/fastclick.js"></script>
 <script src="/js/bootstrap.min.js"></script>
 <script src="/js/entcommunity.js"></script>
 <script>
 	$(function(){
 			 resize();
+			mCommunity().initmemer();
+			DishonestyPaging();
+			initRelation();
 	})
 	$(window).resize(function(){
 	 		resize();
 	});
+	function childrenshow(n){
+		var node=$(n);
+		if (node.attr("data-id")){
+			$("#header").hide();
+			$("#"+node.attr("data-id")).show();
+		}else{
+			$("#header").show();
+			$("#"+node.attr("data")).hide();
+		}
+		resize();
+	}
 	function resize(){
-			$(".index-navtable div").height($(".index-navtable div").width());
-			$(".index-navtable div").css("line-height",$(".index-navtable div").width()+"px");
+			$(".index-navtable div.content").height($(".index-navtable div.content").width());
 	}
+	$(function(){
+		$(".date").each(function(i,n){
+				var i=parseFloat($(n).text());
+				$(n).text(new Date(i).Format("yyyy-mm-dd"));
+		})
+	})
+   var cdn = {{Msg "seo" "cdn"}};
+	var entId = {{.T.res._id}};
+	var regNo = {{.T.res.RegNo}};
+	var regCapCurName = {{.T.res.RegCapCurName}};
+	var legcerNo = {{.T.res.LegCerNO}};
+	var entName = {{.T.res.EntName}};
+	var staffinfo = {{.T.res.staffinfo}};
+	var synopsis = {{.T.res.s_synopsis}};
+	var relevantEnts = {{.T.relevantEnts}};
+	var dishonesty = {{.T.dishonesty}};
+	var gs = {{.T.res.gs}};
+	var investor = {{.T.res.investor}};
+	var OpScope = {{.T.res.OpScope}};
+	var service = {{.T.service}};
+	var relation = {{.T.relation}};
+	var copyright = {{.T.copyright}};
 </script>
 </html>

+ 1 - 1
core/src/web/templates/member/incmobile/index.html

@@ -129,7 +129,7 @@ if(typeof(signature) != "undefined" && signature != null && signature.length ==
 				查企业,查企业失信信息,查企业变更,查你所想,无所不能...
 			</div>
 			<div style="clear:both;" class="col-sm-8">
-              <form method="post"  action="/search/enterprise/ent.html" id="search">
+              <form method="post"  action="/wx/search/enterprise/list.html" id="search">
 						<div class="input-group col-xs-12">
 							<i class="glyphicon glyphicon-search input-before"></i>
                  		<input type="text" id="query" class="form-control" name="words" placeholder="找企业"  >

+ 55 - 24
core/src/web/templates/member/incmobile/list.html

@@ -4,7 +4,7 @@
   <title> 企业社区-列表</title>
 	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
 	<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
-	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable="yes" />
+	<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
 	<link href="/css/bootstrap.min.css" rel="stylesheet">
  	<link href="/css/mobile/incmobile.css" rel="stylesheet">
  </head>
@@ -12,8 +12,14 @@
 	<div class="col-xs-12">
 	<div class="m-searchbar">
 		<div class="containers">
-			<form id="searchForm" method="post">
-			<input type="text" id="query" class="searchtext"/>
+			<form  id="queryform" method="post">
+			<input type="text" id="query" name="words" value="{{.T.querymap.query}}" class="searchtext"/>
+			<input type="hidden" name="city" id="citys" value="">
+			<input type="hidden" name="cityNo" id="cityNo" value="1">
+			<input type="hidden" name="c_author" id="author" value="">
+			<input type="hidden" name="OpState" value="">
+			<input type="hidden" name="c_hfl" id="c_hfl" value='{{.T.querymap.c_hfl}}'>
+			<input type="hidden" name="c_zb" id="c_zb" value='{{.T.querymap.c_zb}}'>
 			<a class="searchbtn"><b class="glyphicon glyphicon-search"></b></a>
 			<a href="javascript:" class="searchlink">高级搜索</a>
 				<div id="immediately" class="immediately">
@@ -21,7 +27,7 @@
 			</form>
 		</div>
 	</div>
-	<div class="nav-bar hides">
+	<div class="nav-bar hides" style="text-align:center;">
 		<ul class="nav">
 			<li class="dropdown-toggle" id="t-location">所在地</li>
 			<li class="dropdown-toggle" id="t-category">行业类别</li>
@@ -52,12 +58,14 @@
 			</ul>
 		</div>
 	</div>
-	<div class="bottom" >
+	<div class="bottom" style="float:left;clear:both;" >
 		<ul class="inclist">
-			
+				
 		</ul>
+	<div class="text-center hides" style="margin:50% auto;" id="finderror"><img src="//cdn.qmx.top:9000/images/findnull.png" width=100><h6><strong class="text-muted">没有找到相关内容,换个关键词试试</strong></h6></div>
 	</div>
-	<center><a class="loadmore btn btn-link">加载更多</a></center>
+	<center style="clear:both;"><a class="loadmore btn btn-link hides" style="display:inline-block;" onclick="loadData();">加载更多</a></center>
+	<center class="nomore hides"><div style="margin:20px;">没有搜索到?尝试更精确的搜索条件!</div></center>
 	</div>
 	<script src="/js/jquery.js"></script>
 	<script src="/js/qfw.js"></script>
@@ -68,28 +76,51 @@
 	<script>
 		$(function(){
 			mCommunity().initIndex();
+			if(data.length>10){
+				data=eval(data);
+				$(".loadmore").show();
+				loadData();
+			}else{
+				data=[];
+				$(".loadmore").hide();
+				$("#finderror").show();
+			}
 		});
+		var i=0;
 		var data={{.T.data}}
 		var strVar = "";
-		strVar += "<li class=\"col-xs-12\"><table align=\"center\"><caption><div class=\"left\">$EntName<\/div><b class=\"$status\">$OpStateName<\/b><\/caption><tr><td class=\"left\">注册号:<span>$RegNo<\/span><\/td><td>法定代表人:<span>$LeRep<\/span><\/td><\/tr><tr><td class=\"left\">成立时间:<span>$EstDate<\/span><\/td><td>所在地:<span>$OpLocDistrict<\/span><\/td><\/tr><tr><td colspan=\"2\"><hr class=\"list\"><\/td><\/tr><\/table><\/li>";
-		if(data.length>10){
-			data=eval(data);
+		strVar += "<li class=\"col-xs-12\"><table align=\"center\"><caption><div class=\"left\"><a href=\"/enterprise/$Id.html\">$EntName</a><\/div><b class=\"$status\">$OpStateName<\/b><\/caption><tr><td class=\"left\">注册号:<span>$RegNo<\/span><\/td><td>法定代表人:<span>$LeRep<\/span><\/td><\/tr><tr><td class=\"left\">成立时间:<span>$EstDate<\/span><\/td><td>所在地:<span>$OpLocDistrict<\/span><\/td><\/tr><tr><td colspan=\"2\"><hr class=\"list\"><\/td><\/tr><\/table><\/li>";
+		
+		function loadData(){
 			var li="";
-			for (var i=0;i<5;i++){
-				var tmp=strVar.replace("$EntName",data[i].EntName)
-										 .replace("$RegNo",data[i].RegNo)
-										 .replace("$LeRep",data[i].LeRep)
-										 .replace("$OpLocDistrict",data[i].OpLocDistrict)
-										 .replace("$EstDate",data[i].EstDate)
-										 .replace("$OpStateName",data[i].OpStateName.substr(0,2));
-				if (data[i].OpStateName!="存续"&&data[i].OpStateName.indexOf("在营")==-1){
-					 tmp=tmp.replace("$status","ent-status-r");
-				}else{
-					tmp=tmp.replace("$status","ent-status-g");
+				var len=i+5;
+				if (data.length<5 || data.length-i<5){
+					len=data.length;
 				}
-				li=li+tmp;
-			}
-			$(".inclist").append($(li));
+				for (;i<len;i++){
+					data[i]["OpStateName"]=data[i]["OpStateName"]==""?"存续":data[i]["OpStateName"];
+					if (data[i]["OpStateName"].indexOf("在营")>-1){
+						data[i]["OpStateName"]="存续";
+					}
+					var tmp=strVar.replace("$EntName",data[i]["EntName"])
+											 .replace("$RegNo",data[i]["RegNo"])
+											 .replace("$LeRep",data[i]["LeRep"])
+											 .replace("$OpLocDistrict",data[i]["OpLocDistrict"])
+											 .replace("$EstDate",data[i]["EstDate"])
+											 .replace("$Id",data[i]["_id"])
+											 .replace("$OpStateName",data[i]["OpStateName"].substr(0,2));
+					if (data[i].OpStateName!="存续"&&data[i].OpStateName.indexOf("在营")==-1){
+						 tmp=tmp.replace("$status","ent-status-r");
+					}else{
+						tmp=tmp.replace("$status","ent-status-g");
+					}
+					li=li+tmp;
+				}
+				if(i==data.length){
+					$(".loadmore").hide();
+					$(".nomore").show();
+				}
+				$(".inclist").append($(li));
 		}
 	</script>
  </body>

+ 4 - 34
core/src/web/templates/member/incmobile/member.html

@@ -1,40 +1,10 @@
 <div class="comnav">
-	<span></span>
 	主要人员
+		<span style="float:right;font-size:11px;padding-right:10px;" data="c_member" onclick="childrenshow(this);">{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}</span>
 </div>
 <div>
-	<div class="member">
-		<div class="row">
-			<div class="one">
-				<img src="https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=936799099,1721094993&fm=80" height=70 width=70 />
-				<div class="person">
-					<div>张三丰</div>
-					<div><small>董事长</small></div>
-				</div>
-			</div>
-		</div>	
-		<div class="row">
-			<div class="border-left splitver">
-				
-			</div>
-		</div>
-		<div class="row">
-			<div class="one">
-				<img src="https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=936799099,1721094993&fm=80" height=70 width=70 />
-				<div class="person">
-					<div>张三丰</div>
-					<div><small>董事长</small></div>
-				</div>
-			</div>
-			<div class="split"><hr/></div>
-			<div class="one">
-				<img src="https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=936799099,1721094993&fm=80" height=70 width=70 />
-				<div class="person">
-					<div>张三丰</div>
-					<div><small>董事长</small></div>
-				</div>
-			</div>
-		</div>	
-		
+	<div class="ent-mainperson">
+	</div>
+			<center class="memberinfo hides"><div >暂无主要成员信息</div></center>
 	</div>
 </div>

+ 17 - 6
core/src/web/templates/member/incmobile/news.html

@@ -1,16 +1,27 @@
 <div class="comnav">
-	<span></span>
-	主要人员
+	企业新闻
+		<span style="float:right;font-size:11px;padding-right:10px;" data="c_news" onclick="childrenshow(this);">{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}</span>
 </div>
 <div class="entinfo-page" style="background:#FFF;">
 	<div class="b-right"> 
    <div class="margin-t-10 b-adver"> 
     <div class="b-adver-content newsInfo">
      <ul>
-      <li><span><img src="/images/swordfish/circle.png" />2016-03-17 11:02:41</span><br /><a href="/front/webcontent/56eb70b9af53745027000022.html">比Bigbang还火爆的郑州物联网大会门票我!们!有!</a></li>
-      <li><span><img src="/images/swordfish/circle.png" />2016-03-17 09:57:00</span><br /><a href="/front/webcontent/56ea800daf53745027000018.html">大白兔奶糖换了外衣就涨价!你还会买吗?</a></li>
-      <li><span><img src="/images/swordfish/circle.png" />2016-03-17 01:40:55</span><br /><a href="/front/webcontent/56ea088daf53745027000005.html">这种诡异的二维码千万别碰!</a></li>
-     </ul>
+			{{range $k,$v := .T.relevantNews}}
+				<li>
+					<script>
+						var l_comeintime = {{$v.l_comeintime}};
+						l_comeintime = new Date(Number(l_comeintime+"000")).Format("yyyy-MM-dd hh:mm:ss");
+						var s_link = {{$v.s_link}};
+						if(!s_link.startWith("http://") && !s_link.startWith("https://")){
+							s_link = "http://"+s_link;
+						}
+						document.write('<span><img src="{{Msg "seo" "cdn"}}/images/swordfish/circle.png">'+l_comeintime+'</span><br><a href="'+s_link+'" style="color:#222222;" target="_bank">{{$v.s_title}}</a></li>');
+					</script>
+				</li>
+			{{end}}
+			</ul>
+			<center class="newsinfo hides"><div >暂无主要成员信息</div></center>
      <div class="clearfix"></div>
     </div> 
    </div> 

+ 23 - 55
core/src/web/templates/member/incmobile/relation.html

@@ -1,59 +1,27 @@
 <div class="comnav">
-	<span></span>
 	关系网
+	<span style="float:right;font-size:11px;padding-right:10px;" data="c_relation" onclick="childrenshow(this);">{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}</span>
 </div>
-<div class="ent-alterinfo">
-	<div class="ent-layout-up">
-		<div class="b-com-content">
-			<ul>		
-				<li>
-					<div>
-						<div>2015-07-15</div>
-						<div>注册资本(或外资中方认缴资本)</div>
-						<div>查看详情</div>
-						<div style="display:none;">变更前:50<br>变更后:2000.000000</div>
-						<a></a>
-					</div>
-					<div>
-						<div>2015-07-15</div>
-						<div>注册资本(或外资中方认缴资本)</div>
-						<div>查看详情</div>
-						<div style="display:none;">变更前:50<br>变更后:2000.000000</div>
-						<a></a>
-					</div>
-				</li>
-				<li>
-					<div>
-						<div>2015-07-15</div>
-						<div>注册资本(或外资中方认缴资本)</div>
-						<div>查看详情</div>
-						<div style="display:none;">变更前:50<br>变更后:2000.000000</div>
-						<a></a>
-					</div>
-					<div>
-						<div>2015-07-15</div>
-						<div>注册资本(或外资中方认缴资本)</div>
-						<div>查看详情</div>
-						<div style="display:none;">变更前:50<br>变更后:2000.000000</div>
-						<a></a>
-					</div>
-				</li>
-				<li>
-					<div>
-						<div></div>
-						<div></div>
-						<div></div>
-						<a></a>
-					</div>
-					<div>
-						<div></div>
-						<div></div>
-						<div></div>
-						<a></a>
-					</div>
-				</li>
-				<div class="clearfix"></div>
-			</ul>
+
+		<div class="entrelation" id="entrelation">
+			<div id="entrelation-infovis"></div>
+			<div id="entrelation-limit" class="hide entrelation-limit">
+				<div id="entrelation-nologin" class="hide text-center">
+					<img src="{{Msg "seo" "cdn"}}/images/findnull.png" class="b-findnull">
+					<h5>扫码登录认证后,即可查看企业股东信息,投资关系,公司关系脉络图等内容</h5>
+					<button class="btn btn-primary" onclick="loginModalShow();">扫码登录</button>
+				</div>
+				<div id="entrelation-noauthe" class="hide text-center">
+					<img src="{{Msg "seo" "cdn"}}/images/findnull.png" class="b-findnull">
+					<h5>认证后即可查看企业股东信息,投资关系,公司关系脉络图等内容</h5>
+					<a href="/member/accountset/index" class="btn btn-primary">认证</a>
+				</div>
+				<div class="dashed padding-0"></div>
+				<img src="{{Msg "seo" "cdn"}}/images/entcommunity/relation.png">
+			</div>
+			<div id="entrelation-findnull" class="ent-findnull hide">
+				<img src="{{Msg "seo" "cdn"}}/images/findnull.png" class="b-findnull">
+				<h4>抱歉,未找到相关数据!</h4>
+			</div>
 		</div>
-	</div>
-</div>
+	

+ 12 - 0
core/src/web/templates/member/incmobile/sx.html

@@ -0,0 +1,12 @@
+<div class="comnav">
+	失信信息
+		<span style="float:right;font-size:11px;padding-right:10px;" data="c_sx" onclick="childrenshow(this);">{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}</span>
+</div>
+<div class="ent-dishonesty">
+	<table id="dishonestyList" class="table ent-table">
+		<tr>
+			<td class="text-center ent-dishonestypaging" id="dishonestyListPaging"></td>
+		</tr>
+	</table>
+	<center class="sxinfo hides"><div >暂无主要成员信息</div></center>
+</div>

+ 32 - 10
core/src/web/templates/member/incmobile/yellowpage.html

@@ -1,38 +1,60 @@
 <div class="comnav">
 	<span></span>
 	企业黄页
+	<span style="float:right;font-size:11px;padding-right:10px;" data="c_card" onclick="childrenshow(this);">{{if .T.res.EntName}}{{.T.res.EntName}}{{end}}</span>
 </div>
 <div class="combody baseinfo yellowpage">
 		<ul>
+		{{if .T.res.s_persion}}
 			<li>
 				<div class="col-xs-1 text-right">
-						<span class="glyphicon glyphicon-flag colorc"></span>
+						<span class="glyphicon ren2  colorfont"></span>
 				</div>
-				<span class="col-xs-11 entvar">宋经理</span>
+				<span class="col-xs-11 entvar">{{.T.res.s_persion}}</span>
 			</li>
+		{{end}}
+		{{if or .T.res.s_mobile .T.res.Tel}}
 			<li>
 				<div class="col-xs-1 text-right">
-						<span class="glyphicon glyphicon-flag colorc"></span>
+						<span class="glyphicon shouji colorfont"></span>
 				</div>
-				<span class="col-xs-11 entvar">010-58983018</span>
+				<span class="col-xs-11 entvar">{{if .T.res.s_mobile}}{{.T.res.s_mobile}}{{else if .T.res.Tel}}{{.T.res.Tel}}{{end}}</span>
 			</li>
+		{{end}}
+		{{if .T.res.s_email}}
 			<li>
 				<div class="col-xs-1 text-right">
-						<span class="glyphicon glyphicon-flag colorc"></span>
+						<span class="glyphicon youjian2 colorfont"></span>
 				</div>
-				<span class="col-xs-11 entvar">yumei@staff.sina.com.cn</span>
+				<span class="col-xs-11 entvar">{{.T.res.s_email}}</span>
 			</li>
+		{{else if .T.res.Nb_email}}
 			<li>
 				<div class="col-xs-1 text-right">
-						<span class="glyphicon glyphicon-flag colorc"></span>
+						<span class="glyphicon youjian2 colorfont"></span>
 				</div>
-				<span class="col-xs-11 entvar">www.sina.com</span>
+				<span class="col-xs-11 entvar">{{.T.res.Nb_email}}</span>
 			</li>
+		{{end}}
+		{{if .T.res.s_enturl}}
 			<li>
 				<div class="col-xs-1 text-right">
-						<span class="glyphicon glyphicon-flag colorc"></span>
+						<span class="glyphicon wangzhi1 colorfont"></span>
+				</div>
+				<span class="col-xs-11 entvar">{{.T.res.s_enturl}}</span>
+			</li>
+		{{end}}
+			<li>
+				<div class="col-xs-1 text-right">
+						<span class="glyphicon dizhi colorfont"></span>
 				</div>
 				<span class="col-xs-11 entvar">北京市海淀区北四环西路58号理想大厦1506室</span>
 			</li>
 		</ul>
-</div>
+</div>
+<script>
+var province="{{.T.res.i_province}}"
+var city="{{.T.res.i_city}}"
+var area="{{.T.res.i_area }}"
+var address="{{.T.res.s_address}}"
+</script>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 21 - 21
core/src/web/templates/yellowpage/enterpriseinfo.html


+ 4 - 3
push/src/main.go

@@ -44,9 +44,10 @@ func runJob() {
 		bJobs = false
 		for _, job := range jobs {
 			//单个job内部实现多并发,job间不再支持并发,网络压力太大了
-			job.Execute()
-			util.WriteSysConfig(push.PushConfig)
-
+			util.Try(func() {
+				job.Execute()
+				util.WriteSysConfig(push.PushConfig)
+			}, func(e interface{}) {})
 		}
 		bJobs = true
 	}

+ 16 - 1
push/src/qfw/push/cache.go

@@ -6,11 +6,13 @@ package push
 
 import (
 	"fmt"
-	"gopkg.in/mgo.v2/bson"
 	"log"
 	"qfw/util"
 	"qfw/util/mongodb"
+	"runtime"
 	"strings"
+
+	"gopkg.in/mgo.v2/bson"
 )
 
 type MemberInterest struct {
@@ -24,6 +26,19 @@ type MemberInterest struct {
 
 //初始化缓存,在每次执行任务时调用,
 func InitCache(flag, m_openid string) map[string]*[]*MemberInterest {
+	defer func() {
+		if r := recover(); r != nil {
+			log.Println("[E]", r)
+			for skip := 1; ; skip++ {
+				_, file, line, ok := runtime.Caller(skip)
+				if !ok {
+					break
+				}
+				go log.Printf("%v,%v\n", file, line)
+			}
+		}
+	}()
+
 	cache := make(map[string]*[]*MemberInterest)
 	q := map[string]interface{}{}
 	if m_openid != "" {

+ 1 - 2
weixin/src/qfw/weixin/msgtxtchandler.go

@@ -42,8 +42,7 @@ func MsgTxtHandler(w ResponseWriter, r *Request) {
 		}
 	} else if r.Content == "微信管理" && mids[openid] {
 		UserSession[r.FromUserName] = NewUserSession("wxadmin")
-		w.ReplyText(`您已进入微信管理,请输入指令操作:\n1.查看抽奖模式(指令:f0)\n2.切换抽奖模式(指令:c*,*为数字。如c0(自动模式),c1(手动模式1),c2(手动模式2),c3(手动模式3))\n3.统计抽奖结果(tjr*,tjr120(最近两分钟),tjr120-1200(最近两分钟至最近20分钟之间的))\n4.统计新用户数(tju*)\n5.服务器情况监测(ser0)\n6服务管理(man*,man1重启主程序(man11关闭),man3重启积分(man33关闭),man4重启微信认证(man44关闭))。\n输入q或Q离开。` +
-			`\n7.名片识别(指令:mp*,mp1查看识别状态,mp2关闭识别,mp3开启识别,mp60(数字大于10小于7200)查询最近60秒的识别次数)`)
+		w.ReplyText("您已进入微信管理,请输入指令操作:\n1.查看抽奖模式(指令:f0)\n2.切换抽奖模式(指令:c*,*为数字。如c0(自动模式),c1(手动模式1),c2(手动模式2),c3(手动模式3))\n3.统计抽奖结果(tjr*,tjr120(最近两分钟),tjr120-1200(最近两分钟至最近20分钟之间的))\n4.统计新用户数(tju*)\n5.服务器情况监测(ser0)\n6.服务管理(man*,man1重启主程序(man11关闭),man3重启积分(man33关闭),man4重启微信认证(man44关闭))。\n7.名片识别(指令:mp*,mp1查看识别状态,mp2关闭识别,mp3开启识别,mp60(数字大于10小于7200)查询最近60秒的识别次数)\n输入q或Q离开。")
 		return
 	} else if cj_reg.MatchString(r.Content) { //进入抽奖环节
 		if time.Now().Unix() > 1455552000 { //活动过期 ,过期后,这段代码要删除

+ 1 - 1
weixin/src/qfw/weixin/wxadmin.go

@@ -52,7 +52,7 @@ func processWxAdmin(openid, content string, w ResponseWriter, r *Request) {
 						}
 					} else {
 						num, _ := wutil.GetValFromList(int(var1))
-						resStr = fmt.Sprintf("最近%s秒,识别次数:%d", var1, num)
+						resStr = fmt.Sprintf("最近%d秒,识别次数:%d", var1, num)
 					}
 				case "tjr":
 					//数据库抽奖查看

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov