李劲龙 2 years ago
commit 6d0b916286

@ -3,12 +3,8 @@ VUE_APP_TITLE = 产品档案管理系统
# 开发环境配置 # 开发环境配置
ENV = 'development' ENV = 'development'
# 开发环境
# 检查员管理系统/开发环境 VUE_APP_BASE_API = '/configApi'
VUE_APP_BASE_API = 'https://vue.ruoyi.vip/prod-api'
# 自己公司
VUE_APP_BASE_API2 = ''
VUE_APP_BASE_API3 = '/configApi/'
VUE_APP_PREFIX ='' VUE_APP_PREFIX =''
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

@ -11,14 +11,28 @@ import ThemePicker from "@/components/ThemePicker";
export default { export default {
name: "App", name: "App",
components: { ThemePicker }, components: { ThemePicker },
metaInfo() { metaInfo() {
return { return {
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title, title:
titleTemplate: title => { this.$store.state.settings.dynamicTitle &&
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE this.$store.state.settings.title,
} titleTemplate: (title) => {
} return title
} ? `${title} - ${process.env.VUE_APP_TITLE}`
: process.env.VUE_APP_TITLE;
},
};
},
mounted(){
setTimeout(async () => {
let Authentication = await this.$api.toLogin.frimLogin();
console.log(Authentication);
localStorage.setItem(
"Authentication",
Authentication.data.result.userToken
);
}, 1000);
}
}; };
</script> </script>
<style scoped> <style scoped>

@ -0,0 +1,11 @@
import request from "@/utils/request2";
export default {
//获取
getList(query) {
return request({
url: "/inspectorAssign",
method: "GET",
params: query,
});
}
}

@ -0,0 +1,21 @@
import request from "@/utils/request2";
export default {
// 登录
frimLogin() {
return request({
// baseURL: process.env.VUE_APP_USER_LOGIN,
url: "/pharmaceuticals/login",
headers: {
"Content-Type": "application/json",
isToken: true,
repeatSubmit: false,
},
method: "POST",
timeout: 60000,
data: {
pdma: "MTExMTEx",
urne: "2112042170015",
},
});
},
}

@ -1,16 +1,4 @@
import training from './myapi/training/index.js' import toLogin from "./archives/toLogin";
import work from './myapi/work/index.js'
import traits from './myapi/traits/index.js'
import screenLeft from './myapi/screenLeft/index.js'
import infoMsg from './myapi/infoMsg/index.js'
import jiangcheng from './myapi/jiangcheng/index.js'
import pinren from './myapi/pinren/index.js'
export default { export default {
training, toLogin
work,
traits,
screenLeft,
infoMsg,
jiangcheng,
pinren
}; };

@ -13,8 +13,8 @@ function kickOut() {
} }
NProgress.configure({ showSpinner: false }); NProgress.configure({ showSpinner: false });
const whiteList = [ const whiteList = [
"/login", // "/login",
"/register", // "/register",
"/index", "/index",
'/drugArchives', '/drugArchives',
'/cosmeticsArchives', '/cosmeticsArchives',
@ -35,45 +35,46 @@ router.beforeEach((to, from, next) => {
next(); next();
} }
} else { } else {
next()
// 没有token // 没有token
if (whiteList.indexOf(to.path) !== -1) { // if (whiteList.indexOf(to.path) !== -1) {
next() // next()
// let token = localStorage.getItem("MSSM-LIAONING__TOKEN"); // let token = localStorage.getItem("MSSM-LIAONING__TOKEN");
// if (token) { // if (token) {
// if (store.state.myselfPermission.routerList.length > 0) { // if (store.state.myselfPermission.routerList.length > 0) {
// let current = store.state.myselfPermission.routerList.filter( // let current = store.state.myselfPermission.routerList.filter(
// (item) => item.path == to.path || from.path == "/" // (item) => item.path == to.path || from.path == "/"
// ); // );
// if (current.length > 0) { // if (current.length > 0) {
// next(); // next();
// } else { // } else {
// next(); // next();
// // Message.error("无权限访问!"); // // Message.error("无权限访问!");
// } // }
// } else { // } else {
// store // store
// .dispatch("GetPermission") // .dispatch("GetPermission")
// .then((res) => { // .then((res) => {
// console.log(res); // console.log(res);
// if (res.length > 0) { // if (res.length > 0) {
// next({ path: res }); // next({ path: res });
// } else { // } else {
// kickOut(); // kickOut();
// } // }
// }) // })
// .catch((error) => { // .catch((error) => {
// kickOut(); // kickOut();
// }); // });
// } // }
// } else { // } else {
// //没有token踢出去 // //没有token踢出去
// Message.error("获取令牌失败!"); // Message.error("获取令牌失败!");
// kickOut(); // kickOut();
// } // }
} else { // } else {
// kickOut(); // // kickOut();
NProgress.done(); // NProgress.done();
} // }
} }
}); });

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

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

