Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
7734622c9d
@ -50,3 +50,12 @@ export function updateRouteCheckStatus(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//画像信息接口
|
||||
export function getPortaitInfo(patientId) {
|
||||
return request({
|
||||
url: `/manage/signRecord/getPortaitInfo/${patientId}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
@ -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
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
BIN
src/assets/pathReview/shoushu.png
Normal file
BIN
src/assets/pathReview/shoushu.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
@ -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;
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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,格式的Base64字符串转换为File对象
|
||||
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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user