Merge branch 'master' of http://47.115.223.229:8888/yangjun/nursing_unit_vue
This commit is contained in:
commit
171e8f14e4
|
@ -253,4 +253,17 @@
|
|||
height: calc(100% - @detail-header-height);
|
||||
}
|
||||
}
|
||||
.jeecg-basic-title[data-v-ddd32716] {
|
||||
position: relative;
|
||||
display: flex;
|
||||
padding-left: 7px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
color: rgba(51, 51, 51, 0.88);
|
||||
cursor: move;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -25,9 +25,32 @@
|
|||
</a-button>
|
||||
</div>
|
||||
</a-upload>
|
||||
<a-modal :open="previewVisible" :footer="null" @cancel="handleCancel()">
|
||||
<img alt="example" style="width: 100%" :src="previewImage" />
|
||||
</a-modal>
|
||||
<!-- <img alt="example" style="width: 100%" :src="previewImage" /> -->
|
||||
<!-- <a-modal :open="previewVisible" width="70%" class="imgView" :footer="null" @cancel="handleCancel()">
|
||||
<div class="img-container">
|
||||
<img
|
||||
alt="example"
|
||||
class="preview-img"
|
||||
:src="previewImage"
|
||||
/>
|
||||
</div>
|
||||
</a-modal> -->
|
||||
|
||||
<a-modal
|
||||
:open="previewVisible"
|
||||
:width="modalWidth"
|
||||
:bodyStyle="{ padding: 0, display: 'flex', justifyContent: 'center', alignItems: 'center' }"
|
||||
:footer="null"
|
||||
@cancel="handleCancel"
|
||||
:style="{ maxWidth: '90vw' }"
|
||||
>
|
||||
<img
|
||||
ref="previewImgRef"
|
||||
class="preview-img"
|
||||
:src="previewImage"
|
||||
@load="handleImageLoad"
|
||||
/>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
|
@ -106,6 +129,7 @@
|
|||
//预览框状态
|
||||
const previewVisible = ref<boolean>(false);
|
||||
|
||||
|
||||
//计算是否开启多图上传
|
||||
const multiple = computed(() => {
|
||||
return props['fileMax'] > 1 || props['fileMax'] === 0;
|
||||
|
@ -227,7 +251,8 @@
|
|||
//如有需要新增 删除逻辑
|
||||
console.log(file);
|
||||
}
|
||||
|
||||
const previewImgRef = ref<HTMLImageElement | null>(null);
|
||||
const modalWidth = ref('auto');
|
||||
/**
|
||||
* 预览图片
|
||||
*/
|
||||
|
@ -247,6 +272,20 @@
|
|||
previewVisible.value = false;
|
||||
}
|
||||
|
||||
// 图片加载完成后计算宽高
|
||||
const handleImageLoad = () => {
|
||||
if (!previewImgRef.value) return;
|
||||
|
||||
const img = previewImgRef.value;
|
||||
const maxWidth = window.innerWidth * 0.9; // 最大宽度为屏幕90%
|
||||
const maxHeight = window.innerHeight * 0.8; // 最大高度为屏幕80%
|
||||
|
||||
// 计算适应比例
|
||||
const ratio = Math.min(maxWidth / img.naturalWidth, maxHeight / img.naturalHeight, 1);
|
||||
modalWidth.value = `${img.naturalWidth * ratio}px`;
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
state,
|
||||
attrs,
|
||||
|
@ -262,6 +301,9 @@
|
|||
handlePreview,
|
||||
handleCancel,
|
||||
handleChange,
|
||||
handleImageLoad,
|
||||
previewImgRef,
|
||||
modalWidth,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -276,4 +318,27 @@
|
|||
margin-top: 8px;
|
||||
color: #666;
|
||||
}
|
||||
/* 确保 Modal 内容区域填满 */
|
||||
.imgView .ant-modal-body {
|
||||
height: 80vh; /* 限制模态框高度,避免超出屏幕 */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* 图片容器 */
|
||||
.img-container {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* 图片自适应 */
|
||||
.preview-img {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
object-fit: contain; /* 保持比例,不拉伸 */
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
export default {
|
||||
okText: '确认',
|
||||
closeText: '关闭',
|
||||
cancelText: '取消',
|
||||
cancelText: '关闭',
|
||||
loadingText: '加载中...',
|
||||
saveText: '保存',
|
||||
delText: '删除',
|
||||
|
|
|
@ -414,10 +414,10 @@ const getCardStyle = (index,allSize) => {
|
|||
var params = {levle,categoryId:data.categoryId,typeId:data.typeId}
|
||||
if(data.levle == 1){
|
||||
registerTypeDrawer.value.disableSubmit = false;
|
||||
registerTypeDrawer.value.edit(params);
|
||||
registerTypeDrawer.value.add(params);
|
||||
}else if(data.levle == 2){
|
||||
registerMedicationDrawer.value.disableSubmit = false;
|
||||
registerMedicationDrawer.value.edit(params);
|
||||
registerMedicationDrawer.value.add(params);
|
||||
}
|
||||
}
|
||||
//编辑
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="false"
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="true"
|
||||
:footer-style="{ textAlign: 'right' }" @close="handleCancel">
|
||||
<ConfigMaterialCategoryForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigMaterialCategoryForm>
|
||||
<template #footer>
|
||||
|
|
|
@ -21,32 +21,32 @@
|
|||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="货品名称" v-bind="validateInfos.materialName" id="ConfigMaterialInfoForm-materialName" name="materialName">
|
||||
<a-input v-model:value="formData.materialName" placeholder="请输入货品名称" allow-clear ></a-input>
|
||||
<a-input v-model:value="formData.materialName" placeholder="请输入货品名称" maxlength="20" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="货品编码" v-bind="validateInfos.materialNo" id="ConfigMaterialInfoForm-materialNo" name="materialNo">
|
||||
<a-input v-model:value="formData.materialNo" placeholder="请输入货品编码" allow-clear ></a-input>
|
||||
<a-input v-model:value="formData.materialNo" placeholder="请输入货品编码" maxlength="20" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="规格型号" v-bind="validateInfos.specificationModel" id="ConfigMaterialInfoForm-specificationModel" name="specificationModel">
|
||||
<a-input v-model:value="formData.specificationModel" placeholder="请输入规格型号" allow-clear ></a-input>
|
||||
<a-input v-model:value="formData.specificationModel" placeholder="请输入规格型号" maxlength="20" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="销售单价" v-bind="validateInfos.salesUnitPrice" id="ConfigMaterialInfoForm-salesUnitPrice" name="salesUnitPrice">
|
||||
<a-input-number v-model:value="formData.salesUnitPrice" placeholder="请输入销售单价" style="width: 100%" />
|
||||
<a-input v-model:value="formData.salesUnitPrice" placeholder="请输入销售单价" maxlength="10" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="参考单价" v-bind="validateInfos.referenceUnitPrice" id="ConfigMaterialInfoForm-referenceUnitPrice" name="referenceUnitPrice">
|
||||
<a-input-number v-model:value="formData.referenceUnitPrice" placeholder="请输入参考单价" style="width: 100%" />
|
||||
<a-input v-model:value="formData.referenceUnitPrice" placeholder="请输入参考单价" maxlength="10" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="货品单位" v-bind="validateInfos.materialUnits" id="ConfigMaterialInfoForm-materialUnits" name="materialUnits">
|
||||
<a-input v-model:value="formData.materialUnits" placeholder="请输入货品单位" allow-clear ></a-input>
|
||||
<a-input v-model:value="formData.materialUnits" placeholder="请输入货品单位" maxlength="10" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
|
@ -66,57 +66,57 @@
|
|||
</a-col>
|
||||
<a-col :span="8" v-if="formData.multiUnitSwitch == '1'">
|
||||
<a-form-item label="二级单位" v-bind="validateInfos.oneUnit" id="ConfigMaterialInfoForm-oneUnit" name="oneUnit">
|
||||
<a-input v-model:value="formData.oneUnit" placeholder="请输入二级单位" allow-clear ></a-input>
|
||||
<a-input v-model:value="formData.oneUnit" placeholder="请输入二级单位" maxlength="10" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8" v-if="formData.multiUnitSwitch == '1'">
|
||||
<a-form-item label="二级单位兑换比例" v-bind="validateInfos.oneUnitProportion" id="ConfigMaterialInfoForm-oneUnitProportion" name="oneUnitProportion">
|
||||
<a-input-number v-model:value="formData.oneUnitProportion" placeholder="请输入二级单位兑换比例" style="width: 100%" />
|
||||
<a-input-number v-model:value="formData.oneUnitProportion" maxlength="10" placeholder="请输入二级单位兑换比例" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8" v-if="formData.multiUnitSwitch == '1'">
|
||||
<a-form-item label="二级单位价格" v-bind="validateInfos.oneUnitPrice" id="ConfigMaterialInfoForm-oneUnitPrice" name="oneUnitPrice">
|
||||
<a-input-number v-model:value="formData.oneUnitPrice" placeholder="请输入二级单位价格" style="width: 100%" />
|
||||
<a-input-number v-model:value="formData.oneUnitPrice" maxlength="10" placeholder="请输入二级单位价格" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8" v-if="formData.multiUnitSwitch == '1'">
|
||||
<a-form-item label="一级单位" v-bind="validateInfos.twoUnit" id="ConfigMaterialInfoForm-twoUnit" name="twoUnit">
|
||||
<a-input v-model:value="formData.twoUnit" placeholder="请输入一级单位" allow-clear ></a-input>
|
||||
<a-input v-model:value="formData.twoUnit" placeholder="请输入一级单位" maxlength="10" allow-clear ></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8" v-if="formData.multiUnitSwitch == '1'">
|
||||
<a-form-item label="一级单位兑换比例" v-bind="validateInfos.twoUnitProportion" id="ConfigMaterialInfoForm-twoUnitProportion" name="twoUnitProportion">
|
||||
<a-input-number v-model:value="formData.twoUnitProportion" placeholder="请输入一级单位兑换比例" style="width: 100%" />
|
||||
<a-input-number v-model:value="formData.twoUnitProportion" maxlength="10" placeholder="请输入一级单位兑换比例" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8" v-if="formData.multiUnitSwitch == '1'">
|
||||
<a-form-item label="一级单位价格" v-bind="validateInfos.twoUnitPrice" id="ConfigMaterialInfoForm-twoUnitPrice" name="twoUnitPrice">
|
||||
<a-input-number v-model:value="formData.twoUnitPrice" placeholder="请输入一级单位价格" style="width: 100%" />
|
||||
<a-input-number v-model:value="formData.twoUnitPrice" maxlength="10" placeholder="请输入一级单位价格" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="物料上限" v-bind="validateInfos.upperLimit" id="ConfigMaterialInfoForm-upperLimit" name="twoUnitPrice">
|
||||
<a-input-number v-model:value="formData.upperLimit" placeholder="请输入物料上限" style="width: 100%" />
|
||||
<a-form-item label="物料上限" v-bind="validateInfos.upperLimit" id="ConfigMaterialInfoForm-upperLimit" name="upperLimit">
|
||||
<a-input v-model:value="formData.upperLimit" maxlength="10" placeholder="请输入物料上限" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="物料下限" v-bind="validateInfos.lowerLimit" id="ConfigMaterialInfoForm-lowerLimit" name="twoUnitPrice">
|
||||
<a-input-number v-model:value="formData.lowerLimit" placeholder="请输入物料下限" style="width: 100%" />
|
||||
<a-form-item label="物料下限" v-bind="validateInfos.lowerLimit" id="ConfigMaterialInfoForm-lowerLimit" name="lowerLimit">
|
||||
<a-input v-model:value="formData.lowerLimit" maxlength="10" placeholder="请输入物料下限" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="供应商" v-bind="validateInfos.suppliers" id="ConfigMaterialInfoForm-suppliers" name="suppliers" :labelCol="labelCol3" :wrapperCol="wrapperCol3">
|
||||
<j-select-multiple placeholder="请选择一级级分类" v-model:value="formData.suppliers" dictCode="nu_config_suppliers_info,suppliers_name,id,supply_state = 1 and del_flag = 0" allow-clear />
|
||||
<j-select-multiple placeholder="请选择供应商" v-model:value="formData.suppliers" dictCode="nu_config_suppliers_info,suppliers_name,id,del_flag = 0" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="物料图片" v-bind="validateInfos.materialImg" id="ConfigMaterialInfoForm-materialImg" name="materialImg">
|
||||
<j-image-upload :fileMax="0" v-model:value="formData.materialImg" ></j-image-upload>
|
||||
<j-image-upload :fileMax="1" v-model:value="formData.materialImg" ></j-image-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-form-item label="物料标识" v-bind="validateInfos.materialIdent" id="ConfigMaterialInfoForm-materialIdent" name="materialIdent">
|
||||
<j-image-upload :fileMax="0" v-model:value="formData.materialIdent" ></j-image-upload>
|
||||
<j-image-upload :fileMax="1" v-model:value="formData.materialIdent" ></j-image-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -183,10 +183,12 @@
|
|||
//表单验证
|
||||
const validatorRules = reactive({
|
||||
materialName: [{ required: true, message: '请输入货品名称!'},],
|
||||
salesUnitPrice: [{ required: true, message: '请输入销售单价!'},],
|
||||
referenceUnitPrice: [{ required: true, message: '请输入参考单价!'},],
|
||||
materialUnits: [{ required: true, message: '请输入货品单位!'},],
|
||||
salesUnitPrice: [{ required: true, message: '请输入销售单价!'},{ pattern: /^\d+(\.\d+)?$/, message: '只能输入数字(可包含小数点)!' }],
|
||||
referenceUnitPrice: [{ required: true, message: '请输入参考单价!'},{ pattern: /^\d+(\.\d+)?$/, message: '只能输入数字(可包含小数点)!' }],
|
||||
materialUnits: [{ required: true, message: '请输入货品单位!'}],
|
||||
suppliers: [{ required: true, message: '请选择供应商!'},],
|
||||
upperLimit: [{ required: false, message: '请输入物料上限!'},{ pattern: /^\d+(\.\d+)?$/, message: '只能输入数字(可包含小数点)!' }],
|
||||
lowerLimit: [{ required: false, message: '请输入物料下限!'},{ pattern: /^\d+(\.\d+)?$/, message: '只能输入数字(可包含小数点)!' }],
|
||||
});
|
||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<ConfigMaterialInfoForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigMaterialInfoForm>
|
||||
</j-modal>
|
||||
-->
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="false"
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="true"
|
||||
:footer-style="{ textAlign: 'right' }" @close="handleCancel">
|
||||
<ConfigMaterialInfoForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigMaterialInfoForm>
|
||||
<template #footer>
|
||||
|
|
|
@ -78,8 +78,8 @@
|
|||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
edit({});
|
||||
function add(record) {
|
||||
edit(record);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="false"
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="true"
|
||||
:footer-style="{ textAlign: 'right' }" @close="handleCancel">
|
||||
<ConfigMaterialMedicationForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigMaterialMedicationForm>
|
||||
<template #footer>
|
||||
|
@ -25,11 +25,11 @@
|
|||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
function add(record) {
|
||||
title.value = '新增';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.add();
|
||||
registerForm.value.add(record);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -71,8 +71,8 @@
|
|||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
edit({});
|
||||
function add(record) {
|
||||
edit(record);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="false"
|
||||
<a-drawer :title="title" :width="width" v-model:visible="visible" :closable="true"
|
||||
:footer-style="{ textAlign: 'right' }" @close="handleCancel">
|
||||
<ConfigMaterialTypeForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ConfigMaterialTypeForm>
|
||||
<template #footer>
|
||||
|
@ -24,11 +24,11 @@
|
|||
/**
|
||||
* 新增
|
||||
*/
|
||||
function add() {
|
||||
function add(record) {
|
||||
title.value = '新增';
|
||||
visible.value = true;
|
||||
nextTick(() => {
|
||||
registerForm.value.add();
|
||||
registerForm.value.add(record);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ export const formSchema: FormSchema[] = [
|
|||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ required: true, message: '请输入供应商名称!'},
|
||||
{ max: 20, message: '不能超过20个字符!' }
|
||||
];
|
||||
},
|
||||
},
|
||||
|
@ -112,11 +113,21 @@ export const formSchema: FormSchema[] = [
|
|||
label: '供应商地址',
|
||||
field: 'suppliersAddress',
|
||||
component: 'Input',
|
||||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ max: 30, message: '不能超过30个字符!' }
|
||||
];
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '负责人',
|
||||
field: 'personInCharge',
|
||||
component: 'Input',
|
||||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ max: 10, message: '不能超过10个字符!' }
|
||||
];
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '联系电话',
|
||||
|
@ -125,6 +136,7 @@ export const formSchema: FormSchema[] = [
|
|||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ required: true, message: '请输入联系电话!'},
|
||||
{ max: 11, message: '不能超过11个字符!' }
|
||||
];
|
||||
},
|
||||
},
|
||||
|
@ -138,7 +150,7 @@ export const formSchema: FormSchema[] = [
|
|||
},
|
||||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ required: true, message: '请输入供应状态!'},
|
||||
{ required: true, message: '请选择供应状态!'},
|
||||
];
|
||||
},
|
||||
},
|
||||
|
@ -146,17 +158,27 @@ export const formSchema: FormSchema[] = [
|
|||
label: '开户行',
|
||||
field: 'openingBank',
|
||||
component: 'Input',
|
||||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ max: 20, message: '不能超过20个字符!' }
|
||||
];
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '开户行账号',
|
||||
field: 'openingBankNo',
|
||||
component: 'Input',
|
||||
dynamicRules: ({model,schema}) => {
|
||||
return [
|
||||
{ max: 32, message: '不能超过32个字符!' }
|
||||
];
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '微信账号',
|
||||
field: 'wechartId',
|
||||
component: 'Input',
|
||||
},
|
||||
// {
|
||||
// label: '微信账号',
|
||||
// field: 'wechartId',
|
||||
// component: 'Input',
|
||||
// },
|
||||
{
|
||||
label: '资质照片',
|
||||
field: 'imgPath',
|
||||
|
|
Loading…
Reference in New Issue