浏览代码

新增养老版用户体征数据显示,修改用户体征数据显示错误的问题,将机构负责人修改成角色无法修改,修复语音播放开关错误的问题,增加交互记录的类型,增加总控护士主机APP更新,修改报警设备的搜索逻辑,优化部分文字和大小的问题

vothin 3 年之前
父节点
当前提交
9dada34a8e

+ 6 - 0
src/utils/enum/SosDeviceSettingTypeEnum.js

@@ -7,3 +7,9 @@ export const SOS_DEVICE_SETTING_TYPE = createEnum(
     CARING_PATTERN: [2, '关爱老人模式']
   }
 )
+
+export const SOS_DEVICE_SETTING_TYPE2 = [
+  { value: 0, name: '不启动' },
+  { value: 1, name: '疫情防控模式' },
+  { value: 2, name: '关爱老人模式' }
+]

+ 3 - 0
src/utils/enum/createEnum.js

@@ -25,6 +25,9 @@ export default function createEnum(definition) {
     },
     getDescFromValue(value) {
       return numToDescMap[value] || ''
+    },
+    getValueList() {
+      return numToDescMap
     }
   }
 }

+ 81 - 75
src/views/customer/components/customerManager.vue

@@ -217,6 +217,85 @@
             </el-form>
           </div>
         </el-tab-pane>
+        <el-tab-pane v-if="formmodel.id" label="用户亲属" name="customerRelative">
+          <div style="height: 450px">
+            <!--            <customer-relative :member-id="memberId" />-->
+            <el-table
+                :data="relativeData"
+                height="250"
+                border
+                style="width: 100%"
+            >
+              <el-table-column
+                  prop="true_name"
+                  label="亲属姓名"
+                  width="180"
+              />
+              <el-table-column
+                  prop="sex"
+                  label="性别"
+                  width="180"
+                  :formatter="formatterSex"
+              />
+              <el-table-column
+                  prop="relative_name"
+                  label="关系"
+                  width="180"
+              />
+              <el-table-column
+                  prop="mobile"
+                  label="手机号码"
+              />
+              <el-table-column
+                  label="操作"
+                  width="100"
+              >
+                <template slot-scope="scope">
+                  <el-button type="danger" size="mini" @click="handlerDeleteRelative(scope.row.member_id)">删除</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+
+            <el-form ref="relativeForm" :model="relativeFormModel" :rules="relativeRules" label-width="120px" style="margin-top:20px">
+              <el-row>
+                <el-col :span="12">
+                  <el-form-item label="姓名" prop="true_name">
+                    <el-input v-model="relativeFormModel.true_name" clearable placeholder="请输入姓名" :maxlength="20" />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="亲属关系" prop="relative_name">
+                    <el-input v-model="relativeFormModel.relative_name" clearable placeholder="请输入亲属关系 如:朋友" :maxlength="20" />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="12">
+                  <el-form-item label="性别" class="form-item-sex">
+                    <el-radio v-model="relativeFormModel.sex" :label="0">女</el-radio>
+                    <el-radio v-model="relativeFormModel.sex" :label="1">男</el-radio>
+                    <!--                    <el-radio v-model="relativeFormModel.sex" :label="2">未知</el-radio>-->
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="手机号码" prop="mobile">
+                    <el-input v-model="relativeFormModel.mobile" clearable placeholder="请输入手机号码" :maxlength="20" />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-form-item>
+                <el-button type="primary" @click="addRelative">添加</el-button>
+              </el-form-item>
+            </el-form>
+
+          </div>
+
+        </el-tab-pane>
+
+        <el-tab-pane v-if="formmodel.id" label="体征" name="customer-vital-sign">
+            <vital-sign-log :member-id="formmodel.member_id+''" :active-name="'vital_signs1'"/>
+        </el-tab-pane>
+
         <el-tab-pane v-if="formmodel.id" label="备注" name="customerRemark">
           <div style="height: 450px;display: flex;flex-direction: column;">
             <div style="height: 350px;overflow-y: auto;box-sizing:border-box;box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);margin:5px -10px">
@@ -279,80 +358,6 @@
             </div>
           </div>
         </el-tab-pane>
