dedsudiyu 11 月之前
父节点
当前提交
a6ef334512

+ 3 - 3
src/api/commonality/permission.js

@@ -569,11 +569,11 @@ export function laboratoryBigViewSelectTriggerInfo(query) {
   })
 }
 //按类型查询模板消息下拉列表
-export function iotAlarmTemplateFindList(query) {
+export function iotAlarmTemplateFindList(data) {
   return request({
     url: '/iot/alarm/template/findList',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }
 

+ 2 - 2
src/components/exportComponent/exportComponent.vue

@@ -6,8 +6,8 @@
 @引入:
 
 
-  <el-form-item>
-    <export-component :exportConfig="exportConfig" v-hasPermiRouter="['demo:demo:demo']"></export-component>
+  <el-form-item v-hasPermiRouter="['system:user:export']">
+    <export-component :exportConfig="exportConfig"></export-component>
   </el-form-item>
 
   import exportComponent from "@/components/exportComponent/exportComponent.vue";

+ 47 - 4
src/views/emergencyManagement/plan/addPlan.vue

@@ -115,12 +115,22 @@
               <!--</el-radio-group>-->
             <!--</el-form-item>-->
           </div>
-          <el-form-item label="报警通知方式:" prop="expandType">
-            <el-checkbox-group v-model="dialogForm.alarmType">
+          <el-form-item label="报警通知方式:" prop="alarmType">
+            <el-checkbox-group v-model="dialogForm.alarmType" @change="alarmChange">
               <el-checkbox label="1">电话报警</el-checkbox>
               <el-checkbox label="2">短信报警</el-checkbox>
             </el-checkbox-group>
           </el-form-item>
+          <el-form-item label="短信模板:" prop="msgTempId" v-if="businessType">
+            <el-select placeholder="请选择短信模板" v-model="dialogForm.msgTempId" style="width:300px;">
+              <el-option
+                v-for="item in businessOptions"
+                :key="item.templateId"
+                :label="item.templateName"
+                :value="item.templateId">
+              </el-option>
+            </el-select>
+          </el-form-item>
           <div class="autoClose">
             <p class="autoClose_l">自动关闭:</p>
             <p class="autoClose_l2">传感器监测数值恢复正常</p>
@@ -229,6 +239,7 @@
   import { laboratoryMusicFindByType,laboratoryRiskDeviceTypeGetList,laboratoryRiskPlanLevelGetRiskPlanLeveList,
     laboratoryPlanUpdate,laboratoryRiskPlanLevelAdd,laboratoryRiskPlanLevelUpdate,laboratoryRiskPlanLevelDelete } from "@/api/emergencyManagement/index";
   import { iotAttributeGetByTypeId } from "@/api/iotDevice/index";
+  import { iotAlarmTemplateFindList } from "@/api/commonality/permission";
   export default {
     name: "newAddPlan",
     props:{
@@ -251,8 +262,10 @@
         dialogTitle:'',
         dialogIndex:null,
         dialogOpen:false,
-        dialogForm:{
-        },
+        dialogForm:{},
+        //短信开关条件
+        businessType:false,
+        businessOptions:[],
         // 表单校验
         rules: {
           name: [
@@ -264,6 +277,9 @@
             { required: true, message: "请选择疏散音乐", trigger: "change" },
             { required: true, message: "请选择疏散音乐", validator: this.spaceJudgment, trigger: "change" },
           ],
+          msgTempId: [
+            { required: true, message: "请选择短信模板", trigger: "change" },
+          ],
           riskPlanLevel: [
             { required: true, message: "请选择预案等级", trigger: "change" },
           ],
@@ -326,6 +342,7 @@
     methods: {
       //初始化
       initialization(){
+        this.iotAlarmTemplateFindList();
         this.laboratoryMusicFindByType();
         this.iotAttributeGetByTypeId();
         this.laboratoryRiskDeviceTypeGetList();
@@ -427,6 +444,20 @@
           this.$set(this,'hardwareShowType',true);
         }
       },
+      //报警通知方式变更
+      alarmChange(val){
+        let num = 0;
+        val.forEach((item)=>{
+          if(item == '2'){
+            num++
+          }
+        })
+        if(num != 0){
+          this.$set(this,'businessType',true);
+        }else{
+          this.$set(this,'businessType',false);
+        }
+      },
       //查询设备功能
       controlTypeList(val,index) {
         let self = this;
@@ -629,6 +660,7 @@
               let obj = JSON.parse(JSON.stringify(this.dialogForm))
               obj.riskAutoOff =Number(obj.riskAutoOff);
               obj.alarmType =obj.alarmType.toString();
+              obj.msgTempId =this.businessType?obj.msgTempId:null;
               obj.startCondition = text+'';
               obj.bindingSensor = obj.bindingSensor[0]?JSON.stringify(obj.bindingSensor):'';
               obj.bindingDevice = obj.bindingDevice[0]?JSON.stringify(obj.bindingDevice):'';
@@ -662,6 +694,7 @@
               let obj = JSON.parse(JSON.stringify(this.dialogForm))
               obj.riskAutoOff =Number(obj.riskAutoOff);
               obj.alarmType =obj.alarmType.toString();
+              obj.msgTempId =this.businessType?obj.msgTempId:null;
               obj.riskPlanId = this.addPlanData.id;
               obj.startCondition = text+'';
               obj.bindingSensor = obj.bindingSensor[0]?JSON.stringify(obj.bindingSensor):'';
@@ -706,10 +739,12 @@
             riskPlanLevel:a==0?1:(b==0?2:(c==0?3:(d==0?4:''))),
             ifExit:true,
             alarmType:['1','2'],
+            msgTempId:null,
             riskAutoOff:'60',
             bindingSensor:[],
             bindingDevice:[],
           });
+          this.$set(this,'businessType',true);
           this.$set(this,'dialogOpen',true);
         }else if(type == 2){
           this.$set(this,'dialogTitle','编辑预案规则');
@@ -721,10 +756,12 @@
             riskPlanLevel:obj.riskPlanLevel,
             ifExit:obj.ifExit,
             alarmType:obj.alarmType.split(','),
+            msgTempId:obj.msgTempId,
             riskAutoOff:obj.riskAutoOff+'',
             bindingSensor:obj.bindingSensor,
             bindingDevice:obj.bindingDevice,
           });
+          this.alarmChange(obj.alarmType.split(','));
           let list = [];
           for(let i=0;i<self.form.labRiskPlanLevels.length;i++){
             if(i!=index){
@@ -767,6 +804,12 @@
           }).catch(() => {});
         }
       },
+      //按类型查询模板消息下拉列表
+      iotAlarmTemplateFindList(){
+        iotAlarmTemplateFindList({businessType:1}).then(response => {
+          this.$set(this,'businessOptions',response.data)
+        });
+      },
       //音乐列表
       laboratoryMusicFindByType(){
         laboratoryMusicFindByType({musicType:1}).then(response => {

+ 24 - 25
src/views/integratedManagement/personnelManage/studentInfo/index.vue

@@ -40,31 +40,11 @@
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item>
-            <el-dropdown @command="importButton" v-hasPermiRouter="['system:user:import']">
-              <div class="form-dropdown-box">
-                <img src="@/assets/ZDimages/integratedManagement/icon_jzgxx_dr.png">
-                <p>导入</p>
-                <img src="@/assets/ZDimages/integratedManagement/icon_jzggl_xljt.png">
-              </div>
-              <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{command:1}">下载模板</el-dropdown-item>
-                <el-dropdown-item style="margin:0 10px;color:#666;" :command="{command:2}">导入数据</el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
+          <el-form-item v-hasPermiRouter="['system:user:import']">
+            <import-component :importConfig="importConfig"></import-component>
           </el-form-item>
-          <el-form-item>
-            <el-dropdown @command="exportButton" v-hasPermiRouter="['system:user:export']">
-              <div class="form-dropdown-box">
-                <img src="@/assets/ZDimages/integratedManagement/icon_jzgxx_sc.png">
-                <p>导出</p>
-                <img src="@/assets/ZDimages/integratedManagement/icon_jzggl_xljt.png">
-              </div>
-              <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{command:1}">导出全部数据</el-dropdown-item>
-                <el-dropdown-item style="margin:0 10px;color:#666;" :command="{command:2}">导出选中数据</el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
+          <el-form-item v-hasPermiRouter="['system:user:export']">
+            <export-component :exportConfig="exportConfig"></export-component>
           </el-form-item>
           <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
           <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
@@ -227,14 +207,29 @@ import bindingCardPage from "./bindingCardPage.vue"
 import { systemUserList,systemUserEditState,systemUserResetPasswd,
   systemUserDelete,systemUserDetail,getDeptDropList  } from "@/api/commonality/permission";
 import { getDicts } from "@/api/commonality/noPermission";
+import exportComponent from "@/components/exportComponent/exportComponent.vue";
+import importComponent from "@/components/importComponent/importComponent.vue";
 export default {
   name: "User",
   components: {
     addPage,
-    bindingCardPage
+    bindingCardPage,
+    exportComponent,
+    importComponent
   },
   data() {
     return {
+      importConfig:{
+        upLoadApi:'/system/user/importStudent',                //上传接口地址
+        downloadApi:'/system/user/importTemplate',          //下载模板接口地址
+        loseApi:'/system/user/student/importErrorData',             //失败报表接口地址
+        fileName:'导入模板-',                                   //下载模板命名
+      },
+      exportConfig:{
+        api:'/system/user/export',             //导出接口地址
+        ids:'',                                       //勾选导出,勾选的IDS
+        fileName:'学生信息',                         //导出文件的命名
+      },
       tableButtonType:this.hasPermiDom(['system:user:detail','system:user:edit','system:user:del','system:user:reset',]),
       tableDropdownType:this.hasPermiDom(['system:user:edit','system:user:del','system:user:reset',]),
       uploadImgUrl: window.location.href.split('://')[0]+'://' + this.judgmentNetworkReturnAddress() + "/system/user/student/importData", // 上传地址
@@ -381,6 +376,10 @@ export default {
     // this.getConfigKey("sys.user.initPassword").then(response => {});
   },
   methods: {
+    //必要方法-导入成功回调
+    submitSuccessful(){
+      this.getList();
+    },
     //批量绑卡页面跳转与数量检测
     bindingCard(){
       let self = this;

+ 24 - 83
src/views/integratedManagement/personnelManage/teacherInfo/index.vue

@@ -4,28 +4,6 @@
     <div v-show="pageType == 1" class="teacher-one-box">
       <div class="top-max-box">
         <div class="left-max-box ">
-
-          <!--<div class="top-button-max-box">-->
-            <!--<el-tooltip class="item" effect="dark" content="新增下级部门" placement="top">-->
-              <!--<div class="new-button-box" @click="treeButtonClick(1)" v-hasPermiRouter="['system:dept:add']"></div>&lt;!&ndash;新增&ndash;&gt;-->
-            <!--</el-tooltip>-->
-            <!--<el-tooltip class="item" effect="dark" content="向上移动" placement="top">-->
-              <!--<div class="superior-button-box" @click="treeButtonClick(2)" v-hasPermiRouter="['system:dept:edit']"></div>&lt;!&ndash;上调&ndash;&gt;-->
-            <!--</el-tooltip>-->
-            <!--<el-tooltip class="item" effect="dark" content="向下移动" placement="top">-->
-              <!--<div class="down-button-box" @click="treeButtonClick(3)" v-hasPermiRouter="['system:dept:edit']"></div>&lt;!&ndash;下调&ndash;&gt;-->
-            <!--</el-tooltip>-->
-            <!--<el-tooltip class="item" effect="dark" content="修改" placement="top">-->
-              <!--<div class="edit-button-box" @click="treeButtonClick(4)" v-hasPermiRouter="['system:dept:edit']"></div>&lt;!&ndash;编辑&ndash;&gt;-->
-            <!--</el-tooltip>-->
-            <!--<el-tooltip class="item" effect="dark" content="添加部门人员" placement="top">-->
-              <!--<div class="add-button-box" @click="treeButtonClick(5)" v-hasPermiRouter="['system:user_teacher:edit']"></div>&lt;!&ndash;人员添加&ndash;&gt;-->
-            <!--</el-tooltip>-->
-            <!--<el-tooltip class="item" effect="dark" content="删除" placement="top">-->
-              <!--<div class="delete-button-box" @click="treeButtonClick(6)" v-hasPermiRouter="['system:dept:remove']"></div>&lt;!&ndash;删除&ndash;&gt;-->
-            <!--</el-tooltip>-->
-          <!--</div>-->
-
           <div class="left-input-box">
             <el-input
               class="input-left"
@@ -95,31 +73,11 @@
                 />
               </el-select>
             </el-form-item>
-            <el-form-item>
-              <el-dropdown @command="importButton" v-hasPermiRouter="['system:user:import']">
-                <div class="form-dropdown-box" style="margin-left:5px;">
-                  <img src="@/assets/ZDimages/integratedManagement/icon_jzgxx_dr.png">
-                  <p>导入</p>
-                  <img src="@/assets/ZDimages/integratedManagement/icon_jzggl_xljt.png">
-                </div>
-                <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{command:1}">下载模板</el-dropdown-item>
-                  <el-dropdown-item style="margin:0 10px;color:#666;" :command="{command:2}">导入数据</el-dropdown-item>
-                </el-dropdown-menu>
-              </el-dropdown>
+            <el-form-item v-hasPermiRouter="['system:user:import']">
+              <import-component :importConfig="importConfig"></import-component>
             </el-form-item>
-            <el-form-item>
-              <el-dropdown @command="exportButton" v-hasPermiRouter="['system:user:export']">
-                <div class="form-dropdown-box">
-                  <img src="@/assets/ZDimages/integratedManagement/icon_jzgxx_sc.png">
-                  <p>导出</p>
-                  <img src="@/assets/ZDimages/integratedManagement/icon_jzggl_xljt.png">
-                </div>
-                <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{command:1}">导出全部数据</el-dropdown-item>
-                  <el-dropdown-item style="margin:0 10px;color:#666;" :command="{command:2}">导出选中数据</el-dropdown-item>
-                </el-dropdown-menu>
-              </el-dropdown>
+            <el-form-item v-hasPermiRouter="['system:user:export']">
+              <export-component :exportConfig="exportConfig"></export-component>
             </el-form-item>
             <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
             <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
@@ -250,42 +208,6 @@
         <p class="dialog-footer-button-null"></p>
       </div>
     </el-dialog>
-    <!--导入窗口-->
-    <el-dialog title="导入数据" :visible.sync="importOpen" @close="importOpenOff" width="600px" append-to-body class="teacher-import-dialog-box">
-      <el-upload
-        class="teacher-import-dialog-upLoad-box"
-        :drag="true"
-        :data="upImportData"
-        :action="uploadImgUrl"
-        :show-file-list="false"
-        :on-success="handleAvatarSuccess"
-        :headers="headers"
-        :before-upload="beforeAvatarUpload">
-        <i class="el-icon-upload"></i>
-        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
-        <div class="el-upload__tip" slot="tip">
-          <el-checkbox v-model="upImportData.upDate">是否更新已经存在的用户数据</el-checkbox>
-        </div>
-        <div class="el-upload__tip" slot="tip">仅允许导入xls、xlsx、格式文件。<span style="color:#0183FA;cursor: pointer" v-hasPermiRouter="['system:user_teacher:exceltemplate']" @click="importTemplate">下载模板</span></div>
-        <div class="el-upload-text-box" slot="tip" v-if="getImportData.downFile">
-          <div class="img-text-box">
-            <img src="@/assets/ZDimages/integratedManagement/icon_dr_wj.png">
-            <p>{{getImportData.textName}}</p>
-          </div>
-          <p class="text-p">数据导入成功 <span style="color:#0183FA;">{{getImportData.successNum}}</span> 条,失败 <span style="color:#FF6464 ;">{{getImportData.failureNum}}</span> 条</p>
-          <div class="img-text-box">
-            <img src="@/assets/ZDimages/integratedManagement/icon_dr_sj.png">
-            <p style="color:#0183FA;cursor: pointer;" @click="failureExcel">点击下载失败数据报表</p>
-          </div>
-        </div>
-      </el-upload>
-      <div slot="footer" class="dialog-footer dialog-footer-box">
-        <p class="dialog-footer-button-null"></p>
-        <p class="dialog-footer-button-primary" @click="importOpenOff">提交</p>
-        <p class="dialog-footer-button-null"></p>
-      </div>
-      <div class="teacher-import-dialog-position-box" v-if="loading"></div>
-    </el-dialog>
     <!--编辑--组织架构-->
     <el-dialog title="修改部门" v-if="treeOpen" :visible.sync="treeOpen" width="600px" append-to-body class="teacher-tree-dialog-box">
       <el-form :model="treeForm" class="teacher-tree-dialog-form-box" ref="treeForm" :rules="rules" v-show="showSearch">
@@ -386,6 +308,8 @@
   import { setDeptAdd,setDeptUpdate,setDeptDelete,setDeptSort,getDeptOrganizeStructure,
     systemUserList,systemUserEditState,systemUserResetPasswd,systemUserDelete,
     systemUserDetail,} from "@/api/commonality/permission";
+  import exportComponent from "@/components/exportComponent/exportComponent.vue";
+  import importComponent from "@/components/importComponent/importComponent.vue";
 
   export default {
     name: "User",
@@ -393,10 +317,23 @@
       Treeselect,
       userList,
       addPage,
-      bindingCardPage
+      bindingCardPage,
+      exportComponent,
+      importComponent
     },
     data() {
       return {
+        importConfig:{
+          upLoadApi:'/system/user/importStudent',                //上传接口地址
+          downloadApi:'/system/user/importTemplate',          //下载模板接口地址
+          loseApi:'/system/user/student/importErrorData',             //失败报表接口地址
+          fileName:'导入模板-',                                   //下载模板命名
+        },
+        exportConfig:{
+          api:'/system/user/export',             //导出接口地址
+          ids:'',                                       //勾选导出,勾选的IDS
+          fileName:'教职工信息',                         //导出文件的命名
+        },
         /*============V3开始*/
         // 部门树选项
         deptOptions: null,
@@ -623,6 +560,10 @@
       this.getList();
     },
     methods: {
+      //必要方法-导入成功回调
+      submitSuccessful(){
+        this.getList();
+      },
       /*===========V3开始===========*/
       getDeptOrganizeStructure(){
         getDeptOrganizeStructure({deptName:this.inputDeptName}).then(response => {

+ 25 - 1
src/views/iotDevice/monitoringWarning/messageTemplate/addPage.vue

@@ -23,6 +23,17 @@
             </el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="业务类型:" prop="businessType">
+          <el-select :disabled="showType" v-model="newData.businessType"
+                     placeholder="请选择业务类型" style="width:500px;">
+            <el-option
+              v-for="item in businessList"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <div v-if="newData.alarmType == 1 && newData.category==1">
           <el-form-item label="AgentID:" prop="agentId">
             <el-input :disabled="showType" v-model="newData.agentId"
@@ -268,7 +279,8 @@
 </template>
 
   <script>
-    import { iotAlarmTemplateAdd,iotAlarmTemplateUpdate,iotAlarmTemplateBodyType,iotAlarmReceiveDropList } from "@/api/iotDevice/index";
+    import { iotAlarmTemplateAdd,iotAlarmTemplateUpdate,iotAlarmTemplateBodyType,
+      iotAlarmReceiveDropList,iotAlarmTemplateBusinessType } from "@/api/iotDevice/index";
     import { iotAlarmTypeSelect,systemUserSelect } from "@/api/commonality/permission";
     export default {
       name: 'addPage',
@@ -332,6 +344,8 @@
           userOptions:[],
           //消息模板类型列表
           bodyTypeList:[],
+          //业务类型列表
+          businessList:[],
           //部门/人员/标签下拉列表
           personnelOptionList:[],
           sectionOptionList:[],
@@ -344,6 +358,7 @@
       mounted(){
         this.iotAlarmTemplateBodyType();
         this.iotAlarmTypeSelect();
+        this.iotAlarmTemplateBusinessType();
       },
       methods:{
         //接收人选中
@@ -405,6 +420,12 @@
             this.$set(this,'typeList',response.data);
           });
         },
+        //模板类型列表
+        iotAlarmTemplateBusinessType(){
+          iotAlarmTemplateBusinessType({}).then(response => {
+            this.$set(this,'businessList',response.data);
+          });
+        },
         //初始化
         initialize(){
           this.$set(this,'showType',this.propsData.showType);
@@ -426,6 +447,7 @@
               templateId:obj.templateId,
               templateName:obj.templateName,
               typeId:obj.typeId,
+              businessType:obj.businessType,
               alarmType:obj.alarmType,
               category:obj.category,
               remark:obj.remark,
@@ -450,6 +472,7 @@
             this.$set(this,'newData',{
               templateName:null,
               typeId:null,
+              businessType:null,
               alarmType:null,
               category:null,
               agentId:null,
@@ -487,6 +510,7 @@
               let newObj = {
                 templateName:obj.templateName,
                 typeId:obj.typeId,
+                businessType:obj.businessType,
                 alarmType:obj.alarmType,
                 category:obj.category,
                 content:obj.content,

+ 4 - 3
src/views/iotDevice/monitoringWarning/messageTemplate/index.vue

@@ -41,7 +41,7 @@
               <p v-for="(item,index) in typeList" :key="index" v-show="item.id == scope.row.alarmType">{{item.name}}</p>
             </template>
           </el-table-column>
-          <el-table-column label="类型" align="left" prop="category" width="160" show-overflow-tooltip>
+          <el-table-column label="类型" align="left" prop="category" width="140" show-overflow-tooltip>
             <template slot-scope="scope">
               {{scope.row.alarmType==1&&scope.row.category==1?'钉钉消息':(
               scope.row.alarmType==1&&scope.row.category==2?'钉钉群消息':(
@@ -54,6 +54,7 @@
               }}
             </template>
           </el-table-column>
+          <el-table-column label="业务类型" align="left" prop="businessTypeName" width="180" show-overflow-tooltip/>
           <el-table-column label="内容" align="left" prop="content" show-overflow-tooltip/>
           <el-table-column label="状态" align="left" prop="state" width="100" show-overflow-tooltip>
             <template slot-scope="scope">
@@ -71,12 +72,12 @@
               ></el-switch>
             </template>
           </el-table-column>
-          <el-table-column label="创建时间" align="left" prop="createTime" width="200" show-overflow-tooltip>
+          <el-table-column label="创建时间" align="left" prop="createTime" width="160" show-overflow-tooltip>
             <template slot-scope="scope">
               <span>{{ parseTime(scope.row.createTime,"{y}-{m}-{d} {h}:{i}") }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="240" v-if="tableButtonType">
+          <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="220" v-if="tableButtonType">
             <template slot-scope="scope">
               <div class="table-button-box">
                 <p class="table-button-null"></p>