@ -398,14 +398,14 @@
import { Loading } from "element-ui"; import { Loading } from "element-ui";
var downloadLoadingInstance; var downloadLoadingInstance;
import userMsgPage from "../userMsgPage/index2.vue"; import userMsgPage from "../userMsgPage/index2.vue";
import { // import {
getList, // getList,
uploadFile, // uploadFile,
dictList, // dictList,
updataRow, // updataRow,
exportFile, // exportFile,
exportExcel, // exportExcel,
} from "@/api/jcy"; // } from "@/api/jcy";
import gridsTitle from "../components/gridsTitle"; import gridsTitle from "../components/gridsTitle";
export default { export default {

@ -432,6 +432,10 @@ export default {
width: 82%; width: 82%;
padding: 0; padding: 0;
} }
::v-deep .el-input {
width: 50% !important;
margin-left: 25px;
}
::v-deep .el-dialog:not(.is-fullscreen) { ::v-deep .el-dialog:not(.is-fullscreen) {
margin-bottom: 1vh !important; margin-bottom: 1vh !important;
} }
@ -489,8 +493,5 @@ export default {
.el-radio { .el-radio {
margin-top: 10px; margin-top: 10px;
} }
.el-input {
width: 50% !important;
margin-left: 25px;
}
</style> </style>

@ -0,0 +1,331 @@
<template>
<div class="container">
<div class="right-content">
<div class="tabs">
<el-tabs
v-model="activeName"
style="color: #edeef0"
>
<el-tab-pane label="查询条件" name="first">
<div class="screen">
<div class="task-name">
<span class="task-name-text">全文检索</span>
<div class="task-input">
<el-input
v-model="queryCondition.fullTextSearch"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="task-name">
<span class="task-name-text">企业名称</span>
<div class="task-input">
<el-input
v-model="queryCondition.firmName"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="task-name">
<span class="task-name-text">批准文号</span>
<div class="task-input">
<el-input
v-model="queryCondition.approvalNumber"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="task-name">
<span class="task-name-text">处方内容</span>
<div class="task-input">
<el-input
v-model="queryCondition.PrescriptionContent"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="task-name">
<span class="task-name-text">功能主治</span>
<div class="task-input">
<el-input
v-model="queryCondition.majorFunction"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="task-name">
<span class="task-name-text">产品名称</span>
<div class="task-input">
<el-input
v-model="queryCondition.taskName"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="time-interval">
<div class="interval-text">
批号有效期
</div>
<div class="interval-select">
<div class="star-time">
<el-date-picker
v-model="queryCondition.startTime"
type="datetime"
align="right"
:clearable="false"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择开始时间"
>
</el-date-picker>
<!-- <i class="el-icon-date data_icon"></i> -->
</div>
<!-- <i class="el-icon-sort-up"></i> -->
<div class="symbol">~</div>
<div class="end-time">
<el-date-picker
v-model="queryCondition.endTime"
type="datetime"
align="right"
:clearable="false"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择结束时间"
>
</el-date-picker>
<i class="el-icon-date data_icon"></i>
</div>
</div>
</div>
<div class="task-name">
<span class="task-name-text">产品标签</span>
<div class="task-checkbox">
<el-checkbox-group v-model="queryCondition.checkList">
<el-checkbox label="全部"></el-checkbox>
<el-checkbox label="百年产品"></el-checkbox>
<el-checkbox label="疗效显著"></el-checkbox>
<el-checkbox label="无刺激"></el-checkbox>
</el-checkbox-group>
</div>
</div>
<div class="task-name">
<span class="task-name-text">产品筛选</span>
<div class="task-checkbox">
<el-checkbox-group v-model="queryCondition.checkListTwo">
<el-checkbox label="全部"></el-checkbox>
<el-checkbox :label="'药品' + drugnum"></el-checkbox>
<el-checkbox label="医疗器械"></el-checkbox>
<el-checkbox label="化妆品"></el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
drugnum:"(20)",
activeName: "first",
queryCondition:{
fullTextSearch:"", //
firmName:"", //
approvalNumber:"", //
taskName:"", //
PrescriptionContent:"", //
majorFunction:"", //
startTime:"", //
endTime:"", //
checkList:[],
checkListTwo:[],
},
};
},
mounted() {},
methods: {},
};
</script>
<style lang="scss" scoped>
.container {
height: 100%;
box-sizing: border-box;
display: flex;
align-items: center;
background: #f2f2f2;
padding: 10px;
& > div {
flex: 1;
height: 100%;
}
& > div:nth-child(2) {
flex: 2;
margin: 0 10px;
}
.middle {
height: 100%;
background: #ffff;
border-radius: 8px;
overflow: hidden;
}
.left,
.right {
display: flex;
flex-direction: column;
align-items: center;
& > div {
width: 100%;
border-radius: 8px;
flex: 1;
background: #ffffff;
}
}
.middle-box {
margin: 10px;
}
.main {
height: calc(100% - 40px);
}
.right-content {
background-color: #fff;
::v-deep .el-tabs__header{
margin: 0;
.el-tabs__nav-scroll {
padding-left: 15px;
padding-top: 3px;
}
.el-tabs__item {
font-size: 18px;
font-family: Source Han Sans SC-Bold, Source Han Sans SC;
font-weight: bold;
color: #323233;
}
.el-tabs__active-bar {
background-color: #1349C5;
height: 2px;
border-radius: 0px 0px 0px 0px;
}
}
.tabs {
background: rgba(255, 255, 255, 0.9);
box-shadow: 0px 0px 12px 0px rgba(194, 212, 226, 0.64);
border-radius: vw(10);
min-height: 90vh;
// padding-top: 3px;
// padding-left: 15px;
}
.screen {
padding: 15px 0 26px 28px;
display: flex;
flex-wrap: wrap;
align-items: center;
.task-name {
display: flex;
align-items: center;
margin-right: 30px;
.task-name-text {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #6a6c6f;
line-height: 50px;
// margin-right: vw(10);
}
.task-input {
width: 251px;
height: 32px;
::v-deep .el-input {
width: 251px;
height: 32px;
}
::v-deep .el-input__inner {
width: 100%;
height: 100%;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
// color: #B1B6BF;
line-height: 50px;
padding-left: 15px;
}
}
}
.time-interval {
display: flex;
align-items: center;
margin-right: 20px;
.interval-text {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #6a6c6f;
// line-height: 50px;
// margin-right: vw(10);
}
.interval-select {
display: flex;
align-items: center;
border: 1px solid #dbe0e8;
border-radius: 4px;
height: 32px;
.star-time,
.end-time {
position: relative;
.data_icon {
position: absolute;
top: 50%;
right: 17px;
z-index: 9;
color: #c0c4cc;
font-size: 14px;
transform: translateY(-50%);
}
::v-deep .el-input__prefix {
display: none;
}
::v-deep .el-input {
width: 243px;
height: 30px;
}
::v-deep .el-input__inner {
width: 100%;
height: 100%;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
// color: #B1B6BF;
line-height: 30px;
padding-left: 15px;
border: none;
cursor: pointer;
}
}
.symbol {
background: rgba(219, 224, 232, 0.5);
width: 40px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #292f38;
line-height: 28px;
}
}
}
}
}
}
</style>

