From 6c3904eb35ce901890ca4230e0d34c27531d84dc Mon Sep 17 00:00:00 2001
From: qx <1084500556@qq.com>
Date: 星期二, 03 六月 2025 16:56:15 +0800
Subject: [PATCH] Merge branch 'master' of http://101.42.27.146:5001/r/ltkj_peisweb_region

---
 src/views/reservation/reservations/index.vue |  470 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 290 insertions(+), 180 deletions(-)

diff --git a/src/views/reservation/reservations/index.vue b/src/views/reservation/reservations/index.vue
index 616454e..ae2ed95 100644
--- a/src/views/reservation/reservations/index.vue
+++ b/src/views/reservation/reservations/index.vue
@@ -99,90 +99,113 @@
       v-show="showSearch"
       label-width="68px"
     >
-      <el-form-item label="濮撳悕" prop="name">
-        <el-input
-          style="width: 120px"
-          v-model="queryParams.name"
-          placeholder="璇疯緭鍏ュ鍚�"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="韬唤璇佸彿" prop="idCard">
-        <el-input
-          v-model="queryParams.idCard"
-          placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="鑱旂郴鐢佃瘽" prop="phoe">
-        <el-input
-          v-model="queryParams.phoe"
-          placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
-          clearable
-          @keyup.enter.native="handleQuery"
-          style="width: 140px"
-        />
-      </el-form-item>
-      <el-form-item label="鎵�鍦ㄥ湴" prop="szd">
-        <el-input
-          style="width: 120px"
-          v-model="queryParams.szd"
-          placeholder="璇疯緭鍏ユ墍鍦ㄥ湴"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="鍗曚綅鍚嶇О" prop="company">
-        <el-select
-          :remote-method="getRemoteData"
-          v-model="queryParams.company"
-          remote
-          default-first-option
-          allow-create
-          filterable
-          style="width: 200px"
-          placeholder="璇烽�夋嫨鍗曚綅鍚嶇О"
-          clearable
-          @change="idFn1"
-        >
-          <el-option
-            v-for="dict in CompanyList"
-            :key="dict.cnName"
-            :label="dict.cnName"
-            :value="dict.drugManufacturerId"
-          />
-        </el-select>
-        <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i>
-      </el-form-item>
-      <el-form-item label="棰勭害瓒呮湡" prop="isExpire">
-        <el-select
-          v-model="queryParams.isExpire"
-          placeholder="璇烽�夋嫨鏄惁瓒呮湡"
-          clearable
-          style="width: 140px"
-        >
-          <el-option
-            v-for="dict in options"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button
-          type="primary"
-          icon="el-icon-search"
-          size="mini"
-          @click="handleQuery"
-          >鎼滅储</el-button
-        >
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-          >閲嶇疆</el-button
-        >
-      </el-form-item>
+      <el-row>
+        <el-col>
+          <el-form-item label="濮撳悕" prop="name">
+            <el-input
+              style="width: 120px"
+              v-model="queryParams.name"
+              placeholder="璇疯緭鍏ュ鍚�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="韬唤璇佸彿" prop="idCard">
+            <el-input
+              v-model="queryParams.idCard"
+              placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鍗曚綅鍚嶇О" prop="company">
+            <el-select
+              :remote-method="getRemoteData"
+              v-model="queryParams.company"
+              remote
+              default-first-option
+              allow-create
+              filterable
+              style="width: 200px"
+              placeholder="璇烽�夋嫨鍗曚綅鍚嶇О"
+              clearable
+              @change="idFn1"
+            >
+              <el-option
+                v-for="dict in CompanyList"
+                :key="dict.cnName"
+                :label="dict.cnName"
+                :value="dict.drugManufacturerId"
+              />
+            </el-select>
+            <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i>
+          </el-form-item>
+          <el-form-item label="棰勭害鏃堕棿">
+            <el-date-picker
+              clearable
+              v-model="createTimeList"
+              @change="dateChangebirthday2"
+              type="daterange"
+              range-separator="-"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              :picker-options="pickerOptions"
+              value-format="yyyy-MM-dd"
+              placeholder="璇烽�夋嫨鍑洪绾︽椂闂�"
+              style="width: 300px"
+            >
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col>
+          <el-form-item label="鑱旂郴鐢佃瘽" prop="phoe">
+            <el-input
+              v-model="queryParams.phoe"
+              placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+              clearable
+              @keyup.enter.native="handleQuery"
+              style="width: 140px"
+            />
+          </el-form-item>
+          <el-form-item label="鎵�鍦ㄥ湴" prop="szd">
+            <el-input
+              style="width: 120px"
+              v-model="queryParams.szd"
+              placeholder="璇疯緭鍏ユ墍鍦ㄥ湴"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+
+          <el-form-item label="棰勭害瓒呮湡" prop="isExpire">
+            <el-select
+              v-model="queryParams.isExpire"
+              placeholder="璇烽�夋嫨鏄惁瓒呮湡"
+              clearable
+              style="width: 140px"
+            >
+              <el-option
+                v-for="dict in options"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              size="mini"
+              @click="handleQuery"
+              >鎼滅储</el-button
+            >
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+              >閲嶇疆</el-button
+            >
+          </el-form-item>
+        </el-col>
+      </el-row>
     </el-form>
     <el-row :gutter="10" style="margin: 10px 15px">
       <el-col :span="1.5">
