web/src/views/settings/index.vue

158 lines
5.6 KiB
Vue

<template>
<div class="container-wrapper">
<Panel title="基础信息">
<div class="form">
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="auto"
class="demo-ruleForm" status-icon label-position="top">
<el-descriptions
direction="vertical"
:column="3"
:label-width="100"
:label-position="'top'"
:border="false"
style="width: 100%"
>
<el-descriptions-item label="机构名称">
<el-form-item prop="common_name">
<el-input v-model="ruleForm.common_name"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="机构简称">
<el-form-item>
<el-input v-model="ruleForm.common_sortName" style="margin: 0 24px"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="定点机构编码">
<el-form-item prop="social_fixmedinsCode">
<el-input v-model="ruleForm.social_fixmedinsCode"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="定点机构名称">
<el-form-item prop="social_fixmedinsName">
<el-input v-model="ruleForm.social_fixmedinsName"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="就医区域划分">
<el-form-item prop="social_mdtrtareaAdmvs">
<el-input v-model="ruleForm.social_mdtrtareaAdmvs" style="margin: 0 24px"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="医保接口">
<el-form-item prop="social_url">
<el-input v-model="ruleForm.social_url"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="电子凭证接口">
<el-form-item prop="social_certUrl">
<el-input v-model="ruleForm.social_certUrl"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="数字签名">
<el-form-item prop="social_cainfo">
<el-input v-model="ruleForm.social_cainfo" style="margin:0 24px"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
:rowspan="2"
label="logo上传">
<el-form-item>
<UpLoad v-model="uploadURL" ref="uploadRef" @uploadSuccess="uploadSuccess"
style="margin-left: 24px"></UpLoad>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</div>
<div style="display: flex;justify-content: flex-end;padding: 0 24px">
<span class="default-btn" @click="submitForm(ruleFormRef)">保存</span>
</div>
</Panel>
</div>
</template>
<script lang="ts" setup>
import {onMounted, reactive, ref} from 'vue'
import {ElMessage, type FormInstance, type FormRules} from 'element-plus'
import {post} from "@/utils/request.ts";
import Panel from "@/components/common/Panel.vue";
import UpLoad from "@/components/UpLoad.vue";
import {loadConfig} from "@/utils/config.ts";
const ruleFormRef = ref<FormInstance>()
const ruleForm = reactive<any>({
common_name: '',
common_sortName: '',
social_fixmedinsCode: '',
social_fixmedinsName: '',
social_insuplcAdmdvs: '',
social_cainfo: '',
social_url: "",
social_certUrl: "",
logoUrl: "",
})
const uploadRef = ref<any>()
onMounted(async () => {
loadConfig().then((res: any) => {
uploadURL.value = res.base_url + "file/upload";
})
post("common/config/list", null).then((list: any) => {
for (let i = 0; i < list.length; i++) {
ruleForm[list[i].k] = list[i].val
}
})
})
const rules = reactive<FormRules<any>>({
common_name: {required: true, message: '机构名称不能为空', trigger: 'blur'},
common_sortName: {required: true, message: '机构简称不能为空', trigger: 'blur'},
social_fixmedinsCode: {required: true, message: '定点机构编码不能为空', trigger: 'blur'},
social_fixmedinsName: {required: true, message: '定点机构名称不能为空', trigger: 'blur'},
social_mdtrtareaAdmvs: {required: true, message: '就医区域划分不能为空', trigger: 'blur'},
social_cainfo: {required: true, message: '数字签名不能为空', trigger: 'blur'},
social_url: {required: true, message: '医保接口不能为空', trigger: 'blur'},
social_certUrl: {required: true, message: '电子平转增接口不能为空', trigger: 'blur'},
})
const submitForm = async (formEl: FormInstance | undefined) => {
if (!formEl) return
await formEl.validate((valid) => {
if (valid) {
post("common/config/edit", ruleForm).then((res: any) => {
ElMessage.success("保存成功")
})
}
})
}
const resetForm = (formEl: FormInstance | undefined) => {
if (!formEl) return
formEl.resetFields()
}
const options = Array.from({length: 10000}).map((_, idx) => ({
value: `${idx + 1}`,
label: `${idx + 1}`,
}))
//上传图片
const uploadURL = ref<any>()
const uploadSuccess = (url: any) => {
ruleForm.logoUrl = url
post("common/config/edit", ruleForm).then(() => {
ElMessage.success("保存图片成功")
})
}
</script>
<style scoped lang="scss">
.container-wrapper {
padding: 0 24px;
background: #fff;
}
.form {
width: 100%;
padding: 0 24px;
}
:deep(.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label) {
padding-left: 24px;
}
</style>