You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
484 lines
13 KiB
484 lines
13 KiB
<template>
|
|
<div class="container">
|
|
<div class="tabs">
|
|
<div class="headerText">
|
|
<div class="searchP">查询条件</div>
|
|
</div>
|
|
<el-form ref="form1" :model="form1" label-width="100px">
|
|
<div style="margin-top: 10px">
|
|
<el-row>
|
|
<el-col :span="7">
|
|
<el-form-item label="产品名称">
|
|
<el-input
|
|
v-model="form1.cpmc"
|
|
placeholder="请输入产品名称"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="7">
|
|
<el-form-item label="备案编号">
|
|
<el-input
|
|
v-model="form1.babm"
|
|
placeholder="请输入备案编号"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="7">
|
|
<el-form-item label="生产企业">
|
|
<el-input
|
|
v-model="form1.scqy"
|
|
placeholder="请输入生产企业"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="7">
|
|
<el-form-item label="注册证编号">
|
|
<el-input
|
|
v-model="form1.name"
|
|
placeholder="请输入注册证编号"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="7">
|
|
<el-form-item label="化妆品类型" placeholder="请输入化妆品类型">
|
|
<el-select
|
|
v-model="types"
|
|
placeholder="请选择化妆品类型"
|
|
@change="changeType"
|
|
>
|
|
<el-option
|
|
v-for="item in options"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value"
|
|
>
|
|
</el-option>
|
|
</el-select> </el-form-item
|
|
></el-col>
|
|
</el-row>
|
|
</div>
|
|
</el-form>
|
|
<div class="footBox">
|
|
<el-button icon="el-icon-refresh-left" @click="reset">重置</el-button>
|
|
<el-button type="primary" icon="el-icon-search" @click="searchList"
|
|
>查询</el-button
|
|
>
|
|
</div>
|
|
</div>
|
|
<div class="tabsBottom">
|
|
<div class="foot-main">
|
|
<div class="headerText">
|
|
<div class="searchP">产品列表</div>
|
|
</div>
|
|
<div class="exportBtn">
|
|
<el-button
|
|
type="primary"
|
|
icon="el-icon-edit-outline"
|
|
@click="exportList()"
|
|
>导出</el-button
|
|
>
|
|
</div>
|
|
<section class="table-box">
|
|
<div class="table-item">
|
|
<el-table
|
|
v-loading="loading"
|
|
:data="tableData"
|
|
border
|
|
height="43vh"
|
|
:stripe="false"
|
|
>
|
|
<el-table-column type="selection" width="35" align="center" />
|
|
<el-table-column
|
|
type="index"
|
|
label="序号"
|
|
width="55"
|
|
align="center"
|
|
/>
|
|
<el-table-column label="产品名称" align="center">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.cpmc }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column :label="A2" align="center" width="230">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.bah || scope.row.pzrq }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column :label="A3" align="center" width="240">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.qymc || scope.row.sf }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="操作"
|
|
class-name="small-padding fixed-width"
|
|
width="140"
|
|
align="center"
|
|
>
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
size="mini"
|
|
plain
|
|
type="primary"
|
|
@click="toDetail(scope.row)"
|
|
>详情</el-button
|
|
>
|
|
<!-- <el-button size="mini" plain type="warning">编辑</el-button> -->
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</section>
|
|
<pagination
|
|
:total="total"
|
|
:page="form.current"
|
|
:limit="form.size"
|
|
@pagination="getPagination"
|
|
:current-page.sync="form.current"
|
|
></pagination>
|
|
</div>
|
|
</div>
|
|
<el-dialog title="提示" :visible.sync="showCK" width="30%">
|
|
<span>{{ src }}</span>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="closeDC()">取 消</el-button>
|
|
<el-button type="primary" @click="openDC()">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { download, dchzpsj } from "../../../api/archives/updata";
|
|
import { Notification, MessageBox, Message, Loading } from "element-ui";
|
|
export default {
|
|
components: {},
|
|
data() {
|
|
return {
|
|
//===========
|
|
loading: false,
|
|
tableData: [],
|
|
A1: "产品名称",
|
|
A2: "备案编码",
|
|
A3: "生产企业",
|
|
types: "1",
|
|
total: 0,
|
|
options: [
|
|
{
|
|
value: "1",
|
|
label: "国产化妆品",
|
|
},
|
|
{
|
|
value: "2",
|
|
label: "国产特殊化妆品",
|
|
},
|
|
{
|
|
value: "3",
|
|
label: "进口化妆品",
|
|
},
|
|
{
|
|
value: "4",
|
|
label: "进口特殊化妆品",
|
|
},
|
|
],
|
|
form1: {
|
|
babm: "",
|
|
cpmc: "",
|
|
name: "",
|
|
scqy: "",
|
|
},
|
|
form: {
|
|
size: 10,
|
|
current: 1,
|
|
},
|
|
jieliuShow: true,
|
|
|
|
loadA: null,
|
|
showCK: false,
|
|
src: "",
|
|
};
|
|
},
|
|
mounted() {},
|
|
created() {
|
|
this.changeType("1");
|
|
},
|
|
methods: {
|
|
openDC() {
|
|
this.showCK = false;
|
|
this.loadA = Loading.service({
|
|
text: "正在下载数据,请稍候",
|
|
spinner: "el-icon-loading",
|
|
background: "rgba(0, 0, 0, 0.7)",
|
|
});
|
|
let query1 = {
|
|
//导出使用区分化妆品类型 1为国产化妆品 2为国产特殊化妆品 3为进口化妆品 4为进口特殊化妆品
|
|
type: this.types,
|
|
//生产企业
|
|
scqy: this.form1.scqy,
|
|
//产品名称
|
|
cpmc: this.form1.cpmc,
|
|
//注册证编号
|
|
name: this.form1.name,
|
|
//备案编号
|
|
babm: this.form1.babm,
|
|
};
|
|
dchzpsj(query1)
|
|
.then((res) => {
|
|
console.log(res);
|
|
const blob = new Blob([res], { type: res.type });
|
|
// blob.text().then((res11) => console.log(res11));
|
|
console.log(blob.stream());
|
|
const link = document.createElement("a");
|
|
link.href = window.URL.createObjectURL(blob);
|
|
link.style.display = "none";
|
|
//到时候判断是哪个化妆品数据
|
|
link.download = this.filterTypes(this.types) + ".xlsx";
|
|
link.click();
|
|
this.loadA.close();
|
|
this.$message({
|
|
type: "success",
|
|
message: "导出成功",
|
|
});
|
|
})
|
|
.catch((err) => {
|
|
this.$message({
|
|
type: "info",
|
|
message: "导出失败",
|
|
});
|
|
});
|
|
},
|
|
closeDC() {
|
|
this.showCK = false;
|
|
this.$message({
|
|
type: "info",
|
|
message: "已取消导出",
|
|
});
|
|
},
|
|
exportList() {
|
|
this.src = `确定导出${
|
|
this.form1.cpmc ? `产品名称为${this.form1.cpmc}、` : ""
|
|
}${this.form1.babm ? `备案编号为${this.form1.babm}、` : ""}${
|
|
this.form1.scqy ? `生产企业为${this.form1.scqy}、` : ""
|
|
}${
|
|
this.form1.name ? `注册证编号为${this.form1.name}、` : ""
|
|
}${`化妆品类型为${this.filterTypes(this.types)}、`}数据吗?`;
|
|
this.showCK = true;
|
|
},
|
|
filterTypes(e) {
|
|
let arr = this.options.filter((value1) => {
|
|
return value1.value == e;
|
|
});
|
|
console.log(arr);
|
|
return arr[0].label;
|
|
},
|
|
jieliuFunc() {
|
|
if (this.jieliuShow) {
|
|
this.getData(this.types);
|
|
this.jieliuShow = false;
|
|
setTimeout(() => {
|
|
this.jieliuShow = true;
|
|
}, 3000);
|
|
} else {
|
|
this.$message("点击过快");
|
|
}
|
|
},
|
|
//去内嵌页面
|
|
toDetail(e) {
|
|
let data = "";
|
|
if (this.types == "1") {
|
|
data = e.bah;
|
|
} else if (this.types == "2") {
|
|
data = e.zczh;
|
|
} else if (this.types == "3") {
|
|
data = e.bah;
|
|
} else if (this.types == "4") {
|
|
data = e.zczh;
|
|
}
|
|
//利用type区分三种档案
|
|
//利用flag区分四种化妆品详情 然后分别调用不同的详情接口
|
|
this.$router.push({
|
|
path: `/cosmeticsDetail`,
|
|
query: { type: "1", flag: this.types, data },
|
|
});
|
|
},
|
|
//搜索
|
|
searchList() {
|
|
this.form.current = 1;
|
|
|
|
for (let i in this.form1) {
|
|
this.form[i] = this.form1[i];
|
|
}
|
|
this.jieliuFunc();
|
|
},
|
|
getPagination(e) {
|
|
console.log(e);
|
|
this.form.current = e.page;
|
|
this.form.size = e.limit;
|
|
this.chinaCosmetics();
|
|
},
|
|
//重置
|
|
reset() {
|
|
this.types = "1";
|
|
this.form1 = {
|
|
babm: "",
|
|
cpmc: "",
|
|
name: "",
|
|
scqy: "",
|
|
size: 10,
|
|
current: 1,
|
|
};
|
|
this.form = {
|
|
size: 10,
|
|
current: 1,
|
|
};
|
|
this.jieliuFunc();
|
|
},
|
|
//国产化妆品
|
|
async chinaCosmetics() {
|
|
this.loading = true;
|
|
let msg1 = await this.$api.cosmetics.domesticList(this.form);
|
|
this.tableData = msg1.data.records;
|
|
this.total = msg1.data.total;
|
|
this.form.size = msg1.data.size;
|
|
this.form.current = msg1.data.current;
|
|
this.loading = false;
|
|
},
|
|
//国产特殊化妆品
|
|
async chinaSpecialCosmetics() {
|
|
this.loading = true;
|
|
let msg1 = await this.$api.cosmetics.specialList(this.form);
|
|
this.tableData = msg1.data.records;
|
|
this.total = msg1.data.total;
|
|
this.form.size = msg1.data.size;
|
|
this.form.current = msg1.data.current;
|
|
this.loading = false;
|
|
},
|
|
//进口化妆品
|
|
async importCosmetics() {
|
|
this.loading = true;
|
|
let msg1 = await this.$api.cosmetics.importList(this.form);
|
|
this.tableData = msg1.data.records;
|
|
this.total = msg1.data.total;
|
|
this.form.size = msg1.data.size;
|
|
this.form.current = msg1.data.current;
|
|
this.loading = false;
|
|
},
|
|
//进口特殊化妆品
|
|
async importSpecialCosmetics() {
|
|
this.loading = true;
|
|
let msg1 = await this.$api.cosmetics.importSpecialList(this.form);
|
|
this.tableData = msg1.data.records;
|
|
this.total = msg1.data.total;
|
|
this.form.size = msg1.data.size;
|
|
this.form.current = msg1.data.current;
|
|
this.loading = false;
|
|
},
|
|
async getData(e) {
|
|
if (e == "1") {
|
|
this.A2 = "备案编码";
|
|
this.A3 = "生产企业";
|
|
this.chinaCosmetics();
|
|
} else if (e == "2") {
|
|
this.A2 = "批准日期";
|
|
this.A3 = "省份";
|
|
this.chinaSpecialCosmetics();
|
|
} else if (e == "3") {
|
|
this.A2 = "备案编码";
|
|
this.A3 = "生产企业";
|
|
this.importCosmetics();
|
|
} else if (e == "4") {
|
|
this.A2 = "批准日期";
|
|
this.A3 = "省份";
|
|
this.importSpecialCosmetics();
|
|
}
|
|
},
|
|
async changeType(e) {
|
|
// this.reset();
|
|
this.getData(e);
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
::v-deep .el-dialog:not(.is-fullscreen) {
|
|
margin-top: 30vh !important;
|
|
}
|
|
::v-deep .el-dialog__body {
|
|
padding: 15px;
|
|
}
|
|
::v-deep .el-select {
|
|
width: 100% !important;
|
|
}
|
|
.container {
|
|
height: 100%;
|
|
// overflow: auto;
|
|
background: #f2f2f2;
|
|
|
|
.headerText {
|
|
width: 100%;
|
|
padding: 10px 20px;
|
|
border-bottom: 1px solid #f2f3f5;
|
|
color: #323233;
|
|
font-size: 20px;
|
|
font-weight: bold;
|
|
.searchP {
|
|
position: relative;
|
|
cursor: pointer;
|
|
&::before {
|
|
content: "";
|
|
width: 78px;
|
|
height: 3px;
|
|
background: #1349c5;
|
|
position: absolute;
|
|
bottom: -10px;
|
|
}
|
|
}
|
|
}
|
|
.tabs {
|
|
width: 100%;
|
|
height: 30%;
|
|
background: #fff;
|
|
}
|
|
}
|
|
//===================
|
|
::v-deep .el-button--medium {
|
|
padding: 8px;
|
|
}
|
|
.footBox {
|
|
width: 100%;
|
|
text-align: center;
|
|
}
|
|
.tabsBottom {
|
|
height: 70%;
|
|
padding-top: 10px;
|
|
.foot-main {
|
|
height: 100%;
|
|
// min-height: 600px;
|
|
width: 100%;
|
|
background: white;
|
|
}
|
|
}
|
|
.exportBtn {
|
|
padding: 10px 20px;
|
|
}
|
|
.table-box {
|
|
padding: 0 20px;
|
|
.table-item {
|
|
}
|
|
}
|
|
.pagination {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 15px 20px;
|
|
}
|
|
::v-deep.el-table--medium .el-table__cell {
|
|
padding: 5.3px 0;
|
|
}
|
|
::v-deep .el-table {
|
|
overflow: auto;
|
|
}
|
|
</style>
|