|
@@ -10,7 +10,7 @@
|
|
|
<el-col :span="1.5">
|
|
|
<el-button-group>
|
|
|
<el-button size="small" @click="handleSave"
|
|
|
- v-hasPermi="['system:material:add', `${maintainNewVersion ? '' : 'system:material:versions'}`]">
|
|
|
+ v-hasPermi="['system:material:add', `${maintainNewVersion ? '' : 'system:material:versions'}`]">
|
|
|
保存
|
|
|
</el-button>
|
|
|
</el-button-group>
|
|
@@ -108,13 +108,13 @@
|
|
|
<el-form :inline="true" label-position="right" :model="basicData.value">
|
|
|
<!-- <el-form-item label="所属组织"></el-form-item> -->
|
|
|
<el-form-item label="物料编码">
|
|
|
- <el-input v-model="basicData.value.code" readonly size="small"></el-input>
|
|
|
+ <el-input v-model="basicData.value.code" readonly size="mini"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="物料名称">
|
|
|
- <el-input v-model="basicData.value.name" readonly size="small"></el-input>
|
|
|
+ <el-input v-model="basicData.value.name" readonly size="mini"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="英文名称">
|
|
|
- <el-input v-model="basicData.value.enName" readonly size="small"></el-input>
|
|
|
+ <el-input v-model="basicData.value.enName" readonly size="mini"></el-input>
|
|
|
</el-form-item>
|
|
|
<!-- <el-form-item label="版本号"></el-form-item> -->
|
|
|
</el-form>
|
|
@@ -128,8 +128,14 @@
|
|
|
<div class="md-main">
|
|
|
|
|
|
<!-- 基本信息展示表单 -->
|
|
|
- <el-form v-if="activeMainTab == 'material'" :inline="true" label-position="right"
|
|
|
- :hide-required-asterisk="true" :model="basicData.value">
|
|
|
+ <el-form
|
|
|
+ v-if="activeMainTab == 'material'"
|
|
|
+ :inline="true"
|
|
|
+ label-position="right"
|
|
|
+ :hide-required-asterisk="true"
|
|
|
+ :model="basicData.value"
|
|
|
+ ref="basicMessageRef"
|
|
|
+ >
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="8" v-for="f in basicData.form" style="text-align: right;">
|
|
@@ -137,18 +143,27 @@
|
|
|
<!-- :disabled="!(headerParam.isEdit && f.edit)" -->
|
|
|
|
|
|
<!-- 多选框 -->
|
|
|
- <el-form-item v-if="f.attribute == 'checkbox'" style="text-align: left;" :prop="f.prop">
|
|
|
+ <el-form-item v-if="f.attribute == 'checkbox'" style="text-align: left;" :prop="f.prop"
|
|
|
+ :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]" >
|
|
|
<!-- :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]" -->
|
|
|
|
|
|
- <el-checkbox :label="f.name" name="type" v-model="basicData.value[f.prop]" true-label="0"
|
|
|
- false-label="2" :disabled="handleJudge(f)">
|
|
|
+ <el-checkbox
|
|
|
+ :label="f.name" name="type"
|
|
|
+ v-model="basicData.value[f.prop]"
|
|
|
+ true-label="0"
|
|
|
+ false-label="2"
|
|
|
+ :disabled="handleJudge(f)"
|
|
|
+ size="mini"
|
|
|
+ @change="handleMainCheckChange(f.prop)"
|
|
|
+ >
|
|
|
</el-checkbox>
|
|
|
</el-form-item>
|
|
|
|
|
|
<!-- 下拉框 -->
|
|
|
<el-form-item v-else-if="f.attribute == 'select'"
|
|
|
:id="(updateButtonGroup && f.apiUrl) ? 'selected' : ''"
|
|
|
- :prop="f.apiUrl ? `${f.prop}Name` : f.prop">
|
|
|
+ :prop="f.apiUrl ? `${f.prop}Name` : f.prop"
|
|
|
+ :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]">
|
|
|
<!-- :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]" -->
|
|
|
|
|
|
<template slot="label">
|
|
@@ -162,14 +177,16 @@
|
|
|
|
|
|
<!-- 参照 -->
|
|
|
<el-select v-if="f.apiUrl" v-model="basicData.value[`${f.prop}Name`]" placeholder="请选择"
|
|
|
+ size="mini" :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]"
|
|
|
:key="basicData.value[f.prop]" :disabled="handleJudge(f)"
|
|
|
@focus="f.apiUrl && handleQueryMore(f, '', { name: 'basicData', prop: f.prop })">
|
|
|
<div slot="empty"></div>
|
|
|
</el-select>
|
|
|
|
|
|
<!-- 字典 -->
|
|
|
- <el-select v-if="f.dictId" v-model="basicData.value[f.prop]" placeholder="请选择"
|
|
|
- :key="basicData.value[f.prop]" :disabled="handleJudge(f)">
|
|
|
+ <el-select v-if="f.dictId" v-model="basicData.value[f.prop]" placeholder="请选择" size="mini"
|
|
|
+ :key="basicData.value[f.prop]" :disabled="handleJudge(f)"
|
|
|
+ :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]">
|
|
|
<el-option v-if="f.dictId" v-for="d in f.dictValue" :key="d.dictValue" :label="d.dictLabel"
|
|
|
:value="d.dictValue">
|
|
|
</el-option>
|
|
@@ -186,7 +203,7 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<!--attribute 文本 数字 文本域 为null -->
|
|
|
- <el-form-item v-else :prop="f.prop">
|
|
|
+ <el-form-item v-else :prop="f.prop" :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]">
|
|
|
<!-- :rules="[{ required: f.required, message: `请输入${f.name}`, trigger: 'blur' }]" -->
|
|
|
|
|
|
<template slot="label">
|
|
@@ -198,8 +215,10 @@
|
|
|
</el-tooltip>
|
|
|
</template>
|
|
|
|
|
|
- <el-input size="small" v-model="basicData.value[f.prop]" :type="f.attribute || 'text'"
|
|
|
- :readonly="handleJudge(f)">
|
|
|
+ <el-input size="mini" v-model="basicData.value[f.prop]" :type="f.attribute || 'text'"
|
|
|
+ :readonly="handleJudge(f)"
|
|
|
+ :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]"
|
|
|
+ >
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
|
|
@@ -247,7 +266,7 @@
|
|
|
|
|
|
<!-- 多选框 -->
|
|
|
<el-form-item v-if="m.attribute == 'checkbox'">
|
|
|
- <el-checkbox :label="m.name" name="type" v-model="medcineData.value[m.prop]"
|
|
|
+ <el-checkbox :label="m.name" name="type" v-model="medcineData.value[m.prop]" size="mini"
|
|
|
:disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
|
|
|
true-label="0" false-label="2">
|
|
|
</el-checkbox>
|
|
@@ -258,7 +277,7 @@
|
|
|
|
|
|
<!-- 参照弹窗 -->
|
|
|
<el-select v-if="m.apiUrl" v-model="medcineData.value[`${m.prop}Name`]" placeholder="请选择"
|
|
|
- :key="medcineData.value[m.prop]"
|
|
|
+ :key="medcineData.value[m.prop]" size="mini"
|
|
|
:disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
|
|
|
@focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
|
|
|
|
|
@@ -269,7 +288,7 @@
|
|
|
|
|
|
<!-- 下拉选择 -->
|
|
|
<el-select v-else v-model="medcineData.value[m.prop]" placeholder="请选择"
|
|
|
- :key="medcineData.value[m.prop]"
|
|
|
+ :key="medcineData.value[m.prop]" size="mini"
|
|
|
:disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
|
|
|
@focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
|
|
|
|
|
@@ -288,7 +307,7 @@
|
|
|
|
|
|
<!-- 文本、数字、textarae -->
|
|
|
<el-form-item v-else :label="m.name">
|
|
|
- <el-input size="small" v-model="medcineData.value[m.prop]" :type="m.attribute || 'text'"
|
|
|
+ <el-input size="mini" v-model="medcineData.value[m.prop]" :type="m.attribute || 'text'"
|
|
|
:readonly="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')">
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
@@ -345,16 +364,16 @@
|
|
|
<el-divider content-position="left">审计信息</el-divider>
|
|
|
<el-form :inline="true" label-position="right" :model="basicData.value">
|
|
|
<el-form-item label="创建人">
|
|
|
- <el-input v-model="basicData.value.createByName" size="small" readonly></el-input>
|
|
|
+ <el-input v-model="basicData.value.createByName" size="mini" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="创建时间">
|
|
|
- <el-input v-model="basicData.value.createTime" size="small" readonly></el-input>
|
|
|
+ <el-input v-model="basicData.value.createTime" size="mini" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="最后修改人">
|
|
|
- <el-input v-model="basicData.value.updateByName" size="small" readonly></el-input>
|
|
|
+ <el-input v-model="basicData.value.updateByName" size="mini" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="最后修改时间">
|
|
|
- <el-input v-model="basicData.value.updateTime" size="small" readonly></el-input>
|
|
|
+ <el-input v-model="basicData.value.updateTime" size="mini" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
@@ -402,24 +421,24 @@
|
|
|
<template slot-scope="scope">
|
|
|
<!-- :prop="mt.prop" -->
|
|
|
<!-- 多选框 -->
|
|
|
- <el-checkbox size="small" v-if="mt.attribute == 'checkbox'" :disabled="!(materialType.isEdit && mt.edit)"
|
|
|
+ <el-checkbox size="mini" v-if="mt.attribute == 'checkbox'" :disabled="!(materialType.isEdit && mt.edit)"
|
|
|
true-label="0" false-label="2" v-model="scope.row[mt.prop]"/>
|
|
|
|
|
|
<!-- 下拉框 / 参照弹窗---- 药品类别编码 scope.row[`${mt.prop}Name`] -->
|
|
|
- <el-select size="small" v-else-if="mt.attribute == 'select' && mt.apiUrl" placeholder="请选择"
|
|
|
+ <el-select size="mini" v-else-if="mt.attribute == 'select' && mt.apiUrl" placeholder="请选择"
|
|
|
:disabled="!(materialType.isEdit && mt.edit)" v-model="scope.row[mt.prop]"
|
|
|
:key="scope.row[mt.prop]"
|
|
|
@focus="mt.apiUrl && handleQueryMore(mt, '', { name: 'materialType', prop: scope.row })">
|
|
|
<div slot="empty"></div>
|
|
|
</el-select>
|
|
|
|
|
|
- <!-- <el-select size="small" v-else-if="mt.attribute == 'select' && mt.dictId" placeholder="请选择"
|
|
|
+ <!-- <el-select size="mini" v-else-if="mt.attribute == 'select' && mt.dictId" placeholder="请选择"
|
|
|
:disabled="!(materialType.isEdit && mt.edit)" v-model="scope.row[mt.prop]" :key="scope.row[mt.prop]">
|
|
|
<el-option v-if="mt.dictId" v-for="d in mt.dictId" :key="d.dictValue" :label="d.dictLabel"
|
|
|
:value="d.dictValue"></el-option></el-select> -->
|
|
|
|
|
|
<!-- 其他类型 -->
|
|
|
- <el-input v-else size="small" v-model="scope.row[mt.prop]" :readonly="!(materialType.isEdit && mt.edit)"/>
|
|
|
+ <el-input v-else size="mini" v-model="scope.row[mt.prop]" :readonly="!(materialType.isEdit && mt.edit)"/>
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
@@ -438,9 +457,15 @@
|
|
|
|
|
|
|
|
|
<!-- 其他页签的操作 -->
|
|
|
- <el-dialog :title="otherDeatils.title" :visible.sync="otherDeatils.show" show-close width="70%"
|
|
|
- :before-close="handleCloseOtherDetails" :close-on-press-escape="false" :close-on-click-modal="false"
|
|
|
- class="otherDialog">
|
|
|
+ <el-dialog
|
|
|
+ :title="otherDeatils.title"
|
|
|
+ :visible.sync="otherDeatils.show"
|
|
|
+ show-close width="70%"
|
|
|
+ :before-close="handleCloseOtherDetails"
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ class="otherDialog"
|
|
|
+ >
|
|
|
<div v-loading="otherDeatils.loading">
|
|
|
<!-- 其他标签页操作 修改、删除 -->
|
|
|
<el-row :gutter="10" class="mb10">
|
|
@@ -567,7 +592,7 @@
|
|
|
<div>
|
|
|
<el-row>
|
|
|
<el-col :span="1.5">
|
|
|
- <el-input v-model="MoreDataDialog.key" placeholder="过滤" size="small" @change="handleFilterRefer"/>
|
|
|
+ <el-input v-model="MoreDataDialog.key" placeholder="过滤" size="mini" @change="handleFilterRefer"/>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<!-- 树形 -->
|
|
@@ -1557,18 +1582,36 @@
|
|
|
// 保存修改
|
|
|
handleSave() {
|
|
|
console.log('保存修改');
|
|
|
- this.loading = true;
|
|
|
- // 普通保存修改
|
|
|
- this.updateButtonGroup && this.handleSaveMaterial(() => {
|
|
|
- this.updateButtonGroup = false;
|
|
|
- this.handleRefresh();
|
|
|
- });
|
|
|
+ this.$refs['basicMessageRef'].validate(async (valid) => {
|
|
|
+
|
|
|
+ if(valid){
|
|
|
+ this.loading = true;
|
|
|
+ // 普通保存修改
|
|
|
+ this.updateButtonGroup && this.handleSaveMaterial(() => {
|
|
|
+ this.updateButtonGroup = false;
|
|
|
+ this.handleRefresh();
|
|
|
+ });
|
|
|
|
|
|
- // 维护新版本保存修改
|
|
|
- this.maintainNewVersion && this.handleSaveNewVersion(() => {
|
|
|
- this.maintainNewVersion = false;
|
|
|
- this.handleRefresh();
|
|
|
+ // 维护新版本保存修改
|
|
|
+ this.maintainNewVersion && this.handleSaveNewVersion(() => {
|
|
|
+ this.maintainNewVersion = false;
|
|
|
+ this.handleRefresh();
|
|
|
+ })
|
|
|
+ }else {
|
|
|
+ this.$message.error('存在必填项未填写');
|
|
|
+ console.log('error submit!!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
})
|
|
|
+
|
|
|
+ },
|
|
|
+ // 主信息多选框改变
|
|
|
+ handleMainCheckChange(prop){
|
|
|
+
|
|
|
+ if(prop === 'isMedicine'){
|
|
|
+ console.log('是否医药物料改变');
|
|
|
+ }
|
|
|
+
|
|
|
},
|
|
|
// 物料类别列表选中
|
|
|
handleSelectionType(list) {
|
|
@@ -2069,6 +2112,21 @@
|
|
|
return item;
|
|
|
})
|
|
|
},
|
|
|
+ "basicData.value.isMedicine": {
|
|
|
+ handler(nVal, oVal) {
|
|
|
+ console.log(nVal, oVal,'11111111111');
|
|
|
+ this.basicData.form = this.basicData.form.map(formItem =>{
|
|
|
+
|
|
|
+ if(formItem.prop === 'productionPermit'){
|
|
|
+
|
|
|
+ formItem.required = nVal == '0' ? true :false;
|
|
|
+
|
|
|
+ }
|
|
|
+ return formItem;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ deep: true,
|
|
|
+ },
|
|
|
|
|
|
},
|
|
|
|