From c2a9c670c41f5243ec6c676a8dc42a321c7784a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= Date: Tue, 26 Sep 2023 09:21:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webfirst/table/components/FieldList.vue | 319 +++++++++++++++++- .../webfirst/table/components/TableList.vue | 47 ++- .../views/webfirst/table/hooks/useTable.js | 2 +- .../src/views/webfirst/table/index.vue | 21 +- 4 files changed, 376 insertions(+), 13 deletions(-) diff --git a/Yi.RuoYi.Vue3/src/views/webfirst/table/components/FieldList.vue b/Yi.RuoYi.Vue3/src/views/webfirst/table/components/FieldList.vue index 17181323..b5beeb95 100644 --- a/Yi.RuoYi.Vue3/src/views/webfirst/table/components/FieldList.vue +++ b/Yi.RuoYi.Vue3/src/views/webfirst/table/components/FieldList.vue @@ -1,7 +1,320 @@ + - \ No newline at end of file +import { listConfig, getConfig, delConfig, addConfig, updateConfig, refreshCache } from "@/api/system/config"; + +const { proxy } = getCurrentInstance(); +const { sys_yes_no } = proxy.useDict("sys_yes_no"); + +const configList = ref([]); +const open = ref(false); +const loading = ref(true); +const showSearch = ref(true); +const ids = ref([]); +const single = ref(true); +const multiple = ref(true); +const total = ref(0); +const title = ref(""); +const dateRange = ref([]); + +const data = reactive({ + form: {}, + queryParams: { + pageNum: 1, + pageSize: 10, + configName: undefined, + configKey: undefined, + configType: undefined + }, + rules: { + configName: [{ required: true, message: "参数名称不能为空", trigger: "blur" }], + configKey: [{ required: true, message: "参数键名不能为空", trigger: "blur" }], + configValue: [{ required: true, message: "参数键值不能为空", trigger: "blur" }] + } +}); + +const { queryParams, form, rules } = toRefs(data); + +/** 查询参数列表 */ +function getList() { + loading.value = true; + listConfig(proxy.addDateRange(queryParams.value, dateRange.value)).then(response => { + configList.value = response.data.items; + total.value = response.data.total; + loading.value = false; + }); +} +/** 取消按钮 */ +function cancel() { + open.value = false; + reset(); +} +/** 表单重置 */ +function reset() { + form.value = { + id: undefined, + configName: undefined, + configKey: undefined, + configValue: undefined, + configType: "Y", + remark: undefined, + state: true + }; + proxy.resetForm("configRef"); +} +/** 搜索按钮操作 */ +function handleQuery() { + queryParams.value.pageNum = 1; + getList(); +} +/** 重置按钮操作 */ +function resetQuery() { + dateRange.value = []; + proxy.resetForm("queryRef"); + handleQuery(); +} +/** 多选框选中数据 */ +function handleSelectionChange(selection) { + ids.value = selection.map(item => item.id); + single.value = selection.length != 1; + multiple.value = !selection.length; +} +/** 新增按钮操作 */ +function handleAdd() { + reset(); + open.value = true; + title.value = "添加参数"; +} +/** 修改按钮操作 */ +function handleUpdate(row) { + reset(); + const configId = row.id || ids.value; + getConfig(configId).then(response => { + form.value = response.data; + open.value = true; + title.value = "修改参数"; + }); +} +/** 提交按钮 */ +function submitForm() { + proxy.$refs["configRef"].validate(valid => { + if (valid) { + if (form.value.id != undefined) { + updateConfig(form.value).then(response => { + proxy.$modal.msgSuccess("修改成功"); + open.value = false; + getList(); + }); + } else { + addConfig(form.value).then(response => { + proxy.$modal.msgSuccess("新增成功"); + open.value = false; + getList(); + }); + } + } + }); +} +/** 删除按钮操作 */ +function handleDelete(row) { + const configIds = row.id || ids.value; + proxy.$modal.confirm('是否确认删除参数编号为"' + configIds + '"的数据项?').then(function () { + return delConfig(configIds); + }).then(() => { + getList(); + proxy.$modal.msgSuccess("删除成功"); + }).catch(() => {}); +} +/** 导出按钮操作 */ +function handleExport() { + proxy.download("system/config/export", { + ...queryParams.value + }, `config_${new Date().getTime()}.xlsx`); +} +/** 刷新缓存按钮操作 */ +function handleRefreshCache() { + refreshCache().then(() => { + proxy.$modal.msgSuccess("刷新缓存成功"); + }); +} + +getList(); + diff --git a/Yi.RuoYi.Vue3/src/views/webfirst/table/components/TableList.vue b/Yi.RuoYi.Vue3/src/views/webfirst/table/components/TableList.vue index 46e74e34..2080acac 100644 --- a/Yi.RuoYi.Vue3/src/views/webfirst/table/components/TableList.vue +++ b/Yi.RuoYi.Vue3/src/views/webfirst/table/components/TableList.vue @@ -1,5 +1,46 @@ - - \ No newline at end of file + +const handleOpen = (key, keyPath) => { + console.log(key, keyPath) +} +const handleClose = (key, keyPath) => { + console.log(key, keyPath) +} + diff --git a/Yi.RuoYi.Vue3/src/views/webfirst/table/hooks/useTable.js b/Yi.RuoYi.Vue3/src/views/webfirst/table/hooks/useTable.js index 6515970c..657093ba 100644 --- a/Yi.RuoYi.Vue3/src/views/webfirst/table/hooks/useTable.js +++ b/Yi.RuoYi.Vue3/src/views/webfirst/table/hooks/useTable.js @@ -1,6 +1,6 @@ const useTable=()=>{ - const table=ref("bg") + const table=ref("数据表选择") onMounted(() => { console.log(`the component is now mounted. table`) }); diff --git a/Yi.RuoYi.Vue3/src/views/webfirst/table/index.vue b/Yi.RuoYi.Vue3/src/views/webfirst/table/index.vue index dcb7e9cf..aff18445 100644 --- a/Yi.RuoYi.Vue3/src/views/webfirst/table/index.vue +++ b/Yi.RuoYi.Vue3/src/views/webfirst/table/index.vue @@ -1,10 +1,19 @@ \ No newline at end of file +import TableList from './components/TableList.vue' + + \ No newline at end of file