From db8f49a69a6f4e5e91ddc337b7c87d782997c974 Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期四, 24 十月 2024 09:11:51 +0800
Subject: [PATCH] lkk 10.24

---
 src/views/system/tijian/index.vue |  317 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 299 insertions(+), 18 deletions(-)

diff --git a/src/views/system/tijian/index.vue b/src/views/system/tijian/index.vue
index a77240f..f84b262 100644
--- a/src/views/system/tijian/index.vue
+++ b/src/views/system/tijian/index.vue
@@ -1320,6 +1320,31 @@
         </el-table>
       </div>
     </el-dialog>
+    <el-dialog
+      title="鎻愮ず"
+      :visible.sync="cardreader"
+      width="30%"
+      :close-on-press-escape="false"
+      :close-on-click-modal="false"
+    >
+      <template>
+        <el-radio-group v-model="cardreaderradio" @input="changeradio">
+          <el-radio :label="3">韬唤璇�</el-radio>
+          <el-radio :label="6">鍋ュ悍鐮�</el-radio>
+        </el-radio-group>
+        <div style="margin-top: 10px" v-show="cardreaderradio == 6">
+          <el-input
+            v-model="inputSSS"
+            ref="tableHeadFilterInp"
+            placeholder="璇疯緭鍏ュ唴瀹�"
+          ></el-input>
+        </div>
+      </template>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="cardreader = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="cardreadercopes">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
     <div style="position: absolute; bottom: 100px; width: 360px; display: none">
       <div
         id="printBill"
@@ -1355,12 +1380,7 @@
       </span> -->
     <!-- </el-dialog> -->
     <historyTj :cusIdCard="form.cusIdcard" ref="historyTj"></historyTj>
-    <el-dialog
-      title="鎻愮ず"
-      :visible.sync="dialogVisiblese"
-      width="30%"
-      :before-close="handleClose"
-    >
+    <el-dialog title="鎻愮ず" :visible.sync="dialogVisiblese" width="30%">
       <span>鏄惁澶嶅埗鏈�杩戜竴娆$殑浣撴椤圭洰锛�</span>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisiblese = false">鍙� 娑�</el-button>
@@ -1381,7 +1401,8 @@
   getByTjNum,
 } from "@/api/hosp/customer";
 import { getPrintSetUp } from "@/api/system/examcharge";
-
+import axios from "axios";
+import { getIp } from "@/utils/auth";
 import {
   deptTreeSelect,
   projectGetList,
@@ -1398,6 +1419,7 @@
   getIsRequired,
   getconfigKey,
   getHistryTjOrderProByCusIdCard,
+  readCertCardInfos,
 } from "@/api/system/tijian";
 import Packages from "@/components/Packages";
 import { MessageBox } from "element-ui";
@@ -1439,11 +1461,13 @@
       proIdList: [],
       tableDatas: [],
       dialogVisiblese: false,
+      cardreaderradio: 3,
       lishi: false,
       table: false,
       HistoryList: {},
       index: 0,
       names: "",
+      inputSSS: "",
       dictType: [
         {
           value: 0,
@@ -1549,6 +1573,7 @@
       ids: [],
       // 闈炲崟涓鐢�
       single: true,
+      cardreader: false,
       // 闈炲涓鐢�
       multiple: true,
       nodeobj: {},
@@ -1591,6 +1616,8 @@
         pacRemark: null,
       },
       valueUrl: "ws://127.0.0.1:18890",
+      valueUrls: "ws://127.0.0.1:6789/websocket",
+      // valueUrls: "ws://"+getIp() +":6789/websocket",
       WebSocket: null,
       // 韬唤璇侀渶瑕�
       // socket: null,
@@ -1655,11 +1682,11 @@
   },
   created() {
     this.getCurrentDateTime();
-
     this.startTimer();
     this.getList1();
     // this.getData();
   },
+
   methods: {
     getCurrentDateTime() {
       const currentDate = new Date();
@@ -2350,9 +2377,257 @@
               this.$refs.aaa.open = true;
               this.$refs.aaa.getAllList();
               this.$refs.aaa.title = "璇佷欢瀛楀吀";
+            } else if (res.msg == "S") {
+              this.cardreader = true;
+              _this.cardreaderradio = 3;
+              _this.inputSSS = "";
+              // let url = window.location.protocol + "//" + window.location.host;
+              // console.log(url);
+              // axios
+              //   .get("http://localhost:81/dev-api/readCertCardInfos")
+              //   .then((res) => {
+              //     console.log(res);
+              //   })
+              //   .catch((err) => {
+              //     console.log(err);
+              //   });
+
+              // readCertCardInfos().then((res) => {
+              //   _this.form.cusName = res.data.name;
+              //       _this.form.cusSex =
+              //       res.data.sex;
+              //       _this.form.cusNational = res.data.mz;
+              //       _this.form.cusBrithday = res.data.csrq;
+              //       if (_this.form.cusBrithday) {
+              //         _this.form.cusBrithday = _this.form.cusBrithday.replace(
+              //           /^(\d{4})(\d{2})(\d{2})$/,
+              //           "$1-$2-$3"
+              //         );
+              //       }
+              //       _this.form.cusAddr = res.data.addres;
+              //       _this.form.cusIdcard = res.data.card;
+              // });
             }
           }
         });
