@ditari/bsui 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cjs/components/components.cjs.js +1 -1
  2. package/dist/cjs/components/components.d.ts +1 -0
  3. package/dist/cjs/components/index.cjs.js +1 -1
  4. package/dist/cjs/components/layout/NavTabs.vue.cjs.js +1 -1
  5. package/dist/cjs/components/select/Select.vue.cjs.js +1 -0
  6. package/dist/cjs/components/select/Select.vue.cjs2.js +1 -0
  7. package/dist/cjs/components/select/Select.vue.d.ts +53 -0
  8. package/dist/cjs/components/select/index.cjs.js +1 -0
  9. package/dist/cjs/components/select/index.d.ts +52 -0
  10. package/dist/cjs/components/table/Table.vue.cjs.js +1 -1
  11. package/dist/cjs/components/table/Table.vue.d.ts +11 -0
  12. package/dist/cjs/components/table/index.d.ts +11 -0
  13. package/dist/cjs/store/modules/NavTab.cjs.js +1 -1
  14. package/dist/css/index.css +1 -1
  15. package/dist/css/layout/style/index.css +1 -1
  16. package/dist/css/layout/style/navtab.css +1 -1
  17. package/dist/css/layout/style/show.css +1 -1
  18. package/dist/esm/assets/dic-worker-3d338b91.js +1 -0
  19. package/dist/esm/components/components.d.ts +1 -0
  20. package/dist/esm/components/components.esm.js +12 -10
  21. package/dist/esm/components/index.esm.js +12 -10
  22. package/dist/esm/components/layout/NavTabs.vue.esm.js +33 -31
  23. package/dist/esm/components/select/Select.vue.d.ts +53 -0
  24. package/dist/esm/components/select/Select.vue.esm.js +105 -0
  25. package/dist/esm/components/select/Select.vue.esm2.js +4 -0
  26. package/dist/esm/components/select/index.d.ts +52 -0
  27. package/dist/esm/components/select/index.esm.js +7 -0
  28. package/dist/esm/components/table/Table.vue.d.ts +11 -0
  29. package/dist/esm/components/table/Table.vue.esm.js +43 -42
  30. package/dist/esm/components/table/index.d.ts +11 -0
  31. package/dist/esm/store/modules/NavTab.esm.js +1 -3
  32. package/dist/style/layout/style/navtab.scss +14 -4
  33. package/dist/style/layout/style/show.scss +2 -2
  34. package/dist/style/theme/variable.scss +1 -1
  35. package/package.json +5 -2
  36. package/src/components/components.ts +1 -0
  37. package/src/components/layout/NavTabs.vue +6 -4
  38. package/src/components/layout/style/navtab.scss +14 -4
  39. package/src/components/layout/style/show.scss +2 -2
  40. package/src/components/select/Select.vue +52 -21
  41. package/src/components/select/dic-worker.ts +23 -0
  42. package/src/components/select/index.ts +5 -0
  43. package/src/components/table/Table.vue +4 -0
  44. package/src/components/theme/variable.scss +1 -1
  45. package/src/store/modules/NavTab.ts +1 -3
  46. package/src/store/modules/test/index.ts +3 -0
  47. package/src/tsconfig.json +2 -1
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { watch, ref } from "vue";
3
- import { useDic } from "@dth-doned/hooks";
3
+ import { useDataDicStore } from "../../store/modules/DataDictionary";
4
4
 
