parent
109b526cab
commit
d09210a735
@ -0,0 +1,103 @@
|
|||||||
|
<!--
|
||||||
|
* @description: 提示词模板
|
||||||
|
* @fileName: index
|
||||||
|
* @author: 17076
|
||||||
|
* @date: 2024/11/11-上午9:56
|
||||||
|
* @version: V1.0.0
|
||||||
|
-->
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<el-drawer
|
||||||
|
:size="650"
|
||||||
|
append-to-body
|
||||||
|
v-model="drawerOption.show"
|
||||||
|
: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="formRef"
|
||||||
|
:model="forms"
|
||||||
|
label-width="80px"
|
||||||
|
label-position="top"
|
||||||
|
>
|
||||||
|
<el-form-item label="提示词模板" prop="medicalRecordAi">
|
||||||
|
<el-input
|
||||||
|
v-model="forms.medicalRecordAi"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 5 }"
|
||||||
|
placeholder="请输入提示词模板"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<el-button plain size="large" @click="reset" style="width: 120px"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="large"
|
||||||
|
@click="save(formRef)"
|
||||||
|
style="width: 120px"
|
||||||
|
>确定</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-drawer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { FormInstance, ElMessage } from "element-plus";
|
||||||
|
import { uploadMedicalAiById } from "@/api/medicalRecord";
|
||||||
|
// 抽屉配置
|
||||||
|
const drawerOption = ref({
|
||||||
|
show: false
|
||||||
|
});
|
||||||
|
const formRef = ref<FormInstance>();
|
||||||
|
const forms = ref({
|
||||||
|
medicalRecordAi: undefined,
|
||||||
|
medicalId: undefined
|
||||||
|
});
|
||||||
|
const emit = defineEmits(["update"]);
|
||||||
|
// 关闭抽屉
|
||||||
|
function closeDialog() {
|
||||||
|
drawerOption.value.show = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
// 重置
|
||||||
|
function reset() {
|
||||||
|
formRef.value.resetFields();
|
||||||
|
}
|
||||||
|
// 确定
|
||||||
|
function save(formEl: FormInstance | undefined) {
|
||||||
|
formEl.validate(async valid => {
|
||||||
|
if (valid) {
|
||||||
|
const res: any = await uploadMedicalAiById({
|
||||||
|
medicalRecId: forms.value.medicalId,
|
||||||
|
medicalRecAi: forms.value.medicalRecordAi
|
||||||
|
});
|
||||||
|
if (res.code === 200) {
|
||||||
|
ElMessage.success(res.msg || "设置成功!");
|
||||||
|
drawerOption.value.show = false;
|
||||||
|
emit.apply("update", [true]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
defineExpose({
|
||||||
|
show(data: any) {
|
||||||
|
forms.value = Object.assign({}, data);
|
||||||
|
drawerOption.value.show = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss"></style>
|
@ -0,0 +1,159 @@
|
|||||||
|
<!--
|
||||||
|
* @description: 生成数字人
|
||||||
|
* @fileName: CreateDigitalHuman
|
||||||
|
* @author: 17076
|
||||||
|
* @date: 2024/11/6-上午9:59
|
||||||
|
* @version: V1.0.0
|
||||||
|
-->
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { FormInstance, ElMessage } from "element-plus";
|
||||||
|
import { Plus } from "@element-plus/icons-vue";
|
||||||
|
import { createHuman } from "@/api/medicalRecord";
|
||||||
|
// 抽屉配置
|
||||||
|
const drawerOption = ref({
|
||||||
|
show: false
|
||||||
|
});
|
||||||
|
const formRef = ref<FormInstance>();
|
||||||
|
const upload = ref();
|
||||||
|
let forms = ref({
|
||||||
|
image: undefined,
|
||||||
|
file: undefined,
|
||||||
|
medicalId: undefined
|
||||||
|
});
|
||||||
|
const rules = ref({
|
||||||
|
file: [{ required: true, message: "请上传文件", trigger: "blur" }]
|
||||||
|
});
|
||||||
|
const emit = defineEmits(["update"]);
|
||||||
|
// 关闭抽屉
|
||||||
|
function closeDialog() {
|
||||||
|
drawerOption.value.show = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
// 重置
|
||||||
|
function reset() {
|
||||||
|
formRef.value.resetFields();
|
||||||
|
}
|
||||||
|
// 确定
|
||||||
|
function save(formEl: FormInstance | undefined) {
|
||||||
|
formEl.validate(async valid => {
|
||||||
|
if (valid) {
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("file", forms.value.file);
|
||||||
|
formData.append("medicalId", forms.value.medicalId);
|
||||||
|
const res: any = await createHuman(formData);
|
||||||
|
if (res.code === 200) {
|
||||||
|
ElMessage.success(res.msg || "上传成功,数字人生成中");
|
||||||
|
drawerOption.value.show = false;
|
||||||
|
emit.apply("update", [true]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 选择图片
|
||||||
|
const handleOnChange = () => {
|
||||||
|
upload.value.value = null;
|
||||||
|
upload.value.click();
|
||||||
|
};
|
||||||
|
// 文件选中
|
||||||
|
const handleFileChange = e => {
|
||||||
|
const files = e.target.files;
|
||||||
|
forms.value.file = files[0];
|
||||||
|
const render = new FileReader();
|
||||||
|
render.readAsDataURL(files[0]);
|
||||||
|
render.onload = result => {
|
||||||
|
forms.value.image = result.target.result;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defineExpose({
|
||||||
|
show(data: any) {
|
||||||
|
forms.value = Object.assign({}, data);
|
||||||
|
drawerOption.value.show = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<el-drawer
|
||||||
|
:size="650"
|
||||||
|
append-to-body
|
||||||
|
v-model="drawerOption.show"
|
||||||
|
: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="formRef"
|
||||||
|
:model="forms"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="80px"
|
||||||
|
label-position="top"
|
||||||
|
>
|
||||||
|
<el-form-item label="上传素材" prop="file">
|
||||||
|
<div class="avatar-uploader" @click="handleOnChange">
|
||||||
|
<img v-if="forms.image" :src="forms.image" class="avatar" />
|
||||||
|
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
<input
|
||||||
|
ref="upload"
|
||||||
|
hidden
|
||||||
|
type="file"
|
||||||
|
accept=".png,.jpg,.jpeg"
|
||||||
|
@change="handleFileChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<el-button plain size="large" @click="reset" style="width: 120px"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="large"
|
||||||
|
@click="save(formRef)"
|
||||||
|
style="width: 120px"
|
||||||
|
>确定</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-drawer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.AddEdit {
|
||||||
|
.avatar-uploader {
|
||||||
|
width: 178px;
|
||||||
|
height: 178px;
|
||||||
|
display: block;
|
||||||
|
border: 1px dashed var(--el-border-color);
|
||||||
|
border-radius: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
transition: var(--el-transition-duration-fast);
|
||||||
|
&:hover {
|
||||||
|
border-color: var(--el-color-primary);
|
||||||
|
}
|
||||||
|
.avatar {
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-icon.avatar-uploader-icon {
|
||||||
|
font-size: 28px;
|
||||||
|
color: #8c939d;
|
||||||
|
width: 178px;
|
||||||
|
height: 178px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.el-drawer__body {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue