Commit b42671fb by tangyufeng

1.智能分组, 其他文字修改

parent 5b537046
......@@ -10,6 +10,7 @@
"dependencies": {
"@vue/composition-api": "^1.6.2",
"core-js": "^3.6.5",
"dayjs": "^1.11.7",
"element-ui": "^2.15.6",
"jquery": "^3.6.0",
"js-cookie": "^3.0.1",
......@@ -5100,6 +5101,11 @@
"node": ">=0.10"
}
},
"node_modules/dayjs": {
"version": "1.11.7",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz",
"integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"node_modules/de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
......@@ -19378,6 +19384,11 @@
"assert-plus": "^1.0.0"
}
},
"dayjs": {
"version": "1.11.7",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz",
"integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
......@@ -10,6 +10,7 @@
"dependencies": {
"@vue/composition-api": "^1.6.2",
"core-js": "^3.6.5",
"dayjs": "^1.11.7",
"element-ui": "^2.15.6",
"jquery": "^3.6.0",
"js-cookie": "^3.0.1",
......
......@@ -3,32 +3,33 @@
* @Date: 2022-06-07 00:31:25
* @LastEditors: wsq
* @LastEditTime: 2023-01-06 17:16:34
* @Description:
* @Description:
*/
import Vue from 'vue'
import App from './App.vue'
import store from './store'
import router from '@/router/index'
import Vue from "vue";
import App from "./App.vue";
import store from "./store";
import router from "@/router/index";
Vue.config.productionTip = false;
import http from '@/utils/http.js'
import http from "@/utils/http.js";
Vue.prototype.$http = http;
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
Vue.use(ElementUI);
import VueCompositionApi from '@vue/composition-api'
Vue.use(VueCompositionApi)
import VueCompositionApi from "@vue/composition-api";
Vue.use(VueCompositionApi);
//引入 dayjs
import dayjs from "dayjs";
import "dayjs/locale/zh-cn";
dayjs.locale("zh-cn");
new Vue({
store,
router,
render: h => h(App),
}).$mount('#app')
\ No newline at end of file
render: (h) => h(App),
}).$mount("#app");
......@@ -9,66 +9,48 @@
* @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ"
* @returns 返回拼接后的时间字符串
*/
import dayjs from "dayjs";
export function formatDate(date, format) {
const we = date.getDay() // 星期
const z = getWeek(date) // 周
const qut = Math.floor((date.getMonth() + 3) / 3).toString() // 季度
const opt = {
'Y+': date.getFullYear().toString(), // 年
'm+': (date.getMonth() + 1).toString(), // 月(月份从0开始,要+1)
'd+': date.getDate().toString(), // 日
'H+': date.getHours().toString(), // 时
'M+': date.getMinutes().toString(), // 分
'S+': date.getSeconds().toString(), // 秒
'q+': qut, // 季度
}
// 中文数字 (星期)
const week = {
0: '日',
1: '一',
2: '二',
3: '三',
4: '四',
5: '五',
6: '六',
}
// 中文数字(季度)
const quarter = {
1: '一',
2: '二',
3: '三',
4: '四',
}
if (/(W+)/.test(format)) {
format = format.replace(
RegExp.$1,
RegExp.$1.length > 1
? RegExp.$1.length > 2
? '星期' + week[we]
: '周' + week[we]
: week[we],
)
}
if (/(Q+)/.test(format))
format = format.replace(
RegExp.$1,
RegExp.$1.length == 4 ? '第' + quarter[qut] + '季度' : quarter[qut],
)
if (/(Z+)/.test(format))
format = format.replace(
RegExp.$1,
RegExp.$1.length == 3 ? '第' + z + '周' : z + '',
)
for (const k in opt) {
const r = new RegExp('(' + k + ')').exec(format)
// 若输入的长度不为1,则前面补零
if (r)
format = format.replace(
r[1],
RegExp.$1.length == 1 ? opt[k] : opt[k].padStart(RegExp.$1.length, '0'),
)
}
return format
const we = date.getDay(); // 星期
const z = getWeek(date); // 周
const qut = Math.floor((date.getMonth() + 3) / 3).toString(); // 季度
const opt = {
"Y+": date.getFullYear().toString(), // 年
"m+": (date.getMonth() + 1).toString(), // 月(月份从0开始,要+1)
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"M+": date.getMinutes().toString(), // 分
"S+": date.getSeconds().toString(), // 秒
"q+": qut, // 季度
};
// 中文数字 (星期)
const week = {
0: "日",
1: "一",
2: "二",
3: "三",
4: "四",
5: "五",
6: "六",
};
// 中文数字(季度)
const quarter = {
1: "一",
2: "二",
3: "三",
4: "四",
};
if (/(W+)/.test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length > 1 ? (RegExp.$1.length > 2 ? "星期" + week[we] : "周" + week[we]) : week[we]);
}
if (/(Q+)/.test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 4 ? "第" + quarter[qut] + "季度" : quarter[qut]);
if (/(Z+)/.test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 3 ? "第" + z + "周" : z + "");
for (const k in opt) {
const r = new RegExp("(" + k + ")").exec(format);
// 若输入的长度不为1,则前面补零
if (r) format = format.replace(r[1], RegExp.$1.length == 1 ? opt[k] : opt[k].padStart(RegExp.$1.length, "0"));
}
return format;
}
/**
......@@ -77,19 +59,19 @@ export function formatDate(date, format) {
* @returns 返回第几周数字值
*/
export function getWeek(dateTime) {
const temptTime = new Date(dateTime.getTime())
// 周几
const weekday = temptTime.getDay() || 7
// 周1+5天=周六
temptTime.setDate(temptTime.getDate() - weekday + 1 + 5)
let firstDay = new Date(temptTime.getFullYear(), 0, 1)
const dayOfWeek = firstDay.getDay()
let spendDay = 1
if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1
firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay)
const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000)
const result = Math.ceil(d / 7)
return result
const temptTime = new Date(dateTime.getTime());
// 周几
const weekday = temptTime.getDay() || 7;
// 周1+5天=周六
temptTime.setDate(temptTime.getDate() - weekday + 1 + 5);
let firstDay = new Date(temptTime.getFullYear(), 0, 1);
const dayOfWeek = firstDay.getDay();
let spendDay = 1;
if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1;
firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay);
const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000);
const result = Math.ceil(d / 7);
return result;
}
/**
......@@ -104,40 +86,38 @@ export function getWeek(dateTime) {
* @returns 返回拼接后的时间字符串
*/
export function formatPast(param, format) {
// 传入格式处理、存储转换值
let t, s
// 获取js 时间戳
let time = new Date().getTime()
// 是否是对象
typeof param === 'string' || 'object'
? (t = new Date(param).getTime())
: (t = param)
// 当前时间戳 - 传入时间戳
time = Number.parseInt(`${time - t}`)
if (time < 10000) {
// 10秒内
return '刚刚'
} else if (time < 60000 && time >= 10000) {
// 超过10秒少于1分钟内
s = Math.floor(time / 1000)
return `${s}秒前`
} else if (time < 3600000 && time >= 60000) {
// 超过1分钟少于1小时
s = Math.floor(time / 60000)
return `${s}分钟前`
} else if (time < 86400000 && time >= 3600000) {
// 超过1小时少于24小时
s = Math.floor(time / 3600000)
return `${s}小时前`
} else if (time < 259200000 && time >= 86400000) {
// 超过1天少于3天内
s = Math.floor(time / 86400000)
return `${s}天前`
} else {
// 超过3天
const date = typeof param === 'string' || 'object' ? new Date(param) : param
return formatDate(date, format)
}
// 传入格式处理、存储转换值
let t, s;
// 获取js 时间戳
let time = new Date().getTime();
// 是否是对象
typeof param === "string" || "object" ? (t = new Date(param).getTime()) : (t = param);
// 当前时间戳 - 传入时间戳
time = Number.parseInt(`${time - t}`);
if (time < 10000) {
// 10秒内
return "刚刚";
} else if (time < 60000 && time >= 10000) {
// 超过10秒少于1分钟内
s = Math.floor(time / 1000);
return `${s}秒前`;
} else if (time < 3600000 && time >= 60000) {
// 超过1分钟少于1小时
s = Math.floor(time / 60000);
return `${s}分钟前`;
} else if (time < 86400000 && time >= 3600000) {
// 超过1小时少于24小时
s = Math.floor(time / 3600000);
return `${s}小时前`;
} else if (time < 259200000 && time >= 86400000) {
// 超过1天少于3天内
s = Math.floor(time / 86400000);
return `${s}天前`;
} else {
// 超过3天
const date = typeof param === "string" || "object" ? new Date(param) : param;
return formatDate(date, format);
}
}
/**
......@@ -147,58 +127,53 @@ export function formatPast(param, format) {
* @returns 返回拼接后的时间字符串
*/
export function formatAxis(param) {
const hour = new Date(param).getHours()
if (hour < 6) return '凌晨好'
else if (hour < 9) return '早上好'
else if (hour < 12) return '上午好'
else if (hour < 14) return '中午好'
else if (hour < 17) return '下午好'
else if (hour < 19) return '傍晚好'
else if (hour < 22) return '晚上好'
else return '夜里好'
const hour = new Date(param).getHours();
if (hour < 6) return "凌晨好";
else if (hour < 9) return "早上好";
else if (hour < 12) return "上午好";
else if (hour < 14) return "中午好";
else if (hour < 17) return "下午好";
else if (hour < 19) return "傍晚好";
else if (hour < 22) return "晚上好";
else return "夜里好";
}
export function transformTimestamp(timestamp) {
const date = new Date(timestamp)
const Y = date.getFullYear()
const M =
date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
const D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
const h =
(date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
const m =
(date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
const s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // 秒
const dateString = `${Y}-${M}-${D} ${h}${m}${s}`
return dateString
const date = new Date(timestamp);
const Y = date.getFullYear();
const M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
const D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
const h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
const m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
const s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); // 秒
const dateString = `${Y}-${M}-${D} ${h}${m}${s}`;
return dateString;
}
//获取实时时间
export function transformTimestampnow() {
const date = new Date()
const Y = date.getFullYear()
const M =
date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
const D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
const h =
(date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
const m =
(date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
const s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // 秒
const dateString = `${Y}-${M}-${D} ${h}${m}${s}`
return dateString
// const date = new Date();
// const Y = date.getFullYear()
// const M =
// date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
// const D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
// const h =
// (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
// const m =
// (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
// const s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // 秒
// const dateString = `${Y}-${M}-${D} ${h}${m}${s}`
const dateString = dayjs().format("YYYY-MM-DD HH:mm:ss");
return dateString;
}
export function transformTimestamps(timestamp) {
const date = new Date(timestamp)
const Y = date.getFullYear()
const M =
date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
const D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
const h =
(date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
const m =
(date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
const s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() // 秒
const dateString = `${Y}-${M}-${D}`
return dateString
const date = new Date(timestamp);
const Y = date.getFullYear();
const M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
const D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
const h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
const m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
const s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); // 秒
const dateString = `${Y}-${M}-${D}`;
return dateString;
}
......@@ -62,7 +62,7 @@
<div class="outsetgrouping_top2_message_right">
<span class="outsetgrouping_top2_message_right_tu6"><img src="../assets/img/jiner.png" alt="" /></span>
<div class="outsetgrouping_top2_message_right_t3">
预计DRG支付费用:<span>{{ casehisObj ? casehisObj.drgs.actualfee : "" }}</span>
预计DIP支付费用:<span>{{ casehisObj ? casehisObj.drgs.actualfee : "" }}</span>
</div>
</div>
</div>
......@@ -103,11 +103,11 @@
<span>入组编码:{{ item.code }}</span>
<span>入组名称:{{ item.coreName }}</span>
<span>病种分值:{{ item.score }}</span>
<span>预计DRG支付费用:{{ item.unitfee }}</span>
<span>预计DIP支付费用:{{ item.unitfee }}</span>
</div>
<!-- <div class="outsetgrouping_centent_totalnum_left_text_msg2_text5">
<span>预计DRG支付费用:{{ item.unitfee }}</span
<span>预计DIP支付费用:{{ item.unitfee }}</span
><span>院内历年平均费用:{{ item.avgFee }}</span
><span>院内历年平均住院天数:{{ item.avgInHosDay }}</span>
</div> -->
......@@ -275,7 +275,7 @@
</div>
<div class="outaddrecordEnrollment_centent_totalnum_left_text3">
<span>预计DRG支付费用:{{ item.unitfee }}</span
<span>预计DIP支付费用:{{ item.unitfee }}</span
><span>院内历年平均费用:{{ item.avgFee }}</span
><span>院内历年平均住院天数:{{ item.avgInHosDay }}</span>
</div>
......
<template>
<el-dialog center :visible.sync="addrecordEnrollmentShow" :fullscreen="true">
<!-- 病案入组 -->
<div class="outaddrecordEnrollment" id="outaddrecordEnrollment">
<div class="outaddrecordEnrollment_search">
<div class="outaddrecordEnrollment_search_message">
<div class="outaddrecordEnrollment_search_message_left">
<div class="outaddrecordEnrollment_search_message_left_t1">
<span class="iconfont icon-tingzhenqi"> </span
><span class="outaddrecordEnrollment_search_message_lef_t1_span2">主诊断名称或诊断编码:</span>
</div>
<el-autocomplete
class="outaddrecordEnrollment_search_message_left_t2"
v-model.trim="outaddsearchForm.diagName"
:trigger-on-focus="true"
placeholder="请输入预计DIP支付费用"
clearable
:fetch-suggestions="addquerySearchGroup"
select-when-unmatched="true"
@clear="addclear"
@select="addsearch"
>
</el-autocomplete>
</div>
<div class="outaddrecordEnrollment_search_message_centert">
<div class="outaddrecordEnrollment_search_message_centert_t1">
<span class="iconfont icon-jiandaosvg"> </span
><span class="outaddrecordEnrollment_search_message_centert_t1_span2">主手术名称或操作编码:</span>
</div>
<el-autocomplete
class="outaddrecordEnrollment_search_message_centert_t2"
v-model.trim="outaddsearchForm.opsName"
clearable
:trigger-on-focus="true"
placeholder="请输入主手术名称或操作编码"
select-when-unmatched="true"
:fetch-suggestions="addquerySearchGroup2"
@select="addsearch"
>
</el-autocomplete>
</div>
<div class="outaddrecordEnrollment_search_message_right" @click="addsearch">
<span class="iconfont icon-sousuo_o"></span>
<span class="outaddrecordEnrollment_search_message_right_span2">查询</span>
</div>
</div>
</div>
<div class="outaddrecordEnrollment_centent">
<div class="outaddrecordEnrollment_centent_totalnum" v-for="(item, index) in addCorePercents" :key="index">
<div class="outaddrecordEnrollment_centent_totalnum_left">
<div class="outaddrecordEnrollment_centent_totalnum_left_text1">
<span>分组编码:{{ item.code }}</span>
<span>入组名称:{{ item.coreName }}</span>
<span>基准点数:{{ item.score }}</span>
</div>
<div class="outaddrecordEnrollment_centent_totalnum_left_text3">
<span>预计DRG支付费用:{{ item.unitfee }}</span
><span>院内历年平均费用:{{ item.avgFee }}</span
><span>院内历年平均住院天数:{{ item.avgInHosDay }}</span>
</div>
</div>
<div class="outaddrecordEnrollment_centent_totalnum_right">
<div :id="`indexChart11` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar1"></div>
<div :id="`indexChart11two` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar2"></div>
<div :id="`indexChart11tree` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar3"></div>
<div :id="`indexChart11fore` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar4"></div>
<div :id="`indexChart11file` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar5"></div>
</div>
</div>
<!-- 如果没有数据时的样式 -->
<div v-show="addnodataShow" class="outaddrecordEnrollment_centent_nodata">
<div class="outaddrecordEnrollment_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" />
</div>
<div class="outaddrecordEnrollment_centent_nodata_text">请输入要搜索的内容</div>
</div>
<div v-show="addnolistShow" class="outaddrecordEnrollment_centent_nodata">
<div class="outaddrecordEnrollment_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" />
</div>
<div class="outaddrecordEnrollment_centent_nodata_text">暂无数据</div>
</div>
</div>
<el-dialog center :visible.sync="addrecordEnrollmentShow" :fullscreen="true">
<!-- 病案入组 -->
<div class="outaddrecordEnrollment" id="outaddrecordEnrollment">
<div class="outaddrecordEnrollment_search">
<div class="outaddrecordEnrollment_search_message">
<div class="outaddrecordEnrollment_search_message_left">
<div class="outaddrecordEnrollment_search_message_left_t1">
<span class="iconfont icon-tingzhenqi"> </span
><span class="outaddrecordEnrollment_search_message_lef_t1_span2">主诊断名称或诊断编码:</span>
</div>
<el-autocomplete
class="outaddrecordEnrollment_search_message_left_t2"
v-model.trim="outaddsearchForm.diagName"
:trigger-on-focus="true"
placeholder="请输入预计DIP支付费用"
clearable
:fetch-suggestions="addquerySearchGroup"
select-when-unmatched="true"
@clear="addclear"
@select="addsearch"
>
</el-autocomplete>
</div>
<div class="outaddrecordEnrollment_search_message_centert">
<div class="outaddrecordEnrollment_search_message_centert_t1">
<span class="iconfont icon-jiandaosvg"> </span
><span class="outaddrecordEnrollment_search_message_centert_t1_span2">主手术名称或操作编码:</span>
</div>
<el-autocomplete
class="outaddrecordEnrollment_search_message_centert_t2"
v-model.trim="outaddsearchForm.opsName"
clearable
:trigger-on-focus="true"
placeholder="请输入主手术名称或操作编码"
select-when-unmatched="true"
:fetch-suggestions="addquerySearchGroup2"
@select="addsearch"
>
</el-autocomplete>
</div>
<div class="outaddrecordEnrollment_search_message_right" @click="addsearch">
<span class="iconfont icon-sousuo_o"></span>
<span class="outaddrecordEnrollment_search_message_right_span2">查询</span>
</div>
</div>
</div>
<div class="outaddrecordEnrollment_centent">
<div class="outaddrecordEnrollment_centent_totalnum" v-for="(item, index) in addCorePercents" :key="index">
<div class="outaddrecordEnrollment_centent_totalnum_left">
<div class="outaddrecordEnrollment_centent_totalnum_left_text1">
<span>分组编码:{{ item.code }}</span>
<span>入组名称:{{ item.coreName }}</span>
<span>基准点数:{{ item.score }}</span>
</div>
<div class="outaddrecordEnrollment_pagination">
</div>
</div>
</el-dialog>
<div class="outaddrecordEnrollment_centent_totalnum_left_text3">
<span>预计DIP支付费用:{{ item.unitfee }}</span
><span>院内历年平均费用:{{ item.avgFee }}</span
><span>院内历年平均住院天数:{{ item.avgInHosDay }}</span>
</div>
</div>
<div class="outaddrecordEnrollment_centent_totalnum_right">
<div :id="`indexChart11` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar1"></div>
<div :id="`indexChart11two` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar2"></div>
<div :id="`indexChart11tree` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar3"></div>
<div :id="`indexChart11fore` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar4"></div>
<div :id="`indexChart11file` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar5"></div>
</div>
</div>
<!-- 如果没有数据时的样式 -->
<div v-show="addnodataShow" class="outaddrecordEnrollment_centent_nodata">
<div class="outaddrecordEnrollment_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" />
</div>
<div class="outaddrecordEnrollment_centent_nodata_text">请输入要搜索的内容</div>
</div>
<div v-show="addnolistShow" class="outaddrecordEnrollment_centent_nodata">
<div class="outaddrecordEnrollment_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" />
</div>
<div class="outaddrecordEnrollment_centent_nodata_text">暂无数据</div>
</div>
</div>
<div class="outaddrecordEnrollment_pagination"></div>
</div>
</el-dialog>
</template>
<script lang="ts">
import { getItem, setItem, clear } from "../utils/auth";
import http from "../utils/http";
import { reactive, toRefs, onMounted, nextTick, computed } from "@vue/composition-api";
import { getItem, setItem, clear } from '../utils/auth';
import http from '../utils/http';
import {
reactive,
toRefs,
onMounted,
nextTick,
computed,
} from "@vue/composition-api";
import { decimal } from '../utils/decimal';
import { initEcharts, categoryChart11 } from '../utils/echarts'
import { decimal } from "../utils/decimal";
import { initEcharts, categoryChart11 } from "../utils/echarts";
export default {
props: {
dialogVisible: Boolean, //弹出层是否显示
},
setup() {
const state = reactive({
outaddsearchForm: {
diagName: "",
opsName: "",
},
addCorePercents: [],
addnodataShow: true, //没有搜索时显示
addnolistShow: false, //没有搜索数据的时候显示
addgroupList: [], //主诊断
addgroupArr: [],
addgroupList2: [], //主手术
addgroupArr2: [],
});
props: {
dialogVisible: Boolean, //弹出层是否显示
},
setup() {
const state = reactive({
outaddsearchForm: {
diagName: '',
opsName: '',
},
addCorePercents: [],
addnodataShow: true, //没有搜索时显示
addnolistShow: false, //没有搜索数据的时候显示
addgroupList: [], //主诊断
addgroupArr: [],
addgroupList2: [], //主手术
addgroupArr2: [],
});
//获取主诊断模糊数据
function addgroupListMe() {
http
.post(`/medical/get/GetDiagOpss?diagName=${state.outaddsearchForm.diagName}&type=${1}`, {})
.then((data) => {
state.addgroupList = data;
for (let item of state.addgroupList) {
state.addgroupArr.push({
value: item.name,
});
}
})
.catch((error) => {});
}
function addquerySearchGroup(queryString, cb) {
if(state.outaddsearchForm.diagName.length>0){
addgroupListMe();
}
state.addgroupArr=[];
cb(state.addgroupArr);
}
//清空输入框的值时触发
const addclear=()=>{
state.addCorePercents=[]
state.addnodataShow=true
}
//获取主手术模糊数据
function addgroupListMe2() {
http
.post(`/medical/get/GetDiagOpss?diagName=${state.outaddsearchForm.opsName}&type=${2}`, {})
.then((data) => {
state.addgroupList2 = data;
for (let item of state.addgroupList2) {
state.addgroupArr2.push({
value: item.name,
});
}
})
.catch((error) => {});
}
function addquerySearchGroup2(queryString, cb) {
if(state.outaddsearchForm.opsName.length>0){
addgroupListMe2();
}
state.addgroupArr2=[];
cb(state.addgroupArr2);
}
//获取主诊断模糊数据
function addgroupListMe() {
http.post(`/medical/get/GetDiagOpss?diagName=${state.outaddsearchForm.diagName}&type=${1}`, {})
.then((data) => {
state.addgroupList = data;
for (let item of state.addgroupList) {
state.addgroupArr.push({
value: item.name,
});
}
})
.catch((error) => {});
}
function addquerySearchGroup(queryString, cb) {
if (state.outaddsearchForm.diagName.length > 0) {
addgroupListMe();
}
state.addgroupArr = [];
cb(state.addgroupArr);
}
//清空输入框的值时触发
const addclear = () => {
state.addCorePercents = [];
state.addnodataShow = true;
};
//获取列表数据
const addgetlist = () => {
//获取主手术模糊数据
function addgroupListMe2() {
http.post(`/medical/get/GetDiagOpss?diagName=${state.outaddsearchForm.opsName}&type=${2}`, {})
.then((data) => {
state.addgroupList2 = data;
for (let item of state.addgroupList2) {
state.addgroupArr2.push({
value: item.name,
});
}
})
.catch((error) => {});
}
function addquerySearchGroup2(queryString, cb) {
if (state.outaddsearchForm.opsName.length > 0) {
addgroupListMe2();
}
state.addgroupArr2 = [];
cb(state.addgroupArr2);
}
http
.post(`/medical/get/GetaddCorePercents`,
{
//获取列表数据
const addgetlist = () => {
http.post(`/medical/get/GetaddCorePercents`, {
// PageNumber:state.currentPage,
diagName:state.outaddsearchForm.diagName,
opsName:state.outaddsearchForm.opsName,
diagName: state.outaddsearchForm.diagName,
opsName: state.outaddsearchForm.opsName,
// pageSize:state.pageSize,
})
.then((data) => {
state.addCorePercents = data.list;
if (state.addCorePercents.length == 0) {
state.addnolistShow = true;
state.addnodataShow = false;
}
// state.totalCount = data.totalCount;
for (var i = 0; i < state.addCorePercents.length; i++) {
initEcharts(categoryChart11("药占比",state.addCorePercents[i].drugPercent,'#2CABE3'), `indexChart11${i}`);
initEcharts(categoryChart11("耗材占比",state.addCorePercents[i].materialsPercent,'#71D875'), `indexChart11two${i}`);
initEcharts(categoryChart11("检查占比",state.addCorePercents[i].inspectPercent,'#F35E77'), `indexChart11tree${i}`);
initEcharts(categoryChart11("检验占比",state.addCorePercents[i].testPercent,'#FFB321'), `indexChart11fore${i}`);
initEcharts(categoryChart11("其他",state.addCorePercents[i].otherPercent,'#C05EF3'), `indexChart11file${i}`);
}
})
.catch((error) => {
});
};
//查询
const addsearch = () => {
state.addCorePercents = [];
addgetlist();
if (state.outaddsearchForm.diagName) {
state.addnodataShow = false;
state.addnolistShow = false;
} else {
state.addnodataShow = true;
state.addnolistShow = false;
}
};
})
.then((data) => {
state.addCorePercents = data.list;
if (state.addCorePercents.length == 0) {
state.addnolistShow = true;
state.addnodataShow = false;
}
// state.totalCount = data.totalCount;
for (var i = 0; i < state.addCorePercents.length; i++) {
initEcharts(categoryChart11("药占比", state.addCorePercents[i].drugPercent, "#2CABE3"), `indexChart11${i}`);
initEcharts(categoryChart11("耗材占比", state.addCorePercents[i].materialsPercent, "#71D875"), `indexChart11two${i}`);
initEcharts(categoryChart11("检查占比", state.addCorePercents[i].inspectPercent, "#F35E77"), `indexChart11tree${i}`);
initEcharts(categoryChart11("检验占比", state.addCorePercents[i].testPercent, "#FFB321"), `indexChart11fore${i}`);
initEcharts(categoryChart11("其他", state.addCorePercents[i].otherPercent, "#C05EF3"), `indexChart11file${i}`);
}
})
.catch((error) => {});
};
//查询
const addsearch = () => {
state.addCorePercents = [];
addgetlist();
if (state.outaddsearchForm.diagName) {
state.addnodataShow = false;
state.addnolistShow = false;
} else {
state.addnodataShow = true;
state.addnolistShow = false;
}
};
onMounted(() => {
if (state.outaddsearchForm.diagName.length > 0) {
addgetlist();
}
onMounted(() => {
if (state.outaddsearchForm.diagName.length > 0) {
addgetlist();
}
});
return {
...toRefs(state),
decimal,
addsearch,
addgetlist,
addquerySearchGroup,
addgroupListMe,
addquerySearchGroup2,
addgroupListMe2,
addclear,
};
},
return {
...toRefs(state),
decimal,
addsearch,
addgetlist,
addquerySearchGroup,
addgroupListMe,
addquerySearchGroup2,
addgroupListMe2,
addclear,
};
},
};
</script>
<style lang="scss">
@import 'styles/mixin.scss';
@import "styles/mixin.scss";
.outaddrecordEnrollment {
height: calc(100% - 50px);
background-color: white;
padding: 20px;
overflow: hidden;
position: relative;
&_search {
// margin-bottom: 20px;
height: 6%;
margin-bottom: 20px;
&_message {
display: flex;
justify-content: space-between;
align-items: center;
&_left {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #f3fafd;
font-family: PingFang SC;
width: 43%;
height: 51px;
&_t1 {
display: flex;
justify-content: space-between;
align-items: center;
width: 30%;
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #2cabe3;
.iconfont {
color: #2cabe3;
padding-left: 29px;
font-size: 23px;
}
}
&_t2 {
width: 70%;
border-radius: 1px solid white;
.el-input__inner {
width: 98%;
height: 42px;
line-height: 42px;
font-size: 16px;
border: none;
}
}
}
&_centert {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #f3fafd;
font-family: PingFang SC;
width: 43%;
height: 51px;
&_t1 {
display: flex;
justify-content: space-between;
align-items: center;
width: 30%;
height: calc(100% - 50px);
background-color: white;
padding: 20px;
overflow: hidden;
position: relative;
&_search {
// margin-bottom: 20px;
height: 6%;
margin-bottom: 20px;
&_message {
display: flex;
justify-content: space-between;
align-items: center;
&_left {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #f3fafd;
font-family: PingFang SC;
width: 43%;
height: 51px;
&_t1 {
display: flex;
justify-content: space-between;
align-items: center;
width: 30%;
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #2cabe3;
.iconfont {
color: #2cabe3;
padding-left: 29px;
font-size: 23px;
}
}
&_t2 {
width: 70%;
border-radius: 1px solid white;
.el-input__inner {
width: 98%;
height: 42px;
line-height: 42px;
font-size: 16px;
border: none;
}
}
}
&_centert {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #f3fafd;
font-family: PingFang SC;
width: 43%;
height: 51px;
&_t1 {
display: flex;
justify-content: space-between;
align-items: center;
width: 30%;
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #2cabe3;
.iconfont {
color: #2cabe3;
padding-left: 25px;
font-size: 23px;
}
}
&_t2 {
width: 70%;
border-radius: 1px solid white;
.el-input__inner {
width: 98%;
height: 42px;
line-height: 42px;
font-size: 16px;
border: none;
}
}
}
&_right {
width: 136px;
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #2cabe3;
.iconfont {
color: #2cabe3;
padding-left: 25px;
font-size: 23px;
}
}
&_t2 {
width: 70%;
border-radius: 1px solid white;
.el-input__inner {
width: 98%;
height: 42px;
line-height: 42px;
font-size: 16px;
border: none;
}
}
}
&_right {
width: 136px;
height: 37px;
background: #2cabe3;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
&_span2 {
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #fefefe;
}
span {
margin-right: 5px;
}
.iconfont {
color: white;
font-size: 19px;
}
}
}
}
&_centent {
background-color: #f1f5f8;
height: 70vh;
overflow-y: auto;
&_totalnum {
height: 151px;
background-color: #fff;
margin: 12px;
display: flex;
align-items: center;
justify-content: space-around;
&_left {
flex: 1;
width: 50%;
height: 132px;
background-color: rgba(44, 171, 227, 0.08);
margin: 0 15px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
&_text1 {
width: 100%;
height: 30%;
display: flex;
margin-top: 5px;
margin-bottom: 10px;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text2 {
width: 100%;
height: 30%;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text3 {
margin-bottom: 10px;
width: 100%;
height: 30%;
margin-top: 10px;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
}
&_right {
width: 50%;
height: 132px;
display: flex;
justify-content: space-around;
&_echar1 {
width: 20%;
height: 132px;
}
&_echar2 {
width: 20%;
height: 132px;
}
&_echar3 {
width: 20%;
height: 132px;
}
&_echar4 {
width: 20%;
height: 132px;
}
&_echar5 {
width: 20%;
height: 132px;
}
}
}
// 没有数据
&_nodata {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&_img {
img {
width: 115px;
height: 102px;
}
}
&_text {
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #abafb3;
}
}
}
background: #2cabe3;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
&_span2 {
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #fefefe;
}
span {
margin-right: 5px;
}
.iconfont {
color: white;
font-size: 19px;
}
}
}
}
&_centent {
background-color: #f1f5f8;
height: 70vh;
overflow-y: auto;
&_totalnum {
height: 151px;
background-color: #fff;
margin: 12px;
display: flex;
align-items: center;
justify-content: space-around;
&_left {
flex: 1;
width: 50%;
height: 132px;
background-color: rgba(44, 171, 227, 0.08);
margin: 0 15px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
&_text1 {
width: 100%;
height: 30%;
display: flex;
margin-top: 5px;
margin-bottom: 10px;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text2 {
width: 100%;
height: 30%;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text3 {
margin-bottom: 10px;
width: 100%;
height: 30%;
margin-top: 10px;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
}
&_right {
width: 50%;
height: 132px;
display: flex;
justify-content: space-around;
&_echar1 {
width: 20%;
height: 132px;
}
&_echar2 {
width: 20%;
height: 132px;
}
&_echar3 {
width: 20%;
height: 132px;
}
&_echar4 {
width: 20%;
height: 132px;
}
&_echar5 {
width: 20%;
height: 132px;
}
}
}
// 没有数据
&_nodata {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&_img {
img {
width: 115px;
height: 102px;
}
}
&_text {
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #abafb3;
}
}
}
}
</style>
......@@ -58,7 +58,7 @@
<span class="outpatientDetails_msg_tu4"><img src="../assets/img/zu.png" alt="" /></span>
<span>分组:{{ HistoryInfo.doctorName }}</span>
<span>病种分值:{{ decimal(HistoryInfo.rw) }}</span>
<span>预计DRG支付费用:{{ decimal(HistoryInfo.actualfee) }}</span>
<span>预计DIP支付费用:{{ decimal(HistoryInfo.actualfee) }}</span>
<span>总费用:{{ decimal(HistoryInfo.totalFee) }}</span>
<span>预计盈亏:{{ decimal(HistoryInfo.profitLoss) }}</span>
<!-- <span>院内历年平均费用:{{ decimal(HistoryInfo.avgFee) }}</span>
......@@ -99,7 +99,7 @@
></span
>
</div>
<div class="outpatientDetails_fenqu_di_bb_div3">
<!-- <div class="outpatientDetails_fenqu_di_bb_div3">
<span class="outpatientDetails_fenqu_di_bb_div3_span1" :style="{ width: lowwidth + '%' }"> 0 </span>
<span class="outpatientDetails_fenqu_di_bb_div3_span2" :style="{ width: contentwidth + '%' }">
{{ Math.round(lowMagnification) }}
......@@ -108,7 +108,7 @@
<span class="outpatientDetails_fenqu_di_bb_div3_span2_nmm1">{{ Math.round(highMagnification) }}</span>
<span class="outpatientDetails_fenqu_di_bb_div3_span2_nmm2">{{ Math.round(heightnum) }}</span>
</span>
</div>
</div> -->
</div>
</div>
</div>
......@@ -149,7 +149,7 @@
{{ scope.row.proportion != undefined ? decimal(scope.row.proportion) + "%" : "" }}
</template>
</el-table-column>
<el-table-column prop="coreTotalFee" label="预计DRG设定费用(参考)" width="100" header-align="center" align="right">
<el-table-column prop="coreTotalFee" label="预计DIP设定费用(参考)" width="100" header-align="center" align="right">
<template slot-scope="scope">
{{ decimal(scope.row.coreTotalFee) }}
</template>
......@@ -845,7 +845,7 @@ export default {
}
span:nth-child(2) {
margin-left: 21px;
width: 200px;
flex: 1;
height: 39px;
background-color: #fff;
font-size: 14px;
......@@ -858,7 +858,7 @@ export default {
padding-left: 10px;
}
span:nth-child(3) {
width: 200px;
flex: 1;
height: 39px;
background-color: #fff;
font-size: 14px;
......@@ -871,7 +871,7 @@ export default {
align-items: center;
}
span:nth-child(4) {
width: 258px;
flex: 1;
height: 39px;
background-color: #fff;
font-size: 14px;
......@@ -884,7 +884,7 @@ export default {
align-items: center;
}
span:nth-child(5) {
width: 200px;
flex: 1;
height: 39px;
background-color: #fff;
font-size: 14px;
......@@ -897,7 +897,7 @@ export default {
padding-left: 10px;
}
span:nth-child(6) {
width: 200px;
flex: 1;
height: 39px;
background-color: #fff;
font-size: 14px;
......@@ -910,7 +910,7 @@ export default {
align-items: center;
}
span:nth-child(n + 7) {
width: 258px;
flex: 1;
height: 39px;
background-color: #fff;
font-size: 14px;
......
......@@ -5,47 +5,47 @@
* @LastEditTime: 2023-02-28 09:38:48
* @Description:
*/
const path = require('path')
const path = require("path");
function resolve(dir) {
return path.join(__dirname, dir)
return path.join(__dirname, dir);
}
module.exports = {
publicPath: './', //导出路径
assetsDir: 'web', //静态资源文件夹
productionSourceMap: false,
devServer: {
//测试环境代理
port: 8066, //测试端口
proxy: {
'/api': {
//target: 'http://192.168.18.166:8099/',
//target: 'http://192.168.18.166:8100/', //drg测试站点
target: 'http://192.168.18.166:8033/', //dip测试站点
changeOrigin: true,
pathRewrite: {
'^/': '/',
publicPath: "./", //导出路径
assetsDir: "web", //静态资源文件夹
productionSourceMap: false,
devServer: {
//测试环境代理
port: 8066, //测试端口
proxy: {
"/api": {
//target: 'http://192.168.18.166:8099/',
//target: 'http://192.168.18.166:8100/', //drg测试站点
target: "http://192.168.18.166:8033/", //dip测试站点
changeOrigin: true,
pathRewrite: {
"^/": "/",
},
},
},
},
},
},
configureWebpack: {
resolve: {
alias: {
'@': resolve('src'),
},
configureWebpack: {
resolve: {
alias: {
"@": resolve("src"),
},
},
},
},
lintOnSave: false, //取消eslint
css: {
loaderOptions: {
// sass: {
// data: `
// @import "@/assets/color.scss";
// @import "@/assets/mixin.scss";
// `
// }
lintOnSave: false, //取消eslint
css: {
loaderOptions: {
// sass: {
// data: `
// @import "@/assets/color.scss";
// @import "@/assets/mixin.scss";
// `
// }
},
},
},
}
};
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