@@ -873,9 +896,19 @@
                   "
                 >
                   <el-table :data="tableData1" border style="width: 100%">
-                    <el-table-column prop="proName" label="椤圭洰" width="180" align="center">
+                    <el-table-column
+                      prop="proName"
+                      label="椤圭洰"
+                      width="180"
+                      align="center"
+                    >
                     </el-table-column>
-                    <el-table-column prop="proType" label="鎬у埆" width="50" align="center">
+                    <el-table-column
+                      prop="proType"
+                      label="鎬у埆"
+                      width="50"
+                      align="center"
+                    >
                       <template slot-scope="scope">
                         <template v-if="isAll(scope.row.proType)">
                           鍏ㄩ儴
@@ -889,7 +922,11 @@
                       </template>
                     </el-table-column>
 
-                    <el-table-column prop="ordPrice" label="搴旀敹閲戦" align="center">
+                    <el-table-column
+                      prop="ordPrice"
+                      label="搴旀敹閲戦"
+                      align="center"
+                    >
                     </el-table-column>
                     <el-table-column label="鎶樻墸" width="160px" align="center">
                       <template slot-scope="scope">
@@ -903,14 +940,22 @@
                           :step="0.1"
                           :max="10"
                           :min="0"
-                          :disabled="true" 
+                          :disabled="true"
                         >
                         </el-input-number>
                       </template>
                     </el-table-column>
-                    <el-table-column prop="nowPrice" label="瀹炴敹閲戦" align="center">
+                    <el-table-column
+                      prop="nowPrice"
+                      label="瀹炴敹閲戦"
+                      align="center"
+                    >
                     </el-table-column>
-                    <el-table-column prop="proCheckMethod" label="鏄惁绌鸿吂" align="center">
+                    <el-table-column
+                      prop="proCheckMethod"
+                      label="鏄惁绌鸿吂"
+                      align="center"
+                    >
                       <template slot-scope="scope">
                         <dict-tag
                           :options="dict.type.sys_yes_no"
@@ -1095,7 +1140,7 @@
               </div>
             </el-col>
           </el-row>
-         
+
           <el-dialog
             title="瀵兼鍗曢瑙�"
             :visible.sync="dialogVisibles"
@@ -1113,7 +1158,6 @@
         </div>
       </template>
     </el-drawer>
-
 
     <el-dialog
       title="PDF 棰勮"
@@ -1153,7 +1197,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer2">
-        <el-button type="primary" @click="submitType"  >纭� 瀹�</el-button>
+        <el-button type="primary" @click="submitType">纭� 瀹�</el-button>
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
@@ -1627,9 +1671,19 @@
                   "
                 >
                   <el-table :data="tableData1" border style="width: 100%">
-                    <el-table-column prop="proName" label="椤圭洰" width="180" align="center">
+                    <el-table-column
+                      prop="proName"
+                      label="椤圭洰"
+                      width="180"
+                      align="center"
+                    >
                     </el-table-column>
-                    <el-table-column prop="proType" label="鎬у埆" width="50" align="center">
+                    <el-table-column
+                      prop="proType"
+                      label="鎬у埆"
+                      width="50"
+                      align="center"
+                    >
                       <template slot-scope="scope">
                         <template v-if="isAll(scope.row.proType)">
                           鍏ㄩ儴
