From a99abb089c3ff74e790b339d998c8041b9ef80f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E7=AC=99=E6=AD=8C?= <2277317060@qq.com> Date: Wed, 26 Feb 2025 17:31:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A1=A8=E5=8D=95=E6=9E=84?= =?UTF-8?q?=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/user/index.vue | 82 +++++++++++++------ src/views/tool/draggable/exportConfig/form.js | 10 ++- .../tool/draggable/exportConfig/script.js | 2 + .../tool/draggable/exportConfig/table.js | 36 ++++++++ src/views/tool/draggable/index.vue | 3 +- 5 files changed, 103 insertions(+), 30 deletions(-) create mode 100644 src/views/tool/draggable/exportConfig/table.js diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 46bffd2..d48c0ea 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -20,20 +20,24 @@ - +
- + - + - + @@ -60,15 +64,19 @@ - - - - + + + + @@ -113,18 +130,22 @@ @@ -142,7 +163,8 @@ - + @@ -184,7 +206,8 @@ - + @@ -192,14 +215,16 @@ - + - {{ dict.label }} + {{ dict.label }} + @@ -268,9 +293,14 @@
将文件拖到此处,或点击上传
@@ -553,7 +583,7 @@ const handleFileSuccess = (response: any, file: UploadFile) => { upload.open = false; upload.isUploading = false; uploadRef.value?.handleRemove(file); - ElMessageBox.alert("
" + response.msg + '
', '导入结果', { + ElMessageBox.alert('
' + response.msg + '
', '导入结果', { dangerouslyUseHTMLString: true }); getList(); diff --git a/src/views/tool/draggable/exportConfig/form.js b/src/views/tool/draggable/exportConfig/form.js index bed2123..15e4134 100644 --- a/src/views/tool/draggable/exportConfig/form.js +++ b/src/views/tool/draggable/exportConfig/form.js @@ -1,5 +1,5 @@ import { - addVariables + addVariables, addFunction } from './script.js'; import { @@ -31,7 +31,7 @@ const getFormCode = (data) => { addCode(`
`); } tier.push(formData.options.key || ('form-' + formData.options.uuid)); - // code += ``; + // code+ = ``; addCode(``); formData.tasks.forEach(task => { @@ -50,9 +50,13 @@ const getFormCode = (data) => { // code += ``; addCode(` - ${formData.options.submitBottomName} + ${formData.options.submitBottomName} ${formData.options.resetBottomName} `); + addFunction(` + const ${formData.options.key || ('form_' + formData.options.uuid)}Submit = (formData, formDataOperation, localData))=>{ + ${formData.options.submitFunction}} + `); addCode(``); if (isForm) { // code += ``; diff --git a/src/views/tool/draggable/exportConfig/script.js b/src/views/tool/draggable/exportConfig/script.js index 3a4580b..59c9c46 100644 --- a/src/views/tool/draggable/exportConfig/script.js +++ b/src/views/tool/draggable/exportConfig/script.js @@ -5,6 +5,8 @@ let functionData = ``; const scriptCombined = () => { return ` ${start} +import request from '@/utils/request'; +const formDataOperation = ref({}) ${getVariablesData()} ${functionData} ${end} diff --git a/src/views/tool/draggable/exportConfig/table.js b/src/views/tool/draggable/exportConfig/table.js new file mode 100644 index 0000000..a516343 --- /dev/null +++ b/src/views/tool/draggable/exportConfig/table.js @@ -0,0 +1,36 @@ +import { addCode, templateCombined, resetTemplate } from './template.js'; +import { getInputCode } from './input.js'; +import { getFormCode } from './form.js'; +import { scriptCombined, resetScript } from './script.js'; +import Download from '@/plugins/download'; + +const reset = () => { + resetScript(); + resetTemplate(); +}; + +const elementEnum = { + 'hw-input': getInputCode, 'hw-form': getFormCode +}; + +const exportConfig = (e) => { + reset(); + const noFun = () => { + }; + e.map(v => { + (elementEnum[v.type] || noFun)({ + isForm: false, elementData: v, formData: {} + }); + }); + let template = templateCombined(); + let script = scriptCombined(); + let codeStr = template + script; + console.log(codeStr); + const blob = new Blob([codeStr], { type: 'text/plain;charset=utf-8' }); + // Download.saveAs(blob, Date.now() + '.vue'); +}; + + +export { + exportConfig +}; diff --git a/src/views/tool/draggable/index.vue b/src/views/tool/draggable/index.vue index 60f1178..70ebb1e 100644 --- a/src/views/tool/draggable/index.vue +++ b/src/views/tool/draggable/index.vue @@ -79,6 +79,7 @@ interface type { id: number } + const optionsData = ref({}); const getOptions = (e) => { optionsData.value = e; @@ -211,7 +212,7 @@ const isDrag = ref(false); const onClone = (e) => { let item = JSON.parse(JSON.stringify(e)); item.id = Date.now(); - item.options.uuid = getUuid(); + item.options.uuid = getUuid().replaceAll('-', '_'); return item; }; const onStartLeft = (e) => {