Parcourir la source

feature 1001565

参考文献段落的复制功能实现
把helpers模块重命名为libs
Kevin Jiang il y a 2 ans
Parent
commit
1f59c32cf2

+ 1 - 1
src/client/chapterSearch.client.ts

@@ -1,7 +1,7 @@
 import httpClient from "@/services/httpClient";
 import type { Response } from "@/types/response.types"
 import type { ChapterSearchRequest, ChapterSearchResponse } from "@/types/search.types";
-import * as urlHelper from "@/helpers/url.helper"
+import * as urlHelper from "@/libs/url.lib"
 
 const _url = urlHelper.withPrefix("/gw/search/chapter/search")
 

+ 1 - 1
src/client/company.client.ts

@@ -1,7 +1,7 @@
 import httpClient from "@/services/httpClient";
 import type { Company, CompanyAgg } from "@/types/company.types";
 import type { Response } from "@/types/response.types";
-import * as urlHelper from "@/helpers/url.helper"
+import * as urlHelper from "@/libs/url.lib"
 
 const _url = urlHelper.withPrefix("/gw/user");
 

+ 1 - 1
src/client/report.client.ts

@@ -1,7 +1,7 @@
 import httpClient from "@/services/httpClient";
 import type { ReportCreateRequest, ReportSaveRequest } from "@/types/report.types";
 import type { Response } from "@/types/response.types";
-import * as urlHelper from "@/helpers/url.helper"
+import * as urlHelper from "@/libs/url.lib"
 
 const _url = urlHelper.withPrefix('/gw/user/report');
 

+ 1 - 1
src/client/reportTemplate.client.ts

@@ -1,7 +1,7 @@
 import httpClient from "@/services/httpClient";
 import type { ReportTemplateSave, ReportTemplatesResponse } from "@/types/report.types";
 import type { Response } from "@/types/response.types";
-import * as urlHelper from "@/helpers/url.helper"
+import * as urlHelper from "@/libs/url.lib"
 
 const _url = urlHelper.withPrefix('/gw/user/reportTemplate')
 

+ 1 - 1
src/client/reports.client.ts

@@ -1,6 +1,6 @@
 /// 报告列表请求客户端
 
-import { withPrefix } from "@/helpers/url.helper";
+import { withPrefix } from "@/libs/url.lib";
 import httpClient from "@/services/httpClient";
 import type { CompanyAgg } from "@/types/company.types";
 import type { ReportsResponse } from "@/types/report.types";

+ 1 - 1
src/client/search.client.ts

@@ -1,6 +1,6 @@
 import type { SearchRequest } from "@/types/request.types";
 import httpClient from "@/services/httpClient";
-import * as urlHelper from "@/helpers/url.helper"
+import * as urlHelper from "@/libs/url.lib"
 import type { SearchResult } from "@/types/search.types";
 
 const _url = urlHelper.withPrefix("/gw/search/search")

+ 8 - 0
src/libs/clipboard.lib.ts

@@ -0,0 +1,8 @@
+
+export function useClipboard() {
+  function copy(text: string) {
+    return navigator.clipboard.writeText(text)
+  }
+
+  return { copy }
+}

src/helpers/log.helper.ts → src/libs/log.lib.ts


src/helpers/url.helper.ts → src/libs/url.lib.ts


+ 1 - 1
src/views/report/ReportEditorView.vue

@@ -13,7 +13,7 @@ import { ChapterManager } from "@/models/report.model";
 import ChapterEditor from "./components/ChapterEditor.vue";
 import * as reportService from "@/services/report.service";
 import * as reportTemplateService from "@/services/reportTemplate.service"
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 import { message } from "ant-design-vue";
 import TemplateSaveModal from "./components/TemplateSaveModal.vue";
 import type { ReportTemplateModal } from "./reportComponent.types";

+ 1 - 1
src/views/report/ReportListView.vue

@@ -8,7 +8,7 @@ import CompanySelect from "./components/report-list/CompanySelect.vue";
 import ReportItem from './components/report-list/ReportItem.vue';
 import * as reportService from "@/services/report.service"
 import * as reportsService from "@/services/reports.service"
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 import type { ReportBasic } from "@/types/report.types"
 import { routeToReportEditor } from "@/router";
 import SpinComponent from "@/components/SpinComponent.vue";

+ 1 - 1
src/views/report/components/TemplateSaveModal.vue

