Browse Source

详情页内容迁移

master
aBin 3 years ago
parent
commit
2752bc9710
  1. 10
      .env.development
  2. 10
      .env.production
  3. 4
      src/common/styles/tailwind.scss
  4. 2
      src/components/Globals/Globals.vue
  5. 24
      src/components/PatientList/PatientList.vue
  6. 2
      src/components/PrettyExchange/PrettyExchange.vue
  7. 25
      src/components/Projects/ProjectItem.vue
  8. 8
      src/components/Roles/Roles.vue
  9. 26
      src/components/Test/Test.vue
  10. 6
      src/pages.json
  11. 3
      src/pages/camera/camera.vue
  12. 35
      src/pages/detail-webview/detail-webview.vue
  13. 1
      src/pages/establish/establish.vue
  14. 207
      src/pages/inner/inner.vue
  15. 106
      src/pages/outside/mixin.js
  16. 408
      src/pages/outside/outside.vue
  17. 1
      src/pages/patientLine/patientLine.vue
  18. 37
      src/pages/task-page/task-page.vue
  19. 8
      src/store/carbasics/mutations.js
  20. 5
      src/store/carbasics/state.js

10
.env.development

@ -1,8 +1,8 @@
VUE_APP_NODE_ENV=development
VUE_APP_BASE_URL=http://101.201.226.163
VUE_APP_API_URL=http://101.201.226.163/gateway
VUE_APP_MSG_URL=ws://101.201.226.163/websocket/message/v4.0/ws
VUE_APP_PROJECT_PATH=http://101.201.226.163/carBasicTall
VUE_APP_QUESTION_PATH=http://101.201.226.163/carbasics
VUE_APP_BASE_URL=https://www.tall.wiki
VUE_APP_API_URL=https://www.tall.wiki/gateway
VUE_APP_MSG_URL=ws://www.tall.wiki/websocket/message/v4.0/ws
VUE_APP_PROJECT_PATH=https://www.tall.wiki/carBasicTall
VUE_APP_QUESTION_PATH=https://www.tall.wiki/carbasics
VUE_APP_VERSION=v3.1.0
VUE_APP_PUBLIC_PATH=/carBasicCalendar/

10
.env.production

@ -1,8 +1,8 @@
VUE_APP_NODE_ENV=production
VUE_APP_BASE_URL=https://test.tall.wiki
VUE_APP_API_URL=https://test.tall.wiki/gateway
VUE_APP_MSG_URL=ws://101.201.226.163/websocket/message/v4.0/ws
VUE_APP_PROJECT_PATH=https://test.tall.wiki/carBasicTall
VUE_APP_QUESTION_PATH=https://test.tall.wiki/carbasics
VUE_APP_BASE_URL=https://www.tall.wiki
VUE_APP_API_URL=https://www.tall.wiki/gateway
VUE_APP_MSG_URL=wss://www.tall.wiki/websocket/message/v4.0/ws
VUE_APP_PROJECT_PATH=https://www.tall.wiki/carBasicTall
VUE_APP_QUESTION_PATH=https://www.tall.wiki/carbasics
VUE_APP_VERSION=v3.1.0
VUE_APP_PUBLIC_PATH=/carBasicCalendar/

4
src/common/styles/tailwind.scss

