cnhis-design-vue 0.3.1-beta → 0.3.4-beta

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 (82) hide show
  1. package/env.d.ts +2 -0
  2. package/es/big-table/index.css +2 -0
  3. package/es/big-table/index.js +42785 -4
  4. package/es/button-print/index.css +3 -1
  5. package/es/button-print/index.js +21615 -3
  6. package/es/drag-layout/index.css +4 -2
  7. package/es/drag-layout/index.js +13173 -9
  8. package/es/grid/index.css +3 -1
  9. package/es/grid/index.js +30828 -1
  10. package/es/index.css +3 -1
  11. package/es/index.js +53358 -10
  12. package/package.json +11 -3
  13. package/packages/big-table/index.ts +17 -0
  14. package/packages/big-table/src/BigTable.vue +2513 -0
  15. package/packages/big-table/src/assets/iconfont/iconfont.less +21 -0
  16. package/packages/big-table/src/assets/iconfont/iconfont.ttf +0 -0
  17. package/packages/big-table/src/assets/img/failure.png +0 -0
  18. package/packages/big-table/src/assets/img/icon-asc.png +0 -0
  19. package/packages/big-table/src/assets/img/icon-desc.png +0 -0
  20. package/packages/big-table/src/assets/img/no-permission.png +0 -0
  21. package/packages/big-table/src/assets/img/nodata.png +0 -0
  22. package/packages/big-table/src/assets/img/notfound.png +0 -0
  23. package/packages/big-table/src/assets/img/qr.png +0 -0
  24. package/packages/big-table/src/assets/img/video_default_cover.png +0 -0
  25. package/packages/big-table/src/assets/img/xb_big.png +0 -0
  26. package/packages/big-table/src/assets/img/xb_small.png +0 -0
  27. package/packages/big-table/src/assets/style/table-base.less +275 -0
  28. package/packages/big-table/src/assets/style/table-global.less +167 -0
  29. package/packages/big-table/src/bigTableEmits.ts +46 -0
  30. package/packages/big-table/src/bigTableProps.ts +125 -0
  31. package/packages/big-table/src/bigTableState.ts +62 -0
  32. package/packages/big-table/src/components/NoData.vue +90 -0
  33. package/packages/big-table/src/components/SvgIcon.vue +49 -0
  34. package/packages/big-table/src/components/TextOverTooltip.vue +110 -0
  35. package/packages/big-table/src/components/edit-form/EditForm.vue +426 -0
  36. package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +66 -0
  37. package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +60 -0
  38. package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +38 -0
  39. package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +89 -0
  40. package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +38 -0
  41. package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +63 -0
  42. package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +69 -0
  43. package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +51 -0
  44. package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +60 -0
  45. package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +34 -0
  46. package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +42 -0
  47. package/packages/big-table/src/components/edit-form/edit-component/editFormProps.ts +91 -0
  48. package/packages/big-table/src/components/edit-form/edit-component/register-com.ts +18 -0
  49. package/packages/big-table/src/components/edit-form/hooks/useConfigData.ts +79 -0
  50. package/packages/big-table/src/components/edit-form/hooks/useDateType.ts +184 -0
  51. package/packages/big-table/src/components/edit-form/hooks/useFormCommon.ts +373 -0
  52. package/packages/big-table/src/components/edit-form/hooks/useItemDefault.ts +638 -0
  53. package/packages/big-table/src/components/edit-form/hooks/useSearch.ts +910 -0
  54. package/packages/big-table/src/components/edit-form/hooks/useValidateRules.ts +387 -0
  55. package/packages/big-table/src/components/edit-form/interface.ts +53 -0
  56. package/packages/big-table/src/components/edit-form/types.ts +3 -0
  57. package/packages/big-table/src/components/edit-form/utils.ts +247 -0
  58. package/packages/big-table/src/hooks/useBatchEditing.ts +574 -0
  59. package/packages/big-table/src/hooks/useFormat.ts +612 -0
  60. package/packages/big-table/src/hooks/useNestTable.ts +109 -0
  61. package/packages/big-table/src/hooks/useTableParse.ts +169 -0
  62. package/packages/big-table/src/utils.ts +705 -0
  63. package/packages/button-print/index.ts +15 -0
  64. package/packages/button-print/src/ButtonPrint.vue +697 -0
  65. package/packages/button-print/src/components/IdentityVerification.vue +149 -0
  66. package/packages/button-print/src/interfaces.ts +19 -0
  67. package/packages/button-print/src/utils/crypto.js +25 -0
  68. package/packages/button-print/src/utils/print.es.min.js +1 -0
  69. package/packages/drag-layout/index.ts +15 -0
  70. package/packages/drag-layout/src/DragFormLeftItem.vue +131 -0
  71. package/packages/drag-layout/src/DragFormRightItem.vue +277 -0
  72. package/packages/drag-layout/src/DragLayout.vue +712 -0
  73. package/packages/grid/index.ts +17 -0
  74. package/packages/grid/src/Grid.tsx +22 -0
  75. package/packages/grid/src/hooks.ts +168 -0
  76. package/packages/index.ts +36 -0
  77. package/src/component/svg/index.vue +49 -0
  78. package/src/core/create.ts +5 -0
  79. package/src/global/variable.ts +2 -0
  80. package/src/utils/clickoutside.ts +80 -0
  81. package/src/utils/crypto.js +25 -0
  82. package/src/utils/vexutils.ts +811 -0
