Переглянути джерело

Merge branch 'master' of http://gogs.renlianiot.com:4000/zmcoding/smart-tool-ui

tongshanglei 2 роки тому
батько
коміт
c154c1c919

+ 131 - 57
src/config/componentsMap.js

@@ -2,111 +2,185 @@
  * export component map
  */
 export default {
-    layout: () => import ('@/layout'),
-    layout2: () =>import ('@/layout/index2'),
+    layout: () =>
+        import ('@/layout'),
+    layout2: () =>
+        import ('@/layout/index2'),
     // 权限管理
-    users: () => import ('@/views/permission/users'),
-    roles: () => import ('@/views/permission/roles'),
-    rules: () => import ('@/views/permission/rules'),
-    departments: () => import ('@/views/permission/departments'),
-    jobs: () => import ('@/views/permission/jobs'),
+    users: () =>
+        import ('@/views/permission/users'),
+    roles: () =>
+        import ('@/views/permission/roles'),
+    rules: () =>
+        import ('@/views/permission/rules'),
+    departments: () =>
+        import ('@/views/permission/departments'),
+    jobs: () =>
+        import ('@/views/permission/jobs'),
     // 系统设置
-    database: () => import ('@/views/system/database'),
-    attachment: () => import ('@/views/system/attachments'),
-    loginLog: () => import ('@/views/system/log/login'),
-    operateLog: () => import ('@/views/system/log/operate'),
-    sensitiveWord: () => import ('@/views/system/sensitiveWord'),
-    develop: () => import ('@/views/system/develop'),
-    generate: () => import ('@/views/system/generate'),
+    database: () =>
+        import ('@/views/system/database'),
+    attachment: () =>
+        import ('@/views/system/attachments'),
+    loginLog: () =>
+        import ('@/views/system/log/login'),
+    operateLog: () =>
+        import ('@/views/system/log/operate'),
+    sensitiveWord: () =>
+        import ('@/views/system/sensitiveWord'),
+    develop: () =>
+        import ('@/views/system/develop'),
+    generate: () =>
+        import ('@/views/system/generate'),
+    //邮箱管理
+    email: () =>
+        import ('@/views/system/email'),
+    database: () =>
+        import ('@/views/system/database'),
+    attachment: () =>
+        import ('@/views/system/attachments'),
+    loginLog: () =>
+        import ('@/views/system/log/login'),
+    operateLog: () =>
+        import ('@/views/system/log/operate'),
+    sensitiveWord: () =>
+        import ('@/views/system/sensitiveWord'),
+    develop: () =>
+        import ('@/views/system/develop'),
+    generate: () =>
+        import ('@/views/system/generate'),
     // 配置管理
-    config: () => import ('@/views/system/config'),
+    config: () =>
+        import ('@/views/system/config'),
     // 模块管理
-    module: () => import ('@/views/system/module'),
+    module: () =>
+        import ('@/views/system/module'),
     // 表单构建
-    form: () => import ('@/views/system/form'),
+    form: () =>
+        import ('@/views/system/form'),
 
     // 微信管理
-    wechatMenus: () => import ('@/views/wechat/menus'),
+    wechatMenus: () =>
+        import ('@/views/wechat/menus'),
     //
     // 微信用户
-    wechatUsers: () => import ('@/views/wechat/users'),
+    wechatUsers: () =>
+        import ('@/views/wechat/users'),
     // 微信用户标签
-    wechatTags: () => import ('@/views/wechat/tags'),
+    wechatTags: () =>
+        import ('@/views/wechat/tags'),
     // wechatGraphic:() => import('@/views/catchAdmin/wechat/graphic'),
-    wechatReply: () => import ('@/views/wechat/reply'),
+    wechatReply: () =>
+        import ('@/views/wechat/reply'),
     //微信公众号轮播图管理
-    wechatBanner: () => import ('@/views/wechat/banner'),
+    wechatBanner: () =>
+        import ('@/views/wechat/banner'),
     //微信公众号公告管理
-    wechatNotice: () => import ('@/views/wechat/notice'),
+    wechatNotice: () =>
+        import ('@/views/wechat/notice'),
     //微信公众号补卡管理
-    wechatUpdateCard: () => import ('@/views/wechat/updatecard'),
-    routeMap:()=>import('@/views/map/routeMap.vue'),
+    wechatUpdateCard: () =>
+        import ('@/views/wechat/updatecard'),
+    routeMap: () =>
+        import ('@/views/map/routeMap.vue'),
     //设备管理
-    hydraulic: () => import ('@/views/device/hydraulic'),
-    wrench: () => import ('@/views/device/wrench'),
-    flange: () => import ('@/views/device/flange'),
-    maintenance: () => import ('@/views/device/maintenance'),
-    wind: () => import ('@/views/wind/wind'),
-    fan: () => import ('@/views/wind/fan'),
-    worklocation: () => import ('@/views/work_record/worklocation'),
+    hydraulic: () =>
+        import ('@/views/device/hydraulic'),
+    wrench: () =>
+        import ('@/views/device/wrench'),
+    flange: () =>
+        import ('@/views/device/flange'),
+    maintenance: () =>
+        import ('@/views/device/maintenance'),
+    wind: () =>
+        import ('@/views/wind/wind'),
+    fan: () =>
+        import ('@/views/wind/fan'),
+    worklocation: () =>
+        import ('@/views/work_record/worklocation'),
     //作业记录参数 映射表
-    maintenancemapper: () => import ('@/views/work_record/maintenancemapper'),
+    maintenancemapper: () =>
+        import ('@/views/work_record/maintenancemapper'),
     //作业位置管理表
-    worklocal_config: () => import ('@/views/work_record/worklocal_config'),
+    worklocal_config: () =>
+        import ('@/views/work_record/worklocal_config'),
     //同步方案
-    synscheme: () => import ('@/views/device/synscheme'),
-    device_mold: () => import ('@/views/device/mold'),
+    synscheme: () =>
+        import ('@/views/device/synscheme'),
+    device_mold: () =>
+        import ('@/views/device/mold'),
     // stolenVehicles: () => import('@/views/yunying/vehicle/stolen'),
     // 短信平台
-    sms: () => import ('@/views/sms'),
+    sms: () =>
+        import ('@/views/sms'),
 
     //推送记录
-    smsSendLog: () => import ('@/views/sms/smsSendLog'),
+    smsSendLog: () =>
+        import ('@/views/sms/smsSendLog'),
     // 域名管理
-    domain: () => import ('@/views/domain'),
+    domain: () =>
+        import ('@/views/domain'),
     // 域名记录
-    domainRecord: () => import ('@/views/domain/record'),
+    domainRecord: () =>
+        import ('@/views/domain/record'),
     //基础配置
-    basicConfig: () => import ('@/views/permission/config'),
+    basicConfig: () =>
+        import ('@/views/permission/config'),
     //类型字典
-    sysDictType: () => import ('@/views/system/sysDictType'),
+    sysDictType: () =>
+        import ('@/views/system/sysDictType'),
 
 
     // 报表分析 => 设备汇总
     // 液压泵统计
-    hydraulicCount: () =>  import ('@/views/report/hydraulicCount'),
+    hydraulicCount: () =>
+        import ('@/views/report/hydraulicCount'),
 
     //风场设备统计
-    windCount: () => import ('@/views/report/windCount'),
+    windCount: () =>
+        import ('@/views/report/windCount'),
     // 告警设备统计
-    alarmDeviceCount: () => import ('@/views/report/alarmDeviceCount'),
+    alarmDeviceCount: () =>
+        import ('@/views/report/alarmDeviceCount'),
     // 单位设备状态统计
-    companyCount: () => import ('@/views/report/companyCount'),
-    maintainCount: () => import ('@/views/report/maintainCount'),
+    companyCount: () =>
+        import ('@/views/report/companyCount'),
+    maintainCount: () =>
+        import ('@/views/report/maintainCount'),
 
     //维保记录统计
-    worklocationCount: () => import ('@/views/report/worklocationCount'),
+    worklocationCount: () =>
+        import ('@/views/report/worklocationCount'),
 
 
     // 报表分析 => 概览 => 数据统计
-    dataCount: () => import ('@/views/report/dataCount'),
+    dataCount: () =>
+        import ('@/views/report/dataCount'),
     // 热力图
-    heatmap: () => import ('@/views/report/heatmap'),
+    heatmap: () =>
+        import ('@/views/report/heatmap'),
 
     //大屏
-    screen: () => import ('@/views/screen'),
+    screen: () =>
+        import ('@/views/screen'),
 
 
     //告警记录
-    alarmRecords: () => import ('@/views/alarm/alarmRecords/index'),
-    alarmReport: () => import ('@/views/alarm/alarmReport/index'),
-    alarmDevice: () => import ('@/views/alarm/device/index'),
-    pushResult: () => import ('@/views/alarm/pushResult/index'),
+    alarmRecords: () =>
+        import ('@/views/alarm/alarmRecords/index'),
+    alarmReport: () =>
+        import ('@/views/alarm/alarmReport/index'),
+    alarmDevice: () =>
+        import ('@/views/alarm/device/index'),
+    pushResult: () =>
+        import ('@/views/alarm/pushResult/index'),
     //轨迹地图
-    routeMap: () => import ('@/views/map/routeMap'),
+    routeMap: () =>
+        import ('@/views/map/routeMap'),
 
 
     // 围栏列表
-    fence: () =>  import ('@/views/fence/index'),
+    fence: () =>
+        import ('@/views/fence/index'),
 
 }