@@ -1643,7 +1697,11 @@
                       </template>
                     </el-table-column>
 
-                    <el-table-column prop="ordPrice" label="搴旀敹閲戦" align="center">
+                    <el-table-column
+                      prop="ordPrice"
+                      label="搴旀敹閲戦"
+                      align="center"
+                    >
                     </el-table-column>
                     <el-table-column label="鎶樻墸" width="160px" align="center">
                       <template slot-scope="scope">
@@ -1657,14 +1715,22 @@
                           :step="0.1"
                           :max="10"
                           :min="0"
-                          :disabled="true" 
+                          :disabled="true"
                         >
                         </el-input-number>
                       </template>
                     </el-table-column>
-                    <el-table-column prop="nowPrice" label="瀹炴敹閲戦" align="center">
+                    <el-table-column
+                      prop="nowPrice"
+                      label="瀹炴敹閲戦"
+                      align="center"
+                    >
                     </el-table-column>
-                    <el-table-column prop="proCheckMethod" label="鏄惁绌鸿吂" align="center">
+                    <el-table-column
+                      prop="proCheckMethod"
+                      label="鏄惁绌鸿吂"
+                      align="center"
+                    >
                       <template slot-scope="scope">
                         <dict-tag
                           :options="dict.type.sys_yes_no"
@@ -1869,10 +1935,9 @@
 </template>
 
 <script>
-import { addComp,
-  addPlOrderAndDetail } from "@/api/system/comp";
+import { addComp, addPlOrderAndDetail } from "@/api/system/comp";
 import Big from "big.js";
-import { Loading } from 'element-ui';
+import { Loading } from "element-ui";
 import {
   listReservation,
   gettjCancel,
@@ -1950,7 +2015,7 @@
       url: "",
       open2: false,
       forms: {
-        tjCategory:"12"
+        tjCategory: "12",
       },
       dialogVisible: false,
       /** 鐓х浉鏈哄脊绐楁ā鍧�-start */
@@ -2009,7 +2074,7 @@
       // 鏄惁鏄剧ず寮瑰嚭灞�
 
       pacId: "",
-      cusIds:[],
+      cusIds: [],
       // 缁撴灉
       result: "",
       proIds: [],
@@ -2022,6 +2087,8 @@
         label: "proName",
       },
       formPacId: "",
+      createTimeList: "",
+      startTime: "",
       dXData: [],
       // 鏌ヨ鍙傛暟
       queryParam: {
@@ -2196,6 +2263,37 @@
         //   },
         // ],
       },
+        pickerOptions: {
+        shortcuts: [
+          {
+            text: "鏈�杩戜竴鍛�",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date(new Date().setHours(0, 0, 0, 0));
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "鏈�杩戜竴涓湀",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date(new Date().setHours(0, 0, 0, 0));
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "鏈�杩戜笁涓湀",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date(new Date().setHours(0, 0, 0, 0));
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
     };
   },
   created() {
@@ -2313,9 +2411,22 @@
         });
       }
     },
