瀏覽代碼

feat:微信绑定页面以及预警配置规则完善

huang, kai (Contractor) 5 天之前
父節點
當前提交
3c8f1d8e75

+ 13 - 1
admin.ui.plus-master/src/api/admin/PCBA/jikongzhubanDto.ts

@@ -53,11 +53,23 @@
       fuelId?: integer
    /** id */
       id?: integer
-
+    /** 开始查询时间 */
+    StartTime?: string | null
+    /** 结束查询时间 */
+    EndTime?: string | null
 }
 export interface pageInput {
       /**当前页数 */
       CurrentPage: number | any
       /**展示页数 */
       PageSize: number | any
+    }
+
+ export interface FilterType {
+      oilCompanyName: string;
+      stationName: string;
+      deviceStatus: string;
+      onlineStatus: string;
+      StartTime: string | null;
+      EndTime: string | null;
     }

+ 3 - 0
admin.ui.plus-master/src/api/admin/productionManagement/QRBookDto.ts

@@ -15,6 +15,9 @@ export interface QRBookFilter {
     StartTime?: string | null
     /** 结束查询时间 */
     EndTime?: string | null
+    time?:string
+    updateTime?: string | null
+
 }
 
 /**

+ 9 - 6
admin.ui.plus-master/src/views/admin/PCBA/boardSummary/index.vue

@@ -4,9 +4,9 @@
       <!--操作-->
       <el-col :xs="24">
         <el-card class="mt8" shadow="hover">
-          <el-form :model="state.filter" :inline="true" @submit.stop.prevent>
+          <el-form :model="state.filter" :inline="true" @submit.stop.prevent style="margin-bottom:-3vh">
             <el-form-item prop="name" style="width: 100%">
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="4" class="mb20">
                 <el-form-item label="主板类型">
                   <el-select v-model="state.filter.boardType" placeholder="">
                     <el-option v-for="(value, key) in PCBABoardType" :key="key" :label="value[1].name"
@@ -14,12 +14,12 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="4" class="mb20">
                 <el-form-item label="检测员">
                   <el-input v-model="state.filter.lastTestUser" placeholder="单行输入" clearable></el-input>
                 </el-form-item>
               </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+              <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="4" class="mb20">
                 <el-form-item label="创建时间范围">
                   <el-date-picker
                     v-model="state.filter.createTimeRange"
@@ -33,11 +33,14 @@
               </el-col>
             </el-form-item>
           </el-form>
-          <div class="my-flex my-flex-start" style="margin-top: -38px;">
+
+          <hr>
+
+          <el-row  class="submit-button">
             <el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
             <el-button type="primary" icon="ele-Document" @click="exportDataToExcel"> 导出 </el-button>
             <!--<el-button  type="primary" icon="ele-CirclePlus" @click="onBatExport"> 批量导出 </el-button>-->
-          </div>
+          </el-row>
         </el-card>
       </el-col>
       <!--表格-->

+ 13 - 9
admin.ui.plus-master/src/views/admin/product/qrBook/index.vue

@@ -32,7 +32,7 @@
                         </el-form-item>
                         
                         <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
-                            <el-form-item label="选择时间">
+                            <el-form-item label="选择修改时间">
                                     <el-date-picker v-model="qrBookData.time" type="datetimerange"
                                         value-format="YYYY-MM-DD HH:mm:ss" range-separator="To"
                                         start-placeholder="开始日期" end-placeholder="结束日期" />
@@ -46,7 +46,7 @@
                     <el-row justify="space-between" class="submit-button">
                         <el-row>
                             <el-button type="primary" icon="ele-Search" @click="getData()">查询</el-button>
-                            <el-button type="primary" plain icon="ele-RefreshRight" @click="clear()">清空</el-button>
+                            <el-button type="primary" icon="ele-RefreshRight" @click="clear">重置</el-button>
                         </el-row>
                         <el-row>
                             <el-button type="primary" icon="ele-CirclePlus" @click="uploadDialog">上传说明书</el-button>
@@ -177,13 +177,17 @@ const getData = async () => {
 
 //清除查询条件
 const clear = () => {
+    qrBookData.time='',
     qrBookData.Filter = {
-        author: "",
-        fileName: "",
-        startTime: null,
-        endTime: null
-    } as QRBookFilter
-
+        Author: "",
+        FileName: "",
+        // status:"",
+    /** 开始查询时间 */
+    StartTime:null,
+    /** 结束查询时间 */
+    EndTime:null,
+    } 
+    getData()
 }
 
 //下载
