From 5f2ee03958a1a16dc27195c76ea7cffb422c95d1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期五, 19 十二月 2025 22:40:34 +0800
Subject: [PATCH] feat: 任务修改接口,删除一些不要的字段同步

---
 app/pagesTask/edit-emergency.vue |  819 ++++++++++++++++++++++++++--------------------------------
 1 files changed, 367 insertions(+), 452 deletions(-)

diff --git a/app/pagesTask/edit-emergency.vue b/app/pagesTask/edit-emergency.vue
index e23f4b5..24f3a97 100644
--- a/app/pagesTask/edit-emergency.vue
+++ b/app/pagesTask/edit-emergency.vue
@@ -19,13 +19,24 @@
       />
       
       <view class="form-item">
-        <OrganizationSelector 
+        <OrganizationSelector
+          ref="organizationSelector"
           v-model="selectedOrganizationId"
           :required="true"
           :auto-select-user-dept="false"
           @change="onOrganizationChange"
         />
       </view>
+      
+      <DepartureSelector
+        :address.sync="departureAddress"
+        :longitude.sync="departureLongitude"
+        :latitude.sync="departureLatitude"
+        :region="selectedRegion"
+        :required="false"
+        @address-selected="onDepartureAddressSelected"
+        @location-success="onDepartureLocationSuccess"
+      />
       
       <view class="form-item">
         <view class="form-label required">杞繍鏃堕棿</view>
@@ -37,27 +48,15 @@
         />
       </view>
       
-      <view class="form-item">
-        <view class="form-label">鎵ц浠诲姟浜哄憳</view>
-        <view class="staff-list">
-          <view class="staff-item" v-for="(staff, index) in selectedStaff" :key="staff.userId">
-            <view class="staff-info">
-              <text class="staff-name">{{ staff.nickName }}</text>
-              <text class="staff-role">({{ getUserTypeName(staff.type) || '鏈煡鑱屼綅' }})</text>
-            </view>
-            <uni-icons 
-              type="closeempty" 
-              size="20" 
-              color="#ff4d4f"
-              @click="removeStaff(index)"
-            ></uni-icons>
-          </view>
-          <view class="add-staff" @click="showStaffSelector">
-            <uni-icons type="plusempty" size="20" color="#007AFF"></uni-icons>
-            <text>娣诲姞浜哄憳</text>
-          </view>
-        </view>
-      </view>
+      <StaffSelector
+        v-model="selectedStaff"
+        label="鎵ц浠诲姟浜哄憳"
+        :required="false"
+        :auto-add-current-user="false"
+        :current-user-removable="true"
+        :branch-dept-ids="allOrganizationIds"
+        @change="onStaffChange"
+      />
       
       <view class="form-section-title">鎮h�呬俊鎭�</view>
       <view class="form-item">
@@ -120,25 +119,61 @@
       
       <view class="form-section-title">杞嚭鍖婚櫌淇℃伅</view>
       <HospitalSelector
-        label="鍖洪櫌鍚嶇О"
+        label="鍖婚櫌鍚嶇О"
         address-label="杞嚭鍦板潃"
         :required="true"
+        :show-department="false"
         v-model="taskForm.hospitalOut"
         :dept-id="selectedOrganizationId"
         @change="onHospitalOutChange"
         @address-selected="onHospitalOutAddressSelected"
       />
+      <DepartmentSelector
+        label="杞嚭绉戝"
+        :required="true"
+        v-model="taskForm.hospitalOut.department"
+        :department-id="taskForm.hospitalOut.departmentId"
+        :is-home="taskForm.hospitalOut.name === '瀹朵腑'"
+        @change="onHospitalOutDepartmentChange"
+      />
+      
+      <view class="form-item">
+        <view class="form-label">搴婂彿</view>
+        <input 
+          class="form-input" 
+          placeholder="璇疯緭鍏ュ簥鍙�" 
+          v-model="taskForm.hospitalOut.bedNumber"
+        />
+      </view>
       
       <view class="form-section-title">杞叆鍖婚櫌淇℃伅</view>
       <HospitalSelector
         label="鍖婚櫌鍚嶇О"
         address-label="杞叆鍦板潃"
         :required="true"
+        :show-department="false"
         v-model="taskForm.hospitalIn"
         :dept-id="selectedOrganizationId"
         @change="onHospitalInChange"
         @address-selected="onHospitalInAddressSelected"
       />
+      <DepartmentSelector
+        label="杞叆绉戝"
+        :required="true"
+        v-model="taskForm.hospitalIn.department"
+        :department-id="taskForm.hospitalIn.departmentId"
+        :is-home="taskForm.hospitalIn.name === '瀹朵腑'"
+        @change="onHospitalInDepartmentChange"
+      />
+      
+      <view class="form-item">
+        <view class="form-label">搴婂彿</view>
+        <input 
+          class="form-input" 
+          placeholder="璇疯緭鍏ュ簥鍙�" 
+          v-model="taskForm.hospitalIn.bedNumber"
+        />
+      </view>
       
       <view class="form-item">
         <view class="form-label">杞繍璺濈</view>
@@ -188,80 +223,6 @@
         ></map-selector>
       </view>
     </uni-popup>
-    
-    <!-- 浜哄憳閫夋嫨鍣ㄥ脊绐� -->
-    <uni-popup ref="staffPopup" type="bottom" :mask-click="false">
-      <view class="staff-popup-container">
-        <view class="popup-header">
-          <view class="popup-title">閫夋嫨鎵ц浜哄憳</view>
-          <view class="close-btn" @click="closeStaffSelector">
-            <uni-icons type="closeempty" size="20" color="#999"></uni-icons>
-          </view>
-        </view>
-        
-        <view class="search-bar">
-          <input 
-            class="search-input" 
-            placeholder="鎼滅储濮撳悕鎴栫數璇�" 
-            v-model="staffSearchKeyword"
-            @input="onStaffSearch"
-          />
-        </view>
-        
-        <view class="filter-tabs">
-          <view 
-            class="filter-tab" 
-            :class="{ active: staffFilterType === 'driver' }"
-            @click="filterStaff('driver')"
-          >
-            鍙告満
-          </view>
-          <view 
-            class="filter-tab" 
-            :class="{ active: staffFilterType === 'doctor' }"
-            @click="filterStaff('doctor')"
-          >
-            鍖荤敓
-          </view>
-          <view 
-            class="filter-tab" 
-            :class="{ active: staffFilterType === 'nurse' }"
-            @click="filterStaff('nurse')"
-          >
-            鎶ゅ+
-          </view>
-        </view>
-        
-        <scroll-view class="staff-list-scroll" scroll-y="true">
-          <view 
-            class="staff-list-item" 
-            v-for="staff in filteredStaffList" 
-            :key="staff.userId"
-            @click="toggleStaffSelection(staff)"
-          >
-            <view class="staff-item-info">
-              <text class="staff-item-name">{{ staff.nickName }}</text>
-              <text class="staff-item-dept">{{ staff.deptName }}</text>
-            </view>
-            <view class="staff-item-check">
-              <uni-icons 
-                v-if="isStaffSelected(staff.userId)" 
-                type="checkmarkempty" 
-                size="24" 
-                color="#007AFF"
-              ></uni-icons>
-            </view>
-          </view>
-          <view v-if="filteredStaffList.length === 0" class="empty-tip">
-            鏆傛棤浜哄憳鏁版嵁
-          </view>
-        </scroll-view>
-        
-        <view class="popup-footer">
-          <button class="confirm-btn" @click="confirmStaffSelection">纭畾(宸查�墈{ selectedStaff.length }})</button>
-        </view>
-      </view>
-    </uni-popup>
   </scroll-view>
 </template>
 
