Merge branch 'master' of http://114.55.171.231:3000/lxd/ECG
This commit is contained in:
commit
dbacfdaa16
@ -19,8 +19,10 @@
|
|||||||
<div class="myleft-box">
|
<div class="myleft-box">
|
||||||
<el-container>
|
<el-container>
|
||||||
<!--头部 患者信息-->
|
<!--头部 患者信息-->
|
||||||
<el-header style="background-color: rgb(79, 138, 240); height: 40px">
|
<el-header
|
||||||
<div style="font-size: 20px; color: aliceblue; margin-top: 5px">
|
style="background-color: rgb(79, 138, 240); border-radius: 8px 0 0 0; height: 40px"
|
||||||
|
>
|
||||||
|
<div style="font-size: 20px; color: aliceblue; margin-top: 6px; margin-left: -10px">
|
||||||
<span>{{ rowinfo.pname }}</span>
|
<span>{{ rowinfo.pname }}</span>
|
||||||
<span style="margin-left: 10px"> {{ rowinfo.gender }}</span>
|
<span style="margin-left: 10px"> {{ rowinfo.gender }}</span>
|
||||||
<span style="margin-left: 10px"> {{ age + '岁' }}</span>
|
<span style="margin-left: 10px"> {{ age + '岁' }}</span>
|
||||||
@ -32,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-header>
|
</el-header>
|
||||||
<!--头部 功能按钮-->
|
<!--头部 功能按钮-->
|
||||||
<el-header style="height: 40px; padding: 0px">
|
<el-header style="height: 40px; padding: 0px; margin: 2px 5.2px">
|
||||||
<el-button-group class="ml-4" style="margin-top: 4px; margin-left: 0px">
|
<el-button-group class="ml-4" style="margin-top: 4px; margin-left: 0px">
|
||||||
<el-popover placement="bottom" :width="250" trigger="click" :disabled="isshare">
|
<el-popover placement="bottom" :width="250" trigger="click" :disabled="isshare">
|
||||||
<div style="display: flex; flex-direction: column; align-items: center">
|
<div style="display: flex; flex-direction: column; align-items: center">
|
||||||
@ -218,7 +220,14 @@
|
|||||||
id="elform"
|
id="elform"
|
||||||
:model="queryParams"
|
:model="queryParams"
|
||||||
label-width="63.4px"
|
label-width="63.4px"
|
||||||
style="max-width: 600px; margin-top: 10px; margin-left: 10px; height: 89vh"
|
style="
|
||||||
|
max-width: 600px;
|
||||||
|
margin-top: 6px;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
min-height: 88vh;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<!-- 第一行 -->
|
<!-- 第一行 -->
|
||||||
<el-row style="margin-right: 1px; height: 35px">
|
<el-row style="margin-right: 1px; height: 35px">
|
||||||
@ -331,7 +340,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<!-- 第六行 -->
|
<!-- 第六行 -->
|
||||||
<el-row style="margin-right: 1px; height: 35px">
|
<el-row style="margin-right: 1px; margin-bottom: 5.2px; height: 35px">
|
||||||
<el-col :span="12" class="-ml-1px pr-9px">
|
<el-col :span="12" class="-ml-1px pr-9px">
|
||||||
<el-form-item label="SV1">
|
<el-form-item label="SV1">
|
||||||
<el-input v-model="queryParams.sv1" class="w-100%">
|
<el-input v-model="queryParams.sv1" class="w-100%">
|
||||||
@ -352,8 +361,11 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-tag type="info" style="font-size: 16px; width: 100%; color: black">
|
<el-tag
|
||||||
心电事件快照
|
type="info"
|
||||||
|
style="justify-content: left; font-size: 16px; width: 100%; color: black"
|
||||||
|
>
|
||||||
|
<span class="ml-2px">心电事件快照</span>
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="snapshotTime"
|
v-model="snapshotTime"
|
||||||
@ -362,7 +374,12 @@
|
|||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
/>
|
/>
|
||||||
<el-tag type="info" style="font-size: 16px; width: 100%; color: black"> 智能词库 </el-tag>
|
<el-tag
|
||||||
|
type="info"
|
||||||
|
style="justify-content: left; font-size: 16px; width: 100%; color: black"
|
||||||
|
>
|
||||||
|
<span class="ml-2px">智能词库</span>
|
||||||
|
</el-tag>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.autoDiagResult"
|
v-model="queryParams.autoDiagResult"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@ -370,9 +387,14 @@
|
|||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
/>
|
/>
|
||||||
<el-tag type="info" style="font-size: 16px; width: 100%; color: black">
|
<el-tag
|
||||||
医生诊断结论
|
type="info"
|
||||||
<el-button @click="zdmodle" type="primary" text> 诊断模版 </el-button>
|
style="justify-content: left; font-size: 16px; width: 100%; color: black"
|
||||||
|
>
|
||||||
|
<span class="ml-2px">
|
||||||
|
<span style="vertical-align: middle">医生诊断结论</span>
|
||||||
|
<el-button @click="zdmodle" type="text" class="ml-18px">诊断模版</el-button>
|
||||||
|
</span>
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-input
|
<el-input
|
||||||
class="your-component"
|
class="your-component"
|
||||||
@ -441,8 +463,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-drawer v-model="drawer" :with-header="false" :modal="true" size="20%">
|
<el-drawer v-model="drawer" :with-header="false" :modal="true" size="23.02%">
|
||||||
|
<div style="position: relative; z-index: 100">
|
||||||
|
<el-button link @click="drawer = false" style="position: absolute; top: -6px; right: -2px">
|
||||||
|
<Icon icon="ep:close" />
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
<span>诊断数据模版</span>
|
<span>诊断数据模版</span>
|
||||||
|
<div class="h-90.78vh">
|
||||||
|
<el-scrollbar>
|
||||||
<el-tree
|
<el-tree
|
||||||
style="padding-top: 15px; padding-bottom: 20px; min-width: 195px; font-size: 20px"
|
style="padding-top: 15px; padding-bottom: 20px; min-width: 195px; font-size: 20px"
|
||||||
class="treeStyle"
|
class="treeStyle"
|
||||||
@ -458,6 +487,8 @@
|
|||||||
ref="selectTree"
|
ref="selectTree"
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
/>
|
/>
|
||||||
|
</el-scrollbar>
|
||||||
|
</div>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
@ -636,6 +667,7 @@ import ECGCopmareDialog from '@/views/ECG/ECGCompare.vue'
|
|||||||
import ECGApplyforRepair from '@/views/ECG/ECGModify/ECGApplyforRepair.vue'
|
import ECGApplyforRepair from '@/views/ECG/ECGModify/ECGApplyforRepair.vue'
|
||||||
import useClipboard from 'vue-clipboard3' //复制组件
|
import useClipboard from 'vue-clipboard3' //复制组件
|
||||||
import ECGSB from '@/views/ECG/ECGSB.vue'
|
import ECGSB from '@/views/ECG/ECGSB.vue'
|
||||||
|
import { ElLoading } from 'element-plus'
|
||||||
|
|
||||||
const { toClipboard } = useClipboard()
|
const { toClipboard } = useClipboard()
|
||||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||||
@ -872,9 +904,11 @@ const save = async () => {
|
|||||||
saveFormVO.value.ecgJsonDataFilePath = queryParams.value.ecgJsonDataFilePath
|
saveFormVO.value.ecgJsonDataFilePath = queryParams.value.ecgJsonDataFilePath
|
||||||
if (
|
if (
|
||||||
queryParams.value.ecgJsonDataFilePath &&
|
queryParams.value.ecgJsonDataFilePath &&
|
||||||
!(queryParams.value.ecgJsonDataFilePath.toUpperCase().endsWith('.BMP') ||
|
!(
|
||||||
|
queryParams.value.ecgJsonDataFilePath.toUpperCase().endsWith('.BMP') ||
|
||||||
queryParams.value.ecgJsonDataFilePath.toUpperCase().endsWith('.JPG') ||
|
queryParams.value.ecgJsonDataFilePath.toUpperCase().endsWith('.JPG') ||
|
||||||
queryParams.value.ecgJsonDataFilePath.toUpperCase().endsWith('.PNG'))
|
queryParams.value.ecgJsonDataFilePath.toUpperCase().endsWith('.PNG')
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
await EcganalysisparasApi.SaveEcgPdf(saveFormVO.value)
|
await EcganalysisparasApi.SaveEcgPdf(saveFormVO.value)
|
||||||
}
|
}
|
||||||
@ -1211,7 +1245,7 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|||||||
.mycontainer {
|
.mycontainer {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 90vh;
|
min-height: 90vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.myleft-box {
|
.myleft-box {
|
||||||
@ -1219,7 +1253,8 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|||||||
border-style: solid; /* 设置边框样式为实线 */
|
border-style: solid; /* 设置边框样式为实线 */
|
||||||
border-width: 1px; /* 设置边框宽度为2像素 */
|
border-width: 1px; /* 设置边框宽度为2像素 */
|
||||||
border-color: #cccccc; /* 设置边框颜色为黑色 */
|
border-color: #cccccc; /* 设置边框颜色为黑色 */
|
||||||
height: 90vh;
|
border-radius: 8px 0 0 8px;
|
||||||
|
min-height: 90vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.myright-box {
|
.myright-box {
|
||||||
@ -1227,8 +1262,9 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|||||||
border-style: solid solid solid; /* 上、右、下边框为实线 */
|
border-style: solid solid solid; /* 上、右、下边框为实线 */
|
||||||
border-width: 1px; /* 设置边框宽度为1像素 */
|
border-width: 1px; /* 设置边框宽度为1像素 */
|
||||||
border-color: #cccccc; /* 设置边框颜色为灰色 */
|
border-color: #cccccc; /* 设置边框颜色为灰色 */
|
||||||
height: 90vh;
|
|
||||||
border-left-style: none; /* 移除左边边框 */
|
border-left-style: none; /* 移除左边边框 */
|
||||||
|
border-radius: 0 8px 8px 0;
|
||||||
|
min-height: 90vh;
|
||||||
}
|
}
|
||||||
.mybutwidth {
|
.mybutwidth {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
|
@ -3,43 +3,48 @@
|
|||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
title="申请返修"
|
title="申请返修"
|
||||||
width="720px"
|
width="720px"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:draggable="true"
|
||||||
|
top="22.4vh"
|
||||||
style="height: 490px"
|
style="height: 490px"
|
||||||
>
|
>
|
||||||
<div class="ApplyforRepair">
|
<div class="ApplyforRepair">
|
||||||
<!-- 患者基础信息 -->
|
<!-- 患者基础信息 -->
|
||||||
<div class="info-section">
|
<div class="info-section">
|
||||||
<div class="section-title"><span style="margin-left: 5px;" >患者基础信息</span></div>
|
<div class="section-title"><span style="margin-left: 5px">患者基础信息</span></div>
|
||||||
<el-form label-width="80px">
|
<el-form label-position="right" label-width="80px">
|
||||||
<el-row :gutter="24">
|
<el-row>
|
||||||
<el-col :span="9">
|
<el-col :span="10">
|
||||||
<el-form-item label="检查日期:" label-width="80">
|
<el-form-item label="检查日期:">
|
||||||
<el-input
|
<el-input
|
||||||
style="width: 160px"
|
style="width: 100%"
|
||||||
:value="formatDate(rowinfo.examDate, 'YYYY-MM-DD')"
|
:value="formatDate(rowinfo.examDate, 'YYYY-MM-DD')"
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item label="姓名:" label-width="60">
|
<el-form-item label="姓名:">
|
||||||
<el-input :value="rowinfo.pname" style="width: 100px" disabled />
|
<el-input :value="rowinfo.pname" style="width: 100%" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item label="性别:" label-width="50">
|
<el-form-item label="性别:">
|
||||||
<el-input :value="rowinfo.gender" style="width: 100px" disabled />
|
<el-input :value="rowinfo.gender" style="width: 100%" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<el-form-item label="检查编号:">
|
<el-form-item label="检查编号:">
|
||||||
<el-input :value="rowinfo.examId" style="width: 140px" disabled />
|
<el-input :value="rowinfo.examId" style="width: 100%" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="检查机构:" label-width="30">
|
<el-form-item label="检查机构:">
|
||||||
<el-input :value="rowinfo.orgName" style="width: 180px" disabled />
|
<el-input :value="rowinfo.orgName" style="width: 100%" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -47,21 +52,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 申请返修信息 -->
|
<!-- 申请返修信息 -->
|
||||||
<div class="info-section">
|
<div class="info-section">
|
||||||
<div class="section-title"><span style="margin-left: 5px;">申请返修信息</span></div>
|
<div class="section-title"><span style="margin-left: 5px">申请返修信息</span></div>
|
||||||
<el-form label-width="100px" :model="formData" :rules="rules" ref="formRef">
|
<el-form label-width="100px" :model="formData" :rules="rules" ref="formRef">
|
||||||
<el-row :gutter="20">
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="11">
|
||||||
<el-form-item label="申请医生:" prop="applyDoctor">
|
<el-form-item label="申请医生:" prop="applyDoctor">
|
||||||
<el-input v-model="formData.applyDoctor" style="width: 180px" />
|
<el-input v-model="formData.applyDoctor" style="width: 100%" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :offset="2" :span="11">
|
||||||
<el-form-item label="申请时间:" prop="applyDateTime">
|
<el-form-item label="申请时间:" prop="applyDateTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.applyDateTime"
|
v-model="formData.applyDateTime"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
placeholder="请选择申请时间"
|
placeholder="请选择申请时间"
|
||||||
style="width: 180px"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -76,10 +81,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<el-form-item>
|
<div style="text-align: right">
|
||||||
<el-button type="primary" @click="save" :disabled="issaveshow">确认</el-button>
|
<el-button type="primary" @click="save" :disabled="issaveshow">确认</el-button>
|
||||||
<el-button @click="() => (dialogVisible = false)">取消</el-button>
|
<el-button @click="() => (dialogVisible = false)">取消</el-button>
|
||||||
</el-form-item>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@ -115,12 +120,8 @@ const formData = ref({
|
|||||||
})
|
})
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
const rules = {
|
const rules = {
|
||||||
applyDateTime: [
|
applyDateTime: [{ required: true, message: '请选择申请时间', trigger: 'change' }],
|
||||||
{ required: true, message: '请选择申请时间', trigger: 'change' }
|
processContent: [{ required: true, message: '请输入申请原因', trigger: 'blur' }]
|
||||||
],
|
|
||||||
processContent: [
|
|
||||||
{ required: true, message: '请输入申请原因', trigger: 'blur' }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
@ -145,9 +146,14 @@ const resetForm = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const opendiag = async (
|
||||||
|
type: string,
|
||||||
const opendiag = async (type: string, row: any, orgId: string, doctorname: string,id:string,reviewStatus:string) => {
|
row: any,
|
||||||
|
orgId: string,
|
||||||
|
doctorname: string,
|
||||||
|
id: string,
|
||||||
|
reviewStatus: string
|
||||||
|
) => {
|
||||||
resetForm()
|
resetForm()
|
||||||
const data = await ProcessManageApi.getPage({
|
const data = await ProcessManageApi.getPage({
|
||||||
examId: row.examId
|
examId: row.examId
|
||||||
@ -179,14 +185,12 @@ const opendiag = async (type: string, row: any, orgId: string, doctorname: strin
|
|||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
message.alertError('已申请')
|
message.alertError('已申请')
|
||||||
return
|
return
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function save() {
|
async function save() {
|
||||||
if (!formRef.value)
|
if (!formRef.value) return
|
||||||
return
|
|
||||||
await formRef.value.validate((valid: boolean) => {
|
await formRef.value.validate((valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
formData.value.id = rowinfo.value.id
|
formData.value.id = rowinfo.value.id
|
||||||
@ -215,7 +219,6 @@ async function save() {
|
|||||||
defineExpose({ opendiag }) // 提供 open 方法,用于打开弹窗
|
defineExpose({ opendiag }) // 提供 open 方法,用于打开弹窗
|
||||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||||
defineOptions({ name: 'ECGApplyforRepair' })
|
defineOptions({ name: 'ECGApplyforRepair' })
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="css" scoped>
|
<style lang="css" scoped>
|
||||||
.ApplyforRepair {
|
.ApplyforRepair {
|
||||||
|
@ -48,6 +48,7 @@ function drawMagnifiedArea(x, y, container) {
|
|||||||
ctx.imageSmoothingEnabled = true
|
ctx.imageSmoothingEnabled = true
|
||||||
ctx.imageSmoothingQuality = 'high'
|
ctx.imageSmoothingQuality = 'high'
|
||||||
|
|
||||||
|
if (false) {
|
||||||
if (isInTransition) {
|
if (isInTransition) {
|
||||||
// 在过渡区域,混合两个容器的内容
|
// 在过渡区域,混合两个容器的内容
|
||||||
const weight2 = (x - (rect2.left - transitionZone)) / (transitionZone * 2)
|
const weight2 = (x - (rect2.left - transitionZone)) / (transitionZone * 2)
|
||||||
@ -63,9 +64,33 @@ function drawMagnifiedArea(x, y, container) {
|
|||||||
const currentRect = x < rect2.left ? rect1 : rect2
|
const currentRect = x < rect2.left ? rect1 : rect2
|
||||||
drawContainerContent(ctx, currentContainer, x, y, currentRect, 1)
|
drawContainerContent(ctx, currentContainer, x, y, currentRect, 1)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
drawContainerContent(ctx, container1, x, y, rect1, 1)
|
||||||
|
drawContainerContent(ctx, container2, x, y, rect2, 1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增:绘制单个容器内容的辅助函数
|
// 新增:绘制单个容器内容的辅助函数
|
||||||
|
function drawContainerContent_old(ctx, container, x, y, rect, alpha) {
|
||||||
|
if (alpha === 0) return
|
||||||
|
|
||||||
|
ctx.globalAlpha = alpha
|
||||||
|
const layers = [
|
||||||
|
container.querySelector('#bottomCanvas, #bottomCanvas1'),
|
||||||
|
container.querySelector('#leftCanvas, #rightCanvas'),
|
||||||
|
container.querySelector('#topCanvas, #topCanvas1')
|
||||||
|
].filter((canvas) => canvas)
|
||||||
|
|
||||||
|
layers.forEach((canvas) => {
|
||||||
|
const canvasRect = canvas.getBoundingClientRect()
|
||||||
|
const canvasX = x - canvasRect.left
|
||||||
|
const canvasY = y - canvasRect.top
|
||||||
|
|
||||||
|
ctx.drawImage(canvas, canvasX - 75, canvasY - 50, 150, 100, 0, 0, 300, 200)
|
||||||
|
})
|
||||||
|
ctx.globalAlpha = 1
|
||||||
|
}
|
||||||
|
|
||||||
function drawContainerContent(ctx, container, x, y, rect, alpha) {
|
function drawContainerContent(ctx, container, x, y, rect, alpha) {
|
||||||
if (alpha === 0) return
|
if (alpha === 0) return
|
||||||
|
|
||||||
@ -74,24 +99,83 @@ function drawContainerContent(ctx, container, x, y, rect, alpha) {
|
|||||||
container.querySelector('#bottomCanvas, #bottomCanvas1'),
|
container.querySelector('#bottomCanvas, #bottomCanvas1'),
|
||||||
container.querySelector('#leftCanvas, #rightCanvas'),
|
container.querySelector('#leftCanvas, #rightCanvas'),
|
||||||
container.querySelector('#topCanvas, #topCanvas1')
|
container.querySelector('#topCanvas, #topCanvas1')
|
||||||
].filter(canvas => canvas)
|
].filter((canvas) => canvas)
|
||||||
|
|
||||||
layers.forEach(canvas => {
|
layers.forEach((canvas) => {
|
||||||
const canvasRect = canvas.getBoundingClientRect()
|
const canvasRect = canvas.getBoundingClientRect()
|
||||||
const canvasX = x - canvasRect.left
|
const canvasX = x - canvasRect.left
|
||||||
const canvasY = y - canvasRect.top
|
const canvasY = y - canvasRect.top
|
||||||
|
const canvasY_max = y + 50 >= rect.bottom ? rect.bottom : y + 50
|
||||||
|
|
||||||
|
if (['topCanvas', 'topCanvas1'].includes(canvas.id)) {
|
||||||
|
const leftCanvas = container.querySelector('#leftCanvas, #rightCanvas')
|
||||||
|
if (canvasRect.right > leftCanvas.getBoundingClientRect().right) {
|
||||||
|
let borderLeft =
|
||||||
|
x - leftCanvas.getBoundingClientRect().right > 75
|
||||||
|
? x - 75
|
||||||
|
: leftCanvas.getBoundingClientRect().right
|
||||||
|
let borderLeft_span =
|
||||||
|
x <= leftCanvas.getBoundingClientRect().right
|
||||||
|
? 75 + leftCanvas.getBoundingClientRect().right - x
|
||||||
|
: x - leftCanvas.getBoundingClientRect().right >= 75
|
||||||
|
? 0
|
||||||
|
: 75 - x + leftCanvas.getBoundingClientRect().right
|
||||||
|
let canvasRectRight_effective =
|
||||||
|
rect.right > canvasRect.right ? canvasRect.right : rect.right
|
||||||
|
if (
|
||||||
|
borderLeft_span < 150 &&
|
||||||
|
borderLeft >= leftCanvas.getBoundingClientRect().right &&
|
||||||
|
borderLeft <= canvasRectRight_effective
|
||||||
|
) {
|
||||||
|
let borderRight =
|
||||||
|
borderLeft_span > 75
|
||||||
|
? leftCanvas.getBoundingClientRect().right + 150 - borderLeft_span
|
||||||
|
: x + 75
|
||||||
|
if (borderRight >= canvasRectRight_effective) borderRight = canvasRectRight_effective
|
||||||
|
let swidth = borderRight - borderLeft
|
||||||
|
ctx.drawImage(
|
||||||
|
canvas,
|
||||||
|
borderLeft - canvasRect.left,
|
||||||
|
canvasY - 50,
|
||||||
|
swidth,
|
||||||
|
canvasY_max - (y - 50),
|
||||||
|
borderLeft_span * 2,
|
||||||
|
0,
|
||||||
|
swidth * 2,
|
||||||
|
(canvasY_max - (y - 50)) * 2
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (['bottomCanvas', 'bottomCanvas1'].includes(canvas.id)) {
|
||||||
|
const leftCanvas = container.querySelector('#leftCanvas, #rightCanvas')
|
||||||
|
let canvasRectRight_effective = rect.right > canvasRect.right ? canvasRect.right : rect.right
|
||||||
|
if (x + 75 > leftCanvas.getBoundingClientRect().right && x - 75 < canvasRectRight_effective) {
|
||||||
|
let swidth = x + 75 <= canvasRectRight_effective ? 150 : 75 + canvasRectRight_effective - x
|
||||||
|
ctx.drawImage(
|
||||||
|
canvas,
|
||||||
|
canvasX - 75,
|
||||||
|
canvasY - 50,
|
||||||
|
swidth,
|
||||||
|
canvasY_max - (y - 50),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
swidth * 2,
|
||||||
|
(canvasY_max - (y - 50)) * 2
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
ctx.drawImage(
|
ctx.drawImage(
|
||||||
canvas,
|
canvas,
|
||||||
canvasX - 75,
|
canvasX - 75,
|
||||||
canvasY - 50,
|
canvasY - 50,
|
||||||
150,
|
150,
|
||||||
100,
|
canvasY_max - (y - 50),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
300,
|
300,
|
||||||
200
|
(canvasY_max - (y - 50)) * 2
|
||||||
)
|
)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
ctx.globalAlpha = 1
|
ctx.globalAlpha = 1
|
||||||
}
|
}
|
||||||
@ -107,10 +191,16 @@ function handleMouseMove(e) {
|
|||||||
const rect2 = container2.getBoundingClientRect()
|
const rect2 = container2.getBoundingClientRect()
|
||||||
|
|
||||||
// 检查鼠标是否在任一容器内
|
// 检查鼠标是否在任一容器内
|
||||||
const isInContainer1 = e.clientX >= rect1.left && e.clientX <= rect1.right &&
|
const isInContainer1 =
|
||||||
e.clientY >= rect1.top && e.clientY <= rect1.bottom
|
e.clientX >= rect1.left &&
|
||||||
const isInContainer2 = e.clientX >= rect2.left && e.clientX <= rect2.right &&
|
e.clientX <= rect1.right &&
|
||||||
e.clientY >= rect2.top && e.clientY <= rect2.bottom
|
e.clientY >= rect1.top &&
|
||||||
|
e.clientY <= rect1.bottom
|
||||||
|
const isInContainer2 =
|
||||||
|
e.clientX >= rect2.left &&
|
||||||
|
e.clientX <= rect2.right &&
|
||||||
|
e.clientY >= rect2.top &&
|
||||||
|
e.clientY <= rect2.bottom
|
||||||
|
|
||||||
if (!isInContainer1 && !isInContainer2) {
|
if (!isInContainer1 && !isInContainer2) {
|
||||||
isZoomed.value = false
|
isZoomed.value = false
|
||||||
@ -132,8 +222,11 @@ function handleMouseDown(e) {
|
|||||||
if (!container || e.button !== 0) return
|
if (!container || e.button !== 0) return
|
||||||
|
|
||||||
const rect = container.getBoundingClientRect()
|
const rect = container.getBoundingClientRect()
|
||||||
const isInContainer = e.clientX >= rect.left && e.clientX <= rect.right &&
|
const isInContainer =
|
||||||
e.clientY >= rect.top && e.clientY <= rect.bottom
|
e.clientX >= rect.left &&
|
||||||
|
e.clientX <= rect.right &&
|
||||||
|
e.clientY >= rect.top &&
|
||||||
|
e.clientY <= rect.bottom
|
||||||
|
|
||||||
if (!isInContainer) return
|
if (!isInContainer) return
|
||||||
|
|
||||||
@ -142,10 +235,12 @@ function handleMouseDown(e) {
|
|||||||
document.removeEventListener('mousemove', handleMouseMove)
|
document.removeEventListener('mousemove', handleMouseMove)
|
||||||
} else {
|
} else {
|
||||||
isZoomed.value = true
|
isZoomed.value = true
|
||||||
|
nextTick(() => {
|
||||||
zoomedPosition.x = e.clientX
|
zoomedPosition.x = e.clientX
|
||||||
zoomedPosition.y = e.clientY
|
zoomedPosition.y = e.clientY
|
||||||
drawMagnifiedArea(e.clientX, e.clientY, container)
|
drawMagnifiedArea(e.clientX, e.clientY, container)
|
||||||
document.addEventListener('mousemove', handleMouseMove)
|
document.addEventListener('mousemove', handleMouseMove)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="dialogVisible" title="危急值上报详情" width="1000px" style="height: 720px">
|
<el-dialog
|
||||||
|
v-model="dialogVisible"
|
||||||
|
title="危急值上报详情"
|
||||||
|
width="1000px"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:draggable="true"
|
||||||
|
top="30vh"
|
||||||
|
style="height: 720px"
|
||||||
|
>
|
||||||
<div class="modal">
|
<div class="modal">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="left-side">
|
<div class="left-side">
|
||||||
@ -11,7 +21,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
:hollow="true"
|
:hollow="true"
|
||||||
>
|
>
|
||||||
<span style="font-size: 18px;">危急值上报</span>
|
<span style="font-size: 18px">危急值上报</span>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
<el-timeline-item
|
<el-timeline-item
|
||||||
:timestamp="new Date(conreadDateTime).toLocaleString().replace(/\//g, '-')"
|
:timestamp="new Date(conreadDateTime).toLocaleString().replace(/\//g, '-')"
|
||||||
@ -19,7 +29,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
:hollow="true"
|
:hollow="true"
|
||||||
>
|
>
|
||||||
<span style="font-size: 18px;">检查端收到提醒</span>
|
<span style="font-size: 18px">检查端收到提醒</span>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
<el-timeline-item
|
<el-timeline-item
|
||||||
:timestamp="formData.checkDateTime"
|
:timestamp="formData.checkDateTime"
|
||||||
@ -28,7 +38,7 @@
|
|||||||
:hollow="true"
|
:hollow="true"
|
||||||
v-if="isshowwjztime"
|
v-if="isshowwjztime"
|
||||||
>
|
>
|
||||||
<span style="font-size: 18px;">检查端确认危急值</span>
|
<span style="font-size: 18px">检查端确认危急值</span>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
<el-timeline-item
|
<el-timeline-item
|
||||||
:timestamp="formData.checkDateTime"
|
:timestamp="formData.checkDateTime"
|
||||||
@ -37,14 +47,14 @@
|
|||||||
:hollow="true"
|
:hollow="true"
|
||||||
v-if="isshowwjztime"
|
v-if="isshowwjztime"
|
||||||
>
|
>
|
||||||
<span style="font-size: 18px;">检查端发送确认回执</span>
|
<span style="font-size: 18px">检查端发送确认回执</span>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
</el-timeline>
|
</el-timeline>
|
||||||
</div>
|
</div>
|
||||||
<div class="right-side">
|
<div class="right-side">
|
||||||
<!-- 基础信息 -->
|
<!-- 基础信息 -->
|
||||||
<div class="info-section">
|
<div class="info-section">
|
||||||
<div class="section-title"><span style="margin-left: 5px;" >基础信息</span></div>
|
<div class="section-title"><span style="margin-left: 5px">基础信息</span></div>
|
||||||
<el-form label-width="80px">
|
<el-form label-width="80px">
|
||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<el-col :span="9">
|
<el-col :span="9">
|
||||||
@ -84,7 +94,7 @@
|
|||||||
|
|
||||||
<!-- 上报信息 -->
|
<!-- 上报信息 -->
|
||||||
<div class="info-section">
|
<div class="info-section">
|
||||||
<div class="section-title"><span style="margin-left: 5px;" >上报信息</span></div>
|
<div class="section-title"><span style="margin-left: 5px">上报信息</span></div>
|
||||||
<el-form label-width="80px">
|
<el-form label-width="80px">
|
||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<el-col :span="9">
|
<el-col :span="9">
|
||||||
@ -108,17 +118,27 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="危急值内容:" label-width="100px">
|
<el-form-item label="危急值内容:" label-width="100px">
|
||||||
<el-input v-model="warintinfo.warningContent" type="textarea" rows="3" :readonly="isreadonly"/>
|
<el-input
|
||||||
|
v-model="warintinfo.warningContent"
|
||||||
|
type="textarea"
|
||||||
|
rows="3"
|
||||||
|
:readonly="isreadonly"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注:" label-width="100px">
|
<el-form-item label="备注:" label-width="100px">
|
||||||
<el-input v-model="warintinfo.remark" type="textarea" rows="2" :readonly="isreadonly"/>
|
<el-input
|
||||||
|
v-model="warintinfo.remark"
|
||||||
|
type="textarea"
|
||||||
|
rows="2"
|
||||||
|
:readonly="isreadonly"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 处理信息 -->
|
<!-- 处理信息 -->
|
||||||
<div class="info-section">
|
<div class="info-section">
|
||||||
<div class="section-title"><span style="margin-left: 5px;" >处理信息</span></div>
|
<div class="section-title"><span style="margin-left: 5px">处理信息</span></div>
|
||||||
<el-form label-width="80px">
|
<el-form label-width="80px">
|
||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
@ -144,14 +164,20 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="备注:">
|
<el-form-item label="备注:">
|
||||||
<el-input v-model="warintinfo.readremark" type="textarea" rows="2" disabledz :readonly="isreadonly"/>
|
<el-input
|
||||||
|
v-model="warintinfo.readremark"
|
||||||
|
type="textarea"
|
||||||
|
rows="2"
|
||||||
|
disabledz
|
||||||
|
:readonly="isreadonly"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<el-form-item>
|
<div style="text-align: right">
|
||||||
<el-button type="primary" @click="save" :disabled="issaveshow">确认</el-button>
|
<el-button type="primary" @click="save" :disabled="issaveshow">确认</el-button>
|
||||||
<el-button @click="() => (dialogVisible = false)">取消</el-button>
|
<el-button @click="() => (dialogVisible = false)">取消</el-button>
|
||||||
</el-form-item>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,10 +3,20 @@
|
|||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
title="危急值上报"
|
title="危急值上报"
|
||||||
width="600"
|
width="600"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:draggable="true"
|
||||||
|
top="20vh"
|
||||||
style="height: 600px"
|
style="height: 600px"
|
||||||
:before-close="handleClose"
|
|
||||||
>
|
>
|
||||||
<el-form ref="formRef" :model="formData" label-width="100px" v-loading="formLoading">
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="formData"
|
||||||
|
label-width="100px"
|
||||||
|
v-loading="formLoading"
|
||||||
|
class="-ml-14px"
|
||||||
|
>
|
||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="受检者" prop="pname">
|
<el-form-item label="受检者" prop="pname">
|
||||||
@ -50,10 +60,10 @@
|
|||||||
<el-form-item label="备注">
|
<el-form-item label="备注">
|
||||||
<el-input v-model="formData.remark" type="textarea" :rows="5" />
|
<el-input v-model="formData.remark" type="textarea" :rows="5" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<div style="text-align: right">
|
||||||
<el-button type="primary" @click="report" :disabled="isreportshow">上报</el-button>
|
<el-button type="primary" @click="report" :disabled="isreportshow">上报</el-button>
|
||||||
<el-button @click="() => (dialogVisible = false)">取消</el-button>
|
<el-button @click="() => (dialogVisible = false)">取消</el-button>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@ -102,7 +112,8 @@ const opendiag = async (type, row) => {
|
|||||||
isreportshow.value = false
|
isreportshow.value = false
|
||||||
formData.value.receiveDoctor = rowinfo.value.applyhighLevelname
|
formData.value.receiveDoctor = rowinfo.value.applyhighLevelname
|
||||||
//上报医生
|
//上报医生
|
||||||
formData.value.reportDoctor = Profilevo.value.nickname
|
if (Profilevo.value.doctorname) formData.value.reportDoctor = Profilevo.value.doctorname
|
||||||
|
else formData.value.reportDoctor = Profilevo.value.nickname
|
||||||
}
|
}
|
||||||
|
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
|
@ -40,13 +40,22 @@
|
|||||||
:step="1"
|
:step="1"
|
||||||
@input="handleSliderChange"
|
@input="handleSliderChange"
|
||||||
:show-tooltip="false"
|
:show-tooltip="false"
|
||||||
style="margin-left: 30px; width: 96%;"
|
style="margin-left: 30px; width: 96%"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!--纠错功能-->
|
<!--纠错功能-->
|
||||||
<el-dialog v-model="isdialog" title="导联纠错" width="600" @close="close">
|
<el-dialog
|
||||||
|
v-model="isdialog"
|
||||||
|
title="导联纠错"
|
||||||
|
width="600"
|
||||||
|
:modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
top="28vh"
|
||||||
|
:draggable="true"
|
||||||
|
@close="close"
|
||||||
|
>
|
||||||
<div>
|
<div>
|
||||||
<el-checkbox-group v-model="transfer" :min="0" :max="2" class="mycheckbox-group">
|
<el-checkbox-group v-model="transfer" :min="0" :max="2" class="mycheckbox-group">
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
@ -61,7 +70,7 @@
|
|||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 10px">
|
<div style="margin-top: 10px; text-align: right">
|
||||||
<el-button type="primary" @click="clickdl" :disabled="checkes">交换导联</el-button>
|
<el-button type="primary" @click="clickdl" :disabled="checkes">交换导联</el-button>
|
||||||
<el-button type="primary" @click="recovery()">恢复正常</el-button>
|
<el-button type="primary" @click="recovery()">恢复正常</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -73,7 +82,6 @@ import { ref, reactive, onMounted } from 'vue'
|
|||||||
import { number } from 'vue-types'
|
import { number } from 'vue-types'
|
||||||
import sb from './ECGSB.vue'
|
import sb from './ECGSB.vue'
|
||||||
|
|
||||||
|
|
||||||
//读取出来的json
|
//读取出来的json
|
||||||
const text = ref()
|
const text = ref()
|
||||||
const sliderValue = ref(0) // 初始化滑块值
|
const sliderValue = ref(0) // 初始化滑块值
|
||||||
@ -249,7 +257,7 @@ nextTick(async () => {
|
|||||||
const integer = Math.round(adjustedWidth)
|
const integer = Math.round(adjustedWidth)
|
||||||
const awidth = integer * 20
|
const awidth = integer * 20
|
||||||
canvasContainer.style.width = awidth - 20 + 'px'
|
canvasContainer.style.width = awidth - 20 + 'px'
|
||||||
canvasContainer1.style.width = (awidth+41) - 20 + 'px' //加61 是多加3个格子 让边距小一点
|
canvasContainer1.style.width = awidth + 41 - 20 + 'px' //加61 是多加3个格子 让边距小一点
|
||||||
console.log('adjustedWidth 不是整数')
|
console.log('adjustedWidth 不是整数')
|
||||||
}
|
}
|
||||||
if (Number.isInteger(adjustedheight)) {
|
if (Number.isInteger(adjustedheight)) {
|
||||||
@ -321,7 +329,15 @@ watch(
|
|||||||
() => infoParams.Isfd
|
() => infoParams.Isfd
|
||||||
],
|
],
|
||||||
(
|
(
|
||||||
[newIsGridValue, newAnotherValue, newlineratio, newsuduratio, newisrefresh, newiniscorrect,newfd],
|
[
|
||||||
|
newIsGridValue,
|
||||||
|
newAnotherValue,
|
||||||
|
newlineratio,
|
||||||
|
newsuduratio,
|
||||||
|
newisrefresh,
|
||||||
|
newiniscorrect,
|
||||||
|
newfd
|
||||||
|
],
|
||||||
[oldIsGridView, oldAnotherValue, oldlineratio, oldsuduratio, oldisrefresh, oldiscorrect, oldds]
|
[oldIsGridView, oldAnotherValue, oldlineratio, oldsuduratio, oldisrefresh, oldiscorrect, oldds]
|
||||||
) => {
|
) => {
|
||||||
// 检查 isGrid 是否发生变化
|
// 检查 isGrid 是否发生变化
|
||||||
@ -350,8 +366,7 @@ watch(
|
|||||||
if (newiniscorrect !== oldiscorrect) {
|
if (newiniscorrect !== oldiscorrect) {
|
||||||
isdialog.value = newiniscorrect
|
isdialog.value = newiniscorrect
|
||||||
}
|
}
|
||||||
if(newfd!==oldds)
|
if (newfd !== oldds) {
|
||||||
{
|
|
||||||
FD.value = newfd
|
FD.value = newfd
|
||||||
console.log(FD.value)
|
console.log(FD.value)
|
||||||
}
|
}
|
||||||
@ -601,13 +616,13 @@ function begin(c_canvas, beatArray) {
|
|||||||
beatArray.forEach((dataArray, index) => {
|
beatArray.forEach((dataArray, index) => {
|
||||||
if (index <= 6) {
|
if (index <= 6) {
|
||||||
const x = 0
|
const x = 0
|
||||||
const y = (offset - dataArray[index - 1] * 0.025)
|
const y = offset - dataArray[index - 1] * 0.025
|
||||||
ctx.beginPath()
|
ctx.beginPath()
|
||||||
ctx.moveTo(x, y)
|
ctx.moveTo(x, y)
|
||||||
ctx.lineTo(x + 5, y)
|
ctx.lineTo(x + 5, y)
|
||||||
ctx.moveTo(x + 5, (y - dyMap[infoParams.lineratio]))//上面的横线
|
ctx.moveTo(x + 5, y - dyMap[infoParams.lineratio]) //上面的横线
|
||||||
ctx.lineTo(x + 15, (y - dyMap[infoParams.lineratio]))//上面的横线
|
ctx.lineTo(x + 15, y - dyMap[infoParams.lineratio]) //上面的横线
|
||||||
ctx.moveTo(x + 5, (y - dyMap[infoParams.lineratio]))//左边的竖线
|
ctx.moveTo(x + 5, y - dyMap[infoParams.lineratio]) //左边的竖线
|
||||||
ctx.lineTo(x + 5, y) //左边的竖线
|
ctx.lineTo(x + 5, y) //左边的竖线
|
||||||
ctx.moveTo(x + 15, y - dyMap[infoParams.lineratio]) //右边的竖线
|
ctx.moveTo(x + 15, y - dyMap[infoParams.lineratio]) //右边的竖线
|
||||||
ctx.lineTo(x + 15, y) //右边的竖线
|
ctx.lineTo(x + 15, y) //右边的竖线
|
||||||
|
Loading…
Reference in New Issue
Block a user