Browse Source

开发机构管理端的空间管理、所有员工、所有用户

LAPTOP-LIQ71VDD\m 3 years ago
parent
commit
47d33b3d96

+ 9 - 0
src/api/ncs_frameGroup.js

@@ -72,3 +72,12 @@ export function getframestruct(part_id, frame_type) {
   })
 }
 
+/** 查询某科室下的房间结构 */
+export function getAllFrameTreeByType(frame_type) {
+  return request({
+    url: `/ncs/frame/getAllFrameTreeByType/${frame_type}`,
+    method: 'get',
+    loading: false
+  })
+}
+

+ 4 - 4
src/router/index.js

@@ -136,7 +136,7 @@ export const partRoutes = [
     children: [
       {
         path: 'clerkList',
-        component: () => import('@/views/ncs-clerk/clerkList'),
+        component: () => import('@/views/ncs-clerk/clerkManagement'),
         name: 'clerkList',
         meta: { title: '员工管理', icon: 'peoples', noCache: true }
       }
@@ -432,7 +432,7 @@ export const adminRoutes = [
     children: [
       {
         path: 'index',
-        component: () => import('@/views/hospital/ncs_frame/frameTreeView'),
+        component: () => import('@/views/hospitalFrame/frameTreeView-admin'),
         name: 'CallingFrameTreeViewAdmin',
         meta: { title: '空间管理', icon: 'tree', noCache: true }
       }
@@ -445,7 +445,7 @@ export const adminRoutes = [
     children: [
       {
         path: 'index',
-        component: () => import('@/views/ncs-clerk/clerkList'),
+        component: () => import('@/views/ncs-clerk/clerk-admin'),
         name: 'CallingClerkAdmin',
         meta: { title: '所有员工', icon: 'peoples', noCache: true }
       }
@@ -458,7 +458,7 @@ export const adminRoutes = [
     children: [
       {
         path: 'index',
-        component: () => import('@/views/hospital/customerManagement'),
+        component: () => import('@/views/customer/customer-admin'),
         name: 'CallingCustomerAdmin',
         meta: { title: '所有用户', icon: 'el-icon-s-custom', noCache: true }
         // component: () => uiVersion === 1 ? import('@/views/customer/patientManagement') : import('@/views/customer/customerManagement'),

+ 1 - 1
src/utils/enum/DeviceTypeEnum.js

@@ -23,6 +23,6 @@ export const DEVICE_TYPE = createEnum(
     VISITATION: [19, '探视机'],
     RS485_TRANSFER: [20, '485转换盒'],
     EMERGENCY_BUTTON: [21, '紧急按钮'],
-    RS485_DOOR: [22, '模拟分机']
+    RS485_DOOR: [22, '485门口分机']
   }
 )

+ 15 - 4
src/views/customer/components/customerManager.vue

@@ -22,7 +22,7 @@
           <en-table-search placeholder="请输入搜索关键字" @search="handlerSearch" />
         </div>
         <div class="toolbar-btns">
-          <el-button type="primary" size="mini" :disabled="!isEmptyFrame" @click="handleAdd">入住登记</el-button>
+          <el-button v-if="part_view" type="primary" size="mini" :disabled="!isEmptyFrame" @click="handleAdd">入住登记</el-button>
         </div>
       </div>
       <el-pagination
@@ -445,6 +445,10 @@ export default {
     frame: {
       type: Object,
       default: () => {}
+    },
+    part_view: { // 是否为科室视图
+      type: Boolean,
+      default: true
     }
   },
   data() {
@@ -465,7 +469,9 @@ export default {
       params: {
         page_size: 20,
         page_no: 1,
-        fixedCondition: Object.keys(this.frame).length === 0 ? 'part_id=' + this.$store.getters.partId : 'part_id=' + this.$store.getters.partId + ' and frame_id =' + this.frame.id
+        fixedCondition: this.part_view ? (Object.keys(this.frame).length === 0 ? 'part_id=' + this.$store.getters.partId
+          : 'part_id=' + this.$store.getters.partId + ' and frame_id =' + this.formmodel.member_id)
+          : (Object.keys(this.frame).length === 0 ? '1 = 1' : ' frame_id =' + this.formmodel.member_id)
       },
       customerFormVisible: false,
       activeName: 'customerBaseInfo',
@@ -488,7 +494,9 @@ export default {
         page_no: 1,
         sort: 'create_time',
         dir: 'desc',
-        fixedCondition: Object.keys(this.frame).length === 0 ? 'part_id=' + this.$store.getters.partId : 'part_id=' + this.$store.getters.partId + ' and frame_id =' + this.formmodel.member_id
+        fixedCondition: this.part_view ? (Object.keys(this.frame).length === 0 ? 'part_id=' + this.$store.getters.partId
+          : 'part_id=' + this.$store.getters.partId + ' and frame_id =' + this.formmodel.member_id)
+          : (Object.keys(this.frame).length === 0 ? '1 = 1' : ' frame_id =' + this.formmodel.member_id)
       },
       remarkFormModel: {
         content: ''
@@ -510,7 +518,9 @@ export default {
         page_no: 1,
         sort: 'create_time',
         dir: 'desc',
-        fixedCondition: Object.keys(this.frame).length === 0 ? 'part_id=' + this.$store.getters.partId : 'part_id=' + this.$store.getters.partId + ' and relative_id =' + this.formmodel.member_id
+        fixedCondition: this.part_view ? (Object.keys(this.frame).length === 0 ? 'part_id=' + this.$store.getters.partId
+          : 'part_id=' + this.$store.getters.partId + ' and frame_id =' + this.formmodel.member_id)
+          : (Object.keys(this.frame).length === 0 ? '1 = 1' : ' frame_id =' + this.formmodel.member_id)
       },
       relativeRules: {
         true_name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
@@ -808,6 +818,7 @@ export default {
     /** 加载列表数据 */
     getList() {
       const param = this.MixinClone(this.params)
+      console.log('this.params = ' + this.params.fixedCondition)
       this.gridApi.showLoadingOverlay()
       API_Customer.getList(param).then(response => {
         this.rowData = [...response.data]

+ 34 - 0
src/views/customer/customer-admin.vue

@@ -0,0 +1,34 @@
+<template>
+  <div>
+    <customer-manager :frame="frame" :part_view="false" />
+  </div>
+</template>
+
+<script>
+import CustomerManager from './components/customerManager'
+export default {
+  name: 'CustomerManagement',
+  components: { CustomerManager },
+  data() {
+    return {
+      frame: {}
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
+<style scoped type="text/scss">
+/deep/ .avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+
+.avatar-uploader .el-upload:hover {
+  border-color: #409EFF;
+}

+ 1 - 1
src/views/hospital/ncs_customer/customerManager.vue

@@ -589,7 +589,7 @@ export default {
   watch: {
     frame(val, oldvalue) {
       if (val.type === FRAME_TYPE.HOSPITAL) { // 医院
-        this.params.fixedCondition = '1=1'
+        // this.params.fixedCondition = '1=1'
       } else if (val.type === FRAME_TYPE.PART) { // 科室
         this.params.fixedCondition = ' part_id =' + this.frame.part_id
       } else if (val.type === FRAME_TYPE.ROOM) { // 房间

+ 4 - 2
src/views/hospital/ncs_device/deviceManager.vue

@@ -587,7 +587,8 @@ export default {
         this.deviceRules.eth_mac[0].required = true
       }
       this.hasRoleId = val === DEVICE_TYPE.NURSE_WATCH
-      this.hasAudioId = val === DEVICE_TYPE.SIMULATE_BED_DEVICE || DEVICE_TYPE.RS485_DOOR ||
+      this.hasAudioId = val === DEVICE_TYPE.SIMULATE_BED_DEVICE ||
+          val === DEVICE_TYPE.RS485_DOOR ||
           val === DEVICE_TYPE.SIMULATE_EMERGENCY_BUTTON ||
           val === DEVICE_TYPE.SIMULATE_DOOR_LIGHT
     },
@@ -645,7 +646,8 @@ export default {
       this.getDevices(this.$store.getters.partId)
       this.deviceTypeChangeToFrameTypeChange(params.device_type)
       this.hasRoleId = params.device_type === DEVICE_TYPE.NURSE_WATCH
-      this.hasAudioId = params.device_type === DEVICE_TYPE.SIMULATE_BED_DEVICE || DEVICE_TYPE.RS485_DOOR ||
+      this.hasAudioId = params.device_type === DEVICE_TYPE.SIMULATE_BED_DEVICE ||
+          params.device_type === DEVICE_TYPE.RS485_DOOR ||
           params.device_type === DEVICE_TYPE.SIMULATE_EMERGENCY_BUTTON ||
           params.device_type === DEVICE_TYPE.SIMULATE_DOOR_LIGHT
       this.deviceModel = {

+ 532 - 0
src/views/hospitalFrame/frameTreeView-admin.vue

@@ -0,0 +1,532 @@
+<template>
+  <div>
+    <el-container :style="{height: asideHeight+'px'}">
+      <el-aside width="280px" style="border-color: rgb(238, 241, 246)">
+        <div class="el-row--flex">
+          <el-input
+            v-model="filterText"
+            :placeholder="this.$t('frameManage.keywordsFilter')"
+            clearable
+          />
+          <el-button
+            type="text"
+            size="mini"
+            style="margin-left: 10px;color: #67C23A"
+            @click="quickCreateFrame"
+          >{{ this.$t('frameManage.quickCreate') }}</el-button>
+
+        </div>
+        <el-tree
+          ref="frameTree"
+          :data="treeData"
+          :show-checkbox="false"
+          node-key="id"
+          :default-expand-all="true"
+          :auto-expand-parent="true"
+          :expand-on-click-node="false"
+          :highlight-current="true"
+          :current-node-key="selectedNodeId"
+          draggable
+          :accordion="true"
+          :filter-node-method="filterNode"
+          @node-drag-start="nodeDragStart"
+          @node-drop="nodeDrop"
+          @node-click="nodeClick"
+        >
+          <span slot-scope="{ node, data }" class="custom-tree-node">
+            <!--            <span><svg-icon :icon-class="data.type===4?'sickroom':data.type===5?'bed':'area'" />{{ data.full_name }}</span>-->
+            <span><svg-icon :style="data.customer_id ? 'color: #0a901c' : ''" :icon-class="data.type===4?'sickroom':data.type===5?'bed':'area'" />{{ data.full_name }}</span>
+            <span>
+              <el-button
+                v-if="data.type!==5"
+                type="text"
+                size="mini"
+                icon="el-icon-plus"
+                @click.stop="() => append(data)"
+              />
+              <el-button
+                type="text"
+                size="mini"
+                icon="el-icon-edit"
+                @click.stop="() => edit(data)"
+              />
+              <el-button
+                type="text"
+                :disabled="data.id===1"
+                size="mini"
+                icon="el-icon-delete"
+                @click.stop="() => remove(data)"
+              />
+            </span>
+          </span>
+        </el-tree>
+      </el-aside>
+      <el-main>
+        <el-tabs v-model="activeName" style="margin:0px;" type="border-card">
+          <el-tab-pane :label="this.$t('frameManage.memberList')" name="frameInfo">
+            <keep-alive>
+              <customer-manager v-if="uiVersion===2" :frame="selectedNode" @saved="handleCustomerChange" />
+              <patient-manager v-if="uiVersion===1" :frame="selectedNode" @saved="handleCustomerChange" />
+            </keep-alive>
+          </el-tab-pane>
+          <el-tab-pane :label="this.$t('frameManage.deviceList')" name="deviceList">
+            <keep-alive>
+              <device-manager :frame="selectedNode" />
+            </keep-alive>
+          </el-tab-pane>
+        </el-tabs>
+      </el-main>
+    </el-container>
+
+    <!---添加空间结构弹窗 -->
+    <el-dialog :title="frameEditTitle" :visible.sync="frameDialogVisible" width="500px">
+      <el-form ref="editForm" :model="frameInfo" :rules="rules" label-width="130px">
+        <el-row>
+          <el-col :span="24">
+            <!--医院结构名称-->
+            <el-form-item :label="this.$t('action.name')" prop="name">
+              <el-input v-model="frameInfo.name" :maxlength="20" @change="frameChange">
+                <template slot="append">{{ frameInfo.type === 4? this.$t('frameManage.room') : this.$t('frameManage.bed') }}</template>
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <!--医院结构别名-->
+            <el-form-item :label="this.$t('action.alias')" prop="alias">
+              <el-input v-model="frameInfo.alias" :maxlength="20" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <!--医院结构别名-->
+            <el-form-item :label="this.$t('action.fullName')" prop="full_name">
+              <el-input v-model="frameInfo.full_name" :maxlength="20" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row hidden>
+          <el-col :span="12">
+            <el-form-item :label="this.$t('action.type')">
+              <el-radio v-model="frameInfo.type" :label="1">{{ this.$t('frameManage.room') }}</el-radio>
+              <el-radio v-model="frameInfo.type" :label="2">{{ this.$t('frameManage.bed') }}</el-radio>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-form-item>
+          <el-button type="primary" class="save" @click="handleFrameSubmit('editForm')">{{ this.$t('action.yes') }}</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+    <!---添加空间结构弹窗 -->
+
+    <!---快速创建结构弹窗 -->
+    <el-dialog :title="this.$t('frameManage.quickCreateFrame')" :visible.sync="frameQuickCreateVisible" width="600px">
+      <el-form ref="createFrameForm" :model="createFrameModel" :rules="createFrameRules" label-width="200px">
+        <el-row>
+          <el-col :span="24">
+            <!--开始房间号-->
+            <el-form-item :label="this.$t('frameManage.startRoom')" prop="start_no">
+              <el-input-number v-model="createFrameModel.room_start_no" :min="1" @change="roomStartChange" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <!--结束房间号-->
+            <el-form-item :label="this.$t('frameManage.endRoom')" prop="end_no">
+              <el-input-number v-model="createFrameModel.room_end_no" :min="createFrameModel.room_start_no" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <!--每房床位数-->
+            <el-form-item :label="this.$t('frameManage.bedQuantity')" prop="beds_per_room">
+              <el-input-number v-model="createFrameModel.beds_per_room" :min="1" :max="20" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="18">
+            <!--每房床位数-->
+            <el-form-item :label="this.$t('frameManage.showRoomDigit')" prop="room_num_bits">
+              <el-input-number v-model="createFrameModel.room_num_bits" :min="1" :max="4" @change="(val)=>{bitNumChange(val,'room')}" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label">
+              {{ this.$t('frameManage.example') }}:{{ room_num_demo }}
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="18">
+            <!--每房床位数-->
+            <el-form-item :label="this.$t('frameManage.showBedDigit')" prop="bed_num_bits">
+              <el-input-number v-model="createFrameModel.bed_num_bits" :min="1" :max="4" @change="(val)=>{bitNumChange(val,'bed')}" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label">
+              {{ this.$t('frameManage.example') }}:{{ bed_num_demo }}
+            </div>
+          </el-col>
+        </el-row>
+
+        <el-form-item>
+          <el-button type="primary" class="save" @click="quickCreateSubmit()">{{ this.$t('action.yes') }}</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+    <!---快速创建结构弹窗 -->
+
+  </div>
+</template>
+
+<script>
+import * as HospitalFrame_API from '@/api/ncs_hospitalFrame'
+import * as API_FrameGroup from '@/api/ncs_frameGroup'
+import CustomerManager from '../customer/components/customerManager'
+import DeviceManager from '../ncs-device/components/deviceManager'
+import PatientManager from '../customer/components/patientManager'
+import { uiVersion } from '@/utils/domain'
+import { FRAME_TYPE } from '@/utils/enum/FrameTypeEnum'
+export default {
+  name: 'FrameTreeView',
+  components: { PatientManager, DeviceManager, CustomerManager },
+  data() {
+    return {
+      treeData: [],
+      treeDataClone: [],
+      /** 当前选中的树节点 */
+      selectedNodeId: 0,
+      selectedNode: {},
+      filterText: '',
+      activeName: 'frameInfo',
+      /** 上级机构数组 **/
+      parents: [],
+      /** frame 编辑弹窗 **/
+      frameEditTitle: this.$t('action.add'),
+      frameDialogVisible: false,
+      frameInfo: {},
+      rules: {
+        name: [
+          this.MixinRequired(this.$t('frameManage.inputFrameName')),
+          { min: 2, max: 10, message: this.$t('frameManage.inputLong'), trigger: 'blur' }
+        ],
+        alias: [
+          { min: 2, max: 10, message: this.$t('frameManage.inputLong'), trigger: 'blur' }
+        ],
+        full_name: [
+          this.MixinRequired(this.$t('frameManage.inputFrameFullName')),
+          { min: 2, max: 10, message: this.$t('frameManage.inputLong'), trigger: 'blur' }
+        ]
+      },
+      /** 快速创建空间结构弹窗 **/
+      frameQuickCreateVisible: false,
+      createFrameModel: {
+        room_start_no: 1,
+        room_end_no: 2,
+        beds_per_room: 4,
+        room_num_bits: 2,
+        bed_num_bits: 2
+      },
+      bed_num_demo: '01',
+      room_num_demo: '01',
+      createFrameRules: {
+
+      },
+      uiVersion: uiVersion
+    }
+  },
+  computed: {
+    asideHeight() {
+      return this.mainAreaHeight
+    }
+  },
+  watch: {
+    selectedNodeId(newval, old) {
+      console.log('watch', newval)
+      this.selectedNode = this.findNodeById(this.treeData, newval)
+    },
+    filterText(val) {
+      this.$refs.frameTree.filter(val)
+    }
+  },
+  mounted() {
+    this.getFrameTree().then(() => {
+      this.selectedNodeId = this.treeData[0].id
+      this.$refs.frameTree.setCurrentKey(this.selectedNodeId)
+    }).catch(err => {
+      this.$message.error(err.message)
+    })
+  },
+  methods: {
+    /**
+     * 获取空间结构树形数据
+     * */
+    getFrameTree() {
+      return new Promise((resolve, reject) => {
+        API_FrameGroup.getAllFrameTreeByType(FRAME_TYPE.HOSPITAL).then(res => {
+          this.treeData = res.frameTree
+          resolve()
+        }).catch(err => {
+          reject(err)
+        })
+      })
+    },
+
+    append(data) {
+      if (data.type === FRAME_TYPE.HOSPITAL) {
+        this.formmodel = {}
+        this.formmodel.parent_id = data.hospital_id
+        this.formmodel.frame_parent_id = data.id
+        this.formmodel.full_name = data.name
+        console.log('this.formmodel.parent_id=', this.formmodel.parent_id)
+        this.formshow = true
+      } else {
+        if (data.type === FRAME_TYPE.ROOM) {
+          this.frameEditTitle = '【' + data.full_name + '】' + this.$t('frameManage.addBed')
+        } else {
+          this.frameEditTitle = '【' + data.full_name + '】' + this.$t('frameManage.addRoom')
+        }
+        this.frameInfo = {
+          hospital_id: data.hospital_id,
+          parent_id: data.id,
+          type: data.type === FRAME_TYPE.ROOM ? FRAME_TYPE.BED : FRAME_TYPE.ROOM,
+          parent_name: data.name,
+          name: '',
+          alias: ''
+        }
+        this.frameDialogVisible = true
+        console.log('append', data)
+      }
+    },
+    edit(data, e) {
+      if (data.type === FRAME_TYPE.PART || data.type === FRAME_TYPE.HOSPITAL) {
+        this.$message.info(this.$t('action.notDevelopedYet') + '')
+        return
+      }
+      const parentNode = this.findNodeById(this.treeData, data.parent_id)
+      this.frameInfo = {
+        ...data,
+        parent_name: parentNode === null ? '' : parentNode.name
+      }
+      this.frameEditTitle = this.$t('frameManage.editFrame')
+      this.frameDialogVisible = true
+    },
+    remove(data) {
+      let warning = ''
+      if (data.type === FRAME_TYPE.ROOM) {
+        warning = this.$t('frameManage.sureDelete') + '【' + data.full_name + '】' + this.$t('frameManage.allBad')
+      } else {
+        warning = this.$t('frameManage.sureDeleteBed') + '【' + data.full_name + '】?'
+      }
+      this.$confirm(warning, this.$t('action.waring' + ''), {
+        confirmButtonText: this.$t('action.yes'),
+        cancelButtonText: this.$t('action.cancel'),
+        type: 'warning'
+      }).then(() => {
+        HospitalFrame_API.deleteHospitalFrame(data.id).then(response => {
+          this.$message({
+            type: 'success',
+            message: this.$t('action.deleted')
+          })
+          this.getFrameTree().then(() => {
+            // 判断选中节点是否被删除,如果被删除需要重新选择根节点
+            const selectNode = this.findNodeById(this.treeData, this.selectedNodeId)
+            if (selectNode === null) {
+              this.selectedNodeId = this.treeData[0].id
+            }
+            this.$refs.frameTree.setCurrentKey(this.selectedNodeId)
+          })
+        }).catch(response => {
+          this.$message({
+            type: 'info',
+            message: response.message
+          })
+        })
+      }).catch(() => {
+
+      })
+    },
+
+    handleFrameSubmit(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          const params = this.MixinClone(this.frameInfo)
+          if (params.id) {
+            HospitalFrame_API.updateHospitalFrame(params.id, params).then(response => {
+              this.$message.success(this.$t('action.editSuccess') + '')
+              this.frameDialogVisible = false
+              this.getFrameTree().then(() => {
+                this.selectedNodeId = response.id
+                this.$refs.frameTree.setCurrentKey(this.selectedNodeId)
+              })
+            })
+          } else {
+            if (!params.part_id) {
+              params.part_id = this.$store.getters.partId
+            }
+
+            HospitalFrame_API.addHospitalFrame(params).then(response => {
+              this.$message.success(this.$t('action.addSuccess') + '')
+              this.frameDialogVisible = false
+              this.getFrameTree()
+            })
+          }
+        } else {
+          this.$message.error(this.$t('error.fromError') + '')
+          return false
+        }
+      })
+    },
+    /** 开始拖拽之前保存treeData数据,拖拽完成后判定能否拖拽到目标节点,不允许拖拽把初始数据覆盖拖拽后的数据,否则拖拽成功
+     * @param node
+     * @param event
+     */
+    nodeDragStart(node, event) {
+      this.treeDataClone = this.MixinClone(this.treeData)
+    },
+    /** 拖拽结束 **/
+    nodeDrop(node, target, position, event) {
+      var success = true
+      const nparent = this.findNodeById(this.treeDataClone, node.data.parent_id)
+      const tparent = this.findNodeById(this.treeDataClone, target.data.parent_id)
+      if (position === 'inner') { // 进入了某个节点之中,不能将某一节点拖入同级节点,也不能跨级拖动
+        if (Number(node.data.type) <= Number(target.data.type) || Number(node.data.type) - Number(target.data.type) > 1) {
+          this.treeData = this.treeDataClone
+          success = false
+        }
+      } else {
+        // 查找Target和node的parent 判定target的parent类型与node的parent类型是否一致
+        if (nparent === null || tparent === null || nparent.type !== tparent.type) {
+          this.treeData = this.treeDataClone
+          success = false
+        }
+      }
+      if (success) { // 拖拽完成,更新node和target排序
+        HospitalFrame_API.sort(node.data.id, target.data.id, position).then(res => {
+          this.selectedNodeId = node.data.id
+          this.getFrameTree().then(() => {
+            this.$refs.frameTree.setCurrentKey(this.selectedNodeId)
+            console.log('sid', this.selectedNodeId)
+          })
+        })
+      }
+    },
+    /** 树形结构中查找指定Id节点 */
+    findNodeById(data, id) {
+      let node = null
+      if (data.length > 0) {
+        for (var i = 0; i < data.length; i++) {
+          if (data[i].id === id) {
+            node = data[i]
+            break
+          }
+          if (data[i].children && data[i].children.length > 0) {
+            const subresult = this.findNodeById(data[i].children, id)
+            if (subresult !== null) {
+              node = subresult
+              break
+            }
+          }
+        }
+      }
+      return node
+    },
+    /** 节点过滤方法 **/
+    filterNode(value, data) {
+      if (!value) return true
+      return data.full_name.indexOf(value) !== -1
+    },
+    /** 点击树形节点  **/
+    nodeClick(data, node, leaf) {
+      this.$set(this, 'selectedNodeId', data.id)
+    },
+    /** 快速创建空间结构弹窗 **/
+    quickCreateFrame() {
+      this.frameQuickCreateVisible = true
+    },
+
+    quickCreateSubmit(formname) {
+      const params = this.createFrameModel
+      params.part_frame_id = this.treeData[0].id
+      HospitalFrame_API.quickCreate(params).then(res => {
+        this.$message.success(this.$t('action.createSuccess') + '')
+        this.frameQuickCreateVisible = false
+        this.getFrameTree().then(() => {
+          this.$refs.frameTree.setCurrentKey(this.selectedNodeId)
+        })
+      }).catch(err => {
+        this.$message.error(err.message)
+      })
+    },
+
+    /** 显示位数变化 **/
+    bitNumChange(val, frame_type) {
+      const s = Array(val).join(0) + 1
+      if (frame_type === 'room') {
+        this.room_num_demo = s
+      } else {
+        this.bed_num_demo = s
+      }
+    },
+    /** 起始位数变化 结束位置要根据起始位置的大小来变化 */
+    roomStartChange(val) {
+      console.log(val)
+      if (val > this.createFrameModel.room_end_no) {
+        this.createFrameModel.room_end_no = val
+      }
+    },
+    /**
+     * 名称输入变化
+     * @param val
+     */
+    frameChange(val) {
+      console.log('s', this.frameInfo)
+      if (!this.frameInfo.full_name) {
+        if (this.frameInfo.type === FRAME_TYPE.ROOM) {
+          this.$set(this.frameInfo, 'full_name', val + this.$t('frameManage.room'))
+          // this.frameInfo.full_name = val
+        } else {
+          this.$set(this.frameInfo, 'full_name', this.frameInfo.parent_name + '-' + val + this.$t('frameManage.bed'))
+          // this.frameInfo.full_name =
+        }
+      }
+    },
+    handleCustomerChange() {
+      this.getFrameTree()
+    }
+  }
+}
+</script>
+
+<style scoped>
+.el-aside{
+  margin: 8px;
+  padding: 8px;
+  border-width: 1px;
+  border-style: solid;
+  background: #fff;
+}
+.custom-tree-node {
+  flex: 1;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  font-size: 14px;
+  padding-right: 8px;
+}
+.el-tree{margin-top: 8px}
+.el-main{
+  margin: 8px;
+  padding: 0;
+}
+</style>

+ 184 - 184
src/views/hospitalFrame/hospitalFrame.vue

@@ -66,9 +66,9 @@
     </div>
 
     <el-dialog
-            title="用户信息"
-            :visible.sync="dialogPatientVisible"
-            width="85%"
+      title="用户信息"
+      :visible.sync="dialogPatientVisible"
+      width="85%"
     >
       <customer-edit :customer-id="customerId" :frame-id="frameId" @saved="handlePatientFinished" />
     </el-dialog>
@@ -109,10 +109,10 @@
     </el-dialog>
 
     <el-drawer
-            :title="selectedFrame.full_name+' 设备'"
-            :visible.sync="deviceVisible"
-            :append-to-body="true"
-            size="60%"
+      :title="selectedFrame.full_name+' 设备'"
+      :visible.sync="deviceVisible"
+      :append-to-body="true"
+      size="60%"
     >
       <device-info :frame-id="frameId" :frame="selectedFrame" />
     </el-drawer>
@@ -120,206 +120,206 @@
 </template>
 
 <script>
-  import * as HospitalFrame_API from '@/api/ncs_hospitalFrame'
-  import * as RegExp from '@/utils/RegExp'
-  import customerEdit from '@/views/customer/customerEdit'
-  import DeviceInfo from '@/views/ncs-device/deviceInfo'
+import * as HospitalFrame_API from '@/api/ncs_hospitalFrame'
+import * as RegExp from '@/utils/RegExp'
+import customerEdit from '@/views/customer/customerEdit'
+import DeviceInfo from '@/views/ncs-device/deviceInfo'
 
-  export default {
-    name: 'HospitalFrame',
-    components: { DeviceInfo, customerEdit },
-    data: function() {
-      return {
-        hospital_frame: null,
-        frameAddVisible: false,
-        frameName: '',
-        dialogPatientVisible: false,
-        customerId: null,
-        dialogFrameVisible: false,
-        frameInfo: {},
-        deviceVisible: false,
-        frameId: 0,
-        selectedFrame: {},
-        rules: {
-          name: [
-            this.MixinRequired('请输入名称!'),
-            { min: 1, max: 20, message: '长度在 2 到 20 个字符', trigger: 'blur' },
-            {
-              validator: (rule, value, callback) => {
-                if (!RegExp.userName.test(value)) {
-                  callback(new Error('只支持汉字、字母、数字、“-”、“_”的组合!'))
-                } else {
-                  callback()
-                }
+export default {
+  name: 'HospitalFrame',
+  components: { DeviceInfo, customerEdit },
+  data: function() {
+    return {
+      hospital_frame: null,
+      frameAddVisible: false,
+      frameName: '',
+      dialogPatientVisible: false,
+      customerId: null,
+      dialogFrameVisible: false,
+      frameInfo: {},
+      deviceVisible: false,
+      frameId: 0,
+      selectedFrame: {},
+      rules: {
+        name: [
+          this.MixinRequired('请输入名称!'),
+          { min: 1, max: 20, message: '长度在 2 到 20 个字符', trigger: 'blur' },
+          {
+            validator: (rule, value, callback) => {
+              if (!RegExp.userName.test(value)) {
+                callback(new Error('只支持汉字、字母、数字、“-”、“_”的组合!'))
+              } else {
+                callback()
               }
             }
-          ],
-          alias: [
-            { min: 1, max: 20, message: '长度在 2 到 20 个字符', trigger: 'blur' },
-            {
-              validator: (rule, value, callback) => {
-                if (!value) {
-                  callback()
-                }
-                if (!RegExp.userName.test(value)) {
-                  callback(new Error('只支持汉字、字母、数字、“-”、“_”的组合!'))
-                } else {
-                  callback()
-                }
+          }
+        ],
+        alias: [
+          { min: 1, max: 20, message: '长度在 2 到 20 个字符', trigger: 'blur' },
+          {
+            validator: (rule, value, callback) => {
+              if (!value) {
+                callback()
+              }
+              if (!RegExp.userName.test(value)) {
+                callback(new Error('只支持汉字、字母、数字、“-”、“_”的组合!'))
+              } else {
+                callback()
               }
             }
-          ]
-        },
-        fullName: null
+          }
+        ]
+      },
+      fullName: null
+    }
+  },
+  watch: {
+    deviceVisible: function(newData) {
+      if (!newData) {
+        this.GET_All()
       }
-    },
-    watch: {
-      deviceVisible: function(newData) {
-        if (!newData) {
-          this.GET_All()
+    }
+  },
+  mounted() {
+    this.GET_All()
+  },
+  methods: {
+    GET_All() {
+      HospitalFrame_API.getHospitalFrameList(this.$store.getters.userInfo.last_login_shopid).then(response => {
+        if (response) {
+          console.log(response)
+          this.hospital_frame = response
         }
+      }).catch(response => {
+        this.$message({
+          type: 'info',
+          message: response.message
+        })
+      })
+    },
+    /** 下拉触发 */
+    handleGroupCommand(object) {
+      console.log(object)
+      this.selectedFrame = object.frame
+      switch (object.type) {
+        case 'edit':
+          this.handelEditFrame(object.frame)
+          break
+        case 'delete':
+          this.handlerDeleteFrame(object.frame.id)
+          break
+        case 'device':
+          this.frameId = object.frame.id
+          this.openDeviceList()
+          break
       }
     },
-    mounted() {
+    handleAddPatient(bedFrame) {
+      this.customerId = 0
+      this.frameId = bedFrame.id
+      this.dialogPatientVisible = true
+    },
+    handlePatientFinished() {
+      this.dialogPatientVisible = false
       this.GET_All()
     },
-    methods: {
-      GET_All() {
-        HospitalFrame_API.getHospitalFrameList(this.$store.getters.userInfo.last_login_shopid).then(response => {
-          if (response) {
-            console.log(response)
-            this.hospital_frame = response
-          }
+    handleEditPatient(id, frameId) {
+      this.dialogPatientVisible = true
+      this.customerId = id
+      this.frameId = frameId
+    },
+    // frame handle
+    handleAddRoom() {
+      let parent_id = null
+      if (this.hospital_frame) {
+        parent_id = this.hospital_frame.frame_part.id
+      }
+      const params = { type: 4, name: this.frameName, part_id: this.$store.getters.partId, parent_id: parent_id }
+      params.full_name = params.name + '房'
+      HospitalFrame_API.addHospitalFrame(params).then(response => {
+        this.$message.success('添加成功!')
+        this.GET_All()
+      })
+    },
+    handleAddFrame(id, name) { // 新增床位
+      this.frameInfo = {}
+      this.frameInfo = { parent_id: id, type: 5 }
+      this.fullName = name
+      this.dialogFrameVisible = true
+    },
+    handelEditFrame(frame) {
+      this.frameInfo = { id: frame.id, type: frame.type, name: frame.name, alias: frame.alias, full_name: frame.full_name }
+      this.dialogFrameVisible = true
+    },
+    handleFrameFinished() {
+      this.dialogFrameVisible = false
+      this.GET_All()
+    },
+    /** 单条数据删除处理 */
+    handlerDeleteFrame(ids) {
+      this.$confirm('确定要删除此结构及其所有下级吗?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        HospitalFrame_API.deleteHospitalFrame(ids).then(response => {
+          this.$message({
+            type: 'success',
+            message: '已删除!'
+          })
+          this.GET_All()
         }).catch(response => {
           this.$message({
             type: 'info',
             message: response.message
           })
         })
-      },
-      /** 下拉触发 */
-      handleGroupCommand(object) {
-        console.log(object)
-        this.selectedFrame = object.frame
-        switch (object.type) {
-          case 'edit':
-            this.handelEditFrame(object.frame)
-            break
-          case 'delete':
-            this.handlerDeleteFrame(object.frame.id)
-            break
-          case 'device':
-            this.frameId = object.frame.id
-            this.openDeviceList()
-            break
-        }
-      },
-      handleAddPatient(bedFrame) {
-        this.customerId = 0
-        this.frameId = bedFrame.id
-        this.dialogPatientVisible = true
-      },
-      handlePatientFinished() {
-        this.dialogPatientVisible = false
-        this.GET_All()
-      },
-      handleEditPatient(id, frameId) {
-        this.dialogPatientVisible = true
-        this.customerId = id
-        this.frameId = frameId
-      },
-      // frame handle
-      handleAddRoom() {
-        let parent_id = null
-        if (this.hospital_frame) {
-          parent_id = this.hospital_frame.frame_part.id
-        }
-        const params = { type: 4, name: this.frameName, part_id: this.$store.getters.partId, parent_id: parent_id }
-        params.full_name = params.name + '房'
-        HospitalFrame_API.addHospitalFrame(params).then(response => {
-          this.$message.success('添加成功!')
-          this.GET_All()
-        })
-      },
-      handleAddFrame(id, name) { // 新增床位
-        this.frameInfo = {}
-        this.frameInfo = { parent_id: id, type: 5 }
-        this.fullName = name
-        this.dialogFrameVisible = true
-      },
-      handelEditFrame(frame) {
-        this.frameInfo = { id: frame.id, type: frame.type, name: frame.name, alias: frame.alias, full_name: frame.full_name }
-        this.dialogFrameVisible = true
-      },
-      handleFrameFinished() {
-        this.dialogFrameVisible = false
-        this.GET_All()
-      },
-      /** 单条数据删除处理 */
-      handlerDeleteFrame(ids) {
-        this.$confirm('确定要删除此结构及其所有下级吗?', '警告', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          HospitalFrame_API.deleteHospitalFrame(ids).then(response => {
-            this.$message({
-              type: 'success',
-              message: '已删除!'
-            })
-            this.GET_All()
-          }).catch(response => {
-            this.$message({
-              type: 'info',
-              message: response.message
-            })
-          })
-        })
-      },
+      })
+    },
 
-      // --------------------设备管理
-      handlePartDevice() {
-        this.frameId = this.hospital_frame.frame_part.id
-        this.selectedFrame = this.hospital_frame.frame_part
-        this.openDeviceList()
-      },
-      openDeviceList() {
-        this.deviceVisible = true
-      },
-      handlerSubmit(formName) {
-        this.$refs[formName].validate(valid => {
-          if (valid) {
-            const params = this.MixinClone(this.frameInfo)
-            if (params.id) {
-              if (params.type === 5) {
-                const name = params.full_name.split('-')
-                params.full_name = name[0] + '-' + params.name + '床'
-              } else if (params.type === 4) {
-                params.full_name = params.name + '房'
-              }
-              HospitalFrame_API.updateHospitalFrame(params.id, params).then(response => {
-                this.$message.success('修改成功!')
-                this.handleFrameFinished()
-              })
-            } else {
-              if (!params.part_id) {
-                params.part_id = this.$store.getters.partId
-              }
-              params.full_name = this.fullName + '房-' + params.name + '床'
-              HospitalFrame_API.addHospitalFrame(params).then(response => {
-                this.$message.success('添加成功!')
-                this.handleFrameFinished()
-              })
+    // --------------------设备管理
+    handlePartDevice() {
+      this.frameId = this.hospital_frame.frame_part.id
+      this.selectedFrame = this.hospital_frame.frame_part
+      this.openDeviceList()
+    },
+    openDeviceList() {
+      this.deviceVisible = true
+    },
+    handlerSubmit(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          const params = this.MixinClone(this.frameInfo)
+          if (params.id) {
+            if (params.type === 5) {
+              const name = params.full_name.split('-')
+              params.full_name = name[0] + '-' + params.name + '床'
+            } else if (params.type === 4) {
+              params.full_name = params.name + '房'
             }
+            HospitalFrame_API.updateHospitalFrame(params.id, params).then(response => {
+              this.$message.success('修改成功!')
+              this.handleFrameFinished()
+            })
           } else {
-            this.$message.error('表单填写有误,请检查!')
-            return false
+            if (!params.part_id) {
+              params.part_id = this.$store.getters.partId
+            }
+            params.full_name = this.fullName + '房-' + params.name + '床'
+            HospitalFrame_API.addHospitalFrame(params).then(response => {
+              this.$message.success('添加成功!')
+              this.handleFrameFinished()
+            })
           }
-        })
-      }
-
+        } else {
+          this.$message.error('表单填写有误,请检查!')
+          return false
+        }
+      })
     }
+
   }
+}
 </script>
 
 <style type="text/scss" lang="scss" scoped>

+ 34 - 0
src/views/ncs-clerk/clerk-admin.vue

@@ -0,0 +1,34 @@
+<template>
+  <div>
+    <care-doctor-manager :frame="frame" :part_view="false" />
+  </div>
+</template>
+
+<script>
+import CareDoctorManager from './components/clerkList'
+export default {
+  name: 'CareDoctorManagement',
+  components: { CareDoctorManager },
+  data() {
+    return {
+      frame: {}
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
+<style scoped type="text/scss">
+/deep/ .avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+
+.avatar-uploader .el-upload:hover {
+  border-color: #409EFF;
+}

+ 22 - 0
src/views/ncs-clerk/clerkManagement.vue

@@ -0,0 +1,22 @@
+<template>
+  <div>
+    <care-doctor-manager :frame="frame" />
+  </div>
+</template>
+
+<script>
+import CareDoctorManager from './components/clerkList'
+export default {
+  name: 'CareDoctorManagement',
+  components: { CareDoctorManager },
+  data() {
+    return {
+      frame: {}
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 15 - 8
src/views/ncs-clerk/clerkList.vue

@@ -18,9 +18,12 @@
         <div class="toolbar-search">
           <en-table-search placeholder="请输入搜索关键字" @search="handlerSearch" />
         </div>
+<!--        <div class="toolbar-btns">-->
+<!--          <el-button type="primary" @click="handleAddMember">新增</el-button>-->
+<!--          &lt;!&ndash; <el-button type="danger" @click="batchDelete">禁用</el-button>&ndash;&gt;-->
+<!--        </div>-->
         <div class="toolbar-btns">
-          <el-button type="primary" @click="handleAddMember">新增</el-button>
-          <!-- <el-button type="danger" @click="batchDelete">禁用</el-button>-->
+          <el-button v-if="part_view" type="primary" size="mini" @click="handleAddMember">新增</el-button>
         </div>
       </div>
       <el-pagination
@@ -156,10 +159,10 @@
                     </el-col>
                   </el-checkbox-group>
                   <el-col v-for="(bed,_index) in nurseClerkList" :key="_index" :xs="8" :sm="8" :md="6" :lg="6" :xl="6">
-<!--                    <el-checkbox v-model="bed.checked">-->
-<!--                      <span v-if="bed.group_id && !bed.checked" style="color: #13ce66">{{ bed.clerk_name }}  <span style="color: #302db4">{{ bed.group_name }}</span></span>-->
-<!--                      <span v-else>{{ bed.clerk_name }}</span>-->
-<!--                    </el-checkbox>-->
+                    <!--                    <el-checkbox v-model="bed.checked">-->
+                    <!--                      <span v-if="bed.group_id && !bed.checked" style="color: #13ce66">{{ bed.clerk_name }}  <span style="color: #302db4">{{ bed.group_name }}</span></span>-->
+                    <!--                      <span v-else>{{ bed.clerk_name }}</span>-->
+                    <!--                    </el-checkbox>-->
                   </el-col>
                 </el-row>
               </div>
@@ -215,6 +218,10 @@ export default {
     partId: {
       type: Number,
       default: 0
+    },
+    part_view: { // 是否为科室视图
+      type: Boolean,
+      default: true
     }
   },
   data: function() {
@@ -315,7 +322,7 @@ export default {
       } else {
         this.shopId = val
       }
-      this.params.fixedCondition = 'nc.shop_id=' + this.shopId
+      this.params.fixedCondition = this.part_view ? 'nc.shop_id=' + this.shopId : '1 = 1'
       this.GET_MemberList()
     }
   },
@@ -391,7 +398,7 @@ export default {
     } else {
       this.shopId = this.partId
     }
-    this.params.fixedCondition = 'nc.shop_id=' + this.shopId
+    this.params.fixedCondition = this.part_view ? 'nc.shop_id=' + this.shopId : '1 = 1'
     this.GET_MemberList()
   },
   activated() {

+ 4 - 2
src/views/ncs-device/components/deviceManager.vue

@@ -649,7 +649,8 @@ export default {
         this.deviceRules.eth_mac[0].required = true
       }
       this.hasRoleId = val === DEVICE_TYPE.NURSE_WATCH
-      this.hasAudioId = val === DEVICE_TYPE.SIMULATE_BED_DEVICE || DEVICE_TYPE.RS485_DOOR ||
+      this.hasAudioId = val === DEVICE_TYPE.SIMULATE_BED_DEVICE ||
+                        val === DEVICE_TYPE.RS485_DOOR ||
                         val === DEVICE_TYPE.SIMULATE_EMERGENCY_BUTTON ||
                         val === DEVICE_TYPE.SIMULATE_DOOR_LIGHT
     },
@@ -707,7 +708,8 @@ export default {
       this.getDevices(params.part_id)
       this.deviceTypeChangeToFrameTypeChange(params.device_type)
       this.hasRoleId = params.device_type === DEVICE_TYPE.NURSE_WATCH
-      this.hasAudioId = params.device_type === DEVICE_TYPE.SIMULATE_BED_DEVICE || DEVICE_TYPE.RS485_DOOR ||
+      this.hasAudioId = params.device_type === DEVICE_TYPE.SIMULATE_BED_DEVICE ||
+                        params.device_type === DEVICE_TYPE.RS485_DOOR ||
                         params.device_type === DEVICE_TYPE.SIMULATE_EMERGENCY_BUTTON ||
                         params.device_type === DEVICE_TYPE.SIMULATE_DOOR_LIGHT
       this.deviceModel = {

+ 20 - 13
src/views/ncs-orginazition/components/partInfoEdit.vue

@@ -62,8 +62,9 @@
                   placeholder="白天开始时间"
                 />
               </el-form-item>
-              <el-form-item label="主机叫号参数" prop="day_vol">
-                <el-input-number v-model="formmodel.day_vol" :min="0" :max="2" label="主机叫号参数" />
+              <el-form-item label="主机通话音量" prop="day_vol">
+                <el-input-number v-model="formmodel.day_vol" :min="0" :max="100" label="主机通话音量" />
+<!--                <el-input-number v-model="formmodel.day_vol" :min="0" :max="2" label="主机叫号参数" />-->
               </el-form-item>
               <el-form-item label="门口机通话音量" prop="day_door_vol">
                 <el-input-number v-model="formmodel.day_door_vol" :min="0" :max="100" label="门口机通话音量" />
@@ -84,14 +85,14 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="机系统音量" prop="day_ring_vol">
-                <el-input-number v-model="formmodel.day_ring_vol" :min="0" :max="100" label="机系统音量" />
+              <el-form-item label="机系统音量" prop="day_ring_vol">
+                <el-input-number v-model="formmodel.day_ring_vol" :min="0" :max="100" label="机系统音量" />
               </el-form-item>
               <el-form-item label="分机护理灯亮度" prop="day_nurse_led">
                 <el-input-number v-model="formmodel.day_nurse_led" :min="0" :max="100" label="分机护理灯亮度" />
               </el-form-item>
               <el-form-item label="转换盒系统音量" prop="day_transfer_box_system_vol">
-                <el-input-number v-model="formmodel.day_transfer_box_system_vol" :min="0" :max="100" label="分机通话音量" />
+                <el-input-number v-model="formmodel.day_transfer_box_system_vol" :min="0" :max="100" label="转换盒系统音量" />
               </el-form-item>
             </el-col>
           </el-row>
@@ -108,9 +109,10 @@
                   placeholder="夜晚开始时间"
                 />
               </el-form-item>
-              <el-form-item label="主机叫号参数" prop="night_vol">
-                <el-input-number v-model="formmodel.night_vol" :min="0" :max="2" label="主机叫号参数" />
-                <span class="red-text">0-床号 1-房号 2-房床号</span>
+              <el-form-item label="主机通话音量" prop="night_vol">
+                <el-input-number v-model="formmodel.night_vol" :min="0" :max="100" label="主机通话音量" />
+<!--                <el-input-number v-model="formmodel.night_vol" :min="0" :max="2" label="主机叫号参数" />-->
+<!--                <span class="red-text">0-床号 1-房号 2-房床号</span>-->
               </el-form-item>
               <el-form-item label="门口机通话音量" prop="night_door_vol">
                 <el-input-number v-model="formmodel.night_door_vol" :min="0" :max="100" label="门口机通话音量" />
@@ -126,13 +128,16 @@
               <el-form-item label="呼叫响铃次数" prop="night_ring_times">
                 <el-input-number v-model="formmodel.night_ring_times" :min="0" :max="10" label="主机叫号次数" />
               </el-form-item>
+<!--              <el-form-item label="主机通话音量" prop="part_night_vol">-->
+<!--                <el-input-number v-model="formmodel.part_night_vol" :min="0" :max="100" label="主机通话音量" />-->
+<!--              </el-form-item>-->
               <el-form-item label="分机通话音量" prop="night_bed_vol">
                 <el-input-number v-model="formmodel.night_bed_vol" :min="0" :max="100" label="分机通话音量" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="机系统音量" prop="night_ring_vol">
-                <el-input-number v-model="formmodel.night_ring_vol" :min="0" :max="100" label="机系统音量" />
+              <el-form-item label="机系统音量" prop="night_ring_vol">
+                <el-input-number v-model="formmodel.night_ring_vol" :min="0" :max="100" label="机系统音量" />
               </el-form-item>
               <el-form-item label="分机护理灯亮度" prop="night_nurse_led">
                 <el-input-number v-model="formmodel.night_nurse_led" :min="0" :max="100" label="分机护理灯亮度" />
@@ -142,7 +147,7 @@
                   v-model="formmodel.night_transfer_box_system_vol"
                   :min="0"
                   :max="100"
-                  label="分机通话音量"
+                  label="转换盒系统音量"
                 />
               </el-form-item>
             </el-col>
@@ -302,7 +307,8 @@ export default {
                 day_door_vol: 73,
                 day_nurse_led: 30,
                 day_ring_times: 10,
-                day_vol: 0,
+                day_ring_vol: 100,
+                day_vol: 100,
                 day_sipvol: 100,
                 day_start: '07:00:00',
                 day_transfer_box_vol: 100,
@@ -314,7 +320,8 @@ export default {
                 night_door_vol: 73,
                 night_nurse_led: 30,
                 night_ring_times: 10,
-                night_vol: 0,
+                night_ring_vol: 100,
+                night_vol: 100,
                 night_sipvol: 100,
                 night_start: '07:00:00',
                 night_transfer_box_vol: 100,