<template>
|
<div>
|
<div>
|
<div class="content-main">
|
<div class="top-bar">
|
<el-form ref="form" :inline="true" :model="searchData">
|
<el-form-item label="委托编号:" class="sermargin">
|
<el-input
|
v-model="searchData.code"
|
class="input-form"
|
placeholder="请输入"
|
>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="样品名称:" class="sermargin">
|
<el-input
|
v-model="searchData.name"
|
class="input-form"
|
placeholder="请输入"
|
>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="委托单位:" style="margin-right: 20px;">
|
<el-select v-model="searchData.department" placeholder="全部">
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="search">查询</el-button>
|
<el-button type="primary" plain @click="reset">重置</el-button>
|
</el-form-item>
|
</el-form>
|
<el-form class="rightForm">
|
<!-- 显示新增委托的网址链接 -->
|
<div v-show="showlinkDiv === true">
|
<span style="font-size: 12px;">{{ textToCopy }}</span>
|
<el-button type="text" @click="copyText" style="margin-left: 30px;">{{ copied ===false?'复制':'已复制' }}</el-button>
|
</div>
|
<el-button class="rightBtn" type="primary" @click="showLink">新增委托</el-button>
|
</el-form>
|
</div>
|
<div class="library-table">
|
<div class="table-header">
|
<div class="search-bar">
|
<el-radio-group v-model="radioValue" @change="radioclick">
|
<el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
|
{{ item.label }}
|
</el-radio-button>
|
</el-radio-group>
|
</div>
|
<div class="generateInsp">
|
<el-button type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">生成报检单</el-button>
|
</div>
|
</div>
|
<div class="table-box">
|
<el-table
|
ref="commisionTable"
|
:max-height="800"
|
:cell-style="{textAlign: 'center'}"
|
:header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
|
:data="commisionTable"
|
style="width: 100%"
|
>
|
<el-table-column
|
type="selection"
|
min-width="10%"
|
/>
|
<el-table-column
|
type="index"
|
label="序号"
|
min-width="10%"
|
/>
|
<el-table-column
|
prop="entrust_coding"
|
label="委托编号"
|
min-width="10%"
|
/>
|
<el-table-column
|
prop="entrusted"
|
label="委托单位"
|
min-width="12%"
|
/>
|
<el-table-column
|
prop="samples_number"
|
label="样品编号"
|
min-width="8%"
|
/>
|
<el-table-column
|
prop="sample_name"
|
label="样品名称"
|
min-width="8%"
|
/>
|
<el-table-column
|
prop="specifications_models"
|
label="规格型号"
|
min-width="12%"
|
/>
|
<el-table-column
|
prop="dateSurvey"
|
label="送达时间"
|
min-width="8%"
|
/>
|
<el-table-column
|
prop="completionDeadline"
|
label="完成期限"
|
min-width="8%"
|
/>
|
<el-table-column
|
prop="contacts"
|
label="委托编制人"
|
min-width="8%"
|
/>
|
<el-table-column
|
prop="inspectionTime"
|
label="检验日期"
|
min-width="8%"
|
/>
|
<el-table-column
|
prop="inspection_status"
|
label="状态"
|
min-width="8%">
|
<template slot-scope="scope">
|
<div v-if="scope.row.inspection_status === 1">
|
<span style="color: green;">已检测</span>
|
</div>
|
<div v-else>
|
<span style="color: red;">待检测</span>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column
|
label="操作"
|
min-width="8%"
|
>
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click="handleClick(scope.row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<!-- 分页器 -->
|
<div>
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="currentPage"
|
:page-sizes="[5, 10, 20]"
|
:page-size="pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="total">
|
</el-pagination>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import { getCommisionList } from '@/api/inspection/commisioninspection'
|
export default {
|
data() {
|
return {
|
form: [],
|
searchData: {
|
code: '',
|
name: '',
|
department: ''
|
},
|
options: [{
|
value: '1',
|
label: '部门1'
|
}],
|
radioValue: 0,
|
commisionTable: [{
|
specifications_models: "GGXH-AAAAA",
|
inspectionTime: "2023-08-03",
|
id: 2,
|
samples_number: 0,
|
dateSurvey: "2023-08-03",
|
entrusted: "阿里巴巴",
|
completionDeadline: "2023-08-03",
|
contacts: "小黑",
|
entrust_coding: "SL20230803000003",
|
sample_name: "发动机",
|
inspection_status: 1
|
}],
|
conditionsOptions: [
|
{
|
label: '全部',
|
value: 0
|
},
|
{
|
label: '已检验',
|
value: 1
|
},
|
{
|
label: '待检验',
|
value: 2
|
}
|
],
|
currentPage: 1,
|
pageSize: 5,
|
total: 100,
|
showlinkDiv: false,
|
copied: false,
|
textToCopy: 'http://localhost:8080/#/addCommision'
|
}
|
},
|
created() {
|
this.getCommisionList()
|
},
|
// updated() {
|
// if (this.$router.currentRoute.name === 'AddCommision') {
|
// // console.log(this.$router.currentRoute.name)
|
// this.showDetail = true
|
// }
|
// },
|
methods: {
|
copyText() {
|
this.$copyText(this.textToCopy)
|
.then(() => {
|
this.copied = true;
|
// setTimeout(() => {
|
// this.copied = false;
|
// }, 2000);
|
})
|
.catch(error => {
|
console.log('复制失败',error);
|
});
|
},
|
async getCommisionList(){
|
const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize})
|
this.commisionTable = res.data.row
|
this.total = res.data.total
|
// console.log(res)
|
// 获取所有的委托单位名称
|
const allDepartmentNames = [...new Set(this.commisionTable.map(item => item.entrusted))]
|
// 将allDepartmentNames转换为options需要的格式
|
this.options = allDepartmentNames.map(name => ({ value: name, label: name }))
|
|
},
|
// 查询方法
|
async search() {
|
// 将搜索条件作为参数传递给getCommisionList方法
|
let res
|
if(this.radioValue === 0){
|
res = await getCommisionList({
|
pageNo: this.currentPage,
|
pageSize: this.pageSize,
|
entrustCoding: this.searchData.code,
|
sampleName: this.searchData.name,
|
entrusted: this.searchData.department,
|
})
|
}else{
|
res = await getCommisionList({
|
pageNo: this.currentPage,
|
pageSize: this.pageSize,
|
entrustCoding: this.searchData.code,
|
sampleName: this.searchData.name,
|
entrusted: this.searchData.department,
|
inspectionStatus: this.radioValue
|
})
|
}
|
// console.log(res)
|
this.commisionTable = res.data.row
|
this.total = res.data.total
|
},
|
|
// 重置方法
|
reset() {
|
// 重置搜索条件
|
this.searchData.code = ''
|
this.searchData.name = ''
|
this.searchData.department = ''
|
this.radioValue = 0
|
// 重新获取数据
|
this.getCommisionList()
|
},
|
async radioclick(){
|
// 处理点击radio的时间
|
console.log('radioValue',this.radioValue)
|
if(this.radioValue === 0){
|
this.getCommisionList()
|
}else{
|
const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue})
|
// console.log(res)
|
this.commisionTable = res.data.row
|
this.total = res.data.total
|
}
|
|
},
|
// 每页条数改变时触发 选择一页显示多少行
|
async handleSizeChange(val) {
|
// console.log(`每页 ${val} 条`)
|
this.currentPage = 1
|
this.pageSize = val
|
if(this.radioValue === 0){
|
this.getCommisionList()
|
}else{
|
const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue})
|
this.commisionTable = res.data.row
|
this.total = res.data.total
|
}
|
},
|
// 当前页改变时触发 跳转其他页
|
async handleCurrentChange(val) {
|
// console.log(`当前页: ${val}`)
|
this.currentPage = val
|
if(this.radioValue === 0){
|
this.getCommisionList()
|
}else{
|
const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue})
|
this.commisionTable = res.data.row
|
this.total = res.data.total
|
}
|
},
|
showLink() {
|
this.showlinkDiv = true
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
|
.top-bar{
|
margin: -25px -15px;
|
background: #fff;
|
display: flex;
|
justify-content: space-between;
|
padding: 5px 24px 0px 24px;
|
.sermargin{
|
margin-right: 60px;
|
}
|
.rightForm{
|
display: flex;
|
justify-content: space-between;
|
/* background-color: #bfa; */
|
height: 40px;
|
line-height: 40px;
|
>div{
|
padding: 0px 10px;
|
padding-bottom: 10px;
|
border:1px solid rgb(8, 156, 230);
|
margin-right: 10px;
|
/* height: 40px;
|
line-height: 40px; */
|
}
|
.rightBtn{
|
background-color: rgb(1, 102, 226);
|
}
|
}
|
}
|
|
.library-table{
|
background-color: #fff;
|
flex: 1;
|
margin: 0px -15px;
|
margin-top: 40px;
|
display: flex;
|
flex-direction: column;
|
.table-header{
|
padding: 20px;
|
display: flex;
|
justify-content: space-between;
|
.el-form-item{
|
margin-bottom: 30px !important;
|
}
|
}
|
.table-box{
|
padding: 0px 20px;
|
margin-top: 0px;
|
flex: 1;
|
background: #fff;
|
/* padding: 20px 20px 10px 20px; */
|
display: flex;
|
flex-direction: column;
|
.el-table {
|
flex: 1;
|
}
|
>div:nth-child(2){
|
display: flex;
|
justify-content: end;
|
margin: 10px 0;
|
}
|
}
|
}
|
|
</style>
|