update 起草组在研项目、其他分发资料
This commit is contained in:
@@ -267,9 +267,9 @@ export default {
|
||||
goFilesMaintenance(record) {
|
||||
console.log(record)
|
||||
this.$router.push({
|
||||
path: '/draftingGroup/DraftingGroupProjectDataMaintenance',
|
||||
path: '/projectManagement/WorkingGroupProjectDataMaintenance',
|
||||
query: {
|
||||
workingGroupId: record.id,
|
||||
draftingGroupId: record.id,
|
||||
canOperate: record.checkoutOperation === 1
|
||||
}
|
||||
})
|
||||
@@ -334,7 +334,7 @@ export default {
|
||||
this.$router.push({
|
||||
path: '/draftingGroup/DraftingGroupUnderStudyProject',
|
||||
query: {
|
||||
title: record.workingGroupProject,
|
||||
title: record.draftingGroupProject,
|
||||
id: record.id
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,235 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<page-header-title level-two-title="分发资料维护" :is-level-one="false"></page-header-title>
|
||||
<a-card :bordered="false">
|
||||
<!-- 查询区域-start -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row>
|
||||
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="文件名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入文件名称" v-model="queryParam.fileName" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<span class="table-page-search-submitButtons">
|
||||
<a-button type="primary" icon="search" @click="searchQuery" v-has="'fileMaintenance:search'">查询</a-button>
|
||||
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
|
||||
</span>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<!-- /查询区域-end-->
|
||||
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator" v-if="canOperate">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'fileMaintenance:add'">上传</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'fileMaintenance:batchDel'">批量删除</a-button>
|
||||
<a-button type="primary" @click="batchDistribute" v-has="'fileMaintenance:batchDistribute'">批量分发</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('资料维护列表')" v-has="'fileMaintenance:export'">导出
|
||||
</a-button>
|
||||
</div>
|
||||
<!-- 操作按钮区域-end-->
|
||||
|
||||
<!-- table表格区域-->
|
||||
<div>
|
||||
<a-table
|
||||
size="middle"
|
||||
ref="table"
|
||||
bordered
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:scroll="{x: 1200}"
|
||||
@change="handleTableChange"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
class="j-table-force-nowrap main-table">
|
||||
|
||||
<!-- 项目名称-->
|
||||
<template slot="projectName" slot-scope="text, record">
|
||||
<j-ellipsis :value="text" :length="18" class="primary-color"
|
||||
@click="openDetailModal(record)"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<template slot="text" slot-scope="text">
|
||||
<j-ellipsis :value="text" :length="20"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
|
||||
<a @click="handleDistribute(record.id)" v-has="'fileMaintenance:distribute'">分发</a>
|
||||
<a @click="handleDownload(record)" v-has="'fileMaintenance:download'">下载</a>
|
||||
<a @click="handleDelete(record.id)" v-has="'fileMaintenance:delete'">删除</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
</a-card>
|
||||
|
||||
<!-- 上传-->
|
||||
<drafting-group-file-upload-modal
|
||||
ref="modalForm"
|
||||
@ok="modalFormOk"
|
||||
:project-id="projectId"
|
||||
:project-type="projectType"></drafting-group-file-upload-modal>
|
||||
<!-- 分发-->
|
||||
<drafting-group-distribute-module
|
||||
ref="distributeModal"
|
||||
:visible.sync="distributeModalVisible"
|
||||
:project-id="projectId"
|
||||
:project-type="projectType"
|
||||
:is-batch="isBatchDistribute"
|
||||
:record-id="dataId"
|
||||
@ok="modalFormOk"></drafting-group-distribute-module>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { JeroListMixin } from '../../mixins/JeroListMixin'
|
||||
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
||||
import DraftingGroupFileUploadModal from './modules/DraftingGroupFileUploadModal'
|
||||
import DraftingGroupDistributeModule from './modules/DraftingGroupDistributeModule'
|
||||
import { downloadFile } from '../../api/manage'
|
||||
|
||||
export default {
|
||||
name: 'DraftingGroupProjectDataMaintenance',
|
||||
components: { PageHeaderTitle, DraftingGroupFileUploadModal, DraftingGroupDistributeModule },
|
||||
mixins: [JeroListMixin],
|
||||
data() {
|
||||
return {
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 5 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 10 }
|
||||
},
|
||||
url: {
|
||||
list: '/project/payWorkingGroupDataFile/list',
|
||||
exportXlsUrl: '/project/payWorkingGroupDataFile/exportXls',
|
||||
delete: '/project/payWorkingGroupDataFile/delete',
|
||||
deleteBatch: '/project/payWorkingGroupDataFile/deleteBatch'
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
}, {
|
||||
title: '文件名称',
|
||||
align: 'center',
|
||||
dataIndex: 'fileName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '下载次数',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
dataIndex: 'downloadCount',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '上传时间',
|
||||
align: 'center',
|
||||
width: 220,
|
||||
dataIndex: 'createTime',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '上传人',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
dataIndex: 'createBy',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 160,
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
disableMixinCreated: true,
|
||||
projectId: null, // 项目id
|
||||
projectType: null, // 1--工作组;2--分标委
|
||||
distributeModalVisible: false,
|
||||
isBatchDistribute: false,
|
||||
dataId: '', // 资料id,传给分发
|
||||
canOperate: true // 是否可操作(负责人B不可操作)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 工作组
|
||||
if (this.$route.query.hasOwnProperty.call(this.$route.query, 'workingGroupId')) {
|
||||
this.filters.projectId = this.$route.query.workingGroupId
|
||||
this.canOperate = this.$route.query.canOperate === 'true'
|
||||
this.projectType = 1
|
||||
this.filters.projectType = 1
|
||||
} else if (this.$route.query.hasOwnProperty.call(this.$route.query, 'id')) {
|
||||
// 分标委
|
||||
this.filters.projectId = this.$route.query.id
|
||||
this.projectType = 2
|
||||
this.filters.projectType = 2
|
||||
} else if (this.$route.query.hasOwnProperty.call(this.$route.query, 'councilId')) {
|
||||
// 理事会
|
||||
this.filters.projectId = this.$route.query.councilId
|
||||
this.projectType = 3
|
||||
this.filters.projectType = 3
|
||||
}
|
||||
this.projectId = this.filters.projectId
|
||||
this.loadData()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 批量分发
|
||||
*/
|
||||
batchDistribute() {
|
||||
if (this.selectedRowKeys.length === 0) {
|
||||
this.$message.warn('请至少选中一个资料')
|
||||
return
|
||||
}
|
||||
this.dataId = this.selectedRowKeys.join(',')
|
||||
this.distributeModalVisible = true
|
||||
this.isBatchDistribute = true
|
||||
},
|
||||
/**
|
||||
* 分发
|
||||
*/
|
||||
handleDistribute(id) {
|
||||
this.dataId = id
|
||||
this.distributeModalVisible = true
|
||||
this.isBatchDistribute = false
|
||||
},
|
||||
/**
|
||||
* 下载
|
||||
* @param record
|
||||
*/
|
||||
handleDownload(record) {
|
||||
downloadFile(`sys/common/download/${record.fileId}`, record.fileName)
|
||||
},
|
||||
handleExportXls(fileName) {
|
||||
if (!fileName || typeof fileName != 'string') {
|
||||
fileName = '导出文件'
|
||||
}
|
||||
let param = this.getQueryParams()
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
param['selections'] = this.selectedRowKeys.join(',')
|
||||
}
|
||||
console.log('导出参数', param)
|
||||
downloadFile(this.url.exportXlsUrl, fileName + '.zip', param)
|
||||
},
|
||||
handleAdd() {
|
||||
this.$refs.modalForm.add()
|
||||
this.$refs.modalForm.title = '上传文件'
|
||||
this.$refs.modalForm.disableSubmit = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
</style>
|
||||
@@ -116,9 +116,9 @@ export default {
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/payResearchProject/payResearchProject/list',
|
||||
delete: '/payResearchProject/payResearchProject/delete',
|
||||
deleteBatch: '/payResearchProject/payResearchProject/deleteBatch'
|
||||
list: '/drafting/payDraftingGroupResearchProject/list',
|
||||
delete: '/drafting/payDraftingGroupResearchProject/delete',
|
||||
deleteBatch: '/drafting/payDraftingGroupResearchProject/deleteBatch'
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -133,7 +133,7 @@ export default {
|
||||
this.ipagination.current = 1
|
||||
}
|
||||
let params = this.getQueryParams()//查询条件
|
||||
params.workingGroupId = this.$route.query.id
|
||||
params.draftingGroupId = this.$route.query.id
|
||||
this.loading = true
|
||||
getAction(this.url.list, params).then((res) => {
|
||||
if (res.success) {
|
||||
@@ -157,13 +157,13 @@ export default {
|
||||
})
|
||||
},
|
||||
handleEdit: function (record) {
|
||||
this.$refs.modalForm.workingGroupId = this.$route.query.id
|
||||
this.$refs.modalForm.draftingGroupId = this.$route.query.id
|
||||
this.$refs.modalForm.edit(record)
|
||||
this.$refs.modalForm.title = '编辑'
|
||||
this.$refs.modalForm.disableSubmit = false
|
||||
},
|
||||
handleAdd: function () {
|
||||
this.$refs.modalForm.workingGroupId = this.$route.query.id
|
||||
this.$refs.modalForm.draftingGroupId = this.$route.query.id
|
||||
this.$refs.modalForm.add()
|
||||
this.$refs.modalForm.title = '新增'
|
||||
this.$refs.modalForm.disableSubmit = false
|
||||
|
||||
@@ -1,508 +0,0 @@
|
||||
<template>
|
||||
<j-modal
|
||||
:title="title"
|
||||
:width="width"
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
|
||||
<template v-if="dataSourceInit.length > 0">
|
||||
<!--查询条件 单个文件分发的时候才存在-->
|
||||
<div class="table-page-search-wrapper" v-if="!isBatch">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row>
|
||||
<a-col :xl="8" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item label="已提醒" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag style="width: 100%"
|
||||
dict-code="yn"
|
||||
v-model="queryParam.remind"
|
||||
placeholder="请选择提醒类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="4" :lg="8" :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>
|
||||
</a-form>
|
||||
</div>
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" @click="checkAll()">全选</a-button>
|
||||
</div>
|
||||
<a-table
|
||||
size="middle"
|
||||
ref="table"
|
||||
bordered
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="false"
|
||||
:scroll="{x: 500}"
|
||||
@change="handleTableChange"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
class="j-table-force-nowrap main-table">
|
||||
|
||||
<template slot="text" slot-scope="text">
|
||||
<a-tooltip>
|
||||
<template slot="title">{{ text }}</template>
|
||||
<div class="table-text">{{ text }}</div>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
|
||||
</a-table>
|
||||
</template>
|
||||
|
||||
<a-empty v-else></a-empty>
|
||||
</a-spin>
|
||||
|
||||
<email-error-msg-modal ref="emailError"/>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { distribute, batchDistribute, distributeMemberList, judgeEmailStatus } from '../../../api/incomePaymentsApi'
|
||||
import EmailErrorMsgModal from '@views/projectManagement/modules/EmailErrorMsgModal.vue'
|
||||
|
||||
// 工作组发布提醒 表头
|
||||
const columns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
width: 60,
|
||||
align: 'center',
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '联系人',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'name',
|
||||
scopedSlots: {customRender: 'text'}
|
||||
},
|
||||
{
|
||||
title: '成员单位',
|
||||
align: 'center',
|
||||
dataIndex: 'companyName',
|
||||
width: 280,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: '邮件通知',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'remind_dictText',
|
||||
scopedSlots: {customRender: 'text'}
|
||||
}
|
||||
]
|
||||
// 分标委发布提醒 表头
|
||||
const commitColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
width: 60,
|
||||
align: 'center',
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '联系人',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'name',
|
||||
scopedSlots: {customRender: 'text'}
|
||||
},
|
||||
{
|
||||
title: '成员单位',
|
||||
align: 'center',
|
||||
dataIndex: 'companyName',
|
||||
width: 280,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: '邮件通知',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'remind_dictText',
|
||||
scopedSlots: {customRender: 'text'}
|
||||
}
|
||||
]
|
||||
// 理事会成员的表头
|
||||
const councilColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
width: 60,
|
||||
align: 'center',
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '联系人',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'name',
|
||||
scopedSlots: {customRender: 'text'}
|
||||
},
|
||||
{
|
||||
title: '成员单位',
|
||||
align: 'center',
|
||||
dataIndex: 'companyName',
|
||||
width: 280,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: '邮件通知',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'remind_dictText',
|
||||
scopedSlots: {customRender: 'text'}
|
||||
}
|
||||
]
|
||||
|
||||
export default {
|
||||
name: 'DraftingGroupDistributeModule',
|
||||
components: { EmailErrorMsgModal },
|
||||
props: {
|
||||
// 项目id
|
||||
projectId: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: ''
|
||||
},
|
||||
// 项目类型:1--工作组;2--分标委;3--理事会
|
||||
projectType: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: null
|
||||
},
|
||||
// 分发资料id
|
||||
recordId: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: null
|
||||
},
|
||||
// 是否批量分发
|
||||
isBatch: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
},
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
visible(val) {
|
||||
if (val) {
|
||||
this.initData()
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '分发',
|
||||
width: 1000,
|
||||
confirmLoading: false,
|
||||
columns: [],
|
||||
dataSource: [], // 表格中显示的数据
|
||||
dataSourceInit: [], // 所有分发单位的数据
|
||||
dataSourceInitShow: [], // 拥有过滤条件后显示的所有数据
|
||||
/* 分页参数 */
|
||||
ipagination: {
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
pageSizeOptions: ['10', '20', '30', '50', '100'],
|
||||
showTotal: (total, range) => {
|
||||
return range[0] + '-' + range[1] + ' 共' + total + '条'
|
||||
},
|
||||
showQuickJumper: true,
|
||||
showSizeChanger: true,
|
||||
total: 0
|
||||
},
|
||||
/* table选中keys*/
|
||||
selectedRowKeys: [],
|
||||
// 查询条件
|
||||
queryParam: {},
|
||||
lastQueryParam: {},
|
||||
labelCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 6}
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 18}
|
||||
},
|
||||
needMail: false // 消息模板中是否设置了可以发邮件 重要
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 获取成员列表
|
||||
*/
|
||||
getMemberList() {
|
||||
this.confirmLoading = true
|
||||
let param = {
|
||||
projectId: this.projectId,
|
||||
projectType: this.projectType
|
||||
}
|
||||
// 非批量上传的时候传当前选中的文件id
|
||||
if(!this.isBatch) {
|
||||
param.fileId = this.recordId
|
||||
}
|
||||
distributeMemberList(param).then(res => {
|
||||
if (res.success) {
|
||||
this.dataSourceInit = res.result || []
|
||||
this.dataSourceInitShow = res.result || []
|
||||
this.loadData(1)
|
||||
} else {
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.confirmLoading = false
|
||||
})
|
||||
},
|
||||
onCheck(checkedKeys) {
|
||||
this.checkedKeys = checkedKeys
|
||||
},
|
||||
/**
|
||||
* 初始化数据
|
||||
*/
|
||||
initData() {
|
||||
console.log("-----------------")
|
||||
this.checkedKeys = []
|
||||
this.selectedRowKeys = []
|
||||
this.ipagination.current = 1
|
||||
this.ipagination.pageSize = 10
|
||||
// 通过不同的项目类型 展示不同的columns 目前里面的信息是一致的
|
||||
// 项目类型:1--工作组;2--分标委;3--理事会
|
||||
if(this.projectType === 1) {
|
||||
this.columns = [...columns]
|
||||
} else if(this.projectType === 2) {
|
||||
this.columns = [...commitColumns]
|
||||
} else {
|
||||
this.columns = [...councilColumns]
|
||||
}
|
||||
// 选择多个资料的时候不需要提醒字段 这样写是因为无法精准定位每一个人对应的每一个资料 这个人是否被提醒
|
||||
if (this.isBatch) {
|
||||
// 去掉列表的提醒字段
|
||||
this.columns = this.columns.filter(item => item.dataIndex !== 'remind_dictText')
|
||||
}
|
||||
this.getMemberList()
|
||||
this.judgeEmailStatusFunc()
|
||||
|
||||
},
|
||||
handleTableChange(pagination) {
|
||||
//分页、排序、筛选变化时触发
|
||||
this.ipagination = pagination
|
||||
this.loadData()
|
||||
},
|
||||
onSelectChange(selectedRowKeys) {
|
||||
this.selectedRowKeys = selectedRowKeys
|
||||
},
|
||||
getQueryParams() {
|
||||
//获取查询条件
|
||||
let sqp = {}
|
||||
var param = Object.assign(sqp, this.lastQueryParam)
|
||||
param.pageNo = this.ipagination.current
|
||||
param.pageSize = this.ipagination.pageSize
|
||||
return param
|
||||
},
|
||||
loadData(arg) {
|
||||
//加载数据 若传入参数1则加载第一页的内容
|
||||
if (arg === 1) {
|
||||
this.ipagination.current = 1
|
||||
if(this.lastQueryParam.remind === undefined) {
|
||||
this.dataSourceInitShow = this.dataSourceInit
|
||||
} else {
|
||||
this.dataSourceInitShow = this.dataSourceInit.filter(tt => tt.remind + '' === this.lastQueryParam.remind + '')
|
||||
}
|
||||
}
|
||||
var params = this.getQueryParams()//查询条件
|
||||
this.ipagination.total = this.dataSourceInitShow.length
|
||||
this.dataSource = this.dataSourceInitShow.slice((params.pageNo - 1) * params.pageSize, (params.pageNo * params.pageSize))
|
||||
},
|
||||
searchQuery() {
|
||||
this.lastQueryParam = {...this.queryParam}
|
||||
this.loadData(1)
|
||||
},
|
||||
searchReset() {
|
||||
this.lastQueryParam = {}
|
||||
this.queryParam = {}
|
||||
this.loadData(1)
|
||||
},
|
||||
checkAll() {
|
||||
this.selectedRowKeys = this.dataSourceInitShow.map(tt => tt.id)
|
||||
},
|
||||
close() {
|
||||
this.$emit('update:visible', false)
|
||||
this.$emit('close')
|
||||
},
|
||||
handleOk() {
|
||||
if (this.confirmLoading) {
|
||||
return
|
||||
}
|
||||
this.confirmLoading = true
|
||||
if (this.dataSourceInit.length === 0) {
|
||||
this.$message.warn('当前工作组暂无成员,无法分发文件')
|
||||
this.confirmLoading = false
|
||||
return
|
||||
}
|
||||
if (this.selectedRowKeys.length === 0) {
|
||||
this.$message.warn('请选择成员单位')
|
||||
this.confirmLoading = false
|
||||
return
|
||||
}
|
||||
// 定义请求成功的方法 sendEmailFlag: 0-不发送 1-发送
|
||||
const callbackFunc = (sendEmailFlag) => {
|
||||
if (this.isBatch) {
|
||||
let str = this.selectedRowKeys.join(',')
|
||||
// 批量分发
|
||||
const formData = {
|
||||
contactsIds: str,
|
||||
dataIds: this.recordId,
|
||||
projectId: this.projectId,
|
||||
projectType: this.projectType,
|
||||
sendEmailFlag
|
||||
}
|
||||
batchDistribute(formData).then(res => {
|
||||
if (res.success) {
|
||||
// 发送邮件的时候才提醒 是否有邮件发送失败 有就给出提示信息
|
||||
if (sendEmailFlag && Array.isArray(res.result) && res.result.length > 0) {
|
||||
// msgWarn(this,res.result,0)
|
||||
this.$refs.emailError.open()
|
||||
this.$refs.emailError.msgList = res.result
|
||||
console.log(this.$refs.emailError.msgList, 'this.$refs.emailError.msgList ')
|
||||
} else {
|
||||
this.$message.success(res.message)
|
||||
}
|
||||
this.close()
|
||||
this.$emit('ok')
|
||||
} else {
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
setTimeout(() => {
|
||||
this.confirmLoading = false
|
||||
}, 1000)
|
||||
})
|
||||
} else {
|
||||
// 单个分发
|
||||
const formData = {
|
||||
contactsIds: this.selectedRowKeys.join(','),
|
||||
dataId: this.recordId,
|
||||
projectId: this.projectId,
|
||||
projectType: this.projectType,
|
||||
sendEmailFlag
|
||||
}
|
||||
distribute(formData).then(res => {
|
||||
if (res.success) {
|
||||
if (sendEmailFlag && Array.isArray(res.result) && res.result.length > 0) {
|
||||
// msgWarn(this,res.result,0)
|
||||
this.$refs.emailError.open()
|
||||
this.$refs.emailError.msgList = res.result
|
||||
console.log(this.$refs.emailError.msgList, 'this.$refs.emailError.msgList ')
|
||||
} else {
|
||||
this.$message.success(res.message)
|
||||
}
|
||||
this.close()
|
||||
this.$emit('ok')
|
||||
} else {
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
setTimeout(() => {
|
||||
this.confirmLoading = false
|
||||
}, 1000)
|
||||
})
|
||||
}
|
||||
}
|
||||
if(this.needMail) {
|
||||
this.$confirm({
|
||||
title: '消息确认',
|
||||
content: '确认要向选择的成员发送邮件吗?',
|
||||
cancelText: '不发送',
|
||||
okText: '确认发送',
|
||||
onOk: function () {
|
||||
callbackFunc(1)
|
||||
},
|
||||
onCancel: function() {
|
||||
callbackFunc(0)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// 若全局没有配置则不发送邮件信息
|
||||
callbackFunc(0)
|
||||
}
|
||||
|
||||
},
|
||||
handleCancel() {
|
||||
this.close()
|
||||
},
|
||||
// 判断全局设置的是否需要发邮件
|
||||
judgeEmailStatusFunc() {
|
||||
this.needMail = false
|
||||
// 非工作组项目的情况 不进行请求
|
||||
// if(this.projectType !== 1) return
|
||||
const params = {
|
||||
code: 'QY_12_WJTZ_WORK_GROUP_SEND'
|
||||
}
|
||||
judgeEmailStatus(params).then(res => {
|
||||
if(res.success) {
|
||||
// 发送邮件的类型 1-短信 2-邮件 3-系统 数据字典codem sgType
|
||||
this.needMail = (res.result || {}).templateType.indexOf(2) > -1
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
.no-upload {
|
||||
/deep/ .ant-upload-select-text {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/deep/ .ant-form-explain {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/deep/ .ant-checkbox-group {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.choose-member {
|
||||
/deep/ #memberName {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/deep/ .ant-tree li .ant-tree-node-content-wrapper {
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
/deep/ .ant-table-body {
|
||||
overflow-x: auto !important;
|
||||
}
|
||||
</style>
|
||||
@@ -1,138 +0,0 @@
|
||||
<template>
|
||||
<j-modal
|
||||
:title="title"
|
||||
:width="width"
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-form-item label="文件" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload file-type="all"
|
||||
file-type-error-message="请上传文件"
|
||||
:multiple="true"
|
||||
:number="10"
|
||||
:return-id="true"
|
||||
v-decorator="['fileIds', validatorRules.fileIds]"
|
||||
:trigger-change="true"></j-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import pick from 'lodash.pick'
|
||||
import { postAction } from '../../../api/manage'
|
||||
import JUpload from '@comp/jero/JUpload'
|
||||
|
||||
export default {
|
||||
name: 'DraftingGroupFileUploadModal',
|
||||
components: { JUpload },
|
||||
props: {
|
||||
// 项目id
|
||||
projectId: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: ''
|
||||
},
|
||||
// 项目类型:1--工作组;2--分标委
|
||||
projectType: {
|
||||
type: Number,
|
||||
require: false,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '编辑',
|
||||
width: 800,
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
form: this.$form.createForm(this),
|
||||
model: {},
|
||||
fileList: [],
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 5 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 17 }
|
||||
},
|
||||
validatorRules: {
|
||||
fileIds: {
|
||||
rules: [{ required: true, message: '请上传文件' }],
|
||||
validateTrigger: 'change'
|
||||
}
|
||||
},
|
||||
url: {
|
||||
add: '/project/payWorkingGroupDataFile/add', // 资料上传
|
||||
edit: '' // 资料和会议的编辑 post
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
add(data) {
|
||||
this.edit({}, data)
|
||||
},
|
||||
edit(record, data) {
|
||||
this.dataType = data // 接收数据类型
|
||||
this.form.resetFields()
|
||||
this.model = Object.assign({}, record)
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.form.setFieldsValue(pick(this.model, 'dataId'))
|
||||
})
|
||||
},
|
||||
close() {
|
||||
this.$emit('close')
|
||||
this.visible = false
|
||||
},
|
||||
handleOk() {
|
||||
if (this.confirmLoading) {
|
||||
return
|
||||
}
|
||||
this.confirmLoading = true
|
||||
// 触发表单验证
|
||||
this.form.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
console.log(values)
|
||||
let params = values
|
||||
params.projectId = this.projectId
|
||||
params.projectType = this.projectType
|
||||
postAction(this.url.add, params).then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
this.$emit('ok')
|
||||
this.close()
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
setTimeout(() => {
|
||||
this.confirmLoading = false
|
||||
}, 1000)
|
||||
})
|
||||
} else {
|
||||
this.confirmLoading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
handleCancel() {
|
||||
this.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -74,8 +74,8 @@ export default {
|
||||
confirmLoading: false,
|
||||
form: this.$form.createForm(this),
|
||||
model: {},
|
||||
// 工作组id
|
||||
workingGroupId: '',
|
||||
// 起草组id
|
||||
draftingGroupId: '',
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 8 }
|
||||
@@ -111,8 +111,8 @@ export default {
|
||||
}
|
||||
},
|
||||
url: {
|
||||
add: '/payResearchProject/payResearchProject/add',
|
||||
edit: '/payResearchProject/payResearchProject/edit'
|
||||
add: '/drafting/payDraftingGroupResearchProject/add',
|
||||
edit: '/drafting/payDraftingGroupResearchProject/edit'
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -147,7 +147,7 @@ export default {
|
||||
} else {
|
||||
httpurl += this.url.edit
|
||||
}
|
||||
values.workingGroupId = this.workingGroupId
|
||||
values.draftingGroupId = this.draftingGroupId
|
||||
const formData = Object.assign(this.model, values)
|
||||
console.log('表单提交数据', formData)
|
||||
postAction(httpurl, formData).then((res) => {
|
||||
|
||||
@@ -154,7 +154,7 @@ export default {
|
||||
],
|
||||
disableMixinCreated: true,
|
||||
projectId: null, // 项目id
|
||||
projectType: null, // 1--工作组;2--分标委
|
||||
projectType: null, // 1--工作组;2--分标委;4--起草组
|
||||
distributeModalVisible: false,
|
||||
isBatchDistribute: false,
|
||||
dataId: '', // 资料id,传给分发
|
||||
@@ -178,6 +178,12 @@ export default {
|
||||
this.filters.projectId = this.$route.query.councilId
|
||||
this.projectType = 3
|
||||
this.filters.projectType = 3
|
||||
} else if (this.$route.query.hasOwnProperty.call(this.$route.query, 'draftingGroupId')) {
|
||||
// 起草组
|
||||
this.filters.projectId = this.$route.query.draftingGroupId
|
||||
this.canOperate = this.$route.query.canOperate === 'true'
|
||||
this.projectType = 4
|
||||
this.filters.projectType = 4
|
||||
}
|
||||
this.projectId = this.filters.projectId
|
||||
this.loadData()
|
||||
|
||||
Reference in New Issue
Block a user