update 标准化活动-统计列表

This commit is contained in:
赵霄
2023-11-07 15:04:08 +08:00
parent 38b4d6e199
commit 394e2ff2b0
13 changed files with 504 additions and 17 deletions
+16 -1
View File
@@ -19,6 +19,16 @@ const editNode = (params) => postAction('/laws/standardization/lawsStandardizati
const queryById = (params) => getAction('/laws/standardization/lawsStandardization/queryById', params)
// 标准化活动-通过id查询表格信息
const queryTableDataById = (params) => getAction('/laws/standardization/lawsStandardization/queryDetailById', params)
// 标准化活动-统计列表
const queryStatisticalList = (params) => getAction('/laws/standardization/lawsStandardization/queryStatistics', params)
// 标准化活动-统计-联络人联系方式
const queryContactList = (params) => getAction('/laws/standardization/lawsStandardization/queryLiaisonByStandardizationId', params)
// 标准化活动-统计-集团参与情况
const queryGroupList = (params) => getAction('/laws/standardization/lawsStandardization/queryGroupByStandardizationId', params)
// 标准化活动-统计-支付信息
const queryPaymentList = (params) => getAction('/laws/standardization/lawsStandardization/queryPaymentByStandardizationId', params)
// 标准化活动-统计-参会记录
const queryMeetingList = (params) => getAction('/laws/standardization/lawsStandardization/queryMeetingByStandardizationId', params)
export {
getQuizById,
@@ -31,5 +41,10 @@ export {
addNode,
editNode,
queryById,
queryTableDataById
queryTableDataById,
queryStatisticalList,
queryContactList,
queryGroupList,
queryPaymentList,
queryMeetingList
}
+1 -1
View File
@@ -3,7 +3,7 @@ module.exports = {
standardizationActivity: {
nodeName: '节点名称', // 节点名称
currentNode: '当前节点',
conferenceStatisticsList: '会议统计列表',
conferenceStatisticsList: '统计列表',
pleaseSelectNode: '请选择一个节点',
parentNode: '上级节点',
nodeTypes: '节点类型',
@@ -11,13 +11,16 @@
<template v-slot:titleRightCustom>
<!--新增-->
<a-button type="primary" ghost icon="plus" @click="handleAdd">{{ $t('newlyAdded') }}</a-button>
<a-button type="primary" ghost icon="plus" @click="handleAdd" v-has="'standardActivity:add'">{{
$t('newlyAdded')
}}
</a-button>
<!--编辑-->
<a-button type="primary" ghost icon="edit" @click="handleEdit">{{ $t('edit') }}</a-button>
<a-button type="primary" ghost icon="edit" @click="handleEdit" v-has="'standardActivity:edit'">{{ $t('edit') }}</a-button>
<!--查看-->
<a-button type="primary" ghost icon="eye" @click="handleDetail">{{ $t('view') }}</a-button>
<a-button type="primary" ghost icon="eye" @click="handleDetail" v-has="'standardActivity:view'">{{ $t('view') }}</a-button>
<!--会议统计列表-->
<a-button type="primary" ghost icon="eye">{{
<a-button type="primary" ghost icon="eye" @click="handleStatistical" v-has="'standardActivity:statistical'">{{
$t('businessSupport.standardizationActivity.conferenceStatisticsList')
}}
</a-button>
@@ -36,7 +39,11 @@
<a-col :md="8" :sm="8">
<div style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-button class="box-button" @click="searchReset">{{ $t('reset') }}</a-button>
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{
<a-button class="box-button"
style="margin-left: 8px"
type="primary"
@click="searchQuery"
v-has="'standardActivity:search'">{{
$t('query')
}}
</a-button>
@@ -64,6 +71,8 @@
<!--新增/编辑-->
<standardization-activity-drawer ref="modalForm" @ok="modalFormOk" />
<!--统计列表-->
<statistical-list-drawer ref="statisticalDrawer" />
</internal-detail-page>
</template>
@@ -72,10 +81,11 @@ import MindMap from '../../../components/MindMap.vue'
import InternalDetailPage from '../../../components/InternalDetailPage'
import { queryTreeList } from '../../../api/businessSupport'
import StandardizationActivityDrawer from './modules/StandardizationActivityDrawer'
import StatisticalListDrawer from './modules/StatisticalListDrawer'
export default {
name: 'StandardizationActivityPage',
components: { InternalDetailPage, MindMap, StandardizationActivityDrawer },
components: { InternalDetailPage, MindMap, StandardizationActivityDrawer, StatisticalListDrawer },
data () {
return {
nodeName: '',
@@ -218,6 +228,9 @@ export default {
return
}
this.$refs.modalForm.view(this.selectedNodeId)
},
handleStatistical () {
this.$refs.statisticalDrawer.open()
}
}
}
@@ -0,0 +1,56 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:maskClosable="false"
:ok-text="null"
:cancel-text="$t('cancel')"
@ok="handleCancel"
@cancel="handleCancel">
<contact-table :data-source="dataSource" :need-row-selection="false" :loading="loading" disabled/>
</j-modal>
</template>
<script>
import ContactTable from '../tables/ContactTable'
import { queryContactList } from '../../../../api/businessSupport'
export default {
name: 'ContactTableModal',
components: { ContactTable },
data () {
return {
title: this.$t('businessSupport.standardizationActivity.contactPersonContactInformation'),
width: 800,
visible: false,
loading: false,
dataSource: []
}
},
methods: {
open (id) {
this.visible = true
this.loading = true
queryContactList({ id }).then(res => {
if (res.success) {
this.dataSource = res.result || []
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
handleCancel () {
this.visible = false
}
}
}
</script>
<style scoped lang="less">
</style>
@@ -0,0 +1,55 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:maskClosable="false"
:ok-text="null"
:cancel-text="$t('cancel')"
@ok="handleCancel"
@cancel="handleCancel">
<group-table :data-source="dataSource" :need-row-selection="false" :loading="loading" disabled />
</j-modal>
</template>
<script>
import { queryGroupList } from '../../../../api/businessSupport'
import GroupTable from '../tables/GroupTable'
export default {
name: 'GroupTableModal',
components: { GroupTable },
data () {
return {
title: this.$t('businessSupport.standardizationActivity.groupParticipation'),
width: 800,
visible: false,
loading: false,
dataSource: []
}
},
methods: {
open (id) {
this.visible = true
this.loading = true
queryGroupList({ id }).then(res => {
if (res.success) {
this.dataSource = res.result || []
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
handleCancel () {
this.visible = false
}
}
}
</script>
<style scoped lang="less">
</style>
@@ -0,0 +1,55 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:maskClosable="false"
:ok-text="null"
:cancel-text="$t('cancel')"
@ok="handleCancel"
@cancel="handleCancel">
<meeting-table :data-source="dataSource" :need-row-selection="false" :loading="loading" disabled />
</j-modal>
</template>
<script>
import MeetingTable from '../tables/MeetingTable'
import { queryMeetingList } from '../../../../api/businessSupport'
export default {
name: 'MeetingTableModal',
components: { MeetingTable },
data () {
return {
title: this.$t('businessSupport.standardizationActivity.attendanceRecord'),
width: 800,
visible: false,
loading: false,
dataSource: []
}
},
methods: {
open (id) {
this.visible = true
this.loading = true
queryMeetingList({ id }).then(res => {
if (res.success) {
this.dataSource = res.result || []
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
handleCancel () {
this.visible = false
}
}
}
</script>
<style scoped lang="less">
</style>
@@ -0,0 +1,55 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:maskClosable="false"
:ok-text="null"
:cancel-text="$t('cancel')"
@ok="handleCancel"
@cancel="handleCancel">
<payment-table :data-source="dataSource" :need-row-selection="false" :loading="loading" disabled />
</j-modal>
</template>
<script>
import PaymentTable from '../tables/PaymentTable'
import { queryPaymentList } from '../../../../api/businessSupport'
export default {
name: 'PaymentTableModal',
components: { PaymentTable },
data () {
return {
title: this.$t('businessSupport.standardizationActivity.paymentInfo'),
width: 800,
visible: false,
loading: false,
dataSource: []
}
},
methods: {
open (id) {
this.visible = true
this.loading = true
queryPaymentList({ id }).then(res => {
if (res.success) {
this.dataSource = res.result || []
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
handleCancel () {
this.visible = false
}
}
}
</script>
<style scoped lang="less">
</style>
@@ -208,7 +208,7 @@ export default {
add (record) {
this.title = this.$t('newlyAdded')
this.visible = true
record.standardizationType = StandardizedActivityType.nameOfIndex(record.level + 1 + '')
record.standardizationType = StandardizedActivityType.secondLevelBidCommittee.text
this.model = Object.assign({}, record)
this.$nextTick(() => {
this.form.setFieldsValue(this.model)
@@ -229,6 +229,7 @@ export default {
queryTableDataById({ id }).then(res => {
if (res.success) {
const result = res.result || {}
// 基础信息
this.model = Object.assign({}, result.lawsStandardization || {})
this.$nextTick(() => {
this.form.setFieldsValue(this.model)
@@ -0,0 +1,209 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
:maskClosable="false"
destroyOnClose
class="custom-drawer-style">
<div class="custom-drawer-style-scroll">
<j-table :scroll="{x: '100%', y: 'calc(100vh - 56px - 61px - 48px - 54px)'}"
:pagination="false"
rowKey="id"
:loading="loading"
:columns="columns"
:dataSource="dataSource"
:operation-list="operationList"
@operationClick="operationClick">
</j-table>
</div>
<div class="custom-drawer-style-bottom-btn">
<a-button @click="handleCancel">{{ $t('cancel') }}</a-button>
</div>
<!--联络人联系方式-->
<contact-table-modal ref="contactTableModal" />
<!--集团参与情况-->
<group-table-modal ref="groupTableModal" />
<!--支付信息-->
<payment-table-modal ref="paymentTableModal" />
<!--参会记录-->
<meeting-table-modal ref="meetingTableModal" />
</a-drawer>
</template>
<script>
import JTable from '../../../../components/jero/JTable'
import { queryStatisticalList } from '../../../../api/businessSupport'
import ContactTableModal from './ContactTableModal'
import GroupTableModal from './GroupTableModal'
import PaymentTableModal from './PaymentTableModal'
import MeetingTableModal from './MeetingTableModal'
export default {
name: 'StatisticalListDrawer',
components: { JTable, ContactTableModal, GroupTableModal, PaymentTableModal, MeetingTableModal },
data () {
return {
title: this.$t('businessSupport.standardizationActivity.conferenceStatisticsList'),
width: 1200,
visible: false,
loading: false,
columns: [
// 序号
{
title: this.$t('serialNumber'),
key: 'rowIndex',
width: 60,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
// 上级节点
{
title: this.$t('businessSupport.standardizationActivity.parentNode'),
width: 150,
dataIndex: 'supperName'
},
// 节点类型
{
title: this.$t('businessSupport.standardizationActivity.nodeTypes'),
width: 100,
dataIndex: 'standardizationType'
},
// 编号
{
title: this.$t('number'),
width: 150,
dataIndex: 'num'
},
// 名称
{
title: this.$t('name'),
width: 150,
dataIndex: 'name'
},
// 标准化工作领域
{
title: this.$t('businessSupport.standardizationActivity.standardizationWorkArea'),
width: 130,
dataIndex: 'workingArea'
},
// 备注
{
title: this.$t('remarks'),
width: 150,
dataIndex: 'notes'
},
// 操作
{
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 200,
scopedSlots: { customRender: 'action' }
}
],
dataSource: [],
operationList: [
// 联络人联系方式
{
text: this.$t('businessSupport.standardizationActivity.contactPersonContactInformation'),
clickEvent: 'handleViewContact'
// has: 'enterpriseStandardLibrary:plan:delete'
},
// 集团参与情况
{
text: this.$t('businessSupport.standardizationActivity.groupParticipation'),
clickEvent: 'handleViewGroup'
// has: 'enterpriseStandardLibrary:plan:delete'
},
// 支付信息
{
text: this.$t('businessSupport.standardizationActivity.paymentInfo'),
clickEvent: 'handleViewPayment'
// has: 'enterpriseStandardLibrary:plan:delete'
},
// 参会记录
{
text: this.$t('businessSupport.standardizationActivity.attendanceRecord'),
clickEvent: 'handleViewMeeting'
// has: 'enterpriseStandardLibrary:plan:delete'
}
]
}
},
methods: {
open () {
this.visible = true
this.loading = true
queryStatisticalList().then(res => {
if (res.success) {
this.dataSource = res.result || []
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
handleCancel () {
this.close()
},
close () {
this.visible = false
},
/**
* 循环操作按钮的操作
* @param operation
* @param record
*/
operationClick (operation, record) {
if (operation.clickEvent === 'handleDelete') {
this.handleDelete(record.id)
} else {
this[operation.clickEvent](record)
}
},
/**
* 查看联络人联系方式
* @param id
*/
handleViewContact ({ id }) {
this.$refs.contactTableModal.open(id)
},
/**
* 查看集团参与情况
* @param id
*/
handleViewGroup ({ id }) {
this.$refs.groupTableModal.open(id)
},
/**
* 查看支付信息
* @param id
*/
handleViewPayment ({ id }) {
this.$refs.paymentTableModal.open(id)
},
/**
* 查看参会记录
* @param id
*/
handleViewMeeting ({ id }) {
this.$refs.meetingTableModal.open(id)
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>
@@ -7,12 +7,13 @@
<!--删除-->
<a-button type="primary" icon="delete" ghost @click="handleDelete">{{ $t('delete') }}</a-button>
</div>
<j-table :scroll="{x: '100%'}"
<j-table v-bind="$attrs"
:scroll="{x: '100%'}"
:pagination="false"
:rowKey="(record,index)=>{return index}"
:columns="columns"
:dataSource="realDataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
:row-selection="needRowSelection ? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange } : null">
</j-table>
<!--新增弹框-->
@@ -40,6 +41,12 @@ export default {
type: Boolean,
required: false,
default: false
},
// 是否需要行选中
needRowSelection: {
type: Boolean,
required: false,
default: true
}
},
data () {
@@ -7,12 +7,13 @@
<!--删除-->
<a-button type="primary" icon="delete" ghost @click="handleDelete">{{ $t('delete') }}</a-button>
</div>
<j-table :scroll="{x: '100%'}"
<j-table v-bind="$attrs"
:scroll="{x: '100%'}"
:pagination="false"
:rowKey="(record,index)=>{return index}"
:columns="columns"
:dataSource="realDataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
:row-selection="needRowSelection ? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange } : null">
<template v-slot:file="{text, record, index}">
<a-button type="primary"
@@ -55,6 +56,12 @@ export default {
type: Boolean,
required: false,
default: false
},
// 是否需要行选中
needRowSelection: {
type: Boolean,
required: false,
default: true
}
},
data () {
@@ -7,12 +7,13 @@
<!--删除-->
<a-button type="primary" icon="delete" ghost @click="handleDelete">{{ $t('delete') }}</a-button>
</div>
<j-table :scroll="{x: '100%'}"
<j-table v-bind="$attrs"
:scroll="{x: '100%'}"
:pagination="false"
:rowKey="(record,index)=>{return index}"
:columns="columns"
:dataSource="realDataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
:row-selection="needRowSelection ? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange } : null">
<template v-slot:file="{text, record, index}">
<a-button type="primary"
@@ -54,6 +55,12 @@ export default {
type: Boolean,
required: false,
default: false
},
// 是否需要行选中
needRowSelection: {
type: Boolean,
required: false,
default: true
}
},
data () {
@@ -7,12 +7,13 @@
<!--删除-->
<a-button type="primary" icon="delete" ghost @click="handleDelete">{{ $t('delete') }}</a-button>
</div>
<j-table :scroll="{x: '100%'}"
<j-table v-bind="$attrs"
:scroll="{x: '100%'}"
:pagination="false"
:rowKey="(record,index)=>{return index}"
:columns="columns"
:dataSource="realDataSource"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
:row-selection="needRowSelection ? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange } : null">
<template v-slot:file="{text, record, index}">
<a-button type="primary"
@@ -54,6 +55,12 @@ export default {
type: Boolean,
required: false,
default: false
},
// 是否需要行选中
needRowSelection: {
type: Boolean,
required: false,
default: true
}
},
data () {