This commit is contained in:
姚亚男
2021-09-10 18:48:50 +08:00
parent 851174688f
commit ddc1863da4
4 changed files with 388 additions and 84 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,248 @@
<template>
<div>
<page-header-title :img-for-icon="IconImg"></page-header-title>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row>
<a-col :xl="5" :lg="5" :md="24" :sm="24">
<a-form-item label="文件名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入文件名称" v-model="queryParam.fileName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="5" :lg="5" :md="24" :sm="24">
<a-form-item label="用户名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入用户名称" v-model="queryParam.meetingName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="5" :lg="5" :md="24" :sm="24">
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入会议名称" v-model="queryParam.meetingName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="9" :lg="9" :md="24" :sm="24">
<a-form-item label="下载时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date
format="YYYY-MM-DD"
placeholder="请选择开始日期"
class="query-group-cust"
:disabled-date="disabledStartDate"
v-model="queryParam.startTime">
</j-date>
<span class="query-group-split-cust"></span>
<j-date
format="YYYY-MM-DD"
placeholder="请选择结束日期"
class="query-group-cust"
:disabled-date="disabledEndDate"
v-model="queryParam.endTime">
</j-date>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="5" :lg="5" :md="8" :sm="24">
<a-form-item label="企业名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入企业名称" v-model="queryParam.meetingName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span>
</a-col>
</a-row>
<div class="table-page-search-submitButtons">
<a-button icon="export" type="primary" class="opera-btn" @click="handleExportXls">导出</a-button>
</div>
</a-form>
</div>
<!--table start-->
<a-table
:data-source="dataSource"
:row-key="record => record.id"
:pagination="ipagination"
:loading="loading"
:columns="column"
@change="handleTableChange"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
>
<!--下载用户名称-->
<span slot="downloadName" class="action-span-cell" slot-scope="text, record">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<span>{{text}}</span>
</a-tooltip>
</span>
<!--文件名称-->
<span slot="fileName" class="action-span-cell" slot-scope="text, record">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<span @click="download(record)" style="color: #4B97FB;cursor: pointer">{{text}}</span>
</a-tooltip>
</span>
<!--企业名称-->
<span slot="companyName" class="action-span-cell" slot-scope="text, record">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<span>{{text}}</span>
</a-tooltip>
</span>
<!--目录层级-->
<span slot="filePath" class="action-span-cell" slot-scope="text, record">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<span>{{text}}</span>
</a-tooltip>
</span>
</a-table>
<!--table end-->
<j-modal
title="下载"
:width="400"
:visible="visible"
:confirmLoading="confirmLoading"
@ok="handleOk"
@cancel="handleCancel"
cancelText="关闭">
<div class="download-modal">
<img src="../../../assets/imgs/wenhao.png" alt="">确定下载资料吗?
</div>
</j-modal>
</a-card>
</div>
</template>
<script>
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import IconImg from '@/assets/imgs/icon/icon_committee.png'
import { JeroListMixin } from '@/mixins/JeroListMixin'
import { RangeDateMixin } from '@/mixins/RangeDateMixin'
import JDate from '@comp/tools/JDate'
export default {
name: 'DataDownloadRecord',
mixins: [ JeroListMixin,RangeDateMixin ],
components: { JDate, PageHeaderTitle },
data() {
return {
IconImg,
visible: false,
record: {},
confirmLoading: false,
labelCol: {
xl: { span: 6 },
xs: { span: 24 },
sm: { span: 24 }
},
labelCol1: {
xl: { span: 8 },
xs: { span: 24 },
sm: { span: 24 }
},
wrapperCol: {
xl: { span: 6 },
xs: { span: 24 },
sm: { span: 24 }
},
wrapperCol1: {
xl: { span: 16 },
xs: { span: 24 },
sm: { span: 24 }
},
column: [
{
title: '序号',
dataIndex: '',
key: 'rowIndex',
width: 80,
align: 'center',
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
{
title: '下载用户名称',
dataIndex: 'downloadName',
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'downloadName' }
},
{
title: '企业名称',
dataIndex: 'companyName',
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'companyName' }
},
{
title: '文件名称',
dataIndex: 'fileName',
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'fileName' }
},
{
title: '目录层级',
dataIndex: 'filePath',
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'filePath' }
},
{
title: '下载时间',
dataIndex: 'createTime',
align: 'center',
customRender: function(text) {
if (text) {
return text.split(' ')[0]
}else {
return ''
}
}
}
],
url: {
list: 'payFileDownloadRecord/payFileDownloadRecord/list',
exportXlsUrl: 'payFileDownloadRecord/payFileDownloadRecord/exportXls',
download: 'payFileDownloadRecord/payFileDownloadRecord/download'
}
}
},
methods: {
download(record) {
this.record = record
this.visible = true
},
handleOk() {
console.log(this.record.fileId)
},
handleCancel() {
this.visible = false
}
}
}
</script>
<style scoped lang="less">
.download-modal{
width: 100%;
display: flex;
justify-content: center;
align-items: center;
height: 100px;
img{
margin-right: 20px;
width: 50px;
}
}
</style>
@@ -38,14 +38,16 @@
format="YYYY-MM-DD"
placeholder="请选择开始日期"
class="query-group-cust"
v-model="queryParam.startTime">
v-model="queryParam.startTime"
:disabled-date="disabledStartDate">
</j-date>
<span class="query-group-split-cust"></span>
<j-date
format="YYYY-MM-DD"
placeholder="请选择结束日期"
class="query-group-cust"
v-model="queryParam.endTime">
v-model="queryParam.endTime"
:disabled-date="disabledEndDate">
</j-date>
</a-form-item>
</a-col>
@@ -59,7 +61,7 @@
<div class="table-page-search-submitButtons">
<a-button type="primary" icon="download" class="opera-btn" @click="handleAdd()">上传</a-button>
<a-button icon="delete" type="danger" class="opera-btn" @click="batchDel">批量删除</a-button>
<a-button icon="download" type="primary" class="opera-btn">批量分发</a-button>
<a-button icon="download" type="primary" class="opera-btn" @click="distribute">批量分发</a-button>
<a-button icon="export" type="primary" class="opera-btn" @click="handleExportXls">导出</a-button>
</div>
</a-form>
@@ -69,20 +71,47 @@
<!--table start-->
<a-table
:data-source="dataSource"
:row-key="record => record.keyId"
:row-key="record => record.keyId + record.dataId"
:pagination="ipagination"
:loading="loading"
:columns="isData ? column : columnMeet"
@change="handleTableChange"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
>
<!--文件名称-->
<span slot="fileName" class="action-span-cell" slot-scope="text, record">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<span>{{text}}</span>
</a-tooltip>
</span>
<!--目录层级-->
<span slot="filePath" class="action-span-cell" slot-scope="text, record">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<span>{{text}}</span>
</a-tooltip>
</span>
<!--目录层级-->
<span slot="meetingName" class="action-span-cell" slot-scope="text, record">
<a-tooltip placement="top">
<template slot="title">
<span>{{text}}</span>
</template>
<span>{{text}}</span>
</a-tooltip>
</span>
<span slot="action" class="action-span-cell" slot-scope="text, record">
<a-button @click="handleEdit(record)" type="primary" style="margin-right:10px">编辑</a-button>
<a-button @click="distribute(record)" type="primary" style="margin-right:10px">分发</a-button>
<a-button @click="handleDelete(record.keyId, record.dataId)" type="danger">删除</a-button>
</span>
</a-table>
<!--table start-->
<!--table end-->
</div>
</div>
<maintenance-modal ref="modalForm" @ok="modalFormOk"></maintenance-modal>
@@ -94,6 +123,7 @@
import { getAction } from '@/api/manage'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import { JeroListMixin } from '@/mixins/JeroListMixin'
import { RangeDateMixin } from '@/mixins/RangeDateMixin'
import IconImg from '@/assets/imgs/icon/icon_committee.png'
import MaintenanceModal from './modules/MaintenanceModal'
import DistributeModal from './modules/DistributeModal'
@@ -102,7 +132,7 @@ import JDate from '@comp/tools/JDate'
export default {
name: 'DataMaintenance',
components: { PageHeaderTitle, MaintenanceModal, DistributeModal, JDate },
mixins: [JeroListMixin],
mixins: [ JeroListMixin, RangeDateMixin ],
data() {
return {
IconImg,
@@ -167,16 +197,19 @@ export default {
{
title: '文件名称',
dataIndex: 'fileName',
align: 'center'
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'fileName' }
},
{
title: '目录层级',
dataIndex: 'filePath',
align: 'center'
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'filePath' }
},
{
title: '下载次数',
width: '126px',
dataIndex: 'downLodeTime',
align: 'center',
customRender: function( text ) {
@@ -185,7 +218,6 @@ export default {
},
{
title: '上传时间',
width: '126px',
dataIndex: 'upLodeTime',
align: 'center',
customRender: function(text) {
@@ -198,7 +230,6 @@ export default {
},
{
title: '上传人',
width: '100px',
dataIndex: 'upLodePeople',
align: 'center'
},
@@ -229,15 +260,20 @@ export default {
{
title: '目录层级',
dataIndex: 'filePath',
align: 'center'
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'filePath' }
},
{
title: '会议名称',
dataIndex: 'meetingName',
align: 'center'
ellipsis: true,
align: 'center',
scopedSlots: { customRender: 'meetingName' }
},
{
title: '会议时间',
width: '126px',
dataIndex: 'meetingTime',
align: 'center',
customRender: function(text) {
@@ -250,7 +286,6 @@ export default {
},
{
title: '下载次数',
width: '126px',
dataIndex: 'downLodeTime',
align: 'center',
customRender: function( text ) {
@@ -259,7 +294,6 @@ export default {
},
{
title: '上传时间',
width: '126px',
dataIndex: 'upLodeTime',
align: 'center',
customRender: function(text) {
@@ -272,7 +306,6 @@ export default {
},
{
title: '上传人',
width: '100px',
dataIndex: 'upLodePeople',
align: 'center'
},
@@ -331,8 +364,8 @@ export default {
},
// 分发
distribute(record) {
this.$refs.modalForm.edit(record)
this.$refs.modalForm.title = '分发'
this.$refs.modalDistributeForm.edit(record)
this.$refs.modalDistributeForm.title = '分发'
},
modalDistributeFormOk() {},
// 批量删除
@@ -440,10 +473,12 @@ export default {
margin-right: 10px;
border-right: 1px solid #ddd;
width: 300px;
flex-shrink: 0;
overflow-x: auto;
}
.maintenance-table{
flex: 1;
overflow-x: hidden;
}
}
.table-page-search-wrapper .table-page-search-submitButtons{
@@ -12,26 +12,49 @@
<a-form :form="form">
<a-row>
<a-col>
<a-form-item label="目录名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-tree-select
v-decorator="['id', validatorRules.id]"
:replaceFields="replaceFields"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:tree-data="treeDataEdit"
placeholder="请选择目录名称"
@select="select"
>
</a-tree-select>
<a-form-item label="文件" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload :return-id="true"
class="no-upload"
:fileList="fileList"
v-decorator="['dataId', validatorRules.dataId]"
:trigger-change="true"></j-upload>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col>
<a-form-item label="文件" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload file-type="all" file-type-error-message="请上传文件" :multiple="false" :number="10"
:return-id="true"
v-decorator="['file', validatorRules.fileId]"
:trigger-change="true"></j-upload>
<a-form-item label="群组名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select
v-decorator="['name', validatorRules.name]"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择群组名称"
@select="select"
>
<a-select-option v-for="item in list" :key="item.id" :value="item.id">
<span>
{{item.name}}
</span>
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="2"></a-col>
<a-col :span="20">
<a-form-item>
<a-tree
:expanded-keys="['0-0']"
:tree-data="memberList"
:replaceFields="replaceFields"
checkable
@check="onCheck"
/>
</a-form-item>
</a-col>
<a-col :span="2">
<a-form-item>
<a-input v-decorator="['memberName', validatorRules.memberName]"></a-input>
</a-form-item>
</a-col>
</a-row>
@@ -42,9 +65,8 @@
<script>
import pick from 'lodash.pick'
import { getAction, postAction } from '@api/manage'
import { getAction } from '@api/manage'
import JUpload from '@comp/jero/JUpload'
export default {
name: 'DistributeModal',
components: { JUpload },
@@ -64,93 +86,82 @@ export default {
xs: { span: 24 },
sm: { span: 17 }
},
treeDataEdit: [],
fileList: [],
list: [],
memberList: [],
checkedKeys: [],
replaceFields: {
children: 'children',
title: 'name',
title: 'contactsName',
value: 'id',
key: 'id'
},
validatorRules: {
id: {
rules: [{ required: true, message: '请选择目录名称' }],
name: {
rules: [{ required: true, message: '请选择群组名称' }],
validateTrigger: 'change'
},
fileId: {
rules: [{ required: true, message: '请上传文件' }],
dataId: {
rules: [{ required: true, message: '请重新上传文件' }],
validateTrigger: 'change'
},
memberName: {
rules: [{ required: true, message: '请选择成员' }],
validateTrigger: 'blur'
}
},
url: {
treeList: 'payDataDirectory/payDataDirectory/tree', // 资料树
list: 'payCaseCommittee/payCaseCommittee/list', // 分标委列表---群组列表
memberList: 'payCaseCommitteeSubitem/payCaseCommitteeSubitem/list' // 群组成员列表
}
}
},
created(){
getAction(this.url.treeList).then(res => {
// 获取群组名称
getAction(this.url.list).then(res => {
if (res.success) {
this.treeDataEdit = res.result
this.list = res.result.records
}
})
},
methods: {
select(value, node) {
if (node.$children.length) { // 点击的是父节点
this.model.id = ''
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'id'))
select(value) {
// 群组value===id去获取成员数据
if (value) {
getAction(this.url.memberList, { id: value }).then(res=>{
if (res.success) {
let tempArr = JSON.parse(JSON.stringify(res.result))
this.memberList = [ { contactsName: '全选', children: [...tempArr] }]
}
})
console.log(this.form.getFieldValue('id'))
}
},
onCheck(checkedKeys) {
this.checkKeys = checkedKeys
let arr = JSON.parse(JSON.stringify(this.checkKeys))
this.model = Object.assign(this.model, {memberName: arr.splice(1).toString()})
this.form.setFieldsValue({memberName: arr.splice(1).toString()})
console.log(this.model)
},
edit(record) {
this.form.resetFields()
this.model = Object.assign({}, record)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'id', 'fileId'))
this.form.setFieldsValue(pick(this.model, 'dataId' ))
})
},
close() {
this.$emit('close')
this.visible = false
this.memberList = []
},
handleOk() {
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
let httpurl = ''
let params = {}
const formData = Object.assign(this.model, values)
if (!this.model.id) {
httpurl += this.url.add
params = {
dataId: this.oldFileId, // 目录id
dataType: this.dataType, // 上传类型
fileIds: values.file // 资料id
}
} else {
httpurl += this.url.edit
params = {
oldFileId: this.oldFileId,
fileId: values.file,
id: values.keyId // 主键id
}
}
console.log(values, '============')
console.log('表单提交数据', formData)
postAction(httpurl, params).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
that.close()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
console.log(values)
}
})
},
@@ -161,6 +172,16 @@ export default {
}
</script>
<style scoped>
<style scoped lang="less">
.no-upload{
/deep/.ant-upload-select-text{
display: none;
}
}
/deep/.ant-form-explain{
margin-top: 10px;
}
/deep/.ant-checkbox-group{
width: 100%;
}
</style>