@open-data-v/data
Version:
OpenDataV 数据处理基础组件包
1 lines • 4.99 kB
Source Map (JSON)
{"version":3,"file":"DynamicKVForm.vue.umd2.cjs","sources":["../../src/rest/DynamicKVForm.vue"],"sourcesContent":["<template>\n <div class=\"header flex flex-row flex-nowrap\">\n <o-divider title-placement=\"left\" class=\"w-1/2\">\n {{ title }}\n </o-divider>\n <o-divider title-placement=\"right\" style=\"width: 50%\">\n <x-icon name=\"add\" color=\"#18A058\" class=\"action\" @click=\"addParams()\" />\n <x-icon name=\"clear\" color=\"#F76560\" class=\"action\" @click=\"clearParams()\" />\n <x-icon name=\"edit\" color=\"#2080F0\" class=\"action\" @click=\"editParams()\" />\n </o-divider>\n </div>\n <div v-for=\"(item, index) in formData\" :key=\"item.id\">\n <div class=\"mb-0.5 flex-nowrap flex flex-row items-center justify-center\">\n <o-input\n class=\"w-1/2\"\n size=\"small\"\n :input-props=\"{\n autocomplete: 'disabled'\n }\"\n :value=\"formData[index]['key']\"\n :allow-input=\"noSideSpace\"\n :placeholder=\"`参数${index + 1}`\"\n @update:value=\"(value) => changed(index, 'key', value)\"\n />\n <o-input\n class=\"w-1/2\"\n size=\"small\"\n :value=\"formData[index]['value']\"\n :allow-input=\"noSideSpace\"\n :placeholder=\"`值${index + 1}`\"\n @update:value=\"(value) => changed(index, 'value', value)\"\n />\n <o-button size=\"small\" @click=\"disableParams(index)\">\n <template #icon>\n <x-icon\n :name=\"item.disable ? 'close' : 'check'\"\n :color=\"item.disable ? '#333639' : '#2080F0'\"\n />\n </template>\n </o-button>\n <o-button size=\"small\" @click=\"removeParams(index)\">\n <template #icon>\n <x-icon name=\"delete\" color=\"#F76560\" />\n </template>\n </o-button>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { OButton, ODivider, OInput } from '@open-data-v/ui'\nimport { ref, watch } from 'vue'\n\nimport { uuid } from '../utils'\nimport type { KV } from './type'\n\nconst props = withDefaults(defineProps<{ value: Array<KV>; title: string; options?: string[] }>(), {\n title: '',\n value: () => [\n {\n key: '',\n value: '',\n disable: false,\n id: uuid(),\n options: []\n }\n ]\n})\n\nconst emits = defineEmits<{\n (e: 'update:value', value: KV[]): void\n}>()\n\nconst formData = ref<KV[]>(props.value)\n\nconst changed = (index: number, param: string, value: any) => {\n formData.value[index][param] = value\n\n emits('update:value', formData.value)\n}\n\nconst addParams = () => {\n const index = formData.value.length\n formData.value.splice(index, 0, { key: '', value: '', disable: false, id: uuid() })\n emits('update:value', formData.value)\n}\nconst removeParams = (index: number) => {\n formData.value.splice(index, 1)\n if (formData.value.length === 0) {\n formData.value.push({ key: '', value: '', disable: false, id: uuid() })\n }\n emits('update:value', formData.value)\n}\nconst clearParams = () => {\n formData.value = [{ key: '', value: '', disable: false, id: uuid() }]\n emits('update:value', formData.value)\n}\n\nconst editParams = () => {\n emits('update:value', formData.value)\n}\nconst disableParams = (index: number) => {\n formData.value[index].disable = !formData.value[index].disable\n emits('update:value', formData.value)\n}\nconst noSideSpace = (value: string) => {\n return !value.startsWith(' ') && !value.endsWith(' ')\n}\n\nwatch(\n () => props.value,\n () => {\n if (props.value) {\n formData.value = props.value\n }\n }\n)\n</script>\n<style lang=\"less\" scoped>\n.action {\n &:hover {\n scale: 1.2;\n }\n transition: transform 2s ease-in-out;\n}\n</style>\n"],"names":["props","__props","emits","__emit","formData","ref","changed","index","param","value","addParams","uuid","removeParams","clearParams","editParams","disableParams","noSideSpace","watch"],"mappings":"yfAuDA,MAAMA,EAAQC,EAaRC,EAAQC,EAIRC,EAAWC,EAAAA,IAAUL,EAAM,KAAK,EAEhCM,EAAU,CAACC,EAAeC,EAAeC,IAAe,CAC5DL,EAAS,MAAMG,CAAK,EAAEC,CAAK,EAAIC,EAEzBP,EAAA,eAAgBE,EAAS,KAAK,CACtC,EAEMM,EAAY,IAAM,CAChB,MAAAH,EAAQH,EAAS,MAAM,OAC7BA,EAAS,MAAM,OAAOG,EAAO,EAAG,CAAE,IAAK,GAAI,MAAO,GAAI,QAAS,GAAO,GAAII,EAAAA,OAAQ,EAC5ET,EAAA,eAAgBE,EAAS,KAAK,CACtC,EACMQ,EAAgBL,GAAkB,CAC7BH,EAAA,MAAM,OAAOG,EAAO,CAAC,EAC1BH,EAAS,MAAM,SAAW,GAC5BA,EAAS,MAAM,KAAK,CAAE,IAAK,GAAI,MAAO,GAAI,QAAS,GAAO,GAAIO,EAAAA,KAAK,CAAA,CAAG,EAElET,EAAA,eAAgBE,EAAS,KAAK,CACtC,EACMS,EAAc,IAAM,CACxBT,EAAS,MAAQ,CAAC,CAAE,IAAK,GAAI,MAAO,GAAI,QAAS,GAAO,GAAIO,EAAAA,KAAK,CAAA,CAAG,EAC9DT,EAAA,eAAgBE,EAAS,KAAK,CACtC,EAEMU,EAAa,IAAM,CACjBZ,EAAA,eAAgBE,EAAS,KAAK,CACtC,EACMW,EAAiBR,GAAkB,CAC9BH,EAAA,MAAMG,CAAK,EAAE,QAAU,CAACH,EAAS,MAAMG,CAAK,EAAE,QACjDL,EAAA,eAAgBE,EAAS,KAAK,CACtC,EACMY,EAAeP,GACZ,CAACA,EAAM,WAAW,GAAG,GAAK,CAACA,EAAM,SAAS,GAAG,EAGtDQ,OAAAA,EAAA,MACE,IAAMjB,EAAM,MACZ,IAAM,CACAA,EAAM,QACRI,EAAS,MAAQJ,EAAM,MACzB,CAEJ"}