Sfoglia il codice sorgente

Merge branch 'dev2.8.5' of http://192.168.3.207:10080/qmx/jy into dev2.8.5

wangkaiyue 5 anni fa
parent
commit
cc3d780e8c
48 ha cambiato i file con 4701 aggiunte e 297 eliminazioni
  1. 1 1
      src/jfw/modules/app/src/app/front/swordfish.go
  2. 256 0
      src/jfw/modules/app/src/app/front/vipsubscribe.go
  3. 2 2
      src/jfw/modules/app/src/config.json
  4. 348 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/addition_exclusive_word.css
  5. 4 4
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/base.css
  6. 19 9
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/choose_area.css
  7. 10 3
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/choose_industry.css
  8. 194 20
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/keyWord.css
  9. 11 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/messageType.css
  10. 32 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/public.css
  11. 146 17
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/subscribe_list.css
  12. 12 1
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/trial_info.css
  13. 88 10
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_index.css
  14. 6 4
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_introduce.css
  15. 2 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_order_detail.css
  16. 2 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_pay_success.css
  17. 8 1
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_purchase.css
  18. 2 1
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_service_expire.css
  19. 152 2
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_update.css
  20. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/image/frame.png
  21. BIN
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/image/matchType.png
  22. 82 27
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/additionWord.js
  23. 172 4
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/common.js
  24. 61 25
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/exclusiveWord.js
  25. 240 79
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/keyWord.js
  26. 53 20
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/personal_info.js
  27. 114 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/share.js
  28. 2 2
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/weui.min.js
  29. 140 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/additionWord.html
  30. 139 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/exclusiveWord.html
  31. 825 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/keyWord.html
  32. 346 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/messageType.html
  33. 342 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_index.html
  34. 333 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_seniorset.html
  35. 397 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_viewPage.html
  36. 0 0
      src/jfw/modules/subscribepay/src/dataexport.json
  37. 4 2
      src/jfw/modules/subscribepay/src/service/afterPay.go
  38. 4 10
      src/jfw/modules/subscribepay/src/service/vipRenewUpgrade.go
  39. 43 1
      src/web/staticres/vipsubscribe/css/vip_index.css
  40. 13 4
      src/web/templates/weixin/historypush.html
  41. 1 1
      src/web/templates/weixin/my.html
  42. 8 8
      src/web/templates/weixin/vipsubscribe/choose_area_upgrade.html
  43. 6 6
      src/web/templates/weixin/vipsubscribe/choose_industry_upgrade.html
  44. 1 1
      src/web/templates/weixin/vipsubscribe/messageType.html
  45. 10 6
      src/web/templates/weixin/vipsubscribe/renew_pay.html
  46. 41 6
      src/web/templates/weixin/vipsubscribe/vip_index.html
  47. 21 13
      src/web/templates/weixin/vipsubscribe/vip_upgrade.html
  48. 8 7
      src/web/templates/weixin/wxkeyset/index.html

+ 1 - 1
src/jfw/modules/app/src/app/front/swordfish.go

@@ -656,7 +656,7 @@ func (f *Front) HasPushHistory() {
 		go updateUserApppushunread(userId)
 		//formatTime
 	} else if err == nil && len(keyArr) > 0 && formatTime == "" {
-		flag, data := public.HistoryPush.MakeHistoryDatas(userId, bidSearch_field, o_jy)
+		flag, data := public.HistoryPush.MakeHistoryDatas(userId, bidSearch_field)
 		if flag && data != nil {
 			list = data
 		}

+ 256 - 0
src/jfw/modules/app/src/app/front/vipsubscribe.go

@@ -0,0 +1,256 @@
+package front
+
+import (
+	"jfw/public"
+	"jfw/wx"
+	"qfw/util"
+
+	"github.com/go-xweb/xweb"
+)
+
+type Subscribepay struct {
+	*xweb.Action
+	introduce         xweb.Mapper `xweb:"/jyapp/vipsubscribe/introducePage"`     //订阅收费介绍页
+	trialInfo         xweb.Mapper `xweb:"/jyapp/vipsubscribe/trialInfo"`         //vip订阅服务-用户信息录入页面
+	toPurchasePage    xweb.Mapper `xweb:"/weixin/pay/vipsubscribe_(.*)"`         //订阅收费购买页面(试用用户)
+	toChooseArea      xweb.Mapper `xweb:"/jyapp/vipsubscribe/toChooseArea"`      //订阅收费地区筛选
+	toChooseIndustry  xweb.Mapper `xweb:"/jyapp/vipsubscribe/toChooseIndustry"`  //订阅收费行业筛选
+	toPaySuccessPage  xweb.Mapper `xweb:"/jyapp/vipsubscribe/toPaySuccessPage"`  //订阅支付完成页面
+	toOrderDetailPage xweb.Mapper `xweb:"/weixin/pay/toOrderDetailPage"`         //订阅收费支付订单详情页面
+	toSetKeyWordPage  xweb.Mapper `xweb:"/jyapp/vipsubscribe/toSetKeyWordPage"`  //订阅收费设置关键词
+	toSetPage         xweb.Mapper `xweb:"/jyapp/vipsubscribe/toSetPage"`         //订阅收费设置
+	toSetInfoTypePage xweb.Mapper `xweb:"/jyapp/vipsubscribe/toSetInfoTypePage"` //订阅收费设置信息类型
+	toSetPushSetPage  xweb.Mapper `xweb:"/jyapp/vipsubscribe/toSetPushSetPage"`  //订阅收费推送设置
+	toSetOtherKwsPage xweb.Mapper `xweb:"/jyapp/vipsubscribe/toSet(.*)Page"`     //订阅收费附加词和排除词设置
+	toVIPViewPage     xweb.Mapper `xweb:"/jyapp/vipsubscribe/toVIPViewPage"`     //订阅收费预览
+
+	//修改
+	toEditSubPage       xweb.Mapper `xweb:"/jyapp/vipsubscribe/toEditSubPage"`       //订阅收费修改页面
+	toEditSubProvPage   xweb.Mapper `xweb:"/jyapp/vipsubscribe/toEditSubProvPage"`   //订阅收费修改省份
+	toEditSubAllArea    xweb.Mapper `xweb:"/jyapp/vipsubscribe/toEditSubAllArea"`    //订阅收费全国修改
+	toEditSubCityPage   xweb.Mapper `xweb:"/jyapp/vipsubscribe/toEditSubCityPage"`   //订阅收费修改城市
+	toEditSubInduPage   xweb.Mapper `xweb:"/jyapp/vipsubscribe/toEditSubInduPage"`   //订阅收费修改行业
+	submitEditSubFinish xweb.Mapper `xweb:"/jyapp/vipsubscribe/submitEditSubFinish"` //订阅收费修改成功
+
+	//升级
+	toUpgradePage xweb.Mapper `xweb:"/weixin/pay/toUpgradePage"`                   //订阅收费升级服务页面
+	addArea       xweb.Mapper `xweb:"/jyapp/vipsubscribe/toChooseAreaUpgrade"`     //订阅收费升级新增区域页面
+	addIndustry   xweb.Mapper `xweb:"/jyapp/vipsubscribe/toChooseIndustryUpgrade"` //订阅收费升级新增行业页面
+
+	//续费
+	renewPage    xweb.Mapper `xweb:"/jyapp/vipsubscribe/renewPage/(.*)"` //订阅到期(will:即将到期,exprie:已到期)
+	renewPayPage xweb.Mapper `xweb:"/weixin/pay/renewPayPage"`           //订阅到期续费
+
+	//发票
+	openInvoice xweb.Mapper `xweb:"/jyapp/vipsubscribe/openInvoice/(\\w+)"` //开发票
+}
+
+func init() {
+	xweb.AddAction(&Subscribepay{})
+}
+
+//推送设置
+func (s *Subscribepay) ToVIPViewPage() {
+	s.Render("/vipsubscribe/vip_viewPage.html")
+}
+
+//附加词|排除词
+func (s *Subscribepay) ToSetOtherKwsPage(page string) {
+	s.Render("/vipsubscribe/" + page + "Word.html")
+}
+
+//推送设置
+func (s *Subscribepay) ToSetPushSetPage() {
+	s.Render("/vipsubscribe/vip_seniorset.html")
+}
+
+//信息类型
+func (s *Subscribepay) ToSetInfoTypePage() {
+	s.Render("/vipsubscribe/messageType.html")
+}
+
+//订阅设置
+func (s *Subscribepay) ToSetPage() {
+	s.Render("/vipsubscribe/vip_index.html")
+}
+
+//vip订阅介绍页
+func (s *Subscribepay) Introduce() error {
+	userId := util.ObjToString(s.GetSession("userId"))
+	if userId == "" {
+		return s.Redirect("/swordfish/about")
+	}
+	m, _ := public.MQFW.FindById("user", userId, `{"o_vipjy":1,"i_vip_status":1}`)
+	if len(*m) == 0 {
+		return s.Redirect("/swordfish/about")
+	}
+	obj := util.ObjToMap((*m)["o_vipjy"])
+	s.T["notShowTrial"] = util.IntAll((*obj)["i_trial"]) == -1 || (*m)["i_vip_status"] != nil
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	return s.Render("/vipsubscribe/vip_introduce.html")
+}
+
+//试用完善信息
+func (s *Subscribepay) TrialInfo() error {
+	userId := util.ObjToString(s.GetSession("userId"))
+	if userId == "" {
+		return s.Redirect("/swordfish/about")
+	}
+	m, ok := public.MQFW.FindById("user", userId, `{"o_vipjy":1}`)
+	if !ok || len(*m) == 0 {
+		return s.Redirect("/swordfish/about")
+	}
+	obj := util.ObjToMap((*m)["o_vipjy"])
+	s.T["trialSign"] = util.IntAll((*obj)["i_trial"]) == 1
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	return s.Render("/vipsubscribe/trial_info.html", &s.T)
+}
+
+//订阅收费购买页面
+func (s *Subscribepay) ToPurchasePage(flag string) {
+	if flag == "trial" { //试用
+		s.T["isTrial"] = true
+		s.T["orderType"] = -1
+	} else { //付费
+		if flag == "willExpire" {
+			s.T["orderType"] = 5
+		} else {
+			s.T["orderType"] = 1
+		}
+		if s.GetString("orderCode") != "" {
+			s.T["again"] = 1 //再次购买
+		}
+		s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数
+	}
+	s.Render("/vipsubscribe/vip_purchase.html")
+}
+
+//订阅收费地区筛选
+func (s *Subscribepay) ToChooseArea() {
+	s.Render("/vipsubscribe/choose_area.html", &s.T)
+}
+
+//订阅收费地区筛选
+func (s *Subscribepay) ToChooseIndustry() {
+	s.Render("/vipsubscribe/choose_industry.html", &s.T)
+}
+
+//订阅收费支付完成页面
+func (s *Subscribepay) ToPaySuccessPage() {
+	s.Render("/vipsubscribe/vip_pay_success.html")
+}
+
+//订阅收费支付订单详情页面
+func (s *Subscribepay) ToOrderDetailPage() {
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数
+	s.Render("/vipsubscribe/vip_order_detail.html")
+}
+
+//订阅收费设置关键词
+func (s *Subscribepay) ToSetKeyWordPage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
+	s.Render("/vipsubscribe/keyWord.html")
+}
+
+//修改订阅页面
+func (s *Subscribepay) ToEditSubPage() {
+	s.Render("/vipsubscribe/edit_subscribe.html")
+}
+
+//修改订阅省份
+func (s *Subscribepay) ToEditSubProvPage() {
+	s.Render("/vipsubscribe/edit_subscribe_province.html")
+}
+
+//修改订阅城市
+func (s *Subscribepay) ToEditSubCityPage() {
+	s.Render("/vipsubscribe/edit_subscribe_city.html")
+}
+
+//购买全国修改
+func (s *Subscribepay) ToEditSubAllArea() {
+	s.Render("/vipsubscribe/edit_subscribe_allArea.html")
+}
+
+//修改订阅行业
+func (s *Subscribepay) ToEditSubInduPage() {
+	s.Render("/vipsubscribe/edit_subscribe_industry.html")
+}
+
+//提交订阅修改
+func (s *Subscribepay) SubmitEditSubFinish() {
+	s.Render("/vipsubscribe/edit_subscribe_success.html")
+}
+
+//升级订阅服务
+func (s *Subscribepay) ToUpgradePage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["openid"] = se.EncodeString(myopenid)
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数
+	s.Render("/vipsubscribe/vip_upgrade.html")
+}
+
+//升级订阅新增区域
+func (s *Subscribepay) AddArea() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
+	s.Render("/vipsubscribe/choose_area_upgrade.html")
+}
+
+//升级订阅新增行业
+func (s *Subscribepay) AddIndustry() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
+	s.Render("/vipsubscribe/choose_industry_upgrade.html")
+}
+
+//服务续费(will:即将到期,exprie:已到期)
+func (s *Subscribepay) RenewPage(sign string) {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url())
+	s.T["openid"] = se.EncodeString(myopenid)
+	s.T["exprie"] = sign //是否已到期
+	s.Render("/vipsubscribe/renew_notice.html", &s.T)
+}
+
+//服务续费(will:即将到期,exprie:已到期)
+func (s *Subscribepay) RenewPayPage() {
+	myopenid := util.ObjToString(s.GetSession("s_m_openid"))
+	mynickname, _ := s.Session().Get("s_nickname").(string)
+	myavatar, _ := s.Session().Get("s_avatar").(string)
+	s.T["nickname"] = mynickname
+	s.T["avatar"] = myavatar
+	s.T["openid"] = se.EncodeString(myopenid)
+	s.T["signature"] = wx.SignJSSDK(s.Site() + s.Url()) //微信支付准备参数
+	s.Render("/vipsubscribe/renew_pay.html")
+}
+
+//开发票
+func (s *Subscribepay) OpenInvoice(order_code string) {
+	s.T["order_code"] = order_code
+	s.Render("/dataExport/dataExport_applyInvoice.html", &s.T)
+}

+ 2 - 2
src/jfw/modules/app/src/config.json

@@ -1,10 +1,10 @@
 {
-    "mongodbServers": "192.168.3.11:27080",
+    "mongodbServers": "192.168.3.128:27080",
     "mongodbPoolSize": "5",
     "mongodbName": "qfw",
     "influxaddr": "http://192.168.3.207:8086",
     "influxdb": "jy_logs",
-    "elasticsearch": "http://192.168.3.11:9800",
+    "elasticsearch": "http://192.168.3.128:9800",
     "elasticPoolSize": 30,
     "cookiedomain": ".jianyu360.cn",
     "redisaddrs": "other=192.168.3.128:1712,push=192.168.3.128:1712,pushcache_1=192.168.3.128:1712,pushcache_2_a=192.168.3.128:1712,pushcache_2_b=192.168.3.128:1712,sso=192.168.3.128:1712,session=192.168.3.128:1712",

+ 348 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/addition_exclusive_word.css

@@ -0,0 +1,348 @@
+.exclusive-word,
+.addition-word {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  width: 100;
+  height: 100%;
+  overflow: hidden;
+}
+
+.exclusive-word .content,
+.addition-word .content {
+  flex: 1;
+  overflow-y: scroll;
+}
+
+.exclusive-word .title,
+.addition-word .title {
+  font-size: 0.26rem;
+  color: #888;
+  padding: 0.3rem;
+  line-height: 0.38rem;
+}
+
+.exclusive-word .enter .enterOne,
+.addition-word .enter .enterOne {
+  min-height: 47px;
+  width: 100%;
+  padding: 0.3rem;
+  font-size: 0.3rem;
+  background: #fff;
+}
+
+.exclusive-word .enter .btnChoose,
+.addition-word .enter .btnChoose {
+  border-top: 1px solid #e0e0e0;
+  overflow: hidden;
+  background: #fff;
+}
+
+.exclusive-word .enter .btnChoose button,
+.addition-word .enter .btnChoose button {
+  float: left;
+  height: 0.6rem;
+  font-size: 0.3rem;
+  width: 50%;
+  background: #fff;
+  margin: 0.15rem 0;
+  color: #1d1d1d;
+}
+
+.exclusive-word .enter .btnChoose button:first-child,
+.addition-word .enter .btnChoose button:first-child {
+  border-right: 1px solid #e0e0e0;
+}
+
+.exclusive-word .enter .btn,
+.addition-word .enter .btn {
+  margin-top: 0.16rem;
+}
+
+.exclusive-word .enter .btn button,
+.addition-word .enter .btn button {
+  width: 100%;
+  height: 0.94rem;
+  background: #2cb7ca;
+  color: #fff;
+  font-size: 0.36rem;
+  opacity: 0.5;
+}
+
+.exclusive-word .showKeyWord ul li,
+.addition-word .showKeyWord ul li {
+  margin-bottom: 0.16rem;
+  overflow: hidden;
+}
+
+.exclusive-word .showKeyWord ul li .one,
+.addition-word .showKeyWord ul li .one {
+  display: flex;
+  background: #fff;
+  line-height: 0.54rem;
+  padding: 0.2rem 0;
+}
+
+.exclusive-word .showKeyWord ul li .one div,
+.addition-word .showKeyWord ul li .one div {
+  flex: 1;
+}
+
+.exclusive-word .showKeyWord ul li .one div span,
+.addition-word .showKeyWord ul li .one div span {
+  display: flex;
+  padding: 0 0.3rem;
+}
+
+.exclusive-word .showKeyWord ul li .one div span strong,
+.addition-word .showKeyWord ul li .one div span strong {
+  font-size: 0.3rem;
+  color: #1d1d1d;
+  font-weight: normal;
+  display: block;
+  width: 1.3rem;
+}
+
+.exclusive-word .showKeyWord ul li .one div span p,
+.addition-word .showKeyWord ul li .one div span p {
+  flex: 1;
+  font-size: 0.3rem;
+  color: #686868;
+}
+
+.exclusive-word .showKeyWord ul li .one button,
+.addition-word .showKeyWord ul li .one button {
+  width: 1.96rem;
+  background: #fff;
+  color: #2cb7ca;
+  border-left: 1px solid #e0e0e0;
+  font-size: 0.3rem;
+  position: relative;
+  left: 0;
+}
+
+.exclusive-word .showKeyWord ul li .one button i,
+.addition-word .showKeyWord ul li .one button i {
+  font-size: 0.4rem;
+  padding-right: 0.1rem;
+}
+
+.exclusive-word .showKeyWord ul li .modify,
+.addition-word .showKeyWord ul li .modify {
+  display: none;
+  margin-top: 0.16rem;
+}
+
+.exclusive-word .showKeyWord ul li .modify textarea,
+.addition-word .showKeyWord ul li .modify textarea {
+  box-sizing: border-box;
+  min-height: 0.94rem;
+  resize: none;
+  width: 100%;
+  display: flex;
+  align-items: center;
+  padding: 0.3rem;
+  background: #fff;
+  outline: none;
+  font-size: 0.3rem;
+  color: #1d1d1d;
+}
+
+.exclusive-word .showKeyWord ul li .modify span,
+.addition-word .showKeyWord ul li .modify span {
+  width: 100%;
+  display: block;
+  line-height: 0.5rem;
+  padding: 0.2rem 0.3rem;
+  background: #fff;
+  outline: none;
+  font-size: 0.3rem;
+  color: #1d1d1d;
+  user-modify: read-write-plaintext-only;
+  -webkit-user-modify: read-write-plaintext-only;
+}
+
+.exclusive-word .showKeyWord ul li .modify button,
+.addition-word .showKeyWord ul li .modify button {
+  width: 50%;
+  height: 0.88rem;
+  float: left;
+  margin-top: 0.16rem;
+  font-size: 0.28rem;
+}
+
+.exclusive-word .showKeyWord ul li .modify button.addAdjunctWord, .exclusive-word .showKeyWord ul li .modify button.addExclusion,
+.addition-word .showKeyWord ul li .modify button.addAdjunctWord,
+.addition-word .showKeyWord ul li .modify button.addExclusion {
+  position: relative;
+  background: #fff;
+}
+
+.exclusive-word .showKeyWord ul li .modify button.addExclusion:before,
+.addition-word .showKeyWord ul li .modify button.addExclusion:before {
+  position: absolute;
+  content: "";
+  width: 1px;
+  height: 0.64rem;
+  background-color: #e0e0e0;
+  left: 0;
+  top: 0.13rem;
+}
+
+.exclusive-word .showKeyWord ul li .modify button.deleteKey,
+.addition-word .showKeyWord ul li .modify button.deleteKey {
+  color: #fff;
+  background: #fe737a;
+  font-size: 0.3rem;
+}
+
+.exclusive-word .showKeyWord ul li .modify button.ascertainKey,
+.addition-word .showKeyWord ul li .modify button.ascertainKey {
+  color: #fff;
+  background: #2cb7ca;
+  font-size: 0.3rem;
+}
+
+.exclusive-word .addKeyWord,
+.addition-word .addKeyWord {
+  padding-bottom: .2rem;
+  width: 100%;
+  text-align: center;
+}
+
+.exclusive-word .addKeyWord i,
+.addition-word .addKeyWord i {
+  margin-bottom: 0.4rem;
+  font-size: 1rem;
+  color: #2cb7ca;
+}
+
+.exclusive-word .addKeyWord p,
+.addition-word .addKeyWord p {
+  height: 0.56rem;
+  line-height: 0.56rem;
+  background-color: #fff;
+  font-size: 0.28rem;
+  color: #888;
+}
+
+.exclusive-word .problem,
+.addition-word .problem {
+  margin-top: 0.4rem;
+  font-size: 0.3rem;
+  color: #2cb7ca;
+  float: right;
+  margin-right: 0.3rem;
+}
+
+.exclusive-word .problem i,
+.addition-word .problem i {
+  margin-left: 0.06rem;
+}
+
+.exclusive-word .problemPop,
+.addition-word .problemPop {
+  background: rgba(0, 0, 0, 0.5);
+  position: fixed;
+  width: 100%;
+  height: 100%;
+  height: 100vh;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  display: none;
+  align-items: center;
+  justify-content: center;
+}
+
+.exclusive-word .problemPop .problemPopContent,
+.addition-word .problemPop .problemPopContent {
+  width: 5.6rem;
+  min-height: 7.23rem;
+  display: inline-block;
+  background: #fff;
+  border-radius: 4px;
+  position: relative;
+  padding: 0.58rem 0;
+}
+
+.exclusive-word .problemPop .problemPopContent h3,
+.addition-word .problemPop .problemPopContent h3 {
+  font-size: 0.34rem;
+  text-align: center;
+  padding-bottom: 0.2rem;
+}
+
+.exclusive-word .problemPop .problemPopContent ul,
+.addition-word .problemPop .problemPopContent ul {
+  padding: 0 0.4rem;
+}
+
+.exclusive-word .problemPop .problemPopContent ul li,
+.addition-word .problemPop .problemPopContent ul li {
+  margin-top: 0.16rem;
+}
+
+.exclusive-word .problemPop .problemPopContent ul li h4,
+.addition-word .problemPop .problemPopContent ul li h4 {
+  font-size: 0.3rem;
+  line-height: 1.5;
+  color: #1d1d1d;
+}
+
+.exclusive-word .problemPop .problemPopContent ul li p,
+.addition-word .problemPop .problemPopContent ul li p {
+  font-size: 0.28rem;
+  color: #868686;
+  line-height: 1.4;
+}
+
+.exclusive-word .problemPop .problemPopContent button,
+.addition-word .problemPop .problemPopContent button {
+  width: 100%;
+  background: #fff;
+  border-top: 1px solid #e0e0e0;
+  position: absolute;
+  bottom: 0;
+  height: 1rem;
+  font-size: 0.36rem;
+  color: #2cb7ca;
+}
+
+.custom-toast .weui-toast {
+  font-size: 0.3rem;
+  padding: 0.2rem;
+  width: auto;
+  max-width: 6rem;
+  min-height: 0;
+  height: auto;
+  top: 50%;
+  left: 50%;
+  margin-left: 0;
+  margin-top: -0.47rem;
+  transform: translateX(-50%) translateY(-50%);
+}
+
+.custom-toast .weui-icon_toast {
+  display: none;
+}
+
+.custom-toast .weui-toast__content {
+  margin: 0;
+}
+
+.weui-dialog .weui-dialog__ft .weui-dialog__btn_primary {
+  color: #2cb7ca;
+}
+
+.weui-dialog input {
+  caret-color: #2cb7ca;
+}
+.addKeyWord  i.icon-tianjia{
+	    position: fixed;
+    bottom: 0px;
+    left: 50%;
+    margin-left: -25px;
+    width: 50px;
+}

+ 4 - 4
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/base.css

@@ -12,15 +12,15 @@ body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fiel
 html,body {
     /* max-width: 750px; */
     -webkit-text-size-adjust: 100%;
-    margin: 0 auto;
+/*    margin: 0 auto;
     height: 100%;
-    overflow-x: hidden;
+    overflow-x: hidden;*/
     -webkit-box-sizing: border-box;
     box-sizing: border-box;
     font-size: .24rem;
-    background:rgba(245,244,249,1);;
+    background:rgba(245,244,249,1);
     color: #3d3d3d;
-    font-family:  "Microsoft YaHei","Helvetica Neue", "Roboto", "Segoe UI", "PingFang SC", "Hiragino Sans GB", sans-serif;
+    /*font-family:  "Microsoft YaHei","Helvetica Neue", "Roboto", "Segoe UI", "PingFang SC", "Hiragino Sans GB", sans-serif;*/
 }
 
 ul,ol {

+ 19 - 9
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/choose_area.css

@@ -63,11 +63,13 @@
 }
 
 .tips_btn {
-  display: flex;
-  position: relative;
-  flex-direction: column;
-  align-items: center;
-  justify-content: space-between;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: space-between;
+    position: fixed;
+    width: 100%;
+    bottom: 0;
 }
 
 .tips_btn .tips_discount {
@@ -109,6 +111,7 @@
   line-height: .94rem;
   color: #fff;
   font-size: .34rem;
+  background-color: #fff;
 }
 
 .tips_btn .btns .save-btn,
@@ -399,6 +402,10 @@
   padding: 0 .3rem;
   font-size: .3rem;
   color: #1d1d1d;
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index:999;
 }
 
 #choose_area .optional_count em {
