Эх сурвалжийг харах

feat:公共函数、mixin函数、数据源更新

yangfeng 1 жил өмнө
parent
commit
9c54a2dd7b

+ 45 - 0
apps/bigmember_pc/src/assets/js/selector.js

@@ -711,3 +711,48 @@ export const keywordMatchTypeList = [
     auth: true
   }
 ]
+
+// 金额区间
+export const amountRangeData = [
+  {
+    value: '',
+    label: '全部金额'
+  },
+  {
+    value: '0-10',
+    label: '0-10万'
+  },
+  {
+    value: '10-20',
+    label: '10-20万'
+  },
+  {
+    value: '20-50',
+    label: '20-50万'
+  },
+  {
+    value: '50-100',
+    label: '50-100万'
+  },
+  {
+    value: '100-200',
+    label: '100-200万'
+  },
+  {
+    value: '200-500',
+    label: '200-500万'
+  },
+  {
+    value: '500-1000',
+    label: '500-1000万'
+  },
+  {
+    value: '1000-',
+    label: '1000万以上'
+  },
+  {
+    value: '0',
+    label: '自定义',
+    disabled: true
+  }
+]

+ 16 - 0
apps/bigmember_pc/src/utils/globalFunctions.js

@@ -772,3 +772,19 @@ export function calcShadowRootEvent(e) {
 export function getAssetsFile(url) {
   return new URL(`../assets/images/${url}`, import.meta.url).href
 }
+
+/**
+ * @description: 提取正文中的关键词并定位到关键词匹配成功的那句话进行展示(高亮关键词前最多展示**个字符截取并保留后面的内容,应用场景:搜索、订阅列表正文匹配)
+ * @param text - 正文内容
+ * @param keywords - 要匹配的关键词 String || Array
+ * @param n - 定位到第几个字符位置 默认为10
+ */
+export function  extractKeywords(text, keywords, n = 10) {
+  if (!text) return
+  if (!keywords || !keywords.length) return text
+  const value = Array.isArray(keywords) ? keywords[0] : keywords
+  const regex = new RegExp("(.{0," + n + "}" + value + ".*)")
+  const result = text.match(regex)
+  // 输出结果
+  return result && result[1] ? result[1] : text
+}

+ 37 - 40
apps/bigmember_pc/src/utils/mixins/subscribe-setting-prompt.js

@@ -12,11 +12,13 @@ export const mixinNoOpenSetMessage = {
   },
   props: {},
   watch: {
-    setStatus(val) {
-      console.log(val, 'setStatus')
-      if (!val) {
-        this.initSetPrompt()
-      }
+    setStatus: {
+      handler(val) {
+        if (!val) {
+          this.initSetPrompt()
+        }
+      },
+      deep: true
     }
   },
   data() {
@@ -25,9 +27,6 @@ export const mixinNoOpenSetMessage = {
       clickLock: false
     }
   },
-  mounted() {
-    this.initSetPrompt()
-  },
   methods: {
     initSetPrompt() {
       this.$nextTick(() => {
@@ -76,8 +75,7 @@ export const mixinNoOpenSetMessage = {
             if (action === 'confirm') {
               console.log('开启订阅设置开关')
               // 调用api打开
-              this.setStatus = true
-              this.$forceUpdate()
+              this.setSwitchCallback()
             }
           }
         })
@@ -85,37 +83,36 @@ export const mixinNoOpenSetMessage = {
     },
     async closeSetPrompt () {
       const h = this.$createElement
-        return await MessageBox({
-          title: '确定关闭订阅?',
-          customClass: 'custom-message-box',
-          confirmButtonText: '确定',
-          confirmButtonClass: 'custom-confirm-btn',
-          cancelButtonText: '取消',
-          cancelButtonClass: 'custom-cancel-btn',
-          message: h(
-            'div',
-            {
-              class: 'message-text',
-              style: 'font-size: 14px;color: #686868;line-height: 24px;'
-            },
-            [
-              h('span', null, '关闭订阅,将错过最新招标动态推送')
-            ]
-          ),
-          showClose: false,
-          showCancelButton: true,
-          closeOnClickModal: false,
-          center: true,
-          callback: (action, instance) => {
-            // console.log(action, instance)
-            if (action === 'confirm') {
-              console.log('关闭订阅设置开关')
-              // 调用api关闭
-              this.setStatus = false
-              this.$forceUpdate()
-            }
+      return await MessageBox({
+        title: '确定关闭订阅?',
+        customClass: 'custom-message-box',
+        confirmButtonText: '确定',
+        confirmButtonClass: 'custom-confirm-btn',
+        cancelButtonText: '取消',
+        cancelButtonClass: 'custom-cancel-btn',
+        message: h(
+          'div',
+          {
+            class: 'message-text',
+            style: 'font-size: 14px;color: #686868;line-height: 24px;'
+          },
+          [
+            h('span', null, '关闭订阅,将错过最新招标动态推送')
+          ]
+        ),
+        showClose: false,
+        showCancelButton: true,
+        closeOnClickModal: false,
+        center: true,
+        callback: (action, instance) => {
+          // console.log(action, instance)
+          if (action === 'confirm') {
+            console.log('关闭订阅设置开关')
+            // 调用api关闭
+            this.setSwitchCallback()
           }
-        })
+        }
+      })
     }
   }
 }