@@ -0,0 +1,62 @@
1
+ const bigTableState = {
2
+ curAbleCheckedLen: 0, // 当前页能够多选的选项个数
3
+ showButtonTop: 0,
4
+ // hasOnlyIcon: false,
5
+ isTree: 0, // 0非数表 1全加载数表 2懒加载数表 3分组表
6
+ isShowEmpty: false,
7
+ /* 全选相关 */
8
+ currentPageSelectedLength: 0,
9
+ visibleCheckAllWrap: false,
10
+ visibleCheckAllWrapMore: false,
11
+ // 已勾选的表格row数据
12
+ checkedRows: [],
13
+ // 存储所有当前可筛选的表头
14
+ filterFields: {},
15
+ /* 树状已选 */
16
+ visibleTreeCheck: false,
17
+ treeTableLength: 0,
18
+ checkWidth: {
19
+ "table-simple": "30",
20
+ "table-classics": "24",
21
+ },
22
+ lastPageIndex: 1,
23
+ selectType: "",
24
+ levelLazyLoadSetting: null, // 数表懒加载配置
25
+ openOnly: 0, // 手风琴模式
26
+ filterWidth: 280, // 筛选框宽度
27
+ filterHeight: 120, // 筛选框高度
28
+ startX: 0, // 起始距离
29
+ distance: 0, // 移动距离
30
+ mask: "", // 拖拽遮罩层
31
+ groupText: [], // 分组统计 text
32
+
33
+ /* 行内编辑相关 */
34
+ currentClickBtnInfo: null,
35
+ /* */
36
+
37
+ columnLen: 0, // column 长度
38
+ hasRefresh: false, // 当前列表是否有新的更新
39
+ isExpand: 0, // isTree == 1 是否全部展开
40
+ btnIcons: {
41
+ // 按钮icon 映射
42
+ copy: "copy",
43
+ pencil: "edit",
44
+ delete: "delete",
45
+ add: "plus-circle",
46
+ download: "download",
47
+ label: "tag",
48
+ queding: "check",
49
+ del: "close",
50
+ },
51
+ tableHeight: "100%",
52
+ //来自batchEditting
53
+ cacheUniqueKey: {},
54
+ theUniqueKeyListObj: {},
55
+ // batchFieldList: [],
56
+ editColumnMap: {},
57
+ fieldLength: 0,
58
+ originFormatList: [],
59
+ isSaveForm: false,
60
+ };
61
+
62
+ export default bigTableState;
@@ -0,0 +1,90 @@
1
+ <template>
2
+ <div class="no-data-tip NoData-page">
3
+ <img v-if="showImg" :src="imgStr" alt="" />
4
+ <p>{{ noDataTip }}</p>
5
+ <span v-if="handleDesc">{{ handleDesc }}</span>
6
+ </div>
7
+ </template>
8
+ <script lang="ts" setup>
9
+ import { computed } from "vue";
10
+
11
+ import noData from "../assets/img/nodata.png";
12
+ import noPermission from "../assets/img/no-permission.png";
13
+ import failure from "../assets/img/failure.png";
14
+ import notfound from "../assets/img/notfound.png";
15
+
16
+ const imgStr = computed(() => {
17
+ let str = null;
18
+ switch (props.noDataImg) {
19
+ case "no-permission":
20
+ str = noPermission;
21
+ break;
22
+ case "failure":
23
+ str = failure;
24
+ break;
25
+ case "nodata":
26
+ str = noData;
27
+ break;
28
+ default:
29
+ str = notfound;
30
+ break;
31
+ }
32
+ return str;
33
+ });
34
+
35
+ const props = defineProps({
36
+ noDataTip: {
37
+ type: String,
38
+ default: "暂无数据",
39
+ },
40
+ noDataImg: {
41
+ type: String,
42
+ default: "nodata",
43
+ },
44
+ showImg: {
45
+ type: Boolean,
46
+ default: true,
47
+ },
48
+ });
49
+ const handleDesc = computed(() => {
50
+ let res = "";
51
+ switch (props.noDataImg) {
52
+ case "no-permission":
53
+ res = "请联系管理员";
54
+ break;
55
+ case "failure":
56
+ res = "请稍后再试";
57
+ break;
58
+ default:
59
+ break;
60
+ }
61
+ return res;
62
+ });
63
+ </script>
64
+ <style lang="less" scoped>
65
+ .no-data-tip {
66
+ display: flex;
67
+ flex-direction: column;
68
+ justify-content: center;
69
+ align-items: center;
70
+ width: 100%;
71
+ height: 100%;
72
+ color: #333333;
73
+ font-size: 22px;
74
+ > img {
75
+ max-width: 70%;
76
+ width: 260px;
77
+ }
78
+ > p {
79
+ margin-top: 12px;
80
+ margin-bottom: 0;
81
+ font-size: 16px;
82
+ color: rgba(0, 0, 0, 0.8);
83
+ }
84
+ > span {
85
+ font-size: 14px;
86
+ color: rgba(0, 0, 0, 0.4);
87
+ margin-top: 6px;
88
+ }
89
+ }
90
+ </style>
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <svg :class="svgClass" aria-hidden="true" v-bind="$attrs">
3
+ <title v-if="title">{{ title }}</title>
4
+ <use :xlink:href="iconName" />
5
+ </svg>
6
+ </template>
7
+
8
+ <script lang="ts">
9
+ export default {
10
+ name: "SvgIcon"
11
+ }
12
+ </script>
13
+ <script lang="ts" setup>
14
+ import { ref, computed } from 'vue'
15
+ // svg图标组件 使用方式
16
+ // 将svg图片放入 /assets/icons/svg/图片名称.svg
17
+ // vue页面中 <svg-icon icon-class="图片名称"></svg-icon>
18
+
19
+ const props = withDefaults(defineProps<{
20
+ iconClass: string
21
+ title: string
22
+ className?: string
23
+ }>(), {
24
+ iconClass: '',
25
+ title: '',
26
+ default: ''
27
+ })
28
+
29
+ const iconName = computed(() => `#icon-${props.iconClass}`)
30
+
31
+ const svgClass = computed(() => {
32
+ if (props.className) {
33
+ return "svg-icon " + props.className;
34
+ } else {
35
+ return "svg-icon";
36
+ }
37
+ })
38
+
39
+ </script>
40
+
41
+ <style scoped>
42
+ .svg-icon {
43
+ width: 1em;
44
+ height: 1em;
45
+ vertical-align: -0.15em;
46
+ fill: currentColor;
47
+ overflow: hidden;
48
+ }
49
+ </style>
@@ -0,0 +1,110 @@
1
+ <script lang="ts">
2
+ export default {
3
+ name: "TextOverTooltip"
4
+ }
5
+ </script>
6
+
7
+ <script setup lang="ts">
8
+ import { ref, computed } from 'vue'
9
+ import { NTooltip } from 'naive-ui'
10
+ import vexutils from '@/utils/vexutils';
11
+
12
+ const props = withDefaults(defineProps<{
13
+ content?: string | number
14
+ className?: string
15
+ refName?: string
16
+ effect?: string
17
+ placement?: 'top-start' | 'top' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end'
18
+ tooltipTitle?: string | number
19
+ isAlias?: boolean
20
+ }>(), {
21
+ effect: 'dark',
22
+ placement: 'top',
23
+ tooltipTitle: ''
24
+ })
25
+
26
+ let isDisabledTooltip = ref(false) // 是否需要禁止提示
27
+
28
+ const curContent = computed(() => {
29
+ let res = props.tooltipTitle || props.content || "";
30
+ if (vexutils.isNumber(res)) {
31
+ return res.toString();
32
+ }
33
+ return res;
34
+ })
35
+
36
+ const $refName: any = ref(null)
37
+ // 移入事件: 判断内容的宽度contentWidth是否大于父级的宽度
38
+ const onMouseOver = (str: any) => {
39
+ if (props.isAlias) {
40
+ isDisabledTooltip.value = true;
41
+ return;
42
+ }
43
+ let parentWidth = $refName.value.parentNode.offsetWidth;
44
+ let contentWidth = $refName.value.offsetWidth;
45
+ // 判断是否禁用tooltip功能
46
+ isDisabledTooltip.value = contentWidth > parentWidth;
47
+ }
48
+ const onMouseOut = () => {
49
+ isDisabledTooltip.value = false;
50
+ }
51
+
52
+ </script>
53
+
54
+ <template>
55
+ <div class="text-over-tooltip-components">
56
+ <NTooltip
57
+ :effect="effect"
58
+ :show="isDisabledTooltip"
59
+ :placement="placement"
60
+ >
61
+ <template #trigger>
62
+ <div
63
+ class="ellipsis"
64
+ :class="className"
65
+ @mouseover="onMouseOver(refName)"
66
+ @mouseout="onMouseOut"
67
+ >
68
+ <i :ref="el => { if (el) $refName = el }">
69
+ <slot></slot>
70
+ <i>{{ content }}</i>
71
+ </i>
72
+ </div>
73
+ </template>
74
+ {{curContent}}
75
+ </NTooltip>
76
+ </div>
77
+ </template>
78
+
79
+ <style lang="less" scoped>
80
+ .text-over-tooltip-components {
81
+ display: inline-block;
82
+ max-width: 98%;
83
+ /* 文字超出宽度显示省略号 单行 */
84
+ .ellipsis {
85
+ font-size: 14px;
86
+ color: #35393c;
87
+ overflow: hidden;
88
+ text-overflow: ellipsis;
89
+ white-space: nowrap;
90
+ i {
91
+ font-style: normal;
92
+ word-break: keep-all;
93
+ white-space: nowrap;
94
+ }
95
+ }
96
+ /* 自定义样式 */
97
+ .fs20 {
98
+ font-size: 20px;
99
+ font-weight: 600;
100
+ color: green;
101
+ line-height: 22px;
102
+ }
103
+ .fs12 {
104
+ font-size: 12px;
105
+ font-weight: 400;
106
+ color: orange;
107
+ line-height: 14px;
108
+ }
109
+ }
110
+ </style>