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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ES文档ID
+
+
+
+
+
+
+ 排序
+
+
+
+
+
+
+
+
+
+ 搜索字段
+
+
+
+
+
+
+
+
+
+ 同步频率
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ES文档ID
+
+
+
+
+
+
+ 排序
+
+
+
+
+
+
+
+
+
+ 搜索字段
+
+
+
+
+
+
+
+
+
+ 同步频率
+
+
+
+
+
+
+ 取消
+ 保存
+
+
+
+
+
+
+
+