更新了医疗器械

master
李劲龙 1 year ago
parent ac83569c9f
commit 0866daf3c7

@ -3,7 +3,7 @@ import request from "@/utils/request";
//获取用户信息
export function getselfInfo() {
return request({
baseURL: location.origin,
// baseURL: location.origin,
url: "/api/admin/user/getSelfInfo",
method: "GET",
});

@ -108,9 +108,61 @@ export const constantRoutes = [
{
path: "/health",
name: "health",
redirect: '/health/health',
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/health.vue"),
meta: { title: "医疗器械档案", keepAlive: true },
children:[
{
path: "/health/health",
name: "health",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/healthSon/health.vue"),
meta: { title: "医疗器械综合查询", keepAlive: true, },
},
{
path: "/health/QIxiehealthOne",
name: "QIxiehealthOne",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/healthSon/QIxiehealthOne.vue"),
meta: { title: "一类医疗器械", keepAlive: true, },
},
{
path: "/health/TiwaihealthOne",
name: "TiwaihealthOne",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/healthSon/TiwaihealthOne.vue"),
meta: { title: "一类体外试剂", keepAlive: true, },
},
{
path: "/health/QixiehealthTow",
name: "QixiehealthTow",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/healthSon/QixiehealthTow.vue"),
meta: { title: "二类医疗器械", keepAlive: true, },
},
{
path: "/health/TiwaihealthTow",
name: "TiwaihealthTow",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/healthSon/TiwaihealthTow.vue"),
meta: { title: "二类体外试剂", keepAlive: true, },
},
{
path: "/health/QIxiehealthThree",
name: "QIxiehealthThree",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/healthSon/QIxiehealthThree.vue"),
meta: { title: "三类医疗器械", keepAlive: true, },
},
{
path: "/health/TiwaihealthThree",
name: "TiwaihealthThree",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/healthSon/TiwaihealthThree.vue"),
meta: { title: "三类体外试剂", keepAlive: true, },
},
]
},
{
path: "/cosmeticsArchives",

@ -93,8 +93,10 @@ export default {
type: String,
default: '档案'
},
mytype: {
type: String,
default: ''
},
},
created() { },
@ -114,7 +116,7 @@ export default {
async isEcharts() {
this.chartDatatow = []
this.chartData = []
if (this.echartstitle == "医疗器械") {
if (this.echartstitle == "医疗器械" && this.mytype != "healtson") {
let msg1 = await this.$api.apparatus.typecount({ area: this.mystortTow });
if (msg1.code == 200) {
msg1.data.forEach(item => {
@ -136,7 +138,6 @@ export default {
this.clickShow = true
}
} else if (this.echartstitle == "化妆品/注册备案品种" || this.echartstitle == "化妆品/委托生产品种") {
let msg1 = await this.$api.apparatus.gccptypecount({ area: this.mystortTow });
if (msg1.code == 200) {
@ -232,6 +233,7 @@ export default {
msg2.data.forEach(item => {
this.cityData[item.area] = item.count
})
}
@ -241,16 +243,22 @@ export default {
let msg2 = await _this.$api.apparatus[data]()
if (msg2.code == 200) {
msg2.data.forEach(item => {
_this.cityData[item.area] = item.count
_this.cityData[item.area] = item.count || item.countOne
if (_this.mytype == "healtson") {
_this.chartDatatow.push(item.countOne)
_this.chartData.push(item.area)
}
})
}
_this.initPoitCenter(_this.cityData);
if (_this.mytype == "healtson") {
_this.mycharts()
}
}
},
mycharts() {
let option = {
tooltip: {
trigger: 'axis',
@ -289,7 +297,7 @@ export default {
}],
yAxis: [{
type: 'value',
}],
series: [{
name: 'Direct',
@ -344,7 +352,6 @@ export default {
this.globalMap.on('click', () => {
this.globalMap.fitBounds(this.mygeojson.getBounds());
})
this.isLefleat('1')
@ -384,9 +391,10 @@ export default {
let _this = this;
let geojson = L.geoJSON(cityJson, {
onEachFeature: function onEachFeature(feature, layer) {
//
layer.on({
click: function zoomToFeature(e) {
if (!_this.mystort && _this.clickShow) {
if (!_this.mystort && _this.clickShow && _this.mytype != "healtson") {
_this.mystortTow = feature.properties.name
_this.highlightFeature(e, geojson)
_this.clickShow = false
@ -480,7 +488,7 @@ export default {
// this.globalMap.fitBounds(geoJSON.getBounds());
},
highlightFeature(e, geojson) {
console.log();
if (this.mylayer) {
if (this.mylayer.feature.properties.name == e.target.feature.properties.name) {
this.mylayer.setStyle({
@ -518,6 +526,7 @@ export default {
computed: {}
}
</script>
<style scoped lang='scss'>
.box {
position: relative;

@ -71,7 +71,6 @@ export default {
},
activeMenu() {
//
console.log(this.$route.path);
return this.$route.path;
},
},

@ -1,881 +1,24 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" @arealist="arealist" ref="mapcars" v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品"
:disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" :disabled="form1.cplb == '第三类'"
clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in btnArr" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
<div>
<keep-alive>
<router-view></router-view>
</keep-alive>
</div>
</template>
<script>
import { download, dcylqx } from "../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCars.vue";
export default {
components: { MapCars },
name: '',
components: {},
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cplb: "",
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "",
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
this.form1.cplb = item.value
this.form1.cplx = item.cplx
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cplb: "",
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "",
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
if (to.path != '/cosmeticsDetail') {
this.reset(1)
}
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
created() { },
mounted() { },
methods: {},
computed: {}
}
</script>
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>
<style scoped lang='scss'></style>

@ -0,0 +1,897 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" mytype="healtson" @arealist="arealist" ref="mapcars"
v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" @clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<!-- :disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" -->
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<!-- :disabled="form1.cplb == '第三类'" -->
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in optionsTowBtn" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label="所在地" prop="" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="有效期至" prop="" min-width="120" align="center">
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { download, dcylqx } from "../../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCarsLog.vue";
export default {
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTowBtn: [
{ value: 1, label: '有效' },
{ value: 2, label: '失效' }
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "医疗器械",//
cplb: "第一类",//
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
cplx: "医疗器械",//
cplb: "第一类",//
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
// this.form1.cplb = item.value
// this.form1.cplx = item.cplx
this.form1.ppztDm = item.value
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "医疗器械",//
cplb: "第一类",//
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
cplx: "医疗器械",//
cplb: "第一类",//
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
this.reset(1)
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,897 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" mytype="healtson" @arealist="arealist" ref="mapcars"
v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" @clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<!-- :disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" -->
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<!-- :disabled="form1.cplb == '第三类'" -->
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in optionsTowBtn" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label="所在地" prop="" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="有效期至" prop="" min-width="120" align="center">
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { download, dcylqx } from "../../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCarsLog.vue";
export default {
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTowBtn: [
{ value: 1, label: '有效' },
{ value: 2, label: '失效' }
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "医疗器械",//
cplb: "第三类",//
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
cplx: "医疗器械",//
cplb: "第三类",//
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
// this.form1.cplb = item.value
// this.form1.cplx = item.cplx
this.form1.ppztDm = item.value
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "医疗器械",//
cplb: "第三类",//
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
cplx: "医疗器械",//
cplb: "第三类",//
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
this.reset(1)
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,897 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" mytype="healtson" @arealist="arealist" ref="mapcars"
v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" @clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<!-- :disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" -->
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<!-- :disabled="form1.cplb == '第三类'" -->
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in optionsTowBtn" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label="所在地" prop="" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="有效期至" prop="" min-width="120" align="center">
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { download, dcylqx } from "../../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCarsLog.vue";
export default {
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTowBtn: [
{ value: 1, label: '有效' },
{ value: 2, label: '失效' }
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "医疗器械",//
cplb: "第二类",//
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
cplx: "医疗器械",//
cplb: "第二类",//
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
// this.form1.cplb = item.value
// this.form1.cplx = item.cplx
this.form1.ppztDm = item.value
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "医疗器械",//
cplb: "第二类",//
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
cplx: "医疗器械",//
cplb: "第二类",//
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
this.reset(1)
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,897 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" mytype="healtson" @arealist="arealist" ref="mapcars"
v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" @clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<!-- :disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" -->
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<!-- :disabled="form1.cplb == '第三类'" -->
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in optionsTowBtn" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label="所在地" prop="" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="有效期至" prop="" min-width="120" align="center">
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { download, dcylqx } from "../../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCarsLog.vue";
export default {
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTowBtn: [
{ value: 1, label: '有效' },
{ value: 2, label: '失效' }
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "体外诊断试剂",//
cplb: "第一类",//
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
cplx: "体外诊断试剂",//
cplb: "第一类",//
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
// this.form1.cplb = item.value
// this.form1.cplx = item.cplx
this.form1.ppztDm = item.value
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "体外诊断试剂",//
cplb: "第一类",//
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
cplx: "体外诊断试剂",//
cplb: "第一类",//
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
this.reset(1)
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,897 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" mytype="healtson" @arealist="arealist" ref="mapcars"
v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" @clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<!-- :disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" -->
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<!-- :disabled="form1.cplb == '第三类'" -->
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in optionsTowBtn" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label="所在地" prop="" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="有效期至" prop="" min-width="120" align="center">
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { download, dcylqx } from "../../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCarsLog.vue";
export default {
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTowBtn: [
{ value: 1, label: '有效' },
{ value: 2, label: '失效' }
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "体外诊断试剂",//
cplb: "第三类",//
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
cplx: "体外诊断试剂",//
cplb: "第三类",//
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
// this.form1.cplb = item.value
// this.form1.cplx = item.cplx
this.form1.ppztDm = item.value
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "体外诊断试剂",//
cplb: "第三类",//
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
cplx: "体外诊断试剂",//
cplb: "第三类",//
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
this.reset(1)
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,897 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" mytype="healtson" @arealist="arealist" ref="mapcars"
v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" @clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<!-- :disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" -->
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<!-- :disabled="form1.cplb == '第三类'" -->
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<!-- :disabled="form1.cplb == '第三类'" clearable -->
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in optionsTowBtn" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label="所在地" prop="" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="有效期至" prop="" min-width="120" align="center">
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { download, dcylqx } from "../../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCarsLog.vue";
export default {
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTowBtn: [
{ value: 1, label: '有效' },
{ value: 2, label: '失效' }
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "体外诊断试剂",//
cplb: "第二类",//
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
cplx: "体外诊断试剂",//
cplb: "第二类",//
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
// this.form1.cplb = item.value
// this.form1.cplx = item.cplx
this.form1.ppztDm = item.value
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "体外诊断试剂",//
cplb: "第二类",//
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
cplx: "体外诊断试剂",//
cplb: "第二类",//
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
this.reset(1)
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,884 @@
<template>
<div class="container">
<div class="tabs">
<div class="headerText">
<div class="searchP">123统计分析</div>
</div>
<div>
<MapCars leafletitle="医疗器械" echartstitle="医疗器械" @arealist="arealist" ref="mapcars" v-if="MapCarsshow" />
</div>
</div>
<div class="tabs">
<div class="headerText">
<div class="searchP">查询条件</div>
</div>
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row> -->
</div>
<el-row>
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="结构及组成或主要组成部分">
<el-input v-model="form1.jgjzccf" placeholder="请输入结构及组成或主要组成部分" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="产品类别">
<el-select v-model="form1.cplb" placeholder="请选择产品类别">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="注册/备案人">
<el-input v-model="form1.zcsqr" placeholder="请输入注册/备案人" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.ppztDm" placeholder="请选择注册证/备案凭证状态" clearable @clear="isclear">
<el-option v-for="item in optionsTow" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="结构特征">
<el-select v-model="form1.ylqxjgtz" placeholder="请选择结构特征" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear">
<el-option v-for="item in optionsSan" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<!-- <div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div> -->
</el-row>
<el-row>
<el-col :span="8">
<div>
<el-form-item label="分类编码">
<el-input v-model="form1.ylqxflbm" placeholder="请输入分类编码" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div>
<el-form-item label="是否为创新产品">
<el-select v-model="form1.sfCxcp" placeholder="请选择是否为创新产品"
:disabled="form1.cplb == '第一类' || form1.cplb == '第三类'" clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为应急注册产品">
<el-select v-model="form1.sfyjzccp" placeholder="请选择是否为应急注册产品" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为附条件审批产品">
<el-select v-model="form1.sfFjtjspcp" placeholder="请选择是否为附条件审批产品" :disabled="form1.cplb == '第三类'"
clearable @clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="是否为优先注册产品">
<el-select v-model="form1.sfYxz" placeholder="请选择是否为优先注册产品" :disabled="form1.cplb == '第三类'" clearable
@clear="isclear">
<el-option v-for="item in optionsSi" :key="item.value" :label="item.label" :value="item.label">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-circle-plus-outline" @click="collapsechange(0)"></el-button>
</div>
</el-row>
<div v-show="!bthshow">
<el-row v-if="false">
<div class="title-box">审评受理信息查询</div>
<el-col :span="8">
<el-form-item label="受理号">
<el-input v-model="form1.cjxm" placeholder="请输入受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请事项">
<el-input v-model="form1.jyslbh" placeholder="请输入申请事项"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="8">
<el-form-item label="样品编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入样品编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验类别">
<el-input v-model="form1.blfylx" placeholder="请输入检验类别"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验日期">
<el-input v-model="form1.fsnf" placeholder="请输入检验日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="核查受理号">
<el-input v-model="form1.cyjb" placeholder="请输入核查受理号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-input v-model="form1.cyrq" placeholder="请输入核查受理号"></el-input>
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<div class="title-box">临床试验信息查询</div>
<el-col :span="8">
<el-form-item label="试验日期">
<el-input v-model="form1.syrq" placeholder="请输入试验日期"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验名称">
<el-input v-model="form1.lcsymc" placeholder="请输入临床试验名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="false">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="8">
<el-form-item label="检验项目">
<el-input v-model="form1.cjxm" placeholder="请输入检验项目" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检验报告书编号">
<el-input v-model="form1.jyslbh" placeholder="请输入检验报告书编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样编号">
<el-input v-model="form1.cybh" placeholder="请输入抽样编号" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="抽样级别">
<el-input v-model="form1.cyjb" placeholder="请输入抽样级别" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入抽样日期">
<el-input v-model="form1.cyrq" placeholder="请输入抽样日期" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最终检验结论" placeholder="请输入最终检验结论">
<el-input v-model="form1.syrq" placeholder="请输入最终检验结论" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号" clearable @clear="isclear"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="报告类型">
<!-- <el-input v-model="form1.blfylx" placeholder="请输入不良反应类型" clearable @clear="isclear"></el-input> -->
<el-select v-model="form1.lcsymc" placeholder="请选择报告类型">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="不良反应名称">
<el-input v-model="form1.jcrq" placeholder="请输入不良反应名称" clearable @clear="isclear"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="footBox" v-show="!bthshow">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
</div>
</el-form>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<div>
<div round class="mybuttom" :class="btnArrshow == item.label ? 'mybuttomshow' : ''"
v-for="(item, index) in btnArr" @click="xuanzelist(item)">{{ item.label
}}</div>
</div>
<el-button type="primary" icon="el-icon-edit-outline" @click="exportList()"></el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="500" style="width: 100%">
<el-table-column type="selection" width="60" align="center" />
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column label="产品名称" prop="cpmc" min-width="120" align="center">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" min-width="120" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" min-width="160" align="center"></el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" min-width="280" align="center">
<template slot-scope="scope">
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" min-width="120" align="center">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" min-width="220" align="center">
</el-table-column>
<el-table-column label="统一社会信用代码" prop="shxydm" min-width="220" align="center">
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" min-width="160" align="center">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label="生产地址" prop="scdz" min-width="230" align="center"></el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
</section>
<pagination :total="total" :page="form.current" :limit="form.size" @pagination="getPagination"
:current-page.sync="form.current"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
<span>{{ src }}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDC()"> </el-button>
<el-button type="primary" @click="openDC()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { download, dcylqx } from "../../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCars.vue";
export default {
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cplb: "",
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "", //
jyslbh: "", //
cybh: "", //
cyjb: "", //
cyrq: "", //
blfybgbh: "", //
blfylx: "", //
fsnf: "", //
lcsymc: "", //
jcrq: "", //
syrq: "", //
syhcrq: "", //
ppztDm: "",// /
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
sfFjtjspcp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "",
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// inputx
isclear() {
this.searchList()
},
//
xuanzelist(item) {
this.btnArrshow = item.label
this.form1.cplb = item.value
this.form1.cplx = item.cplx
this.searchList()
},
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
} else {
this.bthshow = true
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none'
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""
}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""
}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""
}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//
reset(type) {
this.btnArrshow = '全部'
this.form1 = {
cplb: "",
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
ppztDm: "",
ylqxjgtz: '', // 1 2
sfCxcp: '',// 1 2
sfYxz: "",// 1 2
sfyjzccp: "",// 1 2
ylqxflbm: "",//
jgjzccf: "",//
cplx: "",
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
}
return obj[item]
}
},
beforeRouteLeave(to, from, next) {
this.reset(1)
this.MapCarsshow = false
next()
},
activated() {
this.MapCarsshow = true
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 30vh !important;
}
::v-deep .el-dialog__body {
padding: 15px;
}
::v-deep .el-select {
width: 100% !important;
}
.container {
min-height: 100%;
// overflow: auto;
background: #f2f2f2;
.headerText {
width: 100%;
padding: 10px 20px;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
}
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 97.5%;
text-align: center;
padding-bottom: 10px;
}
.tabsBottom {
// height: 70%;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: #ffffff;
}
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 15px 20px;
}
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {
.el-form-item__label {
line-height: 20px;
}
}
::v-deep .el-collapse {
border: none;
}
::v-deep .el-form-item__content {
margin: 0;
}
::v-deep .el-collapse-item__header {
padding-left: 80vw;
font-size: 20px;
font-weight: 600;
.el-collapse-item__arrow {
margin-left: 20px;
}
}
.title-box {
position: relative;
padding-left: 30px;
font-size: 16px;
font-weight: 600;
margin-bottom: 20px;
color: #1349c5;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
background-color: rgba(30, 128, 235, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,325 @@
import { dcylqx } from "../../../api/archives/updata";
import { Loading } from "element-ui";
export default (await import('vue')).defineComponent({
components: { MapCars },
data() {
return {
options1: [
{
value: 0,
label: "一般",
},
{
value: 1,
label: "严重",
},
],
MapCarsshow: true,
//===========
loading: false,
tableData: [],
total: 0,
options: [
{
value: 1,
label: "第一类",
},
{
value: 2,
label: "第二类",
},
{
value: 3,
label: "第三类",
},
],
optionsTow: [
{ value: 1, label: '有效' },
{ value: 2, label: '撤销' },
{ value: 3, label: '吊销' },
{ value: 4, label: '过期' },
{ value: 5, label: '删除' },
{ value: 6, label: '收缴' },
{ value: 7, label: '注销' },
{ value: 8, label: '取消备案' }
],
optionsSan: [
{ value: 1, label: '有源' },
{ value: 2, label: '无源' },
],
optionsSi: [
{ value: 1, label: '是' },
{ value: 2, label: '否' },
],
form1: {
cplb: "",
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
// 统一查询
name: "",
cjxm: "", // 检验项目
jyslbh: "", //检验受理编号
cybh: "", //抽样编号
cyjb: "", // 抽样级别
cyrq: "", // 抽样日期
blfybgbh: "", // 不良反应报告编号
blfylx: "", // 不良反应类型
fsnf: "", // 发生年份
lcsymc: "", // 临床试验名称
jcrq: "", // 检查日期
syrq: "", // 试验日期
syhcrq: "", //试验核查日期
ppztDm: "", // 注册证状态/备案凭证状态
ylqxjgtz: '', //结构特征 1有源 2 无源
sfCxcp: '', // 是否为创新产品 1是 2 否
sfYxz: "", // 是否为优先注册产品 1是 2 否
sfyjzccp: "", //是否为应急注册产品 1是 2 否
sfFjtjspcp: "", //是否为附加条件审批产品 1是 2 否
ylqxflbm: "", //输入分类编码
jgjzccf: "", //结构及组成或主要组成部
cplx: "",
area: this.$store.getters.usersort
},
form: {
size: 20,
current: 1,
area: this.$store.getters.usersort
},
jieliuShow: true,
loadA: null,
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开",
echartstlist: null,
btnArrshow: "全部",
btnArr: [{
label: '全部',
iscss: "warning",
value: '',
cplx: ""
}, {
label: '一类医疗器械',
iscss: "warning",
value: '第一类',
cplx: "医疗器械"
}, {
label: '一类体外试剂',
iscss: "warning",
value: '第一类',
cplx: "体外诊断试剂"
}, {
label: '二类医疗器械',
iscss: "success",
value: '第二类',
cplx: "医疗器械"
}, {
label: '二类体外试剂',
iscss: "success",
value: '第二类',
cplx: "体外诊断试剂"
}, {
label: '三类医疗器械',
iscss: "primary",
value: '第三类',
cplx: "医疗器械"
}, {
label: '三类体外试剂',
iscss: "primary",
value: '第三类',
cplx: "体外诊断试剂"
}]
};
},
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
// 点击input上的x号
isclear() {
this.searchList();
},
//全部、三类医疗器械、三类体外试剂、二类医疗器械、二类体体外试剂、一类医疗器械、一类体外试剂
xuanzelist(item) {
this.btnArrshow = item.label;
this.form1.cplb = item.value;
this.form1.cplx = item.cplx;
this.searchList();
},
arealist(area) {
this.form.area = area;
this.form1.area = area;
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false;
} else {
this.bthshow = true;
}
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
dcylqx(this.form1).then((res) => {
const blob = new Blob([res], { type: res.type });
const link = document.createElement("a");
link.style.display = 'none';
link.href = window.URL.createObjectURL(blob);
link.download = "医疗器械" + '.xlsx';
link.click();
this.loadA.close();
this.$message({
type: "success",
message: "导出成功",
});
}).catch((err) => {
this.$message({
type: "info",
message: "导出失败",
});
});
},
closeDC() {
this.showCK = false;
this.$message({
type: "info",
message: "已取消导出",
});
},
exportList() {
this.src = `确定导出${this.form1.cpmc ? `产品名称为${this.form1.cpmc}` : ""}${this.form1.cplb ? `产品类别为${this.form1.cplb}` : ""}${this.form1.zcsqr ? `生产企业为${this.form1.zcsqr}` : ""}${this.form1.zczh ? `注册证编号或备案编号为${this.form1.zczh}` : ""}数据吗?`;
this.showCK = true;
},
jieliuFunc() {
if (this.jieliuShow) {
this.chinaCosmetics();
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 500);
} else {
this.$message("点击过快");
}
},
//去内嵌页面
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "3", data: e.zczh },
});
},
//搜索
searchList() {
this.form.current = 1;
for (let i in this.form1) {
this.form[i] = this.form1[i];
}
this.jieliuFunc();
},
getPagination(e) {
this.form.current = e.page;
this.form.size = e.limit;
this.chinaCosmetics();
},
//重置
reset(type) {
this.btnArrshow = '全部';
this.form1 = {
cplb: "",
cpmc: "",
zcsqr: "",
zczh: "",
size: 20,
current: 1,
// 统一查询
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// 注册证状态/备案凭证状态
ppztDm: "",
ylqxjgtz: '', //结构特征 1有源 2 无源
sfCxcp: '', // 是否为创新产品 1是 2 否
sfYxz: "", // 是否为优先注册产品 1是 2 否
sfyjzccp: "", //是否为应急注册产品 1是 2 否
ylqxflbm: "", //输入分类编码
jgjzccf: "", //结构及组成或主要组成部
cplx: "",
area: this.$store.getters.usersort
};
this.form = {
size: 20,
current: 1,
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer();
}
this.jieliuFunc();
},
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.apparatus.apparatusList(this.form);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
this.form.current = msg1.data.current;
this.loading = false;
},
zczt(item) {
let obj = {
1: "有效",
2: "撤销",
3: "吊销",
4: "过期",
5: "删除",
6: "收缴",
7: "注销",
8: "取消备案",
};
return obj[item];
}
},
beforeRouteLeave(to, from, next) {
if (to.path != '/cosmeticsDetail') {
this.reset(1);
}
this.MapCarsshow = false;
next();
},
activated() {
this.MapCarsshow = true;
}
});

@ -102,7 +102,6 @@
{{ scope.row.yljgmc }}
</template>
</el-table-column>
<el-table-column label="医疗机构制剂许可证编号" min-width="290" align="center">
<template slot-scope="scope">
{{ scope.row.zjxkzbh }}

Loading…
Cancel
Save