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/inout/DialogSelectProduct.vue

335 lines
9.4 KiB
Vue

<template>
<div>
<el-card class="el-card">
<el-form :model="listQuery" size="mini" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="18">
<el-form-item class="query-form-item" label="UDI码:">
<el-input v-model="listQuery.udiCode"
style="width: 97%"
placeholder="请扫描或输入UDI码"
clearable="true"
@keyup.enter.native="keyup_submit($event)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item class="query-form-item" label="产品编码:">
<el-input v-model="listQuery.unionCode" placeholder="DI/医保编码/商品条码"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="产品通用名:">
<el-input v-model="listQuery.cpmctymc" placeholder="产品通用名" clearable="true"
style="width: 90%"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="规格型号:">
<el-input v-model="listQuery.ggxh" placeholder="规格型号" clearable="true"
style="width: 90%"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item class="query-form-item" label="注册备案人:">
<el-input v-model="listQuery.ylqxzcrbarmc" placeholder="生产企业/注册备案人"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="外部产品编码:">
<el-input v-model="listQuery.thrPiId" placeholder="第三方产品编码"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<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-check" @click="confirmSelect">确定</el-button>
</el-button-group>
</div>
<el-table
:data="dataList"
style="width: 100%"
highlight-current-row="false"
v-loading="loading"
border
@current-change="handleChange"
ref="multipleTable"
>
<el-table-column label width="45">
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="最小销售产品标识"
prop="nameCode"
width="140"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="产品编码"
prop="thirdId"
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="qxlb"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="配送企业"
prop="companyName"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作" width="160">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="handleDetailClick(scope.row)"
>详情
</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
:page-size="listQuery.limit"
@current-change="handleErpPageChange"
layout="prev, pager, next"
:total="pageTotal"
:current-page="listQuery.page"
></el-pagination>
</el-card>
<el-dialog title="请选择对应的资质证书" :visible.sync="dialogFormVisible" append-to-body width="40%">
<el-form :model="form">
<el-form-item label="" prop="isGive">
<el-radio-group v-model="currentCert">
<el-radio :label="item" :key="item" v-for="item in certList">{{ item }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="selectCert">确 定</el-button>
<el-button @click="dialogFormVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {getUdiInfos} from "@/api/basic/product/udiRelevance";
import {addBizProduct} from "@/api/inout/orderDetailCode";
import {filterCompanyProductRelevance} from "@/api/basic/udiRlSuptRelevance";
export default {
name: "stockOrderNewSelectProduct",//选入耗材字典产品对话框
props: {
data: {
type: Object,
required: true,
},
closeDialog: {
type: Function,
required: true,
},
filterType: {
type: Function,
required: true,
},
},
data() {
return {
loading: false,
showSearch: true,
listQuery: {
udiCode: null,
cpmctymc: null,
ggxh: null,
ylqxzcrbarmc: null,
thrPiId: null,
page: 1,
limit: 10,
},
dataList: [],
pageTotal: 1,
total: 1,
radioCheck: null,
currentRow: null,
//选择资质证书
dialogFormVisible: false,
currentCert: null,
certList: [],
};
},
methods: {
onReset() {
this.listQuery = {
udiCode: null,
cpmctymc: null,
ggxh: null,
ylqxzcrbarmc: null,
thrPiId: null,
page: 1,
limit: 10,
}
this.radioCheck = null;
this.currentRow = null;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
search() {
this.listQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
filterCompanyProductRelevance(this.listQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.dataList = response.data.list || [];
this.pageTotal = response.data.total || 0;
} else {
this.$message.error(response.message);
this.dataList = [];
this.pageTotal = 0;
}
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.pageTotal = 0;
});
},
keyup_submit(event) {
this.listQuery.page = 1;
this.getList();
event.target.select();
},
handleChange(val) {
this.radioCheck = val.id;
this.currentRow = val;
},
confirmSelect() {
if (this.radioCheck == null) {
this.$message.error('未选择产品');
return;
}
let str = this.currentRow.zczbhhzbapzbh;
if (str.search(",") != -1) {
this.currentCert = null;
this.certList = str.split(',');
this.dialogFormVisible = true;
} else {
this.combine();
}
},
selectCert() {
if (this.currentCert == null) {
this.$message.error("请先选择对应的注册证!");
} else {
this.currentRow.zczbhhzbapzbh = this.currentCert;
this.combine();
}
},
combine() {
let data = {
relId: this.currentRow.rlId,
supId: this.currentRow.customerId,
zczbhhzbapzbh: this.currentRow.zczbhhzbapzbh,
orderEntity: this.data,
}
this.loading = true;
addBizProduct(data)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.closeDialog(response.data);
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.pageTotal = 0;
});
},
},
components: {}
,
created() {
this.getList();
}
,
}
;
</script>
<style scoped>
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
div /deep/ .el-table .warning-row {
background: #bebebe;
}
div /deep/ .el-table .success-row {
background: #ffffff;
}
</style>