+    dateChangebirthday2(val) {
+      this.startTime = val;
+    },
     /** 鏌ヨ浣撴棰勭害鍒楄〃 */
     getList() {
       this.loading = true;
+      if (this.startTime) {
+        this.queryParams.yykssj = this.startTime[0];
+        this.queryParams.yyjssj = this.startTime[1];
+      } else if (this.createTimeList) {
+        this.queryParams.yykssj = this.createTimeList[0];
+        this.queryParams.yyjssj = this.createTimeList[1];
+      } else if (this.createTimeList == null) {
+        this.queryParams.yykssj = null;
+        this.queryParams.yyjssj = null;
+      }
       listReservation(this.queryParams).then((response) => {
         this.reservationList = response.rows;
         //  response.rows.forEach((item, index) =>
@@ -2699,104 +2810,105 @@
       this.open2 = true;
     },
 
-
     submitType() {
       // let cusIds = [];
       // this.selectList.forEach((item) => {
       //   cusIds.push(item.idCard);
       // });
-      let loadingInstance1 = Loading.service({ fullscreen: true,text:"绛惧埌涓�" });
+      let loadingInstance1 = Loading.service({
+        fullscreen: true,
+        text: "绛惧埌涓�",
+      });
       let data = {
         cusIds: this.cusIds,
         tjCategory: this.forms.tjCategory,
       };
       this.open2 = false;
       addPlOrderAndDetail(data).then((res) => {
-        if(res.code == 200){
+        if (res.code == 200) {
           this.open2 = false;
-        this.$modal.msgSuccess("绛惧埌鎴愬姛");
-        if (res.file) {
-          let base64 = res.file;
-          this.base64ToBlob({
-            b64data: base64,
-            contentType: "application/pdf",
-          }).then((res) => {
-            this.dialogVisible = true;
-            // 杞悗鍚庣殑blob瀵硅薄
-            try {
-              this.url = res.preview;
-            } catch (error) {
-              this.url = window.webkitURL.createObjectURL(res.preview);
+          this.$modal.msgSuccess("绛惧埌鎴愬姛");
+          if (res.file) {
+            let base64 = res.file;
+            this.base64ToBlob({
+              b64data: base64,
+              contentType: "application/pdf",
+            }).then((res) => {
+              this.dialogVisible = true;
+              // 杞悗鍚庣殑blob瀵硅薄
+              try {
+                this.url = res.preview;
+              } catch (error) {
+                this.url = window.webkitURL.createObjectURL(res.preview);
+              }
+            });
+          } else {
+            let _this = this;
+            this.$nextTick(() => {
+              // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+              loadingInstance1.close();
+            });
+            var websocket = null;
+            var url = _this.valueUrls;
+            if ("WebSocket" in window) {
+              websocket = new WebSocket(url);
+            } else if ("MozWebSocket" in window) {
+              websocket = new MozWebSocket(url);
+            } else {
             }
-          });
-        }else{
-          let _this = this;
-          this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
-            loadingInstance1.close();
-});
-        var websocket = null;
-        var url = _this.valueUrls;
-        if ("WebSocket" in window) {
-          websocket = new WebSocket(url);
-        } else if ("MozWebSocket" in window) {
-          websocket = new MozWebSocket(url);
-        } else {
-        }
-        if (websocket == null) {
-          alert("11111");
-        }
-        websocket.onopen = function () {
-          try {
-            // 杩炴帴璁惧
-            var jsonObjs = {
-              type: 4,
-              data: res,
-            };
-            var jStrs = JSON.stringify(jsonObjs);
-            websocket.send(jStrs);
-          } catch (err) {
-            var tryTime = 0;
-            // 閲嶈瘯10娆★紝姣忔涔嬮棿闂撮殧3绉�
-            if (tryTime < 1) {
-              var t1 = setTimeout(function () {
-                tryTime++;
+            if (websocket == null) {
+              alert("11111");
+            }
+            websocket.onopen = function () {
+              try {
+                // 杩炴帴璁惧
                 var jsonObjs = {
                   type: 4,
                   data: res,
                 };
                 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.cardreader = false;
-        };
+              } catch (err) {
+                var tryTime = 0;
+                // 閲嶈瘯10娆★紝姣忔涔嬮棿闂撮殧3绉�
+                if (tryTime < 1) {
+                  var t1 = setTimeout(function () {
+                    tryTime++;
+                    var jsonObjs = {
+                      type: 4,
+                      data: res,
+                    };
+                    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.cardreader = false;
+            };
 
-        //杩炴帴鍙戠敓閿欒鐨勫洖璋冩柟娉�
-        websocket.onerror = function () {
-          alert("璇锋鏌ヨ繛鎺ユ槸鍚︽甯�");
-        };
-     
-    
-          this.getList()
-        }
-        }else{
-          this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+            //杩炴帴鍙戠敓閿欒鐨勫洖璋冩柟娉�
+            websocket.onerror = function () {
+              alert("璇锋鏌ヨ繛鎺ユ槸鍚︽甯�");
+            };
+
+            this.getList();
+          }
+        } else {
+          this.$nextTick(() => {
+            // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
             loadingInstance1.close();
-});
+          });
         }
-       
       });
     },
-
 
     base64ToBlob({ b64data = "", contentType = "", sliceSize = 512 } = {}) {
       return new Promise((resolve, reject) => {
@@ -3223,8 +3335,6 @@
   height: 700px;
   overflow: hidden;
 }
-
-
 
 #printIframe::-webkit-scrollbar {
   width: 6px;

--
Gitblit v1.8.0