权限相关

master
hongtianzai 3 years ago
parent cc467fc536
commit bfbb979238

@ -0,0 +1,38 @@
import request from "@/utils/request";
export function GetList(){
return request({
url: "/sys/menu/list",
method: "post"
});
}
export function Insert(param){
return request({
url: "/sys/menu/insert",
method: "post",
data:param
});
}
export function Update(param){
return request({
url: "/sys/menu/update",
method: "post",
data:param
});
}
export function Detail(id){
return request({
url: "/sys/menu/detail",
method: "post",
params:{id}
});
}
export function Delete(id){
return request({
url: "/sys/menu/delete",
method: "post",
params:{id}
});
}

@ -0,0 +1,39 @@
import request from "@/utils/request";
export function GetList(param){
return request({
url: "/sys/role/list",
method: "post",
data:param
});
}
export function Insert(param){
return request({
url: "/sys/role/insert",
method: "post",
data:param
});
}
export function Update(param){
return request({
url: "/sys/role/update",
method: "post",
data:param
});
}
export function Detail(id){
return request({
url: "/sys/role/detail",
method: "post",
params:{id}
});
}
export function Delete(id){
return request({
url: "/sys/role/delete",
method: "post",
params:{id}
});
}

@ -0,0 +1,31 @@
import request from "@/utils/request";
import { Loading } from 'element-ui';
export function GetFile(path,fileName){
const loading = Loading.service({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
request({
method:"get",
url:path,
responseType: "blob"
}).then(res=>{
download(res,fileName);
loading.close();
}).catch((error)=>{console.log(error)})
}
function download(data,fileName){
if(!data) return;
console.log(fileName);
let url=window.URL.createObjectURL(new Blob([data]));
let link = document.createElement("a");
link.style.display = "none";
link.href=url;
link.setAttribute('download',fileName);
document.body.appendChild(link);
link.click();
link.remove();
}

@ -1,4 +1,5 @@
import request from "@/utils/request";
import {GetFile} from "./common";
export function GetList(param){
return request({
@ -7,3 +8,8 @@ export function GetList(param){
data: param
});
}
export function GetDistributorFile(){
let path="/udplat/distributor/export";
let fileName="配送企业.json";
GetFile(path,fileName);
}

@ -1,4 +1,5 @@
import request from "@/utils/request";
import {GetFile} from "./common";
export function GetList(param){
return request({
@ -7,3 +8,21 @@ export function GetList(param){
data: param
});
}
export function GetGoodsFile(param){
/* let path="/udplat/goods/export";
let fileName="产品目录.json";
GetFile(path,fileName);*/
return request({
url: "/udplat/goods/export",
method: "post",
data: param
});
}
export function GetDetail(id){
return request({
url:"/udplat/goods/detail",
method:"post",
params:{id}
})
}

@ -31,3 +31,11 @@ export function Save(param) {
data: param
})
}
export function SearchByName(name) {
return request({
url: "/udplat/goodsMatch/searchByName?",
method: "post",
params: {name:name}
});
}

@ -1,4 +1,5 @@
import request from "@/utils/request";
import {GetFile} from "./common";
export function GetList(param){
return request({
@ -7,3 +8,9 @@ export function GetList(param){
data: param
});
}
export function GetHospitalFile(){
let path="/udplat/hospital/export";
let fileName="医疗机构.json";
GetFile(path,fileName);
}

@ -1,5 +1,5 @@
import request from "@/utils/request";
import {GetFile} from "./common";
export function GetList(param){
return request({
url: "/udplat/manufacture/list",
@ -7,3 +7,9 @@ export function GetList(param){
data: param
});
}
export function GetManufactureFile(){
let path="/udplat/manufacture/export";
let fileName="生产企业.json";
GetFile(path,fileName);
}

@ -8,7 +8,7 @@ if (process.env.NODE_ENV === "development") {
import {ROUTER_MODE} from "../config/app";
import Home from "../views/home/index.vue";
import nested from "../views/home/nested";
// 权限管理相关
import adminRouter from "../views/userManage/admin/router.vue";
import authAdmin from "../views/userManage/admin/authAdmin.vue";
@ -80,6 +80,11 @@ import udplatManufacture from '../views/udplat/udplatManufacture';
import udplatGoods from '../views/udplat/udplatGoods';
import udplatLog from '../views/udplat/udplatLog';
import udplatGoodsMatch from '../views/udplat/udplatGoodsMatch';
//权限管理
import sysMenu from "../views/sys/sysMenu";
import sysRole from "../views/sys/sysRole";
const err401 = r =>
require.ensure([], () => r(require("../views/error/err401.vue")), "home");
@ -169,7 +174,6 @@ export const constantRouterMap = [
},
];
export default new VueRouter({
@ -248,7 +252,6 @@ export const asyncRouterMap = [
},
{
path: "/product",
redirect: "/product/productinfo",
@ -350,7 +353,6 @@ export const asyncRouterMap = [
},
{
path: "company",
name: "本企业信息",
@ -594,7 +596,6 @@ export const asyncRouterMap = [
},
{
path: "udiTrace",
name: "UDI流向查询",
@ -635,7 +636,7 @@ export const asyncRouterMap = [
]
},
{
path: "/UDIDownload",
path: "/DownloadInfo",
component: Home,
redirect: "/UDIDownload/jobLog",
icon: "tongyong",
@ -645,6 +646,17 @@ export const asyncRouterMap = [
meta: {
authRule: ["UDIDownload"]
},
children: [
{
path: "/UDIDownload",
component: nested,
//redirect: "/UDIDownload/jobLog",
name: "国家同步库",
noDropdown: false,
hidden: false,
meta: {
authRule: ["UDIDownload"]
},
children: [
{
name: "UDI日志",
@ -672,13 +684,27 @@ export const asyncRouterMap = [
authRule: ["UDIDownload/udiSingle"]
},
},
]
},
{
path: "/UdplatDownload",
component: nested,
redirect: "/UDIDownload/udplatDistributor",
name: "阳光平台",
noDropdown: false,
hidden: false,
meta: {
authRule: ["UdplatDownload"]
},
children: [
{
name: "配送企业",
path: "udplatDistributor",
component: udplatDistributor,
meta: {
authRule: ["UDIDownload/udplatDistributor"]
},
}
},
{
name: "医疗机构",
@ -686,7 +712,7 @@ export const asyncRouterMap = [
component: udplatHospital,
meta: {
authRule: ["UDIDownload/udplatHospital"]
},
}
},
{
name: "生产企业",
@ -694,7 +720,7 @@ export const asyncRouterMap = [
component: udplatManufacture,
meta: {
authRule: ["UDIDownload/udplatManufacture"]
},
}
},
{
name: "产品目录",
@ -702,7 +728,7 @@ export const asyncRouterMap = [
component: udplatGoods,
meta: {
authRule: ["UDIDownload/udplatGoods"]
},
}
},
{
name: "阳光平台日志",
@ -710,7 +736,7 @@ export const asyncRouterMap = [
component: udplatLog,
meta: {
authRule: ["UDIDownload/udplatLog"]
},
}
},
{
name: "产品对照表",
@ -718,8 +744,50 @@ export const asyncRouterMap = [
component: udplatGoodsMatch,
meta: {
authRule: ["UDIDownload/udplatGoodsMatch"]
}
}
]
},
{
path: "/sys",
component: nested,
//redirect: "/UDIDownload/udplatDistributor",
name: "权限管理",
noDropdown: false,
hidden: false,
meta: {
authRule: ["sys"]
},
children: [
{
name: "功能菜单",
path: "sysMenu",
component: sysMenu,
meta: {
authRule: ["sys/sysMenu"]
}
},
{
name: "角色管理",
path: "sysRole",
component: sysRole,
meta: {
authRule: ["sys/sysRole"]
}
}
]
}
/* {
name: "UDI日志",
path: "jobLog",
component: jobLog,
meta: {
authRule: ["UDIDownload/jobLog"]
},
},*/
]
}

@ -0,0 +1,6 @@
<template>
<div>
<router-view/>
</div>
</template>

@ -0,0 +1,189 @@
<template>
<div>
<el-card class="el-card">
<el-button-group>
<el-button type="primary" @click="insert(0)"></el-button>
<el-button type="primary" @click="getList"></el-button>
</el-button-group>
<el-table
v-loading="loading"
:data="list"
style="width: 100%;margin-top: 15px; "
row-key="id"
border
default-expand-all
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column label="名称" prop="name"/>
<el-table-column label="类型" prop="type">
<template slot-scope="scope">
<span>{{ getType(scope.row.type) }}</span>
</template>
</el-table-column>
<el-table-column label="权限标识" prop="perms"/>
<el-table-column label="排序" prop="sort"/>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<span>{{ getStatus(scope.row.status) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" >
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="insert(scope.row.id)">新增</el-button>
<el-button type="text" size="small" @click.native.stop="update(scope.row.id)">修改</el-button>
<el-button type="text" size="small" @click.native.stop="deleteRow(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<el-dialog :title="dialog.title" :visible.sync="dialog.visible">
<el-form :model="dialog.detail" label-position="left" label-width="100px">
<el-form-item label="名称" prop="name">
<el-input v-model="dialog.detail.name"/>
</el-form-item>
<el-form-item label="权限标识" prop="perms">
<el-input v-model="dialog.detail.perms"/>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input-number v-model="dialog.detail.sort" controls-position="right" :min="1"/>
</el-form-item>
<el-form-item label="类型" prop="type">
<el-select
v-model="dialog.detail.type"
placeholder="类型"
>
<el-option
v-for="item in typeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio v-model="dialog.detail.status" label="0"></el-radio>
<el-radio v-model="dialog.detail.status" label="1"></el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialog.visible = false"> </el-button>
<el-button type="primary" @click="save"></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {GetList, Insert, Update, Detail, Delete} from "@/api/sys/sysMenu";
export default {
name: "sysMenu",
data() {
return {
loading: false,
list: [],
typeOptions: [{value: "M", label: "目录"}, {value: "F", label: "菜单"}, {value: "F", label: "资源"}],
statusOptions: [{value: "0", label: "启用"}, {value: "1", label: "禁用"}],
dialog: {
visible: false,
title: "新增",
detail: {}
}
}
},
created() {
this.getList();
},
methods: {
getList() {
this.loading = true;
GetList().then(result => {
this.list = result.data;
this.loading = false;
})
},
getType(type) {
return this.selectDictLabel(this.typeOptions, type);
},
getStatus(status) {
return this.selectDictLabel(this.statusOptions, status);
},
formRest() {
this.dialog.detail = {
id: 0,
parentId: 0,
name: "",
type: "F",
perms: "",
status: "0",
sort:1,
}
},
insert(parentId) {
this.formRest();
this.dialog.detail.parentId = parentId;
this.dialog.title = "新增";
this.dialog.visible = true;
},
update(id) {
this.formRest();
this.dialog.title="修改";
Detail(id).then(res=>{
this.dialog.detail = res.data;
this.dialog.visible = true;
})
},
save() {
let id = this.dialog.detail.id;
if(id>0){
Update(this.dialog.detail).then(res=>{
if(res.code == 20000){
this.$message.success("修改成功!");
this.dialog.visible = false;
this.getList();
}
})
}else{
Insert(this.dialog.detail).then(res => {
if(res.code == 20000){
this.$message.success("新增成功!");
this.dialog.visible = false;
this.getList();
}
})
}
},
deleteRow(id){
let _this=this;
this.$confirm("确定删除该行数据,删除后将不可恢复?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
Delete(id).then(result => {
if(result.code == 20000){
_this.$message.success("删除成功!");
_this.getList();
}
})
})
.catch(() => {
_this.$message({
type: 'error',
message:"发生错误!"
});
});
}
}
}
</script>
<style scoped>
</style>

@ -0,0 +1,231 @@
<template>
<div>
<el-card class="el-card">
<el-form
:inline="true"
:model="queryParams"
size="mini"
>
<el-form-item label="名称">
<el-input
v-model="queryParams.name"
size="mini"
placeholder="请输入名称"
></el-input>
</el-form-item>
<el-form-item label="状态">
<el-select
v-model="queryParams.status"
placeholder="状态"
>
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button>
<el-button @click.native.stop="insert">新增</el-button>
</el-button-group>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
:data="list"
style="width: 100%"
>
<el-table-column label="序号" type="index"/>
<el-table-column label="名称" prop="name"/>
<el-table-column label="编码" prop="code"/>
<el-table-column label="排序" prop="sort"/>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<span>{{ getStatus(scope.row.status) }}</span>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true"/>
<el-table-column label="操作" fixed="right" >
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="update(scope.row.id)">修改</el-button>
<el-button type="text" size="small" @click.native.stop="deleteRow(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="queryParams.page"
:page-size="queryParams.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</el-card>
<el-dialog :title="dialog.title" :visible.sync="dialog.visible">
<el-form :model="dialog.detail" label-position="left" label-width="100px">
<el-form-item label="编码" prop="code">
<el-input v-model="dialog.detail.code"/>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input v-model="dialog.detail.name"/>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input-number v-model="dialog.detail.sort" controls-position="right" :min="1"/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio v-model="dialog.detail.status" label="0"></el-radio>
<el-radio v-model="dialog.detail.status" label="1"></el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialog.visible = false"> </el-button>
<el-button type="primary" @click="save"></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {GetList, Insert, Update, Detail, Delete} from "@/api/sys/sysRole";
export default {
name: "sysRole",
data(){
return{
loading: false,
list: [],
total: 0,
statusOptions: [{value: "", label: "全部"},{value: "0", label: "启用"}, {value: "1", label: "禁用"}],
queryParams: {
page: 1,
limit: 10,
name: "",
status:""
},
dialog: {
visible: false,
title: "新增",
detail: {}
}
}
},
created() {
this.getList();
},
methods:{
getList(){
this.loading = true;
GetList(this.queryParams).then(res=>{
this.list = res.data.list;
this.total = res.data.total;
this.loading = false;
})
},
handleCurrentChange(val) {
this.queryParams.page = val;
this.getList();
},
getStatus(status) {
return this.selectDictLabel(this.statusOptions, status);
},
onReset() {
this.$router.push({
path: "",
});
this.queryParams = {
page: 1,
limit: 10,
name: "",
status:""
};
this.getList();
},
onSubmit() {
this.queryParams.page = 1;
this.getList();
},
formRest() {
this.dialog.detail = {
id: 0,
name: "",
code: "",
status: "0",
sort:1,
}
},
insert() {
this.formRest();
this.dialog.title = "新增";
this.dialog.visible = true;
},
update(id) {
this.formRest();
this.dialog.title="修改";
Detail(id).then(res=>{
this.dialog.detail = res.data;
this.dialog.visible = true;
})
},
save() {
let id = this.dialog.detail.id;
if(id>0){
Update(this.dialog.detail).then(res=>{
if(res.code == 20000){
this.$message.success("修改成功!");
this.dialog.visible = false;
this.getList();
}
})
}else{
Insert(this.dialog.detail).then(res => {
if(res.code == 20000){
this.$message.success("新增成功!");
this.dialog.visible = false;
this.getList();
}
})
}
},
deleteRow(id){
let _this=this;
this.$confirm("确定删除该行数据,删除后将不可恢复?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
Delete(id).then(result => {
if(result.code == 20000){
_this.$message.success("删除成功!");
_this.getList();
}
})
})
.catch(() => {
_this.$message({
type: 'error',
message:"发生错误!"
});
});
}
}
}
</script>
<style scoped>
</style>

@ -11,17 +11,31 @@
:inline="true"
:model="queryParams"
size="mini">
<el-form-item label="名称">
<el-form-item>
<el-input
v-model="queryParams.name"
size="mini"
placeholder="请输入名称"
placeholder="请输入通用名称"
></el-input>
</el-form-item>
<el-form-item>
<span style="color: #000; margin-left: 10px; margin-right: 6px"
>日期:</span
>
<el-input v-model="queryParams.manufactureName" placeholder="请输入生产企业" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.distributorName" placeholder="请输入配送企业" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.regNum" placeholder="请输入注册证号" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.model" placeholder="请输入型号" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.spec" placeholder="请输入规格" clearable/>
</el-form-item>
<el-form-item>
<el-date-picker
:picker-options="pickerOptions"
v-model="dateRange"
@ -77,7 +91,6 @@
</el-card>
<select-goods/>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="selectAction"></el-button>
@ -97,6 +110,16 @@ export default {
},
data(){
return{
queryParams: {
page: 1,
limit: 10,
name: "",
manufactureName: "",
distributorName: "",
regNum: "",
model: "",
spec: ""
},
selectValue:{
deliveryGoodsId:"",
medicalCode:""

@ -38,9 +38,8 @@
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button>
<el-button @click="getFile"></el-button>
</el-button-group>
</el-form-item>
@ -70,57 +69,10 @@
</template>
<script>
import {GetList} from "@/api/udplat/udplatDistributor";
import {GetList,GetDistributorFile} from "@/api/udplat/udplatDistributor";
import myMinix from './minixs/commMinixs';
export default {
name: "udplatDistributor",
/* data(){
return{
dateRange: [],
loading: false,
list: [],
total: 0,
queryParams: {
page: 1,
limit: 10,
name: ""
},
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
}
},
created() {
this.getList();
},*/
mixins:[myMinix],
methods:{
getList() {
@ -134,26 +86,9 @@ export default {
this.loading = false;
})
},
/* handleCurrentChange(val) {
this.queryParams.page = val;
this.getList();
},
onReset() {
this.$router.push({
path: "",
});
this.queryParams = {
page: 1,
limit: 10,
name: ""
};
this.dateRange = [];
this.getList();
},
onSubmit() {
this.queryParams.page = 1;
this.getList();
},*/
getFile(){
GetDistributorFile();
}
}
}
</script>

@ -6,17 +6,32 @@
:model="queryParams"
size="mini"
>
<el-form-item label="名称">
<el-form-item>
<el-input
v-model="queryParams.name"
size="mini"
placeholder="请输入名称"
placeholder="请输入通用名称"
></el-input>
</el-form-item>
<el-form-item>
<span style="color: #000; margin-left: 10px; margin-right: 6px"
>日期:</span
>
<el-input v-model="queryParams.manufactureName" placeholder="请输入生产企业" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.distributorName" placeholder="请输入配送企业" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.regNum" placeholder="请输入注册证号" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.model" placeholder="请输入型号" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.spec" placeholder="请输入规格" clearable/>
</el-form-item>
<el-form-item>
<!-- <span style="color: #000; margin-left: 10px; margin-right: 6px"
>日期:</span>-->
<el-date-picker
:picker-options="pickerOptions"
v-model="dateRange"
@ -38,29 +53,42 @@
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button>
<el-button @click="getFile"></el-button>
<a style="margin-left: 20px" v-if="downloadFile.url != '' " :href="downloadFile.url" :download="downloadFile.fileName">{{ downloadFile.fileName }}</a>
</el-button-group>
</el-form-item>
</el-form>
<el-table
ref="goodsTable"
v-loading="loading"
:data="list"
style="width: 100%"
>
<el-table-column label="序号" type="index"/>
<!-- <el-table-column label="序号" type="index"/>-->
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="配送目录ID" prop="deliveryGoodsId"/>
<el-table-column label="联采目录编码" prop="projectGoodsCode"/>
<el-table-column label="生产企业" prop="manufactureName"/>
<el-table-column label="配送企业" prop="distributorName"/>
<el-table-column label="产品名称" prop="productName"/>
<!-- <el-table-column label="型号" prop="model"/>
<el-table-column label="规格" prop="spec"/>-->
<el-table-column label="产品通用名称" prop="productName" show-overflow-tooltip/>
<el-table-column label="注册证号" prop="regNum"/>
<el-table-column label="型号" prop="model" show-overflow-tooltip/>
<el-table-column label="规格" prop="spec" show-overflow-tooltip/>
<el-table-column label="医保编码" prop="medicalCode"/>
<el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true"/>
<el-table-column label="更新时间" align="center" prop="updateTime" :show-overflow-tooltip="true"/>
<el-table-column label="操作" width="80px">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="showDetail(scope.row)"
>详情</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true"/>
<el-table-column label="更新时间" align="center" prop="updateTime" :show-overflow-tooltip="true"/>-->
</el-table>
<el-pagination
@ -71,15 +99,131 @@
:total="total"
></el-pagination>
</el-card>
<el-dialog title="详情" :close-on-click-modal="false"
:visible.sync="dialog.visible">
<el-form :model="dialog.detail" label-position="left" label-width="100px">
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="配送目录ID" prop="deliveryGoodsId">
<el-input v-model="dialog.detail.deliveryGoodsId" readonly/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联采目录编码">
<el-input v-model="dialog.detail.projectGoodsCode" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="配送目录编码" prop="deliveryGoodsCode">
<el-input v-model="dialog.detail.deliveryGoodsCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品通用名">
<el-input v-model="dialog.detail.productName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="生产企业">
<el-input v-model="dialog.detail.manufactureName" readonly/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="配送企业">
<el-input v-model="dialog.detail.distributorName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="注册证编号">
<el-input v-model="dialog.detail.regNum" readonly/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册证名称">
<el-input v-model="dialog.detail.regName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="注册证有效期">
<el-input v-model="dialog.detail.regValidTo" readonly/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="更新时间">
<el-input v-model="dialog.detail.changedTime" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="更新内容">
<el-input v-model="dialog.detail.changedContent" readonly/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="医保编码">
<el-input v-model="dialog.detail.medicalCode" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="型号">
<el-input type="textarea" v-model="dialog.detail.model" :autosize="{ minRows: 2, maxRows: 4}" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="规格">
<el-input type="textarea" v-model="dialog.detail.spec" :autosize="{ minRows: 2, maxRows: 4}" readonly/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {GetList} from "@/api/udplat/udplatGoods";
import {GetList, GetGoodsFile,GetDetail} from "@/api/udplat/udplatGoods";
import myMinix from './minixs/commMinixs';
export default {
name: "udplatGoods",
mixins: [myMinix],
data() {
return {
queryParams: {
page: 1,
limit: 10,
name: "",
manufactureName: "",
distributorName: "",
regNum: "",
model: "",
spec: ""
},
dialog:{
visible: false,
detail:{}
},
downloadFile:{
url:"",
fileName:"产品目录.json"
}
}
},
methods: {
getList() {
this.loading = true;
@ -91,10 +235,35 @@ export default {
this.$message.error(error);
this.loading = false;
})
},
getFile() {
let selectData = this.$refs.goodsTable.selection;
if(selectData.length>0){
let data = JSON.stringify(selectData);
this.downloadFile.url="data:text/json;chartset=utf-8,\ufeff"+encodeURIComponent(data);
return;
}
this.downloadFile.url="";
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
GetGoodsFile(this.addDateRange(this.queryParams, this.dateRange)).then(result => {
this.downloadFile.url=result.data;
loading.close();
});
},
showDetail(row){
GetDetail(row.id).then(result => {
this.dialog.detail = result.data;
this.dialog.visible = true;
})
}
}
}
</script>
<style scoped>

@ -6,13 +6,32 @@
:model="queryParams"
size="mini"
>
<el-form-item label="产品或注册名称">
<el-form-item>
<el-input v-model="queryParams.udi" placeholder="请扫描或输入UDI码" style="width: 300px"/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.nameCode" placeholder="请输入完整DI" clearable/>
</el-form-item>
<el-form-item>
<!-- <el-input v-model="queryParams.ylqxzcrbarmc" placeholder="医疗器械注册人"/>-->
<el-autocomplete v-model="queryParams.ylqxzcrbarmc" :fetch-suggestions="searchByName"
placeholder="医疗器械注册人" @select="handleSelect" clearable></el-autocomplete>
</el-form-item>
<el-form-item>
<el-input
v-model="queryParams.name"
size="mini"
placeholder="请输入名称"
placeholder="器械通用名称"
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.ggxh" placeholder="规格型号" clearable/>
</el-form-item>
<el-form-item>
<el-input v-model="queryParams.zczbhhzbapzbh" placeholder="注册证/备案号" clearable/>
</el-form-item>
<el-form-item label="阳光编码对照">
<el-select
v-model="queryParams.goodsMatchType"
@ -40,9 +59,8 @@
</el-select>
</el-form-item>
<el-form-item>
<span style="color: #000; margin-left: 10px; margin-right: 6px"
>日期:</span
>
<el-date-picker
:picker-options="pickerOptions"
v-model="dateRange"
@ -57,11 +75,7 @@
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
@ -246,14 +260,12 @@
</template>
<script>
import {GetList,GetProductlist,GetProductDetail,Save} from "@/api/udplat/udplatGoodsMatch";
import {GetList,GetProductlist,GetProductDetail,Save,SearchByName} from "@/api/udplat/udplatGoodsMatch";
import myMinix from './minixs/commMinixs';
import selectGoods from "./selectGoods";
import SelectGoods from "./selectGoods";
export default {
name: "udplatGoodsMatch",
components: {SelectGoods},
comments:[selectGoods],
mixins:[myMinix],
created() {
this.formReset();
@ -261,10 +273,16 @@ export default {
data(){
return{
matchTypeOption:[{value:0,label:"全部"},{value:1,label:"已对照"},{value:2,label:"未对照"}],
timeout: null,
queryParams: {
page: 1,
limit: 10,
name:"",
nameCode:"",
udi:"",
ylqxzcrbarmc:"",///()
ggxh:"",//
zczbhhzbapzbh:"",///
goodsMatchType: 0,
medicalMatchType: 0
},
@ -335,7 +353,26 @@ export default {
}else
this.$message.error(result.message);
})
},
searchByName(name,cb){
//console.log("name:"+name);
SearchByName(name).then(res=>{
clearTimeout(this.timeout);
this.timeout = setTimeout(()=>{
cb(this.formatChange(res.data));
},100);
})
},
formatChange(list){
return list.map((item)=>{
return {value:item}
})
},
handleSelect(item){
console.log("item:"+item);
}
}
}
</script>

@ -38,9 +38,8 @@
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button>
<el-button @click="getFile"></el-button>
</el-button-group>
</el-form-item>
@ -72,7 +71,7 @@
</template>
<script>
import {GetList} from "@/api/udplat/udplatHospital";
import {GetList,GetHospitalFile} from "@/api/udplat/udplatHospital";
import myMinix from './minixs/commMinixs';
export default {
name: "udplatHospital",
@ -89,6 +88,9 @@ export default {
this.loading = false;
})
},
getFile(){
GetHospitalFile();
}
}
}
</script>

@ -38,9 +38,8 @@
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button>
<el-button @click="getFile"></el-button>
</el-button-group>
</el-form-item>
@ -70,7 +69,7 @@
</template>
<script>
import {GetList} from "@/api/udplat/udplatManufacture";
import {GetList,GetManufactureFile} from "@/api/udplat/udplatManufacture";
import myMinix from './minixs/commMinixs';
export default {
name: "udplatManufacture",
@ -86,6 +85,9 @@ export default {
this.$message.error(error);
this.loading = false;
})
},
getFile(){
GetManufactureFile();
}
}
}

Loading…
Cancel
Save