From b06a903d08d6f5432105d12686ccaf074b45323a Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期四, 24 十月 2024 08:58:35 +0800
Subject: [PATCH] lkk 10.24

---
 src/views/system/bill/index.vue          |  466 ++++++++++------
 dist.zip                                 |    0 
 vue.config.js                            |    3 
 src/views/hosp/history/index.vue         |    9 
 src/views/system/tijian/index.vue        |    3 
 src/views/system/user/index.vue          |    4 
 src/views/doctor/checkAll/index.vue      |  209 ++++++-
 src/views/hosp/order/index.vue           |    7 
 src/api/sampling/sampling.js             |   39 +
 package.json                             |    1 
 src/components/jianqianwenzhen/index.vue |  120 ++-
 src/views/system/biol/index.vue          |    2 
 src/api/doctor/checkAll.js               |    9 
 src/views/hosp/customer/index.vue        |   11 
 src/views/sampling/sampling/index.vue    |  490 ++++++++++++++++-
 src/views/doctor/bgsh/index.vue          |  208 ++++++-
 16 files changed, 1,208 insertions(+), 373 deletions(-)

diff --git a/dist.zip b/dist.zip
index ab4f73e..b19637d 100644
--- a/dist.zip
+++ b/dist.zip
Binary files differ
diff --git a/package.json b/package.json
index e3e97e0..4d4fb32 100644
--- a/package.json
+++ b/package.json
@@ -48,6 +48,7 @@
     "highlight.js": "9.18.5",
     "js-beautify": "1.13.0",
     "js-cookie": "3.0.1",
+    "jsbarcode": "^3.11.6",
     "jsencrypt": "3.0.0-rc.1",
     "moment": "^2.29.4",
     "nprogress": "0.2.0",
diff --git a/src/api/doctor/checkAll.js b/src/api/doctor/checkAll.js
index 690d0a3..de7fa9e 100644
--- a/src/api/doctor/checkAll.js
+++ b/src/api/doctor/checkAll.js
@@ -9,6 +9,15 @@
   })
 }
 
+// 浣撴绉戝鍒楄〃鏄剧ず鎺ュ彛
+export function getBghsList(query) {
+  return request({
+    url: '/check/getBghsList',
+    method: 'get',
+    params: query
+  })
+}
+
 //鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏
 export function getupdateCheckType(tjNumber) {
   return request({
diff --git a/src/api/sampling/sampling.js b/src/api/sampling/sampling.js
index 578a4cb..deee9d8 100644
--- a/src/api/sampling/sampling.js
+++ b/src/api/sampling/sampling.js
@@ -12,9 +12,27 @@
 // 鏌ヨ浣撴閲囨牱绠$悊鍒楄〃
 export function getList(query) {
     return request({
-        url: '/sampling/sampling/getList',
+        url: '/sampling/sampling/getCusList',
         method: 'get',
         params: query
+    })
+}
+
+// export function getCusCyList(cusId) {
+//     return request({
+//         url: '/sampling/sampling/getCusCyList?cusId=' + cusId,
+//         method: 'get'
+//     })
+// }
+
+export function getCusCyList(cusId, isSignFor) {
+    return request({
+        url: '/sampling/sampling/getCusCyList',
+        method: 'get',
+        params: {
+            cusId: cusId,
+            isSignFor: isSignFor
+        }
     })
 }
 
@@ -60,3 +78,22 @@
         method: 'delete'
     })
 }
+
+
+// 閲囨牱鐧昏鍚堝苟椤圭洰鎺ュ彛
+export function mergeCaiYang(data) {
+    return request({
+        url: '/sampling/sampling/mergeCaiYang',
+        method: 'post',
+        data: data
+    })
+}
+
+// 鎾ら攢閲囨牱鐧昏鍚堝苟椤圭洰鎺ュ彛
+export function chexiaoCaiYang(data) {
+    return request({
+        url: '/sampling/sampling/chexiaoCaiYang',
+        method: 'post',
+        data: data
+    })
+}
\ No newline at end of file
diff --git a/src/components/jianqianwenzhen/index.vue b/src/components/jianqianwenzhen/index.vue
index 5b28fb0..c82e398 100644
--- a/src/components/jianqianwenzhen/index.vue
+++ b/src/components/jianqianwenzhen/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div>
-    <span class="txt">闂瘖淇℃伅</span>
+    <span class="txt"></span>
     <el-form
       ref="form"
       :model="form"
@@ -274,21 +274,21 @@
               </el-table-column>
               <el-table-column label="鐤剧梾id" prop="icdId" v-if="false">
                 <!-- <template slot-scope="scope"> -->
-                  <el-select
-                    :remote-method="getRemoteData"
-                    v-model="icdId"
-                    remote
-                    filterable
-                    placeholder="璇烽�夋嫨鐥呯鍚�"
-                    clearable
-                  >
-                    <el-option
-                      v-for="dict in rulesList"
-                      :key="dict.id"
-                      :label="dict.icdname"
-                      :value="dict.id"
-                    />
-                  </el-select>
+                <el-select
+                  :remote-method="getRemoteData"
+                  v-model="icdId"
+                  remote
+                  filterable
+                  placeholder="璇烽�夋嫨鐥呯鍚�"
+                  clearable
+                >
+                  <el-option
+                    v-for="dict in rulesList"
+                    :key="dict.id"
+                    :label="dict.icdname"
+                    :value="dict.id"
+                  />
+                </el-select>
                 <!-- </template> -->
               </el-table-column>
               <el-table-column label="鐤剧梾鍚嶇О" prop="diseaseName">
@@ -436,21 +436,21 @@
               </el-table-column>
               <el-table-column label="鐤剧梾id" prop="icdId" v-if="false">
                 <!-- <template slot-scope="scope"> -->
-                  <el-select
-                    :remote-method="getRemoteData"
-                    v-model="icdId"
-                    remote
-                    filterable
-                    placeholder="璇烽�夋嫨鐥呯鍚�"
-                    clearable
-                  >
-                    <el-option
-                      v-for="dict in rulesList"
-                      :key="dict.id"
-                      :label="dict.icdname"
-                      :value="dict.id"
-                    />
-                  </el-select>
+                <el-select
+                  :remote-method="getRemoteData"
+                  v-model="icdId"
+                  remote
+                  filterable
+                  placeholder="璇烽�夋嫨鐥呯鍚�"
+                  clearable
+                >
+                  <el-option
+                    v-for="dict in rulesList"
+                    :key="dict.id"
+                    :label="dict.icdname"
+                    :value="dict.id"
+                  />
+                </el-select>
                 <!-- </template> -->
               </el-table-column>
               <el-table-column label="鐤剧梾鍚嶇О" prop="diseaseName">
@@ -699,8 +699,8 @@
       }
     };
     return {
-      zhiyebingshi:true,
-      jiwangbingshi:true,
+      zhiyebingshi: true,
+      jiwangbingshi: true,
       diseaseNames: "",
       zhenghuzangList: [],
       options: [
@@ -821,6 +821,10 @@
             if (this.form.yinjiuyear == null) {
               this.form.yinjiuyear = "0";
             }
+            // 璁剧疆榛樿鍊�
+            if (this.form.gongLing == null) {
+              this.form.gongLing = 1; // 宸ラ緞榛樿鍊�
+            }
             this.form.tjAskHistorysList = response.data.tjAskHistorysList;
             // this.isdisabled= true
           });
@@ -843,15 +847,15 @@
           } else {
             this.sex = false;
           }
-         if (this.form.tjLx === "02") {
-              this.zhiye = true;
-              this.zhiyebingshi = true;
-              this.jiwangbingshi = false;
-            } else {
-              this.zhiye = false;
-              this.zhiyebingshi = false;
-              this.jiwangbingshi = true;
-            }
+          if (this.form.tjLx === "02") {
+            this.zhiye = true;
+            this.zhiyebingshi = true;
+            this.jiwangbingshi = false;
+          } else {
+            this.zhiye = false;
+            this.zhiyebingshi = false;
+            this.jiwangbingshi = true;
+          }
           if (this.form.xiyan == null) {
             this.form.xiyan = "1";
           }
@@ -968,11 +972,11 @@
           this.icdId = item.id;
         }
       });
-      this.form.tjAskHistorysList.forEach(item => {
-        if(item.diseaseName == sel){
-          item.icdId =  this.icdId
+      this.form.tjAskHistorysList.forEach((item) => {
+        if (item.diseaseName == sel) {
+          item.icdId = this.icdId;
         }
-      })
+      });
     },
     // 鎼滅储
     getRemoteData(query) {
@@ -1025,7 +1029,7 @@
       this.chageall = selection;
     },
     /** 鎻愪氦鎸夐挳 */
-    submitForm() {
+    /* submitForm() {
       // this.form.tjAskHistorysList.forEach(element=>{
       //   element.icdId = this.icdId;
       // })
@@ -1033,7 +1037,27 @@
         this.$modal.msgSuccess("淇敼鎴愬姛");
         this.form = response.data;
       });
-    },
+    }, */
+    submitForm() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.$emit('submitLoading', true);
+          updateHistory(this.form)
+            .then((response) => {
+              this.$message.success("淇敼鎴愬姛");
+              this.form = response.data; // 鏇存柊琛ㄥ崟鏁版嵁
+            })
+            .catch((error) => {
+              this.$message.error("淇敼澶辫触");
+            })
+            .finally(() => {
+              this.$emit('submitLoading', false);
+            });
+        } else {
+          this.$message.error("璇锋鏌ヨ〃鍗曞唴瀹�");
+        }
+      });
+    }
   },
 };
 </script>