@@ -406,10 +413,13 @@
 }
 
 #choose_area .result {
-  position: relative;
+  position: fixed;
   padding: .2rem .3rem;
   font-size: .26rem;
   text-align: justify;
+  width:100%;
+  background:rgba(245,244,249,1);
+  z-index:999;
 }
 
 #choose_area .result .result_text {
@@ -452,7 +462,7 @@
 }
 
 #choose_area .select-area-box {
-  padding-bottom: .94rem;
+  padding-bottom: 1.44rem;
 }
 
 #choose_area .select-area-box .tab {
@@ -521,10 +531,10 @@
   color: #fff;
 }
 
-#choose_area .select-area-box .tab_content .active[disabled] {
+/*#choose_area .select-area-box .tab_content .active[disabled] {
   background: #BFBFC3;
   color: #fff;
-}
+}*/
 
 #choose_area .select-area-box .tab_content .city[disabled] {
   background: #BFBFC3;

+ 10 - 3
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/choose_industry.css

@@ -64,10 +64,12 @@
 
 .tips_btn {
   display: flex;
-  position: relative;
+  position: fixed;
+  bottom: 0;
   flex-direction: column;
   align-items: center;
   justify-content: space-between;
+  width: 100%;
 }
 
 .tips_btn .tips_discount {
@@ -109,6 +111,7 @@
   line-height: .94rem;
   color: #fff;
   font-size: .34rem;
+  background-color: #fff;
 }
 
 .tips_btn .btns .save-btn,
@@ -402,6 +405,10 @@
 
 .choose_industry .result {
   padding: .2rem .3rem;
+  background:rgba(245,244,249,1);
+  z-index:999;
+  position: fixed;
+  width:100%;	 
 }
 
 .choose_industry .form {
@@ -410,7 +417,7 @@
 }
 
 .choose_industry .slide {
-  position: absolute;
+  position: fixed;
   top: 50%;
   right: 0;
   display: flex;
@@ -425,7 +432,7 @@
 }
 
 .choose_industry .select-area-box {
-  padding-bottom: .94rem;
+  padding-bottom: 1.44rem;
   background-color: #fff;
   min-height: 100%;
 }

+ 194 - 20
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/keyWord.css

@@ -2,24 +2,62 @@
   display: flex;
   flex-direction: column;
   justify-content: space-between;
-  width: 100;
-  height: 100%;
+  width: 100%;
+  height: 100vh;
   overflow: hidden;
 }
 
