提交 52338241 编写于 作者: hujun's avatar hujun

Merge branch 'release' into 'master'

Release



See merge request !84
......@@ -2568,7 +2568,7 @@
},
"extract-text-webpack-plugin": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz",
"resolved": "http://192.168.110.93:4873/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz",
"integrity": "sha1-yVvzy6rEnclvHcbgclSfu2VMzSw=",
"dev": true,
"requires": {
......@@ -7945,6 +7945,11 @@
"is-plain-obj": "^1.0.0"
}
},
"sortablejs": {
"version": "1.10.0-rc3",
"resolved": "http://192.168.110.93:4873/sortablejs/-/sortablejs-1.10.0-rc3.tgz",
"integrity": "sha1-L+Y0Y6OLXNEuyRT8PgNYMEhJb0I="
},
"source-list-map": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
......@@ -9116,7 +9121,7 @@
},
"webpack-sources": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz",
"resolved": "http://192.168.110.93:4873/webpack-sources/-/webpack-sources-0.1.5.tgz",
"integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=",
"dev": true,
"requires": {
......
<template>
<div class="add-diagnose-wrap">
<div class="fixed-wrap" v-show="showDiagnoseModal">
<div class="fullscreen-bg"></div>
<div class="add-diagnose-modal" >
<span class="close-btn el-icon-close" @click="hideSelf"></span>
<p class="title-text">添加诊断</p>
<div class="search-input">
<el-input v-model="searchInput" placeholder="搜索诊断" class="search-disease" @input="handleInputSearch" @blur="handleSearchListBlur"></el-input>
</div>
<div class="main-content">
<div class="left-box left">
<!-- 搜索列表 有搜索结果时-->
<div
v-if="searchList && searchList.length > 0"
class="search-list-wrap"
v-infinite-scroll="loadMore"
:infinite-scroll-disabled="busy"
infinite-scroll-distance="5"
infinite-scroll-immediate-check="false"
>
<ul class="search-list">
<li v-for="(searchLi, index) in searchList" @mousedown="handleSearchLiClick(searchLi)">
<div class="left">
<p class="disease-name" v-html="searchLi.diseaseName"></p>
<div class="one-line">
<p class="alias" v-html="searchLi.alias"></p>
<p class="sign" v-if="searchLi.alias">|</p>
<p class="code">{{searchLi.icdCode}}</p>
</div>
</div>
<div class="right" v-if="isSearchLiSelected(searchLi)"><i class="el-icon-check"></i></div>
</li>
<p v-if="busy" class="loading">加载中...</p>
<p v-if="noMore" class="loading">没有更多了...</p>
</ul>
</div>
<!-- 常用诊断 -->
<div v-if="!(searchList && searchList.length > 0)" class="common-diagnose">
<p class="title">常用诊断<span class='no-result' v-if="hasNoResult">没有找到相关搜索结果</span></p>
<ul class="list">
<li
v-for="item in commonList"
:class="returnEachCommonLiClass(item)"
@click="handleEachCommonLiClick(item)"
>
{{item.diseaseName}}
</li>
</ul>
</div>
</div>
<!-- 已选 -->
<div class="choosed-list-wrap left">
<div class="title">已选 {{choosedList.length}}/20</div>
<div class="choosed-list">
<el-tag
v-for="(tag, index) in choosedList"
closable
:disable-transitions="false"
@close="handleClose(tag)">
<div class="text" v-html="tag.alias ? tag.alias : tag.diseaseName"></div>
</el-tag>
</div>
</div>
</div>
<div class="dialog-footer">
<el-button @click="hideSelf">取 消</el-button>
<el-button type="primary" @click="handleConfirm">确 定</el-button>
</div>
</div>
</div>
<!-- 已选数量不能超过20个 提示 -->
<div class="tips-wrap" @mousedown.prevent="preventDefault">
<el-dialog
title="提示"
:close-on-click-modal="false"
:visible.sync="limitTipsVisible"
width="400px"
center>
<span>最多只能选择20种诊断</span>
<span slot="footer" class="dialog-footer">
<!-- <el-button type="primary" >我知道了</el-button> -->
<div class="know-confirm" @mousedown.prevent="hideNumLimitTips" >我知道了</div>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import {
getCommonDiagnoseList,
goToSearch,
} from '@/utils/patients/patientsapi';
export default {
data() {
return {
showDiagnoseModal: false,
limitTipsVisible: false,
searchInput: '',
searchList: [],
commonList: [],
choosedList: [],
hasNoResult: false,
page: 1,
pageSize: 30,
busy: false,
noMore: false,
totalPageNum: 0,
isInputResponse: false,
searchFlagTimer: null,
}
},
computed: {
},
created() {
let that = this;
getCommonDiagnoseList().then(res => {
// console.log('>>>>>>*********** res: ', res)
if(res.code == '000000'){
that.commonList = res.data;
}else{
that.$message({
message: (data && data.message) || '接口出错',
type: 'warning'
});
}
})
},
mounted() {
// console.log('>>>>>>>>>>>>>>>>>>>>>>>> ', this.showDiagnoseModal)
},
watch: {
showDiagnoseModal(val) {
}
},
methods: {
showSelf(params) {
this.showDiagnoseModal = true;
let list = JSON.parse(JSON.stringify(this.$store.state.patientsDiagnose.selectedDiagList));
this.choosedList = list;
},
hideSelf() {
this.showDiagnoseModal = false;
this.choosedList = [];
this.searchList = [];
this.searchInput = ''
},
preventDefault() {
// console.log('prevent>>>>>>>>>>>>>>>>>>>')
},
hideNumLimitTips() {
this.limitTipsVisible = false;
},
isSearchLiSelected(item) {
return this.hasItem(this.choosedList, item) > -1 ? true : false;
},
handleSearchLiClick(item) {
this.searchInput = '';
let hasIndex = this.hasItem(this.choosedList, item);
if( hasIndex > -1 ){
this.choosedList.splice(hasIndex, 1);
}else{
// 已选20个后,不能再添加,出Tips
if( this.choosedList && this.choosedList.length == 20 ){
this.limitTipsVisible = true;
return;
}
this.choosedList.push(item);
}
},
handleSearchListBlur() {
this.searchList = [];
clearTimeout(this.searchFlagTimer);
// console.log('blur.....')
},
handleSearchWrapScroll() {
// console.log('ddxx88888888888')
// let that = this;
// // console.log('val: ', val)
// // 搜索时
// that.$nextTick(function(){
// let searchListWrap = document.querySelector('.search-list-wrap');
// console.log('>>> ', searchListWrap)
// if( searchListWrap ){
// // searchListWrap.onscroll = function(){
// let contentH = document.querySelector('.search-list').offsetHeight;
// let viewH = 290;
// let scrollTop = searchListWrap.scrollTop;
// if( that.canScroll && (contentH - viewH - scrollTop <= 50) ){
// console.log('到达临界点,开始加载下一页');
// that.canScroll = false;
// that.loadMoreSearchData();
// }
// // }
// }
// })
},
// 搜索框中输入文字 时 page=1 pageSize=30
handleInputSearch() {
// debugger;
clearTimeout(this.searchFlagTimer);
let that = this;
that.page = 1;
that.isInputResponse = false;
if( that.searchInput == ''){
that.searchList = [];
return;
}
that.searchList = [];
let params = {
diseaseName: that.searchInput,
page: 1,
pageSize: 30,
};
this.searchFlagTimer = setTimeout(() => {
goToSearch(params).then(res => {
// console.log('>>>>>>*********** search: ', res)
if(res.code == '000000'){
that.isInputResponse = true;
that.totalPageNum = Math.ceil(res.data.total/that.pageSize); // 总页数
let list = res.data.icdContentsList || [];
if(list.length > 0){
if(that.searchInput == ''){
that.searchList = [];
return;
}
that.searchList = list;
that.hasNoResult = false;
}else{
that.searchList = [];
that.hasNoResult = true;
}
}else{
that.isInputResponse = false;
that.searchList = [];
that.$message({
message: data.message,
type: 'warning'
});
}
})
}, 300)
},
// 上拉加载更多
loadMore() {
// debugger;
// console.log('loadmore...')
let that = this;
if( !that.isInputResponse ){
return;
}
if( !(that.searchList && that.searchList.length > 0) ){
return;
}
that.busy = true;
that.page += 1;
// console.log('请求第几页数据: ', that.page)
if(that.page > that.totalPageNum){
// console.log('没有更多了。。。。。');
that.busy = false;
that.noMore = true;
return;
}else{
that.noMore = false;
}
let params = {
diseaseName: that.searchInput,
page: that.page,
pageSize: that.pageSize,
}
setTimeout(()=>{
goToSearch(params).then(res => {
// console.log('>>>>>>*********** search: ', res)
// request ...加载完成后,可以继续滚动加载\
that.busy = false;
if(res.code == '000000'){
let list = res.data.icdContentsList || [];
if(list.length > 0){
that.searchList = that.searchList.concat(list);
}
}else{
that.$message({
message: data.message,
type: 'warning'
});
}
})
}, 500)
},
handleInputSearchBlur(){
this.searchList = [];
},
handleConfirm() {
let list = JSON.parse(JSON.stringify(this.choosedList));
this.$store.dispatch('patientsDiagnose/changeDiagnoseList', list)
this.showDiagnoseModal = false;
this.searchInput = '';
this.searchList = [];
},
handleClose(tag) {
this.choosedList.splice(this.hasItem(this.choosedList, tag), 1);
},
returnEachCommonLiClass(item) {
let hasIndex = this.hasItem(this.choosedList, item);
if( hasIndex > -1 ){
return 'active';
}else{
return '';
}
},
handleEachCommonLiClick(item) {
// console.log('ddd', item);
let hasIndex = this.hasItem(this.choosedList, item);
if( hasIndex > -1 ){
this.choosedList.splice(hasIndex, 1);
}else{
// 已选20个后,不能再添加,出Tips
if( this.choosedList && this.choosedList.length == 20 ){
this.limitTipsVisible = true;
return;
}
this.choosedList.push(item);
}
},
hasItem(list, item) {
for(let i=0; i<list.length; i++){
if( list[i].icdCode == item.icdCode ){
return i;
}
}
return -1;
},
},
}
</script>
<style lang="less">
.scroll-bar{
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
&::-webkit-scrollbar
{
width: 5px;
height: 5px;
background-color: #fff;
}
/*定义滚动条轨道 内阴影+圆角*/
&::-webkit-scrollbar-track
{
// border-radius: 10px;
// background-color: rgb(241, 239, 239);
// background: #fff;
}
/*定义滑块 内阴影+圆角*/
&::-webkit-scrollbar-thumb
{
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #bbb;
}
}
.add-diagnose-wrap{
.fixed-wrap{
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: auto;
z-index: 1000;
.fullscreen-bg{
position: absolute;
width: 100%; height: 100%;
background: black; opacity: 0.3;
}
.add-diagnose-modal{
position: relative;
border-radius: 4px;
width: 910px; padding: 0 30px 0;
position: fixed;
left: 50%; margin-left: -455px;
top: 60px;
background: #fff;
.close-btn{
position: absolute; right: 20px; top: 20px;
cursor: pointer;
&:hover{
color: #409eff;
}
}
.title-text{
text-align: center;
line-height: 60px;
}
.search-disease{
width: 370px;
}
.main-content{
overflow: hidden;
.left{
float: left;
}
.left-box{
width: 370px;
height: 300px;
.common-diagnose{
width: 100%; height: 300px;
.title{
color: #303133;
font-size: 16px;
line-height: 40px;
margin-top: 10px;
.no-result{
font-size: 14px;
color: #e6a23c;
margin-left: 28px;
}
}
.list{
width: 100%; height: 250px;
overflow: hidden;
overflow-y: scroll;
.scroll-bar;
padding: 10px;
border: 1px solid #DCDFE6;
li{
height: 35px; line-height: 35px; padding: 0 15px;
background: #fff;
border: 1px solid #dcdfe6;
color: #606266;
cursor: pointer;
font-size: 12px;
&.active{
color: #fff;
background: #409eff;
border-color: #409eff;
}
display: inline-block;
margin: 0 10px 10px 0;
border-radius: 4px;
max-width: 350px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
}
}
.search-list-wrap{
width: 100%; height: 290px; margin-top: 10px;
border: 1px solid #DCDFE6;
overflow: hidden;
overflow-y: scroll;
.scroll-bar;
.search-list{
border-radius: 4px;
width: 100%;
padding: 10px;
li{
position: relative;
line-height: 30px;
overflow: hidden;
cursor: pointer;
font-size: 12px;
&:hover{
background: #eee;
}
.left{
width: 310px;
float: left;
span{
color: #ff8429;
}
.disease-name{
font-size: 14px;
}
.one-line{
width: 100%; overflow: hidden;
font-size: 12px; color: #aaa;
.alias{
float: left;
}
.sign{
float: left;
margin: 0 5px;
}
.code{
float: left;
}
}
}
.right{
position: absolute;
right: 0;
top: 50%;
margin-top: -13px;
// width: 0px;
// float: left;
display: inline-block;
vertical-align: middle;
i{
font-size: 24px;
color: #449284;
font-weight: 700;
}
}
.code{
line-height: 30px;
}
}
.loading{
color: #ccc;
text-align: center;
margin: 0;
font-size: 12px;
margin-top: 5px;
}
}
}
}
.choosed-list-wrap{
width: 450px;
height: 300px;
margin-left: 30px;
.title{
color: #303133;
font-size: 16px;
line-height: 40px;
margin-top: 10px;
}
.choosed-list{
overflow: hidden;
overflow-y: scroll;
width: 450px;
height: 250px;
padding: 10px;
border: 1px solid #DCDFE6;
.scroll-bar;
.el-tag {
margin: 0 10px 10px 0;;
.text{
display: inline-block;
max-width: 342px;
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.el-tag__close{
top: -12px;
}
}
}
}
}
}
.dialog-footer{
text-align: center;
margin: 20px auto;
}
}
.tips-wrap {
.know-confirm{
width: 98px;
height: 40px;
background: #449284;
border-radius: 4px;
text-align: center;
line-height: 40px;
color: #FFF;
margin: 0 auto;
font-size: 14px;
cursor: pointer;
}
}
}
</style>
......@@ -4,6 +4,8 @@ import common from './education/common';
//随访
import followModules from './followup/index';
import getters from './getters'
//居民诊断
import patientsDiagnose from './patientsManage/patientsDiagnose';
Vue.use(Vuex)
......@@ -11,7 +13,8 @@ Vue.use(Vuex)
export default new Vuex.Store({
modules: {
common,
...followModules
...followModules,
patientsDiagnose,
},
getters
})
......
const patientsDiagnose = {
namespaced: true,
state: {
selectedDiagList: [],
},
mutations: {
CHANGE_DIAGNOSE_LIST: (state, data) => {
state.selectedDiagList = data;
}
},
actions: {
changeDiagnoseList({ commit }, list) {
commit('CHANGE_DIAGNOSE_LIST', list);
}
}
}
export default patientsDiagnose;
\ No newline at end of file
......@@ -10,9 +10,9 @@ export const envConfig = {
// baseUrl: 'https://uat-sc.yunqueyi.com/',
// baseUrl: 'http://10.177.15.150:10401/',
// baseUrl: 'http://10.177.15.150:11905/',
// baseUrl: 'https://dev-sc.yunqueyi.com/',
baseUrl: 'https://dev-sc.yunqueyi.com/',
// baseUrl: 'https://test1-sc.yunqueyi.com/',
baseUrl: 'https://uat-sc.yunqueyi.com/',
// baseUrl: 'https://uat-sc.yunqueyi.com/',
apiUrl: 'https://dev-api.yunqueyi.com/',
qiniuFileUrl: "https://dev-sc.yunqueyi.com/contents/admin/qiniu/token1",
qiniuResourceUrl: "https://test1-videos.yunqueyi.com",
......@@ -27,9 +27,9 @@ export const envConfig = {
workApiSrc: 'https://dev-work.yunqueyi.com',
// reportUrl: 'http://10.177.15.150:10401/',
// reportUrl: 'http://192.168.140.13:10401/',
// reportUrl: 'https://dev-sc-report.yunqueyi.com/',
reportUrl: 'https://dev-sc-report.yunqueyi.com/',
// reportUrl: 'https://test1-sc-report.yunqueyi.com/',
reportUrl: 'https://uat-sc-report.yunqueyi.com/',
// reportUrl: 'https://uat-sc-report.yunqueyi.com/',
},
dev: {
baseUrl: 'https://dev-sc.yunqueyi.com/',
......
......@@ -54,7 +54,8 @@ service.interceptors.request.use(config => {
}
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
config.headers['token'] = '6F0F3B3F0EB24A14AA025FA47CD43770';
// config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6';
config.headers['token'] = '8BAA42D51C014A6090AB7717589F8967';
}else{
config.headers['token'] = localStorage.getItem('storageToken')
}
......
......@@ -572,3 +572,10 @@ export function getAvgTime(data) {
}
return list;
}
export function getComponent(data) {
let list = [];
for(let i=0;i<data.length;i++) {
list.push(data[i].value);
}
return list;
}
\ No newline at end of file
......@@ -377,6 +377,7 @@ export const getRemindPatient = (data) => {
})
};
// 保存并新增
export const savePatientInfo = (data) => {
return utils.checkAuth(()=>{
return fetch({
......@@ -426,3 +427,38 @@ export const getPatientInfoList = (data) => {
})
};
// 添加诊断:获取常用诊断列表
export const getCommonDiagnoseList = params => {
return fetch({
headers,
url: getBaseUrl(`medicineDictionary/icdCommonDiagnosis`),
method: 'get',
params: params,
description: '获取常用诊断列表',
})
}
// 添加诊断:搜索
export const goToSearch = params => {
return fetch({
headers,
url: getBaseUrl(`medicineDictionary/icdContents`),
method: 'get',
params: params,
description: '常用诊断搜索',
})
}
// 选择或搜索诊断
export const getIcdList = params => {
return fetch({
headers,
url: getBaseUrl(`healths/icd/list`),
// url: 'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/46/healths/icd/list',
method: 'get',
params: params,
description: '选择或搜索诊断',
})
}
......@@ -36,9 +36,32 @@
style="width:83%;"
:disabled="peopleLevel == 'L3'"
></el-input>
<span class="word-num">{{(formData.projectName).replace(/\s+/g,"").length}}/20</span>
<span class="word-num">{{(formData.projectName).replace(/\s+/g,"").length}}/24</span>
</el-col>
</el-form-item>
<el-form-item label="发起机构名称:" prop="organizationName">
<el-col :span="13">
<el-input
size="small"
v-model="formData.organizationName"
placeholder="请输入发起机构名称"
style="width:83%;"
:disabled="peopleLevel == 'L3'"
@input="changeOrganizationName"
@blur = "blurName"
@focus = "focusName"
></el-input>
<span class="word-num">{{(formData.organizationName).replace(/\s+/g,"").length}}/12</span>
</el-col>
<el-popover
class="popover-content"
placement="bottom"
:content="organizationContent"
v-model="visibleName"
@click="checkDefault">
<p @click="checkDefault"> 我的机构: {{ organizationContent }} </p>
</el-popover>
</el-form-item>
<el-form-item label="项目时间:" required>
<el-col :span="5">
<el-form-item prop="projectBegintime">
......@@ -82,7 +105,7 @@
style="width:83%;"
:disabled="peopleLevel == 'L3'"
></el-input>
<span class="word-num">{{(formData.projectIntro).replace(/\s+/g,"").length}}/150</span>
<span class="word-num">{{(formData.projectIntro).replace(/\s+/g,"").length}}/200</span>
</el-col>
</el-form-item>
<div class="basic-item-icon">
......@@ -180,6 +203,26 @@
<el-radio :label="1">使用小生态范围</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="项目上线通知">
<el-radio-group
size="small"
v-model="formData.sendOption"
:disabled="showNoticeType()"
>
<el-radio :label="1">通知</el-radio>
<el-radio :label="2">不通知</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="formData.sendOption != 2" label="通知范围">
<el-radio-group
size="small"
v-model="formData.receiveOption"
:disabled="showNoticeType()"
>
<el-radio :label="1">次级负责人</el-radio>
<el-radio :label="2">所有人</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="添加下载文件:">
<el-col :span="10">
<el-upload
......@@ -544,12 +587,13 @@
<div class="third-step" v-else-if="active === 2">
<el-form
ref="formComponent"
class="form-component"
label-width="150px"
:model="formComponent"
:rules="rulesComponent"
>
<el-form-item label="选择组件:" prop="component">
<el-col :span="20">
<el-col :span="10">
<el-select
v-model="formComponent.component"
multiple
......@@ -568,11 +612,12 @@
</el-select>
</el-col>
</el-form-item>
<el-form-item label="已选择:">
<el-form-item label="已选择:" class="check-component">
<el-col :span="20">
<el-tag
class = "tags-component"
v-for="tag in tagsComponent"
:key="tag.name"
:key="tag.value"
closable
:type="tag.type"
style="margin-left: 10px;"
......@@ -581,10 +626,12 @@
</el-col>
</el-form-item>
<el-form-item label="配置证书:">
<el-radio-group v-model="formComponent.configure" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6">
<el-col :span="10">
<el-radio-group class="el-configure" v-model="formComponent.configure" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-col>
</el-form-item>
<!-- <el-form-item v-show="formComponent.configure == 1" label="选择证书:">
<el-col :span="20">
......@@ -691,28 +738,15 @@ import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
import * as operationData from "../../utils/operation";
import Sortable from 'sortablejs'
let vm = null;
export default {
components: {
BreadCrumb
},
data() {
// const itemOrganization = {
// name: "上海市第一人民医院",
// grade: "二甲医院",
// province: "上海市",
// city: "上海市",
// district: "浦东新区",
// street: "张江街道"
// };
// const itemPerson = {
// name: "云小鹊",
// hospital: "上海市第一人民医院",
// department: "全科",
// province: "上海市",
// city: "上海市",
// district: "长宁区"
// };
let checkProjectStr = (rule, value, callback) => {
if(value.indexOf("\\") != -1) {//存在
callback(new Error('请勿输入字符“ \\ ”'));
......@@ -725,8 +759,7 @@ export default {
return {
idTypeValue: 1,
idTypeProject: '',
// itemOrganization: itemOrganization,
// itemPerson: itemPerson,
projectId: null,
peopleLevel: null,
//面包屑
......@@ -754,6 +787,9 @@ export default {
attachmentMore1: {},
attachmentMore2: {},
scopeType: 0,
organizationName: '',
sendOption: 1,
receiveOption: 1,
},
pickerOptions0: {
disabledDate: time => {
......@@ -908,6 +944,8 @@ export default {
value: 1,
}
],
visibleName: false,
organizationContent: '',
//校验工具 数据
rulesComponent: {
component: [
......@@ -922,12 +960,16 @@ export default {
{ required: true, message: "请输入项目名称", trigger: "blur" },
{
min: 2,
max: 20,
message: "输入长度为2-20的内容,可包含中英文、数字及特殊符号",
max: 24,
message: "输入长度为2-24的内容,可包含中英文、数字及特殊符号",
trigger: "blur"
},
{ validator: checkProjectStr, trigger: 'blur' }
],
organizationName: [
{ required: true, message: "请填写发起机构名称", trigger: "blur" },
{ min: 1, max: 12, message: "超过12个最大字数限制,请精简字数或使用简称", trigger: "blur" }
],
duringTime: [
{
required: true,
......@@ -962,7 +1004,7 @@ export default {
],
projectIntro: [
{ required: true, message: "请填写项目简介", trigger: "blur" },
{ min: 1, max: 150, message: "超出可输入的最大长度", trigger: "blur" }
{ min: 1, max: 200, message: "超出可输入的最大长度", trigger: "blur" }
],
attachmentUrl1: [
{ required: true, message: "请选择列表图片", trigger: "blur" }
......@@ -1057,7 +1099,12 @@ export default {
attachmentSize: editData.attachmentData[1].attachmentSize
},
scopeType: editData.projectData.scopeType,
organizationName: editData.projectData.organizationName,
notifyId: editData.notifyData.notifyId,
sendOption: editData.notifyData.sendOption,
receiveOption: editData.notifyData.receiveOption,
};
this.organizationContent = editData.projectData.creatorOrganizationName;
if (editData.attachmentData.length > 2) {
for (let i = 2; i < editData.attachmentData.length; i++) {
let pdfItem = {
......@@ -1136,6 +1183,7 @@ export default {
projectEndtime: this.formData.projectEndtime,
projectIntro: this.formData.projectIntro,
scopeType: this.formData.scopeType,
organizationName: this.formData.organizationName,
};
let attachmentModel = [
{
......@@ -1183,10 +1231,20 @@ export default {
}
//idTypeProject
}
//教培项目v2.1.0新增通知优化
let notifyData = {
notifyId: 0,
receiveOption: this.formData.receiveOption,
sendOption: this.formData.sendOption,
};
if(option == "edit" || option == "storageEdit") {
notifyData.notifyId = this.formData.notifyId;
}
let postData = {
projectModel: JSON.stringify(projectModel),
attachmentModel: JSON.stringify(attachmentModel),
attachmentPDFModel: JSON.stringify(attachmentPDFModel)
attachmentPDFModel: JSON.stringify(attachmentPDFModel),
notifyData: JSON.stringify(notifyData),
};
//console.log(postData);
openLoading(vm);
......@@ -1262,6 +1320,7 @@ export default {
}
this.optionsComponent = optionsComponent;
this.optionsCertificate = optionsCertificate;
this.organizationContent = res.data.creatorOrganizationName;
}
this.editManager();
});
......@@ -1269,7 +1328,8 @@ export default {
//项目组件信息 暂存/完成
componentDraft(type) {
let param = {
componentIds: this.formComponent.component,
// componentIds: this.formComponent.component,
componentIds: operationData.getComponent(vm.tagsComponent),
// certificateId: this.formComponent.certificate,
certificateId: [],
projectId: this.projectId,
......@@ -1278,6 +1338,7 @@ export default {
certificateType: this.formExam.certificateType,
getCertificateRule: [],
};
// console.log('排序后',vm.tagsComponent,'param',param);
if(this.formComponent.configure == 1) {
// 2.多证书有规
if(this.formExam.certificateType == 2) {
......@@ -1328,6 +1389,7 @@ export default {
this.getDepartment();
} else if (active == 2) {
this.stepData = [false, false, true];
this.tagDrop();
}
},
//点击暂存
......@@ -1430,7 +1492,13 @@ export default {
//点击完成
complete() {
//type 1:暂存 2:完成
if (this.status4Flag == 1) {
// if (this.status4Flag == 1) {
// vm.$message.info("完成");
// vm.$router.push({ path: "item-manager" });
// return;
// }
console.log('this.peopleLevel',this.peopleLevel);
if (this.peopleLevel == 'L3') {
vm.$message.info("完成");
vm.$router.push({ path: "item-manager" });
return;
......@@ -1510,6 +1578,7 @@ export default {
if (res.code == "000000") {
this.active++;
this.stepData = [false, false, true];
this.tagDrop();
}
}
);
......@@ -1559,6 +1628,7 @@ export default {
if(statusMove === 0) {
this.active++;
this.stepData = [false, false, true];
this.tagDrop();
} else {
console.log('不能改变范围status:'+res.data.status)
}
......@@ -1608,6 +1678,7 @@ export default {
if(statusMove === 0) {
this.active++;
this.stepData = [false, false, true];
this.tagDrop();
} else {
console.log('不能改变范围status:'+res.data.status)
}
......@@ -2883,6 +2954,15 @@ export default {
}
return true;
},
//判断通知展示问题
showNoticeType() {
if(this.projectStatus == '' || this.projectStatus == 1 || this.projectStatus == 2) {
if(this.peopleLevel != 'L3') {
return false;
}
}
return true;
},
//选择小生态
selectChangeEcology(value) {
this.formEcology.pageNum = 1;
......@@ -3074,6 +3154,7 @@ export default {
}
}
//console.log('this.tagsComponent',this.tagsComponent);
vm.tagDrop();
},
initTags(value) {
//console.log('value',value,'optionsComponent',this.optionsComponent);
......@@ -3090,6 +3171,9 @@ export default {
}
}
//console.log('this.tagsComponent',this.tagsComponent);
// if(vm.tagsComponent.length > 0) {
// vm.tagDrop();
// }
},
//选择组件数据绑定
handleCloseComponent(tag) {
......@@ -3233,6 +3317,9 @@ export default {
},
//校验考试通过平均分配置
checkCertificate () {
if(vm.formComponent.configure == 2) {
return true;
}
//空判断
if(vm.formExam.certificateType == 2) {
let checkIdList = [];
......@@ -3276,7 +3363,51 @@ export default {
}
}
return true;
}
},
blurName() {
vm.visibleName = false;
setTimeout(function(){
// console.log('失去焦点');
vm.submitForm('formData');
},200)
},
focusName() {
let textLength = vm.formData.organizationName.length;
if(textLength == 0) {
vm.visibleName = true;
} else {
vm.visibleName = false;
}
},
changeOrganizationName() {
let textLength = vm.formData.organizationName.length;
console.log('文字长度',textLength);
if(textLength == 0) {
vm.visibleName = true;
} else {
vm.visibleName = false;
}
},
checkDefault() {
// console.log('点击checkDefault')
vm.formData.organizationName = vm.organizationContent;
vm.visibleName = false;
},
tagDrop() {
this.$nextTick(function() {
if(vm.tagsComponent.length > 0) {
const ele = document.querySelector('.check-component .el-col-20');
// console.log('ele',ele);
// Sortable.create(ele,{});
Sortable.create(ele, {
onEnd({ newIndex, oldIndex }) {
const currRow = vm.tagsComponent.splice(oldIndex, 1)[0]
vm.tagsComponent.splice(newIndex, 0, currRow)
}
})
}
});
},
}
};
</script>
......@@ -3418,6 +3549,10 @@ export default {
color: #409eff;
border: 1px solid #409eff;
}
.el-popover--plain {
padding: 18px 20px;
top: 40px;
}
}
.second-step {
margin: 10px 0 0 20px;
......@@ -3496,6 +3631,22 @@ export default {
.achievement {
margin-top: 60px;
}
.form-component {
position: relative;
}
.check-component {
top: 0px;
left: 550px;
position: absolute;
z-index: 999;
}
.el-tag {
margin-top: 5px;
display: table;
}
.el-configure {
width: 200px;
}
}
}
</style>
\ No newline at end of file
......@@ -753,6 +753,7 @@ export default {
vm.componentList.moduleModelList[i].statusFlag = true;
}else{
vm.componentList.moduleModelList[i].statusFlag = false;
vm.componentList.moduleModelList[i].openDisabled = true;
}
}
},
......@@ -1094,7 +1095,9 @@ export default {
vm.$nextTick(() => {
for(let i=0;i<vm.componentList.moduleModelList.length;i++) {
if(!vm.componentList.moduleModelList[i].name) {
return
if(flag == 2) {
return
}
}
}
console.log(vm.componentList.moduleModelList)
......
......@@ -54,7 +54,7 @@
</el-select>
</el-form-item>
<el-form-item prop="diseaseId">
<el-select
<!--<el-select
v-model="searchData.diseaseId"
multiple
collapse-tags
......@@ -67,8 +67,27 @@
:key="index"
:label="item.diseaseName"
:value="item.diseaseId">
</el-option>
</el-select>
</el-option>-->
<!--</el-select>-->
<el-select
v-model="searchData.icdCodeList"
multiple
collapse-tags
filterable
remote
reserve-keyword
placeholder="请选择或搜索诊断"
:remote-method="getDiseaseData"
:loading="loading"
class="set-width"
>
<el-option
v-for="item in icdOptions"
:key="item.icdCode"
:label="item.diseaseName"
:value="item.icdCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="labelId">
<el-select
......@@ -229,7 +248,7 @@
<script>
import { mapState, mapActions } from 'vuex'
import { getConstants, getPatientInfoList, getDiseasesList, getLabelList } from '@/utils/patients/patientsapi'
import { getConstants, getPatientInfoList, getDiseasesList, getLabelList, getIcdList } from '@/utils/patients/patientsapi'
import { getPlanList } from '@/utils/followup/followapis'
export default {
components: {},
......@@ -248,7 +267,8 @@
diseaseId: [],
labelId: [],
fuPlanIdList: [],
searchCondition: ''
searchCondition: '',
icdCodeList: [],
},
paginationSet: {
pageNum: 1,
......@@ -272,6 +292,8 @@
newSelects: [], //新选中的人
oldPatientList: [],
showReloadModal: false,
loading: false,
icdOptions: [],
getRowKeys(row) {
return row.patientId;
},
......@@ -292,6 +314,8 @@
isShowSelectPatient(val){
if(val){
this.getPatientsList()
//获取搜索诊断
this.getDiseaseData();
// 获取常量 性别、年龄
getConstants({
numList: 'P057,P006'
......@@ -342,6 +366,29 @@
return row.disableNum
}
},
getDiseaseData(query) {
// if (query !== '') {
let params = {
diseaseName: query ? query : '',
pageSize: 200,
pageNum: 1,
};
this.loading = true;
getIcdList(params).then(data => {
this.loading = false;
if(data.code == "000000") {
this.icdOptions = data.data;
}
}).catch((error) => {
this.$message({
message: error,
type: 'error'
});
});
// }else {
// this.icdOptions = [];
// }
},
getPatientsList(){
const data = {
pageSize: this.paginationSet.pageSize,
......@@ -355,6 +402,7 @@
addType: this.selectPatientType, //随访是1,分组是2,患教是3
fuPlanIdList: this.searchData.fuPlanIdList || [],
sourceId: this.sourceId, //若是随访的话,传planId;若是分组的话,传labeledId;
icdCodeList: this.searchData.icdCodeList
}
getPatientInfoList(data).then(res=>{
if(res.data.patientList){
......@@ -377,10 +425,10 @@
item.showLabelName = '-';
}
//转化疾病
//转化诊断
if(item.patientTypeModels) {
item.patientTypeModels.forEach(item => {
diseaseNames.push(item.name)
diseaseNames.push(item.diseaseName)
})
item.showDiseaseNames = diseaseNames.join('、');
......@@ -486,7 +534,8 @@
diseaseId: [],
labelId: [],
fuPlanIdList: [],
searchCondition: ''
searchCondition: '',
icdCodeList: [],
}
this.$emit('closeSelectPatient',false)
},
......@@ -499,7 +548,8 @@
diseaseId: [],
labelId: [],
fuPlanIdList: [],
searchCondition: ''
searchCondition: '',
icdCodeList: [],
}
this.$emit('sureSelectPatient',false,this.newSelects,this.oldPatientList)
} else {
......
<template>
<div class="form-warp">
<addDiagnose ref="addDiagnose"></addDiagnose>
<el-form
:model="patientInfoForm"
:rules="rules"
......@@ -30,46 +31,53 @@
</el-input>
</el-form-item>
</el-col>
</el-row>
<!-- <div class="has-header">数据记录</div> -->
<el-row>
<el-col :span="12">
<el-form-item label="诊断" prop="diseaseIdList">
<!-- <el-select
v-model="diseaseIdList"
multiple
@change="changeDiseases"
:popper-append-to-body="false"
placeholder="请选择居民疾病诊断">
<el-option
v-for="(item, index) in diseasesList"
:key="item.diseaseId"
:label="item.diseaseName"
:value="item.diseaseId">
</el-option>
</el-select> -->
<el-button icon="el-icon-plus" @click="handleAddDiagnose">{{ selectedDiagList && selectedDiagList.length > 0 ? '修改诊断' : '添加诊断' }}</el-button>
<ul class="final-diagnose-list" v-if="selectedDiagList && selectedDiagList.length > 0">
<li v-for="diagnose in selectedDiagList" v-html="diagnose.alias ? diagnose.alias+'; ' : diagnose.diseaseName+'; '"></li>
</ul>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分组" prop="labelIdList">
<el-select
v-model="labelIdList"
multiple
@change="changeLabels"
:popper-append-to-body="false"
placeholder="请选择居民分组">
<el-option
v-for="(item, index) in labelsList"
:key="index.labelId"
:label="item.labelName"
:value="item.labelId">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="text-align: center;margin-top:15px;" v-show="!patientId"> <el-button plain size="small" @click="toggleClick">{{tipsText}}</el-button></el-col>
</el-row>
<div v-show="isShowAll || patientId">
<div class="has-header">数据记录</div>
<el-row>
<el-col :span="12">
<el-form-item label="诊断" prop="diseaseIdList">
<el-select
v-model="diseaseIdList"
multiple
@change="changeDiseases"
:popper-append-to-body="false"
placeholder="请选择居民疾病诊断">
<el-option
v-for="(item, index) in diseasesList"
:key="item.diseaseId"
:label="item.diseaseName"
:value="item.diseaseId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分组" prop="labelIdList">
<el-select
v-model="labelIdList"
multiple
@change="changeLabels"
:popper-append-to-body="false"
placeholder="请选择居民分组">
<el-option
v-for="(item, index) in labelsList"
:key="index.labelId"
:label="item.labelName"
:value="item.labelId">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div class="has-header">基本信息</div>
<el-row>
<el-col :span="12">
......@@ -178,12 +186,14 @@
<el-row>
<el-col :span="12">
<el-form-item label="所在地区" prop="addressList">
<!--@active-item-change="handleItemChange"-->
<el-cascader
ref="cascaderRegion"
placeholder="请选择省市县乡"
:options="provinceList"
v-model="addressList"
@active-item-change="handleItemChange"
:props="optionProps">
:props="optionProps"
@change="handleChange">
</el-cascader>
</el-form-item>
</el-col>
......@@ -227,8 +237,7 @@
placeholder="请输入内容"
clearable
maxlength="200"
:autosize="{ minRows: 3, maxRows: 7}"
show-word-limit>
:autosize="{ minRows: 3, maxRows: 7}">
</el-input>
<span class="text-count">{{currentCount}} / 200</span>
</el-form-item>
......@@ -239,7 +248,7 @@
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import { mapGetters, mapState } from 'vuex';
import { checkMobile } from '@/utils/patients/checkValid';
import { isCardNo, checkProvince, checkBirthday, checkParity, validateIdCard } from '@/utils/patients/checkCardNum';
import {
......@@ -252,9 +261,11 @@
getCityList,
getCountyList,
getTownList } from '@/utils/patients/patientsapi';
let vm = null;
import addDiagnose from '@/components/icd/addDiagnose.vue';
export default {
name: "basicInfo",
components: {},
components: { addDiagnose },
data() {
let validCode=(rule,value,callback)=>{
if(value) {
......@@ -338,7 +349,55 @@
optionProps: {
value: "id",
label: "name",
children: "children"
children: "children",
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
console.log("node", node);
if (node.level == 1) {
let req = {
provinceId: node.data.id
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = res.data.cityList;
newData.map(item => {
vm.$set(item, "id", item.cityId);
vm.$set(item, "name", item.cityName);
vm.$set(item, "children", []);
});
// console.log("newData", newData);
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.id
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = res.data.countyList;
newData.map(item => {
vm.$set(item, "id", item.countyId);
vm.$set(item, "name", item.countyName);
vm.$set(item, "children", []);
});
// console.log("newData", newData);
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.id
};
vm.GET("basic-data/position/towns", req).then(res => {
let newData = res.data.townList;
newData.map(item => {
vm.$set(item, "id", item.townId);
vm.$set(item, "name", item.townName);
vm.$set(item, "leaf", true);
});
// console.log("newData", newData);
resolve(newData);
});
}
}
},
tipsText: '展开录入完整信息',
isShowAll: false,
......@@ -357,6 +416,7 @@
return time > Date.now() || time < old;
}
},
region: [],
}
},
props: {
......@@ -376,7 +436,8 @@
this.patientInfoForm = val;
this.baseInfoEdit = this.patientInfoForm.baseInfoEdit;
let customLabels = this.patientInfoForm.customLabels;
let diseases = this.patientInfoForm.diseases;
// let diseases = this.patientInfoForm.diseases;
let icdList = this.patientInfoForm.icdList;
if(customLabels && customLabels.length > 0){
customLabels.forEach((kkk)=>{
this.labelIdList.push(Number(kkk.labelId))
......@@ -384,12 +445,17 @@
}else {
this.labelIdList = [];
}
if(diseases && diseases.length > 0) {
diseases.forEach((dis)=>{
this.diseaseIdList.push(Number(dis.diseaseId))
})
// if(diseases && diseases.length > 0) {
// diseases.forEach((dis)=>{
// this.diseaseIdList.push(Number(dis.diseaseId))
// })
// }else {
// this.diseaseIdList = [];
// }
if(icdList && icdList.length > 0) {
this.$store.dispatch('patientsDiagnose/changeDiagnoseList', icdList)
}else {
this.diseaseIdList = [];
this.$store.dispatch('patientsDiagnose/changeDiagnoseList', [])
}
if(this.patientInfoForm.idNo) {
this.hasIdNo = true;
......@@ -412,6 +478,7 @@
await this.getTown(provinceId, cityId, countyId);
}
this.addressList = [Number(provinceId), Number(cityId), Number(countyId), Number(townId)];
// console.log(this.provinceList);
this.$forceUpdate();
}else {
this.addressList = [];
......@@ -430,6 +497,7 @@
},
},
created() {
vm = this;
this.initConstant();
},
mounted(){
......@@ -441,6 +509,9 @@
...mapGetters([
'_token',
]),
...mapState('patientsDiagnose', {
selectedDiagList: state => state.selectedDiagList
}),
currentCount(){
if(this.patientInfoForm.remark) {
return this.patientInfoForm.remark.length
......@@ -476,7 +547,12 @@
cityId: null,
countyId: null,
townId: null,
}
},
this.$store.dispatch('patientsDiagnose/changeDiagnoseList', [])
},
// 点击 添加诊断
handleAddDiagnose() {
this.$refs.addDiagnose.showSelf();
},
initConstant(){
getDiseasesList().then((data) => {
......@@ -506,17 +582,18 @@
});
this.getProvinceLists();
},
changeDiseases(val) {
let newDiseaseList = [];
val.forEach((valItem) => {
this.diseasesList.forEach((item2) => {
if(valItem == item2.diseaseId){
newDiseaseList.push({parentDiseaseId: item2.diseaseId});
}
})
});
this.patientInfoForm.patientDiseases = newDiseaseList;
},
// changeDiseases(val) {
// // 格式化数据 提交用
// let newDiseaseList = [];
// val.forEach((valItem) => {
// this.diseasesList.forEach((item2) => {
// if(valItem == item2.diseaseId){
// newDiseaseList.push({parentDiseaseId: item2.diseaseId});
// }
// })
// });
// this.patientInfoForm.patientDiseases = newDiseaseList;
// },
changeLabels(val){
let newLabelsList = [];
val.forEach((valItem) => {
......@@ -558,31 +635,38 @@
this.patientInfoForm.cityId = this.addressList[1];
this.patientInfoForm.countyId = this.addressList[2];
this.patientInfoForm.townId = this.addressList[3];
this.provinceLists.forEach((item) => {
if(this.patientInfoForm.provinceId == item.provinceId) {
this.patientInfoForm.provinceName = item.provinceName;
}
});
this.cityLists.forEach((item) => {
if(this.patientInfoForm.cityId == item.cityId) {
this.patientInfoForm.cityName = item.cityName;
}
});
this.countyLists.forEach((item) => {
if(this.patientInfoForm.countyId == item.countyId) {
this.patientInfoForm.countyName = item.countyName;
}
})
this.townLists.forEach((item) => {
if(this.patientInfoForm.townId == item.townId) {
this.patientInfoForm.townName = item.townName;
}
})
// this.provinceLists.forEach((item) => {
// if(this.patientInfoForm.provinceId == item.provinceId) {
// this.patientInfoForm.provinceName = item.provinceName;
// }
// });
// this.cityLists.forEach((item) => {
// if(this.patientInfoForm.cityId == item.cityId) {
// this.patientInfoForm.cityName = item.cityName;
// }
// });
// this.countyLists.forEach((item) => {
// if(this.patientInfoForm.countyId == item.countyId) {
// this.patientInfoForm.countyName = item.countyName;
// }
// })
// this.townLists.forEach((item) => {
// if(this.patientInfoForm.townId == item.townId) {
// this.patientInfoForm.townName = item.townName;
// }
// })
this.patientInfoForm.provinceName = vm.region[0];
this.patientInfoForm.cityName = vm.region[1];
this.patientInfoForm.countyName = vm.region[2];
this.patientInfoForm.townName = vm.region[3];
if(this.patientInfoForm.provinceName && this.patientInfoForm.cityName && this.patientInfoForm.countyName && this.patientInfoForm.townName) {
this.patientInfoForm.patientAddress = `${this.patientInfoForm.provinceName}${this.patientInfoForm.cityName}${this.patientInfoForm.countyName}${this.patientInfoForm.townName}`
}else {
this.patientInfoForm.patientAddress = '';
}
// console.log('-----------',this.patientInfoForm.patientAddress)
}
this.$refs['patientInfoForm'].validate((valid) => {
if(!this.patientInfoForm.idNo) {
......@@ -594,6 +678,7 @@
status: true,
patientInfoForm: {
...this.patientInfoForm,
icdList: this.selectedDiagList,
birthTime: this.patientInfoForm.birthTime ? `${this.patientInfoForm.birthTime} 00:00:00` : '',
}
})
......@@ -603,6 +688,7 @@
// patientInfoForm: this.patientInfoForm,
patientInfoForm: {
...this.patientInfoForm,
icdList: this.selectedDiagList,
birthTime: this.patientInfoForm.birthTime ? `${this.patientInfoForm.birthTime} 00:00:00` : '',
}
})
......@@ -707,7 +793,9 @@
this.provinceList.map((item, index) => {
if(item.id == provinceId) {
item.children.map((city, idx) => {
city.children = this.countyLists;
if(city.id == cityId) {
city.children = this.countyLists;
}
})
}
})
......@@ -722,6 +810,7 @@
this.townLists.map(item => {
this.$set(item, "id", item.townId);
this.$set(item, "name", item.townName);
this.$set(item, "leaf", true);
// this.$set(item, "children", []);
});
this.provinceList.map((item, index) => {
......@@ -729,7 +818,9 @@
item.children.map((city, index2) => {
if(city.id == cityId) {
city.children.map((county, index3) => {
county.children = this.townLists;
if(county.id == countyId) {
county.children = this.townLists;
}
})
}
})
......@@ -754,7 +845,14 @@
let s = n - old;
return Math.floor(s / (24 * 3600 * 1000));
// return s;
}
},
handleChange() {
setTimeout(function() {
let region = vm.$refs["cascaderRegion"].inputValue;
vm.region = region.split(" / ");
// console.log("vm.region",vm.region)
},20)
},
},
filters: {
emptyFilter: function(value) {
......@@ -799,5 +897,15 @@
.idNoTxt{
display: inline-flex;color:#C0C4CC;line-height:20px;vertical-align: middle;
}
.final-diagnose-list{
color: #BBB;
line-height: 20px;
margin-top: 15px;
overflow: hidden;
li{
float:left;
margin-right: 5px;
}
}
}
</style>
......@@ -35,11 +35,15 @@
<!--<div><p class="title">健康档案编号:</p><p class="info">{{patientInfo.fileLocator | emptyFilter}}</p></div>-->
<!--<div><p class="title">医保号:</p><p class="info">{{patientInfo.socialCard | emptyFilter}}</p></div>-->
<!--</div>-->
<div class="has-header">数据记录</div>
<div class="item wrap-p">
<div><p class="title">诊断:</p><p class="info">{{showDiseaseName | emptyFilter}}</p></div>
<div><p class="title">分组:</p><p class="info">{{showLabelName | emptyFilter}}</p></div>
</div>
<!-- <div class="has-header">数据记录</div>
<div class="item wrap-p">
<div><p class="title">诊断:</p><p class="info">{{showDiseaseName | emptyFilter}}</p></div>
<div><p class="title">分组:</p><p class="info">{{showLabelName | emptyFilter}}</p></div>
</div>-->
<div class="has-header">联系方式</div>
<div class="item">
<div><p class="title">手机号:</p><p class="info">{{patientInfo.mobilePhone | emptyFilter}}</p></div>
......@@ -70,7 +74,6 @@
placeholder="请输入内容"
v-model="patientInfo.remark"
maxlength="200"
:show-word-limit="true"
>
</el-input>
</p>
......@@ -181,7 +184,8 @@
if(this.patientInfo){
this.doctorId = this.patientInfo.doctorId;
let customLabels = this.patientInfo.customLabels;
let diseases = this.patientInfo.diseases;
// let diseases = this.patientInfo.diseases;
let icdList = this.patientInfo.icdList;
let groupLabelNames = [];
let groupDiseaseNames = [];
//对出生日期的处理
......@@ -202,9 +206,18 @@
} else {
this.showLabelName = '';
}
// 对诊断疾病的处理
if(diseases) {
diseases.forEach(item => {
// 对诊断疾病的处理(老版诊断)
// if(diseases) {
// diseases.forEach(item => {
// groupDiseaseNames.push(item.diseaseName)
// });
// this.showDiseaseName = groupDiseaseNames.join(';');
// } else {
// this.showDiseaseName = '';
// }
// 对诊断疾病的处理(新版诊断)
if(icdList) {
icdList.forEach(item => {
groupDiseaseNames.push(item.diseaseName)
});
this.showDiseaseName = groupDiseaseNames.join(';');
......
......@@ -30,15 +30,37 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="诊断:" prop="startDate">
<el-select v-model="searchData.diseaseId" size="small" clearable :popper-append-to-body="false">
<el-form-item label="诊断:" prop="startDate" class="diagnose-select-style">
<!-- <el-select v-model="searchData.diseaseId" size="small" clearable :popper-append-to-body="false" placeholder="请选择或搜索诊断">
<el-option
v-for="item in diseaseList"
:key="item.diseaseId"
:label="item.diseaseName"
:value="item.diseaseId">
</el-option>
</el-select> -->
<!-- new Start -->
<el-select
v-model="searchData.icdCodeList"
multiple
filterable
remote
size="small"
collapse-tags
reserve-keyword
placeholder="请选择或搜索诊断"
:remote-method="getDiseaseData"
:loading="loading"
:popper-append-to-body="false"
>
<el-option
v-for="item in options"
:key="item.icdCode"
:label="item.diseaseName"
:value="item.icdCode">
</el-option>
</el-select>
<!-- new End -->
</el-form-item>
<el-form-item label="分组:" prop="labelId">
<el-select v-model="searchData.labelId" size="small" clearable :popper-append-to-body="false">
......@@ -138,7 +160,8 @@
<script>
import BreadCrumb from '../../../components/breadcrumb.vue'
import { getConstants,
getDiseasesList,
// getDiseasesList,
getIcdList,
getLabelList,
getPatientList} from '../../../utils/patients/patientsapi'
export default {
......@@ -161,12 +184,14 @@
agesList: [], //年龄
diseaseList: [],
groupList: [],
patientList: []
patientList: [],
options: [],
loading: false,
}
},
mounted() {
this.getConstantData(); //获取性别、年龄段常量
this.getDiseaseData(); //获取疾病种类
this.getDiseaseData(); //获取 搜索诊断
this.getGroupList(); //获取分组
this.getPatients({
...this.searchData
......@@ -188,10 +213,27 @@
});
});
},
getDiseaseData() {
getDiseasesList().then((data) => {
getDiseaseData(query) {
// getDiseasesList().then((data) => {
// if(data.code == "000000") {
// this.diseaseList = data.data;
// }
// }).catch((error) => {
// this.$message({
// message: error,
// type: 'error'
// });
// });
let params = {
diseaseName: query ? query : '',
pageNum: 1,
pageSize: 200,
};
this.loading = true;
getIcdList(params).then(data => {
this.loading = false;
if(data.code == "000000") {
this.diseaseList = data.data;
this.options = data.data;
}
}).catch((error) => {
this.$message({
......@@ -262,7 +304,7 @@
//转化疾病
if (item.patientTypeModels) {
item.patientTypeModels.forEach(item => {
diseaseNames.push(item.name)
diseaseNames.push(item.diseaseName)
})
item.showDiseaseNames = diseaseNames.join('、');
} else {
......@@ -337,6 +379,22 @@
border-bottom: 1px solid #efefef;
.search-input{
flex: 1;
.diagnose-select-style{
.el-input__inner{
height: 32px !important;
}
.el-select__tags-text{
display: inline-block;
max-width: 75px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.el-tag__close.el-icon-close{
top: -6px;
}
}
}
.search-btn {
text-align: right;
......
......@@ -95,6 +95,9 @@
this.$refs.newForm.diseaseIdList = [];
this.$refs.newForm.labelIdList = [];
this.$refs.newForm.addressList = [];
// 清空已选的诊断列表
this.$store.dispatch('patientsDiagnose/changeDiagnoseList', []);
// this.$router.go(0);//体验不好
},500)
}else {
......
......@@ -109,12 +109,22 @@
></el-pagination>
</div>
<el-dialog title :visible.sync="dialog.show" width="30%" center>
<p v-if="numL3 > 1" class="dialog-p">
<!-- <p v-if="numL3 > 1" class="dialog-p">
确认将{{ dialog.role }}
<span class="user-name">"{{ dialog.name }}"</span>
{{ dialog.option }}吗?"
</p>
<p v-else >该用户为此机构仅有的次级负责人,确认需要降级吗?</p>
<p v-else >该用户为此机构仅有的次级负责人,确认需要降级吗?</p> -->
<p v-if="numL3 <= 1 && scopeRow.projeceRole == 'L3'" class="dialog-p">
该用户为此机构仅有的次级负责人,确认需要降级吗?
</p>
<p v-else>
确认将{{ dialog.role }}
<span class="user-name">"{{ dialog.name }}"</span>
{{ dialog.option }}吗?"
</p>
<span slot="footer" class="dialog-footer">
<el-button type="default" size="small" @click="dialog.show = false">取消</el-button>
<el-button type="primary" size="small" @click="changeRole()">确定</el-button>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册