Browse Source

表格试题修改

master
aBin 4 years ago
parent
commit
803075e58f
  1. 162
      package-lock.json
  2. 18
      src/App.vue
  3. 4
      src/common/portrait.styl
  4. 14
      src/components/PatientInfo/PatientAdd.vue
  5. 13
      src/components/PatientInfo/PatientTable.vue
  6. 11
      src/components/PatientInfo/Search.vue
  7. 104
      src/components/TypeTable/TypeTable.vue
  8. 79
      src/views/BiologicalSamples/BiologicalSamples.vue
  9. 2027
      src/views/CaseAnalysis/CaseAnalysis.vue
  10. 1999
      src/views/CaseSearch/CaseSearch.vue
  11. 1306
      src/views/PatientInfo/PatientInfo.vue
  12. 78
      src/views/SelectPatient/SelectPatient.vue

162
package-lock.json

@ -1808,16 +1808,6 @@
"integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"cacache": {
"version": "13.0.1",
"resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594427999421&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
@ -1850,34 +1840,6 @@
"integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
"dev": true
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"css-loader": {
"version": "3.6.0",
"resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1604507107408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz",
@ -1931,13 +1893,6 @@
"universalify": "^0.1.0"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"icss-utils": {
"version": "4.1.1",
"resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1602527330977&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz",
@ -2052,16 +2007,6 @@
"minipass": "^3.1.1"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"terser-webpack-plugin": {
"version": "2.3.8",
"resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881757308&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz",
@ -2078,32 +2023,6 @@
"terser": "^4.6.12",
"webpack-sources": "^1.4.3"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.1.2",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz",
"integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
}
}
}
}
},
@ -12677,6 +12596,87 @@
}
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.2.0",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.2.0.tgz",
"integrity": "sha512-TitGhqSQ61RJljMmhIGvfWzJ2zk9m1Qug049Ugml6QP3t0e95o0XJjk29roNEiPKJQBEi8Ord5hFuSuELzSp8Q==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-quill-editor": {
"version": "3.0.6",
"resolved": "https://registry.npm.taobao.org/vue-quill-editor/download/vue-quill-editor-3.0.6.tgz",

18
src/App.vue

@ -3,13 +3,13 @@
* @email: 18603454788@163.com
* @Date: 2021-02-22 09:20:03
* @LastEditors: wally
* @LastEditTime: 2021-04-14 19:12:11
* @LastEditTime: 2021-04-20 10:11:13
-->
<template>
<a-config-provider :locale="zh_CN">
<div class="d-flex flex-row flex-nowrap" id="app">
<!-- <btn-con /> -->
<btn-con />
<router-view class="flex-1 bg pa-3"></router-view>
</div>
</a-config-provider>
@ -18,12 +18,12 @@
<script>
import { mapState, mapActions, mapMutations } from 'vuex';
import zh_CN from 'ant-design-vue/lib/locale-provider/zh_CN';
// import BtnCon from 'components/BtnCom/BtnCon.vue';
import BtnCon from 'components/BtnCom/BtnCon.vue';
import { getHId } from 'config/api';
export default {
name: 'App',
// components: { BtnCon },
components: { BtnCon },
data() {
return { zh_CN };
},
@ -40,11 +40,11 @@ export default {
}
},
},
created() {
// const userId = '1218763410024566784';
// const params = { userId };
// await this.getUserId(params);
// await this.getToken();
async created() {
const userId = '1218763410024566784';
const params = { userId };
await this.getUserId(params);
await this.getToken();
if (localStorage.getItem('patientId')) {
this.setPatientId(localStorage.getItem('patientId'));
}

4
src/common/portrait.styl

@ -195,7 +195,7 @@
.white--text{
color: #fff;
width: 200px;
width: 100px;
margin: 0 auto
}
.bot-right-btn{
@ -208,7 +208,7 @@
position: fixed;
height: 40px;
font-size: 14px;
right: 50px;
right: 12px;
top: 50px;
}
// flex

14
src/components/PatientInfo/PatientAdd.vue

@ -3,7 +3,7 @@
* @email: 18603454788@163.com
* @Date: 2021-02-22 09:20:03
* @LastEditors: wally
* @LastEditTime: 2021-04-14 18:33:40
* @LastEditTime: 2021-04-20 17:20:18
-->
<template>
<div class="d-flex flex-wrap pb-3">
@ -11,21 +11,21 @@
<a-modal :closable="false" footer title="新增病患" v-model="visible" width="700px">
<a-form :form="form" @submit="handleSubmit" ref="form">
<!-- 住院号 -->
<!-- <a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="患者号">
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="患者住院号">
<a-input
placeholder="患者编号"
placeholder="住院号"
v-decorator="[
'hospitalization',
{
rules: [
{ required: true, message: '患者编号不能为空' },
{ whitespace: true, message: '患者编号不能为空' },
{ max: 140, massage: '患者编号最多140个字符' },
{ required: true, message: '住院号不能为空' },
{ whitespace: true, message: '住院号不能为空' },
{ max: 140, massage: '住院号最多140个字符' },
],
},
]"
/>
</a-form-item> -->
</a-form-item>
<!-- 对照组 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="对照组">
<a-select placeholder="对照组" v-decorator="['inpatientId', { rules: [{ required: true, message: '对照组不能为空' }] }]">

13
src/components/PatientInfo/PatientTable.vue

@ -38,7 +38,7 @@
</a-table>
</div>
<a-empty v-else />
<a-modal title="会议记录预览" width="600px" v-model="visible" @ok="handleOk" @cancel="handleCancel">
<a-modal title="选择患者" width="600px" v-model="visible" @ok="handleOk" @cancel="handleCancel">
是否要录入患者编号为
<span style="color: green">{{ hospitalization }}</span>
的患者的相关数据
@ -58,7 +58,13 @@ const columns = [
scopedSlots: { customRender: 'id' },
},
{
title: '编号',
title: '研究编号',
align: 'center',
dataIndex: 'code',
key: 'code',
},
{
title: '住院号',
align: 'center',
dataIndex: 'hospitalization',
key: 'hospitalization',
@ -96,6 +102,7 @@ export default {
columns,
loading: false,
visible: false,
hasPatientId: false,
patientId: '',
hospitalization: '',
};
@ -121,9 +128,11 @@ export default {
},
handleCancel(e) {
this.visible = false;
this.visible1 = false;
},
handleOk() {
this.chooseItem(this.patientId, this.hospitalization);
this.visible1 = true;
},
//
async chooseItem(id, hospitalization) {

11
src/components/PatientInfo/Search.vue

@ -1,10 +1,17 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-04-19 10:23:19
* @LastEditors: wally
* @LastEditTime: 2021-04-20 17:19:13
-->
<template>
<!-- search -->
<div>
<div class="d-flex flex-row flex-nowrap">
<a-form :form="form" @submit="handleSubmit" class="d-flex flex-nowrap align-center" layout="inline">
<a-form-item>
<a-input placeholder="患者编号" style="width: 14em" v-decorator="['inpatientNumber']" />
<a-input placeholder="研究编号" style="width: 14em" v-decorator="['inpatientNumber']" />
</a-form-item>
<a-form-item>
<a-select placeholder="请选择对照组" style="min-width: 450px" v-decorator="['groupValue']" allow-clear>
@ -14,7 +21,7 @@
<a-button class="mr-4" html-type="submit" icon="search" type="primary">搜索</a-button>
</a-form>
<div class="flex-1"></div>
<a-button @click="showModal" html-type="submit" icon="plus" type="primary">新增</a-button>
<a-button @click="showModal" class="mt-1" html-type="submit" icon="plus" type="primary">新增</a-button>
</div>
<patient-add :visible="visible" @closeModal="closeModal" @searchMes="searchMes" />
</div>

104
src/components/TypeTable/TypeTable.vue

@ -0,0 +1,104 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-04-20 17:44:23
* @LastEditors: wally
* @LastEditTime: 2021-04-20 21:32:09
-->
<template>
<div>
<a-table :columns="columns" :pagination="false" :row-key="record => record.title" :data-source="propData" bordered class="white pa-3">
<template :slot="firstData" slot-scope="text, record">
<span>{{ record.titleHead }}</span>
</template>
<template v-for="(item, itemIndex) in columns.slice(1, columns.length)" :slot="item.title" slot-scope="text, record, index">
<!-- <a-input :key="item" v-model="record.render" /> -->
<!-- {{ index }}{{ itemIndex }} -->
<a-input-number
:key="JSON.stringify(item)"
id="inputNumber"
v-model="list[index * rowNum + itemIndex].answer"
@change="onChange($event, list[index * rowNum + itemIndex].type, list[index * rowNum + itemIndex].id)"
/>
</template>
</a-table>
</div>
</template>
<script>
export default {
name: 'TypeTable',
props: {
remark: {
type: String,
default: '',
},
list: {
type: Array,
default: () => [],
},
},
data() {
return {
columns: [],
firstData: '',
propData: [],
colNum: 0, //
rowNum: 0, //
contentList: [], //
};
},
created() {
// remark
const data = JSON.parse(this.remark);
this.changeRow(data.param);
this.changeCol(data.param);
console.log(this.list);
},
methods: {
/**
* 获取列
*/
changeRow(data) {
this.columns = [];
if (data.rowTitle && data.rowTitle.length) {
this.firstData = data.rowTitle[0];
this.rowNum = data.rowTitle.length - 1;
for (let i = 0; i < data.rowTitle.length; i++) {
const item = data.rowTitle[i];
let obj = {
title: item,
align: 'center',
dataIndex: item,
key: item,
scopedSlots: { customRender: item },
render: i,
};
this.columns.push(obj);
}
}
},
/**
* 获取行
*/
changeCol(data) {
this.propData = [];
if (data.colTitle && data.colTitle.length) {
this.colNum = data.colTitle.length;
for (let i = 0; i < data.colTitle.length; i++) {
const item = data.colTitle[i];
let obj = { titleHead: item };
this.propData.push(obj);
}
}
},
/**
* 改变输入框内的内容时
*/
onChange(e, type, id) {
this.$emit('getTableAnswer', e, 13, id);
},
},
};
</script>

79
src/views/BiologicalSamples/BiologicalSamples.vue

@ -1,56 +1,59 @@
<template>
<div>
<div class="metting">
<a-card :bordered="false" title="生物样本">
<a-form :form="form" @submit="handleSubmit">
<!-- 患者编号 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="患者编号">
<a-input
placeholder="患者编号"
v-decorator="[
'inpatientNumber',
{
rules: [
{ required: true, message: '患者编号不能为空' },
{ whitespace: true, message: '患者编号不能为空' },
{ max: 140, massage: '患者编号最多140个字符' },
],
initialValue: hospitalization,
},
]"
/>
</a-form-item>
<!-- 样本类型 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="样本类型" required>
<a-select placeholder="请选择样本类型" style="min-width: 150px" v-decorator="['sampleType']" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in types">{{ item.title }}</a-select-option>
</a-select>
</a-form-item>
<!-- 样本类型 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="采集时间" required>
<a-select placeholder="请选择采集时间" style="min-width: 150px" v-decorator="['acquisitionTime']" allow-clear>
<a-select-option :key="t.id" :value="t.id" v-for="t in acquisitionTime">{{ t.title }}</a-select-option>
</a-select>
</a-form-item>
<div style="width: 100%">
<div class="metting">
<a-card :bordered="false" title="生物样本">
<a-form :form="form" @submit="handleSubmit">
<!-- 患者编号 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="患者编号">
<a-input
placeholder="患者编号"
v-decorator="[
'inpatientNumber',
{
rules: [
{ required: true, message: '患者编号不能为空' },
{ whitespace: true, message: '患者编号不能为空' },
{ max: 140, massage: '患者编号最多140个字符' },
],
initialValue: hospitalization,
},
]"
/>
</a-form-item>
<!-- 样本类型 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="样本类型" required>
<a-select placeholder="请选择样本类型" style="min-width: 150px" v-decorator="['sampleType']" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in types">{{ item.title }}</a-select-option>
</a-select>
</a-form-item>
<!-- 样本类型 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="采集时间" required>
<a-select placeholder="请选择采集时间" style="min-width: 150px" v-decorator="['acquisitionTime']" allow-clear>
<a-select-option :key="t.id" :value="t.id" v-for="t in acquisitionTime">{{ t.title }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item class="d-flex flex-row-reverse">
<a-button class="white--text px-10" html-type="submit" type="primary">提交</a-button>
</a-form-item>
</a-form>
</a-card>
<a-form-item class="d-flex flex-row-reverse">
<a-button class="white--text px-10" html-type="submit" type="primary">提交</a-button>
</a-form-item>
</a-form>
</a-card>
</div>
</div>
</div>
</template>
<script>
import { addBiologicalSamples } from 'config/api';
const formItemLayout = {
labelCol: { span: 4 },
wrapperCol: { span: 18 },
};
const tailItemLayout = { wrapperCol: { span: 18, offset: 4 } };
export default {
name: 'Meeting',
name: 'BiologicalSamples',
data() {
return {
formItemLayout,

2027
src/views/CaseAnalysis/CaseAnalysis.vue

File diff suppressed because it is too large

1999
src/views/CaseSearch/CaseSearch.vue

File diff suppressed because it is too large

1306
src/views/PatientInfo/PatientInfo.vue

File diff suppressed because it is too large

78
src/views/SelectPatient/SelectPatient.vue

@ -1,35 +1,88 @@
<template>
<div class="d-flex flex-column">
<search @searchPatientMes="searchPatientMes" />
<patient-table :lists="lists" @handleSelPatientMes="handleSelPatientMes" class="mt-3" />
<div v-if="!patientId">
<search @searchPatientMes="searchPatientMes" />
<patient-table :lists="lists" @handleSelPatientMes="handleSelPatientMes" class="mt-3" />
</div>
<div v-else style="position: relative">
<a-tabs default-active-key="OTHER">
<a-tab-pane v-for="item in codeTypeList" :key="item.code" :tab="item.name">
<div v-if="item.code === 'SWYB'">
<biological-samples />
</div>
<div v-else-if="item.code === 'RZLB'">
<iframe style="width: 100%; heigt: 100%" height="100%" :src="rzlbSrc"></iframe>
</div>
<div v-else-if="item.code !== 'SWYB' && item.code !== 'RZLB'">
<patient-info :code="item.code" />
</div>
</a-tab-pane>
</a-tabs>
<a-button @click="choosePatient" class="choose-btn" type="primary">
<a-icon type="retweet" />
重新选择患者
</a-button>
</div>
</div>
</template>
<script>
import Search from 'components/PatientInfo/Search.vue';
import PatientTable from 'components/PatientInfo/PatientTable.vue';
import PatientInfo from 'views/PatientInfo/PatientInfo.vue';
import BiologicalSamples from 'views/BiologicalSamples/BiologicalSamples.vue';
import { selPatientMes } from 'config/api';
import { mapState, mapActions } from 'vuex';
import { mapState, mapActions, mapMutations } from 'vuex';
export default {
name: 'SelectPatient',
components: { Search, PatientTable },
components: { Search, PatientTable, PatientInfo, BiologicalSamples },
data() {
return {
lists: { pageNum: 1, pageSize: 10, total: 1, list: [] },
hospitalization: '',
inpatientId: '',
codeTypeList: [
{
code: 'OTHER',
name: '基础信息',
},
{
code: 'ZLXG',
name: '诊疗相关',
},
{
code: 'XYJC',
name: '血液检查',
},
{
code: 'QXJC',
name: '器械检查',
},
{
code: 'SWYB',
name: '生物样本',
},
{
code: 'RZLB',
name: '认知量表',
},
],
rzlbSrc: `http://sxzxyzzlm.tall.wiki/ht-common?code=KT&userId=1218763410024566784`,
};
},
computed: mapState('home', ['patientId', 'ptProps', 'user']),
created() {
this.handleSelPatientMes();
this.getControlGroups();
this.rzlbSrc = `http://sxzxyzzlm.tall.wiki/ht-common?code=KT&userId=${this.user.id}`;
},
methods: {
...mapActions('home', ['getControlGroups']),
...mapMutations('home', ['setPatientId']),
searchPatientMes(value) {
if (value) {
this.hospitalization = value.inpatientNumber;
@ -62,8 +115,21 @@ export default {
throw new Error(error);
}
},
/**
* 重新选择患者
*/
choosePatient() {
this.setPatientId('');
},
},
};
</script>
<style lang="stylus" scoped></style>
<style lang="stylus" scoped>
.choose-btn {
position: fixed;
top: 12px;
right: 12px;
}
</style>

Loading…
Cancel
Save