diff --git a/src/views/doctor/bgsh/index.vue b/src/views/doctor/bgsh/index.vue
index 1a3692f..e615e8c 100644
--- a/src/views/doctor/bgsh/index.vue
+++ b/src/views/doctor/bgsh/index.vue
@@ -1,49 +1,132 @@
 <template>
   <div>
-    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
+    <el-form
+      :model="queryParams"
+      ref="tableList"
+      :inline="true"
+      label-width="76px"
+      style="margin-top: 10px"
+    >
       <el-form-item label="濮撳悕" prop="name">
-        <el-input v-model="queryParams.name" style="width: 120px" placeholder="璇疯緭鍏ュ鍚�" clearable
-          @keyup.enter.native="handleQuery"></el-input>
+        <el-input
+          v-model="queryParams.name"
+          style="width: 120px"
+          placeholder="璇疯緭鍏ュ鍚�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        ></el-input>
       </el-form-item>
       <el-form-item label="浣撴鍙�" prop="tjNumber">
-        <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable
-          @keyup.enter.native="submitForm" @blur="hb"></el-input>
+        <el-input
+          ref="inputName"
+          v-model="queryParams.tjNumber"
+          style="width: 180px"
+          placeholder="璇疯緭鍏ヤ綋妫�鍙�"
+          clearable
+          @keyup.enter.native="submitForm"
+          @blur="hb"
+        ></el-input>
       </el-form-item>
       <el-form-item label="浣撴鏃堕棿" prop="tjTime">
-        <el-date-picker v-model="startTime" type="datetimerange" align="right" :picker-options="pickerOptions"
-          style="width: 310px" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" :default-time="['00:00:00', '23:00:00']"
-          format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1">
-        </el-date-picker> </el-form-item>
-      <el-form-item label="鍗曚綅鍚嶇О" prop="tjCompName" style="margin-left: 20px;">
-        <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
-          style="width: 180px" remote filterable placeholder="璇烽�夋嫨鍗曚綅鍚嶇О" clearable @change="searchSelect">
-          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
+        <el-date-picker
+          v-model="startTime"
+          type="datetimerange"
+          align="right"
+          :picker-options="pickerOptions"
+          style="width: 310px"
+          start-placeholder="寮�濮嬫棩鏈�"
+          end-placeholder="缁撴潫鏃ユ湡"
+          :default-time="['00:00:00', '23:00:00']"
+          format="yyyy-MM-dd HH:mm"
+          value-format="yyyy-MM-dd HH:mm"
+          @change="dateChangebirthday1"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item
+        label="鍗曚綅鍚嶇О"
+        prop="tjCompName"
+        style="margin-left: 20px"
+      >
+        <el-select
+          :remote-method="getRemoteData"
+          v-model="queryParams.tjCompName"
+          value-key="drugManufacturerId"
+          style="width: 180px"
+          remote
+          filterable
+          placeholder="璇烽�夋嫨鍗曚綅鍚嶇О"
+          clearable
+          @change="searchSelect"
+        >
+          <el-option
+            v-for="dict in CompanyList"
+            :key="dict.drugManufacturerId"
+            :label="dict.cnName"
+            :value="dict"
+          />
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" size="mini" @click="submitForm"  style="margin-right:15px;">鎼滅储</el-button>
+        <el-button
+          type="primary"
+          size="mini"
+          @click="submitForm"
+          style="margin-right: 15px"
+          >鎼滅储</el-button
+        >
         <el-button size="mini" @click="resetQuery">閲嶇疆</el-button>
       </el-form-item>
     </el-form>
 
-
-    <el-row :gutter="10" class="mb8" style="margin-left:14px ;">
+    <el-row :gutter="10" class="mb8" style="margin-left: 14px">
       <el-col :span="1.5">
-        <el-button type="primary" size="mini" @click="radioChange" >鏍告敹</el-button>
+        <el-button type="primary" size="mini" @click="radioChange"
+          >鏍告敹</el-button
+        >
       </el-col>
     </el-row>
 
     <template>
-      <el-table v-loading="loading" :data="checkList" ref="table" border @selection-change="handleSelectionChange"
-        style="margin: 20px; width: 98%">
-        <el-table-column type="selection" width="40px" align="center" fixed="left" />
+      <el-table
+        v-loading="loading"
+        :data="checkList"
+        ref="table"
+        border
+        @selection-change="handleSelectionChange"
+        style="margin: 20px; width: 98%"
+      >
+        <el-table-column
+          type="selection"
+          width="40px"
+          align="center"
+          fixed="left"
+        />
         <!-- <template slot="empty">鏁版嵁姝e湪鍔犺浇涓�</template> -->
-        <el-table-column label="浣撴鍙�" align="center" prop="tjNumber" :show-overflow-tooltip="true" width="160px"
-          fixed="left" />
-        <el-table-column label="濮撳悕" align="center" prop="cusName" :show-overflow-tooltip="true" width="100px"
-          fixed="left" />
+        <el-table-column
+          label="浣撴鍙�"
+          align="center"
+          prop="tjNumber"
+          :show-overflow-tooltip="true"
+          width="160px"
+          fixed="left"
+        />
+        <el-table-column
+          label="濮撳悕"
+          align="center"
+          prop="cusName"
+          :show-overflow-tooltip="true"
+          width="100px"
+          fixed="left"
+        />
 
-        <el-table-column label="鎬у埆" align="center" prop="cusSex" :show-overflow-tooltip="true" width="55px">
+        <el-table-column
+          label="鎬у埆"
+          align="center"
+          prop="cusSex"
+          :show-overflow-tooltip="true"
+          width="55px"
+        >
           <template slot-scope="scope">
             <span v-if="scope.row.cusSex == '0'">鐢�</span>
             <span v-if="scope.row.cusSex == '1'">濂�</span>
@@ -51,23 +134,63 @@
             <span v-if="scope.row.cusSex == '9'">鏈鏄庢�у埆</span>
           </template>
         </el-table-column>
-        <el-table-column label="鍑虹敓鏃ユ湡" align="center" prop="cusBrithday" :show-overflow-tooltip="true" width="110px" />
-        <el-table-column label="鐢佃瘽" align="center" prop="cusPhone" :show-overflow-tooltip="true" width="130px" />
+        <el-table-column
+          label="鍑虹敓鏃ユ湡"
+          align="center"
+          prop="cusBrithday"
+          :show-overflow-tooltip="true"
+          width="110px"
+        />
+        <el-table-column
+          label="鐢佃瘽"
+          align="center"
+          prop="cusPhone"
+          :show-overflow-tooltip="true"
+          width="130px"
+        />
 
-        <el-table-column label="浣撴鏃堕棿" align="center" prop="tjTime" :show-overflow-tooltip="true" width="110px" />
-        <el-table-column label="瀹屾垚鏃堕棿" align="center" prop="finishTime" :show-overflow-tooltip="true" width="160px" />
-        <el-table-column label="鐘舵��" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="50px">
+        <el-table-column
+          label="浣撴鏃堕棿"
+          align="center"
+          prop="tjTime"
+          :show-overflow-tooltip="true"
+          width="110px"
+        />
+        <el-table-column
+          label="瀹屾垚鏃堕棿"
+          align="center"
+          prop="finishTime"
+          :show-overflow-tooltip="true"
+          width="160px"
+        />
+        <el-table-column
+          label="鐘舵��"
+          align="center"
+          prop="tjStatus"
+          :show-overflow-tooltip="true"
+          width="50px"
+        >
           <template slot-scope="scope">
             <span>{{ scope.row.tjStatus == "1" ? "宸叉" : "鏈" }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="tjCompName" :show-overflow-tooltip="true" />
+        <el-table-column
+          label="鍗曚綅鍚嶇О"
+          align="center"
+          prop="tjCompName"
+          :show-overflow-tooltip="true"
+        />
       </el-table>
 
       <div class="pag">
         <div class="pag1">
-          <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize"
-            @pagination="getList" />
+          <pagination
+            v-show="total > 0"
+            :total="total"
+            :page.sync="queryParams.page"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
         </div>
       </div>
     </template>
@@ -76,7 +199,7 @@
   
 
 <script>
-import { getcheckList, heXiaoByIds } from "@/api/doctor/checkAll";
+import { getBghsList, heXiaoByIds } from "@/api/doctor/checkAll";
 import { getCompany, queryCompany } from "@/api/team/tuanti";
 import ViewPdf from "@/components/ViewPdf";
 import { getNewDateList } from "@/api/hosp/order";
@@ -153,7 +276,7 @@
 
   created() {
     // this.getNowTime();
-    
+
     this.getdate();
   },
 
@@ -216,7 +339,7 @@
       }
 
       // 椤甸潰鏁版嵁
