Browse Source

首页同样样式调整

newMaster
1747191978@qq.com 4 months ago
parent
commit
e561ac22b2
  1. 602
      acupuncture-前台/src/views/indexCom/XGZL.vue
  2. 445
      acupuncture-前台/src/views/indexCom/follow.vue
  3. 239
      acupuncture-前台/src/views/indexCom/index.js
  4. 597
      acupuncture-前台/src/views/indexCom/patient.vue

602
acupuncture-前台/src/views/indexCom/XGZL.vue

@ -1,28 +1,28 @@
<template> <template>
<div> <div>
<div class="app-container"> <div class="app-container">
<div class="dis" style="width: 100%"> <div class="dis" style="width: 100%">
<div style="flex: 1; margin-right: 20px"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">治疗类型分布</span> <span class="header-title">治疗类型分布</span>
<div class="dis"> <div class="dis">
<div class="dian-box dis"> <div class="dian-box dis">
<div class="dian-box dis"> <div class="dian-box dis">
<span class="dian" style="background: #91CC75"></span> <span class="dian" style="background: #c6a268"></span>
中西医结合 中西医结合
</div> </div>
<span class="dian" style="background: #5470C6"></span> <span class="dian" style="background: #d8d8d8"></span>
纯中医 纯中医
</div> </div>
</div> </div>
</div> </div>
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="healType" style="width: 100%"></div> <div id="healType" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
<!-- <div style="flex: 1; margin-right: 20px"> <!-- <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">病种方法分布</span> <span class="header-title">病种方法分布</span>
@ -45,51 +45,50 @@
</div> </div>
</el-card> </el-card>
</div> --> </div> -->
<div style="flex: 1; margin-right: 20px"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">治疗效果</span> <span class="header-title">治疗效果</span>
<div class="dis"> <div class="dis">
<div class="dian-box dis"> <div class="dian-box dis">
<div class="dian-box dis"> <div class="dian-box dis">
<span class="dian" style="background: #5C7BD9"></span> <span class="dian" style="background: #c6a268"></span>
治愈 治愈
</div> </div>
<div class="dian-box dis"> <div class="dian-box dis">
<span class="dian" style="background: #91CC75"></span> <span class="dian" style="background: #906c4a"></span>
显效 显效
</div> </div>
<div class="dian-box dis"> <div class="dian-box dis">
<span class="dian" style="background: #FAC858"></span> <span class="dian" style="background: #70483e"></span>
好转 好转
</div> </div>
<div class="dian-box dis"> <div class="dian-box dis">
<span class="dian" style="background: #EE6666"></span> <span class="dian" style="background: #c7bdb1"></span>
无效 无效
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="effect" style="width: 100%"></div> <div id="effect" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
<div style="flex: 1"> <div style="flex: 1">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">诊疗费用分布</span> <span class="header-title">诊疗费用分布</span>
<div class="dis"> <div class="dis"></div>
</div> </div>
</div> <div style="height: 300px" v-loading="loading">
<div style="height: 300px" v-loading="loading"> <div id="cost" style="width: 100%"></div>
<div id="cost" style="width: 100%"></div> </div>
</div> </el-card>
</el-card> </div>
</div> </div>
</div> </div>
</div> <!-- <div class="app-container">
<!-- <div class="app-container">
<div class="dis" style="width: 100%"> <div class="dis" style="width: 100%">
<div style="flex: 1; margin-right: 20px"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
@ -135,252 +134,255 @@
</div> </div>
</div> </div>
</div> --> </div> -->
</div> </div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
require("echarts/theme/macarons"); // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from "@/views/dashboard/mixins/resize"; import resize from "@/views/dashboard/mixins/resize";
import { import { zlType } from "@/api/indexCom.js";
zlType import {
} from "@/api/indexCom.js"; healTypeEcharts,
import { diseaseMethodEcharts,
healTypeEcharts, effectEcharts,
diseaseMethodEcharts, costEcharts,
effectEcharts, } from "./index";
costEcharts export default {
} from "./index"; name: "Post",
export default { props: ["title"],
name: "Post", mixins: [resize],
props: ["title"], data() {
mixins: [resize], return {
data() { queryParams: {
return { param: {
queryParams: { startTime: "",
param: { endTime: "",
startTime: "", },
endTime: "", },
}, loading: false,
}, healTypeValue: null, //
loading: false, diseaseMethod: null, //
healTypeValue: null, // effectValue: null, //
diseaseMethod: null, // costValue: null, //
effectValue: null, // effectObj: {
costValue: null, // zy: "治愈", //
effectObj: { xx: "显效", //
"zy": "治愈", // hz: "好转", //
"xx": "显效", // wx: "无效", //
"hz": "好转", // },
"wx": "无效" // };
} },
}; created() {
}, // this.Linepatient();
created() { this.getData();
// this.Linepatient(); },
this.getData(); methods: {
}, statistics(_data, _type) {
methods: { this.initial(_data, _type); //
statistics(_data, _type) { this.loading = true;
this.initial(_data, _type); // this.getData(); //
this.loading = true; },
this.getData(); // //
}, async getData() {
// try {
async getData() { await zlType(this.queryParams).then((res) => {
try { const { bzfffb, bzxwfb, zlfy, zllxtj, zlxwfb } = res.data;
await zlType(this.queryParams).then((res) => { //
const { this.healTypeValue = [
bzfffb, {
bzxwfb, value: zllxtj?.zxyjh || 0,
zlfy, name: "中西医结合",
zllxtj, },
zlxwfb {
} = res.data; value: zllxtj?.czy || 0,
// name: "纯中医",
this.healTypeValue = [{ },
value: zllxtj?.zxyjh || 0, ];
name: "中西医结合", this.handleHealType();
}, //
{ // let diseaseMethod = []
value: zllxtj?.czy || 0, // let index = 0
name: "纯中医", // for(let i in bzfffb){
}, // for(let k in bzfffb[i]){
] // console.log(bzfffb[i][k])
this.handleHealType(); // }
// // index ++
// let diseaseMethod = [] // }
// let index = 0 // this.handleDiseaseMethod()
// for(let i in bzfffb){
// for(let k in bzfffb[i]){ //
// console.log(bzfffb[i][k]) this.effectValue = [
// } {
// index ++ name: "治愈",
// } value: zlxwfb?.zy || 0,
// this.handleDiseaseMethod() },
{
// name: "显效",
this.effectValue = [{ value: zlxwfb?.xx || 0,
name: '治愈', },
value: zlxwfb?.zy || 0 {
}, name: "好转",
{ value: zlxwfb?.hz || 0,
name: '显效', },
value: zlxwfb?.xx || 0 {
}, name: "无效",
{ value: zlxwfb?.wx || 0,
name: '好转', },
value: zlxwfb?.hz || 0 ];
}, this.handleEffect();
{ //
name: '无效', this.costValue = [
value: zlxwfb?.wx || 0 zlfy.score1,
} zlfy.score2,
] zlfy.score3,
this.handleEffect() zlfy.score4,
// zlfy.score5,
this.costValue = [zlfy.score1, zlfy.score2, zlfy.score3, zlfy.score4, zlfy.score5] ];
this.handleCost() this.handleCost();
this.loading = false; this.loading = false;
}); });
} catch (e) {
} catch (e) { console.log("治疗类型", e);
console.log('治疗类型', e) }
} },
}, //
// handleHealType() {
handleHealType() { healTypeEcharts.series[0].data = this.healTypeValue;
healTypeEcharts.series[0].data = this.healTypeValue this.$nextTick(() => {
this.$nextTick(() => { var myChart = echarts.init(document.getElementById("healType"), null, {
var myChart = echarts.init(document.getElementById("healType"), null, { height: 300,
height: 300, });
}); myChart.setOption(healTypeEcharts, true);
myChart.setOption(healTypeEcharts, true); myChart.resize();
myChart.resize(); window.onresize = myChart.resize;
window.onresize = myChart.resize; });
}); },
}, //
// handleDiseaseMethod() {
handleDiseaseMethod() { // diseaseMethodEcharts.series[0].data = this.diseaseMethod
// diseaseMethodEcharts.series[0].data = this.diseaseMethod this.$nextTick(() => {
this.$nextTick(() => { var myChart = echarts.init(
var myChart = echarts.init(document.getElementById("diseaseMethod"), null, { document.getElementById("diseaseMethod"),
height: 300, null,
}); {
myChart.setOption(diseaseMethodEcharts, true); height: 300,
myChart.resize(); }
window.onresize = myChart.resize; );
}); myChart.setOption(diseaseMethodEcharts, true);
}, myChart.resize();
// window.onresize = myChart.resize;
handleEffect() { });
effectEcharts.series[0].data = this.effectValue },
this.$nextTick(() => { //
var myChart = echarts.init(document.getElementById("effect"), null, { handleEffect() {
height: 300, effectEcharts.series[0].data = this.effectValue;
}); this.$nextTick(() => {
myChart.setOption(effectEcharts, true); var myChart = echarts.init(document.getElementById("effect"), null, {
myChart.resize(); height: 300,
window.onresize = myChart.resize; });
}); myChart.setOption(effectEcharts, true);
}, myChart.resize();
// window.onresize = myChart.resize;
handleCost() { });
costEcharts.series[0].data = this.costValue },
this.$nextTick(() => { //
var myChart = echarts.init(document.getElementById("cost"), null, { handleCost() {
height: 300, costEcharts.series[0].data = this.costValue;
}); this.$nextTick(() => {
myChart.setOption(costEcharts, true); var myChart = echarts.init(document.getElementById("cost"), null, {
myChart.resize(); height: 300,
window.onresize = myChart.resize; });
}); myChart.setOption(costEcharts, true);
}, myChart.resize();
// window.onresize = myChart.resize;
initial(_data, _type) { });
_data[0] = this.$moment(_data[0]).format("YYYY-MM-DD"); },
_data[1] = this.$moment(_data[1]).format("YYYY-MM-DD"); //
this.queryParams.param = { initial(_data, _type) {
startTime: _data[0] + " " + "00:00:00", _data[0] = this.$moment(_data[0]).format("YYYY-MM-DD");
endTime: _data[1] + " " + "23:59:59", _data[1] = this.$moment(_data[1]).format("YYYY-MM-DD");
}; this.queryParams.param = {
}, startTime: _data[0] + " " + "00:00:00",
// endTime: _data[1] + " " + "23:59:59",
getRenew() { };
this.handleHealType(); },
this.handleEffect(); //
this.handleCost() getRenew() {
}, this.handleHealType();
}, this.handleEffect();
}; this.handleCost();
},
},
};
</script> </script>
<style scoped src="@/assets/styles/common.css"></style> <style scoped src="@/assets/styles/common.css"></style>
<style scoped> <style scoped>
>>>.el-card__body { >>> .el-card__body {
padding: 10px 0 !important; padding: 10px 0 !important;
} }
.dis { .dis {
display: flex; display: flex;
} }
.header-title { .header-title {
font-size: 18px; font-size: 18px;
} }
.title-box { .title-box {
padding: 10px 20px; padding: 10px 20px;
border-bottom: 1px solid #dfe6ec; border-bottom: 1px solid #dfe6ec;
} }
.dian-box { .dian-box {
align-items: center; align-items: center;
} }
.dian { .dian {
display: inline-block; display: inline-block;
width: 16px; width: 16px;
height: 16px; height: 16px;
border-radius: 50%; border-radius: 50%;
margin: 0 10px; margin: 0 10px;
} }
.title-box { .title-box {
justify-content: space-between; justify-content: space-between;
} }
.>>>.el-radio--small.is-bordered { . >>> .el-radio--small.is-bordered {
margin-right: 20px !important; margin-right: 20px !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
>>>.el-radio__input { >>> .el-radio__input {
display: none; display: none;
} }
>>>.el-radio__label { >>> .el-radio__label {
padding-left: 5px; padding-left: 5px;
} }
.app-container { .app-container {
padding: 0; padding: 0;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.title { .title {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
} }
.title-bor { .title-bor {
display: inline-block; display: inline-block;
height: 20px; height: 20px;
width: 6px; width: 6px;
background: #4f8bff; background: #4f8bff;
margin-right: 10px; margin-right: 10px;
border-radius: 8px; border-radius: 8px;
} }
</style> </style>

445
acupuncture-前台/src/views/indexCom/follow.vue

@ -1,224 +1,261 @@
<template> <template>
<div> <div>
<div class="app-container"> <div class="app-container">
<div class="dis" style="width: 100%"> <div class="dis" style="width: 100%">
<div style="flex: 1;margin-right: 20px;"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">随访队列分布</span> <span class="header-title">随访队列分布</span>
<div class="dis"></div> <div class="dis"></div>
</div> </div>
<!-- 患者总数统计图 --> <!-- 患者总数统计图 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="follow" style="width: 100%"></div> <div id="follow" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
<div style="flex: 1;"> <div style="flex: 1">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">失访原因分布</span> <span class="header-title">失访原因分布</span>
<div class="dis"></div> <div class="dis"></div>
</div> </div>
<!-- 患者总数统计图 --> <!-- 患者总数统计图 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="lossFollow" style="width: 100%"></div> <div id="lossFollow" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
require("echarts/theme/macarons"); // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from "@/views/dashboard/mixins/resize"; import resize from "@/views/dashboard/mixins/resize";
import { import { sffb, sftj } from "@/api/indexCom.js";
sffb, import { followEcharts, lossFollowEcharts } from "./index";
sftj export default {
} from "@/api/indexCom.js"; name: "Post",
import { props: ["title"],
followEcharts, mixins: [resize],
lossFollowEcharts data() {
} from "./index"; return {
export default { loading: false,
name: "Post", followValue: [], //
props: ["title"], lossFollowValue: [], //
mixins: [resize], queryParams: {
data() { param: {
return { startTime: "",
loading: false, endTime: "",
followValue: [], // },
lossFollowValue: [], // },
queryParams: { };
param: { },
startTime: "", created() {
endTime: "", // this.Linepatient()
}, this.getData();
}, },
}; methods: {
}, statistics(_data, _type) {
created() { this.initial(_data, _type); //
// this.Linepatient() this.loading = true;
this.getData(); this.getData(); //
}, },
methods: { //
statistics(_data, _type) { async getData() {
this.initial(_data, _type); // try {
this.loading = true; this.followValue = {};
this.getData(); // await sffb(this.queryParams).then((res) => {
}, res.data.forEach((i) => {
// let data = [i.dsf, i.ljsf, i.cqsf, i.zc];
async getData() { this.followValue[i.queueName] = data;
try { });
this.followValue = {} this.handleFollow();
await sffb(this.queryParams).then((res) => { });
res.data.forEach(i => { await sftj(this.queryParams).then((res) => {
let data = [i.dsf, i.ljsf, i.cqsf, i.zc] this.lossFollowValue = res.data;
this.followValue[i.queueName] = data this.handleLossFollow();
}) });
this.handleFollow() this.loading = false;
}); } catch (e) {
await sftj(this.queryParams).then((res) => { console.log("随访", e);
this.lossFollowValue = res.data }
this.handleLossFollow() },
});
this.loading = false;
} catch (e) {
console.log('随访', e)
}
},
// //
handleFollow() { handleFollow() {
followEcharts.series = [] followEcharts.series = [];
for (let key in this.followValue) { let colorArr = [
let series = { "#C7BDB1",
name: key, "#C6A268",
data: this.followValue[key], "#906C4A",
type: "bar", "#70483E",
barMaxWidth: 24, // "#582518",
itemStyle: { "#C7BDB1",
normal: { "#C6A268",
// [] "#906C4A",
barBorderRadius: [50, 50, 0, 0], "#70483E",
}, "#582518",
}, "#C7BDB1",
} "#C6A268",
followEcharts.series.push(series) "#906C4A",
} "#70483E",
this.$nextTick(() => { "#582518",
var myChart = echarts.init(document.getElementById("follow"), null, { "#C7BDB1",
height: 300, "#C6A268",
}); "#906C4A",
myChart.setOption(followEcharts, true); "#70483E",
myChart.resize(); "#582518",
window.onresize = myChart.resize; "#C7BDB1",
}); "#C6A268",
}, "#906C4A",
// 访 "#70483E",
handleLossFollow() { "#582518",
lossFollowEcharts.series[0].data = this.lossFollowValue?.map((item) => { "#C7BDB1",
return item.num; "#C6A268",
}); "#906C4A",
lossFollowEcharts.xAxis.data = this.lossFollowValue?.map((item) => { "#70483E",
return item.reason; "#582518",
}); "#C7BDB1",
this.$nextTick(() => { "#C6A268",
var myChart = echarts.init(document.getElementById("lossFollow"), null, { "#906C4A",
height: 300, "#70483E",
}); "#582518",
myChart.setOption(lossFollowEcharts, true); "#C7BDB1",
myChart.resize(); "#C6A268",
window.onresize = myChart.resize; "#906C4A",
}); "#70483E",
}, "#582518",
// ];
initial(_data, _type) { let index = 0;
_data[0] = this.$moment(_data[0]).format("YYYY-MM-DD"); for (let key in this.followValue) {
_data[1] = this.$moment(_data[1]).format("YYYY-MM-DD"); let series = {
this.queryParams.param = { name: key,
startTime: _data[0] + " " + "00:00:00", data: this.followValue[key],
endTime: _data[1] + " " + "23:59:59", type: "bar",
}; barMaxWidth: 24, //
}, color: colorArr[index],
// };
getRenew() { followEcharts.series.push(series);
this.handleFollow(); index++;
this.handleLossFollow() }
}, this.$nextTick(() => {
}, var myChart = echarts.init(document.getElementById("follow"), null, {
}; height: 300,
});
myChart.setOption(followEcharts, true);
myChart.resize();
window.onresize = myChart.resize;
});
},
// 访
handleLossFollow() {
lossFollowEcharts.series[0].data = this.lossFollowValue?.map((item) => {
return item.num;
});
lossFollowEcharts.xAxis.data = this.lossFollowValue?.map((item) => {
return item.reason;
});
this.$nextTick(() => {
var myChart = echarts.init(
document.getElementById("lossFollow"),
null,
{
height: 300,
}
);
myChart.setOption(lossFollowEcharts, true);
myChart.resize();
window.onresize = myChart.resize;
});
},
//
initial(_data, _type) {
_data[0] = this.$moment(_data[0]).format("YYYY-MM-DD");
_data[1] = this.$moment(_data[1]).format("YYYY-MM-DD");
this.queryParams.param = {
startTime: _data[0] + " " + "00:00:00",
endTime: _data[1] + " " + "23:59:59",
};
},
//
getRenew() {
this.handleFollow();
this.handleLossFollow();
},
},
};
</script> </script>
<style scoped src="@/assets/styles/common.css"></style> <style scoped src="@/assets/styles/common.css"></style>
<style scoped> <style scoped>
>>>.el-card__body { >>> .el-card__body {
padding: 10px 0 !important; padding: 10px 0 !important;
} }
.dis { .dis {
display: flex; display: flex;
} }
.header-title { .header-title {
font-size: 18px; font-size: 18px;
} }
.title-box { .title-box {
padding: 10px 20px; padding: 10px 20px;
border-bottom: 1px solid #dfe6ec; border-bottom: 1px solid #dfe6ec;
} }
.dian-box { .dian-box {
align-items: center; align-items: center;
} }
.dian { .dian {
display: inline-block; display: inline-block;
width: 16px; width: 16px;
height: 16px; height: 16px;
border-radius: 50%; border-radius: 50%;
margin: 0 10px; margin: 0 10px;
} }
.title-box { .title-box {
justify-content: space-between; justify-content: space-between;
} }
.>>>.el-radio--small.is-bordered { . >>> .el-radio--small.is-bordered {
margin-right: 20px !important; margin-right: 20px !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
>>>.el-radio__input { >>> .el-radio__input {
display: none; display: none;
} }
>>>.el-radio__label { >>> .el-radio__label {
padding-left: 5px; padding-left: 5px;
} }
.app-container { .app-container {
padding: 0; padding: 0;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.title { .title {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
} }
.title-bor { .title-bor {
display: inline-block; display: inline-block;
height: 20px; height: 20px;
width: 6px; width: 6px;
background: #4f8bff; background: #4f8bff;
margin-right: 10px; margin-right: 10px;
border-radius: 8px; border-radius: 8px;
} }
</style> </style>

239
acupuncture-前台/src/views/indexCom/index.js

@ -23,7 +23,7 @@ export const HZXX = {
bottom: "0%", bottom: "0%",
containLabel: true, containLabel: true,
}, },
color: ["#4f8bff", "#ffcd6c", "#00d1a1", "#a794fe"], color: ["#C6A268"],
graphic: { graphic: {
type: "text", type: "text",
left: "center", left: "center",
@ -76,7 +76,7 @@ export const gende = {
bottom: "0%", bottom: "0%",
containLabel: true, containLabel: true,
}, },
color: ["#4F8BFF", "#FE4943"], color: ["#70483E", "#C7BDB1"],
series: [ series: [
{ {
type: "pie", type: "pie",
@ -85,14 +85,14 @@ export const gende = {
label: { label: {
show: false, show: false,
position: "center", position: "center",
normal:{ normal: {
show:true, show: true,
position:'inner', position: "inner",
formatter: '{b}:{c}个', formatter: "{b}:{c}个",
textStyle:{ textStyle: {
color:'#fff' color: "#fff",
} },
}, },
}, },
labelLine: { labelLine: {
show: false, show: false,
@ -127,7 +127,7 @@ export const ageEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ["<40岁","41-50岁","51-60岁","61-70岁","71-80岁",">80岁",], data: ["<40岁", "41-50岁", "51-60岁", "61-70岁", "71-80岁", ">80岁"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -153,20 +153,20 @@ export const ageEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
color: "#C6A268",
itemStyle: { // itemStyle: {
normal: { // normal: {
//这里设置柱形图圆角 [左上角,右上角,右下角,左下角] // //这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
barBorderRadius: [50, 50, 0, 0], // barBorderRadius: [50, 50, 0, 0],
color: function (params) // color: function (params) {
{ // var colorList = [
var colorList = ['#FF9966', '#66B3FF', '#99FF99','#FFCC66','#FF6699','#CCCCCC']; // "#C6A268",
return colorList[params.dataIndex] // ];
}, // return colorList[params.dataIndex];
}, // },
}, // },
// },
}, },
], ],
}; };
// 病种分布 // 病种分布
@ -195,7 +195,7 @@ export const diseaseEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ["<40岁","41-50岁","51-60岁","61-70岁","71-80岁",">80岁",], data: ["<40岁", "41-50岁", "51-60岁", "61-70岁", "71-80岁", ">80岁"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -221,15 +221,8 @@ export const diseaseEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
color: "#4f8bff", color: "#70483E",
itemStyle: {
normal: {
//这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
barBorderRadius: [50, 50, 0, 0],
},
},
}, },
], ],
}; };
@ -259,16 +252,15 @@ export const diagnoseEcharts = {
}, },
}, },
xAxis: { xAxis: {
name: "数量( 个 )", name: "数量( 个 )",
type: "value", type: "value",
minInterval: 1, minInterval: 1,
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {
type: "dashed", type: "dashed",
}, },
}, },
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -278,8 +270,8 @@ export const diagnoseEcharts = {
containLabel: true, containLabel: true,
}, },
yAxis: { yAxis: {
type: "category", type: "category",
data: [], data: [],
}, },
series: [ series: [
{ {
@ -287,9 +279,8 @@ export const diagnoseEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
color: "#4f8bff", color: "#906C4A",
}, },
], ],
}; };
// 体系 // 体系
@ -344,15 +335,14 @@ export const systemEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
color: "#4f8bff", color: "#C6A268",
itemStyle: { // itemStyle: {
normal: { // normal: {
//这里设置柱形图圆角 [左上角,右上角,右下角,左下角] // //这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
barBorderRadius: [50, 50, 0, 0], // barBorderRadius: [50, 50, 0, 0],
}, // },
}, // },
}, },
], ],
}; };
// 体质 // 体质
@ -407,15 +397,14 @@ export const physiqueEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
color: "#4f8bff", color: "#70483E",
itemStyle: { // itemStyle: {
normal: { // normal: {
//这里设置柱形图圆角 [左上角,右上角,右下角,左下角] // //这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
barBorderRadius: [50, 50, 0, 0], // barBorderRadius: [50, 50, 0, 0],
}, // },
}, // },
}, },
], ],
}; };
// 体态 // 体态
@ -441,7 +430,7 @@ export const postureEcharts = {
bottom: "0%", bottom: "0%",
containLabel: true, containLabel: true,
}, },
color: ["#4f8bff", "#ffcd6c", "#00d1a1", "#a794fe","#EE6666"], color: ["#C7BDB1", "#C6A268", "#906C4A", "#70483E", "#582518"],
series: [ series: [
{ {
type: "pie", type: "pie",
@ -450,14 +439,14 @@ export const postureEcharts = {
label: { label: {
show: false, show: false,
position: "center", position: "center",
normal:{ normal: {
show:true, show: true,
position:'inner', position: "inner",
formatter: '{b}:{c}个', formatter: "{b}:{c}个",
textStyle:{ textStyle: {
color:'#fff' color: "#fff",
} },
}, },
}, },
labelLine: { labelLine: {
show: false, show: false,
@ -492,8 +481,7 @@ export const agrypniaEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ['0~4分', '5~9分', '10~14分','15~19分','20~27分'], data: ["0~4分", "5~9分", "10~14分", "15~19分", "20~27分"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -519,15 +507,14 @@ export const agrypniaEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
color: "#4f8bff", color: "#C6A268",
itemStyle: { // itemStyle: {
normal: { // normal: {
//这里设置柱形图圆角 [左上角,右上角,右下角,左下角] // //这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
barBorderRadius: [50, 50, 0, 0], // barBorderRadius: [50, 50, 0, 0],
}, // },
}, // },
}, },
], ],
}; };
// 焦虑度 // 焦虑度
@ -556,8 +543,7 @@ export const anxietyEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ['<8分', '8~20分','21~35分','>35分'], data: ["<8分", "8~20分", "21~35分", ">35分"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -583,15 +569,14 @@ export const anxietyEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
color: "#4f8bff", color: "#70483E",
itemStyle: { // itemStyle: {
normal: { // normal: {
//这里设置柱形图圆角 [左上角,右上角,右下角,左下角] // //这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
barBorderRadius: [50, 50, 0, 0], // barBorderRadius: [50, 50, 0, 0],
}, // },
}, // },
}, },
], ],
}; };
// -------- 治疗类型 -------- // -------- 治疗类型 --------
@ -618,7 +603,7 @@ export const healTypeEcharts = {
bottom: "0%", bottom: "0%",
containLabel: true, containLabel: true,
}, },
color: ["#91CC75", "#5470C6"], color: ["#C6A268", "#D8D8D8"],
series: [ series: [
{ {
type: "pie", type: "pie",
@ -627,14 +612,14 @@ export const healTypeEcharts = {
label: { label: {
show: false, show: false,
position: "center", position: "center",
normal:{ normal: {
show:true, show: true,
position:'inner', position: "inner",
formatter: '{b}:{c}个', formatter: "{b}:{c}个",
textStyle:{ textStyle: {
color:'#fff' color: "#fff",
} },
}, },
}, },
labelLine: { labelLine: {
show: false, show: false,
@ -669,8 +654,7 @@ export const diseaseMethodEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ['肥胖症', '失眠症','其他'], data: ["肥胖症", "失眠症", "其他"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -693,7 +677,7 @@ export const diseaseMethodEcharts = {
series: [ series: [
{ {
name: "数量1:", name: "数量1:",
data: [1,2], data: [1, 2],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
itemStyle: { itemStyle: {
@ -705,7 +689,7 @@ export const diseaseMethodEcharts = {
}, },
{ {
name: "数量2:", name: "数量2:",
data: [1,3], data: [1, 3],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
itemStyle: { itemStyle: {
@ -740,7 +724,7 @@ export const effectEcharts = {
bottom: "0%", bottom: "0%",
containLabel: true, containLabel: true,
}, },
color: ["#5C7BD9", "#91CC75",'#FAC858','#EE6666'], color: ["#C6A268", "#906C4A", "#70483E", "#C7BDB1"],
series: [ series: [
{ {
type: "pie", type: "pie",
@ -749,14 +733,14 @@ export const effectEcharts = {
label: { label: {
show: false, show: false,
position: "center", position: "center",
normal:{ normal: {
show:true, show: true,
position:'inner', position: "inner",
formatter: '{b}:{c}个', formatter: "{b}:{c}个",
textStyle:{ textStyle: {
color:'#fff' color: "#fff",
} },
}, },
}, },
labelLine: { labelLine: {
show: false, show: false,
@ -791,7 +775,7 @@ export const costEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ['<300元','300 ~ 900元','900 ~ 2000元','2000 ~ 5000元','>5000元'], data: ["<300元", "300 ~ 900元", "900 ~ 2000元", "2000 ~ 5000元", ">5000元"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -824,7 +808,6 @@ export const costEcharts = {
}, },
}, },
}, },
], ],
}; };
// -------- 随访 -------- // -------- 随访 --------
@ -853,7 +836,7 @@ export const followEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ['待随访','临近随访','超期随访','正常随访'], data: ["待随访", "临近随访", "超期随访", "正常随访"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -873,9 +856,9 @@ export const followEcharts = {
}, },
}, },
}, },
series: [ series: [],
],
}; };
// 失访原因
export const lossFollowEcharts = { export const lossFollowEcharts = {
tooltip: { tooltip: {
trigger: "axis", trigger: "axis",
@ -901,7 +884,7 @@ export const lossFollowEcharts = {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ['<300元','300 ~ 900元','900 ~ 2000元','2000 ~ 5000元','>5000元'], data: ["<300元", "300 ~ 900元", "900 ~ 2000元", "2000 ~ 5000元", ">5000元"],
}, },
grid: { grid: {
top: "12%", top: "12%",
@ -927,13 +910,13 @@ export const lossFollowEcharts = {
data: [], data: [],
type: "bar", type: "bar",
barMaxWidth: 24, //柱图宽度 barMaxWidth: 24, //柱图宽度
itemStyle: { color: "#70483E",
normal: { // itemStyle: {
//这里设置柱形图圆角 [左上角,右上角,右下角,左下角] // normal: {
barBorderRadius: [50, 50, 0, 0], // //这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
}, // barBorderRadius: [50, 50, 0, 0],
}, // },
} // },
},
], ],
}; };

597
acupuncture-前台/src/views/indexCom/patient.vue

@ -1,58 +1,58 @@
<template> <template>
<div> <div>
<div class="app-container"> <div class="app-container">
<div class="dis" style="width: 100%"> <div class="dis" style="width: 100%">
<div style="flex: 1; margin-right: 20px"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">患者总数</span> <span class="header-title">患者总数</span>
<div class="dis"></div> <div class="dis"></div>
</div> </div>
<!-- 患者总数统计图 --> <!-- 患者总数统计图 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="patienty" style="width: 100%"></div> <div id="patienty" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
<div style="flex: 1;margin-right: 20px"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">性别数量</span> <span class="header-title">性别数量</span>
<div class="dis"> <div class="dis">
<div class="dian-box dis"> <div class="dian-box dis">
<div class="dian-box dis"> <div class="dian-box dis">
<span class="dian" style="background: #4f8bff"></span> <span class="dian" style="background: #70483e"></span>
</div> </div>
<span class="dian" style="background: #fe4943"></span> <span class="dian" style="background: #c7bdb1"></span>
</div> </div>
</div> </div>
</div> </div>
<!-- 性别统计图 --> <!-- 性别统计图 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="gender" style="width: 100%"></div> <div id="gender" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
<div style="flex: 1; margin-right: 20px"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">年龄分布</span> <span class="header-title">年龄分布</span>
<div class="dis"></div> <div class="dis"></div>
</div> </div>
<!-- 患者总数统计图 --> <!-- 患者总数统计图 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="age" style="width: 100%"></div> <div id="age" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
<div style="flex: 1;"> <div style="flex: 1">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">既往病种分布</span> <span class="header-title">既往病种分布</span>
<div class="dis"> <div class="dis">
<!-- <div class="dian-box dis"> <!-- <div class="dian-box dis">
<div class="dian-box dis"> <div class="dian-box dis">
<span class="dian" style="background: #4f8bff"></span> <span class="dian" style="background: #4f8bff"></span>
@ -60,268 +60,267 @@
<span class="dian" style="background: #ffcd6c"></span> <span class="dian" style="background: #ffcd6c"></span>
</div> --> </div> -->
</div> </div>
</div> </div>
<!-- 既往病种分布 --> <!-- 既往病种分布 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="disease" style="width: 100%"></div> <div id="disease" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
require("echarts/theme/macarons"); // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from "@/views/dashboard/mixins/resize"; import resize from "@/views/dashboard/mixins/resize";
import { import { patientTotal, queryByDatePatient } from "@/api/indexCom.js";
patientTotal, import { HZXX, HZXXSJFX, gende, ageEcharts, diseaseEcharts } from "./index";
queryByDatePatient export default {
} from "@/api/indexCom.js"; name: "Post",
import { props: ["title"],
HZXX, mixins: [resize],
HZXXSJFX, data() {
gende, return {
ageEcharts, loading: false,
diseaseEcharts HZXXvalue: null, //
} from "./index"; gendeValue: null, //
export default { ageValue: null, //
name: "Post", diseaseValue: null, //
props: ["title"], queryParams: {
mixins: [resize], param: {
data() { startTime: "",
return { endTime: "",
loading: false, },
HZXXvalue: null, // },
gendeValue: null, // jwbzObj: {
ageValue: null, // gxy: "高血压", //
diseaseValue: null, // nxgb: "脑血管病", //
queryParams: { exzl: "恶性肿瘤", //
param: { gxb: "冠心病", //
startTime: "", jsjb: "精神疾病", //
endTime: "", whsezcky: "胃和十二指肠溃疡", //
}, fpz: "肥胖症", //
}, gzssz: "骨质疏松症", //
jwbzObj: { ycxXtxjb: "遗传性、先天性疾病", //
"gxy": "高血压", // tnb: "糖尿病", //尿
"nxgb": "脑血管病", // mxfxjb: "慢性肺系疾病", //
"exzl": "恶性肿瘤", // gzxz: "高脂血症", //
"gxb": "冠心病", // gzjb: "肝脏疾病", //
"jsjb": "精神疾病", // gmxjb: "过敏性疾病", //
"whsezcky": "胃和十二指肠溃疡", // gjy: "关节炎", //
"fpz": "肥胖症", // tf: "痛风", //
"gzssz": "骨质疏松症", // sySb: "肾炎、肾病", //
"ycxXtxjb": "遗传性、先天性疾病", // other: "其他", //
"tnb": "糖尿病", //尿 },
"mxfxjb": "慢性肺系疾病", // };
"gzxz": "高脂血症", // },
"gzjb": "肝脏疾病", // created() {
"gmxjb": "过敏性疾病", // // this.Linepatient()
"gjy": "关节炎", // this.getData();
"tf": "痛风", // },
"sySb": "肾炎、肾病", // methods: {
"other": "其他" // statistics(_data, _type) {
} this.initial(_data, _type); //
}; this.loading = true;
}, this.getData(); //
created() { },
// this.Linepatient() //
this.getData(); async getData() {
}, try {
methods: { await patientTotal(this.queryParams).then((res) => {
statistics(_data, _type) { //
this.initial(_data, _type); // this.HZXXvalue = [
this.loading = true; {
this.getData(); // value: res.data.totalPatients,
}, name: "患者总数",
// },
async getData() { ];
try { //
await patientTotal(this.queryParams).then((res) => { this.gendeValue = [
// {
this.HZXXvalue = [{ value: res.data.gender.male,
value: res.data.totalPatients, name: "男",
name: "患者总数" },
}, ]; {
// value: res.data.gender.female,
this.gendeValue = [{ name: "女",
value: res.data.gender.male, },
name: "男" ];
}, //
{ let ageValue = res.data.age;
value: res.data.gender.female, this.ageValue = [
name: "女" ageValue.num1,
} ageValue.num2,
]; ageValue.num3,
// ageValue.num4,
let ageValue = res.data.age ageValue.num5,
this.ageValue = [ageValue.num1, ageValue.num2, ageValue.num3, ageValue.num4, ageValue ageValue.num6,
.num5, ageValue.num6 ];
] //
// let diseaseValue = res.data.jwbz;
let diseaseValue = res.data.jwbz this.diseaseValue = [];
this.diseaseValue = [] for (let key in diseaseValue) {
for (let key in diseaseValue) { let data = {
let data = { name: this.jwbzObj[key],
name: this.jwbzObj[key], value: diseaseValue[key] || 0,
value: diseaseValue[key] || 0 };
} this.diseaseValue.push(data);
this.diseaseValue.push(data) }
} this.Linepatient(); //
this.Linepatient(); // this.handleAge(); //
this.handleAge(); // this.columnar(); //
this.columnar(); // this.handleDisease(); //
this.handleDisease(); // });
}); this.loading = false;
this.loading = false; } catch (e) {
} catch (e) { console.log("患者统计", e);
console.log('患者统计', e) }
} },
},
// //
Linepatient() { Linepatient() {
HZXX.title.text = this.HZXXvalue[0].value; HZXX.title.text = this.HZXXvalue[0].value;
HZXX.series[0].data = this.HZXXvalue; HZXX.series[0].data = this.HZXXvalue;
this.$nextTick(() => { this.$nextTick(() => {
var myChart = echarts.init(document.getElementById("patienty"), null, { var myChart = echarts.init(document.getElementById("patienty"), null, {
height: 300, height: 300,
}); });
myChart.setOption(HZXX, true); myChart.setOption(HZXX, true);
myChart.resize(); myChart.resize();
window.onresize = myChart.resize; window.onresize = myChart.resize;
}); });
}, },
// //
columnar() { columnar() {
gende.series[0].data = this.gendeValue; gende.series[0].data = this.gendeValue;
this.$nextTick(() => { this.$nextTick(() => {
var myChart = echarts.init(document.getElementById("gender"), null, { var myChart = echarts.init(document.getElementById("gender"), null, {
height: 300, height: 300,
}); });
myChart.setOption(gende, true); myChart.setOption(gende, true);
myChart.resize(); myChart.resize();
window.onresize = myChart.resize; window.onresize = myChart.resize;
}); });
}, },
// //
handleAge() { handleAge() {
ageEcharts.series[0].data = this.ageValue ageEcharts.series[0].data = this.ageValue;
this.$nextTick(() => { this.$nextTick(() => {
var myChart = echarts.init(document.getElementById("age"), null, { var myChart = echarts.init(document.getElementById("age"), null, {
height: 300, height: 300,
}); });
myChart.setOption(ageEcharts, true); myChart.setOption(ageEcharts, true);
myChart.resize(); myChart.resize();
window.onresize = myChart.resize; window.onresize = myChart.resize;
}); });
}, },
// //
handleDisease() { handleDisease() {
diseaseEcharts.series[0].data = this.diseaseValue?.map((item) => { diseaseEcharts.series[0].data = this.diseaseValue?.map((item) => {
return item.value; return item.value;
}); });
diseaseEcharts.xAxis.data = this.diseaseValue?.map((item) => { diseaseEcharts.xAxis.data = this.diseaseValue?.map((item) => {
return item.name; return item.name;
}); });
this.$nextTick(() => { this.$nextTick(() => {
var myChart = echarts.init(document.getElementById("disease"), null, { var myChart = echarts.init(document.getElementById("disease"), null, {
height: 300, height: 300,
}); });
myChart.setOption(diseaseEcharts, true); myChart.setOption(diseaseEcharts, true);
myChart.resize(); myChart.resize();
window.onresize = myChart.resize; window.onresize = myChart.resize;
}); });
}, },
// //
initial(_data, _type) { initial(_data, _type) {
_data[0] = this.$moment(_data[0]).format("YYYY-MM-DD"); _data[0] = this.$moment(_data[0]).format("YYYY-MM-DD");
_data[1] = this.$moment(_data[1]).format("YYYY-MM-DD"); _data[1] = this.$moment(_data[1]).format("YYYY-MM-DD");
this.queryParams.param = { this.queryParams.param = {
startTime: _data[0] + " " + "00:00:00", startTime: _data[0] + " " + "00:00:00",
endTime: _data[1] + " " + "23:59:59", endTime: _data[1] + " " + "23:59:59",
}; };
}, },
// //
getRenew() { getRenew() {
this.Linepatient(); // this.Linepatient(); //
this.handleAge(); // this.handleAge(); //
this.columnar(); // this.columnar(); //
this.handleDisease(); // this.handleDisease(); //
}, },
}, },
}; };
</script> </script>
<style scoped src="@/assets/styles/common.css"></style> <style scoped src="@/assets/styles/common.css"></style>
<style scoped> <style scoped>
>>>.el-card__body { >>> .el-card__body {
padding: 10px 0 !important; padding: 10px 0 !important;
} }
.dis { .dis {
display: flex; display: flex;
} }
.header-title { .header-title {
font-size: 18px; font-size: 18px;
} }
.title-box { .title-box {
padding: 10px 20px; padding: 10px 20px;
border-bottom: 1px solid #dfe6ec; border-bottom: 1px solid #dfe6ec;
} }
.dian-box { .dian-box {
align-items: center; align-items: center;
} }
.dian { .dian {
display: inline-block; display: inline-block;
width: 16px; width: 16px;
height: 16px; height: 16px;
border-radius: 50%; border-radius: 50%;
margin: 0 10px; margin: 0 10px;
} }
.title-box { .title-box {
justify-content: space-between; justify-content: space-between;
} }
.>>>.el-radio--small.is-bordered { . >>> .el-radio--small.is-bordered {
margin-right: 20px !important; margin-right: 20px !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
>>>.el-radio__input { >>> .el-radio__input {
display: none; display: none;
} }
>>>.el-radio__label { >>> .el-radio__label {
padding-left: 5px; padding-left: 5px;
} }
.app-container { .app-container {
padding: 0; padding: 0;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.title { .title {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
} }
.title-bor { .title-bor {
display: inline-block; display: inline-block;
height: 20px; height: 20px;
width: 6px; width: 6px;
background: #4f8bff; background: #4f8bff;
margin-right: 10px; margin-right: 10px;
border-radius: 8px; border-radius: 8px;
} }
</style> </style>

Loading…
Cancel
Save