@@ -270,14 +231,16 @@
 import uniDatetimePicker from '@/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue'
 import uniPopup from '@/uni_modules/uni-popup/components/uni-popup/uni-popup.vue'
 import { getTask, updateTask } from "@/api/task"
-import { listBranchUsers } from "@/api/system/user"
-import { baiduDistanceByAddress } from "@/api/map"
+import { tiandituDistanceByAddress } from "@/api/map"
 import { calculateTransferPrice } from "@/api/price"
 import MapSelector from './components/map-selector.vue'
 import VehicleSelector from './components/VehicleSelector.vue'
 import OrganizationSelector from './components/OrganizationSelector.vue'
 import HospitalSelector from './components/HospitalSelector.vue'
 import DiseaseSelector from './components/DiseaseSelector.vue'
+import DepartureSelector from './components/DepartureSelector.vue'
+import StaffSelector from './components/StaffSelector.vue'
+import DepartmentSelector from './components/DepartmentSelector.vue'
 import distanceCalculator from '@/mixins/distanceCalculator.js'
 
 export default {
@@ -288,7 +251,10 @@
     VehicleSelector,
     OrganizationSelector,
     HospitalSelector,
-    DiseaseSelector
+    DiseaseSelector,
+    DepartureSelector,
+    StaffSelector,
+    DepartmentSelector
   },
   mixins: [distanceCalculator],
   data() {
@@ -298,18 +264,22 @@
       taskDetail: null,
       selectedVehicleId: null,
       selectedOrganizationId: null,
+      allOrganizationIds: [], // 鎵�鏈夊彲閫夋満鏋処D鏁扮粍
       selectedRegion: '',
       mapSelectorType: '',
+      // 鎵╁睍 addressCoordinates 鏀寔澶氱閿悕
+      addressCoordinates: {
+        start: null,
+        end: null,
+        hospitalOutAddress: null,
+        hospitalInAddress: null
+      },
       // 鍑哄彂鍦颁俊鎭�
       departureAddress: '',
       departureLongitude: null,
       departureLatitude: null,
-      selectedDiseases: [], // 宸查�夋嫨鐨勭梾鎯呭垪琛�
-      selectedStaff: [], // 宸查�夋嫨鐨勪汉鍛樺垪琛�
-      allStaffList: [], // 鎵�鏈変汉鍛樺垪琛�
-      filteredStaffList: [], // 杩囨护鍚庣殑浜哄憳鍒楄〃
-      staffSearchKeyword: '', // 浜哄憳鎼滅储鍏抽敭璇�
-      staffFilterType: 'driver', // 浜哄憳绛涢�夌被鍨�
+      selectedDiseases: [], // 宸查�夋嫨鐨勭梾鎯呭垪琛紙纭繚鍒濆鍖栦负绌烘暟缁勶級
+      selectedStaff: [], // 宸查�夋嫨鐨勪汉鍛樺垪琛紙纭繚鍒濆鍖栦负绌烘暟缁勶級
       taskForm: {
         transferTime: '',
         patient: {
@@ -356,13 +326,17 @@
     if (options.id) {
       this.taskId = options.id
       this.loadTaskDetail()
-      this.loadDeptStaff() // 鍔犺浇浜哄憳鍒楄〃
     } else {
       this.$modal.showToast('浠诲姟ID涓嶈兘涓虹┖')
       setTimeout(() => {
         uni.navigateBack()
       }, 1500)
     }
+  },
+  
+  mounted() {
+    // 椤甸潰鎸傝浇鍚庡姞杞芥墍鏈夋満鏋処D
+    this.loadAllOrganizationIds()
   },
   methods: {
     // 鍔犺浇浠诲姟璇︽儏
@@ -392,8 +366,9 @@
           const info = this.taskDetail.emergencyInfo
           console.log('杞繍浠诲姟淇℃伅:', info)
           
-          // 杞繍鏃堕棿
-          this.taskForm.transferTime = this.taskDetail.plannedStartTime || ''
+          // 杞繍鏃堕棿锛堜慨澶嶏細1900骞寸殑鏃ユ湡鏄剧ず涓虹┖锛�
+          const transferTime = this.taskDetail.plannedStartTime || ''
+          this.taskForm.transferTime = transferTime && transferTime.startsWith('1900') ? '' : transferTime
           
           // 鎮h�呬俊鎭�
           this.taskForm.patient.contact = info.patientContact || ''
@@ -403,15 +378,17 @@
           this.taskForm.patient.idCard = info.patientIdCard || ''
           this.taskForm.patient.condition = info.patientCondition || ''
           
-          // 瑙f瀽鐥呮儏淇℃伅
-          this.parseDiseaseInfo(info.patientCondition, info.diseaseIds)
+          // 瑙f瀽鐥呮儏淇℃伅锛堜慨澶嶏細浣跨敤涓庡垱寤虹晫闈竴鑷寸殑閫昏緫锛�
+          this.parseDiseaseInfo(info.patientCondition, info.diseases)
           
           // 杞嚭鍖婚櫌淇℃伅
           this.taskForm.hospitalOut.id = info.hospitalOutId || null
           this.taskForm.hospitalOut.name = info.hospitalOutName || ''
           this.taskForm.hospitalOut.department = info.hospitalOutDepartment || ''
+          this.taskForm.hospitalOut.departmentId = info.hospitalOutDepartmentId || null
           this.taskForm.hospitalOut.bedNumber = info.hospitalOutBedNumber || ''
           this.taskForm.hospitalOut.address = info.hospitalOutAddress || ''
+          console.log('杞嚭鍖婚櫌绉戝ID:', info.hospitalOutDepartmentId)
           
           // 鍔犺浇杞嚭鍖婚櫌GPS鍧愭爣锛堜笉鏄剧ず锛屼絾淇濆瓨鍦ㄦ暟鎹腑锛�
           if (info.hospitalOutLongitude && info.hospitalOutLatitude) {
@@ -426,8 +403,10 @@
           this.taskForm.hospitalIn.id = info.hospitalInId || null
           this.taskForm.hospitalIn.name = info.hospitalInName || ''
           this.taskForm.hospitalIn.department = info.hospitalInDepartment || ''
+          this.taskForm.hospitalIn.departmentId = info.hospitalInDepartmentId || null
           this.taskForm.hospitalIn.bedNumber = info.hospitalInBedNumber || ''
           this.taskForm.hospitalIn.address = info.hospitalInAddress || ''
+          console.log('杞叆鍖婚櫌绉戝ID:', info.hospitalInDepartmentId)
           
           // 鍔犺浇杞叆鍖婚櫌GPS鍧愭爣锛堜笉鏄剧ず锛屼絾淇濆瓨鍦ㄦ暟鎹腑锛�
           if (info.hospitalInLongitude && info.hospitalInLatitude) {
@@ -444,7 +423,8 @@
         } else {
           console.warn('浠诲姟璇︽儏涓病鏈塭mergencyInfo瀛楁锛屽皾璇曚粠涓诲璞¤幏鍙栨暟鎹�')
           // 鍏煎澶勭悊锛氬鏋渆mergencyInfo涓嶅瓨鍦紝灏濊瘯浠庝富瀵硅薄鑾峰彇
-          this.taskForm.transferTime = this.taskDetail.plannedStartTime || ''
+          const transferTime = this.taskDetail.plannedStartTime || ''
+          this.taskForm.transferTime = transferTime && transferTime.startsWith('1900') ? '' : transferTime
           this.taskForm.transferDistance = this.taskDetail.estimatedDistance ? String(this.taskDetail.estimatedDistance) : ''
         }
         
@@ -489,20 +469,30 @@
           console.log('璁剧疆鐩爣鍦板潗鏍�:', this.taskDetail.destinationLongitude, this.taskDetail.destinationLatitude)
         }
         
-        // 璁剧疆鎵ц浜哄憳
-        if (this.taskDetail.assignees && this.taskDetail.assignees.length > 0) {
+        // 璁剧疆鎵ц浜哄憳锛堜慨澶嶏細纭繚 assignees 涓嶄负 null锛屽苟姝g‘鏄犲皠瀛楁锛�
+        if (this.taskDetail.assignees && Array.isArray(this.taskDetail.assignees) && this.taskDetail.assignees.length > 0) {
           console.log('鍘熷鎵ц浜哄憳鏁版嵁:', this.taskDetail.assignees)
-          this.selectedStaff = this.taskDetail.assignees.map(assignee => ({
-            userId: assignee.userId,
-            nickName: assignee.userName,
-            type: assignee.userType || 'driver',
-            phonenumber: '',
-            deptName: ''
-          }))
+          this.selectedStaff = this.taskDetail.assignees.map(assignee => {
+            console.log('澶勭悊鎵ц浜哄憳:', assignee)
+            console.log('  - userName:', assignee.userName)
+            console.log('  - nickName:', assignee.nickName)
+            console.log('  - phonenumber:', assignee.phonenumber)
+            console.log('  - phone:', assignee.phone)
+            
+            return {
+              userId: assignee.userId,
+              nickName: assignee.userName || assignee.nickName || '',
+              type: assignee.userType || 'driver',
+              phonenumber: assignee.phonenumber || assignee.phone || '',
+              deptName: assignee.deptName || ''
+            }
+          })
           console.log('澶勭悊鍚庣殑鎵ц浜哄憳鍒楄〃:', this.selectedStaff)
         } else {
           console.warn('浠诲姟娌℃湁鍒嗛厤鎵ц浜哄憳鎴朼ssignees涓虹┖')
           console.log('taskDetail.assignees:', this.taskDetail.assignees)
+          // 纭繚 selectedStaff 鍒濆鍖栦负绌烘暟缁�
+          this.selectedStaff = []
         }
         
         console.log('琛ㄥ崟鏁版嵁濉厖瀹屾垚:', this.taskForm)
@@ -521,17 +511,65 @@
       console.log('閫変腑杞﹁締:', vehicle)
     },
     
+    // 鍔犺浇鎵�鏈夋満鏋処D
+    loadAllOrganizationIds() {
+      // 閫氳繃 OrganizationSelector 缁勪欢鑾峰彇鎵�鏈夋満鏋�
+      const orgSelector = this.$refs.organizationSelector
+      if (orgSelector) {
+        orgSelector.reload().then(organizations => {
+          this.allOrganizationIds = organizations.map(org => org.deptId)
+          console.log('鎵�鏈夋満鏋処D:', this.allOrganizationIds)
+        })
+      } else {
+        // 濡傛灉缁勪欢杩樻湭鎸傝浇,绋嶅悗閲嶈瘯
+        setTimeout(() => {
+          this.loadAllOrganizationIds()
+        }, 100)
+      }
+    },
+    
     // 褰掑睘鏈烘瀯閫夋嫨鍙樺寲
     onOrganizationChange(orgData) {
-      // orgData 鍖呭惈锛歞eptId, deptName, serviceOrderClass, region
+      // orgData 鍖呭惈锛歞eptId, deptName, serviceOrderClass, region, departureAddress, departureLongitude, departureLatitude
       this.selectedOrganizationId = orgData.deptId
-      console.log('閫変腑褰掑睘鏈烘瀯:', orgData.deptName, '閮ㄩ棬ID:', orgData.deptId)
+      this.selectedRegion = orgData.region
+      
+      // 鑷姩濉厖鍑哄彂鍦颁俊鎭紙鏈烘瀯鐨勫湴鍧�鍜屽潗鏍囷級
+      if (orgData.departureAddress) {
+        this.departureAddress = orgData.departureAddress
+        this.departureLongitude = orgData.departureLongitude || null
+        this.departureLatitude = orgData.departureLatitude || null
+        console.log('鑷姩濉厖鏈烘瀯鍑哄彂鍦�:', this.departureAddress, '鍧愭爣:', this.departureLongitude, this.departureLatitude)
+      }
+      
+      console.log('閫変腑褰掑睘鏈烘瀯:', orgData.deptName, '閮ㄩ棬ID:', orgData.deptId, '鍦板煙:', orgData.region)
+    },
+    
+    // 鍑哄彂鍦板湴鍧�閫夋嫨锛堜粠鍦板浘寤鸿涓�夋嫨锛�
+    onDepartureAddressSelected(data) {
+      // data 鍖呭惈: address, longitude, latitude, location
+      console.log('鍑哄彂鍦板湴鍧�閫夋嫨:', data)
+      // 缁勪欢宸茬粡閫氳繃 .sync 鏇存柊浜� departureAddress, departureLongitude, departureLatitude
+    },
+    
+    // 鍑哄彂鍦癎PS瀹氫綅鎴愬姛
+    onDepartureLocationSuccess(data) {
+      // data 鍖呭惈: address, longitude, latitude
+      console.log('鍑哄彂鍦癎PS瀹氫綅鎴愬姛:', data)
+      // 缁勪欢宸茬粡閫氳繃 .sync 鏇存柊浜� departureAddress, departureLongitude, departureLatitude
     },
     
     // 杞嚭鍖婚櫌鍙樺寲
     onHospitalOutChange(hospitalData) {
       console.log('杞嚭鍖婚櫌鍙樺寲:', hospitalData)
       // 缁勪欢宸茬粡閫氳繃 v-model 鏇存柊浜� taskForm.hospitalOut
+      
+      // 濡傛灉閫夋嫨鐨勬槸"瀹朵腑"锛岃嚜鍔ㄨ缃瀹や负"鍏跺畠"
+      if (hospitalData.name === '瀹朵腑') {
+        this.taskForm.hospitalOut.department = '鍏跺畠'
+        this.taskForm.hospitalOut.departmentId = null
+      }
+      // 娉ㄦ剰锛氶�夋嫨鏂扮殑鍖婚櫌鏃讹紝涓嶈嚜鍔ㄦ洿鏂扮瀹や俊鎭紝淇濇寔鐢ㄦ埛宸查�夋嫨鐨勭瀹�
       
       // 濡傛灉杞叆鍦板潃宸插~鍐�,鑷姩璁$畻璺濈
       if (this.taskForm.hospitalIn.address) {
@@ -557,6 +595,13 @@
       console.log('杞叆鍖婚櫌鍙樺寲:', hospitalData)
       // 缁勪欢宸茬粡閫氳繃 v-model 鏇存柊浜� taskForm.hospitalIn
       
+      // 濡傛灉閫夋嫨鐨勬槸"瀹朵腑"锛岃嚜鍔ㄨ缃瀹や负"鍏跺畠"
+      if (hospitalData.name === '瀹朵腑') {
+        this.taskForm.hospitalIn.department = '鍏跺畠'
+        this.taskForm.hospitalIn.departmentId = null
+      }
+      // 娉ㄦ剰锛氶�夋嫨鏂扮殑鍖婚櫌鏃讹紝涓嶈嚜鍔ㄦ洿鏂扮瀹や俊鎭紝淇濇寔鐢ㄦ埛宸查�夋嫨鐨勭瀹�
+      
       // 濡傛灉杞嚭鍦板潃宸插~鍐�,鑷姩璁$畻璺濈
       if (this.taskForm.hospitalOut.address) {
         // 濡傛灉涓や釜閮戒笉鏄�"瀹朵腑",浣跨敤鍖婚櫌璺濈璁$畻
@@ -576,217 +621,137 @@
       }
     },
     
+    // 杞嚭绉戝鍙樺寲
+    onHospitalOutDepartmentChange(data) {
+      console.log('杞嚭绉戝鍙樺寲:', data)
+      if (data && typeof data === 'object') {
+        this.taskForm.hospitalOut.department = data.department
+        this.taskForm.hospitalOut.departmentId = data.departmentId
+      } else {
+        this.taskForm.hospitalOut.department = data
+        this.taskForm.hospitalOut.departmentId = null
+      }
+    },
+    
+    // 杞叆绉戝鍙樺寲
+    onHospitalInDepartmentChange(data) {
+      console.log('杞叆绉戝鍙樺寲:', data)
+      if (data && typeof data === 'object') {
+        this.taskForm.hospitalIn.department = data.department
+        this.taskForm.hospitalIn.departmentId = data.departmentId
+      } else {
+        this.taskForm.hospitalIn.department = data
+        this.taskForm.hospitalIn.departmentId = null
+      }
+    },
+    
     // 鐥呮儏鍙樺寲
     onDiseaseChange(diseases) {
       console.log('鐥呮儏鍙樺寲:', diseases)
       // 缁勪欢宸茬粡閫氳繃 v-model 鏇存柊浜� selectedDiseases
     },
     
-    // 鍔犺浇褰撳墠鐢ㄦ埛鎵�鍦ㄥ垎鍏徃鐨勬墍鏈変汉鍛�
-    loadDeptStaff() {
-      console.log('寮�濮嬪姞杞戒汉鍛樺垪琛�')
+    // 浜哄憳鍙樺寲
+    onStaffChange(staff) {
+      console.log('閫変腑浜哄憳鍙樺寲:', staff)
+      // 缁勪欢宸茬粡閫氳繃 v-model 鏇存柊浜� selectedStaff
+    },
+    
+    // 瑙f瀽鐥呮儏淇℃伅锛堜粠瀛楃涓茶В鏋愬嚭ICD-10鐤剧梾鍒楄〃锛�- 淇锛氫笌鍒涘缓鐣岄潰淇濇寔涓�鑷�
+    parseDiseaseInfo(conditionText, diseases) {
+      console.log('========== 寮�濮嬭В鏋愮梾鎯呬俊鎭� ==========')
+      console.log('conditionText:', conditionText)
+      console.log('diseases鏁扮粍:', diseases)
       
-      listBranchUsers().then(response => {
-        console.log('浜哄憳鍒楄〃API鍝嶅簲:', response)
-        const userList = response.data || []
-        console.log('瑙f瀽鍑虹殑鐢ㄦ埛鍒楄〃:', userList, '鏁伴噺:', userList.length)
-        
-        this.allStaffList = userList.map(user => ({
-          userId: user.userId,
-          nickName: user.nickName,
-          phonenumber: user.phonenumber,
-          deptName: user.dept?.deptName || '',
-          postName: user.posts && user.posts.length > 0 ? user.posts[0].postName : '',
-          roleName: user.roles && user.roles.length > 0 ? user.roles[0].roleName : '',
-          type: this.getUserType(user)
-        }))
-        
-        console.log('澶勭悊鍚庣殑浜哄憳鍒楄〃:', this.allStaffList, '鏁伴噺:', this.allStaffList.length)
-        
-        this.filterStaffList()
-      }).catch(error => {
-        console.error('鍔犺浇浜哄憳鍒楄〃澶辫触:', error)
-        this.$modal.showToast('鍔犺浇浜哄憳鍒楄〃澶辫触')
-      })
-    },
-    
-    // 鏍规嵁鐢ㄦ埛鐨勫矖浣嶆垨瑙掕壊鍒ゆ柇绫诲瀷
-    getUserType(user) {
-      const postName = user.posts && user.posts.length > 0 ? user.posts[0].postName : ''
-      const roleName = user.roles && user.roles.length > 0 ? user.roles[0].roleName : ''
-      const deptName = user.dept?.deptName || ''
-      
-      if (postName.includes('鍙告満') || roleName.includes('鍙告満') || deptName.includes('杞﹂槦') || deptName.includes('鍙告満')) {
-        return 'driver'
-      }
-      if (postName.includes('鎶ゅ+') || roleName.includes('鎶ゅ+') || deptName.includes('鎶ゅ+')) {
-        return 'nurse'
-      }
-      if (postName.includes('鍖荤敓') || roleName.includes('鍖荤敓') || deptName.includes('鍖荤敓')) {
-        return 'doctor'
-      }
-      if (deptName.includes('鍖绘姢')) {
-        return 'doctor'
-      }
-      
-      return 'driver'
-    },
-    
-    getUserTypeName(staffType) {
-      switch(staffType) {
-        case 'nurse':
-          return '鎶ゅ+'
-        case 'doctor':
-          return '鍖荤敓'
-        case 'driver':
-          return '鍙告満'
-        default:
-          return '鍙告満'
-      }
-    },
-    
-    // 鏄剧ず浜哄憳閫夋嫨寮圭獥
-    showStaffSelector() {
-      this.$refs.staffPopup.open()
-      this.filterStaffList()
-    },
-    
-    // 鍏抽棴浜哄憳閫夋嫨寮圭獥
-    closeStaffSelector() {
-      this.$refs.staffPopup.close()
-      this.staffSearchKeyword = ''
-      this.staffFilterType = 'driver'
-    },
-    
-    // 浜哄憳鎼滅储
-    onStaffSearch(e) {
-      this.staffSearchKeyword = e.detail.value
-      this.filterStaffList()
-    },
-    
-    // 绛涢�変汉鍛樼被鍨�
-    filterStaff(type) {
-      this.staffFilterType = type
-      this.filterStaffList()
-    },
-    
-    // 杩囨护浜哄憳鍒楄〃
-    filterStaffList() {
-      console.log('寮�濮嬭繃婊や汉鍛樺垪琛紝鍘熷鏁伴噺:', this.allStaffList.length)
-      let list = [...this.allStaffList]
-      
-      // 鎸夌被鍨嬭繃婊�
-      if (this.staffFilterType === 'driver') {
-        list = list.filter(staff => staff.type === 'driver')
-      } else if (this.staffFilterType === 'doctor') {
-        list = list.filter(staff => staff.type === 'doctor')
-      } else if (this.staffFilterType === 'nurse') {
-        list = list.filter(staff => staff.type === 'nurse')
-      }
-      
-      console.log('鎸夌被鍨嬭繃婊ゅ悗:', this.staffFilterType, '鏁伴噺:', list.length)
-      
-      // 鎸夊叧閿瘝鎼滅储
-      if (this.staffSearchKeyword && this.staffSearchKeyword.trim() !== '') {
-        const keyword = this.staffSearchKeyword.trim().toLowerCase()
-        list = list.filter(staff => {
-          return staff.nickName.toLowerCase().includes(keyword) || 
-                 (staff.phonenumber && staff.phonenumber.includes(keyword))
-        })
-      }
-      
-      console.log('鎸夊叧閿瘝杩囨护鍚庯紝鏁伴噺:', list.length)
-      
-      this.filteredStaffList = list
-    },
-    
-    // 鍒囨崲浜哄憳閫変腑鐘舵��
-    toggleStaffSelection(staff) {
-      const index = this.selectedStaff.findIndex(s => s.userId === staff.userId)
-      
-      if (index > -1) {
-        // 宸查�変腑锛岀Щ闄�
-        this.selectedStaff.splice(index, 1)
-      } else {
-        // 鏈�変腑锛屾坊鍔�
-        this.selectedStaff.push(staff)
-      }
-    },
-    
-    // 鍒ゆ柇浜哄憳鏄惁宸查�変腑
-    isStaffSelected(userId) {
-      return this.selectedStaff.some(staff => staff.userId === userId)
-    },
-    
-    // 纭浜哄憳閫夋嫨
-    confirmStaffSelection() {
-      if (this.selectedStaff.length === 0) {
-        this.$modal.showToast('璇疯嚦灏戦�夋嫨涓�鍚嶄汉鍛�')
-        return
-      }
-      this.closeStaffSelector()
-    },
-    
-    // 绉婚櫎浜哄憳
-    removeStaff(index) {
-      this.selectedStaff.splice(index, 1)
-    },
-    
-    // 瑙f瀽鐥呮儏淇℃伅锛堜粠瀛楃涓茶В鏋愬嚭ICD-10鐤剧梾鍒楄〃锛�
-    parseDiseaseInfo(conditionText, diseaseIds) {
       if (!conditionText) {
+        console.log('鐥呮儏鏂囨湰涓虹┖锛屾竻绌洪�変腑鐥呮儏')
         this.selectedDiseases = []
         this.taskForm.patient.otherCondition = ''
         return
       }
-      
-      // 瑙f瀽diseaseIds锛堥�楀彿鍒嗛殧鐨勫瓧绗︿覆杞负鏁扮粍锛�
-      const diseaseIdArray = diseaseIds ? diseaseIds.split(',').map(id => parseInt(id.trim())).filter(id => !isNaN(id)) : []
       
       // 濡傛灉鍖呭惈"鍏朵粬锛�"鍒嗛殧绗︼紝鎷嗗垎鐥呮儏鍜屽叾浠栨弿杩�
       if (conditionText.includes('\n鍏朵粬锛�')) {
         const parts = conditionText.split('\n鍏朵粬锛�')
         const diseasePart = parts[0]
         this.taskForm.patient.otherCondition = parts[1] || ''
+        console.log('鐥呮儏閮ㄥ垎:', diseasePart)
+        console.log('鍏朵粬鎻忚堪:', this.taskForm.patient.otherCondition)
         
         // 瑙f瀽鐥呮儏閮ㄥ垎
-        this.parseDiseaseList(diseasePart, diseaseIdArray)
+        this.parseDiseaseList(diseasePart, diseases)
       } else {
-        // 娌℃湁"鍏朵粬"閮ㄥ垎锛屽叏閮ㄤ綔涓哄叾浠栨弿杩�
-        this.taskForm.patient.otherCondition = conditionText
-        this.selectedDiseases = []
+        // 娌℃湁"鍏朵粬"閮ㄥ垎锛屽皾璇曡В鏋愭槸鍚︽湁鐤剧梾鍒楄〃
+        const hasDiseasesFormat = /([^(]+)\(([^)]+)\)/.test(conditionText)
+        console.log('鏄惁鍖呭惈鐤剧梾鏍煎紡:', hasDiseasesFormat)
+        
+        if (hasDiseasesFormat) {
+          // 鏈夌柧鐥呮牸寮忥紝瑙f瀽鐤剧梾鍒楄〃
+          this.parseDiseaseList(conditionText, diseases)
+          this.taskForm.patient.otherCondition = ''
+        } else {
+          // 娌℃湁鐤剧梾鏍煎紡锛屽叏閮ㄤ綔涓哄叾浠栨弿杩�
+          console.log('鏃犵柧鐥呮牸寮忥紝浣滀负鍏朵粬鎻忚堪')
+          this.taskForm.patient.otherCondition = conditionText
+          this.selectedDiseases = []
+        }
       }
+      
+      console.log('瑙f瀽瀹屾垚锛宻electedDiseases:', JSON.stringify(this.selectedDiseases))
+      console.log('瑙f瀽瀹屾垚锛宱therCondition:', this.taskForm.patient.otherCondition)
+      console.log('========================================\n')
     },
     
     // 瑙f瀽鐥呮儏鍒楄〃锛堟牸寮忥細鐤剧梾鍚�(缂栫爜)銆佺柧鐥呭悕(缂栫爜)锛�
-    parseDiseaseList(diseasePart, diseaseIdArray) {
+    parseDiseaseList(diseasePart, diseasesData) {
+      console.log('--- parseDiseaseList 寮�濮� ---')
+      console.log('diseasePart:', diseasePart)
+      console.log('diseasesData:', diseasesData)
+      
       if (!diseasePart) {
+        console.log('鐥呮儏閮ㄥ垎涓虹┖')
         this.selectedDiseases = []
         return
       }
       
+      // 濡傛灉鍚庣宸茬粡杩斿洖浜哾iseases鏁扮粍锛岀洿鎺ヤ娇鐢�
+      if (diseasesData && Array.isArray(diseasesData) && diseasesData.length > 0) {
+        console.log('浣跨敤鍚庣杩斿洖鐨刣iseases鏁扮粍锛屾暟閲�:', diseasesData.length)
+        this.selectedDiseases = diseasesData.map(d => ({
+          id: d.icdId || null,
+          icdCode: d.icdCode || '',
+          icdName: d.icdName || ''
+        }))
+        console.log('瑙f瀽鍚庣殑selectedDiseases:', JSON.stringify(this.selectedDiseases))
+        return
+      }
+      
+      // 鍚﹀垯锛屼粠瀛楃涓茶В鏋�
+      console.log('浠庡瓧绗︿覆瑙f瀽鐥呮儏')
       // 鍖归厤鏍煎紡锛氱柧鐥呭悕(缂栫爜)
       const regex = /([^(]+)\(([^)]+)\)/g
       const diseases = []
       let match
-      let index = 0
       
       while ((match = regex.exec(diseasePart)) !== null) {
         const icdName = match[1].replace(/[銆�,\s]+$/, '').replace(/^[銆�,\s]+/, '').trim()
         const icdCode = match[2].trim()
         
+        console.log('鍖归厤鍒扮梾鎯� - 鍚嶇О:', icdName, '缂栫爜:', icdCode)
+        
         // 鍙坊鍔犵梾鎯呭悕绉颁笉涓虹┖鐨勯」
         if (icdName) {
           diseases.push({
-            icdName: icdName,
+            id: null, // 浠庡瓧绗︿覆瑙f瀽鏃讹紝娌℃湁ID
             icdCode: icdCode,
-            id: diseaseIdArray && index < diseaseIdArray.length ? diseaseIdArray[index] : null
+            icdName: icdName
           })
-          index++
         }
       }
       
+      console.log('浠庡瓧绗︿覆瑙f瀽瀹屾垚锛屾暟閲�:', diseases.length)
       this.selectedDiseases = diseases
+      console.log('--- parseDiseaseList 缁撴潫 ---\n')
     },
     
     // 閫夋嫨杞嚭鍖婚櫌鍦板潃
@@ -865,6 +830,12 @@
         return false
       }
       
+      // 楠岃瘉鑱旂郴鐢佃瘽鏍煎紡
+      if (this.taskForm.patient.phone && !/^1[3-9]\d{9}$/.test(this.taskForm.patient.phone)) {
+        this.$modal.showToast('璇疯緭鍏ユ纭殑鎵嬫満鍙风爜')
+        return false
+      }
+      
       if (!this.taskForm.hospitalOut.name) {
         this.$modal.showToast('璇疯緭鍏ヨ浆鍑哄尰闄㈠悕绉�')
         return false
@@ -872,6 +843,11 @@
       
       if (!this.taskForm.hospitalOut.address) {
         this.$modal.showToast('璇烽�夋嫨杞嚭鍖婚櫌鍦板潃')
+        return false
+      }
+      
+      if (!this.taskForm.hospitalOut.department) {
+        this.$modal.showToast('璇烽�夋嫨杞嚭绉戝')
         return false
       }
       
@@ -885,10 +861,58 @@
         return false
       }
       
+      if (!this.taskForm.hospitalIn.department) {
+        this.$modal.showToast('璇烽�夋嫨杞叆绉戝')
+        return false
+      }
+      
+      // 楠岃瘉鎴愪氦浠峰繀濉�
+      if (!this.taskForm.price || this.taskForm.price.trim() === '') {
+        this.$modal.showToast('璇疯緭鍏ユ垚浜や环')
+        return false
+      }
+      
+      // 楠岃瘉鎴愪氦浠锋牸寮忥紙蹇呴』鏄暟瀛楋級
+      if (isNaN(this.taskForm.price) || parseFloat(this.taskForm.price) < 0) {
+        this.$modal.showToast('璇疯緭鍏ユ湁鏁堢殑鎴愪氦浠�')
+        return false
+      }
+      
+      // 楠岃瘉鎮h�呰韩浠借瘉鏍煎紡锛堝鏋滃~鍐欎簡锛�
+      if (this.taskForm.patient.idCard && this.taskForm.patient.idCard.trim() !== '') {
+        const idCard = this.taskForm.patient.idCard.trim()
+        // 绠�鍗曢獙璇�18浣嶈韩浠借瘉
+        if (!/^\d{17}[\dXx]$/.test(idCard)) {
+          this.$modal.showToast('璇疯緭鍏ユ纭殑18浣嶈韩浠借瘉鍙风爜')
+          return false
+        }
+      }
+      
+      // 楠岃瘉鐥呮儏鑷冲皯閫夋嫨涓�椤规垨濉啓鍏朵粬鎻忚堪
+      if ((!this.selectedDiseases || this.selectedDiseases.length === 0) && 
+          (!this.taskForm.patient.otherCondition || this.taskForm.patient.otherCondition.trim() === '')) {
+        this.$modal.showToast('璇烽�夋嫨鐥呮儏鎴栧~鍐欏叾浠栫梾鎯呮弿杩�')
+        return false
+      }
+      
+      // 楠岃瘉鎵ц浜哄憳鑷冲皯閫夋嫨涓�涓�
+      if (!this.selectedStaff || this.selectedStaff.length === 0) {
+        this.$modal.showToast('璇疯嚦灏戦�夋嫨涓�涓墽琛屼汉鍛�')
+        return false
+      }
+      
       return true
     },
     
     buildSubmitData() {
+      // 纭繚 selectedDiseases 鍜� selectedStaff 涓嶄负 null锛堜慨澶嶏細闃叉杩唬 null 瀵艰嚧閿欒锛�
+      if (!this.selectedDiseases) {
+        this.selectedDiseases = []
+      }
+      if (!this.selectedStaff) {
+        this.selectedStaff = []
+      }
+      
       // 鍚堝苟鐥呮儏淇℃伅锛氶�変腑鐨処CD-10鐤剧梾 + 鍏朵粬鎻忚堪
       let conditionText = ''
       if (this.selectedDiseases.length > 0) {
@@ -909,47 +933,46 @@
         }
       }
       
+      // 鏋勫缓鎻愪氦鏁版嵁 - 浣跨敤涓� TaskCreateVO 涓�鑷寸殑缁撴瀯
       const submitData = {
         taskId: this.taskId,
         taskType: 'EMERGENCY_TRANSFER',
         deptId: this.selectedOrganizationId,
         vehicleIds: this.selectedVehicleId ? [this.selectedVehicleId] : [],
         plannedStartTime: this.taskForm.transferTime,
-        // 鍑哄彂鍦颁娇鐢� departureAddress锛堝鏋滄湁锛夛紝鍚﹀垯浣跨敤杞嚭鍖婚櫌鍦板潃
+        
+        // 鍑哄彂鍦板湴鍧�鍜屽潗鏍囷紙浣跨敤杞嚭鍖婚櫌鍦板潃锛�
         departureAddress: this.departureAddress || this.taskForm.hospitalOut.address,
-        // 鐩爣鍦颁娇鐢ㄨ浆鍏ュ尰闄㈠湴鍧�
+        departureLongitude: this.departureLongitude || (this.addressCoordinates.hospitalOutAddress ? this.addressCoordinates.hospitalOutAddress.lng : null),
+        departureLatitude: this.departureLatitude || (this.addressCoordinates.hospitalOutAddress ? this.addressCoordinates.hospitalOutAddress.lat : null),
+        
+        // 鐩爣鍦板湴鍧�鍜屽潗鏍囷紙浣跨敤杞叆鍖婚櫌鍦板潃锛�
         destinationAddress: this.taskForm.hospitalIn.address,
+        destinationLongitude: this.addressCoordinates.hospitalInAddress ? this.addressCoordinates.hospitalInAddress.lng : null,
+        destinationLatitude: this.addressCoordinates.hospitalInAddress ? this.addressCoordinates.hospitalInAddress.lat : null,
+        
+        // 杞繍璺濈鍜屼环鏍硷紙涓讳换鍔″瓧娈碉級
+        distance: this.taskForm.transferDistance ? parseFloat(this.taskForm.transferDistance) : null,
+        price: this.taskForm.price ? parseFloat(this.taskForm.price) : null,
+        
         // 鐥呮儏ID鍒楄〃锛堢敤浜庡悓姝ヨ皟搴﹀崟鐨凮rdICD_ID鍙傛暟锛�
         diseaseIds: this.selectedDiseases.map(d => d.id).filter(id => id !== null),
-        // 鎵ц浜哄憳鍒楄〃
-        assignees: this.selectedStaff.map(staff => ({
+        
+        // 鎵ц浜哄憳鍒楄〃锛堢‘淇濅笉涓� null锛�
+        assignees: (this.selectedStaff && Array.isArray(this.selectedStaff)) ? this.selectedStaff.map(staff => ({
           userId: staff.userId,
           userName: staff.nickName,
           userType: staff.type
-        })),
-        emergencyInfo: {
-          patientContact: this.taskForm.patient.contact,
-          patientPhone: this.taskForm.patient.phone,
-          patientName: this.taskForm.patient.name,
-          patientGender: this.taskForm.patient.gender,
-          patientIdCard: this.taskForm.patient.idCard,
-          patientCondition: conditionText, // 浣跨敤鍚堝苟鍚庣殑鐥呮儏淇℃伅
-          hospitalOutName: this.taskForm.hospitalOut.name,
-          hospitalOutDepartment: this.taskForm.hospitalOut.department,
-          hospitalOutBedNumber: this.taskForm.hospitalOut.bedNumber,
-          hospitalOutAddress: this.taskForm.hospitalOut.address,
-          // 杞嚭鍖婚櫌GPS鍧愭爣锛堜繚瀛樺埌鎵╁睍琛級
-          hospitalOutLongitude: this.addressCoordinates.hospitalOutAddress ? this.addressCoordinates.hospitalOutAddress.lng : null,
-          hospitalOutLatitude: this.addressCoordinates.hospitalOutAddress ? this.addressCoordinates.hospitalOutAddress.lat : null,
-          hospitalInName: this.taskForm.hospitalIn.name,
-          hospitalInDepartment: this.taskForm.hospitalIn.department,
-          hospitalInBedNumber: this.taskForm.hospitalIn.bedNumber,
-          hospitalInAddress: this.taskForm.hospitalIn.address,
-          // 杞叆鍖婚櫌GPS鍧愭爣锛堜繚瀛樺埌鎵╁睍琛級
-          hospitalInLongitude: this.addressCoordinates.hospitalInAddress ? this.addressCoordinates.hospitalInAddress.lng : null,
-          hospitalInLatitude: this.addressCoordinates.hospitalInAddress ? this.addressCoordinates.hospitalInAddress.lat : null,
-          transferDistance: this.taskForm.transferDistance ? parseFloat(this.taskForm.transferDistance) : null,
-          transferPrice: this.taskForm.price ? parseFloat(this.taskForm.price) : null,
+        })) : [],
+        
+        // 鎮h�呬俊鎭紙宓屽瀵硅薄锛�
+        patient: {
+          contact: this.taskForm.patient.contact,
+          phone: this.taskForm.patient.phone,
+          name: this.taskForm.patient.name,
+          gender: this.taskForm.patient.gender,
+          idCard: this.taskForm.patient.idCard,
+          condition: conditionText, // 浣跨敤鍚堝苟鍚庣殑鐥呮儏淇℃伅
           // 鐥呮儏璇︾粏淇℃伅锛堣繃婊ゆ帀绌虹殑鐥呮儏鍚嶇О锛�
           diseases: this.selectedDiseases
             .filter(d => d.icdName && d.icdName.trim())
@@ -958,16 +981,32 @@
               icdCode: d.icdCode,
               icdName: d.icdName
             }))
+        },
+        
+        // 杞嚭鍖婚櫌淇℃伅锛堝祵濂楀璞★級
+        hospitalOut: {
+          id: this.taskForm.hospitalOut.id,
+          name: this.taskForm.hospitalOut.name,
+          address: this.taskForm.hospitalOut.address,
+          longitude: this.addressCoordinates.hospitalOutAddress ? this.addressCoordinates.hospitalOutAddress.lng : null,
+          latitude: this.addressCoordinates.hospitalOutAddress ? this.addressCoordinates.hospitalOutAddress.lat : null,
+          department: this.taskForm.hospitalOut.department,
+          departmentId: this.taskForm.hospitalOut.departmentId,
+          bedNumber: this.taskForm.hospitalOut.bedNumber
+        },
+        
+        // 杞叆鍖婚櫌淇℃伅锛堝祵濂楀璞★級
+        hospitalIn: {
+          id: this.taskForm.hospitalIn.id,
+          name: this.taskForm.hospitalIn.name,
+          address: this.taskForm.hospitalIn.address,
+          longitude: this.addressCoordinates.hospitalInAddress ? this.addressCoordinates.hospitalInAddress.lng : null,
+          latitude: this.addressCoordinates.hospitalInAddress ? this.addressCoordinates.hospitalInAddress.lat : null,
+          department: this.taskForm.hospitalIn.department,
+          departmentId: this.taskForm.hospitalIn.departmentId,
+          bedNumber: this.taskForm.hospitalIn.bedNumber
         }
       }
-      
-      // 鍑哄彂鍦癎PS鍧愭爣
-      if (this.departureLongitude && this.departureLatitude) {
-        submitData.departureLongitude = this.departureLongitude
-        submitData.departureLatitude = this.departureLatitude
-      }
-      
-      // 鐩爣鍦癎PS鍧愭爣鐢卞悗绔嚜鍔ㄨ幏鍙�
       
       return submitData
     },
@@ -980,6 +1019,9 @@
       this.$modal.confirm('纭畾瑕佷繚瀛樹慨鏀瑰悧锛�').then(() => {
         this.loading = true
         const submitData = this.buildSubmitData()
+        
+        console.log('鎻愪氦鏁版嵁 - 杞嚭鍖婚櫌绉戝ID:', submitData.hospitalOut.departmentId)
+        console.log('鎻愪氦鏁版嵁 - 杞叆鍖婚櫌绉戝ID:', submitData.hospitalIn.departmentId)
         
         updateTask(submitData).then(response => {
           this.loading = false
@@ -1021,7 +1063,8 @@
       
       // 璋冪敤鐧惧害鍦板浘API璁$畻璺濈
       const region = this.selectedRegion || '骞垮窞'
-      baiduDistanceByAddress(fromAddress, region, toAddress, region)
+      //baiduDistanceByAddress(fromAddress, region, toAddress, region)
+      tiandituDistanceByAddress(fromAddress,toAddress)
         .then(response => {
           uni.hideLoading()
           
@@ -1346,132 +1389,4 @@
       }
     }
   }
-  
-  .staff-popup-container {
-    height: 80vh;
-    background-color: white;
-    border-top-left-radius: 20rpx;
-    border-top-right-radius: 20rpx;
-    display: flex;
-    flex-direction: column;
-    
-    .popup-header {
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      padding: 20rpx 30rpx;
-      border-bottom: 1rpx solid #f0f0f0;
-      
-      .popup-title {
-        font-size: 32rpx;
-        font-weight: bold;
-        color: #333;
-      }
-      
-      .close-btn {
-        width: 50rpx;
-        height: 50rpx;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-      }
-    }
-    
-    .search-bar {
-      padding: 20rpx 30rpx;
-      border-bottom: 1rpx solid #f0f0f0;
-      
-      .search-input {
-        height: 70rpx;
-        padding: 0 20rpx;
-        background-color: #f5f5f5;
-        border-radius: 10rpx;
-        font-size: 28rpx;
-      }
-    }
-    
-    .filter-tabs {
-      display: flex;
-      padding: 20rpx 30rpx;
-      gap: 20rpx;
-      border-bottom: 1rpx solid #f0f0f0;
-      
-      .filter-tab {
-        flex: 1;
-        height: 60rpx;
-        line-height: 60rpx;
-        text-align: center;
-        background-color: #f5f5f5;
-        border-radius: 10rpx;
-        font-size: 28rpx;
-        color: #666;
-        
-        &.active {
-          background-color: #007AFF;
-          color: white;
-        }
-      }
-    }
-    
-    .staff-list-scroll {
-      flex: 1;
-      padding: 20rpx 30rpx;
-      
-      .staff-list-item {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        padding: 20rpx;
-        margin-bottom: 15rpx;
-        background-color: #f8f8f8;
-        border-radius: 10rpx;
-        
-        .staff-item-info {
-          flex: 1;
-          
-          .staff-item-name {
-            display: block;
-            font-size: 30rpx;
-            color: #333;
-            margin-bottom: 8rpx;
-          }
-          
-          .staff-item-dept {
-            display: block;
-            font-size: 24rpx;
-            color: #999;
-          }
-        }
-        
-        .staff-item-check {
-          width: 50rpx;
-          display: flex;
-          align-items: center;
-          justify-content: center;
-        }
-      }
-      
-      .empty-tip {
-        text-align: center;
-        padding: 100rpx 0;
-        color: #999;
-        font-size: 28rpx;
-      }
-    }
-    
-    .popup-footer {
-      padding: 20rpx 30rpx;
-      border-top: 1rpx solid #f0f0f0;
-      
-      .confirm-btn {
-        width: 100%;
-        height: 80rpx;
-        background-color: #007AFF;
-        color: white;
-        border-radius: 10rpx;
-        font-size: 32rpx;
-      }
-    }
-  }
-}
-</style>
\ No newline at end of file
+}
\ No newline at end of file

--
Gitblit v1.9.1