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/src/views/business/stockOrderNewSelectProduct.vue

348 lines
13 KiB
Vue

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<template>
<div>
<el-card class="el-card">
<div>
<el-form :inline="true" :model="listQuery" size="mini">
<el-row style="margin-top: 15px;width: 1000px">
<el-form-item class="query-form-item">
<el-input v-model="listQuery.udiCode"
style="width: 600px"
placeholder="请扫描或输入UDI码"
clearable="true"
@keyup.enter.native="keyup_submit($event)"></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item class="query-form-item">
<el-input v-model="listQuery.unionCode" placeholder="DI/医保编码/商品条码"
clearable="true"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="listQuery.cpmctymc" placeholder="产品通用名" clearable="true"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="listQuery.ggxh" placeholder="规格型号" clearable="true"></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item class="query-form-item">
<el-input v-model="listQuery.ylqxzcrbarmc" placeholder="生产企业/注册备案人"
clearable="true"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-input v-model="listQuery.thrPiId" placeholder="第三方产品编码" clearable="true"></el-input>
</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="getList">查询</el-button>
<el-button type="primary" icon="search" @click="combine">确定</el-button>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table
:data="dataList"
style="width: 100%"
highlight-current-row="false"
v-loading="loading"
:row-class-name="tableRowClassName"
@current-change="handleChange"
ref="multipleTable"
>
<el-table-column
type="selection"
width="55">
</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>
<el-pagination
:page-size="listQuery.limit"
@current-change="handleErpPageChange"
layout="prev, pager, next"
:total="pageTotal"
></el-pagination>
</div>
</el-card>
</div>
</template>
<script>
import {
getStockOrderDetailInstrumentById,
stockOrderDetailFilterProduct
} from "../../api/inout/stockOrder";
import store from "../../store";
export default {
name: "closeDialog",
props: {
data: {
type: Object,
required: true,
},
closeDialog: {
type: Function,
required: true,
},
},
data() {
return {
listQuery: {
billNo: "",
page: 1,
limit: 10,
},
combineQuery: {
thirdId: "",
relId: "",
erpName: "",
keys: [],
},
dataList: [],
pageTotal: 1,
total: 1,
currentRow: null,
loading: false,
multipleUdiSelection: [],
thirdSys: [],
thirdSysFk: null,
busTypes: [],
actDateRange: [],
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]);
},
},
],
},
orderEditor: false,
orderId: "",
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.listQuery = {
unionCode: null,
udiCode: null,
ylqxzcrbarmc: "",
cpmctymc: "", thrPiId: null,
nameCode: "",
ggxh: null,
page: 1,
limit: 20,
addType: 1,
};
this.getList();
},
tableRowClassName({row}) {
if (row.checked) return "warning-row";
return "";
},
checkSelectable(row) {
return !row.check;
},
handleCurrentChange(val) {
this.unionQuery.page = val;
this.getList();
},
handleChange(val) {
console.log(val);
this.currentRow = val;
},
handleErpPageChange(val) {
this.listQuery.page = val;
this.getList();
},
keyup_submit(event) {
this.listQuery.page = 1;
this.getList();
event.target.select();
},
getList() {
this.loading = true;
this.listQuery.customerId = store.getters.customerId;
stockOrderDetailFilterProduct(this.listQuery)
.then((response) => {
console.log(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;
});
},
intentBack() {
this.closeDialog();
},
combine() {//012693548470801311200226172302271020022632100025
// if (this.$isBlank(this.currentRow.id)) {
// return;
// }
let selection = this.$refs.multipleTable.selection;
if (selection.length < 1) {
this.$message.error('未选择产品');
return;
}
let ids = [];
selection.forEach((obj, index) => {
ids.push(obj.id);
});
this.loading = true;
let tQuery = {
ids: ids,
stockOrderLists: this.data.stockOrderLists,
};
getStockOrderDetailInstrumentById(tQuery).then((response) => {
this.loading = false;
if (response.code === 20000) {
this.closeDialog(response.data);
} else {
this.$message.error(response.message);
}
}).catch(() => {
this.loading = false;
});
// let tQuery = {
// id: this.currentRow.id
// };
// if (this.orderEditor) {
// tQuery.orderId = this.orderId;
// console.log(tQuery)
// addStockOrderDetailFromCodeById(tQuery).then((response) => {
// this.loading = false;
// if (response.code === 20000) {
// this.closeDialog(response);
// } else {
// this.$message.error(response.message);
// }
// }).catch(() => {
// this.loading = false;
// });
// } else {
// getStockOrderDetailInstrumentById(tQuery).then((response) => {
// this.loading = false;
// if (response.code === 20000) {
// this.closeDialog(response.data);
// } else {
// this.$message.error(response.message);
// }
// }).catch(() => {
// this.loading = false;
// });
// }
},
handleSelectionUdiChange(val) {
console.log("----" + val);
this.multipleUdiSelection = val;
},
},
created() {
if (this.$isNotBlank(this.data)) {
console.log(this.data.stockOrderLists);
this.listQuery.nameCode = this.data.udi;
this.orderEditor = this.data.orderEditor;
this.orderId = this.data.orderId;
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>