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,17 @@
1
+ import type { App } from "vue";
2
+
3
+ // 导入组件
4
+ import Grid, { VXETable } from "./src/Grid"
5
+
6
+ type SFCWithInstall<T> = T & { install(app: App): void }; // vue 安装
7
+
8
+ // 为组件提供 install 安装方法,供按需引入
9
+ Grid.install = function(app: App) {
10
+ app.component(Grid.name, Grid);
11
+ app.use(VXETable);
12
+ };
13
+
14
+ const CGrid: SFCWithInstall<typeof Grid> = Grid; // 增加类型
15
+
16
+ // 默认导出组件
17
+ export default CGrid;
@@ -0,0 +1,22 @@
1
+ import { defineComponent } from "vue"
2
+ import 'xe-utils'
3
+ import VXETable, { Grid } from 'vxe-table'
4
+ import 'vxe-table/lib/style.css'
5
+ import create from '@/core/create';
6
+ import { useMethods } from './hooks'
7
+
8
+ export { VXETable }
9
+
10
+ export default defineComponent(create({
11
+ name: "Grid",
12
+ setup(props: any, { attrs, slots }: any) {
13
+ const renderVN = () => <Grid ref="xGrid" { ...attrs }>{slots}</Grid>
14
+ return {
15
+ ...useMethods(),
16
+ renderVN
17
+ }
18
+ },
19
+ render() {
20
+ return this.renderVN()
21
+ }
22
+ }))
@@ -0,0 +1,168 @@
1
+ import { ref } from 'vue'
2
+ import { VxeGridInstance } from 'vxe-table'
3
+ // 操作
4
+ export const useMethods = () => {
5
+ const xGrid = ref({} as VxeGridInstance)
6
+
7
+ const methodKeys: string[] = [
8
+ 'loadData',
9
+ 'reloadData',
10
+ 'updateData',
11
+ 'reloadRow',
12
+ 'reloadExpandContent',
13
+ 'reloadTreeChilds',
14
+ 'loadColumn',
15
+ 'reloadColumn',
16
+ 'refreshColumn',
17
+ 'createRow',
18
+ 'createData',
19
+ 'insert',
20
+ 'insertAt',
21
+ 'revertData',
22
+ 'remove',
23
+ 'removeCheckboxRow',
24
+ 'removeRadioRow',
25
+ 'removeCurrentRow',
26
+ 'removeMergeCells',
27
+ 'removeMergeFooterItems',
28
+ 'getRowIndex',
29
+ 'getVTRowIndex',
30
+ 'getVMRowIndex',
31
+ 'getRowNode',
32
+ 'getColumns',
33
+ 'getColid',
34
+ 'getColumnById',
35
+ 'getColumnByField',
36
+ 'getTableColumn',
37
+ 'getColumnIndex',
38
+ 'getVMColumnIndex',
39
+ 'getVTColumnIndex',
40
+ 'getColumnNode',
41
+ 'getSortColumns',
42
+ 'getCheckedFilters',
43
+ 'getTableData',
44
+ 'getRowById',
45
+ 'getRowid',
46
+ 'getData',
47
+ 'getRecordset',
48
+ 'getInsertRecords',
49
+ 'getRemoveRecords',
50
+ 'getUpdateRecords',
51
+ 'getMergeCells',
52
+ 'getMergeFooterItems',
53
+ 'getCurrentColumn',
54
+ 'getCurrentRecord',
55
+ 'getRadioRecord',
56
+ 'getRadioReserveRecord',
57
+ 'getCheckboxRecords',
58
+ 'getCheckboxReserveRecords',
59
+ 'getCheckboxIndeterminateRecords',
60
+ 'getRowExpandRecords',
61
+ 'getTreeExpandRecords',
62
+ 'getActiveRecord',
63
+ 'getSelectedCell',
64
+ 'getScroll',
65
+ 'isActiveByRow',
66
+ 'isInsertByRow',
67
+ 'isUpdateByRow',
68
+ 'isAllCheckboxChecked',
69
+ 'isAllCheckboxIndeterminate',
70
+ 'isCheckedByCheckboxRow',
71
+ 'isIndeterminateByCheckboxRow',
72
+ 'isCheckedByRadioRow',
73
+ 'isExpandByRow',
74
+ 'isRowExpandLoaded',
75
+ 'isTreeExpandByRow',
76
+ 'isTreeExpandLoaded',
77
+ 'isFilter',
78
+ 'setFilter',
79
+ 'setActiveRow',
80
+ 'setActiveCell',
81
+ 'setSelectCell',
82
+ 'setMergeCells',
83
+ 'setMergeFooterItems',
84
+ 'setRowExpand',
85
+ 'setAllRowExpand',
86
+ 'setTreeExpand',
87
+ 'setAllTreeExpand',
88
+ 'setCurrentRow',
89
+ 'setCurrentColumn',
90
+ 'setRadioRow',
91
+ 'setCheckboxRow',
92
+ 'setAllCheckboxRow',
93
+ 'toggleCheckboxRow',
94
+ 'toggleAllCheckboxRow',
95
+ 'toggleRowExpand',
96
+ 'toggleTreeExpand',
97
+ 'clearMergeCells',
98
+ 'clearMergeFooterItems',
99
+ 'clearCurrentRow',
100
+ 'clearCurrentColumn',
101
+ 'clearRadioRow',
102
+ 'clearRadioReserve',
103
+ 'clearCheckboxRow',
104
+ 'clearCheckboxReserve',
105
+ 'clearRowExpand',
106
+ 'clearRowExpandLoaded',
107
+ 'clearTreeExpand',
108
+ 'clearTreeExpandLoaded',
109
+ 'clearSort',
110
+ 'clearFilter',
111
+ 'clearSelected',
112
+ 'clearActived',
113
+ 'clearData',
114
+ 'clearScroll',
115
+ 'clearValidate',
116
+ 'clearAll',
117
+ 'resetColumn',
118
+ 'closeFilter',
119
+ 'closeTooltip',
120
+ 'closeMenu',
121
+ 'updateFooter',
122
+ 'updateStatus',
123
+ 'hideColumn',
124
+ 'showColumn',
125
+ 'scrollTo',
126
+ 'scrollToRow',
127
+ 'scrollToColumn',
128
+ 'sort',
129
+ 'isSort',
130
+ 'recalculate',
131
+ 'refreshScroll',
132
+ 'validate',
133
+ 'fullValidate',
134
+ 'exportData',
135
+ 'openExport',
136
+ 'importData',
137
+ 'openImport',
138
+ 'print',
139
+ 'openPrint',
140
+ 'saveFile',
141
+ 'readFile',
142
+ 'openTooltip',
143
+ 'connect',
144
+ 'focus',
145
+ 'blur',
146
+ 'commitProxy',
147
+ 'zoom',
148
+ 'isMaximized',
149
+ 'maximize',
150
+ 'revert',
151
+ 'getFormItems',
152
+ 'getPendingRecords',
153
+ 'getProxyInfo'
154
+ ];
155
+
156
+ const funcs: any = {}
157
+ methodKeys.forEach(name => {
158
+ funcs[name] = (...args: any[]) => {
159
+ const $xGrid: any = xGrid.value
160
+ return $xGrid && $xGrid[name](...args)
161
+ }
162
+ })
163
+
164
+ return {
165
+ xGrid,
166
+ ...funcs
167
+ }
168
+ }
@@ -0,0 +1,36 @@
1
+ import type { App } from "vue";
2
+ // 导入组件
3
+ import { default as Grid } from './grid';
4
+ import { default as BigTable } from './big-table';
5
+ import { default as DragLayout } from './drag-layout';
6
+ import { default as ButtonPrint } from './button-print';
7
+
8
+ // 存储组件列表
9
+ const components: any[] = [
10
+ Grid,
11
+ BigTable,
12
+ DragLayout,
13
+ ButtonPrint
14
+ ];
15
+
16
+ // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
17
+ const install = function(app: App) {
18
+ // 遍历注册全局组件
19
+ components.forEach(component => {
20
+ component.install(app)
21
+ });
22
+ };
23
+
24
+ export {
25
+ Grid,
26
+ BigTable,
27
+ DragLayout,
28
+ ButtonPrint
29
+ };
30
+
31
+ export default {
32
+ // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
33
+ install,
34
+ // 以下是具体的组件列表
35
+ ...components
36
+ };
@@ -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,5 @@
1
+ import { KEY_COMPONENT_NAME } from '../global/variable';
2
+ export default function(vm: any) {
3
+ vm.name = KEY_COMPONENT_NAME + (vm.name || '');
4
+ return vm;
5
+ }
@@ -0,0 +1,2 @@
1
+ export const KEY_COMPONENT_NAME = 'C';
2
+ export const GROUP_TITLE_KEY = 'group-show-title';
@@ -0,0 +1,80 @@
1
+ interface Binding {
2
+ expression: any,
3
+ value?: any
4
+ }
5
+
6
+ const nodeList: any[] = [];
7
+ const ctx = '@@clickoutsideContext';
8
+
9
+ let startClick: MouseEvent;
10
+ let seed = 0;
11
+
12
+ document.addEventListener('mousedown', e => (startClick = e), false);
13
+ document.addEventListener(
14
+ 'mouseup',
15
+ e => {
16
+ nodeList.forEach(node => node[ctx].documentHandler(e, startClick));
17
+ },
18
+ false
19
+ );
20
+
21
+ function createDocumentHandler(el: any, binding: Binding, vnode: any) {
22
+ return function(mouseup: any = {}, mousedown: any = {}) {
23
+ if (
24
+ !vnode ||
25
+ !vnode.context ||
26
+ !mouseup.target ||
27
+ !mousedown.target ||
28
+ el.contains(mouseup.target) ||
29
+ el.contains(mousedown.target) ||
30
+ el === mouseup.target ||
31
+ (vnode.context.popperElm && (vnode.context.popperElm.contains(mouseup.target) || vnode.context.popperElm.contains(mousedown.target)))
32
+ )
33
+ return;
34
+
35
+ if (binding.expression && el[ctx].methodName && vnode.context[el[ctx].methodName]) {
36
+ vnode.context[el[ctx].methodName]();
37
+ } else {
38
+ el[ctx].bindingFn && el[ctx].bindingFn();
39
+ }
40
+ };
41
+ }
42
+
43
+ /**
44
+ * v-clickoutside
45
+ * @desc 点击元素外面才会触发的事件
46
+ * @example
47
+ * ```vue
48
+ * <div v-element-clickoutside="handleClose">
49
+ * ```
50
+ */
51
+ export default {
52
+ mounted(el: any, binding: Binding, vnode: any) {
53
+ nodeList.push(el);
54
+ const id = seed++;
55
+ el[ctx] = {
56
+ id,
57
+ documentHandler: createDocumentHandler(el, binding, vnode),
58
+ methodName: binding.expression,
59
+ bindingFn: binding.value
60
+ };
61
+ },
62
+
63
+ update(el: any, binding: Binding, vnode: any) {
64
+ el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);
65
+ el[ctx].methodName = binding.expression;
66
+ el[ctx].bindingFn = binding.value;
67
+ },
68
+
69
+ unmounted(el: any) {
70
+ let len = nodeList.length;
71
+
72
+ for (let i = 0; i < len; i++) {
73
+ if (nodeList[i][ctx].id === el[ctx].id) {
74
+ nodeList.splice(i, 1);
75
+ break;
76
+ }
77
+ }
78
+ delete el[ctx];
79
+ }
80
+ };
@@ -0,0 +1,25 @@
1
+ import CryptoJS from "crypto-js";
2
+
3
+ // 加密
4
+ function encrypt(word) {
5
+ const key = CryptoJS.enc.Utf8.parse("0D7FB71E8EC31E97");
6
+ const srcs = CryptoJS.enc.Utf8.parse(word);
7
+ const encrypted = CryptoJS.AES.encrypt(srcs, key, {
8
+ mode: CryptoJS.mode.ECB,
9
+ padding: CryptoJS.pad.Pkcs7
10
+ });
11
+ return encrypted.toString();
12
+ }
13
+ // 解密
14
+ function decrypt(word) {
15
+ const key = CryptoJS.enc.Utf8.parse("0D7FB71E8EC31E97");
16
+ const decrypt = CryptoJS.AES.decrypt(word, key, {
17
+ mode: CryptoJS.mode.ECB,
18
+ padding: CryptoJS.pad.Pkcs7
19
+ });
20
+ return CryptoJS.enc.Utf8.stringify(decrypt).toString();
21
+ }
22
+ export default {
23
+ encrypt,
24
+ decrypt
25
+ };