wennn 3 rokov pred
rodič
commit
d952c0cb3c

+ 40 - 0
src/components/AgGridCellRender/ButtonCellRenderList.vue

@@ -0,0 +1,40 @@
+<template>
+  <div>
+    <el-button-group v-if="show">
+      <el-button v-for="(item, index) in buttonList" :key="index" :type="item.buttonType" :size="item.buttonSize" :disabled="item.disabled" @click="buttonClick(index)">{{ item.label }}</el-button>
+    </el-button-group>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'ButtonCellRender',
+  data() {
+    return {
+      buttonType: 'primary',
+      buttonSize: 'mini',
+      label: 'button',
+      disabled: false,
+      show: true,
+      buttonList: []
+    }
+  },
+  beforeMount() {
+  },
+  mounted() {
+    const _this = this
+    _this.buttonList = this.params.list
+  },
+  methods: {
+    buttonClick(index) {
+      if (typeof this.buttonList[index].onClick === 'function') {
+        this.buttonList[index].onClick(this.params.node.data)
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 185 - 99
src/views/customer/components/customerManager.vue

@@ -416,6 +416,52 @@
       </el-form>
     </el-dialog>
     <!-- 用户换床-->
+
+    <el-dialog :visible.sync="detailsVisible" :title="formmodel.named + '的信息'" class="customer-dialog">
+      <el-descriptions class="margin-top" :column="2" border  style="padding: 20px">
+<!--        <template slot="extra">-->
+<!--          <el-button type="primary" size="small">操作</el-button>-->
+<!--        </template>-->
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-user"></i>用户姓名</template>{{ formmodel.named }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-user-solid"></i>昵称</template>{{ formmodel.nickname }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-help"></i>入住编号</template>{{ formmodel.card_no }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-smoking"></i>入住床位</template>{{ formmodel.frame_id }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-time"></i>入住日期</template>{{ formatterDate({ data: { in_date: formmodel.in_date, out_date: formmodel.out_date } }) }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-attract"></i>性别</template>{{ formatterSex(formmodel) }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-star-off"></i>年龄</template>{{formmodel.age}}{{formmodel.age_unit}}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-bank-card"></i>证件</template>
+          <span v-if="formmodel.id_no">{{ formmodel.id_type }}  {{ formmodel.id_no }}</span>
+          <span v-else>暂无</span>
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-present"></i>生日</template>{{ unixDateFormatter2({ value: formmodel.birthday}) }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label"><i class="el-icon-mobile-phone"></i>手机号码</template>{{ formmodel.mobile }}
+        </el-descriptions-item>
+        <el-descriptions-item :span="2">
+          <template slot="label"><i class="el-icon-office-building"></i>家庭住址</template>{{ formmodel.address }}
+        </el-descriptions-item>
+        <el-descriptions-item :span="3">
+          <template slot="label"><i class="el-icon-document"></i>病况描述</template>{{ formmodel.illness_desc }}
+        </el-descriptions-item>
+      </el-descriptions>
+    </el-dialog>
   </div>
 
 </template>
@@ -424,6 +470,7 @@
 // 月子中心版,没有责任医生,责任护士,责任护工选项 也没有护理项参数
 import { AG_GRID_LOCALE_CN } from '@/utils/AgGridVueLocaleCn'
 import ButtonCellRender from '@/components/AgGridCellRender/ButtonCellRender'
+import ButtonCellRenderList from '@/components/AgGridCellRender/ButtonCellRenderList'
 import ListFilter from '@/components/AgGridCustomFilter/ListFilter'
 import RadioFilter from '@/components/AgGridCustomFilter/RadioFilter'
 import * as API_Customer from '@/api/ncs_customer'
@@ -436,7 +483,7 @@ import * as API_User from '@/api/user'
 import { FRAME_TYPE } from '@/utils/enum/FrameTypeEnum'
 export default {
   name: 'CustomerManager',
-  components: { ButtonCellRender, ListFilter, RadioFilter },
+  components: { ButtonCellRenderList, ButtonCellRender, ListFilter, RadioFilter },
   filters: {
     unixDateFilter(val) {
       return unixToDate(val)
@@ -591,7 +638,8 @@ export default {
       customerStatusTransfer: [
         { key: '入住中', value: 0, color: 'green' },
         { key: '已离开', value: 1, color: 'red' }
-      ]
+      ],
+      detailsVisible: false
     }
   },
   computed: {
@@ -625,7 +673,14 @@ export default {
     }
   },
   beforeMount() {
+    const _this = this
     this.gridOptions = {
+      onCellDoubleClicked: function (row) {
+        _this.formmodel = {
+          ...row.data
+        }
+        _this.detailsVisible = true
+      }
     }
     this.columnDefs = [
       {
@@ -634,7 +689,7 @@ export default {
         headerCheckboxSelectionFilteredOnly: true,
         checkboxSelection: true,
         sortable: false, filter: false,
-        width: 80,
+        width: 50,
         resizable: false,
         valueGetter: this.hashValueGetter
       },
@@ -655,100 +710,122 @@ export default {
           listData: this.sexTransfer
         },
         cellRenderer: this.sexRenderer },
-
-      { headerName: '生日', field: 'birthday', sortable: true, filter: 'agDateColumnFilter', valueFormatter: this.unixDateFormatter, filterParams: {
-        comparator: (filterLocalDateAtMidnight, cellValue) => { // 所有数据都由服务器端过滤,此处只需返回0 即可
-          const celldate = unixToDate(cellValue, 'yyyy-MM-dd 00:00:00')
-          return (new Date(celldate).getTime() / 1000) - (filterLocalDateAtMidnight.getTime() / 1000)
-        }
-      }},
-      { headerName: '年龄', field: 'age', sortable: true, filter: 'agNumberColumnFilter', width: 130
-      },
-      { headerName: '年龄单位', field: 'age_unit', sortable: true, filter: 'agTextColumnFilter', width: 130
+      { headerName: '年龄', field: 'age', sortable: true, filter: 'agNumberColumnFilter', width: 130, valueFormatter: this.sexFormatter
       },
-      { headerName: '入住编号', field: 'card_no', sortable: true, filter: 'agTextColumnFilter' },
-      { headerName: '身份证件类型', field: 'id_type', sortable: true, filter: 'agTextColumnFilter' },
-      { headerName: '证件号码', field: 'id_no', sortable: true, filter: 'agNumberColumnFilter', width: 160 },
+      // { headerName: '生日', field: 'birthday', sortable: true, filter: 'agDateColumnFilter', width: 130, valueFormatter: this.unixDateFormatter2, filterParams: {
+      //     comparator: (filterLocalDateAtMidnight, cellValue) => { // 所有数据都由服务器端过滤,此处只需返回0 即可
+      //       const celldate = unixToDate(cellValue, 'yyyy-MM-dd 00:00:00')
+      //       return (new Date(celldate).getTime() / 1000) - (filterLocalDateAtMidnight.getTime() / 1000)
+      //     }
+      //   }},
+      // { headerName: '入住编号', field: 'card_no', sortable: true, filter: 'agTextColumnFilter' },
+      // { headerName: '身份证件类型', field: 'id_type', sortable: true, filter: 'agTextColumnFilter' },
+      // { headerName: '证件', field: 'id_no', sortable: true, filter: 'agNumberColumnFilter', valueFormatter: this.idNoFormatter },
       { headerName: '手机号码', field: 'mobile', sortable: true, filter: 'agTextColumnFilter' },
-      { headerName: '家庭住址', field: 'address', sortable: true, filter: 'agTextColumnFilter', width: 260 },
+      // { headerName: '家庭住址', field: 'address', sortable: true, filter: 'agTextColumnFilter', width: 260 },
 
-      { headerName: '入住时间', field: 'in_date', sortable: true, filter: 'agDateColumnFilter', valueFormatter: this.unixDateFormatter, filterParams: {
+      { headerName: '入住时间', field: 'in_date', sortable: true, filter: 'agDateColumnFilter', valueFormatter: this.formatterDate, filterParams: {
         comparator: (filterLocalDateAtMidnight, cellValue) => { // 所有数据都由服务器端过滤,此处只需返回0 即可
           const celldate = unixToDate(cellValue, 'yyyy-MM-dd 00:00:00')
           return (new Date(celldate).getTime() / 1000) - (filterLocalDateAtMidnight.getTime() / 1000)
         }
       }},
-      { headerName: '离开时间', field: 'out_date', sortable: true, filter: 'agDateColumnFilter', valueFormatter: this.unixDateFormatter, filterParams: {
-        comparator: (filterLocalDateAtMidnight, cellValue) => { // 所有数据都由服务器端过滤,此处只需返回0 即可
-          const celldate = unixToDate(cellValue, 'yyyy-MM-dd 00:00:00')
-          return (new Date(celldate).getTime() / 1000) - (filterLocalDateAtMidnight.getTime() / 1000)
-        }
-      }},
-      { headerName: '编辑', field: 'id',
-        cellRendererFramework: 'ButtonCellRender',
-        cellRendererParams: {
-          onClick: this.handleEdit,
-          label: '编辑',
-          buttonType: 'primary',
-          buttonSize: 'mini'
-        },
-        filter: false,
-        pinned: 'right',
-        lockPinned: true,
-        width: 80,
-        resizable: false,
-        sortable: false },
-      { headerName: '退床', field: 'id',
-        cellRendererFramework: 'ButtonCellRender',
-        cellRendererParams: param => {
-          return {
-            onClick: this.handleOut,
-            label: '退床',
-            buttonType: 'warning',
-            buttonSize: 'mini',
-            disabled: param.data['status'] !== 0
-          }
-        },
-        filter: false,
-        pinned: 'right',
-        lockPinned: true,
-        width: 80,
-        resizable: false,
-        sortable: false },
-      { headerName: '换床', field: 'id',
-        cellRendererFramework: 'ButtonCellRender',
+      // { headerName: '离开时间', field: 'out_date', sortable: true, filter: 'agDateColumnFilter', valueFormatter: this.unixDateFormatter, filterParams: {
+      //   comparator: (filterLocalDateAtMidnight, cellValue) => { // 所有数据都由服务器端过滤,此处只需返回0 即可
+      //     const celldate = unixToDate(cellValue, 'yyyy-MM-dd 00:00:00')
+      //     return (new Date(celldate).getTime() / 1000) - (filterLocalDateAtMidnight.getTime() / 1000)
+      //   }
+      // }},
+      { headerName: '操作', field: 'id',
+        cellRendererFramework: 'ButtonCellRenderList',
         cellRendererParams: param => {
           return {
-            onClick: this.handleChangeBed,
-            label: '换床',
-            buttonType: 'success',
-            buttonSize: 'mini',
-            disabled: param.data['status'] !== 0
-          }
+            list: [
+              {
+                onClick: this.handleEdit,
+                label: '编辑',
+                buttonType: 'primary',
+                buttonSize: 'mini'
+              },
+              {
+                onClick: this.handleOut,
+                label: '退床',
+                buttonType: 'warning',
+                buttonSize: 'mini',
+                disabled: param.data['status'] !== 0
+              },
+              {
+                onClick: this.handleChangeBed,
+                label: '换床',
+                buttonType: 'success',
+                buttonSize: 'mini',
+                disabled: param.data['status'] !== 0
+              },{
+                onClick: this.deleteSingle,
+                label: '删除',
+                buttonType: 'danger',
+                buttonSize: 'mini',
+                disabled: param.data['member_name'] === 'superadmin'
+              }
+          ]}
         },
         filter: false,
         pinned: 'right',
         lockPinned: true,
-        width: 80,
+        minWidth: 260,
         resizable: false,
         sortable: false },
-      { headerName: '删除', field: 'shop_id',
-        cellRendererFramework: 'ButtonCellRender',
-        cellRendererParams: param => {
-          return {
-            onClick: this.deleteSingle,
-            label: '删除',
-            buttonType: 'danger',
-            buttonSize: 'mini',
-            disabled: param.data['member_name'] === 'superadmin'
-          }
-        },
-        pinned: 'right',
-        lockPinned: true,
-        width: 80,
-        resizable: false,
-        filter: false,
-        sortable: false }
+      // { headerName: '退床', field: 'id',
+      //   cellRendererFramework: 'ButtonCellRender',
+      //   cellRendererParams: param => {
+      //     return {
+      //       onClick: this.handleOut,
+      //       label: '退床',
+      //       buttonType: 'warning',
+      //       buttonSize: 'mini',
+      //       disabled: param.data['status'] !== 0
+      //     }
+      //   },
+      //   filter: false,
+      //   pinned: 'right',
+      //   lockPinned: true,
+      //   width: 80,
+      //   resizable: false,
+      //   sortable: false },
+      // { headerName: '换床', field: 'id',
+      //   cellRendererFramework: 'ButtonCellRender',
+      //   cellRendererParams: param => {
+      //     return {
+      //       onClick: this.handleChangeBed,
+      //       label: '换床',
+      //       buttonType: 'success',
+      //       buttonSize: 'mini',
+      //       disabled: param.data['status'] !== 0
+      //     }
+      //   },
+      //   filter: false,
+      //   pinned: 'right',
+      //   lockPinned: true,
+      //   width: 80,
+      //   resizable: false,
+      //   sortable: false },
+      // { headerName: '删除', field: 'shop_id',
+      //   cellRendererFramework: 'ButtonCellRender',
+      //   cellRendererParams: param => {
+      //     return {
+      //       onClick: this.deleteSingle,
+      //       label: '删除',
+      //       buttonType: 'danger',
+      //       buttonSize: 'mini',
+      //       disabled: param.data['member_name'] === 'superadmin'
+      //     }
+      //   },
+      //   pinned: 'right',
+      //   lockPinned: true,
+      //   width: 80,
+      //   resizable: false,
+      //   filter: false,
+      //   sortable: false }
     ]
     this.defaultColDef = {
       // filter: 'agTextColumnFilter',
@@ -776,23 +853,6 @@ export default {
       ]
     })
     this.getEmptyBeds()
-    // var column = this.gridColumnApi.getColumn('id')
-    // const _this = this
-    // column.addEventListener('sortChanged', function(event) {
-    //   console.log(event)
-    //   // _this.rowData = []
-    //   if (event.column.sort !== null && event.column.sort !== '') {
-    //     _this.params.sort = event.column.colId
-    //     _this.params.dir = event.column.sort
-    //   } else {
-    //     delete _this.params.sort
-    //     delete _this.params.dir
-    //   }
-    //   _this.getList()
-    //   // event.columnApi.applyColumnState({ defaultState: { sort: null }})
-    //   // console.log('Column visibility changed', event)
-    // })
-    // this.getList()
   },
   methods: {
     windowResize() {
@@ -927,6 +987,31 @@ export default {
       if (!param.value) return ''
       return unix2Date(param.value * 1000)
     },
+    unixDateFormatter2(param) {
+      if (!param.value) return ''
+      return unix2Date(param.value * 1000, 'yyyy-MM-dd')
+    },
+    sexFormatter(param) {
+      return param.value + param.data.age_unit
+    },
+    idNoFormatter(param) {
+      if (param.value) {
+        return param.data.id_type + ':' +  param.value
+      } else {
+        return '暂无证件'
+      }
+    },
+    formatterDate(param) {
+      let date = unixToDate(param.data.in_date, 'yyyy-MM-dd')
+      if (param.data.out_date) {
+        date += '至' + unixToDate(param.data.out_date, 'yyyy-MM-dd')
+      } else {
+        if (param.data.in_date) {
+          date += '至今'
+        }
+      }
+      return date
+    },
     handleClick() {
 
     },
@@ -1252,7 +1337,7 @@ export default {
         })
       })
     },
-    formatterSex(row, column, cellValue) {
+    formatterSex(row) {
       if (row.sex === 1) {
         return '男'
       } else if (row.sex === 0) {
@@ -1291,6 +1376,7 @@ export default {
     async deleteMembers(ids) {
       API_User.remove(ids)
     }
+
   }
 }
 </script>

+ 1 - 1
src/views/ncs-orginazition/components/partInfoEdit.vue

@@ -25,7 +25,7 @@
           <el-row>
             <el-col :span="8">
               <el-form-item label="组织类型" prop="shop_type">
-                <el-select v-model="formmodel.shop_type" placeholder="请选择组织类型" clearable>
+                <el-select v-model="formmodel.shop_type" placeholder="请选择组织类型" disabled clearable>
                   <el-option label="医院" value="6" />
                   <el-option label="科室" value="5" />
                   <el-option label="机构" value="0" />

+ 30 - 45
src/views/ncs-task/index.vue

@@ -106,12 +106,12 @@ import * as API_task from '@/api/ncs_task'
 import { unix2Date, unixToDate } from '@/utils/Foundation'
 import { AG_GRID_LOCALE_CN } from '@/utils/AgGridVueLocaleCn'
 import Tooltip from '../../components/Tooltip/Tooltip'
-import ButtonCellRender from '@/components/AgGridCellRender/ButtonCellRender'
+import ButtonCellRenderList from '@/components/AgGridCellRender/ButtonCellRenderList'
 import { serverUrl } from '@/utils/domain'
 import { param } from '@/utils'
 export default {
   name: 'Index',
-  components: { Tooltip, ButtonCellRender },
+  components: { Tooltip, ButtonCellRenderList },
   data: function() {
     return {
       /** 表格数据 */
@@ -181,8 +181,8 @@ export default {
           content: 'task_content'
         }
       },
-      { headerName: '计划任务时间', field: 'task_plan_time', valueFormatter: this.formatterDate, sortable: true, filter: false, minWidth: 170 },
-      { headerName: '实际任务时间', field: 'task_do_time', valueFormatter: this.formatterDate, sortable: true, filter: false, minWidth: 170 },
+      { 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',
@@ -192,55 +192,39 @@ export default {
       // },
       { headerName: '任务操作人', field: 'task_do_name', sortable: true, filter: true, minWidth: 120 },
       { headerName: '创建人', field: 'create_name', valueFormatter: this.formatterName, sortable: true, filter: true, minWidth: 120 },
-      { headerName: '操作任务', field: 'id',
-        cellRendererFramework: 'ButtonCellRender',
+      { headerName: '操作', field: 'id',
+        cellRendererFramework: 'ButtonCellRenderList',
         cellRendererParams: param => {
           return {
-            onClick: this.handlerEdit,
-            label: '操作任务',
-            buttonType: 'primary',
-            buttonSize: 'mini',
-            show: param.data['task_do_time'] === null
+            list: [
+              {
+                onClick: this.handlerEdit,
+                label: '操作任务',
+                buttonType: 'primary',
+                buttonSize: 'mini',
+                disabled: param.data['task_do_time'] !== null
+              },
+              {
+                onClick: this.xzfj,
+                label: '下载附件',
+                buttonType: 'success',
+                buttonSize: 'mini',
+                disabled: param.data['file_path'] === '' || param.data['file_path'] === null
+              },
+              {
+                onClick: this.deleteSingle,
+                label: '删除',
+                buttonType: 'danger',
+                buttonSize: 'mini'
+              }
+            ]
           }
         },
         filter: false,
         pinned: 'right',
         lockPinned: true,
-        width: 100,
+        minWidth: 260,
         resizable: false,
-        sortable: false },
-      { headerName: '附件', field: 'id',
-        cellRendererFramework: 'ButtonCellRender',
-        cellRendererParams: param => {
-          return {
-            onClick: this.xzfj,
-            label: '下载',
-            buttonType: 'success',
-            buttonSize: 'mini',
-            show: param.data['file_path'] !== '' && param.data['file_path'] !== null
-          }
-        },
-        filter: false,
-        pinned: 'right',
-        lockPinned: true,
-        width: 100,
-        resizable: false,
-        sortable: false },
-      { headerName: '删除', field: 'id',
-        cellRendererFramework: 'ButtonCellRender',
-        cellRendererParams: param => {
-          return {
-            onClick: this.deleteSingle,
-            label: '删除',
-            buttonType: 'danger',
-            buttonSize: 'mini'
-          }
-        },
-        pinned: 'right',
-        lockPinned: true,
-        width: 100,
-        resizable: false,
-        filter: false,
         sortable: false }
     ]
     this.defaultColDef = {
@@ -513,6 +497,7 @@ export default {
       this.getList()
     },
     xzfj(row) {
+      console.log('row.file_path===', row.file_path)
       window.open(row.file_path)
     }
   }