Преглед изворни кода

Merge branch 'master' of http://192.168.1.43:3000/v3/v3-lab-web

heyang пре 1 година
родитељ
комит
20c413ee47

+ 3 - 3
.env.production

@@ -1,6 +1,6 @@
 # ######################页面标题######################
 
-VUE_APP_TITLE = 实验室安全管理系统
+VUE_APP_TITLE = 实验室安全智慧化管控系统
 
 # ####################生产环境配置####################
 
@@ -18,9 +18,9 @@ VUE_APP_VERSION_DIFFERENCE_FIELD = 'kuangYeDaXue_nanHu'
 
 # ####################外网接口配置####################
 
-VUE_APP_BASE_API = '192.168.1.43/api'
+VUE_APP_BASE_API = 'lab.zjznai.com/nwsuaf/api'
 
 # ####################内网接口配置####################
 
-VUE_APP_BASE_LOCAL_API = '192.168.1.43/api'
+VUE_APP_BASE_LOCAL_API = '192.168.1.8/api'
 

+ 455 - 28
src/views/integratedManagement/messageNotice/warningNotice/forewarningConfig.vue

@@ -14,31 +14,139 @@
       <p class="page-out-common-style-button out-p">返回</p>
     </div>
     <!--危险源预警-->
-    <div class="page-max-big-box-a scrollbar-box" v-if="checkTypeA == 1">
+    <div class="page-max-big-box-a scrollbar-box" v-show="checkTypeA == 1">
       <!--选项卡-->
       <div class="tab-max-big-box">
         <div class="tab-title-box">
           <p :class="checkTypeB == 1?'title-check':''" @click="checkTypeClickB(1)">化学品预警配置</p>
           <p :class="checkTypeB == 2?'title-check':''" @click="checkTypeClickB(2)">气瓶预警配置</p>
         </div>
-        <div class="tab-max-box-a" v-if="checkTypeB == 1">
-          <el-form class="form-box" :model="chemicalsForm" ref="chemicalsForm" :inline="true" :rules="chemicalsRules">
+        <div class="tab-max-box-a" v-show="checkTypeB == 1">
+          <el-form class="form-box" :model="chemicalsForm" ref="chemicalsForm"
+                   :inline="true" :rules="chemicalsRules" label-width="140px">
             <div class="tab-box-left">
-              <el-form-item label="临期预警:化学品过期" prop="data1">
-                <el-input-number v-model="chemicalsForm.data1" :controls="false" :min="1" :max="360" style="width:100px;"></el-input-number> 天前提醒通知
-              </el-form-item>
-              <el-form-item label="过期报警:" prop="data2">
-                <el-input-number v-model="chemicalsForm.data2"  :min="1" :max="20" style="width:100px;"></el-input-number> 天前提醒通知
-              </el-form-item>
+              <div>
+                <el-form-item label="临期预警:化学品过期 " prop="data1" label-width="210px">
+                  <el-input-number v-model="chemicalsForm.data1" style="width:100px;"
+                                   :controls="false" :min="1" :max="360">
+                  </el-input-number>
+                  <span style="margin-left:20px;">天前提醒通知</span>
+                </el-form-item>
+              </div>
+              <div>
+                <el-form-item label="过期报警:" prop="data2">
+                  <el-input-number v-model="chemicalsForm.data2" style="width:130px;"
+                                   :min="1" :max="20">
+                  </el-input-number>
+                  <span style="margin-left:20px;">化学品过期后报警通知次数</span>
+                </el-form-item>
+              </div>
+              <div>
+                <el-form-item label="过期短信:" prop="data3">
+                  <el-time-select v-model="chemicalsForm.data3" placeholder="请选择" style="width:130px;"
+                    :picker-options="{
+                      start: '00:00',
+                      step: '00:15',
+                      end: '23:45'
+                    }">
+                  </el-time-select>
+                  <span style="margin-left:20px;">化学品过期报警短信通知定时推送时间</span>
+                </el-form-item>
+              </div>
+              <div>
+                <el-form-item label="违规带离:" prop="data4">
+                  <el-select v-model="chemicalsForm.data4" multiple placeholder="请选择" style="width:500px;">
+                    <el-option
+                      v-for="item in chemicalsOptionsA"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+              <div>
+                <el-form-item label="超时未归还:" prop="data5">
+                  <el-select v-model="chemicalsForm.data5" multiple placeholder="请选择" style="width:500px;">
+                    <el-option
+                      v-for="item in chemicalsOptionsB"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
             </div>
             <div class="tab-box-right">
