dedsudiyu hace 1 año
padre
commit
d78e94d872

+ 32 - 11
README.md

@@ -120,21 +120,42 @@
     
 ## 四.二维码相关
 
-### 1.二维码生成规则
+### 1.二维码生成规则 
 
->##### 二维码参数由三部分组成,各部分组成之间用下划线分割
->##### 项目标识 固定为lsmf 扫码成功后优先识别,项目标识不匹配时则return与提示msg
->##### 功能标识 用于识别二维码所属功能,用于后续跳转对应后续业务页面
->##### 参数 用于该功能所需参数
+>#### 二维码参数由三部分组成 
 
-    lsmf_chemicalsCabinet_17
-    项目标识_功能标识_参数
+##### 微信小程序二维码标识
+
+    需要在微信小程序后台开发配置中配置
+    同时需要在后台配置开发配置中配置 
+    两个配置需要完全一致
+    在用户登录后会存储在local storage中字段为'codeOnlineAdd'
+    
+##### 功能标识 
+
+    用于识别二维码所属功能,用于后续跳转对应后续业务页面
+    
+##### 参数
+
+    用于该功能所需参数
+    
+>##### 示例
+
+    http://lab.sxitdlc.com/labAppTest?chemicalsCabinet_17
+    微信小程序二维码标识?功能标识_参数
     
 ### 2.功能标识表
 
-|  功能标识   | 功能名称  |
-|  ----  | ----  |
-| chemicalsCabinet  | 化学品柜 |
-| trainingCourse  | 培训课程 |
+| 功能标识 | 功能名称 | 是否启用 | 备注 |
+|  ---- | ---- | ---- | ---- |
+| chemicalsCabinet | 化学品柜 | 已启用 |  |
+| trainingCourse | 培训课程 | 已启用 |  |
+| specialInspect | 专项检查 | 已启用 | 专项检查参数包含了2个字段用&分割 前者是危险源ID后者是与实验室绑定的设备ID |
+| laboratoryInspect | 实验室检查 | 未启用 | 等待V3版本优化 当前PC端&安卓机在展示,小程序-手持机在使用原二维码 |  |
+| laboratoryDetails | 实验室详情 | 未启用 | 等待V3版本优化 当前PC端&安卓机在展示,小程序-手持机在使用原二维码 |  |
+| hazardList | 危险源列表 | 未启用 | 等待V3版本优化 当前PC端&安卓机在展示,小程序对应入口可浏览危险源信息 |
+| safetySystem | 安全制度 | 未启用 | 等待V3版本优化 当前PC端&安卓机在展示,小程序对应入口可浏览危险源信息 |
+| msdsManual | MSDS说明书 | 未启用 | 等待V3版本优化 当前PC端&安卓机在展示,小程序对应入口可浏览危险源信息 |
+| rfidGasBottle | 气瓶二维码RFID标签 | 未启用 | 等待V3版本优化  |
 
     

+ 2 - 3
src/components/qrCodeDialog/index.vue

@@ -64,7 +64,7 @@
         dialogType:true,
         vueQrCodeData:null,
         vueQrImgType:false,