-        <el-tab-pane v-if="formmodel.id" label="用户亲属" name="customerRelative">
-          <div style="height: 450px">
-            <!--            <customer-relative :member-id="memberId" />-->
-            <el-table
-              :data="relativeData"
-              height="250"
-              border
-              style="width: 100%"
-            >
-              <el-table-column
-                prop="true_name"
-                label="亲属姓名"
-                width="180"
-              />
-              <el-table-column
-                prop="sex"
-                label="性别"
-                width="180"
-                :formatter="formatterSex"
-              />
-              <el-table-column
-                prop="relative_name"
-                label="关系"
-                width="180"
-              />
-              <el-table-column
-                prop="mobile"
-                label="手机号码"
-              />
-              <el-table-column
-                label="操作"
-                width="100"
-              >
-                <template slot-scope="scope">
-                  <el-button type="danger" size="mini" @click="handlerDeleteRelative(scope.row.member_id)">删除</el-button>
-                </template>
-              </el-table-column>
-            </el-table>
-
-            <el-form ref="relativeForm" :model="relativeFormModel" :rules="relativeRules" label-width="120px" style="margin-top:20px">
-              <el-row>
-                <el-col :span="12">
-                  <el-form-item label="姓名" prop="true_name">
-                    <el-input v-model="relativeFormModel.true_name" clearable placeholder="请输入姓名" :maxlength="20" />
-                  </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                  <el-form-item label="亲属关系" prop="relative_name">
-                    <el-input v-model="relativeFormModel.relative_name" clearable placeholder="请输入亲属关系 如:朋友" :maxlength="20" />
-                  </el-form-item>
-                </el-col>
-              </el-row>
-              <el-row>
-                <el-col :span="12">
-                  <el-form-item label="性别" class="form-item-sex">
-                    <el-radio v-model="relativeFormModel.sex" :label="0">女</el-radio>
-                    <el-radio v-model="relativeFormModel.sex" :label="1">男</el-radio>
-<!--                    <el-radio v-model="relativeFormModel.sex" :label="2">未知</el-radio>-->
-                  </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                  <el-form-item label="手机号码" prop="mobile">
-                    <el-input v-model="relativeFormModel.mobile" clearable placeholder="请输入手机号码" :maxlength="20" />
-                  </el-form-item>
-                </el-col>
-              </el-row>
-              <el-form-item>
-                <el-button type="primary" @click="addRelative">添加</el-button>
-              </el-form-item>
-            </el-form>
-
-          </div>
-
-        </el-tab-pane>
       </el-tabs>
     </el-dialog>
     <!-- 用户信息 -->
@@ -481,10 +486,11 @@ import * as RegExp from '@/utils/RegExp'
 import * as API_Remark from '@/api/ncs_remark'
 import * as API_User from '@/api/user'
 import { FRAME_TYPE } from '@/utils/enum/FrameTypeEnum'
