Browse Source

空间位置批量重命名床位房间名称

wuyunfeng 1 năm trước cách đây
mục cha
commit
59d55c566b

+ 14 - 1
languages/en.js

@@ -316,9 +316,22 @@ module.exports = {
     inputAdminMember: 'Please enter the administrator account',
     adminPassword: 'Admin Password',
     inputAdminPassword: 'Please enter the administrator password',
+    renameBeds: `Rename the bed's name`,
+    renameRooms: `Rename the room's name`,
+    nameSuffix: 'The name suffix',
+    suffix: 'Full name suffix',
+    suffixExample: 'bed',
+    renamePrefixExample: '2-',
+    namePreview: 'Name preview',
+    fullNamePreview: 'Full name preview',
+    orderInPart: 'Order in part',
+    orderInRoom: 'Order in room',
+    renameRule: 'Rename rule',
+    roomSuffix: 'The room name suffix',
+    updateForAllPart: 'update for all part',
     prefix: 'prefix',
     prefixExample: 'One building, one unit',
-    skipRoomNo: 'TSkip-the-line room number',
+    skipRoomNo: 'Skip-the-line room number',
     skipBedNo: 'Skip-the-line bed number',
     skipMsg1: 'Enter the numbers, separated by semicolons',
     skipMsg2: '1,2,3'

+ 13 - 0
languages/es.js

@@ -316,6 +316,19 @@ module.exports = {
     inputAdminMember: 'Ingrese la cuenta de administrador',
     adminPassword: 'Contraseña de administrador',
     inputAdminPassword: 'Ingrese la contraseña de administrador',
+    renameBeds: `Cambiar el nombre de la cama`,
+    renameRooms: `Cambiar el nombre de la habitación`,
+    nameSuffix: 'Sufijo de nombre',
+    suffix: 'Sufijo de nombre completo',
+    suffixExample: 'Cama',
+    renamePrefixExample: '2-',
+    namePreview: 'Vista previa del nombre',
+    fullNamePreview: 'Vista previa de nombre completo',
+    orderInPart: 'Pedidos parciales',
+    orderInRoom: 'Pedidos en la habitación',
+    renameRule: 'Cambiar las reglas de nombre',
+    roomSuffix: 'Sufijo del nombre de la habitación',
+    updateForAllPart: 'Actualizar todas las piezas',
     prefix: 'prefijo',
     prefixExample: 'Un edificio, una unidad',
     skipRoomNo: 'Número de habitación sin colas',

+ 13 - 0
languages/ru-RU.js

@@ -316,6 +316,19 @@ module.exports = {
     inputAdminMember: 'Пожалуйста, введите учетную запись администратора',
     adminPassword: 'Пароль администратора',
     inputAdminPassword: 'Пожалуйста, введите пароль администратора',
+    renameBeds: `Переименовать название кровати`,
+    renameRooms: `Переименовать номер`,
+    nameSuffix: 'Суффикс имени',
+    suffix: 'Суффикс полного имени',
+    suffixExample: 'Кровать',
+    renamePrefixExample: '2-',
+    namePreview: 'Предварительный просмотр имен',
+    fullNamePreview: 'Полный предварительный просмотр',
+    orderInPart: 'Заказы в запчастях',
+    orderInRoom: 'Внутренний заказ',
+    renameRule: 'Правила переименования',
+    roomSuffix: 'Суффикс названия комнаты',
+    updateForAllPart: 'Обновить все детали',
     prefix: 'префикс',
     prefixExample: 'Одно здание, одна квартира',
     skipRoomNo: 'Пропустить строку номер комнаты',

+ 13 - 0
languages/zh-CN.js

@@ -316,10 +316,23 @@ module.exports = {
     inputAdminMember: '请输入管理员账号',
     adminPassword: '管理员密码',
     inputAdminPassword: '请输入管理员密码',
+    renameBeds: '床位重命名',
+    renameRooms: '房间重命名',
     prefix: '前缀',
     prefixExample: '一栋一单元',
     skipRoomNo: '需要跳过的房间号',
     skipBedNo: '需要跳过的床位号',
+    nameSuffix: '名称后缀',
+    suffix: '全称后缀',
+    suffixExample: '床',
+    renamePrefixExample: '2-',
+    namePreview: '名称预览',
+    fullNamePreview: '全称预览',
+    orderInPart: '科室内按自然顺序命名',
+    orderInRoom: '房间内按自然顺序命名',
+    renameRule: '重命命规则',
+    roomSuffix: '房间名称后缀',
+    updateForAllPart: '更新所有科室',
     skipMsg1: '输入数字,用分号隔开',
     skipMsg2: '1,2,3'
   },

+ 17 - 0
src/api/ncs_hospitalFrame.js

@@ -84,6 +84,23 @@ export function quickCreate(params) {
   })
 }
 
+export function renameBeds(part_id,params) {
+  return request({
+    url: `/ncs/frame/renamebedname/${part_id}`,
+    method: 'POST',
+    loading: false,
+    data: params
+  })
+}
+export function renameRooms(part_id,params) {
+  return request({
+    url: `/ncs/frame/renameroomname/${part_id}`,
+    method: 'POST',
+    loading: false,
+    data: params
+  })
+}
+
 /** 拖拽排序frame */
 export function sort(source_id, target_id, relation) {
   return request({

+ 303 - 1
src/views/hospitalFrame/frameTreeView.vue

@@ -59,18 +59,37 @@
               />
               <el-button
                 type="text"
-                :disabled="data.type===1 || data.type===3"
+                v-if="data.type===5||data.type===4"
                 size="mini"
                 icon="el-icon-edit"
                 @click.stop="() => edit(data)"
               />
               <el-button
                 type="text"
+                v-if="data.type===5||data.type===4"
                 :disabled="data.type===1 || data.type===3"
                 size="mini"
                 icon="el-icon-delete"
                 @click.stop="() => remove(data)"
               />
+               <el-tooltip class="item" effect="light" :content="$t('frameManage.renameRooms')" placement="top">
+               <el-button
+                       v-if="data.type===3"
+                       type="text"
+                       size="mini"
+                       icon="el-icon-c-scale-to-original"
+                       @click.stop="() => batchRenameRoom(data)"
+               />
+               </el-tooltip>
+               <el-tooltip class="item" effect="light" :content="$t('frameManage.renameBeds')" placement="top">
+              <el-button
+                      v-if="data.type===3"
+                      type="text"
+                      size="mini"
+                      icon="el-icon-tickets"
+                      @click.stop="() => beatchRenameBed(data)"
+              />
+               </el-tooltip>
             </span>
           </span>
         </el-tree>
@@ -241,7 +260,181 @@
       </el-form>
     </el-dialog>
     <!---快速创建结构弹窗 -->
+<!--重命名床位-->
+    <el-dialog :title="this.$t('frameManage.renameBeds')" :visible.sync="renameBedVisible" width="620px">
+      <el-form ref="createFrameForm" :model="renameBedFrameModel" :rules="createFrameRules" label-width="200px">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item :label="$t('frameManage.renameRule')">
+              <el-radio-group v-model="renameBedFrameModel.rename_type">
+                <el-radio :label="1">{{$t('frameManage.orderInPart')}}</el-radio>
+                <el-radio :label="2">{{$t('frameManage.orderInRoom')}}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="17">
+
+            <!--前缀-->
+            <el-form-item :label="this.$t('frameManage.prefix')" prop="prefix">
+              <el-input v-model="renameBedFrameModel.prefix" @change="generateBedExample" :placeholder="$t('frameManage.renamePrefixExample')" maxlength="10" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label" style="margin-left: 20px">
+              {{ this.$t('frameManage.example') }}:{{ $t('frameManage.renamePrefixExample') }}
+            </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="renameBedFrameModel.bed_num_bits" :min="1" :max="4" @change="(val)=>{renameBedBitNumChange(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-row>
+          <el-col :span="17">
+            <!--需要跳过的床位号-->
+            <el-form-item :label="this.$t('frameManage.skipBedNo')" prop="skip_bed_no">
+              <el-input v-model="renameBedFrameModel.skip_bed_no" @change="generateBedExample" :placeholder="$t('frameManage.skipMsg1')" clearable :maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label" style="margin-left: 20px">
+              {{ this.$t('frameManage.example') }}:{{ $t('frameManage.skipMsg2') }}
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="17">
 
+            <!--名称后缀-->
+            <el-form-item :label="this.$t('frameManage.nameSuffix')" prop="prefix">
+              <el-input v-model="renameBedFrameModel.name_suffix" :placeholder="$t('frameManage.suffixExample')" maxlength="10" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label" style="margin-left: 20px">
+              {{ this.$t('frameManage.example') }}:{{ $t('frameManage.suffixExample') }}
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="17">
+
+            <!--全名后缀-->
+            <el-form-item :label="this.$t('frameManage.suffix')" prop="prefix">
+              <el-input v-model="renameBedFrameModel.suffix" :placeholder="$t('frameManage.suffixExample')" maxlength="10" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label" style="margin-left: 20px">
+              {{ this.$t('frameManage.example') }}:{{ $t('frameManage.suffixExample') }}
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-form-item  >
+            <el-checkbox v-model="renameBedFrameModel.all_part" :true-label="1" :false-label="0">{{ this.$t('frameManage.updateForAllPart') }}</el-checkbox>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item :label="this.$t('frameManage.namePreview')" >
+            <el-tag v-for="item in bedExamples" :key="item.name">{{item.name}}{{renameBedFrameModel.name_suffix}}</el-tag>
+          </el-form-item>
+          <el-form-item :label="this.$t('frameManage.fullNamePreview')" >
+            <el-tag v-for="item in bedExamples" :key="item.name">{{item.name}}{{renameBedFrameModel.suffix}}</el-tag>
+          </el-form-item>
+        </el-row>
+
+
+        <el-form-item>
+          <el-button type="primary" class="save" @click="renameBedNameSubmit">{{ this.$t('action.yes') }}</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+    <!--重命名床位-->
+    <!-- 重命名房间名称-->
+    <el-dialog :title="this.$t('frameManage.renameRooms')" :visible.sync="renameRoomVisible" width="620px">
+      <el-form ref="createFrameForm" :model="renameRoomFrameModel" :rules="createFrameRules" label-width="200px">
+        <el-row>
+          <el-col :span="17">
+
+            <!--前缀-->
+            <el-form-item :label="this.$t('frameManage.prefix')" prop="prefix">
+              <el-input v-model="renameRoomFrameModel.prefix" @change="generateRoomExample" :placeholder="$t('frameManage.renamePrefixExample')" maxlength="10" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label" style="margin-left: 20px">
+              {{ this.$t('frameManage.example') }}:{{ $t('frameManage.renamePrefixExample') }}
+            </div>
+          </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="renameRoomFrameModel.room_num_bits" :min="1" :max="4" @change="(val)=>{renameRoomBitNumChange(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-row>
+          <el-col :span="17">
+            <!--需要跳过的床位号-->
+            <el-form-item :label="this.$t('frameManage.skipRoomNo')" prop="skip_room_no">
+              <el-input v-model="renameRoomFrameModel.skip_room_no" @change="generateRoomExample" :placeholder="$t('frameManage.skipMsg1')" clearable :maxlength="100"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label" style="margin-left: 20px">
+              {{ this.$t('frameManage.example') }}:{{ $t('frameManage.skipMsg2') }}
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="17">
+
+            <!--全名后缀-->
+            <el-form-item :label="this.$t('frameManage.roomSuffix')" prop="prefix">
+              <el-input v-model="renameRoomFrameModel.suffix" :placeholder="$t('frameManage.room')" maxlength="10" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="el-form-item__label" style="margin-left: 20px">
+              {{ this.$t('frameManage.example') }}:{{ $t('frameManage.room') }}
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-form-item  >
+            <el-checkbox v-model="renameRoomFrameModel.all_part" :true-label="1" :false-label="0">{{ this.$t('frameManage.updateForAllPart') }}</el-checkbox>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item :label="this.$t('frameManage.namePreview')" >
+            <el-tag v-for="item in roomExamples" :key="item.name">{{item.name}}{{renameRoomFrameModel.suffix}}</el-tag>
+          </el-form-item>
+        </el-row>
+
+
+        <el-form-item>
+          <el-button type="primary" class="save" @click="renameRoomNameSubmit">{{ this.$t('action.yes') }}</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+  <!--- 重命名房间 -->
   </div>
 </template>
 
@@ -273,7 +466,20 @@ export default {
       /** frame 编辑弹窗 **/
       frameEditTitle: this.$t('action.add'),
       frameDialogVisible: false,
+      renameBedVisible:false,
+      renameRoomVisible:false,
       frameInfo: {},
+      renameBedFrameModel:{
+       bed_num_bits:2,
+        rename_type:1,
+        all_part:0
+      },
+      renameRoomFrameModel:{
+        room_num_bits:2,
+        all_part:0
+      },
+      bedExamples:[{name:'01'},{name:'02'},{name:'03'},{name:'04'},{name:'05'},{name:'06'},{name:'07'},{name:'08'},{name:'09'},{name:'10'}],
+      roomExamples:[{name:'01'},{name:'02'},{name:'03'},{name:'04'},{name:'05'},{name:'06'},{name:'07'},{name:'08'},{name:'09'},{name:'10'}],
       rules: {
         name: [
           this.MixinRequired(this.$t('frameManage.inputFrameName')),
@@ -527,6 +733,15 @@ export default {
         this.bed_num_demo = s
       }
     },
+    renameBedBitNumChange(val,frame_type){
+      this.bitNumChange(val,frame_type)
+      this.generateBedExample()
+    },
+
+    renameRoomBitNumChange(val,frame_type){
+      this.bitNumChange(val,frame_type)
+      this.generateRoomExample()
+    },
     /** 起始位数变化 结束位置要根据起始位置的大小来变化 */
     roomStartChange(val) {
       console.log(val)
@@ -556,6 +771,90 @@ export default {
     mouseOver(event) {
       this.isShowTooltip =
           event.currentTarget.scrollWidth <= event.currentTarget.clientWidth;
+    },
+    beatchRenameBed(data){
+      this.renameBedVisible=true
+      console.log('data',data)
+    },
+    batchRenameRoom(data){
+      this.renameRoomVisible=true
+    },
+
+    generateBedExample(){
+      this.bedExamples=[]
+      let total =10
+      let skipNumber=[]
+      if(this.renameBedFrameModel.skip_bed_no!==null&&this.renameBedFrameModel.skip_bed_no!==undefined&&this.renameBedFrameModel.skip_bed_no!==''){
+        skipNumber = this.renameBedFrameModel.skip_bed_no.split(',').map(p=>Number(p))
+        console.log('sn',this.renameBedFrameModel.skip_bed_no)
+        total+=skipNumber.filter(p=>p<=10).length
+      }else{
+        total=10
+      }
+
+      for (let i = 1; i <=total ; i++) {
+        if(skipNumber.includes(i)){
+          continue
+        }
+        this.bedExamples.push({
+
+          name:(this.renameBedFrameModel.prefix?this.renameBedFrameModel.prefix:'')+''+this.padding2(i,this.renameBedFrameModel.bed_num_bits)
+        })
+      }
+    },
+    generateRoomExample(){
+      this.roomExamples=[]
+      let total =10
+      let skipNumber=[]
+      if(this.renameRoomFrameModel.skip_room_no!==null&&this.renameRoomFrameModel.skip_room_no!==undefined&&this.renameRoomFrameModel.skip_room_no!==''){
+        skipNumber = this.renameRoomFrameModel.skip_room_no.split(',').map(p=>Number(p))
+        console.log('sn',this.renameRoomFrameModel.skip_room_no)
+        total+=skipNumber.filter(p=>p<=10).length
+      }else{
+        total=10
+      }
+
+      for (let i = 1; i <=total ; i++) {
+        if(skipNumber.includes(i)){
+          continue
+        }
+        this.roomExamples.push({
+
+          name:(this.renameRoomFrameModel.prefix?this.renameRoomFrameModel.prefix:'')+''+this.padding2(i,this.renameRoomFrameModel.room_num_bits)
+        })
+      }
+    },
+    padding2(num, length) {
+    if((num + "").length >= length) {
+      return num;
+    }
+     return this.padding2("0" + num, length)
+   },
+    renameBedNameSubmit(){
+      API_Frame.renameBeds(this.$store.getters.partId,this.renameBedFrameModel).then(res=>{
+        this.renameBedVisible=false
+        this.getFrameTree().then(() => {
+          this.selectedNodeId = this.treeData[0].id
+          this.$refs.frameTree.setCurrentKey(this.selectedNodeId)
+        }).catch(err => {
+          this.$message.error(err.message)
+        })
+      }).catch(err=>{
+
+      })
+    },
+    renameRoomNameSubmit(){
+      API_Frame.renameRooms(this.$store.getters.partId,this.renameRoomFrameModel).then(res=>{
+        this.renameRoomVisible=false
+        this.getFrameTree().then(() => {
+          this.selectedNodeId = this.treeData[0].id
+          this.$refs.frameTree.setCurrentKey(this.selectedNodeId)
+        }).catch(err => {
+          this.$message.error(err.message)
+        })
+      }).catch(err=>{
+
+      })
     }
   }
 }
@@ -597,4 +896,7 @@ export default {
         margin: 8px;
         padding: 0;
     }
+.el-tag+.el-tag{
+  margin-left: 10px;
+}
 </style>

+ 1 - 1
src/views/ncs-interaction-push-config/index.vue

@@ -441,7 +441,7 @@
             },
 
             goConfig(row) {
-                this.$router.push({ name: 'admin-interaction-push', params: { id:row.id }})
+                this.$router.push({ name: 'admin-interaction-push-config', params: { id:row.id }})
             },
             /** 设备状态格式化 **/
             deviceStatusFormatter(params) {