新家功能页面,更改样式

master
李劲龙 1 year ago
parent 873374437c
commit a6677aaae6

@ -37,10 +37,12 @@
},
"dependencies": {
"@riophae/vue-treeselect": "0.4.0",
"autofit.js": "^3.0.6",
"axios": "0.24.0",
"clipboard": "2.0.8",
"core-js": "3.25.3",
"echarts": "^5.4.2",
"echarts": "^5.4.3",
"element-resize-detector": "^1.2.4",
"element-ui": "2.15.12",
"file-saver": "2.0.5",
"fuse.js": "6.4.3",

@ -7,7 +7,7 @@
<script>
import ThemePicker from "@/components/ThemePicker";
import autofit from 'autofit.js'
export default {
name: "App",
components: { ThemePicker },
@ -22,8 +22,17 @@ export default {
: process.env.VUE_APP_TITLE;
},
};
},
methods: {
},
mounted() {
// autofit.init({
// dw: 500,
// dh: 800,
// renderDom: "#app",
// resize: true
// }, false) //
/* npm run build:prod
sudo mv ggfw-dangan.zip /usr/share/nginx/html/ggfw-dangan MSSM-Dev 文件夹下 移动压缩包到 ggfw文件夹下
@ -33,6 +42,8 @@ export default {
rm ./html.zip 删除当前目录下的压缩包 弹出确定删除 y 并回车
*/
},
};
@ -44,11 +55,23 @@ export default {
.el-form-item--medium {
margin-left: 40px;
margin-bottom: 8px;
display: flex;
}
.el-table {
color: #000;
font-size: 16px;
}
.el-form-item__label {
width: 110px;
color: #000;
}
::placeholder {
color: #000 !important;
/* 这里替换为您希望的颜色值 */
}
.el-form-item__content {
@ -59,12 +82,30 @@ export default {
width: 100%;
}
.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
background: #e9eff7;
}
.el-table--medium .el-table__cell {
padding: 10px 0;
padding: 8px 3px;
}
body {
/* font-family: "SourceHanSansCN"; */
}
.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell {
border-bottom: 1px solid #bbbbbb;
border-right: 1px solid #bbbbbb;
}
.el-table--border .el-table__cell {
border-right: 1px solid #bbbbbb;
}
.el-col-8 {
width: 32.5%;
}
</style>

@ -8,6 +8,37 @@ export default {
params: query,
});
},
// 医疗器械
typecount(query) {
return request({
url: "/pharmaceuticals/ylqxJnyelcp/typecount",
method: "GET",
params: query,
});
},
ylqxJnyelcpareacount(query) {
return request({
url: "/pharmaceuticals/ylqxJnyelcp/areacount",
method: "GET",
params: query,
});
},
// 药品
vRdgYpwhGxwztypecount(query) {
return request({
url: "/pharmaceuticals/vRdgYpwhGxwz/typecount",
method: "GET",
params: query,
});
},
// 药品地图
vRdgYpwhGxwztareacount(query) {
return request({
url: "/pharmaceuticals/vRdgYpwhGxwz/areacount",
method: "GET",
params: query,
});
},
//通过注册证编号查询单条器械品种数据
// apparatusGet(zczh) {
// return request({

@ -3,7 +3,7 @@ export default {
// 登录
frimLogin() {
return request({
// baseURL: process.env.VUE_APP_USER_LOGIN,
baseURL: process.env.VUE_APP_USER_LOGIN,
url: "/pharmaceuticals/login",
headers: {
"Content-Type": "application/json",

@ -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",
});

@ -42,3 +42,8 @@
font-family: "DINPro-Regular";
src: url("./font/DINPro-Regular.otf");
}
@font-face {
font-family: "SourceHanSansCN";
src: url("./font/SourceHanSansCN-Regular.ttf");
}

@ -6,14 +6,14 @@
flex-direction: column;
align-items: center;
.data-box {
width: 42px;
height: 25px;
line-height: 23px;
width: 32px;
height: 20px;
line-height: 20px;
background: url(../images/box.png);
background-size: 100% 100%;
position: relative;
text-align: center;
font-size: 14px;
font-size: 10px;
font-weight: 400;
color: #313332;
}
@ -29,10 +29,11 @@
.city-name {
width: 70px;
text-align: center;
font-size: 14px;
font-size: 10px;
font-weight: bold;
color: #000814;
font-family: "DIN-Medium";
}
}
}