@ -3729,6 +3729,10 @@
line-height: 1.75rem;
}
.fz-16 {
font-size: 16px;
}
.text-xl {
font-size: 1.25rem;
line-height: 1.75rem;

2
src/components/Globals/Globals.vue

@ -27,6 +27,7 @@ export default {
},
created() {
var obj = JSON.parse(this.globals[0].plugins[0][0].param);
// console.log('obj: ', obj);
this.setGlobalData(obj);
this.global[0] = this.globals[0];
this.globalTabs = [...this.globals];
@ -39,6 +40,7 @@ export default {
if (e !== this.globals.length) {
this.global[0] = this.globals[e];
var obj = JSON.parse(this.globals[e].plugins[0][0].param);
// console.log('obj: ', obj);
this.setGlobalData(obj);
this.$emit('changeShowLine', false);
this.showLine = false;

24
src/components/PatientList/PatientList.vue

@ -60,7 +60,7 @@
>
<div
@longpress="longpress(card.firstAidId)"
@click="changeTimeLine(card.recordUserId, card.firstAidId, card.caseType)"
@click="changeTimeLine(card.recordUserId, card.firstAidId, globalData.createAuth - 0 === 0 ? 1 : 0, card.demonstrate)"
style="height: 100%; width: 100%; position: absolute; top: 0; left: 0; z-index: 10"
></div>
<div :style="{ 'margin-left': outIndex === cardIndex && card.recordUserId - 0 ? '-68px' : '' }" class="w-full anima">
@ -154,7 +154,7 @@ export default {
isMove: false, //
}),
computed: {
...mapState('carbasics', ['detailsData', 'globalData', 'refreshList']),
...mapState('carbasics', ['globalData', 'refreshList']),
...mapGetters('project', ['projectId']),
},
mounted() {
@ -167,7 +167,7 @@ export default {
this.getData(true);
},
methods: {
...mapMutations('carbasics', ['setFirstAidId']),
...mapMutations('carbasics', ['setFirstAidId', 'setDetailValueType']),
jump() {
uni.navigateTo({ url: `/pages/establish/establish?role=${this.role}` });
},
@ -221,12 +221,14 @@ export default {
// card,
// ,
// ,
changeTimeLine(recordUserId, firstAidId, caseType) {
changeTimeLine(recordUserId, firstAidId, caseType, demonstrate) {
try {
if (!(recordUserId - 0)) {
this.changeShow(firstAidId);
this.changeShow(firstAidId, caseType, demonstrate);
} else {
console.log('firstAidId: ', firstAidId);
this.setFirstAidId(firstAidId);
this.setDetailValueType(demonstrate);
// this.$router.push(`/patient-line`);
uni.navigateTo({ url: `/pages/patientLine/patientLine?caseType=${caseType}` });
}
@ -239,17 +241,17 @@ export default {
}
},
// ,,
changeShow(id) {
changeShow(id, caseType, demonstrate) {
if (this.role === 'YiSheng') {
// id,
// ,线,线,/,
this.firstAidId = id;
this.handleOk(this.detailsData.type);
this.handleOk(this.globalData.createAuth - 0 === 0 ? 1 : 0, caseType, demonstrate);
// this.visible = true; // /
}
},
//
async handleOk(type) {
async handleOk(type, caseType, demonstrate) {
try {
const { projectId, firstAidId } = this;
const param = {
@ -258,7 +260,6 @@ export default {
type,
};
const res = await uni.$u.api.joinAid(param);
console.log('res: ', res);
if (res) {
this.$refs.uToast.show({
title: '加入成功',
@ -284,6 +285,10 @@ export default {
};
uni.$u.api.setRecord(setParam);
this.getData(true);
this.setFirstAidId(firstAidId);
this.setDetailValueType(demonstrate);
// this.$router.push(`/patient-line`);
uni.navigateTo({ url: `/pages/patientLine/patientLine?caseType=${caseType}` });
} else {
this.$refs.uToast.show({
title: '加入失败',
@ -340,6 +345,7 @@ export default {
}
this.total = data.page.total;
this.role = data.role;
console.log('this.role: ', this.role);
} else {
this.$t.ui.showToast('没有更多数据');
}

2
src/components/PrettyExchange/PrettyExchange.vue

@ -111,7 +111,7 @@
<view class="border-80 bg-blue-500" v-if="item.showSubBorder"></view>
</view>
</view>
<view class="edition">v1.7.1</view>
<view class="edition">v2.0.0</view>
</scroll-view>
<!-- 移动悬浮 begin -->
<view v-if="showMoveImage">

25
src/components/Projects/ProjectItem.vue

@ -84,7 +84,7 @@
</template>
<script>
import { mapGetters } from 'vuex';
import { mapGetters, mapMutations } from 'vuex';
export default {
props: {
@ -119,17 +119,26 @@ export default {
computed: mapGetters('user', ['userId']),
methods: {
...mapMutations('carbasics', ['setGlobalData']),
...mapMutations('task', ['setPermanents', 'setDailyTasks']),
//
openProject(project) {
const { name, id, url } = project;
const { name, id, url, templateCode } = project;
url && (uni.$t.domain = url);
// this.$u.route('pages/project-webview/project-webview', {
// u: this.userId,
// p: id,
// pname: name,
// url: encodeURIComponent(url),
// });
if (templateCode === 'carbasics') {
// ,
this.setGlobalData({});
this.setPermanents(null);
this.setDailyTasks(null);
uni.navigateTo({ url: `/pages/task-page/task-page?u=${this.userId}&p=${id}&pname=${name}&url=${encodeURIComponent(url)}` });
} else {
this.$u.route('pages/project-webview/project-webview', {
u: this.userId,
p: id,
pname: name,
url: encodeURIComponent(url),
});
}
},
/**

8
src/components/Roles/Roles.vue

@ -39,18 +39,16 @@
</view>
</scroll-view>
</view>
<view :style="{ height: isActive ? '100px' : 0 }" style="transition: all 0.24s" class="role-more-box">
<template v-for="roleItem in allRoles">
<view :style="{ height: isActive ? '100px' : 0 }" style="transition: all 0.24s" class="role-more-box flex flex-wrap">
<view class="m-2" v-for="roleItem in allRoles" :key="roleItem.id">
<u-tag
:type="roleId === roleItem.id ? 'primary' : 'info'"
v-if="roleItem.name !== '平车'"
class="m-3"
:key="roleItem.id"
:text="roleItem.name"
mode="light"
@click="changeRole(roleItem.id)"
/>
</template>
</view>
</view>
<!-- 骨架屏 -->
<u-skeleton :animation="true" :loading="loading" bg-color="#fff"></u-skeleton>

26
src/components/Test/Test.vue

@ -97,7 +97,7 @@
</div>
</u-radio-group>
<!-- 单选(带分数输入框) -->
<u-radio-group :value="listItem.value" v-else-if="listItem.type === 23" class="flex flex-column flex-wrap w-full">
<u-radio-group :value="listItem.value" v-else-if="listItem.type === 23" class="flex flex-col flex-wrap w-full">
<template v-if="listItem.code !== 'JRZL-SQ-ASPECT'">
<div
v-for="(radioValue, radioIndex) in listItem.listItem"
@ -185,7 +185,7 @@
</template>
</u-radio-group>
<!-- 单选(竖向排列带分数输入框) -->
<u-radio-group :value="listItem.value" v-else-if="listItem.type === 24" class="flex flex-column w-full">
<u-radio-group :value="listItem.value" v-else-if="listItem.type === 24" class="flex flex-col w-full">
<div class="w-full flex" v-for="(radioValue, radioIndex) in listItem.itemList" :key="radioIndex">
<u-radio
class="flex items-center"
@ -394,6 +394,10 @@ export default {
type: Object,
default: () => {},
},
canChange: {
type: Boolean,
default: false,
},
},
data: () => ({
test: [], //
@ -555,6 +559,21 @@ export default {
return true;
}
},
// , true
// false
judgeType(Fvalue, value) {
if (Array.isArray(Fvalue)) {
for (var i = 0; i < Fvalue.length; i++) {
if (Fvalue[i] === value) {
return false;
} else if (i === Fvalue.length - 1) {
return true;
}
}
} else {
return Fvalue !== value;
}
},
/**
* 修改输入框内容
* 先获取到 this.test 数组props接收的值不能在当前界面修改,所以用将list的值赋值给了 test ,渲染界面也是用的 test
@ -571,7 +590,9 @@ export default {
changeRadio(e, code, index, itemIndex) {
// console.log('e, code, index, itemIndex: ', e, code, index, itemIndex);
this.Rerender(e, index, itemIndex);
if (this.canChange) {
this.$emit('getCollaoseHeight', this.testIndex);
}
this.setAnswer(code, e);
},
// ,
@ -860,7 +881,6 @@ export default {
mounted() {},
created() {
this.test = [...this.list];
console.log('this.test: ', this.test);
},
// --
beforeUpdate() {},

6
src/pages.json

@ -79,6 +79,12 @@
"style": {
"navigationBarTitleText": "信息录入"
}
},
{
"path": "pages/detail-webview/detail-webview",
"style": {
"navigationBarTitleText": "暴风眼详情页"
}
}
],
"globalStyle": {

3
src/pages/camera/camera.vue

@ -1,6 +1,6 @@
<template>
<div class="camera">
<camera device-position="back" flash="auto" @error="error" style="width: 100%; height: 60%">
<camera device-position="back" flash="auto" style="width: 100%; height: 60%">
<!-- <cover-image src="../../static/scan-frame/scan-img.png" class="scan-img"></cover-image> -->
</camera>
<view class="scan-text">支持将住院病案首页医嘱单拍照进行文字识别</view>
@ -115,6 +115,7 @@ export default {
let obj = {
questionCode: key,
answer: [],
checked: true,
};
if (key) {
for (var i = 0; i < data[key].length; i++) {

35
src/pages/detail-webview/detail-webview.vue

@ -0,0 +1,35 @@
<template>
<web-view :src="src" />
</template>
<script>
export default {
data() {
return { src: '' };
},
onLoad(options) {
const obj = { title: '暴风眼Typhoneye', path: '/pages/index/index' };
uni.showShareMenu(obj);
if (!options) {
this.$t.ui.showModal('缺少参数, 请返回重试');
} else {
const { jumpUrl } = options;
let url = jumpUrl + '?';
for (let key in options) {
if (key !== 'jumpUrl') {
url += `${key}=${options[key]}&`;
}
}
this.src = url;
console.log('url: ', url);
}
},
methods: {
onShareAppMessage() {
return { title: '暴风眼Typhoneye', path: '/pages/index/index' };
},
},
};
</script>

1
src/pages/establish/establish.vue

@ -317,6 +317,7 @@ export default {
this.firstAidId = data.firstAidId;
this.isSubmit = false;
if (this.role === 'YiSheng') {
console.log('data: ', data);
// this.visible = true;
this.handleOk(this.globalData.createAuth - 0 === 0 ? 1 : 0);
uni.navigateBack();

207
src/pages/inner/inner.vue

@ -1,11 +1,12 @@
<template>
<div class="inner">
<!-- :style="{ paddingTop: detailsData.valueType ? '28px' : '28px' }" -->
<!-- :style="{ paddingTop: detailValueType === 1 ? '28px' : '' }" -->
<div class="w-full" v-for="(item, index) in testList" :key="index">
<template v-if="item.testType === 1">
<Test
:testIndex="index"
@getCollaoseHeight="getCollaoseHeight"
:can-change="false"
:answer-list="answerList"
v-if="type"
class="w-full"
@ -28,6 +29,7 @@
<Test
:testIndex="index"
@getCollaoseHeight="getCollaoseHeight"
:can-change="true"
:answer-list="answerList"
v-if="type"
class="w-full"
@ -37,8 +39,17 @@
</u-collapse>
</div>
<div class="ocr-open-box" @click="openOcr">OCR</div>
<u-modal v-model="showBasic">
<view class="slot-content"> </view>
<u-modal v-model="showBasic" title="确定选择后将提交识别到的内容" :show-cancel-button="true" @confirm="submitBasicData">
<view class="slot-content">
<scroll-view scroll-y style="height: 750rpx">
<div v-for="(item, index) in basicList" :key="index" class="modal-content flex justify-between items-center">
<u-checkbox v-model="item.checked" :name="item.questionCode">
<div>{{ item.name }}</div>
</u-checkbox>
<div class="flex items-center fz-16">{{ item.answer }}</div>
</div>
</scroll-view>
</view>
</u-modal>
</div>
</template>
@ -46,6 +57,7 @@
<script>
import { mapState } from 'vuex';
import Mixin from './mixin';
import cloneDeep from 'lodash/cloneDeep';
export default {
components: {},
@ -68,9 +80,11 @@ export default {
afterStr: '主要治疗',
beforeStr: '基本信息',
answerList: {},
showBasic: true,
showBasic: false,
codeAndTitle: [],
basicList: [],
}),
computed: { ...mapState('carbasics', ['InputCode', 'firstAidId', 'isRefresh']) },
computed: { ...mapState('carbasics', ['InputCode', 'firstAidId', 'isRefresh', 'basicData', 'detailValueType']) },
methods: {
// ocr
openOcr() {
@ -101,6 +115,7 @@ export default {
if (key === value) {
if (Array.isArray(this.codeValue[this.type][key])) {
this.codeValue[this.type][key] = recordList[value];
break;
} else {
this.codeValue[this.type][key] = recordList[value][0];
@ -109,11 +124,53 @@ export default {
}
}
}
// list
this.reassignList();
// checkedList,,list,list
this.changeCheckStatus();
// codetitle
this.getAllCodeAndTitle();
// type
this.getTest();
},
// ,ture
changeCheckStatus() {
for (let i = 0; i < this.list.length; i++) {
const item = this.list[i];
if (item.testList.length) {
for (let j = 0; j < item.testList.length; j++) {
const itemJ = item.testList[j];
if (itemJ.content.length) {
for (let k = 0; k < itemJ.content.length; k++) {
const itemK = itemJ.content[k];
if (itemK.length) {
for (let m = 0; m < itemK.length; m++) {
if (Array.isArray(itemK[m].value)) {
for (let n = 0; n < itemK[m].itemList.length; n++) {
const itemN = itemK[m].itemList[n];
// console.log('itemN: ', itemN);
itemK[m].itemIsChecked[n].checked = this.getCheckedStatus(itemN, itemK[m].value);
}
}
}
}
}
}
}
}
}
},
//
getCheckedStatus(item, valueList) {
for (let i = 0; i < valueList.length; i++) {
if (valueList[i] === item) {
return true;
} else if (i === valueList.length - 0) {
return false;
}
}
},
//
// codeListcode value
// codeList,getTest
@ -125,6 +182,81 @@ export default {
}
}
},
// code
getAllCodeAndTitle() {
let Arr = [];
for (let i = 0; i < this.list.length; i++) {
const item = this.list[i];
if (item.testList.length) {
for (let j = 0; j < item.testList.length; j++) {
const itemJ = item.testList[j];
if (itemJ.content.length) {
for (let k = 0; k < itemJ.content.length; k++) {
const itemK = itemJ.content[k];
if (itemK.length) {
for (let m = 0; m < itemK.length; m++) {
const itemM = itemK[m];
const itemMm = itemK[m - 1];
let obj = null;
if (itemM.code && itemM.title) {
obj = {
code: itemM.code,
title: itemM.title,
};
} else if (itemM.code && !itemM.title) {
obj = {
code: itemM.code,
title: itemMm.title,
};
}
if (obj) {
Arr.push(obj);
}
}
}
}
}
}
}
}
this.codeAndTitle = Arr;
},
// code,title
getNameByCode() {
let Arr = [...this.basicList];
for (let k = 0; k < Arr.length; k++) {
for (let i = 0; i < this.codeAndTitle.length; i++) {
const item = this.codeAndTitle[i];
if (Arr[k].questionCode === item.code) {
Arr[k].name = item.title;
}
}
}
this.basicList = [...Arr];
},
// ,, //
getAnswerByType(obj) {
let answer = obj.answer;
if (typeof (answer - 0) === 'number') {
obj.type === 0; //
answer = this.$moment(answer - 0).format('YYYY-MM-DD HH:mm');
} else if (Array.isArray(answer)) {
let str = '';
for (let i = 0; i < answer.length; i++) {
if (i === answer.length - 0) {
str += answer[i];
} else {
str = str + answer[i] + ',';
}
}
obj.type === 1; //
answer = str;
} else {
obj.type === 2; //
}
obj.answer = answer;
return obj;
},
//
getCollaoseHeight(index) {
const that = this;
@ -134,38 +266,64 @@ export default {
that.$refs[`collapseView${index}`][0].init();
});
},
// modal,,
//
async submitBasicData() {
let codeAndAnswerList = [];
for (let i = 0; i < this.basicList.length; i++) {
const item = this.basicList[i];
if (item.checked) {
let obj = {
questionCode: item.questionCode,
answer: this.basicData[i].answer,
};
codeAndAnswerList.push(obj);
}
}
const param = {
codeAndAnswerList,
firstAidId: this.firstAidId,
};
await this.$u.api.setRecord(param);
this.getAnswer();
},
},
watch: {
isRefresh(val) {
console.log('val: ', val);
this.getAnswer();
isRefresh() {
let Arr = [];
const basicData = cloneDeep(this.basicData);
for (let i = 0; i < basicData.length; i++) {
Arr.push(basicData[i]);
}
for (let i = 0; i < Arr.length; i++) {
Arr[i] = this.getAnswerByType(Arr[i]);
}
this.basicList = [...Arr];
this.getNameByCode();
this.showBasic = true;
},
},
// --
onLoad() {
this.type = this.InputCode;
if (this.type === 'RYPG') {
this.afterStr = '主要治疗';
this.beforeStr = '基本信息';
} else if (this.type === 'SSXG') {
this.afterStr = '出院记录';
this.beforeStr = '入院评估';
} else if (this.type === 'CYJL') {
this.afterStr = '无数据';
this.beforeStr = '主要治疗';
}
// if (this.type === 'RYPG') {
// this.afterStr = '';
// this.beforeStr = '';
// } else if (this.type === 'SSXG') {
// this.afterStr = '';
// this.beforeStr = '';
// } else if (this.type === 'CYJL') {
// this.afterStr = '';
// this.beforeStr = '';
// }
// this.tips = '...';
this.getAnswer();
},
// --
onReady() {},
// --(not-nvue)
onShow(status) {
if (status) {
console.log('status: ', status);
}
},
onShow() {},
// --
onHide() {},
// --
@ -184,6 +342,9 @@ export default {
</script>
<style>
.modal-content {
padding: 16px;
}
.slot-content {
font-size: 28rpx;
color: rgba(0, 0, 0, 0.85);

106
src/pages/outside/mixin.js

@ -266,12 +266,15 @@ const mixin = {
title: '左侧',
code: 'CTCX-ZUO',
itemList: ['基底节区', '幕上脑叶', '小脑', '脑干', '脑室'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.ZYJC['CTCX-ZUO'],
},
{
title: '右侧',
code: 'CTCX-YOU',
itemList: ['基底节区', '幕上脑叶', '小脑', '脑干', '脑室'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.ZYJC['CTCX-YOU'],
},
],
@ -303,6 +306,7 @@ const mixin = {
type: 3,
code: 'BYPD-LNXG',
itemList: ['CTA', 'MRA', 'DSA', '未查'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }],
checkType: 4,
value: this.codeValue.ZYJC['BYPD-LNXG'],
},
@ -324,6 +328,17 @@ const mixin = {
'颅内静脉窦血栓形成',
'其他',
],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
checkType: 3,
value: this.codeValue.ZYJC['BYPD-BYPD'],
},
@ -363,6 +378,14 @@ const mixin = {
title: '',
type: 3,
itemList: ['开颅血肿清除术', '去骨瓣减压术', '脑室镜下血肿抽吸术', '钻孔血肿抽吸术', '复合手术', '其他'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
checkType: 2,
code: 'ZYZL-SSFZ',
value: this.codeValue.SSXG['ZYZL-SSFZ'],
@ -382,6 +405,14 @@ const mixin = {
title: '',
type: 3,
itemList: ['无', '手术部位再次脑出血', '手术远隔部位再出血', '脑梗死', '继发性癫痫口颅内感染', '其他'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
checkType: 2,
code: 'ZYZL-BFZ',
value: this.codeValue.SSXG['ZYZL-BFZ'],
@ -422,6 +453,14 @@ const mixin = {
Fcode: 'CYJL-JZ',
isShow: '是',
itemList: ['ACEI', 'ARB', '利尿剂', 'β受体阻滞剂', '钙拮抗剂', '其他'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
value: this.codeValue.CYJL['CYJL-JZ-ARR'],
},
],
@ -434,6 +473,7 @@ const mixin = {
Fcode: 'CYJL-TZ',
isShow: '是',
itemList: ['他汀类', '烟酸及其衍生物', '贝特类', '胆固醇吸收抑制剂', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.CYJL['CYJL-TZ-ARR'],
},
],
@ -446,6 +486,15 @@ const mixin = {
Fcode: 'CYJL-JT',
isShow: '是',
itemList: ['胰岛素', '磺酰脲类', '双胍类', 'α糖苷酶抑制剂', '胰岛素增敏剂', '非磺酰脲类促胰岛素分泌剂', '其他'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
value: this.codeValue.CYJL['CYJL-JT-ARR'],
},
],
@ -481,6 +530,7 @@ const mixin = {
'言语训练(ST)',
'其他(认知训练、吞咽治疗、心理治疗、理疗)',
],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.CYJL['KFZL-ZLFS'],
},
],
@ -493,6 +543,8 @@ const mixin = {
isShow: '是',
code: 'KFZL-ZLCS',
itemList: ['床旁', '康复科'],
itemIsChecked: [{ checked: false }, { checked: false }],
value: this.codeValue.CYJL['KFZL-ZLCS'],
},
],
@ -520,6 +572,7 @@ const mixin = {
checkType: 3,
code: 'JKJY-XJFS',
itemList: ['集体病区教育', '一对一教育', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.CYJL['JKJY-XJFS'],
},
],
@ -548,6 +601,17 @@ const mixin = {
Fcode: 'CYQK-LYFS',
isShow: '死亡',
itemList: ['呼吸循环衰竭', '脑血管病', '肺部感染', '消化道出血', '急性肾功能衰竭', '损伤和中毒', '不详', '其他'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
value: this.codeValue.CYJL['CYQK-SWYY'],
showIpt: true,
showIptItem: '其他',
@ -617,6 +681,16 @@ const mixin = {
checkType: 3,
code: 'CYQK-CYDY',
itemList: ['降压药', '降糖药', '调脂药', '抗凝药', '抗血小板药', '中药治疗', '其他', '无'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
value: this.codeValue.CYJL['CYQK-CYDY'],
},
],
@ -646,6 +720,7 @@ const mixin = {
checkType: 3,
code: 'TSCX-LCBX',
itemList: ['TIA', '脑梗塞', '脑室出血', '蛛网膜下'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.TSCX['TSCX-LCBX'],
},
{
@ -659,6 +734,7 @@ const mixin = {
checkType: 3,
code: 'TSCX-NCX',
itemList: ['头痛', '癫痫发作', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.TSCX['TSCX-NCX'],
},
{
@ -705,6 +781,7 @@ const mixin = {
title: '左侧',
code: 'XGWZ-ZUO',
itemList: ['-1 大脑前动脉 ACA', '-2 大脑中动脉 MCA', '-3 大脑后动脉 PCA', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.TSCX['XGWZ-ZUO'],
iptValue: this.codeValue.TSCX['XGWZ-ZUO-OTHER'],
iptCode: 'XGWZ-ZUO-OTHER',
@ -715,6 +792,7 @@ const mixin = {
title: '右侧',
code: 'XGWZ-YOU',
itemList: ['-1 大脑前动脉 ACA', '-2 大脑中动脉 MCA', '-3 大脑后动脉 PCA', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.TSCX['XGWZ-YOU'],
iptValue: this.codeValue.TSCX['XGWZ-YOU-OTHER'],
iptCode: 'XGWZ-YOU-OTHER',
@ -760,6 +838,7 @@ const mixin = {
title: '左侧',
code: 'TSCX-ZLFS-ZUO',
itemList: ['STA/MCA 搭桥', 'STA 贴敷', '颞肌贴敷', '硬脑膜贴敷', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.TSCX['TSCX-ZLFS-ZUO'],
iptValue: this.codeValue.TSCX['TSCX-ZLFS-ZUO-OTHER'],
iptCode: 'TSCX-ZLFS-ZUO-OTHER',
@ -770,6 +849,7 @@ const mixin = {
title: '右侧',
code: 'TSCX-ZLFS-YOU',
itemList: ['STA/MCA 搭桥', 'STA 贴敷', '颞肌贴敷', '硬脑膜贴敷', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.TSCX['TSCX-ZLFS-YOU'],
iptValue: this.codeValue.TSCX['TSCX-ZLFS-YOU-OTHER'],
iptCode: 'TSCX-ZLFS-YOU-OTHER',
@ -793,6 +873,14 @@ const mixin = {
Fcode: 'TSCX-SSZL',
isShow: '是',
itemList: ['无', '出血', '栓塞', '继发性癫痫', '感染', '其他'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
value: this.codeValue.TSCX['TSCX-BFZ'],
},
],
@ -892,6 +980,7 @@ const mixin = {
isShow: '是',
type: 3,
itemList: ['栓塞术', '血肿清除术', 'AVM 切除术', '放射外科手术', '复合手术'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }, { checked: false }],
value: this.codeValue.TSCX['TSCX-AVM-ZLCL'],
},
{
@ -907,6 +996,7 @@ const mixin = {
isShow: '是',
type: 3,
itemList: ['无', '颅内出血', '脑梗死', '其他'],
itemIsChecked: [{ checked: false }, { checked: false }, { checked: false }, { checked: false }],
showOther: '无',
value: this.codeValue.TSCX['TSCX-SFSSZL-BFZ'],
showIpt: true,
@ -929,12 +1019,28 @@ const mixin = {
title: '左侧',
code: 'TSCX-AVM-ZUO',
itemList: ['额叶', '顶叶', '颞叶', '枕叶', '小脑', '深部'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
value: this.codeValue.TSCX['TSCX-AVM-ZUO'],
},
{
title: '右侧',
code: 'TSCX-AVM-YOU',
itemList: ['额叶', '顶叶', '颞叶', '枕叶', '小脑', '深部'],
itemIsChecked: [
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
{ checked: false },
],
value: this.codeValue.TSCX['TSCX-AVM-YOU'],
},
{

408
src/pages/outside/outside.vue

@ -1,15 +1,22 @@
<template>
<div class="w-full flex flex-column flex-wrap" style="padding-bottom: 20px">
<!-- :style="{ paddingTop: detailsData.valueType ? '28px' : '28px' }" -->
<div class="w-full flex flex-col flex-wrap" style="padding-bottom: 20px">
<div class="w-full" v-for="(item, index) in testList" :key="index">
<template v-if="item.testType === 1">
<Test :answer-list="answerList" v-if="type" class="w-full" :list="item.content" />
<Test
:testIndex="index"
@getCollaoseHeight="getCollaoseHeight"
:can-change="false"
:answer-list="answerList"
v-if="type"
class="w-full"
:list="item.content"
/>
</template>
<u-collapse
:head-style="headerStyle"
:item-style="itemStyle"
class="mb-2 w-full"
v-if="item.testType === 2"
v-if="item.testType === 2 && showCol(item.Fcode, item.isShow)"
:bordered="false"
expand-icon-position="right"
:ref="'collapseView' + index"
@ -18,6 +25,7 @@
<Test
:testIndex="index"
@getCollaoseHeight="getCollaoseHeight"
:can-change="true"
:answer-list="answerList"
v-if="type"
class="w-full"
@ -31,11 +39,25 @@
<div class="mb-2">病因诊断为动静脉畸形AVM可选择填写动静脉畸形AVM登记表</div>
<div>病因诊断为烟雾病可选择填写烟雾病登记表</div>
</div>
<div class="ocr-open-box" @click="openOcr">OCR</div>
<u-modal v-model="showBasic" title="确定选择后将提交识别到的内容" :show-cancel-button="true" @confirm="submitBasicData">
<view class="slot-content">
<scroll-view scroll-y style="height: 750rpx">
<div v-for="(item, index) in basicList" :key="index" class="modal-content flex justify-between items-center">
<u-checkbox v-model="item.checked" :name="item.questionCode">
<div>{{ item.name }}</div>
</u-checkbox>
<div class="flex items-center fz-16">{{ item.answer }}</div>
</div>
</scroll-view>
</view>
</u-modal>
</div>
</template>
<script>
import { mapState } from 'vuex';
import Mixin from './mixin';
import cloneDeep from 'lodash/cloneDeep';
export default {
name: 'outside',
@ -60,10 +82,17 @@ export default {
backgroundColor: '#fff',
},
itemStyle: { marginBottom: '8px' },
showBasic: false,
codeAndTitle: [],
basicList: [],
};
},
computed: { ...mapState('home', ['InputCode', 'firstAidId']) },
computed: { ...mapState('carbasics', ['InputCode', 'firstAidId', 'isRefresh', 'basicData', 'detailValueType']) },
methods: {
// ocr
openOcr() {
uni.navigateTo({ url: '/pages/camera/camera' });
},
// ,
showCol(code, isShow) {
console.log('code, isShow: ', code, isShow);
@ -87,80 +116,13 @@ export default {
return true;
}
},
//
back() {
if (this.type === 'RYPG') {
this.$router.push('/info');
} else if (this.type === 'CYJL') {
this.type = 'SSXG';
document.title = '手术相关';
this.afterStr = '出院记录';
this.beforeStr = '主要检查';
} else if (this.type === 'SSXG') {
this.type = 'ZYJC';
document.title = '主要检查';
this.afterStr = '手术相关';
this.beforeStr = '入院评估';
} else if (this.type === 'ZYJC') {
this.type = 'RYPG';
document.title = '入院评估';
this.afterStr = '主要检查';
this.beforeStr = '基本信息';
} else if (this.type === 'TSCX') {
this.type = 'CYJL';
document.title = '出院记录';
this.afterStr = '特殊登记';
this.beforeStr = '手术相关';
}
setTimeout(() => {
this.getAnswer();
}, 50);
this.visible = false;
},
//
go() {
// RYPG(),ZYJC(),SSXG(),CYJL(),TSCX()
if (this.type !== 'TSCX') {
if (this.type === 'RYPG') {
this.type = 'ZYJC';
document.title = '主要检查';
this.afterStr = '手术相关';
this.beforeStr = '入院评估';
} else if (this.type === 'ZYJC') {
this.type = 'SSXG';
document.title = '手术相关';
this.afterStr = '出院记录';
this.beforeStr = '主要检查';
} else if (this.type === 'SSXG') {
this.type = 'CYJL';
document.title = '出院记录';
this.afterStr = '特殊登记';
this.beforeStr = '手术相关';
} else if (this.type === 'CYJL') {
this.type = 'TSCX';
document.title = '特殊登记';
this.afterStr = '无数据';
this.beforeStr = '出院记录';
}
setTimeout(() => {
this.getAnswer();
}, 50);
this.visible = false;
}
},
getHistory() {
// for (var i = 0; i <= window.history.length - (this.historyNum + this.backPageNum); i++) {
// window.history.back(-1);
// }
this.$router.push('/patient-line');
},
//
// codeListcode value
// codeList,mountedgetTest
// codeList,getTest
getTest() {
for (let i = 0; i < this.list.length; i++) {
if (this.list[i].name === this.type) {
this.testList = this.list[i].testList;
this.testList = [...this.list[i].testList];
break;
}
}
@ -185,7 +147,6 @@ export default {
},
// ()
reassign(recordList) {
console.log('recordList: ', recordList);
for (let key in this.codeValue[this.type]) {
for (let value in recordList) {
if (key === value) {
@ -201,36 +162,124 @@ export default {
}
// list
this.reassignList();
// checkedList,,list,list
this.changeCheckStatus();
// codetitle
this.getAllCodeAndTitle();
// type
this.getTest();
},
handleOk(num) {
// RYPG(),ZYJC(Toast /),SSXG(/),CYJL()
if (num === 0) {
this.type = 'RYPG';
document.title = '入院评估';
this.afterStr = '主要检查';
this.beforeStr = '基本信息';
} else if (num === 1) {
this.type = 'ZYJC';
document.title = '主要检查';
this.afterStr = '手术相关';
this.beforeStr = '入院评估';
} else if (num === 2) {
this.type = 'SSXG';
document.title = '手术相关';
this.afterStr = '出院记录';
this.beforeStr = '主要检查';
} else if (num === 3) {
this.type = 'CYJL';
document.title = '出院记录';
this.afterStr = '无数据';
this.beforeStr = '手术相关';
}
setTimeout(() => {
this.getAnswer();
}, 50);
this.visible = false;
// ,ture
changeCheckStatus() {
for (let i = 0; i < this.list.length; i++) {
const item = this.list[i];
if (item.testList.length) {
for (let j = 0; j < item.testList.length; j++) {
const itemJ = item.testList[j];
if (itemJ.content.length) {
for (let k = 0; k < itemJ.content.length; k++) {
const itemK = itemJ.content[k];
if (itemK.length) {
for (let m = 0; m < itemK.length; m++) {
if (Array.isArray(itemK[m].value)) {
for (let n = 0; n < itemK[m].itemList.length; n++) {
const itemN = itemK[m].itemList[n];
// console.log('itemN: ', itemN);
itemK[m].itemIsChecked[n].checked = this.getCheckedStatus(itemN, itemK[m].value);
}
}
}
}
}
}
}
}
}
},
//
getCheckedStatus(item, valueList) {
for (let i = 0; i < valueList.length; i++) {
if (valueList[i] === item) {
return true;
} else if (i === valueList.length - 0) {
return false;
}
}
},
// code
getAllCodeAndTitle() {
let Arr = [];
for (let i = 0; i < this.list.length; i++) {
const item = this.list[i];
if (item.testList.length) {
for (let j = 0; j < item.testList.length; j++) {
const itemJ = item.testList[j];
if (itemJ.content.length) {
for (let k = 0; k < itemJ.content.length; k++) {
const itemK = itemJ.content[k];
if (itemK.length) {
for (let m = 0; m < itemK.length; m++) {
const itemM = itemK[m];
const itemMm = itemK[m - 1];
let obj = null;
if (itemM.code && itemM.title) {
obj = {
code: itemM.code,
title: itemM.title,
};
} else if (itemM.code && !itemM.title) {
obj = {
code: itemM.code,
title: itemMm.title,
};
}
if (obj) {
Arr.push(obj);
}
}
}
}
}
}
}
}
this.codeAndTitle = Arr;
},
// code,title
getNameByCode() {
let Arr = [...this.basicList];
for (let k = 0; k < Arr.length; k++) {
for (let i = 0; i < this.codeAndTitle.length; i++) {
const item = this.codeAndTitle[i];
if (Arr[k].questionCode === item.code) {
Arr[k].name = item.title;
}
}
}
this.basicList = [...Arr];
},
// ,, //
getAnswerByType(obj) {
let answer = obj.answer;
if (typeof (answer - 0) === 'number') {
obj.type === 0; //
answer = this.$moment(answer - 0).format('YYYY-MM-DD HH:mm');
} else if (Array.isArray(answer)) {
let str = '';
for (let i = 0; i < answer.length; i++) {
if (i === answer.length - 0) {
str += answer[i];
} else {
str = str + answer[i] + ',';
}
}
obj.type === 1; //
answer = str;
} else {
obj.type === 2; //
}
obj.answer = answer;
return obj;
},
//
getCollaoseHeight(index) {
@ -241,75 +290,84 @@ export default {
that.$refs[`collapseView${index}`][0].init();
});
},
// modal,,
//
async submitBasicData() {
let codeAndAnswerList = [];
for (let i = 0; i < this.basicList.length; i++) {
const item = this.basicList[i];
if (item.checked) {
let obj = {
questionCode: item.questionCode,
answer: this.basicData[i].answer,
};
codeAndAnswerList.push(obj);
}
}
const param = {
codeAndAnswerList,
firstAidId: this.firstAidId,
};
await this.$u.api.setRecord(param);
this.getAnswer();
},
},
watch: {
isRefresh() {
let Arr = [];
const basicData = cloneDeep(this.basicData);
for (let i = 0; i < basicData.length; i++) {
Arr.push(basicData[i]);
}
for (let i = 0; i < Arr.length; i++) {
Arr[i] = this.getAnswerByType(Arr[i]);
}
this.basicList = [...Arr];
this.getNameByCode();
this.showBasic = true;
},
},
// --
onLoad() {
this.type = this.InputCode;
if (this.type === 'RYPG') {
this.afterStr = '主要治疗';
this.beforeStr = '基本信息';
} else if (this.type === 'SSXG') {
this.afterStr = '出院记录';
this.beforeStr = '入院评估';
} else if (this.type === 'CYJL') {
this.afterStr = '无数据';
this.beforeStr = '主要治疗';
}
// if (this.type === 'RYPG') {
// this.afterStr = '';
// this.beforeStr = '';
// } else if (this.type === 'SSXG') {
// this.afterStr = '';
// this.beforeStr = '';
// } else if (this.type === 'CYJL') {
// this.afterStr = '';
// this.beforeStr = '';
// }
// this.tips = '...';
this.getAnswer();
},
};
</script>
<style scoped>
.page-box {
height: 40px;
margin: 12px 0 0 0;
padding: 0 16px;
color: #1890ff;
font-size: 16px;
}
.page-img {
height: 20px;
}
.back-btn {
height: 44px;
margin: 24px 16px;
}
.active-color {
color: #5892ff;
}
.footer-btn {
font-size: 16px;
border-top: 1px solid #ccc;
}
.footer-box {
position: absolute;
bottom: 0;
left: 0;
height: 60px;
width: 100%;
}
/deep/.ant-collapse-icon-position-right > .ant-collapse-item > .ant-collapse-header {
height: 54px;
line-height: 30px;
font-size: 16px;
/* color: #1890ff; */
color: rgba(0, 0, 0, 0.65);
font-weight: bold;
}
/deep/.ant-collapse-content > .ant-collapse-content-box {
background: #ededed;
padding: 0;
.modal-content {
padding: 16px;
}
/deep/.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {
padding-top: 0;
.slot-content {
font-size: 28rpx;
color: rgba(0, 0, 0, 0.85);
padding-left: 30rpx;
}
/deep/.ant-spin-nested-loading > div > .ant-spin {
.ocr-open-box {
position: fixed;
top: 50%;
margin-top: -50%;
right: 0;
top: 40%;
height: 40px;
width: 40px;
font-size: 16px;
background: #1890ff;
color: white;
display: flex;
align-items: center;
justify-content: center;
border-radius: 20px 20px 0 20px;
box-shadow: 0 0 4px #1890ff;
}
.explain-box {
height: 118px;
@ -318,38 +376,4 @@ export default {
font-size: 12px;
color: #666;
}
.switch-box {
height: 120px;
width: 120px;
position: fixed;
right: 0;
bottom: 40px;
/* border: 2px solid red; */
transition: all 0.5s;
}
.switch-box-btn-box {
position: absolute;
overflow: hidden;
transition: all 0.5s;
line-height: 34px;
text-align: center;
font-size: 12px;
color: #fff;
background-color: #1890ff;
border-radius: 50%;
box-shadow: 0 0 5px #1890ff;
}
.change-box {
right: 2px;
bottom: 2px;
position: absolute;
height: 60px;
width: 60px;
background-color: #1890ff;
box-shadow: 0 0 10px #1890ff;
border-radius: 50%;
text-align: center;
line-height: 60px;
color: #fff;
}
</style>

1
src/pages/patientLine/patientLine.vue

@ -116,6 +116,7 @@ export default {
methods: {
...mapMutations('carbasics', ['setInputCode']),
jump(code, path) {
console.log('path: ', path);
this.setInputCode(code ? code : 'RYPG');
uni.navigateTo({ url: path });
},

37
src/pages/task-page/task-page.vue

@ -2,12 +2,16 @@
<view :style="{ height: height }" class="flex flex-col overflow-hidden u-font-14">
<view class="container flex flex-col flex-1 mx-auto overflow-hidden bg-gray-100">
<!-- 角色栏 -->
<Roles />
<Roles style="z-index: 100" />
<!-- 日常任务面板 -->
<Globals v-if="globals.length" />
<!-- 任务详情 -->
<div v-if="globalData && permanents.length" class="flex flex-1">
<PatientList v-if="showPage === 'function'" class="flex flex-1" />
<div v-else class="flex flex-1 items-center justify-center flex-col">
<div>详情内容在详情页内查看</div>
<div class="text-blue-500" @click="jumpDetail">点击此处跳转</div>
</div>
</div>
</view>
</view>
@ -24,7 +28,7 @@ export default {
count: 0,
chooseItem: false,
name: '',
url: '',
urlData: null,
showStatus: 0,
showPage: '',
};
@ -35,9 +39,10 @@ export default {
...mapState('user', ['user', 'token']),
...mapState('role', ['visibleRoles', 'roleId']),
...mapState('project', ['project']),
...mapState('carbasics', ['globalData']),
...mapGetters('user', ['userId']),
...mapGetters('task', ['globals']),
...mapGetters('project', ['projectId']),
...mapState('carbasics', ['globalData']),
},
async onLoad(options) {
@ -70,9 +75,24 @@ export default {
},
globalData(val) {
console.log('val: ', val);
this.urlData = val;
var strList = val.url.split('/');
this.showPage = strList[strList.length - 1];
},
showPage(val) {
if (val !== 'function') {
let jumpUrl = `/pages/detail-webview/detail-webview?jumpUrl=${this.urlData.url}&projectId=${this.projectId}&roleId=${this.roleId}&userId=${this.userId}`;
for (let key in this.urlData) {
if (key !== 'url') {
jumpUrl += `&${key}=${this.urlData[key]}`;
}
}
console.log('jumpUrl: ', jumpUrl);
uni.navigateTo({ url: jumpUrl });
}
},
},
mounted() {
@ -92,6 +112,17 @@ export default {
...mapMutations('project', ['setProject', 'setProjectName', 'setOrganData']),
...mapMutations('role', ['setInvisibleRoles', 'setVisibleRoles', 'setRoleId']),
//
jumpDetail() {
let jumpUrl = `/pages/detail-webview/detail-webview?jumpUrl=${this.urlData.url}&projectId=${this.projectId}&roleId=${this.roleId}&userId=${this.userId}`;
for (let key in this.urlData) {
if (key !== 'url') {
jumpUrl += `&${key}=${this.urlData[key]}`;
}
}
uni.navigateTo({ url: jumpUrl });
},
//
async initPlanTasks() {
this.setPrevPlaceholderTasks(); //

8
src/store/carbasics/mutations.js

@ -7,6 +7,14 @@ const mutations = {
setFirstAidId(state, id) {
state.firstAidId = id;
},
/**
* 存储当前插件的param参数,包括url和其他具体参数
* @param { object } state
* @param { string } type
*/
setDetailValueType(state, type) {
state.detailValueType = type;
},
/**
* 存储当前插件的param参数,包括url和其他具体参数
* @param { object } state

5
src/store/carbasics/state.js

@ -1,8 +1,5 @@
const state = {
detailsData: {
valueType: 1, // 是否是演示模式 0:正式,1:演示
type: 0, // 急救类型: 0:神内,1:神外
}, // 当前项目在暴风眼内的信息
detailValueType: 0, // 是否是演示模式 0:正式,1:演示
firstAidId: '', // 当前正在进行数据录入的患者的急救id
globalData: null, // 插件的跳转路径及参数
refreshList: 0, // 依据此值去重新请求病例列表(当从创建病例界面 创建了病例之后,修改此值,并且返回病例列表界面,病例列表重新查询数据)

Loading…
Cancel
Save