+      }
+    },
+    changeradio() {
+      if (this.cardreaderradio != 3) {
+        this.$nextTick(() => {
+          this.$refs.tableHeadFilterInp.focus();
+        });
+      }
+    },
+    cardreadercopes() {
+      let _this = this;
+
+      if (this.cardreaderradio == 3) {
+        var websocket = null;
+        var url = this.valueUrls;
+        // var url = 'ws://'+ getIp() +':6789/websocket'
+        if ("WebSocket" in window) {
+          websocket = new WebSocket(url);
+        } else if ("MozWebSocket" in window) {
+          websocket = new MozWebSocket(url);
+        } else {
+          // console.log("SockJS");
+        }
+        if (websocket == null) {
+          alert("11111");
+        }
+        websocket.onopen = function () {
+          try {
+            // 杩炴帴璁惧
+            var jsonObjs = {
+              type: 1,
+              data: {},
+            };
+            var jStrs = JSON.stringify(jsonObjs);
+            websocket.send(jStrs);
+          } catch (err) {
+            var tryTime = 0;
+            // 閲嶈瘯10娆★紝姣忔涔嬮棿闂撮殧3绉�
+            if (tryTime < 1) {
+              var t1 = setTimeout(function () {
+                tryTime++;
+                var jsonObjs = {
+                  type: 1,
+                  data: {},
+                };
+                var jStrs = JSON.stringify(jsonObjs);
+                websocket.send(jStrs);
+              }, 1 * 1000);
+            } else {
+              console.error("閲嶈繛澶辫触.");
+            }
+          }
+        };
+        websocket.onclose = function () {
+          alert("璇诲崱鍣ㄨ繛鎺ュ叧闂�");
+        };
+        websocket.onmessage = function (event) {
+          var resultObj = JSON.parse(event.data);
+          _this.form.cusName = resultObj.data.name;
+          _this.form.cusSex = resultObj.data.sex;
+          _this.form.cusNational = resultObj.data.mz;
+          _this.form.cusBrithday = resultObj.data.csrq;
+          if (_this.form.cusBrithday) {
+            _this.form.cusBrithday = _this.form.cusBrithday.replace(
+              /^(\d{4})(\d{2})(\d{2})$/,
+              "$1-$2-$3"
+            );
+          }
+          _this.form.cusIdcard = resultObj.data.card;
+          if (_this.form.cusIdcard) {
+            const reg =
+              /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
+            if (reg.test(_this.form.cusIdcard)) {
+              var org_birthday = _this.form.cusIdcard.substring(6, 14);
+              var birthday =
+                org_birthday.substring(0, 4) +
+                "-" +
+                org_birthday.substring(4, 6) +
+                "-" +
+                org_birthday.substring(6, 8);
+              var birthdays = new Date(birthday.replace(/-/g, "-"));
+              let d = new Date();
+              let age =
+                d.getFullYear() -
+                birthdays.getFullYear() -
+                (d.getMonth() < birthdays.getMonth() ||
+                (d.getMonth() == birthdays.getMonth() &&
+                  d.getDate() < birthdays.getDate())
+                  ? 1
+                  : 0);
+
+              _this.form.age = age;
+            }
+          }
+          _this.form.cusAddr = resultObj.data.addres;
+         
+          _this.cardreader = false;
+        };
+
+        //杩炴帴鍙戠敓閿欒鐨勫洖璋冩柟娉�
+        websocket.onerror = function () {
+          alert("璇锋鏌ヨ鍗″櫒杩炴帴鏄惁姝e父");
+        };
+      } else {
+        // if (_this.inputSSS.indexOf(":1") != -1) {
+
+        //   var str1 = _this.inputSSS.indexOf(":1");
+        //   var result1 = _this.inputSSS.substring(0, str1);
+
+        //   var str2 = _this.inputSSS.indexOf(":1");
+        //   var result2 = _this.inputSSS.substring(
+        //     str2 + 2,
+        //     _this.inputSSS.length
+        //   );
+
+        //   _this.inputSSS = result1 + result2;
+        // }
+        _this.inputSSS = _this.inputSSS.replace(":1", "");
+        var websocket = null;
+        var url = this.valueUrls;
+        // var url = 'ws://'+ getIp() +':6789/websocket'
+        if ("WebSocket" in window) {
+          websocket = new WebSocket(url);
+        } else if ("MozWebSocket" in window) {
+          websocket = new MozWebSocket(url);
+        } else {
+          // console.log("SockJS");
+        }
+        if (websocket == null) {
+          alert("11111");
+        }
+        websocket.onopen = function () {
+          try {
+            // 杩炴帴璁惧
+            var jsonObjs = {
+              type: 2,
+              data: {
+                qrcode: _this.inputSSS,
+              },
+            };
+            var jStrs = JSON.stringify(jsonObjs);
+            websocket.send(jStrs);
+          } catch (err) {
+            var tryTime = 0;
+            // 閲嶈瘯10娆★紝姣忔涔嬮棿闂撮殧3绉�
+            if (tryTime < 1) {
+              var t1 = setTimeout(function () {
+                tryTime++;
+                var jsonObjs = {
+                  type: 2,
+                  data: {
+                    qrcode: _this.inputSSS,
+                  },
+                };
+                var jStrs = JSON.stringify(jsonObjs);
+                websocket.send(jStrs);
+              }, 1 * 1000);
+            } else {
+              console.error("閲嶈繛澶辫触.");
+            }
+          }
+        };
+        websocket.onclose = function () {
+          alert("璇诲崱鍣ㄨ繛鎺ュ叧闂�");
+        };
+        websocket.onmessage = function (event) {
+          var resultObj = JSON.parse(event.data);
+          _this.form.cusName = resultObj.data.name;
+       
+          if( resultObj.data.nation == "姹夋棌"){
+            _this.form.cusNational ="1";
+          }
+          if(resultObj.data.gender == "鐢�"){
+            _this.form.cusSex = 0;
+          }else{
+            _this.form.cusSex = 1;
+          }
+          _this.form.cusBrithday = resultObj.data.birthday;
+          if (_this.form.cusBrithday) {
+            _this.form.cusBrithday = _this.form.cusBrithday.replace(
+              /^(\d{4})(\d{2})(\d{2})$/,
+              "$1-$2-$3"
+            );
+          }
+          _this.form.cusPhone = resultObj.data.phone;
+          _this.form.cusIdcard = resultObj.data.idenno;
+          if (_this.form.cusIdcard) {
+            const reg =
+              /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
+            if (reg.test(_this.form.cusIdcard)) {
+              var org_birthday = _this.form.cusIdcard.substring(6, 14);
+              var birthday =
+                org_birthday.substring(0, 4) +
+                "-" +
+                org_birthday.substring(4, 6) +
+                "-" +
+                org_birthday.substring(6, 8);
+              var birthdays = new Date(birthday.replace(/-/g, "-"));
+              let d = new Date();
+              let age =
+                d.getFullYear() -
+                birthdays.getFullYear() -
+                (d.getMonth() < birthdays.getMonth() ||
+                (d.getMonth() == birthdays.getMonth() &&
+                  d.getDate() < birthdays.getDate())
+                  ? 1
+                  : 0);
+
+              _this.form.age = age;
+            }
+          }
+          _this.cardreader = false;
+        };
+
+        //杩炴帴鍙戠敓閿欒鐨勫洖璋冩柟娉�
+        websocket.onerror = function () {
+          alert("璇锋鏌ヨ鍗″櫒杩炴帴鏄惁姝e父");
+        };
       }
     },
 
