|
@@ -38,6 +38,7 @@
|
|
|
<!-- 启用 -->
|
|
|
<el-col :span="1.5">
|
|
|
<el-button-group>
|
|
|
+ <el-button size="small" @click="handleMaterialType">维护物料类别</el-button>
|
|
|
<el-dropdown split-button size="small" @click="handleIsInvoke(true)" @command="handleIsInvoke">
|
|
|
启用
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
@@ -137,7 +138,7 @@
|
|
|
<dr-tabs :tabList="detailsTabs" :handleTabClick="handleMainTabClick">
|
|
|
<template #tabContent>
|
|
|
|
|
|
- <div class="md-basic">
|
|
|
+ <div class="md-basic" :key="count">
|
|
|
|
|
|
<!-- 主信息 -->
|
|
|
<div class="md-main">
|
|
@@ -310,6 +311,51 @@
|
|
|
|
|
|
</el-card>
|
|
|
|
|
|
+ <!-- 维护物料类别弹窗 -->
|
|
|
+ <el-dialog title="物料类别维护" :visible.sync="materialType.show" :before-close="handleCloseOtherDetails"
|
|
|
+ :close-on-press-escape="false" :close-on-click-modal="false" width="80%" center class="materialType">
|
|
|
+
|
|
|
+ <!-- 操作按钮 -->
|
|
|
+ <el-row :gutter="10" class="mb10">
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button-group>
|
|
|
+ <el-button size="small" @click="handleMaterialTypeRow('add')">增行</el-button>
|
|
|
+ <el-button size="small" @click="handleMaterialTypeRow('del')">删行</el-button>
|
|
|
+ </el-button-group>
|
|
|
+ <el-button-group>
|
|
|
+ <el-button size="small" @click="handleMaterialTypeRow('save')">保存</el-button>
|
|
|
+ <el-button size="small" @click="handleMaterialTypeRow">刷新</el-button>
|
|
|
+ </el-button-group>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <!-- 表格数据 -->
|
|
|
+ <el-table :data="materialType.value" stripe style="width: 100%" max-height="350" v-loading="materialType.loading">
|
|
|
+ <el-table-column type="index" width="50" label="序号"></el-table-column>
|
|
|
+ <el-table-column v-for="mt in materialType.form" v-if="mt.show" :label="mt.name" width="180">
|
|
|
+ <!-- :prop="mt.prop" -->
|
|
|
+
|
|
|
+ <!-- 多选框 -->
|
|
|
+ <el-checkbox size="small" v-if="mt.attribute == 'checkbox'" :disabled="!mt.edit"
|
|
|
+ v-model="materialType.value[mt.prop]" />
|
|
|
+
|
|
|
+ <!-- 下拉框 / 参照弹窗 -->
|
|
|
+ <el-select size="small" v-else-if="mt.attribute == 'select'" :disabled="!mt.edit"
|
|
|
+ v-model="materialType.value[`${mt.prop}Label`]" :key="materialType.value[mt.prop]" :placeholder="mt.name"
|
|
|
+ @focus="mt.apiUrl && handleQueryMore(mt, '', { name: 'materialType', prop: 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>
|
|
|
+ <div slot="empty"></div>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <!-- 其他类型 -->
|
|
|
+ <el-input v-else size="small" v-model="materialType.value[mt.prop]" :readonly="!mt.edit"
|
|
|
+ :placeholder="mt.name" />
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
<!-- 操作提示弹窗 -->
|
|
|
<el-dialog title="操作提示" :visible.sync="optionDialog.show" width="30%" center>
|
|
|
<span>是否确认{{ optionDialog.op }}?</span>
|
|
@@ -349,7 +395,7 @@
|
|
|
<el-form :inline="true" label-position="right" :model="basicData.value">
|
|
|
<!-- <el-form-item label="所属组织">
|
|
|
<el-input v-model="basicData.value.orgName" placeholder="所属组织"></el-input>
|
|
|
- </el-form-item> -->
|
|
|
+ </el-form-item> -->
|
|
|
<el-form-item label="物料编码">
|
|
|
<el-input v-model="basicData.value.code" size="small" readonly placeholder="物料编码"></el-input>
|
|
|
</el-form-item>
|
|
@@ -361,7 +407,7 @@
|
|
|
</el-form-item>
|
|
|
<!-- <el-form-item label="版本号">
|
|
|
<el-input v-model="basicData.value.version" placeholder="版本号"></el-input>
|
|
|
- </el-form-item> -->
|
|
|
+ </el-form-item> -->
|
|
|
|
|
|
</el-form>
|
|
|
</el-collapse-item>
|
|
@@ -482,6 +528,7 @@ import drTabs from '../components/dr-tabs.vue';
|
|
|
import detailsTabs from '../config/detailsTabs';
|
|
|
import materialApi from '@/api/material/basic';
|
|
|
import { getDicts as getDicts } from '@/api/system/dict/data'
|
|
|
+import arrayUtils from '../tools/arrayUtils';
|
|
|
|
|
|
export default {
|
|
|
name: 'material-details',
|
|
@@ -528,6 +575,13 @@ export default {
|
|
|
value: {},
|
|
|
form: []
|
|
|
},
|
|
|
+ // 物料类别
|
|
|
+ materialType: {
|
|
|
+ show: false,
|
|
|
+ value: [],
|
|
|
+ form: [],
|
|
|
+ loading: false,
|
|
|
+ },
|
|
|
// 医药行业
|
|
|
medcineData: {
|
|
|
value: {},
|
|
@@ -750,14 +804,30 @@ export default {
|
|
|
this.MoreDataDialog.msg = msg;
|
|
|
this.MoreDataDialog.target = target;
|
|
|
|
|
|
- this.getExecuteMethods(msg.apiUrl, { param: this.MoreDataDialog.key }, (data) => {
|
|
|
+ let par = { param: this.MoreDataDialog.key };
|
|
|
+
|
|
|
+ this[target.name].form.map(t => {
|
|
|
+
|
|
|
+ if (t.relevance && t.relevance != '') {
|
|
|
+
|
|
|
+ let reList = t.relevance.split(',');
|
|
|
+ console.log(reList, 'reList-------------------');
|
|
|
+ reList.forEach(i => {
|
|
|
+ par[i] = this.basicData.value[i]
|
|
|
+ })
|
|
|
+ console.log(par, 'par/////////////////////////');
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ this.getExecuteMethods(msg.apiUrl, par, (data) => {
|
|
|
|
|
|
console.log(data, '编辑状态下,弹窗显示查询数据');
|
|
|
_this.MoreDataDialog.type = data.type;
|
|
|
- _this.MoreDataDialog.list = data.tableBody;
|
|
|
if (data.type == 'tree') {
|
|
|
|
|
|
+ _this.MoreDataDialog.list = arrayUtils.filterTreeData(data.tableBody);
|
|
|
} else {
|
|
|
+ _this.MoreDataDialog.list = data.tableBody;
|
|
|
_this.MoreDataDialog.form = data.tableHeader;
|
|
|
}
|
|
|
|
|
@@ -802,19 +872,43 @@ export default {
|
|
|
// 查参照
|
|
|
if (item.apiUrl && item.apiUrl != '') {
|
|
|
|
|
|
- _this.getExecuteMethods(item.apiUrl, {}, (data) => {
|
|
|
+ let param = {};
|
|
|
|
|
|
+ if (item.relevance && item.relevance != '') {
|
|
|
+ let reList = item.relevance.split(',');
|
|
|
+ console.log(reList, 'reList-------------------');
|
|
|
+ reList.forEach(i => {
|
|
|
+ param[i] = this.basicData.value[i]
|
|
|
+ })
|
|
|
+ console.log(param, 'param/////////////////////////');
|
|
|
+ }
|
|
|
+
|
|
|
+ _this.getExecuteMethods(item.apiUrl, param, (data) => {
|
|
|
let { tableBody } = data;
|
|
|
+ if (dataName == 'materialType') {
|
|
|
+
|
|
|
+ _this[dataName].value.length && (_this[dataName].value = _this[dataName].value.map(d => {
|
|
|
|
|
|
- let Blabel = tableBody.filter((t) => t.id == _this[dataName].value[item.prop])[0];
|
|
|
+ let Blabel = tableBody.filter((t) => t.id == d[item.prop])[0];
|
|
|
+ console.log(Blabel, 'Blabel``````````````````````````');
|
|
|
+ d[`${item.prop}Label`] = (Blabel && Blabel.name) || Blabel || '11111';
|
|
|
+ return d;
|
|
|
+ }))
|
|
|
|
|
|
- _this[dataName].value[`${item.prop}Label`] = Blabel || '';
|
|
|
+ } else {
|
|
|
|
|
|
+ let Blabel = tableBody.filter((t) => t.id == _this[dataName].value[item.prop])[0];
|
|
|
+ console.log(Blabel, 'Blabel``````````````````````````');
|
|
|
+ _this[dataName].value[`${item.prop}Label`] = (Blabel && Blabel.name) || Blabel || '';
|
|
|
+ }
|
|
|
+
|
|
|
+ this.count++;
|
|
|
+ console.log(_this[dataName].value, `${dataName}//////////////////////`);
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
+ this.materialType.loading = false;
|
|
|
|
|
|
- console.log(_this[dataName].value, '_this[dataName].value//////////////////////');
|
|
|
},
|
|
|
|
|
|
|
|
@@ -979,20 +1073,18 @@ export default {
|
|
|
|
|
|
|
|
|
/* 二级标签页 */
|
|
|
- // 获取医药行业信息详细信息+表单属性
|
|
|
- getMedcineDetails(id, templateCode) {
|
|
|
-
|
|
|
- console.log(id, templateCode);
|
|
|
- materialApi.medcineDetails(
|
|
|
- id,
|
|
|
- templateCode,
|
|
|
- ).then((res) => {
|
|
|
+ // 根据物料id获取医药行业信息详细信息
|
|
|
+ getMedcineDetails(id) {
|
|
|
+ let _this = this;
|
|
|
+ console.log(id);
|
|
|
+ materialApi.medcineDetailsInfo(id).then((res) => {
|
|
|
|
|
|
console.log(res, '医药行业');
|
|
|
let { code, data } = res;
|
|
|
if (code == 200) {
|
|
|
- this.medcineData.value = data.data || {};
|
|
|
+ _this.medcineData.value = data.data || {};
|
|
|
// this.medcineData.form = data.form;
|
|
|
+ _this.handleAddReferLabel('medcineData');
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -1070,7 +1162,17 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
+ // 根据物料id获取物料类别维护列表
|
|
|
+ getMedcineitemList(materialId) {
|
|
|
+ let _this = this;
|
|
|
+ materialApi.medcineitemList({ materialId }).then(res => {
|
|
|
+ console.log(res, '根据物料id获取物料类别维护列表');
|
|
|
+ if (res.code == 200) {
|
|
|
+ _this.materialType.value = res.data.tableBody.rows;
|
|
|
+ _this.handleAddReferLabel('materialType');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
|
|
|
|
|
@@ -1142,6 +1244,17 @@ export default {
|
|
|
type
|
|
|
}
|
|
|
},
|
|
|
+ // 维护物料类别
|
|
|
+ handleMaterialType() {
|
|
|
+ console.log('维护物料类别');
|
|
|
+ this.materialType.show = true;
|
|
|
+
|
|
|
+ this.materialType.loading = true;
|
|
|
+ this.getTagList('material_medcine_item', (form) => {
|
|
|
+ this.materialType.form = form;
|
|
|
+ this.getMedcineitemList(this.materialId);
|
|
|
+ });
|
|
|
+ },
|
|
|
// 启用
|
|
|
handleIsInvoke(e) {
|
|
|
console.log('启用', e);
|
|
@@ -1175,6 +1288,31 @@ export default {
|
|
|
this.$router.go(0)
|
|
|
});
|
|
|
},
|
|
|
+ // 物料类别增删行
|
|
|
+ handleMaterialTypeRow(op) {
|
|
|
+ switch (op) {
|
|
|
+
|
|
|
+ // 增行
|
|
|
+ case 'add':
|
|
|
+ console.log('物料类别增行');
|
|
|
+ break;
|
|
|
+
|
|
|
+ // 删行
|
|
|
+ case 'del':
|
|
|
+ console.log('物料类别删行');
|
|
|
+ break;
|
|
|
+
|
|
|
+ // 保存
|
|
|
+ case 'save':
|
|
|
+ console.log('物料类别保存', this.materialType.value);
|
|
|
+ break;
|
|
|
+ // 刷新
|
|
|
+ default:
|
|
|
+ console.log('物料类别刷新');
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
// 保存修改并新增
|
|
|
handleSaveAdd() {
|
|
|
console.log('保存修改并新增');
|
|
@@ -1309,7 +1447,7 @@ export default {
|
|
|
console.log(param, '保存物料以及相关页签param');
|
|
|
materialApi.insertMaterialInfo(param).then(res => {
|
|
|
console.log(res, '保存物料以及相关页签');
|
|
|
- if(res.code) cb();
|
|
|
+ if (res.code == 200) cb();
|
|
|
})
|
|
|
},
|
|
|
|
|
@@ -1404,6 +1542,9 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ .el-dialog__header {
|
|
|
+ background-color: rgb(244, 244, 244);
|
|
|
+ }
|
|
|
|
|
|
.MoreDataDialog {
|
|
|
|
|
@@ -1428,9 +1569,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .el-dialog__header {
|
|
|
- background-color: rgb(244, 244, 244);
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
.more-button {
|
|
|
margin-top: 10px;
|