소스 검색

Merge branch 'professional2' of http://git.mydig.net/Sagoo-Cloud/sagoo-admin-ui into professional2

vera_min 5 달 전
부모
커밋
93f6baf4af

+ 1 - 1
src/views/iot/configuration/list/index.vue

@@ -3,7 +3,7 @@
     <el-card shadow="nover">
       <div class="search">
         <el-form inline>
-          <el-form-item>
+          <el-form-item label="关键字">
             <el-input v-model="params.keyWord" style="width: 200px; margin-left: 20px" class="search-input" placeholder="请输入搜索关键字" @keyup.enter.native="getList(1)" clearable>
             </el-input>
             <el-button type="primary" class="ml10" @click="getList(1)">

+ 32 - 2
src/views/iot/configuration/screen/index.vue

@@ -3,6 +3,15 @@
     <el-card shadow="nover">
       <div class="search">
         <el-form inline>
+          <el-form-item label="关键字">
+            <el-input v-model="searchParams.keyWord" style="width: 200px; margin-left: 20px" class="search-input" placeholder="请输入关键字" clearable @keyup.enter="handleSearch" />
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="handleSearch">
+              <el-icon><ele-Search /></el-icon>
+              搜索
+            </el-button>
+          </el-form-item>
           <el-form-item>
             <el-button type="primary" v-auth="'add'" @click="addOrEdit()">
               <el-icon>
@@ -36,7 +45,7 @@
 </template>
 
 <script lang="ts" setup>
-import { ref } from 'vue';
+import { ref, reactive, watch } from 'vue';
 import api from '/@/api/screen';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import { useSearch } from '/@/hooks/useCommon';
@@ -44,10 +53,31 @@ import EditForm from './edit.vue';
 
 const editFormRef = ref();
 
-const { params, tableData, getList, loading } = useSearch<any[]>(api.getList, 'Data', { name: '', address: '' });
+const searchParams = reactive({
+  keyWord: ''
+});
+
+// 监听搜索参数变化,确保在API请求中正确传递搜索条件
+watch(searchParams, (newVal) => {
+  // 处理搜索参数的值
+  for (const key in newVal) {
+    if (newVal[key] === '' || newVal[key] === null) {
+      delete params[key];
+    } else {
+      params[key] = newVal[key];
+    }
+  }
+}, { deep: true });
+
+const { params, tableData, getList, loading } = useSearch<any[]>(api.getList, 'Data', searchParams);
 
 getList();
 
