{"version":3,"file":"BatchEdit.cjs","sources":["../../../../../packages/components/dialog/BatchEdit.vue"],"sourcesContent":["<template>\n    <el-dialog v-model=\"dialogVisible\" title=\"批量编辑选项\" width=\"585px\" center>\n        <div class=\"option-list\">\n            <div class=\"option-list-box\" v-for=\"(item, index) in newOptionsList\" :key=\"index\">\n                <div\n                    class=\"option-list_item\"\n                    contenteditable\n                    @blur=\"valueChange(index)\"\n                    :ref=\"(el) => (nodeList[index] = el)\"\n                    v-html=\"item.label\"\n                ></div>\n                <div class=\"option-list_item_delete\" @click=\"deleteOption(index)\">-</div>\n            </div>\n            <el-input\n                class=\"option-list_textarea\"\n                style=\"height: auto\"\n                v-model=\"newOption\"\n                :rows=\"8\"\n                type=\"textarea\"\n                placeholder=\"在这里新增选项，每行代表一个选项，可以添加多个选项\"\n            />\n        </div>\n        <template #footer>\n            <span class=\"dialog-footer\">\n                <el-button @click=\"dialogVisible = false\">取消</el-button>\n                <el-button type=\"primary\" @click=\"confirmButton\"> 确定 </el-button>\n            </span>\n        </template>\n    </el-dialog>\n</template>\n<script setup>\nimport { ref, watch } from \"vue\";\nconst props = defineProps([\"optionsList\"]);\nconst emits = defineEmits([\"confirmOption\"]);\nlet newOption = ref(\"\");\nlet dialogVisible = ref(false);\nlet newOptionsList = ref([]);\nlet nodeList = ref([]);\ndefineExpose({ dialogVisible, newOption });\n\nwatch(dialogVisible, (curr, old) => {\n    initData();\n});\nconst valueChange = (index) => {\n    newOptionsList.value[index].label = nodeList.value[index].innerHTML;\n};\nconst confirmButton = () => {\n    let options = newOption.value.split(/[(\\r\\n)\\r\\n]+/);\n    let optionsList = ref([]);\n    options.map((item) => {\n        let obj = {\n            label: item,\n            value: newOptionsList.value.length + 1,\n        };\n        if (item) {\n            optionsList.value.push(obj);\n        }\n    });\n\n    emits(\"confirmOption\", [...newOptionsList.value, ...optionsList.value]);\n    dialogVisible.value = false;\n};\n// 删除\nconst deleteOption = (index) => {\n    newOptionsList.value.splice(index, 1);\n};\n// 重置数据\nfunction initData() {\n    newOptionsList.value = JSON.parse(JSON.stringify(props.optionsList));\n    newOption.value = \"\";\n}\n</script>\n<style lang=\"scss\" scoped>\n.option-list {\n    width: 100%;\n\n    .option-list-box {\n        position: relative;\n        .option-list_item {\n            width: 517px;\n            height: 30px;\n            line-height: 30px;\n            background: rgba(255, 255, 255, 1);\n            border: 1px solid rgba(229, 232, 238, 1);\n            margin-bottom: 10px;\n            padding: 0 10px;\n            box-sizing: border-box;\n            color: rgba(112, 120, 134, 1);\n            font-size: 14px;\n            font-weight: 400;\n            outline: none;\n            &:focus {\n                border-color: var(--el-color-primary);\n            }\n        }\n        .option-list_item_delete {\n            position: absolute;\n            right: -10px;\n            top: 50%;\n            transform: translateY(-50%);\n            width: 18px;\n            height: 18px;\n            line-height: 8px;\n            border-radius: 50%;\n            border: 1px solid rgba(211, 214, 222, 1);\n            color: rgba(211, 214, 222, 1);\n            text-align: center;\n            font-size: 30px;\n            cursor: pointer;\n        }\n    }\n\n    .option-list_textarea {\n        width: 517px;\n    }\n}\n</style>\n"],"names":["newOption","ref","dialogVisible","newOptionsList","nodeList","expose","watch","curr","old","initData","valueChange","index","confirmButton","options","optionsList","item","obj","emits","deleteOption","props"],"mappings":"iaAkCA,IAAAA,EAAAC,EAAAA,IAAA,EAAA,EACAC,EAAAD,EAAAA,IAAA,EAAA,EACAE,EAAAF,EAAAA,IAAA,CAAA,CAAA,EACAG,EAAAH,EAAAA,IAAA,CAAA,CAAA,EACAI,EAAA,CAAA,cAAAH,EAAA,UAAAF,CAAA,CAAA,EAEAM,EAAAA,MAAAJ,EAAA,CAAAK,EAAAC,IAAA,CACAC,GACA,CAAA,EACA,MAAAC,EAAAC,GAAA,CACAR,EAAA,MAAAQ,CAAA,EAAA,MAAAP,EAAA,MAAAO,CAAA,EAAA,SACA,EACAC,EAAA,IAAA,CACA,IAAAC,EAAAb,EAAA,MAAA,MAAA,eAAA,EACAc,EAAAb,MAAA,CAAA,CAAA,EACAY,EAAA,IAAAE,GAAA,CACA,IAAAC,EAAA,CACA,MAAAD,EACA,MAAAZ,EAAA,MAAA,OAAA,CACA,EACAY,GACAD,EAAA,MAAA,KAAAE,CAAA,CAEA,CAAA,EAEAC,EAAA,gBAAA,CAAA,GAAAd,EAAA,MAAA,GAAAW,EAAA,KAAA,CAAA,EACAZ,EAAA,MAAA,EACA,EAEAgB,EAAAP,GAAA,CACAR,EAAA,MAAA,OAAAQ,EAAA,CAAA,CACA,EAEA,SAAAF,GAAA,CACAN,EAAA,MAAA,KAAA,MAAA,KAAA,UAAAgB,EAAA,WAAA,CAAA,EACAnB,EAAA,MAAA,EACA"}