5
5
  interface Props {
6
6
  value: any;
@@ -18,43 +18,74 @@ const props = withDefaults(defineProps<Props>(), {
18
18
 
19
19
  interface Emits {
20
20
  (e: "update:value", value: any): void;
21
+ (e: "change", value: any): void;
21
22
  }
22
23
  const emits = defineEmits<Emits>();
24
+ const { getDicByKey, list } = useDataDicStore();
23
25
 
24
26
  const { modelValue, data, onSearch, onSelect } = useSelect();
25
- function useSelect() {
26
- const { getDic } = useDic();
27
- const dicData = getDic(props.name);
28
27
 
28
+ function useSelect() {
29
+ // 保存worker启动状态
30
+ let workerStatus = true;
31
+ let dicData: any[] = [];
29
32
  const data = ref(dicData);
33
+ // 取值
30
34
  const modelValue = ref(props.value);
35
+ // 创建worker
36
+ const worker = new Worker(new URL("./dic-worker", import.meta.url), {
37
+ type: "module"
38
+ });
39
+ /**
40
+ * web worker 启动失败
41
+ */
42
+ worker.onerror = () => {
43
+ workerStatus = false;
44
+ // 启动失败使用store
45
+ dicData = getDicByKey(props.name);
46
+ };
47
+ /**
48
+ * 监听web worker发送的数据
49
+ * @param e
50
+ */
51
+ worker.onmessage = (e) => {
52
+ // 赋值给下拉选择数据变量
53
+ data.value = [...e.data];
54
+ };
55
+
56
+ // 首次创建的时候发送
57
+ sendWorkerSearch(modelValue.value);
31
58
 
32
59
  //监听用户搜索事件
33
- const onSearch = (value: string) => {
34
- data.value = dicData.filter((item: any) => {
35
- return (
36
- item.value.toLowerCase().indexOf(value.toLowerCase()) !== -1 ||
37
- item.label.toLowerCase().includes(value.toLowerCase())
38
- );
39
- });
60
+ const onSearch = (keywords: string) => {
61
+ if (workerStatus) {
62
+ sendWorkerSearch(keywords);
63
+ } else {
64
+ data.value = dicData
65
+ .filter((item: any) => {
66
+ return (
67
+ item.value.toLowerCase().indexOf(keywords.toLowerCase()) !== -1 ||
68
+ item.label.toLowerCase().includes(keywords.toLowerCase())
69
+ );
70
+ })
71
+ .splice(0, 10);
72
+ }
40
73
  };
41
74
 
75
+ function sendWorkerSearch(keywords: string) {
76
+ worker.postMessage({
77
+ list: JSON.stringify(list[props.name]),
78
+ keywords: keywords
79
+ });
80
+ }
81
+
42
82
  //监听下拉选择事件
43
83
  const onSelect = (value: any) => {
44
84
  // 发射选择的数据
45
85
  emits("update:value", value);
86
+ emits("change", value);
46
87
  };
47
88
 
48
- //监听数据变化
49
- watch(
50
- () => props.value,
51
- (val) => {
52
- modelValue.value = val;
53
- if (!val) {
54
- data.value = dicData;
55
- }
56
- }
57
- );
58
89
  return {
59
90
  data,
60
91
  modelValue,
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 字典处理worker
3
+ */
4
+
5
+ self.addEventListener(
6
+ "message",
7
+ function (e) {
8
+ const keyword = e.data.keywords || "";
9
+ const parseData = JSON.parse(e.data.list);
10
+ const filterRs = parseData.filter((item: any) => {
11
+ return (
12
+ item.value.toLowerCase().indexOf(keyword.toLowerCase()) !== -1 ||
13
+ item.label.toLowerCase().includes(keyword.toLowerCase())
14
+ );
15
+ });
16
+ if (filterRs.length === 0) {
17
+ self.postMessage(parseData.splice(0, 10));
18
+ } else {
19
+ self.postMessage(filterRs.splice(0, 10));
20
+ }
21
+ },
22
+ false
23
+ );
@@ -0,0 +1,5 @@
1
+ import { withInstall } from "../../utils/index";
2
+ import Select from "./Select.vue";
3
+
4
+ export const DSelect = withInstall(Select);
5
+ export default DSelect;
@@ -11,6 +11,7 @@ type Key = string | number;
11
11
  interface Props {
12
12
  bordered?: boolean;
13
13
  keys?: Ref<Key[]>;
14
+ size?: string;
14
15
  columns: any; //表格配置
15
16
  data: any; //数据源
16
17
  rowKey?: string; //主键id
@@ -25,6 +26,7 @@ interface Props {
25
26
  const props = withDefaults(defineProps<Props>(), {
26
27
  bordered: false,
27
28
  keys: undefined,
29
+ size: "small",
28
30
  columns: [],
29
31
  data: [],
30
32
  rowKey: "id",
@@ -345,6 +347,7 @@ export default {
345
347
  :custom-row="customRow"
346
348
  :loading="loading"
347
349
  :row-selection="rowSelection"
350
+ :size="size ?? 'small'"
348
351
  :scroll="{
349
352
  scrollToFirstRowOnChange: true,
350
353
  x: '100%',
@@ -374,6 +377,7 @@ export default {
374
377
  class="xi-pagination"
375
378
  :disabled="loading"
376
379
  show-size-changer
380
+ :size="configProvider.componentSize ?? 'middle '"
377
381
  :hide-on-single-page="paginationConfig.hideOnSinglePage"
378
382
  :show-quick-jumper="paginationConfig.showQuickJumper"
379
383
  :default-page-size="paginationConfig.defaultPageSize"
@@ -15,7 +15,7 @@ $grid-input-error-border-color: #ff4d4f !default;
15
15
  $grid-input-border-width: 2px !default;
16
16
  // 网格边框宽度
17
17
  $gird-border-width: 1px !default;
18
-
18
+ $gird-error-display: block !default;
19
19
  // show头部阴影
20
20
  $box-shadow-color: #e0e0e0 !default;
21
21
 
@@ -50,9 +50,7 @@ export const useNavTabsStore = defineStore(NAV_TAB_ID, {
50
50
  * @param route
51
51
  */
52
52
  save(route: RouteLocationNormalized) {
53
- const flag = this.list.some(
54
- (item: INavTab) => item.fullPath === route.fullPath
55
- );
53
+ const flag = this.list.some((item: INavTab) => item.path === route.path);
56
54
  if (flag) {
57
55
  return;
58
56
  }
@@ -0,0 +1,3 @@
1
+ import { defineStore } from "pinia";
2
+
3
+ export const useTestStore = defineStore("testid", {});
package/src/tsconfig.json CHANGED
@@ -7,7 +7,8 @@
7
7
  "module": "ESNext",
8
8
  "skipLibCheck": true,
9
9
  "esModuleInterop": true,
10
- "moduleResolution": "Node",
10
+ "declaration": true,
11
+ "moduleResolution": "node",
11
12
  "allowJs": true,
12
13
  "lib": ["esnext", "dom"],
13
14
  "types": ["pinia-plugin-persistedstate"],