From 677f65ff8ce00ed4b0a20e0c2ca8daa7f6dfd9f1 Mon Sep 17 00:00:00 2001 From: xieyonghong <18010623010@163.com> Date: Wed, 19 Apr 2023 17:25:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=87=BA-=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Form/rules.ts | 65 ++++- src/views/device/Instance/Import/modal.vue | 69 +++++ src/views/device/Instance/Import/product.vue | 254 ++++++++++++++++++ .../Product/Detail/DeviceAccess/index.vue | 2 +- .../AccessConfig/components/Plugin/index.vue | 25 +- src/views/link/plugin/Save.vue | 3 +- src/views/link/plugin/UploadFile.vue | 10 +- src/views/link/plugin/index.vue | 25 +- 8 files changed, 424 insertions(+), 29 deletions(-) create mode 100644 src/views/device/Instance/Import/modal.vue create mode 100644 src/views/device/Instance/Import/product.vue diff --git a/src/components/Form/rules.ts b/src/components/Form/rules.ts index dc0600c9..4dbfb81e 100644 --- a/src/components/Form/rules.ts +++ b/src/components/Form/rules.ts @@ -24,4 +24,67 @@ export const ID_Rule = [ message: '请输入英文或者数字或者-或者_', }, Max_Length_64[0] -] \ No newline at end of file +] + +export const CreteRuleByType = (type: string) => { + switch (type){ + case 'int': + return [ + { + validator: (_: any, value: number) => { + const baseNumber = 2147483648 + if (value < -baseNumber) { + return Promise.reject(`最小仅输入-${baseNumber}`); + } + if (value > baseNumber) { + return Promise.reject(`最大可输入${baseNumber}`); + } + return Promise.resolve(); + } + } + ] + case'long': + return [ + { + validator: (_: any, value: number) => { + const baseNumber = 340282346638528860000000000000000000000 + if (value < -baseNumber) { + return Promise.reject(`最小仅输入-${baseNumber}`); + } + if (value > baseNumber) { + return Promise.reject(`最大可输入${baseNumber}`); + } + return Promise.resolve(); + } + } + ] + case'float': + return [ + { + validator: (_: any, value: number) => { + const baseNumber = 9223372036854775807 + if (value < -baseNumber) { + return Promise.reject(`最小仅输入-${baseNumber}`); + } + if (value > baseNumber) { + return Promise.reject(`最大可输入${baseNumber}`); + } + return Promise.resolve(); + } + } + ] + // case'double': + // return [ + // { + // max: 1.7976931348623157, + // message: '最大可输入64位字符' + // } + // ] + case 'string': + return [MaxLengthStringFn()]; + case 'description': + return [MaxLengthStringFn(200)] + default: + return [] + } +} \ No newline at end of file diff --git a/src/views/device/Instance/Import/modal.vue b/src/views/device/Instance/Import/modal.vue new file mode 100644 index 00000000..8f957635 --- /dev/null +++ b/src/views/device/Instance/Import/modal.vue @@ -0,0 +1,69 @@ + + + + + \ No newline at end of file diff --git a/src/views/device/Instance/Import/product.vue b/src/views/device/Instance/Import/product.vue new file mode 100644 index 00000000..f83030b5 --- /dev/null +++ b/src/views/device/Instance/Import/product.vue @@ -0,0 +1,254 @@ + + + + + \ No newline at end of file diff --git a/src/views/device/Product/Detail/DeviceAccess/index.vue b/src/views/device/Product/Detail/DeviceAccess/index.vue index faeca451..ef91ff68 100644 --- a/src/views/device/Product/Detail/DeviceAccess/index.vue +++ b/src/views/device/Product/Detail/DeviceAccess/index.vue @@ -90,7 +90,7 @@ - +
@@ -77,7 +77,6 @@ import { FileUploadResult } from '@/views/link/plugin/typings' import { add, vailIdFn } from '@/api/link/plugin' import { message } from 'jetlinks-ui-components' import { TypeMap } from './util' -import { start } from '@/api/link/type' const props = defineProps({ data: { diff --git a/src/views/link/plugin/UploadFile.vue b/src/views/link/plugin/UploadFile.vue index 18127ee3..c96f619d 100644 --- a/src/views/link/plugin/UploadFile.vue +++ b/src/views/link/plugin/UploadFile.vue @@ -9,12 +9,12 @@ @change="handleChange" class="upload-box" :before-upload="beforeUpload" - :disabled='disabled || loading' + :disabled='loading' :maxCount='1' >
- 上传文件 - 格式要求:{文件名}.jar + 上传文件 + 格式要求:{文件名}.jar/{文件名}.zip
@@ -51,9 +51,9 @@ const loading = ref(false); const beforeUpload: UploadProps['beforeUpload'] = (file, fl) => { const arr = file.name.split('.'); - const isFile = ['jar'].includes(arr[arr.length - 1]); // file.type === 'application/zip' || file.type === 'application/javj-archive' + const isFile = ['jar', 'zip'].includes(arr[arr.length - 1]); // file.type === 'application/zip' || file.type === 'application/javj-archive' if (!isFile) { - onlyMessage('请上传.jar格式的文件', 'error'); + onlyMessage('请上传.jar,.zip格式的文件', 'error'); loading.value = false; } return isFile; diff --git a/src/views/link/plugin/index.vue b/src/views/link/plugin/index.vue index d30f8cfb..15331fe8 100644 --- a/src/views/link/plugin/index.vue +++ b/src/views/link/plugin/index.vue @@ -29,8 +29,12 @@ :value="slotProps" :showStatus='false' :actions='getActions(slotProps)' + :statusNames='{ + processing: "processing" + }' status='processing' > +