|
@@ -416,6 +416,52 @@
|
|
</el-form>
|
|
</el-form>
|
|
</el-dialog>
|
|
</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>
|
|
</div>
|
|
|
|
|
|
</template>
|
|
</template>
|
|
@@ -424,6 +470,7 @@
|
|
// 月子中心版,没有责任医生,责任护士,责任护工选项 也没有护理项参数
|
|
// 月子中心版,没有责任医生,责任护士,责任护工选项 也没有护理项参数
|
|
import { AG_GRID_LOCALE_CN } from '@/utils/AgGridVueLocaleCn'
|
|
import { AG_GRID_LOCALE_CN } from '@/utils/AgGridVueLocaleCn'
|
|
import ButtonCellRender from '@/components/AgGridCellRender/ButtonCellRender'
|
|
import ButtonCellRender from '@/components/AgGridCellRender/ButtonCellRender'
|
|
|
|
+import ButtonCellRenderList from '@/components/AgGridCellRender/ButtonCellRenderList'
|
|
import ListFilter from '@/components/AgGridCustomFilter/ListFilter'
|
|
import ListFilter from '@/components/AgGridCustomFilter/ListFilter'
|
|
import RadioFilter from '@/components/AgGridCustomFilter/RadioFilter'
|
|
import RadioFilter from '@/components/AgGridCustomFilter/RadioFilter'
|
|
import * as API_Customer from '@/api/ncs_customer'
|
|
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'
|
|
import { FRAME_TYPE } from '@/utils/enum/FrameTypeEnum'
|
|
export default {
|
|
export default {
|
|
name: 'CustomerManager',
|
|
name: 'CustomerManager',
|
|
- components: { ButtonCellRender, ListFilter, RadioFilter },
|
|
|
|
|
|
+ components: { ButtonCellRenderList, ButtonCellRender, ListFilter, RadioFilter },
|
|
filters: {
|
|
filters: {
|
|
unixDateFilter(val) {
|
|
unixDateFilter(val) {
|
|
return unixToDate(val)
|
|
return unixToDate(val)
|
|
@@ -591,7 +638,8 @@ export default {
|
|
customerStatusTransfer: [
|
|
customerStatusTransfer: [
|
|
{ key: '入住中', value: 0, color: 'green' },
|
|
{ key: '入住中', value: 0, color: 'green' },
|
|
{ key: '已离开', value: 1, color: 'red' }
|
|
{ key: '已离开', value: 1, color: 'red' }
|
|
- ]
|
|
|
|
|
|
+ ],
|
|
|
|
+ detailsVisible: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -625,7 +673,14 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
beforeMount() {
|
|
beforeMount() {
|
|
|
|
+ const _this = this
|
|
this.gridOptions = {
|
|
this.gridOptions = {
|
|
|
|
+ onCellDoubleClicked: function (row) {
|
|
|
|
+ _this.formmodel = {
|
|
|
|
+ ...row.data
|
|
|
|
+ }
|
|
|
|
+ _this.detailsVisible = true
|
|
|
|
+ }
|
|
}
|
|
}
|
|
this.columnDefs = [
|
|
this.columnDefs = [
|
|
{
|
|
{
|
|
@@ -634,7 +689,7 @@ export default {
|
|
headerCheckboxSelectionFilteredOnly: true,
|
|
headerCheckboxSelectionFilteredOnly: true,
|
|
checkboxSelection: true,
|
|
checkboxSelection: true,
|
|
sortable: false, filter: false,
|
|
sortable: false, filter: false,
|
|
- width: 80,
|
|
|
|
|
|
+ width: 50,
|
|
resizable: false,
|
|
resizable: false,
|
|
valueGetter: this.hashValueGetter
|
|
valueGetter: this.hashValueGetter
|
|
},
|
|
},
|
|
@@ -655,100 +710,122 @@ export default {
|
|
listData: this.sexTransfer
|
|
listData: this.sexTransfer
|
|
},
|
|
},
|
|
cellRenderer: this.sexRenderer },
|
|
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: '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 即可
|
|
comparator: (filterLocalDateAtMidnight, cellValue) => { // 所有数据都由服务器端过滤,此处只需返回0 即可
|
|
const celldate = unixToDate(cellValue, 'yyyy-MM-dd 00:00:00')
|
|
const celldate = unixToDate(cellValue, 'yyyy-MM-dd 00:00:00')
|
|
return (new Date(celldate).getTime() / 1000) - (filterLocalDateAtMidnight.getTime() / 1000)
|
|
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 => {
|
|
cellRendererParams: param => {
|
|
return {
|
|
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,
|
|
filter: false,
|
|
pinned: 'right',
|
|
pinned: 'right',
|
|
lockPinned: true,
|
|
lockPinned: true,
|
|
- width: 80,
|
|
|
|
|
|
+ minWidth: 260,
|
|
resizable: false,
|
|
resizable: false,
|
|
sortable: 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 = {
|
|
this.defaultColDef = {
|
|
// filter: 'agTextColumnFilter',
|
|
// filter: 'agTextColumnFilter',
|
|
@@ -776,23 +853,6 @@ export default {
|
|
]
|
|
]
|
|
})
|
|
})
|
|
this.getEmptyBeds()
|
|
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: {
|
|
methods: {
|
|
windowResize() {
|
|
windowResize() {
|
|
@@ -927,6 +987,31 @@ export default {
|
|
if (!param.value) return ''
|
|
if (!param.value) return ''
|
|
return unix2Date(param.value * 1000)
|
|
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() {
|
|
handleClick() {
|
|
|
|
|
|
},
|
|
},
|
|
@@ -1252,7 +1337,7 @@ export default {
|
|
})
|
|
})
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- formatterSex(row, column, cellValue) {
|
|
|
|
|
|
+ formatterSex(row) {
|
|
if (row.sex === 1) {
|
|
if (row.sex === 1) {
|
|
return '男'
|
|
return '男'
|
|
} else if (row.sex === 0) {
|
|
} else if (row.sex === 0) {
|
|
@@ -1291,6 +1376,7 @@ export default {
|
|
async deleteMembers(ids) {
|
|
async deleteMembers(ids) {
|
|
API_User.remove(ids)
|
|
API_User.remove(ids)
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|