-.keyWord .content {
+.keyWord .add-keyword-container,
+.keyWord .all-classify-column {
+  display: flex;
   flex: 1;
+  flex-direction: column;
+  justify-content: space-between;
   overflow-y: scroll;
 }
 
-.keyWord .title {
+.keyWord .add-keyword-container .classify {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 .3rem;
+  height: 0.94rem;
+  background-color: #fff;
+}
+
+.keyWord .add-keyword-container .classify .classify-l {
+  font-size: .32rem;
+  color: #1d1d1d;
+	width: 2rem;
+}
+
+.keyWord .add-keyword-container .classify .classify-r {
+  display: flex;
+  align-items: center;
+  justify-content: end;
+  height: 100%;
+  color: #888888;
+  font-size: .28rem;
+}
+
+.keyWord .add-keyword-container .classify .classify-r .icon-arrow {
+  margin-left: .1rem;
+  font-size: .26rem;
+}
+
+.keyWord .add-keyword-container .classify-tips {
+  padding: .1rem .3rem .3rem;
   font-size: .26rem;
   color: #888;
-  padding: .3rem;
   line-height: .38rem;
 }
 
-.keyWord .enter .enterOne {
+.keyWord .add-keyword-container .content {
+  flex: 1;
+  overflow-y: scroll;
+}
+
+.keyWord .add-keyword-container .content .enter .enterOne {
   min-height: 47px;
   width: 100%;
   padding: 0.3rem;
@@ -27,13 +65,13 @@
   background: #fff;
 }
 
-.keyWord .enter .btnChoose {
+.keyWord .add-keyword-container .content .enter .btnChoose {
   border-top: 1px solid #e0e0e0;
   overflow: hidden;
   background: #fff;
 }
 
-.keyWord .enter .btnChoose button {
+.keyWord .add-keyword-container .content .enter .btnChoose button {
   float: left;
   height: 0.6rem;
   font-size: .3rem;
@@ -43,15 +81,15 @@
   color: #1D1D1D;
 }
 
-.keyWord .enter .btnChoose button:first-child {
+.keyWord .add-keyword-container .content .enter .btnChoose button:first-child {
   border-right: 1px solid #e0e0e0;
 }
 
-.keyWord .enter .btn {
+.keyWord .add-keyword-container .content .enter .btn {
   margin-top: .16rem;
 }
 
-.keyWord .enter .btn button {
+.keyWord .add-keyword-container .content .enter .btn button {
   width: 100%;
   height: 0.94rem;
   background: #2cb7ca;
@@ -60,6 +98,72 @@
   opacity: .5;
 }
 
+.keyWord .add-keyword-container .title {
+  font-size: .26rem;
+  color: #888;
+  padding: .3rem;
+  line-height: .38rem;
+}
+
+.keyWord .all-classify-column {
+/*  border-top: 1px solid transparent;*/
+}
+
+.keyWord .all-classify-column .classify-list {
+  margin-top: .8rem;
+}
+
+.keyWord .all-classify-column .classify-list .classify-item {
+  /*display: flex;*/
+  align-items: center;
+  justify-content: space-between;
+  padding: 0.3rem;
+  height: 1.6rem;
+  background-color: #fff;
+  border-bottom: 1px solid #CECECE;
+}
+
+.keyWord .all-classify-column .classify-list .classify-item:first-of-type {
+  border-top: 1px solid #CECECE;
+}
+
+.keyWord .all-classify-column .classify-list .classify-item .classify-item-l {
+  font-size: .32rem;
+  color: #1d1d1d;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    display: -webkit-inline-box;
+    -webkit-line-clamp: 1;
+    -webkit-box-orient: vertical;
+    width: 4.5rem;
+	    margin-top: -0.05rem;
+}
+.classify .classify-detail{
+    text-overflow: ellipsis;
+    overflow: hidden;
+    display: -webkit-inline-box;
+    -webkit-line-clamp: 1;
+    -webkit-box-orient: vertical;
+    width: 4rem;
+	text-align:right;
+}
+
+.keyWord .all-classify-column .classify-list .classify-item .classify-item-r {
+  /*display: flex;*/
+  align-items: center;
+  justify-content: end;
+  /*height: 100%;*/
+  color: #888888;
+  font-size: .28rem;
+  /*new*/
+  float: right;
+}
+
+.keyWord .all-classify-column .classify-list .classify-item .classify-item-r .icon-arrow {
+  margin-left: .2rem;
+  font-size: .26rem;
+}
+
 .keyWord .showKeyWord ul li {
   margin-bottom: .16rem;
   overflow: hidden;
@@ -178,17 +282,23 @@
 }
 
 .keyWord .addKeyWord {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
   width: 100%;
   text-align: center;
+  line-height: 1;
 }
 
 .keyWord .addKeyWord i {
-  margin-bottom: .4rem;
+  margin-bottom: .3rem;
   font-size: 1rem;
   color: #2cb7ca;
 }
 
 .keyWord .addKeyWord p {
+  width: 100%;
   height: .56rem;
   line-height: .56rem;
   background-color: #fff;
@@ -208,7 +318,7 @@
   margin-left: .06rem;
 }
 
-.keyWord .problemPop {
+.dialog-container {
   background: rgba(0, 0, 0, 0.5);
   position: fixed;
   width: 100%;
@@ -223,7 +333,7 @@
   justify-content: center;
 }
 
-.keyWord .problemPop .problemPopContent {
+.dialog-container .problemPopContent {
   width: 5.6rem;
   min-height: 7.23rem;
   display: inline-block;
@@ -233,33 +343,33 @@
   padding: 0.58rem 0;
 }
 
-.keyWord .problemPop .problemPopContent h3 {
+.dialog-container .problemPopContent h3 {
   font-size: .34rem;
   text-align: center;
   padding-bottom: 0.2rem;
 }
 
-.keyWord .problemPop .problemPopContent ul {
+.dialog-container .problemPopContent ul {
   padding: 0 .4rem;
 }
 
-.keyWord .problemPop .problemPopContent ul li {
+.dialog-container .problemPopContent ul li {
   margin-top: 0.16rem;
 }
 
-.keyWord .problemPop .problemPopContent ul li h4 {
+.dialog-container .problemPopContent ul li h4 {
   font-size: .3rem;
   line-height: 1.5;
   color: #1d1d1d;
 }
 
-.keyWord .problemPop .problemPopContent ul li p {
+.dialog-container .problemPopContent ul li p {
   font-size: .28rem;
   color: #868686;
   line-height: 1.4;
 }
 
-.keyWord .problemPop .problemPopContent button {
+.dialog-container .problemPopContent button {
   width: 100%;
   background: #fff;
   border-top: 1px solid #E0E0E0;
@@ -295,3 +405,67 @@
 .weui-dialog .weui-dialog__ft .weui-dialog__btn_primary {
   color: #2cb7ca;
 }
+
+.weui-dialog input {
+  caret-color: #2cb7ca;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__hd,
+.classify-edit-pop .weui-dialog .weui-dialog__bd {
+  padding: 0;
+  text-align: left;
+  font-size: .34rem;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__hd {
+  padding-left: .3rem;
+  height: .88rem;
+  line-height: .88rem;
+  background-color: #F4F4F9;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__bd {
+  padding: .38rem .3rem;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__bd .classify-keyword {
+  padding: 0 .17rem;
+  height: 0.8rem;
+  width: 100%;
+  font-size: .32rem;
+  border: 1px solid #CECECE;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__ft {
+  margin-top: .1rem;
+  margin-bottom: .3rem;
+  justify-content: space-around;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__ft .dialog__btn {
+  display: inline-block;
+  width: 1.72rem;
+  height: .72rem;
+  line-height: .72rem;
+  color: #fff;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__ft .dialog__btn_confirm {
+  background-color: #2CB7CA;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__ft .dialog__btn_cancel {
+  background-color: #BFBFC3;
+}
+
+.classify-edit-pop .weui-dialog .weui-dialog__ft:after {
+  border: none;
+}
+
+.addKeyWord  i.icon-tianjia{
+	    position: fixed;
+    bottom: .5rem;
+    left: 50%;
+    margin-left: -25px;
+    width: 50px;
+}

+ 11 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/messageType.css

@@ -118,3 +118,14 @@ body .industry .resetOne button:first-child {
   background: #fff;
   color: #2cb7ca;
 }
+/*----*/
+.result {
+    position: fixed;
+    padding: .2rem .3rem;
+    font-size: .26rem;
+    text-align: justify;
+    width: 100%;
+    background: rgba(245,244,249,1);
+    z-index: 999;
+	    top: 0px;
+}

+ 32 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/public.css

@@ -378,3 +378,35 @@
 .custom-toast .weui-toast__content {
   margin: 0;
 }
+
+.jymobile-tab-triangle {
+  position: relative;
+}
+
+.jymobile-tab-triangle:after {
+  content: '';
+  position: absolute;
+  top: 50%;
+  right: 0;
+  width: 0;
+  height: 0;
+  font-size: 0;
+  line-height: 0;
+  border-style: solid;
+  border-width: .1rem;
+  border-color: #aaa transparent transparent transparent;
+  transform: translate(140%, -30%);
+}
+
+.jymobile-tab-triangle.active:after {
+  border-color: transparent transparent #2cb7ca transparent;
+  transform: translate(140%, -70%);
+}
+
+.jymobile-tab-triangle.current {
+  color: #2cb7ca;
+}
+
+.jymobile-tab-triangle.current:after {
+  border-color: #2cb7ca transparent transparent transparent;
+}

+ 146 - 17
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/subscribe_list.css

@@ -1,10 +1,12 @@
 @charset "UTF-8";
-.flex_alginC, .vip_banner .box .left, .filter_tab .tab_left, .filter_tab .tab_left .time_box, .filter_tab .tab_left .area_box, .filter_tab .tab_right .normal_set_box, .filter_tab .tab_right .vip_set_box, .filter_tab .area_container .area_wrap .area_data .p_item, .filter_tab .area_container .area_wrap .area_data .c_item, .list .list_item .item_type .time {
+.flex_alginC, .vip_banner .box .left, .filter_tab .tab_left, .filter_tab .tab_left .time_box,
+.filter_tab .tab_left .area_box, .filter_tab .tab_right .normal_set_box, .filter_tab .tab_right .vip_set_box, .filter_tab .area_container .area_wrap .area_data .p_item,
+.filter_tab .area_container .area_wrap .area_data .c_item, .list .list_item .item_type .time {
   display: flex;
   align-items: center;
 }
 
-.flex_alginC_justB, .vip_banner .box, .filter_tab, .filter_tab .area_container .area_wrap .handle_menu, .set_keyword > div, .renew_toast > div, .open_remind .remind_box {
+.flex_alginC_justB, .vip_banner .box, .filter_tab, .filter_tab .area_container .area_wrap .handle_menu, .set_keyword > div, .renew_toast > div,.nv_renew_toast > div, .open_remind .remind_box {
   display: flex;
   align-items: center;
   justify-content: space-between;
@@ -14,7 +16,97 @@
   box-sizing: border-box;
 }
 
-.free7days_pic {
+.jymobile-datePicker .weui-picker .weui-picker__hd #weui-picker-confirm {
+  color: #2CB7CA;
+}
+
+.jymobile-datePicker .weui-picker .weui-picker__hd .jymobile-picker__action {
+  flex: 1;
+  font-size: .32rem;
+  color: #1D1D1D;
+  text-align: left;
+}
+
+.jymobile-datePicker .weui-picker .weui-picker__bd {
+  font-size: .36rem;
+}
+
+.jymobile-datePicker .weui-picker .weui-picker__ft {
+  height: .88rem;
+  border-top: 1px solid #cecece;
+  background-color: #fff;
+}
+
+.jymobile-datePicker .weui-picker .weui-picker__ft .reset-time {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  height: 100%;
+  color: #2CB7CA;
+  font-size: .32rem;
+  text-align: center;
+}
+
+.jymobile-setting-dialog {
+  font-size: .32rem;
+}
+
+.jymobile-setting-dialog .weui-dialog__hd {
+  padding: 0;
+  height: 0.82rem;
+  line-height: .82rem;
+  text-align: center;
+  background-color: #F5F4F9;
+}
+
+.jymobile-setting-dialog .weui-dialog__hd .weui-dialog__title {
+  font-size: .36rem;
+}
+
+.jymobile-setting-dialog .weui-dialog__bd {
+  padding: .37rem .1rem .38rem;
+  color: #1D1D1D;
+  font-size: .32rem;
+  text-align: center;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft {
+  display: flex;
+  padding: 0 0 .38rem 0;
+  text-align: center;
+  justify-content: space-around;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft:after {
+  border: none;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn {
+  display: flex;
+  flex: none;
+  align-items: center;
+  justify-content: center;
+  width: 1.72rem;
+  height: .72rem;
+  color: #fff;
+  font-size: .32rem;
+  vertical-align: center;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_primary {
+  margin: 0;
+  margin-left: .3rem;
+  background-color: #2CB7CA;
+}
+
+.jymobile-setting-dialog .weui-dialog__ft .weui-dialog__btn_default {
+  margin: 0;
+  margin-right: .3rem;
+  background-color: #BFBFC3;
+}
+
+.free7days_pic,
+.noble_vip_pic {
   display: inline-block;
   margin-right: .2rem;
   padding-left: .4rem;
@@ -30,7 +122,7 @@
   top: -0.03rem;
   left: .05rem;
   display: inline-block;
-  width: .8rem;
+  padding: 0 .04rem;
   line-height: normal;
   font-size: 0.18rem;
   color: #fff;
@@ -70,9 +162,10 @@
   line-height: .88rem;
   padding: 0 .3rem;
   background: #fff;
+      border-bottom: 1px solid #E6E6E6;
 }
 
-.filter_tab:after {
+/*.filter_tab:after {
   position: absolute;
   content: '';
   left: 0;
@@ -82,28 +175,30 @@
   background-color: #E6E6E6;
   transform-origin: 0 0;
   transform: scaleY(0.5);
-}
+}*/
 
 .filter_tab .tab_left {
   flex: 1;
 }
 
-.filter_tab .tab_left .time_box, .filter_tab .tab_left .area_box {
-  margin-right: .4rem;
+.filter_tab .tab_left .time {
+  margin-right: .25rem;
+}
+
+.filter_tab .tab_left .time_box,
+.filter_tab .tab_left .area_box {
+  margin-right: .3rem;
   color: #686868;
   font-size: .28rem;
 }
 
-.filter_tab .tab_left .time_box i, .filter_tab .tab_left .area_box i {
+.filter_tab .tab_left .time_box i,
+.filter_tab .tab_left .area_box i {
   font-size: .14rem;
   color: #aaa;
   margin-left: .08rem;
 }
 
-.filter_tab .tab_right {
-  flex: 1;
-}
-
 .filter_tab .tab_right .normal_set_box {
   font-size: .28rem;
   color: #1D1D1D;
@@ -122,6 +217,7 @@
   padding-left: .3rem;
   font-size: .28rem;
   color: #CFAD89;
+text-decoration: none;
 }
 
 .filter_tab .tab_right .vip_set_box:before {
@@ -154,7 +250,7 @@
 
 .filter_tab .area_container .area_wrap .area_data {
   flex: 1;
-  overflow-y: scroll;
+  overflow-y: hidden;
   display: flex;
   justify-content: space-between;
 }
@@ -171,13 +267,22 @@
   background: #F5F4F9;
 }
 
-.filter_tab .area_container .area_wrap .area_data .p_item, .filter_tab .area_container .area_wrap .area_data .c_item {
+.filter_tab .area_container .area_wrap .area_data .p_item,
+.filter_tab .area_container .area_wrap .area_data .c_item {
   position: relative;
   height: .88rem;
   line-height: .88rem;
   padding: 0 .3rem;
 }
 
+.filter_tab .area_container .area_wrap .area_data .p_item .city-count {
+  display: none;
+}
+
+.filter_tab .area_container .area_wrap .area_data .c_item .city-name {
+  flex: 1;
+}
+
 .filter_tab .area_container .area_wrap .area_data .p_item:after, .filter_tab .area_container .area_wrap .area_data .c_item:after {
   position: absolute;
   content: '';
@@ -187,7 +292,7 @@
   height: 1px;
   background-color: #E0E0E0;
   transform-origin: 0 0;
-  transform: scaleY(0.5);
+  /*transform: scaleY(0.5);*/
 }
 
 .filter_tab .area_container .area_wrap .area_data .active {
@@ -237,7 +342,7 @@
   top: 0.88rem;
   bottom: 0;
   width: 100%;
-  height: calc(100vh - 1.82rem);
+  height: calc(100vh - 0.82rem);
   margin-left: -0.3rem;
   background: #000;
   opacity: 0.5;
@@ -393,3 +498,27 @@
   border-radius: .32rem;
   text-align: center;
 }
+
+.nv_renew_toast > div {
+  padding: .15rem .3rem;
+  color: #fff;
+  font-size: .26rem;
+}
+
+.nv_renew_toast > div i {
+  font-size: .32rem;
+}
+
+.nv_renew_toast > div a {
+  width: 1.24rem;
+  height: .64rem;
+  line-height: .64rem;
+  color: #fff;
+  text-align: center;
+  background: transparent;
+  border: 1px solid white;
+  border-radius: .32rem;
+}
+.nv_renew_toast > div {
+  background-color: #FE737A;
+}

+ 12 - 1
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/trial_info.css

@@ -1,7 +1,9 @@
+
 .trial_info {
   width: 100%;
   height: 100%;
   overflow: hidden;
+  padding-bottom: .94rem;
 }
 
 .trial_info .form {
@@ -68,7 +70,8 @@
   align-items: center;
   justify-content: space-between;
   padding: 0.26rem .3rem;
-  position: relative;
+  position: relative;    
+  height: 1rem;
 }
 
 .trial_info .trial_body .form_info .form_item input {
@@ -95,6 +98,7 @@
   line-height: normal;
   height: auto;
   min-height: .94rem;
+  height: 1rem;
 }
 
 .trial_info .trial_body .form_info .form-item-textarea textarea {
@@ -176,3 +180,10 @@
 .custom-toast .weui-toast__content {
   margin: 0;
 }
+
+.trial_info .trial_btn{
+	position: fixed;
+	bottom: 0;
+	width: 100%;
+	background: #fff;
+}

+ 88 - 10
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_index.css

@@ -246,8 +246,8 @@
 }
 
 .custom-dialog .weui-dialog__hd {
-  background: #F5F4F9;
-  padding: .17rem 0;
+  background: #fff;
+  padding:  0.38rem 0 0;
   color: #000;
   font-size: .34rem;
   text-align: center;
@@ -394,8 +394,8 @@
   position: relative;
   top: -0.03rem;
   left: .05rem;
-  display: inline-block;
-  width: .8rem;
+  display: none;
+  /*width: .8rem;*/
   line-height: normal;
   font-size: 0.18rem;
   color: #fff;
@@ -409,7 +409,7 @@
   flex-direction: column;
   flex-wrap: nowrap;
   width: 100%;
-  height: 100%;
+  height: 100vh;
   padding-top: constant(safe-area-inset-top);
   padding-top: env(safe-area-inset-top);
   padding-bottom: constant(safe-area-inset-bottom);
@@ -486,6 +486,7 @@
   left: .15rem;
   color: #34355A;
   background-color: #FFDAB1;
+    padding: .02rem .03rem 0.01rem .03rem;
 }
 
 .vip_index .content .vip_info .s_left .already {
@@ -552,15 +553,15 @@
 .vip_index .content .subscribe_info .s_info_top .s_i_item {
   display: flex;
   position: relative;
-  line-height: 1.4;
+  line-height: 1.8;
   z-index: 2;
 }
 
 .vip_index .content .subscribe_info .s_info_top .s_i_item label {
-  width: 1.56rem;
+  width: 1.6rem;
 }
 
-.vip_index .content .subscribe_info .s_info_top .s_i_item span {
+.vip_index .content .subscribe_info .s_info_top .s_i_item > span {
   flex: 1;
 }
 
@@ -588,8 +589,8 @@
 }
 
 .vip_index .content .subscribe_info .s_info_bottom {
-  height: .53rem;
-  line-height: .53rem;
+  height: .68rem;
+  line-height: .68rem;
   font-size: .24rem;
   text-align: center;
   border-top: 1px solid #CFAD89;
@@ -599,6 +600,48 @@
   font-size: .24rem;
 }
 
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box {
+  position: relative;
+    top: .04rem;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box ._area,
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box ._buyerClass {
+  display: -webkit-box;
+  height: auto;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 2;
+  -webkit-box-orient: vertical;
+  min-height: 18px;
+  line-height: 18px;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box .icon-arrow {
+  position: absolute;
+  width: 1.14rem;
+  bottom: 0;
+  right: .1rem;
+  text-align: right;
+  font-size: .26rem;
+  background: linear-gradient(90deg, rgba(255, 218, 177, 0) 0%, #ffdab1 100%);
+  transition: height 0.5s ease;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box .icon-arrow::before {
+  display: inline-block;
+  transform: rotate(90deg);
+  transition: transform 0.2s ease;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box.expanded ._area,
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box.expanded ._buyerClass {
+  display: block;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box.expanded .icon-arrow::before {
+  transform: rotate(-90deg);
+}
 .vip_index .content .media .media_list {
   display: flex;
   align-items: center;
@@ -720,3 +763,38 @@
   border: 1px solid white;
   border-radius: .32rem;
 }
+i.icon-wenhao{
+	font-size: .32rem;
+    color: #2CB7CA;
+/*    padding-top: .05rem;*/
+    margin-left: .2rem;
+}
+
+.vip_index .footer .nv_renew_toast {
+  width: 100%;
+}
+
+.vip_index .footer .nv_renew_toast div {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: .15rem .3rem;
+  color: #fff;
+  font-size: .26rem;
+  background-color: #FE737A;
+}
+
+.vip_index .footer .nv_renew_toast div i {
+  font-size: .32rem;
+}
+
+.vip_index .footer .nv_renew_toast div a {
+  width: 1.24rem;
+  height: .64rem;
+  line-height: .64rem;
+  color: #fff;
+  text-align: center;
+  background: transparent;
+  border: 1px solid white;
+  border-radius: .32rem;
+}

+ 6 - 4
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_introduce.css

@@ -34,6 +34,7 @@
   display: flex;
   flex-direction: column;
   justify-content: space-between;
+  margin-bottom: .94rem;
 }
 
 .vip_introduce .main {
@@ -168,10 +169,11 @@
 }
 
 .vip_introduce .menu {
-  position: relative;
-  width: 100%;
-  height: .94rem;
-  line-height: .94rem;
+   position: fixed;
+   width: 100%;
+   height: .94rem;
+   bottom: 0;
+   line-height: .94rem;
 }
 
 .vip_introduce .menu:after {

+ 2 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_order_detail.css

@@ -479,6 +479,8 @@
   line-height: .94rem;
   text-align: center;
   font-size: .36rem;
+  position: absolute;
+  bottom: 0px;
 }
 
 .vip_order_detail .align {

+ 2 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_pay_success.css

@@ -26,6 +26,8 @@
   align-items: center;
   width: 100%;
   height: .94rem;
+  position: fixed;
+  bottom: 0;
 }
 
 .bottom_button .left_btn,

+ 8 - 1
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_purchase.css

@@ -417,6 +417,7 @@
   height: 100%;
   flex-direction: column;
   justify-content: space-between;
+  padding-bottom: 2.5rem;
 }
 
 .vip_purchase .choose_condition::-webkit-scrollbar {
@@ -535,6 +536,7 @@
 
 .vip_purchase .choose_condition .vip_rules .vip_prise_table .table_title {
   margin-bottom: .3rem;
+  margin-top: .3rem;
 }
 
 .vip_purchase .choose_condition .vip_rules .vip_prise_table table {
@@ -558,9 +560,14 @@
 }
 
 .vip_purchase .fixed-bottom-box {
+  width: 100%;	
   background-color: #fff;
+  position: fixed;
+  bottom: 0;
+}
+.weui-check__label:active {
+    background-color: #fff !important;
 }
-
 .vip_purchase .fixed-bottom-box .price {
   display: flex;
   align-items: center;

+ 2 - 1
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_service_expire.css

@@ -232,11 +232,12 @@
   justify-content: space-between;
   align-items: center;
   padding: 0 .3rem;
-  padding-top: 1.3rem;
+  /*padding-top: 1.3rem;*/
 }
 
 .vip_service_expire .service_expire_tip {
   width: 100%;
+  padding-top: 1.3rem;
 }
 
 .vip_service_expire .service_expire_tip .tip_title_box {

+ 152 - 2
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/css/vip_update.css

@@ -51,6 +51,91 @@
   opacity: .5;
 }
 
+.public_btn {
+  width: 100%;
+  height: .94rem;
+  line-height: .94rem;
+  text-align: center;
+  background: #2CB7CA;
+  color: #fff;
+  border-radius: 0.06rem;
+  font-size: .34rem;
+}
+
+.tips_btn {
+  display: flex;
+  position: relative;
+  flex-direction: column;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.tips_btn .tips_discount {
+  width: 100%;
+}
+
+.tips_btn .tips_discount .tips_d_money {
+  display: none;
+  position: absolute;
+  left: 50%;
+  top: -.2rem;
+  padding: 0 .4rem;
+  height: .64rem;
+  line-height: .64rem;
+  color: #2CB7CA;
+  font-size: .32rem;
+  background-color: #fff;
+  border-radius: .32rem;
+  transform: translate(-50%, -100%);
+  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
+}
+
+.tips_btn .tips_discount .tips_d_text {
+  display: none;
+  height: .72rem;
+  line-height: .72rem;
+  color: #fff;
+  font-size: .28rem;
+  text-align: center;
+  background-color: #FFB901;
+}
+
+.tips_btn .btns {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  width: 100%;
+  height: .94rem;
+  line-height: .94rem;
+  color: #fff;
+  font-size: .34rem;
+}
+
+.tips_btn .btns .save-btn,
+.tips_btn .btns .reset-btn {
+  flex: 1;
+  width: 50%;
+  text-align: center;
+  height: 100%;
+  font-size: .34rem;
+}
+
+.tips_btn .btns .reset-btn {
+  background: #fff;
+  color: #2cb7ca;
+  border-top: 1px solid #e0e0e0;
+}
+
+.tips_btn .btns .save-btn {
+  background: #2cb7ca;
+  color: #fff;
+  border-top: 1px solid #2cb7ca;
+}
+
+.tips_btn .btns button[disabled] {
+  opacity: .5;
+}
+
 .jy_icon {
   position: relative;
   width: 100%;
@@ -272,6 +357,61 @@
   transform: translateX(20px);
 }
 
+.custom-toast .weui-toast {
+  font-size: .3rem;
+  padding: 0.2rem;
+  width: auto;
+  max-width: 6rem;
+  min-height: 0;
+  height: auto;
+  top: 50%;
+  left: 50%;
+  margin-left: 0;
+  margin-top: -0.47rem;
+  transform: translateX(-50%) translateY(-50%);
+  z-index: 99999;
+}
+
+.custom-toast .weui-icon_toast {
+  display: none;
+}
+
+.custom-toast .weui-toast__content {
+  margin: 0;
+}
+
+.jymobile-tab-triangle {
+  position: relative;
+}
+
+.jymobile-tab-triangle:after {
+  content: '';
+  position: absolute;
+  top: 50%;
+  right: 0;
+  width: 0;
+  height: 0;
+  font-size: 0;
+  line-height: 0;
+  border-style: solid;
+  border-width: .1rem;
+  border-color: #aaa transparent transparent transparent;
+  transform: translate(140%, -30%);
+}
+
+.jymobile-tab-triangle.active:after {
+  border-color: transparent transparent #2cb7ca transparent;
+  transform: translate(140%, -70%);
+}
+
+.jymobile-tab-triangle.current {
+  color: #2cb7ca;
+}
+
+.jymobile-tab-triangle.current:after {
+  border-color: #2cb7ca transparent transparent transparent;
+}
+
 .radio-form {
   margin: 0;
   padding: .17rem .05rem;
@@ -309,6 +449,10 @@
   background-color: transparent;
 }
 
+.custom-toast .weui-toast {
+  font-size: .27rem;
+}
+
 .vip_update, .vip_renew {
   display: flex;
   height: 100%;
@@ -377,7 +521,7 @@
 .vip_update .choose_condition .pay_mode .choose_item a .label, .vip_renew .choose_condition .chooseList .choose_item a .label,
 .vip_renew .choose_condition .pay_mode .choose_item a .label {
   float: left;
-  width: 1.5rem;
+  width: 2.5rem;
   color: #1d1d1d;
   font-size: .32rem;
 }
@@ -637,6 +781,12 @@
   padding: 0;
 }
 
+.vip_update .time_cycle .box_bd .computed_price, .vip_renew .time_cycle .box_bd .computed_price {
+  padding: .4rem .36rem .24rem;
+  font-size: .4rem;
+  border-bottom: 1px solid #E0E0E0;
+}
+
 .vip_update .time_cycle .box_bd .bd_select, .vip_renew .time_cycle .box_bd .bd_select {
   padding: 0 .3rem;
 }
@@ -727,7 +877,7 @@
 }
 
 .vip_renew .detail_item .item_info .label {
-  width: 1.56rem;
+  width: 1.6rem;
 }
 
 .vip_renew .detail_item .item_info .label_for {

BIN
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/image/frame.png


BIN
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/image/matchType.png


+ 82 - 27
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/additionWord.js

@@ -11,18 +11,18 @@ $(function(){
         var showKeyWordLength = $(".showKeyWord ul").find('li').length;
         if(showKeyWordLength === 0){
             $(".addkeyWord").show();
-            $(".showKeyWord").hide();
         } else {
             $(".addkeyWord").hide();
-            $(".showKeyWord").show();
         }
     }
     hasWords()
     
     // 添加按钮
     $(".addKeyWord i").on('click',function(){
-        $(".addkeyWord").show();
-        $(".showKeyWord").hide();
+        $(".addkeyWord").show()
+        $(".addkeyWord input").focus()
+        $('.showKeyWord').find('.one').show()
+        $('.showKeyWord').find('.modify').hide()
     })
     // 输入框自适应高度
     $('textarea').each(function(i,dom){
@@ -48,8 +48,19 @@ $(function(){
     // 添加 按钮的点击事件
     $('.addkeyWord .btn button').on('click', function(){
         var timestamp = new Date().getTime();//动态生成不同的id,因为id唯一不能重复,所以 用时间戳 代替  防止重复
-        console.log(timestamp)
-        var keyWord = $('.addkeyWord input.enterOne').val()
+        var keyWord = $('.addkeyWord input.enterOne').val();
+        _addindex = -1;
+		if(addkws_arr[keyWord]!=undefined){
+            weui.toast('您设置的附加词已存在,请调整后再添加。', {
+                duration: 2000,
+                className: 'custom-toast',
+                callback: function () { console.log('close') }
+            });
+			return
+		}
+        //保存新附加词
+        _addkws = keyWord;
+        saveSession();
         var html = `<li>
                         <div class="one">
                             <div>
@@ -66,7 +77,6 @@ $(function(){
                         </div>
                     </li>`
         $('.showKeyWord > ul').prepend(html)
-        
         // 隐藏
         $(".addkeyWord").hide();
         $('.showKeyWord').show();
@@ -79,10 +89,12 @@ $(function(){
 
     // 编辑
     $(".showKeyWord").on('click', '.editKeyWord',function(e){
+        $('.enter.addkeyWord').hide()
+        $('.addKeyWord').hide()
+
         let oSpan = $(this).parent().siblings().children('textarea');
-        console.log($(oSpan).val())
         let val = $(oSpan).val()
-        $(this).parent().siblings().show().parent().siblings().children('.modify').hide().siblings('.one').show()
+        $(this).parent().siblings().show().parents('li').siblings().children('.modify').hide().siblings('.one').show()
         $(oSpan).val('').focus().val(val) 
         $(this).parent().hide()
         $(this).parent().siblings().css('display','block')
@@ -90,27 +102,70 @@ $(function(){
 
     // 编辑 删除
     $('.showKeyWord').on('click', '.deleteKey', function(e) {
-        $(this).parents('li').remove()
-        hasWords()
-        console.log('删除附加词:',$(this).parent().find('span').text())
+        var jQueryDOM = $(this).parents('li');
+        _addkws = $(this).siblings('textarea').val();
+        _addindex = $(".showKeyWord li").length - $(this).parent().parent('li').index() - 1;
+        weui.confirm('确定要删除附加词?', {
+            buttons: [{
+                label: '取消',
+                type: 'default',
+                onClick: function () { console.log('不删了') }
+            }, {
+                label: '确定',
+                type: 'primary',
+                onClick: function () {
+                    jQueryDOM.remove();
+                    hasWords();
+                    $('.addKeyWord').show();
+                    saveSession("D");
+                }
+            }]
+        });
     })
     // 编辑 确定
     $('.showKeyWord').on('click', '.ascertainKey', function(e) {
-        var keyWord = $(this).siblings('textarea').val()
-        $(this).parent().siblings().find('.key').text(keyWord)
-        $(this).parent().hide().siblings().show()
-        console.log(keyWord)
+        $('.addKeyWord').show()
+        var keyWord = $(this).siblings('textarea').val();
+        if(keyWord.length > 20){
+            weui.toast('每组附加词不能超过20字', {
+                duration: 2000,
+                className: 'custom-toast',
+                callback: function () { console.log('close') }
+            });
+        }else{
+            _addindex = $(".showKeyWord li").length - $(this).parent().parent('li').index() - 1;
+			if(addkws_arr[keyWord]!=undefined&&addkws_arr[keyWord]!=_addindex){
+	            weui.toast('您设置的附加词已存在,请调整后再添加。', {
+	                duration: 2000,
+	                className: 'custom-toast',
+	                callback: function () { console.log('close') }
+	            });
+				return
+			}
+            _addkws = keyWord;
+            saveSession();
+            $(this).parent().siblings().find('.key').text(keyWord)
+            $(this).parent().hide().siblings().show()
+        }
     })
 
-    //去空格方法
-    String.prototype.trim = function(){
-        return this.replace(/(^\s*)|(\s*$)/g, ' ');
-     }
-     //防止键盘把当前输入框给挡住
-    $('input[type="text"],textarea').focus(function () {
-        var target = this;
-        setTimeout(function(){
-            target.scrollIntoViewIfNeeded();
-        },400);
-    });
+    
+    //防止键盘把当前输入框给挡住
+    var u = navigator.userAgent;
+	var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
+	var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
+	if(isAndroid){
+		//防止键盘把当前输入框给挡住
+	    window.addEventListener('resize', function () {
+	      	if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
+	          		window.setTimeout(function () {
+	         	document.activeElement.scrollIntoViewIfNeeded();
+	            }, 0);
+	        }
+	    })
+	}
+	(/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener('blur', (e) => {
+	    // 这里加了个类型判断,因为a等元素也会触发blur事件
+	    ['input', 'textarea'].includes(e.target.localName) && document.body.scrollIntoView(false)
+	}, true)
 })

+ 172 - 4
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/common.js

@@ -1,4 +1,172 @@
-$(function() {
-    // 解决ios系统click 事件300毫秒的延迟
-    FastClick.attach(document.body);
-});
+//请求同意调用
+function $DoPost(url,param={},callback,async=true){
+	$.ajax({
+		url: url+"?t="+new Date().getTime(),
+		type: "POST",
+		data: param,
+		async: async,
+		dataType: "json",
+		success: function(r){
+			callback(r)
+			if(r.error||r.errMsg){
+				var errTip = r.error||r.errMsg;
+				weui.toast(errTip,{
+		          duration: 2000,
+		          className: 'custom-toast',
+		        });
+			}
+		}
+	})
+}
+
+//获取url参数
+function getParam(name) {
+  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+  var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
+  var context = "";
+  if (r != null)
+      context = r[2];
+  reg = null;
+  r = null;
+  return context == null || context == "" || context == "undefined" ? "" : context;
+}
+
+
+//省份 城市 分类
+function getAreaClassArr(area){
+	let cityArr=[];//城市
+    let provinceArr=[];//省份
+    for(var i in area) {
+      let citys=area[i]
+      if(citys.length>0){
+        cityArr = cityArr.concat(citys);
+      }else{
+    	if(i=="全国"){
+			continue
+		}
+        provinceArr.push(i)
+      }
+    }
+    return [provinceArr,cityArr]
+}
+
+/* vip订阅价格
+	area:地区 {}
+	industry:行业 []
+	time[count,unit] count:时间长度 unit 1:年 2:月
+	price 价格表
+   return 价格(单位:分)
+*/
+var priceData
+function getsubVipOrderPrice(area,industry,t,price){
+	if(!price){
+		if(priceData){
+			price=priceData
+		}else{
+			$DoPost("/subscribepay/vipsubscribe/getPrice",{},function(r){
+	          if(r){
+	            price=r;
+	            priceData=price;
+	          }else{
+	        	weui.toast("加载价格异常",{
+		          duration: 2000,
+		          className: 'custom-toast',
+		        });
+	          }
+	        },false)
+		}
+	}	
+	if(industry[0] == "全部行业")industry= []
+	if(area["全国"]) area={}
+	//当行业数量大于最大值price.BuyerClassMaxCount 按照全行业计算
+	var industryNum = industry.length
+	if (industryNum > price.buyerClassMaxCount) {
+		industryNum = 0
+	}
+	//计算地区数量
+	var pCount = -1         //省份数量
+	var citysCountMap = {} //购买省份中城市数量
+	
+	if(!$.isEmptyObject(area)){
+		pCount=0
+		for(var i in area) {
+			let citys=area[i]
+			if(citys.length==0){
+				pCount++
+			}else{
+				if(citys.length > price.cityMaxCount){
+					pCount++
+				}else{
+					citysCountMap[i]= citys.length 
+				}
+			}
+	    }
+	}
+	
+	//当省份数量大于price.ProvinceMaxCount 按照全国计算
+	if (pCount > price.provinceMaxCount) {
+		pCount = -1
+	}
+	
+	if(t[0]>price.monthMaxCount&&t[1]==2) t[0]=10 //月份十个月以上价格一样
+	
+	if(pCount == -1){//计算全国套餐价格
+		if(industryNum==1) return getSetMealPrice(0,1,t[1],price)*t[0]/100 //全国1行业套餐
+		if(industryNum==0) return getSetMealPrice(0,0,t[1],price)*t[0]/100 //全国全行业套餐
+		return	getSetMealPrice(0,industryNum,t[1],price) * t[0] / 100 //全国多行业套餐
+	}
+	
+	var final_price	= pCount*getSetMealPrice(1,industryNum,t[1],price)*t[0];//计算省份价格
+	
+	for(var i in citysCountMap) {
+		var thisPrice = 0;	
+		var citys = area[i]
+		if(citysCountMap[i]==1){//单城市
+			thisPrice = getSetMealPrice(2,industryNum,t[1],price)*t[0];
+		}else{//多城市
+			if(industryNum==0||industryNum==1){//多城市 单行业
+				thisPrice = citysCountMap[i] * getSetMealPrice(2,industryNum,t[1],price) * t[0];	
+			}else{//多城市 多行业
+				var industry_Price= price.buyerClassPrice  * industryNum;
+				var city_Price = price.cityPrice *citysCountMap[i];
+				thisPrice = (industry_Price + city_Price) * t[0];
+				if(t[1]==1) thisPrice *= 10 //年的价格是月价格的10倍
+			}
+		}
+    	final_price += thisPrice;
+    }
+    return final_price/100
+}
+//获取套餐价格
+//c(city) 全国:0 省:1 市:2 
+//iCount(industry) 全行业:0 行业:1 其他:多个行业
+//u(unit) 年:1 月:2
+function getSetMealPrice(c,iCount,u,price){
+	var t = u==2 //是否是月单位
+	switch(c){
+	case 0:
+		if(iCount==0){
+			if(t)return price.month.allProvince_allBuyerClass  //1月全国全行业
+			return price.year.allProvince_allBuyerClass //1年全国全行业
+		}else{
+			if(t)return price.month.allProvince_oneBuyerClass * iCount //1月全国icount个行业
+			return price.year.allProvince_oneBuyerClass * iCount	//1年全国icount个行业
+		}
+	case 1:
+		if(iCount==0){
+			if(t)return price.month.oneProvince_allBuyerClass  //1月1省全行业
+			return price.year.oneProvince_allBuyerClass	//1年1省全行业
+		}else{
+			if(t)return price.month.oneProvince_oneBuyerClass * iCount //1月1省icount个行业
+			return price.year.oneProvince_oneBuyerClass * iCount	//1年1省icount个行业
+		}
+	default:
+		if(iCount==0){
+			if(t)return price.month.oneCity_allBuyerClass  //1月1市全行业
+			return price.year.oneCity_allBuyerClass	//1年1市全行业
+		}else{
+			if(t)return price.month.oneCity_oneBuyerClass * iCount //1月1市icount个行业
+			return price.year.oneCity_oneBuyerClass * iCount	//1年1市icount个行业
+		}
+	}
+}

+ 61 - 25
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/exclusiveWord.js

@@ -11,18 +11,18 @@ $(function(){
         var showKeyWordLength = $(".showKeyWord ul").find('li').length;
         if(showKeyWordLength === 0){
             $(".addkeyWord").show();
-            $(".showKeyWord").hide();
         } else {
             $(".addkeyWord").hide();
-            $(".showKeyWord").show();
         }
     }
     hasWords()
     
     // 添加按钮
     $(".addKeyWord i").on('click',function(){
-        $(".addkeyWord").show();
-        $(".showKeyWord").hide();
+        $(".addkeyWord").show()
+        $(".addkeyWord input").focus()
+        $('.showKeyWord').find('.one').show()
+        $('.showKeyWord').find('.modify').hide()
     })
 
     // 添加keyWords检查输入框内是否有文字,如果有才能点击添加按钮
@@ -61,6 +61,18 @@ $(function(){
    
     $('.addkeyWord .btn button').on('click', function(){
         var keyWord = $('.addkeyWord input.enterOne').val()
+        _notindex = -1;
+        //保存新附加词
+        _notkws = keyWord;
+		if(notkws_arr[keyWord]!=undefined){
+            weui.toast('您设置的附加词已存在,请调整后再添加。', {
+                duration: 2000,
+                className: 'custom-toast',
+                callback: function () { console.log('close') }
+            });
+			return
+		}
+        saveSession();
         var html = `<li>
                         <div class="one">
                             <div>
@@ -89,18 +101,22 @@ $(function(){
     })
 
     // 编辑
-    $(".showKeyWord").on('click', '.editKeyWord',function(e){
+    $(".showKeyWord").on('click', '.editKeyWord', function(e){
+        $('.enter.addkeyWord').hide()
+        $('.addKeyWord').hide()
+
         let oSpan = $(this).parent().siblings().children('textarea');
         let val = $(oSpan).val()
         $(this).parent().hide()
-        $(this).parent().siblings().css('display','block')
+        $(this).parent().siblings().show().parents('li').siblings().children('.modify').hide().siblings('.one').show()
         $(oSpan).val('').focus().val(val) 
-        $('.addKeyWord').hide()
     })
 
     // 编辑 删除
     $('.showKeyWord').on('click', '.deleteKey', function(e) {
-        var jQueryDOM = $(this).parents('li')
+        var jQueryDOM = $(this).parents('li');
+        _notkws = $(this).siblings('textarea').val();
+        _notindex = $(".showKeyWord li").length - $(this).parent().parent('li').index() - 1;
         weui.confirm('确定要删除关键词?', {
             buttons: [{
                 label: '取消',
@@ -112,7 +128,8 @@ $(function(){
                 onClick: function () {
                     jQueryDOM.remove()
                     hasWords()
-                    $('.addKeyWord').show()
+                    $('.addKeyWord').show();
+                    saveSession("D");
                 }
             }]
         });
@@ -120,30 +137,49 @@ $(function(){
     })
     // 编辑 确定
     $('.showKeyWord').on('click', '.ascertainKey', function(e) {
-        var $this = $(this)
-        var keyWord = $(this).siblings('textarea').val()
+        var $this = $(this);
+        var keyWord = $(this).siblings('textarea').val();
         if(keyWord.length > 20){
-            weui.toast('关键词不能超过20字', {
+            weui.toast('每组排除词不能超过20字', {
                 duration: 2000,
                 className: 'custom-toast',
                 callback: function () { console.log('close') }
             });
         }else{
-            $this.parent().siblings().find('.key').text(keyWord)
-            $this.parent().hide().siblings().show()
-            $('.addKeyWord').show()
+			if(notkws_arr[keyWord]!=undefined&&notkws_arr[keyWord]!=_notindex){
+	            weui.toast('您设置的排除词已存在,请调整后再添加。', {
+	                duration: 2000,
+	                className: 'custom-toast',
+	                callback: function () { console.log('close') }
+	            });
+				return
+			}
+            $this.parent().siblings().find('.key').text(keyWord);
+            $this.parent().hide().siblings().show();
+            $('.addKeyWord').show();
+            _notindex = $(".showKeyWord li").length - $(this).parent().parent('li').index() - 1;
+            _notkws = keyWord;
+            saveSession();
         }
     })
 
-    //去空格方法
-    String.prototype.trim = function(){
-        return this.replace(/(^\s*)|(\s*$)/g, ' ');
-    }
+    
     //防止键盘把当前输入框给挡住
-    $('input[type="text"],textarea').focus(function () {
-        var target = this;
-        setTimeout(function(){
-            target.scrollIntoViewIfNeeded();
-        },400);
-    });
+    var u = navigator.userAgent;
+	var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
+	var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
+	if(isAndroid){
+		//防止键盘把当前输入框给挡住
+	    window.addEventListener('resize', function () {
+	      	if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
+	          		window.setTimeout(function () {
+	         	document.activeElement.scrollIntoViewIfNeeded();
+	            }, 0);
+	        }
+	    })
+	}
+	(/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener('blur', (e) => {
+	    // 这里加了个类型判断,因为a等元素也会触发blur事件
+	    ['input', 'textarea'].includes(e.target.localName) && document.body.scrollIntoView(false)
+	}, true)
 })

+ 240 - 79
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/keyWord.js

@@ -1,8 +1,12 @@
-$(function () {
 
-    $(".enterOne").focus(function () {
-        $(".btnChoose").show();
-    })
+var reloadFunc = function(){
+    
+    //去空格方法
+    // String.prototype.trim = function () {
+    //     return this.replace(/(^\s*)|(\s*$)/g, ' ');
+    // }
+
+    // 疑问解答相关操作
     $('.knowBtn').on('click', function () {
         $(".problemPop").hide()
     })
@@ -10,27 +14,12 @@ $(function () {
         $(".problemPop").css("display", 'flex');
     })
 
-    function hasWords() {
-        var showKeyWordLength = $(".showKeyWord ul").find('li').length;
-        if (showKeyWordLength === 0) {
-            $(".addkeyWord").show();
-            $(".showKeyWord").hide();
-        } else {
-            $(".addkeyWord").hide();
-            $(".showKeyWord").show();
-        }
-    }
-    hasWords()
-
-    //添加按钮
-    $(".addKeyWord i").on('click', function () {
-        $(".addkeyWord").show();
-        $(".showKeyWord").hide();
+    $(".enterOne").focus(function () {
+        $(".btnChoose").show();
     })
 
     // 输入框自适应高度
     $('textarea').each(function(i,dom){
-        // console.log(i,dom)
         dom.style.height = dom.scrollHeight +'px';
     })
     $("textarea").on("input", function() {
@@ -38,10 +27,8 @@ $(function () {
         this.style.height = this.scrollHeight + "px";
     })
 
-
     // 添加keyWords检查输入框内是否有文字,如果有才能点击添加按钮
-    $('.addkeyWord input.enterOne').on('input', function () {
-
+    $('.content .addkeyWord input.enterOne').on('input', function () {
         var buttonDOM = $(this).siblings()[1].children[0]
         if ($(this).val().length >= 1) {
             buttonDOM.style.opacity = 1
@@ -51,42 +38,136 @@ $(function () {
             buttonDOM.setAttribute("disabled", true)
         }
     })
-    // 添加 按钮的点击事件
-    $('.addkeyWord .btn button').on('click', function () {
-        var keyWord = $('.addkeyWord input.enterOne').val()
-        var html = `<li>
-                        <div class="one">
-                            <div>
-                                <span>
-                                    <strong> 关键词:</strong>
-                                    <p class="key">${ keyWord}</p>
-                                </span>
-                            </div>
-                            <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
+
+    // 添加 确认按钮的点击事件
+    $('.content .addkeyWord .btn button').on('click', function () {
+        var keyWord = $('.addkeyWord input.enterOne').val();
+		if(kws_arr[keyWord]!=undefined){
+            weui.toast('您设置的关键词已存在,请调整后再添加。', {
+                duration: 2000,
+                className: 'custom-toast',
+                callback: function () { console.log('close') }
+            });
+			return
+		}
+        if(kws_name.length > 20){
+            weui.toast('关键词不能超过20字', {
+                duration: 2000,
+                className: 'custom-toast',
+                callback: function () { console.log('close') }
+            });
+        }
+        kws_name = keyWord;
+        kws_index = $(".showKeyWord li").length;
+        if(kws_index==0){
+            //分类首次添加关键词需重新获取分类索引
+            classify_index = a_items.length;
+        }
+        classify_name = $('.classify-r .classify-detail').text();
+        //保存关键词
+        kws_count = parseInt(kws_count) + 1;
+        if(kws_count>300){
+            weui.toast('您设置的关键词已超出最高上限,请调整后再添加。', {
+                duration: 2000,
+                className: 'custom-toast',
+                callback: function () { console.log('close') }
+            });
+        }else if (saveData("SK")){
+            // 设置状态 首次添加关键词
+            if(a_items.length==0){
+                setEmptyHistory();
+            }
+            //
+            doSessionData();
+            $(".add-keyword-container .addNewKeyword").show();
+            //点击保存关键词,查看缓存中存的附加词 和排除词。
+            $(".kws_count").text(kws_count);
+            var html = `<li><div class="one"><div>
+                            <span>
+                                <strong> 关键词:</strong>
+                                <p class="key">${keyWord}</p>
+                            </span>`
+                if (addition_kws.length>0){
+                    html +='<span>'
+                                +'<strong> 附加词:</strong>'
+                                +'<p class="addition">'+addition_kws.join(" ")+'</p>'
+                                +'</span>'
+                }
+                if (not_kws.length>0){
+                    html +='<span>'
+                                +'<strong> 排除词:</strong>'
+                                +'<p class="notkey">'+not_kws.join(" ")+'</p>'
+                                +'</span>'
+                }
+                html +=`</div>
+                        <button class="editKeyWord"  dataIndex=`+kws_index+`><i class="iconfont icon-xiugai"></i> 修改</button>
                         </div>
                         <div class="modify">
-                            <textarea  name=""  rows="1"  placeholder="" maxlength="20">${ keyWord}</textarea>
-                            <button class="addAdjunctWord">编辑 附加词</button>
-                            <button class="addExclusion">添加 排除词</button>
-                            <button class="deleteKey">删除</button>
-                            <button class="ascertainKey">确定</button>
-                        </div>
-                    </li>`
-        $('.showKeyWord > ul').prepend(html)
-
-        // 隐藏
-        $(".addkeyWord").hide();
-        $('.showKeyWord').show();
-        $('.enter.addkeyWord > input').val('')
-        var buttonDOM = $('.enter.addkeyWord .btn button')[0]
-        buttonDOM.style.opacity = .5
-        buttonDOM.setAttribute("disabled", true)
-
+                        <textarea  name=""  rows="1"  placeholder="" maxlength="20">${keyWord}</textarea>`
+            if (addition_kws.length>0){
+                html +=`<button class="addAdjunctWord" onClick="toappendkey(this)">编辑 附加词<i>(`+addition_kws.length+`)</i></button>`
+            }else{
+                html +=`<button class="addAdjunctWord" onClick="toappendkey(this)">添加 附加词</button>`
+            }
+            if (not_kws.length>0){
+                html +=`<button class="addAdjunctWord" onClick="tonotkey(this)">编辑 排除词<i>(`+not_kws.length+`)</i></button>`
+            }else{
+                html +=`<button class="addAdjunctWord" onClick="tonotkey(this)">添加 排除词</button>`
+            }
+                html +=`<button class="deleteKey">删除</button><button class="ascertainKey" dataIndex=`+kws_index+` onclick="saveK(this)">确定</button></div></li>`
+            $('.showKeyWord > ul').prepend(html);
+            // 添加完成隐藏输入框
+            $(".enter.addkeyWord").hide();
+            // 还原状态
+            $('.enter.addkeyWord > input').val('')
+            //把kws_name,kws_index,addition_kws,not_kws初始化
+            kws_index = 0;
+            kws_name = "";
+            addition_kws = [];
+            not_kws = [];
+			//
+            var buttonDOM = $('.enter.addkeyWord .btn button')[0]
+            buttonDOM.style.opacity = .5
+            buttonDOM.setAttribute("disabled", true)
+            //保存关键词 查看关键词数量 未分类 超过20 100提示
+            if(classify_name.indexOf("未分类")>-1){
+                if((kws_tips==0&&$(".showKeyWord li").length>=20)||(kws_tips==20&&$(".showKeyWord li").length>=100)){
+                    //未分类 20个关键词提示,100个关键词提示
+                    showMeg();
+                    var param = {};
+                    param.classify_index = classify_index;
+                    if(kws_tips==0){
+                        param.kws_tips = 20;
+                    }else if(kws_tips==20){
+                        param.kws_tips = 100;
+                    }
+                    $.post("/subscribepay/afterPay/updateUserTips",param,function(r){
+                        if(r.flag){
+                            kws_tips = param.kws_tips;
+                            $(".classify").attr("tips",kws_tips);
+                        }
+                    })
+                }
+            }
+        }
     })
     // 编辑
     $(".showKeyWord").on('click', '.editKeyWord', function (e) {
+        kws_name = $(this).parent().find('.key').text();
+        //当前关键词数组的位置 是数组的总长度-当前所在的位置-1 数组正序索引
+        kws_index = $('.showKeyWord li').length - $(this).parent().parent("li").index() -1;
+        if($(this).prev('div').find(".addition").text()!=""){
+            addition_kws = $(this).prev('div').find(".addition").text().split(" ")
+        }else{
+            addition_kws = []
+        }
+        if ($(this).prev('div').find(".notkey").text()!=""){
+            not_kws = $(this).prev('div').find(".notkey").text().split(" ")
+        }else{
+            not_kws = []
+        }
+        $('.enter.addkeyWord').hide()
         let oSpan = $(this).parent().siblings().children('textarea');
-        console.log($(oSpan).val())
         let val = $(oSpan).val()
         $(this).parent().hide()
         $(this).parent().siblings().show().parent().siblings().children('.modify').hide().siblings('.one').show()
@@ -106,9 +187,30 @@ $(function () {
                 label: '确定',
                 type: 'primary',
                 onClick: function () {
-                    jQueryDOM.remove()
-                    hasWords()
-                    $('.addKeyWord').show()
+                    if(saveData('DK')){
+                        kws_count -= 1;
+                        $(".kws_count").text(kws_count);
+                        jQueryDOM.remove();
+						if($(".showKeyWord ul").find('li').length==0){
+			                $(".enter.addkeyWord").find(".btnChoose button").eq(0).html('添加 附加词');
+			                $(".enter.addkeyWord").find(".btnChoose button").eq(1).html('添加 附加词');
+			                $(".enter.addkeyWord").find("input").val("");
+						}
+                        hasWords();
+                        $('.addKeyWord').show();
+                        doSessionData('DK');
+			            //把kws_name,kws_index,addition_kws,not_kws初始化
+			            kws_index = 0;
+			            kws_name = "";
+			            addition_kws = [];
+			            not_kws = [];
+                    }else{
+			            weui.toast('无法删除', {
+			                duration: 2000,
+			                className: 'custom-toast',
+			                callback: function () { console.log('close') }
+			            });
+                    }
                 }
             }]
         });
@@ -116,32 +218,91 @@ $(function () {
 
     })
     // 编辑确定
-    $('.showKeyWord').on('click', '.ascertainKey', function (e) {
-        var $this = $(this)
-        var keyWord = $(this).siblings('textarea').val()
-        if(keyWord.length > 20){
-            weui.toast('关键词不能超过20字', {
+    // $('.showKeyWord').on('click', '.ascertainKey', function (e) {
+    //     var $this = $(this)
+    //     var keyWord = $(this).siblings('textarea').val()
+    //     if(keyWord.length > 20){
+    //         weui.toast('关键词不能超过20字', {
+    //             duration: 2000,
+    //             className: 'custom-toast',
+    //             callback: function () { console.log('close') }
+    //         });
+    //     }else{
+    //         $this.parent().siblings().find('.key').text(keyWord)
+    //         $this.parent().hide().siblings().show()
+    //         $('.addKeyWord').show()
+    //     }
+    // })
+    
+    //防止键盘把当前输入框给挡住
+    var u = navigator.userAgent;
+	var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
+	var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
+	if(isAndroid){
+		//防止键盘把当前输入框给挡住
+	    window.addEventListener('resize', function () {
+	      	if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
+	          		window.setTimeout(function () {
+	         	document.activeElement.scrollIntoViewIfNeeded();
+	            }, 0);
+	        }
+	    })
+	}
+	(/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener('blur', (e) => {
+	    // 这里加了个类型判断,因为a等元素也会触发blur事件
+	    ['input', 'textarea'].includes(e.target.localName) && document.body.scrollIntoView(false)
+	}, true)
+
+    // 显示关键词分类弹框
+    $('.classify-r').on('click', function(){
+		modalOne();
+    })
+    //
+
+    $('.classify-edit-pop .classify-keyword').bind('input propertychange', function() {
+        var s = $('input.classify-keyword').val()
+        // 去空格
+        s = s.trim()
+        if (s.length === 0) {
+            $('.weui-dialog__ft .dialog__btn_confirm').addClass("opacity6");
+            return
+        }
+        $('.weui-dialog__ft .dialog__btn_confirm').removeClass("opacity6");
+    })
+    // 关键词分类 - 确定按钮点击事件
+    $('.classify-edit-pop .dialog__btn_confirm').on('click', function() {
+        classify_name = $('input.classify-keyword').val();
+        // 去空格
+        classify_name = classify_name.trim();
+        if (classify_name.length === 0) {
+            return
+        }
+        //分类名称是否已存在
+        if($.inArray(classify_name, classify_arr)>-1){
+            weui.toast('此分类名称已存在', {
                 duration: 2000,
                 className: 'custom-toast',
                 callback: function () { console.log('close') }
             });
-        }else{
-            $this.parent().siblings().find('.key').text(keyWord)
-            $this.parent().hide().siblings().show()
-            $('.addKeyWord').show()
+            return
+        }
+		if(classify_name.length > 20){
+			classify_name = classify_name.substring(0,20);
+		}
+        $(this).removeClass("opacity6");
+        $('.classify-r .classify-detail').text(classify_name);
+        // 关闭弹框后要重置input内容
+        $('.classify-edit-pop').hide();
+        $('input.classify-keyword').val('');
+        if($(".showKeyWord li").length>0){
+            saveData('SC')
+            a_items[classify_index]["s_item"] = classify_name;
         }
     })
 
-    //去空格方法
-    String.prototype.trim = function () {
-        return this.replace(/(^\s*)|(\s*$)/g, ' ');
-    }
-    //防止键盘把当前输入框给挡住
-    $('input[type="text"],textarea').focus(function () {
-        var target = this;
-        setTimeout(function(){
-            target.scrollIntoViewIfNeeded();
-        },400);
-    });
-})
-
+    // 关键词分类 - 取消按钮点击事件
+    $('.classify-edit-pop .dialog__btn_cancel').on('click', function() {
+        $('.classify-edit-pop').hide()
+        $('input.classify-keyword').val('')
+    })
+}

+ 53 - 20
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/personal_info.js

@@ -27,10 +27,10 @@
 }
 /* 验证多项 */
 // 验证多少项,多少个false
-var flags = [false, false, false, false];
+var flags = [false, false, false, false, false];
 function checkAll() {
     for (f in flags) {
-        console.log(f)
+        if (f==2) continue
         if (!flags[f]) {
             isDisabled(false);
             return;
@@ -39,55 +39,88 @@ function checkAll() {
     }
 }
 // 验证姓名
-function check_name(obj) {
-    console.log(obj.val())
+function check_name(obj,toast) {
     let name = obj.val();
     var namereg = /^[\u4E00-\u9FA5A-Za-z\s]+(·[\u4E00-\u9FA5A-Za-z]+)*$/;//中英文或加.的少数民族名字
     if(!namereg.test(name)){
         flags[0] = false
-        weui.toast('姓名格式不正确',{
-            duration: 2000,
-            className: 'custom-toast',
-        }) 
+        if(toast){
+        	weui.toast('姓名格式不正确',{
+	            duration: 2000,
+	            className: 'custom-toast',
+        	})
+        }
     }else{
         flags[0] = true
     }
     checkAll()
 }
 // 验证手机号
-function check_tel(obj,btn) {
+function check_tel(obj,btn,toast) {
     let phone = obj.val();
     if(!(/^1[3456789]\d{9}$/.test(phone))){
         flags[1] = false
         // return false; 
-        weui.toast('手机号格式不正确',{
-            duration: 2000,
-            className: 'custom-toast',
-        })
+        if(toast){
+        	weui.toast('手机号格式不正确',{
+	            duration: 2000,
+	            className: 'custom-toast',
+        	})
+        }
+        btn.css('color','#888') 
     }else{
         flags[1] = true
-        btn.css('color','#2CB7CA') 
+        if(flags[2]){
+	        btn.css('color','#2CB7CA') 
+        }
     }
     checkAll()
 }
-// 验证验证码
-function check_code(obj) {
+// 验证图形验证码
+function check_imgcode(obj,btn,toast) {
     let code = obj.val();
-    if(code == ''){
+    if(code.length != 4){
         flags[2] = false
-    
+        if(toast){
+        	weui.toast('图形验证码错误',{
+	            duration: 2000,
+	            className: 'custom-toast',
+        	})
+        }
+        btn.css('color','#888') 
     }else{
         flags[2] = true
+        if(flags[1]){
+	        btn.css('color','#2CB7CA') 
+        }
     }
     checkAll()
 }
+
+// 验证图手机验证码
+function check_phonecode(obj,toast) {
+    let code = obj.val();
+    if(code.length != 6){
+        flags[3] = false
+        if(toast){
+        	weui.toast('手机验证码错误',{
+	            duration: 2000,
+	            className: 'custom-toast',
+        	})
+        }
+    }else{
+        flags[3] = true
+    }
+    checkAll()
+}
+
 // 验证公司名称
 function check_company(obj) {
     let company = obj.val();
     if(company == ''){
-        flags[3] = false
+        flags[4] = false
     }else{
-        flags[3] = true
+        flags[4] = true
     }
     checkAll()
 }

+ 114 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/share.js

@@ -0,0 +1,114 @@
+function initShare(signature){
+	var myloc = window.location.host;
+	var ors = "";
+	if("https:"==document.location.protocol){
+		ors = "s"
+	}
+	myloc="http"+ors+"://"+myloc;
+	if(typeof(signature) != "undefined" && signature != null && signature.length == 4){
+		wx.config({
+		    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+		    appId: signature[0], // 必填,公众号的唯一标识
+		    timestamp:signature[1], // 必填,生成签名的时间戳
+		    nonceStr: signature[2], // 必填,生成签名的随机串
+		    signature: signature[3],// 必填,签名,见附录1
+		    jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage','onMenuShareQQ','onMenuShareQZone','closeWindow'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
+		});
+		var randShareTitle = getShareText();
+
+		var link = myloc+"/swordfish/about";
+
+		var otherLink = link;
+		var desc = "全国招标信息免费看,不遮挡";
+		var otherDesc = desc;
+		var url = "/wxswordfish/images/small_log_new.jpg";
+		var encryptid = "";
+		var subhref = window.location.href;
+		
+		wx.ready(function () {
+			var triggerFlag = false;
+	        wx.onMenuShareTimeline({
+			    title: randShareTitle, // 分享标题
+			    link: otherLink, // 分享链接
+			    imgUrl: myloc+'/wxswordfish/images/small_log_new.jpg', // 分享图标
+				trigger: function (res) {
+					try{
+						triggerFlag = true;
+						afterShareTimeline("trigger");
+					}catch(e){}
+                },
+			    success: function () {
+					if(!triggerFlag){
+						try{
+							afterShareTimeline("success");
+						}catch(e){}
+					}
+			       //alert('分享成功');
+			    },
+			    cancel: function () {
+					if(!triggerFlag){
+						try{
+							afterShareTimeline("cancel");
+						}catch(e){}
+					}
+			       //alert('分享失败,或用户取消了');
+			    }
+			});
+			wx.onMenuShareAppMessage({
+			    title: randShareTitle, // 分享标题
+			    desc: desc, // 分享描述
+			    link: link, // 分享链接
+			    imgUrl: myloc+url, // 分享图标
+			    type: 'link', // 分享类型,music、video或link,不填默认为link'
+			    dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
+			    success: function () {
+			        //alert('分享成功');
+			    },
+			    cancel: function () {
+					//alert('分享失败,或用户取消了');
+			    }
+			});
+			wx.onMenuShareQQ({
+				title: randShareTitle, // 分享标题
+				desc: otherDesc, // 分享描述
+				link: otherLink, // 分享链接
+				imgUrl: myloc+url, // 分享图标
+				success: function () {
+					// 用户确认分享后执行的回调函数
+				},
+				cancel: function () {
+					// 用户取消分享后执行的回调函数
+				}
+			});
+			wx.onMenuShareQZone({
+			    title: randShareTitle, // 分享标题
+				desc: otherDesc, // 分享描述
+				link: otherLink, // 分享链接
+				imgUrl: myloc+url, // 分享图标
+				success: function () {
+					// 用户确认分享后执行的回调函数
+				},
+				cancel: function () {
+					// 用户取消分享后执行的回调函数
+				}
+			});
+	    });
+		wx.error(function(res){
+		    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
+			//alert("error auth");
+		});
+	}
+}
+//随机获取分享文案
+var ShareText = [
+	"我和投标伙伴都在用剑鱼标讯找项目,推荐你也试试",
+	"我用剑鱼标讯免费查到超多招标信息,推荐你也试试",
+	"我收到了剑鱼标讯免费推送的招标信息,推荐你也试试",
+	"发现了一个投标神器,推荐你也试试"
+]
+function getShareText(){
+	var Range = ShareText.length-1;
+	var Rand = Math.random();  
+	var num = Math.round(Rand * Range);
+	return ShareText[num];
+}

File diff suppressed because it is too large
+ 2 - 2
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/weui.min.js


+ 140 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/additionWord.html

@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport"
+        content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>附加词</title>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/addition_exclusive_word.css?v={{Msg "seo" "version"}}">
+</head>
+
+<body>
+
+    <div class="addition-word">
+        <section class="content">
+            <p class="title">示例:开发(附加词)</p>
+            <!-- 添加附加词 -->
+            <div class="enter addkeyWord" style="display: none;">
+                <input type="text" class="enterOne" maxlength="20" placeholder="请输入附加词" />
+                <div class="btn">
+                    <button disabled>确认</button>
+                </div>
+            </div>
+
+            <!-- 添加附加词显示列表 -->
+            <div class="showKeyWord" style="display: none;">
+                <ul>
+                    
+                </ul>
+            </div>
+            <div class="problem">
+                疑问解答 <i class="iconfont icon-wenhao"></i>
+            </div> 
+        </section>
+        <div class="addKeyWord">
+            <i class="iconfont icon-tianjia"></i>
+        </div>
+        <!-- 疑难问题弹窗 -->
+        <div class="problemPop">
+            <div class="problemPopContent">
+                <h3>疑问解答</h3>
+                <ul>
+                    <li>
+                        <p>例:某公司主营业务为软件系统开发</p>
+                    </li>
+                    <li>
+                        <h4>关键词:</h4>
+                        <p>目标信息中的关键性词语,如“软件系统”</p>
+                    </li>
+                    <li>
+                        <h4>附加词:</h4>
+                        <p>与关键词形成一体/组合,便于查找准确信息,如“开发”</p>
+                    </li>
+                    <li>
+                        <h4>排除词:</h4>
+                        <p>与关键词互斥,可排除一部分非目标信息,如“运维”</p>
+                    </li>
+                </ul>
+                <button class="knowBtn">我知道了</button>
+            </div>
+        </div>
+    </div>
+    <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js?v=1412"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/additionWord.js"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
+        var addition_kws = []//附加词
+        var _addkws = "";
+        var _addindex = -1;
+		var addkws_arr = {}
+        $(function() {
+            if(sessionStorage&&sessionStorage.addition_kws!=undefined){
+                addition_kws = JSON.parse(sessionStorage.addition_kws);
+                appendHtml(addition_kws);
+            }else{
+                $(".enter.addkeyWord").show();
+                $(".showKeyWord").hide();
+            }
+        })
+        //
+        function appendHtml(data){
+            if (data.length>0){
+                var additionHtml = '';
+                for (var i = data.length - 1; i >= 0; i--) {
+					addkws_arr[data[i]]=i
+                    additionHtml +='<li>'
+                                    +'<div class="one">'
+                                    +'<div>'
+                                    +'<span>'
+                                    +'<p class="key">'+data[i]+'</p>'
+                                    +'</span>'
+                                    +'</div>'
+                                    +'<button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>'
+                                    +'</div>'
+                                    +'<div class="modify">'
+                                    +'<textarea  name=""  rows="1"  placeholder="" maxlength="20" >'+data[i]+'</textarea>'
+                                    +'<button class="deleteKey">删除</button>'
+                                    +'<button class="ascertainKey">确定</button>'
+                                    +'</div>'
+                                    +'</li>'
+                }
+                $(".showKeyWord ul").html(additionHtml);
+                $(".enter.addkeyWord").hide();
+                $(".showKeyWord").show();
+            }else{
+                $(".enter.addkeyWord").show();
+                $(".showKeyWord").hide();
+            }
+        }
+        //
+        function saveSession(t){
+            if (_addkws!=""){
+                if(t!="D"){
+                    if(_addindex>=0){
+						addkws_arr[_addkws] = _addindex;
+                        addition_kws[_addindex] = _addkws
+                    }else{
+						addkws_arr[_addkws] = addition_kws.length;
+                        addition_kws.push(_addkws)
+                    }
+                }else{
+					delete addkws_arr[_addkws];
+                    addition_kws.splice(_addindex,1)
+                }
+                sessionStorage.addition_kws = JSON.stringify(addition_kws)
+           }
+        }
+    </script>
+	{{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 139 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/exclusiveWord.html

@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport"
+        content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>排除词</title>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe./js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/addition_exclusive_word.css?v={{Msg "seo" "version"}}">
+</head>
+
+<body>
+
+    <div class="exclusive-word">
+        <section class="content">
+            <p class="title">示例:运维(排除词)</p>
+            <!-- 添加排除词 -->
+            <div class="enter addkeyWord">
+                <input type="text" class="enterOne" maxlength="20" placeholder="请输入排除词" />
+                <div class="btn">
+                    <button disabled>确认</button>
+                </div>
+            </div>
+            <!-- 添加排除词显示列表 -->
+            <div class="showKeyWord">
+                <ul>
+                    
+                </ul>
+            </div>
+            <div class="problem">
+                疑问解答 <i class="iconfont icon-wenhao"></i>
+            </div>
+        </section>
+        <div class="addKeyWord">
+            <i class="iconfont icon-tianjia"></i>
+        </div>
+        <!-- 疑难问题弹窗 -->
+        <div class="problemPop">
+            <div class="problemPopContent">
+                <h3>疑问解答</h3>
+                <ul>
+                    <li>
+                        <p>例:某公司主营业务为软件系统开发</p>
+                    </li>
+                    <li>
+                        <h4>关键词:</h4>
+                        <p>目标信息中的关键性词语,如“软件系统”</p>
+                    </li>
+                    <li>
+                        <h4>附加词:</h4>
+                        <p>与关键词形成一体/组合,便于查找准确信息,如“开发”</p>
+                    </li>
+                    <li>
+                        <h4>排除词:</h4>
+                        <p>与关键词互斥,可排除一部分非目标信息,如“运维”</p>
+                    </li>
+                </ul>
+                <button class="knowBtn">我知道了</button>
+            </div>
+        </div>
+    </div>
+    <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/exclusiveWord.js?v={{Msg "seo" "version"}}"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
+        var not_kws = []//排除词
+        var _notkws = "";
+        var _notindex = -1;
+		var notkws_arr = {}
+        $(function() {
+            if(sessionStorage&&sessionStorage.not_kws!=undefined){
+                not_kws = JSON.parse(sessionStorage.not_kws);
+                appendHtml(not_kws);
+            }else{
+                $(".enter.addkeyWord").show();
+                $(".showKeyWord").hide();
+            }
+        })
+        //
+        function appendHtml(data){
+            if (data.length>0){
+                var additionHtml = '';
+                for (var i = data.length - 1; i >= 0; i--) {
+					notkws_arr[data[i]]=i
+                    additionHtml +='<li>'
+                                    +'<div class="one">'
+                                    +'<div>'
+                                    +'<span>'
+                                    +'<p class="key">'+data[i]+'</p>'
+                                    +'</span>'
+                                    +'</div>'
+                                    +'<button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>'
+                                    +'</div>'
+                                    +'<div class="modify">'
+                                    +'<textarea  name=""  rows="1"  placeholder="" maxlength="20" >'+data[i]+'</textarea>'
+                                    +'<button class="deleteKey">删除</button>'
+                                    +'<button class="ascertainKey">确定</button>'
+                                    +'</div>'
+                                    +'</li>'
+                }
+                $(".showKeyWord ul").html(additionHtml);
+                $(".enter.addkeyWord").hide();
+                $(".showKeyWord").show();
+            }else{
+                $(".enter.addkeyWord").show();
+                $(".showKeyWord").hide();
+            }
+        }
+        //
+        function saveSession(t){
+            if (_notkws!=""){
+                if(t!="D"){
+                    if(_notindex>0){
+						notkws_arr[_notkws] = _notindex;
+                        not_kws[_notindex] = _notkws
+                    }else{
+						notkws_arr[_notkws] = not_kws.length;
+                        not_kws.push(_notkws)
+                    }
+                }else{
+					delete notkws_arr[_notkws];
+                    not_kws.splice(_notindex,1)
+                }
+                sessionStorage.not_kws = JSON.stringify(not_kws)
+           }
+        }
+    </script>
+	{{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 825 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/keyWord.html

@@ -0,0 +1,825 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport"
+        content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>关键词</title>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/keyWord.css?v={{Msg "seo" "version"}}">
+    <style>
+        .ios-user-select {
+            -webkit-user-select: text;
+        }
+        .opacity6{
+            opacity: 0.6;
+        }
+        .keysexplain{
+            position: fixed;
+		    height: .8rem;
+		    background: rgba(245,244,249,1);
+		    width: 100%;
+            font-size: .3rem;
+            padding-top: .18rem;
+            padding-left: .3rem;
+            color: #888;
+        }
+        .classifyKeysShow{
+            font-size: .25rem;
+            color: #686868;
+            margin-top: 0.1rem;
+            text-overflow: ellipsis;
+            overflow: hidden;
+            display: -webkit-box;
+            -webkit-line-clamp: 1;
+            -webkit-box-orient: vertical;
+        }
+        .addClassify{
+            height: 1rem;
+            text-align: center;
+            background: #2CB7CA;
+            width: 100%;
+            line-height: 1rem;
+            color:#FFFFFF;
+            font-size: .32rem;
+			position:fixed;
+			bottom:0px;
+        }
+
+        .classify-show-pop .weui-dialog .weui-dialog__hd {
+          padding: 0;
+          text-align: center;
+          font-size: .34rem;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__hd {
+          padding-left: .3rem;
+          height: .88rem;
+          line-height: .88rem;
+          background-color: #F4F4F9;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__bd {
+          padding: .38rem .1rem;
+          text-align: center;
+          font-size: .32rem;
+          color: #1d1d1d;
+          line-height: .6rem;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__bd .classify-keyword {
+          padding: 0 .17rem;
+          height: 0.8rem;
+          width: 100%;
+          font-size: .32rem;
+          border: 1px solid #CECECE;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__ft {
+          margin-top: .1rem;
+          margin-bottom: .3rem;
+          justify-content: space-around;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__ft .dialog__btn {
+          display: inline-block;
+          width: 1.72rem;
+          height: .72rem;
+          line-height: .72rem;
+          color: #fff;
+          font-size: .32rem;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__ft .dialog__btn_confirm {
+            background-color: #2CB7CA;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__ft .dialog__btn_cancel {
+            background-color: #BFBFC3;
+      }
+
+      .classify-show-pop .weui-dialog .weui-dialog__ft:after {
+            border: none;
+      }
+      .all-classify-column{
+            position: relative;
+            padding-bottom: 1rem;
+      }
+    </style>
+</head>
+
+<body>
+    <div class="keyWord">
+        <section class="add-keyword-container" style="display: none;">
+            <div>
+                <div class="classify">
+                    <span class="classify-l">关键词分类</span>
+                    <span class="classify-r">
+                        <span class="classify-detail">未分类</span>
+                        <span class="iconfont icon-arrow"></span>
+                    </span>
+                </div>
+                <p class="classify-tips">
+                    关键词分类便于对同类别关键词做整合管理
+                </p>
+            </div>
+            <section class="content">
+                <!-- 添加关键词 -->
+                <div class="enter addkeyWord" style="display: none;">
+                    <input type="text" class="enterOne" placeholder="请输入关键词" maxlength="20" />
+                    <!-- <textarea style="resize:none;" rows="1"  class="enterOne" name="" id=""  placeholder="请输入关键词" maxlength="100"></textarea> -->
+                    <div class="btnChoose" style="display:none;">
+                        <button onclick="toappendkey(this)">添加 附加词</button>
+                        <button onclick="tonotkey(this)">添加 排除词</button>
+                    </div>
+                    <div class="btn">
+                        <button disabled>确认</button>
+                    </div>
+                </div>
+
+                <!-- 添加关键词显示列表 -->
+                <div class="showKeyWord">
+                    <ul>
+                    </ul>
+                </div>
+
+                <div class="problem">
+                    疑问解答 <i class="iconfont icon-wenhao"></i>
+                </div>
+            </section>
+
+            <div class="addKeyWord addNewKeyword" style="display: none;">
+                <i class="iconfont icon-tianjia"></i>
+                <p> 关键词添加数量:<em style="color: #2cb7ca;" class="kws_count">0 </em>/ 300</p>
+            </div>
+        </section>
+        <section class="all-classify-column" style="display: none;">
+            <div class="keysexplain"><p> 关键词添加数量:<em style="color: #2cb7ca;" class="kws_count">0 </em> / 300</p></div>
+            <ul class="classify-list">
+                
+            </ul>
+
+            <div class="addKeyWord addNewKeyword" style="display: none;"><div class="addClassify">新增关键词分类</div></div>
+        </section>
+
+        <!-- 疑难问题弹窗 -->
+        <div class="problemPop dialog-container">
+            <div class="problemPopContent">
+                <h3>疑问解答</h3>
+                <ul>
+                    <li>
+                        <p>例:某公司主营业务为软件系统开发</p>
+                    </li>
+                    <li>
+                        <h4>关键词:</h4>
+                        <p>目标信息中的关键性词语,如“软件系统”</p>
+                    </li>
+                    <li>
+                        <h4>附加词:</h4>
+                        <p>与关键词形成一体/组合,便于查找准确信息,如“开发”</p>
+                    </li>
+                    <li>
+                        <h4>排除词:</h4>
+                        <p>与关键词互斥,可排除一部分非目标信息,如“运维”</p>
+                    </li>
+                </ul>
+                <button class="knowBtn">我知道了</button>
+            </div>
+        </div>
+        <!-- 关键词分类弹框 -->
+        <div class="classify-edit-pop dialog-container">
+            <!-- <div class="weui-mask weui-animate-fade-in"></div> -->
+            <div class="weui-dialog weui-animate-fade-in">
+                <div class="weui-dialog__hd">
+                    <strong class="weui-dialog__title">关键词分类</strong>
+                </div>
+                <div class="weui-dialog__bd">
+                    <input type="text" class="classify-keyword" maxlength="20" placeholder="输入分类名称">
+                </div>
+                <div class="weui-dialog__ft">
+                    <a href="javascript:;" class="dialog__btn dialog__btn_confirm opacity6">确定</a> 
+                    <a href="javascript:;" class="dialog__btn dialog__btn_cancel">取消</a>
+                </div>
+            </div>
+        </div>
+
+        <!-- 关键词分类说明 -->
+        <div class="classify-show-pop dialog-container">
+            <!-- <div class="weui-mask weui-animate-fade-in"></div> -->
+            <div class="weui-dialog weui-animate-fade-in">
+                <div class="weui-dialog__hd">
+                    <strong class="weui-dialog__title">提示信息</strong>
+                </div>
+                <div class="weui-dialog__bd">
+                    关键词分类有利于关键词做整合管理<br>工作更为高效!
+                </div>
+                <div class="weui-dialog__ft">
+                    <a href="javascript:;" class="dialog__btn dialog__btn_confirm">去设置</a> 
+                    <a href="javascript:;" class="dialog__btn dialog__btn_cancel">取消</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    
+    <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/js/jquery.cookie.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
+        
+        var a_items = [];//全部数据
+        var classify_name = "";//分类名称
+        var classify_index = 0;//分类索引
+        var kws_name = "";//分类关键词内容
+        var kws_index = 0;//分类关键词索引
+        var kws_count = 0;//关键词个数
+        var modifyFlag = false;//附加词 排除词变动
+        var addition_kws = []; //附加词
+        var not_kws = []; //排除词
+        var classify_arr = [];//分类对象
+        var kws_arr = {};//所有关键词对象
+        var kws_tips = 0;
+        // 页面状态
+        var pageState = {
+            //是否第一次设置关键词
+            isFirstSetKeyword: true
+        }
+		//
+		function initSess(){
+			weui.loading();
+	        setTimeout(function(){
+	            weui.loading().hide();
+	            if(window.location.search.indexOf("page=2")>-1){
+					history.replaceState("{id:1}","","/front/vipsubscribe/toSetKeyWordPage")
+	            }else if(history.state){
+	                window.history.go(-1)
+				}
+	        },500)
+		}
+		//
+        $(function(){
+			var isinitpage = false;
+			$(window).bind("pageshow", function(event){
+				if(event.originalEvent.persisted){
+					initpage();
+					isinitpage = true;
+					initSess();
+					reloadFunc();
+				}
+			});
+			if(!isinitpage) {
+				initpage();
+				initSess();
+				reloadFunc();
+			}
+			window.addEventListener('popstate', function(event){
+				if(!isinitpage){
+					if(a_items.length==0){
+		                window.history.go(-1)
+		            }
+		            var loading = weui.loading('', {
+		                className: 'custom-classname'
+		            })
+		            $('.classify-show-pop').hide();
+		            $('.classify-edit-pop').hide();
+		            //重新加载数据
+		            initpage();
+		            // 用定时器模拟请求耗时
+		            setTimeout(function () {
+		                loading.hide(function() {
+		                    console.log('`loading` has been hidden');
+		                })
+		                // 判断是否是第一次(没有关键词进入)
+		                // 隐藏关键词列表section,显示分类列表section
+		                var isClassifyColumnShow = $('.add-keyword-container').is(':hidden')
+		                if (!isClassifyColumnShow) {
+		                    $('.add-keyword-container').hide()
+		                    $('.all-classify-column').show()
+		                }
+		            }, 500)
+				}
+				isinitpage = false
+			})
+            // 关键词分类 - 去设置按钮点击事件
+            $('.classify-show-pop .dialog__btn_confirm').on('click', function() {
+                $('.classify-show-pop').hide();
+                setTimeout(function(){
+                    modalOne();
+                },200)
+            })
+            // 关键词分类 - 取消按钮点击事件
+            $('.classify-show-pop .dialog__btn_cancel').on('click', function() {
+				$('.enterOne').focus();
+                $('.classify-show-pop').hide();
+            })
+        })
+        //获取数据
+        function initpage(){
+            if(sessionStorage&&sessionStorage.kwspage){
+                if(sessionStorage.addition_kws!=undefined){
+                    addition_kws = JSON.parse(sessionStorage.addition_kws);
+                }
+                if(sessionStorage.not_kws!=undefined){
+                    not_kws = JSON.parse(sessionStorage.not_kws);
+                }
+                showKorshowC(sessionStorage.kwspage);
+                a_items = JSON.parse(sessionStorage.a_items)
+                kws_arr = JSON.parse(sessionStorage.kws_arr)
+                classify_name = sessionStorage.classify_name;
+                classify_index = sessionStorage.classify_index;
+                kws_name = sessionStorage.kws_name;
+                kws_index = sessionStorage.kws_index;
+                modifyFlag = true;
+                kws_count = sessionStorage.kws_count;
+                $(".kws_count").text(kws_count);
+                $('.addKeyWord').hide();
+                toSetKws();
+            }else{
+                //获取用户设置信息类型
+                $.post("/subscribepay/afterPay/getUserInfo",{},function(r){
+                    if(r.userData){
+                        var _userData = r.userData;
+                        var _vipData = _userData["o_vipjy"];
+                        modifyFlag = false;
+                        if (_vipData["a_items"]!=undefined&&_vipData["a_items"].length>0){
+                            a_items = _vipData["a_items"]
+                            pageState.isFirstSetKeyword = false;
+                            appendHtml(a_items);
+                        }else{
+                            pageState.isFirstSetKeyword = true;
+                        }
+                        hasWords();
+                    }else{
+                        pageState.isFirstSetKeyword = true;
+                    }
+                    showKorshowC(pageState.isFirstSetKeyword);
+                })
+            }
+        }
+        //强制弹出 提示信息
+        function showMeg(){
+            // 如果是苹果手机,打开时候要设置top
+            var agent = navigator.userAgent.toLowerCase();
+            var dialog = $('.classify-show-pop .weui-dialog')
+            if( /iphone|ipod|ipad|ios/.test(agent) ){
+                dialog.css({ 'top': '30%' })
+            } else {
+                dialog.css({ 'top': '50%' })
+            }
+            $('.classify-show-pop').show()
+        }
+        //关键词和分类列表切换
+        function showKorshowC(state){
+            if (state) {
+                $('.add-keyword-container').show()
+                $('.all-classify-column').hide()
+            } else {
+                $('.add-keyword-container').hide()
+                $('.all-classify-column').show()
+            }
+            $(".addNewKeyword").show();
+        }
+        //分类列表
+        function appendHtml(kwsdata){
+            kws_count = 0;
+            var classifyHtml = '';
+            classify_arr = [];//每次初始化分类对象
+			kws_arr = {};//每次初始化关键词对象
+            for (var i = 0;  i < kwsdata.length; i++) {
+                var s_item = kwsdata[i]["s_item"]
+                if(s_item==""){
+                    s_item = "未分类"
+                }
+                classify_arr.push(s_item);
+                var a_key = kwsdata[i]["a_key"]
+                kws_count += a_key.length;
+                var keystr = '';
+                for(var j=0;j<a_key.length;j++){
+                    if(keystr!=""){
+                        keystr += "、"
+                    }
+                    keystr += a_key[j]["key"].join('、');
+					kws_arr[a_key[j]["key"].join(' ')]=j+"-"+i
+                } 
+                classifyHtml +='<li class="classify-item">'
+                            +'<div><span class="classify-item-l">'+s_item+'</span>'
+                            +'<span class="classify-item-r">'
+                            +'<span class="classify-item-detail">关键词'+a_key.length+'个</span>'
+                            +'<span class="iconfont icon-arrow"></span>'
+                            +'</span></div>'
+                            +'<div class="classifyKeysShow">'+keystr+'</div>'
+                            +'</li>'
+
+            }
+            if(classifyHtml!=""){
+                $(".classify-list").html(classifyHtml);
+            }
+            $(".kws_count").text(kws_count);
+        }
+        //是否有关键词
+        function hasWords() {
+            var showKeyWordLength = $(".showKeyWord ul").find('li').length;
+            if (showKeyWordLength === 0) {
+                $(".content .addkeyWord").show();
+            } else {
+                $(".content .addkeyWord").hide();
+            }
+        }
+        //修改关键词内容
+        function toSetKws(){
+            //分类列表进入
+            if(kws_index==-1){
+                var edhtml = '<input type="text" class="enterOne" placeholder="请输入关键词" maxlength="20">'
+                            +'<div class="btnChoose">'
+                if(addition_kws.length>0){
+                    edhtml +='<button onclick="toappendkey(this)">编辑 附加词<i>('+addition_kws.length+')</i></button>'
+                }else{
+                    edhtml +='<button onclick="toappendkey(this)">添加 附加词</button>'
+                }
+                if(not_kws.length>0){
+                    edhtml +='<button onclick="tonotkey(this)">编辑 排除词<i>('+not_kws.length+')</i></button>'
+                }else{
+                    edhtml +='<button onclick="tonotkey(this)">添加 排除词</button>'
+                }
+                edhtml +='</div>'
+                        +'<div class="btn">'
+                        +'<button style="opacity: 1;">确认</button>'
+                        +'</div>'
+                $(".enter.addkeyWord").html(edhtml);
+                setTimeout(function(){
+                    $(".enter.addkeyWord").find("input").val(kws_name)
+                    $(".enter.addkeyWord").show();
+                },200)
+            }
+            if(classify_name==""){
+                $(".classify-detail").text("未分类");
+            }else{
+                $(".classify-detail").text(classify_name);
+            }
+            var kwsHtml = '';
+            if( a_items[classify_index]!=undefined){
+                var _keyArr = a_items[classify_index]["a_key"];
+                //未分类 关键词强制提醒标识
+                kws_tips = a_items[classify_index]["i_tips"];
+                if(kws_tips==undefined){
+                    kws_tips = 0;
+                }
+				if (kws_tips==0&&classify_name.indexOf("未分类")>-1&&window.location.search.indexOf("page=2")<0){
+	                //第一次进来分类提示
+	                showMeg();
+					var param = {};
+                    param.classify_index = classify_index;
+                    param.kws_tips = 1;
+                    $.post("/subscribepay/afterPay/updateUserTips",param,function(r){
+                        if(r.flag){
+                            kws_tips = param.kws_tips;
+                            $(".classify").attr("tips",kws_tips);
+                        }
+                    })
+				}
+                for (var i = _keyArr.length - 1; i >= 0; i--) {
+                    var ak_showClass = 'hide';//是否显示附加词个数
+                    var nk_showClass = 'hide';//是否显示排除词个数
+                    var ak_remark = '添加';
+                    var nk_remark = '添加';
+                    var appendkeylth = 0;
+                    var notkeylth = 0;
+                    kwsHtml +='<li>'
+                    if(modifyFlag&&i==kws_index){
+                        kwsHtml +='<div class="one" style="display:none;">'
+                        _keyArr[i]["appendkey"] = addition_kws;
+                        _keyArr[i]["notkey"] = not_kws;
+                    }else{
+                        kwsHtml +='<div class="one" style="">'
+                    }
+                    kwsHtml +='<div>'
+                                +'<span><strong> 关键词:</strong>'
+                                +'<p class="key">'+_keyArr[i]["key"].join(" ")+'</p></span>'
+                    if (_keyArr[i]["appendkey"]!=undefined&&_keyArr[i]["appendkey"].length>0){
+                        ak_showClass = "";
+                        ak_remark = '编辑';
+                        appendkeylth = _keyArr[i]["appendkey"].length;
+                        kwsHtml +='<span>'
+                                    +'<strong> 附加词:</strong>'
+                                    +'<p class="addition">'+_keyArr[i]["appendkey"].join(" ")+'</p>'
+                                    +'</span>'
+                    }
+                    if (_keyArr[i]["notkey"]!=undefined&&_keyArr[i]["notkey"].length>0){
+                        nk_showClass = "";
+                        nk_remark = '编辑';
+                        notkeylth = _keyArr[i]["notkey"].length;
+                        kwsHtml +='<span>'
+                                    +'<strong> 排除词:</strong>'
+                                    +'<p class="notkey">'+_keyArr[i]["notkey"].join(" ")+'</p>'
+                                    +'</span>'
+                    }
+                    kwsHtml +='</div>'
+                                +'<button class="editKeyWord" dataIndex="'+i+'"><i class="iconfont icon-xiugai"></i> 修改</button>'
+                                +'</div>'
+                     
+                    if(modifyFlag&&i==kws_index){
+                        kwsHtml +='<div class="modify" style="display:block;">'
+                        if(addition_kws.length>0){
+                            appendkeylth = addition_kws.length;
+                        }
+                        if(not_kws.length>0){
+                            notkeylth = not_kws.length;
+                        }
+                    }else{
+                        kwsHtml +='<div class="modify" style="display: none;">'
+                    }
+					var p = kws_arr[_keyArr[i]["key"].join(" ")].split("-")[0]
+                    kwsHtml +='<textarea name="" rows="1" placeholder="" maxlength="20">'+_keyArr[i]["key"].join(" ")+'</textarea>'
+                                +'<button class="addAdjunctWord" onclick="toappendkey(this)">'+ak_remark+' 附加词 <i class="appendkey '+ak_showClass+'">('+appendkeylth+')</i></button>'
+                                +'<button class="addExclusion" onclick="tonotkey(this)">'+nk_remark+' 排除词 <i class="notkey '+nk_showClass+'">('+notkeylth+')</i></button>'
+                                +'<button class="deleteKey">删除</button>'
+                                +'<button class="ascertainKey" dataIndex="'+p+'" onclick="saveK(this)">确定</button>'
+                                +'</div>'
+                                +'</li>'
+                }
+                $(".showKeyWord ul").html(kwsHtml);
+            }
+            hasWords();
+            // 发送请求刷新数据,在ajax回调中执行
+            $('.add-keyword-container').show();
+            $('.all-classify-column').hide();
+            clearSesstion();
+        }
+        //跳转附加词
+        function toappendkey(th){
+			history.replaceState("","","/front/vipsubscribe/toSetKeyWordPage?page=242")
+            if(!$('.enter.addkeyWord').is(':hidden')){
+                if($('.addkeyWord input.enterOne').val()==""){
+                    return
+                }
+                kws_index = -1
+                kws_name = $('.addkeyWord input.enterOne').val();
+            }else{
+               if($(th).parent(".modify").find("textarea").val()==""){
+                 return
+               }
+                kws_name = $(th).parent(".modify").find("textarea").val();
+            }
+            setSesstion();
+            window.location.href="/front/vipsubscribe/toSetadditionPage";
+        }
+        //
+        function tonotkey(th){
+			history.replaceState("","","/front/vipsubscribe/toSetKeyWordPage?page=242")
+            if(!$('.enter.addkeyWord').is(':hidden')){
+                if($('.addkeyWord input.enterOne').val()==""){
+                    return
+                }
+                kws_index = -1
+                kws_name = $('.addkeyWord input.enterOne').val();
+            }else{
+               if($(th).parent(".modify").find("textarea").val()==""){
+                 return
+               }
+                kws_name = $(th).parent(".modify").find("textarea").val();
+            }
+            setSesstion();
+            window.location.href='/front/vipsubscribe/toSetexclusivePage';
+        }
+        //保存缓存
+        function setSesstion(){
+            sessionStorage.kwspage = true;//关键词页面标识
+            sessionStorage.kws_name = kws_name;//当前关键词
+            sessionStorage.classify_name = classify_name;//当前分类
+            sessionStorage.kws_index = kws_index;//当前关键词索引
+            sessionStorage.classify_index = classify_index;//当前分类索引
+            sessionStorage.a_items = JSON.stringify(a_items);//当前数据
+            sessionStorage.addition_kws =  JSON.stringify(addition_kws);//当前编辑关键词附加词
+            sessionStorage.not_kws =  JSON.stringify(not_kws);//当前编辑关键词排除词
+            sessionStorage.kws_arr =  JSON.stringify(kws_arr);//当前所有关键词排
+
+            sessionStorage.kws_count=kws_count;//关键词个数
+        }
+        //
+        function clearSesstion(){
+            if(!sessionStorage){
+                return;
+            }
+            sessionStorage.removeItem("kwspage");
+            sessionStorage.removeItem("kws_name");
+            sessionStorage.removeItem("classify_name");
+            sessionStorage.removeItem("kws_index");
+            sessionStorage.removeItem("classify_index");
+            sessionStorage.removeItem("a_items");
+            sessionStorage.removeItem("addition_kws");
+            sessionStorage.removeItem("not_kws");
+            sessionStorage.removeItem("kws_count");
+            sessionStorage.removeItem("kws_arr");
+        }
+        //保存关键词
+        function saveK(th){
+            var $this = $(th);
+			var yuan_index = $this.attr("dataIndex")
+            kws_name = $(th).siblings('textarea').val();
+			console.log(kws_arr[kws_name])
+			if(kws_arr[kws_name]!=undefined&&kws_arr[kws_name]!=(yuan_index+"-"+classify_index)){
+                weui.toast('您设置的关键词已存在,请调整后再添加。', {
+                    duration: 2000,
+                    className: 'custom-toast',
+                    callback: function () { console.log('close') }
+                });
+				return
+			}
+            if(kws_name.length > 20){
+                weui.toast('关键词不能超过20字', {
+                    duration: 2000,
+                    className: 'custom-toast',
+                    callback: function () { console.log('close') }
+                });
+            }else{
+                if(saveData('SK')){
+					$this.attr("dataindex",kws_index);
+                    $this.parent().siblings().find('.key').text(kws_name)
+                    $this.parent().hide().siblings().show()
+                    $('.addKeyWord').show();
+                    //
+                    doSessionData();
+		            //把kws_name,kws_index,addition_kws,not_kws初始化
+		            kws_index = 0;
+		            kws_name = "";
+		            addition_kws = [];
+		            not_kws = [];
+                }else{
+		            weui.toast('保存出错,稍后再试', {
+		                duration: 2000,
+		                className: 'custom-toast',
+		                callback: function () { console.log('close') }
+		            });
+                }
+            }
+        }
+        //保存数据
+        function saveData(actionType){
+            var _flag = false;
+            var kwscount = $(".content .showKeyWord li").length;
+            var param = {};
+            param.pageType = "keyWords";
+            param.classify_index = classify_index;
+            param.classify_name = classify_name;
+            param.kws_index = kws_index;
+            param.kws_name = kws_name;
+            param.actionType = actionType;
+            param.kwscount = kwscount;
+            param.addition_kws = addition_kws;
+            param.not_kws = not_kws;
+            $.ajax({
+                type: "POST",
+                url: "/subscribepay/afterPay/setUserInfo",
+                data: param,
+                dataType: "json",
+                async: false,
+                traditional: true,
+                success: function(r){
+                    if(r.flag){
+                        console.log("保存成功")
+                        _flag = r.flag;
+                    }
+                }
+            });
+            return _flag
+        }
+        //处理缓存数据
+        function doSessionData(t){
+            //删除关键词
+            if(t!="DK"){
+				kws_arr[kws_name] = kws_index+"-"+classify_index
+                if(kws_index == $(".showKeyWord li").length){
+                    //新加
+                    var karr = {"key":kws_name.split(" "),"appendkey":addition_kws,"notkey":not_kws}
+                    var keyM = [];
+                    keyM.push(karr);
+                    var classifyArr = {"s_item":classify_name,"a_key":keyM}
+                    if (kws_index==0){
+                        a_items.push(classifyArr);
+                    }else{
+                        a_items[classify_index]["a_key"].push(karr);
+                    }
+                }else{
+                    a_items[classify_index]["a_key"][kws_index]["key"]= kws_name.split(' ')
+                    a_items[classify_index]["a_key"][kws_index]["appendkey"]= addition_kws
+                    a_items[classify_index]["a_key"][kws_index]["notkey"]= not_kws
+                }
+            }else{
+				delete kws_arr[kws_name];
+                if (a_items[classify_index]["a_key"].length==1){
+                    a_items.splice(classify_index,1);
+                }else{
+                    a_items[classify_index]["a_key"].splice(kws_index,1);
+                }
+            }
+        }
+		//
+		function modalOne(){
+		    // 如果是苹果手机,打开时候要设置top
+		    var agent = navigator.userAgent.toLowerCase();
+		    var dialog = $('.classify-edit-pop .weui-dialog')
+		    if( /iphone|ipod|ipad|ios/.test(agent) ){
+		        dialog.css({ 'top': '30%' })
+		    } else {
+		        dialog.css({ 'top': '50%' })
+		    }
+		    $('.classify-edit-pop').show()
+		    var currentClassifyName = $(".classify").find('.classify-detail').text()
+		    if(currentClassifyName.indexOf("未分类")>-1){
+		        currentClassifyName = ""
+		    }
+		    $('input.classify-keyword').val(currentClassifyName).focus()
+		}
+    </script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/keyWord.js?v={{Msg "seo" "version"}}21"></script>
+    <script>
+        // 设置一条空记录,用户第一次进入添加关键词点击确定时候调用
+        function setEmptyHistory() {
+            if (pageState.isFirstSetKeyword) {
+                history.pushState({id:1}, "","")
+                pageState.isFirstSetKeyword = false
+            }
+        }
+        //
+        $(function(){
+            $(".addNewKeyword div").on('click', function () {
+                history.pushState({id:1}, "","");
+                classify_index = $(".classify-list li").length;
+                var noNameIndex = -1;
+                var noName = "未分类"
+                for (var i = classify_arr.length - 1; i >= 0; i--) {
+                    if(classify_arr[i].indexOf("未分类")>-1){
+                       if (noNameIndex < Number(classify_arr[i].split("未分类")[1])){
+                            noNameIndex = Number(classify_arr[i].split("未分类")[1])
+                       }
+                    }
+                }
+                if(noNameIndex!=-1){
+                    noNameIndex = noNameIndex + parseInt(1)
+                    noName = noName + noNameIndex
+                }
+                classify_name = noName;
+                // 还原有数据
+                $('.classify .classify-detail').text(noName);
+                $('.add-keyword-container .showKeyWord ul').html('');
+
+                $('.add-keyword-container').show();
+                $('.all-classify-column').hide();
+
+                // 显示添加关键词的输入框
+                $(".enter.addkeyWord").find(".btnChoose button").eq(0).html('添加 附加词');
+                $(".enter.addkeyWord").find(".btnChoose button").eq(1).html('添加 附加词');
+                $(".enter.addkeyWord").find("input").val("");
+                $(".enter.addkeyWord").show();
+                $(".add-keyword-container .addNewKeyword").hide();
+                setTimeout(function(){
+                    modalOne();
+                },200)
+            })
+            // 通过判断是那个隐藏来判断是添加关键词还是添加新分类
+            $(".addNewKeyword i").on('click', function () {
+                // 如果是在分类列表点击添加(此时关键词列表是隐藏的)
+                // isClassifyColumnShow = true说明是添加新分类
+                var isClassifyColumnShow = $('.add-keyword-container').is(':hidden');
+                if (isClassifyColumnShow) {
+                    history.pushState({}, "","");
+                    classify_index = $(".classify-list li").length;
+                    // 还原有数据
+                    $('.classify .classify-detail').text('未分类');
+                    $('.add-keyword-container .showKeyWord ul').html('');
+                    
+                }
+                $(".add-keyword-container .addNewKeyword").hide();
+                $('.add-keyword-container').show();
+                $('.all-classify-column').hide();
+                
+                // 显示添加关键词的输入框
+                $(".enter.addkeyWord").find(".btnChoose button").eq(0).html('添加 附加词');
+                $(".enter.addkeyWord").find(".btnChoose button").eq(1).html('添加 排除词');
+                $(".enter.addkeyWord").find("input").val("");
+                $(".enter.addkeyWord").show();
+                $('.enterOne').focus();
+            })
+
+            // 点击分类目录的每一项,进入对应列表
+            $('.classify-list').on('click', '.classify-item', function() {
+                // 添加一条空历史记录
+                history.pushState({id:1}, "","");
+                classify_name = $(this).find('.classify-item-l').text();
+                classify_index = $(this).index()
+                //展示此关键词信息
+                toSetKws();
+            })
+        })
+    </script>
+	{{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 346 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/messageType.html

@@ -0,0 +1,346 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>信息类型</title>
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/messageType.css?v={{Msg "seo" "version"}}">    
+	<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/css/common.css?v={{Msg "seo" "version"}}">
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <style type="text/css">
+        body .industry .resetOne{
+            position: fixed;
+            bottom: 0px;
+        }
+        body .industry{
+            margin-bottom: 1rem;
+            height: auto;
+        }
+        body #nijianTip{
+            display: none;
+        }
+    </style>
+</head>
+<body>
+	<div class="result">
+        <p class="result_text line_two">
+          已选择:<span class="result_name"></span>
+        </p>
+    </div>
+    <div class="easypopup" id="nijianTip">
+        <div class="easypopup-alert">
+            <div class="easypopup-content">
+                “拟建项目”是指那些处于前期立项、审批阶段的项目。供应商应在立项阶段掌握项目信息,做到早介入,稳拿单。
+            </div>
+            <div class="easypopup-footer">
+                <span onclick="njTipEasyPopup.hide();">我知道了</span>
+            </div>
+        </div>
+    </div>
+    <div class="industry">
+        <div class="all"><span>全部</span> </div>
+        <div class="list">
+            <ul>
+                <li>
+                    <dl>
+                        <dt class="question" dataValue="拟建">拟建项目</dt><i class="iconfont icon-wenhao "></i>
+                    </dl>
+                </li>
+                <li>
+                    <dl>
+                        <dt dataValue="预告">招标预告</dt>
+                    </dl>
+                </li>
+                <li>
+                    <dl>
+                        <dt>招标公告</dt>
+                        <dd>招标</dd>
+                        <dd>邀标</dd>
+                        <dd>询价</dd>
+                        <dd>竞谈</dd>
+                        <dd>单一</dd>
+                        <dd>竞价</dd>
+                        <dd>变更</dd>
+                        <dd>其它</dd>
+                    </dl>
+                </li>
+                <li>
+                    <dl>
+                        <dt>招标结果</dt>
+                        <dd>中标</dd>
+                        <dd>成交</dd>
+                        <dd>废标</dd>
+                        <dd>流标</dd>
+                    </dl>
+                </li>
+                <li style="border-bottom: 0px;">
+                    <dl>
+                        <dt style="width:2rem;">招标信用信息</dt>
+                        <dd>合同</dd>
+                        <dd>验收</dd>
+                        <dd>违规</dd>
+                    </dl>
+                </li>
+            </ul>
+        </div>
+        
+        <div class="resetOne">
+            <button class="reset">重置</button>
+            <button class="sure">确认</button>
+        </div>
+
+    </div>
+    <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js?v=1412"></script>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+    <script src="{{Msg "seo" "cdn"}}/js/common.js?v={{Msg "seo" "version"}}"></script>
+    <script>      
+		var hasZBGG = ""
+		var hasZBJG = ""
+		var hasZBXYXX = ""
+		var hasStr = ""     
+        function hasActive(){
+            var arr = "";
+			hasZBGG = ""
+			hasZBJG = ""
+			hasZBXYXX = ""
+			hasStr = ""  
+            $(".list ul li dl dd").each(function(index){
+                if($(this).hasClass('active')){
+                    arr = arr + "," + $(this).text()
+					if($(this).prevAll("dt").text()=="招标公告"){
+						if(hasZBGG!=""){
+							hasZBGG+="、"
+						}
+						hasZBGG += $(this).text()
+					}
+					if($(this).prevAll("dt").text()=="招标结果"){
+						if(hasZBJG!=""){
+							hasZBJG+="、"
+						}
+						hasZBJG += $(this).text()
+					}
+					if($(this).prevAll("dt").text()=="招标信用信息"){
+						if(hasZBXYXX!=""){
+							hasZBXYXX+="、"
+						}
+						hasZBXYXX += $(this).text()
+					}
+                }
+            })
+            $(".list ul li dl dt").each(function(index){
+                if($(this).hasClass('active')&&($(this).text()=="招标预告"||$(this).text()=="拟建项目")){
+                    arr = arr + "," + $(this).attr("dataValue")
+					if($(this).text()=="招标预告"||$(this).text()=="拟建项目"){
+						if (hasStr!=""){
+							hasStr += " "
+						}
+						hasStr += $(this).text();
+					}
+                }
+            })
+            return arr.substr(1)
+        }
+        //
+        function inputHtml(infoTypeData){
+            for (var i = infoTypeData.length - 1; i >= 0; i--) {
+                $(".list ul li dl dd").each(function(index){
+                    if($(this).text()==infoTypeData[i]){
+                        $(this).addClass("active");
+                        isDtSelected (this);
+                        isAllSelected ();
+                        $('.all span').removeClass('active');
+                    }
+                })
+                $(".list ul li dl dt").each(function(index){
+                    if($(this).attr("dataValue")==infoTypeData[i]){
+                        $(this).addClass("active");
+                        $(this).parent().find('dd').addClass('active');
+                        isAllSelected ();
+                        $('.all span').removeClass('active');
+                    }
+                })
+            }
+        }
+		//
+		function getChecked(){
+			hasActive();
+			if (hasZBGG!=""||hasZBJG!=""|hasZBXYXX!=""){
+				if(hasStr != ""){
+					hasStr +=" "
+				}
+				if(hasZBGG!=""){
+					hasStr+=" 招标公告 ("+hasZBGG+")"
+				}
+				if(hasZBJG!=""){
+					hasStr+=" 招标结果 ("+hasZBJG+")"
+				}
+				if(hasZBXYXX!=""){
+					hasStr+=" 招标信用信息 ("+hasZBXYXX+")"
+				}
+			}
+			if(hasStr!=""){
+				$(".result_name").text(hasStr);
+			}else{
+				$(".result_name").text("全部");
+			}
+			
+			$(".result").css("visibility","");
+          	$(".industry").css("margin-top",$('.result_text').height()+25);
+			$(".industry").css("visibility","");
+		}
+        //
+        isLockButton (false);
+        // 传入false为锁定确认按钮
+        function isLockButton (flag) {
+            var button = $('.reset').siblings()[0]
+            if (flag) {
+                // true,解锁button
+                $(button).css({"background": "#2cb7ca"}).removeAttr('disabled')
+            } else {
+                // false, 锁定button
+                $(button).css({"background": "#95DBE4"}).attr('disabled', true)
+            }
+        }
+        //
+        var njTipEasyPopup = null;
+        //是否 修改
+        $(function(){
+	        weui.loading();
+			$(".result").css("visibility","hidden");
+			$(".industry").css("visibility","hidden");
+            //获取用户设置信息类型
+            $.post("/subscribepay/afterPay/getUserInfo",{},function(r){
+                if(r.userData){
+                    var _userData = r.userData;
+                    var _vipData = _userData["o_vipjy"];
+                    var a_infotype = _vipData["a_infotype"]
+                    if (a_infotype!=undefined&&a_infotype.split("、").length>0&&a_infotype!=""){
+                        inputHtml(a_infotype.split("、"));
+                        isLockButton (true);
+                    }else{
+                        $('.all span').addClass('active');
+                    }
+                }else{
+                    $('.all span').addClass('active');
+                }
+				getChecked();
+	        	weui.loading().hide();
+            })
+            //
+            $(".sure").on("click",function(){
+                //用户设置信息类型
+                var _infoType =   hasActive();
+                $.post("/subscribepay/afterPay/setUserInfo",{pageType:"infoType",infoTypeArr:_infoType},function(r){
+                     if(r.flag){
+                        console.log("保存成功")
+                        window.history.go(-1);
+                    }
+                 })
+            })
+            //
+            njTipEasyPopup = new EasyPopup("nijianTip");
+            $(".icon-wenhao").on("click",function(){
+                njTipEasyPopup.show();
+            })
+            $('.all span').on('click',function(e){
+                if (!$(this).hasClass('active')) {
+                    isLockButton (true);
+                    $(this).addClass('active')
+                    $('.list ul li dl dt').removeClass('active')
+                    $('.list ul li dl dd').removeClass('active')
+                }
+				getChecked();
+            })
+            $(".list ul li dl dt").on("click", function(){
+                isLockButton (true);
+                if($(this).hasClass('active')){
+                    $(this).parent().find('dd').removeClass('active');
+                    $(this).removeClass('active');
+                }else{
+                    $(this).parent().find('dd').addClass('active');
+                    $(this).addClass('active');
+                    $('.all span').removeClass('active')
+                }
+                isAllSelected ()
+				getChecked();
+            })
+            $(".list ul li dl dd").on('click',function(){
+                isLockButton (true);
+                // 点击切换是否被选中
+                if($(this).hasClass('active')){
+                    $(this).removeClass('active');
+                }else{
+                    $(this).addClass('active');
+                    $('.all span').removeClass('active')
+                }
+
+                // 决定dt是否被选中
+                isDtSelected (this)
+                isAllSelected ()
+				getChecked();
+            })
+
+            $('.reset').on('click',function(){
+                isLockButton (true);
+                $('.all span').addClass('active')
+                $('.list ul li dl dt').removeClass('active')
+                $('.list ul li dl dd').removeClass('active')
+				getChecked();
+            })
+        })
+
+        // 判断dd是否被全部选中  -----> 操作二级标题
+        function isDtSelected (_this) {
+            // 如果全部dd选中 dt就选中,dd有一个没选中 dt就不选中
+            var _f = false
+            $(_this).parent().find('dd').each(function(index,dom){
+                // 如果有一个dd被选中,就设置标记为true
+                if (!$(dom).hasClass('active')) {
+                    _f = true
+                    return false
+                } else {
+                    _f = false
+                }
+            })
+            // 如果循环结束仍为false说明 dd全部被选中
+            if (_f) {
+                $(_this).parent().find('dt').removeClass('active')
+            } else {
+                $(_this).parent().find('dt').addClass('active')
+            }
+        }
+
+
+
+        // 判断dd是否被全部选中  ----> 操作.all全部按钮
+        function isAllSelected () {
+            // 所有dd不选中.all就选中
+            var _f = true
+            $('.list ul li dd').each(function(index,dom){
+                // 如果有所有dd被选中,就设置标记为true
+                // 也就是说,有一个dd没被选中,就设置标记为false
+                if ($(dom).hasClass('active')) {
+                    _f = false
+                } 
+            })
+            $('.list ul li dt').each(function(index,dom){
+                // 如果有所有dd被选中,就设置标记为true
+                // 也就是说,有一个dd没被选中,就设置标记为false
+                if ($(dom).hasClass('active')) {
+                    _f = false
+                } 
+            })
+            // 如果循环结束仍为true说明 dd没有全部都被选中
+            if (_f) {
+                $('.all span').addClass('active')
+                $('.list ul li dl dt').removeClass('active')
+                $('.list ul li dl dd').removeClass('active')
+            }
+        }
+    </script>
+</body>
+</html>

+ 342 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_index.html

@@ -0,0 +1,342 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
+    <meta name="apple-mobile-web-app-status-bar-style" content="#34355A" />
+    <meta name="theme-color" content="#34355A">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>VIP订阅首页</title>
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/weui.min.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/vipsubscribe/css/vip_index.css?v={{Msg "seo" "version"}}2">
+</head>
+
+<body style="visibility:hidden;">
+    <div class="vip_index">
+        <div class="header" style="display: none;">
+            <img class="header_left" src="/vipsubscribe/image/left.png?v={{Msg "seo" "version"}}" alt="" onclick="javascript:history.back(-1);">
+            <h3 class="header_title">VIP订阅</h3>
+            <span class="header_right"></span>
+        </div>
+        <div class="content">
+            <div class="vip_info">
+                <div class="service">
+                    <div class="s_left">
+                        <span class="free7days_pic"></span>
+                        <!-- <div class="already">
+                            <img src="/vipsubscribe/image/v.png?v={{Msg "seo" "version"}}" alt="">
+                            <h4>已开通VIP订阅服务</h4>
+                        </div> -->
+                    </div>
+                </div>
+            </div>
+            <div class="subscribe_info">
+                <div class="s_info_top">
+                    <p class="s_i_item" style="margin-bottom: .1rem;">
+                        <label>已购买区域:</label>
+						<span class="expand-box area expanded">
+                            <span class="_area"></span>
+                            <span class="iconfont icon-arrow"></span>
+                        </span>
+<!--                        <span class="_area"></span>-->
+                    </p>
+                    <p class="s_i_item" style="margin-bottom: .1rem;">
+                        <label>已购买行业:</label>
+                        <span class="expand-box trade expanded">
+                            <span class="_buyerClass"></span>
+                            <span class="iconfont icon-arrow"></span>
+                        </span>
+<!--                        <span class="_buyerClass"></span>-->
+                    </p>
+                    <p class="s_i_item" style="margin-bottom: .1rem;">
+                        <label>订阅周期:</label>
+                        <span class="_cycleCount"></span>
+                    </p>
+                    <p class="s_i_item">
+                        <label>有效日期:</label>
+                        <span class="_activeDate"></span>
+                    </p>
+                    <div class="to_expired" style="display: none;">
+                        <div class="e_circle">即将到期</div>
+                    </div>
+                </div>
+                <!-- 如果用户同时购买全国和全行业 则隐藏修改功能 -->
+                <div class="s_info_bottom">
+                    <span onclick="window.location.href='/front/vipsubscribe/toEditSubPage'">修改</span>
+                    <i class="iconfont icon-arrow"></i>
+                </div>
+            </div>
+            <div class="panel">
+                <div class="media">
+                    <div class="media_list">
+                        <div class="media_left">
+                            <img src="/vipsubscribe/image/keyword.png?v={{Msg "seo" "version"}}" alt="">
+                            <span>关键词</span>
+                        </div>
+                        <a href="/front/vipsubscribe/toSetKeyWordPage" class="media_right" id="keywords">
+                            
+                        </a>
+                    </div>
+                    <div class="media_list">
+                        <div class="media_left">
+                            <img src="/vipsubscribe/image/type.png?v={{Msg "seo" "version"}}" alt="">
+                            <span>信息类型</span>
+                        </div>
+                        <a href="/front/vipsubscribe/toSetInfoTypePage" class="media_right" id="infoType"></a>
+                    </div>
+                    <div class="media_list">
+                        <div class="media_left">
+                            <img src="/vipsubscribe/image/set.png?v={{Msg "seo" "version"}}" alt="">
+                            <span>推送设置</span>
+                        </div>
+                        <a href="/front/vipsubscribe/toSetPushSetPage" class="media_right" id="pushSet"></a>
+                    </div>
+                    <div class="media_list" style="margin-top:.2rem;margin-bottom: .2rem;" id="auto_renew">
+                        <div class="media_left">
+                            <img src="/vipsubscribe/image/frame.png?v={{Msg "seo" "version"}}" alt="">
+                            <span>项目匹配</span>
+							<i class="iconfont icon-wenhao "></i>
+                        </div>
+                        <div class="media_switch">
+                            <div class="weui-cell__ft">
+                                <button class="custom-switch switch"></button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="media_list" style="margin-top:.2rem;margin-bottom: .98rem;display: none;">
+                        <div class="media_left">
+                            <img src="/vipsubscribe/image/data.png?v={{Msg "seo" "version"}}" alt="">
+                            <span>数据报告</span>
+                        </div>
+                        <a href="#" class="media_right">
+                            <span class="weui-badge">2</span>
+                        </a>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="footer">
+            <!-- 续费提醒 -->
+            <div class="renew_toast" style="display: none;">
+                <div>
+                    <i class="icon iconfont" id="close_renew">&#xe61a;</i>
+                    <span>VIP订阅服务还有 <span class="renew_day"></span> 天到期,请及时续费!</span>
+                    <a href="/weixin/pay/renewPayPage">去续费</a>
+                </div>
+            </div>
+            <!-- 试用用户-去购买提醒 -->
+            <div class="nv_renew_toast" style="display: none;">
+                <div>
+                    <i class="icon iconfont" id="nv_close_renew">&#xe61a;</i>
+                    <span>VIP订阅服务试用即将过期,请及时购买!</span>
+                    <a href="/weixin/pay/vipsubscribe_new">去购买</a>
+                </div>
+            </div>
+            <!-- 升级 续费 -->
+            <div class="tabbar">
+                <a href="/weixin/pay/toUpgradePage" class="update_btn">升级</a>
+                <a href="/weixin/pay/renewPayPage" class="renew_btn">续费</a>
+            </div>
+        </div>
+        <!-- 项目匹配提醒 -->
+        <div class="custom-dialog" style="display: none;">
+            <div class="weui-mask weui-animate-fade-in"></div>
+            <div class="weui-dialog weui-animate-fade-in">
+                <div class="weui-dialog__hd"><strong class="weui-dialog__title" style="font-weight: bold;">项目匹配</strong></div>
+                <div class="weui-dialog__bd" style="line-height: .4rem;padding: .37rem .45rem;font-size: 14px;text-align: left;color: #686868;">开启后,系统将根据你订阅的关键词自动匹配出相关联的项目,并将相关联项目的后续动态在VIP订阅内一并推送。</div>
+                <div class="weui-dialog__ft" style="border-top: 1px solid #eee;padding-bottom: .2rem;padding-top: .2rem;"> 
+                    <a href="javascript:;" class="weui-dialog__btn weui-dialog__btn_primary" style="background: #fff;color: #2CB7CA;text-align: center;margin-right: unset;">我知道了</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
+<!--    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/fastclick.js?v={{Msg "seo" "version"}}"></script>-->
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}11"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
+		var checkedflag = true;
+        $(function () {
+			var isinitpage = false;
+			$(window).bind("pageshow", function(event){
+				if(event.originalEvent.persisted){
+					getuserinfo();
+					isinitpage = true;
+				}
+			});
+			//
+			if(!isinitpage){
+            	getuserinfo();
+			}
+            //
+			$("i.icon-wenhao").on("click",function(){
+                $('.custom-dialog').show()
+                $('.weui-dialog__btn_primary').on('click', function () {
+                    $('.custom-dialog').hide()
+                })
+			})
+            $('.switch').on('click', function (e) {
+                console.log($(this).hasClass('checked'))
+                let that = this;
+                let hasChecked = $(this).hasClass('checked');
+                if (hasChecked == false) {
+                    $(that).addClass('checked');
+                    weui.toast('项目匹配已开启',{
+                        duration: 3000,
+                        className: 'custom-toast',
+                    })
+					setprojectmatch(1);
+                } else {
+                    $(that).removeClass('checked');
+                    $('.custom-dialog').hide()
+                    // $('#auto_renew').hide(500);
+                    weui.toast('项目匹配已关闭',{
+                        duration: 3000,
+                        className: 'custom-toast',
+                    })
+					setprojectmatch(0);
+                }
+            })
+            
+            $('#close_renew').on('click', () => {
+                $('.renew_toast').hide()
+            })
+            $('#nv_close_renew').on('click', () => {
+                $('.nv_renew_toast').hide();
+				$(".tabbar").html('<a style="width: 100%;color: #fff;background: #2CB7CA;" href="/weixin/pay/vipsubscribe_new" class="update_btn">去购买</a>');
+				$(".tabbar").show();
+            })
+			// 点击扩大
+            // 给两个按钮绑定统一事件
+            $('.subscribe_info .expand-box.area .icon-arrow, .subscribe_info .expand-box.trade .icon-arrow').on('click', function() {
+                $(this).parent().toggleClass('expanded')
+                // 改变isOpen中的this指向,将其指向当前点击的元素,并调用
+                // isOpen.apply(this)
+            })
+            // 改变isOpen中的this指向,将其指向选中的元素,并调用
+            isOpen.apply($('.subscribe_info .expand-box.area .icon-arrow'))
+            isOpen.apply($('.subscribe_info .expand-box.trade .icon-arrow'))
+            function isOpen(){
+                // console.log(this)
+                let boxHeight = $(this).siblings().height();
+                let minHeight = $(this).siblings().css('min-height')  // 18px
+
+                let rows = Math.ceil(Math.round(boxHeight)/ parseFloat(minHeight));
+                
+                console.log(`高度:${boxHeight},最小高度:${minHeight},行数:${rows}`);
+                
+                if (rows > 2) {
+                    $(this).parent().removeClass('expanded')
+                    $(this).show()
+                } else {
+                    $(this).parent().addClass('expanded')
+                    $(this).hide()
+                }
+            }
+        })
+		//
+		function getuserinfo(){
+			weui.loading();
+			//获取用户信息
+			$.ajax({  
+             	type: "POST",  
+             	url: "/subscribepay/afterPay/getUserInfo",   
+             	data: {},  
+             	dataType: "json",  
+				async:false,
+             	success: function(r){
+                	if(r.userData){
+                   		var _userData = r.userData;
+                   		var _vipData = _userData["o_vipjy"];
+                   		var _vipstatus = _userData["i_vip_status"];
+                   		// console.log(_userData)
+	                   if(_vipstatus&&_vipstatus=="1"){
+							if(parseInt(_vipData["expRemind"])>0){
+	                            $(".to_expired").show();
+	                            $(".nv_renew_toast").show();
+								$(".tabbar").hide();
+	                        }else{
+	                            $(".to_expired").hide();
+								$(".tabbar").html('<a style="width: 100%;color: #fff;background: #2CB7CA;" href="/weixin/pay/vipsubscribe_new" class="update_btn">去购买</a>')
+	                        }
+							$('.free7days_pic').text("VIP订阅服务");
+	                        $('.free7days_pic').append("<style>.free7days_pic::after{display:inline-block}</style>");
+	                   }else{
+							if(parseInt(_vipData["expRemind"])>0){
+	                            $(".to_expired").show();
+	                            $(".renew_day").text(parseInt(_vipData["expRemind"]))
+	                            $(".renew_toast").show();
+	                        }else{
+	                            $(".to_expired").hide();
+	                        }
+							$(".tabbar").html('<a href="/weixin/pay/toUpgradePage" class="update_btn">升级</a><a href="/weixin/pay/renewPayPage" class="renew_btn">续费</a>')
+							$('.free7days_pic').text("已开通VIP订阅服务");
+	                        $('.free7days_pic').append("<style>.free7days_pic::after{display:none}</style>");
+	                   }
+	                   if(_vipData){
+	                   		if(Number(_vipData["i_projectmatch"])==1){
+								$('.switch').addClass('checked')
+							}else{
+				                $('.switch').removeClass('checked')
+				            }
+	                        $("._area").text(_vipData["o_area"]);
+	                        $("._buyerClass").text(_vipData["a_buyerclass"]);
+	                        $("._cycleCount").text(_vipData["cycle"]);
+	                        $("._activeDate").text(_userData["l_vip_starttime"]+" - "+_userData["l_vip_endtime"]);
+	                        if(_vipData["a_infotype"]==""){
+	                            _vipData["a_infotype"]="全部类型"
+	                        }
+	                        $("#infoType").text(_vipData["a_infotype"]);
+	                        var pushText = "实时推送"
+	                        if(_vipData["i_ratemode"]=="4"){
+	                            pushText = "每月推送"
+	                        }else if(_vipData["i_ratemode"]=="3"){
+	                            pushText = "每周推送"
+	                        }else if(_vipData["i_ratemode"]=="2"){
+	                            pushText = "每日推送"
+	                        }
+	                        $("#pushSet").text(pushText);
+	                        var a_items = _vipData["a_items"]
+	                        var s_items = ""
+	                        if (a_items!=undefined &&a_items.length>0){
+	                            for (var i = 0; a_items.length - 1 >= i ; i++) {
+	                                if(s_items!=""){
+	                                    s_items += "、"
+	                                }
+	                                s_items  += a_items[i]["s_item"]
+	                            }
+	                        }
+	                        $("#keywords").text(s_items);
+                   		}
+						$("body").css("visibility","");
+		            	weui.loading().hide();
+					}
+				}
+           })
+		}
+		//
+		function setprojectmatch(index){
+			if(checkedflag){
+				checkedflag = false;
+				$.post("/subscribepay/afterPay/setUserInfo",{pageType:"projectMatch",pmindex:index},function(r){
+	                if(r.flag){
+						checkedflag=true;
+	                   console.log("保存成功")
+	               }
+	            })
+			}
+		}
+    </script>
+	{{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 333 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_seniorset.html

@@ -0,0 +1,333 @@
+<html>
+<head>
+	<title>推送设置</title>
+	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+	<link href="{{Msg "seo" "cdn"}}/mobiscroll/mobiscroll.min.css" rel="stylesheet">
+	<link href="{{Msg "seo" "cdn"}}/css/common.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+	<link href="{{Msg "seo" "cdn"}}/css/wxkeyset.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+	{{include "/common/weixin.html"}}
+	<script src="{{Msg "seo" "cdn"}}/js/jquery.js"></script>
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
+	<script src="{{Msg "seo" "cdn"}}/js/fastclick.js?v={{Msg "seo" "version"}}"></script>
+	<script src="{{Msg "seo" "cdn"}}/js/common.js?v={{Msg "seo" "version"}}"></script>
+	<script src="{{Msg "seo" "cdn"}}/mobiscroll/mobiscroll.min.js"></script>
+	<script src="{{Msg "seo" "cdn"}}/js/rem.js"></script>
+
+	<style>
+		#pushway ul>li:nth-child(n+2) {
+			/*padding: 8px 0px;*/
+		}
+		#matchType ul>li:nth-child(n+2) {
+			line-height: normal;
+			padding: 14px 0px;
+			color: #1d1d1d;
+		}
+		#matchType ul>li:nth-child(2) {
+			padding-top: 16px;
+			line-height: 55px;
+		}
+		#matchType ul>li>span {
+			display: block;
+			margin-top: 6px;
+			font-size: 14px;
+			color: #686868;
+		}
+	</style>
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
+		var s_email = "";
+		var keepOneTipWayMsg = "请保留一种推送方式,<br>剑鱼标讯还要推送信息给您";
+		var emailSetModal = null;
+		var clickDelayed = false;
+		setTimeout(function(){
+			clickDelayed = true;
+		},500);
+		$(function(){
+			new FastClick(document.body);
+			emailSetModal = new EasyPopup("emailSetModal");
+			$(window).bind("pageshow", function(event){
+				if(event.originalEvent.persisted){
+					window.location.reload(true);
+				}
+			});
+			//获取用户设置信息类型
+             $.post("/subscribepay/afterPay/getUserInfo",{},function(r){
+                 if(r.userData){
+                    var _userData = r.userData;
+                    var _vipData = _userData["o_vipjy"];
+                    var i_ratemode = _vipData["i_ratemode"]
+                    if (i_ratemode!=undefined){
+                        $("#pushfrequency li").eq(parseInt(i_ratemode)).addClass("checked");
+                    }else{
+                         $("#pushfrequency li").eq(1).addClass("checked");
+                    }
+                    var i_wxpush = _vipData["i_wxpush"]
+                    if (i_wxpush!=undefined&&i_wxpush=="1"){
+						$("#wxtip").addClass("on");
+                     	$("#wxtip .turn-on").show();
+                     	$("#wxtip .turn-off").hide();
+                    }else{
+                     	$("#wxtip .turn-off").show();
+                     	$("#wxtip .turn-on").hide();
+                    }
+                    var i_mailpush = _vipData["i_mailpush"]
+                    s_email = _vipData["s_email"]
+                    $("#email").val(s_email);
+					$(".emailset>span").css("max-width",$("#emailtip").width()-80).text(s_email);
+                    if (i_mailpush!=undefined&&i_mailpush=="1"){
+                     	$("#emailtip .turn-on").show();
+                     	$("#emailtip .turn-off").hide();
+						$("#emailtip").addClass("on");
+						$(".emailset").show();
+                    }else{
+                     	$("#emailtip .turn-off").show();
+                     	$("#emailtip .turn-on").hide();
+                    }
+                    var i_matchway = _vipData["i_matchway"]
+                    if (i_matchway!=undefined){
+                        $("#matchType li").eq(i_matchway).addClass("checked");
+                    }else{
+                        $("#matchType li").eq(1).addClass("checked");
+                    }
+                }else{
+                     $("#pushfrequency li").eq(1).addClass("checked");
+                     $("#wxtip .turn-on").show();
+                     $("#emailtip .turn-off").show();
+                }
+            })
+			////////////////////////////////
+			$(".modal-dialog").css("margin-top",$(window).height()*0.25);
+			//推送结果预览
+			$("#resultpreview").click(function(){
+				if(!clickDelayed){
+					return;
+				}
+				window.location.href = "/front/vipsubscribe/toVIPViewPage";
+			});
+			
+			//微信提醒
+			$("#wxtip>img").click(function(){
+				var parentLi = $(this).parent();
+				if($(this).hasClass("turn-on")){
+					if(!$("#emailtip").hasClass("on")){
+						EasyAlert.show(keepOneTipWayMsg);
+						return;
+					}
+					parentLi.removeClass("on");
+					parentLi.children(".turn-off").show();
+					parentLi.children(".turn-on").hide();
+				}else{
+					parentLi.addClass("on");
+					parentLi.children(".turn-on").show();
+					parentLi.children(".turn-off").hide();
+				}
+				saveData();
+			});
+			//邮件提醒
+			$("#emailtip>img").click(function(){
+				var parentLi = $(this).parent();
+				if($(this).hasClass("turn-on")){
+					if(!$("#wxtip").hasClass("on")){
+						EasyAlert.show(keepOneTipWayMsg);
+						return;
+					}
+					$(".emailset").hide();
+					parentLi.removeClass("on");
+					parentLi.children(".turn-off").show();
+					parentLi.children(".turn-on").hide();
+				}else{
+					if(s_email == ""){
+						emailSetModalShow();
+						return;
+					}else{
+						emailtipOn();
+						$(".emailset").show();
+					}
+				}
+				saveData();
+			});
+			$(".emailset>img").click(function(){
+				emailSetModalShow();
+			});
+			$("#sure").click(function(){
+				var thisValue = $("#email").val();
+				var szReg=/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|-|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; 
+				if(!szReg.test(thisValue)){
+					$(".error").removeClass("hide");
+					return;
+				}else{
+					$(".error").addClass("hide");
+				}
+				emailtipOn();
+				$(".emailset").show();
+				$(".emailset>span").text(thisValue);
+				emailSetModal.hide();
+				$("#setSuccess").hide().show();
+				setTimeout(function(){
+					$("#setSuccess").hide();
+				},EasyAlert.waitTime);
+				s_email = thisValue;
+				saveData();
+			});
+			$(".complate").click(function(){
+				if(!clickDelayed){
+					return;
+				}
+				window.history.go(-1);
+			});
+			//
+		});
+		//
+		function emailtipOn(){
+			$("#emailtip").addClass("on");
+			$("#emailtip").children(".turn-on").show();
+			$("#emailtip").children(".turn-off").hide();
+		}
+		//
+		function emailSetModalShow(){
+			$("#email").val(s_email);
+			$(".error").addClass("hide");
+			emailSetModal.show();
+		}
+		function saveData(){
+			var param = {
+				"pageType": "saveSeniorset",
+				"ratemode": 1,
+				"wxpush":0,
+				"mailpush":0,
+				"matchtype":1,
+				"email": $("#email").val(),
+			};
+			if($("#matchType li:eq(2)").hasClass("checked")){
+				param["matchtype"] = 2;
+			}
+			$("#pushfrequency li").each(function(){
+				if ($(this).hasClass("checked")){
+					param["ratemode"] = $(this).attr("dataid");
+				}
+			})
+			//
+			if($("#wxtip").hasClass("on")){
+				param["wxpush"] = 1;
+			}
+			if($("#emailtip").hasClass("on")){
+				param["mailpush"] = 1;
+			}
+			$.post("/subscribepay/afterPay/setUserInfo",param,function(r){
+				console.log(r)
+			});
+		}
+		//
+		function docheck(n,th){
+			if(parseInt(n)<5){
+				console.log("++++++++++++")
+				$("#pushfrequency li").each(function(){
+					var linum = $(this).attr("dataid");
+					$(this).removeClass("checked");
+					if(linum==n){
+						$(this).addClass("checked");
+					}
+				})
+			}else {
+				$("#matchType li").each(function(){
+					var linum = $(this).attr("dataid");
+					$(this).removeClass("checked");
+					if(linum==n){
+						$(this).addClass("checked");
+					}
+				})
+			}
+			saveData();
+		}
+	</script>
+</head>
+<body class="seniorsetpage">
+	<div class="header">
+		推送设置<span class="complate">完成</span>
+	</div>
+
+	<div class="content">
+		<div id="pushfrequency">
+			<ul class="navchoose">
+				<li><img src="{{Msg "seo" "cdn"}}/images/wxkeyset/pushfrequency.png">推送时间</li>
+				<li onclick="docheck('1',this)" dataid="1">
+					实时推送
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/checked.png" class="checked-img">
+					<span>8点-20点实时推送</span>
+				</li>
+				<li onclick="docheck('2',this)" dataid="2">
+					每日推送
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/checked.png" class="checked-img">
+					<span>上午9点推送一次</span>
+				</li>
+				<li onclick="docheck('3',this)" dataid="3">
+					每周推送
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/checked.png" class="checked-img">
+					<span>每周五上午9点推送一次</span>
+				</li>
+				<li onclick="docheck('4',this)" dataid="4">
+					每月推送
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/checked.png" class="checked-img">
+					<span>每月28日上午9点推送一次</span>
+				</li>
+			</ul>
+		</div>
+		<div id="pushway">
+			<ul class="navchoose">
+				<li><img src="{{Msg "seo" "cdn"}}/images/wxkeyset/pushway.png">推送方式</li>
+				<li id="wxtip">
+					微信提醒
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/turn-on.png" class="turn-on">
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/turn-off.png" class="turn-off">
+				</li>
+				<li id="emailtip">
+					邮件提醒
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/turn-on.png" class="turn-on">
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/turn-off.png" class="turn-off">
+					<div class="emailset">
+						<span></span>
+						<img src="{{Msg "seo" "cdn"}}/images/wx/editemail.png">
+					</div>
+				</li>
+			</ul>
+		</div>
+		<div id="matchType">
+			<ul class="navchoose">
+				<li><img src="{{Msg "seo" "cdn"}}/vipsubscribe/image/matchType.png">关键词匹配方式</li>
+				<li onclick="docheck('5',this)" dataid="5">
+					按标题匹配
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/checked.png" class="checked-img">
+				</li>
+				<li onclick="docheck('6',this)" dataid="6">
+					按全文匹配
+					<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/checked.png" class="checked-img">
+					<span>会产生无效信息,请根据需要选择</span>
+				</li>
+			</ul>
+		</div>
+		<div class="onenavbar" id="resultpreview">
+			<img src="{{Msg "seo" "cdn"}}/images/wxkeyset/resultpreview.png" class="img-left">
+			推送结果预览
+			<img src="{{Msg "seo" "cdn"}}/wxswordfish/images/right.png" class="img-right">
+		</div>
+	</div>
+	<div class="easypopup" id="emailSetModal">
+		<div class="easypopup-edit">
+			<div class="easypopup-header">设置邮件地址</div>
+			<div class="easypopup-content">
+				<input type="text" id="email" placeholder="邮件地址" class="form-control"/>
+				<div class="error hide">您输入的邮箱不正确,请重新输入</div>
+			</div>
+			<div class="easypopup-footer">
+				<span onclick="emailSetModal.hide();">取消</span>
+				<span id="sure">确定</span>
+			</div>
+		</div>
+	</div>
+	<div class="easyalert easyalert-icon" id="setSuccess">
+		<img src='{{Msg "seo" "cdn"}}/images/set-right.png' style='width: 49px;margin-bottom: 15px;margin-top: 25px;'><br>设置成功
+	</div>
+	{{include "/common/baiducc.html"}}
+</body>
+</html>

+ 397 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_viewPage.html

@@ -0,0 +1,397 @@
+<html>
+<head>
+	<meta name="viewport" content="width=device-width,initial-scale=1.0">
+	<title>VIP订阅结果预览</title>
+	{{include "/common/inc.html"}}
+	<link href="{{Msg "seo" "cdn"}}/css/dropload.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+	<link href="{{Msg "seo" "cdn"}}/css/wxlist.css?v={{Msg "seo" "version"}}" rel="stylesheet">
+	{{include "/common/weixin.html"}}
+    <script src="{{Msg "seo" "cdn"}}/vipsubscribe/js/rem.js?v={{Msg "seo" "version"}}"></script>
+	<script src="{{Msg "seo" "cdn"}}/js/jquery.js"></script>
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
+	<script src="{{Msg "seo" "cdn"}}/js/dropload.js?v={{Msg "seo" "version"}}"></script>
+	<script src="{{Msg "seo" "cdn"}}/js/fastclick.js?v={{Msg "seo" "version"}}"></script>
+	<script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}1"></script>
+    <script>
+		initShare({{.T.signature}},{{.T.openid}},2,"jy_extend",{{.T.nickname}},{{.T.avatar}});
+		var zbadd = {{Msg "seo" "ZBADDRESS"}};
+		var keys = [];
+		var sds = "";
+		var noMore = "false";
+		var listCache = "";
+		var wxflag = null;
+		var scrollTop = 0;
+		var pageNum = 1;
+		var pageSize = 50;
+		var hasNextPage = false;
+		$(function(){
+			new FastClick(document.body);
+			$(window).scroll(function(){
+				scrollTop = $(this).scrollTop();
+			});
+			if(sessionStorage && sessionStorage.resultpreviewScrollTop && sessionStorage.resultpreviewListCache){
+				pageNum = sessionStorage.resultpreviewPageNumCache;
+				noMore = sessionStorage.resultpreviewNoMoreCache;
+				hasNextPage = sessionStorage.resultpreviewHasNextData;
+				sds = sessionStorage.resultpreviewSds;
+				keys = sessionStorage.resultpreviewKeys;
+				appendListHtml([sessionStorage.resultpreviewListCache],pageNum);
+				if(noMore == "true"){
+					wxflag = $('.listcontent').dropload({
+						scrollArea : window,
+						loadDownFn : function(me){
+							if(wxflag == null){
+								wxflag = me;
+							}
+							noMoreData(me);
+						}
+					});
+					noMoreData(wxflag);
+				}
+				$(window).scrollTop(sessionStorage.resultpreviewScrollTop);
+				sessionStorage.removeItem("resultpreviewScrollTop");
+				sessionStorage.removeItem("resultpreviewPageNumCache");
+				sessionStorage.removeItem("resultpreviewListCache");
+				sessionStorage.removeItem("resultpreviewNoMoreCache");
+				sessionStorage.removeItem("resultpreviewHasNextData");
+				sessionStorage.removeItem("resultpreviewSds");
+			}else{
+				$("#list").css("visibility","hidden");
+				$(window).scrollTop(0);
+				getData();
+				$("#list").css("visibility","visible");
+			}
+			setTimeout(function(){
+				reloadData();
+			},500);
+		});
+		//
+		function getData(){
+			var reqParam = {
+				"pageNum": pageNum++
+			};
+			$.ajax({
+				type: 'post',
+				url: '/subscribepay/afterPay/getPushView',
+				data: reqParam,
+				dataType: 'json',
+				success: function(data){
+					if(data["list"] == null || data["list"].length == 0){
+						hasNoData();
+						return;
+					}else{
+						keys =  data["keys"].split(",")
+						sds = "VIPkey_"+keys.join("_").replace(/\s+/g,"+");
+						hasNextPage = data["hasNextPage"]
+						var html = getHtml(data["list"],reqParam["pageNum"]);
+						appendListHtml(html,pageNum);
+						if (pageNum==1){
+							wxflag = $('.listcontent').dropload({
+								scrollArea : window,
+								loadDownFn : function(me){
+									if(wxflag == null){
+										wxflag = me;
+									}
+									noMoreData(me);
+								}
+							});
+						}
+					}
+				},
+				error: function(xhr, type){
+					noMoreData(wxflag);
+				}
+			});
+		}
+		//
+		function reloadData(){
+			if (hasNextPage){
+				wxflag = $('.listcontent').dropload({
+					scrollArea : window,
+					loadDownFn : function(me){
+						if(wxflag == null){
+							wxflag = me;
+						}
+						if(!hasNextPage){
+							noMoreData(me);
+							return;
+						}
+						var reqParam = {
+							"pageNum": pageNum++
+						};
+						$.ajax({
+							type: 'post',
+							url: '/subscribepay/afterPay/getPushView',
+							data: reqParam,
+							dataType: 'json',
+							success: function(data){
+								if(data["list"] == null || data["list"].length == 0){
+									noMoreData(me);
+								}else{
+									var html = getHtml(data["list"],reqParam["pageNum"]);
+									appendListHtml(html,pageNum);
+									//没有下一页了
+									if(!data.hasNextPage){
+										noMoreData(me);
+									}else{
+										me.resetload();
+									}
+								}
+							},
+							error: function(xhr, type){
+								noMoreData(me);
+							}
+						});
+					}
+				});
+			}else{
+				wxflag = $('.main').dropload({
+			        scrollArea : window,
+			        loadDownFn : function(me){
+						if(wxflag == null){
+							wxflag = me;
+						}
+						noMoreData(me);
+			        }
+			    });
+				noMoreData(wxflag);
+			}
+		}
+		//
+		function hasNoData(){
+			$(".listcontent").hide();
+			$(".findnull").css("display","block");
+			$(".tipHeader").hide();
+		}
+		function getHtml(list,pageNum){
+			var html = '';
+			for(var i=0;i<list.length;i++){
+				var index = (pageNum-1)*pageSize+i+1;
+				var thisStyle = " style='padding-left: 15px;'";
+				if(index >= 10 && index < 100){
+					thisStyle = " style='padding-left: 26px;'";
+				}else if(index >= 100 && index < 1000){
+					thisStyle = " style='padding-left: 35px;'";
+				}else if(index >= 1000){
+					thisStyle = " style='padding-left: 45px;'";
+				}
+				var href = list[i].href;
+				if(!href || href.indexOf("java") > -1){							
+					href = "";
+				}
+				var title = list[i].title;
+				//关键词高亮
+				if(keys.length > 0){
+					for(var n=0;n<keys.length;n++){
+						var keysTemp = keys[n];
+						var isReplace = true;
+						var titleTemp = title;
+						for(var m=0;m<keysTemp.length;m++){
+							var _titleTemp = keyWordHighlight(titleTemp,keysTemp[m],'<font class="keyword">$1</font>');
+							if(titleTemp == _titleTemp){
+								isReplace = false;
+								break;
+							}
+							titleTemp = _titleTemp;
+						}
+						if(isReplace){
+							title = titleTemp;
+						}
+					}
+				}
+				//
+				var area = list[i].area;
+				if(!area){
+					area = "";
+				}else{
+					area = $.trim(area);
+					area = area=="A"?"全国":area;
+				}
+				if(area != ""){
+					area = '<span class="location">'+area+'</span>';
+				}
+				//
+				var tdf = list[i].publishtime;
+				if(tdf){
+					tdf = timeDiff(new Date(Number(tdf+"000")));
+					if(tdf != null){
+						tdf='<span><i class="glyphicon bofangjilu" style="color:#7a7a7a;margin-right:2px;"></i>'+tdf+'</span>'
+					}
+				}else{
+					tdf = '';
+				}
+				//
+				var datatype = "";
+				if(list[i].subtype){
+					datatype='<span class="type">'+list[i].subtype+'</span>'
+				}else if(list[i].toptype){
+					datatype='<span class="type">'+list[i].toptype+'</span>'
+				}else if(list[i].type){
+					if(list[i].type == "tender"){
+						datatype='<span class="type">招标</span>'
+					}else if(list[i].type == "bid"){
+						datatype='<span class="type">中标</span>'
+					}
+				}
+				//
+				var buyerclass = "";
+				if(list[i].buyerclass){
+					buyerclass='<span class="buyerclass">'+list[i].buyerclass+'</span>'
+				}
+				var tabletime = formatDate(list[i].publishtime);
+				//					
+				html += '<div class="tslist">'
+				+'<div class="resnumb">'
+				+'<div class="one">'
+				+'<span class="xh">'+index+'.</span>'
+				+'</div>'
+				+'<div class="two bt-parent"'+thisStyle+'>'
+				+'<a class="bt" eid="'+list[i]._id+'" s="'+href+'" href="javascript:void(0);">'+title+'</a>'
+				+'</div>'
+				+'</div>'
+				+'<div style="clear:both;"></div>'
+				+'<div class="restime time-diff">'
+				+area+datatype+buyerclass+tdf
+				+'</div>'
+				+'<div style="clear:both;"></div>'
+				+'</div>';
+			}
+			return [html];							                    					                    
+		}
+		
+		//
+		function formatDate(date,sl)   { 
+			var myDate = new Date(date*1000);      
+			var   year=myDate.getFullYear();
+			var   month=myDate.getMonth()+1; 
+			if(month<10&&sl!="1"){
+				month="0"+month
+			} 
+			var   date=myDate.getDate();      
+			if(date<10&&sl!="1"){
+				date="0"+date
+			} 
+			var hour = myDate.getHours()
+			var min = myDate.getMinutes()
+			if(sl=="l"){
+				if(hour<10){
+					hour="0"+hour
+				} 
+				if(min<10){
+					min="0"+min
+				} 
+				return   year+"-"+month+"-"+date+"<br>"+hour+":"+min; 
+			}else{
+				return   year+"<br>"+month+""+date; 
+			}
+		}
+		
+		//
+		function appendListHtml(html,pageNum){
+			pageNumCache = pageNum;
+		    // 插入数据到页面,放到最后面
+		    var htmlObj = $(html[0]);
+			//缓存数据
+			listCache += html[0];
+			htmlObj.on("click", function(event){
+				var h = $(this).find("a.bt").attr("s");
+				var eid = $(this).find("a.bt").attr("eid");
+				beforeJump(eid,h);
+			});
+			$('#list').append(htmlObj);
+		}
+		function noMoreData(me){
+			if(me == null){
+				return;
+			}
+			noMore = "true";
+			// 锁定
+			me.lock();
+			// 无数据
+			me.noData();
+		    // 即使加载出错,也得重置
+		    me.resetload();
+		}
+		function tablejump(eid,h){
+			beforeJump(eid,h);
+		}
+		function beforeJump(eid,h){
+			if(sessionStorage){
+				sessionStorage.resultpreviewScrollTop = scrollTop;
+				sessionStorage.resultpreviewPageNumCache = pageNum;
+				sessionStorage.resultpreviewListCache = listCache;
+				sessionStorage.resultpreviewNoMoreCache = noMore;
+				sessionStorage.resultpreviewHasNextData = hasNextPage;
+				sessionStorage.resultpreviewSds = sds;
+				sessionStorage.resultpreviewKeys = keys;
+			}
+			newredirect(zbadd,h,eid,sds);
+		}
+</script>
+<style type="text/css">
+	.restime span.buyerclass{
+		border: 1px solid #CFAD89;
+	    background: #CFAD89;
+	    border-radius: 3px;
+	    margin: 0px 5px;
+	    padding: 1px 3px;
+	    color: #fff;
+	    font-size: 14px;
+	}
+	.findnull{
+		display:none;
+	}
+	body{
+		color: #333;
+	}
+	body>div:first-child{
+		background-color: #F8F8F8;
+		padding: 10px 15px;
+		color: #a0a0a0;
+		font-size: 15px;
+	}
+	a{
+		text-decoration: none;
+		color: #333;
+	}
+	.keyword{
+		color: #2cb7ca;
+	}
+	.listcontent{
+		padding:0px 10px;
+	}
+	.shuxian{
+		padding: 0px !important;
+		margin-right: -10px;
+		color: #e0e0e0;
+	}
+	.prompt{
+		padding:10px 10px 0px;
+	}
+	.blue{
+		color:#0987ff;
+	}
+	.resnumb .two{
+		max-height: 45px;
+		overflow: hidden;
+	}
+</style>
+</head>
+<body>
+	<div class="tipHeader">根据您的设置,为您推荐的预览信息,点击标题可查看详情。</div>
+	<div class="listcontent">
+		<div id="list"></div>
+	</div>
+
+	<span class="text-center findnull" style="margin-top: 5rem;">
+		<div>
+			<img style="width:150px;margin:50px 0 50px 0;" src="{{Msg "seo" "cdn"}}/images/wx/jysorry_1.png">
+		</div>
+		<span style="color:#1d1d1d;font-size:16px;">没有找到和你订阅设置内容有关的信息<br/></span>
+		<div onClick="window.history.go(-1)" style="width: 200px;position: relative;left: 50%;margin-left: -100px;" class="text-center">
+			<img style="width: 200px;margin-top: 25px;pointer-events: none;" src="{{Msg "seo" "cdn"}}/images/wx/jydyshz.png">
+		</div>
+	</span>
+	{{include "/common/baiducc.html"}}
+</body>
+</html>

File diff suppressed because it is too large
+ 0 - 0
src/jfw/modules/subscribepay/src/dataexport.json


+ 4 - 2
src/jfw/modules/subscribepay/src/service/afterPay.go

@@ -227,9 +227,11 @@ func (a *AfterPay) GetUserInfo() error {
 				end_m, _ := strconv.Atoi(_end[1])
 				end_m_count := end_y*12 + end_m
 				start_m_count := start_y*12 + start_m
-				cycle = strconv.Itoa((end_m_count-start_m_count)/12) + "年"
+				if (end_m_count-start_m_count)/12 != 0 {
+					cycle = strconv.Itoa((end_m_count-start_m_count)/12) + "年"
+				}
 				if (end_m_count-start_m_count)%12 > 0 {
-					cycle += strconv.Itoa((end_m_count-start_m_count)%12) + "月"
+					cycle += strconv.Itoa((end_m_count-start_m_count)%12) + "月"
 				}
 			}
 			(*data)["cycle"] = cycle

+ 4 - 10
src/jfw/modules/subscribepay/src/service/vipRenewUpgrade.go

@@ -41,13 +41,7 @@ func (this *RenewUpgrade) GetBuyMsg() {
 		endtime := qutil.Int64All((*data)["l_vip_endtime"])
 		end := time.Unix(endtime, 0).Format("2006-01-02")
 		now := time.Unix(time.Now().Unix(), 0).Format("2006-01-02")
-		areaArr := qutil.ObjToMap(area)
-		buyerclassArr := qutil.ObjArrToStringArr(buyerclass.([]interface{}))
-		monthprice := entity.JyVipSubStruct.GetSubVipPrice(areaArr, buyerclassArr, 1, 2)
-		yearprice := entity.JyVipSubStruct.GetSubVipPrice(areaArr, buyerclassArr, 1, 1)
-		//		log.Println("month", float64(monthprice)/100)
-		//		log.Println("year", float64(yearprice)/100)
-		//
+
 		dataArr := map[string]interface{}{
 			"area":       area,
 			"buyerclass": buyerclass,
@@ -58,8 +52,6 @@ func (this *RenewUpgrade) GetBuyMsg() {
 			"start":      start,
 			"end":        end,
 			"now":        now,
-			"monthprice": float64(monthprice) / 100,
-			"yearprice":  float64(yearprice) / 100,
 		}
 		this.ServeJson(dataArr)
 	}
@@ -180,7 +172,9 @@ func (this *RenewUpgrade) RenewUpgradeCreateOrder() {
 			}
 		}
 		log.Println("price", totalfee)
-		totalfee = 1 //设置测试价格为0.01
+		if totalfee == 0 {
+			totalfee = 1
+		}
 
 		//创建订单
 		tradeno, prepayid, payStr := "", "", ""

+ 43 - 1
src/web/staticres/vipsubscribe/css/vip_index.css

@@ -561,7 +561,7 @@
   width: 1.6rem;
 }
 
-.vip_index .content .subscribe_info .s_info_top .s_i_item span {
+.vip_index .content .subscribe_info .s_info_top .s_i_item > span {
   flex: 1;
 }
 
@@ -600,6 +600,48 @@
   font-size: .24rem;
 }
 
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box {
+  position: relative;
+    top: .04rem;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box ._area,
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box ._buyerClass {
+  display: -webkit-box;
+  height: auto;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 2;
+  -webkit-box-orient: vertical;
+  min-height: 18px;
+  line-height: 18px;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box .icon-arrow {
+  position: absolute;
+  width: 1.14rem;
+  bottom: 0;
+  right: .1rem;
+  text-align: right;
+  font-size: .26rem;
+  background: linear-gradient(90deg, rgba(255, 218, 177, 0) 0%, #ffdab1 100%);
+  transition: height 0.5s ease;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box .icon-arrow::before {
+  display: inline-block;
+  transform: rotate(90deg);
+  transition: transform 0.2s ease;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box.expanded ._area,
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box.expanded ._buyerClass {
+  display: block;
+}
+
+.vip_index .content .subscribe_info .s_info_top .s_i_item .expand-box.expanded .icon-arrow::before {
+  transform: rotate(-90deg);
+}
 .vip_index .content .media .media_list {
   display: flex;
   align-items: center;

+ 13 - 4
src/web/templates/weixin/historypush.html

@@ -751,6 +751,7 @@
 		}
 		.overClass{
 			overflow: hidden;
+			height:100vh;
 		}
 		.buyerclass {
 		    border: 1px solid #CFAD89;
@@ -767,9 +768,15 @@
 			width: 100%;
 			z-index: 999;
 		}
-		.subscribe{
+		.listcontent{
 			margin-top: 1rem;
 		}
+		.province_city p:last-child{
+			margin-bottom:1rem;
+		}
+		.province p:last-child{
+			margin-bottom:1rem;
+		}
 	</style>
 </head>
 <body>
@@ -1001,9 +1008,10 @@
 		}
         //
         $(function () { 
-			document.querySelector('.screen').addEventListener('touchmove', stopScroll, false);
-			document.querySelector('.tab_left').addEventListener('touchmove', stopScroll, false);
-			document.querySelector('.tab_right').addEventListener('touchmove', stopScroll, false);
+			document.querySelector('.screen').addEventListener('touchmove', stopScroll,  {passive: false});
+			document.querySelector('.tab_left').addEventListener('touchmove', stopScroll,  {passive: false});
+			document.querySelector('.tab_right').addEventListener('touchmove', stopScroll,  {passive: false});
+			document.querySelector('.handle_menu').addEventListener('touchmove', stopScroll,  {passive: false});
 			if(firstTime!=""){
 				date = formatDate(firstTime/1000,"1");
         	}
@@ -1092,6 +1100,7 @@
             })
             //
             $('.screen').click(function(){
+				 $('#showArea').find("span").toggleClass("current");
             	$('.area_container').slideUp();
             	$(".subscribe").toggleClass('overClass');
             	$('.screen').hide();

+ 1 - 1
src/web/templates/weixin/my.html

@@ -64,7 +64,7 @@
 			.setEmail{
 				float:right;
 				color:#686868;
-				font:14px/43px '微软雅黑';
+				font:14px/47px '微软雅黑';
 				margin-right: 10px;
 			}
 			img{

+ 8 - 8
src/web/templates/weixin/vipsubscribe/choose_area_upgrade.html

@@ -412,12 +412,12 @@
         inintData:function(){
           //已选择
           try{
-            let select =sessionStorage.getItem("vipSubSelectArea");
+            let select =sessionStorage.getItem("vipSubSelectAreaUpgrade");
             if(select){
               this.selectObj=JSON.parse(select);
             }
-            if(sessionStorage.getItem("vipSubSelectIndustry")){
-              this.selectedIndustryArr=JSON.parse(sessionStorage.getItem("vipSubSelectIndustry"));
+            if(sessionStorage.getItem("vipSubSelectIndustryUpgrade")){
+              this.selectedIndustryArr=JSON.parse(sessionStorage.getItem("vipSubSelectIndustryUpgrade"));
             }
             if(sessionStorage.getItem("vipSubSelectTime")){
               this.timeSelect=JSON.parse(sessionStorage.getItem("vipSubSelectTime"));
@@ -639,7 +639,7 @@
         },
         submitArea:function(){
           let addCity = $('.result_name').text(); //新增的城市
-          sessionStorage.setItem("vipSubSelectArea",JSON.stringify(AreaChoose.selectObj));
+          sessionStorage.setItem("vipSubSelectAreaUpgrade",JSON.stringify(AreaChoose.selectObj));
           history.go(-1);
         },
         isAllSelected:function(){
@@ -798,11 +798,11 @@
                 })
 				AreaChoose.showSelected(false);
 				AreaChoose.getResult();
-				sessionStorage.removeItem("vipSubSelectArea");
+				sessionStorage.removeItem("vipSubSelectAreaUpgrade");
             })
             //
-            if(sessionStorage.vipSubSelectArea!==undefined&&sessionStorage.vipSubSelectArea!==""){
-            	let areas = JSON.parse(sessionStorage.vipSubSelectArea);
+            if(sessionStorage.vipSubSelectAreaUpgrade!==undefined&&sessionStorage.vipSubSelectAreaUpgrade!==""){
+            	let areas = JSON.parse(sessionStorage.vipSubSelectAreaUpgrade);
             	for(var province in areas){
             		if(province === "全国"){
             			console.log("23123")
@@ -879,7 +879,7 @@
         	$(".tips_btn .btns .save-btn").attr("disabled","disabled");
 	    }
 	    
-	    if(sessionStorage.vipSubSelectArea!==undefined && sessionStorage.vipSubSelectArea!==""){
+	    if(sessionStorage.vipSubSelectAreaUpgrade!==undefined && sessionStorage.vipSubSelectAreaUpgrade!==""){
 	    	$(".tips_btn .btns .reset-btn").removeAttr("disabled");
             $(".tips_btn .btns .save-btn").removeAttr("disabled");
 	    }

+ 6 - 6
src/web/templates/weixin/vipsubscribe/choose_industry_upgrade.html

@@ -375,7 +375,7 @@
 //            $("#all .industry_item").trigger("click");
 				$('.select-area-box .list button').removeClass('active');
                 showSelect(buyIndustry,false);
-                sessionStorage.removeItem("vipSubSelectIndustry");
+                sessionStorage.removeItem("vipSubSelectIndustryUpgrade");
             })
            
             //=======================
@@ -384,7 +384,7 @@
              // 确认按钮事件
             $('.save-btn').on('click', function () {
                 console.log(selectedIndustryArr)
-                sessionStorage.setItem("vipSubSelectIndustry",JSON.stringify(selectedIndustryArr));
+                sessionStorage.setItem("vipSubSelectIndustryUpgrade",JSON.stringify(selectedIndustryArr));
                 history.go(-1);
             })
                        
@@ -395,13 +395,13 @@
             var buyIndustry = "";//已购买
             $(function(){
               try{
-                if(sessionStorage.getItem("vipSubSelectIndustry")){
-                  selectedIndustryArr=JSON.parse(sessionStorage.getItem("vipSubSelectIndustry"));
+                if(sessionStorage.getItem("vipSubSelectIndustryUpgrade")){
+                  selectedIndustryArr=JSON.parse(sessionStorage.getItem("vipSubSelectIndustryUpgrade"));
                 }else{
                   selectedIndustryArr=[];
                 }
-                if(sessionStorage.getItem("vipSubSelectArea")){
-                  selectedAreaObj=JSON.parse(sessionStorage.getItem("vipSubSelectArea"));
+                if(sessionStorage.getItem("vipSubSelectAreaUpgrade")){
+                  selectedAreaObj=JSON.parse(sessionStorage.getItem("vipSubSelectAreaUpgrade"));
                 }
                 if(sessionStorage.getItem("vipSubSelectTime")){
                   this.timeSelect=JSON.parse(sessionStorage.getItem("vipSubSelectTime"));

+ 1 - 1
src/web/templates/weixin/vipsubscribe/messageType.html

@@ -188,7 +188,6 @@
 				$(".result_name").text("全部");
 			}
 			
-	        weui.loading().hide();
 			$(".result").css("visibility","");
           	$(".industry").css("margin-top",$('.result_text').height()+25);
 			$(".industry").css("visibility","");
@@ -229,6 +228,7 @@
                     $('.all span').addClass('active');
                 }
 				getChecked();
+	        	weui.loading().hide();
             })
             //
             $(".sure").on("click",function(){

+ 10 - 6
src/web/templates/weixin/vipsubscribe/renew_pay.html

@@ -20,6 +20,12 @@
 	body,html {
 		height: 100%;
 	}
+	::-webkit-input-placeholder { /* Chrome/Opera/Safari */
+	  	color: #686868;
+	}
+	.weixin_pay{
+		padding-right: 3px;
+	}
 </style>
 <body class="no-touch">
 	<script type="text/javascript">
@@ -58,7 +64,7 @@
                 <li class="choose_item select_cycle">
                     <a href="javascript:;">
                         <span class="label">延长订阅周期</span>
-                        <input type="text" disabled value="" placeholder="选择年、月" class="info choose_time">
+                        <input type="text" value="" onfocus="this.blur();" placeholder="选择年、月" class="info choose_time">
                         <!-- <span class="info choose_time">选择年、月</span> -->
                         <i class="iconfont icon-arrow choose_time"></i>
                     </a>
@@ -68,7 +74,7 @@
                 <div class="select_payment choose_item">
                     <a href="javascript:;">
                         <span class="label">支付方式</span>
-                        <span class="info choose_way">微信支付</span>
+                        <span class="info choose_way weixin_pay">微信支付</span>
                         <!--<i class="iconfont icon-arrow choose_way"></i>-->
                     </a>
                 </div>
@@ -491,10 +497,8 @@
 			    starts = data.starttime;
 			    endTime = data.end;
 			    ends = data.endtime;
-			    monthPrice = data.monthprice;
-			    yearPrice = data.yearprice;
-			    console.log(area)
-			    console.log(buyerclass)
+			    monthPrice = getsubVipOrderPrice(area, buyerclass, [1, 2]);
+			    yearPrice = getsubVipOrderPrice(area, buyerclass, [1, 1]);
 			    //
 			    var areaArr = [];
 			    var areaHtml = "";

+ 41 - 6
src/web/templates/weixin/vipsubscribe/vip_index.html

@@ -39,15 +39,23 @@
             </div>
             <div class="subscribe_info">
                 <div class="s_info_top">
-                    <p class="s_i_item">
+                    <p class="s_i_item" style="margin-bottom: .1rem;">
                         <label>已购买区域:</label>
-                        <span class="_area"></span>
+						<span class="expand-box area expanded">
+                            <span class="_area"></span>
+                            <span class="iconfont icon-arrow"></span>
+                        </span>
+<!--                        <span class="_area"></span>-->
                     </p>
-                    <p class="s_i_item">
+                    <p class="s_i_item" style="margin-bottom: .1rem;">
                         <label>已购买行业:</label>
-                        <span class="_buyerClass"></span>
+                        <span class="expand-box trade expanded">
+                            <span class="_buyerClass"></span>
+                            <span class="iconfont icon-arrow"></span>
+                        </span>
+<!--                        <span class="_buyerClass"></span>-->
                     </p>
-                    <p class="s_i_item">
+                    <p class="s_i_item" style="margin-bottom: .1rem;">
                         <label>订阅周期:</label>
                         <span class="_cycleCount"></span>
                     </p>
@@ -90,7 +98,7 @@
                         </div>
                         <a href="/front/vipsubscribe/toSetPushSetPage" class="media_right" id="pushSet"></a>
                     </div>
-                    <div class="media_list" style="margin-top:.2rem;" id="auto_renew">
+                    <div class="media_list" style="margin-top:.2rem;margin-bottom: .2rem;" id="auto_renew">
                         <div class="media_left">
                             <img src="/vipsubscribe/image/frame.png?v={{Msg "seo" "version"}}" alt="">
                             <span>项目匹配</span>
@@ -207,6 +215,33 @@
 				$(".tabbar").html('<a style="width: 100%;color: #fff;background: #2CB7CA;" href="/weixin/pay/vipsubscribe_new" class="update_btn">去购买</a>');
 				$(".tabbar").show();
             })
+			// 点击扩大
+            // 给两个按钮绑定统一事件
+            $('.subscribe_info .expand-box.area .icon-arrow, .subscribe_info .expand-box.trade .icon-arrow').on('click', function() {
+                $(this).parent().toggleClass('expanded')
+                // 改变isOpen中的this指向,将其指向当前点击的元素,并调用
+                // isOpen.apply(this)
+            })
+            // 改变isOpen中的this指向,将其指向选中的元素,并调用
+            isOpen.apply($('.subscribe_info .expand-box.area .icon-arrow'))
+            isOpen.apply($('.subscribe_info .expand-box.trade .icon-arrow'))
+            function isOpen(){
+                // console.log(this)
+                let boxHeight = $(this).siblings().height();
+                let minHeight = $(this).siblings().css('min-height')  // 18px
+
+                let rows = Math.ceil(Math.round(boxHeight)/ parseFloat(minHeight));
+                
+                console.log(`高度:${boxHeight},最小高度:${minHeight},行数:${rows}`);
+                
+                if (rows > 2) {
+                    $(this).parent().removeClass('expanded')
+                    $(this).show()
+                } else {
+                    $(this).parent().addClass('expanded')
+                    $(this).hide()
+                }
+            }
         })
 		//
 		function getuserinfo(){

+ 21 - 13
src/web/templates/weixin/vipsubscribe/vip_upgrade.html

@@ -21,6 +21,12 @@
 	body,html {
 		height: 100%;
 	}
+	::-webkit-input-placeholder { /* Chrome/Opera/Safari */
+	  	color: #686868;
+	}
+	.weixin_pay{
+		padding-right: 3px;
+	}
 </style>
 <body class="no-touch">
 	<script type="text/javascript">
@@ -74,7 +80,7 @@
                 <div class="select_payment choose_item">
                     <a href="javascript:;">
                         <span class="label">支付方式</span>
-                        <span class="info choose_way">微信支付</span>
+                        <span class="info choose_way weixin_pay">微信支付</span>
                         <!--<i class="iconfont icon-arrow choose_way"></i>-->
                     </a>
                 </div>
@@ -506,7 +512,7 @@
             $("#monthly").prop('checked', true);
             $('#number_box_month').addClass('active')
             $('.number_box span').removeClass('active')
-            var $number = $('#number_box_month span.month_number');
+            var $number = $('#number_box_month .month_number');
             var $monthlyInput = $('#monthly');
             // 未整理的data数组,里面的值都是字符串
             var preData = e.delegateTarget.dataset
@@ -681,8 +687,8 @@
             FinallyPrice();
         })
         //新增区域
-	    if(sessionStorage.vipSubSelectArea!==""&&sessionStorage.vipSubSelectArea!==undefined){
-			var vipSubSelectArea = JSON.parse(sessionStorage.vipSubSelectArea);
+	    if(sessionStorage.vipSubSelectAreaUpgrade!==""&&sessionStorage.vipSubSelectAreaUpgrade!==undefined){
+			var vipSubSelectArea = JSON.parse(sessionStorage.vipSubSelectAreaUpgrade);
 			var provinceArr = [];
 			var cityArr = [];
 			var isAll = "";
@@ -711,10 +717,11 @@
 			if(provinceLen === 0 && cityLen === 0){
 				$(".area-list").hide();
 			}
+			$(".save_upgrade").removeAttr("disabled");
 	    }
 	    //新增行业
-	    if(sessionStorage.vipSubSelectIndustry!==""&&sessionStorage.vipSubSelectIndustry!==undefined){
-	    	var vipSubSelectIndustry = JSON.parse(sessionStorage.vipSubSelectIndustry);
+	    if(sessionStorage.vipSubSelectIndustryUpgrade!==""&&sessionStorage.vipSubSelectIndustryUpgrade!==undefined){
+	    	var vipSubSelectIndustry = JSON.parse(sessionStorage.vipSubSelectIndustryUpgrade);
 	    	var industryArr = [];
 	    	var isAll = "";
 	    	$(".industry-list").show();
@@ -731,6 +738,7 @@
 			}else{
 				$(".industry-list").text("已新增为 : 全部行业");
 			}
+			$(".save_upgrade").removeAttr("disabled");
 	    }
 	    //生效时间
 	    if(sessionStorage.effectiveDate !== ""&&sessionStorage.effectiveDate!==undefined){
@@ -887,8 +895,8 @@
 			var oldPrice = "";
 			var price = "";
 			var effect = "";
-			if(sessionStorage.vipSubSelectArea!==""&&sessionStorage.vipSubSelectArea!==undefined){
-				var vipArea = JSON.parse(sessionStorage.vipSubSelectArea);
+			if(sessionStorage.vipSubSelectAreaUpgrade!==""&&sessionStorage.vipSubSelectAreaUpgrade!==undefined){
+				var vipArea = JSON.parse(sessionStorage.vipSubSelectAreaUpgrade);
 				if(area !== ""&&area !== undefined){
 					for(let province in area){
 			    		let citys = area[province];
@@ -930,8 +938,8 @@
 				}
 			}
 			console.log("areasArr",areasArr)
-			if(sessionStorage.vipSubSelectIndustry!==""&&sessionStorage.vipSubSelectIndustry!==undefined){
-				var vipIndustry = JSON.parse(sessionStorage.vipSubSelectIndustry);
+			if(sessionStorage.vipSubSelectIndustryUpgrade!==""&&sessionStorage.vipSubSelectIndustryUpgrade!==undefined){
+				var vipIndustry = JSON.parse(sessionStorage.vipSubSelectIndustryUpgrade);
 				if(buyerclass!==""&&buyerclass!==undefined){
 					for(let i in buyerclass){
 			    		let industry = buyerclass[i];
@@ -1074,7 +1082,7 @@
 			}
 			
 			console.log("oldPrice", oldPrice);
-			if(sessionStorage.vipSubSelectArea===undefined&&sessionStorage.vipSubSelectIndustry===undefined){
+			if(sessionStorage.vipSubSelectAreaUpgrade===undefined&&sessionStorage.vipSubSelectIndustryUpgrade===undefined){
 				completeMonth = oldMonthPrice
 				completeYear = oldYearPrice
 			}
@@ -1183,8 +1191,8 @@
 	    	sessionStorage.removeItem("upgrade_cycleunit");
 	    	sessionStorage.removeItem("upgrade_price");
 	    	sessionStorage.removeItem("proPrice");
-	    	sessionStorage.removeItem("vipSubSelectArea");
-	    	sessionStorage.removeItem("vipSubSelectIndustry");
+	    	sessionStorage.removeItem("vipSubSelectAreaUpgrade");
+	    	sessionStorage.removeItem("vipSubSelectIndustryUpgrade");
 	    	sessionStorage.removeItem("effectiveDate");
 	    }
 	    

+ 8 - 7
src/web/templates/weixin/wxkeyset/index.html

@@ -162,6 +162,13 @@ $(function(){
 				kwgObj.addClass("hasinput");
 			}
 		}
+		//
+		if(myArray.length>=10){
+			if(isIOS){
+				$("#ten").css("margin-bottom","1rem");
+			}
+			$(".keyWordContent").addClass("_margin_b");
+		}
 	});
 	//帮助按钮
 //	$(".help").click(function(){
@@ -300,12 +307,6 @@ $(function(){
 			$(".keyWordGroup:eq("+focusinputindex+") .keyword").blur();
         }
     }
-	//
-	if(isIOS){
-		if(myArray.length>=10){
-			$("#ten").css("margin-bottom","1rem");
-		}
-	}
 });
 //
 function dissurp(){
@@ -719,7 +720,7 @@ function tointroducepage(){
 		<span class="complate hide">完成</span>
 		<span class="seniorset" style="float: right;font-size: 15px;color: #686868;"><img src="{{Msg "seo" "cdn"}}/images/wxkeyset/set.png" style="width: 17px;margin-right: 4px;margin-top: -3px;">推送设置</span>
 	</div>
-	<div class="keyWordContent _margin_b">
+	<div class="keyWordContent">
 		<div class="keyWordGroup">
 			<lable>1</lable>
 			<div class="keyWordDiv">

Some files were not shown because too many files changed in this diff