第三方产品信息新增,审核等;手持终端登记审核;

master
anthonywj 3 years ago
parent 0ec45b5064
commit a6d85f5dba

@ -1,4 +1,4 @@
{
"BASE_URL": "http://127.0.0.1:9996",
"SERVER_IP": "http://127.0.0.1:9996"
"BASE_URL": "http://192.168.0.109:9996",
"SERVER_IP": "http://192.168.0.109:9996"
}

@ -0,0 +1,34 @@
import axios from "../../utils/axios";
export function getThrProducts(query) {
return axios({
url: "/udiwms/thrsys/getThrAddProducts",
method: "get",
params: query
});
}
export function delThrProducts(query) {
return axios({
url: "/udiwms/thrsys/delThrAddProducts",
method: "post",
data: query
});
}
export function updateProduct(data) {
return axios({
url: '/udiwms/thrsys/updateThrAddProducts',
method: 'post',
data: data
})
}
export function addProduct(data) {
return axios({
url: '/udiwms/thrsys/addThrAddProducts',
method: 'post',
data: data
})
}

@ -74,6 +74,8 @@ import corpExport from "../views/basic/CorpExport.vue";
//第三方数据管理
import thrProducts from "../views/thrsys/ThrProducts.vue";
import thrProductsCheck from "../views/thrsys/ThrProductsCheck.vue";
import thrProductsSubmit from "../views/thrsys/ThrProductsSubmit.vue";
import thrProductsImport from "../views/thrsys/ThrProductsImport.vue";
import ThrOrders from "../views/thrsys/ThrOrder.vue";
import thrOrderImport from "../views/thrsys/ThrOrderImport.vue";
@ -256,15 +258,15 @@ export const asyncRouterMap = [
authRule: ["admin/auth_permission_rule"]
}
},
// {
// path: "phoneRegisterManage",
// component: phoneRegisterManage,
// name: "手持终端激活管理",
// icon: "",
// meta: {
// authRule: ["admin/phoneRegisterManage"]
// }
// },
{
path: "phoneRegisterManage",
component: phoneRegisterManage,
name: "设备管理",
icon: "",
meta: {
authRule: ["admin/phoneRegisterManage"]
}
},
// {
// path: "systemParamConfig",
// component: systemParamConfig,
@ -430,6 +432,14 @@ export const asyncRouterMap = [
authRule: ["product/UdiInfoManageSp"]
}
},
{
path: "thrProductsCheck",
name: "新增产品信息审核",
component: thrProductsCheck,
meta: {
authRule: ["product/thrAddProducts"]
}
},
]
},
@ -994,6 +1004,14 @@ export const asyncRouterMap = [
authRule: ["basic/basicCompanyProduct"]
}
},
{
path: "thrProductsSubmit",
name: "新增产品信息",
component: thrProductsSubmit,
meta: {
authRule: ["product/thrProductsSubmit"]
}
},
{
path: "/spInv",
redirect: "/spInv/spInvProducts",

@ -411,6 +411,7 @@ export default {
this.$message.warning("未选择医疗器械产品信息");
return;
}
console.log("this.currentRow.checked =" + this.currentRow.checked);
if (this.currentRow != null && this.currentRow.checked) {
this.$confirm("产品编码:" + this.currentRow.code + "已被添加,是否继续添加", "提示", {

@ -1,6 +1,4 @@
<template>
<div>
<el-card class="el-card">
<div>
@ -489,10 +487,7 @@ export default {
}
this.combineQuery.thirdIds.push(row.code);
});
// if (selected != null) {
// this.$message.warning("" + selected.code + "");
// return;
// }
if (selected != '') {
this.$confirm("产品编码:" + selected + "已被添加,是否继续添加", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -509,12 +504,6 @@ export default {
} else {
this.$emit("closeUdi", false);
this.$message.warning(response.message);
// let msgs= response.message.split(";");
// for(let i = 0;i<msgs.length;i++){
// this.$message.warning(msgs[i]);
// }
}
})
.catch(() => {
@ -524,6 +513,23 @@ export default {
})
.catch(() => {
});
} else {
addErp(this.combineQuery)
.then((response) => {
this.combineLoading = false;
if (response.code == 20000) {
this.$emit("closeUdi", true);
this.$message.success(response.data);
} else {
this.$emit("closeUdi", false);
this.$message.warning(response.message);
}
})
.catch(() => {
this.combineLoading = false;
this.$emit("closeUdi", false);
});
}
} else {
this.combineQuery.thirdId = this.currentRow.code;

@ -79,6 +79,7 @@
>添加产品信息
</el-button
>
<el-button type="primary" @click="addProductVisible=true"></el-button>
</el-button-group>
</el-form-item>
</el-row>
@ -1316,6 +1317,20 @@
layout="prev, pager, next"
:total="total"
></el-pagination>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="新增产品信息"
:visible.sync="addProductVisible"
width="85%"
v-if="addProductVisible"
@close="closeAddDialog"
>
<ThrProductsAdd
:closeAddDialog="closeAddDialog"
:newType="newType"></ThrProductsAdd>
</el-dialog>
</el-card>
</div>
</template>
@ -1342,6 +1357,7 @@ import selectUdi from "./UdiInfoRelevance.vue";
import selectErp from "./UdiInfoselectErpUdi";
import selectLocalUdi from "./UdiInfoSelectLocalUdi";
import selectProduct from "./basicCompanyProductsImport";
import ThrProductsAdd from "@/views/thrsys/ThrProductsAdd";
export default {
data() {
@ -1360,7 +1376,9 @@ export default {
filterType: null,
auditStatus: null,
},
newType: 2,
selectProductVisible: false,
addProductVisible: false,
editQuery: null,
relevanceEdit: {
id: null,
@ -1554,7 +1572,6 @@ export default {
.catch(() => {
});
},
removeDi() {
this.$confirm("此操作将解除该绑定DI器械信息, 是否继续?", "提示", {
confirmButtonText: "确定",
@ -1584,7 +1601,6 @@ export default {
.catch(() => {
});
},
intentSelectErp(val) {
this.uuid = val.uuid;
this.relId = val.rlId;
@ -1638,8 +1654,6 @@ export default {
console.log("-----" + this.relId);
this.selectLocalVisible = true;
},
intentImportUdi() {
this.relId = null;
this.selectLocalVisible = true;
@ -1673,13 +1687,13 @@ export default {
}).catch(() => {
});
},
handleSelectionChange(val) {
console.log("----" + val);
this.multipleSelection = val;
},
closeSelDialog(val) {
this.selectProductVisible = false;
this.addProductVisible = false;
},
cancelDialog() {
this.editDialogVisible = false;
@ -1688,7 +1702,6 @@ export default {
this.filterQuery.page = val;
this.getList();
},
handleDetailClick(row) {
this.thisData = row;
this.detailDialogVisible = true;
@ -1732,7 +1745,6 @@ export default {
this.loading = false;
});
},
handleModifyClick(row) {
this.uuid = row.uuid;
this.relId = row.rlId;
@ -1793,8 +1805,6 @@ export default {
});
},
uploadErpProduct() {
updateErpProduct()
.then((response) => {
@ -1810,7 +1820,6 @@ export default {
.catch(() => {
});
},
closeDialog() {
this.selectErpDialogVisible = false;
this.selectLocalVisible = false;
@ -1838,7 +1847,6 @@ export default {
this.cancelDialog();
});
},
selectSysParam() {
spcombie().then((response) => {
@ -1882,7 +1890,16 @@ export default {
},
selectProduct() {
this.selectProductVisible = true;
},
closeAddDialog(val) {
if (val) {
this.getList();
}
this.addProductVisible = false;
console.log("------closeAddDialog-------")
// Object.keys(this.newProductData).forEach(key => this.newProductData[key] = null);
}
}
,
mounted() {
@ -1892,7 +1909,8 @@ export default {
selectUdi,
selectErp,
selectLocalUdi,
selectProduct
selectProduct,
ThrProductsAdd
}
,
created() {

@ -83,7 +83,8 @@
<el-button type="text" size="small" @click.native.stop="detailDialog(scope.row)"
>详情
</el-button>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)" v-if="thirdSysDetail.fromType!=0"
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"
v-if="thirdSysDetail.fromType!=0"
>删除
</el-button>
</template>
@ -118,255 +119,24 @@
v-if="addProductVisible"
@close="closeAddDialog"
>
<el-card class="el-card">
<el-form :inline="true" :model="newProductData" size="mini">
<div style="margin-bottom: 20px">
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品名称:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.name"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品标识:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.code"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册证号:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.registerNo"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>生产厂家:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.manufactory"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>规格型号:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.spec"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>计量单位:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.measname"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医疗器械注册人:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.ylqxzcrbarmc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册人英文名称:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.ylqxzcrbarywmc"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品类别:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.cplb"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>分类编码:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.flbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>商品条码:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.sptm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医保编码:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.ybbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>统一社会信用号:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.tyshxydm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>器械类别:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.qxlb"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="20" class="el-col" style="margin-top: 12px">
<div class="text item">
<div class="itemTag">
<span>产品描述:&nbsp;</span>
</div>
<el-input
style="width: 85%"
type="textarea"
size="mini"
rows="4"
placeholder="请输入内容"
v-model="newProductData.cpms"
></el-input>
</div>
</el-col>
</el-row>
</div>
<div style='text-align: center; margin-bottom: 10px;'>
<el-button type="primary" @click="saveNewProduct"></el-button>
<el-button type="primary" @click="closeAddDialog"></el-button>
</div>
</el-form>
</el-card>
<ThrProductsAdd
:newType="newType"
:closeAddDialog="closeAddDialog"></ThrProductsAdd>
</el-dialog>
</div>
</template>
<script>
import {
import {
getThrProducts, delThrProducts, delAll, downloadAll, saveNewProduct
} from "../../api/thrsys/thrProducts";
import {getInvbasdoc} from "../../api/basic/getErps";
import {getBasicThirdSys, filterDetailByKey} from "../../api/basic/basicThirdSys";
import {selectIp} from "../../api/param/systemParamConfig";
import thrProductsDetail from "./ThrProductsDetail";
} from "../../api/thrsys/thrProducts";
import {getInvbasdoc} from "../../api/basic/getErps";
import {getBasicThirdSys, filterDetailByKey} from "../../api/basic/basicThirdSys";
import {selectIp} from "../../api/param/systemParamConfig";
import thrProductsDetail from "./ThrProductsDetail";
import ThrProductsAdd from "@/views/thrsys/ThrProductsAdd";
export default {
export default {
data() {
return {
filterQuery: {
@ -388,6 +158,7 @@
uploadData: {
thirdSys: "thirdId",
},
newType: 1,
thrProductsDetailVisible: false,
thisData: null,
loading: false,
@ -597,18 +368,21 @@
this.$message.error(error.message);
})
},
closeAddDialog() {
closeAddDialog(val) {
this.addProductVisible = false;
if (val) {
this.getList();
}
Object.keys(this.newProductData).forEach(key => this.newProductData[key] = null);
}
},
components: {
thrProductsDetail
thrProductsDetail, ThrProductsAdd
},
mounted() {
},
created() {
this.getBasicThirdSys();
},
};
};
</script>

@ -0,0 +1,360 @@
<template>
<el-card class="el-card">
<el-form :inline="true" :model="newProductData" size="mini">
<div style="margin-bottom: 20px">
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>第三方系统:&nbsp;</span>
</div>
<el-select
style="width: 60%"
v-model="newProductData.thirdSys" placeholder="请选择第三方系统"
>
<el-option
v-for="item in thirdSys"
:key="item.value"
:label="item.thirdName"
:value="item.thirdId">
<span style="float: left">{{ item.thirdName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.thirdId
}}</span>
</el-option>
</el-select>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品名称:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.name"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品标识:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.code"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册证号:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.registerNo"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>生产厂家:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.manufactory"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>规格型号:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.spec"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>计量单位:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.measname"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医疗器械注册人:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.ylqxzcrbarmc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册人英文名称:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.ylqxzcrbarywmc"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品类别:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.cplb"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>分类编码:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.flbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>商品条码:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.sptm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医保编码:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.ybbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>统一社会信用号:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.tyshxydm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>器械类别:&nbsp;</span>
</div>
<el-input
style="width: 60%"
size="small"
placeholder="请输入内容"
v-model="newProductData.qxlb"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="20" class="el-col" style="margin-top: 12px">
<div class="text item">
<div class="itemTag">
<span>产品描述:&nbsp;</span>
</div>
<el-input
style="width: 85%"
type="textarea"
size="mini"
rows="4"
placeholder="请输入内容"
v-model="newProductData.cpms"
></el-input>
</div>
</el-col>
</el-row>
</div>
<div style='text-align: center; margin-bottom: 10px;'>
<el-button type="primary" @click="saveNewProduct"></el-button>
<el-button type="primary" @click="closeAddDialog"></el-button>
</div>
</el-form>
</el-card>
</template>
<script>
import {saveNewProduct} from "@/api/thrsys/thrProducts";
import {getBasicThirdSys} from "@/api/basic/basicThirdSys";
import {addProduct} from "@/api/thrsys/thrProductsAdd";
export default {
name: "ThrProductsAdd",
props: {
newType: {
type: Object,
required: true,
},
closeAddDialog: {
type: Function,
required: true,
},
},
data() {
return {
newProductData: {
name: '',
code: null,
registerNo: null,
manufactory: null,
spec: null,
measname: null,
ylqxzcrbarmc: null,
ylqxzcrbarywmc: null,
cplb: null,
flbm: null,
sptm: null,
ybbm: null,
tyshxydm: null,
qxlb: null,
cpms: null
},
thirdSys: [],
}
},
methods: {
saveNewProduct() {
this.addProductVisible = false;
if (this.newType == 1) {
saveNewProduct(this.newProductData).then((res) => {
if (res.code == 20000) {
this.$message.success("添加成功");
//
this.$emit("closeAddDialog", true);
this.closeAddDialog();
}
}).catch((error) => {
this.$message.error(error.message);
})
} else if (this.newType == 2) {
addProduct(this.newProductData).then((res) => {
if (res.code == 20000) {
this.$message.success("添加成功");
//
this.closeAddDialog(true);
}
}).catch((error) => {
this.$message.error(error.message);
})
}
},
getBasicThirdSys() {
let query = {
enabled: true,
};
getBasicThirdSys(query)
.then((response) => {
this.thirdSys = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
},
created() {
this.getBasicThirdSys();
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,338 @@
<template>
<div>
<el-card class="el-card">
<el-form :inline="true" :model="filterQuery" class="query-form" size="mini">
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.code"
placeholder="产品编码/商品条码/医保编码" clearable
@keyup.enter.native="keyupErp_submit($event)"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.name" clearable
placeholder="产品名称"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.spec" clearable
placeholder="规格型号"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.registerNo" clearable
placeholder="注册/备案凭证"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.checkStatus" placeholder="审核状态">
<el-option label="全部" value=""></el-option>
<el-option label="已审核" value="2"></el-option>
<el-option label="未审核" value="1"></el-option>
<el-option label="未通过" value="3"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item class="query-form-item">-->
<!-- <el-input-->
<!-- v-model="filterQuery.manufactory" clearable-->
<!-- placeholder="生产厂家"-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.thirdSys" placeholder="请选择第三方系统" @change="thirdSysChange">
<el-option
v-for="item in thirdSys"
:key="item.value"
:label="item.thirdName"
:value="item.thirdId">
<span style="float: left">{{ item.thirdName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.thirdId }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button-group style="display:flex;">
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="search" @click="getList"></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" width="80"></el-table-column>
<el-table-column label="产品编码" prop="code"></el-table-column>
<el-table-column label="产品名称" prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案凭证" prop="registerNo" show-overflow-tooltip></el-table-column>
<el-table-column label="生产厂家" prop="manufactory" show-overflow-tooltip></el-table-column>
<el-table-column label="审核状态" prop="checkStatus" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ checkMap[scope.row.checkStatus] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="detailDialog(scope.row)"
>详情
</el-button>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"
v-if="thirdSysDetail.fromType!=0"
>删除
</el-button>
<el-button type="text" size="small"
@click="checDialog(scope.row)"
>审核
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</el-card>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="产品信息详情"
:visible.sync="thrProductsDetailVisible"
width="85%"
v-if="thrProductsDetailVisible"
>
<thrProductsDetail
:data="thisData"
></thrProductsDetail>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="审核"
:visible.sync="checkVisible"
width="45%"
v-if="checkVisible">
<el-button @click="checkVisible = false">取消</el-button>
<el-button type="primary" @click="checkPass(2)"></el-button>
<el-button type="primary" @click="checkPass(3)"></el-button>
</el-dialog>
</div>
</template>
<script>
import {getThrProducts, delThrProducts, updateProduct} from "../../api/thrsys/thrProductsAdd";
import {getBasicThirdSys, filterDetailByKey} from "../../api/basic/basicThirdSys";
import {selectIp} from "../../api/param/systemParamConfig";
import thrProductsDetail from "./ThrProductsDetail";
import ThrProductsAdd from "@/views/thrsys/ThrProductsAdd";
export default {
data() {
return {
filterQuery: {
code: null,
name: "",
spec: null,
registerNo: null,
manufactory: null,
thirdSys: "",
page: 1,
limit: 20,
},
total: 0,
thirdSys: [],
thirdSysDetail: null,
list: [],
uploadFileUrl: null,
fileList: [],
uploadData: {
thirdSys: "thirdId",
},
checkVisible: false,
newType: 1,
thrProductsDetailVisible: false,
thisData: null,
loading: false,
checkMap: {
1: "未审核",
2: "已审核",
3: "未通过",
},
curRow: null,
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
code: null,
spec: null,
registerNo: null,
manufactory: null,
name: "",
thirdSys: null,
page: 1,
limit: 20,
};
this.getList();
},
checDialog(row) {
this.checkVisible = true;
this.curRow = row;
},
getList() {
if (this.filterQuery.thirdSys == null) {
this.$message.warning("请先选择第三方系统!")
return;
}
this.loading = true;
getThrProducts(this.filterQuery)
.then((response) => {
// this.loading = false;
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该产品信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let dQuery = {
id: row.id,
};
delThrProducts(dQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.success(response.message);
}
})
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
},
detailDialog(row) {
this.thisData = row;
this.thrProductsDetailVisible = true;
},
getBasicThirdSys() {
let query = {
enabled: true,
};
getBasicThirdSys(query)
.then((response) => {
this.thirdSys = response.data.list || [];
this.filterQuery.thirdSys = this.thirdSys[0].thirdId;
this.uploadData.thirdSys = this.filterQuery.thirdSys;
this.getThirdSysDetail();
this.selectSysParam();
this.getList();
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
getThirdSysDetail() {
let query = {
thirdSysFk: this.filterQuery.thirdSys,
key: "piQueryUrl",
};
filterDetailByKey(query)
.then((response) => {
this.thirdSysDetail = response.data;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
handleChange(response, files, fileList) {
console.log(response);
if (response.code != 20000) {
this.$message.error(response.message);
} else {
console.log(files[0] + "\n" + this.fileList[0] + "\n" + fileList[0]);
this.$message.success("文件上传成功,请稍后刷新查看!");
}
},
selectSysParam() {
let query = {
key: "thirdIpUrl",
thirdSysFk: this.filterQuery.thirdSys
};
selectIp(query).then((response) => {
if (response.code == 20000) {
this.uploadFileUrl = response.data.thridUrl + "/udiwms/erp/pi/upload";
}
});
},
thirdSysChange() {
this.uploadData.thirdSys = this.filterQuery.thirdSys;
this.getThirdSysDetail();
},
closeAddDialog() {
this.addProductVisible = false;
Object.keys(this.newProductData).forEach(key => this.newProductData[key] = null);
},
checkPass(val) {
let query = {
id: this.curRow.id,
checkStatus: val
}
updateProduct(query).then((res) => {
if (res.code == 20000) {
this.getList();
this.checkVisible = false;
} else {
this.$message.error(error.message);
}
}).catch((error) => {
this.$message.error(error.message);
})
},
},
components: {
thrProductsDetail, ThrProductsAdd
},
mounted() {
},
created() {
this.getBasicThirdSys();
},
};
</script>

@ -0,0 +1,345 @@
<template>
<div>
<el-card class="el-card">
<el-form :inline="true" :model="filterQuery" class="query-form" size="mini">
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.code"
placeholder="产品编码/商品条码/医保编码" clearable
@keyup.enter.native="keyupErp_submit($event)"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.name" clearable
placeholder="产品名称"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.spec" clearable
placeholder="规格型号"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input
v-model="filterQuery.registerNo" clearable
placeholder="注册/备案凭证"
></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.checkStatus" placeholder="审核状态">
<el-option label="全部" value=""></el-option>
<el-option label="已审核" value="2"></el-option>
<el-option label="未审核" value="1"></el-option>
<el-option label="未通过" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="filterQuery.thirdSys" placeholder="请选择第三方系统" @change="thirdSysChange">
<el-option
v-for="item in thirdSys"
:key="item.value"
:label="item.thirdName"
:value="item.thirdId">
<span style="float: left">{{ item.thirdName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.thirdId }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button-group style="display:flex;">
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="search" @click="getList"></el-button>
<el-button type="primary" @click="addProductVisible=true"></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" width="80"></el-table-column>
<el-table-column label="产品编码" prop="code"></el-table-column>
<el-table-column label="产品名称" prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip></el-table-column>
<el-table-column label="计量单位" prop="measname" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案凭证" prop="registerNo" show-overflow-tooltip></el-table-column>
<el-table-column label="生产厂家" prop="manufactory" show-overflow-tooltip></el-table-column>
<el-table-column label="审核状态" prop="checkStatus" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ checkMap[scope.row.checkStatus] }}</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="detailDialog(scope.row)"
>详情
</el-button>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"
v-if="thirdSysDetail.fromType!=0"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</el-card>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="产品信息详情"
:visible.sync="thrProductsDetailVisible"
width="85%"
v-if="thrProductsDetailVisible"
>
<thrProductsDetail
:data="thisData"
></thrProductsDetail>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="审核"
:visible.sync="checkVisible"
width="45%"
v-if="checkVisible">
<el-button @click="checkVisible = false">取消</el-button>
<el-button type="primary" @click="checkPass(2)"></el-button>
<el-button type="primary" @click="checkPass(3)"></el-button>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="新增产品信息"
:visible.sync="addProductVisible"
width="85%"
v-if="addProductVisible"
@close="closeAddDialog"
>
<ThrProductsAdd
:newType="newType"
:closeAddDialog="closeAddDialog"></ThrProductsAdd>
</el-dialog>
</div>
</template>
<script>
import {getThrProducts, delThrProducts, updateProduct} from "../../api/thrsys/thrProductsAdd";
import {getBasicThirdSys, filterDetailByKey} from "../../api/basic/basicThirdSys";
import {selectIp} from "../../api/param/systemParamConfig";
import thrProductsDetail from "./ThrProductsDetail";
import ThrProductsAdd from "@/views/thrsys/ThrProductsAdd";
export default {
data() {
return {
filterQuery: {
code: null,
name: "",
spec: null,
registerNo: null,
manufactory: null,
thirdSys: "",
page: 1,
limit: 20,
},
total: 0,
thirdSys: [],
thirdSysDetail: null,
list: [],
uploadFileUrl: null,
fileList: [],
uploadData: {
thirdSys: "thirdId",
},
addProductVisible: false,
checkVisible: false,
newType: 2,
thrProductsDetailVisible: false,
thisData: null,
loading: false,
checkMap: {
1: "未审核",
2: "已审核",
3: "未通过",
},
curRow: null,
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
code: null,
spec: null,
registerNo: null,
manufactory: null,
name: "",
thirdSys: null,
page: 1,
limit: 20,
};
this.getList();
},
checDialog(row) {
this.checkVisible = true;
this.curRow = row;
},
getList() {
if (this.filterQuery.thirdSys == null) {
this.$message.warning("请先选择第三方系统!")
return;
}
this.loading = true;
getThrProducts(this.filterQuery)
.then((response) => {
// this.loading = false;
if (response.code == 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该产品信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let dQuery = {
id: row.id,
};
delThrProducts(dQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
} else {
this.$message.success(response.message);
}
})
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
},
detailDialog(row) {
this.thisData = row;
this.thrProductsDetailVisible = true;
},
getBasicThirdSys() {
let query = {
enabled: true,
};
getBasicThirdSys(query)
.then((response) => {
this.thirdSys = response.data.list || [];
this.filterQuery.thirdSys = this.thirdSys[0].thirdId;
this.uploadData.thirdSys = this.filterQuery.thirdSys;
this.getThirdSysDetail();
this.selectSysParam();
this.getList();
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
getThirdSysDetail() {
let query = {
thirdSysFk: this.filterQuery.thirdSys,
key: "piQueryUrl",
};
filterDetailByKey(query)
.then((response) => {
this.thirdSysDetail = response.data;
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
handleChange(response, files, fileList) {
console.log(response);
if (response.code != 20000) {
this.$message.error(response.message);
} else {
console.log(files[0] + "\n" + this.fileList[0] + "\n" + fileList[0]);
this.$message.success("文件上传成功,请稍后刷新查看!");
}
},
selectSysParam() {
let query = {
key: "thirdIpUrl",
thirdSysFk: this.filterQuery.thirdSys
};
selectIp(query).then((response) => {
if (response.code == 20000) {
this.uploadFileUrl = response.data.thridUrl + "/udiwms/erp/pi/upload";
}
});
},
thirdSysChange() {
this.uploadData.thirdSys = this.filterQuery.thirdSys;
this.getThirdSysDetail();
},
closeAddDialog(val) {
if (val) {
this.getList();
}
this.addProductVisible = false;
},
checkPass(val) {
let query = {
id: this.curRow.id,
checkStatus: val
}
updateProduct(query).then((res) => {
if (res.code == 20000) {
this.getList();
this.checkVisible = false;
} else {
this.$message.error(error.message);
}
}).catch((error) => {
this.$message.error(error.message);
})
},
},
components: {
thrProductsDetail, ThrProductsAdd
},
mounted() {
},
created() {
this.getBasicThirdSys();
},
};
</script>

@ -29,17 +29,9 @@
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="IMEI唯一识别码" prop="imei" width="230"></el-table-column>
<el-table-column
label="企业名称"
prop="companyName"
width="160"
label="登记说明"
prop="remark"
></el-table-column>
<el-table-column
label="联系方式"
prop="phone"
width="120"
></el-table-column>
<el-table-column label="联系人" prop="contact" width="120">
</el-table-column>
<el-table-column label="审核状态" prop="isCheck" width="120">
<template slot-scope="scope">
@ -84,9 +76,9 @@
</template>
<script>
import {registerList, check} from "../../api/auth/deviceCheck";
import {registerList, check} from "../../api/auth/deviceCheck";
export default {
export default {
data() {
return {
filterQuery: {
@ -209,5 +201,5 @@
created() {
this.getList();
},
};
};
</script>

Loading…
Cancel
Save