فهرست منبع

feat: 优化业务逻辑

zhangyuhan 1 سال پیش
والد
کامیت
c5ab07cdaa

+ 1 - 0
apps/bigmember_pc/package.json

@@ -10,6 +10,7 @@
     "format": "prettier --write \"./**/*.{,vue,ts,js,json,md}\""
   },
   "dependencies": {
+    "@jy/util": "workspace:^",
     "@jy/data-models": "workspace:^",
     "@jianyu/easy-fix-sub-app": "^0.0.2",
     "@jianyu/easy-inject-qiankun": "^0.1.11",

+ 10 - 6
apps/bigmember_pc/src/composables/attachment-download/component/AttachmentDownload.vue

@@ -195,12 +195,16 @@ export default {
       return this.$confirm(defaultConf.message, defaultConf.title, defaultConf)
     },
     fileDownloadHelp() {
-      this.$dialog.alert({
-        message:
-          '点击附件即为下载,系统会扣除当月附件下载个数;每月1号上月余额清零重新计算,请合理使用。',
-        className: 'j-confirm-dialog',
-        confirmButtonText: '我知道了'
-      })
+      this.$alert(
+        '点击附件即为下载,系统会扣除当月附件下载个数;每月1号上月余额清零重新计算,请合理使用。',
+        '',
+        {
+          confirmButtonText: '我知道了',
+          confirmButtonColor: '#2ABDD1',
+          showClose: false,
+          center: true
+        }
+      )
     },
     async startDownloadFile(file) {
       if (this.isFree) {

+ 10 - 1
apps/bigmember_pc/src/views/article-content/components/RecommendOpportunities.vue

@@ -29,6 +29,7 @@ function createRecommendation(modelName) {
   const list = model.list?.map((item) => ({
     ...item,
     _id: item.id,
+    publishTime: item._o?.publishTime,
     matchKeys: []
   }))
   return {
@@ -85,7 +86,15 @@ const canShowProjectMask = computed(() => {
  *  > 否,留资弹窗
  */
 function doOpenProjectMore() {
-  doOpenCollectDialog()
+  if (canShowProjectMask.value) {
+    doOpenCollectDialog()
+  } else {
+    const name = '超前项目'
+    window.open(
+      `/jylab/supsearch/index.html?tab=2&searchGroup=2&keywords=${name}&selectType=title,content`,
+      '_blank'
+    )
+  }
 }
 
 function doOpenMore(type) {

+ 1 - 1
apps/bigmember_pc/src/views/article-content/composables/useContentStore.js

@@ -70,7 +70,7 @@ async function useContentStore() {
       setPageTDK(model.content.tdk)
     })
 
-  if (AgentInfo.value.baseToken) {
+  if (AgentInfo.value.baseToken && ContentModel.value.isCanRead) {
     await ajaxGetContentOtherInfo({ token: AgentInfo.value.baseToken })
       .then((res) => {
         if (res.error_code === 0) {

+ 45 - 5
apps/bigmember_pc/src/views/article-content/pages/Article.vue

@@ -44,6 +44,7 @@ import ContentHeaderSkeleton from '@/views/article-content/components/ContentHea
 import PoverTimeLine from '@/components/time-line/PoverTimeLine.vue'
 import { useHoverHighlightTextPopover } from '@/views/article-content/composables/useHoverElementClientRect'
 import attachmentDownload from '@/composables/attachment-download/component/AttachmentDownload.vue'
+import { dateFromNow } from '@jy/util'
 
 useContentStore()
 // 判断在哪个容器
@@ -250,14 +251,42 @@ const canShowMask = computed(() => {
 const popoverElement = ref(null)
 const popoverTriggerElement = ref(null)
 
-// 项目名称悬浮窗口
-const projectTimeLine = computed(() => {
-  return timeLineList.value
+// 招标、采购进度
+const winnerTimeLineList = computed(() => {
+  return ContentExpandsModel.value.recommendWinners.list.map((v) => {
+    const tag = v._o.subtype || v._o.toptype || ''
+    return {
+      content: replaceKeyword(
+        v.title,
+        ContentExpandsModel.value.recommendWinners.name,
+        ['<span class="highlight-text">', '</span>']
+      ),
+      s_id: v.id,
+      tags: tag ? [tag] : [],
+      time: v?.time ? dateFromNow(v?.time) : '',
+      isActive: v.isActive
+    }
+  })
+})
+
+// 项目名称、企业名称悬浮窗口
+const popoverTimeLine = computed(() => {
+  if (elementState.value.className.indexOf('project-name') !== -1) {
+    return timeLineList.value
+  }
+  if (
+    elementState.value.text ===
+      ContentExpandsModel.value.recommendWinners.name &&
+    elementState.value.className.indexOf('winner-name') !== -1
+  ) {
+    return winnerTimeLineList.value
+  }
+  return []
 })
 
 const { elementState } = useHoverHighlightTextPopover({
   parentSelector: '.article-page-container',
-  hasClass: 'project-name',
+  hasClass: 'keyword-underline',
   onChangeHover: debounce((isHover) => {
     popoverElement.value.doChangePopover(isHover)
   }, 150)
@@ -457,7 +486,7 @@ const { elementState } = useHoverHighlightTextPopover({
 
     <pover-time-line
       trigger="manual"
-      :stepList="projectTimeLine"
+      :stepList="popoverTimeLine"
       ref="popoverElement"
     >
       <div slot="content" :style="elementState.style"></div>
@@ -504,6 +533,17 @@ const { elementState } = useHoverHighlightTextPopover({
 }
 </style>
 <style lang="scss" scoped>
+.article-page-container {
+  ::v-deep {
+    .step-items:hover .item-label {
+      text-decoration: underline;
+      color: #fe7379;
+      .highlight-text {
+        color: inherit;
+      }
+    }
+  }
+}
 .article-content-footer-container {
   ::v-deep {
     .adsense {

+ 7 - 4
pnpm-lock.yaml

@@ -63,6 +63,9 @@ importers:
       '@jy/data-models':
         specifier: workspace:^
         version: link:../../data/data-models
+      '@jy/util':
+        specifier: workspace:^
+        version: link:../../packages/util
       dayjs:
         specifier: ^1.11.7
         version: 1.11.8
@@ -4428,7 +4431,7 @@ packages:
       regenerator-runtime: 0.13.11
       systemjs: 6.14.3
       terser: 5.19.2
-      vite: 4.3.9(sass@1.71.1)(terser@5.19.2)
+      vite: 4.3.9(less@4.1.3)(sass@1.63.2)(terser@5.19.2)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -4451,7 +4454,7 @@ packages:
       vite: ^3.0.0 || ^4.0.0
       vue: ^2.7.0-0
     dependencies:
-      vite: 4.3.9(sass@1.71.1)(terser@5.19.2)
+      vite: 4.3.9(less@4.1.3)(sass@1.63.2)(terser@5.19.2)
       vue: 2.7.16
     dev: true
 
@@ -13899,7 +13902,7 @@ packages:
       '@types/eslint': 8.44.1
       eslint: 8.37.0
       rollup: 2.79.1
-      vite: 4.3.9(sass@1.71.1)(terser@5.19.2)
+      vite: 4.3.9(less@4.1.3)(sass@1.63.2)(terser@5.19.2)
     dev: true
 
   /vite-plugin-externals@0.6.2(vite@4.3.9):
@@ -13912,7 +13915,7 @@ packages:
       es-module-lexer: 0.4.1
       fs-extra: 10.1.0
       magic-string: 0.25.9
-      vite: 4.3.9(sass@1.71.1)(terser@5.19.2)
+      vite: 4.3.9(less@4.1.3)(sass@1.63.2)(terser@5.19.2)
     dev: true
 
   /vite-plugin-html-redirect@1.0.4: