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.
- package/env.d.ts +2 -0
- package/es/big-table/index.css +2 -0
- package/es/big-table/index.js +42785 -4
- package/es/button-print/index.css +3 -1
- package/es/button-print/index.js +21615 -3
- package/es/drag-layout/index.css +4 -2
- package/es/drag-layout/index.js +13173 -9
- package/es/grid/index.css +3 -1
- package/es/grid/index.js +30828 -1
- package/es/index.css +3 -1
- package/es/index.js +53358 -10
- package/package.json +11 -3
- package/packages/big-table/index.ts +17 -0
- package/packages/big-table/src/BigTable.vue +2513 -0
- package/packages/big-table/src/assets/iconfont/iconfont.less +21 -0
- package/packages/big-table/src/assets/iconfont/iconfont.ttf +0 -0
- package/packages/big-table/src/assets/img/failure.png +0 -0
- package/packages/big-table/src/assets/img/icon-asc.png +0 -0
- package/packages/big-table/src/assets/img/icon-desc.png +0 -0
- package/packages/big-table/src/assets/img/no-permission.png +0 -0
- package/packages/big-table/src/assets/img/nodata.png +0 -0
- package/packages/big-table/src/assets/img/notfound.png +0 -0
- package/packages/big-table/src/assets/img/qr.png +0 -0
- package/packages/big-table/src/assets/img/video_default_cover.png +0 -0
- package/packages/big-table/src/assets/img/xb_big.png +0 -0
- package/packages/big-table/src/assets/img/xb_small.png +0 -0
- package/packages/big-table/src/assets/style/table-base.less +275 -0
- package/packages/big-table/src/assets/style/table-global.less +167 -0
- package/packages/big-table/src/bigTableEmits.ts +46 -0
- package/packages/big-table/src/bigTableProps.ts +125 -0
- package/packages/big-table/src/bigTableState.ts +62 -0
- package/packages/big-table/src/components/NoData.vue +90 -0
- package/packages/big-table/src/components/SvgIcon.vue +49 -0
- package/packages/big-table/src/components/TextOverTooltip.vue +110 -0
- package/packages/big-table/src/components/edit-form/EditForm.vue +426 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +66 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +60 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +38 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +89 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +38 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +63 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +69 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +51 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +60 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +34 -0
- package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +42 -0
- package/packages/big-table/src/components/edit-form/edit-component/editFormProps.ts +91 -0
- package/packages/big-table/src/components/edit-form/edit-component/register-com.ts +18 -0
- package/packages/big-table/src/components/edit-form/hooks/useConfigData.ts +79 -0
- package/packages/big-table/src/components/edit-form/hooks/useDateType.ts +184 -0
- package/packages/big-table/src/components/edit-form/hooks/useFormCommon.ts +373 -0
- package/packages/big-table/src/components/edit-form/hooks/useItemDefault.ts +638 -0
- package/packages/big-table/src/components/edit-form/hooks/useSearch.ts +910 -0
- package/packages/big-table/src/components/edit-form/hooks/useValidateRules.ts +387 -0
- package/packages/big-table/src/components/edit-form/interface.ts +53 -0
- package/packages/big-table/src/components/edit-form/types.ts +3 -0
- package/packages/big-table/src/components/edit-form/utils.ts +247 -0
- package/packages/big-table/src/hooks/useBatchEditing.ts +574 -0
- package/packages/big-table/src/hooks/useFormat.ts +612 -0
- package/packages/big-table/src/hooks/useNestTable.ts +109 -0
- package/packages/big-table/src/hooks/useTableParse.ts +169 -0
- package/packages/big-table/src/utils.ts +705 -0
- package/packages/button-print/index.ts +15 -0
- package/packages/button-print/src/ButtonPrint.vue +697 -0
- package/packages/button-print/src/components/IdentityVerification.vue +149 -0
- package/packages/button-print/src/interfaces.ts +19 -0
- package/packages/button-print/src/utils/crypto.js +25 -0
- package/packages/button-print/src/utils/print.es.min.js +1 -0
- package/packages/drag-layout/index.ts +15 -0
- package/packages/drag-layout/src/DragFormLeftItem.vue +131 -0
- package/packages/drag-layout/src/DragFormRightItem.vue +277 -0
- package/packages/drag-layout/src/DragLayout.vue +712 -0
- package/packages/grid/index.ts +17 -0
- package/packages/grid/src/Grid.tsx +22 -0
- package/packages/grid/src/hooks.ts +168 -0
- package/packages/index.ts +36 -0
- package/src/component/svg/index.vue +49 -0
- package/src/core/create.ts +5 -0
- package/src/global/variable.ts +2 -0
- package/src/utils/clickoutside.ts +80 -0
- package/src/utils/crypto.js +25 -0
- 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,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
|
+
};
|