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