-
+              <div>
+                <el-form-item label="即将过期:" prop="data6">
+                  <el-select v-model="chemicalsForm.data6" multiple placeholder="请选择" style="width:500px;">
+                    <el-option
+                      v-for="item in chemicalsOptionsB"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+              <div>
+                <el-form-item label="过期报警:" prop="data7">
+                  <el-select v-model="chemicalsForm.data7" multiple placeholder="请选择" style="width:500px;">
+                    <el-option
+                      v-for="item in chemicalsOptionsB"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+              <div>
+                <el-form-item label="超期未入库:" prop="data8">
+                  <el-select v-model="chemicalsForm.data8" multiple placeholder="请选择" style="width:500px;">
+                    <el-option
+                      v-for="item in chemicalsOptionsB"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+              <div>
+                <el-form-item label="业务操作超时:" prop="data9">
+                  <el-select v-model="chemicalsForm.data9" multiple placeholder="请选择" style="width:500px;">
+                    <el-option
+                      v-for="item in chemicalsOptionsB"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
             </div>
           </el-form>
         </div>
-        <div class="tab-max-box-b" v-if="checkTypeB == 2">
-          <el-form class="form-box" :model="gasBottleForm" ref="gasBottleForm" :inline="true" :rules="gasBottleRules">
-
+        <div class="tab-max-box-b" v-show="checkTypeB == 2">
+          <el-form class="form-box" :model="gasBottleForm" ref="gasBottleForm"
+                   :inline="true" :rules="gasBottleRules" label-width="140px">
+            <div class="tab-box">
+              <div>
+                <el-form-item label="违规带离:" prop="data10">
+                  <el-select v-model="gasBottleForm.data10" multiple placeholder="请选择" style="width:500px;">
+                    <el-option
+                      v-for="item in chemicalsOptionsA"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+            </div>
           </el-form>
         </div>
       </div>
@@ -48,19 +156,142 @@
         <p>化学品超时未归还、化学品或气瓶违规带离预警升级配置</p>
       </div>
       <!--表格部分-->
