Compare commits
9 Commits
Author | SHA1 | Date |
---|---|---|
|
900e7255be | 11 months ago |
|
dea9bfe22a | 11 months ago |
|
514bb51fc0 | 11 months ago |
|
1af1bae4d2 | 11 months ago |
|
03d6e2209e | 11 months ago |
|
c460436aae | 11 months ago |
|
1ebb244765 | 11 months ago |
|
89406bb0b0 | 11 months ago |
|
03619868c9 | 11 months ago |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 959 B |
@ -0,0 +1,11 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="heli-xuanzhong" clip-path="url(#clip0_542_564)">
|
||||
<path id="Vector" d="M10 18.3337C12.3012 18.3337 14.3845 17.4009 15.8925 15.8929C17.4006 14.3848 18.3333 12.3015 18.3333 10.0003C18.3333 7.69916 17.4006 5.61583 15.8925 4.10777C14.3845 2.59973 12.3012 1.66699 10 1.66699C7.69884 1.66699 5.6155 2.59973 4.10745 4.10777C2.59941 5.61583 1.66667 7.69916 1.66667 10.0003C1.66667 12.3015 2.59941 14.3848 4.10745 15.8929C5.6155 17.4009 7.69884 18.3337 10 18.3337Z" stroke="#00975E" stroke-width="1.5" stroke-linejoin="round"/>
|
||||
<path id="Vector_2" d="M6.66667 10L9.16667 12.5L14.1667 7.5" stroke="#00975E" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_542_564">
|
||||
<rect width="20" height="20" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 880 B |
@ -0,0 +1,12 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="buheli-xuanzhong" clip-path="url(#clip0_542_568)">
|
||||
<path id="Vector" d="M10 18.3337C14.6024 18.3337 18.3333 14.6027 18.3333 10.0003C18.3333 5.39795 14.6024 1.66699 10 1.66699C5.39762 1.66699 1.66666 5.39795 1.66666 10.0003C1.66666 14.6027 5.39762 18.3337 10 18.3337Z" stroke="#FF3429" stroke-width="1.5" stroke-linejoin="round"/>
|
||||
<path id="Vector_2" d="M12.357 7.64258L7.64291 12.3566" stroke="#FF3429" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector_3" d="M7.64304 7.64258L12.3571 12.3566" stroke="#FF3429" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_542_568">
|
||||
<rect width="20" height="20" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 829 B |
@ -0,0 +1,11 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="heli" clip-path="url(#clip0_542_573)">
|
||||
<path id="Vector" d="M10 18.3337C12.3012 18.3337 14.3845 17.4009 15.8925 15.8929C17.4006 14.3848 18.3333 12.3015 18.3333 10.0003C18.3333 7.69916 17.4006 5.61583 15.8925 4.10777C14.3845 2.59973 12.3012 1.66699 10 1.66699C7.69884 1.66699 5.6155 2.59973 4.10745 4.10777C2.59941 5.61583 1.66667 7.69916 1.66667 10.0003C1.66667 12.3015 2.59941 14.3848 4.10745 15.8929C5.6155 17.4009 7.69884 18.3337 10 18.3337Z" stroke="#999999" stroke-width="1.5" stroke-linejoin="round"/>
|
||||
<path id="Vector_2" d="M6.66667 10L9.16667 12.5L14.1667 7.5" stroke="#999999" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_542_573">
|
||||
<rect width="20" height="20" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 870 B |
@ -0,0 +1,12 @@
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="buheli" clip-path="url(#clip0_542_577)">
|
||||
<path id="Vector" d="M10 18.3337C14.6024 18.3337 18.3333 14.6027 18.3333 10.0003C18.3333 5.39795 14.6024 1.66699 10 1.66699C5.39762 1.66699 1.66666 5.39795 1.66666 10.0003C1.66666 14.6027 5.39762 18.3337 10 18.3337Z" stroke="#999999" stroke-width="1.5" stroke-linejoin="round"/>
|
||||
<path id="Vector_2" d="M12.357 7.64258L7.64291 12.3566" stroke="#999999" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="Vector_3" d="M7.64304 7.64258L12.3571 12.3566" stroke="#999999" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_542_577">
|
||||
<rect width="20" height="20" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 819 B |
After Width: | Height: | Size: 9.4 KiB |
@ -0,0 +1,215 @@
|
||||
<script setup lang="ts">
|
||||
import { nextTick, reactive, ref } from "vue";
|
||||
import { FormInstance } from "element-plus";
|
||||
import { message } from "@/utils/message";
|
||||
// import { useRoute } from "vue-router";
|
||||
defineOptions({
|
||||
name: "AddCase"
|
||||
});
|
||||
const isEditFlag = ref(false);
|
||||
const diseaseList = ref([]);
|
||||
const id = ref("");
|
||||
const dialogVisible = ref(false);
|
||||
|
||||
const formData = reactive({
|
||||
patientGender: "",
|
||||
directoryDesc: "",
|
||||
patientSelfDesc: "",
|
||||
patientAge: "",
|
||||
diseaseId: ""
|
||||
});
|
||||
const ruleFormRef = ref<FormInstance>();
|
||||
const rules = {
|
||||
patientGender: [{ required: true, message: "请选择", trigger: "change" }],
|
||||
directoryDesc: [{ required: true, message: "请输入", trigger: "change" }]
|
||||
};
|
||||
defineExpose({
|
||||
async open(item) {
|
||||
dialogVisible.value = true;
|
||||
await nextTick();
|
||||
if (item) {
|
||||
for (const key in item) {
|
||||
// eslint-disable-next-line no-prototype-builtins
|
||||
if (formData.hasOwnProperty(key)) {
|
||||
formData[key] = item[key];
|
||||
}
|
||||
}
|
||||
isEditFlag.value = true;
|
||||
id.value = item.id;
|
||||
}
|
||||
}
|
||||
});
|
||||
const resetForm = () => {
|
||||
ruleFormRef.value.resetFields();
|
||||
};
|
||||
const closeDialog = () => {
|
||||
dialogVisible.value = false;
|
||||
isEditFlag.value = false;
|
||||
resetForm();
|
||||
};
|
||||
const emit = defineEmits(["update"]);
|
||||
const reset = () => {
|
||||
ruleFormRef.value.resetFields();
|
||||
};
|
||||
|
||||
const save = (formEl: FormInstance | undefined) => {
|
||||
formEl.validate(async (valid, fields) => {
|
||||
if (valid) {
|
||||
// formData.result = refWangEditor.value.valueHtml;
|
||||
// const params = {
|
||||
// ...formData,
|
||||
// result: refWangEditor.value.valueHtml,
|
||||
// diseaseId: route.query.id
|
||||
// };
|
||||
if (isEditFlag.value) {
|
||||
// const res: any = await updateSupportInspect({
|
||||
// ...params,
|
||||
// id: id.value
|
||||
// });
|
||||
if (res.code === 200) {
|
||||
message("修改成功", { type: "success" });
|
||||
id.value = "";
|
||||
}
|
||||
} else {
|
||||
// const res: any = await addSupportInspect(params);
|
||||
// if (res.code === 200) {
|
||||
// message("新增成功", { type: "success" });
|
||||
// }
|
||||
}
|
||||
dialogVisible.value = false;
|
||||
emit("update");
|
||||
} else {
|
||||
return fields;
|
||||
}
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<el-drawer
|
||||
:size="650"
|
||||
append-to-body
|
||||
v-model="dialogVisible"
|
||||
:show-close="false"
|
||||
:with-header="false"
|
||||
:before-close="closeDialog"
|
||||
custom-class="AddEdit"
|
||||
>
|
||||
<div class="AddEdit">
|
||||
<div class="header-title">
|
||||
<div class="tip" />
|
||||
<span>添加电子病历项</span>
|
||||
</div>
|
||||
<div class="line" />
|
||||
<el-form
|
||||
ref="ruleFormRef"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
label-width="80px"
|
||||
>
|
||||
<el-form-item label="选择类目" prop="directoryDesc">
|
||||
<el-select
|
||||
size="large"
|
||||
filterable
|
||||
clearable
|
||||
v-model="formData.diseaseId"
|
||||
class="form_select"
|
||||
style="width: 100%"
|
||||
placeholder="请选择选择类目"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in diseaseList"
|
||||
:key="item.id"
|
||||
:label="item.diseaseName"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="patientGender">
|
||||
<el-input size="large" v-model="formData.patientSelfDesc" />
|
||||
</el-form-item>
|
||||
<el-form-item label="内容" prop="patientSelfDesc">
|
||||
<el-input size="large" v-model="formData.patientSelfDesc" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="footer_btn">
|
||||
<div class="reset" @click="reset()">重置</div>
|
||||
<div class="main" @click="save(ruleFormRef)">确定</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.AddEdit {
|
||||
:deep(.el-form-item__label) {
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.header-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
// border-left: 6px solid #4287ff;
|
||||
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #2b3f54;
|
||||
|
||||
.tip {
|
||||
width: 6px;
|
||||
height: 20px;
|
||||
margin-right: 10px;
|
||||
line-height: 20px;
|
||||
background: #4287ff;
|
||||
}
|
||||
}
|
||||
|
||||
.line {
|
||||
position: relative;
|
||||
left: -20px;
|
||||
width: 605px;
|
||||
height: 1px;
|
||||
margin: 24px 0;
|
||||
background: rgb(91 139 255 / 30%);
|
||||
}
|
||||
|
||||
.footer_btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
margin-top: 16px;
|
||||
|
||||
.reset {
|
||||
width: 188px;
|
||||
height: 48px;
|
||||
margin-right: 24px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 48px;
|
||||
color: #4287ff;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
border: 1px solid #4287ff;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 188px;
|
||||
height: 48px;
|
||||
font-size: 16px;
|
||||
line-height: 48px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
background: #4287ff;
|
||||
border: 1px solid #4287ff;
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,87 @@
|
||||
<script setup lang="ts">
|
||||
import ElectronicCase from "./compontents/ElectronicCase/index.vue";
|
||||
import { ref } from "vue";
|
||||
const activedIndex = ref(0);
|
||||
const navList = ref([
|
||||
{
|
||||
name: "电子病历"
|
||||
},
|
||||
{
|
||||
name: "临床问诊"
|
||||
},
|
||||
{
|
||||
name: "临床诊断"
|
||||
},
|
||||
{
|
||||
name: "诊断依据"
|
||||
},
|
||||
{
|
||||
name: "处置计划"
|
||||
}
|
||||
]);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="editCase main-table">
|
||||
<div class="editCase_nav">
|
||||
<div
|
||||
class="editCase_nav_item"
|
||||
:class="[activedIndex === index ? 'actived' : '']"
|
||||
v-for="(item, index) in navList"
|
||||
:key="index"
|
||||
>
|
||||
<div class="line" />
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<ElectronicCase v-if="activedIndex === 0" />
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.editCase {
|
||||
display: flex;
|
||||
flex-direction: row !important;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
|
||||
.editCase_nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
width: 168px;
|
||||
// justify-content: center;
|
||||
height: 100%;
|
||||
padding-top: 24px;
|
||||
border-right: 1px solid #d9d9d9;
|
||||
|
||||
.editCase_nav_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 120px;
|
||||
height: 53px;
|
||||
font-size: 16px;
|
||||
color: #999;
|
||||
cursor: pointer;
|
||||
border-radius: 8px;
|
||||
|
||||
.line {
|
||||
width: 4px;
|
||||
height: 17px;
|
||||
margin-right: 12px;
|
||||
background: #999;
|
||||
border-radius: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.actived {
|
||||
color: #4287ff;
|
||||
background: linear-gradient(90deg, rgb(66 135 255 / 10%) 0%, #fff 100%);
|
||||
|
||||
.line {
|
||||
background: #4287ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,133 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted, ref } from "vue";
|
||||
import AddEdit from "./addEdit.vue";
|
||||
import { Edit, Delete } from "@element-plus/icons-vue";
|
||||
import { downLoadUrl } from "@/utils/auth";
|
||||
const dataList = ref([]);
|
||||
const activedId = ref("");
|
||||
const AddEditRef = ref();
|
||||
const add = () => {
|
||||
AddEditRef.value.open();
|
||||
};
|
||||
|
||||
const onMouseenter = id => {
|
||||
activedId.value = id;
|
||||
};
|
||||
const onMouseleave = () => {
|
||||
activedId.value = "";
|
||||
};
|
||||
const handleCommand = async (e: any) => {
|
||||
if (e === "edit") {
|
||||
// EditMaterialsRef.value.open(0, item);
|
||||
} else {
|
||||
// const res: any = await deleteMaterial({
|
||||
// id: item.id
|
||||
// });
|
||||
// if (res.code === 200) {
|
||||
// message("删除成功", { type: "success" });
|
||||
// getData();
|
||||
// }
|
||||
}
|
||||
};
|
||||
const getData = () => {};
|
||||
onMounted(() => {
|
||||
getData();
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="digitalHuman main-table">
|
||||
<div class="main-table-title">
|
||||
<div class="title">
|
||||
<div class="line" />
|
||||
<span> 数字人生成器 </span>
|
||||
</div>
|
||||
</div>
|
||||
<el-row class="mb-6">
|
||||
<el-button size="large" class="btn" @click="add" type="primary"
|
||||
>生成数字人</el-button
|
||||
>
|
||||
</el-row>
|
||||
<div v-show="dataList.length > 0" class="img_card_list">
|
||||
<div
|
||||
class="img_card_item"
|
||||
v-for="(item, index) in dataList"
|
||||
:key="index"
|
||||
@mouseenter.prevent="onMouseenter(item.id)"
|
||||
@mouseleave.prevent="onMouseleave()"
|
||||
>
|
||||
<div class="folder_img">
|
||||
<img :src="downLoadUrl(item.fileResourceId)" alt="" />
|
||||
</div>
|
||||
<div :title="item.materialName" class="name">
|
||||
{{ item.materialName }}
|
||||
</div>
|
||||
<el-dropdown
|
||||
@command="e => handleCommand(e, item)"
|
||||
trigger="click"
|
||||
class="icon"
|
||||
>
|
||||
<moreIcon v-show="activedId === item.id" />
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="edit" :icon="Edit">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item command="del" :icon="Delete">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</div>
|
||||
<AddEdit ref="AddEditRef" />
|
||||
</div>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
.digitalHuman {
|
||||
.img_card_list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.img_card_item {
|
||||
position: relative;
|
||||
width: 190px;
|
||||
height: 230px;
|
||||
margin-right: 16px;
|
||||
margin-bottom: 16px;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
border-radius: 0 0 12px 12px;
|
||||
box-shadow: 0 2px 4px 0 rgb(0 0 0 / 8%);
|
||||
|
||||
.icon {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
right: 12px;
|
||||
}
|
||||
|
||||
.folder_img {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 190px;
|
||||
background: #f5f5f5;
|
||||
|
||||
img {
|
||||
width: 130px;
|
||||
height: 130px;
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
width: 200px;
|
||||
padding: 8px 16px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|