<template> <a-card :bordered="false" :class="'cust-erp-sub-tab'"> <div> <a-table ref="table" size="middle" bordered rowKey="id" :scroll="{x:true}" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" @change="handleTableChange"> <span slot='companyCode' slot-scope='companyCode'> <a-tag :key='companyCode' color='blue'> {{ solutionCompany(companyCode) }} </a-tag> </span> <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText"> <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)"> {{ inventoryStatus_dictText }} </a-tag> </span> <template slot="htmlSlot" slot-scope="text"> <div v-html="text"></div> </template> <template slot="imgSlot" slot-scope="text"> <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> </template> <template slot="fileSlot" slot-scope="text"> <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)"> 下载 </a-button> </template> <span slot="action" slot-scope="text, record"> </span> </a-table> </div> </a-card> </template> <script> import {JeecgListMixin} from '@/mixins/JeecgListMixin' import { getCompanyList } from '@api/api' export default { name: "TaskDetailHistoryList", mixins: [JeecgListMixin], components: {}, props: { mainId: { type: String, default: '', required: false } }, watch: { mainId: { immediate: true, handler(val) { if (!this.mainId) { this.clearList() } else { this.queryParam['taskHeaderId'] = val this.loadData(1); } } } }, data() { return { description: '任务表管理页面', disableMixinCreated: true, companyList: [], // 表头 columns: [ { title: '任务详情ID', align: "center", dataIndex: 'id' }, { title: '货主', align: "center", dataIndex: 'companyCode', key: 'companyCode', scopedSlots: {customRender: 'companyCode'} }, { title: '物料编码', align: "center", dataIndex: 'materialCode' }, { title: '物料名称', align: "center", dataIndex: 'materialName' }, { title: '物料规格', align: "center", dataIndex: 'materialSpec' }, { title: '物料单位', align: "center", dataIndex: 'materialUnit' }, { title: '数量', align: "center", dataIndex: 'qty' }, { title: '批次', align: "center", dataIndex: 'batch' }, { title: '库存状态', align: "center", dataIndex: 'inventoryStatus_dictText', scopedSlots: {customRender: 'inventoryStatus_dictText'} }, { title: '创建人', align: "center", dataIndex: 'createBy' }, { title: '创建日期', align: "center", dataIndex: 'createTime' }, { title: '更新人', align: "center", dataIndex: 'updateBy' }, { title: '更新日期', align: "center", dataIndex: 'updateTime' } ], url: { list: "/taskHeaderHistory/taskHeaderHistory/listTaskDetailHistoryByMainId", }, dictOptions: { taskType: [], isEmptyOut: [], isDoubleIn: [], status: [], } } }, created() { this.loadFrom(); }, computed: { }, methods: { getStatusColor(status) { const colors = { '良品': 'green', '报废品': 'purple', '待确认 ': 'grey', '次品': 'red', default: 'blue' }; return colors[status] || colors.default; }, loadFrom() { getCompanyList().then((res) => { if (res.success) { this.companyList = res.result } }); }, solutionCompany(value) { var actions = [] Object.keys(this.companyList).some((key) => { if (this.companyList[key].code == ('' + value)) { actions.push(this.companyList[key].name) return true } }) return actions.join('') }, clearList() { this.dataSource = [] this.selectedRowKeys = [] this.ipagination.current = 1 }, } } </script> <style scoped> @import '~@assets/less/common.less' </style>