@ -92,9 +92,9 @@ h6 {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
color: #000;
height: 40px;
font-size: 13px;
font-size: 16px;
}
}
.el-table__body-wrapper {

@ -10,10 +10,14 @@
// @function px2vh($px) {
// @return $px/1920*100vh;
// }
// font-size: vb
@function vb($px) {
@return $px/1620*100vw;
}
@function vw($px) {
@return $px/1920*100vw;
}
}
@function vh($px) {
@return $px/1080*100vh;

@ -5,13 +5,17 @@
<div class="logo-name">产品档案管理系统</div>
</div>
<div class="header-user">
<div class="btn-back" @click="goBack(0)" v-if="$route.meta.title && $route.meta.title == '首页'">
<!-- <div class="btn-back" @click="goBack(0)" v-if="$route.meta.title && $route.meta.title == '首页'">
<span class="back-btn-icon"></span>
返回门户
</div>
<div class="btn-back" @click="goBack(1)" v-else>
<span class="back-btn-icon"></span>
返回首页
</div> -->
<div class="btn-back" @click="goBack(0)">
<span class="back-btn-icon"></span>
返回门户
</div>
<div class="separate-line"></div>
<div class="user-data">

@ -10,29 +10,38 @@ function kickOut() {
if (process.env.NODE_ENV === "production") {
setTimeout(() => {
location.href = location.origin + "/login";
}, 1000);
}, 2000);
}
}
// const whiteList = [
// "/404",
// "/401",
// '/drugArchives',
// "/cosmeticsArchives",
// "/cosmeticsDetail",
// "/health",
// "/zyzj",
// "/404",
// "/401",
// '/drugArchives',
// "/cosmeticsArchives",
// "/cosmeticsDetail",
// "/health",
// "/zyzj",
// ];
NProgress.configure({ showSpinner: false });
router.beforeEach((to, from, next) => {
NProgress.start();
// if(from.path =='/cosmeticsDetail' || to.path =='/cosmeticsDetail' ){
// console.log(798,from);
// from.meta.keepAlive = true
// // store.commit('SET_ROUTWESHOW')
// }else{
// from.meta.keepAlive = true
// }
if (to.query.token) {
localStorage.setItem('MSSM-LIAONING__TOKEN', to.query.token)
}
let token = localStorage.getItem('MSSM-LIAONING__TOKEN')
console.log(to.path);
if (token) {
if (store.state.myselfPermission.routerList.length == 0) {
store.dispatch("GetPermission").then((res) => {
next({path:to.path});
// 获取查询参数
next({ path: to.path });
// next();
}).catch((error) => {
kickOut();
});
@ -56,7 +65,7 @@ router.beforeEach((to, from, next) => {
// 没有token
Message.error("获取令牌失败!");
kickOut();
}
}
});
router.afterEach(() => {

@ -64,50 +64,51 @@ export const constantRoutes = [
{
path: '',
component: () => import("@/views/index"),
redirect: "portal",
redirect: "drugArchives",
isDiy: true,
children: [
{
path: "/portal",
name: "portal",
// icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/portal/index.vue"),
meta: { title: "首页", },
},
{
path: "/drugArchives",
name: "drugArchives",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/index.vue"),
meta: { title: "药品档案", },
meta: { title: "药品档案", keepAlive:true },
},
{
path: "/cosmeticsArchives",
name: "cosmeticsArchives",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/cosmeticsArchives.vue"),
meta: { title: "化妆品档案", },
meta: { title: "化妆品档案",keepAlive: true },
},
{
path: "/cosmeticsDetail",
name: "cosmeticsDetail",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/productInfo.vue"),
meta: { title: "详情", },
meta: { title: "详情",keepAlive: true },
},
{
path: "/health",
name: "health",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/components/health.vue"),
meta: { title: "医疗器械档案", },
meta: { title: "医疗器械档案", keepAlive: true},
},
{
path: "/zyzj",
name: "zyzj",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/productsMsg/zyzj.vue"),
meta: { title: "传统中药制剂档案", },
meta: { title: "传统中药制剂档案", keepAlive: true},
},
{
path: "/portal",
name: "portal",
icon: require("@/assets/images/tree4.svg"),
component: () => import("@/views/portal/index.vue"),
meta: { title: "首页", },
},
]
},

@ -18,5 +18,7 @@ const getters = {
permissionList: (state) => state.myselfPermission.permissionList,
realName: (state) => state.myselfPermission.userData.realName,
inspectorId: (state) => state.myselfPermission.inspectorId,
usersort: (state) => state.myselfPermission.usersort,
routershow: (state) => state.myselfPermission.routershow,
};
export default getters;

@ -11,6 +11,8 @@ const selfPermission = {
routerList: [],
userData: {},
inspectorId: "",
usersort: '',
routershow:true
},
mutations: {
//动态按钮权限
@ -27,18 +29,36 @@ const selfPermission = {
SET_USERDATA: (state, data) => {
state.userData = data;
},
// 分类
SET_USERSORT: (state, data) => {
state.usersort = data;
},
//某个id
SET_INSPECTORID: (state, id) => {
state.inspectorId = id;
},
// 是否缓存路由
SET_ROUTWESHOW: (state, id) => {
state.routershow = true;
},
SET_ROUTWESHOWFALS: (state, id) => {
state.routershow = false;
},
},
actions: {
//获取远程接口(路由、菜单、按钮权限)
GetPermission({ commit, state }) {
return new Promise((resolve, reject) => {
getselfInfo()
.then((res) => {
console.log(res);
if (res.message == '未知的token,请重新登录!' || res.status == 40002) {
setTimeout(() => {
// location.href = location.origin + "/login";
Message.error(res.message);
}, 2000);
}
let infoData = res.result;
// let query = {
// id: infoData.userDto.cardId,
@ -52,6 +72,27 @@ const selfPermission = {
//存储用户信息
commit("SET_USERDATA", infoData.userDto);
let ismyobj = {
"稽查一处": "沈阳市",
"稽查二处": "大连市",
"稽查三处": "鞍山市",
"稽查四处": "抚顺市",
"稽查五处": "本溪市",
"稽查六处": "丹东市",
"稽查七处": "锦州市",
"稽查八处": "营口市",
"稽查九处": "阜新市",
"稽查十处": "辽阳市",
"稽查十一处": "铁岭市",
"稽查十二处": "朝阳市",
"稽查十三处": "盘锦市",
"稽查十四处": "葫芦岛市",
}
if (ismyobj[infoData.userDto.orgName]) {
commit('SET_USERSORT', ismyobj[infoData.userDto.orgName])
} else {
commit('SET_USERSORT', "")
}
//过滤出按钮权限字符
// let menuButton = infoData.menuButton.filter(
// (item) => item.appCode == "JCYGL"
@ -71,10 +112,10 @@ const selfPermission = {
// }
// });
// });
fileTreeOut[4].meta.affix = true
fileTreeOut[0].meta.affix = true
commit("SET_ROUTER", fileTreeOut);
resolve(fileTreeOut.length > 0 ? fileTreeOut[4].path : []);
resolve(fileTreeOut.length > 0 ? fileTreeOut[0].path : []);
})
.catch((error) => {
reject(error);

@ -15,7 +15,8 @@ axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: location.origin + process.env.VUE_APP_BASE_API2,
// baseURL: location.origin + process.env.VUE_APP_BASE_API2,
baseURL: process.env.VUE_APP_BASE_API2,
// 超时
timeout: 15000,
});

@ -0,0 +1,579 @@
<template>
<div class="box">
<div class="btna">
<!-- -->
<el-button type="primary" :icon="collapsechange ? 'el-icon-remove-outline' : 'el-icon-circle-plus-outline '"
@click="collapsechange = !collapsechange">
{{ collapsechange ? '收起' : ' 展开' }}
</el-button>
</div>
<div class="box1" v-if="collapsechange">
<div class="titlestyle">{{ leafletitle }}分布</div>
<div id="leafletMap" class="leafletMap"></div>
</div>
<div class="box2" id="box2" v-if="collapsechange">
<div class="titlestyle">{{ echartstitle }}统计</div>
<div class="echarts" id="echarts"></div>
</div>
</div>
</template>
<script>
import cityJson from "@/utils/mapJson/liaoning-city.json";
import cityCenter from "@/utils/mapJson/cityCenter.json";
import province from "@/utils/mapJson/liaoning-province.json";
import * as echarts from "echarts";
import elementResizeDetectorMaker from 'element-resize-detector'
export default {
name: 'MapCars',
components: {},
data() {
return {
collapsechange: true,
cityData: {
沈阳市: 0,
大连市: 0,
鞍山市: 0,
抚顺市: 0,
本溪市: 0,
丹东市: 0,
锦州市: 0,
营口市: 0,
阜新市: 0,
辽阳市: 0,
盘锦市: 0,
铁岭市: 0,
朝阳市: 0,
葫芦岛市: 0,
沈抚示范区: 0,
},
allInspector: 0,
//
dict: {},
legendList: [
{ color: "#28599C", text: ">=600" },
{ color: "#3477B2", text: "400-599" },
{ color: "#4499CE", text: "200-399" },
{ color: "#59BBEC", text: "100-199" },
{ color: "#9BD3F5", text: "1-99" },
{ color: "#C5F0FF", text: "0" },
],
globalMap: null,
latitude: "40.904726971438656",
longitude: "122.80196410332945",
zoom: 8,
maxZoom: 18,
minZoom: 6,
layerObj: {
provinceLayer: null,
cityLayer: null,
textLayer1: null,
},
mylayer: null,
myChart: null,
mygeojson: null,
mystort: null,
mystortTow: null,
chartData: ["其他"],
chartDatatow: [
{ value: 10, name: '其他' },
]
};
},
props: {
leafletitle: {
type: String,
default: '档案'
},
echartstitle: {
type: String,
default: '档案'
},
},
created() { },
mounted() {
this.mystort = this.$store.getters.usersort
this.mystortTow = this.$store.getters.usersort
this.$nextTick(() => {
// this.mycharts();
// this.mycharts()
this.isEcharts()
this.isLefleat()
});
//
},
methods: {
async isEcharts() {
console.log(this.leafletitle);
this.chartDatatow = []
this.chartData = []
if (this.leafletitle == "医疗器械") {
console.log(777, this.mystortTow);
let msg1 = await this.$api.apparatus.typecount({ area: this.mystortTow });
if (msg1.code == 200) {
console.log(msg1.data);
msg1.data.forEach(item => {
let obj = {
value: item.count,
name: item.cplb,
}
this.chartDatatow.push(obj)
this.chartData.push(item.cplb)
})
}
} else if(this.leafletitle == "药品") {
this.chartData = ["中药",'生物制品','化学药品']
this.chartDatatow = [
{ value: 100, name: '中药' },
{ value: 120, name: '生物制品' },
{ value: 130, name: '化学药品' },
]
}else if(this.leafletitle == "化妆品") {
this.chartData = ["国产化妆品",'国产特殊化妆品','进口化妆品','进口特殊化妆品']
this.chartDatatow = [
{ value: 100, name: '国产化妆品' },
{ value: 120, name: '国产特殊化妆品' },
{ value: 130, name: '进口化妆品' },
{ value: 140, name: '进口特殊化妆品' },
]
}
// if (this.leafletitle == "") {
// let msg1 = await this.$api.apparatus.vRdgYpwhGxwztypecount({ area: this.mystortTow });
// if (msg1.code == 200) {
// console.log(msg1.data);
// msg1.data.forEach(item => {
// let obj = {
// value: item.count,
// name: item.ypfl,
// }
// this.chartDatatow.push(obj)
// this.chartData.push(item.ypfl)
// })
// }
// }
this.mycharts()
},
async isLefleat() {
if (this.leafletitle == "医疗器械") {
let msg2 = await this.$api.apparatus.ylqxJnyelcpareacount();
if (msg2.code == 200) {
console.log(msg2.data);
msg2.data.forEach(item => {
this.cityData[item.area] = item.count
})
}
console.log(this.cityData);
this.initMap()
} else if (this.leafletitle == "药品") {
let msg2 = await this.$api.apparatus.vRdgYpwhGxwztareacount()
if (msg2.code == 200) {
console.log(msg2.data);
msg2.data.forEach(item => {
this.cityData[item.area] = item.count
})
}
console.log(this.cityData);
this.initMap()
} else {
this.initMap()
}
},
mycharts() {
this.myChart = echarts.init(document.getElementById("echarts"));
let option = {
// title: {
// text: '',
// subtext: '',
// left: 'center'
// },
tooltip: {
trigger: 'item',
formatter: "{b} : {c} ({d}%)"
},
legend: {
icon: `path://M881.387 297.813c38.08 65.387 57.28 136.747 57.28 214.187s-19.094 148.8-57.28 214.187c-38.187 65.28-89.92 117.12-155.2 155.2S589.44 938.667 512 938.667s-148.8-19.094-214.187-57.28c-65.28-38.08-117.013-89.814-155.306-155.307C104.427 660.8 85.333 589.44 85.333 512c0-77.333 19.094-148.693 57.28-214.187 38.08-65.28 89.814-117.013 155.307-155.306C363.2 104.533 434.56 85.333 512 85.333c77.333 0 148.693 19.094 214.187 57.28 65.28 38.187 117.013 89.92 155.2 155.2z m-217.707-47.36C617.387 223.467 566.827 209.92 512 209.92s-105.387 13.547-151.68 40.533-82.987 63.68-109.973 109.974c-26.987 46.293-40.534 96.853-40.534 151.68s13.547 105.386 40.534 151.68c26.986 46.293 63.68 82.986 109.973 109.973 46.293 26.987 96.853 40.533 151.68 40.533s105.387-13.546 151.68-40.533c46.293-26.987 82.987-63.68 109.973-109.973 26.987-46.294 40.534-96.854 40.534-151.68s-13.547-105.387-40.534-151.68c-27.093-46.294-63.786-82.987-109.973-109.974z`,
type: 'scroll', //
orient: 'vertical', //
right: '20', //
top: 'center',
itemWidth: 20, //
itemHeight: 20, //
itemGap: 10,
textStyle: {
fontSize: '14px'
},
formatter: function (name) {
//
let chartData = option.series[0].data;
let total = 0;
for (let i = 0; i < chartData.length; i++) {
total += chartData[i].value; //
}
let value = 0;
for (let i = 0; i < chartData.length; i++) {
if (chartData[i].name === name) {
value = chartData[i].value; //
break;
}
}
let percent = ((value / total) * 100).toFixed(2) + '%'; //
//
return `${name} ${value} ${percent}`;
},
data: this.chartData,
},
series: [
{
type: 'pie',
radius: ['25%', '70%'],
center: ['35%', '50%'],
selectedMode: 'single',
roseType: 'radius',
avoidLabelOverlap: false,
label: {
show: false,
position: 'outside',
formatter: '{b}: {d}%'
},
labelLine: {
show: false,
normal: {
length: 15,
length2: 10,
lineStyle: {
color: '#333'
}
}
},
data: this.chartDatatow,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
},
normal: {
color: function (params) {
//
var colorList = ['#C1232B', '#B5C334', '#FCCE10', '#E87C25', '#27727B'];
return colorList[params.dataIndex % colorList.length];
}
}
}
},
//
{
type: 'pie',
radius: ['0%', '20%'],
avoidLabelOverlap: false,
hoverAnimation: false, //
label: {
show: false
},
labelLine: {
show: false
},
data: [
[{ value: 2702, name: '总量' }]
],
itemStyle: {
color: 'transparent',
borderColor: '#ccc',
borderWidth: 1
}
}
]
};
this.myChart.setOption(option, true);
let erd = elementResizeDetectorMaker();
let that = this;
erd.listenTo(document.getElementById("echarts"), function (element) {
that.myChart.resize();
})
},
initMap() {
this.globalMap = L.map("leafletMap", {
center: [this.latitude, this.longitude], // []
zoom: this.zoom,
maxZoom: this.maxZoom,
minZoom: this.minZoom,
zoomControl: true, //
attributionControl: false, // leaflet
dragging: false,
doubleClickZoom: false,
scrollWheelZoom: false,
dragging: true,
});
//
this.globalMap.createPane("provinceLayer");
this.globalMap.getPane("provinceLayer").style.zIndex = 504;
this.globalMap.getPane("provinceLayer").style.pointerEvents = "none";
this.layerObj.provinceLayer = L.layerGroup().addTo(this.globalMap);
//
this.globalMap.createPane("cityLayer");
this.globalMap.getPane("cityLayer").style.zIndex = 505;
this.globalMap.getPane("cityLayer").style.pointerEvents = "none";
this.layerObj.cityLayer = L.layerGroup().addTo(this.globalMap);
this.globalMap.createPane("textLayer1");
this.globalMap.getPane("textLayer1").style.zIndex = 506;
this.globalMap.getPane("textLayer1").style.pointerEvents = "none";
this.layerObj.textLayer1 = L.layerGroup().addTo(this.globalMap);
this.provinceLayer();
this.initCityLayer(this.cityData);
this.initPoitCenter(this.cityData);
},
//
provinceLayer() {
let mygeojson = L.geoJSON(province, {
style: function () {
return {
weight: 2,
color: "#36527D",
fillColor: "",
fillOpacity: 1,
};
},
}).addTo(this.layerObj.provinceLayer);
this.globalMap.fitBounds(mygeojson.getBounds());
},
showinitCityLayer() {
this.initCityLayer(this.cityData)
this.mystortTow = this.$store.getters.usersort
this.isEcharts()
// this.isLefleat()
},
//
initCityLayer(data) {
console.log(798, data);
let _this = this;
let geojson = L.geoJSON(cityJson, {
onEachFeature: function onEachFeature(feature, layer) {
if (this.mystort) {
layer.on({
// mouseover: thit.highlightFeature,
// mouseout: function resetHighlight(e) {
// geojson.resetStyle(e.target);
// },
click: function zoomToFeature(e) {
_this.highlightFeature(e, geojson)
console.log(feature);
_this.$emit('arealist', feature.properties.name)
_this.mystortTow = feature.properties.name
_this.isEcharts()
// thit.globalMap.fitBounds(geojson.getBounds());
},
});
return
} else {
layer.on({
// mouseover: thit.highlightFeature,
// mouseout: function resetHighlight(e) {
// geojson.resetStyle(e.target);
// },
click: function zoomToFeature(e) {
_this.highlightFeature(e, geojson)
console.log(feature);
_this.$emit('arealist', feature.properties.name)
_this.mystortTow = feature.properties.name
_this.isEcharts()
// thit.globalMap.fitBounds(geojson.getBounds());
},
});
}
// if (feature.properties.name == this.mystort) {
// layer.on({
// // mouseover: thit.highlightFeature,
// // mouseout: function resetHighlight(e) {
// // geojson.resetStyle(e.target);
// // },
// click: function zoomToFeature(e) {
// _this.highlightFeature(e, geojson)
// console.log(feature);
// // thit.globalMap.fitBounds(geojson.getBounds());
// },
// });
// }
},
style: (geoJsonFeature) => {
let num = data[geoJsonFeature.properties.name];
let style = {
weight: 0.5,
color: "#fff",
fillColor: "#87CEEB",
fillOpacity: 1,
};
if (geoJsonFeature.properties.name == this.mystort) {
style.fillColor = "#FFFF00";
}
// if (num == 0) {
// style.fillColor = "#C5F0FF";
// } else if (num >= 1 && num <= 99) {
// style.fillColor = "#9BD3F5";
// } else if (num >= 100 && num <= 199) {
// style.fillColor = "#59BBEC";
// } else if (num >= 200 && num <= 399) {
// style.fillColor = "#4499CE";
// } else if (num >= 400 && num <= 599) {
// style.fillColor = "#3477B2";
// } else {
// style.fillColor = "#28599C";
// }
return style;
},
}).addTo(this.layerObj.cityLayer);
//
},
initPoitCenter(data) {
let ismyobj = {
"沈阳市": "稽查一处",
"大连市": "稽查二处",
"鞍山市": "稽查三处",
"抚顺市": "稽查四处",
"本溪市": "稽查五处",
"丹东市": "稽查六处",
"锦州市": "稽查七处",
"营口市": "稽查八处",
"阜新市": "稽查九处",
"辽阳市": "稽查十处",
"铁岭市": "稽查十一处",
"朝阳市": "稽查十二处",
"盘锦市": "稽查十三处",
"葫芦岛市": "稽查十四处"
}
L.geoJSON(cityCenter, {
pointToLayer: (feature, latlng) => {
if (!this.mystort && feature.properties.fName != '沈抚示范区') {
return L.marker(latlng, {
icon: L.divIcon({
className: "city-marker",
html: `<div class="marker-data">
<div class="data-box">
${data[feature.properties.fName]}
</div>
<div class="circle"></div>
<div class="city-name">${ismyobj[feature.properties.fName]}</div>
<div class="city-name">${feature.properties.fName}</div>
</div>`,
}),
});
} else if (feature.properties.fName == this.mystort && feature.properties.fName != '沈抚示范区') {
return L.marker(latlng, {
icon: L.divIcon({
className: "city-marker",
html: `<div class="marker-data" >
<div class="data-box">
${data[feature.properties.fName]}
</div>
<div class="circle"></div>
<div class="city-name">${ismyobj[feature.properties.fName]}</div>
<div class="city-name">${feature.properties.fName}</div>
</div>`,
}),
});
} else if (feature.properties.fName != '沈抚示范区') {
return L.marker(latlng, {
icon: L.divIcon({
className: "city-marker",
html: `<div class="marker-data">
<div class="circle"></div>
<div class="city-name">${feature.properties.fName}</div>
</div>`,
}),
});
}
},
}).addTo(this.layerObj.textLayer1);
},
highlightFeature(e, geojson) {
if (this.mylayer) {
geojson.resetStyle(this.mylayer);
}
this.mylayer = e.target;
this.mylayer.setStyle({
weight: 0.3,
color: "#000",
dashArray: "",
fillOpacity: 1,
fillColor: "#FFFF00"
});
this.mylayer.bringToFront();
},
},
computed: {}
}
</script>
<style scoped lang='scss'>
.box {
position: relative;
padding: 15px;
display: flex;
.btna {
position: absolute;
right: 20px;
top: -40px;
}
.echarts {
width: 45vw;
height: 50vh;
}
.box1 {
width: 45vw;
height: 50vh;
.leafletMap {
margin: 0 auto;
/* 水平居中 */
background-color: #fff;
min-width: 100%;
min-height: 100%;
}
}
}
::v-deep .leaflet-map-pane {}
.titlestyle {
padding: 0 0 0 10px;
margin: 0 0 0 20px;
border-left: 5px solid #1e80eb;
color: #1e80eb;
font-size: 18px;
font-weight: 600;
}
</style>

@ -6,15 +6,10 @@
</div>
<div class="body-container" v-else>
<div class="tree-menu">
<router-link
tag="div"
:to="{ path: item.path }"
v-for="(item, index) in myRouter"
:key="index"
active-class="routerActive"
>
<div class="view-child">
<img :src="item.icon" alt="" class="router-icon" />
<router-link tag="div" :to="{ path: item.path }" v-for="(item, index) in myRouter" :key="index"
active-class="routerActive">
<div class="view-child" @click="$store.commit('SET_ROUTWESHOWFALS')">
<img :src="item.icon" alt="" class="router-icon" />
{{ item.meta.title }}
</div>
<div></div>
@ -23,7 +18,11 @@
<div class="view-box">
<tags-view ref="tagsView" />
<div class="child-views">
<router-view />
<keep-alive>
<router-view></router-view>
</keep-alive>
</div>
</div>
</div>
@ -43,12 +42,12 @@ export default {
computed: {
//
myRouter() {
return this.$store.state.myselfPermission.routerList.slice(0,this.$store.state.myselfPermission.routerList.length-1);
return this.$store.state.myselfPermission.routerList.filter((item) => item.name != "portal");
// return this.$store.state.myselfPermission.routerList;
//.slice(0,this.$store.state.myselfPermission.routerList.length-1)
},
},
created() {},
created() { },
};
</script>
@ -59,34 +58,43 @@ export default {
width: 14px;
margin-right: 10px;
}
::v-deep .el-submenu__title {
padding: 0 8px !important;
}
::v-deep .el-menu-item {
padding: 0 8px !important;
margin-right: -1px;
}
::v-deep .el-menu-item-group .el-menu-item {
padding-left: 35px !important;
}
::v-deep .el-menu-item-group__title {
padding: 0 !important;
}
.container {
height: 100%;
.body-container {
height: calc(100vh - 50px);
height: calc(100% - 50px);
display: flex;
align-items: center;
& > div {
&>div {
height: 100%;
}
.tree-menu {
background: #465970;
width: 180px;
box-sizing: border-box;
padding: 14px 10px;
& > div {
&>div {
width: 200px;
height: 40px;
display: flex;
@ -96,6 +104,7 @@ export default {
color: #ffffff;
padding: 0 10px;
cursor: pointer;
.router-icon {
display: inline-block;
height: 14px;
@ -104,13 +113,15 @@ export default {
}
}
}
.view-box {
flex: 1;
width: 100%;
height: 100%;
background: #f2f2f2;
overflow-y: auto;
}
.child-views {
height: calc(100% - 40px);
width: 100%;
@ -118,10 +129,12 @@ export default {
padding: 10px;
}
}
.routerActive {
background: #1e80eb;
border-radius: 4px;
}
.view-child {
display: flex;
align-items: center;

@ -34,21 +34,21 @@ export default {
data: [
{
value: "药品档案",
image: require('@/assets/images/home/tu1.png'),
image: require('@/assets/images/home/tu2.png'),
bg: require('@/assets/images/home/application-bg.png'),
name: "drugArchives"
},
{
value: "医疗器械档案"
,
image: require('@/assets/images/home/tu2.png'),
image: require('@/assets/images/home/tu3.png'),
bg: require('@/assets/images/home/application-bg.png'),
name: "health"
},
{
value: "化妆品档案"
,
image: require('@/assets/images/home/tu3.png'),
image: require('@/assets/images/home/tu1.png'),
bg: require('@/assets/images/home/application-bg.png'),
name: "cosmeticsArchives"
},

@ -1,12 +1,20 @@
<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>
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
@ -14,20 +22,20 @@
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-row> -->
</div>
<el-row>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="备案编号">
<el-input v-model="form1.babm" placeholder="请输入备案编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="生产企业">
<el-input v-model="form1.scqy" placeholder="请输入生产企业"></el-input>
</el-form-item>
@ -39,7 +47,7 @@
<el-input v-model="form1.name" placeholder="请输入注册证编号"></el-input>
</el-form-item>
</el-col> -->
<el-col :span="7">
<el-col :span="8">
<el-form-item label="化妆品类型" placeholder="请输入化妆品类型">
<el-select v-model="types" placeholder="请选择化妆品类型" @change="changeType">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
@ -55,52 +63,51 @@
<div v-show="!bthshow">
<el-row>
<div class="title-box">产品抽检信息查询</div>
<el-col :span="7">
<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="7">
<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="7">
<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>
<el-col :span="7">
<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="7">
<el-col :span="8">
<el-form-item label="抽样日期" placeholder="请输入化抽样日期">
<el-select v-model="form1.cyrq" placeholder="请选择抽样日期" @change="changeType">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select> </el-form-item></el-col>
<el-input v-model="form1.cyrq" placeholder="抽样日期"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<div class="title-box">不良反应信息查询</div>
<el-col :span="7">
<div class="title-box">不良事件信息查询</div>
<el-col :span="8">
<el-form-item label="发生年份">
<el-input v-model="form1.fsnf" placeholder="请输入发生年份"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<div class="logformitem">
<el-form-item label="不良反应报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良反应报告编号"></el-input>
<el-form-item label="不良事件报告编号">
<el-input v-model="form1.blfybgbh" placeholder="请输入不良事件报告编号"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="7">
<el-form-item label="不良反应类型">
<el-input v-model="form1.blfylx" placeholder="请输入不良反应类型"></el-input>
<el-col :span="8">
<el-form-item label="不良事件类型">
<el-input v-model="form1.blfylx" placeholder="请输入不良事件类型"></el-input>
</el-form-item>
</el-col>
@ -124,27 +131,39 @@
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="43vh">
<el-table-column type="selection" width="35" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="产品名称" align="center">
<el-table v-loading="loading" :data="tableData" border>
<el-table-column type="selection" width="50">
</el-table-column>
<el-table-column type="index" label="序号" width="50" />
<el-table-column label="产品名称" width="380">
<template slot-scope="scope">
{{ scope.row.cpmc }}
</template>
</el-table-column>
<el-table-column :label="A2" align="center" width="230">
<!-- :label="A2" -->
<el-table-column label="注册/备案号" width="230">
<template slot-scope="scope">
{{ scope.row.bah || scope.row.zczh }}
</template>
</el-table-column>
<el-table-column label="注册/备案日期" width="240">
<template slot-scope="scope">
{{ scope.row.sj || scope.row.pzrq }}
</template>
</el-table-column>
<el-table-column label="注册/备案人" width="240">
<template slot-scope="scope">
{{ scope.row.bah || scope.row.pzrq }}
{{ scope.row.lxr || scope.row.zcr }}
</template>
</el-table-column>
<el-table-column :label="A3" align="center" width="240">
<el-table-column label="生产企业/境内责任人" width="240">
<template slot-scope="scope">
{{ scope.row.qymc || scope.row.sf || scope.row.zcr }}
{{ scope.row.qymc || scope.row.zcr || scope.row.jnzrr }}
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="140" align="center">
<el-table-column label="操作" class-name="small-padding fixed-width" width="100" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="toDetail(scope.row)"></el-button>
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
</template>
</el-table-column>
@ -169,10 +188,13 @@
import { download, dchzpsj } from "../../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import logVue from '../../monitor/job/log.vue';
import MapCars from "@/views/components/MapCars.vue";
export default {
components: {},
components: {MapCars},
data() {
return {
MapCarsshow:true,
loading: false,
tableData: [],
A1: "产品名称",
@ -213,10 +235,12 @@ export default {
blfybgbh: "",
blfylx: "",
fsnf: "",
area: this.$store.getters.usersort
},
form: {
size: 10,
size: 20,
current: 1,
area: this.$store.getters.usersort
},
jieliuShow: true,
@ -228,7 +252,7 @@ export default {
};
},
mounted() {
console.log(this.$route.query.value, 88888);
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
@ -239,6 +263,11 @@ export default {
created() {
},
methods: {
arealist(area) {
this.form.area = area
this.form1.area = area
this.getData(this.types);
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
@ -317,7 +346,7 @@ export default {
this.jieliuShow = false;
setTimeout(() => {
this.jieliuShow = true;
}, 3000);
}, 500);
} else {
this.$message("点击过快");
}
@ -358,20 +387,33 @@ export default {
this.chinaCosmetics();
},
//
reset() {
reset(type) {
this.types = "1";
this.form1 = {
babm: "",
cpmc: "",
name: "",
scqy: "",
size: 10,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
area: this.$store.getters.usersort
};
this.form = {
size: 10,
size: 20,
current: 1,
};
if(type!=1){
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
//
@ -438,6 +480,17 @@ export default {
this.getData(e);
},
},
beforeRouteLeave(to, from, next) {
if (to.path != '/cosmeticsDetail') {
this.reset(1)
}
this.MapCarsshow = false
next()
},
activated(to, from, next) {
this.MapCarsshow = true
}
};
</script>
@ -483,7 +536,8 @@ export default {
}
.tabs {
padding-bottom: 10px;
margin-bottom: 10px;
width: 100%;
background: #fff;
@ -501,7 +555,6 @@ export default {
}
.tabsBottom {
padding-top: 10px;
.foot-main {
height: 100%;
@ -530,6 +583,7 @@ export default {
::v-deep .el-table {
overflow: auto;
}
::v-deep .el-collapse-item__header {

@ -1,12 +1,21 @@
<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>
<!-- <el-row>
<div class="title-box">基本信息查询</div>
<el-col :span="21">
@ -14,15 +23,15 @@
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-row> -->
</div>
<el-row>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<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">
@ -30,20 +39,31 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="生产企业">
<el-input v-model="form1.scqy" placeholder="请输入生产企业"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证编号或备案编号">
<el-input v-model="form1.zczh" placeholder="请输入注册证编号或备案编号"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="logformitem">
<el-form-item label="注册证状态/备案凭证状态">
<el-select v-model="form1.zczt" placeholder="请选择">
<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>
<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>
@ -53,17 +73,17 @@
<div v-show="!bthshow">
<el-row>
<div class="title-box">审评受理信息查询</div>
<el-col :span="7">
<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="7">
<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="7">
<el-col :span="8">
<el-form-item label="受理日期">
<el-input v-model="form1.cybh" placeholder="请输入受理日期"></el-input>
</el-form-item>
@ -72,35 +92,35 @@
<el-row>
<div class="title-box">注册检验体系核查信息查询</div>
<el-col :span="7">
<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="7">
<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="7">
<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>
<el-col :span="7">
<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="7">
<el-col :span="8">
<el-form-item label="核查结论" placeholder="请输入核查结论">
<el-select v-model="form1.cyrq" placeholder="请选择核查结论">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select> </el-form-item></el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="核查日期">
<el-input v-model="form1.jcrq" placeholder="请输入核查日期"></el-input>
</el-form-item>
@ -109,17 +129,17 @@
<el-row>
<div class="title-box">临床试验信息查询</div>
<el-col :span="7">
<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="7">
<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="7">
<el-col :span="8">
<el-form-item label="临床试验备案号">
<el-input v-model="form1.lcsybah" placeholder="请输入临床试验备案号"></el-input>
</el-form-item>
@ -127,15 +147,16 @@
</el-row>
<el-row>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="试验核查日期">
<el-input v-model="form1.syhcrq" placeholder="请输入试验核查日期"></el-input>
</el-form-item>
</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-remove-outline" @click="collapsechange(1)"></el-button>
<el-button type="success" icon="el-icon-remove-outline" @click="collapsechange(1)"></el-button>
</div>
</el-row>
@ -156,19 +177,36 @@
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="43vh" align="center">
<el-table-column type="selection" width="35" align="center" />
<el-table-column type="index" label="序号" align="center" width="50" />
<el-table-column label="产品名称" prop="cpmc" align="center">
<el-table v-loading="loading" :data="tableData" border>
<el-table-column type="selection" width="50" />
<el-table-column type="index" label="序号" width="50" />
<el-table-column label="产品名称" prop="cpmc" width="180">
</el-table-column>
<el-table-column label="产品类型" prop="cplx" align="center" width="100"></el-table-column>
<el-table-column label="生产企业" prop="zcsqr" align="center"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" align="center" width="100"></el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" align="center" width="200">
<el-table-column label="产品类型" prop="cplx" width="100"></el-table-column>
<el-table-column label="生产企业" prop="zcsqr" width="280"></el-table-column>
<el-table-column label="产品管理类别" prop="cplb" width="150"></el-table-column>
<el-table-column label="注册证编号/备案编号" prop="zczh" width="230">
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="120" align="center">
<el-table-column label="统一社会信用代码" prop="shxydm" width="230">
</el-table-column>
<el-table-column label="批准日期" prop="pzrq" width="200">
<template slot-scope="scope">
{{ scope.row.pzrq.split(" ")[0] }}
</template>
</el-table-column>
<el-table-column label="注册厂家" prop="zcsqr" width="280">
<template slot-scope="scope">
{{ scope.row.zcsqr }}
</template>
</el-table-column>
<el-table-column label=" 注册证状态/备案凭证状态" prop="ppztDm" width="280">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="toDetail(scope.row)"></el-button>
{{ zczt(scope.row.ppztDm) }}
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="100" fixed="right">
<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>
@ -192,10 +230,15 @@
<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: {},
components: { MapCars },
data() {
return {
MapCarsshow: true,
//===========
loading: false,
tableData: [],
@ -209,13 +252,27 @@ export default {
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: '取消备案' }
],
form1: {
cplb: "",
cpmc: "",
scqy: "",
zczh: "",
size: 10,
size: 20,
current: 1,
//
name: "",
@ -231,11 +288,15 @@ export default {
jcrq: "",
syrq: "",
syhcrq: "",
// /
zczt: "",
area: this.$store.getters.usersort
},
form: {
size: 10,
size: 20,
current: 1,
area: this.$store.getters.usersort
},
jieliuShow: true,
@ -243,21 +304,27 @@ export default {
showCK: false,
src: "",
bthshow: true,
scoltitle: "展开"
scoltitle: "展开",
echartstlist: null
};
},
mounted() {
console.log(this.$route.query.value, 88888);
async mounted() {
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
} else {
this.chinaCosmetics(1);
}
},
created() {
},
methods: {
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics();
},
collapsechange(e) {
if (e == 0) {
this.bthshow = false
@ -338,19 +405,42 @@ export default {
this.chinaCosmetics();
},
//
reset() {
reset(type) {
this.form1 = {
cplb: "",
cpmc: "",
scqy: "",
zczh: "",
size: 10,
size: 20,
current: 1,
//
name: "",
cjxm: "",
jyslbh: "",
cybh: "",
cyjb: "",
cyrq: "",
blfybgbh: "",
blfylx: "",
fsnf: "",
lcsymc: "",
jcrq: "",
syrq: "",
syhcrq: "",
// /
zczt: "",
area: this.$store.getters.usersort
};
this.form = {
size: 10,
size: 20,
current: 1,
area: this.$store.getters.usersort
};
if (type != 1) {
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
async chinaCosmetics() {
@ -362,7 +452,31 @@ export default {
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>
@ -410,6 +524,7 @@ export default {
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
@ -425,13 +540,12 @@ export default {
.tabsBottom {
// height: 70%;
padding-top: 10px;
.foot-main {
height: 100%;
// min-height: 600px;
width: 100%;
background: white;
background: #ffffff;
}
}
@ -454,6 +568,7 @@ export default {
::v-deep .el-table {
overflow: auto;
}
::v-deep .logformitem {

@ -12,12 +12,12 @@ export default {
iframViewStyle: {
height: "",
},
Url: `${location.origin}/ggfw-iframe/#/productinformation?type=${this.$route.query.type
}&flag=${this.$route.query.flag}&data=${this.$route.query.data
}&token=${localStorage.getItem("MSSM-LIAONING__TOKEN")}&bah=${this.$route.query.bah}`,
// Url: `http://localhost:81?type=${this.$route.query.type
// Url: `${location.origin}/ggfw-iframe/#/productinformation?type=${this.$route.query.type
// }&flag=${this.$route.query.flag}&data=${this.$route.query.data
// }&token=${localStorage.getItem("MSSM-LIAONING__TOKEN")}&bah=${this.$route.query.bah}`,
Url: `http://localhost:81?type=${this.$route.query.type
}&flag=${this.$route.query.flag}&data=${this.$route.query.data
}&token=${localStorage.getItem("MSSM-LIAONING__TOKEN")}&bah=${this.$route.query.bah}`,
};
},
methods: {},

@ -1,27 +1,35 @@
<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" >
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<el-row>
<!-- <el-row>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-row> -->
</div>
<el-row>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="产品名称">
<el-input v-model="form1.cpmc" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="药品分类">
<el-select v-model="form1.ypfl" placeholder="请选择药品分类">
<el-option v-for="item in ypType" :key="item" :label="item" :value="item">
@ -29,24 +37,41 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="批准文号">
<el-input v-model="form1.pzwh" placeholder="请输入批准文号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="生产企业">
<el-input v-model="form1.scqy" placeholder="请输入生产企业"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="剂型">
<el-select v-model="form1.jx" placeholder="请选择剂型">
<el-option v-for="item in jxType" :key="item" :label="item" :value="item">
</el-option>
</el-select> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="是否抽检">
<el-select v-model="form1.sfcj" placeholder="请选择">
<el-option v-for="item in shif" :key="item" :label="item" :value="item">
</el-option>
</el-select> </el-form-item></el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="是否有不良反应">
<el-select v-model="form1.sfyblfy" placeholder="请选择">
<el-option v-for="item in shif" :key="item" :label="item" :value="item">
</el-option>
</el-select> </el-form-item>
</el-col>
<div class="footBox">
<el-button icon="el-icon-refresh-left" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
@ -66,43 +91,68 @@
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="43vh" >
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column label="产品名称" align="center" width="230">
<el-table v-loading="loading" :data="tableData" border>
<el-table-column type="index" label="序号" width="50" />
<el-table-column label="产品名称" width="230">
<template slot-scope="scope">
{{ scope.row.yptymc }}
</template>
</el-table-column>
<el-table-column label="批准文号" align="center" width="170">
<el-table-column label="批准文号" width="170">
<template slot-scope="scope">
{{ scope.row.yppzwh }}
</template>
</el-table-column>
<el-table-column label="药品分类" align="center" width="90">
<el-table-column label="药品分类" width="120">
<template slot-scope="scope">
{{ scope.row.ypfl }}
</template>
</el-table-column>
<el-table-column label="剂型" align="center" width="90">
<el-table-column label="剂型" width="120">
<template slot-scope="scope">
{{ scope.row.jx }}
</template>
</el-table-column>
<el-table-column label="生产企业" align="center">
<el-table-column label="规格" width="120">
<template slot-scope="scope">
{{ scope.row.ypgg }}
</template>
</el-table-column>
<el-table-column label="批准日期" min-width="180">
<template slot-scope="scope">
{{ scope.row.pzrq }}
</template>
</el-table-column>
<el-table-column label="批准文号有限期" min-width="180">
<template slot-scope="scope">
{{ scope.row.yppzwhyxq }}
</template>
</el-table-column>
<el-table-column label="生产单位" min-width="230">
<template slot-scope="scope">
{{ scope.row.ypscqymc }}
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="140" align="center">
<el-table-column label="生产地址" min-width="230">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="toDetail(scope.row)" >查看</el-button>
<div class="norepet">{{ scope.row.scdz }}</div>
</template>
</el-table-column>
<el-table-column label="生产企业" min-width="230">
<template slot-scope="scope">
{{ scope.row.ypscqymc }}
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="100" fixed="right">
<template slot-scope="scope">
<el-button type="primary" @click="toDetail(scope.row)"></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" :page-sizes="[10, 20, 50]"></pagination>
:current-page.sync="form.current" :page-sizes="[10, 20, 50]"></pagination>
</div>
</div>
<el-dialog title="提示" :visible.sync="showCK" width="30%">
@ -117,11 +167,16 @@
<script>
import { download, dcyp } from "../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import { Notification, MessageBox, Message, Loading, TabPane } from "element-ui";
import MapCars from "@/views/components/MapCars.vue";
export default {
components: {},
components: {
MapCars,
},
data() {
return {
MapCarsshow: true,
//===========
loading: false,
tableData: [],
@ -138,11 +193,18 @@ export default {
//
ypfl: "",
//
name: ""
name: "",
//
sfcj: "",
//
sfyblfy: "",
area: this.$store.getters.usersort
},
form: {
size: 10,
size: 20,
current: 1,
area: this.$store.getters.usersort
},
//
ypType: ["中药", "生物制品", "化学药品"],
@ -159,6 +221,7 @@ export default {
"喷雾剂",
"气雾剂",
],
shif: ["是", "否"],
jieliuShow: true,
loadA: null,
@ -167,7 +230,6 @@ export default {
};
},
mounted() {
console.log(this.$route.query.value, 88888);
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
@ -179,6 +241,11 @@ export default {
},
methods: {
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics()
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
@ -232,10 +299,12 @@ export default {
},
//
toDetail(e) {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "2", data: e.yppzwh },
});
setTimeout(() => {
this.$router.push({
path: `/cosmeticsDetail`,
query: { type: "2", data: e.yppzwh },
});
}, 1000);
},
//
searchList() {
@ -253,7 +322,7 @@ export default {
this.chinaCosmetics(1);
},
//
reset() {
reset(type) {
this.form1 = {
//
cpmc: "",
@ -265,18 +334,29 @@ export default {
scqy: "",
//
ypfl: "",
//
name: "",
//
sfcj: "",
//
sfyblfy: "",
area: this.$store.getters.usersort
};
this.form = {
size: 10,
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.cosmetics.vRdgYpwhGxwz(this.form);
console.log(msg1);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
@ -284,6 +364,20 @@ export default {
this.loading = false;
},
},
beforeRouteLeave(to, from, next) {
console.log(111);
if (to.path != '/cosmeticsDetail') {
this.reset(1)
this.MapCarsshow = false
}
next()
},
activated(to, from, next) {
console.log('进入');
this.MapCarsshow = true
}
};
</script>
@ -331,6 +425,9 @@ export default {
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
@ -346,7 +443,6 @@ export default {
.tabsBottom {
// height: 70%;
padding-top: 10px;
.foot-main {
height: 100%;

@ -1,41 +1,49 @@
<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" >
<el-form ref="form1" :model="form1">
<div style="margin-top: 10px">
<el-row>
<!-- <el-row>
<el-col :span="21">
<el-form-item label="查询条件">
<el-input v-model="form1.name" placeholder="请输入产品名称"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-row> -->
</div>
<el-row>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="通用名称">
<el-input v-model="form1.tymc" placeholder="请输入通用名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label="备案号">
<el-input v-model="form1.bah" placeholder="请输入备案号"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="8">
<el-form-item label=" 剂型">
<el-select v-model="form1.jx" placeholder=" 请选择剂型">
<el-option v-for="item in ypType" :key="item" :label="item" :value="item">
<el-option v-for="item in jxType" :key="item" :label="item" :value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-col :span="8">
<div class="logformitem">
<el-form-item label="医疗机构名称">
<el-input v-model="form1.yljgmc" placeholder="请输入医疗机构名称"></el-input>
@ -60,31 +68,52 @@
</div>
<section class="table-box">
<div class="table-item">
<el-table v-loading="loading" :data="tableData" border height="43vh" >
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column label="通用名称" align="center">
<el-table v-loading="loading" :data="tableData" border>
<el-table-column type="index" label="序号" width="50" />
<el-table-column label="通用名称" width="180">
<template slot-scope="scope">
{{ scope.row.tymc }}
</template>
</el-table-column>
<el-table-column label="备案号" align="center">
<el-table-column label="备案号" width="280">
<template slot-scope="scope">
{{ scope.row.bah }}
</template>
</el-table-column>
<el-table-column label="剂型" align="center">
<el-table-column label="统一社会信用代码" width="280">
<template slot-scope="scope">
{{ scope.row.uniscid }}
</template>
</el-table-column>
<el-table-column label="剂型" width="180">
<template slot-scope="scope">
{{ scope.row.jx }}
</template>
</el-table-column>
<el-table-column label="医疗机构名称" align="center">
<el-table-column label="规格" width="180">
<template slot-scope="scope">
{{ scope.row.gg }}
</template>
</el-table-column>
<el-table-column label="备案状态" width="180">
<template slot-scope="scope">
{{ scope.row.status }}
</template>
</el-table-column>
<el-table-column label="医疗机构名称" width="280">
<template slot-scope="scope">
{{ scope.row.yljgmc }}
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="70" align="center">
<el-table-column label="医疗机构制剂许可证编号" width="280">
<template slot-scope="scope">
{{ scope.row.zjxkzbh }}
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="100" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="toDetail(scope.row)"></el-button>
<el-button type="primary" @click="toDetail(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
@ -107,10 +136,14 @@
<script>
import { download, dcyp } from "../../api/archives/updata";
import { Notification, MessageBox, Message, Loading } from "element-ui";
import MapCars from "@/views/components/MapCars.vue";
export default {
components: {},
components: { MapCars },
data() {
return {
MapCarsshow: true,
//===========
loading: false,
tableData: [],
@ -127,11 +160,15 @@ export default {
//
yljgmc: "",
//
name: ""
name: "",
area: this.$store.getters.usersort
},
form: {
size: 10,
size: 20,
current: 1,
area: this.$store.getters.usersort
},
//
ypType: ["中药", "生物制品", "化学药品"],
@ -156,7 +193,7 @@ export default {
};
},
mounted() {
console.log(this.$route.query.value, 88888);
this.form1.name = this.$route.query.value || "";
if (this.form1.name) {
this.searchList();
@ -167,6 +204,11 @@ export default {
created() {
},
methods: {
arealist(area) {
this.form.area = area
this.form1.area = area
this.chinaCosmetics()
},
openDC() {
this.showCK = false;
this.loadA = Loading.service({
@ -243,7 +285,7 @@ export default {
this.chinaCosmetics(1);
},
//
reset() {
reset(type) {
this.form1 = {
//
tymc: "",
@ -255,18 +297,23 @@ export default {
scqy: "",
//
yljgmc: "",
area: this.$store.getters.usersort
};
this.form = {
size: 10,
size: 20,
current: 1,
};
if(type!=1){
this.$refs["mapcars"].showinitCityLayer()
}
this.jieliuFunc();
},
//
async chinaCosmetics() {
this.loading = true;
let msg1 = await this.$api.cosmetics.deasCorpTcmpFiling(this.form);
console.log(msg1);
this.tableData = msg1.data.records;
this.total = msg1.data.total;
this.form.size = msg1.data.size;
@ -274,6 +321,16 @@ export default {
this.loading = false;
},
},
beforeRouteLeave(to, from, next) {
if (to.path != '/cosmeticsDetail') {
this.reset(1)
this.MapCarsshow = false
}
next()
},
activated(to, from, next) {
this.MapCarsshow = true
}
};
</script>
@ -321,6 +378,8 @@ export default {
.tabs {
width: 100%;
background: #fff;
margin-bottom: 10px;
}
}
@ -336,7 +395,6 @@ export default {
.tabsBottom {
// height: 70%;
padding-top: 10px;
.foot-main {
height: 100%;
@ -351,7 +409,6 @@ export default {
}
.table-box {
overflow-y: auto;
padding: 0 20px;
.table-item {}
@ -365,11 +422,7 @@ export default {
::v-deep .el-table {
overflow: auto;
}
::v-deep .el-table {}
::v-deep .logformitem {
}
::v-deep .logformitem {}
</style>

@ -713,7 +713,7 @@ $lighterBlue: #409eff;
}
}
.el-form-item {
margin-bottom: 15px;
margin-bottom: 10px;
}
}
.drawing-item {

@ -42,7 +42,9 @@ module.exports = {
open: true,
proxy: {
"/configApi": {
target: "https://dev-mssm-liaoning.imian.org.cn/ggfw-api",
// target: "https://dev-mssm-liaoning.imian.org.cn/ggfw-api",
target: "http://192.168.0.114:9023/ggfw-api",
changeOrigin: true,
pathRewrite: {
"^/configApi": "",

Loading…
Cancel
Save