You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-cpt-vue/src/views/basic/product/rel/productEdit.vue

813 lines
27 KiB
Vue

<template>
<div>
<el-card>
<el-table v-loading="loading" :data="detailList" style="width: 100%; margin-top: 20px" border key="3"
@current-change="handleDetail">
<el-table-column label="产品DI标识" prop="nameCode" show-overflow-tooltip></el-table-column>
<el-table-column label="产品通用名" prop="cpmctymc" show-overflow-tooltip></el-table-column>
<el-table-column label="包装级别" prop="packLevel" show-overflow-tooltip></el-table-column>
<el-table-column label="包装层级" prop="bzcj" show-overflow-tooltip></el-table-column>
</el-table>
</el-card>
<el-form :model="detailQuery" :rules="rules" ref="detailQuery" label-width="120px" style="margin-top: 20px">
<el-card>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="注册企业:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
disabled
splaceholder="请输入内容"
v-model="detailQuery.companyName"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="医疗器械注册人:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
disabled
splaceholder="请输入内容"
v-model="detailQuery.ylqxzcrbarmc"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="产品通用名称:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
disabled
splaceholder="请输入内容"
v-model="detailQuery.cpmctymc"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册证/备案号:" class="query-form-item">
<el-input
style="width: 80%"
size="small" disabled
splaceholder="请输入内容"
v-model="detailQuery.zczbhhzbapzbh"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="规格型号:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
disabled
splaceholder="请输入内容"
v-model="detailQuery.ggxh"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品描述:" class="query-form-item" show-overflow-tooltip>
<el-input
style="width: 80%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="detailQuery.cpms"
></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row type="flex" class="edit-row">-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="产品描述:" class="query-form-item" show-overflow-tooltip>-->
<!-- <el-input-->
<!-- style="width: 80%"-->
<!-- size="small"-->
<!-- :disabled="true"-->
<!-- splaceholder="请输入内容"-->
<!-- v-model="detailQuery.cpms"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="计量单位:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.measname"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产企业:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.manufactory"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="医疗器械分类:" class="query-form-item">
<el-select
v-model="detailQuery.categoryLevel"
placeholder="医疗器械分类"
clearable
size="small"
style="width: 80%"
>
<el-option label="一类" value="一类"></el-option>
<el-option label="二类" value="二类"></el-option>
<el-option label="三类" value="三类"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="集采类型:" class="query-form-item">
<el-select
v-model="detailQuery.groupBuy"
placeholder="请选择集采类型"
clearable
size="small"
style="width: 80%"
>
<el-option label="集采" :value="1"></el-option>
<el-option label="非集采" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="医保类型:" class="query-form-item">
<el-select
v-model="detailQuery.chsType"
placeholder="医保类型"
clearable
size="small"
style="width: 80%"
>
<el-option label="医保" :value="1"></el-option>
<el-option label="非医保" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="进口类型:" class="query-form-item">
<el-select
v-model="detailQuery.importType"
placeholder="请选进口类型"
clearable
size="small"
style="width: 80%"
>
<el-option label="进口" :value="1"></el-option>
<el-option label="非进口" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="商品名称:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.spmc"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="填报者身份:" class="query-form-item">
<el-select
v-model="detailQuery.companyType"
placeholder="请选择填报者身份"
clearable
size="small"
style="width: 80%"
>
<el-option label="本企业" :value="1"></el-option>
<el-option label="代理商" :value="2"></el-option>
<el-option label="购买方" :value="3"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="代理起始时间:" class="query-form-item">
<el-date-picker
format="yyyy 年 MM 月 dd 日"
v-model="detailQuery.agengtStartDate"
type="date"
style="width: 80%"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="代理截止时间:" class="query-form-item">
<el-date-picker
format="yyyy 年 MM 月 dd 日"
v-model="detailQuery.agengtEndDate"
type="date"
style="width: 80%"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-card>
<el-card>
<el-collapse v-model="activeNames">
<el-collapse-item name="1">
<template slot="title">
<p class="form-title">产品标识基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品DI标识:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.nameCode"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含最小销售包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="detailQuery.bhzxxsbzsl"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="detailQuery.bhxjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>最小包装单元内包含使用单元数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.zxxsbzbhsydysl"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="2">
<template slot="title">
<p class="form-title">产品基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品通用名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="detailQuery.cpmctymc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品DI标识:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.nameCode"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>规格型号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.ggxh"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>器械类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.cplx"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.hchzsb"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>分类编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.flbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>商品条码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.sptm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医保编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.ybbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医疗器械注册人:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="ylqxzcrbarmc"
v-model="detailQuery.ylqxzcrbarmc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册人英文名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.ylqxzcrbarywmc"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>统一社会信用号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.tyshxydm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册证/备案号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.zczbhhzbapzbh"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>生产企业:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品描述:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.cpms"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="3">
<template slot="title">
<p class="form-title">生产标识基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含批号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.scbssfbhph"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含序列号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
v-model="detailQuery.scbssfbhxlh"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含生产日期:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.scbssfbhscrq"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含失效日期:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
v-model="detailQuery.scbssfbhsxrq"
size="small"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="4">
<template slot="title">
<p class="form-title">包装标识信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>上级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.sjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包装级别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="detailQuery.packLevel"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包装层级:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.bzcj"
:disabled="true"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="detailQuery.bhxjsl"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-card>
</el-form>
</div>
</template>
<script>
import {filterByUuid, updateRel} from "@/api/basic/udiRlCompany";
import {editDict} from "@/api/basic/UdiBasic";
export default {
name: "UdiBasicProductEdit",
props: {
detailQuery: {
type: Object,
required: true,
},
checked: {
type: Boolean,
required: true,
},
closeDialog: {
type: Function,
required: true,
},
},
data() {
return {
sysList: [],
detailList: [],
}
},
methods: {
getDetailList() {
let ttquery = {
uuid: this.detailQuery.uuid
};
this.loading = true;
filterByUuid(ttquery)
.then((response) => {
this.isUseDyCheck = false;
this.loading = false;
this.detailList = response.data || [];
this.detailList.forEach((item, index, array) => {
if (item.zxxsbzbhsydysl > 1) {
this.isUseDyCheck = true;
}
});
})
.catch(() => {
this.loading = false;
this.detailList = [];
});
},
onAddSubmit() {
editDict(this.detailQuery)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.closeDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.cancelDialog();
});
},
cancelDialog() {
this.closeDialog();
},
},
created() {
this.getDetailList(this.detailQuery.id);
}
}
</script>
<style scoped>
.itemTag {
float: left;
text-align: right;
margin-top: 5px;
padding-right: 10px;
width: 35%;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 0px;
}
.edit-row {
display: flex;
flex-wrap: wrap;
margin-bottom: 0px;
}
.el-row {
display: flex;
flex-wrap: wrap;
margin-bottom: 6px;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
}
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
.form-title {
font-size: 16px;
font-family: Noto Sans SC;
font-weight: bold;
color: #303133;
padding-bottom: 17px;
padding-top: 17px;
}
</style>