8 changed files with 490 additions and 14 deletions
@ -1,10 +1,10 @@ |
|||||
VUE_APP_MODE=development |
VUE_APP_MODE=development |
||||
VUE_APP_NODE_ENV=development |
VUE_APP_NODE_ENV=development |
||||
VUE_APP_SCENE=wisdomcar |
VUE_APP_SCENE=wisdomcar |
||||
VUE_APP_BASE_URL=http://test.tall.wiki/ |
VUE_APP_BASE_URL=http://www.tall.wiki/ |
||||
VUE_APP_API_URL=http://test.tall.wiki/gateway |
VUE_APP_API_URL=http://www.tall.wiki/gateway |
||||
VUE_APP_PROXY_URL=/gateway |
VUE_APP_PROXY_URL=/gateway |
||||
VUE_APP_PUBLIC_PATH=/wisdomcar |
VUE_APP_PUBLIC_PATH=/wisdomcar |
||||
VUE_APP_MSG_URL=wss://test.tall.wiki/websocket/message/v4.0/ws |
VUE_APP_MSG_URL=wss://www.tall.wiki/websocket/message/v4.0/ws |
||||
VUE_APP_TITLE=盐湖区人民医院数字看板 |
VUE_APP_TITLE=盐湖区人民医院数字看板 |
||||
VUE_APP_DESCRIPTION=盐湖区人民医院数字看板 |
VUE_APP_DESCRIPTION=盐湖区人民医院数字看板s |
||||
|
@ -1,10 +1,10 @@ |
|||||
VUE_APP_MODE=production |
VUE_APP_MODE=production |
||||
VUE_APP_NODE_ENV=production |
VUE_APP_NODE_ENV=production |
||||
VUE_APP_SCENE=wisdomcar |
VUE_APP_SCENE=wisdomcar |
||||
VUE_APP_BASE_URL=http://test.tall.wiki/ |
VUE_APP_BASE_URL=http://www.tall.wiki/ |
||||
VUE_APP_API_URL=http://test.tall.wiki/gateway |
VUE_APP_API_URL=http://www.tall.wiki/gateway |
||||
VUE_APP_PROXY_URL=/gateway |
VUE_APP_PROXY_URL=/gateway |
||||
VUE_APP_PUBLIC_PATH=/wisdomcar |
VUE_APP_PUBLIC_PATH=/wisdomcar |
||||
VUE_APP_MSG_URL=wss://test.tall.wiki/websocket/message/v4.0/ws |
VUE_APP_MSG_URL=wss://www.tall.wiki/websocket/message/v4.0/ws |
||||
VUE_APP_TITLE=盐湖区人民医院数字看板 |
VUE_APP_TITLE=盐湖区人民医院数字看板 |
||||
VUE_APP_DESCRIPTION=盐湖区人民医院数字看板 |
VUE_APP_DESCRIPTION=盐湖区人民医院数字看板 |
||||
|
@ -0,0 +1,130 @@ |
|||||
|
<!-- |
||||
|
* @Author: aBin |
||||
|
* @email: binbin0314@126.com |
||||
|
* @Date: 2021-07-02 15:29:09 |
||||
|
* @LastEditors: aBin |
||||
|
* @LastEditTime: 2021-07-05 17:55:33 |
||||
|
--> |
||||
|
<template> |
||||
|
<div style="margin-top: 1px"> |
||||
|
<a-button type="primary" icon="plus" @click="visible = true">增加</a-button> |
||||
|
<a-modal :width="800" title="增加记录" :visible="visible" @ok="handleOk" @cancel="handleCancel"> |
||||
|
<a-form :form="form" :label-col="{ span: 5 }" :wrapper-col="{ span: 12 }"> |
||||
|
<a-form-item label="医院" required> |
||||
|
<a-select placeholder="医院" v-model="hospitalId" style="width: 100%; margin-right: 12px" allow-clear> |
||||
|
<a-select-option :value="item.id" v-for="item in hosList" :key="item.id"> {{ item.hospitalName }} </a-select-option> |
||||
|
</a-select> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="名字" required> |
||||
|
<a-input placeholder="名字" v-model="name" /> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="RFID" required> |
||||
|
<a-input placeholder="RFID(16进制)" v-model="rfid" /> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="环节"> |
||||
|
<a-select placeholder="医院" v-model="step" style="width: 100%; margin-right: 12px" allow-clear> |
||||
|
<a-select-option :value="item.id" v-for="item in stepList" :key="item.id"> {{ item.name }} </a-select-option> |
||||
|
</a-select> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="类型" required> |
||||
|
<a-select placeholder="医院" v-model="type" style="width: 100%; margin-right: 12px" allow-clear> |
||||
|
<a-select-option :value="item.id" v-for="item in typeList" :key="item.id"> {{ item.name }} </a-select-option> |
||||
|
</a-select> |
||||
|
</a-form-item> |
||||
|
</a-form> |
||||
|
</a-modal> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import { rfidSave } from 'config/api'; |
||||
|
export default { |
||||
|
name: 'Add', |
||||
|
props: { |
||||
|
hosList: { |
||||
|
type: Array, |
||||
|
default: () => [], |
||||
|
}, |
||||
|
stepList: { |
||||
|
type: Array, |
||||
|
default: () => [], |
||||
|
}, |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
str: '量表', |
||||
|
visible: false, |
||||
|
formLayout: 'horizontal', |
||||
|
form: this.$form.createForm(this, { name: 'coordinated' }), |
||||
|
hospitalId: undefined, |
||||
|
step: undefined, |
||||
|
type: undefined, |
||||
|
typeList: [ |
||||
|
{ |
||||
|
id: 0, |
||||
|
name: '医生', |
||||
|
}, |
||||
|
{ |
||||
|
id: 1, |
||||
|
name: '采血车', |
||||
|
}, |
||||
|
{ |
||||
|
id: 2, |
||||
|
name: '门禁', |
||||
|
}, |
||||
|
], |
||||
|
name: '', |
||||
|
rfid: '', |
||||
|
}; |
||||
|
}, |
||||
|
methods: { |
||||
|
async handleOk() { |
||||
|
try { |
||||
|
if (this.hospitalId === undefined) { |
||||
|
this.$message.warning('请选择医院'); |
||||
|
return; |
||||
|
} |
||||
|
if (this.type === undefined) { |
||||
|
this.$message.warning('请选择类型'); |
||||
|
return; |
||||
|
} |
||||
|
if (this.name === '') { |
||||
|
this.$message.warning('请输入名字'); |
||||
|
return; |
||||
|
} |
||||
|
if (this.rfid === '') { |
||||
|
this.$message.warning('请输入RFID'); |
||||
|
return; |
||||
|
} |
||||
|
const params = { |
||||
|
param: { |
||||
|
hospitalId: this.hospitalId, |
||||
|
step: this.step, |
||||
|
type: this.type, |
||||
|
name: this.name, |
||||
|
rfid: parseInt(this.rfid, 16), |
||||
|
}, |
||||
|
}; |
||||
|
const res = await rfidSave(params); |
||||
|
const { code, data, msg } = res.data; |
||||
|
if (code === 200) { |
||||
|
this.$message.success('添加成功'); |
||||
|
this.visible = false; |
||||
|
this.$emit('Search'); |
||||
|
this.hospitalId = undefined; |
||||
|
this.step = undefined; |
||||
|
this.type = undefined; |
||||
|
this.name = ''; |
||||
|
this.rfid = ''; |
||||
|
} else { |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
} catch (error) { |
||||
|
this.$message.error(error); |
||||
|
} |
||||
|
}, |
||||
|
handleCancel() { |
||||
|
this.visible = false; |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
@ -0,0 +1,111 @@ |
|||||
|
<!-- |
||||
|
* @Author: aBin |
||||
|
* @email: binbin0314@126.com |
||||
|
* @Date: 2021-07-02 15:29:34 |
||||
|
* @LastEditors: aBin |
||||
|
* @LastEditTime: 2021-07-05 14:45:11 |
||||
|
--> |
||||
|
<template> |
||||
|
<div class="d-flex justify-space-between"> |
||||
|
<div> |
||||
|
RFID: |
||||
|
<a-input placeholder="RFID(16进制)" v-model="rfid" style="width: 140px; margin-right: 12px" allow-clear /> |
||||
|
名字: |
||||
|
<a-input placeholder="名字" v-model="name" style="width: 140px; margin-right: 12px" allow-clear /> |
||||
|
类型: |
||||
|
<a-select placeholder="类型" v-model="type" style="width: 140px; margin-right: 12px" allow-clear> |
||||
|
<a-select-option :value="item.id" v-for="item in typeList" :key="item.id"> {{ item.name }} </a-select-option> |
||||
|
</a-select> |
||||
|
环节: |
||||
|
<a-select placeholder="环节" v-model="step" style="width: 140px; margin-right: 12px" allow-clear> |
||||
|
<a-select-option :value="item.id" v-for="item in stepList" :key="item.id"> {{ item.name }} </a-select-option> |
||||
|
</a-select> |
||||
|
医院: |
||||
|
<a-select placeholder="医院" v-model="hospitalId" style="width: 140px; margin-right: 12px" allow-clear> |
||||
|
<a-select-option :value="item.id" v-for="item in hosList" :key="item.id"> {{ item.hospitalName }} </a-select-option> |
||||
|
</a-select> |
||||
|
<a-button type="primary" icon="search" @click="Search">搜索</a-button> |
||||
|
</div> |
||||
|
<add :hos-list="hosList" :step-list="stepList" @Search="Search" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import { queryHospitalList, queryStepList } from 'config/api'; |
||||
|
import Add from './Add.vue'; |
||||
|
export default { |
||||
|
name: 'Search', |
||||
|
components: { Add }, |
||||
|
data() { |
||||
|
return { |
||||
|
rfid: '', |
||||
|
name: '', |
||||
|
type: undefined, |
||||
|
step: undefined, |
||||
|
hospitalId: undefined, |
||||
|
hosList: [], // 医院列表 |
||||
|
stepList: [], // 环节列表 |
||||
|
typeList: [ |
||||
|
{ |
||||
|
id: 0, |
||||
|
name: '医生', |
||||
|
}, |
||||
|
{ |
||||
|
id: 1, |
||||
|
name: '采血车', |
||||
|
}, |
||||
|
{ |
||||
|
id: 2, |
||||
|
name: '门禁', |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.getHos(); |
||||
|
this.getStep(); |
||||
|
}, |
||||
|
methods: { |
||||
|
Search() { |
||||
|
const { rfid, name, type, step, hospitalId } = this; |
||||
|
const data = { |
||||
|
rfid, |
||||
|
name, |
||||
|
type, |
||||
|
step, |
||||
|
hospitalId, |
||||
|
}; |
||||
|
this.$emit('getData', data); |
||||
|
}, |
||||
|
async getHos() { |
||||
|
try { |
||||
|
const params = { param: {} }; |
||||
|
const res = await queryHospitalList(params); |
||||
|
const { code, msg, data } = res.data; |
||||
|
if (code === 200) { |
||||
|
this.hosList = data; |
||||
|
} else { |
||||
|
this.$messag.error(msg); |
||||
|
} |
||||
|
} catch (error) { |
||||
|
this.$messag.error(error); |
||||
|
} |
||||
|
}, |
||||
|
async getStep() { |
||||
|
try { |
||||
|
const params = { param: {} }; |
||||
|
const res = await queryStepList(params); |
||||
|
const { code, msg, data } = res.data; |
||||
|
if (code === 200) { |
||||
|
this.stepList = data; |
||||
|
} else { |
||||
|
this.$messag.error(msg); |
||||
|
} |
||||
|
} catch (error) { |
||||
|
this.$messag.error(error); |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="stylus" scoped></style> |
@ -0,0 +1,140 @@ |
|||||
|
<!-- |
||||
|
* @Author: aBin |
||||
|
* @email: binbin0314@126.com |
||||
|
* @Date: 2021-07-02 15:29:20 |
||||
|
* @LastEditors: aBin |
||||
|
* @LastEditTime: 2021-07-05 17:51:57 |
||||
|
--> |
||||
|
<template> |
||||
|
<div> |
||||
|
<a-table |
||||
|
:columns="columns" |
||||
|
:data-source="list" |
||||
|
:row-key="record => record.id" |
||||
|
:pagination="pagination" |
||||
|
@change="handleTableChange" |
||||
|
bordered |
||||
|
> |
||||
|
<template slot="rfid" slot-scope="text, record"> |
||||
|
<span> |
||||
|
<span style="font-weight: bold">{{ record.name }}</span> |
||||
|
<br /> |
||||
|
十进制:({{ record.rfid }}) |
||||
|
<br /> |
||||
|
十六进制:({{ (+record.rfid).toString(16) }}) |
||||
|
</span> |
||||
|
</template> |
||||
|
<template slot="type" slot-scope="text, record"> |
||||
|
<span v-if="record.type === 0">医生</span> |
||||
|
<span v-else-if="record.type === 1">采血车</span> |
||||
|
<span v-else-if="record.type === 2">门禁</span> |
||||
|
</template> |
||||
|
<template slot="operation" slot-scope="text, record"> |
||||
|
<a-popconfirm placement="left" ok-text="确定" cancel-text="再想想" @confirm="delData(record.id)"> |
||||
|
<template slot="title"> |
||||
|
<p>确定删除此项吗?</p> |
||||
|
</template> |
||||
|
<a-button type="link">删除</a-button> |
||||
|
</a-popconfirm> |
||||
|
</template> |
||||
|
</a-table> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import { rfidDel } from 'config/api'; |
||||
|
|
||||
|
const columns = [ |
||||
|
{ |
||||
|
title: '序号', |
||||
|
align: 'center', |
||||
|
dataIndex: 'id', |
||||
|
key: 'id', |
||||
|
width: '14.2%', |
||||
|
scopedSlots: { customRender: 'id' }, |
||||
|
}, |
||||
|
{ |
||||
|
title: 'RFID', |
||||
|
align: 'center', |
||||
|
dataIndex: 'rfid', |
||||
|
key: 'rfid', |
||||
|
width: '14.2%', |
||||
|
scopedSlots: { customRender: 'rfid' }, |
||||
|
}, |
||||
|
{ |
||||
|
title: '医院', |
||||
|
align: 'center', |
||||
|
dataIndex: 'hospitalName', |
||||
|
key: 'hospitalName', |
||||
|
width: '14.2%', |
||||
|
}, |
||||
|
{ |
||||
|
title: '环节名称', |
||||
|
align: 'center', |
||||
|
dataIndex: 'stepName', |
||||
|
key: 'stepName', |
||||
|
}, |
||||
|
// { |
||||
|
// title: '环节', |
||||
|
// align: 'center', |
||||
|
// dataIndex: 'step', |
||||
|
// key: 'step', |
||||
|
// scopedSlots: { customRender: 'step' }, |
||||
|
// width: '14.2%', |
||||
|
// }, |
||||
|
{ |
||||
|
title: '类型', |
||||
|
align: 'center', |
||||
|
dataIndex: 'type', |
||||
|
key: 'type', |
||||
|
scopedSlots: { customRender: 'type' }, |
||||
|
width: '14.2%', |
||||
|
}, |
||||
|
{ |
||||
|
title: '操作', |
||||
|
align: 'center', |
||||
|
dataIndex: 'operation', |
||||
|
key: 'operation', |
||||
|
scopedSlots: { customRender: 'operation' }, |
||||
|
width: '7%', |
||||
|
}, |
||||
|
]; |
||||
|
export default { |
||||
|
name: 'Table', |
||||
|
props: { |
||||
|
list: { |
||||
|
type: Array, |
||||
|
default: () => [], |
||||
|
}, |
||||
|
pagination: { |
||||
|
type: Object, |
||||
|
default: () => {}, |
||||
|
}, |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
str: '表格', |
||||
|
columns, |
||||
|
}; |
||||
|
}, |
||||
|
methods: { |
||||
|
async delData(id) { |
||||
|
try { |
||||
|
const params = { param: { id } }; |
||||
|
const res = await rfidDel(params); |
||||
|
const { code } = res.data; |
||||
|
if (code === 200) { |
||||
|
this.$message.success('删除成功'); |
||||
|
this.$emit('getData'); |
||||
|
} else { |
||||
|
this.$message.error('删除失败'); |
||||
|
} |
||||
|
} catch (error) { |
||||
|
this.$message.error('删除失败'); |
||||
|
} |
||||
|
}, |
||||
|
handleTableChange(pagination) { |
||||
|
this.$emit('getData', pagination); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
@ -0,0 +1,67 @@ |
|||||
|
<!-- |
||||
|
* @Author: aBin |
||||
|
* @email: binbin0314@126.com |
||||
|
* @Date: 2021-07-02 15:27:23 |
||||
|
* @LastEditors: aBin |
||||
|
* @LastEditTime: 2021-07-05 11:53:49 |
||||
|
--> |
||||
|
<template> |
||||
|
<div style="padding: 12px"> |
||||
|
<Search @getData="getData" /> |
||||
|
<Table class="mt-3" :list="list" :pagination="pagination" @getData="getData" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import { rfidQuery } from 'config/api'; |
||||
|
import Search from './components/Search.vue'; |
||||
|
import Table from './components/Table.vue'; |
||||
|
export default { |
||||
|
components: { Search, Table }, |
||||
|
data() { |
||||
|
return { |
||||
|
str: '量表', |
||||
|
list: [], |
||||
|
pagination: { |
||||
|
current: 1, |
||||
|
pageSize: 10, |
||||
|
total: 0, |
||||
|
}, |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.getData(); |
||||
|
}, |
||||
|
methods: { |
||||
|
async getData(obj) { |
||||
|
try { |
||||
|
const params = { |
||||
|
param: { |
||||
|
hospitalId: obj && obj.hospitalId > -1 ? obj.hospitalId : '', |
||||
|
name: (obj && obj.name) || '', |
||||
|
pageNum: (obj && obj.current) || 1, |
||||
|
pageSize: (obj && obj.pageSize) || 10, |
||||
|
rfid: (obj && obj.rfid) || '', |
||||
|
step: obj && obj.step > -1 ? obj.step : '', |
||||
|
type: obj && obj.type > -1 ? obj.type : '', |
||||
|
}, |
||||
|
}; |
||||
|
const res = await rfidQuery(params); |
||||
|
const { code, data, msg } = res.data; |
||||
|
if (code === 200) { |
||||
|
this.list = data.list; |
||||
|
const paper = { |
||||
|
current: data.pageNum, |
||||
|
pageSize: data.pageSize, |
||||
|
total: +data.total, |
||||
|
}; |
||||
|
this.pagination = { ...paper }; |
||||
|
} else { |
||||
|
console.log(msg); |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.error(error); |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
Loading…
Reference in new issue