@@ -281,7 +285,7 @@ const getStatusInfo = (status: string) => {
 /* 输入框标签固定四个字符宽度 */
 ::v-deep .el-form-item__label {
     // 字体大小14,4个字符,12px右间距
-    width: 14*4px+12px;
+    width: 14*6px+12px;
     justify-content: start;
 }
 

+ 4 - 5
admin.ui.plus-master/src/views/admin/product/record/index.vue

@@ -31,7 +31,6 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="厂商">
                   <el-input v-model.trim="bomModel.filterModel.manufacturer" placeholder="厂商" clearable></el-input>
@@ -65,14 +64,14 @@
       <el-col :xs="24">
         <el-card  style="overflow: hidden;"  class="my-fill mt8" shadow="never">
           <el-table v-loading="bomModel.loading" stripe :data="bomModel.bomListData" row-key="id" style="width: 100%">
-            <el-table-column prop="guid" label="序号" />
-            <el-table-column prop="manufacturer" label="厂商" />
+            <el-table-column prop="guid" label="序号" align="center" />
+            <el-table-column prop="manufacturer" label="厂商" align="center" />
             <el-table-column prop="bomName" label="部件名称" />
             <el-table-column prop="bomNo" label="物料号" />
             <el-table-column prop="bomProNo" label="生产编号" />
-            <el-table-column prop="barCode" label="条码" />
+            <el-table-column prop="barCode" label="条码" align="center"/>
             <el-table-column prop="software_v" label="软件版本" />
-            <el-table-column prop="status" label="状态" width="120">
+            <el-table-column prop="status" label="状态" align="center">
               <template #default="{ row }">
                 <!-- <div :style="{ color: getComponentStatusType(row.status).color }" class="bold-font">
                   {{ getComponentStatusType(row.status).name }}

+ 34 - 19
admin.ui.plus-master/src/views/admin/statement/jikongzhuban/index.vue

@@ -1,4 +1,3 @@
-
 <template>
   <div class="layout-pd">
     <el-row>
@@ -7,34 +6,34 @@
         <el-card class="mt8"  shadow="hover" >
 <el-form :model="state.filter" :inline="true" @submit.stop.prevent style="margin-bottom: -3vh;">
             <el-form-item prop="name" style="width: 100%">
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="石油公司">
                   <el-input v-model="state.filter.oilCompanyName" placeholder="请输入石油公司" clearable></el-input>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="站点名称">
                   <el-input v-model="state.filter.stationName" placeholder="请输入站点名称" clearable></el-input>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="计控主板状态">
                   <el-select v-model="state.filter.deviceStatus" placeholder="请选择计控主板状态">
                     <el-option v-for="option in deviceStatusList" :key="option.value" :label="option.label" :value="option.value"></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="在线状态">
                   <el-select v-model="state.filter.onlineStatus" placeholder="请选择在线状态">
                     <el-option v-for="option in onlineStatusList" :key="option.value" :label="option.label" :value="option.value"></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
-<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
+<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
             <el-form-item label="选择安装时间">
                   <el-date-picker
-                    v-model="state.filter.fixTime"
+                    v-model="state.fixTime"
                     type="datetimerange"
                     value-format="YYYY-MM-DD HH:mm:ss"
                     range-separator="To"
@@ -111,7 +110,7 @@
   import eventBus from "/@/utils/mitt";
   import {Api} from "/@/api/admin/PCBA/jikongzhuban";
 import { EncodercontrolsDto } from "/@/api/admin/PCBA/jikongzhubanDto";
-import type { pageInput } from "/@/api/admin/PCBA/jikongzhubanDto";
+import type { FilterType, pageInput } from "/@/api/admin/PCBA/jikongzhubanDto";
 import { useDynamicPageSize } from "/@/composables/useDynamicPageSize";
 import StatusBox from "/@/components/StatusBox.vue";
 import router from "/@/router";
@@ -122,6 +121,7 @@ const pageState = useDynamicPageSize(10, 15);
 
 /**数据对象*/
   const state = reactive({
+    fixTime: "",
     /**加载显示 */
     loading: false,
     /**条件查询模块 */
@@ -135,7 +135,9 @@ const pageState = useDynamicPageSize(10, 15);
 /**在线状态 */
         onlineStatus: "",
 /**安装时间 */
-        fixTime: "",},
+        StartTime: null,
+        EndTime: null
+      } as FilterType,
   /**表格信息 */
 tableModel: [] as EncodercontrolsDto,
     /**动态表头 */
@@ -190,20 +192,30 @@ const deviceStatusList = [
   /**
   * 监听变换
   */
-  watch(() => {})
+  watch(() => state.fixTime, (val) => {
+    if (val?.length === 0) {
+    state.filter.StartTime = null;
+    state.filter.EndTime = null;
+  } else {
+    state.filter.StartTime = val?.[0].toString();
+    state.filter.EndTime = val?.[1].toString();
+  }
+})
 /**条件查询 */
           const onQuery = () => {
           init()
         }
+
+        
         /**初始化 */
         const init = async () => {
-          state.loading = true
-          console.log('Filter:', state.filter);
-const res:any = await new Api().getList({...state.pageInput, Filter:state.filter})
-            state.total = res?.data?.total ?? 0
-state.tableModel = res?.data?.list ?? []
-          state.loading = false
-        }
+  state.loading = true
+  console.log('Filter:', state.filter);
+  const res: any = await new Api().getList({ ...state.pageInput, Filter: state.filter })
+  state.total = res?.data?.total ?? 0
+  state.tableModel = res?.data?.list ?? []
+  state.loading = false
+}
         
 /**详情 */
 const toPage = (row: { fuelId: any; }) => {
@@ -228,15 +240,18 @@ const onCurrentChange = (val: number) => {
 }
 
 const onReset = () => {
+  state.fixTime = "";
   state.filter = {
     stationName: '',
     oilCompanyName: '',
     deviceStatus: '',
-    onlineStatus:'',
-    fixTime:''
+    onlineStatus: '',
+    StartTime: null,
+    EndTime: null,
   }
   init()
 }
+
 </script>
 <style scoped lang="scss">
 .el-input,

+ 1 - 1
admin.ui.plus-master/src/views/admin/statement/partsManagement/oilGun/index.vue

@@ -29,7 +29,7 @@
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
-                <el-form-item label="出厂时间" style="width:310px">
+                <el-form-item label="出厂时间">
                   <el-date-picker v-model="Data.time1" type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss"
                     range-separator="To" start-placeholder="开始日期" end-placeholder="结束日期" />
                 </el-form-item>

+ 2 - 0
admin.ui.plus-master/src/views/admin/statement/vxList/index.vue

@@ -143,6 +143,8 @@ tableModel: [] as WxUserinfo,
         const init = async () => {
           state.loading = true
 const res:any = await new Api().getList({...state.pageInput, Filter:state.filter})
+console.log('Response data:', res.data); 
+console.log('Filter parameters:', {...state.pageInput, Filter:state.filter});
             state.total = res?.data?.total ?? 0
 state.tableModel = res?.data?.list ?? []
           state.loading = false

+ 202 - 55
admin.ui.plus-master/src/views/admin/yujing/alarmRules/components/add-alarmRules.vue

@@ -1,7 +1,7 @@
 <!-- 报警规则添加列表 -->
 <template>
   <div class="layout-pd">
-    <el-dialog v-model="Data.isShowDialog" style="width: 60%;">
+    <el-dialog v-model="Data.isShowDialog" style="width: 75%;">
       <!--操作-->
       <div style="width: 100%;display: flex;justify-content: left;align-items: center;">
         <h1 style="margin-bottom: 10px;font-size: 30px;">报警推送规则</h1>
@@ -19,7 +19,7 @@
       <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
         <el-form :inline="true" @submit.stop.prevent>
           <el-form-item label="推送用户:" style="width: 100%;">
-            <el-select v-model="Data.Filter.roleMappingId" multiple placeholder="请选择角色">
+            <el-select v-model="Data.Filter.roleMappingId" multiple placeholder="请选择用户">
               <el-option v-for="item in Data.roleList" :key="item.id" :label="item.name" :value="item.id" />
             </el-select>
           </el-form-item>
@@ -85,11 +85,17 @@
       </div>
       <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
         <el-form :inline="true" @submit.stop.prevent>
-          <el-form-item label="优先&#8195;级:" style="width: 100%;">
+          <el-form-item label="&#8195;优先级:" style="width: 100%;">
             <el-input-number v-model="Data.Filter.taskPriority" :controls="false" :min=1 :max=9 />
           </el-form-item>
         </el-form>
       </div>
+      <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
+        <el-form :inline="true" @submit.stop.prevent>
+         <el-form-item label="报警条件配置" style="width: 100%;">
+          </el-form-item>
+        </el-form>
+      </div>
       <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
         <el-form :inline="true" @submit.stop.prevent>
           <el-form-item label="触发方式:" style="width: 100%;">
@@ -100,35 +106,130 @@
           </el-form-item>
         </el-form>
       </div>
-      <div v-for="(index) in Data.num" :key="index"
-        style="width: 100%;display: flex;justify-content: center;align-items: center;">
-        <el-form :inline="true" @submit.stop.prevent>
-          <el-form-item label="条&#8195;&#8195;件:" style="width: 100%;">
-            <el-select v-model="Data.selectValue1[index]" class="m-2" placeholder="Select" style="width: 20%;">
-              <el-option v-for="item in Data.condition" :key="item" :label="item" :value="item"
-                @click="selectChange(Data.selectValue1[index])" />
-            </el-select>
-            <!-- 符号 -->
-            <el-select class="sign" style="width: 7%;" suffix-icon="" v-model="Data.seDefault">
-              <el-option v-for="(item, index) in Data.selectList" :key="index" :value="item" selectd />
-            </el-select>
-            <el-select v-model="Data.selectValue2[index]" class="m-2" placeholder="Select" style="width: 20%;">
-              <el-option v-for="item in Data.selectCondition" :key="item" :label="item" :value="item" />
-            </el-select>
-            <label style="margin-left: 5%;">报警等级</label>
-            <!-- 符号 -->
-            <el-select class="sign" style="width: 7%;" suffix-icon="" v-model="Data.seDefault">
-              <el-option v-for="(item, index) in Data.selectList" :key="index" :value="item" selectd />
-            </el-select>
-            <el-select v-model="Data.selectValue3[index]" class="m-2" placeholder="Select" style="width: 20%;">
-              <el-option v-for="item in Data.alarmLevel" :key="item" :label="item" :value="item" />
+  
+<!-- 条件部分 -->
+<div v-for="(condition, index) in Data.condition" :key="index" 
+     style="width: 100%;display: flex;justify-content: center;align-items: center; margin-top: 10px;">
+  <el-form :inline="true" @submit.stop.prevent>
+    <el-form-item :label="index === 0 ? '条&#8195;&#8195;件:' : '附加条件:'" style="width: 100%;">
+      <el-row :gutter="20" style="width: 140%;">
+        <!-- 报警设备 -->
+        <el-col :span="8">
+          <div style="display: flex; align-items: center;">
+            <span style="margin-right: 13px;">报警设备:</span>
+            <el-select v-model="condition.equipment" placeholder="请选择" style="flex: 1;">
+              <el-option 
+                v-for="item in Data.alarmEquipment" 
+                :key="item" 
+                :label="item" 
+                :value="item"
+              />
+            </el-select>&#8195;&
+          </div>
+        </el-col>
+        
+        <!-- 报警类型 -->
+        <el-col :span="8">
+          <div style="display: flex; align-items: center;">
+            <span style="margin-right: 13px;">报警类型:</span>
+            <el-select v-model="condition.type" placeholder="请选择" style="flex: 1;">
+              <el-option 
+                v-for="item in Data.alarmType" 
+                :key="item" 
+                :label="item" 
+                :value="item"
+              />
+            </el-select>&#8195;&
+          </div>
+        </el-col>
+        
+        <!-- 报警来源 -->
+        <el-col :span="8">
+          <div style="display: flex; align-items: center;">
+            <span style="margin-right: 13px;">报警来源:</span>
+            <el-select v-model="condition.source" placeholder="请选择" style="flex: 1;">
+              <el-option 
+                v-for="item in Data.alarmSource" 
+                :key="item" 
+                :label="item" 
+                :value="item"
+              />
             </el-select>
+          </div>
+        </el-col>
+      </el-row>
+    </el-form-item>
+  </el-form>
+</div>
+<!-- 添加按钮 -->
+<div style="width: 100%;display: flex;justify-content: center;align-items: center;">
+  <el-button type="primary" icon="ele-Plus" style="font-size: large" @click="addCondition" />
+  <el-button  v-if="Data.condition.length > 1" type="primary" icon="ele-Minus" style="font-size: large" @click="removeCondition" />
+</div>
+
+      <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
+        <el-form :inline="true" @submit.stop.prevent>
+         <el-form-item label="维修条件配置" style="width: 100%;">
           </el-form-item>
         </el-form>
       </div>
       <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
-        <el-button :icon="CirclePlusFilled" style="font-size: large" @click="add" />
+        <el-form :inline="true" @submit.stop.prevent>
+          <el-form-item label="触发方式:" style="width: 100%;">
+            <el-radio-group v-model="Data.Filter.triggerMethod">
+              <el-radio :label="0">其中之一条件满足即触发</el-radio>
+              <el-radio :label="1">全部满足时触发</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-form>
       </div>
+<!-- 条件部分 -->
+<div v-for="(condition2, index) in Data.condition2" :key="index" 
+     style="width: 100%;display: flex;justify-content: center;align-items: center; margin-top: 10px;">
+  <el-form :inline="true" @submit.stop.prevent>
+    <el-form-item :label="index === 0 ? '条&#8195;&#8195;件:' : '附加条件:'" style="width: 100%;">
+      <el-row :gutter="20" style="width: 140%;">
+        <el-col :span="8">
+          <div style="display: flex; align-items: center;">
+            <span style="margin-right: 13px;">维修类型:</span>
+            <el-select v-model="condition2.proType" placeholder="请选择" style="flex: 1;">
+              <el-option 
+                v-for="item in Data.alarmproType" 
+                :key="item" 
+                :label="item" 
+                :value="item"
+              />
+            </el-select>&#8195;&
+          </div>
+        </el-col>
+        
+        <el-col :span="8">
+          <div style="display: flex; align-items: center;">
+            <span style="margin-right: 13px;">维修状态:</span>
+            <el-select v-model="condition2.proStatus" placeholder="请选择" style="flex: 1;">
+              <el-option 
+                v-for="item in Data.alarmproStatus" 
+                :key="item" 
+                :label="item" 
+                :value="item"
+              />
+            </el-select>
+
+          </div>
+        </el-col>
+      </el-row>
+    </el-form-item>
+  </el-form>
+</div>
+<!-- 添加按钮 -->
+<div style="width: 100%;display: flex;justify-content: center;align-items: center;">
+  <el-button type="primary" icon="ele-Plus" style="font-size: large" @click="add" />
+  <el-button  v-if="Data.condition2.length > 1" type="primary" icon="ele-Minus" style="font-size: large" @click="removeCondition2" />
+</div>
+
+      <!-- <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
+        <el-button :icon="CirclePlusFilled" style="font-size: large" @click="add" />
+      </div> -->
       <div style="width: 100%;display: flex;justify-content: center;align-items: center;">
         <el-form :inline="true" @submit.stop.prevent style="width: 60%;">
           <el-row justify="end" style="margin-top: 30px;">
@@ -195,12 +296,24 @@ const Data = reactive({
   mode2: '',
   /** 条件选择 */
   selectCondition: [] as Array<string>,
-  condition: ['报警设备', '报警类型', '报警来源'],
-  alarmEquipment: ['加油枪', '编码器', '加密显示屏', '监控微处理器'],
-  alarmType: ['绑定错误'],
+  condition: [    {  // 初始条件
+      equipment: '',
+      type: '',
+      source: ''
+    }],
+  condition2: [    {  // 初始条件
+      proType:'',
+      proStatus:''
+    }],
+  alarmEquipment: ["安全装置","编码器","计控主板","监控微处理器","智能型控制阀","油气回收控制板","显示屏","计量器","加油机","油枪"
+],
+  alarmType: [	"加油机离线","通信异常","非法部件","厂商不符","绑定错误","监控微处理器报警","安全装置报警","加油机报警","检定"
+],
   alarmSource: ['云平台', '安全监督装置'],
   alarmLevel: [1, 2],
 
+  alarmproType:["油机维修","装置维修"],
+  alarmproStatus:["正在维修","结束维修"]
 })
 
 const templateData = reactive({
@@ -218,12 +331,6 @@ const templateData = reactive({
   emailList: [] as any
 })
 
-// 数量增加 - 实现dom节点的增加
-const add = (() => {
-  Data.num += 1
-
-})
-
 const radioChange = (() => {
   if (Data.radioValue1 == true) {
     Data.Filter.pushMethod = 'wx'
@@ -239,16 +346,6 @@ const radioChange = (() => {
   }
 })
 
-const selectChange = ((key: any) => {
-  if (key == '报警设备') {
-    Data.selectCondition = Data.alarmEquipment
-  } else if (key == '报警类型') {
-    Data.selectCondition = Data.alarmType
-  } else if (key == '报警来源') {
-    Data.selectCondition = Data.alarmSource
-  }
-})
-
 // 获取角色列表
 const getRole = async () => {
   const res = await new RoleApi().getList()
@@ -262,12 +359,12 @@ const funSelect = async () => {
   const res = await new pushTemplateApi().getData(templateData.Filter)
   const data = res?.data
   templateData.wxList = (data as any)?.filter((item: any) => {
-    if (item.templateType == "wx") {
+    if (item.templateType == "微信") {
       return { 'id': item.id, 'name': item.templateName }
     }
   })
   templateData.emailList = (data as any)?.filter((item: any) => {
-    if (item.templateType == "email") {
+    if (item.templateType == "邮箱") {
       return { 'id': item.id, 'name': item.templateName }
     }
   })
@@ -304,15 +401,15 @@ watch([() => [...Data.selectValue1], () => [...Data.selectValue2], () => [...Dat
 
 // 保存提交内容
 const toSave = async () => {
-  console.log('提交数据')
-  console.log(Data.Filter)
+  // 将条件数组赋值给Filter
+  Data.Filter.conditionsJson = JSON.stringify(Data.condition);
+  
+  console.log('提交数据', Data.Filter);
   await new alarmRulesApi().addForm(Data.Filter).then((res) => {
-    console.log(res)
-    eventBus.emit('refreshView')
-  })
-  Data.isShowDialog = false
-  // reset()
-
+    console.log(res);
+    eventBus.emit('refreshView');
+  });
+  Data.isShowDialog = false;
 }
 
 // 重置
@@ -394,6 +491,35 @@ defineExpose({
 })
 
 
+// 添加条件
+const addCondition = () => {
+  Data.condition.push({
+    equipment: '',
+    type: '',
+    source: ''
+  });
+}
+
+const add = () => {
+  Data.condition2.push({
+    proStatus: '',
+    proType: ''
+  });
+}
+
+// 删除条件
+const removeCondition = (index: number) => {
+  if (Data.condition.length > 1) { // 至少保留一个条件
+    Data.condition.pop();
+  }
+}
+
+// 删除条件
+const removeCondition2 = (index: number) => {
+  if (Data.condition2.length > 1) { // 至少保留一个条件
+    Data.condition2.pop();
+  }
+}
 </script>
 
 <style scoped lang="scss">
@@ -436,4 +562,25 @@ defineExpose({
 .el-select-dropdown__item {
   text-align: center;
 }
+
+/* 添加或修改以下样式 */
+.el-row {
+  margin-bottom: 20px;
+}
+.el-col {
+  padding: 0 10px;
+}
+.condition-label {
+  min-width: 80px;
+  text-align: right;
+  margin-right: 10px;
+}
+/* 添加以下样式 */
+.dynamic-condition {
+  margin-top: 15px;
+  padding: 10px;
+  border: 1px solid #ebeef5;
+  border-radius: 4px;
+  background-color: #fafafa;
+}
 </style>

+ 1 - 1
admin.ui.plus-master/src/views/admin/yujing/alarmRules/index.vue

@@ -9,7 +9,7 @@
             <el-form-item prop="name" style="width: 100%">
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
                 <el-form-item label="规则名称">
-                  <el-input v-model="Data.time1" placeholder="请输入规则名称" clearable></el-input>
+                  <el-input v-model="Data.Filter.ruleName" placeholder="请输入规则名称" clearable></el-input>
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">