@smallwei/avue 3.8.1 → 3.8.3
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/README.md +206 -86
- package/dist/avue.js +37301 -0
- package/dist/avue.js.map +1 -0
- package/dist/avue.min.js +6 -0
- package/dist/avue.min.mjs +2 -0
- package/dist/avue.mjs +2 -0
- package/dist/index.css +1 -0
- package/es/avue.min.mjs +2 -0
- package/es/avue.min.ts +2 -0
- package/es/avue.mjs +2 -0
- package/es/avue.ts +2 -0
- package/es/core/create.mjs +8 -0
- package/es/core/create.ts +16 -0
- package/es/core/dataformat.mjs +184 -0
- package/es/core/dataformat.ts +190 -0
- package/es/core/detail.mjs +74 -0
- package/es/core/detail.ts +81 -0
- package/es/core/dic.mjs +213 -0
- package/es/core/dic.ts +235 -0
- package/es/core/locale.mjs +8 -0
- package/es/core/locale.ts +9 -0
- package/es/core/packages.mjs +61 -0
- package/es/core/packages.ts +62 -0
- package/es/core/slot.mjs +32 -0
- package/es/core/slot.ts +30 -0
- package/es/global/variable.mjs +80 -0
- package/es/global/variable.ts +84 -0
- package/es/icon.mjs +9 -0
- package/es/icon.ts +11 -0
- package/es/index.mjs +127 -0
- package/es/index.ts +177 -0
- package/es/locale/browser/en.mjs +288 -0
- package/es/locale/browser/zh-cn.mjs +288 -0
- package/es/locale/browser/zh.mjs +288 -0
- package/es/locale/index.mjs +141 -0
- package/es/locale/index.ts +196 -0
- package/es/locale/lang/en.mjs +282 -0
- package/es/locale/lang/en.ts +282 -0
- package/es/locale/lang/zh-cn.mjs +282 -0
- package/es/locale/lang/zh-cn.ts +282 -0
- package/es/locale/lang/zh.mjs +282 -0
- package/es/locale/lang/zh.ts +282 -0
- package/es/packages/core/common/event.mjs +58 -0
- package/es/packages/core/common/event.ts +56 -0
- package/es/packages/core/common/init.mjs +134 -0
- package/es/packages/core/common/init.ts +133 -0
- package/es/packages/core/common/props.mjs +239 -0
- package/es/packages/core/common/props.ts +240 -0
- package/es/packages/core/components/dialog-form/index.mjs +29 -0
- package/es/packages/core/components/dialog-form/index.ts +29 -0
- package/es/packages/core/components/dialog-form/index.vue +108 -0
- package/es/packages/core/components/form/custom.mjs +41 -0
- package/es/packages/core/components/form/custom.ts +41 -0
- package/es/packages/core/components/form/index.vue +176 -0
- package/es/packages/core/components/icon/index.vue +37 -0
- package/es/packages/core/components/image-preview/index.mjs +34 -0
- package/es/packages/core/components/image-preview/index.ts +37 -0
- package/es/packages/core/components/image-preview/index.vue +215 -0
- package/es/packages/core/directive/contextmenu.mjs +92 -0
- package/es/packages/core/directive/contextmenu.ts +103 -0
- package/es/packages/core/directive/permission.mjs +19 -0
- package/es/packages/core/directive/permission.ts +18 -0
- package/es/packages/data/box/index.vue +66 -0
- package/es/packages/data/card/index.vue +62 -0
- package/es/packages/data/cardText/index.vue +56 -0
- package/es/packages/data/countdown/index.vue +81 -0
- package/es/packages/data/dashboard/index.vue +72 -0
- package/es/packages/data/display/index.vue +63 -0
- package/es/packages/data/icons/index.vue +68 -0
- package/es/packages/data/imgText/index.vue +72 -0
- package/es/packages/data/list/index.vue +69 -0
- package/es/packages/data/notice/index.vue +63 -0
- package/es/packages/data/operaText/index.vue +62 -0
- package/es/packages/data/panel/index.vue +62 -0
- package/es/packages/data/pay/index.vue +92 -0
- package/es/packages/data/price/index.vue +55 -0
- package/es/packages/data/product/index.vue +106 -0
- package/es/packages/data/profile/index.vue +91 -0
- package/es/packages/data/progress/index.vue +64 -0
- package/es/packages/data/rank/index.vue +92 -0
- package/es/packages/data/rotate/index.vue +69 -0
- package/es/packages/data/statistic/index.vue +71 -0
- package/es/packages/data/tabs/index.vue +64 -0
- package/es/packages/data/task/index.vue +82 -0
- package/es/packages/data/weather/index.vue +103 -0
- package/es/packages/element-plus/array/index.vue +115 -0
- package/es/packages/element-plus/article/index.vue +73 -0
- package/es/packages/element-plus/card/index.vue +103 -0
- package/es/packages/element-plus/cascader/index.vue +132 -0
- package/es/packages/element-plus/chat/index.vue +513 -0
- package/es/packages/element-plus/checkbox/index.vue +84 -0
- package/es/packages/element-plus/comment/index.vue +76 -0
- package/es/packages/element-plus/count-up/index.vue +107 -0
- package/es/packages/element-plus/crud/column/column-default.vue +128 -0
- package/es/packages/element-plus/crud/column/column-dynamic.vue +86 -0
- package/es/packages/element-plus/crud/column/column-menu.vue +267 -0
- package/es/packages/element-plus/crud/column/column-slot.vue +348 -0
- package/es/packages/element-plus/crud/column/column.vue +119 -0
- package/es/packages/element-plus/crud/column/menu.vue +78 -0
- package/es/packages/element-plus/crud/config.mjs +74 -0
- package/es/packages/element-plus/crud/config.ts +74 -0
- package/es/packages/element-plus/crud/dialog/dialog-column.vue +102 -0
- package/es/packages/element-plus/crud/dialog/dialog-excel.vue +204 -0
- package/es/packages/element-plus/crud/dialog/dialog-filter.vue +159 -0
- package/es/packages/element-plus/crud/dialog/dialog-form.vue +352 -0
- package/es/packages/element-plus/crud/grid/index.vue +271 -0
- package/es/packages/element-plus/crud/grid/item.vue +39 -0
- package/es/packages/element-plus/crud/index.vue +1018 -0
- package/es/packages/element-plus/crud/menu/header-menu.vue +175 -0
- package/es/packages/element-plus/crud/menu/header-search.vue +228 -0
- package/es/packages/element-plus/crud/menu/table-page.vue +108 -0
- package/es/packages/element-plus/date/index.vue +81 -0
- package/es/packages/element-plus/draggable/index.vue +444 -0
- package/es/packages/element-plus/dynamic/index.vue +353 -0
- package/es/packages/element-plus/flow/index.vue +339 -0
- package/es/packages/element-plus/flow/node.vue +84 -0
- package/es/packages/element-plus/form/config.mjs +6 -0
- package/es/packages/element-plus/form/config.ts +6 -0
- package/es/packages/element-plus/form/index.vue +954 -0
- package/es/packages/element-plus/form/menu.vue +63 -0
- package/es/packages/element-plus/group/index.vue +90 -0
- package/es/packages/element-plus/input/index.vue +1264 -0
- package/es/packages/element-plus/input-color/index.vue +70 -0
- package/es/packages/element-plus/input-cron/index.vue +363 -0
- package/es/packages/element-plus/input-icon/index.vue +143 -0
- package/es/packages/element-plus/input-map/index.vue +311 -0
- package/es/packages/element-plus/input-number/index.vue +91 -0
- package/es/packages/element-plus/input-table/index.vue +279 -0
- package/es/packages/element-plus/input-tag/index.vue +79 -0
- package/es/packages/element-plus/input-tree/index.vue +194 -0
- package/es/packages/element-plus/license/index.vue +155 -0
- package/es/packages/element-plus/login/index.vue +203 -0
- package/es/packages/element-plus/mention/index.vue +117 -0
- package/es/packages/element-plus/radio/index.vue +38 -0
- package/es/packages/element-plus/rate/index.vue +51 -0
- package/es/packages/element-plus/search/index.vue +129 -0
- package/es/packages/element-plus/select/index.vue +292 -0
- package/es/packages/element-plus/sign/index.vue +230 -0
- package/es/packages/element-plus/slider/index.vue +66 -0
- package/es/packages/element-plus/switch/index.vue +72 -0
- package/es/packages/element-plus/tabs/index.vue +62 -0
- package/es/packages/element-plus/text-ellipsis/index.vue +104 -0
- package/es/packages/element-plus/time/index.vue +81 -0
- package/es/packages/element-plus/title/index.vue +30 -0
- package/es/packages/element-plus/tree/index.vue +460 -0
- package/es/packages/element-plus/upload/index.vue +728 -0
- package/es/packages/element-plus/verify/index.vue +62 -0
- package/es/packages/element-plus/video/index.vue +90 -0
- package/es/plugin/ali/index.mjs +4 -0
- package/es/plugin/ali/index.ts +6 -0
- package/es/plugin/clipboard/index.mjs +61 -0
- package/es/plugin/clipboard/index.ts +67 -0
- package/es/plugin/export/_blob.mjs +151 -0
- package/es/plugin/export/_blob.ts +176 -0
- package/es/plugin/export/_export2Excel.mjs +141 -0
- package/es/plugin/export/_export2Excel.ts +166 -0
- package/es/plugin/export/index.mjs +263 -0
- package/es/plugin/export/index.ts +274 -0
- package/es/plugin/logs/index.mjs +46 -0
- package/es/plugin/logs/index.ts +66 -0
- package/es/plugin/print/index.mjs +145 -0
- package/es/plugin/print/index.ts +155 -0
- package/es/plugin/qiniu/index.mjs +78 -0
- package/es/plugin/qiniu/index.ts +88 -0
- package/es/plugin/screenshot/index.mjs +8 -0
- package/es/plugin/screenshot/index.ts +9 -0
- package/es/plugin/video/index.mjs +52 -0
- package/es/plugin/video/index.ts +60 -0
- package/es/plugin/watermark/index.mjs +114 -0
- package/es/plugin/watermark/index.ts +127 -0
- package/es/plugin/watermark/watermark.mjs +109 -0
- package/es/plugin/watermark/watermark.ts +121 -0
- package/es/ui/data/index.mjs +49 -0
- package/es/ui/data/index.ts +51 -0
- package/es/ui/element-plus/index.mjs +87 -0
- package/es/ui/element-plus/index.ts +89 -0
- package/es/ui/index.mjs +4 -0
- package/es/ui/index.ts +6 -0
- package/es/utils/bem.mjs +29 -0
- package/es/utils/bem.ts +36 -0
- package/es/utils/mock.mjs +137 -0
- package/es/utils/mock.ts +151 -0
- package/es/utils/util.mjs +370 -0
- package/es/utils/util.ts +392 -0
- package/es/utils/validate.mjs +18 -0
- package/es/utils/validate.ts +23 -0
- package/es/version.mjs +1 -0
- package/es/version.ts +1 -0
- package/lib/avue.js +11 -31398
- package/lib/avue.min.js +11 -6
- package/lib/avue.min.ts +2 -0
- package/lib/avue.ts +2 -0
- package/lib/core/create.js +14 -0
- package/lib/core/create.ts +16 -0
- package/lib/core/dataformat.js +194 -0
- package/lib/core/dataformat.ts +190 -0
- package/lib/core/detail.js +81 -0
- package/lib/core/detail.ts +81 -0
- package/lib/core/dic.js +220 -0
- package/lib/core/dic.ts +235 -0
- package/lib/core/locale.js +10 -0
- package/lib/core/locale.ts +9 -0
- package/lib/core/packages.js +66 -0
- package/lib/core/packages.ts +62 -0
- package/lib/core/slot.js +34 -0
- package/lib/core/slot.ts +30 -0
- package/lib/global/variable.js +83 -0
- package/lib/global/variable.ts +84 -0
- package/lib/icon.js +44 -0
- package/lib/icon.ts +11 -0
- package/lib/index.css +1 -1
- package/lib/index.js +134 -0
- package/lib/index.ts +177 -0
- package/lib/locale/browser/en.js +288 -0
- package/lib/locale/browser/zh-cn.js +288 -0
- package/lib/locale/browser/zh.js +288 -0
- package/lib/locale/index.js +153 -47
- package/lib/locale/index.ts +196 -0
- package/lib/locale/lang/en.js +284 -100
- package/lib/locale/lang/en.ts +282 -0
- package/lib/locale/lang/zh-cn.js +284 -0
- package/lib/locale/lang/zh-cn.ts +282 -0
- package/lib/locale/lang/zh.js +284 -100
- package/lib/locale/lang/zh.ts +282 -0
- package/lib/packages/core/common/event.js +61 -0
- package/lib/packages/core/common/event.ts +56 -0
- package/lib/packages/core/common/init.js +140 -0
- package/lib/packages/core/common/init.ts +133 -0
- package/lib/packages/core/common/props.js +245 -0
- package/lib/packages/core/common/props.ts +240 -0
- package/lib/packages/core/components/dialog-form/index.js +35 -0
- package/lib/packages/core/components/dialog-form/index.ts +29 -0
- package/lib/packages/core/components/dialog-form/index.vue +108 -0
- package/lib/packages/core/components/form/custom.js +43 -0
- package/lib/packages/core/components/form/custom.ts +41 -0
- package/lib/packages/core/components/form/index.vue +176 -0
- package/lib/packages/core/components/icon/index.vue +37 -0
- package/lib/packages/core/components/image-preview/index.js +40 -0
- package/lib/packages/core/components/image-preview/index.ts +37 -0
- package/lib/packages/core/components/image-preview/index.vue +215 -0
- package/lib/packages/core/directive/contextmenu.js +94 -0
- package/lib/packages/core/directive/contextmenu.ts +103 -0
- package/lib/packages/core/directive/permission.js +21 -0
- package/lib/packages/core/directive/permission.ts +18 -0
- package/lib/packages/data/box/index.vue +66 -0
- package/lib/packages/data/card/index.vue +62 -0
- package/lib/packages/data/cardText/index.vue +56 -0
- package/lib/packages/data/countdown/index.vue +81 -0
- package/lib/packages/data/dashboard/index.vue +72 -0
- package/lib/packages/data/display/index.vue +63 -0
- package/lib/packages/data/icons/index.vue +68 -0
- package/lib/packages/data/imgText/index.vue +72 -0
- package/lib/packages/data/list/index.vue +69 -0
- package/lib/packages/data/notice/index.vue +63 -0
- package/lib/packages/data/operaText/index.vue +62 -0
- package/lib/packages/data/panel/index.vue +62 -0
- package/lib/packages/data/pay/index.vue +92 -0
- package/lib/packages/data/price/index.vue +55 -0
- package/lib/packages/data/product/index.vue +106 -0
- package/lib/packages/data/profile/index.vue +91 -0
- package/lib/packages/data/progress/index.vue +64 -0
- package/lib/packages/data/rank/index.vue +92 -0
- package/lib/packages/data/rotate/index.vue +69 -0
- package/lib/packages/data/statistic/index.vue +71 -0
- package/lib/packages/data/tabs/index.vue +64 -0
- package/lib/packages/data/task/index.vue +82 -0
- package/lib/packages/data/weather/index.vue +103 -0
- package/lib/packages/element-plus/array/index.vue +115 -0
- package/lib/packages/element-plus/article/index.vue +73 -0
- package/lib/packages/element-plus/card/index.vue +103 -0
- package/lib/packages/element-plus/cascader/index.vue +132 -0
- package/lib/packages/element-plus/chat/index.vue +513 -0
- package/lib/packages/element-plus/checkbox/index.vue +84 -0
- package/lib/packages/element-plus/comment/index.vue +76 -0
- package/lib/packages/element-plus/count-up/index.vue +107 -0
- package/lib/packages/element-plus/crud/column/column-default.vue +128 -0
- package/lib/packages/element-plus/crud/column/column-dynamic.vue +86 -0
- package/lib/packages/element-plus/crud/column/column-menu.vue +267 -0
- package/lib/packages/element-plus/crud/column/column-slot.vue +348 -0
- package/lib/packages/element-plus/crud/column/column.vue +119 -0
- package/lib/packages/element-plus/crud/column/menu.vue +78 -0
- package/lib/packages/element-plus/crud/config.js +76 -0
- package/lib/packages/element-plus/crud/config.ts +74 -0
- package/lib/packages/element-plus/crud/dialog/dialog-column.vue +102 -0
- package/lib/packages/element-plus/crud/dialog/dialog-excel.vue +204 -0
- package/lib/packages/element-plus/crud/dialog/dialog-filter.vue +159 -0
- package/lib/packages/element-plus/crud/dialog/dialog-form.vue +352 -0
- package/lib/packages/element-plus/crud/grid/index.vue +271 -0
- package/lib/packages/element-plus/crud/grid/item.vue +39 -0
- package/lib/packages/element-plus/crud/index.vue +1018 -0
- package/lib/packages/element-plus/crud/menu/header-menu.vue +175 -0
- package/lib/packages/element-plus/crud/menu/header-search.vue +228 -0
- package/lib/packages/element-plus/crud/menu/table-page.vue +108 -0
- package/lib/packages/element-plus/date/index.vue +81 -0
- package/lib/packages/element-plus/draggable/index.vue +444 -0
- package/lib/packages/element-plus/dynamic/index.vue +353 -0
- package/lib/packages/element-plus/flow/index.vue +339 -0
- package/lib/packages/element-plus/flow/node.vue +84 -0
- package/lib/packages/element-plus/form/config.js +8 -0
- package/lib/packages/element-plus/form/config.ts +6 -0
- package/lib/packages/element-plus/form/index.vue +954 -0
- package/lib/packages/element-plus/form/menu.vue +63 -0
- package/lib/packages/element-plus/group/index.vue +90 -0
- package/lib/packages/element-plus/input/index.vue +1264 -0
- package/lib/packages/element-plus/input-color/index.vue +70 -0
- package/lib/packages/element-plus/input-cron/index.vue +363 -0
- package/lib/packages/element-plus/input-icon/index.vue +143 -0
- package/lib/packages/element-plus/input-map/index.vue +311 -0
- package/lib/packages/element-plus/input-number/index.vue +91 -0
- package/lib/packages/element-plus/input-table/index.vue +279 -0
- package/lib/packages/element-plus/input-tag/index.vue +79 -0
- package/lib/packages/element-plus/input-tree/index.vue +194 -0
- package/lib/packages/element-plus/license/index.vue +155 -0
- package/lib/packages/element-plus/login/index.vue +203 -0
- package/lib/packages/element-plus/mention/index.vue +117 -0
- package/lib/packages/element-plus/radio/index.vue +38 -0
- package/lib/packages/element-plus/rate/index.vue +51 -0
- package/lib/packages/element-plus/search/index.vue +129 -0
- package/lib/packages/element-plus/select/index.vue +292 -0
- package/lib/packages/element-plus/sign/index.vue +230 -0
- package/lib/packages/element-plus/slider/index.vue +66 -0
- package/lib/packages/element-plus/switch/index.vue +72 -0
- package/lib/packages/element-plus/tabs/index.vue +62 -0
- package/lib/packages/element-plus/text-ellipsis/index.vue +104 -0
- package/lib/packages/element-plus/time/index.vue +81 -0
- package/lib/packages/element-plus/title/index.vue +30 -0
- package/lib/packages/element-plus/tree/index.vue +460 -0
- package/lib/packages/element-plus/upload/index.vue +728 -0
- package/lib/packages/element-plus/verify/index.vue +62 -0
- package/lib/packages/element-plus/video/index.vue +90 -0
- package/lib/plugin/ali/index.js +8 -0
- package/lib/plugin/ali/index.ts +6 -0
- package/lib/plugin/clipboard/index.js +64 -0
- package/lib/plugin/clipboard/index.ts +67 -0
- package/lib/plugin/export/_blob.js +151 -0
- package/lib/plugin/export/_blob.ts +176 -0
- package/lib/plugin/export/_export2Excel.js +145 -0
- package/lib/plugin/export/_export2Excel.ts +166 -0
- package/lib/plugin/export/index.js +268 -0
- package/lib/plugin/export/index.ts +274 -0
- package/lib/plugin/logs/index.js +48 -0
- package/lib/plugin/logs/index.ts +66 -0
- package/lib/plugin/print/index.js +147 -0
- package/lib/plugin/print/index.ts +155 -0
- package/lib/plugin/qiniu/index.js +82 -0
- package/lib/plugin/qiniu/index.ts +88 -0
- package/lib/plugin/screenshot/index.js +14 -0
- package/lib/plugin/screenshot/index.ts +9 -0
- package/lib/plugin/video/index.js +55 -0
- package/lib/plugin/video/index.ts +60 -0
- package/lib/plugin/watermark/index.js +121 -0
- package/lib/plugin/watermark/index.ts +127 -0
- package/lib/plugin/watermark/watermark.js +111 -0
- package/lib/plugin/watermark/watermark.ts +121 -0
- package/lib/ui/data/index.js +54 -0
- package/lib/ui/data/index.ts +51 -0
- package/lib/ui/element-plus/index.js +92 -0
- package/lib/ui/element-plus/index.ts +89 -0
- package/lib/ui/index.js +9 -0
- package/lib/ui/index.ts +6 -0
- package/lib/utils/bem.js +31 -0
- package/lib/utils/bem.ts +36 -0
- package/lib/utils/mock.js +142 -0
- package/lib/utils/mock.ts +151 -0
- package/lib/utils/util.js +403 -0
- package/lib/utils/util.ts +392 -0
- package/lib/utils/validate.js +21 -0
- package/lib/utils/validate.ts +23 -0
- package/lib/version.js +4 -0
- package/lib/version.ts +1 -0
- package/package.json +24 -11
- package/types/index.d.ts +141 -0
- package/types/shims-aliases.d.ts +4 -0
- package/types/shims-vue.d.ts +6 -0
- package/lib/avue.js.map +0 -1
- package/lib/locale/format.js +0 -44
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-input-tag
|
|
3
|
+
v-model="text"
|
|
4
|
+
:class="b()"
|
|
5
|
+
@click="handleClick"
|
|
6
|
+
@focus="handleFocus"
|
|
7
|
+
@blur="handleBlur"
|
|
8
|
+
@change="handleValueChange"
|
|
9
|
+
:placeholder="placeholder"
|
|
10
|
+
:size="size"
|
|
11
|
+
:min="min"
|
|
12
|
+
:max="max"
|
|
13
|
+
:draggable="drag"
|
|
14
|
+
:clearable="clearableVal"
|
|
15
|
+
:readonly="readonly"
|
|
16
|
+
:disabled="disabled"
|
|
17
|
+
>
|
|
18
|
+
<template #prefix v-if="prefix">
|
|
19
|
+
<span @click="prefixClick(text)">{{ prefix }}</span>
|
|
20
|
+
</template>
|
|
21
|
+
<template #suffix v-if="suffix">
|
|
22
|
+
<span @click="suffixClick(text)">{{ suffix }}</span>
|
|
23
|
+
</template>
|
|
24
|
+
<template #tag="{ value }">
|
|
25
|
+
<slot :value="value" v-if="$slots.default"> </slot>
|
|
26
|
+
<span v-else>{{ value }}</span>
|
|
27
|
+
</template>
|
|
28
|
+
</el-input-tag>
|
|
29
|
+
</template>
|
|
30
|
+
|
|
31
|
+
<script>
|
|
32
|
+
import create from "../../../core/create.mjs";
|
|
33
|
+
import props from "../../core/common/props.mjs";
|
|
34
|
+
import event from "../../core/common/event.mjs";
|
|
35
|
+
export default create({
|
|
36
|
+
name: "input-tag",
|
|
37
|
+
mixins: [props(), event()],
|
|
38
|
+
data() {
|
|
39
|
+
return {};
|
|
40
|
+
},
|
|
41
|
+
props: {
|
|
42
|
+
clearValidate: Function,
|
|
43
|
+
drag: Boolean,
|
|
44
|
+
min: {
|
|
45
|
+
type: Number,
|
|
46
|
+
default: -Infinity,
|
|
47
|
+
},
|
|
48
|
+
max: {
|
|
49
|
+
type: Number,
|
|
50
|
+
default: Infinity,
|
|
51
|
+
},
|
|
52
|
+
prefix: {
|
|
53
|
+
type: String,
|
|
54
|
+
},
|
|
55
|
+
prefixClick: {
|
|
56
|
+
type: Function,
|
|
57
|
+
default: () => {},
|
|
58
|
+
},
|
|
59
|
+
suffix: {
|
|
60
|
+
type: String,
|
|
61
|
+
},
|
|
62
|
+
suffixClick: {
|
|
63
|
+
type: Function,
|
|
64
|
+
default: () => {},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
created() {},
|
|
68
|
+
mounted() {},
|
|
69
|
+
methods: {
|
|
70
|
+
handleValueChange(val) {
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
if (!this.validatenull(val) && this.rules && this.clearValidate) {
|
|
73
|
+
this.clearValidate(this.prop);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
</script>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-tree-select ref="tree"
|
|
3
|
+
:class="b()"
|
|
4
|
+
:cache-data="cacheData"
|
|
5
|
+
v-model="text"
|
|
6
|
+
:loading="loading"
|
|
7
|
+
:lazy="lazy"
|
|
8
|
+
:load="handleLoad"
|
|
9
|
+
:size="size"
|
|
10
|
+
@check="checkChange"
|
|
11
|
+
:filter-node-method="filterNodeMethod"
|
|
12
|
+
:render-after-expand="false"
|
|
13
|
+
:loading-text="loadingText"
|
|
14
|
+
:collapse-tags="tags"
|
|
15
|
+
:clearable="clearableVal"
|
|
16
|
+
:placeholder="placeholder"
|
|
17
|
+
:popper-class="popperClass"
|
|
18
|
+
:popper-append-to-body="popperAppendToBody"
|
|
19
|
+
:multiple="multiple"
|
|
20
|
+
:node-key="valueKey"
|
|
21
|
+
:show-checkbox="multiple"
|
|
22
|
+
:filterable="filterable"
|
|
23
|
+
:check-strictly="checkStrictly"
|
|
24
|
+
:disabled="disabled"
|
|
25
|
+
:accordion="accordion"
|
|
26
|
+
:icon-class="iconClass"
|
|
27
|
+
:indent="indent"
|
|
28
|
+
@focus="handleFocus"
|
|
29
|
+
@blur="handleBlur"
|
|
30
|
+
:check-on-click-leaf="checkOnClickLeaf"
|
|
31
|
+
:default-checked-keys="keysList"
|
|
32
|
+
:default-expanded-keys="defaultExpandedKeys?defaultExpandedKeys:keysList"
|
|
33
|
+
:default-expand-all="defaultExpandAll"
|
|
34
|
+
:check-on-click-node="checkOnClickNode"
|
|
35
|
+
:expand-on-click-node="expandOnClickNode"
|
|
36
|
+
@node-click.self="handleNodeClick"
|
|
37
|
+
:props="treeProps"
|
|
38
|
+
:data="netDic">
|
|
39
|
+
<template #="{data,node}">
|
|
40
|
+
<slot v-if="$slots.default"
|
|
41
|
+
:label="labelKey"
|
|
42
|
+
:value="valueKey"
|
|
43
|
+
:node="node"
|
|
44
|
+
:item="data"></slot>
|
|
45
|
+
<span v-else
|
|
46
|
+
style="margin-left:8px;">
|
|
47
|
+
<span>{{getLabelText(data)}}</span>
|
|
48
|
+
<span :class="b('desc')"
|
|
49
|
+
v-if="data[descKey]">{{ data[descKey] }}</span>
|
|
50
|
+
</span>
|
|
51
|
+
</template>
|
|
52
|
+
</el-tree-select>
|
|
53
|
+
</template>
|
|
54
|
+
|
|
55
|
+
<script>
|
|
56
|
+
import create from "../../../core/create.mjs";
|
|
57
|
+
import props from "../../core/common/props.mjs";
|
|
58
|
+
import event from "../../core/common/event.mjs";
|
|
59
|
+
import { DIC_SHOW_SPLIT } from '../../../global/variable.mjs';
|
|
60
|
+
import { DIC_PROPS } from '../../../global/variable.mjs';
|
|
61
|
+
export default create({
|
|
62
|
+
name: "input-tree",
|
|
63
|
+
mixins: [props(), event()],
|
|
64
|
+
data () {
|
|
65
|
+
return {
|
|
66
|
+
netDic: [],
|
|
67
|
+
loading: false,
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
props: {
|
|
71
|
+
cacheData: [Object, Array],
|
|
72
|
+
indent: Number,
|
|
73
|
+
filterNodeMethod: Function,
|
|
74
|
+
nodeClick: Function,
|
|
75
|
+
treeLoad: Function,
|
|
76
|
+
checked: Function,
|
|
77
|
+
modelValue: {},
|
|
78
|
+
loadingText: {
|
|
79
|
+
type: String,
|
|
80
|
+
},
|
|
81
|
+
lazy: {
|
|
82
|
+
type: Boolean,
|
|
83
|
+
default: false
|
|
84
|
+
},
|
|
85
|
+
leafOnly: {
|
|
86
|
+
type: Boolean,
|
|
87
|
+
default: false
|
|
88
|
+
},
|
|
89
|
+
tags: {
|
|
90
|
+
type: Boolean,
|
|
91
|
+
default: false
|
|
92
|
+
},
|
|
93
|
+
limit: {
|
|
94
|
+
type: Number,
|
|
95
|
+
default: 0
|
|
96
|
+
},
|
|
97
|
+
checkOnClickLeaf: Boolean,
|
|
98
|
+
filterable: {
|
|
99
|
+
type: Boolean,
|
|
100
|
+
default: false
|
|
101
|
+
},
|
|
102
|
+
checkStrictly: {
|
|
103
|
+
type: Boolean,
|
|
104
|
+
default: (props) => props.multiple ? false : true
|
|
105
|
+
},
|
|
106
|
+
accordion: {
|
|
107
|
+
type: Boolean,
|
|
108
|
+
default: false
|
|
109
|
+
},
|
|
110
|
+
parent: {
|
|
111
|
+
type: Boolean,
|
|
112
|
+
default: true
|
|
113
|
+
},
|
|
114
|
+
iconClass: {
|
|
115
|
+
type: String,
|
|
116
|
+
},
|
|
117
|
+
defaultExpandedKeys: Array,
|
|
118
|
+
checkOnClickNode: Boolean,
|
|
119
|
+
expandOnClickNode: Boolean,
|
|
120
|
+
defaultExpandAll: Boolean,
|
|
121
|
+
popperAppendToBody: Boolean,
|
|
122
|
+
},
|
|
123
|
+
watch: {
|
|
124
|
+
dic: {
|
|
125
|
+
handler (val) {
|
|
126
|
+
this.netDic = val;
|
|
127
|
+
},
|
|
128
|
+
immediate: true
|
|
129
|
+
},
|
|
130
|
+
netDic: {
|
|
131
|
+
handler () {
|
|
132
|
+
this.init();
|
|
133
|
+
},
|
|
134
|
+
immediate: true
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
computed: {
|
|
138
|
+
keysList () {
|
|
139
|
+
return this.multiple ? this.text : [this.text || '']
|
|
140
|
+
},
|
|
141
|
+
treeProps () {
|
|
142
|
+
return Object.assign(this.deepClone(DIC_PROPS), this.props, {
|
|
143
|
+
isLeaf: this.leafKey
|
|
144
|
+
})
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
methods: {
|
|
148
|
+
handleTextValue (value) {
|
|
149
|
+
this.init();
|
|
150
|
+
},
|
|
151
|
+
getHalfList () {
|
|
152
|
+
let list = this.$refs.tree.getCheckedNodes(false, true)
|
|
153
|
+
list = list.map(ele => ele[this.valueKey])
|
|
154
|
+
return list;
|
|
155
|
+
},
|
|
156
|
+
init () {
|
|
157
|
+
this.disabledParentNode(this.dic, this.parent);
|
|
158
|
+
},
|
|
159
|
+
disabledParentNode (dic, parent) {
|
|
160
|
+
dic.forEach(ele => {
|
|
161
|
+
const children = ele[this.childrenKey];
|
|
162
|
+
if (!this.validatenull(children)) {
|
|
163
|
+
if (!parent) {
|
|
164
|
+
ele.disabled = true;
|
|
165
|
+
}
|
|
166
|
+
this.disabledParentNode(children, parent);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
},
|
|
170
|
+
checkChange (checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys) {
|
|
171
|
+
if (typeof this.checked === "function") this.checked(checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys);
|
|
172
|
+
},
|
|
173
|
+
handleNodeClick (data, node, nodeComp) {
|
|
174
|
+
if (typeof this.nodeClick === "function") this.nodeClick(data, node, nodeComp);
|
|
175
|
+
},
|
|
176
|
+
handleLoad (node, resolve) {
|
|
177
|
+
let callback = (list) => {
|
|
178
|
+
let findDic = (list, value, children) => {
|
|
179
|
+
list.forEach(ele => {
|
|
180
|
+
if (ele[this.valueKey] == value) {
|
|
181
|
+
ele[this.childrenKey] = children
|
|
182
|
+
} else if (ele[this.childrenKey]) {
|
|
183
|
+
findDic(ele[this.childrenKey])
|
|
184
|
+
}
|
|
185
|
+
})
|
|
186
|
+
}
|
|
187
|
+
findDic(this.netDic, node.key, list)
|
|
188
|
+
resolve(list);
|
|
189
|
+
}
|
|
190
|
+
this.treeLoad && this.treeLoad(node, callback)
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
</script>
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div :class="b()"
|
|
3
|
+
style="position:relative">
|
|
4
|
+
<canvas :id="'canvas'+id"
|
|
5
|
+
ref="canvas"></canvas>
|
|
6
|
+
<slot></slot>
|
|
7
|
+
</div>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
import create from "../../../core/create.mjs";
|
|
12
|
+
import { downFile } from '../../../utils/util.mjs';
|
|
13
|
+
export default create({
|
|
14
|
+
name: 'license',
|
|
15
|
+
props: {
|
|
16
|
+
id: {
|
|
17
|
+
type: String,
|
|
18
|
+
default: ''
|
|
19
|
+
},
|
|
20
|
+
option: {
|
|
21
|
+
type: Object,
|
|
22
|
+
default: () => {
|
|
23
|
+
return {}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
watch: {
|
|
28
|
+
option: {
|
|
29
|
+
handler () {
|
|
30
|
+
this.init();
|
|
31
|
+
},
|
|
32
|
+
deep: true
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
data () {
|
|
36
|
+
return {
|
|
37
|
+
base64: '',
|
|
38
|
+
draw: false,
|
|
39
|
+
canvas: '',
|
|
40
|
+
context: '',
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
computed: {
|
|
44
|
+
img () {
|
|
45
|
+
return this.option.img
|
|
46
|
+
},
|
|
47
|
+
list () {
|
|
48
|
+
return this.option.list || []
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
mounted () {
|
|
52
|
+
this.canvas = document.getElementById("canvas" + this.id);
|
|
53
|
+
this.context = this.canvas.getContext("2d");
|
|
54
|
+
this.init();
|
|
55
|
+
},
|
|
56
|
+
methods: {
|
|
57
|
+
init () {
|
|
58
|
+
this.draw = false;
|
|
59
|
+
const beauty = new Image();
|
|
60
|
+
beauty.src = this.img;
|
|
61
|
+
beauty.onload = () => {
|
|
62
|
+
const width = this.option.width || beauty.width;;
|
|
63
|
+
const height = this.option.width ? ((beauty.height / beauty.width) * this.option.width) : beauty.height;
|
|
64
|
+
this.$refs.canvas.width = width;
|
|
65
|
+
this.$refs.canvas.height = height
|
|
66
|
+
this.context.clearRect(0, 0, width, height);
|
|
67
|
+
this.context.drawImage(beauty, 0, 0, width, height);
|
|
68
|
+
this.list.forEach((ele, index) => {
|
|
69
|
+
const callback = () => {
|
|
70
|
+
if (index == this.list.length - 1) {
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
this.draw = true;
|
|
73
|
+
}, 0)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (ele.img) {
|
|
77
|
+
const img = new Image();
|
|
78
|
+
img.src = ele.img
|
|
79
|
+
img.onload = () => {
|
|
80
|
+
const widths = ele.width || img.width;;
|
|
81
|
+
const heights = ele.width ? ((img.height / img.width) * ele.width) : img.height;
|
|
82
|
+
this.context.drawImage(img, ele.left, ele.top, widths, heights);
|
|
83
|
+
callback();
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
if (ele.bold) {
|
|
87
|
+
this.context.font = `bold ${ele.size}px ${ele.style}`
|
|
88
|
+
} else {
|
|
89
|
+
this.context.font = `${ele.size}px ${ele.style}`
|
|
90
|
+
}
|
|
91
|
+
this.context.fillStyle = ele.color;
|
|
92
|
+
|
|
93
|
+
this.context.fillText(ele.text, ele.left, ele.top);
|
|
94
|
+
this.context.stroke();
|
|
95
|
+
callback();
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
getFile (name = new Date().getTime()) {
|
|
102
|
+
return new Promise((resolve) => {
|
|
103
|
+
const time = setInterval(() => {
|
|
104
|
+
if (this.draw) {
|
|
105
|
+
const data = this.canvas.toDataURL('image/jpeg', 1.0);
|
|
106
|
+
const file = this.dataURLtoFile(data, name)
|
|
107
|
+
clearInterval(time)
|
|
108
|
+
resolve(file)
|
|
109
|
+
}
|
|
110
|
+
}, 1000)
|
|
111
|
+
})
|
|
112
|
+
return file;
|
|
113
|
+
},
|
|
114
|
+
downFile (filename = new Date().getTime()) {
|
|
115
|
+
downFile(this.base64, filename)
|
|
116
|
+
},
|
|
117
|
+
getBase64 () {
|
|
118
|
+
return new Promise((resolve) => {
|
|
119
|
+
const time = setInterval(() => {
|
|
120
|
+
if (this.draw) {
|
|
121
|
+
const data = this.canvas.toDataURL('image/jpeg', 1.0);
|
|
122
|
+
this.base64 = data;
|
|
123
|
+
clearInterval(time)
|
|
124
|
+
resolve(data)
|
|
125
|
+
}
|
|
126
|
+
}, 100)
|
|
127
|
+
})
|
|
128
|
+
},
|
|
129
|
+
getPdf (name = new Date().getTime()) {
|
|
130
|
+
const contentWidth = this.canvas.width;
|
|
131
|
+
const contentHeight = this.canvas.height;
|
|
132
|
+
const pageHeight = (contentWidth / 592.28) * 841.89;
|
|
133
|
+
let leftHeight = contentHeight;
|
|
134
|
+
let position = 0;
|
|
135
|
+
const imgWidth = 595.28;
|
|
136
|
+
const imgHeight = (592.28 / contentWidth) * contentHeight;
|
|
137
|
+
const pageData = this.canvas.toDataURL('image/jpeg', 1.0);
|
|
138
|
+
const PDF = new window.jsPDF('', 'pt', 'a4');
|
|
139
|
+
if (leftHeight < pageHeight) {
|
|
140
|
+
PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
|
|
141
|
+
} else {
|
|
142
|
+
while (leftHeight > 0) {
|
|
143
|
+
PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);
|
|
144
|
+
leftHeight -= pageHeight;
|
|
145
|
+
position -= 841.89;
|
|
146
|
+
if (leftHeight > 0) {
|
|
147
|
+
PDF.addPage();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
PDF.save(`${name}.pdf`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
})
|
|
155
|
+
</script>
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div :class="b()"
|
|
3
|
+
:style="{width:setPx(width)}">
|
|
4
|
+
<el-form :model="form"
|
|
5
|
+
ref="form"
|
|
6
|
+
:size="$AVUE.size"
|
|
7
|
+
label-suffix=":"
|
|
8
|
+
:label-width="setPx(labelWidth)">
|
|
9
|
+
<el-form-item :label="username.label || t('login.usernameLabel')"
|
|
10
|
+
:rules="username.rules"
|
|
11
|
+
:label-width="setPx(username.labelWidth)"
|
|
12
|
+
v-if="!username.hide"
|
|
13
|
+
prop="username">
|
|
14
|
+
<el-tooltip :content="username.tip"
|
|
15
|
+
:disabled="username.tip===undefined"
|
|
16
|
+
placement="top-start">
|
|
17
|
+
<el-input v-model="form.username"
|
|
18
|
+
:prefix-icon="username.prefixIcon || 'el-icon-user'"
|
|
19
|
+
:placeholder="username.placeholder || t('login.usernamePlaceholder')"
|
|
20
|
+
:autocomplete="username.autocomplete"></el-input>
|
|
21
|
+
</el-tooltip>
|
|
22
|
+
</el-form-item>
|
|
23
|
+
<el-form-item :label="password.label || t('login.passwordLabel')"
|
|
24
|
+
:rules="password.rules"
|
|
25
|
+
:label-width="setPx(password.labelWidth)"
|
|
26
|
+
v-if="!password.hide"
|
|
27
|
+
prop="password">
|
|
28
|
+
<el-tooltip :content="password.tip"
|
|
29
|
+
:disabled="password.tip===undefined"
|
|
30
|
+
placement="top-start">
|
|
31
|
+
<el-input type="password"
|
|
32
|
+
:prefix-icon="password.prefixIcon || 'el-icon-unlock'"
|
|
33
|
+
:placeholder="password.placeholder || t('login.passwordPlaceholder')"
|
|
34
|
+
show-password
|
|
35
|
+
v-model="form.password"
|
|
36
|
+
:autocomplete="password.autocomplete"></el-input>
|
|
37
|
+
</el-tooltip>
|
|
38
|
+
</el-form-item>
|
|
39
|
+
<el-form-item :label="code.label || t('login.codeLabel')"
|
|
40
|
+
:rules="code.rules"
|
|
41
|
+
v-if="!code.hide"
|
|
42
|
+
:label-width="setPx(code.labelWidth)"
|
|
43
|
+
prop="code">
|
|
44
|
+
<el-tooltip :content="code.tip"
|
|
45
|
+
:disabled="code.tip===undefined"
|
|
46
|
+
placement="top-start">
|
|
47
|
+
<el-input v-model="form.code"
|
|
48
|
+
:prefix-icon="code.prefixIcon || 'el-icon-c-scale-to-original'"
|
|
49
|
+
:placeholder="code.placeholder || t('login.codePlaceholder')"
|
|
50
|
+
:autocomplete="code.autocomplete">
|
|
51
|
+
|
|
52
|
+
<template #append>
|
|
53
|
+
<el-button type="primary"
|
|
54
|
+
:class="b('send')"
|
|
55
|
+
v-if="isPhone"
|
|
56
|
+
:disabled="sendDisabled"
|
|
57
|
+
@click="onSend">{{sendText}}</el-button>
|
|
58
|
+
<span v-if="isImg">
|
|
59
|
+
<img :src="codesrc"
|
|
60
|
+
alt=""
|
|
61
|
+
@click="onRefresh"
|
|
62
|
+
width="80"
|
|
63
|
+
height="25">
|
|
64
|
+
</span>
|
|
65
|
+
</template>
|
|
66
|
+
</el-input>
|
|
67
|
+
</el-tooltip>
|
|
68
|
+
</el-form-item>
|
|
69
|
+
<el-form-item>
|
|
70
|
+
<el-button type="primary"
|
|
71
|
+
@click="onSubmit"
|
|
72
|
+
:class="b('submit')">{{t('login.submitBtn')}}</el-button>
|
|
73
|
+
</el-form-item>
|
|
74
|
+
</el-form>
|
|
75
|
+
</div>
|
|
76
|
+
</template>
|
|
77
|
+
|
|
78
|
+
<script>
|
|
79
|
+
import create from "../../../core/create.mjs";
|
|
80
|
+
import locale from "../../../core/locale.mjs";
|
|
81
|
+
export default create({
|
|
82
|
+
name: 'login',
|
|
83
|
+
mixins: [locale],
|
|
84
|
+
emits: ['update:modelValue','send','refresh','submit'],
|
|
85
|
+
props: {
|
|
86
|
+
modelValue: {
|
|
87
|
+
type: Object,
|
|
88
|
+
default: () => {
|
|
89
|
+
return {}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
codesrc: {
|
|
93
|
+
type: String,
|
|
94
|
+
},
|
|
95
|
+
option: {
|
|
96
|
+
type: Object,
|
|
97
|
+
default: () => {
|
|
98
|
+
return {};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
computed: {
|
|
103
|
+
labelWidth () {
|
|
104
|
+
return this.option.labelWidth || 80
|
|
105
|
+
},
|
|
106
|
+
time () {
|
|
107
|
+
return this.option.time || 60
|
|
108
|
+
},
|
|
109
|
+
isImg () {
|
|
110
|
+
return this.codeType === 'img'
|
|
111
|
+
},
|
|
112
|
+
isPhone () {
|
|
113
|
+
return this.codeType === 'phone'
|
|
114
|
+
},
|
|
115
|
+
codeType () {
|
|
116
|
+
return this.option.codeType || 'img'
|
|
117
|
+
},
|
|
118
|
+
width () {
|
|
119
|
+
return this.option.width || '100%'
|
|
120
|
+
},
|
|
121
|
+
username () {
|
|
122
|
+
return this.column.username || {}
|
|
123
|
+
},
|
|
124
|
+
password () {
|
|
125
|
+
return this.column.password || {}
|
|
126
|
+
},
|
|
127
|
+
code () {
|
|
128
|
+
return this.column.code || {}
|
|
129
|
+
},
|
|
130
|
+
column () {
|
|
131
|
+
return this.option.column || {};
|
|
132
|
+
},
|
|
133
|
+
sendDisabled () {
|
|
134
|
+
return !this.validatenull(this.check)
|
|
135
|
+
},
|
|
136
|
+
sendText () {
|
|
137
|
+
return this.nowtime > 0
|
|
138
|
+
? this.t('login.resendCode', { time: this.nowtime })
|
|
139
|
+
: this.t('login.sendCode');
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
},
|
|
143
|
+
watch: {
|
|
144
|
+
modelValue: {
|
|
145
|
+
handler () {
|
|
146
|
+
this.form = this.modelValue
|
|
147
|
+
},
|
|
148
|
+
deep: true
|
|
149
|
+
},
|
|
150
|
+
form: {
|
|
151
|
+
handler () {
|
|
152
|
+
this.$emit('update:modelValue', this.form)
|
|
153
|
+
},
|
|
154
|
+
deep: true,
|
|
155
|
+
immediate: true
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
data () {
|
|
159
|
+
return {
|
|
160
|
+
nowtime: 0,
|
|
161
|
+
check: null,
|
|
162
|
+
form: {}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
methods: {
|
|
166
|
+
onSend () {
|
|
167
|
+
const callback = () => {
|
|
168
|
+
this.nowtime = this.time;
|
|
169
|
+
this.check = setInterval(() => {
|
|
170
|
+
this.nowtime--
|
|
171
|
+
if (this.nowtime === 0) {
|
|
172
|
+
clearInterval(this.check);
|
|
173
|
+
this.check = null;
|
|
174
|
+
}
|
|
175
|
+
}, 1000)
|
|
176
|
+
}
|
|
177
|
+
if (this.sendDisabled) return
|
|
178
|
+
this.$emit('send', callback)
|
|
179
|
+
},
|
|
180
|
+
onRefresh () {
|
|
181
|
+
this.$emit('refresh');
|
|
182
|
+
},
|
|
183
|
+
onSubmit () {
|
|
184
|
+
const onCover = () => {
|
|
185
|
+
const form = {};
|
|
186
|
+
for (let o in this.form) {
|
|
187
|
+
let key = o;
|
|
188
|
+
if (this[o].prop) {
|
|
189
|
+
key = this[o].prop
|
|
190
|
+
}
|
|
191
|
+
form[key] = this.form[o]
|
|
192
|
+
}
|
|
193
|
+
return form;
|
|
194
|
+
}
|
|
195
|
+
this.$refs.form.validate((valid) => {
|
|
196
|
+
if (valid) {
|
|
197
|
+
this.$emit('submit', onCover())
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
</script>
|