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.
spms-vue/src/views/thrsys/ThrDiProductsCheck.vue

299 lines
11 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 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-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.companyName"
filterable
remote
clearable="true"
reserve-keyword
placeholder="供应商"
:remote-method="findCompany"
:loading="loading"
>
<el-option
v-for="item in companyNames"
:key="item.companyName"
:label="item.companyName"
:value="item.companyName"
>
<span style="float: left">{{ item.companyName }}</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="search">查询</el-button>
</el-button-group>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="list" style="width: 100%">
<el-table-column label="产品标识" prop="nameCode" 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="ylqxzcrbarmc" show-overflow-tooltip></el-table-column>
<el-table-column label="注册证编号" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
<el-table-column label="审核状态" prop="status" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ checkMap[scope.row.status] }}</span>
</template>
</el-table-column>
<el-table-column label="审核意见" prop="remark" show-overflow-tooltip></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)"
>删除
</el-button>
<el-button type="text" size="small"
:disabled="scope.row.status==2"
@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"
:current-page="filterQuery.page"
></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"
>
<selectDiDetail :editQuery="thisData"></selectDiDetail>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="审核"
:visible.sync="checkVisible"
width="45%"
v-if="checkVisible">
<el-form>
<el-form-item>
审核意见
<el-input type="text" v-model="remark" style="width: 50%" placeholder="请输入审核意见"></el-input>
</el-form-item>
<el-form-item>
<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-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {getThrDiProducts, delThrDiProducts, getDiProductDetail, updateDiProduct} from "@/api/thrsys/thrProductsAddDi";
import selectDiDetail from "../basic/SelectDIDetailDialog"
import ThrProductsAdd from "@/views/thrsys/ThrProductsAdd";
import {filterCustomers} from "@/api/auth/customer";
export default {
data() {
return {
filterQuery: {
code: null,
name: "",
spec: null,
registerNo: null,
manufactory: null,
companyName: null,
supId: null,
page: 1,
limit: 20,
},
total: 0,
list: [],
uploadFileUrl: null,
fileList: [],
checkVisible: false,
newType: 1,
thrProductsDetailVisible: false,
thisData: null,
loading: false,
checkMap: {
1: "未审核",
2: "已审核",
3: "未通过",
},
companyNames: [],
curRow: null,
remark: null
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
code: null,
spec: null,
registerNo: null,
manufactory: null,
name: "",
companyName: null,
page: 1,
limit: 20,
};
this.getList();
},
checDialog(row) {
this.checkVisible = true;
this.curRow = row;
},
search() {
this.filterQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
getThrDiProducts(this.filterQuery)
.then((response) => {
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,
};
delThrDiProducts(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) {
let param = {uuid: row.uuid};
getDiProductDetail(param).then((res) => {
if (res.code === 20000) {
this.thisData = res.data;
this.thrProductsDetailVisible = true;
}
})
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
closeAddDialog() {
this.addProductVisible = false;
Object.keys(this.newProductData).forEach(key => this.newProductData[key] = null);
},
checkPass(val) {
let query = {
id: this.curRow.id,
status: val,
uuid: this.curRow.uuid,
customerId: this.curRow.customerId,
remark: this.remark
}
updateDiProduct(query).then((res) => {
if (res.code === 20000) {
this.getList();
this.checkVisible = false;
this.$message.success("操作成功");
} else {
this.$message.error(res.message);
}
}).catch((error) => {
this.$message.error(error.message);
})
},
findCompany(query) {
this.companyNames = [];
let cQuery = {
key: query,
};
filterCustomers(cQuery).then((res) => {
this.companyNames = res.data.list || [];
}).catch((error) => {
this.companyNames = [];
});
},
},
components: {
ThrProductsAdd, selectDiDetail
},
mounted() {
},
created() {
this.getList();
},
};
</script>