Browse Source

消息推送,个人数据统计界面

master
lucky 4 years ago
parent
commit
a65e8f2efb
  1. 1
      src/components/BtnCom/BtnCon.vue
  2. 4
      src/config/api.js
  3. 8
      src/router/index.js
  4. 53
      src/views/Meeting/Meeting.vue
  5. 45
      src/views/PersonalStats/PersonalStats.vue

1
src/components/BtnCom/BtnCon.vue

@ -9,6 +9,7 @@
<div @click="jump('/biologicalSamples')" class="btn">生物样本</div>
<div @click="jump('/biologicalSampleSearch')" class="btn">生物样本搜索</div>
<div @click="jump('/messagePush')" class="btn">消息推送</div>
<div @click="jump('/personalStats')" class="btn">个人数据统计</div>
</div>
</template>

4
src/config/api.js

@ -13,6 +13,7 @@ const patient = `${tcm}/patient`; // 患者相关接口
const imp = `${tcm}/import`; // 试题相关接口
const inpatient = `${tcm}/inpatient`; // 对照组接口
const statistics = `${tcm}/statistics`; // 数据统计相关接口
const conferenceRecords = `${tcm}/conferenceRecords`; // 会议纪要相关接口
// 保存患者病例信息
export const saveCaseMes = params => axios.post(`${patient}/saveCaseMes`, params);
@ -42,3 +43,6 @@ export const countAnalysis = params => axios.post(`${statistics}/countAnalysis`,
// 查询每日病例统计
export const countCase = params => axios.post(`${statistics}/countCase`, params);
// 添加会议记录
export const saveConferenceRecords = params => axios.post(`${conferenceRecords}/save`, params);

8
src/router/index.js

@ -66,12 +66,18 @@ const routes = [
name: 'biologicalSampleSearch',
component: () => import('@/views/BiologicalSampleSearch/BiologicalSampleSearch.vue'),
},
// 生物样本搜索
// 消息推送
{
path: '/messagePush',
name: 'messagePush',
component: () => import('@/views/MessagePush/MessagePush.vue'),
},
// 个人数据统计
{
path: '/personalStats',
name: 'personalStats',
component: () => import('@/views/PersonalStats/PersonalStats.vue'),
},
];
const router = new VueRouter({

53
src/views/Meeting/Meeting.vue

@ -16,7 +16,7 @@
<a-range-picker
:placeholder="['开始时间', '结束时间']"
@change="onChangeTime"
format="YYYY-MM-DD HH:mm"
format="YYYY-MM-DD HH:mm:ss"
show-time
style="width: 100%"
v-decorator="['time', rangeConfig]"
@ -68,7 +68,11 @@
:wrapper-col="formItemLayout.wrapperCol"
label="参会人员"
>
<quill-editor :max-size="maxSize" :placeholder="placeholderParticipants" />
<quill-editor
:max-size="maxSize"
:placeholder="placeholderParticipants"
v-model="participants"
/>
</a-form-item>
<!-- 研讨内容 -->
<a-form-item
@ -76,7 +80,11 @@
:wrapper-col="formItemLayout.wrapperCol"
label="研讨内容"
>
<quill-editor :max-size="maxSize" :placeholder="placeholderContent" />
<quill-editor
:max-size="maxSize"
:placeholder="placeholderContent"
v-model="discussionContent"
/>
</a-form-item>
<!-- 会议纪要 -->
<a-form-item
@ -84,7 +92,11 @@
:wrapper-col="formItemLayout.wrapperCol"
label="会议纪要"
>
<quill-editor :max-size="maxSize" :placeholder="placeholderMeeting" />
<quill-editor
:max-size="maxSize"
:placeholder="placeholderMeeting"
v-model="meetingMinutes"
/>
</a-form-item>
<a-form-item class="d-flex flex-row-reverse">
@ -99,6 +111,7 @@
<script>
import QuillEditor from 'components/QuillEditor/QuillEditor.vue';
import moment from 'moment';
import { saveConferenceRecords } from 'config/api';
const formItemLayout = {
labelCol: { span: 4 },
@ -115,11 +128,11 @@ export default {
tailItemLayout,
form: this.$form.createForm(this, { name: 'page-add' }),
rangeConfig: { rules: [{ type: 'array', required: true, message: '会议时间不能为空' }] },
place: '', //
host: '', //
participants: '', //
content: '', //
discussionContent: '', //
meetingMinutes: '', //
startTime: '', //
endTime: '', //
placeholderParticipants: '请在此输入参会人员...',
maxSize: 2048,
placeholderContent: '请在此输入研讨内容...',
@ -132,6 +145,8 @@ export default {
onChangeTime(dates, dateStrings) {
console.log('From: ', dates[0], ', to: ', dates[1]);
console.log('From: ', dateStrings[0], ', to: ', dateStrings[1]);
this.startTime = dateStrings[0];
this.endTime = dateStrings[1];
},
//
@ -140,19 +155,19 @@ export default {
this.form.validateFieldsAndScroll(async (err, values) => {
if (!err) {
try {
// const param = values;
// const params = { param };
// console.log('params: ', params);
// const res = await addPage(params);
// const { data, msg, code } = res.data;
// this.$emit('closeModal');
// if (code === 200) {
// this.$message.success('');
// } else {
// throw msg;
// }
const { host, place } = values;
const { startTime, endTime, participants, discussionContent, meetingMinutes } = this;
const params = { param: { host, place, startTime, endTime, participants, meetingMinutes, discussionContent, taskId: '0' } };
console.log('params: ', params);
const res = await saveConferenceRecords(params);
const { data, msg, code } = res.data;
if (code === 200) {
this.$message.success('提交成功');
} else {
throw msg;
}
} catch (error) {
// this.$message.error(error || '');
this.$message.error(error || '提交失败');
}
}
});

45
src/views/PersonalStats/PersonalStats.vue

@ -0,0 +1,45 @@
<template>
<div class="flex-wrap">
<div class="fill-width mb-3">
<a-card style="width: 100%; height: 400px" title="病例统计">
<treemap />
</a-card>
</div>
<div class="fill-width mb-3">
<a-card style="width: 100%; height: 400px" title="各院病例分析">
<categorymap />
</a-card>
</div>
<div class="fill-width mb-3">
<a-card style="width: 100%; height: 400px" title="每日病例统计">
<cisualmap />
</a-card>
</div>
<div class="fill-width">
<a-card style="width: 100%; height: 400px" title="各医院生物样本统计">
<piemap />
</a-card>
</div>
</div>
</template>
<script>
import Treemap from 'components/Echarts/Treemap.vue';
import Cisualmap from 'components/Echarts/Cisualmap.vue';
import Categorymap from 'components/Echarts/Categorymap.vue';
import Piemap from 'components/Echarts/Piemap.vue';
export default {
name: 'Index',
components: { Treemap, Cisualmap, Categorymap, Piemap },
data() {
return {
str: '',
showVideo: false,
};
},
methods: {},
};
</script>
<style lang="stylus" scoped></style>
Loading…
Cancel
Save