| 
					
				 | 
			
			
				@@ -1,23 +1,410 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <page-layer> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <template #header> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      住院号: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <el-input style="width: 100px"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-date-picker type="daterange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      v-model="dateRange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      :shortcuts="shortcuts" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      end-placeholder="结束日期" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      range-separator="至" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      start-placeholder="开始日期" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      style="width: 220px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-date-picker> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        住院号: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-input style="width: 100px" v-model="queryParams.patNo"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         病房: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <el-select style="width: 100px"></el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-select style="width: 120px" v-model="queryParams.ward" clearable filterable> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-option v-for="item in wardList" :key="item.code" :label="item.name" :value="item.code"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         状态: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <el-select style="width: 100px"></el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-select style="width: 80px" v-model="queryParams.status"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-option v-for="item in statusList" :key="item.code" :label="item.name" :value="item.code"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-divider direction="vertical" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-button icon="Search" type="primary" @click="querySurgeryList">查询</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-button icon="Upload" type="success" @click="saveRecord">保存</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <template #aside> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <el-table></el-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-table :data="surgeryList" :height="window.h - 10" stripe @row-click="handleClickSurgeryRow"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-table-column label="住院号" prop="patNo" width="60"></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-table-column label="姓名" prop="patName" width="50"></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-table-column label="病房" prop="wardName" width="70"></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-table-column label="手术" prop="opName"></el-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <template #main> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      msdsd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div style="display: flex"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p need-margin line-bottom"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术编号:{{currentSurgery.recordId}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              住院号:{{currentSurgery.inpatientNo}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              姓名:{{currentSurgery.patientName}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              病房:{{currentSurgery.wardName}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术次数:{{currentSurgery.opTimes}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p need-margin"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              是否急诊: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.urgentClinicFlag" style="width: 75px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="是" value="1"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="否" value="0"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术室号: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.roomCode" style="width: 80px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option v-for="item in allRooms" :value="item.code" :label="item.name" :disabled="item.statusFlag === 2"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              申请医生: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.applyDocName" style="width: 80px" readonly @click="beforeSearch('applyDoc', 'physician')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术名称: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.opCode" style="width: 120px" readonly @click="beforeSearch('opCode', 'surgery')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.opName" style="width: 300px" readonly @click="beforeSearch('opCode', 'surgery')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              麻醉方法: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.hocusCode" style="width: 300px" filterable> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option v-for="item in anstWays" :value="item.code" :label="item.name"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              术前诊断: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.diagBeforeCode" style="width: 120px" readonly @click="beforeSearch('diagBeforeCode','icd10')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.diagBeforeOp" style="width: 300px" readonly @click="beforeSearch('diagBeforeCode','icd10')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              术后诊断: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.diagAfterCode" style="width: 120px" readonly @click="beforeSearch('diagAfterCode','icd10')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.diagAfterOp" style="width: 300px" readonly @click="beforeSearch('diagAfterCode','icd10')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div style="width: 280px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术开始时间: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-date-picker v-model="currentSurgery.opStartDate" type="datetime" style="width: 160px"></el-date-picker> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术结束时间: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-date-picker v-model="currentSurgery.opEndDate" type="datetime" style="width: 160px"></el-date-picker> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div style="width: 280px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              麻醉开始时间: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-date-picker v-model="currentSurgery.anstStartDate" type="datetime" style="width: 160px"></el-date-picker> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              麻醉结束时间: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-date-picker v-model="currentSurgery.anstEndDate" type="datetime" style="width: 160px"></el-date-picker> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p need-margin"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术等级: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.opScale" style="width: 90px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="一级手术" value="4"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="二级手术" value="3"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="三级手术" value="2"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="四级手术" value="1"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术部位: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.partCode" style="width: 80px" filterable> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option v-for="item in srgyParts" :value="item.code" :label="item.name"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              手术体位: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.bodyCode" style="width: 80px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option value="0" label="仰卧位"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p need-margin"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              输血量: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-input v-model="currentSurgery.bloodAmount" style="width: 60px" type="number"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              毫升 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              血型: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.bloodType" style="width: 80px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="A" value="1"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="B" value="2"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="O" value="3"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="AB" value="4"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="不详" value="5"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="未查" value="6"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              Hbsag: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-select v-model="currentSurgery.hbsag" style="width: 80px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="未查" value="0"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="阴性" value="1"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="阳性" value="2"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-option label="不详" value="3"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p need-margin"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              是否感染: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-radio-group v-model="currentSurgery.infectionFlag"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-radio label="0">否</el-radio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-radio label="1">是</el-radio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-radio-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              是否隔离: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-radio-group v-model="currentSurgery.isolationIndicator"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-radio label="0">否</el-radio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-radio label="1">是</el-radio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-radio-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex w100p"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            备注说明: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="currentSurgery.remark" style="width: 400px"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div style="width: 300px; margin-left:32px;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex vertical-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            主刀医生: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="currentSurgery.doctorZdName" style="width: 100px" @click="beforeSearch('doctorZd', 'physician')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex vertical-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            一助医生: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="currentSurgery.doctor1Name" style="width: 100px" @click="beforeSearch('doctor1', 'physician')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex vertical-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            二助医生: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="currentSurgery.doctor2Name" style="width: 100px" @click="beforeSearch('doctor2', 'physician')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex vertical-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            三助医生: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="currentSurgery.doctor3Name" style="width: 100px" @click="beforeSearch('doctor3', 'physician')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex vertical-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            麻醉医生: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="currentSurgery.doctorMzYsName" style="width: 100px" @click="beforeSearch('doctorMzYs', 'physician')"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex vertical-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            巡回护士: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-select v-model="currentSurgery.nurseXh" filterable style="width: 100px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-option v-for="item in allStaffs" :value="item.code" :label="item.name"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex vertical-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            器械护士: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-select v-model="currentSurgery.nurseQx" filterable style="width: 100px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-option v-for="item in allStaffs" :value="item.code" :label="item.name"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </page-layer> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <search v-if="showSearch" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :title="titleOfSearch" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :target="searchTarget" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :show-emp-dept="searchTarget === 'physician'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @close="showSearch = false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @click-item="handleClickSearchResult"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </search> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script setup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import PageLayer from "@/layout/PageLayer.vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Search from '@/components/search/Index.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import store from "@/store"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {shortcuts} from '@/data/shortcuts.js' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {listIsBlank} from "@/utils/blank-utils"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {ElMessage} from "element-plus"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {formatDatetime, getDateRangeFormatDate} from "@/utils/date"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  fetchBriefOpRecordList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  fetchSurgeryRecord, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getDicList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  saveSurgeryRecord 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from '@/api/surgical-management/surgery-record' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const window = computed(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return store.state.app.windowSize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const dateRange = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const wardList = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const allRooms = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const anstWays = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const srgyParts = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const allStaffs = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const queryParams = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  patNo: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ward: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  status: '2', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const surgeryList = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const statusList = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { code: '2', name: '安排' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { code: '3', name: '完成' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const querySurgeryList = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (listIsBlank(dateRange.value)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ElMessage.error('请先输入日期') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let dates = getDateRangeFormatDate(dateRange.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  queryParams.startTime = dates.startTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  queryParams.endTime = dates.endTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  fetchBriefOpRecordList(queryParams).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    surgeryList.value = res 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const currentSurgery = ref({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleClickSurgeryRow = (row) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  fetchSurgeryRecord(row.recordId).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    currentSurgery.value = res 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const showSearch = ref(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const titleOfSearch = ref('') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const searchTarget = ref('') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const targetCodeKey = ref('') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const targetNameKey = ref('') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const beforeSearch = (key, target) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  searchTarget.value = target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  targetCodeKey.value = key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  switch (key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'applyDoc': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'applyDocName' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '申请医生' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'opCode': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'opName' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '手术名称' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'diagBeforeCode': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'diagBeforeOp' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '术前诊断' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'diagAfterCode': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'diagAfterOp' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '术后诊断' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'doctorZd': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'doctorZdName' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '主刀医生' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'doctor1': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'doctor1Name' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '一助医生' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'doctor2': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'doctor2Name' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '二助医生' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'doctor3': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'doctor3Name' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '三助医生' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    case 'doctorMzYs': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      targetNameKey.value = 'doctorMzYsName' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      titleOfSearch.value = '麻醉医生' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  showSearch.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleClickSearchResult = (val) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentSurgery.value[targetCodeKey.value] = val.code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentSurgery.value[targetNameKey.value] = val.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  showSearch.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const saveRecord = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentSurgery.value.opStartDate = formatDatetime(currentSurgery.value.opStartDate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentSurgery.value.opEndDate = formatDatetime(currentSurgery.value.opEndDate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentSurgery.value.anstStartDate = formatDatetime(currentSurgery.value.anstStartDate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentSurgery.value.anstEndDate = formatDatetime(currentSurgery.value.anstEndDate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  saveSurgeryRecord(currentSurgery.value).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ElMessage.success({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      message: res, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: 'success', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      duration: 2500, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      showClose: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dateRange.value = [shortcuts[0].value[0], shortcuts[0].value[1]] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getDicList().then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    wardList.value = res.allWards 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    allRooms.value = res.allRooms 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    anstWays.value = res.anstWays 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    srgyParts.value = res.srgyParts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    allStaffs.value = res.allStaffs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  querySurgeryList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style scoped lang="scss"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.flex { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  flex-wrap: nowrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  padding: 8px 0 8px 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  color: black; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  border-left: 1px solid darkred; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .w30p { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 30%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .w35p { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 35%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.vertical-center { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.line-bottom { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  border-bottom: 1px solid black; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.need-margin > div { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  margin-right: 24px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.w100p { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:deep(.flex .el-input__inner) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  color: darkblue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |