美的项目前端代码
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.
 
 
 
 
 

290 lines
9.5 KiB

<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div v-has="'excel:import:query'" class="table-page-search-wrapper">
<w-form @keyup.enter.native="searchQuery" layout="inline">
<w-row :gutter="10">
<w-col :xl="5" :lg="5" :md="8" :sm="24">
<w-date v-model="createTime" @change="
() => {
queryParam.createTime_begin = createTime[0]
queryParam.createTime_end = createTime[1]
}
" start-placeholder="创建开始时间" end-placeholder="创建结束时间" date-type="daterange" />
</w-col>
<w-col :xl="5" :lg="5" :md="8" :sm="24">
<j-dict-select-tag v-model="queryParam.status" placeholder="请选择状态" dict-code="JobStatus" />
</w-col>
<template v-if="toggleSearchStatus">
<w-col :xl="5" :lg="5" :md="8" :sm="24">
<w-input v-model="queryParam.userId" placeholder="请输入用户ID" />
</w-col>
<w-col :xl="5" :lg="5" :md="8" :sm="24">
<w-input v-model="queryParam.compNo" placeholder="请输入企业编码" />
</w-col>
<w-col :xl="5" :lg="5" :md="8" :sm="24">
<w-input v-model="queryParam.modelCode" placeholder="请输入模板类型" />
</w-col>
</template>
<w-col :xl="5" :lg="5" :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<w-button @click="searchQuery" type="primary" icon="search">查询</w-button>
<w-button @click="searchReset2" type="primary" style="margin-left: 8px">重置</w-button>
<a class="unfold-fold-status" @click="handleToggleSearch">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
</a>
</span>
</w-col>
</w-row>
</w-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
</div>
<!-- table区域-begin -->
<div>
<a-table ref="table" :id="refColumnsKey" :columns="refColumns" :data-source="dataSource"
:scroll="getTableScroll(1200)" :pagination="ipagination" :custom-header-row="customHeaderRow" :loading="loading"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" size="middle"
@change="handleTableChange" bordered :components="resizableComponents" row-key="id"
class="j-table-force-nowrap">
<template slot="statusScoped" slot-scope="text, record">
<span :style="colorShow(record.status)" v-html="text"></span>
</template>
<span slot="fileDownload" slot-scope="text, record">
<div v-has="'excel:import:down'">
<a @click="downloadExcelFile(record, 1)">下载</a>
</div>
</span>
<span slot="errorFileDownload" slot-scope="text, record">
<div v-has="'excel:import:down'">
<a v-if="record.status === 3 && !(record.fileError === null || record.fileError === '')"
@click="downloadExcelFile(record, 2)">下载</a>
</div>
</span>
<span slot="action" slot-scope="text, record">
<!-- <a @click="handleEdit(record)">编辑</a> -->
<a @click="handleDetail(record)">详情</a>
</span>
<!-- 字符串超长截取省略号显示-->
<span slot="remark" slot-scope="text">
<j-ellipsis :value="text" :length="10" />
</span>
<span slot="runtime" slot-scope="text">
<a> {{ text }} </a>
</span>
</a-table>
</div>
<w-table-columns-win ref="choose" @columnsChange="columnsChange" @resetColumns="resetColumns" :columns="columns" />
<excel-import-task-modal ref="modalForm" @ok="modalFormOk" />
</a-card>
</template>
<script>
import { JeecgListMixin, WGridResizeByCssMixin } from '@/mixins/JeecgListMixin'
import { mixinDevice } from '@/utils/mixin'
import ExcelImportTaskModal from './modules/ExcelImportTaskModal'
export default {
name: 'ExcelImportTaskList',
mixins: [JeecgListMixin, mixinDevice, WGridResizeByCssMixin],
components: {
ExcelImportTaskModal,
},
data() {
return {
description: 'EXCEL导入任务管理页面',
// 表头
columns: [
{
title: '#',
dataIndex: '',
key: 'rowIndex',
width: 40,
align: 'center',
customRender: function (t, r, index) {
return parseInt(index) + 1
},
},
{
title: '创建时间',
align: 'center',
dataIndex: 'createTime',
width: 130,
sorter: true,
},
{
title: '状态',
align: 'center',
dataIndex: 'status_dictText',
scopedSlots: { customRender: 'statusScoped' },
width: 80,
sorter: true,
},
{
title: '模板名称',
align: 'center',
dataIndex: 'modelName',
width: 130,
ellipsis: true,
sorter: true,
},
{
title: '模板编码',
align: 'center',
dataIndex: 'modelCode',
width: 220,
ellipsis: true,
sorter: true,
},
{
title: '模板类型',
align: 'center',
dataIndex: 'modelType',
width: 220,
ellipsis: true,
sorter: true,
},
{
title: '开始时间',
align: 'center',
dataIndex: 'startTime',
width: 150,
ellipsis: true,
sorter: true,
},
{
title: '结束时间',
align: 'center',
dataIndex: 'endTime',
width: 150,
ellipsis: true,
sorter: true,
},
{
title: '耗时',
align: 'center',
dataIndex: 'runtime',
scopedSlots: { customRender: 'runtime' },
width: 100,
ellipsis: true,
sorter: true,
},
{
title: '用户ID',
align: 'center',
dataIndex: 'userId',
width: 80,
ellipsis: true,
sorter: true,
},
{
title: '用户名',
align: 'center',
dataIndex: 'userName',
width: 80,
ellipsis: true,
sorter: true,
},
{
title: '企业编码',
align: 'center',
dataIndex: 'compNo',
width: 100,
ellipsis: true,
sorter: true,
},
{
title: '企业名',
align: 'center',
dataIndex: 'compName',
width: 200,
ellipsis: true,
sorter: true,
},
{
title: '文件名',
align: 'center',
dataIndex: 'fileName',
width: 200,
ellipsis: true,
sorter: true,
},
{
title: '数据文件',
align: 'center',
dataIndex: 'filePath',
scopedSlots: { customRender: 'fileDownload' },
width: 120,
ellipsis: true,
sorter: true,
},
{
title: '错误文件',
align: 'center',
dataIndex: 'fileError',
scopedSlots: { customRender: 'errorFileDownload' },
width: 120,
ellipsis: true,
sorter: true,
},
{
title: '备注',
align: 'center',
dataIndex: 'remark',
scopedSlots: { customRender: 'remark' },
width: 120,
ellipsis: true,
},
],
url: {
list: '/sys/excel/import/task/list',
delete: '/sys/excel/import/task/delete',
deleteBatch: '/sys/excel/import/task/deleteBatch',
exportXlsUrl: '/sys/excel/import/task/exportXls',
importExcelUrl: '/sys/excel/import/task/importExcel',
downloadUrl: '/sys/excel/download',
},
dictOptions: {},
superFieldList: [],
createTime: [],
}
},
created() {
this.getSuperFieldList()
},
methods: {
initDictConfig() { },
getSuperFieldList() {
const fieldList = []
fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' })
fieldList.push({ type: 'string', value: 'status', text: '状态', dictCode: '' })
fieldList.push({ type: 'datetime', value: 'startTime', text: '开始时间' })
fieldList.push({ type: 'datetime', value: 'endTime', text: '结束时间' })
fieldList.push({ type: 'string', value: 'userId', text: '用户ID', dictCode: '' })
fieldList.push({ type: 'string', value: 'userName', text: '用户名', dictCode: '' })
fieldList.push({ type: 'string', value: 'compNo', text: '企业编码', dictCode: '' })
fieldList.push({ type: 'string', value: 'compName', text: '企业名', dictCode: '' })
fieldList.push({ type: 'string', value: 'modelCode', text: '模板类型', dictCode: '' })
fieldList.push({ type: 'string', value: 'filePath', text: '文件路径', dictCode: '' })
fieldList.push({ type: 'string', value: 'fileName', text: '上传文件名', dictCode: '' })
fieldList.push({ type: 'string', value: 'fileError', text: '错误文件路径', dictCode: '' })
fieldList.push({ type: 'string', value: 'remark', text: '备注', dictCode: '' })
this.superFieldList = fieldList
},
searchReset2() {
this.createTime = []
this.searchReset()
},
},
}
</script>