更新内容

master
李劲龙 1 year ago
parent b1c159102e
commit 7ab553898d

@ -34,7 +34,9 @@ export default {
// var decodedValue = decodeURIComponent(value);
// obj[key] = decodedValue;
// });
/*
*/
const params = new URLSearchParams(window.location.href.split("?")[1]);
//
@ -43,13 +45,15 @@ export default {
const data = params.get("data");
const token = params.get("token");
const leixing = params.get("leixing") || "";
const bah = params.get("bah") || "";
let obj = {
type,
flag,
data,
token,
leixing
leixing,
bah
}
console.log(888, obj);
if (
@ -89,7 +93,7 @@ export default {
// },
// });
// }
// this.$store.commit("app/URLChange", obj);
// this.$store.commit("app/URLChange", obj);
// });
},
};
@ -99,7 +103,7 @@ export default {
cd /usr/share/nginx/html/ggfw-iframe 移动到文件夹下
unzip ggfw-iframe.zip -d . 解压
rm ./ggfw-iframe.zip 删除当前目录下的压缩包 弹出确定删除 y 并回车
*/
</script>
@ -123,20 +127,23 @@ export default {
.custom {
font-size: vb(14) !important;
}
.el-pager li{
.el-pager li {
font-size: vb(16) !important;
}
.el-pagination .btn-prev .el-icon{
.el-pagination .btn-prev .el-icon {
font-size: vb(16) !important;
}
.el-pagination .btn-next .el-icon{
.el-pagination .btn-next .el-icon {
font-size: vb(16) !important;
}
.el-pagination__jump{
.el-pagination__jump {
font-size: vb(16) !important;
}
}
</style>
}</style>

@ -1,6 +1,6 @@
import request from "@/utils/request";
let api = "/api";
// let api = location.origin
// let api = "/api";
let api = location.origin
export default {
// 分页查询企业执照列表
getEnterpriseLicenseByPage(data) {

@ -18,10 +18,10 @@ axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
// !本地使用
baseURL: process.env.VUE_APP_BASE_API,
// baseURL: process.env.VUE_APP_BASE_API,
// !外地使用
// baseURL: location.origin + process.env.VUE_APP_URL,
baseURL: location.origin + process.env.VUE_APP_URL,
// 超时
timeout: 60000,
});

@ -807,7 +807,7 @@ export default {
justify-content: center;
align-items: center;
border: none;
width: vw(64);
// width: vw(64);
height: vh(40);
background: #1e80eb;
border-radius: vw(4);
@ -824,7 +824,7 @@ export default {
display: flex;
justify-content: center;
align-items: center;
width: vw(64);
// width: vw(64);
height: vh(40);
border: vw(1) solid #1e80eb;
border-radius: vw(4);

@ -82,7 +82,7 @@
}}-{{ numberMap() }}</span
> -->
<span class="custom">
100条显示1-10
0条显示0条
</span>
<el-pagination
background
@ -122,7 +122,7 @@ export default {
// }
currentPage:1,
pageSize:10,
total:100,
total:0,
}
},
props:['transinformation'],

@ -192,13 +192,21 @@
</el-descriptions>
</div>
</block-header>
<block-header title="执行标准信息" style="min-height: 20vh" v-if="obj.type == '1'">
<div v-loading="loading" v-if="obj.type == '1' && (obj.flag == 1 || obj.flag == 3)">
<my-descriptions :descriptions="listTowsan"></my-descriptions>
</div>
<div v-loading="loading" v-if="obj.type == '1' && (obj.flag == 2 || obj.flag == 4)">
<my-descriptions :descriptions="listTowsanTow"></my-descriptions>
</div>
</block-header>
<block-header title="注册信息" style="min-height: 92vh" v-if="obj.type == '2'">
<div v-loading="loading">
<my-descriptions :descriptions="listTow"></my-descriptions>
</div>
</block-header>
<block-header :title="item.label" style="min-height: 13vh" v-for="item in listthree" :key="item.id"
v-show="obj.type == item.type || item.label == '生产标准信息'">
v-show="obj.type == item.type || item.label == '生产标准信息'" v-if="obj.type != '1'">
<div v-loading="loading">
<descriptionsbianji :descriptions="item.children"></descriptionsbianji>
</div>
@ -218,6 +226,124 @@ export default {
loading: true,
list: [],
listTow: [],
listTowsan: [{
id: 1,
label: "标准编号",
value: "",
data: "cpmc",
},
{
id: 2,
label: "原料中文名称",
value: "",
data: "",
},
{
id: 3,
label: "生产工艺",
value: "",
data: "",
},
{
id: 4,
label: "是否分段生产",
value: "",
data: "bah",
},
{
id: 5,
label: "检验指标",
value: "",
data: "sj",
},
{
id: 13,
label: "注意事项",
value: "",
data: "lxr",
},
{
id: 12,
label: "产品使用方法",
value: "",
data: "dh",
},
{
id: 11,
label: "安全警示用语",
value: "",
data: "dq",
}, {
id: 15,
label: "贮存条件",
value: "",
data: "dq",
}, {
id: 16,
label: " 使用期限",
value: "",
data: "dq",
},],
listTowsanTow: [{
id: 1,
label: "标准编号",
value: "",
data: "cpmc",
},
{
id: 2,
label: "原料中文名称",
value: "",
data: "",
},
{
id: 3,
label: "生产工艺",
value: "",
data: "",
},
{
id: 4,
label: "是否分段生产",
value: "",
data: "bah",
},
{
id: 5,
label: "检验指标",
value: "",
data: "sj",
},
{
id: 13,
label: "注意事项",
value: "",
data: "lxr",
},
{
id: 12,
label: "产品使用方法",
value: "",
data: "dh",
},
{
id: 11,
label: "安全警示用语",
value: "",
data: "dq",
}, {
id: 15,
label: "贮存条件",
value: "",
data: "dq",
}, {
id: 16,
label: " 使用期限",
value: "",
data: "dq",
},],
listthree: [
{
id: 1,
@ -229,7 +355,7 @@ export default {
label: "生产标准信息",
value: "",
data: "yptymc",
show:false
show: false
},
],
},
@ -243,7 +369,7 @@ export default {
label: "工艺流程信息",
value: "",
data: "yptymc",
show:false
show: false
},
],
},
@ -257,7 +383,7 @@ export default {
label: "处方信息",
value: "",
data: "yptymc",
show:false
show: false
},
],
},
@ -573,6 +699,63 @@ export default {
value: "",
data: "",
},
{
id: 13,
label: "备案人(外文)",
value: "",
data: "",
}, { id: 13, label: " 备案人住所地址所在国家(或地区)", value: "", data: "" },
{ id: 14, label: " 备案人住所地址所在省(自治区/直辖市)", value: "", data: "" },
{ id: 15, label: "备案人住所地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 16, label: "备案人住所地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 17, label: "备案人住所地址", value: "", data: "" },
{ id: 18, label: "备案人境外地址(外文)", value: "", data: "" },
{ id: 19, label: "境内责任人名称", value: "", data: "" },
{ id: 20, label: "境内责任人联系人", value: "", data: "" },
{ id: 21, label: "生产资质证明类型", value: "", data: "" },
{ id: 22, label: "境内责任人联系电话", value: "", data: "" },
{ id: 23, label: "境内责任人住所地址所在国家(或地区)", value: "", data: "" },
{ id: 24, label: "境内责任人住所地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 25, label: "境内责任人住所地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 26, label: "境内责任人住所地址", value: "", data: "" },
{ id: 27, label: "产品国别", value: "", data: "" },
{ id: 28, label: "产品生产类别", value: "", data: "" },
{ id: 29, label: "新原料使用情况", value: "", data: "" },
{ id: 30, label: "使用已备案新原料的备案号", value: "", data: "" },
{ id: 31, label: "使用已注册新原料的注册号", value: "", data: "" },
{ id: 32, label: "是否套装产品", value: "", data: "" },
{ id: 33, label: "是否配合仪器使用产品", value: "", data: "" },
{ id: 34, label: "生产许可证编号", value: "", data: "" },
{ id: 35, label: "生产地址所在国家(或地区)", value: "", data: "" },
{ id: 36, label: "生产地址所在省(自治区/直辖市)", value: "", data: "" },
{ id: 37, label: "生产地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 38, label: "生产地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 39, label: " 生产地址", value: "", data: "" },
{ id: 40, label: "生产企业", value: "", data: "" },
{ id: 41, label: "进口省份", value: "", data: "" },
{ id: 42, label: "生产企业名称(外文)", value: "", data: "" },
{ id: 43, label: "历史记录", value: "", data: "" },
{ id: 44, label: "备注", value: "", data: "" },
{ id: 45, label: "产品包装平面图", value: "", data: "" },
{ id: 46, label: "产品包装立体图", value: "", data: "" },
{ id: 47, label: "执行标准", value: "", data: "" },
{ id: 48, label: "功效宣称", value: "", data: "" },
{ id: 49, label: "作用部位", value: "", data: "" },
{ id: 50, label: "适用人群", value: "", data: "" },
{ id: 51, label: "产品剂型", value: "", data: "" },
{ id: 52, label: "使用方法", value: "", data: "" },
{ id: 53, label: "功效评价结论", value: "", data: "" },
{ id: 54, label: "功效宣称评价项目", value: "", data: "" },
{ id: 55, label: "是否取消备案", value: "", data: "" },
{ id: 56, label: " 取消备案时间", value: "", data: "" },
{ id: 57, label: "取消备案原因", value: "", data: "" },
{ id: 58, label: "是否注销备案", value: "", data: "" },
{ id: 59, label: "注销备案时间", value: "", data: "" },
{ id: 60, label: "注销备案原因", value: "", data: "" },
{ id: 61, label: " 是否以自检方式开展备案检验", value: "", data: "" },
{ id: 62, label: "资料整理情况", value: "", data: "" },
{ id: 63, label: " 技术核查情况", value: "", data: "" },
],
//
descriptionsThree: [
@ -690,6 +873,58 @@ export default {
value: "",
data: "",
},
{ id: 13, label: " 备案人住所地址所在国家(或地区)", value: "", data: "" },
{ id: 14, label: " 备案人住所地址所在省(自治区/直辖市)", value: "", data: "" },
{ id: 15, label: "备案人住所地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 16, label: "备案人住所地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 17, label: "备案人住所地址", value: "", data: "" },
{ id: 18, label: "备案人境外地址(外文)", value: "", data: "" },
{ id: 19, label: "境内责任人名称", value: "", data: "" },
{ id: 20, label: "境内责任人联系人", value: "", data: "" },
{ id: 21, label: "生产资质证明类型", value: "", data: "" },
{ id: 22, label: "境内责任人联系电话", value: "", data: "" },
{ id: 23, label: "境内责任人住所地址所在国家(或地区)", value: "", data: "" },
{ id: 24, label: "境内责任人住所地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 25, label: "境内责任人住所地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 26, label: "境内责任人住所地址", value: "", data: "" },
{ id: 27, label: "产品国别", value: "", data: "" },
{ id: 28, label: "产品生产类别", value: "", data: "" },
{ id: 29, label: "新原料使用情况", value: "", data: "" },
{ id: 30, label: "使用已备案新原料的备案号", value: "", data: "" },
{ id: 31, label: "使用已注册新原料的注册号", value: "", data: "" },
{ id: 32, label: "是否套装产品", value: "", data: "" },
{ id: 33, label: "是否配合仪器使用产品", value: "", data: "" },
{ id: 34, label: "生产许可证编号", value: "", data: "" },
{ id: 35, label: "生产地址所在国家(或地区)", value: "", data: "" },
{ id: 36, label: "生产地址所在省(自治区/直辖市)", value: "", data: "" },
{ id: 37, label: "生产地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 38, label: "生产地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 39, label: " 生产地址", value: "", data: "" },
{ id: 40, label: "生产企业", value: "", data: "" },
{ id: 41, label: "进口省份", value: "", data: "" },
{ id: 42, label: "生产企业名称(外文)", value: "", data: "" },
{ id: 43, label: "历史记录", value: "", data: "" },
{ id: 44, label: "备注", value: "", data: "" },
{ id: 45, label: "产品包装平面图", value: "", data: "" },
{ id: 46, label: "产品包装立体图", value: "", data: "" },
{ id: 47, label: "执行标准", value: "", data: "" },
{ id: 48, label: "功效宣称", value: "", data: "" },
{ id: 49, label: "作用部位", value: "", data: "" },
{ id: 50, label: "适用人群", value: "", data: "" },
{ id: 51, label: "产品剂型", value: "", data: "" },
{ id: 52, label: "使用方法", value: "", data: "" },
{ id: 53, label: "功效评价结论", value: "", data: "" },
{ id: 54, label: "功效宣称评价项目", value: "", data: "" },
{ id: 55, label: "是否取消备案", value: "", data: "" },
{ id: 56, label: " 取消备案时间", value: "", data: "" },
{ id: 57, label: "取消备案原因", value: "", data: "" },
{ id: 58, label: "是否注销备案", value: "", data: "" },
{ id: 59, label: "注销备案时间", value: "", data: "" },
{ id: 60, label: "注销备案原因", value: "", data: "" },
{ id: 61, label: " 是否以自检方式开展备案检验", value: "", data: "" },
{ id: 62, label: "资料整理情况", value: "", data: "" },
{ id: 63, label: " 技术核查情况", value: "", data: "" },
],
//
descriptionsFour: [
@ -783,6 +1018,69 @@ export default {
value: "",
data: "",
},
{ id: 13, label: "注册人中文名称", value: "", data: "" },
{ id: 14, label: " 注册人外文名称", value: "", data: "" },
{ id: 15, label: " 注册人所在国(地区)", value: "", data: "" },
{ id: 16, label: "注册人住所地址所在国家(或地区)", value: "", data: "" },
{ id: 17, label: " 注册人住所地址所在省(自治区/直辖市)", value: "", data: "" },
{ id: 18, label: "注册人住所地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 19, label: "注册人住所地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 20, label: "注册人住所地址", value: "", data: "" },
{ id: 21, label: " 注册人境外地址(中文)", value: "", data: "" },
{ id: 22, label: "境内责任人名称", value: "", data: "" },
{ id: 88, label: "境内责任人联系人", value: "", data: "" },
{ id: 89, label: "境内责任人联系电话", value: "", data: "" },
{ id: 90, label: "配方名称", value: "", data: "" },
{ id: 91, label: "境内责任人住所地址所在国家(或地区)", value: "", data: "" },
{ id: 92, label: "境内责任人住所地址所在市(地区/自治州/盟)", value: "", data: "" },
{ id: 93, label: "境内责任人住所地址所在县(自治县/县级市/旗)", value: "", data: "" },
{ id: 26, label: "境内责任人住所地址", value: "", data: "" },
{ id: 27, label: "产品国别", value: "", data: "" },
{ id: 28, label: "产品生产类别", value: "", data: "" },
{ id: 29, label: "新原料使用情况", value: "", data: "" },
{ id: 30, label: "使用已备案新原料的备案号", value: "", data: "" },
{ id: 31, label: "使用已注册新原料的注册号", value: "", data: "" },
{ id: 32, label: "是否套装产品", value: "", data: "" },
{ id: 33, label: "是否配合仪器使用产品", value: "", data: "" },
{ id: 34, label: "批件状态", value: "", data: "" },
{ id: 35, label: "申请注销原因", value: "", data: "" },
{ id: 36, label: " 申请注销日期", value: "", data: "" },
{ id: 37, label: "产品名称备注", value: "", data: "" },
{ id: 38, label: "感官指标", value: "", data: "" },
{ id: 39, label: "使用目的", value: "", data: "" },
{ id: 40, label: " 使用方法", value: "", data: "" },
{ id: 41, label: "功效宣称", value: "", data: "" },
{ id: 42, label: "生产企业名称(外文)", value: "", data: "" },
{ id: 43, label: "作用部位", value: "", data: "" },
{ id: 44, label: "适用人群", value: "", data: "" },
{ id: 45, label: "产品包装平面图", value: "", data: "" },
{ id: 46, label: "产品包装立体图", value: "", data: "" },
{ id: 47, label: "执行标准", value: "", data: "" },
{ id: 48, label: "功效宣称", value: "", data: "" },
{ id: 49, label: "作用部位", value: "", data: "" },
{ id: 50, label: "适用人群", value: "", data: "" },
{ id: 51, label: "产品剂型", value: "", data: "" },
{ id: 52, label: "使用方法", value: "", data: "" },
{ id: 53, label: "功效评价结论", value: "", data: "" },
{ id: 54, label: "功效宣称评价项目", value: "", data: "" },
{ id: 55, label: "是否取消备案", value: "", data: "" },
{ id: 56, label: " 产品剂型", value: "", data: "" },
{ id: 57, label: "取消备案原因", value: "", data: "" },
{ id: 58, label: "是否注销备案", value: "", data: "" },
{ id: 59, label: "注销备案时间", value: "", data: "" },
{ id: 60, label: "注销备案原因", value: "", data: "" },
{ id: 61, label: " 是否以自检方式开展备案检验", value: "", data: "" },
{ id: 62, label: "资料整理情况", value: "", data: "" },
{ id: 63, label: "是否儿童产品", value: "", data: "" },
{ id: 64, label: " 注册人统一社会信用代码", value: "", data: "" },
{ id: 65, label: " 感官指标", value: "", data: "" },
{ id: 66, label: " 技术核查情况", value: "", data: "" },
{ id: 67, label: " 防晒类产品SPF值", value: "", data: "" },
{ id: 68, label: " 防晒类产品PA值", value: "", data: "" },
{ id: 69, label: " 防晒类产品浴后SPF值", value: "", data: "" },
{ id: 70, label: " 检验受理编号", value: "", data: "" },
{ id: 71, label: " 防晒类产品PA值", value: "", data: "" },
{ id: 72, label: " 防晒类产品PA值", value: "", data: "" },
],
obj: {},
files: [
@ -840,7 +1138,7 @@ export default {
bz: "-",
};
},
components: { blockHeader, myDescriptions,descriptionsbianji },
components: { blockHeader, myDescriptions, descriptionsbianji },
props: ["transinformation"],
created() {
this.obj = this.$store.state.app.urlA;
@ -931,6 +1229,7 @@ export default {
value: data.data.cpmc,
code: data.data.yzczh,
name: data.data.cpmc,
cpib: data.data.cplb,
type: 2
});
this.loading = false;
@ -964,6 +1263,8 @@ export default {
async specialChina(e) {
this.loading = true;
let msg1 = await this.$api.cosmetics.getChinaSpecial(e);
console.log(msg1, 798798);
this.$emit("getCPName", {
key: "国产特殊化妆品名称",
value: msg1.data.cpmc,
@ -991,11 +1292,12 @@ export default {
async specialImport(e) {
this.loading = true;
let msg1 = await this.$api.cosmetics.getInletSpecial(e);
console.log(msg1, 798798);
this.$emit("getCPName", {
key: "进口特殊化妆品名称",
value: msg1.data.zczh,
code: data.data.bah,
name: data.data.cpmc,
code: msg1.data.bah,
name: msg1.data.cpmc,
type: 6
});
this.list = this.filter(msg1.data, this.descriptionsFour);

@ -0,0 +1,198 @@
<template>
<div class="adverseReaction">
<block-header :title="transinformation.title">
<div class="tables">
<el-table :data="tableData" style="width: 100%" :cell-style="columnStyle" v-loading="loading" border>
<el-table-column prop="id" header-align="center" label="序号" width="80">
</el-table-column>
<el-table-column prop="durgName" header-align="center" :label="item" v-for="(item,index) in transinformation.datalist">
</el-table-column>
<el-table-column label="操作" header-align="center" width="100">
<template slot-scope="scope">
<div class="button">
<el-button size="mini" class="informant-btn" plain type="primary"
@click="handleEdit(scope.$index, scope.row)">查看
</el-button>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="pagination" :class="transinformation.b == '1' ? 'paginationTwo' : ''">
<!-- <span class="custom"
>{{ total }}显示{{
total == 0
? "0"
: queryCondition.current == 1
? "1"
: queryCondition.size * (queryCondition.current - 1) + 1
}}-{{ numberMap() }}</span
> -->
<span class="custom">
共0条显示0条
</span>
<el-pagination background :small="transinformation.b == '1'" :page-sizes="[10, 15]" :total="total"
layout=" prev, pager, next, sizes, jumper" @current-change="currentChange" @size-change="sizeChange"
:current-page.sync="currentPage" :page-size.sync="pageSize">
</el-pagination>
</div>
</block-header>
</div>
</template>
<script>
import blockHeader from "@/views/firmContent/components/blockHeader/index.vue"
export default {
data() {
return {
tableData: [
// {
// id:1,
// durgName:'',
// wenhao:'Z20213077',
// bianhao:'YC20230619',
// name:'',
// hospitalName:'',
// addresName:'',
// }
],
loading: false,
// adverseReactionStyle:{
// height:''
// }
currentPage: 1,
pageSize: 10,
total: 0,
}
},
props: ['transinformation'],
components: { blockHeader },
methods: {
// tabs
columnStyle({ row, column, rowIndex, columnIndex }) {
if (columnIndex == 7 || columnIndex == 0) {
return "font-family: DIN;";
} else if (columnIndex == 2 || columnIndex == 1 || columnIndex == 3 || columnIndex == 4) {
return "font-family: Source Han Sans CN;";
} else if (columnIndex == 5 || columnIndex == 6 || columnIndex == 8) {
return "font-family: Adobe Heiti Std;font-weight: normal;";
}
},
handleEdit(index, row) {
},
currentChange(index) {
},
sizeChange(index) {
},
},
// mounted(){
// this.$nextTick(()=>{
// let dom = document.getElementsByClassName('adverseReaction');
// let height = dom[0].getBoundingClientRect();
// let windowWidth = window.innerWidth;
// let windowHeight = window.innerHeight;
// let relativeHeight = windowHeight - height.top - (26 / 1920 * windowWidth)
// this.adverseReactionStyle.height = relativeHeight + 'px'
// })
// }
}
</script>
<style lang="scss" scoped>
@import "@/assets/styles/utils.scss";
.adverseReaction {
// overflow-y: scroll;
}
.tables {
.button {
display: flex;
justify-content: center;
}
.informant-btn {
padding: 12px 30px;
width: vw(44);
height: vh(20);
background: #e4effd;
border: vw(1) solid #8cb9f8;
border-radius: vw(4);
line-height: vh(20);
display: flex;
justify-content: center;
align-items: center;
::v-deep span {
display: inline-block;
color: #1e80eb;
font-size: vb(14);
font-family: Adobe Heiti Std;
font-weight: normal;
}
}
::v-deep .el-table td {
height: vh(40);
padding: 0;
font-size: vb(14);
font-weight: 400;
color: #292F38;
}
::v-deep .el-table th {
height: vh(40);
padding: 0;
font-size: vb(14);
font-family: Source Han Sans CN;
font-weight: bold;
color: #292f38;
line-height: vh(50);
}
::v-deep .cell {
text-align: center;
}
}
.pagination {
margin-top: 17px;
display: flex;
align-items: center;
justify-content: space-between;
// padding-bottom: vh(20);
::v-deep .el-pagination__jump {
margin: 0;
}
::v-deep .el-input--mini .el-input__inner {
height: vw(28);
}
.custom {
font-size: 14px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #292f38;
line-height: 18px;
}
}
.paginationTwo {
display: flex;
align-items: center;
justify-content: flex-end;
padding-bottom: vh(20);
.custom {
font-size: vb(14);
font-family: Source Han Regular CN;
font-weight: 400;
color: #292f38;
line-height: vh(28);
}
}
</style>

@ -27,49 +27,145 @@
</div>
<div class="drugInfo-bottom">
<div class="content-tabs">
<div class="tabs">
<div class="tab" @click="actionTab(1)" :class="action == 1 ? 'actionTab' : ''" v-show="urlA.type != 4">
<div class="tabs" ref="tabs">
<div class="tab" @click="actionTab(1, $event)" :class="action == 1 ? 'actionTab' : ''" v-show="urlA.type != 4">
<img :class="action !== 1 ? 'actionImage' : ''" :src="action == 1
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>基本信息</span>
</div>
<div class="tab" @click="actionTab(6)" :class="action == 6 ? 'actionTab' : ''" v-show="urlA.type == 4">
<div class="tab" @click="actionTab(2, $event)" :class="action == 2 ? 'actionTab' : ''" v-show="urlA.type != 4">
<img :src="action == 2
? `${require('@/assets/images/home/icon2-1@2x.png')}`
: `${require('@/assets/images/home/icon2-2@2x.png')}`
" alt="" />
<span>品种抽样</span>
</div>
<div class="tab" @click="actionTab(3, $event)" :class="action == 3 ? 'actionTab' : ''" v-show="urlA.type != 4">
<img :src="action == 3
? `${require('@/assets/images/home/icon5-1@2x.png')}`
: `${require('@/assets/images/home/icon5-2@2x.png')}`
" alt="" />
<span>不良反应</span>
</div>
<div class="tab" @click="actionTab(4, $event)" :class="action == 4 ? 'actionTab' : ''"
v-show="urlA.type != 1 && urlA.type != 4">
<img :src="action == 4
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>召回信息</span>
</div>
<div class="tab" @click="actionTab(6, $event)" :class="action == 6 ? 'actionTab' : ''" v-show="urlA.type == 4">
<img :class="action !== 6 ? 'actionImage' : ''" :src="action == 6
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>基本信息</span>
</div>
<div class="tab" @click="actionTab(7)" :class="action == 7 ? 'actionTab' : ''" v-show="urlA.type == 4">
<div class="tab" @click="actionTab(7, $event)" :class="action == 7 ? 'actionTab' : ''" v-show="urlA.type == 4">
<img :src="action == 7
? `${require('@/assets/images/home/icon2-1@2x.png')}`
: `${require('@/assets/images/home/icon2-2@2x.png')}`
" alt="" />
<span>变更记录</span>
</div>
<div class="tab" @click="actionTab(2)" :class="action == 2 ? 'actionTab' : ''" v-show="urlA.type != 4">
<img :src="action == 2
? `${require('@/assets/images/home/icon2-1@2x.png')}`
: `${require('@/assets/images/home/icon2-2@2x.png')}`
<div class="tab" @click="actionTab(5, $event)" :class="action == 5 ? 'actionTab' : ''" v-show="urlA.type == 3">
<img :src="action == 5
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>品种抽样</span>
<span>临床实验备案信息</span>
</div>
<div class="tab" @click="actionTab(3)" :class="action == 3 ? 'actionTab' : ''" v-show="urlA.type != 4">
<img :src="action == 3
? `${require('@/assets/images/home/icon5-1@2x.png')}`
: `${require('@/assets/images/home/icon5-2@2x.png')}`
<div class="tab" @click="actionTab(8, $event)" :class="action == 8 ? 'actionTab' : ''"
v-show="pruduct.cpib == '第二类' && urlA.type == 3">
<img :src="action == 8
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>不良反应</span>
<span>产品审评信息</span>
</div>
<div class="tab" @click="actionTab(4)" :class="action == 4 ? 'actionTab' : ''"
v-show="urlA.type != 1 && urlA.type != 4">
<img :src="action == 4
<div class="tab" @click="actionTab(9, $event)" :class="action == 9 ? 'actionTab' : ''"
v-show="pruduct.cpib == '第二类' && urlA.type == 3">
<img :src="action == 9
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>召回信息</span>
<span>产品受理信息</span>
</div>
<div class="tab" @click="actionTab(10, $event)" :class="action == 10 ? 'actionTab' : ''"
v-show="pruduct.cpib == '第二类' && urlA.type == 3">
<img :src="action == 10
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>产品注册体系核查</span>
</div>
<div class="tab" @click="actionTab(11, $event)" :class="action == 11 ? 'actionTab' : ''"
v-show="pruduct.cpib == '第二类' && urlA.type == 3">
<img :src="action == 11
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>产品注册检验信息</span>
</div>
<div class="tab" @click="actionTab(12, $event)" :class="action == 12 ? 'actionTab' : ''"
v-show="pruduct.cpib == '第二类' && urlA.type == 3">
<img :src="action == 12
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>注册证文件信息</span>
</div>
<div class="tab" @click="actionTab(13, $event)" :class="action == 13 ? 'actionTab' : ''"
v-show="pruduct.cpib == '第二类' && urlA.type == 3">
<img :src="action == 13
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>变更注册文件信息</span>
</div>
<div class="tab" @click="actionTab(14, $event)" :class="action == 14 ? 'actionTab' : ''"
v-show="pruduct.cpib == '第二类' && urlA.type == 3">
<img :src="action == 14
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>临床试验监督抽查信息</span>
</div>
<div class="tab" @click="actionTab(15, $event)" :class="action == 15 ? 'actionTab' : ''"
v-show="urlA.type == 1">
<img :src="action == 15
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>检验报告</span>
</div>
<div class="tab" @click="actionTab(16, $event)" :class="action == 16 ? 'actionTab' : ''"
v-show="urlA.type == 1">
<img :src="action == 16
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>信息变更</span>
</div>
<div class="tab" @click="actionTab(17, $event)" :class="action == 17 ? 'actionTab' : ''"
v-show="urlA.type == 1 && (urlA.flag == 1 || urlA.flag == 3)">
<img :src="action == 17
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>年度报告</span>
</div>
<div class="tab" @click="actionTab(18, $event)" :class="action == 18 ? 'actionTab' : ''"
v-show="urlA.type == 1 && (urlA.flag == 2 || urlA.flag == 4)">
<img :src="action == 18
? `${require('@/assets/images/home/icon1-1@2x.png')}`
: `${require('@/assets/images/home/icon1-2@2x.png')}`
" alt="" />
<span>产品名称命名依据</span>
</div>
</div>
</div>
@ -120,6 +216,14 @@ import zhaohui from "./zhaohui/PZchouyang.vue";
import zhongyao from "./zhongyao/drugBasicInfo";
import zhongyaobiangeng from "./zhongyaobiangeng/adverseReaction";
//
import linchuangshiyanbeian from "./linchuangshiyanbeian/adverseReaction";
//
import duolie from "./duolie/adverseReaction";
//
import teshuhuazhuang from "./teshuhuazhuang/drugBasicInfo";
@ -144,8 +248,11 @@ export default {
value: "-",
code: "",
name: "",
type: ""
type: "",
cpib: ""
},
title: "",
datalist: []
};
},
components: {
@ -154,7 +261,10 @@ export default {
adverseReaction,
zhaohui,
zhongyao,
zhongyaobiangeng
zhongyaobiangeng,
linchuangshiyanbeian,
duolie,
teshuhuazhuang
},
methods: {
gohuaxianga() {
@ -191,14 +301,18 @@ export default {
this.pruduct.code = e.code;
this.pruduct.name = e.name;
this.pruduct.type = e.type;
//
this.pruduct.cpib = e.cpib;
console.log(e, 8888);
},
goBack() {
this.$router.go(-1);
},
// tabs
actionTab(id) {
actionTab(id, event) {
this.action = id;
this.nodeTab(event)
if (id == 1) {
this.currentComponent = "basicInfo";
// this.$router.push({ name:'drugBasicInfo' })
@ -223,6 +337,11 @@ export default {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 5) {
this.currentComponent = "linchuangshiyanbeian"
this.$nextTick(() => {
this.getHeight();
});
} else if (id == 6) {
this.currentComponent = "zhongyao";
this.$nextTick(() => {
@ -235,6 +354,92 @@ export default {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 8) {
this.currentComponent = "duolie";
this.title = '产品审评信息'
this.datalist = ['受理号', '审评报告编号', "申请事项", "是否为创新特别审查", "是否为优先审批申请", "签发日期"]
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 9) {
this.currentComponent = "duolie";
this.title = '产品受理信息'
this.datalist = ['受理号', '临床评价路径', "临床试验机构名称", "受理日期", "受理单位", "受理人"]
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 10) {
this.currentComponent = "duolie";
this.title = '产品注册体系核查'
this.datalist = ['受理号', '体系核查受理号', "核查地址", "核查开始日期 ", "核查结束日期", "签发日期"]
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 11) {
this.currentComponent = "duolie";
this.title = '产品注册检验信息'
this.datalist = ['受理号', '检验报告编号', "样品名称", "型号规格", "检验类别", "申请人姓名", "生产单位", "检验日期"]
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 12) {
this.currentComponent = "duolie";
this.title = '注册证文件信息'
this.datalist = ['受理号', '审批部门', "批准日期", "生效日期", "有效期至"]
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 13) {
this.currentComponent = "duolie";
this.title = '变更注册文件信息'
this.datalist = ['受理号', '注册证编号', "产品名称", "审批部门", "批准日期"]
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 14) {
this.currentComponent = "duolie";
this.title = '临床试验监督抽查信息'
this.datalist = ['任务编号', '任务类型', "任务接收时间", "临床试验备案号", "核查开始日期", "核查结束日期"]
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 15) {
this.currentComponent = "duolie";
this.title = '检验报告信息'
this.datalist = ['检验项目', '检验项目指标']
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 16) {
this.currentComponent = "duolie";
this.title = '注册变更信息'
this.datalist = ['产品名称', '有效期', '注册证号']
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 17) {
this.currentComponent = "duolie";
this.title = '年度报告信息'
this.datalist = ['年份', '产品中文名称', '备案编号', '企业名称']
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
} else if (id == 18) {
this.currentComponent = "teshuhuazhuang";
this.$nextTick(() => {
this.getHeight();
});
// this.$router.push({ name:'adverseReaction' })
}
},
getHeight() {
@ -253,6 +458,32 @@ export default {
let data = await this.$api.productDetails.ylqxJnyelcp(res);
this.name = data.data.cpmc;
},
// tab
nodeTab(event) {
// var rect = this.$refs.tabs.getBoundingClientRect();
// var rects = document.querySelector(".content-tabs")
var rect = event.target.getBoundingClientRect();
var viewportWidth = window.innerWidth;
let left = Math.floor(rect.left)
let right = Math.floor(rect.right + 50)
let width = Math.floor(rect.width + 100)
console.log(left);
console.log(right);
console.log(viewportWidth);
if (left < 40) {
console.log("当前元素左边超出可视窗口");
this.$refs.tabs.scrollLeft -= width; // 100px
} else if (right > viewportWidth) {
console.log("当前元素右边超出可视窗口");
this.$refs.tabs.scrollLeft += width; // 100px
} else {
console.log("当前元素未超出可视窗口");
}
}
},
// watch: {
// $route: {
@ -296,6 +527,11 @@ export default {
b: this.id,
token: this.token,
};
case "duolie":
return {
title: this.title,
datalist: this.datalist,
};
default:
return {
b: 5,
@ -409,6 +645,7 @@ export default {
.tabs {
width: 100%;
overflow-y: auto;
display: flex;
border-bottom: vw(1) solid #dbe0e8;
@ -420,6 +657,7 @@ export default {
border-bottom: none;
margin-right: vw(9);
cursor: pointer;
white-space: nowrap;
&:last-child {
margin-right: 0;
@ -474,13 +712,14 @@ export default {
}
.el-button--small {
font-size: vb(14) ;
font-size: vb(14);
}
}
::v-deep .isbuttom{
::v-deep .isbuttom {
.el-button--medium {
font-size: vb(16) ;
font-size: vb(16);
}
}
}
</style>

@ -0,0 +1,251 @@
<template>
<div class="adverseReaction">
<block-header title="临床试验备案信息">
<div class="tables">
<el-table
:data="tableData"
style="width: 100%"
:cell-style="columnStyle"
v-loading="loading"
border
>
<el-table-column
prop="id"
header-align="center"
label="序号"
width="80"
>
</el-table-column>
<el-table-column
prop="durgName"
header-align="center"
label="临床试验名称"
>
</el-table-column>
<el-table-column
prop="wenhao"
label="临床试验目的"
header-align="center"
>
</el-table-column>
<el-table-column
prop="bianhao"
label="试验用医疗器械名称"
header-align="center"
>
</el-table-column>
<el-table-column
prop="name"
label="临床试验机构"
header-align="center"
>
</el-table-column>
<el-table-column
prop="hospitalName"
label="项目开始日期"
header-align="center"
>
</el-table-column>
<el-table-column
prop="addresName"
label="临床试验备案号"
header-align="center"
>
</el-table-column>
<el-table-column
prop="addresName"
label="备案日期"
header-align="center"
>
</el-table-column>
<el-table-column
label="操作"
header-align="center"
width="100"
>
<template slot-scope="scope">
<div class="button">
<el-button
size="mini"
class="informant-btn"
plain
type="primary"
@click="handleEdit(scope.$index, scope.row)">查看
</el-button>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="pagination" :class="transinformation.b == '1' ? 'paginationTwo':''">
<!-- <span class="custom"
>{{ total }}显示{{
total == 0
? "0"
: queryCondition.current == 1
? "1"
: queryCondition.size * (queryCondition.current - 1) + 1
}}-{{ numberMap() }}</span
> -->
<span class="custom">
共0条显示0条
</span>
<el-pagination
background
:small="transinformation.b == '1'"
:page-sizes="[10, 15]"
:total="total"
layout=" prev, pager, next, sizes, jumper"
@current-change="currentChange"
@size-change="sizeChange"
:current-page.sync="currentPage"
:page-size.sync="pageSize"
>
</el-pagination>
</div>
</block-header>
</div>
</template>
<script>
import blockHeader from "@/views/firmContent/components/blockHeader/index.vue"
export default {
data() {
return {
tableData:[
// {
// id:1,
// durgName:'',
// wenhao:'Z20213077',
// bianhao:'YC20230619',
// name:'',
// hospitalName:'',
// addresName:'',
// }
],
loading:false,
// adverseReactionStyle:{
// height:''
// }
currentPage:1,
pageSize:10,
total:0,
}
},
props:['transinformation'],
components:{ blockHeader },
methods:{
// tabs
columnStyle({ row, column, rowIndex, columnIndex }) {
if (columnIndex == 7 || columnIndex == 0) {
return "font-family: DIN;";
} else if (columnIndex == 2 || columnIndex == 1 || columnIndex == 3 || columnIndex == 4) {
return "font-family: Source Han Sans CN;";
} else if(columnIndex == 5 || columnIndex == 6 || columnIndex == 8) {
return "font-family: Adobe Heiti Std;font-weight: normal;";
}
},
handleEdit(index,row){
},
currentChange(index){
},
sizeChange(index){
},
},
// mounted(){
// this.$nextTick(()=>{
// let dom = document.getElementsByClassName('adverseReaction');
// let height = dom[0].getBoundingClientRect();
// let windowWidth = window.innerWidth;
// let windowHeight = window.innerHeight;
// let relativeHeight = windowHeight - height.top - (26 / 1920 * windowWidth)
// this.adverseReactionStyle.height = relativeHeight + 'px'
// })
// }
}
</script>
<style lang="scss" scoped>
@import "@/assets/styles/utils.scss";
.adverseReaction {
// overflow-y: scroll;
}
.tables {
.button {
display: flex;
justify-content: center;
}
.informant-btn {
padding: 12px 30px;
width: vw(44);
height: vh(20);
background: #e4effd;
border: vw(1) solid #8cb9f8;
border-radius: vw(4);
line-height: vh(20);
display: flex;
justify-content: center;
align-items: center;
::v-deep span {
display: inline-block;
color: #1e80eb;
font-size: vb(14);
font-family: Adobe Heiti Std;
font-weight: normal;
}
}
::v-deep .el-table td {
height: vh(40);
padding: 0;
font-size: vb(14);
font-weight: 400;
color: #292F38;
}
::v-deep .el-table th {
height: vh(40);
padding: 0;
font-size: vb(14);
font-family: Source Han Sans CN;
font-weight: bold;
color: #292f38;
line-height: vh(50);
}
::v-deep .cell {
text-align: center;
}
}
.pagination {
margin-top: 17px;
display: flex;
align-items: center;
justify-content: space-between;
// padding-bottom: vh(20);
::v-deep .el-pagination__jump {
margin: 0;
}
::v-deep .el-input--mini .el-input__inner {
height: vw(28);
}
.custom {
font-size: 14px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #292f38;
line-height: 18px;
}
}
.paginationTwo {
display: flex;
align-items: center;
justify-content: flex-end;
padding-bottom: vh(20);
.custom {
font-size: vb(14);
font-family: Source Han Regular CN;
font-weight: 400;
color: #292f38;
line-height: vh(28);
}
}
</style>

@ -0,0 +1,155 @@
<template>
<div class="primaryWorkforce" :style="primaryWorkforceStyle">
<block-header title="产品名称命名依据信息">
<!-- 描述列表组件 -->
<my-descriptions :descriptions="descriptions"></my-descriptions>
</block-header>
</div>
</template>
<script>
import blockHeader from "@/views/firmContent/components/blockHeader/index.vue"
import myDescriptions from "@/views/firmContent/components/descriptions/index.vue"
import { mapState } from "vuex";
export default {
data() {
return {
obj: {},
loading: false,
descriptions: [
{ id: 1, value: '--', label: '商标名' },
{ id: 2, value: '--', label: '属性名' },
{ id: 3, value: '--', label: '通用名' },
{ id: 4, value: '--', label: '命名依据' },
{ id: 5, value: '--', label: '生产资质证明类型' },
],
current: 1,
size: 10,
primaryWorkforceStyle: {
height: ''
}
}
},
methods: {
async getMainPersonListObj() {
},
currentChange(index) {
},
sizeChange(index) {
},
},
components: { blockHeader, myDescriptions },
mounted() {
this.getMainPersonListObj()
},
computed: {
...mapState({
urlA: (state) => state.app.urlA,
}),
}
}
</script>
<style lang="scss" scoped>
@import "@/assets/styles/utils.scss";
.primaryWorkforce {
display: grid;
grid-column: 1fr;
grid-row-gap: vh(24);
overflow-y: scroll;
// height: vh(573);
.tables {
.button {
display: flex;
justify-content: center;
}
.state--style {
display: flex;
justify-content: center;
align-items: center;
span {
width: vw(8);
height: vw(8);
border-radius: 50%;
margin-right: vw(6);
}
}
.informant-btn {
width: vw(44);
height: vh(20);
background: #e4effd;
border: vw(1) solid #8cb9f8;
border-radius: vw(4);
line-height: vh(20);
display: flex;
justify-content: center;
align-items: center;
::v-deep span {
display: inline-block;
color: #1e80eb;
font-size: vb(14);
font-family: Adobe Heiti Std;
font-weight: normal;
}
}
::v-deep .el-table td {
height: vh(40);
padding: 0;
font-size: vb(14);
font-family: Adobe Heiti Std;
font-weight: 400;
color: #292F38;
}
::v-deep .el-table th {
height: vh(40);
padding: 0;
font-size: vb(14);
font-family: Source Han Sans CN;
font-weight: bold;
color: #292f38;
line-height: vh(50);
}
::v-deep .cell {
text-align: center;
}
}
.pagination {
display: flex;
align-items: center;
justify-content: flex-end;
padding-bottom: vh(20);
margin-top: vh(33);
::v-deep .el-pagination__jump {
margin: 0;
}
::v-deep .el-input--mini .el-input__inner {
height: vw(28);
}
.custom {
font-size: vb(14);
font-family: Source Han Regular CN;
font-weight: 400;
color: #292f38;
line-height: vh(28);
}
}
}
</style>

@ -0,0 +1,28 @@
<template>
<block-header title="基本信息">
</block-header>
</template>
<script>
import blockHeader from "@/views/firmContent/components/blockHeader/index.vue"
export default {
data() {
return {
}
},
props:['zczh'],
components:{blockHeader},
methods:{
async ylqxJnyelcp(){
let data = await this.$api.productDetails.ylqxJnyelcp(this.zczh);
console.log(data)
}
},
mounted(){
this.ylqxJnyelcp()
}
}
</script>
<style lang="scss" scoped>
</style>

@ -39,6 +39,8 @@
</template>
<script>
import blockHeader from "@/views/firmContent/components/blockHeader/index.vue"
import { mapState } from "vuex";
export default {
data() {
return {
@ -61,11 +63,18 @@ export default {
pageSize: 10,
total: 0,
pagelist: {
current: 1, //
size: 10, //
}
}
},
computed: {
...mapState({
urlA: (state) => state.app.urlA,
}),
},
props: ['transinformation'],
components: { blockHeader },
methods: {
@ -93,6 +102,7 @@ export default {
},
async getList() {
// this.pagelist.filingNum = this.urlA.bah || ""
let reque = await this.$api.frimCenter.deasCorpTcmpFilingChangeHis(this.pagelist)
console.log(reque);
this.tableData = reque.data.records

Loading…
Cancel
Save