فهرست منبع

Merge branch 'master' of http://192.168.3.207:10080/jianyu/jy-docs

xgwangman 4 سال پیش
والد
کامیت
c12da9fc70

+ 1 - 0
.gitignore

@@ -29,5 +29,6 @@ yarn-error.log*
 *.7z
 .vscode
 jydocs-mobile/page_docs_app
+jydocs-pc/page_docs
 jydocs-pc/pc
 jydocs-pc/app

+ 3 - 3
jydocs-back/go.mod

@@ -4,9 +4,9 @@ go 1.13
 
 require (
 	app.yhyue.com/moapp/jyPoints v0.0.0-20210324100730-40913089ed41
-	app.yhyue.com/moapp/jy_docs v0.0.0-20210324093828-3326fec4c7df
-	app.yhyue.com/moapp/jybase v0.0.0-20210322021809-141cc2c37946
-	app.yhyue.com/moapp/jyfs v0.0.0-20210319011832-6cf539ddc5cd
+	app.yhyue.com/moapp/jy_docs v0.0.0-20210325090558-b5d95f6bdf53
+	app.yhyue.com/moapp/jybase v0.0.0-20210323023006-c658b04d251a
+	app.yhyue.com/moapp/jyfs v0.0.0-20210319080840-5c8e6e03dce8
 	app.yhyue.com/moapp/message v0.0.0-20210322082125-2a9762351105
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/nsqio/go-nsq v1.0.8

+ 7 - 0
jydocs-back/go.sum

@@ -4,12 +4,18 @@ app.yhyue.com/moapp/jyPoints v0.0.0-20210324100730-40913089ed41 h1:Zmn8VszSX3KIr
 app.yhyue.com/moapp/jyPoints v0.0.0-20210324100730-40913089ed41/go.mod h1:SvP8p5L3jGrejHiH2LXfgCg/NPlFiKBC5Yd0gsI12FU=
 app.yhyue.com/moapp/jy_docs v0.0.0-20210324093828-3326fec4c7df h1:OR5IlGTaeiKVTFAC7VJ5TSgc+tGEjKCY3+2abvr7lrM=
 app.yhyue.com/moapp/jy_docs v0.0.0-20210324093828-3326fec4c7df/go.mod h1:XQ0SPQX4rLnOBelx6WRl8wyRT6T9xhfGzxldglLsBgU=
+app.yhyue.com/moapp/jy_docs v0.0.0-20210325090558-b5d95f6bdf53 h1:As40mbjAgkxkFCzhLxhb48j8zzdr05s86LhHwu5Z3dA=
+app.yhyue.com/moapp/jy_docs v0.0.0-20210325090558-b5d95f6bdf53/go.mod h1:XQ0SPQX4rLnOBelx6WRl8wyRT6T9xhfGzxldglLsBgU=
 app.yhyue.com/moapp/jybase v0.0.0-20210322021809-141cc2c37946 h1:w4voEoJ5RqjlUyGhNC15sk3RdwCCi2U5uX33Btw9BMc=
 app.yhyue.com/moapp/jybase v0.0.0-20210322021809-141cc2c37946/go.mod h1:29ShuI8y7qEyg2KviHSx1iamiCioBKdTMm2ndVzWAhk=
+app.yhyue.com/moapp/jybase v0.0.0-20210323023006-c658b04d251a h1:7L9QklyNN9n1P5PEgkSJ5QqBOoMsLbVLzvT0d7P6j4M=
+app.yhyue.com/moapp/jybase v0.0.0-20210323023006-c658b04d251a/go.mod h1:QpJtp2BNGvlF01JeeY+OUeqgx91MBq75d6tkzlOpf48=
 app.yhyue.com/moapp/jyfs v0.0.0-20210309070327-ecad67beabb8 h1:Mg5E4O+5mCjRyW2b4/bNRQMz8ilzWfa7qaOjKT7SNRY=
 app.yhyue.com/moapp/jyfs v0.0.0-20210309070327-ecad67beabb8/go.mod h1:iflE6z/Ee5f7YZy2DSj7S6asyL1yCbu3BjK/xMYMiDY=
 app.yhyue.com/moapp/jyfs v0.0.0-20210319011832-6cf539ddc5cd h1:9BfrTYqDEeF41+CWT26fstOiMio0GKl5jgIrBeWZFkY=
 app.yhyue.com/moapp/jyfs v0.0.0-20210319011832-6cf539ddc5cd/go.mod h1:iflE6z/Ee5f7YZy2DSj7S6asyL1yCbu3BjK/xMYMiDY=
+app.yhyue.com/moapp/jyfs v0.0.0-20210319080840-5c8e6e03dce8 h1:eryDoXGTP/iUWOSU5zddPkW9WH6A/ZvEXcLujQBr16A=
+app.yhyue.com/moapp/jyfs v0.0.0-20210319080840-5c8e6e03dce8/go.mod h1:iflE6z/Ee5f7YZy2DSj7S6asyL1yCbu3BjK/xMYMiDY=
 app.yhyue.com/moapp/message v0.0.0-20210322082125-2a9762351105 h1:XT+Gwe8Axff2pkcpoQb0a31ZtAiLoFzlEc4RvVTtCEk=
 app.yhyue.com/moapp/message v0.0.0-20210322082125-2a9762351105/go.mod h1:ZkUh8EKI2GgWNuV5XAgS1fAZdJKbe4zgR+DO3ZuQFFs=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
@@ -76,6 +82,7 @@ github.com/dchest/siphash v1.2.1/go.mod h1:q+IRvb2gOSrUnYoPqHiyHXS0FOBBOdl6tONBl
 github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
 github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/donnie4w/go-logger v0.0.0-20170827050443-4740c51383f4/go.mod h1:L7S4x0R7vv3xoOhGuyAJyCO2MYzWOpccM4Isn8jIUgY=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4 h1:qk/FSDDxo05wdJH28W+p5yivv7LuLYLRXPPD8KQCtZs=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=

+ 2 - 1
jydocs-back/public/db.go

@@ -93,7 +93,7 @@ func init() {
 
 //分享打开文库赚积分
 func OpenShareJydoc(fromId, openId, docId string) {
-	fromId = encrypt.SE.DecodeStringByCheck(fromId)
+	fromId = encrypt.SE.Decode4Hex(fromId)
 	if fromId == "" || openId == fromId || openId == "" || docId == "" {
 		return
 	}
@@ -101,6 +101,7 @@ func OpenShareJydoc(fromId, openId, docId string) {
 	if MQFW.Count("user", map[string]interface{}{
 		"_id": mongodb.StringTOBsonId(fromId),
 	}) == 0 {
+		log.Printf("%s分享%s打开%s 未找到用户\n", fromId, openId, docId)
 		return
 	}
 	key := fmt.Sprintf("integral_article_%s_%s_%s", docId, fromId, openId)

+ 1 - 1
jydocs-back/servers/share.go

@@ -47,7 +47,7 @@ func (share *Share) ShareImg() {
 }
 
 func getDocShareUrl(userId, docId string) string {
-	enUserId := encrypt.SE.EncodeStringByCheck(userId)
+	enUserId := encrypt.SE.Encode2Hex(userId)
 	toHref := url.QueryEscape(fmt.Sprintf("/page_docs_app/details/%s?from=%s", docId, enUserId)) //关注跳转页面
 	unHref := url.QueryEscape(fmt.Sprintf("/swordfish/about?from=%s", enUserId))                 //为关注跳转页面
 	log.Println(fmt.Sprintf(config.JyDocsAppConfig.ShareUrl+"?toHref=%s&unHref=%s", toHref, unHref))

+ 1 - 3
jydocs-mobile/src/api/main.ts

@@ -122,9 +122,7 @@ export function getListDetail (data: any) {
 }
 
 // 获取绑定的手机号
-
-export function getAccountInfo (data: any) {
-  data = qs.stringify(data)
+export function getAccountInfo () {
   return $request({
     baseURL: '',
     url: '/jypay/user/getAccountInfo',

+ 2 - 3
jydocs-mobile/src/components/docs-card/Price.vue

@@ -28,15 +28,14 @@ export default class Price extends Vue {
 .price-container {
   display: flex;
   align-items: center;
-  @include diy-icon('iconLogoLight', 22, 22);
+  @include diy-icon('iconLogoLight', 20, 20);
 
   .p-r {
     margin-left: 4px;
-    font-size: 18px;
+    font-size: 14px;
     color: #ff3a20;
     &.bought {
       color: $color_main;
-      font-size: 14px;
     }
   }
 }

+ 2 - 2
jydocs-mobile/src/store/modules/main.ts

@@ -239,9 +239,9 @@ const modulesOption: modulesOption = {
       } catch (error) {}
     },
     // 获取绑定手机号
-    async getAccountInfo (state, data) {
+    async getAccountInfo () {
       try {
-        const res = await getAccountInfo(data)
+        const res = await getAccountInfo()
         return res.data
       } catch (error) {}
     }

+ 1 - 0
jydocs-mobile/src/utils/index.ts

@@ -12,6 +12,7 @@ Vue.prototype.$env = {
   isAndroid: isAndroidOrIos === 'android',
   isIOS: isAndroidOrIos === 'ios'
 }
+Vue.prototype.$firstUrl = location.href.split('#')[0]
 
 // 正式环境下屏蔽console.log
 if (process.env.NODE_ENV === 'production') {

+ 2 - 8
jydocs-mobile/src/utils/wxShare.ts

@@ -13,7 +13,6 @@ declare module 'vue/types/vue' {
 
 const inWeiXinBrowser = isWeiXinBrowser()
 const isAndroidOrIos = androidOrIOS()
-const firstUrl = location.href.split('#')[0]
 
 export async function getSdkSign (url: string) {
   const sdkInfo = await getWxSdkSign({ url })
@@ -31,19 +30,14 @@ export async function getSdkSign (url: string) {
 }
 
 /* 微信自定义分享封装函数 */
-/**
- * url:获取微信分享签名的url地址
- * isShare:当前所在路径是否需要分享
- *  */
 export async function weChatShare (options: any) {
   if (!inWeiXinBrowser) return
 
   const device = isAndroidOrIos
   // 获取并注册sdkSign
-  const url = location.href.split('#')[0]
+  let url = location.href.split('#')[0]
   if (device === 'ios') {
-    // url = firstUrl
-    console.log(firstUrl)
+    url = (Vue as any).prototype.$firstUrl
   }
   const wxSdk: any = await getSdkSign(url)
   Vue.prototype.$wxSdk = wxSdk

+ 20 - 5
jydocs-mobile/src/views/Home.vue

@@ -12,12 +12,12 @@
           <div class="flex flex-r-c center left">
             <van-icon :name="'diy-' + item.type" />
             <div class="flex">
-              <div class="van-ellipsis">{{item.title}}</div>
+              <div class="van-ellipsis d-title">{{item.title}}</div>
             </div>
           </div>
           <div class="right-info flex-r-c center right">
             <van-icon name="diy-iconJianYu" />
-            <span>{{item.money}}</span>
+            <span class="price-text">{{item.money}}</span>
           </div>
         </div>
         </van-skeleton>
@@ -34,12 +34,12 @@
           <div class="flex flex-r-c center left">
             <van-icon :name="'diy-' + item.type" />
             <div class="flex">
-              <div class="van-ellipsis">{{item.title}}</div>
+              <div class="van-ellipsis d-title">{{item.title}}</div>
             </div>
           </div>
           <div class="right-info flex-r-c center right">
             <van-icon name="diy-iconJianYu" />
-            <span>{{item.money}}</span>
+            <span class="price-text">{{item.money}}</span>
           </div>
         </div>
         </van-skeleton>
@@ -148,6 +148,15 @@ export default class extends Vue {
   padding-bottom: 40px;
   box-sizing: border-box;
 
+  .d-title {
+    font-size: 14px;
+    line-height: 20px;
+  }
+  .price-text {
+    font-size: 13px;
+    line-height: 28px;
+  }
+
   ::v-deep .van-loading-skeleton {
     &.line-style {
       .van-skeleton__row {
@@ -279,12 +288,18 @@ export default class extends Vue {
       margin-bottom: 4px;
       box-sizing: border-box;
       color: #171826;
-      font-family: PingFang SC;
       font-size: 18px;
       line-height: 26px;
       letter-spacing: 0px;
       text-align: left;
 
+      h5 {
+        color: #171826;
+        font-size: 18px;
+        line-height: 26px;
+        letter-spacing: 0px;
+      }
+
       span {
         display: inline-block;
         width: 3px;

+ 0 - 1
jydocs-mobile/src/views/Search.vue

@@ -165,7 +165,6 @@ export default class extends Vue {
   }
 
   onFocus () {
-    console.log('fffff')
     const dom = document.querySelector('#mySearch input') as HTMLInputElement
     if (dom) {
       this.$nextTick(() => {

+ 0 - 1
jydocs-mobile/src/views/details/details.vue

@@ -161,7 +161,6 @@ export default class extends Vue {
   }
 
   updateText (data: any) {
-    // console.log(data)
     switch (data.type) {
       case 'count': {
         ;(document.getElementById('page_count') as HTMLDivElement).textContent = data.value

+ 1 - 10
jydocs-mobile/src/views/purchase/purchase.vue

@@ -140,12 +140,6 @@ export default class extends Vue {
 
   // 判断按钮是否可以点击
   iptValue () {
-    let bool = this.validator(this.tel)
-    if (this.tel === '') {
-      bool = true
-    } else {
-      bool = false
-    }
     this.getBool(this.validator(this.tel))
   }
 
@@ -175,15 +169,13 @@ export default class extends Vue {
   // 文档信息
   async getWordInfor () {
     this.getDetails({ docId: this.sessioninfor.query }).then((res: any) => {
-      console.log(res)
       const item = res.data.detail
       if (res.error_code === 0) {
-        this.response = item
+        Object.assign(this.response, item)
       }
     })
 
     this.getListDetail({ B: true }).then((res: any) => {
-      console.log(res)
       if (res.error_code === 0) {
         this.response.balance = res.data.points.balance
       }
@@ -191,7 +183,6 @@ export default class extends Vue {
 
     // 获取绑定的手机号
     this.getAccountInfo().then((res: any) => {
-      console.log(res)
       this.tel = res.data.phone
     })
   }

+ 1 - 1
jydocs-mobile/src/views/purchase/purchasesuccess.vue

@@ -62,7 +62,7 @@ export default class extends Vue {
     currency: 0
   }
 
-  beforeRouteLeave (to, from, next) {
+  beforeRouteLeave (to: any, from: any, next: any) {
     if (this.timer) {
       clearInterval(this.timer)
     }

+ 1 - 1
jydocs-pc/.env.production

@@ -1,5 +1,5 @@
 NODE_ENV=production
 VUE_APP_BASE_API='/jydocs/'
-VUE_APP_BASE_URL='/swordfish/docs/index'
+VUE_APP_BASE_URL='/swordfish/docs'
 VUE_APP_BASE_PUBLIC='/page_docs/'
 VUE_APP_LOG_URL='https://www.jianyu360.com/jyLogs/actionInfo?logAction='

+ 1 - 1
jydocs-pc/.env.test

@@ -1,5 +1,5 @@
 NODE_ENV=production
 VUE_APP_BASE_API='/jydocs/'
-VUE_APP_BASE_URL='/swordfish/docs/index'
+VUE_APP_BASE_URL='/swordfish/docs'
 VUE_APP_BASE_PUBLIC='/page_docs/'
 VUE_APP_LOG_URL='https://web2-jytest.jydev.jianyu360.com/jyLogs/actionInfo?logAction='

+ 1 - 1
jydocs-pc/src/api/mock/detail.json

@@ -10,7 +10,7 @@
       "price": 359,
       "docFileSize": 387,
       "docPageSize": 5,
-      "tags": "法律法规,行政法规",
+      "tags": "招标,测试,行业报告,1,2,3,4,行政法规",
       "uploadDate": "2021-03-17 15:46:04",
       "viewTimes": 55,
       "downTimes": 6,

+ 1 - 0
jydocs-pc/src/components/NoData.vue

@@ -24,6 +24,7 @@ export default {
   text-align: center;
   .el-image {
     width: 220px;
+    overflow: visible;
   }
   .tip-text {
     margin-top: 14px;

+ 37 - 3
jydocs-pc/src/views/Content.vue

@@ -10,7 +10,7 @@
             </h3>
             <div class="tips">
                 <ul>
-                    <li class="tags" v-for="item in datas.tags" :key="item">{{item}}</li>
+                    <li class="tags" v-for="item in getContentTags" :key="item">{{item}}</li>
                     <li>{{datas.viewTimes}}次浏览<el-divider direction="vertical"></el-divider></li>
                     <li>{{datas.downTimes}}次下载<el-divider direction="vertical"></el-divider></li>
                     <li>共{{datas.docPageSize}}页<el-divider direction="vertical"></el-divider></li>
@@ -91,6 +91,8 @@ import { Button, Tooltip, Divider, Message } from 'element-ui'
 import { getDetails, getShow, getRecommend, getDown, getAdverse, getCoin, getAdd, getRemove } from '../api/modules/detail'
 import { formatSize, dateFormatter } from '@/utils/'
 import vRecommend from '@/components/recommend'
+import { getSearchTag } from "../api/modules/home";
+import { recoveryPageData } from "../utils";
 export default {
   components: {
     [Button.name]: Button,
@@ -130,7 +132,8 @@ export default {
       },
       pData: {
         heightList: []
-      }
+      },
+      tabs: []
     }
   },
   created () {
@@ -144,9 +147,27 @@ export default {
     // 监听滚轮
     window.addEventListener('scroll', this.initHeight)
   },
+  beforeMount () {
+    this.tabs = recoveryPageData('jy-docs-search-tags-pc')
+    this.getTags()
+  },
   destroyed () { // 移除监听
     window.removeEventListener('scroll', this.initHeight)
   },
+  computed: {
+    getContentTags () {
+      const a=new Set(this.datas.tags)
+      const b=new Set(this.tabs.map(v => v.type))
+      const arr = Array.from(new Set([...b].filter(x => a.has(x))))
+
+      const oldArr = Array.from(a)
+      arr.forEach(v => {
+        oldArr.splice(oldArr.indexOf(v), 1)
+      })
+      const nArr = arr.concat(oldArr)
+      return nArr.splice(0,3)
+    }
+  },
   methods: {
     setTop () {
       this.$nextTick(() => {
@@ -261,6 +282,19 @@ export default {
         })
       })
     },
+    getTags () {
+      getSearchTag().then(res => {
+        if (!res.data.error_msg.length) {
+          this.tabs = res.data.data.map(v => {
+            return {
+              type: v,
+              label: v
+            }
+          })
+          sessionStorage.setItem('jy-docs-search-tags-pc', JSON.stringify(this.tabs))
+        }
+      })
+    },
     details () {
       getDetails({ docId: this.docIds, from: this.$route.query.from }).then(res => {
         if (res.data.error_code === 0) {
@@ -268,7 +302,7 @@ export default {
           this.datas.docFileSize = formatSize(this.datas.docFileSize)
           this.datas.uploadDate = dateFormatter(this.datas.uploadDate, 'yyyy/MM/dd')
           this.datas.docSummary = this.datas.docSummary.split('').length >= 500 ? this.datas.docSummary + '...' : this.datas.docSummary
-          this.datas.tags = this.datas.tags.split(',').slice(0, 3)
+          this.datas.tags = this.datas.tags.split(',')
           this.buyed = res.data.data.status
           if (this.buyed === 1) {
             document.getElementById('fixedTop').style.display = 'block'

+ 1 - 1
jydocs-pc/vue.config.js

@@ -1,7 +1,7 @@
 module.exports = {
   parallel: false,
   productionSourceMap: false,
-  outputDir: './dist',
+  outputDir: 'page_docs',
   publicPath: process.env.VUE_APP_BASE_PUBLIC,
   lintOnSave: true,
   devServer: {