-      <div>
-
+      <div class="table-bottom-box">
+        <div class="page-form-title-box">
+          <el-form :model="queryParams" class="form-box" ref="queryForm"
+                   :inline="true" style="width:100%;">
+            <el-form-item label="状态" prop="tabeleData1">
+              <el-select v-model="queryParams.tabeleData1" placeholder="请选择" style="width: 200px">
+                <el-option
+                  v-for="item in typeOptions"
+                  :key="item.deptId"
+                  :label="item.deptName"
+                  :value="item.deptId"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="部门" prop="tabeleData2">
+              <el-select v-model="queryParams.tabeleData2" placeholder="请选择" style="width: 200px">
+                <el-option
+                  v-for="item in sectionOptions"
+                  :key="item.deptId"
+                  :label="item.deptName"
+                  :value="item.deptId"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="创建人" prop="tabeleData3">
+              <el-input
+                maxLength="30"
+                v-model="queryParams.tabeleData3"
+                placeholder="创建人"
+                clearable
+                style="width: 200px"
+              />
+            </el-form-item>
+            <p class="page-inquire-common-style-button" @click="handleQuery">查询</p>
+            <p class="page-reset-common-style-button" @click="resetQuery">重置</p>
+            <p class="page-submit-common-style-button"
+               style="float: right;"
+               @click="tableButton(1)"
+               v-hasPermiRouter="['demo:demo:add']"
+            >新增</p>
+          </el-form>
+        </div>
+        <div class="page-content-box">
+          <el-table class="table-box" v-loading="loading" border :data="dataList">
+            <el-table-column label="适用学院" prop="name" show-overflow-tooltip/>
+            <el-table-column label="报警层级" prop="content" width="180" show-overflow-tooltip/>
+            <el-table-column label="通知人数" prop="content" width="150" show-overflow-tooltip/>
+            <el-table-column label="状态" prop="content" width="150" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <el-switch
+                  @click.native="tableButton(4,scope.row)"
+                  class="switch captcha-img"
+                  :active-value="true"
+                  :inactive-value="false"
+                  active-color="#0183FA"
+                  inactive-color="#999"
+                  v-model="scope.row.state"
+                  active-text="启用"
+                  inactive-text="停用"
+                  disabled
+                ></el-switch>
+              </template>
+            </el-table-column>
+            <el-table-column label="创建时间" prop="content" width="200" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.createTime) }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="创建人" prop="content" width="150" show-overflow-tooltip/>
+            <el-table-column label="操作" width="180" show-overflow-tooltip v-if="tableButtonType">
+              <template slot-scope="scope">
+                <div class="table-button-box">
+                  <p class="table-button-null"></p>
+                  <p class="table-button-p"
+                     @click="tableButton(2,scope.row)"
+                     v-hasPermiRouter="['demo:demo:detail']"
+                  >编辑</p>
+                  <p class="table-button-p"
+                     @click="tableButton(3,scope.row)"
+                     v-hasPermiRouter="['demo:demo:edit']"
+                  >删除</p>
+                  <p class="table-button-null"></p>
+                </div>
+              </template>
+            </el-table-column>
+          </el-table>
+          <pagination :page-sizes="[10]"
+                      v-show="total>0"
+                      :total="total"
+                      :page.sync="queryParams.page"
+                      :limit.sync="queryParams.pageSize"
+                      @pagination="getList"
+          />
+        </div>
       </div>
     </div>
     <!--算法预警-->
-    <div class="page-max-big-box-b scrollbar-box" v-if="checkTypeA == 2">
+    <div class="page-max-big-box-b scrollbar-box" v-show="checkTypeA == 2">
 
     </div>
     <div class="button-bottom-box">
       <p class="null-p"></p>
-      <p class="page-submit-common-style-button submit-p">保存</p>
+      <p class="page-submit-common-style-button submit-p" @click="submitButton">保存</p>
       <p class="null-p"></p>
     </div>
+    <el-dialog class="forewarningUp-dialog" title='预警升级配置' width="1300px" append-to-body
+               :visible.sync="dialogType" v-if="dialogType" @close="dialogOff()"
+               :close-on-click-modal="false" :close-on-press-escape="false">
+      <div class="question-box">
+        <i class="el-icon-question question-icon"></i>
+        <i class="question-text">如在设定的处理时间内未处理,则报警升级执行下一步流程。</i>
+      </div>
+      <el-form :model="dialogForm" ref="dialogForm" :inline="true" :rules="dialogRules" class="addCheckPage-min" label-width="80px">
+        <el-form-item label="名称" prop="dictKey">
+          <el-input v-model="dialogForm.dictKey" placeholder="请输入名称" maxLength="10" style="width:320px;"/>
+        </el-form-item>
+        <el-form-item label="关联值" prop="dictValue">
+          <el-input v-model="dialogForm.dictValue" placeholder="请输入标识" maxLength="20" style="width:320px;"/>
+        </el-form-item>
+        <el-form-item label="排序" prop="sort">
+          <el-input-number v-model="dialogForm.sort" controls-position="right" :min="1" :max="9999" style="width:320px;"></el-input-number>
+        </el-form-item>
+        <el-form-item label="状态" prop="state">
+          <el-radio-group v-model="dialogForm.state" style="width:320px;">
+            <el-radio :label="true">启用</el-radio>
+            <el-radio :label="false">禁用</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer dialog-footer-box">
+        <p class="dialog-footer-button-null"></p>
+        <p class="dialog-footer-button-info" @click="dialogOff()">取消</p>
+        <p class="dialog-footer-button-primary" @click="dialogSubmit">确定</p>
+        <p class="dialog-footer-button-null"></p>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -80,19 +311,63 @@
         //小类型状态
         checkTypeB:1,
         //化学品预警数据
