Переглянути джерело

pms 设备责任人配置 人员姓名过滤

zhangcl 1 місяць тому
батько
коміт
7bd1ba9fa8

+ 2 - 1
src/config/axios/service.ts

@@ -182,7 +182,8 @@ service.interceptors.response.use(
       // 判断是否包含rq/iot路径
       if (requestUrl.includes('rq/')||requestUrl.includes('system/dict')||requestUrl.includes('system/auth/get-permission-info')||requestUrl.includes('system/dept/list')
         ||requestUrl.includes('system/menu/simple-list')||requestUrl.includes('system/menu/list')||requestUrl.includes('system/dept/simple-list')
-        ||requestUrl.includes('pms/')||requestUrl.includes('system/user/page')||requestUrl.includes('supplier/base/page')||requestUrl.includes('system/dept/get')) {
+        ||requestUrl.includes('pms/')||requestUrl.includes('system/user/page')||requestUrl.includes('supplier/base/page')||requestUrl.includes('system/dept/get')
+        ||requestUrl.includes('system/user/simpleUserList')) {
         const localeStore = useLocaleStore()
         const lang = localeStore.getCurrentLocale.lang
         if (data&& data.data) {

+ 2 - 1
src/locales/en.ts

@@ -633,7 +633,8 @@ export default {
     rp:'ResponsiblePerson',
     operation:'Operation',
     adjustmentRecords:'AdjustmentRecords',
-    filterDevicePlaceholder: "Filter DeviceCode or DeviceName"
+    filterDevicePlaceholder: "Filter DeviceCode or DeviceName",
+    filterUserPlaceholder: "Filter Username"
   },
   configPerson:{
     deviceList:'DeviceList',

+ 2 - 1
src/locales/ru.ts

@@ -625,7 +625,8 @@ export default {
     rp:'责任人',
     operation:'操作',
     adjustmentRecords:'调整记录',
-    filterDevicePlaceholder: "输入设备编码或名称过滤"
+    filterDevicePlaceholder: "输入设备编码或名称过滤",
+    filterUserPlaceholder: "输入责任人姓名过滤"
   },
   configPerson:{
     deviceList:'设备列表',

+ 2 - 1
src/locales/zh-CN.ts

@@ -628,7 +628,8 @@ export default {
     rp:'责任人',
     operation:'操作',
     adjustmentRecords:'调整记录',
-    filterDevicePlaceholder: "输入设备编码或名称过滤"
+    filterDevicePlaceholder: "输入设备编码或名称过滤",
+    filterUserPlaceholder: "输入责任人姓名过滤"
   },
   configPerson:{
     deviceList:'设备列表',

+ 24 - 3
src/views/pms/device/personlog/ConfigDevicePerson.vue

@@ -28,7 +28,7 @@
             />
           </div>
 
-          <el-scrollbar height="400px">
+          <el-scrollbar height="450px">
             <el-checkbox-group v-model="selectedDevices">
               <div
                 v-for="device in filteredDevices"
@@ -62,10 +62,20 @@
             />
           </div>
 
+          <!-- 责任人搜索框 -->
+          <div class="filter-input">
+            <el-input
+              v-model="userFilterText"
+              :placeholder="t('devicePerson.filterUserPlaceholder')"
+              clearable
+              prefix-icon="Search"
+            />
+          </div>
+
           <el-scrollbar height="450px">
             <el-checkbox-group v-model="selectedUsers" @change="handleUserSelectionChange">
               <div
-                v-for="user in simpleUsers"
+                v-for="user in filteredUsers"
                 :key="user.id"
                 class="list-item"
               >
@@ -173,7 +183,8 @@ const emit = defineEmits(['success', 'node-click']) // 定义 success 树点击
 // 响应式数据
 const selectedDevice = ref<number>(0)
 const selectedDevices = ref<number[]>([])
-
+// 责任人过滤文本
+const userFilterText = ref('')
 const selectedDept = ref('')
 const selectedUsers = ref<number[]>([])
 const tempRelations = ref<Array<{
@@ -333,6 +344,16 @@ const updateDeviceRelation = (device: IotDeviceVO, userIds: number[]) => {
   }
 }
 
+// 过滤后的人员列表计算属性
+const filteredUsers = computed(() => {
+  const searchText = userFilterText.value.toLowerCase().trim()
+  if (!searchText) return simpleUsers.value
+
+  return simpleUsers.value.filter(user => {
+    return (user.nickname || '').toLowerCase().includes(searchText)
+  })
+})
+
 const clearSelection = () => {
   selectedDevice.value = ''
   selectedUsers.value = []