Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
闫晓茹 2024-06-27 17:35:51 +08:00
commit 7734622c9d
7 changed files with 150 additions and 112 deletions

View File

@ -50,3 +50,12 @@ export function updateRouteCheckStatus(data) {
data
})
}
//画像信息接口
export function getPortaitInfo(patientId) {
return request({
url: `/manage/signRecord/getPortaitInfo/${patientId}`,
method: 'get',
})
}

View File

@ -2,17 +2,33 @@ import request from '@/utils/request'
//新增
export function insertScriptEdgeNode(data) {
return request({
url: '/manage/script/updateScriptEdgeNode',
method: 'post',
data: data
})
return request({
url: '/manage/script/updateScriptEdgeNode',
method: 'post',
data: data
})
}
// 话术列表
export function selectScriptEdgeNode(id) {
return request({
url: `/manage/script/selectScriptEdgeNode?id=${id}`,
method: 'get'
})
}
// 上传
export function uploadScriptInfo(data) {
return request({
url: `/manage/script/selectScriptEdgeNode?id=${id}`,
method: 'get'
url: '/manage/script/uploadScriptInfo',
method: 'post',
data: data
})
}
// 修改接口
export function edit(data) {
return request({
url: '/manage/script/edit',
method: 'put',
data: data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -1,17 +1,17 @@
<template>
<div style="background-color: #f1f3f5">
<div style="background-color: #f1f3f5;padding-top:16px">
<div slot="footer" class="topfooter">
<el-tabs v-model="activeNametab" @tab-click="handleClick">
<el-tab-pane label="画像审核" name="portrait"></el-tab-pane>
<el-tab-pane label="路径审核" name="route"></el-tab-pane>
</el-tabs>
<div class="right" v-if="activeNametab == 'portrait'">
<el-button size="mini" @click="cancel"></el-button>
<el-button size="mini" @click="cancel">返回</el-button>
<el-button size="mini" type="primary" @click="auditing">审核通过</el-button>
<el-button size="mini" type="info" @click="ignore">忽略</el-button>
</div>
<div class="right" v-else>
<el-button size="mini" @click="cancel"></el-button>
<el-button size="mini" @click="cancel">返回</el-button>
<el-button size="mini" type="primary" @click="auditing"
v-if="routeCheckStatus != 'AGREE' && routeCheckStatus != 'DISAGREE'">审核通过</el-button>
<el-button size="mini" type="info" @click="ignore"
@ -293,7 +293,6 @@ export default {
width: 98%;
margin: 0 auto;
height: 60px;
padding: 20px 0 0;
.right {
/* float: right; */
@ -301,7 +300,7 @@ export default {
height: 35px;
position: absolute;
right: 15px;
top: 8px;
top: 12px;
}
}
@ -327,12 +326,12 @@ export default {
display: flex;
justify-content: space-evenly;
// padding: 20px 0;
height: calc(100vh - 119px);
height: calc(100vh - 159px);
.cardleft {
width: 35%;
background-color: #fff;
overflow: scroll;
overflow: auto;
padding: 20px;
.title {
@ -384,7 +383,7 @@ export default {
}
.cardright {
overflow: scroll;
overflow: auto;
background-color: #fff;
width: 62%;
padding: 20px;

View File

@ -216,33 +216,20 @@ export default {
//
TemporaryStorage() {
var emptyItems = []
var form={
groupingValues:[]
}
form.groupingValues=this.getParamslistData
emptyItems = form.groupingValues.flat().filter(f => f.fieldValue == "" || !f.fieldValue)
console.log(form, 'this.form')
// this.getParamslistData.forEach(e => {
// e.forEach(el => {
// el.routeId = this.itemdata.routeId
// el.routeName = this.itemdata.routeName
// el.routeNodeId = this.querytParams.id
// el.routeNodeName = this.itemdata.routeNodeName
// el.taskPartitionCode = this.itemdata.taskPartitionCode
// el.taskPartitionDictId = this.itemdata.taskPartitionDictId
// el.taskPartitionDictName = this.itemdata.taskPartitionDictName
// el.taskTypeCode = this.itemdata.taskTypeCode
// el.taskTypeId = this.itemdata.taskTypeId
// el.taskTypeName = this.itemdata.taskTypeName
// })
// })
console.log(emptyItems, 'emptyItems')
// emptyItems = form.groupingValues.flat().filter(f => f.fieldValue == "" || !f.fieldValue)
// console.log(form, 'this.form')
// console.log(emptyItems, 'emptyItems')
// return
if (emptyItems && emptyItems.length > 0) {
this.$modal.msgError("请填写完整,再进行提交");
} else {
// if (emptyItems && emptyItems.length > 0) {
// this.$modal.msgError(",");
// } else {
this.$confirm('是否确认提交?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
@ -267,7 +254,7 @@ export default {
loading.close();
});
})
}
// }
},
additem(index) {

View File

@ -48,77 +48,58 @@
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/zhu.png" alt="">
<span>
hover 激活
{{ list.mainDiagnosis ? list.mainDiagnosis : '' }}
</span>
</div>
</div>
<div class="text">
<!-- <div class="text">
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/ci.png" alt="">
<span>
hover 激活
</span>
</div>
</div>
</div> -->
</div>
<el-descriptions title="手术信息" style="margin: 30px 0 0;" v-if="list.surgicalName" />
<div class="texts" v-if="list.surgicalName">
<div class="text">
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/ci.png" alt="">
<img src="../../../assets/pathReview/shoushu.png" alt="">
<span>
hover 激活
</span>
</div>
</div>
<div class="text">
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/ci.png" alt="">
<span>
hover 激活
</span>
</div>
</div>
<div class="text">
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/ci.png" alt="">
<span>
hover 激活
{{ list.surgicalName }}
</span>
</div>
</div>
</div>
<el-descriptions title="用药情况" style="margin: 30px 0 0;" />
<div class="texts">
<div class="text">
<div class="text" v-for="(item, index) in list.drugInfo" :key="index">
<el-popover placement="bottom" width="400" trigger="hover">
<el-descriptions title="用户信息" :column="2">
<el-descriptions-item label="用药频次">每日2次</el-descriptions-item>
<el-descriptions-item label="药品用法">1</el-descriptions-item>
<el-descriptions-item label="注意事项"></el-descriptions-item>
<el-descriptions-item label="给药方式"></el-descriptions-item>
<el-descriptions-item label="用药时长"></el-descriptions-item>
<el-descriptions-item label="用药途径"></el-descriptions-item>
<el-descriptions :title="item.DRUGNAME" :column="2">
<el-descriptions-item label="用药频次">
{{ item.APPLYFREQUENCY ? item.APPLYFREQUENCY : '' }}
</el-descriptions-item>
<el-descriptions-item label="药品用法">
{{ item.DOSAGE ? item.DOSAGE : '' }}
</el-descriptions-item>
<el-descriptions-item label="注意事项">
{{ item.CONTRAINDICATIONS ? item.CONTRAINDICATIONS : '' }}
</el-descriptions-item>
<el-descriptions-item label="给药方式">
{{ item.APPLYFREQUENCY ? item.APPLYFREQUENCY : '' }}
</el-descriptions-item>
<el-descriptions-item label="用药时长">
{{ item.APPLYREMARK ? item.APPLYREMARK : '' }}
</el-descriptions-item>
<el-descriptions-item label="用药途径">
{{ item.APPLYWAY ? item.APPLYWAY : '' }}
</el-descriptions-item>
</el-descriptions>
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/yaopin.png" alt="">
<span>
hover 激活
</span>
</div>
</el-popover>
</div>
<div class="text">
<el-popover placement="bottom" width="400" trigger="hover">
<el-descriptions title="用户信息" :column="2">
<el-descriptions-item label="用药频次">每日2次</el-descriptions-item>
<el-descriptions-item label="药品用法">1</el-descriptions-item>
<el-descriptions-item label="注意事项"></el-descriptions-item>
<el-descriptions-item label="给药方式"></el-descriptions-item>
<el-descriptions-item label="用药时长"></el-descriptions-item>
<el-descriptions-item label="用药途径"></el-descriptions-item>
</el-descriptions>
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/yaopin.png" alt="">
<span>
hover 激活
{{ item.DRUGNAME ? item.DRUGNAME : '' }}
</span>
</div>
</el-popover>
@ -126,19 +107,14 @@
</div>
<el-descriptions title="复诊日期及科室" style="margin: 30px 0 0;" />
<div class="texts">
<div class="text">
<div class="text" v-for="(item, index) in list.consultationInfo" :key="index">
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/riqi.png" alt="">
<span>
hover 激活
{{ item.CONSULTATIONDATE ? item.CONSULTATIONDATE : '' }}
</span>
</div>
</div>
<div class="text">
<div slot="reference" class="reference">
<img src="../../../assets/pathReview/riqi.png" alt="">
<span>
hover 激活
{{ item.CONSULTATIONDEPARTMENT ? ' | ' + item.CONSULTATIONDEPARTMENT : '' }}
</span>
</div>
</div>
@ -227,7 +203,7 @@
<div class="lefttext">
开始节点:
</div>
<div class="lefttext" style="width:38%">
<div class="lefttext" style="width:22%">
{{ item.routeNodeNameCN }}
{{ item.routeNodeDay }}
@ -235,15 +211,13 @@
<div class="lefttext">
执行时间:
</div>
<div class="lefttext" style="width:38%">
<div class="lefttext" style="width:17%">
{{ item.executeTime }}
</div>
</div>
<div class="tabtext">
<div class="lefttext">
推送方式:
</div>
<div class="righttext">
<div class="lefttext" style="width:25%">
<span v-if="item.messagePushSign == 1">
短信
</span>
@ -257,7 +231,7 @@
</div>
</div>
<div class="tabtexts">
<div class="tabtext" style="align-items: center;" v-if="item.messagePushSign == 1">
<div class="tabtext" v-if="item.messagePushSign == 1">
<div class="lefttext">
短信模板
</div>
@ -265,7 +239,7 @@
{{ item.messageNodeContent }}
</div>
</div>
<div class="tabtext" style="align-items: center;" v-if="item.officialPushSign == 1">
<div class="tabtext" v-if="item.officialPushSign == 1">
<div class="lefttext">
公众号模板
</div>
@ -273,7 +247,7 @@
{{ item.officialNodeContent }}
</div>
</div>
<div class="tabtext" style="align-items: center;" v-if="item.AppletPushSign == 1">
<div class="tabtext" v-if="item.AppletPushSign == 1">
<div class="lefttext">
小程序模板
</div>
@ -281,7 +255,7 @@
{{ item.appletNodeContent }}
</div>
</div>
<div class="tabtext" style="align-items: center;" v-if="item.templateType == 'SCRIPT'">
<div class="tabtext" v-if="item.templateType == 'SCRIPT'">
<div class="lefttext">
话术
</div>
@ -341,7 +315,8 @@
import {
getByPatientId,
getRouteAuditinfo,
getRouteNodeInfo
getRouteNodeInfo,
getPortaitInfo
} from '@/api/manage/Auditing.js'
import { getAge } from "@/utils/age";
import questionopennew from './questionopennew.vue';
@ -383,7 +358,7 @@ export default {
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
});
getByPatientId(this.$route.query.patientId).then(res => {
getPortaitInfo(this.$route.query.patientId).then(res => {
res.data.birthDate ? res.data.age = getAge(res.data.birthDate) : ''
this.list = res.data
})
@ -499,7 +474,7 @@ export default {
width: 100%;
background-color: #fff;
padding: 0 10px;
margin-bottom: 12px;
margin-top: 12px;
border-radius: 6px;
}
@ -548,7 +523,7 @@ export default {
display: flex;
justify-content: space-evenly;
// padding: 20px 0;
height: calc(100vh - 119px);
height: calc(100vh - 159px);
.cardleft {
width: 35%;
@ -608,7 +583,7 @@ export default {
overflow: auto;
background-color: rgb(241, 243, 245);
width: 62%;
padding: 10px;
padding: 10px 0;
font-size: 14px;
.nodetitle {

View File

@ -399,12 +399,12 @@
<!-- 下载图片 -->
<section class="save-as-image-dialog">
<el-dialog
title="下载图片"
title="生成图片"
:visible.sync="saveAsImageDialogVisible"
width="360px"
>
<el-form label-width="100px" label-position="top">
<el-form-item label="选择图片格式">
<el-form-item label="图片格式">
<el-select v-model="saveAsImageFormat">
<el-option label="jpg" value="jpg">
<span style="float: left">jpg</span>
@ -412,12 +412,12 @@
>白色背景</span
>
</el-option>
<el-option label="png" value="png">
<!-- <el-option label="png" value="png">
<span style="float: left">png</span>
<span style="float: right; color: #8492a6; font-size: 13px"
>透明背景</span
>
</el-option>
</el-option> -->
</el-select>
</el-form-item>
</el-form>
@ -465,9 +465,10 @@
<script>
import G6Editor from "@antv/g6-editor";
import mixin from "../mianview/mixin";
import { insertScriptEdgeNode, selectScriptEdgeNode } from "@/api/system/preview";
import { insertScriptEdgeNode, selectScriptEdgeNode, uploadScriptInfo, edit } from "@/api/system/preview";
import Cookies from 'js-cookie'
import { construct } from "netflix-conductor-json-tree/dist/index";
export default {
name: "VueG6Editor",
mixins: [mixin],
@ -787,6 +788,35 @@ export default {
this.editor.getCurrentPage().hideGrid();
}
},
// data:image/png;base64,Base64File
base64ToFile(base64Data, filename) {
const now = new Date();
const nowdata = now.toTimeString().split(' ')[0]; //
console.log(nowdata,'nowdata')
const nowdatanew=nowdata.replace(/:/g, '-')
// this.attributeName.replace(/:/g, '-');
const name = Cookies.get('username')
// base64
const base64Regex = /^data:([^;]+);base64,/;
const matches = base64Data.match(base64Regex);
// const mimeType = matches ? matches[1] : '';
const mimeType = 'image/jpg';
const base64String = base64Data.replace(base64Regex, ''); // base64
// base64
const binaryString = atob(base64String);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
// Blob
const blob = new Blob([bytes], { type: mimeType });
// File
const file = new File([blob], nowdatanew+name + '.jpg', { type: mimeType });
return file;
},
//
saveAsImage() {
let newCanvas;
@ -804,6 +834,28 @@ export default {
newCanvas = this.editor.getCurrentPage().saveImage();
}
let imageDataURL = newCanvas.toDataURL();
console.log(imageDataURL, 'imageDataURL')
const file = this.base64ToFile(imageDataURL);
console.log(file, '0000000000')
// return
let formDatanew = new FormData();
formDatanew.append("file", file);
console.log(formDatanew, 'formDatanew')
uploadScriptInfo(formDatanew).then(response => {
if (response.code == 200) {
var obj={
id:Cookies.get('id'),
scriptFilePath:response.imgUrl
}
edit(obj).then(response => {
if (response.code == 200) {
}
});
}
});
// return file;
let downloadLink = document.createElement("a");
downloadLink.download = "图片.jpg";
downloadLink.href = imageDataURL;