-        chemicalsForm:{},
+        chemicalsForm:{
+          data1:30,
+          data2:1,
+          data3:null,
+          data4:null,
+          data5:null,
+          data6:null,
+          data7:null,
+          data8:null,
+          data9:null,
+        },
         chemicalsRules:{
-          dictKey: [
-            { required: true, message: "请输入名称", trigger: "blur" },
-            { required: true, message: "请输入名称", validator: this.spaceJudgment, trigger: "blur" }
+          data1: [
+            { required: true, message: "请输入临期预警通知时间", trigger: "blur" },
+            { required: true, message: "请输入临期预警通知时间", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data2: [
+            { required: true, message: "请选择过期报警时间", trigger: "blur" },
+            { required: true, message: "请选择过期报警时间", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data3: [
+            { required: true, message: "请选择过期短信通知时间", trigger: "blur" },
+            { required: true, message: "请选择过期短信通知时间", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data4: [
+            { required: true, message: "请选择违规带离通知方式", trigger: "blur" },
+            { required: true, message: "请选择违规带离通知方式", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data5: [
+            { required: true, message: "请选择超时未归还通知方式", trigger: "blur" },
+            { required: true, message: "请选择超时未归还通知方式", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data6: [
+            { required: true, message: "请选择即将过期通知方式", trigger: "blur" },
+            { required: true, message: "请选择即将过期通知方式", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data7: [
+            { required: true, message: "请选择过期报警通知方式", trigger: "blur" },
+            { required: true, message: "请选择过期报警通知方式", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data8: [
+            { required: true, message: "请选择超期未入库通知方式", trigger: "blur" },
+            { required: true, message: "请选择超期未入库通知方式", validator: this.spaceJudgment, trigger: "blur" }
+          ],
+          data9: [
+            { required: true, message: "请选择业务操作超时通知方式", trigger: "blur" },
+            { required: true, message: "请选择业务操作超时通知方式", validator: this.spaceJudgment, trigger: "blur" }
           ],
         },
         //气瓶预警数据
-        gasBottleForm:{},
+        gasBottleForm:{
+          data10:null,
+        },
         gasBottleRules:{
-          dictKey: [
-            { required: true, message: "请输入名称", trigger: "blur" },
-            { required: true, message: "请输入名称", validator: this.spaceJudgment, trigger: "blur" }
+          data10: [
+            { required: true, message: "请选择违规带离通知方式", trigger: "blur" },
+            { required: true, message: "请选择违规带离通知方式", validator: this.spaceJudgment, trigger: "blur" }
           ],
         },
         //算法预警数据
@@ -103,6 +378,36 @@
             { required: true, message: "请输入名称", validator: this.spaceJudgment, trigger: "blur" }
           ],
         },
+        //违规带离
+        chemicalsOptionsA:[
+          {label:'短信通知',value:'1'},
+          {label:'报警电话',value:'2'},
+          {label:'企业微信',value:'3'},
+          {label:'声光报警',value:'4'},
+        ],
+        //超时未归还
+        chemicalsOptionsB:[
+          {label:'短信通知',value:'1'},
+          {label:'报警电话',value:'2'},
+          {label:'企业微信',value:'3'},
+        ],
+        //预警升级规则
+        queryParams:{
+          tabeleData1:'',
+          tabeleData2:'',
+          tabeleData3:'',
+        },
+        //状态列表
+        typeOptions:[],
+        //部门列表
+        sectionOptions:[],
+        //升级规则列表
+        dataList:[{},{},{},{},{},{},{},{},{},{},],
+        total:10,
+        tableButtonType:this.hasPermiDom(['demo:demo:detail','demo:demo:edit','demo:demo:del',]),
+        //dialog配置
+        dialogType:true,
+        dialogForm:{},
       }
     },
     created(){
@@ -116,14 +421,100 @@
       checkTypeClickA(type){
         if(type != this.checkTypeA){
           this.$set(this,'checkTypeA',type);
+          this.resetFields();
         }
       },
       // 小类切换
       checkTypeClickB(type){
         if(type != this.checkTypeB){
           this.$set(this,'checkTypeB',type);
+          this.resetFields();
+        }
+      },
+      //去除验证
+      resetFields(){
+        if(this.checkTypeA == 1 && this.checkTypeB == 1){
+          this.$refs.chemicalsForm.resetFields()
+        }else if(this.checkTypeA == 1 && this.checkTypeB == 2){
+          this.$refs.gasBottleForm.resetFields()
+        }else if(this.checkTypeA == 2){
+          this.$refs.algorithmForm.resetFields()
+        }
+      },
+      //提交
+      submitButton(){
+        if(this.checkTypeA == 1 && this.checkTypeB == 1){
+          this.$refs["chemicalsForm"].validate(valid => {
+            if (valid) {
+
+            }
+          })
+        }else if(this.checkTypeA == 1 && this.checkTypeB == 2){
+          this.$refs["gasBottleForm"].validate(valid => {
+            if (valid) {
+
+            }
+          })
         }
       },
+      //升级规则查询
+      handleQuery(){
+
+      },
+      //升级规则重置
+      resetQuery(){
+
+      },
+      //获取升级规则列表
+      getList(){
+
+      },
+      //新增/编辑/删除升级规则
+      tableButton(type){
+        let self = this;
+        if(type == 1){
+          //新增
+          this.dataList.push({});
+        }else if(type == 2){
+          //编辑
+
+        }else if(type == 3){
+          //删除
+          this.$confirm('是否确认删除?', "警告", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(function() {
+          }).then(() => {
+            deleteFunction({id:row.id}).then(response => {
+              self.msgSuccess(response.message)
+              self.getList();
+            });
+          }).catch(() => {});
+        }else if(type == 4){
+          //启用&停用
+          let text = row.state  ? "停用" : "启用";
+          this.$confirm('是否确认' + text + '?', "警告", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(function() {
+          }).then(() => {
+            stateFunction({id:row.id,state:!row.state,}).then(response => {
+              self.msgSuccess(response.message)
+              self.getList();
+            });
+          }).catch(() => {});
+        }
+      },
+      //关闭弹层
+      dialogOff(){
+
+      },
+      //弹层提交
+      dialogSubmit(){
+
+      },
     },
   }
 </script>
@@ -173,9 +564,10 @@
     }
     .page-max-big-box-a{
       flex:1;
-      margin:40px 80px 20px;
+      margin:40px 20px 20px;
+      padding:0 60px;
       .tab-max-big-box{
-        height:420px;
+        height:410px;
         display: flex;
         flex-direction: column;
         .tab-title-box{
@@ -210,20 +602,28 @@
               flex:1;
               border-right:1px dashed #D8D8D8;
               margin:12px 0;
+              padding:30px 0 0;
             }
             .tab-box-right{
               flex:1;
               margin:12px 0;
+              padding:30px 0 0;
             }
           }
         }
         .tab-max-box-b{
+          display: flex;
           flex:1;
           border:1px solid #E0E0E0;
+          .tab-box{
+            flex:1;
+            margin:12px 0;
+            padding:30px 0 0;
+          }
         }
       }
       .tips-box{
-        margin:20px 0;
+        margin:20px 0 0;
         display: flex;
         background: #F5F5F5;
         p{
@@ -238,6 +638,14 @@
           color:#666666;
         }
       }
+      .table-bottom-box{
+        .page-form-title-box{
+          border:none;
+        }
+        .page-content-box{
+          padding:0 0 20px 0;
+        }
+      }
     }
     .page-max-big-box-b{
       flex:1;
@@ -255,3 +663,22 @@
     }
   }
 </style>
+<style lang="scss">
+  .forewarningUp-dialog{
+    .question-box{
+      padding:0 45px 20px;
+      .question-icon{
+        color:#FFC000;
+        font-size:16px;
+        height:20px;
+        line-height:16px;
+      }
+      .question-text{
+        margin-left:12px;
+        height:20px;
+        line-height:16px;
+        font-size:16px;
+      }
+    }
+  }
+</style>