You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udiwms-vue-frame/src/views/basic/product/udiInfoManageSp.vue

728 lines
20 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div>
<el-card>
<el-form :model="filterQuery" label-width="120px" v-show="showSearch">
<el-row>
<el-col :span="6">
<el-form-item label="供应商:">
<el-select
v-model="filterQuery.unitFk"
style="width: 90%"
filterable
remote
clearable="true"
reserve-keyword
placeholder="请选择供应商"
:remote-method="findMethod"
:loading="loading"
>
<el-option
v-for="item in fromOptions"
:key="item.name"
:label="item.name"
:value="item.erpId"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="物资编码:">
<el-input v-model="filterQuery.unionCode" style="width: 90%" placeholder="请输入DI/医保编码/商品条码"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="物资名称:">
<el-input v-model="filterQuery.cpmctymc" style="width: 90%" placeholder="请输入物资名称"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格型号:">
<el-input v-model="filterQuery.ggxh" style="width: 90%" placeholder="请输入规格型号" clearable="true"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="对照条件:">
<el-select v-model="filterQuery.filterType" style="width: 90%" placeholder="请选择过滤对照条件">
<el-option
v-for="item in filterList"
:key="item.filterType"
:label="item.sysName"
:value="item.filterType">
<span style="float: left">{{ item.sysName }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="生产企业:">
<el-input v-model="filterQuery.ylqxzcrbarmc" style="width: 90%" placeholder="请输入生产企业/注册备案人"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="第三方物资编码:">
<el-input v-model="filterQuery.thrPiId" style="width: 90%" placeholder="请输入第三方物资编码"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="状态:" v-if="isSpCombine">
<el-select v-model="filterQuery.lockStatus" style="width: 90%" placeholder="状态">
<el-option label="全部" value=""></el-option>
<el-option label="未提交" value="1"></el-option>
<el-option label="已提交" value="2"></el-option>
<el-option label="已锁定" value="3"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button>
<el-button type="primary" icon="el-icon-search" @click="search">查询</el-button>
<el-button type="primary" icon="el-icon-bottom-right" @click="selectProduct()">选入产品</el-button>
<el-button type="primary" icon="search" @click="lockProducts('3')" v-if="isSpCombine">锁定</el-button>
<el-button type="primary" icon="search" @click="lockProducts('1')" v-if="isSpCombine">退回</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" key="1" @selection-change="handleSelectionChange" style="width: 100%"
border>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="供应商" prop="companyName" show-overflow-tooltip></el-table-column>
<el-table-column label="最小销售产品标识" prop="nameCode" show-overflow-tooltip></el-table-column>
<el-table-column label="主系统物资编码" prop="mainId" show-overflow-tooltip></el-table-column>
<el-table-column label="生产企业" prop="ylqxzcrbarmc" show-overflow-tooltip></el-table-column>
<el-table-column label="物资名称" prop="cpmctymc" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
<el-table-column label="物资分类" prop="classifyName" show-overflow-tooltip></el-table-column>
<el-table-column
v-if="isSpCombine"
label="状态"
prop="lockStatus"
width="80"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ lockStatusMap[scope.row.lockStatus] }}
</template>
</el-table-column>
<el-table-column width="120" label="操作">
<template slot-scope="scope">
<el-button type="text" @click.native.stop="handleModifyClick(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="产品信息详情"
:visible.sync="editDialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="60%"
v-if="editDialogVisible"
>
<selectDetail
:detailQuery="detailQuery"
:relevanceEdit="relevanceEdit"
:checked="checked"
@closeUdi="closeUdi"
>
</selectDetail>
</el-dialog>
<el-dialog
title="选入产品信息"
:visible.sync="selectProductVisible"
width="85%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="selectProductVisible"
>
<selectProduct
:closeSelDialog="closeDialog"
:uuid="uuid"
:unitFk="filterQuery.unitFk"
></selectProduct>
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="handleCurrentChange"
></pagination>
</el-card>
</div>
</template>
<script>
import {
getUdiInfos,
deletetUdiInfos,
updatetUdiInfos,
updateErpProduct,
uploadSmp,
thirdSysDetail,
removeRl, sysFilter, spcombie, lockStatus
} from "@/api/basic/udiRelevance";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import {filterByUuid, filterCompany} from "@/api/basic/udiInfo";
import {filterCompanyProductRelevance, deleteCompanyProductRelevance} from "@/api/basic/udiRlSuptRelevance";
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain"
import selectProduct from "./basicCompanyProductsImport";
import selectUdi from "./udiInfoRelevance.vue";
import selectErp from "./udiInfoselectErpUdi";
import selectLocalUdi from "./UdiInfoSelectLocalUdi";
import selectDetail from "./udilnfoManageSpDetail";
export default {
data() {
return {
showSearch: true,
filterQuery: {
lockStatus: null,
unionCode: null,
udiCode: null,
ylqxzcrbarmc: "",
cpmctymc: "",
nameCode: "",
ggxh: null,
page: 1,
limit: 20,
addType: 1,
thrPiId: null,
filterType: null,
companyName: null,
unitFk: null,
},
fromOptions: [],
editQuery: null,
relevanceEdit: {
id: null,
thirdId: "",
isDisable: null,
isUseDy: false,
isLock: null,
isAdavence: null,
},
detailQuery: null,
defaultSys: null,
isImport: false,
isImportUdi: false,
isUploadSmp: false,
isSpCombine: false,
isImportFile: false,
uploadFileUrl: null,
checked: false,
list: [],
detailList: [],
sysList: [],
filterList: [],
total: 0,
thirdNo: "",
uuid: "111",
originUuid: null,
thirdId: null,
relId: "",
thisData: {
nameCode: null,
cpmctymc: null,
ggxh: null
},
selectProductVisible: false,
multipleSelection: [],
editDialogVisible: false, //详情
selectUdiDialogVisible: false, //关联选入
selectErpDialogVisible: false, //选入ERP产品
selectLocalVisible: false, //关联UDI
selectVersionVisible: false,
isUseDyCheck: false,
lockStatusMap: {"1": "未提交", "2": "已提交", "3": "已锁定"},
loading: false,
activeNames: ['1']
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
lockStatus: null,
unionCode: null,
udiCode: null,
ylqxzcrbarmc: "",
cpmctymc: "",
thrPiId: null,
nameCode: "",
ggxh: null,
page: 1,
limit: 20,
addType: 1,
};
this.total = 0;
this.list = [];
},
search() {
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
getList() {
// if (this.$isBlank(this.filterQuery.unitFk)) {
// this.$message.error("请先选择供应商");
// return;
// }
this.loading = true;
filterCompanyProductRelevance(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
keyup_submit(event) {
this.filterQuery.page = 1;
this.getList();
event.target.select();
},
handleDetail(row) {
this.editQuery = row;
},
deleteOrders(data) {
this.loading = true;
let tquery = {
id: data.id + "",
};
deletetUdiInfos(tquery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该产品信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
},
selectProduct() {
if (this.$isBlank(this.filterQuery.unitFk)) {
this.$message.error("请先选择供应商");
return;
}
this.selectProductVisible = true;
},
intentDetail() {
this.isImportUdi = false;
this.selectUdiDialogVisible = true;
},
addSelectErp(row) {
this.defaultSys = row.sysId;
this.isImport = false;
this.selectErpDialogVisible = true;
},
removeErp(row) {
this.$confirm("此操作将解除该绑定产品信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let query = {
relId: this.editQuery.id,
thirdSys: row.sysId
};
removeRl(query)
.then((response) => {
if (response.code == 20000) {
this.getThirdSysDetail()();
this.$message({
type: "success",
message: "删除成功",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
})
.catch(() => {
});
},
intentSelectErp(val) {
this.uuid = val.uuid;
this.relId = val.id;
this.isImport = false;
this.thisData = val;
this.selectErpDialogVisible = true;
},
intentImportErp(val) {
this.defaultSys = null;
this.uuid = val.uuid;
this.relId = val.id;
this.isImport = true;
this.thisData = val;
this.selectErpDialogVisible = true;
},
uploadSMP() {
var selectData = this.multipleSelection;
var keys = [];
selectData.forEach((obj) => {
keys.push(obj.id);
});
var tquery = {
keys: keys,
};
uploadSmp(tquery)
.then((response) => {
if (response.code == 20000) {
this.$message({
type: "success",
message: "上传成功",
});
} else {
this.$message({
type: "error",
message: response.message,
});
}
})
.catch(() => {
this.$message({
type: "error",
message: "上传失败",
});
});
},
intentSelectUdi(val) {
this.relId = val.id;
this.isImportUdi = true;
this.thisData = val;
this.selectLocalVisible = true;
},
intentImportUdi() {
this.relId = null;
this.selectLocalVisible = true;
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
cancelDialog() {
this.editDialogVisible = false;
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
handleModifyClick(row) {
this.uuid = row.uuid;
this.relId = row.rlId;
this.isImport = false;
this.thisData = row;
this.editDialogVisible = true;
this.detailQuery = row;
this.relevanceEdit = {
id: row.rlId,
// thirdId: row.thirdId,
isUseDy: row.isUseDy,
isDisable: row.isDisable,
isLock: row.isLock,
isAdavence: row.isAdavence,
};
this.checked = row.isUseDy == 1;
},
lockProducts(status) {
let selectData = this.multipleSelection;
let postQuery = {
ids: [],
lockStatus: status,
}
selectData.forEach((row) => {
postQuery.ids.push(row.rlId);
});
lockStatus(postQuery)
.then((response) => {
if (response.code == 20000) {
this.loading = false;
this.$message.success(response.data);
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
});
},
closeUdi(val) {
this.selectUdiDialogVisible = false;
this.selectErpDialogVisible = false;
this.selectLocalVisible = false;
this.getThirdSysDetail();
if (val) {
this.getList();
}
},
getThirdSysDetail() {
let query = {
id: this.relevanceEdit.id,
};
thirdSysDetail(query)
.then((response) => {
this.loading = false;
this.sysList = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.sysList = [];
});
},
getSysFilter() {
sysFilter()
.then((response) => {
this.loading = false;
this.filterList = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.filterList = [];
});
},
uploadErpProduct() {
updateErpProduct()
.then((response) => {
if (response.code == 20000) {
this.$message({
type: "success",
message: response.data,
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
selectVersion() {
this.selectVersionVisible = true;
this.uuid = this.editQuery.uuid;
this.originUuid = this.editQuery.originUuid;
},
closeDialog() {
this.selectErpDialogVisible = false;
this.selectLocalVisible = false;
this.selectVersionVisible = false;
this.selectProductVisible = false;
this.getList();
},
onAddSubmit() {
if (this.checked == true) {
this.relevanceEdit.isUseDy = 1;
} else {
this.relevanceEdit.isUseDy = 0;
}
this.relevanceEdit.isDisable = this.editQuery.isDisable;
this.relevanceEdit.isLock = this.editQuery.isLock;
this.relevanceEdit.isAdavence = this.editQuery.isAdavence;
updatetUdiInfos(this.relevanceEdit)
.then((response) => {
this.loading = false;
this.getList();
this.cancelDialog();
})
.catch(() => {
this.loading = false;
this.cancelDialog();
});
},
selectSysParam() {
let query = {
paramKey: "smp_isUploadProuct",
};
spcombie().then((response) => {
if (response.code == 20000) {
if (response.data.paramValue == "1") {
this.isSpCombine = true;
} else {
this.isSpCombine = false;
}
}
});
selectSysParamByKey(query).then((response) => {
if (response.code == 20000) {
if (response.data.paramValue == "1") {
this.isUploadSmp = true;
} else {
this.isUploadSmp = false;
}
}
});
let query1 = {
paramKey: "upload_pi_file_enabled",
};
selectSysParamByKey(query1).then((response) => {
if (response.code == 20000) {
if (response.data.paramValue == "1") {
this.isImportFile = true;
}
}
});
let query2 = {
paramKey: "upload_pi_file_url",
};
selectSysParamByKey(query2).then((response) => {
if (response.code == 20000) {
this.uploadFileUrl = response.data.paramValue;
}
});
},
findMethod(query) {
this.fromOptions = [];
let cQuery = {
key: query,
corpType: 2,
page: 1,
limit: 10,
};
getBasicUnitMaintains(cQuery)
.then((response) => {
this.loading = false;
this.fromOptions = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.fromOptions = [];
});
},
}
,
mounted() {
}
,
components: {
selectUdi,
selectErp,
selectLocalUdi,
selectProduct,
selectDetail
}
,
created() {
// this.getList();
this.selectSysParam();
this.getSysFilter();
this.findMethod();
}
,
}
;
</script>
<style scoped>
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
.itemTag {
float: left;
text-align: left;
margin-top: 10px;
width: 25%;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
.el-row {
display: flex;
flex-wrap: wrap;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
}
.form-title {
font-size: 16px;
font-family: Noto Sans SC;
font-weight: bold;
color: #303133;
padding-bottom: 17px;
padding-top: 17px;
}
</style>