<!--供应商年度考核列表--> <template> <div class="assess"> <div class="assess-inputs"> 供应商编号 <el-input v-model="selectInfo.supplierCode" style="width: 200px" placeholder="请输入编号" clearable class="assess-input"/> 供应商名称 <el-input v-model="selectInfo.supplierName" style="width: 200px" placeholder="请输入供应商名称" clearable class="assess-input"/> 考核年份 <el-select v-model="selectInfo.assessAnnual" class="assess-select" clearable placeholder="请选择年份" style="width: 150px"> <el-option v-for="item in assessAnnualOpts" :key="item.id" :label="item.name" :value="item.value" /> </el-select> 评价结果 <el-select v-model="selectInfo.annualAssessResult" class="assess-select" clearable placeholder="请选择考核结果" style="width: 150px"> <el-option v-for="item in assessResultOpts" :key="item.id" :label="item.name" :value="item.value" /> </el-select> <div class="assess-btns"> <el-button type="primary" class="assess-button" @click="selectData"> 查询 </el-button> <el-button type="primary" class="el-icon-refresh-right" @click="reset"> 重置 </el-button> </div> </div> <div class="assess-table"> <el-table :data="tableData.rows" :row-class-name="tableRowClassName" :header-cell-style="{ 'text-align': 'center', background: ' #2483b3', color: 'white', }" :row-style="{ 'text-align': 'center' }" style="width: 100%" > <el-table-column type="index" label="序号" width="100" /> <el-table-column prop="supplierCode" label="供应商编号" width="200" /> <el-table-column prop="supplierName" label="供应商名称" /> <el-table-column prop="supplierStatusName" label="供应商状态" width="100" /> <el-table-column prop="assessAnnualName" width="200" label="考核年度" /> <el-table-column prop="annualAssessResultName" width="200" label="考核结果" /> <el-table-column prop="annualAssessDate" width="200" label="考核日期" /> <el-table-column header-align="center" width="200" align="center" fixed="right" label="操作"> <template slot-scope="scope"> <el-button type="text" size="small" @click="historyDialog(scope.row)"> 历史考核 </el-button> <el-button type="text" size="small" @click="assessDialogClick(scope.row)"> 年度考核 </el-button> </template> </el-table-column> </el-table> <group-page v-model="isFristPage" :limit="limit" :total="total" :offset="offset" :count="tableData.total" @setOffset="setOffset" @setLimit="setLimit" /> </div> <history-assess-dialog ref="assessHis" /> <assess-dialog ref="assessDialog" @refreshList="selectData" :assess-annual-opts="assessAnnualOpts" :assess-result-opts="assessResultOpts" /> </div> </template> <script> import GroupPage from '../../components/mycomponent/groupPage.vue' import AssessDialog from '@/views/supplier/assessDialog' import HistoryAssessDialog from '@/views/supplier/historyAssessDialog' import { a_list } from '../../api/supplier/supplier' import { tableRowClassName } from '../../utils/myUtils/changeTableTr' import { listMixin } from '../../utils/myUtils/mixins/listPage' import { getDictByCode } from '@/api/system/dict' export default { // 加入分页逻辑 components: { HistoryAssessDialog, AssessDialog, GroupPage }, mixins: [listMixin], data() { return { dataInfo: {}, isShowHistoryDialog: false, isShowDialog: false, selectInfo: { supplierCode: '', supplierName: '', assessAnnual: '', annualAssessResult: '' }, assessAnnualOpts: [], assessResultOpts: [] } }, mounted() { this.getDictAssessAnnual() this.getDictAssessResult() }, methods: { tableRowClassName: tableRowClassName, getDictAssessAnnual() { getDictByCode('assessAnnual').then(response => { if (response.code === 200) { this.assessAnnualOpts = response.data } }) }, getDictAssessResult() { getDictByCode('evaluateResult').then(response => { if (response.code === 200) { this.assessResultOpts = response.data } }) }, historyDialog(row) { this.$refs.assessHis.initHistoryDialog(row) }, assessDialogClick(row) { this.$refs.assessDialog.initDialog(row) }, getListPage(limit = 10, offset = 1) { a_list(`limit=${limit}&offset=${offset}`, this.queryInfo).then(res => { this.tableData = res }) }, reset() { this.selectInfo = { // 搜索框中的数据的数据 supplierCode: '', supplierName: '', assessAnnual: '', annualAssessResult: '' } this.getListPage() } } } </script> <style lang="scss"> .assess { position: relative; width: 100%; min-height: 700px; height: 223px; overflow: auto; } .assess-inputs { position: relative; .assess-input { margin: 0 1rem 0 0.5rem; } .assess-select { margin: 0 1rem 0 0.5rem; } .assess-btns { position: absolute; right: 0; top: 0; .assess-button { margin-right: 1rem; } } } .assess-table { margin-top: 20px; } </style>