+import vitalSignLog from '@/views/vital-sign/log'
 const serverUrl = domain.serverUrl
 export default {
   name: 'CustomerManager',
-  components: { ButtonCellRenderList, ButtonCellRender, ListFilter, RadioFilter },
+  components: { ButtonCellRenderList, ButtonCellRender, ListFilter, RadioFilter, vitalSignLog },
   filters: {
     unixDateFilter(val) {
       return unixToDate(val)

+ 1 - 1
src/views/customer/components/patientManager.vue

@@ -331,7 +331,7 @@
                 </el-tab-pane>
 
                 <el-tab-pane v-if="formmodel.id" label="体征" name="customer-vital-sign">
-                    <vital-sign-log :member-id="formmodel.id+''" :active-name="'vital_signs1'"/>
+                    <vital-sign-log :member-id="formmodel.member_id+''" :active-name="'vital_signs1'"/>
                 </el-tab-pane>
 
                 <el-tab-pane v-if="formmodel.id" label="备注" name="customerRemark">

+ 12 - 1
src/views/ncs-clerk/components/clerkList.vue

@@ -24,7 +24,7 @@
 <!--        </div>-->
         <div class="toolbar-btns">
           <el-button v-if="part_view" type="primary" size="mini" @click="handleAddMember">新增</el-button>
-          <el-button v-if="part_view" type="danger" size="mini" @click="batchDelete">批量删除</el-button>
+<!--          <el-button v-if="part_view" type="danger" size="mini" @click="batchDelete">批量删除</el-button>-->
         </div>
       </div>
       <el-pagination
@@ -125,6 +125,7 @@
               <el-select
                 v-model="addMemberForm.role_id"
                 placeholder="请选择角色"
+                :disabled="roleTypeDisabled"
                 clearable
               >
 
@@ -211,6 +212,7 @@ import AgGridImg from '@/components/AgGridImg/AgGridImg'
 import ImageViewer from 'element-ui/packages/image/src/image-viewer'
 import RadioFilter from '@/components/AgGridCustomFilter/RadioFilter'
 import * as API_User from "@/api/user";
+import {ROLE_TYPE} from "@/utils/enum/RoleTypeEnum";
 let prevOverflow = ''
 const serverUrl = domain.serverUrl
 export default {
@@ -249,6 +251,10 @@ export default {
       /** 选中行数据 */
       multipleSelection: [],
       rolesOptions: [],
+      /**
+       * 角色选择,如果是机构负责人无法选择
+       */
+      roleTypeDisabled: false,
       /** 添加会员 表单规则 */
       addMemberRules: {
         uname: [
@@ -572,6 +578,7 @@ export default {
       this.addMemberForm = { sex: 1 }
       this.addMemberRules.password[0].required = true
       this.dialogAddMemberVisible = true
+      this.roleTypeDisabled = false
     },
     /** 编辑用户 */
     handlerEdit(row) {
@@ -579,6 +586,10 @@ export default {
       this.nurseList = []
       if (this.roleZzId && this.roleZzId === row.role_id) { // 只有护士组长才能编辑小组成员
         this.getNurseByRoleId(row.member_id)
+      } else if (row.role_id === ROLE_TYPE.PRINCIPAL) {
+        this.roleTypeDisabled = true
+      } else {
+        this.roleTypeDisabled = false
       }
       this.imageUrl = row.face
       delete this.addMemberForm.password

+ 6 - 5
src/views/ncs-device/components/deviceManager.vue

@@ -214,10 +214,11 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="语音播放" prop="led_voice">
-              <el-radio-group v-model="deviceModel.led_voice" size="mini" prop="unit">
-                <el-radio :label=1>开启语音</el-radio>
-                <el-radio :label=0>关闭语音</el-radio>
-              </el-radio-group>
+              <el-checkbox v-model="deviceModel.led_voice" :true-label="1" :false-label="0">启用语音</el-checkbox>
+<!--              <el-radio-group v-model="deviceModel.led_voice" size="mini" prop="led_voice">-->
+<!--                <el-radio :label=1>开启语音</el-radio>-->
+<!--                <el-radio :label=0>关闭语音</el-radio>-->
+<!--              </el-radio-group>-->
             </el-form-item>
           </el-col>
         </el-row>
@@ -665,7 +666,7 @@ export default {
     },
     /** 处理搜索 */
     handlerSearch(keywords) {
-      this.params.query = keywords
+      this.params.query = keywordsgridSortChange
       this.getList()
     },
     /** 获取设备类型文字显示,从deviceTypeTransfer 中找出value值对应的key显示出来 */

+ 14 - 1
src/views/ncs-interaction/index.vue

@@ -116,7 +116,10 @@ export default {
       columnApi: null,
       localeText: AG_GRID_LOCALE_CN,
       rowSelection: null,
-      showViewer: false
+      showViewer: false,
+      tcpActionTransfer: [
+        { key: 'TCP反馈', value: 'CALLBACK' }
+      ]
     }
   },
   computed: {
@@ -310,6 +313,10 @@ export default {
           return '语音'
         case 'VIDEO':
           return '视频'
+        case 'SOS':
+          return '紧急呼叫'
+        case 'REINFORCE':
+          return '增援'
         case 'IM':
           return '留言'
         case 'DEVICE':
@@ -318,12 +325,18 @@ export default {
           return '数据'
         case 'EVENT':
           return '事件'
+        case 'SIDE':
+          return '边外信息'
         case 'BROADCAST':
           return '广播'
         case 'TIME':
           return '时间'
         case 'ENTRACEGUARD':
           return '门禁'
+        case 'CHANNELIM':
+          return '频道留言'
+        case 'LOCATION':
+          return '定位'
         default:
           return '未知'
       }

+ 5 - 0
src/views/ncs-orginazition/partInfoSetting.vue

@@ -21,6 +21,11 @@
           <app-version-manager :part-id="part_id" :device-type="101" />
         </keep-alive>
       </el-tab-pane>
+      <el-tab-pane label="总控护士主机APP更新" name="znurse">
+        <keep-alive>
+          <app-version-manager :part-id="part_id" :device-type="201" />
+        </keep-alive>
+      </el-tab-pane>
       <el-tab-pane label="门口机APP更新" name="door">
         <keep-alive>
           <app-version-manager :part-id="part_id" :device-type="3" />

+ 21 - 66
src/views/ncs-sos-device-setting/sos_device_setting.vue

@@ -39,7 +39,8 @@
           <el-col :span="12">
             <el-form-item label="报警设备模式" prop="type">
               <el-select v-model="sosDeviceSettingModel.type" placeholder="报警设备模式" clearable>
-                <el-option v-for="item in sosDeviceSettingsTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
+<!--                <el-option v-for="item in sosDeviceSettingsTypeOptions" :key="item.value" :label="item.key" :value="item.value" />-->
+                <el-option v-for="(item, index) in Object.keys(sosDeviceSettingEnum)" :key="index" :label="sosDeviceSettingEnum[item]" :value="parseInt(item)" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -70,6 +71,7 @@
 import { unixToDate } from '@/utils/Foundation'
 import { AG_GRID_LOCALE_CN } from '@/utils/AgGridVueLocaleCn'
 import ButtonCellRender from '@/components/AgGridCellRender/ButtonCellRender'
+import ListFilter from '@/components/AgGridCustomFilter/ListFilter'
 import RadioFilter from '@/components/AgGridCustomFilter/RadioFilter'
 import * as API_SosDeviceSetting from "@/api/ncs_sos_device_settings";
 import {DEVICE_TYPE} from "@/utils/enum/DeviceTypeEnum";
@@ -77,7 +79,7 @@ import {SOS_DEVICE_SETTING_TYPE} from "@/utils/enum/SosDeviceSettingTypeEnum";
 
 export default {
   name: 'Index',
-  components: { ButtonCellRender, RadioFilter},
+  components: { ButtonCellRender, RadioFilter, ListFilter},
   data: function() {
     return {
       /** 表格数据 */
@@ -105,7 +107,7 @@ export default {
       params: {
         page_size: 20,
         page_no: 1,
-        fixedCondition: 'nsds.part_id = ' + this.$store.getters.partId,
+        fixedCondition: 'part_id = ' + this.$store.getters.partId,
         sort: 'id',
         dir: 'desc'
       },
@@ -123,17 +125,11 @@ export default {
       timer: '',
       // sosDeviceSetting: {},
       sosDeviceSettingsTypeOptions: [
-        {
-          value: 0,
-          label: '不开启'
-        }, {
-          value: 1,
-          label: '疫情防控模式'
-        }, {
-          value: 2,
-          label: '关爱老人模式'
-        }
+        { key: '不开启', value: 0},
+        { key: '疫情防控模式', value: 1 },
+        { key: '关爱老人模式', value: 2 }
       ],
+      sosDeviceSettingEnum: SOS_DEVICE_SETTING_TYPE.getValueList(),
     }
   },
   computed: {
@@ -150,32 +146,25 @@ export default {
         headerCheckboxSelection: true,
         headerCheckboxSelectionFilteredOnly: true,
         checkboxSelection: true,
-        sortable: false,
+        sortable: false, filter: false,
         width: 50,
         resizable: false,
         valueGetter: this.hashValueGetter
       },
       { headerName: 'ID', field: 'id', sortable: true, filter: 'agNumberColumnFilter', width: 100 },
-      { headerName: '报警时间', field: 'setting_time', sortable: true,
-        filter: 'ListFilter' , width: 120,
-        valueGetter: this.settingTimeGetter
-      },
-      // { headerName: '单位', field: 'unit', sortable: true, filter: 'agTextColumnFilter' , width: 100 },
+      { headerName: '报警时间', field: 'setting_time', sortable: false, filter: false , width: 120, valueGetter: this.settingTimeGetter},
       { headerName: '报警模式', field: 'type', sortable: true,
-        filter: 'ListFilter' , width: 150,
+        filterFramework: 'ListFilter', width: 150,
+        filterParams: {
+          listData: this.sosDeviceSettingsTypeOptions
+        },
         valueGetter: this.sosDeviceSettingTypeGetter
       },
       { headerName: '设备id', field: 'device_id', sortable: true, filter: 'agNumberColumnFilter' , width: 100 },
-      { headerName: '设备别名', field: 'device_name', sortable: true, filter: 'agTextColumnFilter' , width: 150 },
-      { headerName: '设备类型', field: 'device_type', sortable: true,
-        filterFramework: 'ListFilter', width: 120,
-        // filterParams: {
-        //   listData: DEVICE_TYPE.getDesc
-        // },
-        valueGetter: this.deviceTypeGetter
-      },
-      { headerName: '设备标识码', field: 'device_eth_mac', sortable: true, filter: 'agTextColumnFilter', width: 200  },
-      { headerName: '空间全称', field: 'frame_full_name', sortable: true, filter: 'agTextColumnFilter' , width: 150 },
+      { headerName: '设备别名', field: 'device_name', sortable: false, filter: false , width: 150 },
+      { headerName: '设备类型', field: 'device_type', sortable: false, filter: false, width: 120, valueFormatter: this.deviceTypeGetter},
+      { headerName: '设备标识码', field: 'device_eth_mac', sortable: false, filter: false, width: 200  },
+      { headerName: '空间全称', field: 'frame_full_name', sortable: false, filter: false , width: 150 },
       {
         headerName: '编辑', field: 'id',
         cellRendererFramework: 'ButtonCellRender',
@@ -198,12 +187,10 @@ export default {
     this.defaultColDef = {
       sortable: true,
       resizable: true,
-      comparator: this.testComparator,
+      filter: true,
       filterParams: {
         debounceMs: 200,
         newRowsAction: 'keep',
-        textCustomComparator: this.textCustomComparator,
-        comparator: this.testComparator
       }
     }
     this.rowSelection = 'multiple'
@@ -213,17 +200,7 @@ export default {
     this.gridApi = this.gridOptions.api
     this.getList()
   },
-  beforeDestroy() {
-    clearTimeout(this.timer)
-  },
-  destroyed() {
-    clearTimeout(this.timer)
-  },
   methods: {
-    /** 选择行变化时,记录选中的行数据 */
-    selectFun(val) {
-      this.multipleSelection = val
-    },
     /** 分页大小发生改变 */
     handlePageSizeChange(size) {
       this.params.page_size = size
@@ -259,7 +236,7 @@ export default {
     },
     /** 处理搜索 */
     handlerSearch(keywords) {
-      this.params.query = keywords
+      this.params.filerStr = keywords
       this.getList()
     },
     /** 处理排序 */
@@ -273,20 +250,6 @@ export default {
       }
       this.getList()
     },
-    formatterDate(params) {
-      return unixToDate(params.value)
-    },
-    formatterName(params) {
-      if (params.value && params.data.role_name) {
-        return params.value + ' ' + params.data.role_name
-      } else {
-        if (params.value) {
-          return params.value
-        } else if (params.data.role_name) {
-          return '未绑定 ' + params.data.role_name
-        }
-      }
-    },
     filterModifed(param) {
       const model = param.api.getFilterModel()
       // 连接状态不经过服务器过滤
@@ -326,16 +289,8 @@ export default {
       }
       this.getList()
     },
-    // formatterSatus(param) {
-    //   if (param.value === 1) {
-    //     return '<span style="color:green">已启用</span>'
-    //   } else {
-    //     return '<span style="color:red">未启用</span>'
-    //   }
-    // },
     /** 修改设备报警  **/
     handleEdit(params) {
-      // this.getSosDeviceSetting(params.id)
       this.sosDeviceSettingModel = {
         ...params
       }

+ 2 - 2
src/views/ncs-task/index.vue

@@ -182,8 +182,8 @@ export default {
           content: 'task_content'
         }
       },
-      { headerName: '计划任务时间', field: 'task_plan_time', valueFormatter: this.formatterDate, sortable: true, filter: false, minWidth: 180 },
-      { headerName: '实际任务时间', field: 'task_do_time', valueFormatter: this.formatterDate, sortable: true, filter: false, minWidth: 180 },
+      { headerName: '计划任务执行时间', field: 'task_plan_time', valueFormatter: this.formatterDate, sortable: true, filter: false, minWidth: 180 },
+      { headerName: '实际任务执行时间', field: 'task_do_time', valueFormatter: this.formatterDate, sortable: true, filter: false, minWidth: 180 },
       { headerName: '任务状态', field: 'task_success', filter: false, cellRenderer: this.formatterStasus, minWidth: 100 },
       // { headerName: '任务结果', field: 'task_result', sortable: true, filter: false, width: 220,
       //     cellRendererFramework: 'Tooltip',

+ 1 - 1
src/views/vital-sign/log.vue

@@ -11,7 +11,7 @@
       >
         <div
           :id="`chart${group.id}`"
-          style="height: 600px; width:800px;"
+          style="height: 600px; width:650px;"
         />
       </el-tab-pane>
     </el-tabs>