@ -1,341 +1,370 @@
<template> <template>
<div class="container"> <div class="container">
<div class="tabs"> <div class="right-content">
<div class="headerText"> <div class="tabs">
<div class="searchP">查询条件</div> <el-tabs
</div> v-model="activeName"
<div class="screen"> style="color: #edeef0"
<div class="task-name"> >
<span class="task-name-text">产品名称</span> <el-tab-pane label="查询条件" name="first">
<div class="task-input"> <div class="screen">
<el-input <div class="task-name">
v-model="queryCondition.firmName" <span class="task-name-text">产品名称</span>
placeholder="请输入内容" <div class="task-input">
></el-input> <el-input
</div> v-model="queryCondition.fullTextSearch"
</div> placeholder="请输入内容"
<div class="task-name"> ></el-input>
<span class="task-name-text">备案编码</span> </div>
<div class="task-input"> </div>
<el-input <div class="task-name">
v-model="queryCondition.PrescriptionContent" <span class="task-name-text">备案编码</span>
placeholder="请输入内容" <div class="task-input">
></el-input> <el-input
</div> v-model="queryCondition.firmName"
</div> placeholder="请输入内容"
<div class="task-name"> ></el-input>
<span class="task-name-text">生产企业</span> </div>
<div class="task-input"> </div>
<el-input <div class="task-name">
v-model="queryCondition.majorFunction" <span class="task-name-text">生产企业</span>
placeholder="请输入内容" <div class="task-input">
></el-input> <el-input
</div> v-model="queryCondition.approvalNumber"
</div> placeholder="请输入内容"
</div> ></el-input>
<div class="footBox"> </div>
<el-button icon="el-icon-refresh-left">重置</el-button> </div>
<el-button type="primary" icon="el-icon-search">查询</el-button>
</div>
</div>
<div class="tabsBottom">
<div class="foot-main">
<div class="headerText">
<div class="searchP">产品列表</div>
</div>
<div class="exportBtn">
<el-button type="primary" icon="el-icon-edit-outline">导出</el-button>
</div>
<section class="table-box">
<div class="table-item">
<el-table
v-loading="loading"
:data="tableList"
border
:stripe="false"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" />
<el-table-column label="产品名称" prop="name" />
<el-table-column label="产品类型" prop="type"> </el-table-column>
<el-table-column label="批准文号" prop="num" /> <div class="btn">
<el-table-column label="企业名称" prop="enterpriseName"> <el-button size="mini" icon="el-icon-refresh-left">重置</el-button>
</el-table-column> <el-button size="mini" type="primary" icon="el-icon-search">查询</el-button>
<el-table-column </div>
label="操作" </div>
class-name="small-padding fixed-width" </el-tab-pane>
width="150" </el-tabs>
> <div class="tabsTwo" :style="tabsTwoStyle">
<template> <el-tabs
<el-button v-model="activeName"
size="mini" style="color: #edeef0"
plain >
type="primary" <el-tab-pane label="化妆品列表" name="first">
@click="toDetail()" <div class="daochu">
>详情</el-button <div class="btn">
导出
</div>
</div>
<div class="mytable">
<el-table
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
border
style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
header-align="center"
class-name="column-text-one"
width="44">
</el-table-column>
<el-table-column
label="序号"
width="50">
<template slot-scope="scope">{{ scope.row.date }}</template>
</el-table-column>
<el-table-column
prop="name"
label="产品名称"
> >
<el-button size="mini" plain type="warning">编辑</el-button> </el-table-column>
</template> <el-table-column
</el-table-column> prop="firmName"
</el-table> label="备案编码"
</div> show-overflow-tooltip>
</section> </el-table-column>
<div class="pagination"> <el-table-column
<span class="custom">共100条显示1条</span> prop="firmName"
<el-pagination label="生产企业"
background show-overflow-tooltip>
@current-change="currentChange" </el-table-column>
@size-change="sizeChange"
:page-sizes="[10, 5]" <el-table-column
layout=" prev, pager, next, sizes, jumper" prop="address"
:total="querydata.total" label="操作"
> width="180"
</el-pagination> >
<template slot-scope="scope">
<div class="button">
<el-button
size="mini"
type="primary"
class="xiangqing"
plain
@click="handleEdit(scope.$index, scope.row)"
>详情</el-button
>
<el-button
size="mini"
type="primary"
class="bianji"
plain
@click="handleView(scope.$index, scope.row)"
>编辑</el-button
>
</div>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<!-- <span class="custom"
>{{ total }}显示{{
total == 0
? "0"
: queryCondition.current == 1
? "1"
: queryCondition.size * (queryCondition.current - 1) + 1
}}-{{ numberMap() }}</span
> -->
<span class="custom">
共100条显示1-10
</span>
<el-pagination
background
: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>
</div>
</el-tab-pane>
</el-tabs>
</div> </div>
</div> </div>
</div> </div>
<!-- 药品 国抽详情 -->
<drugDetail ref="drugDetail"></drugDetail>
<!-- 化妆品-->
<samplingDetail ref="sampling"></samplingDetail>
<!-- 药品 省抽详情 -->
<drugProvince ref="drugProvince"></drugProvince>
<!-- 医疗器械详情 -->
<medical ref="medical"></medical>
</div> </div>
</template> </template>
<script> <script>
import drugDetail from "../../cosmeticsFile/drugDetail";
import samplingDetail from "../../cosmeticsFile/samplingDetail";
import drugProvince from '../../cosmeticsFile/drugProvince';
import medical from '../../cosmeticsFile/medical'
export default { export default {
components: {}, components: {
},
data() { data() {
return { return {
drugnum: "(20)", drugnum:"(20)",
activeName: "first", activeName: "first",
queryCondition: { queryCondition:{
fullTextSearch: "", // fullTextSearch:"", //
firmName: "", // firmName:"", //
approvalNumber: "", // approvalNumber:"", //
taskName: "", // taskName:"", //
PrescriptionContent: "", // PrescriptionContent:"", //
majorFunction: "", // majorFunction:"", //
startTime: "", // startTime:"", //
endTime: "", // endTime:"", //
checkList: [], checkList:[],
checkListTwo: [], checkListTwo:[],
}, },
loading: false, tableData: [{
tableList: [ date: '1',
{ name: '辽-xxxx',
name: "辽宁护肤霜", type:"药品",
type: "化妆品", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '2',
{ name: '辽-aaaa',
name: "辽宁护肤霜", type:"医疗器械",
type: "药品", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '3',
{ name: '辽-zzzz',
name: "辽宁护肤霜", type:"化妆品",
type: "医疗器械", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '4',
{ name: '辽-qqqq',
name: "辽宁护肤霜", type:"药品",
type: "化妆品", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '5',
{ name: '辽-xxxx',
name: "辽宁护肤霜", type:"医疗器械",
type: "医疗器械", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '6',
{ name: '辽-aaaa',
name: "辽宁护肤霜", type:"化妆品",
type: "化妆品", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '7',
{ name: '辽-zzzz',
name: "辽宁护肤霜", type:"药品",
type: "医疗器械", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '8',
{ name: '辽-qqqq',
name: "辽宁护肤霜", type:"医疗器械",
type: "化妆品", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '9',
{ name: '辽-xxxx',
name: "辽宁护肤霜", type:"化妆品",
type: "医疗器械", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }, {
}, date: '10',
{ name: '辽-aaaa',
name: "辽宁护肤霜", type:"药品",
type: "化妆品", approvalNumber:"12421432143214321",
num: "1231231231231", firmName:"XXX有限公司",
enterpriseName: "xxxx有限公司", }],
}, tabsTwoStyle:{
], height:''
querydata: {
total: 11,
}, },
multipleSelection:[],
total:100,
currentPage:1,
pageSize:10,
}; };
}, },
components: { mounted() {
samplingDetail, document.getElementsByClassName(
drugDetail, "el-pagination__jump"
drugProvince, )[0].childNodes[0].nodeValue = "跳至";
medical this.$nextTick(()=>{
let dom = document.getElementsByClassName('tabsTwo');
let height = dom[0].getBoundingClientRect();
// let windowWidth = window.innerWidth;
let windowHeight = window.innerHeight;
let relativeHeight = windowHeight - height.top
this.tabsTwoStyle.height = relativeHeight + 'px'
})
}, },
mounted() {},
methods: { methods: {
currentChange() {}, handleSelectionChange(val){
sizeChange() {}, this.multipleSelection = val;
toDetail() { },
this.$router.push({ currentChange(val){
name: "化妆品详情",
path: "/productsMsg/cosmeticsDetail", },
}); sizeChange(val){
// this.$refs.sampling.open()
// this.$refs.drugDetail.open(); },
// this.$refs.drugProvince.open(); //
// this.$refs.medical.open(); handleEdit(index,row){
console.log(index)
this.$router.push({name:'productInfo'})
},
//
handleView(index,row){
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-table--medium .el-table__cell {
padding: 4px 0;
}
.container { .container {
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
display: flex;
align-items: center;
background: #f2f2f2; background: #f2f2f2;
// padding: 10px;
.headerText { & > div {
width: 100%; flex: 1;
padding: 10px 20px; height: 100%;
border-bottom: 1px solid #f2f3f5;
color: #323233;
font-size: 20px;
font-weight: bold;
.searchP {
position: relative;
cursor: pointer;
&::before {
content: "";
width: 78px;
height: 3px;
background: #1349c5;
position: absolute;
bottom: -10px;
}
}
} }
.tabs { & > div:nth-child(2) {
height: 25%; flex: 2;
background: rgba(255, 255, 255, 0.9); margin: 0 10px;
box-shadow: 0px 0px 12px 0px rgba(194, 212, 226, 0.64); }
border-radius: vw(10); .middle {
padding-bottom: 20px; height: 100%;
// min-height: 90vh; background: #ffff;
// padding-top: 3px; border-radius: 8px;
// padding-left: 15px; overflow: hidden;
} }
.screen { .left,
padding: 15px 0 26px 28px; .right {
display: flex; display: flex;
flex-wrap: wrap; flex-direction: column;
align-items: center; align-items: center;
.task-name { & > div {
display: flex; width: 100%;
align-items: center; border-radius: 8px;
margin-right: 30px; flex: 1;
.task-name-text { background: #ffffff;
font-size: 16px; }
font-family: Source Han Sans CN; }
font-weight: 400; .right-content {
color: #6a6c6f; background-color: #fff;
line-height: 50px; ::v-deep .el-tabs__header{
// margin-right: vw(10); margin: 0;
.el-tabs__nav-scroll {
padding-left: 15px;
padding-top: 3px;
} }
.task-input { .el-tabs__item {
width: 251px; font-size: 18px;
height: 32px; font-family: Source Han Sans SC-Bold, Source Han Sans SC;
::v-deep .el-input { font-weight: bold;
width: 251px; color: #323233;
height: 32px; }
} .el-tabs__active-bar {
::v-deep .el-input__inner { background-color: #1349C5;
width: 100%; height: 2px;
height: 100%; border-radius: 0px 0px 0px 0px;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
// color: #B1B6BF;
line-height: 50px;
padding-left: 15px;
}
} }
} }
.checkbox-group-name { .tabs {
width: 695px; background: #F2F2F2 ;
box-shadow: 0px 0px 12px 0px rgba(194, 212, 226, 0.64);
border-radius: vw(10);
min-height: 88vh;
// padding-top: 3px;
// padding-left: 15px;
::v-deep .el-tabs {
background-color: #fff;
}
} }
.time-interval { .screen {
padding: 15px 0 26px 28px;
display: flex; display: flex;
flex-wrap: wrap;
align-items: center; align-items: center;
margin-right: 20px; .task-name {
.interval-text {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #6a6c6f;
// line-height: 50px;
// margin-right: vw(10);
}
.interval-select {
display: flex; display: flex;
align-items: center; align-items: center;
border: 1px solid #dbe0e8; margin-right: 30px;
border-radius: 4px; .task-name-text {
height: 32px; font-size: 16px;
.star-time, font-family: Source Han Sans CN;
.end-time { font-weight: 400;
position: relative; color: #6a6c6f;
.data_icon { line-height: 50px;
position: absolute; // margin-right: vw(10);
top: 50%; }
right: 17px; .task-input {
z-index: 9; width: 251px;
color: #c0c4cc; height: 32px;
font-size: 14px;
transform: translateY(-50%);
}
::v-deep .el-input__prefix {
display: none;
}
::v-deep .el-input { ::v-deep .el-input {
width: 243px; width: 251px;
height: 30px; height: 32px;
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
width: 100%; width: 100%;
@ -344,59 +373,182 @@ export default {
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
// color: #B1B6BF; // color: #B1B6BF;
line-height: 30px; line-height: 50px;
padding-left: 15px; padding-left: 15px;
border: none;
cursor: pointer;
} }
} }
.symbol { }
background: rgba(219, 224, 232, 0.5); .checkbox-group-name {
width: 40px; width: 695px;
height: 30px; }
.btn{
width: 100%;
// padding-left: 600px;
text-align: center;
margin-top:15px;
}
.time-interval {
display: flex;
align-items: center;
margin-right: 20px;
.interval-text {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #6a6c6f;
// line-height: 50px;
// margin-right: vw(10);
}
.interval-select {
display: flex; display: flex;
align-items: center; align-items: center;
border: 1px solid #dbe0e8;
border-radius: 4px;
height: 32px;
.star-time,
.end-time {
position: relative;
.data_icon {
position: absolute;
top: 50%;
right: 17px;
z-index: 9;
color: #c0c4cc;
font-size: 14px;
transform: translateY(-50%);
}
::v-deep .el-input__prefix {
display: none;
}
::v-deep .el-input {
width: 243px;
height: 30px;
}
::v-deep .el-input__inner {
width: 100%;
height: 100%;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
// color: #B1B6BF;
line-height: 30px;
padding-left: 15px;
border: none;
cursor: pointer;
}
}
.symbol {
background: rgba(219, 224, 232, 0.5);
width: 40px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #292f38;
line-height: 28px;
}
}
}
}
.tabsTwo {
margin: 10px 0;
overflow-y: scroll;
// padding: 10px 0;
padding-bottom: 20px;
background-color: #fff;
.daochu {
padding: 10px;
.btn {
display: flex;
justify-content: center; justify-content: center;
font-size: 16px; width: 64px;
font-family: Source Han Sans CN; height: 32px;
background: #1E80EB;
border-radius: 4px 4px 4px 4px;
font-size: 14px;
font-family: MicrosoftYaHei-, MicrosoftYaHei;
font-weight: normal;
color: #FFFFFF;
line-height: 31px;
}
}
.mytable {
width: 99%;
margin: 0 auto;
::v-deep .column-text-one {
text-align: center;
}
::v-deep .el-table td {
height: 40px;
padding: 0;
}
::v-deep .el-table th {
height: 40px;
padding: 0;
font-size: 14px;
font-family: Source Han Sans SC-Medium, Source Han Sans SC;
font-weight: bold;
color: #292f38;
line-height: 36px;
}
.button {
display: flex;
align-items: center;
.xiangqing {
height: 23px;
padding: 3px;
border-radius: 4px;
line-height: 20px;
display: flex;
justify-content: center;
align-items: center;
margin-right: 5px;
background: #EBF5FF;
border: 1px solid #A1CBF8;
::v-deep span {
display: inline-block;
color: #0E7CF4;
}
}
.bianji {
height: 23px;
padding: 3px;
border-radius: 4px;
line-height: 20px;
display: flex;
justify-content: center;
align-items: center;
background: #FFEFE3;
border: 1px solid #FFC89F;
::v-deep span {
display: inline-block;
color: #F88129;
}
}
}
}
.pagination {
margin-top: 17px;
display: flex;
align-items: center;
justify-content: space-between;
// padding-bottom: vh(20);
::v-deep .el-pagination__jump {
margin: 0;
}
.custom {
font-size: 14px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #292f38; color: #292f38;
line-height: 28px; line-height: 18px;
} }
} }
} }
.tabsTwo::-webkit-scrollbar {display:none}
} }
} }
//===================
::v-deep .el-button--medium {
padding: 8px;
}
.footBox {
width: 100%;
text-align: center;
}
.tabsBottom {
height: 75%;
padding-top: 10px;
.foot-main {
height: 100%;
width: 100%;
background: white;
}
}
.exportBtn {
padding: 10px 20px;
}
.table-box {
padding: 0 20px;
.table-item {
}
}
.pagination {
display: flex;
justify-content: space-between;
padding: 0 20px;
padding-top: 20px;
}
</style> </style>

@ -1,5 +1,549 @@
<template> <template>
<div> <div class="container">
adsfadsfasdfasdfasdf <div class="right-content">
<div class="tabs">
<el-tabs v-model="activeName" style="color: #edeef0">
<el-tab-pane label="查询条件" name="first">
<div class="screen">
<div class="task-name">
<span class="task-name-text">产品名称</span>
<div class="task-input">
<el-input
v-model="queryCondition.fullTextSearch"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="task-name">
<span class="task-name-text">注册证号/备案号</span>
<div class="task-input">
<el-input
v-model="queryCondition.firmName"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="task-name">
<span class="task-name-text">生产企业</span>
<div class="task-input">
<el-input
v-model="queryCondition.approvalNumber"
placeholder="请输入内容"
></el-input>
</div>
</div>
<div class="btn">
<el-button size="mini" icon="el-icon-refresh-left"
>重置</el-button
>
<el-button size="mini" type="primary" icon="el-icon-search"
>查询</el-button
>
</div>
</div>
</el-tab-pane>
</el-tabs>
<div class="tabsTwo" :style="tabsTwoStyle">
<el-tabs v-model="activeName" style="color: #edeef0">
<el-tab-pane label="医疗器械列表" name="first">
<div class="daochu">
<div class="btn">导出</div>
</div>
<div class="mytable">
<el-table
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
border
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
header-align="center"
class-name="column-text-one"
width="44"
>
</el-table-column>
<el-table-column label="序号" width="50">
<template slot-scope="scope">{{ scope.row.date }}</template>
</el-table-column>
<el-table-column prop="name" label="产品名称">
</el-table-column>
<el-table-column
prop="firmName"
label="注册证号/备案号"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="firmName"
label="生产企业"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="address" label="操作" width="180">
<template slot-scope="scope">
<div class="button">
<el-button
size="mini"
type="primary"
class="xiangqing"
plain
@click="handleEdit(scope.$index, scope.row)"
>详情</el-button
>
<el-button
size="mini"
type="primary"
class="bianji"
plain
@click="handleView(scope.$index, scope.row)"
>编辑</el-button
>
</div>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<!-- <span class="custom"
>{{ total }}显示{{
total == 0
? "0"
: queryCondition.current == 1
? "1"
: queryCondition.size * (queryCondition.current - 1) + 1
}}-{{ numberMap() }}</span
> -->
<span class="custom"> 共100条显示1-10 </span>
<el-pagination
background
: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>
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div> </div>
</div>
</template> </template>
<script>
export default {
components: {},
data() {
return {
drugnum: "(20)",
activeName: "first",
queryCondition: {
fullTextSearch: "", //
firmName: "", //
approvalNumber: "", //
taskName: "", //
PrescriptionContent: "", //
majorFunction: "", //
startTime: "", //
endTime: "", //
checkList: [],
checkListTwo: [],
},
tableData: [
{
date: "1",
name: "辽-xxxx",
type: "药品",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "2",
name: "辽-aaaa",
type: "医疗器械",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "3",
name: "辽-zzzz",
type: "化妆品",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "4",
name: "辽-qqqq",
type: "药品",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "5",
name: "辽-xxxx",
type: "医疗器械",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "6",
name: "辽-aaaa",
type: "化妆品",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "7",
name: "辽-zzzz",
type: "药品",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "8",
name: "辽-qqqq",
type: "医疗器械",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "9",
name: "辽-xxxx",
type: "化妆品",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
{
date: "10",
name: "辽-aaaa",
type: "药品",
approvalNumber: "12421432143214321",
firmName: "XXX有限公司",
},
],
tabsTwoStyle: {
height: "",
},
multipleSelection: [],
total: 100,
currentPage: 1,
pageSize: 10,
};
},
mounted() {
document.getElementsByClassName(
"el-pagination__jump"
)[0].childNodes[0].nodeValue = "跳至";
this.$nextTick(() => {
let dom = document.getElementsByClassName("tabsTwo");
let height = dom[0].getBoundingClientRect();
// let windowWidth = window.innerWidth;
let windowHeight = window.innerHeight;
let relativeHeight = windowHeight - height.top;
this.tabsTwoStyle.height = relativeHeight + "px";
});
},
methods: {
handleSelectionChange(val) {
this.multipleSelection = val;
},
currentChange(val) {},
sizeChange(val) {},
//
handleEdit(index, row) {
console.log(index);
this.$router.push({ name: "productInfo" });
},
//
handleView(index, row) {},
},
};
</script>
<style lang="scss" scoped>
.container {
height: 100%;
box-sizing: border-box;
display: flex;
align-items: center;
background: #f2f2f2;
// padding: 10px;
& > div {
flex: 1;
height: 100%;
}
& > div:nth-child(2) {
flex: 2;
margin: 0 10px;
}
.middle {
height: 100%;
background: #ffff;
border-radius: 8px;
overflow: hidden;
}
.left,
.right {
display: flex;
flex-direction: column;
align-items: center;
& > div {
width: 100%;
border-radius: 8px;
flex: 1;
background: #ffffff;
}
}
.right-content {
background-color: #fff;
::v-deep .el-tabs__header {
margin: 0;
.el-tabs__nav-scroll {
padding-left: 15px;
padding-top: 3px;
}
.el-tabs__item {
font-size: 18px;
font-family: Source Han Sans SC-Bold, Source Han Sans SC;
font-weight: bold;
color: #323233;
}
.el-tabs__active-bar {
background-color: #1349c5;
height: 2px;
border-radius: 0px 0px 0px 0px;
}
}
.tabs {
background: #f2f2f2;
box-shadow: 0px 0px 12px 0px rgba(194, 212, 226, 0.64);
border-radius: vw(10);
min-height: 88vh;
// padding-top: 3px;
// padding-left: 15px;
::v-deep .el-tabs {
background-color: #fff;
}
}
.screen {
padding: 15px 0 26px 28px;
display: flex;
flex-wrap: wrap;
align-items: center;
.task-name {
display: flex;
align-items: center;
margin-right: 30px;
.task-name-text {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #6a6c6f;
line-height: 50px;
// margin-right: vw(10);
}
.task-input {
width: 251px;
height: 32px;
::v-deep .el-input {
width: 251px;
height: 32px;
}
::v-deep .el-input__inner {
width: 100%;
height: 100%;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
// color: #B1B6BF;
line-height: 50px;
padding-left: 15px;
}
}
}
.checkbox-group-name {
width: 695px;
}
.btn {
width: 100%;
// padding-left: 600px;
text-align: center;
margin-top: 15px;
}
.time-interval {
display: flex;
align-items: center;
margin-right: 20px;
.interval-text {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #6a6c6f;
// line-height: 50px;
// margin-right: vw(10);
}
.interval-select {
display: flex;
align-items: center;
border: 1px solid #dbe0e8;
border-radius: 4px;
height: 32px;
.star-time,
.end-time {
position: relative;
.data_icon {
position: absolute;
top: 50%;
right: 17px;
z-index: 9;
color: #c0c4cc;
font-size: 14px;
transform: translateY(-50%);
}
::v-deep .el-input__prefix {
display: none;
}
::v-deep .el-input {
width: 243px;
height: 30px;
}
::v-deep .el-input__inner {
width: 100%;
height: 100%;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
// color: #B1B6BF;
line-height: 30px;
padding-left: 15px;
border: none;
cursor: pointer;
}
}
.symbol {
background: rgba(219, 224, 232, 0.5);
width: 40px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #292f38;
line-height: 28px;
}
}
}
}
.tabsTwo {
margin: 10px 0;
overflow-y: scroll;
// padding: 10px 0;
padding-bottom: 20px;
background-color: #fff;
.daochu {
padding: 10px;
.btn {
display: flex;
justify-content: center;
width: 64px;
height: 32px;
background: #1e80eb;
border-radius: 4px 4px 4px 4px;
font-size: 14px;
font-family: MicrosoftYaHei-, MicrosoftYaHei;
font-weight: normal;
color: #ffffff;
line-height: 31px;
}
}
.mytable {
width: 99%;
margin: 0 auto;
::v-deep .column-text-one {
text-align: center;
}
::v-deep .el-table td {
height: 40px;
padding: 0;
}
::v-deep .el-table th {
height: 40px;
padding: 0;
font-size: 14px;
font-family: Source Han Sans SC-Medium, Source Han Sans SC;
font-weight: bold;
color: #292f38;
line-height: 36px;
}
.button {
display: flex;
align-items: center;
.xiangqing {
height: 23px;
padding: 3px;
border-radius: 4px;
line-height: 20px;
display: flex;
justify-content: center;
align-items: center;
margin-right: 5px;
background: #ebf5ff;
border: 1px solid #a1cbf8;
::v-deep span {
display: inline-block;
color: #0e7cf4;
}
}
.bianji {
height: 23px;
padding: 3px;
border-radius: 4px;
line-height: 20px;
display: flex;
justify-content: center;
align-items: center;
background: #ffefe3;
border: 1px solid #ffc89f;
::v-deep span {
display: inline-block;
color: #f88129;
}
}
}
}
.pagination {
margin-top: 17px;
display: flex;
align-items: center;
justify-content: space-between;
// padding-bottom: vh(20);
::v-deep .el-pagination__jump {
margin: 0;
}
.custom {
font-size: 14px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #292f38;
line-height: 18px;
}
}
}
.tabsTwo::-webkit-scrollbar {
display: none;
}
}
}
</style>

@ -42,21 +42,12 @@ module.exports = {
open: true, open: true,
proxy: { proxy: {
"/configApi": { "/configApi": {
target: "https://dev-mssm-liaoning.imian.org.cn/api/admin", target: "https://dev-mssm-liaoning.imian.org.cn/ggfw-api",
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
"^/configApi": "", "^/configApi": "",
}, },
}, },
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API2]: {
target: `http://192.168.0.105:9026/inspector`,
// target: `https://dev-mssm-liaoning.imian.org.cn/api/inspector/inspector`,
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API2]: "",
},
},
}, },
disableHostCheck: true, disableHostCheck: true,
}, },
@ -142,10 +133,10 @@ module.exports = {
}, },
}); });
config.optimization.runtimeChunk("single"), config.optimization.runtimeChunk("single"),
{ {
from: path.resolve(__dirname, "./public/robots.txt"), //防爬虫文件 from: path.resolve(__dirname, "./public/robots.txt"), //防爬虫文件
to: "./", //到根目录下 to: "./", //到根目录下
}; };
}); });
}, },
}; };

Loading…
Cancel
Save