-        identification:'http://lab.sxitdlc.com/labAppTest?',            //二维码规则 服务器域名,需与微信后台开发配置内一致.
+        identification: localStorage.getItem('codeOnlineAdd'),            //二维码规则 服务器域名,需与微信后台开发配置内一致.
       }
     },
     created(){
@@ -76,8 +76,7 @@
     methods:{
       //初始化
       initialize(){
-        this.$set(this,'vueQrCodeData',
-        this.identification+this.qrCodeDialogData.type+'_'+this.qrCodeDialogData.parameter);
+        this.$set(this,'vueQrCodeData', this.identification+'?'+this.qrCodeDialogData.type+'_'+this.qrCodeDialogData.parameter);
         this.$set(this,'vueQrImgType',true);
       },
       buttonClick(type){

+ 33 - 1
src/views/comprehensive/laboratoryManagement/subject/associationConfiguration.vue

@@ -141,6 +141,9 @@
         <el-form-item label="" class="form-item" label-width="20px">
           <span class="del-hazard el-icon-error" style="line-height:40px;font-size:24px;" @click="delHazard(index)"></span>
         </el-form-item>
+        <el-form-item label="" class="form-item" v-if="item.xyId">
+          <p class="look-code-p" @click="qrCodeDialogButton(1,item.hazardId+'&'+item.xyId,item.anotherName+'-'+item.anotherCode)">查看二维码</p>
+        </el-form-item>
       </div>
       <div class="bottom-button-box">
         <p class="reset-button-one left-button" @click="backPage">取消</p>
@@ -195,12 +198,16 @@
         <el-form-item label="" class="form-item" label-width="20px">
           <span class="del-hazard el-icon-error" style="line-height:40px;font-size:24px;" @click="delHazard(index)"></span>
         </el-form-item>
+        <el-form-item label="" class="form-item" v-if="item.xyId">
+          <p class="look-code-p" @click="qrCodeDialogButton(1,item.hazardId+'&'+item.xyId,item.anotherName+'-'+item.anotherCode)">查看二维码</p>
+        </el-form-item>
       </div>
       <div class="bottom-button-box">
         <p class="reset-button-one left-button" @click="backPage">取消</p>
         <p class="inquire-button-one right-button" @click="upData">提交</p>
       </div>
     </el-form>
+    <qr-code-dialog v-if="qrCodeDialogType" :qrCodeDialogData="qrCodeDialogData"></qr-code-dialog>
   </div>
 </template>
 
@@ -208,11 +215,15 @@
   import { listHazard } from "@/api/permissionRequired";
   import { updateSubjectEditJoinHazard } from "@/api/laboratory/subject";
   import { getBottleInfo} from "@/api/gasManage3_0/gasManage";
+  import qrCodeDialog from "@/components/qrCodeDialog/index.vue"
   export default {
     name: "associationConfiguration",
     props:{
       subjectData:{},
     },
+    components: {
+      qrCodeDialog
+    },
     data() {
       return {
         onepcOutcheckIn:[],
@@ -230,10 +241,12 @@
           ],
         },
         hazardId:"",
+        //二维码组件参数
+        qrCodeDialogType:false,
+        qrCodeDialogData:{},
       }
     },
     created() {
-
     },
     mounted(){
       let self = this;
@@ -303,6 +316,7 @@
         for(let i=0;i<self.subjectData.labHazardList.length;i++){
           list.push({
             hazardId:self.subjectData.labHazardList[i].id,
+            xyId:self.subjectData.labHazardList[i].xyId,
             anotherName:self.subjectData.labHazardList[i].anotherName,
             anotherCode:self.subjectData.labHazardList[i].anotherCode
           })
@@ -312,6 +326,19 @@
       this.radioChange();
     },
     methods:{
+      //二维码组件开关
+      qrCodeDialogButton(type,id,name){
+        if(type == 1){
+          this.$set(this,'qrCodeDialogData',{
+            type:'chemicalsCabinet',          //二维码类型 用于区分二维码功能类型
+            parameter:id,                     //二维码参数
+            name:name,                        //二维码名称用于下载时命名
+          });
+          this.$set(this,'qrCodeDialogType',true);
+        }else{
+          this.$set(this,'qrCodeDialogType',false);
+        }
+      },
       //删除选中危险源
       delHazard(index){
         this.form.hazardRelations.splice(index, 1);
@@ -565,6 +592,11 @@
       display: inline-block;
       overflow: hidden;
       min-height:70px;
+      .look-code-p{
+        font-weight:500;
+        color:#0183fa;
+        cursor: pointer;
+      }
     }
     .hazard-for-box{
       .del-hazard{

+ 6 - 2
src/views/comprehensive/laboratoryManagement/subject/index.vue

@@ -132,10 +132,14 @@
           <div class="bottom-max-box" :class="rightButtonType == 4?'overflow-box':''">
             <div class="bottom-sensor-box" v-if="rightButtonType == 1">
               <p class="top-title">
-                <el-tooltip class="item" effect="dark" :content="checkedSubject.deptName" placement="bottom">
+                <el-tooltip class="item" effect="dark"
+                            v-if="checkedSubject.deptName"
+                            :content="checkedSubject.deptName" placement="bottom">
                   <i>{{checkedSubject.deptName}}</i>
                 </el-tooltip>
-                <el-tooltip class="item" effect="dark" :content="checkedSubject.subAddrr.buildName+checkedSubject.subAddrr.floorName" placement="bottom">
+                <el-tooltip class="item" effect="dark"
+                            v-if="checkedSubject.subAddrr.buildName && checkedSubject.subAddrr.floorName"
+                            :content="checkedSubject.subAddrr.buildName+checkedSubject.subAddrr.floorName" placement="bottom">
                   <i>当前位置:{{checkedSubject.subAddrr.buildName}}{{checkedSubject.subAddrr.floorName}}</i>
                 </el-tooltip>
               </p>

+ 32 - 34
src/views/comprehensive/system/publicConfig/exploitConfig.vue

@@ -7,7 +7,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="kkFile预览地址-外网:">
-          <el-input placeholder="请输入"  v-model="form.fileExtranetUrl">
+          <el-input placeholder="请输入"  v-model="form.fileExtranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">https://</template>
           </el-input>
         </el-form-item>
@@ -15,7 +15,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="kkFile预览地址-内网:">
-          <el-input placeholder="请输入"  v-model="form.fileIntranetUrl">
+          <el-input placeholder="请输入"  v-model="form.fileIntranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">http://</template>
           </el-input>
         </el-form-item>
@@ -27,7 +27,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="代理访问地址-外网:">
-          <el-input placeholder="请输入"  v-model="form.cameraExtranetAgent">
+          <el-input placeholder="请输入"  v-model="form.cameraExtranetAgent" style="width:400px;" maxLength="50">
             <template slot="prepend">https://</template>
           </el-input>
         </el-form-item>
@@ -35,7 +35,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="代理访问地址-内网:">
-          <el-input placeholder="请输入"  v-model="form.cameraIntranetAgent">
+          <el-input placeholder="请输入"  v-model="form.cameraIntranetAgent" style="width:400px;" maxLength="50">
             <template slot="prepend">http://</template>
           </el-input>
         </el-form-item>
@@ -43,14 +43,14 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="内网地址IP段:">
-          <el-input placeholder="请输入"  v-model="form.ipIdentify" style="width: 300px">
+          <el-input placeholder="请输入"  v-model="form.ipIdentify"  style="width:400px;" maxLength="50">
           </el-input>
         </el-form-item>
         <i class="tip"><i class="el-icon-question"></i>用于判断用户当前访问的是内网地址还是外网地址</i>
       </div>
       <div class="form-max-box">
         <el-form-item label="内网访问地址:">
-          <el-input placeholder="请输入"  v-model="form.cameraIntranetUrl">
+          <el-input placeholder="请输入"  v-model="form.cameraIntranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">http://</template>
           </el-input>
         </el-form-item>
@@ -58,7 +58,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="外网访问地址:">
-          <el-input placeholder="请输入"  v-model="form.cameraExtranetUrl">
+          <el-input placeholder="请输入"  v-model="form.cameraExtranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">https://</template>
           </el-input>
         </el-form-item>
@@ -70,7 +70,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="MQTT地址-外网:">
-          <el-input placeholder="请输入"  v-model="form.mqttExtranetUrl">
+          <el-input placeholder="请输入"  v-model="form.mqttExtranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">wss://</template>
           </el-input>
         </el-form-item>
@@ -78,25 +78,17 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="MQTT账号-外网:">
-          <el-input
-            v-model="form.mqttExtranetUser"
-            placeholder="请输入"
-            style="width: 290px"
-          />
+          <el-input v-model="form.mqttExtranetUser" placeholder="请输入" style="width:400px;" maxLength="50"/>
         </el-form-item>
       </div>
       <div class="form-max-box">
         <el-form-item label="MQTT密码-外网:">
-          <el-input
-            v-model="form.mqttExtranetPassword"
-            placeholder="请输入"
-            style="width: 290px"
-          />
+          <el-input v-model="form.mqttExtranetPassword" placeholder="请输入" style="width:400px;" maxLength="50"/>
         </el-form-item>
       </div>
       <div class="form-max-box">
         <el-form-item label="MQTT地址-内网:">
-          <el-input placeholder="请输入"  v-model="form.mqttIntranetUrl">
+          <el-input placeholder="请输入"  v-model="form.mqttIntranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">ws://</template>
           </el-input>
         </el-form-item>
@@ -104,20 +96,12 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="MQTT账号-内网:">
-          <el-input
-            v-model="form.mqttIntranetUser"
-            placeholder="请输入"
-            style="width: 290px"
-          />
+          <el-input v-model="form.mqttIntranetUser" placeholder="请输入" style="width:400px;" maxLength="50"/>
         </el-form-item>
       </div>
       <div class="form-max-box">
         <el-form-item label="MQTT密码-内网:">
-          <el-input
-            v-model="form.mqttIntranetPassword"
-            placeholder="请输入"
-            style="width: 290px"
-          />
+          <el-input v-model="form.mqttIntranetPassword" placeholder="请输入" style="width:400px" maxLength="50"/>
         </el-form-item>
       </div>
       <div class="line"></div>
@@ -126,7 +110,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="访问地址-外网:">
-          <el-input placeholder="请输入"  v-model="form.screenExtranetUrl">
+          <el-input placeholder="请输入"  v-model="form.screenExtranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">https://</template>
           </el-input>
         </el-form-item>
@@ -134,7 +118,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="访问地址-内网:">
-          <el-input placeholder="请输入"  v-model="form.screenIntranetUrl">
+          <el-input placeholder="请输入"  v-model="form.screenIntranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">http://</template>
           </el-input>
         </el-form-item>
@@ -142,7 +126,7 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="访问地址-外网:">
-          <el-input placeholder="请输入"  v-model="form.pcExtranetUrl">
+          <el-input placeholder="请输入"  v-model="form.pcExtranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">https://</template>
           </el-input>
         </el-form-item>
@@ -150,13 +134,23 @@
       </div>
       <div class="form-max-box">
         <el-form-item label="访问地址-内网:">
-          <el-input placeholder="请输入"  v-model="form.pcIntranetUrl">
+          <el-input placeholder="请输入"  v-model="form.pcIntranetUrl" style="width:400px;" maxLength="50">
             <template slot="prepend">http://</template>
           </el-input>
         </el-form-item>
         <i class="tip"><i class="el-icon-question"></i>跳转后台时访问的地址</i>
       </div>
-
+      <div class="line"></div>
+      <div class="title-box">
+        <p>微信小程序二维码配置</p>
+      </div>
+      <div class="form-max-box">
+        <el-form-item label="kkFile预览地址-外网:">
+          <el-input placeholder="请输入"  v-model="form.codeOnlineAdd" style="width:400px;" maxLength="50">
+          </el-input>
+        </el-form-item>
+        <i class="tip"><i class="el-icon-question"></i>用于微信外部扫一扫跳转指引,需与微信小程序后台二维码规则配置一致</i>
+      </div>
     </el-form>
     <div class="sub_btn">
       <p class="null-p"></p>
@@ -242,6 +236,10 @@
     display: flex;
     flex-direction: column;
     overflow: hidden;
+    ::v-deep .el-input-group__prepend{
+      padding:0 10px;
+      width:80px;
+    }
     .public-form-box{
       flex:1;
       overflow-y: scroll;

+ 6 - 1
src/views/login.vue

@@ -124,7 +124,7 @@ export default {
         }
       });
     },
-    //获取公共配置数据
+    //获取公共配置
     getLogoInfo(){
       getLogoInfo().then(response => {
         console.log('公共配置',response.data)
@@ -136,6 +136,7 @@ export default {
         localStorage.setItem('videoCover',response.data.videoCover)
       });
     },
+    //获取开发配置数据
     getUrlConfig(){
       getUrlConfig().then(response => {
         console.log('开发配置',response.data)
@@ -179,10 +180,14 @@ export default {
           //可视化大屏访问地址
           localStorage.setItem('screenUrl',urlText+response.data.screenIntranetUrl)
         }
+        //二维码连接地址
+        localStorage.setItem('codeOnlineAdd',response.data.codeOnlineAdd)
 
 
 
       });
+
+
     },
     getCode() {
       getCodeImg().then(res => {