|
@@ -1,7 +1,7 @@
|
|
|
<!-- 批量新增 -->
|
|
|
<script>
|
|
|
import useColumns from "./column";
|
|
|
-import {addChangeList, getMaterialDetails, getChangeDetails, editChangeList} from '@/api/changeApply/basic';
|
|
|
+import {addChangeList, getMaterialDetails, getChangeDetails, editChangeList,importInner} from '@/api/changeApply/basic';
|
|
|
|
|
|
|
|
|
export default {
|
|
@@ -22,6 +22,7 @@ export default {
|
|
|
ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
|
|
|
ElPopoverTreeSelect: () =>
|
|
|
import("@/components/popover-tree-select/index.vue"),
|
|
|
+ BatchImport: () => import("@/components/BatchImport/index.vue"),
|
|
|
},
|
|
|
|
|
|
data() {
|
|
@@ -101,13 +102,12 @@ export default {
|
|
|
this.params.status = '0';
|
|
|
console.log(this.$store.state.user,'user');
|
|
|
this.params.orgName = '德荣集团';
|
|
|
- this.useRowAdd(this.tabName);
|
|
|
+ // this.useRowAdd(this.tabName);
|
|
|
}
|
|
|
},
|
|
|
|
|
|
//
|
|
|
async fetchItem(prop) {
|
|
|
- console.log(prop,'prop----------------');
|
|
|
try {
|
|
|
// try
|
|
|
this.loading = true;
|
|
@@ -227,6 +227,42 @@ export default {
|
|
|
// await;
|
|
|
})
|
|
|
},
|
|
|
+
|
|
|
+ async handelImport(fileList){
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ let formData = new FormData();
|
|
|
+
|
|
|
+ formData.append('file',fileList[0].raw);
|
|
|
+
|
|
|
+ this.$modal.loading("正在上传文件,请稍候...");
|
|
|
+
|
|
|
+ let {code,data} = await importInner(formData);
|
|
|
+
|
|
|
+ if(code == 200) {
|
|
|
+
|
|
|
+ this.params['materialBasic'].push(...data)
|
|
|
+
|
|
|
+ let {setVisible} = this.$refs.batchImport;
|
|
|
+
|
|
|
+ setVisible(false);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (error) {
|
|
|
+
|
|
|
+ }finally{
|
|
|
+ this.$modal.closeLoading();
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ async handleTemDownload(){
|
|
|
+
|
|
|
+ this.download('/material/change/downloadInner',{}, `物料信息模板${new Date().getTime()}.xlsx`);
|
|
|
+ },
|
|
|
+
|
|
|
},
|
|
|
created() {
|
|
|
},
|
|
@@ -290,135 +326,145 @@ export default {
|
|
|
</el-super-form>
|
|
|
|
|
|
|
|
|
- <el-tabs v-model="tabName" style="padding: 0 20px 20px">
|
|
|
- <el-tab-pane
|
|
|
- v-for="({ item, TableColumns: columns }, index) in TabColumns"
|
|
|
- :key="index"
|
|
|
- :label="item.title"
|
|
|
- :name="item.key"
|
|
|
- lazy
|
|
|
- >
|
|
|
- <div style="height: 420px;display:flex">
|
|
|
- <el-super-table
|
|
|
- v-model="materialInfo[item.key]"
|
|
|
- :dict="dict"
|
|
|
- :ref="tabName"
|
|
|
- :columns="columns"
|
|
|
- :size="$attrs.size"
|
|
|
- >
|
|
|
- <template slot="materialName" slot-scope="scope">
|
|
|
- <component
|
|
|
- v-bind="scope.attr"
|
|
|
- v-model="scope.row[scope.item.key]"
|
|
|
- :size="$attrs.size"
|
|
|
- :source.sync="scope.row"
|
|
|
- >
|
|
|
- </component>
|
|
|
- </template>
|
|
|
- <!-- 判断是否禁用 -->
|
|
|
- <template slot="drug" slot-scope="scope">
|
|
|
- <component
|
|
|
- v-bind="scope.attr"
|
|
|
- v-model="scope.row[scope.item.key]"
|
|
|
- :size="$attrs.size"
|
|
|
- :source.sync="scope.row"
|
|
|
- :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in dict.type[scope.attr.dictName]"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ <div style="position: relative;">
|
|
|
+ <el-tabs v-model="tabName" style="padding: 0 20px 20px">
|
|
|
+ <el-tab-pane
|
|
|
+ v-for="({ item, TableColumns: columns }, index) in TabColumns"
|
|
|
+ :key="index"
|
|
|
+ :label="item.title"
|
|
|
+ :name="item.key"
|
|
|
+ lazy
|
|
|
+ >
|
|
|
+ <div style="height: 420px;display:flex">
|
|
|
+ <el-super-table
|
|
|
+ v-model="materialInfo[item.key]"
|
|
|
+ :dict="dict"
|
|
|
+ :ref="tabName"
|
|
|
+ :columns="columns"
|
|
|
+ :size="$attrs.size"
|
|
|
+ >
|
|
|
+ <template slot="materialName" slot-scope="scope">
|
|
|
+ <component
|
|
|
+ v-bind="scope.attr"
|
|
|
+ v-model="scope.row[scope.item.key]"
|
|
|
+ :size="$attrs.size"
|
|
|
+ :source.sync="scope.row"
|
|
|
+ >
|
|
|
+ </component>
|
|
|
+ </template>
|
|
|
+ <!-- 判断是否禁用 -->
|
|
|
+ <template slot="drug" slot-scope="scope">
|
|
|
+ <component
|
|
|
+ v-bind="scope.attr"
|
|
|
+ v-model="scope.row[scope.item.key]"
|
|
|
+ :size="$attrs.size"
|
|
|
+ :source.sync="scope.row"
|
|
|
+ :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
>
|
|
|
- </el-option>
|
|
|
- </component>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template slot="registrationNo" slot-scope="scope">
|
|
|
- <component
|
|
|
- v-bind="scope.attr"
|
|
|
- v-model="scope.row[scope.item.key]"
|
|
|
- :size="$attrs.size"
|
|
|
- :source.sync="scope.row"
|
|
|
- :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
- >
|
|
|
- </component>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template slot="medicalDevices" slot-scope="scope">
|
|
|
- <component
|
|
|
- v-bind="scope.attr"
|
|
|
- v-model="scope.row[scope.item.key]"
|
|
|
- :size="$attrs.size"
|
|
|
- :source.sync="scope.row"
|
|
|
- :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in dict.type[scope.attr.dictName]"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ <el-option
|
|
|
+ v-for="item in dict.type[scope.attr.dictName]"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </component>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template slot="registrationNo" slot-scope="scope">
|
|
|
+ <component
|
|
|
+ v-bind="scope.attr"
|
|
|
+ v-model="scope.row[scope.item.key]"
|
|
|
+ :size="$attrs.size"
|
|
|
+ :source.sync="scope.row"
|
|
|
+ :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
>
|
|
|
- </el-option>
|
|
|
- </component>
|
|
|
- </template>
|
|
|
- <template slot="maintenanceType" slot-scope="scope">
|
|
|
- <component
|
|
|
- v-bind="scope.attr"
|
|
|
- v-model="scope.row[scope.item.key]"
|
|
|
- :size="$attrs.size"
|
|
|
- :source.sync="scope.row"
|
|
|
- :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in dict.type[scope.attr.dictName]"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ </component>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template slot="medicalDevices" slot-scope="scope">
|
|
|
+ <component
|
|
|
+ v-bind="scope.attr"
|
|
|
+ v-model="scope.row[scope.item.key]"
|
|
|
+ :size="$attrs.size"
|
|
|
+ :source.sync="scope.row"
|
|
|
+ :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
>
|
|
|
- </el-option>
|
|
|
- </component>
|
|
|
- </template>
|
|
|
- <template slot="dosageFromName" slot-scope="scope">
|
|
|
- <component
|
|
|
- v-bind="scope.attr"
|
|
|
- v-model="scope.row[scope.item.key]"
|
|
|
- :size="$attrs.size"
|
|
|
- :source.sync="scope.row"
|
|
|
- :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
- >
|
|
|
- </component>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- <el-table-column fixed="right" label="操作" width="120" align="center">
|
|
|
- <template slot="header" slot-scope="scope">
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
+ <el-option
|
|
|
+ v-for="item in dict.type[scope.attr.dictName]"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </component>
|
|
|
+ </template>
|
|
|
+ <template slot="maintenanceType" slot-scope="scope">
|
|
|
+ <component
|
|
|
+ v-bind="scope.attr"
|
|
|
+ v-model="scope.row[scope.item.key]"
|
|
|
:size="$attrs.size"
|
|
|
- @click="useRowAdd(tabName)"
|
|
|
+ :source.sync="scope.row"
|
|
|
+ :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
>
|
|
|
- 增行
|
|
|
- </el-button>
|
|
|
+ <el-option
|
|
|
+ v-for="item in dict.type[scope.attr.dictName]"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </component>
|
|
|
</template>
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
+ <template slot="dosageFromName" slot-scope="scope">
|
|
|
+ <component
|
|
|
+ v-bind="scope.attr"
|
|
|
+ v-model="scope.row[scope.item.key]"
|
|
|
:size="$attrs.size"
|
|
|
- @click.native.prevent="useRowRemove(tabName, scope)"
|
|
|
+ :source.sync="scope.row"
|
|
|
+ :disabled="!(scope.row.medicineMaterial ==='0') "
|
|
|
>
|
|
|
- 删除
|
|
|
- </el-button>
|
|
|
- <AmendantRecord
|
|
|
- v-if=" tabName ==='materialBasic' && addType === 'edit' && scope.row.id"
|
|
|
- v-model="scope.row"
|
|
|
- ></AmendantRecord>
|
|
|
+ </component>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- </el-super-table>
|
|
|
- </div>
|
|
|
- </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
+
|
|
|
+
|
|
|
+ <el-table-column fixed="right" label="操作" width="120" align="center">
|
|
|
+ <template slot="header" slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ :size="$attrs.size"
|
|
|
+ @click="useRowAdd(tabName)"
|
|
|
+ >
|
|
|
+ 增行
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ :size="$attrs.size"
|
|
|
+ @click.native.prevent="useRowRemove(tabName, scope)"
|
|
|
+ >
|
|
|
+ 删除
|
|
|
+ </el-button>
|
|
|
+ <AmendantRecord
|
|
|
+ v-if=" tabName ==='materialBasic' && addType === 'edit' && scope.row.id"
|
|
|
+ v-model="scope.row"
|
|
|
+ ></AmendantRecord>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-super-table>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ <el-row style="position: absolute; top: 0px; right: 20px">
|
|
|
+
|
|
|
+ <BatchImport
|
|
|
+ ref="batchImport"
|
|
|
+ @import="handelImport"
|
|
|
+ @temDownload="handleTemDownload"
|
|
|
+ ></BatchImport>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
|
|
|
|
|
|
|