@@ -2,7 +2,7 @@
 import { onMounted, reactive, ref } from "vue"
 import type { ReportTemplateModal } from "../reportComponent.types";
 import * as reportTemplateService from "@/services/reportTemplate.service"
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 import type { SelectProps } from "ant-design-vue";
 
 const logError = CompLog.logErr("TemplateSaveModal")

+ 1 - 1
src/views/report/components/reference/ReferenceDraw.vue

@@ -6,7 +6,7 @@ import ReferenceSearchBox from "./ReferenceSearchBox.vue";
 import ReferenceSearchResultItem from "./ReferenceSearchResultItem.vue";
 import type { ChapterSearchDocResponse, ChapterSearchRequest } from "@/types/search.types"
 import * as chapterSearchService from "@/services/chapterSearch.service"
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 import SpinComponent from "@/components/SpinComponent.vue";
 
 const props = defineProps({

+ 25 - 2
src/views/report/components/reference/ReferenceSearchResultItem.vue

@@ -1,13 +1,36 @@
 <script setup lang="ts">
+import { useClipboard } from "@/libs/clipboard.lib";
 import type { ChapterSearchDocResponse } from "@/types/search.types";
+import { message } from "ant-design-vue";
 import type { PropType } from "vue";
 
-defineProps({
+const props = defineProps({
   data: {
     type: Object as PropType<ChapterSearchDocResponse>,
     required: true
   }
 });
+
+const clipboard = useClipboard()
+
+function getSelectedText() {
+  if (window.getSelection) {
+    const range = window.getSelection()
+    return range?.toString()
+  } else {
+    message.warning("暂不支持此版本浏览器选择复制")
+  }
+  return null
+}
+
+function onCopy() {
+  const selectedText = getSelectedText()
+  const text = selectedText || props.data.content
+  const msg = selectedText && "复制所选内容成功" || "复制内容成功"
+  clipboard.copy(text).then(() => {
+    message.success(msg)
+  })
+}
 </script>
 
 <template>
@@ -26,7 +49,7 @@ defineProps({
   <div class="btn-group">
     <a-radio-group>
       <a-radio-button value="large">标记使用</a-radio-button>
-      <a-radio-button value="default">复制</a-radio-button>
+      <a-radio-button value="default" @mousedown="onCopy">复制</a-radio-button>
       <a-radio-button value="small">插入</a-radio-button>
     </a-radio-group>
   </div>

+ 1 - 1
src/views/report/components/report-create/RelationCompanyInput.vue

@@ -4,7 +4,7 @@ import { debounce } from "lodash";
 import { PlusOutlined } from '@ant-design/icons-vue';
 import * as companyService from "@/services/company.service";
 import type { SelectProps } from "ant-design-vue";
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 
 const logError = CompLog.logErr("RelationCompanyInput")
 

+ 1 - 1
src/views/reportTemplate/ReportTemplateEditorView.vue

@@ -2,7 +2,7 @@
 <script setup lang="ts">
 import { onMounted, ref, type Ref } from "vue";
 import { useRoute } from "vue-router";
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 import { ChapterManager } from "@/models/report.model";
 import * as reportTemplateService from "@/services/reportTemplate.service"
 import type { Chapter, ChapterType, ReportMetadataItem, ReportTemplateSave } from "@/types/report.types";

+ 1 - 1
src/views/reportTemplate/ReportTemplateListView.vue

@@ -5,7 +5,7 @@ import type { ReportTemplateSave } from '@/types/report.types';
 import ReportTemplateQueryBox from "./components/ReportTemplateQueryBox.vue"
 import type { FieldType } from "./components/ReportTemplateQueryBox.vue"
 import * as reportTemplateService from "@/services/reportTemplate.service"
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 import SpinComponent from "@/components/SpinComponent.vue";
 import { message } from "ant-design-vue";
 

+ 1 - 1
src/views/search/SearchResultView.vue

@@ -13,7 +13,7 @@ import AdvancedSearchBox from "./components/AdvancedSearchBox.vue";
 import type { SearchRouteParam } from "@/types/route.type";
 import type { ResultMode, Sort } from "@/types/search.types";
 import FilterCard from "./components/FilterCard.vue";
-import { CompLog } from "@/helpers/log.helper";
+import { CompLog } from "@/libs/log.lib";
 
 const logError = CompLog.logErr("SearchResultView")