+ 154 - 0
src/views/system/email/index.vue

@@ -0,0 +1,154 @@
+<template>
+  <div class="app-container">
+    <div class="filter-container">
+      <el-input v-model="queryParam.name" placeholder="邮箱" clearable class="filter-item form-search-input fl" />
+       <el-select  v-model="queryParam.device_type"  clearable class="filter-item form-search-input fl"  placeholder="请选择状态" >
+              <el-option
+                v-for="item in deviceTypes"
+                :key="item.value"
+                :label="item.text"
+                :value="item.value">
+              </el-option>
+        </el-select>
+      <el-button class="filter-item search fl" icon="el-icon-search" @click="handleSearch">
+        搜索
+      </el-button>
+      <el-button class="filter-item fl" icon="el-icon-refresh" @click="handleRefresh">
+        重置
+      </el-button>
+
+      <!-- <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleCreate()">
+        新增
+      </el-button>
+      <el-button v-if="this.selectedIds.length" size="small" class="filter-item mb-5" type="danger" icon="el-icon-delete" @click="handleMultiDelete">
+        批量删除
+      </el-button> -->
+    </div>
+    <el-table ref="multipleTable" :data="data" tooltip-effect="dark" style="width: 100%" border fit @selection-change="handleSelectMulti">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="邮箱" prop="email" align="center"/>
+
+      <el-table-column label="状态" align="center">
+          <template slot-scope="scope">
+              <p  v-if="scope.row.status==1">
+                <el-tag type="success">生效中</el-tag>
+              </p>
+              <p  v-else>
+                  <el-tag type="danger">失效</el-tag>
+              </p>
+            </template>
+      </el-table-column>>
+      <el-table-column label="详情" prop="info" align="center"/>
+      <el-table-column prop="created_at" label="创建时间" align="center"/>
+      <el-table-column prop="updated_at" label="更新时间" align="center"/>
+      <el-table-column label="操作" width="200px" align="center">
+        <template slot-scope="word">
+          <el-button type="primary" icon="el-icon-edit" @click="handleUpdate(word.row)" />
+          <el-button type="danger" icon="el-icon-delete" @click="handleDelete(word.row.id)" />
+        </template>
+      </el-table-column>
+    </el-table>
+        <el-button
+      type="primary"
+      icon="el-icon-plus"
+      :loading="downloadLoading"
+      style="margin-top: 15px"
+      @click="handleCreate"
+      >添加</el-button
+    >
+    <el-button
+      type="danger"
+      icon="el-icon-delete"
+      v-if="selectedIds.length > 0"
+      style="margin-top: 15px"
+      @click="handleMultiDelete()"
+      >删除</el-button
+    >
+    <el-pagination
+      background
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="paginate.current"
+       class="pagination-container"
+      :page-sizes="paginate.sizes"
+      :page-size="paginate.limit"
+      :layout="paginate.layout"
+      :total="paginate.total"/>
+    <!----------------------------------- 部门 ---------------------------------------------->
+    <el-dialog :title="title" :visible.sync="formVisible" @close="handleCancel" width="500px">
+
+      
+      <el-form :ref="formName" :model="formFieldsData" :rules="rules">
+          <el-form-item label="邮箱" :label-width="formLabelWidth" prop="email">
+               <el-input v-model="formFieldsData.email" placeholder="请输入邮箱" style="width: 250px" autocomplete="off" clearable />
+          </el-form-item>
+          <el-form-item label="状态" :label-width="formLabelWidth"  prop="status">
+              <el-switch v-model="formFieldsData.status"  style="width: 250px"  placeholder="请选择邮箱状态"  active-color="#13ce66"
+                inactive-color="#ff4949"  active-value="1" inactive-value="-1" />
+            </el-form-item>
+            <el-form-item label="详情" :label-width="formLabelWidth" prop="info">
+              <el-input type="textarea" v-model="formFieldsData.info" placeholder="请输入详情" style="width: 250px" autocomplete="off" clearable />
+            </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="handleCancel">取 消</el-button>
+        <el-button type="primary" @click="handleSubmit">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import formOperate from '@/layout/mixin/formOperate'
+
+export default {
+  name:"email",
+  mixins: [formOperate],
+  data() {
+    return {
+      formName: 'email',
+      formLabelWidth: '120px',
+      // 用户搜索
+      queryParam: {
+        name: '',
+      },
+      deviceTypes:[],
+      fan_models:[],
+      formVisible: false,
+      formFieldsData: {
+        email: '',
+        status: '',
+        info:'',
+      },
+      url: 'email',
+      // 表单验证
+      rules: {
+        emial: [
+          { required: true, message: '请输入邮箱', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.$http.post("sysDictData/getOptions", { type: "Maintenance" }).then(resp => {
+        this.deviceTypes = resp.data
+     });
+      this.$http.get("get_device_mold?type=4").then(resp => {
+        this.fan_models = resp.data
+     });
+
+  },
+  methods:{
+
+
+
+  },
+
+
+
+  }
+</script>
+<style lang="scss" scoped>
+.filter-item{
+  margin-bottom: 10px;
+}
+</style>

+ 2 - 1
src/views/work_record/maintenancemapper/index.vue

@@ -89,7 +89,7 @@
       
       <el-form :ref="formName" :model="formFieldsData" :rules="rules">
       
-      <el-form-item label="风机型号" :label-width="formLabelWidth" prop="fan_model" v-if="isShow"  >
+      <el-form-item label="风机型号" :label-width="formLabelWidth"  prop="fan_model" v-if="isShow"  :required="isShow" >
           <el-select  v-model.number="formFieldsData.fan_model"  clearable  style="width: 250px"  placeholder="请选择风机类型" >
               <el-option
                 v-for="item in fan_models"
@@ -167,6 +167,7 @@ export default {
       }
       else
       {
+        this.formFieldsData.fan_model=null;
         this.isShow=false;
       }
     },