Commit 9c1ea2ce by tangyufeng

iconfont.css

parent 08b47a3e
@import "../../mixin.scss"; @import "../../mixin.scss";
// 1024 // 1024
@media screen and (min-width: 769px) and (max-width: 1024px) { @media screen and (min-width: 769px) and (max-width: 1024px) {
.outClinicalpathway { .outClinicalpathway {
...@@ -19,11 +20,13 @@ ...@@ -19,11 +20,13 @@
width: 50% !important; width: 50% !important;
} }
} }
&_t2 { &_t2 {
span { span {
width: 50% !important; width: 50% !important;
} }
} }
&_t3 { &_t3 {
width: 20% !important; width: 20% !important;
...@@ -31,6 +34,7 @@ ...@@ -31,6 +34,7 @@
width: 50% !important; width: 50% !important;
} }
} }
&_t4 { &_t4 {
width: 30% !important; width: 30% !important;
...@@ -40,16 +44,19 @@ ...@@ -40,16 +44,19 @@
} }
} }
} }
&_right { &_right {
height: 50% !important; height: 50% !important;
width: 100% !important; width: 100% !important;
justify-content: flex-end !important; justify-content: flex-end !important;
} }
} }
&_table { &_table {
&_left { &_left {
width: 20% !important; width: 20% !important;
} }
&_right { &_right {
width: 79% !important; width: 79% !important;
} }
...@@ -77,11 +84,13 @@ ...@@ -77,11 +84,13 @@
width: 50% !important; width: 50% !important;
} }
} }
&_t2 { &_t2 {
span { span {
width: 50% !important; width: 50% !important;
} }
} }
&_t3 { &_t3 {
width: 20% !important; width: 20% !important;
...@@ -89,6 +98,7 @@ ...@@ -89,6 +98,7 @@
width: 50% !important; width: 50% !important;
} }
} }
&_t4 { &_t4 {
width: 30% !important; width: 30% !important;
...@@ -98,18 +108,21 @@ ...@@ -98,18 +108,21 @@
} }
} }
} }
&_right { &_right {
height: 50% !important; height: 50% !important;
width: 100% !important; width: 100% !important;
justify-content: flex-end !important; justify-content: flex-end !important;
} }
} }
&_table { &_table {
&_left { &_left {
width: 20% !important; width: 20% !important;
} }
&_right { &_right {
width: 79% !important; width: 100% !important;
} }
} }
} }
...@@ -126,11 +139,13 @@ ...@@ -126,11 +139,13 @@
width: 60% !important; width: 60% !important;
} }
} }
&_t2 { &_t2 {
span { span {
width: 60% !important; width: 60% !important;
} }
} }
&_t3 { &_t3 {
width: 20% !important; width: 20% !important;
...@@ -138,6 +153,7 @@ ...@@ -138,6 +153,7 @@
width: 60% !important; width: 60% !important;
} }
} }
&_t4 { &_t4 {
width: 28% !important; width: 28% !important;
...@@ -148,12 +164,14 @@ ...@@ -148,12 +164,14 @@
} }
} }
} }
&_table { &_table {
&_left { &_left {
width: 15% !important; width: 15% !important;
} }
&_right { &_right {
width: 84% !important; width: 100% !important;
} }
} }
} }
...@@ -170,11 +188,13 @@ ...@@ -170,11 +188,13 @@
width: 60% !important; width: 60% !important;
} }
} }
&_t2 { &_t2 {
span { span {
width: 60% !important; width: 60% !important;
} }
} }
&_t3 { &_t3 {
width: 20% !important; width: 20% !important;
...@@ -182,6 +202,7 @@ ...@@ -182,6 +202,7 @@
width: 60% !important; width: 60% !important;
} }
} }
&_t4 { &_t4 {
width: 28% !important; width: 28% !important;
...@@ -192,12 +213,14 @@ ...@@ -192,12 +213,14 @@
} }
} }
} }
&_table { &_table {
&_left { &_left {
width: 15% !important; width: 15% !important;
} }
&_right { &_right {
width: 84% !important; width: 100% !important;
} }
} }
} }
...@@ -214,11 +237,13 @@ ...@@ -214,11 +237,13 @@
width: 60% !important; width: 60% !important;
} }
} }
&_t2 { &_t2 {
span { span {
width: 60% !important; width: 60% !important;
} }
} }
&_t3 { &_t3 {
width: 20% !important; width: 20% !important;
...@@ -226,6 +251,7 @@ ...@@ -226,6 +251,7 @@
width: 60% !important; width: 60% !important;
} }
} }
&_t4 { &_t4 {
width: 28% !important; width: 28% !important;
...@@ -236,12 +262,14 @@ ...@@ -236,12 +262,14 @@
} }
} }
} }
&_table { &_table {
&_left { &_left {
width: 15% !important; width: 15% !important;
} }
&_right { &_right {
width: 84% !important; width: 100% !important;
} }
} }
} }
......
import Vue from 'vue' import Vue from "vue";
import axios from 'axios' import axios from "axios";
import 'element-ui/lib/theme-chalk/index.css'; import "element-ui/lib/theme-chalk/index.css";
import { getItem } from '@/utils/auth' import { getItem } from "@/utils/auth";
axios.defaults.timeout = 120000 axios.defaults.timeout = 120000;
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8' axios.defaults.headers.post["Content-Type"] = "application/json;charset=utf-8";
var domain = "/api/api";
var domain = '/api/api'
function createHeader() { function createHeader() {
const token = getItem('svToken'); const token = getItem("svToken");
return token ? { Authorization: `Bearer ${token}` } : {}; return token ? { Authorization: `Bearer ${token}` } : {};
} }
function errorMsg(d) { function errorMsg(d) {
console.log(d.response);
if (d.response.status == '401') { if (d.response.status == "401") {
Vue.prototype.$message.error('登录信息失效,重新登录!'); Vue.prototype.$message.error("登录信息失效,重新登录!");
sessionStorage.clear(); sessionStorage.clear();
this.$router.push("/login").catch((err) => { this.$router.push("/login").catch((err) => {
...@@ -29,30 +28,26 @@ function errorMsg(d) { ...@@ -29,30 +28,26 @@ function errorMsg(d) {
}); //改变路由 }); //改变路由
} }
if (d.response) { if (d.response) {
// 请求已发出,但服务器响应的状态码不在 2xx 范围内 // 请求已发出,但服务器响应的状态码不在 2xx 范围内
console.log(d.response); console.log(d.response);
} }
if (Vue.prototype.$notify) { if (Vue.prototype.$notify) {
Vue.prototype.$message.error(d ? d.response.data.message : "服务器端错误");
Vue.prototype.$message.error(d ? d.response.data.message : '服务器端错误');
} else { } else {
alert(d ? d.response.data.message : '服务器端错误') alert(d ? d.response.data.message || d.response.data : "服务器端错误");
} }
} }
let loadingInstance; let loadingInstance;
let loadingOption = {
let loadingOption = { //加载loading //加载loading
fullscreen: true, fullscreen: true,
text: '正在加载...', text: "正在加载...",
spinner: 'el-icon-loading', spinner: "el-icon-loading",
background: 'rgba(0, 0, 0, 0.5)' background: "rgba(0, 0, 0, 0.5)",
} };
axios.interceptors.response.use( axios.interceptors.response.use(
(response) => { (response) => {
if (response.status === 200) { if (response.status === 200) {
...@@ -64,7 +59,7 @@ axios.interceptors.response.use( ...@@ -64,7 +59,7 @@ axios.interceptors.response.use(
(error) => { (error) => {
if (error.response.status == 401) { if (error.response.status == 401) {
window.sessionStorage.clear(); window.sessionStorage.clear();
window.location.href = '/'; window.location.href = "/";
} }
return Promise.reject(error); return Promise.reject(error);
...@@ -72,14 +67,12 @@ axios.interceptors.response.use( ...@@ -72,14 +67,12 @@ axios.interceptors.response.use(
); );
export default { export default {
post(url, params, option) { post(url, params, option) {
loadingInstance = Vue.prototype.$loading(loadingOption); loadingInstance = Vue.prototype.$loading(loadingOption);
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
axios axios
.post(domain + url, params, {... { headers: createHeader() }, ...option }) .post(domain + url, params, { ...{ headers: createHeader() }, ...option })
.then((res) => { .then((res) => {
if (res.status !== 200) { if (res.status !== 200) {
errorMsg(res.data); errorMsg(res.data);
...@@ -92,7 +85,31 @@ export default { ...@@ -92,7 +85,31 @@ export default {
resolve(res.data.data || res.data); resolve(res.data.data || res.data);
}) })
.catch((error) => { .catch((error) => {
loadingInstance.close();
errorMsg(error);
reject(error);
});
});
},
//医院的接口数据用
postFn(url, params, option) {
loadingInstance = Vue.prototype.$loading(loadingOption);
return new Promise((resolve, reject) => {
axios
.post(domain + url, params, { ...{ headers: createHeader() }, ...option })
.then((res) => {
console.log(res);
if (res.status !== 200) {
errorMsg(res.data);
reject(res.data);
return;
}
loadingInstance.close();
resolve(res.data);
})
.catch((error) => {
loadingInstance.close(); loadingInstance.close();
errorMsg(error); errorMsg(error);
...@@ -104,7 +121,7 @@ export default { ...@@ -104,7 +121,7 @@ export default {
loadingInstance = Vue.prototype.$loading(loadingOption); loadingInstance = Vue.prototype.$loading(loadingOption);
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
axios axios
.get(domain + url, {... { headers: createHeader() }, ...option }) .get(domain + url, { ...{ headers: createHeader() }, ...option })
.then((res) => { .then((res) => {
if (res.status !== 200) { if (res.status !== 200) {
errorMsg(res.data); errorMsg(res.data);
...@@ -121,4 +138,4 @@ export default { ...@@ -121,4 +138,4 @@ export default {
}); });
}); });
}, },
} };
\ No newline at end of file
...@@ -22,12 +22,7 @@ ...@@ -22,12 +22,7 @@
</div> </div>
</div> </div>
<div class="Entrypath_top_right"> <div class="Entrypath_top_right">
<el-button <el-button style="background-color: #0283bb; color: #ffff" size="mini" @click="okbtn()">确定进入路径</el-button>
style="background-color: #0283bb; color: #ffff"
size="mini"
@click="okbtn()"
>确定进入路径</el-button
>
</div> </div>
</div> </div>
<div class="Entrypath_table"> <div class="Entrypath_table">
...@@ -40,41 +35,19 @@ ...@@ -40,41 +35,19 @@
</div> </div>
<div class="Entrypath_table_lefttab_select_chack"> <div class="Entrypath_table_lefttab_select_chack">
<el-button <el-button
style=" style="background-color: #ffff; color: #91cbcd; margin-right: 10px; border: 1px solid #91cbcd"
background-color: #ffff;
color: #91cbcd;
margin-right: 10px;
border: 1px solid #91cbcd;
"
plain plain
size="mini" size="mini"
@click="selectbtn()" @click="selectbtn()"
>查询</el-button >查询</el-button
> >
<el-checkbox <el-checkbox v-model="checked" label="只显示推荐路径" size="large" @change="checkchange" />
v-model="checked"
label="只显示推荐路径"
size="large"
@change="checkchange"
/>
</div> </div>
</div> </div>
<div class="Entrypath_table_lefttab_table"> <div class="Entrypath_table_lefttab_table">
<el-table <el-table ref="leftTable" :data="LefttableData" border height="100%" stripe @row-click="rowclick" :highlight-current-row="true">
ref="leftTable"
:data="LefttableData"
border
height="100%"
stripe
@row-click="rowclick"
:highlight-current-row="true"
>
<el-table-column type="index" /> <el-table-column type="index" />
<el-table-column <el-table-column show-overflow-tooltip property="clinical_route_name" label="路径名称" />
show-overflow-tooltip
property="clinical_route_name"
label="路径名称"
/>
</el-table> </el-table>
</div> </div>
</div> </div>
...@@ -93,16 +66,8 @@ ...@@ -93,16 +66,8 @@
stripe stripe
:header-cell-style="{ background: '#0184bc', color: '#ffff' }" :header-cell-style="{ background: '#0184bc', color: '#ffff' }"
> >
<el-table-column <el-table-column show-overflow-tooltip property="code" label="诊断编码" />
show-overflow-tooltip <el-table-column show-overflow-tooltip property="name" label="诊断名称" />
property="code"
label="诊断编码"
/>
<el-table-column
show-overflow-tooltip
property="name"
label="诊断名称"
/>
</el-table> </el-table>
</div> </div>
<!-- 第二个表格 --> <!-- 第二个表格 -->
...@@ -116,16 +81,8 @@ ...@@ -116,16 +81,8 @@
stripe stripe
:header-cell-style="{ background: '#0184bc', color: '#ffff' }" :header-cell-style="{ background: '#0184bc', color: '#ffff' }"
> >
<el-table-column <el-table-column show-overflow-tooltip property="code" label="手术编码" />
show-overflow-tooltip <el-table-column show-overflow-tooltip property="name" label="手术名称" />
property="code"
label="手术编码"
/>
<el-table-column
show-overflow-tooltip
property="name"
label="手术名称"
/>
</el-table> </el-table>
</div> </div>
<!-- 第三个表格 --> <!-- 第三个表格 -->
...@@ -139,11 +96,7 @@ ...@@ -139,11 +96,7 @@
stripe stripe
:header-cell-style="{ background: '#0184bc', color: '#ffff' }" :header-cell-style="{ background: '#0184bc', color: '#ffff' }"
> >
<el-table-column <el-table-column show-overflow-tooltip property="describe" label="进入路径标准" />
show-overflow-tooltip
property="describe"
label="进入路径标准"
/>
</el-table> </el-table>
</div> </div>
</div> </div>
...@@ -153,14 +106,7 @@ ...@@ -153,14 +106,7 @@
</template> </template>
<script> <script>
import http from "../utils/http"; import http from "../utils/http";
import { import { reactive, toRefs, onMounted, nextTick, computed, ref } from "@vue/composition-api";
reactive,
toRefs,
onMounted,
nextTick,
computed,
ref,
} from "@vue/composition-api";
import { decimal } from "../utils/decimal"; import { decimal } from "../utils/decimal";
import { img } from "../assets/img/zu.png"; import { img } from "../assets/img/zu.png";
import { Message, MessageBox } from "element-ui"; import { Message, MessageBox } from "element-ui";
...@@ -209,11 +155,7 @@ export default { ...@@ -209,11 +155,7 @@ export default {
}; };
//获取标识 //获取标识
const getIsRoute = () => { const getIsRoute = () => {
http http.post(`/ClinicalRoute/ClinicalRoute/IsRoute?pid=${route.value.query.pid}`, {})
.post(
`/ClinicalRoute/ClinicalRoute/IsRoute?pid=${route.value.query.pid}`,
{}
)
.then((data) => { .then((data) => {
state.IsRoute = data; state.IsRoute = data;
}) })
...@@ -221,11 +163,7 @@ export default { ...@@ -221,11 +163,7 @@ export default {
}; };
//获取患者信息 //获取患者信息
const gettopdata = () => { const gettopdata = () => {
http http.post(`/ClinicalRoute/ClinicalRoute/GetPatientInfo?pid=${route.value.query.pid}`, {})
.post(
`/ClinicalRoute/ClinicalRoute/GetPatientInfo?pid=${route.value.query.pid}`,
{}
)
.then((data) => { .then((data) => {
state.topdata = data; state.topdata = data;
//如果标识为false 跳转到临床路径外放页面 //如果标识为false 跳转到临床路径外放页面
...@@ -251,11 +189,7 @@ export default { ...@@ -251,11 +189,7 @@ export default {
}; };
//获取左侧表格数据 //获取左侧表格数据
const getLeftdata = () => { const getLeftdata = () => {
http http.post(`/ClinicalRoute/ClinicalRoute/GetPatientRoutes?pid=${route.value.query.pid}&searchQuery=${state.pathinput}&flag=${state.checked}`, {})
.post(
`/ClinicalRoute/ClinicalRoute/GetPatientRoutes?pid=${route.value.query.pid}&searchQuery=${state.pathinput}&flag=${state.checked}`,
{}
)
.then((data) => { .then((data) => {
state.LefttableData = data; state.LefttableData = data;
}) })
...@@ -266,11 +200,7 @@ export default { ...@@ -266,11 +200,7 @@ export default {
state.iscid = row.id; state.iscid = row.id;
var loadingInstance1 = Loading.service(loadingOption1); var loadingInstance1 = Loading.service(loadingOption1);
//获取右侧数据 //获取右侧数据
http http.post(`/ClinicalRoute/ClinicalRoute/GetCRRuleDescribe?crid=${row.id}`, {})
.post(
`/ClinicalRoute/ClinicalRoute/GetCRRuleDescribe?crid=${row.id}`,
{}
)
.then((data) => { .then((data) => {
state.OnetableData = data.diagInfo; //诊断信息 state.OnetableData = data.diagInfo; //诊断信息
state.TwotableData = data.opsInfo; state.TwotableData = data.opsInfo;
...@@ -300,11 +230,7 @@ export default { ...@@ -300,11 +230,7 @@ export default {
type: "warning", type: "warning",
}); });
} else if (state.iscid != 0) { } else if (state.iscid != 0) {
http http.post(`/ClinicalRoute/ClinicalRoute/CreatePatientRoute?pid=${route.value.query.pid}&crid=${state.iscid}`, {})
.post(
`/ClinicalRoute/ClinicalRoute/CreatePatientRoute?pid=${route.value.query.pid}&crid=${state.iscid}`,
{}
)
.then((data) => { .then((data) => {
Message({ Message({
message: "成功", message: "成功",
...@@ -328,9 +254,9 @@ export default { ...@@ -328,9 +254,9 @@ export default {
}); });
}; };
onMounted(() => { onMounted(async () => {
getIsRoute(); getIsRoute();
gettopdata(); await gettopdata();
getLeftdata(); getLeftdata();
}); });
......
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
<!-- 表格 --> <!-- 表格 -->
<div class="outClinicalpathway_table_right"> <div class="outClinicalpathway_table_right">
<div class="outClinicalpathway_table_right_radio"> <div class="outClinicalpathway_table_right_radio">
<el-radio-group v-model="radio" @input="radiochange"> <el-radio-group :value="radio" @input="radiochange">
<el-radio :label="1">长期医嘱</el-radio> <el-radio :label="1">长期医嘱</el-radio>
<el-radio :label="2">临时医嘱</el-radio> <el-radio :label="2">临时医嘱</el-radio>
</el-radio-group> </el-radio-group>
...@@ -106,20 +106,20 @@ ...@@ -106,20 +106,20 @@
size="mini" size="mini"
:row-class-name="rowClass" :row-class-name="rowClass"
> >
<el-table-column type="selection" :selectable="selectEnable" width="55" /> <el-table-column type="selection" :selectable="selectEnable" width="50" />
<el-table-column show-overflow-tooltip property="advice_name" label="路径名称" width="150" /> <el-table-column show-overflow-tooltip property="advice_name" label="路径名称" width="130" />
<el-table-column show-overflow-tooltip property="tickTime" label="当前时间" width="145"> <el-table-column show-overflow-tooltip property="tickTime" label="当前时间" width="145">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.advice_name == null && scope.row.ischeck == 1">{{ scope.row.tickTime }}</span> <span v-if="scope.row.advice_name == null && scope.row.ischeck == 1">{{ scope.row.tickTime }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column show-overflow-tooltip property="orderType" label="类型" width="60" /> <el-table-column show-overflow-tooltip property="orderType" label="类型" width="50" />
<el-table-column show-overflow-tooltip property="project_name" label="医院项目名称" width="220" /> <el-table-column show-overflow-tooltip property="project_name" label="医院项目名称" width="200" />
<el-table-column show-overflow-tooltip property="specifications" label="规格说明" width="80" /> <el-table-column show-overflow-tooltip property="specifications" label="规格说明" width="80" />
<el-table-column show-overflow-tooltip property="dosage" label="药品剂型" width="80" /> <el-table-column show-overflow-tooltip property="dosage" label="药品剂型" width="70" />
<el-table-column show-overflow-tooltip property="isAntibiotic" label="抗生素" width="85"> <el-table-column show-overflow-tooltip property="isAntibiotic" label="抗生素" width="85">
<template #default="scope"> <template #default="scope">
<el-select v-if="scope.row.advice_name == null && scope.row.ischeck == 1" size="mini" v-model="scope.row.isAntibiotic"> <el-select v-if="scope.row.advice_name == null && scope.row.ischeck == 1" size="mini" v-model="scope.row.isAntibiotic">
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
<span v-else>{{ scope.row.medicUseMode }}</span> <span v-else>{{ scope.row.medicUseMode }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column show-overflow-tooltip property="medicUsePlan" label="频率" width="100"> <el-table-column show-overflow-tooltip property="medicUsePlan" label="频率" width="110">
<template #default="scope"> <template #default="scope">
<el-select v-if="scope.row.advice_name == null && scope.row.ischeck == 1" size="mini" v-model="scope.row.medicUsePlan"> <el-select v-if="scope.row.advice_name == null && scope.row.ischeck == 1" size="mini" v-model="scope.row.medicUsePlan">
<el-option v-for="item in medicUsePlanoptions" :key="item.id" :label="item.describe" :value="item.describe"> </el-option> <el-option v-for="item in medicUsePlanoptions" :key="item.id" :label="item.describe" :value="item.describe"> </el-option>
...@@ -187,53 +187,112 @@ ...@@ -187,53 +187,112 @@
<el-table-column prop="description" label="诊断描述" width="150"> <el-table-column prop="description" label="诊断描述" width="150">
<template #default="scope"> <template #default="scope">
<div style="display: flex; height: 100%; flex-direction: column; justify-content: center; align-items: center"> <!-- <div style="display: flex; height: 100%; flex-direction: column; justify-content: center; align-items: center">
<div style="display: flex"> <div style="display: flex">
<span v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type == 2" style="color: red">*</span> <span
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.isedit"
style="color: red"
>*</span
>
<el-input <el-input
size="mini" size="mini"
validate-event
type="textarea" type="textarea"
:autosize="{ minRows: 2 }" :autosize="{ minRows: 2 }"
placeholder="请输入内容" placeholder="请输入内容"
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1" v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.isedit"
v-model="scope.row.description" v-model="scope.row.description"
></el-input> ></el-input>
</div> </div>
<span <span
style="font-size: 12px; color: red" style="font-size: 12px; color: red"
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type == 2 && scope.row.description == ''" v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.description == ''"
>请输入内容</span >请输入内容</span
> >
</div> </div> -->
<el-form
:model="scope.row"
label-width="15px"
label-position="left"
ref="numberValidateForm"
class="demo-ruleForm"
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.isedit"
>
<el-form-item prop="description" :rules="[{ required: true, message: '请输入内容' }]">
<template #label> <span></span></template>
<el-input
v-model="scope.row.description"
autocomplete="off"
placeholder="请输入内容"
type="textarea"
:autosize="{ minRows: 2 }"
></el-input>
</el-form-item>
</el-form>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="symptom" label="症状及体征" width="150"> <el-table-column prop="symptom" label="症状及体征" width="150">
<template #default="scope"> <template #default="scope">
<div style="display: flex; height: 100%; flex-direction: column; justify-content: center; align-items: center"> <!-- <div style="display: flex; height: 100%; flex-direction: column; justify-content: center; align-items: center">
<div style="display: flex"> <div style="display: flex">
<span v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type == 2" style="color: red">*</span> <span
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.isedit"
style="color: red"
>*</span
>
<el-input <el-input
size="mini" size="mini"
type="textarea" type="textarea"
:autosize="{ minRows: 2 }" :autosize="{ minRows: 2 }"
placeholder="请输入内容" placeholder="请输入内容"
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1" v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.isedit"
v-model="scope.row.symptom" v-model="scope.row.symptom"
></el-input> ></el-input>
</div> </div>
<span <span
style="font-size: 12px; color: red" style="font-size: 12px; color: red"
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type == 2 && scope.row.symptom == ''" v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.symptom == ''"
>请输入内容</span >请输入内容</span
> >
</div> </div> -->
<el-form
:model="scope.row"
label-width="15px"
label-position="left"
ref="numberValidateForm1"
class="demo-ruleForm"
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.isedit"
>
<el-form-item prop="symptom" :rules="[{ required: true, message: '请输入内容' }]">
<template #label> <span></span></template>
<el-input
v-model="scope.row.symptom"
autocomplete="off"
placeholder="请输入内容"
type="textarea"
:autosize="{ minRows: 2 }"
></el-input>
</el-form-item>
</el-form>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip property="emergency" label="急诊" width="85">
<template #default="scope">
<el-select
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.isedit"
size="mini"
v-model="scope.row.emergency"
>
<el-option v-for="item in chargeTypeoptions" :key="item.label" :label="item.label" :value="item.value"> </el-option>
</el-select>
<!-- <span v-else>{{ isObj[scope.row.emergency] }}</span> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="80"> <el-table-column label="操作" width="80">
<template #default="scope"> <template #default="scope">
<el-button <el-button
v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1" v-if="scope.row.advice_name == null && scope.row.ischeck == 1 && scope.row.type != 1 && scope.row.isedit"
size="mini" size="mini"
type="primary" type="primary"
@click="goSeeScore(scope.row, scope.$index, scope)" @click="goSeeScore(scope.row, scope.$index, scope)"
...@@ -251,25 +310,13 @@ ...@@ -251,25 +310,13 @@
<el-input v-model="goSeeform.chiefComplaint" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" /> <el-input v-model="goSeeform.chiefComplaint" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
<el-form-item label="检查目的:"> <el-form-item label="检查目的:">
<el-input <el-input v-model="goSeeform.inspectionPurpose" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" />
v-model="goSeeform.inspectionPurpose"
:autosize="{ minRows: 2 }"
type="textarea"
placeholder="请输入内容"
:disabled="distype == 3 ? true : false"
/>
</el-form-item> </el-form-item>
<el-form-item label="既往史:"> <el-form-item label="既往史:">
<el-input v-model="goSeeform.pastHistory" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" /> <el-input v-model="goSeeform.pastHistory" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
<el-form-item label="其他辅助项目:"> <el-form-item label="其他辅助项目:">
<el-input <el-input v-model="goSeeform.auxiliaryItems" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" />
v-model="goSeeform.auxiliaryItems"
:autosize="{ minRows: 2 }"
type="textarea"
placeholder="请输入内容"
:disabled="distype == 3 ? true : false"
/>
</el-form-item> </el-form-item>
<el-form-item label="备注:"> <el-form-item label="备注:">
<el-input v-model="goSeeform.inspectRemarks" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" /> <el-input v-model="goSeeform.inspectRemarks" :autosize="{ minRows: 2 }" type="textarea" placeholder="请输入内容" />
...@@ -305,12 +352,15 @@ export default { ...@@ -305,12 +352,15 @@ export default {
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const fromRef = ref(); const fromRef = ref();
const goSeefromRef = ref(); const goSeefromRef = ref();
function tableLayout() { function tableLayout() {
nextTick(() => { nextTick(() => {
fromRef.value.doLayout(); fromRef.value.doLayout();
}); });
} }
const numberValidateForm = ref();
const numberValidateForm1 = ref();
const monthlyPlanTable = ref(); const monthlyPlanTable = ref();
const multipleTable = ref(); const multipleTable = ref();
const transformTime = computed(() => { const transformTime = computed(() => {
...@@ -325,13 +375,19 @@ export default { ...@@ -325,13 +375,19 @@ export default {
inHosNum: "", // 住院次数 inHosNum: "", // 住院次数
clinical_route_name: "", // 符合临床路径 clinical_route_name: "", // 符合临床路径
}, },
multipleSelection: [], //被选择的数据 multipleSelection: [], //被选择的数据
multipleSelection1: [], //被选择的数据
selectArr: [], selectArr: [],
tableData: [], //表格数据 tableData: [], //表格数据
yztype: { yztype: {
1: "长期医嘱", 1: "长期医嘱",
2: "临时医嘱", 2: "临时医嘱",
}, },
isObj: {
0: "否",
1: "是",
},
//被点击的index //被点击的index
timeindex: null, timeindex: null,
case_routeid: null, //点击左侧时间线的天数id case_routeid: null, //点击左侧时间线的天数id
...@@ -355,9 +411,11 @@ export default { ...@@ -355,9 +411,11 @@ export default {
chargeTypeoptions: [ chargeTypeoptions: [
{ {
label: "是", label: "是",
value: 1,
}, },
{ {
label: "否", label: "否",
value: 0,
}, },
], ],
tempRow: {}, //储存正在编辑的行 tempRow: {}, //储存正在编辑的行
...@@ -391,7 +449,7 @@ export default { ...@@ -391,7 +449,7 @@ export default {
}; };
//表格当前行样式 //表格当前行样式
const rowClass = ({ row, index }) => { const rowClass = ({ row, index }) => {
if (row.isClass == true) { if (row.isClass) {
return "rowStyleclass"; return "rowStyleclass";
} else { } else {
return ""; return "";
...@@ -481,7 +539,9 @@ export default { ...@@ -481,7 +539,9 @@ export default {
// 选中父节点时,子节点一起选中取消 // 选中父节点时,子节点一起选中取消
const select = (selection, row) => { const select = (selection, row) => {
console.log("row--父节点", row); console.log("row--父节点", row, selection);
console.log(selection.filter((item) => !item.children));
row.tickTime = transformTimestampnow(); row.tickTime = transformTimestampnow();
// 选中 // 选中
console.log( console.log(
...@@ -496,17 +556,23 @@ export default { ...@@ -496,17 +556,23 @@ export default {
) { ) {
row.ischeck = 1; row.ischeck = 1;
if (row.children) { if (row.children) {
row.children.map((j) => { console.log(row.children.filter((item) => item.isForbidden));
row.children
.filter((item) => item.isForbidden)
.map((j) => {
j.tickTime = transformTimestampnow();
j.edit = false;
console.log(j.type);
toggleSelection(j, true); toggleSelection(j, true);
}); });
} }
//取消 //取消
} else { } else {
if (row.children) { if (row.children) {
row.children.map((p) => { row.children.map((p) => {
p.ischeck = 2; p.ischeck = 2;
p.isClass = false; p.isClass = false;
toggleSelection(p, false); toggleSelection(p, false);
}); });
} else { } else {
...@@ -517,10 +583,7 @@ export default { ...@@ -517,10 +583,7 @@ export default {
}; };
// 控制选框是否被选中 // 控制选框是否被选中
const toggleSelection = (row, select) => { const toggleSelection = (row, select) => {
console.log(row, select);
if (row) { if (row) {
// console.log("row-亮", row);
nextTick(() => { nextTick(() => {
multipleTable.value && multipleTable.value.toggleRowSelection(row, select); multipleTable.value && multipleTable.value.toggleRowSelection(row, select);
}); });
...@@ -548,7 +611,9 @@ export default { ...@@ -548,7 +611,9 @@ export default {
if (isSelect) { if (isSelect) {
selection.map((el) => { selection.map((el) => {
if (el.children) { if (el.children) {
el.children.map((j) => { el.children
.filter((item) => item.isForbidden)
.map((j) => {
toggleSelection(j, true); toggleSelection(j, true);
}); });
} }
...@@ -567,7 +632,26 @@ export default { ...@@ -567,7 +632,26 @@ export default {
//当选择项发生变化时会触发该事件 //当选择项发生变化时会触发该事件
const SelectionChange = (val) => { const SelectionChange = (val) => {
state.multipleSelection = val; // state.multipleSelection = val;
if (state.radio == 1) {
state.multipleSelection = val.filter((item) => !item.children);
} else {
state.multipleSelection1 = val.filter((item) => !item.children);
}
if (state.multipleSelection.length) {
state.multipleSelection
.filter((item) => item.type != 1)
.map((item, index) => {
index == 0 ? (item.isedit = true) : (item.isedit = false);
});
}
if (state.multipleSelection1.length) {
state.multipleSelection1
.filter((item) => item.type != 1)
.map((item, index) => {
index == 0 ? (item.isedit = true) : (item.isedit = false);
});
}
}; };
//获取左侧时间线数据 //获取左侧时间线数据
...@@ -589,68 +673,149 @@ export default { ...@@ -589,68 +673,149 @@ export default {
} }
}) })
.catch((error) => { .catch((error) => {
console.log(error);
});
};
//获取标识
const getIsRoute = () => {
http.post(`/ClinicalRoute/ClinicalRoute/IsRoute?pid=${route.value.query.pid}`, {})
.then((data) => {
console.log(data);
if (data) {
router.push({ router.push({
path: "Entrypath", path: "Entrypath",
query: { query: {
pid: route.value.query.pid, pid: route.value.query.pid,
}, },
}); });
}); }
})
.catch((error) => {});
}; };
//单选 const getTableData = () => {
const radiochange = () => {
http.post( http.post(
`/ClinicalRoute/ClinicalRoute/GetGetRouteAdvicesRight?pid=${route.value.query.pid}&case_routeid=${state.case_routeid}&searchQuery=${state.inhosdays}`, `/ClinicalRoute/ClinicalRoute/GetGetRouteAdvicesRight?pid=${route.value.query.pid}&case_routeid=${state.case_routeid}&searchQuery=${state.inhosdays}`,
{} {}
) )
.then((data) => { .then((data) => {
state.newtable1 = data.route1;
state.newtable2 = data.route2;
if (state.radio == 1) { if (state.radio == 1) {
state.tableData = data.route1; state.tableData = data.route1;
state.tableData.map((el) => { // state.tableData.map((el) => {
// console.log(" el",el); // if (el.children) {
if (el.children) { // for (let i = 0; i < el.children.length; i++) {
for (let i = 0; i < el.children.length; i++) { // if (el.children[i].ischeck == 1) {
if (el.children[i].ischeck == 1) { // toggleSelection(el.children[i], true);
toggleSelection(el.children[i], true); // toggleSelection(el, true);
toggleSelection(el, true); // }
} // }
} // }
} // });
}); // state.newtable1 = state.tableData;
state.newtable1 = state.tableData;
} else if (state.radio == 2) { } else if (state.radio == 2) {
state.tableData = data.route2; state.tableData = data.route2;
state.tableData.map((el) => { // state.tableData.map((el) => {
// console.log(" el",el); // if (el.children) {
if (el.children) { // for (let i = 0; i < el.children.length; i++) {
for (let i = 0; i < el.children.length; i++) { // if (el.children[i].ischeck == 1) {
if (el.children[i].ischeck == 1) { // toggleSelection(el.children[i], true);
toggleSelection(el.children[i], true); // toggleSelection(el, true);
toggleSelection(el, true); // }
// }
// }
// });
// state.newtable2 = state.tableData;
} }
})
.catch((error) => {
console.log(error);
});
};
//单选
const radiochange = (e) => {
if (numberValidateForm.value || numberValidateForm1.value) {
numberValidateForm.value.validate((valid) => {
if (valid) {
numberValidateForm1.value.validate((valid) => {
if (valid) {
state.radio = e;
if (state.radio == 1) {
state.tableData = state.newtable1;
state.multipleSelection.map((j) => {
toggleSelection(j, true);
});
} else {
state.tableData = state.newtable2;
state.multipleSelection1.map((p) => {
toggleSelection(p, true);
});
} }
} else {
console.log("error submit!!");
return false;
} }
}); });
state.newtable2 = state.tableData; } else {
console.log("error submit!!");
return false;
}
});
} else {
state.radio = e;
if (state.radio == 1) {
state.tableData = state.newtable1;
state.multipleSelection.map((j) => {
toggleSelection(j, true);
});
} else {
state.tableData = state.newtable2;
state.multipleSelection1.map((p) => {
toggleSelection(p, true);
});
}
} }
})
.catch((error) => {});
}; };
//点击左侧时间线 获取右侧表格数据 //点击左侧时间线 获取右侧表格数据
const timeclick = (val) => { const timeclick = (val) => {
state.timeindex = val.inhosdays; state.timeindex = val.inhosdays;
state.case_routeid = val.case_routeid; state.case_routeid = val.case_routeid;
state.inhosdays = val.inhosdays; state.inhosdays = val.inhosdays;
radiochange(); getTableData();
}; };
//保存医嘱 //保存医嘱
const joinorder = () => { const joinorder = () => {
state.objtable.route1 = state.newtable1; if (state.multipleSelection.length || state.multipleSelection1.length) {
state.objtable.route2 = state.newtable2; if (numberValidateForm.value || numberValidateForm1.value) {
numberValidateForm.value.validate((valid) => {
if (valid) {
numberValidateForm1.value.validate((valid) => {
if (valid) {
saveSetPatientRoutes();
} else {
console.log("error submit!!");
return false;
}
});
} else {
console.log("error submit!!");
return false;
}
});
} else {
saveSetPatientRoutes();
}
}
};
const saveSetPatientRoutes = () => {
state.objtable.route1 = state.multipleSelection;
state.objtable.route2 = state.multipleSelection1;
http.post(`/ClinicalRoute/ClinicalRoute/SetPatientRoutes?pid=${route.value.query.pid}`, state.objtable) http.post(`/ClinicalRoute/ClinicalRoute/SetPatientRoutes?pid=${route.value.query.pid}`, state.objtable)
.then((data) => { .then(async (data) => {
// console.log("data.hisUrl", data.hisUrl); // console.log("data.hisUrl", data.hisUrl);
state.hisUrl = data.hisUrl.split("api/")[2]; state.hisUrl = data.hisUrl.split("api/")[2];
console.log(state.hisUrl);
// console.log("state.hisUrl", state.hisUrl); // console.log("state.hisUrl", state.hisUrl);
//临时西药 //临时西药
state.tempMedicalDrug = data.tempMedicalDrug; state.tempMedicalDrug = data.tempMedicalDrug;
...@@ -660,103 +825,105 @@ export default { ...@@ -660,103 +825,105 @@ export default {
state.tempMedicalCheckout = data.tempMedicalCheckout; state.tempMedicalCheckout = data.tempMedicalCheckout;
//长期西药 //长期西药
state.longMedical = data.longMedical; state.longMedical = data.longMedical;
await posttempMedicalDrug();
await posttempMedicalcheck();
await posttempMedicalCheckout();
await postlongMedical();
})
.catch((error) => {});
};
// 调用his接口 临时西药 // 调用his接口 临时西药
http.post(`/${state.hisUrl}`, { const posttempMedicalDrug = () => {
http.postFn(`/${state.hisUrl}`, {
method: "tempMedical", method: "tempMedical",
type: 1, type: 1,
data: state.tempMedicalDrug, data: state.tempMedicalDrug,
}) })
.then((data) => { .then((res) => {
//重新获取左侧时间线数据 //重新获取左侧时间线数据
getlefttime(); getlefttime();
if (res.code == "0") {
Message({ Message({
message: data.message, message: res.msg,
type: "success", type: "success",
}); });
console.log("临时西药"); } else {
if (data.code == "0") {
Message({
message: `临时西药${data.msg}`,
type: "success",
});
} else if (data.code == "1") {
Message({ Message({
message: `临时西药失败`, message: res.msg,
type: "error", type: "error",
}); });
} }
}) })
.catch((error) => {}); .catch((error) => {
console.log(error);
});
};
// 调用his接口 临时检查 // 调用his接口 临时检查
http.post(`/${state.hisUrl}`, { const posttempMedicalcheck = () => {
http.postFn(`/${state.hisUrl}`, {
method: "tempMedical", method: "tempMedical",
type: 3, type: 3,
data: state.tempMedicalcheck, data: state.tempMedicalcheck,
}) })
.then((data) => { .then((res) => {
console.log("临时检查"); if (res.code == "0") {
if (data.code == "0") {
Message({ Message({
message: `临时${data.msg}`, message: res.msg,
type: "success", type: "success",
}); });
} else if (data.code == "1") { } else {
Message({ Message({
message: `临时检查失败`, message: res.msg,
type: "error", type: "error",
}); });
} }
}) })
.catch((error) => {}); .catch((error) => {});
};
// 调用his接口 临时检验 // 调用his接口 临时检验
http.post(`/${state.hisUrl}`, { const posttempMedicalCheckout = () => {
http.postFn(`/${state.hisUrl}`, {
method: "tempMedical", method: "tempMedical",
type: 4, type: 4,
data: state.tempMedicalCheckout, data: state.tempMedicalCheckout,
}) })
.then((data) => { .then((res) => {
console.log("临时检验"); if (res.code == "0") {
if (data.code == "0") {
Message({ Message({
message: `临时${data.msg}`, message: res.msg,
type: "success", type: "success",
}); });
} else if (data.code == "1") { } else {
Message({ Message({
message: `临时检验失败`, message: res.msg,
type: "error", type: "error",
}); });
} }
}) })
.catch((error) => {}); .catch((error) => {});
};
// 调用his接口 长期西药 // 调用his接口 长期西药
http.post(`/${state.hisUrl}`, { const postlongMedical = () => {
http.postFn(`/${state.hisUrl}`, {
method: "longMedical", method: "longMedical",
type: 1, type: 1,
data: state.longMedical, data: state.longMedical,
}) })
.then((data) => { .then((res) => {
console.log("长期西药"); if (res.code == "0") {
if (data.code == "0") {
Message({ Message({
message: `长期西药${data.msg}`, message: res.msg,
type: "success", type: "success",
}); });
} else if (data.code == "1") { } else {
Message({ Message({
message: `长期西药失败`, message: res.msg,
type: "error", type: "error",
}); });
} }
}) })
.catch((error) => {}); .catch((error) => {});
})
.catch((error) => {});
}; };
//获取病情变异--变异原因下拉框 //获取病情变异--变异原因下拉框
const getreasonoptions = () => { const getreasonoptions = () => {
...@@ -819,6 +986,7 @@ export default { ...@@ -819,6 +986,7 @@ export default {
}; };
onMounted(() => { onMounted(() => {
getIsRoute();
gettopdata(); gettopdata();
getlefttime(); getlefttime();
gemedicUseModeoptions(); gemedicUseModeoptions();
...@@ -828,9 +996,7 @@ export default { ...@@ -828,9 +996,7 @@ export default {
return { return {
...toRefs(state), ...toRefs(state),
decimal, decimal,
monthlyPlanTable, monthlyPlanTable,
multipleTable, multipleTable,
SelectionChange, SelectionChange,
...@@ -844,6 +1010,8 @@ export default { ...@@ -844,6 +1010,8 @@ export default {
variation, variation,
fromOKbtn, fromOKbtn,
fromRef, fromRef,
numberValidateForm,
numberValidateForm1,
close, close,
joinorder, joinorder,
getreasonoptions, getreasonoptions,
...@@ -871,6 +1039,7 @@ export default { ...@@ -871,6 +1039,7 @@ export default {
//选中当前行样式 //选中当前行样式
::v-deep .rowStyleclass { ::v-deep .rowStyleclass {
font-weight: 700; font-weight: 700;
background-color: #f5f7fa;
} }
//时间线样式 //时间线样式
::v-deep .el-timeline-item__tail { ::v-deep .el-timeline-item__tail {
...@@ -1123,5 +1292,8 @@ export default { ...@@ -1123,5 +1292,8 @@ export default {
} }
} }
} }
/* .el-form-item {
margin: 0;
} */
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment