From f282e344fc9b1ba20e6abb312fd8b48673842618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=96=87=E5=8F=AF?= <1041367524@qq.com> Date: Sat, 11 Jun 2022 16:10:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=B3=BB=E7=BB=9F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/extra/ElTooltip.vue | 16 + src/store/modules/search/searchSystem.js | 78 +++++ src/views/search/config/index.vue | 247 ++++++++++++++ src/views/search/system/index.vue | 389 +++++++++++++++++++++++ 4 files changed, 730 insertions(+) create mode 100644 src/components/extra/ElTooltip.vue create mode 100644 src/store/modules/search/searchSystem.js create mode 100644 src/views/search/config/index.vue create mode 100644 src/views/search/system/index.vue diff --git a/src/components/extra/ElTooltip.vue b/src/components/extra/ElTooltip.vue new file mode 100644 index 0000000..27068e6 --- /dev/null +++ b/src/components/extra/ElTooltip.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/store/modules/search/searchSystem.js b/src/store/modules/search/searchSystem.js new file mode 100644 index 0000000..d45d247 --- /dev/null +++ b/src/store/modules/search/searchSystem.js @@ -0,0 +1,78 @@ +import * as api from '@/api/system/notify.js'; +import { ElMessage, ElMessageBox } from '@/plugins/element-plus'; +const state = () => ({ + code: 'SearchSystem', + condition: {}, + list: [], + total: 0, + opts: { + init: false, + }, +}); +const getters = {}; +const mutations = { + setCode: (state, data) => (state.code = data), + setCondition: (state, data) => (state.condition = data), + setList: (state, data) => (state.list = data), + setTotal: (state, data) => (state.total = data), + setOpts: (state, data) => (state.opts = data), +}; +const actions = { + search: async ({ state, commit, rootGetters }) => { + let data = { ...state.condition }; + let res = await api.search({ ...rootGetters['local/page'](state.code), ...data }); + commit('setList', res?.records || []); + commit('setTotal', res?.total || 0); + if (!res) { + ElMessage.error('查询失败'); + } + return res; + }, + load: async ({ commit }) => { + commit('setOpts', { + init: true, + }); + }, + detail: async (context, id) => { + let res = await api.detail(id); + if (!res) { + ElMessage.error('加载详情失败'); + } + return res; + }, + save: async ({ dispatch }, data) => { + let save = data.id ? api.update : api.create; + let res = await save(data); + if (res) { + ElMessage.success('保存成功'); + dispatch('search'); + } else { + ElMessage.error('保存失败'); + } + return res; + }, + remove: async ({ dispatch }, idList) => { + if (!idList.length) { + ElMessage.warning('请选择要删除的数据'); + } else { + try { + await ElMessageBox.confirm('数据删除后无法恢复,确定要删除吗?', '危险操作'); + let res = await api.remove(idList.join(',')); + if (res) { + ElMessage.success('删除成功'); + dispatch('search'); + } else { + ElMessage.error('删除失败'); + } + } catch (e) { + console.info('取消删除', e); + } + } + }, +}; +export default { + state, + getters, + mutations, + actions, +}; diff --git a/src/views/search/config/index.vue b/src/views/search/config/index.vue new file mode 100644 index 0000000..08614ff --- /dev/null +++ b/src/views/search/config/index.vue @@ -0,0 +1,247 @@ + + + + + diff --git a/src/views/search/system/index.vue b/src/views/search/system/index.vue new file mode 100644 index 0000000..fa0b63d --- /dev/null +++ b/src/views/search/system/index.vue @@ -0,0 +1,389 @@ + + + + +