+// 搜索
+const handleSearch = () => {
+  getList(1);
+};
+
 const addOrEdit = async (row?: any) => {
   if (row) {
     editFormRef.value.open(row);

+ 1 - 1
src/views/iot/device/instance/index.vue

@@ -3,7 +3,7 @@
     <el-card shadow="nover" v-loading="batchLoading">
       <div class="system-user-search mb15">
         <el-form :model="tableData.param" ref="queryRef" inline>
-          <el-form-item label="名称" prop="name">
+          <el-form-item label="关键字" prop="name">
             <el-input v-model="tableData.param.name" placeholder="输入名称或标识" clearable style="width: 150px" @keyup.enter.native="typeList" />
           </el-form-item>
           <!--          <el-form-item label="标识" prop="key">-->

+ 1 - 1
src/views/iot/device/product/index.vue

@@ -2,7 +2,7 @@
   <div class="page">
     <el-card shadow="nover">
       <el-form :model="tableData.param" ref="queryRef" inline label-width="68px">
-        <el-form-item label="名称" prop="name">
+        <el-form-item label="关键字" prop="name">
           <el-input v-model="tableData.param.name" placeholder="输入名称或标识" clearable style="width: 150px" @keyup.enter.native="typeList" />
         </el-form-item>
         <el-form-item label="类型" prop="deviceType" style="width: 180px">

+ 3 - 3
src/views/iot/rule-engine/edit.vue

@@ -4,15 +4,15 @@
       <el-form-item label="名称" prop="name">
         <el-input v-model.trim="formData.name" placeholder="输入名称" />
       </el-form-item>
-      <el-form-item label="规则链" prop="types">
-        <el-switch v-model="formData.types" :active-value="1" :inactive-value="0" active-text="创建根规则链" inactive-text="创建子规则链"></el-switch>
+      <el-form-item label="规则链" prop="types">
+        <el-switch v-model="formData.types" :active-value="1" :inactive-value="0" active-text="关闭:为创建子链"></el-switch>
       </el-form-item>
       <el-form-item label="调试模式" prop="status">
         <el-switch v-model="formData.status" :active-value="2" :inactive-value="0"></el-switch>
         开启后会覆盖节点的调试模式配置,所有节点会打印调试日志
       </el-form-item>
       <el-form-item label="说明" prop="expound">
-        <el-input v-model="formData.expound" type="textarea" :rows="3" />
+        <el-input v-model="formData.expound" type="textarea" :rows="5" />
       </el-form-item>
     </el-form>
     <template #footer>

+ 78 - 10
src/views/iot/rule-engine/index.vue

@@ -2,6 +2,34 @@
   <div class="page">
     <el-card shadow="nover">
       <el-form inline>
+        <el-form-item label="名称">
+          <el-input v-model="searchParams.keyWord" placeholder="请输入关键字" clearable @keyup.enter="handleSearch" />
+        </el-form-item>
+        <el-form-item label="类型">
+          <el-select v-model="searchParams.types" placeholder="请选择类型" clearable @clear="() => searchParams.types = -1" @change="handleSearch">
+            <el-option label="主链" :value="1" />
+            <el-option label="子链" :value="2" />
+            <el-option label="全部" :value="-1" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-select v-model="searchParams.status" placeholder="请选择状态" clearable @clear="() => searchParams.status = -1" @change="handleSearch">
+            <el-option label="已启动" :value="1" />
+            <el-option label="已停止" :value="0" />
+            <el-option label="全部" :value="-1" />
+
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="handleSearch">
+            <el-icon><ele-Search /></el-icon>
+            搜索
+          </el-button>
+          <!-- <el-button @click="handleReset">
+            <el-icon><ele-Refresh /></el-icon>
+            重置
+          </el-button> -->
+        </el-form-item>
         <el-form-item>
           <el-button type="primary" v-auth="'add'" @click="addOrEdit()">
             <el-icon>
@@ -13,25 +41,25 @@
       </el-form>
       <el-table :data="tableData" style="width: 100%" v-loading="loading">
         <el-table-column type="index" label="序号" width="80" align="center" />
-        <el-table-column prop="name" label="名称" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="types" label="规则链类型" width="110" align="center">
+        <el-table-column prop="types" label="类型" width="70" align="center">
           <template #default="scope">
-            <el-tag type="primary" size="small" v-if="scope.row.types == 1">根规则链</el-tag>
-            <el-tag type="success" size="small" v-else>子规则链</el-tag>
+            <el-tag type="primary" size="small" v-if="scope.row.types == 1">链</el-tag>
+            <el-tag type="success" size="small" v-else>子链</el-tag>
           </template>
         </el-table-column>
+        <el-table-column prop="name" label="名称" show-overflow-tooltip></el-table-column>
         <el-table-column prop="expound" label="说明" show-overflow-tooltip></el-table-column>
         <el-table-column prop="createdAt" label="创建时间" min-width="100" align="center"></el-table-column>
-        <!-- <el-table-column prop="status" label="状态" width="100" align="center">
+        <el-table-column prop="status" label="状态" width="100" align="center">
           <template #default="scope">
             <el-tag type="success" size="small" v-if="scope.row.status == 1">已启动</el-tag>
             <el-tag type="info" size="small" v-else>已停止</el-tag>
           </template>
-        </el-table-column> -->
+        </el-table-column>
         <el-table-column label="操作" width="200" align="center">
           <template #default="scope">
-            <!-- <el-button size="small" text type="info" v-auth="'startOrStop'" v-if="scope.row.status" @click="setStatus(scope.row, 0)">停止</el-button>
-            <el-button size="small" text type="primary" v-auth="'startOrStop'" v-else @click="setStatus(scope.row, 1)">启动</el-button> -->
+            <el-button size="small" text type="info" v-auth="'startOrStop'" v-if="scope.row.status" @click="setStatus(scope.row, 0)">停止</el-button>
+            <el-button size="small" text type="primary" v-auth="'startOrStop'" v-else @click="setStatus(scope.row, 1)">启动</el-button>
             <el-button size="small" text type="primary" v-auth="'edit'" @click="addOrEdit(scope.row)">编辑</el-button>
             <el-button size="small" text type="warning" @click="edit(scope.row)">规则编辑</el-button>
             <el-button size="small" text type="info" v-auth="'del'" @click="onDel(scope.row)">删除</el-button>
@@ -45,7 +73,7 @@
 </template>
 
 <script lang="ts" setup>
-import { ref } from "vue";
+import { ref, reactive, watch } from "vue";
 import api from "/@/api/rule";
 import { ElMessageBox, ElMessage } from "element-plus";
 import { useSearch } from "/@/hooks/useCommon";
@@ -58,7 +86,31 @@ const editFormRef = ref();
 // 规则引擎模式 node-red、 sagoo-rule
 const model: "node-red" | "sagoo-rule" = import.meta.env.VITE_RULE_MODEL;
 
-const { params, tableData, getList, loading } = useSearch<any[]>(api.getList, "Data", { types: null, status: null });
+const searchParams = reactive({
+  keyWord: '',
+  types: -1,
+  status: -1
+});
+
+// 监听搜索参数变化,确保在API请求中正确传递搜索条件
+watch(searchParams, (newVal) => {
+  // 处理搜索参数的值
+  for (const key in newVal) {
+    if (newVal[key] === '' || newVal[key] === null) {
+      // 如果是类型或状态字段,在清除时设置为-1(全部)
+      if (key === 'types' || key === 'status') {
+        params[key] = -1;
+        searchParams[key] = -1; // 同步更新searchParams
+      } else {
+        delete params[key];
+      }
+    } else {
+      params[key] = newVal[key];
+    }
+  }
+}, { deep: true });
+
+const { params, tableData, getList, loading } = useSearch<any[]>(api.getList, "Data", searchParams);
 
 const headers = {
   Authorization: "Bearer " + getToken(),
@@ -68,6 +120,22 @@ const flowsUrl = window.location.origin + "/rule-engine/flows";
 
 getList();
 
+// 搜索
+const handleSearch = () => {
+  getList(1);
+};
+
+// 重置功能已在模板中被注释掉
+// 如果需要重新启用重置功能,请取消注释并使用以下代码:
+/*
+const handleReset = () => {
+  searchParams.keyWord = '';
+  searchParams.types = -1;
+  searchParams.status = -1;
+  getList(1);
+};
+*/
+
 const addOrEdit = async (row?: any) => {
   if (row) {
     editFormRef.value.open(row);

+ 2 - 2
src/views/iot/scene/manage/index.vue

@@ -3,8 +3,8 @@
 		<el-card shadow="nover">
 			<div class="search">
 				<el-form inline ref="queryRef" @keyup.enter="getList(1)">
-					<el-form-item label="场景名称" prop="keyWord">
-						<el-input v-model="params.keyWord" placeholder="输入场景名称" clearable style="width: 200px" />
+					<el-form-item label="关键字" prop="keyWord">
+						<el-input v-model="params.keyWord" placeholder="输入名称或描述关键字" clearable style="width: 200px" />
 					</el-form-item>
 					<el-form-item label="触发方式" prop="sceneType">
 						<el-select v-model="params.sceneType" placeholder="触发方式" clearable style="width: 140px">

+ 3 - 4
src/views/system/application/index.vue

@@ -2,8 +2,8 @@
 	<el-card shadow="nover" class="page">
 		<div class="search">
 			<el-form :model="params" inline ref="queryRef">
-				<el-form-item label="应用名称:" prop="keyWord" @submit.prevent>
-					<el-input v-model="params.keyWord" placeholder="请输入应用名称" clearable style="width: 240px" @keyup.enter.native="getList(1)" />
+				<el-form-item label="关键字" prop="keyWord" @submit.prevent>
+					<el-input v-model="params.keyWord" placeholder="请输入名称或描述关键字" clearable style="width: 240px" @keyup.enter.native="getList(1)" />
 				</el-form-item>
 				<el-form-item>
 					<el-button type="primary" class="ml10" @click="getList(1)">
@@ -52,7 +52,7 @@
 		<EditForm ref="editFormRef" :deptData="deptData" @getList="getList(1)"></EditForm>
 	</el-card>
 </template>
-  
+
 <script lang="ts" setup>
 import { ElMessageBox, ElMessage } from 'element-plus'
 import EditForm from './edit.vue'
@@ -111,4 +111,3 @@ const del = (row: any) => {
 	})
 }
 </script>
-  

+ 1 - 1
src/views/system/config/index.vue

@@ -6,7 +6,7 @@
           <el-input v-model="tableData.param.configName" placeholder="请输入参数名称" clearable @keyup.enter.native="dataList" />
         </el-form-item>
         <el-form-item label="系统内置" prop="configType">
-          <el-select v-model="tableData.param.configType" placeholder="系统内置" clearable style="width: 240px">
+          <el-select v-model="tableData.param.configType" placeholder="系统内置" clearable style="width: 100px">
             <el-option v-for="dict in sys_yes_no" :key="dict.value" :label="dict.label" :value="dict.value" />
           </el-select>
         </el-form-item>

+ 2 - 2
src/views/system/dict/index.vue

@@ -3,10 +3,10 @@
     <el-card shadow="nover">
       <el-form :model="tableData.param" ref="queryRef" inline label-width="68px">
         <el-form-item label="字典名称" prop="dictName">
-          <el-input v-model="tableData.param.dictName" placeholder="请输入字典名称" clearable style="width: 240px" @keyup.enter.native="typeList" />
+          <el-input v-model="tableData.param.dictName" placeholder="请输入字典名称" clearable @keyup.enter.native="typeList" />
         </el-form-item>
         <el-form-item label="状态" prop="status" style="width: 200px">
-          <el-select v-model="tableData.param.status" placeholder="字典状态" clearable style="width: 240px">
+          <el-select v-model="tableData.param.status" placeholder="字典状态" clearable style="width: 100px">
             <el-option label="启用" :value="1" />
             <el-option label="禁用" :value="0" />
           </el-select>

+ 3 - 3
src/views/system/task/index.vue

@@ -2,11 +2,11 @@
   <div class="page">
     <el-card shadow="nover">
       <el-form :model="tableData.param" ref="queryRef" inline>
-        <el-form-item label="任务名称" prop="jobName">
-          <el-input v-model="tableData.param.jobName" placeholder="请输入" clearable style="width: 150px;" @keyup.enter="dataList" />
+        <el-form-item label="关键字" prop="jobName">
+          <el-input v-model="tableData.param.jobName" placeholder="输入名称或描述关键字" clearable style="width: 180px;" @keyup.enter="dataList" />
         </el-form-item>
         <el-form-item label="任务组名" prop="jobGroup">
-          <el-select v-model="tableData.param.jobGroup" placeholder="请选择" style="width: 150px;">
+          <el-select v-model="tableData.param.jobGroup" placeholder="请选择" style="width: 100px;">
             <el-option v-for="dict in sys_job_group" :key="dict.value" :label="dict.label" :value="dict.value"> </el-option>
           </el-select>
         </el-form-item>