-      getcheckList(this.queryParams).then((response) => {
+      getBghsList(this.queryParams).then((response) => {
         if (response.code == 200) {
           this.loading = false;
           if (response.data) {
@@ -231,7 +354,6 @@
             this.checkList = [];
           }
         }
-
       }),
         // 鑾峰彇鍗曚綅淇℃伅闆嗗悎
         getCompany(this.queryParam).then((response) => {
@@ -247,12 +369,12 @@
 
     // 鍗曢�夋寜閽�
     radioChange() {
+      this.loading = true;
       heXiaoByIds(this.orderIds).then((response) => {
-        if(response.code == 200){
+        if (response.code == 200) {
           this.$modal.msgSuccess("鎶ュ憡宸叉牳鏀讹紒璇峰墠寰�鎶ュ憡鎵撳嵃椤甸潰鏌ョ湅锛�");
           this.getList();
         }
-        
       });
     },
 
@@ -275,9 +397,9 @@
     dateChangebirthday1(val) {
       this.startTime = val;
     },
-    hb(){
+    hb() {
       console.log(this.queryParams.tjNumber);
-       if (this.queryParams.tjNumber != "") {
+      if (this.queryParams.tjNumber != "") {
         this.submitForm();
       }
     },
@@ -295,7 +417,7 @@
       }
 
       // 椤甸潰鏁版嵁
-      getcheckList(this.queryParams).then((response) => {
+      getBghsList(this.queryParams).then((response) => {
         if (response.data.customers != null) {
           this.checkList = response.data.customers;
           this.checkList.forEach((item) => {
@@ -310,7 +432,7 @@
     },
     // 閲嶇疆
     resetQuery() {
-      this.startTime=[]
+      this.startTime = [];
       this.resetForm("tableList");
       this.submitForm();
     },
diff --git a/src/views/doctor/checkAll/index.vue b/src/views/doctor/checkAll/index.vue
index b01db8c..ef48f09 100644
--- a/src/views/doctor/checkAll/index.vue
+++ b/src/views/doctor/checkAll/index.vue
@@ -493,9 +493,7 @@
               </div>
               <div v-else>
                 <table style="width: 100%" v-if="tjproject != '1'">
-                  <tr
-                    style="border: 1px solid #dfe6ec; "
-                  >
+                  <tr style="border: 1px solid #dfe6ec">
                     <td
                       style="
                         border: 1px solid #dfe6ec;
@@ -506,7 +504,10 @@
                     >
                       妫�鏌ユ墍瑙侊細
                     </td>
-                    <td style="border: 1px solid #dfe6ec; height: 52px;" colspan="2">
+                    <td
+                      style="border: 1px solid #dfe6ec; height: 52px"
+                      colspan="2"
+                    >
                       <textarea
                         placeholder="璇疯緭鍏ュ唴瀹�"
                         :autosize="{ minRows: 3, maxRows: 4 }"
@@ -1151,6 +1152,9 @@
   name: "checkAll",
   data() {
     return {
+      // 鏇存柊鎬绘寤鸿
+      initialTotalCheckAdvice: "",
+      initialState: "",
       preObj: {},
       baogao: [],
       flags: false,
@@ -1698,6 +1702,21 @@
       }
     },
 
+    /*  changRed(row) {
+      if (row.label === "鈫�") {
+        return {
+          color: "green", // 璁剧疆涓婄澶翠负缁胯壊
+        };
+      } else if (row.label === "鈫�") {
+        return {
+          color: "red", // 璁剧疆涓嬬澶翠负绾㈣壊
+        };
+      }
+      // 榛樿棰滆壊
+      return {
+        color: "black",
+      };
+    }, */
     handleCurrentChange(val) {
       if (val != null) {
         this.handleClick(val);
@@ -1709,15 +1728,7 @@
       this.$refs.Pre.open = false;
       this.tableAll = row;
       this.tjproject = "0";
-      // if (this.tableAll.cusSex === 0) {
-      //   this.tableAll.cusSex = "鐢�";
-      // }
-      // if (this.tableAll.cusSex === 1) {
-      //   this.tableAll.cusSex = "濂�";
-      // }
-      // if (this.tableAll.cusSex === 2) {
-      //   this.tableAll.cusSex = "鏈煡";
-      // }
+
       this.tjNumber = this.tableAll.tjNumber;
       getState(this.tjNumber).then((res) => {
         this.status = res.data;
@@ -1737,8 +1748,17 @@
                   this.changedate = response.data;
                   if (this.changedate) {
                     this.changedate.forEach((item) => {
-                      this.textarea1 = item.checkAdvice;
+                      this.textarea1 = item.checkAdvice || "";
                     });
+
+                    // 杩欓噷璁剧疆鍒濆鍊�
+                    this.initialTotalCheckAdvice = this.textarea1; // 淇濆瓨鎬绘寤鸿
+
+                    // 淇濆瓨鍒濆鐘舵��
+                    this.initialState = JSON.parse(
+                      JSON.stringify(this.changedate)
+                    );
+
                     for (let i = 0; i < this.changedate.length; i++) {
                       this.remark = this.changedate[i].remark;
                     }
@@ -1791,8 +1811,12 @@
                         for (let i = 0; i < this.changedate.length; i++) {
                           this.remark = this.changedate[i].remark;
                         }
+                        this.initialState = JSON.parse(
+                          JSON.stringify(this.changedate)
+                        );
+
                         this.changedate.forEach((item) => {
-                          this.textarea1 = item.checkAdvice;
+                          this.textarea1 = item.checkAdvice || "";
 
                           // this.remark = item.remark;
                           // item.sons.forEach((item3) => {
@@ -1805,6 +1829,11 @@
                           // });
                           // item.remark = "";
                         });
+
+                        // 淇濆瓨鎬绘寤鸿
+                        this.totalCheckAdvice = this.changedate.map(
+                          (item) => item.totalCheckAdvice
+                        );
                       } else {
                         this.$message({
                           type: "warning ",
@@ -1855,29 +1884,44 @@
       if (this.loading) {
         return;
       }
-      this.$confirm("纭畾瑕佹彁浜ゅ悧锛�")
-        .then((_) => {
-          this.loading = true;
-          this.timer = setTimeout(() => {
-            done();
-            this.determine();
-            // 鍔ㄧ敾鍏抽棴闇�瑕佷竴瀹氱殑鏃堕棿
-            setTimeout(() => {
-              this.loading = false;
-            }, 400);
-          }, 2000);
-        })
-        .catch((_) => {
-          this.drawer = false;
-          let data = {
-            userId: this.userId,
-            tjNumber: this.tjNumber,
-            state: 1,
-            id: this.MsgId,
-          };
-          getfiedState(data).then((res) => {});
-          this.submitForm();
-        });
+
+      // 妫�鏌ユ槸鍚︽湁淇敼
+      let isModified =
+        JSON.stringify(this.changedate) !== JSON.stringify(this.initialState) ||
+        (this.textarea1 !== this.initialTotalCheckAdvice &&
+          this.textarea1 !== null);
+      console.log("Initial Total Check Advice:", this.initialTotalCheckAdvice);
+
+      console.log("Current textarea1:", this.textarea1);
+      if (isModified) {
+        // 濡傛灉鏈変慨鏀癸紝寮瑰嚭纭妗�
+        this.$confirm("妫�娴嬪唴瀹规湁淇敼锛岀‘瀹氳鎻愪氦鍚楋紵")
+          .then(() => {
+            this.loading = true;
+            this.timer = setTimeout(() => {
+              done();
+              this.determine();
+              setTimeout(() => {
+                this.loading = false;
+              }, 400);
+            }, 2000);
+          })
+          .catch(() => {
+            // 鐢ㄦ埛鍙栨秷鎿嶄綔
+            this.drawer = false;
+            let data = {
+              userId: this.userId,
+              tjNumber: this.tjNumber,
+              state: 1,
+              id: this.MsgId,
+            };
+            getfiedState(data).then((res) => {});
+            this.submitForm();
+          });
+      } else {
+        // 濡傛灉娌℃湁淇敼锛岀洿鎺ュ叧闂�
+        done();
+      }
     },
     handleClose1() {
       this.jianqians = false;
@@ -1904,7 +1948,7 @@
     //   }
     // },
     change(vale) {},
-    determine() {
+   /*  determine() {
       let tjNumber = this.tableAll.tjNumber;
       let advice = this.textarea1;
       let data = {
@@ -1912,6 +1956,7 @@
         advice,
         checkStatus: 1,
       };
+      this.loading = true;
       getTjdetailList(data).then((response) => {
         if (response.code === 200) {
           this.$modal.msgSuccess("鎻愪氦鎴愬姛");
@@ -1930,7 +1975,7 @@
               this.$modal.msgError(
                 "鎵撳嵃鎶ュ憡澶辫触锛岃鍓嶅線鎶ュ憡鎵撳嵃椤甸潰琛ユ墦鎶ュ憡锛�"
               );
-            });
+            })
           getfiedState(data).then((res) => {
             this.drawer = false;
           });
@@ -1938,7 +1983,6 @@
           this.queryParams.pageSize = 10;
           this.submitForm();
           this.$forceUpdate();
-        }
       });
 
       for (let i = 0; i < this.changedate.length; i++) {
@@ -1958,6 +2002,89 @@
       //   this.proIds = item.parentId;
       //   // this.remark = item.remark;
       // });
+    }, */
+    determine() {
+      let tjNumber = this.tableAll.tjNumber;
+      let advice = this.textarea1;
+      let data = {
+        tjNumber,
+        advice,
+        checkStatus: 1,
+      };
+
+      // 寮�濮嬪姞杞�
+      this.loading = true;
+
+      // 鎻愪氦鏁版嵁
+      getTjdetailList(data)
+        .then((response) => {
+          if (response.code === 200) {
+            this.$modal.msgSuccess("鎻愪氦鎴愬姛");
+
+            // 鍑嗗鐢熸垚鎶ュ憡鐨勮姹傛暟鎹�
+            let reportData = {
+              userId: this.userId,
+              tjNumber: tjNumber,
+              state: 1,
+              id: this.MsgId,
+            };
+
+            // 鐢熸垚鎶ュ憡骞朵繚鎸� loading 鎵撳紑
+            const reportPromise = gettoPdf(tjNumber)
+              .then((res) => {
+                this.$modal.msgSuccess("宸茬敓鎴愭姤鍛婏紒璇峰墠寰�鎶ュ憡鏍告敹椤甸潰纭锛�");
+              })
+              .catch((error) => {
+                this.$modal.msgError(
+                  "鎵撳嵃鎶ュ憡澶辫触锛岃鍓嶅線鎶ュ憡鎵撳嵃椤甸潰琛ユ墦鎶ュ憡锛�"
+                );
+              });
+
+            // 鏇存柊鐘舵�佸苟鎻愪氦淇敼璇锋眰
+            const statePromise = getfiedState(reportData).then((res) => {
+              this.drawer = false;
+            });
+
+            // 澶勭悊鍏朵粬淇敼鎿嶄綔
+            const updatePromises = this.changedate.map((item) => {
+              this.proIds = item.parentId;
+              let remarks = item.remark;
+              let updateOrderRemarkVos = [
+                {
+                  tjNumber,
+                  proId: this.proIds.toString(),
+                  remarks,
+                },
+              ];
+              return getModified(updateOrderRemarkVos); // 杩斿洖 Promise
+            });
+
+            // 绛夊緟鎵�鏈夎姹傚畬鎴�
+            Promise.all([reportPromise, statePromise, ...updatePromises])
+              .then(() => {
+                // 鎵�鏈夎姹傚畬鎴愶紝鍏抽棴 loading
+                this.loading = false;
+                // 鏇存柊鍒嗛〉淇℃伅
+                this.queryParams.page = 1;
+                this.queryParams.pageSize = 10;
+                this.submitForm();
+                this.$forceUpdate();
+              })
+              .catch((error) => {
+                // 澶勭悊閿欒鎯呭喌
+                this.loading = false;
+                console.error("鍙戠敓閿欒:", error);
+              });
+          } else {
+            // 鎻愪氦澶辫触锛屽叧闂� loading
+            this.loading = false;
+          }
+        })
+        .catch((error) => {
+          // 鎻愪氦璇锋眰澶辫触锛屽叧闂� loading
+          this.loading = false;
+          console.error("鎻愪氦璇锋眰澶辫触:", error);
+        });
     },
   },
 };
diff --git a/src/views/hosp/customer/index.vue b/src/views/hosp/customer/index.vue
index f7ae839..a783e3d 100644
--- a/src/views/hosp/customer/index.vue
+++ b/src/views/hosp/customer/index.vue
@@ -17,17 +17,6 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <!-- <el-form-item label="鎬у埆" prop="cusSex">
-        <el-select v-model="queryParams.cusSex" placeholder="璇烽�夋嫨鎬у埆" clearable style="width:120px">
-          <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value"/>
-        </el-select>
-      </el-form-item> -->
-      <!-- <el-form-item label="鍑虹敓鏃ユ湡" prop="cusBrithday">
-        <el-date-picker clearable v-model="queryParams.cusBrithday" type="date" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨鍑虹敓鏃ユ湡"></el-date-picker>
-      </el-form-item> -->
-      <!-- <el-form-item label="鐜颁綇鍧�" prop="cusAddr">
-        <el-input v-model="queryParams.cusAddr" placeholder="璇疯緭鍏ョ幇灞呬綇鍦板潃" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item> -->
       <el-form-item label="鑱旂郴鐢佃瘽" prop="cusPhone">
         <el-input
           v-model="queryParams.cusPhone"
diff --git a/src/views/hosp/history/index.vue b/src/views/hosp/history/index.vue
index 24f32e0..154a1d9 100644
--- a/src/views/hosp/history/index.vue
+++ b/src/views/hosp/history/index.vue
@@ -138,7 +138,7 @@
         </div>
       </div>
       <div class="hist3">
-        <jianqianwenzhen :jianqianwenzhendata="jianqianwenzhendata"></jianqianwenzhen>
+        <jianqianwenzhen @submitLoading="handleLoading" :jianqianwenzhendata="jianqianwenzhendata"></jianqianwenzhen>
       </div>
     </div>
 
@@ -217,6 +217,7 @@
       activeName: "1",
       // 閬僵灞�
       loading: true,
+      tableLoading: false,
       isdisabled: false,
       // 閫変腑鏁扮粍
       ids: [],
@@ -404,6 +405,8 @@
       });
       let tjNumber = selection.map((item) => item.tjNumber);
       this.jianqianwenzhendata = tjNumber;
+      
+      
       // getInfoById(tjNumber).then((response) => {
       //   this.jianqianwenzhendata = response.data;
       //   if (this.form.xiyan == null) {
@@ -436,7 +439,9 @@
       }
     },
 
-   
+    handleLoading(isLoading) {
+      this.loading = isLoading;
+    }
 
     
 
diff --git a/src/views/hosp/order/index.vue b/src/views/hosp/order/index.vue
index 5ea424e..a2d0947 100644
--- a/src/views/hosp/order/index.vue
+++ b/src/views/hosp/order/index.vue
@@ -246,8 +246,9 @@
           :show-overflow-tooltip="true"
         >
           <template slot-scope="scope">
-            <span v-if="scope.row.tjType == '2'">涓汉</span>
-            <span v-if="scope.row.tjType == '1'">鍥㈤槦</span>
+            <dict-tag :options="dict.type.dict_team" :value="scope.row.tjType" />
+            <!-- <span v-if="scope.row.tjType == '2'">涓汉</span>
+            <span v-if="scope.row.tjType == '1'">鍥㈤槦</span> -->
           </template>
         </el-table-column>
         <el-table-column
@@ -1425,7 +1426,7 @@
   components: {
     ViewPdf,
   },
-  dicts: ["dict_pay_type"],
+  dicts: ["dict_pay_type","dict_team"],
   name: "Order",
   data() {
     return {
diff --git a/src/views/sampling/sampling/index.vue b/src/views/sampling/sampling/index.vue
index 29cedaf..2d42182 100644
--- a/src/views/sampling/sampling/index.vue
+++ b/src/views/sampling/sampling/index.vue
@@ -67,13 +67,13 @@
           @click="handleQuery"
           >鏌ヨ</el-button
         >
-        <el-button
+        <!-- <el-button
           type="primary"
           icon="el-icon-thumb"
           size="mini" style="margin:0 15px;"
           @click="Confirmreceipt"
           >纭閲囨牱</el-button
-        >
+        > -->
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
           >閲嶇疆</el-button
         >
@@ -90,9 +90,43 @@
           <el-radio-button label="0">宸查噰鏍�</el-radio-button>
         </el-radio-group>
       </el-col>
-      <el-col :span="12" v-if="tableList.length > 1 && tjStatus == 0">
-        <el-button type="primary" plain v-hasPermi="['hosp:detail:add']"
-          >鍚堝苟鏍锋湰</el-button
+      <el-col
+        :span="12"
+        style="margin: 10px 15px"
+        v-if="samplingList.length > 0 && tjStatus == 1"
+      >
+        <el-button type="primary" @click="Merging">鍚堝苟椤圭洰</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-thumb"
+          style="margin: 0 15px"
+          v-hasPermi="['hosp:detail:add']"
+          @click="Confirmreceipt"
+          >纭閲囨牱</el-button
+        >
+        <el-button type="primary" :disabled="!disabled" @click="Cancellation"
+          >鎾ら攢鍚堝苟</el-button
+        >
+        <el-button
+          type="primary"
+          :disabled="!selectList.length"
+          @click="Collection"
+          >閲囨牱鎵撶爜</el-button
+        >
+      </el-col>
+      <el-col
+        :span="12"
+        style="margin: 10px 15px"
+        v-show="samplingList.length > 0 && tjStatus == 0"
+      >
+        <el-button
+          type="primary"
+          :disabled="!selectList.length"
+          @click="Collection"
+          >琛ユ墦鏉$爜</el-button
+        >
+        <el-button type="primary" :disabled="!disabled" @click="Cancellation"
+          >鎾ら攢鍚堝苟</el-button
         >
       </el-col>
     </el-row>
@@ -101,7 +135,7 @@
       <div style="width: 40%; margin-right: 20px">
         <el-table
           id="ta"
-          v-loading="loading"
+          v-loading="loading1"
           ref="tb"
           :data="samplingList"
           @selection-change="handleSelectionChange"
@@ -113,19 +147,19 @@
           <el-table-column
             label="浣撴鍙�"
             align="center"
-            prop="customer.tjNumber"
+            prop="tjNumber"
             width="160px"
           />
           <el-table-column
             label="濮撳悕"
             align="center"
-            prop="customer.cusName"
+            prop="cusName"
             width="80px"
           />
           <el-table-column
             label="鎬у埆"
             align="center"
-            prop="customer.cusSex"
+            prop="cusSex"
             width="60px"
           >
             <!-- <template slot-scope="scope">
@@ -140,17 +174,17 @@
           <el-table-column
             label="鎵嬫満鍙�"
             align="center"
-            prop="customer.cusPhone"
+            prop="cusPhone"
             width="120px"
           />
           <el-table-column
             label="鐢宠鏃堕棿"
             align="center"
-            prop="customer.applicationTime"
+            prop="applicationTime"
             width="210"
           >
             <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.customer.applicationTime) }}</span>
+              <span>{{ parseTime(scope.row.applicationTime) }}</span>
             </template>
           </el-table-column>
         </el-table>
@@ -180,34 +214,37 @@
             prop="specimenType"
             width="120"
           >
-            <template slot-scope="scope">
-              <dict-tag
-                :options="dict.type.sys_dict_specimen"
-                :value="scope.row.specimenType"
-              />
-            </template>
           </el-table-column>
-          <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" />
           <el-table-column
+            label="閲囨牱缂栧彿"
+            align="center"
+            prop="jyxh"
+            :show-overflow-tooltip="true"
+            width="120"
+          />
+          <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" />
+          <!-- <el-table-column
             label="鎬у埆"
             align="center"
             prop="proSex"
             width="90"
-          />
+          /> -->
           <el-table-column
-            label="绌鸿吂"
+            label="鏄惁鍚堝苟"
             align="center"
-            prop="proCheckMethod"
+            prop="isMerge"
             width="90"
-          />
-          <el-table-column
-            label="閲囨牱缂栧彿"
-            align="center"
-            prop="samplingNumber"
-            :show-overflow-tooltip="true"
-            width="120"
-          />
-          <el-table-column
+          >
+            <template slot-scope="scope">
+              <span
+                :style="{ color: scope.row.isMerge === 0 ? '' : '#409EFF' }"
+              >
+                {{ scope.row.isMerge === 0 ? "鏈悎骞�" : "宸插悎骞�" }}
+              </span>
+            </template>
+          </el-table-column>
+
+          <!-- <el-table-column
             label="閲囨牱鐘舵��"
             align="center"
             prop="isSignFor"
@@ -219,7 +256,7 @@
                 :value="scope.row.isSignFor"
               />
             </template>
-          </el-table-column>
+          </el-table-column> -->
           <!-- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
                 <template slot-scope="scope">
                     <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
@@ -231,6 +268,29 @@
                 </template>
             </el-table-column> -->
         </el-table>
+      </div>
+
+      <div id="printSection" style="display: none">
+        <!-- 鍔ㄦ�佺敓鎴愬涓潯褰㈢爜鐨勫鍣� -->
+        <div v-for="(item, index) in selectList" :key="index">
+          <svg :id="'barcode' + index"></svg>
+          <div class="name">{{ item.proName }}</div>
+          <div class="last">
+            <p>{{ item.cusName }}</p>
+            <div>
+              <span>{{ item.customer.cusSex == 0 ? "鐢�" : "濂�" }}</span>
+              <span>{{ item.customer.age }}</span>
+            </div>
+          </div>
+          <div class="tj">
+            <span>浣撴涓績</span>
+            <span>{{ item.cardId.substring(0, 14) }}</span>
+          </div>
+          <div class="tj">
+            <span>{{ item.jyxh }}</span>
+            <span>{{ formatDate(item.applicationTime) }}</span>
+          </div>
+        </div>
       </div>
     </div>
     <!-- 
@@ -284,9 +344,13 @@
   addSampling,
   updateSampling,
   confirmSampling,
+  getCusCyList,
+  mergeCaiYang,
+  chexiaoCaiYang,
 } from "@/api/sampling/sampling";
 import { getNewDateList } from "@/api/hosp/order";
 import moment from "moment";
+import ItemVue from "../../../layout/components/Sidebar/Item.vue";
 
 export default {
   dicts: [
@@ -300,10 +364,12 @@
   data() {
     return {
       list: [],
-      selectList: "",
+      selectList: [],
+      selectedRows: [],
       createTimeList: [],
       // 閬僵灞�
       loading: true,
+      loading1: true,
       // 閫変腑鏁扮粍
       ids: [],
       // 缁戝畾鍗曢�夋寜閽�
@@ -380,13 +446,21 @@
   },
   created() {
     // this.getNowTime();
-   
+
     this.getdate();
   },
   mounted() {
     this.$nextTick(() => {
       this.$refs.inputName.focus();
     });
+  },
+  computed: {
+    disabled() {
+      return (
+        this.selectList.length > 0 &&
+        this.selectList[this.selectList.length - 1].isMerge === 1
+      );
+    },
   },
   methods: {
     getdate() {
@@ -429,19 +503,53 @@
     dateChangebirthday1(val) {
       this.createTimeList = val;
     },
+    formatDate(applicationTime) {
+      // 纭繚 applicationTime 鏄湁鏁堢殑瀛楃涓�
+      if (applicationTime) {
+        return applicationTime.split(" ")[0]; // 閫氳繃绌烘牸鍒嗛殧鏃ユ湡鍜屾椂闂达紝鍙繑鍥炴棩鏈熼儴鍒�
+      }
+      return ""; // 濡傛灉 applicationTime 鏃犳晥锛岃繑鍥炵┖瀛楃涓�
+    },
     /** 鏌ヨ浣撴閲囨牱绠$悊鍒楄〃 */
     getList() {
-      this.loading = true;
+      this.loading1 = true;
       this.queryParams.isSignFor = this.tjStatus;
-      if(this.createTimeList){
+
+      if (this.createTimeList) {
         this.queryParams.beginTime = this.createTimeList[0];
-      this.queryParams.endTime = this.createTimeList[1];
-      }else if(this.createTimeList == null){
+        this.queryParams.endTime = this.createTimeList[1];
+      } else if (this.createTimeList == null) {
         this.queryParams.beginTime = null;
-      this.queryParams.endTime = null;
+        this.queryParams.endTime = null;
       }
-     
       getList(this.queryParams).then((response) => {
+        this.loading1 = false;
+        if (response.data) {
+          if (!response.data.list || response.data.list.length === 0) {
+            this.samplingList = [];
+            this.tableList = [];
+            this.loading1 = false;
+            this.loading = false;
+            return;
+          } else {
+            this.samplingList = response.data.list;
+            console.log(this.samplingList, 888);
+            // 鍒ゆ柇鏄惁闇�瑕佸埛鏂板彸杈硅〃鏍�
+            this.$nextTick(() => {
+              this.$refs.tb.toggleRowSelection(this.samplingList[0], true);
+              this.fetchData(this.samplingList[0].cusId);
+            });
+          }
+          this.total = response.data.total;
+          this.loading1 = false;
+        } else {
+          this.samplingList = [];
+          this.tableList = [];
+          this.loading1 = false;
+        }
+      });
+
+      /* getList(this.queryParams).then((response) => {
         if (response.data) {
           if (response.data.list == null) {
             this.samplingList = [];
@@ -449,6 +557,8 @@
             this.loading = false;
           } else {
             this.samplingList = response.data.list;
+            console.log(this.samplingList,888);
+            
             this.loading = false;
             if (this.samplingList.length != 0) {
               this.$nextTick(() => {
@@ -465,9 +575,8 @@
           this.tableList = [];
           this.loading = false;
         }
-      });
+      }); */
     },
-
     // 鍙栨秷鎸夐挳
     cancel() {
       this.open = false;
@@ -506,15 +615,17 @@
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
-      this.createTimeList=[]
+      this.createTimeList = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },
     // 鍗曢�夋閫変腑鏁版嵁
-    handleSelectionChange(selection) {
+    /* handleSelectionChange(selection) {
       this.selectList = selection;
       selection.forEach((element) => {
         this.tableList = element.list;
+        console.log(this.tableList, 111);
+
         if (this.tableList.length != 0) {
           this.$nextTick(() => {
             this.$refs.tab1.toggleAllSelection(this.tableList, true);
@@ -530,7 +641,272 @@
       }
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+    }, */
+
+    handleSelectionChange(selection) {
+      // 娓呯┖鍙充晶琛ㄦ牸鐨勬暟鎹�
+      this.tableList = [];
+
+      // 鍙湁涓�涓汉琚�変腑鏃惰繘琛屾搷浣�
+      if (selection.length === 1) {
+        const selectedPerson = selection[0]; // 鑾峰彇閫変腑鐨勯偅涓汉
+        const cusId = selectedPerson.cusId; // 鍋囪cusId鍦ㄩ�変腑鐨勫璞′腑
+
+        this.fetchData(cusId);
+      } else {
+        // 濡傛灉閫変腑澶氫汉锛屽垯鍙栨秷閫変腑
+        if (selection.length > 1) {
+          let del_row = selection.shift();
+          this.$refs.tb.toggleRowSelection(del_row, false); // 璁剧疆杩欎竴琛屽彇娑堥�変腑
+        }
+      }
+
+      // 鏇存柊閫夋嫨鐘舵��
+      this.single = selection.length === 1;
+      this.multiple = selection.length === 0;
+
+      this.selectedRows = selection;
     },
+
+    fetchData(cusId) {
+      this.loading = true; // 鏄剧ず鍔犺浇鐘舵��
+
+      console.log(this.tjStatus, 999);
+
+      getCusCyList(cusId, this.tjStatus) // 璋冪敤API鑾峰彇鏁版嵁
+        .then((response) => {
+          if (response.data) {
+            this.tableList = response.data; // 纭 list 瀛樺湪鍚庡啀杩涜璧嬪��
+            console.log(this.tableList, 123);
+          } else {
+            // 濡傛灉娌℃湁鏁版嵁鎴� list 涓虹┖锛屾竻绌鸿〃鏍煎苟鎻愮ず
+            this.tableList = [];
+          }
+        })
+        .catch((error) => {
+          console.error("Error fetching data:", error);
+        })
+        .finally(() => {
+          this.loading = false; // 闅愯棌鍔犺浇鐘舵��
+        });
+    },
+
+    /* 鐐瑰嚮鍚堝苟鎸夐挳 */
+    /* Merging() {
+      // 妫�鏌ユ槸鍚﹂�変腑浜嗘暟鎹�
+      if (this.selectedRows.length === 0) {
+        this.$message.error("鑷冲皯閫変腑涓�涓汉");
+        return;
+      }
+
+      if (this.selectList.length === 0) {
+        this.$message.error("璇烽�夋嫨瑕佸悎骞堕」鐩�");
+        return;
+      }
+
+      // 鑾峰彇 tableList 绗竴琛岀殑 specimenTypeCode 浣滀负鍩哄噯
+      const baseSpecimenTypeCode = this.selectList[0].specimenTypeCode;
+
+      // 妫�鏌� specimenTypeCode 鏄惁涓�鑷�
+      const canMergeBySpecimenTypeCode = this.selectList.every(
+        (row) => row.specimenTypeCode === baseSpecimenTypeCode
+      );
+
+      // 鏍规嵁 canMergeBySpecimenTypeCode 鍒ゆ柇鏄惁鍚堝苟
+      if (canMergeBySpecimenTypeCode) {
+        this.$message.success("鍚堝苟鎴愬姛銆�");
+        console.log("鍚堝苟鐨勮:", this.selectedRows);
+      } else {
+        this.$message.error("椤圭洰鐨� 涓嶄竴鑷达紝鏃犳硶鍚堝苟锛�");
+      }
+    }, */
+    /* 鐐瑰嚮鍚堝苟鎸夐挳 */
+    Merging() {
+      // 妫�鏌ユ槸鍚﹂�変腑浜嗘暟鎹�
+      if (this.selectedRows.length === 0) {
+        this.$message.error("鑷冲皯閫変腑涓�涓汉");
+        return;
+      }
+      if (this.selectList.length === 0) {
+        this.$message.error("璇烽�夋嫨瑕佸悎骞堕」鐩�");
+        return;
+      }
+      if (this.selectList.every((item) => item.isMerge === 0)) {
+        const baseSpecimenTypeCode = this.selectList[0].specimenTypeCode;
+
+        // 妫�鏌� specimenTypeCode 鏄惁涓�鑷�
+        const canMergeBySpecimenTypeCode = this.selectList.every(
+          (row) => row.specimenTypeCode === baseSpecimenTypeCode
+        );
+
+        // 鏍规嵁 canMergeBySpecimenTypeCode 鍒ゆ柇鏄惁鍚堝苟
+        if (canMergeBySpecimenTypeCode) {
+          let data = this.ids;
+
+          mergeCaiYang(data).then((response) => {
+            this.$message.success("鍚堝苟鎴愬姛銆�");
+            console.log("鍚堝苟鐨勮:", this.selectedRows);
+            // this.getList();
+            this.fetchData(this.selectedRows[0].cusId);
+          });
+        } else {
+          this.$message.error("鏍囨湰绫诲瀷涓嶄竴鑷达紝鏃犳硶鍚堝苟锛�");
+        }
+      } else {
+        this.$message.error("璇ラ」鐩凡鍚堝苟");
+      }
+    },
+
+    /** 鐐瑰嚮鎾ら攢鎸夐挳 **/
+    Cancellation() {
+      let data = this.ids;
+      console.log("鎾ら攢");
+      if (data.length === 0) {
+        // 濡傛灉娌℃湁宸插悎骞剁殑椤圭洰锛岀粰鍑烘彁绀轰俊鎭�
+        this.$message.error("娌℃湁宸插悎骞剁殑椤圭洰鍙互鎾ら攢锛�");
+        return;
+      }
+
+      console.log("鎾ら攢鐨勫凡鍚堝苟椤圭洰ID:", data);
+
+      // 璋冪敤鎾ら攢閲囨牱鐨勬帴鍙�
+      chexiaoCaiYang(data)
+        .then((res) => {
+          if (res && res.code === 200) {
+            this.$message.success("鎾ら攢鎴愬姛锛�");
+            // 鍒锋柊鏁版嵁鍒楄〃鎴栬繘琛屽叾浠栨搷浣�
+            // this.getList();
+            this.fetchData(this.selectedRows[0].cusId);
+          } else {
+            this.$message.error(res.msg || "鎾ら攢澶辫触锛岃閲嶈瘯锛�");
+          }
+        })
+        .catch((error) => {
+          this.$message.error("璇锋眰澶辫触锛岃閲嶈瘯锛�");
+        });
+
+      // chexiaoCaiYang(data).then((res) => {});
+    },
+
+    /** 鐐瑰嚮琛ユ墦鏉$爜鎸夐挳 **/
+    Collection() {
+      const jyxh = this.selectList.map((item) => item.jyxh);
+      // const selectedData = this.selectList.map((item) => ({
+      //   jyxh: item.jyxh,
+      // }));
+      console.log(this.selectList, 999);
+      // console.log(selectedData, 888);
+
+      this.$nextTick(() => {
+        jyxh.forEach((number, index) => {
+          const barcodeContent = number; // 纭繚 jyxh 鏄湁鏁堢殑
+          if (barcodeContent && barcodeContent !== "鏈彁渚涗綋妫�鍙�") {
+            JsBarcode(`#barcode${index}`, barcodeContent, {
+              format: "CODE128",
+              width: 2,
+              height: 50,
+              displayValue: false,
+            });
+          } else {
+            console.log(`鏉″舰鐮佸唴瀹规棤鏁�: ${barcodeContent}`); // 璋冭瘯杈撳嚭
+          }
+        });
+      });
+
+      this.$nextTick(() => {
+        const barcodeElement = document.querySelector("#barcode");
+        // const barcodeElements = selectedData.map((_, index) =>
+        //   document.querySelector(`#barcode${index}`)
+        // );
+
+        if (barcodeElement) {
+          barcodeElement.forEach((element) => {
+            if (element) {
+              console.log(element.innerHTML); // 鎵撳嵃鏉″舰鐮佺殑鍐呭锛岀湅鐪嬫槸鍚︾敓鎴愭垚鍔�
+            }
+          });
+        } else {
+          console.log("鏉″舰鐮佸厓绱犳湭鎵惧埌");
+        }
+        const newWindow = window.open("", "_blank", "width=800,height=600");
+        const printContents = document.getElementById("printSection").innerHTML;
+
+        console.log(printContents);
+        newWindow.document.write(`
+       <html>
+        <head>
+          <title>Print Barcode</title>
+          <style>
+            @media print {
+             * {
+                 margin: 0;
+                 padding: 0; /* 閲嶇疆鎵�鏈夊厓绱犵殑 margin 鍜� padding */
+                 box-sizing: border-box; /* 浣垮唴杈硅窛鍜岃竟妗嗗寘鍚湪鍏冪礌鐨勬�诲搴﹀拰楂樺害鍐� */
+               }
+               body {
+                  margin: 0;
+                  padding: 0;
+                }
+                .barcode-container {
+                  width: 100%; /* 鏍规嵁闇�瑕佽皟鏁� */
+                  text-align: center; /* 纭繚鏉″舰鐮佸眳涓� */
+                }
+                .name {
+                  padding: 0;
+                  margin: -5px auto 0;
+                  padding-left: 20px;
+                  font-size: 18px;
+                  width: 90%;
+                  display: -webkit-box;      
+                  -webkit-box-orient: vertical;  
+                  -webkit-line-clamp: 2;  
+                  overflow: hidden;           
+                  white-space: normal;       
+                }
+                p {
+                  margin: 0;
+                  padding: 0;
+                }
+                svg {
+                  display: block;
+                  width: 70%;
+                  margin: 0 auto;
+                  height: auto;
+                  margin-bottom: 0;
+                }
+                .last {
+                  width: 66%;
+                  display: flex;
+                  font-size: 19px;
+                  margin-left: 20px;
+                  justify-content: space-between;
+                }
+                  .last div span{
+                  margin-left: 10px
+                  }
+                .tj{
+                  width: 70%;
+                  display: flex;
+                  font-size: 19px;
+                  margin-left: 10px;
+                  justify-content: space-between;
+                }
+                .tj span{
+                  margin-left:10px;
+                }
+            }
+          </style>
+        </head>
+        <body>${printContents}</body>
+      </html>
+      `);
+        newWindow.document.close();
+        newWindow.focus();
+        newWindow.print();
+        newWindow.close();
+      });
+    },
+
     tableRowClassName({ row, rowIndex }) {
       for (let i = 0; i < this.selectList.length; i++) {
         if (row === this.selectList[i]) {
@@ -540,7 +916,16 @@
     },
 
     handleChange(selection) {
+      console.log(selection);
+      selection.forEach((item, index) => {
+        if (item.cusSex == 0) {
+          item.cusSex = "鐢�";
+        } else if (item.cusSex == 1) {
+          item.cusSex = "濂�";
+        }
+      });
       this.selectList = selection;
+
       this.ids = selection.map((item) => item.id);
     },
 
@@ -559,6 +944,11 @@
     // 纭閲囨牱
     Confirmreceipt() {
       let data = this.ids;
+      if (data.length === 0) {
+        // 濡傛灉娌℃湁宸插悎骞剁殑椤圭洰锛岀粰鍑烘彁绀轰俊鎭�
+        this.$message.error("娌℃湁宸插悎骞剁殑椤圭洰鍙互鎾ら攢锛�");
+        return;
+      }
       confirmSampling(data).then((res) => {
         this.$modal.msgSuccess("閲囨牱鎴愬姛");
         this.getList();
@@ -629,6 +1019,16 @@
 }
 
 .el-table .warning-row {
-  background: #e5f3ff !important;
+  background-color: #e5f3ff !important;
 }
+/* .last {
+  display: flex;
+  justify-content: space-around;
+  justify-content: space-evenly;
+  background-color:aqua
+} */
+/* .last p:nth-child(2) {
+  margin: 20px;
+  font-size: 16px;
+} */
 </style>
diff --git a/src/views/system/bill/index.vue b/src/views/system/bill/index.vue
index e59b977..ed34e17 100644
--- a/src/views/system/bill/index.vue
+++ b/src/views/system/bill/index.vue
@@ -18,7 +18,7 @@
       </el-form-item>
       <el-form-item label="浣撴鍙�" prop="tjNum">
         <el-input
-         ref="inputName"
+          ref="inputName"
           style="width: 170px"
           v-model="queryParams.tjNum"
           placeholder="璇疯緭鍏ヤ綋妫�鍙�"
@@ -73,7 +73,8 @@
         <el-button
           type="primary"
           icon="el-icon-search"
-          size="mini" style="margin-right:15px;"
+          size="mini"
+          style="margin-right: 15px"
           @click="handleQuery"
           >鎼滅储</el-button
         >
@@ -84,27 +85,35 @@
       </el-form-item>
     </el-form>
 
-    <el-row :gutter="10" class="mb8" style="margin-left:10px">
+    <el-row :gutter="10" class="mb8" style="margin-left: 10px">
       <el-col :span="1.5">
         <el-button
-        type="primary"
-        @click="handleReport"
-        :disabled="single"
-        size="mini"
-        v-hasPermi="['hosp:order:export']"
-        >琛ユ墦瀵兼鍗�</el-button
-      >
+          type="primary"
+          @click="handleReport"
+          :disabled="single"
+          size="mini"
+          v-hasPermi="['hosp:order:export']"
+          >琛ユ墦瀵兼鍗�</el-button
+        >
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
-        type="primary"
-        size="mini"
-        @click="Collection"
-        :disabled="single"
-        >鏉$爜鐢熸垚</el-button
-      >
-      </el-col>
-      
+          type="primary"
+          size="mini"
+          @click="Collection"
+          :disabled="single"
+          >鏉$爜鐢熸垚</el-button
+        >
+      </el-col> -->
+      <div id="printSection" style="display: none">
+        <svg id="barcode"></svg>
+      </div>
+      <!-- <img id="base64Image" alt="Base64 Image" /> -->
+      <!-- 鐢ㄤ簬鏄剧ず鏉″舰鐮佺殑瀹瑰櫒 -->
+      <!-- <div id="printArea">
+        <svg id="barcode" v-if="barcodeVisible"></svg>
+      </div> -->
+
       <!-- <el-button type="primary" size="mini" :disabled="multiple" @click="viewReport">浣撴鎶ュ憡</el-button>
       <el-button type="primary" size="mini" :disabled="multiple" @click="printHandle">鎵撳嵃灏忕エ</el-button> -->
       <!-- <el-col :span="1.5">
@@ -126,145 +135,144 @@
       娴嬭瘯
     </div> -->
 
-    
-      <el-table
-        border
-        style="margin: 14px; width: 99%"
-        v-loading="loading"
-        :default-sort="{ prop: 'createTime', order: 'descending' }"
-        :data="orderList"
-        @selection-change="handleSelectionChange"
-        ref="multipleTable"
+    <el-table
+      border
+      style="margin: 14px; width: 99%"
+      v-loading="loading"
+      :default-sort="{ prop: 'createTime', order: 'descending' }"
+      :data="orderList"
+      @selection-change="handleSelectionChange"
+      ref="multipleTable"
+    >
+      <el-table-column
+        type="selection"
+        width="40px"
+        align="center"
+        height="10px"
+        fixed="left"
+      />
+      <el-table-column
+        label="搴忓彿"
+        align="center"
+        prop="newID"
+        width="50px"
+        fixed="left"
+        height="10px"
+      />
+      <el-table-column
+        label="濮撳悕"
+        align="center"
+        prop="tjCustomerName"
+        height="10px"
+        width="90px"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        label="鎬у埆"
+        align="center"
+        prop="tjCustomerSex"
+        width="55px"
+        height="10px"
+        :show-overflow-tooltip="true"
       >
-        <el-table-column
-          type="selection"
-          width="40px"
-          align="center"
-          height="10px"
-          fixed="left"
-        />
-        <el-table-column
-          label="搴忓彿"
-          align="center"
-          prop="newID"
-          width="50px"
-          fixed="left"
-          height="10px"
-        />
-        <el-table-column
-          label="濮撳悕"
-          align="center"
-          prop="tjCustomerName"
-          height="10px"
-          width="90px"
-          :show-overflow-tooltip="true"
-        />
-        <el-table-column
-          label="鎬у埆"
-          align="center"
-          prop="tjCustomerSex"
-          width="55px"
-          height="10px"
-          :show-overflow-tooltip="true"
-        >
-          <template slot-scope="scope">
-            <span v-if="scope.row.tjCustomerSex == '0'">鐢�</span>
-            <span v-if="scope.row.tjCustomerSex == '1'">濂�</span>
-            <span v-if="scope.row.tjCustomerSex == '2'">鏈煡</span>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="骞撮緞"
-          align="center"
-          prop="tjCustomerAge"
-          height="10px"
-          width="60px"
-          :show-overflow-tooltip="true"
-        />
-        <el-table-column
-          label="鐢佃瘽"
-          align="center"
-          prop="tjCustomerPhone"
-          :show-overflow-tooltip="true"
-          height="10px"
-          width="110px"
-        />
-        <el-table-column
-          label="浣撴绫诲瀷"
-          align="center"
-          prop="tjType"
-          height="10px"
-          width="80px"
-          :show-overflow-tooltip="true"
-        >
-          <template slot-scope="scope">
-            <span v-if="scope.row.tjType == '2'">涓汉</span>
-            <span v-if="scope.row.tjType == '1'">鍥㈤槦</span>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="浣撴鍙�"
-          align="center"
-          prop="tjNumber"
-          :show-overflow-tooltip="true"
-          width="160px"
-        />
-        <el-table-column
-          label="鎵�閫夊椁�"
-          align="center"
-          prop="pacName"
-          height="10px"
-          :show-overflow-tooltip="true"
-          width="140px"
-        />
-        <el-table-column
-          label="鐧昏浜�"
-          align="center"
-          prop="createBy"
-          height="10px"
-          :show-overflow-tooltip="true"
-          width="100px"
-        />
-        <el-table-column
-          label="鐧昏鏃堕棿"
-          align="center"
-          prop="createTime"
-          width="155px"
-          height="10px"
-          sortable
-          :show-overflow-tooltip="true"
-        >
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.createTime) }}</span>
-          </template>
-        </el-table-column>
-        <!-- <el-table-column label="瀹屾垚鏃堕棿" align="center" prop="finishTime" width="155px" height="10px"
+        <template slot-scope="scope">
+          <span v-if="scope.row.tjCustomerSex == '0'">鐢�</span>
+          <span v-if="scope.row.tjCustomerSex == '1'">濂�</span>
+          <span v-if="scope.row.tjCustomerSex == '2'">鏈煡</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="骞撮緞"
+        align="center"
+        prop="tjCustomerAge"
+        height="10px"
+        width="60px"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        label="鐢佃瘽"
+        align="center"
+        prop="tjCustomerPhone"
+        :show-overflow-tooltip="true"
+        height="10px"
+        width="110px"
+      />
+      <el-table-column
+        label="浣撴绫诲瀷"
+        align="center"
+        prop="tjType"
+        height="10px"
+        width="80px"
+        :show-overflow-tooltip="true"
+      >
+        <template slot-scope="scope">
+          <span v-if="scope.row.tjType == '2'">涓汉</span>
+          <span v-if="scope.row.tjType == '1'">鍥㈤槦</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="浣撴鍙�"
+        align="center"
+        prop="tjNumber"
+        :show-overflow-tooltip="true"
+        width="160px"
+      />
+      <el-table-column
+        label="鎵�閫夊椁�"
+        align="center"
+        prop="pacName"
+        height="10px"
+        :show-overflow-tooltip="true"
+        width="140px"
+      />
+      <el-table-column
+        label="鐧昏浜�"
+        align="center"
+        prop="createBy"
+        height="10px"
+        :show-overflow-tooltip="true"
+        width="100px"
+      />
+      <el-table-column
+        label="鐧昏鏃堕棿"
+        align="center"
+        prop="createTime"
+        width="155px"
+        height="10px"
+        sortable
+        :show-overflow-tooltip="true"
+      >
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="瀹屾垚鏃堕棿" align="center" prop="finishTime" width="155px" height="10px"
           :show-overflow-tooltip="true">
           <template slot-scope="scope">
             <span>{{ parseTime(scope.row.finishTime) }}</span>
           </template>
         </el-table-column> -->
-        <!-- <el-table-column label="鎶ュ憡鏃堕棿" align="center" prop="reportTime" width="155px" height="10px"
+      <!-- <el-table-column label="鎶ュ憡鏃堕棿" align="center" prop="reportTime" width="155px" height="10px"
           :show-overflow-tooltip="true">
           <template slot-scope="scope">
             <span>{{ parseTime(scope.row.reportTime) }}</span>
           </template>
         </el-table-column> -->
-        <el-table-column
-          label="澶囨敞"
-          align="center"
-          prop="remark"
-          height="10px"
-          :show-overflow-tooltip="true"
-        />
-        <!-- <el-table-column fixed="right" label="鎿嶄綔" align="center" class-name="small-padding fixed-width" height="10px"
+      <el-table-column
+        label="澶囨敞"
+        align="center"
+        prop="remark"
+        height="10px"
+        :show-overflow-tooltip="true"
+      />
+      <!-- <el-table-column fixed="right" label="鎿嶄綔" align="center" class-name="small-padding fixed-width" height="10px"
           width="60px">
           <template slot-scope="scope">
             <el-button size="mini" type="text" icon="el-icon-document" @click="investigation(scope.row)"
               v-hasPermi="['hosp:order:edit']" title="璇︽儏" style="margin-right: 15px"></el-button>
           </template>
         </el-table-column> -->
-      </el-table>
+    </el-table>
 
     <div class="pag">
       <div class="pag1">
@@ -459,7 +467,7 @@
 </template>
 
 <script>
-import print from "print-js";
+
 import {
   listOrder,
   getNumber,
@@ -468,12 +476,13 @@
   hasReport,
   hasPrintCode,
   getOrderList,
-  getNewDateList
+  getNewDateList,
 } from "@/api/hosp/order";
 import moment from "moment";
 import ViewPdf from "@/components/ViewPdf";
 import { projectGetList, getOrder } from "@/api/system/tijian";
 import { SubmitCompany, getCompany, queryCompany } from "@/api/team/tuanti";
+import JsBarcode from "jsbarcode";
 export default {
   components: {
     ViewPdf,
@@ -631,19 +640,32 @@
           },
         ],
       },
+      barcode: "", // 瀛樺偍鏉$爜鍊�
+      barcodeVisible: false, // 鎺у埗鏉″舰鐮佹槸鍚﹀彲瑙�
+      single: false, // 鎺у埗鎸夐挳鏄惁绂佺敤鐨勬潯浠�
     };
   },
   created() {
     // this.getNowTime();
-   
+
     this.Company();
     this.getdate();
   },
-  mounted() {
-    this.$nextTick(() => {
-      this.$refs.inputName.focus();
-    });
-  },
+  // mounted() {
+  //   // const base64String =
+  //   //   "data:image/jpeg;base64,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";
+  //   // const binaryString = atob(base64String.split(",")[1]);
+  //   // // 灏嗕簩杩涘埗鏁版嵁杞崲涓� Blob 瀵硅薄
+  //   // const blob = new Blob([binaryString], { type: "image/png" });
+  //   // // 鍒涘缓 URL 瀵硅薄骞跺皢鍏跺垎閰嶇粰鍥惧儚鐨� src 灞炴��
+  //   // const image = document.getElementById("base64Image");
+  //   // console.log(image, 1111);
+  //   // // image.src = URL.createObjectURL(blob);
+  //   // image.src = base64String;
+  //   // this.$nextTick(() => {
+  //   //   this.$refs.inputName.focus();
+  //   // });
+  // },
   methods: {
     getdate() {
       getNewDateList().then((res) => {
@@ -803,37 +825,88 @@
       });
     },
     // 閲囪鍗�
-    Collection() {
-      let tjNumber = this.barcode;
-      hasPrintCode(tjNumber).then((response) => {
-        this.$message({
-          showClose: true,
-          message: "鏉$爜宸茬敓鎴愶紒",
-          type: "success",
-        });
-      });
-    },
-
-    // onSubmit() {
-    //   console.log("submit!");
+    // Collection() {
+    //   let tjNumber = this.barcode;
+    //   hasPrintCode(tjNumber).then((response) => {
+    //     this.$message({
+    //       showClose: true,
+    //       message: "鏉$爜宸茬敓鎴愶紒",
+    //       type: "success",
+    //     });
+    //   });
     // },
+    // Collection() {
+    //   let tjNumber = this.barcode;
+    //   JsBarcode("#barcode", tjNumber, {
+    //     format: "CODE128",
+    //     width: 2,
+    //     height: 100,
+    //     displayValue: true,
+    //   });
+
+    //   this.$nextTick(() => {
+    //     const barcodeElement = document.querySelector("#barcode");
+    //     if (barcodeElement) {
+    //       console.log(barcodeElement.innerHTML); // 鎵撳嵃鏉″舰鐮佺殑鍐呭锛岀湅鐪嬫槸鍚︾敓鎴愭垚鍔�
+    //     } else {
+    //       console.log("鏉″舰鐮佸厓绱犳湭鎵惧埌");
+    //     }
+
+    //     const printContents = document.getElementById("printSection").innerHTML;
+    //     const newWindow = window.open("", "_blank", "width=800,height=600");
+    //     console.log(printContents);
+    //     newWindow.document.write(`
+    //    <html>
+    //         <head>
+    //           <title>Print Barcode</title>
+    //           <style>
+    //             @media print {
+    //                body {
+    //                   width: 80mm;
+    //                   margin: 0;
+    //                   padding: 0;
+    //                   height: 25mm;
+    //                 }
+    //                 /* 灏嗘潯褰㈢爜灞呬腑 */
+    //                 #barcode {
+    //                   display: block;
+    //                   // margin-left: 50%;
+    //                   text-align: center;
+    //                   width: 100%;
+    //                   height: auto;
+    //                 }
+    //                /* 璁╂潯褰㈢爜鍦ㄦ墦鍗版椂鏄剧ず */
+    //                svg {
+    //                  display: block;
+    //                }
+    //           </style>
+    //         </head>
+    //         <body>${printContents}</body>
+    //       </html>
+    //     `);
+    //     newWindow.document.close();
+    //     newWindow.focus();
+    //     newWindow.print();
+    //     newWindow.close();
+    //   });
+    // },
+
     dateChangebirthday1(val) {
       this.startTime = val;
     },
     /** 鏌ヨ浣撴璁板綍鍒楄〃 */
     getList() {
-      if(this.createTimeList){
+      if (this.createTimeList) {
         this.queryParams.djbeginTime = this.createTimeList[0];
-      this.queryParams.djendTime = this.createTimeList[1];
-      }else if(this.createTimeList == null){
+        this.queryParams.djendTime = this.createTimeList[1];
+      } else if (this.createTimeList == null) {
         this.queryParams.djbeginTime = null;
-      this.queryParams.djendTime = null;
-      }else{
+        this.queryParams.djendTime = null;
+      } else {
         this.queryParams.djbeginTime = this.startTime[0];
-      this.queryParams.djendTime = this.startTime[1];
+        this.queryParams.djendTime = this.startTime[1];
       }
-      
-     
+
       this.loading = true;
       getOrderList(this.queryParams).then((response) => {
         this.orderList = response.data.list;
@@ -900,9 +973,9 @@
       };
       this.resetForm("form");
     },
-    hb(){
+    hb() {
       // console.log(this.queryParams.tjNum);
-       if (this.queryParams.tjNum != undefined) {
+      if (this.queryParams.tjNum != undefined) {
         this.handleQuery();
       }
     },
@@ -913,7 +986,7 @@
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
-      this.createTimeList=[]
+      this.createTimeList = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -1075,7 +1148,7 @@
   },
 };
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
 .pag {
   width: 100%;
   display: flex;
@@ -1173,4 +1246,49 @@
   display: flex;
   justify-content: center;
 }
+
+.print-container {
+  width: 300px; /* 璁惧畾瀹藉害浠ョ‘淇濇墦鍗版椂甯冨眬鍚堥�� */
+  padding: 10px;
+  border: 1px solid #000; /* 鍙�夛細缁欐墦鍗板尯鍩熷姞涓�涓竟妗� */
+  font-family: Arial, sans-serif;
+}
+
+.barcode-section {
+  text-align: center;
+  margin-bottom: 10px;
+}
+
+.info-section {
+  font-size: 14px;
+  line-height: 1.5;
+}
+
+.info-section p {
+  margin: 2px 0; /* 鎺у埗淇℃伅闂寸殑闂磋窛 */
+}
+
+#barcode {
+  display: block;
+  margin: 0 auto;
+}
+
+.info-section p {
+  margin: 2px 0;
+  font-size: 14px;
+}
+
+/* 鎵撳嵃鏃堕殣钘忔墍鏈夊叾浠栧唴瀹� */
+// @media print {
+//   #barcode {
+//     width: 58mm;
+//     height: auto;
+//   }
+//   #printSection {
+//     display: flex;
+//     justify-content: center;
+//     align-items: center;
+//     height: 100vh; /* 鐖跺鍣ㄩ珮搴︿负鍏ㄩ〉楂樺害 */
+//   }
+// }
 </style>
diff --git a/src/views/system/biol/index.vue b/src/views/system/biol/index.vue
index 10ee5ba..896284f 100644
--- a/src/views/system/biol/index.vue
+++ b/src/views/system/biol/index.vue
@@ -27,7 +27,7 @@
           @blur="hb"
         />
       </el-form-item>
-      <el-form-item label="鎶ュ憡鏃堕棿" prop="createTimeList">
+      <el-form-item label="鐧昏鏃堕棿" prop="createTimeList">
         <el-date-picker
           clearable
           v-model="createTimeList"
diff --git a/src/views/system/tijian/index.vue b/src/views/system/tijian/index.vue
index f84b262..a0587e3 100644
--- a/src/views/system/tijian/index.vue
+++ b/src/views/system/tijian/index.vue
@@ -2192,7 +2192,8 @@
               this.discount = this.form.discount;
             }
             if (this.form.tjType === null) {
-              this.form.tjType = "2";
+              // this.form.tjType = "2";
+              this.form.tjType = "3";
             }
             if (this.form.reservationId != null) {
               if (this.form.groupingId) {
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 5e0ed5e..7ad4673 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -642,7 +642,7 @@
     </div>
 
     <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
-    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+    <!-- <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
       <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
         :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
         :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
@@ -662,7 +662,7 @@
         <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
         <el-button @click="upload.open = false">鍙� 娑�</el-button>
       </div>
-    </el-dialog>
+    </el-dialog> -->
 
     <!-- 閲嶇疆瀵嗙爜瀵硅瘽妗� -->
     <el-dialog title="鎻愮ず" :visible.sync="dialogVisible1" width="30%" :before-close="handleClose">
diff --git a/vue.config.js b/vue.config.js
index 0bcde09..e5ab00d 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -53,7 +53,8 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `https://ltpeis.xaltjdkj.cn:5801/`,
-        target: `http://192.168.1.113:5011`,
+        target: `http://192.168.1.3:5011`,
+        // target: `http://192.168.1.113:5011`,
         // // target: `http://192.168.0.99:8080/ltkj-admin`,
         // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
         // target: `http://10.168.0.9:5011`,

--
Gitblit v1.8.0