@@ -2559,7 +2834,7 @@
         this.tableData.forEach((item) => {
           this.tableData1.forEach((item1) => {
             item.tjProjectList.forEach((item2) => {
-              console.log(item1)
+              console.log(item1);
               if (item2.proId == item1.proPrantId && item1.pacName == "鍗曢」") {
                 this.$confirm(
                   "璇ュ椁愬寘鍚簡宸查�夊崟椤癸紝鏄惁纭閫夋嫨璇ュ椁愶紵",
@@ -2572,14 +2847,14 @@
                 )
                   .then(() => {
                     this.$message({
-                        type: "success",
-                        message: "璇锋敞鎰忔煡鐪嬩环鏍�",
-                      });
+                      type: "success",
+                      message: "璇锋敞鎰忔煡鐪嬩环鏍�",
+                    });
                   })
                   .catch((action) => {
                     if (action === "cancel") {
                       let del_row = selection.shift();
-                      this.$refs.tb.toggleRowSelection(del_row, false); 
+                      this.$refs.tb.toggleRowSelection(del_row, false);
                       this.$message({
                         type: "warning",
                         message: "宸插彇娑�",
@@ -2632,11 +2907,11 @@
     handleClick(tab, event) {
       if (this.activeNames == "second") {
         this.DataList = [];
-        this.checkedkey= [];
+        this.checkedkey = [];
         this.getDataList();
       } else if (this.activeNames == "third") {
         this.DataLists = [];
-        this.checkedkeys= [];
+        this.checkedkeys = [];
         getZhList().then((response) => {
           if (response.data) {
             this.packageList = response.data;
@@ -3415,11 +3690,17 @@
   width: 100%;
   display: flex;
 }
-
 .tab3 {
-  max-height: 400px;
+  border: 1px solid #dcdfe6;
+}
+
+.filter-tree {
+  /* max-height: 360px;
   overflow-y: auto;
-  border: 1px solid #d9d9d9;
+  border: 1px solid #d9d9d9; */
+  overflow: auto;
+  flex: 1;
+  height: 350px;
 }
 
 .tab2 {

--
Gitblit v1.8.0