Merge branch 'master' into 24年二季度其他
# Conflicts: # src/enums/commonEnums.js # src/views/projectManagement/modules/PublishRemindModal.vue
This commit is contained in:
+4
-1
@@ -120,6 +120,8 @@ export const transitRESTful = {
|
|||||||
const getContactsByCompany = (params) => getAction('/company/payContactsManagement/queryByCompany', params)
|
const getContactsByCompany = (params) => getAction('/company/payContactsManagement/queryByCompany', params)
|
||||||
// 通过企业名称获取该企业下的联系人无权限接口
|
// 通过企业名称获取该企业下的联系人无权限接口
|
||||||
const getContactsByCompanyNoLimit = (params) => getAction('/company/payContactsManagement/queryByCompanyMeeting', params)
|
const getContactsByCompanyNoLimit = (params) => getAction('/company/payContactsManagement/queryByCompanyMeeting', params)
|
||||||
|
// 通过企业名称获取该企业下的联系人 功能安全中心接口只能看到父级的
|
||||||
|
const getContactsByCompanyBySafetyCenter = (params) => getAction('/company/payContactsManagement/queryBySafetyCenter', params)
|
||||||
// 通过联系人id获取联系人信息
|
// 通过联系人id获取联系人信息
|
||||||
const getContactsById = (param) => getAction('/company/payContactsManagement/queryByIdMeeting', param)
|
const getContactsById = (param) => getAction('/company/payContactsManagement/queryByIdMeeting', param)
|
||||||
// 企业管理员重置密码
|
// 企业管理员重置密码
|
||||||
@@ -203,7 +205,8 @@ export {
|
|||||||
ssLoginEnterTerminal,
|
ssLoginEnterTerminal,
|
||||||
companyAdminResetPassword,
|
companyAdminResetPassword,
|
||||||
companyAdminEnable,
|
companyAdminEnable,
|
||||||
queryCompanyInfoById
|
queryCompanyInfoById,
|
||||||
|
getContactsByCompanyBySafetyCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -170,6 +170,12 @@ const updatePackageEnterprise = (params) => postAction('/company/payCompanyManag
|
|||||||
// 判断是否打包企业
|
// 判断是否打包企业
|
||||||
const judgeCompanyIsPackaged = (params) => getAction('/company/payCompanyManagement/judgeCompanyIsPackaged', params)
|
const judgeCompanyIsPackaged = (params) => getAction('/company/payCompanyManagement/judgeCompanyIsPackaged', params)
|
||||||
|
|
||||||
|
// 2024年6月变更 功能安全中心
|
||||||
|
// 通过id获取功能安全中心详情
|
||||||
|
const getSafetyCenterById = (params) => getAction('/SafetyCenter/queryById', params)
|
||||||
|
// 功能安全中心会议的发布提醒
|
||||||
|
const safetyCenterPublishRemind = (param) => postAction('/meeting/safetyCenterMeeting/release', param)
|
||||||
|
|
||||||
export {
|
export {
|
||||||
getWorkingGroupById,
|
getWorkingGroupById,
|
||||||
getChargeNotice,
|
getChargeNotice,
|
||||||
@@ -257,5 +263,8 @@ export {
|
|||||||
workingGroupEditAccount,
|
workingGroupEditAccount,
|
||||||
getAllDraftProjects,
|
getAllDraftProjects,
|
||||||
updatePackageEnterprise,
|
updatePackageEnterprise,
|
||||||
judgeCompanyIsPackaged
|
judgeCompanyIsPackaged,
|
||||||
|
|
||||||
|
getSafetyCenterById,
|
||||||
|
safetyCenterPublishRemind
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
cancelText="关闭">
|
cancelText="关闭">
|
||||||
<!-- 基本信息begin-->
|
<!-- 基本信息begin-->
|
||||||
<section class="base-info" v-if="projectType !== ProjectTypeEnums.DRAFT_PRO.value">
|
<section class="base-info" v-if="hideCostInfo && !isSafetyCenterMeeting">
|
||||||
<h3 class="title">基本信息</h3>
|
<h3 class="title">基本信息</h3>
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :span="12" class="detail-item">
|
<a-col :span="12" class="detail-item">
|
||||||
@@ -204,8 +204,8 @@
|
|||||||
<!-- 企业联系人信息start-->
|
<!-- 企业联系人信息start-->
|
||||||
<section>
|
<section>
|
||||||
<h3 class="title">企业联系人信息</h3>
|
<h3 class="title">企业联系人信息</h3>
|
||||||
<!-- 项目类型不是工作组或起草组。正常显示一个企业联系人的信息-->
|
<!-- 项目类型不是工作组或起草组或功能安全中心。正常显示一个企业联系人的信息-->
|
||||||
<template v-if="![2, 7].includes(basicInfo.projectType)">
|
<template v-if="![2, 7, ProjectTypeEnums.SAFETY_CENTER_PRO.value].includes(basicInfo.projectType)">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<label>企业联系人:</label>
|
<label>企业联系人:</label>
|
||||||
@@ -243,8 +243,8 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</template>
|
</template>
|
||||||
<!-- 工作组项目或起草组项目使用循环显示出联系人信息-->
|
<!-- 工作组项目或起草组项目或功能安全中心使用循环显示出联系人信息-->
|
||||||
<template v-if="[2, 7].includes(basicInfo.projectType) && basicInfo.payWorkingGroupSubItemContactsList && basicInfo.payWorkingGroupSubItemContactsList.length > 0">
|
<template v-if="[2, 7, ProjectTypeEnums.SAFETY_CENTER_PRO.value].includes(basicInfo.projectType) && basicInfo.payWorkingGroupSubItemContactsList && basicInfo.payWorkingGroupSubItemContactsList.length > 0">
|
||||||
<div v-for="(item, index) in basicInfo.payWorkingGroupSubItemContactsList" :key="index + ''">
|
<div v-for="(item, index) in basicInfo.payWorkingGroupSubItemContactsList" :key="index + ''">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :span="12" class="detail-item">
|
<a-col :span="12" class="detail-item">
|
||||||
@@ -292,7 +292,7 @@
|
|||||||
</section>
|
</section>
|
||||||
<!-- 企业联系人信息end-->
|
<!-- 企业联系人信息end-->
|
||||||
<!--到账信息begin-->
|
<!--到账信息begin-->
|
||||||
<section class="payment-info" v-if="projectType !== ProjectTypeEnums.DRAFT_PRO.value">
|
<section class="payment-info" v-if="hideCostInfo && !isSafetyCenterMeeting">
|
||||||
<h3 class="title">到账信息</h3>
|
<h3 class="title">到账信息</h3>
|
||||||
<div class="payment-info-box">
|
<div class="payment-info-box">
|
||||||
<section class="payment-info-title">到账信息</section>
|
<section class="payment-info-title">到账信息</section>
|
||||||
@@ -306,7 +306,7 @@
|
|||||||
</section>
|
</section>
|
||||||
<!--到账信息end-->
|
<!--到账信息end-->
|
||||||
<!--开票邮寄信息begin-->
|
<!--开票邮寄信息begin-->
|
||||||
<section class="logistics-info" v-if="projectType !== ProjectTypeEnums.DRAFT_PRO.value">
|
<section class="logistics-info" v-if="hideCostInfo && !isSafetyCenterMeeting">
|
||||||
<h3 class="title">开票邮寄信息</h3>
|
<h3 class="title">开票邮寄信息</h3>
|
||||||
<div class="wrap-table">
|
<div class="wrap-table">
|
||||||
<a-table
|
<a-table
|
||||||
@@ -341,7 +341,7 @@
|
|||||||
import { queryCommonProjectById, getStanderMemberLastProofInfo, getCertificateLastProofInfo } from '@api/incomePaymentsApi'
|
import { queryCommonProjectById, getStanderMemberLastProofInfo, getCertificateLastProofInfo } from '@api/incomePaymentsApi'
|
||||||
import JEllipsis from '@comp/jero/JEllipsis'
|
import JEllipsis from '@comp/jero/JEllipsis'
|
||||||
import PreviewFile from './jero/PreviewFile'
|
import PreviewFile from './jero/PreviewFile'
|
||||||
import { ProjectTypeEnums } from '@/enums/commonEnums'
|
import {MeetingTypeEnums, ProjectTypeEnums} from '@/enums/commonEnums'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import {ACCESS_TOKEN} from '@/store/mutation-types'
|
import {ACCESS_TOKEN} from '@/store/mutation-types'
|
||||||
import PreviewFileModal from '@comp/PreviewFileModal'
|
import PreviewFileModal from '@comp/PreviewFileModal'
|
||||||
@@ -414,6 +414,11 @@ export default {
|
|||||||
projectType:{
|
projectType:{
|
||||||
type: Number,
|
type: Number,
|
||||||
required: false
|
required: false
|
||||||
|
},
|
||||||
|
// 会议类型
|
||||||
|
meetingType: {
|
||||||
|
type: String,
|
||||||
|
required: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -441,6 +446,16 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
// 是否隐藏金额相关信息(起草组、功能安全中心)
|
||||||
|
hideCostInfo () {
|
||||||
|
const arr = [ProjectTypeEnums.DRAFT_PRO.value, ProjectTypeEnums.SAFETY_CENTER_PRO.value]
|
||||||
|
return !arr.includes(this.projectType)
|
||||||
|
},
|
||||||
|
// 是否功能安全中心会议
|
||||||
|
isSafetyCenterMeeting () {
|
||||||
|
console.log(this.meetingType)
|
||||||
|
return this.meetingType + '' === MeetingTypeEnums.safetyCenter.value
|
||||||
|
},
|
||||||
// 是否是第三方代付
|
// 是否是第三方代付
|
||||||
hasOtherCompany() {
|
hasOtherCompany() {
|
||||||
// 去掉未审核 去判断的企业是否是标协会企业
|
// 去掉未审核 去判断的企业是否是标协会企业
|
||||||
|
|||||||
@@ -77,6 +77,18 @@ export default {
|
|||||||
type:Boolean,
|
type:Boolean,
|
||||||
required:false,
|
required:false,
|
||||||
default:false
|
default:false
|
||||||
|
},
|
||||||
|
// 自定义列表接口(功能安全中心只能看到父级已添加的企业)
|
||||||
|
customListUrl: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
// 自定义列表查询参数,功能安全中心会议
|
||||||
|
customListParams: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default: () => ({})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -133,7 +145,16 @@ export default {
|
|||||||
params.memberNature = this.memberNature
|
params.memberNature = this.memberNature
|
||||||
}
|
}
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getAction(this.url.list, params).then((res) => {
|
let url = this.url.list
|
||||||
|
// 如果有自定义的查询列表接口,就用自定义的查询以及查询参数
|
||||||
|
if (this.customListUrl) {
|
||||||
|
url = this.customListUrl
|
||||||
|
}
|
||||||
|
// 如果有自定义查询参数,就将参数合并进去
|
||||||
|
if (this.customListParams) {
|
||||||
|
Object.assign(params, this.customListParams)
|
||||||
|
}
|
||||||
|
getAction(url, params).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
this.dataSource = res.result.records || res.result
|
this.dataSource = res.result.records || res.result
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<!-- 在点击组件时获取联系人列表-->
|
<!-- 在点击组件时获取联系人列表-->
|
||||||
<div>
|
<div>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="20">
|
<a-col :span="canAdd ? 20 : 24">
|
||||||
<a-select :value="value"
|
<a-select :value="value"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
v-on="$listeners"
|
v-on="$listeners"
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<a-select-option v-for="item in contactsList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
|
<a-select-option v-for="item in contactsList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4" class="form-btn">
|
<a-col :span="4" class="form-btn" v-if="canAdd">
|
||||||
<a-button icon="plus" v-bind="$attrs" @click="addContacts"></a-button>
|
<a-button icon="plus" v-bind="$attrs" @click="addContacts"></a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -50,6 +50,12 @@ export default {
|
|||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 是否可以新增:true--可以;false--不可以
|
||||||
|
canAdd: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
value: {
|
value: {
|
||||||
type: [String, Object],
|
type: [String, Object],
|
||||||
required: false,
|
required: false,
|
||||||
@@ -72,6 +78,18 @@ export default {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
|
},
|
||||||
|
// 自定义列表接口(功能安全中心只能看到父级已添加的企业)
|
||||||
|
customListFn: {
|
||||||
|
type: [Function, null],
|
||||||
|
required: false,
|
||||||
|
default: null
|
||||||
|
},
|
||||||
|
// 自定义列表查询参数,功能安全中心会议
|
||||||
|
customListParams: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default: () => ({})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -126,6 +144,22 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
params.companyId = null
|
params.companyId = null
|
||||||
}
|
}
|
||||||
|
// 如果有自定义查询参数,就将参数合并进去
|
||||||
|
if (this.customListParams) {
|
||||||
|
Object.assign(params, this.customListParams)
|
||||||
|
}
|
||||||
|
// 如果有自定义查询接口,就用自定义的
|
||||||
|
if (this.customListFn) {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.customListFn(params).then(res => {
|
||||||
|
this.contactsList = res.result
|
||||||
|
if (this.initContacts && this.initContacts.id) {
|
||||||
|
this.contactsList.push(this.initContacts)
|
||||||
|
}
|
||||||
|
resolve()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
// 是否调用无权限接口
|
// 是否调用无权限接口
|
||||||
if (this.isLimit) {
|
if (this.isLimit) {
|
||||||
// 调用无权限接口
|
// 调用无权限接口
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ export const ProjectTypeEnums = {
|
|||||||
STANDARD_MEMBER_PRO: {name: '标协会员项目', value: 5},
|
STANDARD_MEMBER_PRO: {name: '标协会员项目', value: 5},
|
||||||
STANDARD_CERTIFICATE_PRO: {name: '标协证书项目', value: 6},
|
STANDARD_CERTIFICATE_PRO: {name: '标协证书项目', value: 6},
|
||||||
DRAFT_PRO: {name: '起草组项目', value: 7},
|
DRAFT_PRO: {name: '起草组项目', value: 7},
|
||||||
PACK_PRO: { name: '打包项目', value: 8 }
|
PACK_PRO: { name: '打包项目', value: 8 },
|
||||||
|
SAFETY_CENTER_PRO: { name: '功能安全中心项目', value: 9 }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 参会人员身份类型
|
// 参会人员身份类型
|
||||||
@@ -73,7 +74,15 @@ export const MeetingTypeEnums = {
|
|||||||
committee: { name: '分标委会议', value: '5' },
|
committee: { name: '分标委会议', value: '5' },
|
||||||
council: { name: '理事会会议', value: '6' },
|
council: { name: '理事会会议', value: '6' },
|
||||||
draftGroup: { name: '起草会会议', value: '7' },
|
draftGroup: { name: '起草会会议', value: '7' },
|
||||||
overseas: { name: '海外会议', value: '8' }
|
overseas: { name: '海外会议', value: '8' },
|
||||||
|
safetyCenter: { name: '功能安全中心会议', value: '9' }
|
||||||
|
}
|
||||||
|
|
||||||
|
// 功能安全中心-项目类型
|
||||||
|
export const SafetyCenterProjectTypeEnums = {
|
||||||
|
safetyCenter: { name: '功能安全中心', value: '1' },
|
||||||
|
studyGroup: { name: '研究组', value: '2' },
|
||||||
|
projectGroup: { name: '项目组', value: '3' }
|
||||||
}
|
}
|
||||||
|
|
||||||
export const OpeTypeEnums = {
|
export const OpeTypeEnums = {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* data中url定义 list为查询列表 delete为删除单条记录 deleteBatch为批量删除
|
* data中url定义 list为查询列表 delete为删除单条记录 deleteBatch为批量删除
|
||||||
*/
|
*/
|
||||||
import {filterObj} from '@/utils/util'
|
import {filterObj} from '@/utils/util'
|
||||||
import {getAction, downloadFile, getFileAccessHttpUrl, postAction} from '@/api/manage'
|
import {getAction, downloadFile, getFileAccessHttpUrl, postAction, httpAction} from '@/api/manage'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import {ACCESS_TOKEN, TENANT_ID} from '@/store/mutation-types'
|
import {ACCESS_TOKEN, TENANT_ID} from '@/store/mutation-types'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
@@ -58,6 +58,8 @@ export const JeroListMixin = {
|
|||||||
superQueryParams: '',
|
superQueryParams: '',
|
||||||
/** 高级查询拼接方式 */
|
/** 高级查询拼接方式 */
|
||||||
superQueryMatchType: 'and',
|
superQueryMatchType: 'and',
|
||||||
|
// 新增的删除接口请求方式改成post,需要的模块设置成true
|
||||||
|
postMethodDel: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -193,7 +195,9 @@ export const JeroListMixin = {
|
|||||||
content: '是否删除选中数据?',
|
content: '是否删除选中数据?',
|
||||||
onOk: function () {
|
onOk: function () {
|
||||||
that.loading = true
|
that.loading = true
|
||||||
getAction(that.url.deleteBatch, {ids: ids}).then((res) => {
|
// 新增加的删除接口用post方式请求
|
||||||
|
const actionFunc = that.postMethodDel ? postAction : getAction
|
||||||
|
actionFunc(that.url.deleteBatch, {ids: ids}).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
that.$message.success(res.message)
|
that.$message.success(res.message)
|
||||||
// 判断当前删除的数据是否是最后一页的全部数据,如果是的话页码减一
|
// 判断当前删除的数据是否是最后一页的全部数据,如果是的话页码减一
|
||||||
@@ -228,7 +232,9 @@ export const JeroListMixin = {
|
|||||||
title: '确认删除',
|
title: '确认删除',
|
||||||
content: '确定要删除此条数据吗?',
|
content: '确定要删除此条数据吗?',
|
||||||
onOk: function () {
|
onOk: function () {
|
||||||
getAction(that.url.delete, {id: id}).then((res) => {
|
// 新增加的删除接口用post方式请求
|
||||||
|
const actionFunc = that.postMethodDel ? postAction : getAction
|
||||||
|
actionFunc(that.url.delete, {id: id}).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
that.$message.success(res.message)
|
that.$message.success(res.message)
|
||||||
// 判断当前删除的数据是否是最后一页的最后一条数据,如果是的话页码减一
|
// 判断当前删除的数据是否是最后一页的最后一条数据,如果是的话页码减一
|
||||||
|
|||||||
@@ -0,0 +1,328 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<page-header-title v-if="$route.query.id" :is-level-one="false" :level-two-title="$route.query.title"></page-header-title>
|
||||||
|
<page-header-title v-else :img-for-icon="IconDraftingGruop"></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="6" :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
|
<a-form-item label="项目名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-input placeholder="请输入项目名称" v-model="queryParam.projectName" :maxLength='50'></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xxl="6" :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
|
<a-form-item label="负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<select-principal placeholder="请选择负责人" v-model="queryParam.principalId"></select-principal>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xl="4" :lg="7" :md="8" :sm="24">
|
||||||
|
<span class="table-page-search-submitButtons">
|
||||||
|
<a-button type="primary" icon="search" @click="searchQuery"
|
||||||
|
v-has="'safetyCenter:search'">查询</a-button>
|
||||||
|
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
|
||||||
|
</span>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
<!-- /查询区域-end-->
|
||||||
|
|
||||||
|
<!-- 操作按钮区域-->
|
||||||
|
<div class="table-operator">
|
||||||
|
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'safetyCenter:add'">新增</a-button>
|
||||||
|
<a-button type="danger" icon="delete" @click="batchDel" v-has="'safetyCenter:batchDel'">批量删除</a-button>
|
||||||
|
</div>
|
||||||
|
<!-- /操作按钮区域-end-->
|
||||||
|
|
||||||
|
<!-- table表格区域-->
|
||||||
|
<div>
|
||||||
|
<a-table
|
||||||
|
ref="table"
|
||||||
|
size="middle"
|
||||||
|
bordered
|
||||||
|
rowKey="id"
|
||||||
|
:columns="columns"
|
||||||
|
:scroll="{x: 1000}"
|
||||||
|
:dataSource="dataSource"
|
||||||
|
:pagination="ipagination"
|
||||||
|
:loading="loading"
|
||||||
|
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, getCheckboxProps: getCheckboxProps}"
|
||||||
|
@change="handleTableChange"
|
||||||
|
class="j-table-force-nowrap">
|
||||||
|
|
||||||
|
<!-- 项目名称-->
|
||||||
|
<template slot="projectName" slot-scope="text, record">
|
||||||
|
<a-tooltip>
|
||||||
|
<template slot="title">{{ text }}</template>
|
||||||
|
<div class="primary-color text-over" @click="goMemberUnitMaintenance(record)">{{ text }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</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">
|
||||||
|
<!-- 研究组可以点击在研项目显示项目组的信息 -->
|
||||||
|
<a @click="goUnderStudyProject(record)" v-has="'safetyCenter:underStudyProject'"
|
||||||
|
v-if="record.projectType + '' === SafetyCenterProjectTypeEnums.studyGroup.value">在研项目</a>
|
||||||
|
<a @click="goFilesMaintenance(record)" v-has="'safetyCenter:fileMaintenance'">其他分发资料</a>
|
||||||
|
<a @click="goConferenceMaintenance(record)" v-has="'safetyCenter:meetingMaintenance'">项目会议</a>
|
||||||
|
<!--<a @click="handleCopy(record.id)" v-has="'safetyCenter:copy'">复制</a>-->
|
||||||
|
<a @click="handleEdit(record)" v-has="'safetyCenter:edit'">基本信息维护</a>
|
||||||
|
<a @click="handleDelete(record.id)" v-has="'safetyCenter:delete'"
|
||||||
|
v-if="record.projectType + '' === SafetyCenterProjectTypeEnums.projectGroup.value">删除</a>
|
||||||
|
</span>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
<!-- /table表格区域-->
|
||||||
|
</a-card>
|
||||||
|
<!--新增、基本信息维护-->
|
||||||
|
<safety-center-module ref="modalForm" @ok="modalFormOk"></safety-center-module>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
|
import SelectPrincipal from '@comp/company/SelectPrincipal'
|
||||||
|
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||||
|
import IconDraftingGruop from '@/assets/imgs/icon/icon_drafting_group.png'
|
||||||
|
import { getAction } from '@api/manage'
|
||||||
|
import SafetyCenterModule from '@views/functionalSafetyCenter/modules/SafetyCenterModule'
|
||||||
|
import {MeetingTypeEnums, SafetyCenterProjectTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'FunctionalSafetyCenter',
|
||||||
|
components: {SafetyCenterModule, SelectPrincipal, PageHeaderTitle },
|
||||||
|
mixins: [JeroListMixin],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
disableMixinCreated: true,
|
||||||
|
// 混入post请求删除接口
|
||||||
|
postMethodDel: true,
|
||||||
|
SafetyCenterProjectTypeEnums,
|
||||||
|
IconDraftingGruop,
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 5 }
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 10 }
|
||||||
|
},
|
||||||
|
url: {
|
||||||
|
list: '/SafetyCenter/page',
|
||||||
|
delete: '/SafetyCenter/delete',
|
||||||
|
deleteBatch: '/SafetyCenter/deleteBatch'
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: '',
|
||||||
|
key: 'rowIndex',
|
||||||
|
width: 60,
|
||||||
|
align: 'center',
|
||||||
|
customRender: function (t, r, index) {
|
||||||
|
return parseInt(index) + 1
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
title: '项目名称',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'projectName',
|
||||||
|
scopedSlots: { customRender: 'projectName' }
|
||||||
|
}, {
|
||||||
|
title: '负责人',
|
||||||
|
align: 'center',
|
||||||
|
width: 130,
|
||||||
|
dataIndex: 'principalId_dictText'
|
||||||
|
}, {
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
align: 'center',
|
||||||
|
fixed: 'right',
|
||||||
|
width: 500,
|
||||||
|
scopedSlots: { customRender: 'action' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
queryParam: {},
|
||||||
|
lastQueryParam: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
// 如果有id展示项目组数据接口
|
||||||
|
if (this.$route.query.id) {
|
||||||
|
this.filters.parentId = this.$route.query.id
|
||||||
|
this.url.list = '/SafetyCenter/projectGroupPage'
|
||||||
|
}
|
||||||
|
this.loadData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getCheckboxProps (record) {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
// 一级禁用,防止勾选删除
|
||||||
|
disabled: record.projectType + '' === SafetyCenterProjectTypeEnums.safetyCenter.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
loadData(arg) {
|
||||||
|
if (!this.url.list) {
|
||||||
|
this.$message.error('请设置url.list属性!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//加载数据 若传入参数1则加载第一页的内容
|
||||||
|
if (arg === 1) {
|
||||||
|
this.ipagination.current = 1
|
||||||
|
}
|
||||||
|
var params = this.getQueryParams()//查询条件
|
||||||
|
this.loading = true
|
||||||
|
getAction(this.url.list, params).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
this.dataSource = res.result.records || res.result
|
||||||
|
if (res.result.total) {
|
||||||
|
this.ipagination.total = res.result.total
|
||||||
|
//清空列表选中
|
||||||
|
this.onClearSelected()
|
||||||
|
} else {
|
||||||
|
this.ipagination.total = 0
|
||||||
|
}
|
||||||
|
//update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
}
|
||||||
|
if (res.code === 510) {
|
||||||
|
this.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 文件维护
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
goFilesMaintenance(record) {
|
||||||
|
console.log(record)
|
||||||
|
this.$router.push({
|
||||||
|
path: '/projectManagement/WorkingGroupProjectDataMaintenance',
|
||||||
|
query: {
|
||||||
|
safetyCenterId: record.id,
|
||||||
|
canOperate: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 会议维护
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
goConferenceMaintenance(record) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/functionalSafetyCenter/FunctionalSafetyConferenceMaintenance',
|
||||||
|
query: {
|
||||||
|
projectName: record.projectName,
|
||||||
|
projectId: record.id,
|
||||||
|
canOperate: true,
|
||||||
|
meetingType: MeetingTypeEnums.safetyCenter.value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 成员维护
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
goMemberUnitMaintenance(record) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/functionalSafetyCenter/FunctionalSafetyMemberUnitMaintenance',
|
||||||
|
query: {
|
||||||
|
projectName: record.projectName,
|
||||||
|
projectId: record.id,
|
||||||
|
canOperate: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
searchReset() {
|
||||||
|
this.lastQueryParam = {
|
||||||
|
year: new Date().getFullYear().toString()
|
||||||
|
}
|
||||||
|
this.queryParam = {
|
||||||
|
year: new Date().getFullYear().toString()
|
||||||
|
}
|
||||||
|
this.loadData(1)
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 在研项目
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
goUnderStudyProject(record) {
|
||||||
|
console.log(record)
|
||||||
|
this.$router.push({
|
||||||
|
path: '/functionalSafetyCenter',
|
||||||
|
query: {
|
||||||
|
title: record.projectName,
|
||||||
|
id: record.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 重写编辑
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
handleEdit(record) {
|
||||||
|
this.$refs.modalForm.edit(record)
|
||||||
|
this.$refs.modalForm.title = '基本信息维护'
|
||||||
|
this.$refs.modalForm.disableSubmit = false
|
||||||
|
},
|
||||||
|
// 下拉框的搜索
|
||||||
|
filterOption(input, option) {
|
||||||
|
return (
|
||||||
|
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
|
||||||
|
.tooltip {
|
||||||
|
float: right;
|
||||||
|
width: auto;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: flex-end;
|
||||||
|
height: 40px;
|
||||||
|
|
||||||
|
&-item {
|
||||||
|
margin-right: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-color {
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
margin-right: 5px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-pay-in-full {
|
||||||
|
background: linear-gradient(0deg, #069f99 0%, #07b0a9 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&-partial-payment {
|
||||||
|
background: linear-gradient(0deg, #0075a9 0%, #0096d8 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&-non-payment {
|
||||||
|
background: #e8e8e8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-over {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,399 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<page-header-title :is-level-one="false" :level-two-title="projectName"></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="6" :lg="7" :md="8" :sm="24">
|
||||||
|
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-input placeholder="请输入会议名称" v-model="queryParam.meetingName" :maxLength='50'></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||||
|
<a-form-item label="会议时间">
|
||||||
|
<j-date
|
||||||
|
placeholder="请选择开始日期"
|
||||||
|
class="query-group-cust"
|
||||||
|
v-model="queryParam.meetingStartTime"
|
||||||
|
:disabled-date="disabledStartDate">
|
||||||
|
</j-date>
|
||||||
|
<span class="query-group-split-cust"></span>
|
||||||
|
<j-date
|
||||||
|
placeholder="请选择结束日期"
|
||||||
|
class="query-group-cust"
|
||||||
|
v-model="queryParam.meetingEndTime"
|
||||||
|
:disabled-date="disabledEndDate">
|
||||||
|
</j-date>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
|
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<j-year-date style="width:100%" placeholder="请选择年份"
|
||||||
|
v-model="queryParam.particularYear"></j-year-date>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||||
|
<a-form-item label="创建时间">
|
||||||
|
<j-date
|
||||||
|
placeholder="请选择开始日期"
|
||||||
|
class="query-group-cust"
|
||||||
|
v-model="queryParam.createTime_begin"
|
||||||
|
:disabled-date="disabledStartCreateDate">
|
||||||
|
</j-date>
|
||||||
|
<span class="query-group-split-cust"></span>
|
||||||
|
<j-date
|
||||||
|
placeholder="请选择结束日期"
|
||||||
|
class="query-group-cust"
|
||||||
|
v-model="queryParam.createTime_end"
|
||||||
|
:disabled-date="disabledEndCreateDate">
|
||||||
|
</j-date>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
|
||||||
|
<a-col :xl="6" :lg="7" :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="6" :lg="7" :md="8" :sm="24">
|
||||||
|
<span class="table-page-search-submitButtons">
|
||||||
|
<a-button type="primary" icon="search" @click="searchQuery"
|
||||||
|
v-has="'safetyCenterMeeting:search'">查询</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" icon="plus" @click="handleAdd" v-has="'safetyCenterMeeting:add'" v-if="canOperate">新增
|
||||||
|
</a-button>
|
||||||
|
<a-button type="primary" icon="export" @click="handleExportXls('功能安全中心会议')"
|
||||||
|
v-has="'safetyCenterMeeting:export'">导出
|
||||||
|
</a-button>
|
||||||
|
<a-button type="danger" icon="delete" @click="batchDel" v-has="'safetyCenterMeeting:batchDel'" v-if="canOperate">
|
||||||
|
批量删除
|
||||||
|
</a-button>
|
||||||
|
<a-button type="primary" @click="publishRemind" v-has="'safetyCenterMeeting:publish'" v-if="canOperate">发布
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
<!-- /操作按钮区域-end-->
|
||||||
|
|
||||||
|
<!-- table表格区域-->
|
||||||
|
<div>
|
||||||
|
<a-table
|
||||||
|
ref="table"
|
||||||
|
size="middle"
|
||||||
|
bordered
|
||||||
|
rowKey="id"
|
||||||
|
:scroll="{x:true}"
|
||||||
|
:columns="columns"
|
||||||
|
:dataSource="dataSource"
|
||||||
|
:pagination="ipagination"
|
||||||
|
:loading="loading"
|
||||||
|
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||||
|
@change="handleTableChange"
|
||||||
|
class="j-table-force-nowrap">
|
||||||
|
|
||||||
|
<!-- 会议名称 点击去参会情况-->
|
||||||
|
<template slot="htmlSlot" slot-scope="text, record">
|
||||||
|
<j-ellipsis v-if="!!text" class="primary-color" :value="text" :length="20"
|
||||||
|
@click="toAttendance(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="uploadFile(record,'1')" v-has="'safetyCenterMeeting:uploadCouncil'">会议纪要</a>
|
||||||
|
<a @click="uploadFile(record,'2')" v-has="'safetyCenterMeeting:upload'">上传文件</a>
|
||||||
|
<!-- <a @click="applyMsg">报名信息</a>-->
|
||||||
|
<a @click="handleEdit(record)" v-has="'safetyCenterMeeting:edit'">编辑</a>
|
||||||
|
<a @click="handleDelete(record.id)" v-has="'safetyCenterMeeting:delete'">删除</a>
|
||||||
|
</span>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
<publish-remind-modal ref="publishRemindModal" @ok="modalFormOk"></publish-remind-modal>
|
||||||
|
<upload-meet-file-modal ref="modalForm" @ok="modalFormOk"></upload-meet-file-modal>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
|
import { RangeDateMixin } from '@/mixins/RangeDateMixin'
|
||||||
|
import JYearDate from '@comp/jero/JYearDate'
|
||||||
|
import JDate from '@comp/tools/JDate'
|
||||||
|
import moment from 'moment'
|
||||||
|
import JDictSelectTag from '@comp/dict/JDictSelectTag'
|
||||||
|
import PublishRemindModal from '@views/projectManagement/modules/PublishRemindModal'
|
||||||
|
import UploadMeetFileModal from '@views/incomePayments/meetManage/modules/UploadMeetFileModal'
|
||||||
|
import '@/assets/less/TableExpand.less'
|
||||||
|
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
||||||
|
import {MeetingTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'FunctionalSafetyCenterConferenceMaintenance',
|
||||||
|
components: {
|
||||||
|
JYearDate,
|
||||||
|
JDate,
|
||||||
|
JDictSelectTag,
|
||||||
|
PublishRemindModal,
|
||||||
|
UploadMeetFileModal,
|
||||||
|
PageHeaderTitle
|
||||||
|
},
|
||||||
|
mixins: [JeroListMixin, RangeDateMixin],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
projectName: '',
|
||||||
|
projectId: '',
|
||||||
|
disableMixinCreated: true,
|
||||||
|
list: [],
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 5 }
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 10 }
|
||||||
|
},
|
||||||
|
dateKeyObj: {
|
||||||
|
beginKey: 'meetingStartTime',
|
||||||
|
endKey: 'meetingEndtTime'
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: '',
|
||||||
|
key: 'rowIndex',
|
||||||
|
width: 60,
|
||||||
|
align: 'center',
|
||||||
|
customRender: function (t, r, index) {
|
||||||
|
return parseInt(index) + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '会议名称',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'meetingName',
|
||||||
|
scopedSlots: { customRender: 'htmlSlot' },
|
||||||
|
width: 160
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '会议类型',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'meetingType_dictText',
|
||||||
|
width: 100,
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '负责人',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'directorName',
|
||||||
|
width: 160,
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '召开时间',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'startTime',
|
||||||
|
width: 200,
|
||||||
|
customRender: (text, record) => (
|
||||||
|
<j-ellipsis value={ record.startTime + '~' + record.endTime } length={ 20 }></j-ellipsis>)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '召开地点',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'venue',
|
||||||
|
width: 200,
|
||||||
|
customRender: (text, record) => (
|
||||||
|
<j-ellipsis value={ text + '/' + record.address } length={ 20 }></j-ellipsis>)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '年份',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'particularYear',
|
||||||
|
width: 120,
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '已提醒',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'remind_dictText',
|
||||||
|
width: 100,
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '创建时间',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
align: 'center',
|
||||||
|
fixed: 'right',
|
||||||
|
width: 160,
|
||||||
|
scopedSlots: { customRender: 'action' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
url: {
|
||||||
|
list: '/meeting/safetyCenterMeeting/page',
|
||||||
|
delete: '/meeting/safetyCenterMeeting/delete',
|
||||||
|
deleteBatch: '/meeting/safetyCenterMeeting/deleteBatch',
|
||||||
|
exportXlsUrl: '/meeting/safetyCenterMeeting/exportXls'
|
||||||
|
},
|
||||||
|
canOperate: true // 是否可操作(负责人B不可操作)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.projectName = this.$route.query.projectName
|
||||||
|
this.projectId = this.$route.query.projectId
|
||||||
|
this.filters.safetyCenterId = this.projectId
|
||||||
|
this.loadData(1)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/**
|
||||||
|
* 返回项目列表
|
||||||
|
*/
|
||||||
|
backWorkingGroupProject() {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/functionalSafetyCenter'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 新增
|
||||||
|
* */
|
||||||
|
handleAdd() {
|
||||||
|
// 记录当前的项目id
|
||||||
|
let currentId = this.$route.query.projectId
|
||||||
|
this.$router.push({
|
||||||
|
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||||
|
query: {
|
||||||
|
safetyCenterId: currentId,
|
||||||
|
meetingType: MeetingTypeEnums.safetyCenter.value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 编辑
|
||||||
|
* */
|
||||||
|
handleEdit(record) {
|
||||||
|
// 记录当前的工作组id
|
||||||
|
let currentId = this.$route.query.projectId
|
||||||
|
this.$router.push({
|
||||||
|
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||||
|
query: {
|
||||||
|
safetyCenterId: currentId,
|
||||||
|
id: record.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 发布
|
||||||
|
* */
|
||||||
|
publishRemind() {
|
||||||
|
if (this.selectionRows.length === 0) {
|
||||||
|
this.$message.warn('请选择一个会议')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
// 传入选中的会议id
|
||||||
|
this.$refs.publishRemindModal.open(this.selectedRowKeys)
|
||||||
|
this.$refs.publishRemindModal.title = '发布'
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 上传文件
|
||||||
|
* */
|
||||||
|
uploadFile(record,type) {
|
||||||
|
this.$refs.modalForm.edit(record,type)
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 报名信息
|
||||||
|
* */
|
||||||
|
applyMsg() {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/incomePayments/meetManage/SignUpInfoList'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 参会情况
|
||||||
|
* */
|
||||||
|
toAttendance(record) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/incomePayments/meetManage/AttendanceFunctionalSafetyCenter',
|
||||||
|
query: {
|
||||||
|
id: record.id,
|
||||||
|
meetingName: record.meetingName,
|
||||||
|
meetingType: MeetingTypeEnums.safetyCenter.value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 创建时间开始禁用
|
||||||
|
* */
|
||||||
|
disabledStartCreateDate(startValue) {
|
||||||
|
const endValue = this.queryParam.createTime_end && moment(this.queryParam.createTime_end, this.rangeDateFormat.end)
|
||||||
|
if (!startValue || !endValue) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return startValue.valueOf() > endValue.valueOf()
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 创建时间结束禁用
|
||||||
|
* */
|
||||||
|
disabledEndCreateDate(endValue) {
|
||||||
|
const startValue = this.queryParam.createTime_begin && moment(this.queryParam.createTime_begin, this.rangeDateFormat.begin)
|
||||||
|
if (!endValue || !startValue) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return startValue.valueOf() > endValue.valueOf()
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* 修改查询条件
|
||||||
|
* */
|
||||||
|
searchQuery() {
|
||||||
|
// this.queryParam.meetingStartTime = this.queryParam.meetingStartTime ? this.queryParam.meetingStartTime + ' ' + '00:00:00' : undefined
|
||||||
|
// this.queryParam.meetingEndTime = this.queryParam.meetingEndTime ? this.queryParam.meetingEndTime + ' ' + '23:59:59' : undefined
|
||||||
|
// this.queryParam.createTime_begin = this.queryParam.createTime_begin ? this.queryParam.createTime_begin + ' ' + '00:00:00' : undefined
|
||||||
|
// this.queryParam.createTime_end = this.queryParam.createTime_end ? this.queryParam.createTime_end + ' ' + '23:59:59' : undefined
|
||||||
|
this.lastQueryParam = { ...this.queryParam }
|
||||||
|
if(this.lastQueryParam.meetingStartTime) this.lastQueryParam.meetingStartTime = this.lastQueryParam.meetingStartTime + ' ' + '00:00:00'
|
||||||
|
if(this.lastQueryParam.meetingEndTime) this.lastQueryParam.meetingEndTime = this.lastQueryParam.meetingEndTime + ' ' + '23:59:59'
|
||||||
|
if(this.lastQueryParam.createTime_begin) this.lastQueryParam.createTime_begin = this.lastQueryParam.createTime_begin + ' ' + '00:00:00'
|
||||||
|
if(this.lastQueryParam.createTime_end) this.lastQueryParam.createTime_end = this.lastQueryParam.createTime_end + ' ' + '23:59:59'
|
||||||
|
this.loadData(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
|
||||||
|
.title {
|
||||||
|
|
||||||
|
&-text {
|
||||||
|
padding-left: 1rem;
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
height: 1px;
|
||||||
|
background-color: #cccccc;
|
||||||
|
margin: 15px -24px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,379 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<page-header-title :is-level-one="false" :level-two-title="projectName"></page-header-title>
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<div class="part-title">
|
||||||
|
<div class="part-title-text">项目信息</div>
|
||||||
|
</div>
|
||||||
|
<!-- 信息区域-->
|
||||||
|
<a-spin :spinning="spinning">
|
||||||
|
<div class="work-group-detail">
|
||||||
|
<div class="work-group-detail-item work-group-detail-item-small"
|
||||||
|
v-for="(item, index) in detailTitleList"
|
||||||
|
:key="index">
|
||||||
|
<div class="work-group-detail-item-title">{{ item.title }}:</div>
|
||||||
|
<div class="work-group-detail-item-content work-group-detail-item-filename"
|
||||||
|
v-if="(item.fieldName === 'chargeNoticeAId' || item.fieldName === 'chargeNoticeBId') && detail[item.fieldName]">
|
||||||
|
<preview-file :file-id="detail[item.fieldName]"></preview-file>
|
||||||
|
</div>
|
||||||
|
<div class="work-group-detail-item-content" v-else>{{ detail[item.fieldName] }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="work-group-detail-item">
|
||||||
|
<div class="work-group-detail-item-title">任务及目标:</div>
|
||||||
|
<div class="work-group-detail-item-content">{{ detail.missionAndObjectives }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="work-group-detail-item">
|
||||||
|
<div class="work-group-detail-item-title">备注:</div>
|
||||||
|
<div class="work-group-detail-item-content">{{ detail.remarks }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-spin>
|
||||||
|
<!-- /信息区域-->
|
||||||
|
|
||||||
|
<a-divider></a-divider>
|
||||||
|
|
||||||
|
<!-- 查询区域-->
|
||||||
|
<div class="part-title">
|
||||||
|
<div class="part-title-text">成员信息</div>
|
||||||
|
</div>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
|
<a-row>
|
||||||
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
|
<a-form-item label="成员单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-input placeholder="请输入成员单位" v-model="queryParam.companyName"
|
||||||
|
:maxLength='50'></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<!--<a-col :xl="6" :lg="7" :md="8" :sm="24">-->
|
||||||
|
<!-- <a-form-item label="标签名称" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
|
||||||
|
<!-- <a-input placeholder="请输入标签名称" v-model="queryParam.label" :maxLength='50'></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"
|
||||||
|
v-has="'safetyCenterMember:search'">查询</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" icon="plus" @click="handleAdd" v-has="'safetyCenterMember:add'" v-if="canOperate">
|
||||||
|
添加成员
|
||||||
|
</a-button>
|
||||||
|
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :data="importParam"
|
||||||
|
:action="importExcelUrl" @change="handleImportExcel" v-has="'safetyCenterMember:import'"
|
||||||
|
v-if="canOperate">
|
||||||
|
<a-button type="primary" icon="import">导入</a-button>
|
||||||
|
</a-upload>
|
||||||
|
<a-button type="primary" icon="export" @click="handleExportXls('功能安全中心成员')" v-has="'safetyCenterMember:export'">
|
||||||
|
导出
|
||||||
|
</a-button>
|
||||||
|
<a-button type="primary" icon="download" @click="downTemplate('功能安全中心成员导入模板')"
|
||||||
|
v-has="'safetyCenterMember:downTemplate'" v-if="canOperate">下载模板
|
||||||
|
</a-button>
|
||||||
|
<a-button type="danger" icon="delete" @click="batchDel" v-has="'safetyCenterMember:batchDel'" v-if="canOperate">
|
||||||
|
批量删除
|
||||||
|
</a-button>
|
||||||
|
<!--<a-button type="primary" @click="setLabel" v-has="'workingGroupMember:setLabel'">设置标签</a-button>-->
|
||||||
|
</div>
|
||||||
|
<!-- /操作按钮区域-end-->
|
||||||
|
|
||||||
|
<!-- table表格区域-->
|
||||||
|
<div>
|
||||||
|
<a-table
|
||||||
|
ref="table"
|
||||||
|
size="middle"
|
||||||
|
bordered
|
||||||
|
rowKey="id"
|
||||||
|
:columns="columns"
|
||||||
|
:scroll="{x: 800}"
|
||||||
|
:dataSource="dataSource"
|
||||||
|
:pagination="ipagination"
|
||||||
|
:loading="loading"
|
||||||
|
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||||
|
@change="handleTableChange"
|
||||||
|
class="j-table-force-nowrap">
|
||||||
|
|
||||||
|
<!-- 名称-->
|
||||||
|
<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">
|
||||||
|
<a-tooltip>
|
||||||
|
<template slot="title">{{ text }}</template>
|
||||||
|
<div class="table-text">{{ text }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
|
||||||
|
<a @click="handleEdit(record)" v-has="'safetyCenterMember:edit'">编辑</a>
|
||||||
|
<a @click="handleDelete(record.id)" v-has="'safetyCenterMember:delete'">删除</a>
|
||||||
|
</span>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
</a-card>
|
||||||
|
|
||||||
|
<project-detail-modal ref="projectDetail" :project-type="ProjectTypeEnums.SAFETY_CENTER_PRO.value"></project-detail-modal>
|
||||||
|
<!-- 控制功能安全中心可以选择全部,其他的都只能选择父级选的 -->
|
||||||
|
<safety-center-member-unit-module :is-safety-center="isSafetyCenter" ref="modalForm" @ok="modalFormOk"></safety-center-member-unit-module>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
|
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||||
|
import {getSafetyCenterById} from '@api/incomePaymentsApi'
|
||||||
|
import ProjectDetailModal from '../../components/ProjectDetailModal'
|
||||||
|
import Vue from 'vue'
|
||||||
|
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||||
|
import PreviewFile from '../../components/jero/PreviewFile'
|
||||||
|
import {ProjectTypeEnums, SafetyCenterProjectTypeEnums} from '@/enums/commonEnums'
|
||||||
|
import SafetyCenterMemberUnitModule
|
||||||
|
from '@views/functionalSafetyCenter/modules/SafetyCenterMemberUnitModule'
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-undef,no-unused-vars
|
||||||
|
const Base64 = require('js-base64').Base64
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'FunctionalSafetyMemberUnitMaintenance',
|
||||||
|
components: {
|
||||||
|
SafetyCenterMemberUnitModule,
|
||||||
|
PageHeaderTitle,
|
||||||
|
ProjectDetailModal,
|
||||||
|
PreviewFile
|
||||||
|
},
|
||||||
|
mixins: [JeroListMixin],
|
||||||
|
computed: {
|
||||||
|
importExcelUrl: function () {
|
||||||
|
return `${ window._CONFIG['domianURL'] }/${ this.url.importExcelUrl }`
|
||||||
|
},
|
||||||
|
// projectType是否功能安全中心, 1功能安全中心 2研究组 3项目组
|
||||||
|
isSafetyCenter () {
|
||||||
|
return this.detail.projectType + '' === SafetyCenterProjectTypeEnums.safetyCenter.value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
ProjectTypeEnums,
|
||||||
|
// 混入post请求删除接口
|
||||||
|
postMethodDel: true,
|
||||||
|
disableMixinCreated: true,
|
||||||
|
projectName: '',
|
||||||
|
projectId: '',
|
||||||
|
spinning: false,
|
||||||
|
detailTitleList: [
|
||||||
|
{
|
||||||
|
title: '项目名称',
|
||||||
|
fieldName: 'projectName'
|
||||||
|
}, {
|
||||||
|
title: '负责人',
|
||||||
|
fieldName: 'principalId_dictText'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 5 }
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 10 }
|
||||||
|
},
|
||||||
|
url: {
|
||||||
|
list: '/SafetyCenterSubitem/page',
|
||||||
|
delete: '/SafetyCenterSubitem/delete',
|
||||||
|
deleteBatch: '/SafetyCenterSubitem/deleteBatch',
|
||||||
|
exportXlsUrl: '/SafetyCenterSubitem/exportXls',
|
||||||
|
importExcelUrl: '/SafetyCenterSubitem/importExcel',
|
||||||
|
downTemplateUrl: '/SafetyCenterSubitem/downloadExcelModel'
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: '',
|
||||||
|
key: 'rowIndex',
|
||||||
|
width: 60,
|
||||||
|
align: 'center',
|
||||||
|
customRender: function (t, r, index) {
|
||||||
|
return parseInt(index) + 1
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
title: '成员单位',
|
||||||
|
align: 'center',
|
||||||
|
// width: 280,
|
||||||
|
dataIndex: 'companyId_dictText',
|
||||||
|
scopedSlots: { customRender: 'projectName' }
|
||||||
|
}, {
|
||||||
|
title: '企业联系人',
|
||||||
|
align: 'center',
|
||||||
|
// width: 280,
|
||||||
|
dataIndex: 'contactsId_dictText',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
align: 'center',
|
||||||
|
fixed: 'right',
|
||||||
|
width: 180,
|
||||||
|
scopedSlots: { customRender: 'action' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
detail: {},
|
||||||
|
chargeNoticeList: [], // 收费通知号选项
|
||||||
|
importParam: {},
|
||||||
|
// 给定当年作为来款年份默认查询条件
|
||||||
|
// queryParam: {
|
||||||
|
// paymentDate: new Date().getFullYear().toString()
|
||||||
|
// },
|
||||||
|
// lastQueryParam: {
|
||||||
|
// paymentDate: new Date().getFullYear().toString()
|
||||||
|
// },
|
||||||
|
canOperate: true // 是否可操作(负责人B不可操作)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
// 初始化信息
|
||||||
|
this.initData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/**
|
||||||
|
* 初始化信息
|
||||||
|
*/
|
||||||
|
initData() {
|
||||||
|
this.spinning = true
|
||||||
|
this.projectName = this.$route.query.projectName || ''
|
||||||
|
this.projectId = this.$route.query.projectId || ''
|
||||||
|
this.filters.projectId = this.projectId
|
||||||
|
this.importParam.projectId = this.projectId
|
||||||
|
this.loadData()
|
||||||
|
let param = {
|
||||||
|
id: this.projectId
|
||||||
|
}
|
||||||
|
getSafetyCenterById(param).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.detail = res.result || {}
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.spinning = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleAdd: function () {
|
||||||
|
this.$refs.modalForm.projectId = this.projectId
|
||||||
|
this.$refs.modalForm.add()
|
||||||
|
this.$refs.modalForm.title = '添加成员'
|
||||||
|
this.$refs.modalForm.disableSubmit = false
|
||||||
|
},
|
||||||
|
handleEdit: function (record) {
|
||||||
|
this.$refs.modalForm.projectId = this.projectId
|
||||||
|
this.$refs.modalForm.edit(record)
|
||||||
|
this.$refs.modalForm.title = '编辑'
|
||||||
|
this.$refs.modalForm.disableSubmit = false
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 文件预览
|
||||||
|
* @param file
|
||||||
|
*/
|
||||||
|
previewFile(file) {
|
||||||
|
console.log(file)
|
||||||
|
if (file && file.url) {
|
||||||
|
const fileFullUrl = `${ window._CONFIG['domianWebSocketURL'] }/sys/common/download/${ file.id }?token=${ Vue.ls.get(ACCESS_TOKEN) }&fullfilename=${ file.fileName }`
|
||||||
|
// let url = `${ window._CONFIG['onlinePreviewDomainURL'] }?url=${ encodeURIComponent(Base64.encode(fileFullUrl)) }`
|
||||||
|
let url = `${ window._CONFIG['onlinePreviewDomainURL'] }?url=${ encodeURIComponent(Base64.encode(fileFullUrl)) }`
|
||||||
|
window.open(url)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
|
||||||
|
.ant-divider-horizontal {
|
||||||
|
height: 1px;
|
||||||
|
background-color: #F2F2F2;
|
||||||
|
margin: 15px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.work-group-detail {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
|
||||||
|
&-item-small {
|
||||||
|
width: 33.3% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-item {
|
||||||
|
display: flex;
|
||||||
|
padding: 5px 5px;
|
||||||
|
width: 100%;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
&-title {
|
||||||
|
flex-shrink: 0;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-content {
|
||||||
|
word-break: break-all;
|
||||||
|
color: #2F3133;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-filename {
|
||||||
|
//cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-text {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-col {
|
||||||
|
.ant-col {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qr-code {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy {
|
||||||
|
font-style: normal;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.signUpInfo {
|
||||||
|
line-height: 3;
|
||||||
|
|
||||||
|
.ant-col {
|
||||||
|
|
||||||
|
label {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,434 @@
|
|||||||
|
<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="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||||
|
<company-select placeholder="请选择成员单位"
|
||||||
|
v-decorator="['chargeCompany',validatorRules.chargeCompany]"
|
||||||
|
:disabled="disabledCompany"
|
||||||
|
@change="companyChange"
|
||||||
|
:customListUrl="isSafetyCenter ? '' : companyList"
|
||||||
|
:customListParams="isSafetyCenter ? {} : customListParams"
|
||||||
|
:maxLength='50'>
|
||||||
|
</company-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<template
|
||||||
|
v-if="model.contactsList && model.contactsList.length > 0">
|
||||||
|
<a-row v-for="(item, index) in model.contactsList" :key="index + ''">
|
||||||
|
<a-col :xl="12" :sm="24">
|
||||||
|
<a-form-item :label="`企业联系人${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<select-contacts :selected-company="selectedCompany"
|
||||||
|
:placeholder="`请选择企业联系人${index + 1}`"
|
||||||
|
v-decorator="[`contactsList[${index}].contactsId`, {rules: [{ required: index === 0, validator: index === 0 ? validateContactRequired : validateContact }],validateTrigger: 'change'}]"
|
||||||
|
:maxLength='50'
|
||||||
|
:ref="`selectContacts${index}`"
|
||||||
|
:can-add="isSafetyCenter"
|
||||||
|
:customListFn="isSafetyCenter ? null : getContactsByCompanyBySafetyCenter"
|
||||||
|
:customListParams="isSafetyCenter ? {} : customListParams"
|
||||||
|
@ok="addContactsOneOk"></select-contacts>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xl="9" :sm="20">
|
||||||
|
<!-- v-show="hasContactOne"-->
|
||||||
|
<a-form-item :label="`备注${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-input
|
||||||
|
:placeholder="`请输入备注${index + 1}`"
|
||||||
|
v-decorator="[`contactsList[${index}].remarks`]"
|
||||||
|
:maxLength='50'
|
||||||
|
@change="e => {e.target.value = (e.target.value + '').trim()}">
|
||||||
|
</a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xl="3" :sm="4">
|
||||||
|
<a-button type="link" class="contact-btn" @click="handleAddContact(index)">添加</a-button>
|
||||||
|
<a-button type="link" class="contact-btn del-btn" @click="handleDelContact(index)">删除</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</template>
|
||||||
|
<a-row>
|
||||||
|
<a-col>
|
||||||
|
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||||
|
<a-textarea
|
||||||
|
placeholder="请输入备注"
|
||||||
|
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||||
|
v-decorator="['remarks']"
|
||||||
|
:maxLength='200'
|
||||||
|
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</a-spin>
|
||||||
|
</j-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import pick from 'lodash.pick'
|
||||||
|
import { httpAction } from '@api/manage'
|
||||||
|
import CompanySelect from '@comp/company/CompanySelect'
|
||||||
|
import SelectContacts from '@comp/company/SelectContacts'
|
||||||
|
import {getAllDraftProjects} from '@api/incomePaymentsApi'
|
||||||
|
import { addZero } from '@/utils/util'
|
||||||
|
import { CalcAmountMixin } from '@/mixins/CalcAmountMixin'
|
||||||
|
import {getContactsByCompanyBySafetyCenter} from '@api/api'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'SafetyCenterMemberUnitModule',
|
||||||
|
components: { CompanySelect, SelectContacts },
|
||||||
|
mixins: [CalcAmountMixin],
|
||||||
|
props: {
|
||||||
|
// 是否安全中心,控制添加成员 只能选择上级的成员还是选择全部
|
||||||
|
isSafetyCenter: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
required: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: '操作',
|
||||||
|
width: 800,
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false,
|
||||||
|
form: this.$form.createForm(this),
|
||||||
|
model: {},
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 8 }
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 16 }
|
||||||
|
},
|
||||||
|
remarksLabelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 4 }
|
||||||
|
},
|
||||||
|
remarksWrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 20 }
|
||||||
|
},
|
||||||
|
validatorRules: {
|
||||||
|
chargeCompany: {
|
||||||
|
rules: [{ required: true, validator: this.checkCompany }],
|
||||||
|
validateTrigger: 'change'
|
||||||
|
},
|
||||||
|
contactsIdOne: {
|
||||||
|
rules: [{ required: true, message: '请选择企业联系人1' }],
|
||||||
|
validateTrigger: 'change'
|
||||||
|
},
|
||||||
|
contactsRepeat: {
|
||||||
|
rules: [{ required: false, validator: this.validateContact }],
|
||||||
|
validateTrigger: 'change'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectedCompany: null, // 当前选中的企业
|
||||||
|
selectedContact1: null, // 编辑时的联系人
|
||||||
|
selectedContact2: null, // 编辑时的联系人
|
||||||
|
selectedContact3: null, // 编辑时的联系人
|
||||||
|
selectedMailContact: null, // 编辑时的邮寄联系人
|
||||||
|
projectId: null,
|
||||||
|
projectList: [],
|
||||||
|
disabledCompany: false, // 企业是否禁用
|
||||||
|
url: {
|
||||||
|
add: '/SafetyCenterSubitem/add',
|
||||||
|
edit: '/SafetyCenterSubitem/edit'
|
||||||
|
},
|
||||||
|
// 成员单位列表(只能选上级选过的)
|
||||||
|
companyList: '/company/payCompanyManagement/listSafetyCenter',
|
||||||
|
// 需要带上当前项目id
|
||||||
|
customListParams: {
|
||||||
|
projectId: this.$route.query.projectId
|
||||||
|
},
|
||||||
|
// 默认的联系人数据
|
||||||
|
defaultPayWorkingGroupSubItemContact: {
|
||||||
|
contactsId: undefined,
|
||||||
|
remarks: null,
|
||||||
|
name: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addZero,
|
||||||
|
getContactsByCompanyBySafetyCenter,
|
||||||
|
add() {
|
||||||
|
this.edit({})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 获取当前年功能安全中心列表
|
||||||
|
*/
|
||||||
|
loadCurrentYearProjectList() {
|
||||||
|
getAllDraftProjects({
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
column: 'createTime',
|
||||||
|
order: 'desc'
|
||||||
|
}).then(res => {
|
||||||
|
if (res.success) {
|
||||||
|
this.projectList = res.result
|
||||||
|
} else {
|
||||||
|
this.$message.warn(res.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
edit(record) {
|
||||||
|
// 回显
|
||||||
|
record.chargeCompany = {
|
||||||
|
id: record.companyId,
|
||||||
|
companyName: record.companyId_dictText
|
||||||
|
}
|
||||||
|
// 回显选中的企业
|
||||||
|
this.selectedCompany = record.chargeCompany
|
||||||
|
this.companyChange(this.selectedCompany)
|
||||||
|
this.form.resetFields()
|
||||||
|
this.model = Object.assign({}, JSON.parse(JSON.stringify(record)))
|
||||||
|
if (this.model.id) {
|
||||||
|
// 传给组件的init-contact值,需要id和name两个属性
|
||||||
|
this.model.contactsList && this.model.contactsList.forEach(item => {
|
||||||
|
item.name = item.contactsTemporaryName
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// 新增处理默认显示的三个企业联系人
|
||||||
|
this.model.contactsList = []
|
||||||
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
|
}
|
||||||
|
this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue(pick(this.model, 'chargeCompany', 'remarks', 'contactsList'))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.$emit('close')
|
||||||
|
this.selectedCompany = null
|
||||||
|
// 清除选中联系人信息
|
||||||
|
this.selectedContact1 = null
|
||||||
|
this.selectedContact2 = null
|
||||||
|
this.selectedContact3 = null
|
||||||
|
this.selectedMailContact = null
|
||||||
|
this.disabledCompany = false
|
||||||
|
this.visible = false
|
||||||
|
this.model = Object.assign({}, {})
|
||||||
|
this.form.resetFields()
|
||||||
|
},
|
||||||
|
handleOk() {
|
||||||
|
if (this.confirmLoading) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.confirmLoading = true
|
||||||
|
const that = this
|
||||||
|
// 触发表单验证
|
||||||
|
this.form.validateFields((err, values) => {
|
||||||
|
if (!err) {
|
||||||
|
that.confirmLoading = true
|
||||||
|
// values.chargeCompanyTemporaryName = values.chargeCompany.companyName
|
||||||
|
values.companyId = values.chargeCompany.id
|
||||||
|
let httpurl = ''
|
||||||
|
let method = 'post'
|
||||||
|
if (!this.model.id) {
|
||||||
|
httpurl += this.url.add
|
||||||
|
} else {
|
||||||
|
httpurl += this.url.edit
|
||||||
|
}
|
||||||
|
if (this.projectId) {
|
||||||
|
values.projectId = this.projectId
|
||||||
|
}
|
||||||
|
// 企业联系人信息中将没有值的去掉
|
||||||
|
let haveValueContactArr = values.contactsList.filter(tt => tt.contactsId)
|
||||||
|
let obj = {
|
||||||
|
contactsList: haveValueContactArr
|
||||||
|
}
|
||||||
|
const formData = Object.assign(this.model, values, obj)
|
||||||
|
console.log('表单提交数据', formData)
|
||||||
|
httpAction(httpurl, formData, method).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message)
|
||||||
|
that.$emit('ok')
|
||||||
|
that.close()
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.confirmLoading = false
|
||||||
|
}, 1000)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.confirmLoading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.close()
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 选中企业变化,将联系人的值清空
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
|
companyChange(value) {
|
||||||
|
// 当前选中的企业和之前选中的企业一致,就不修改了
|
||||||
|
if (this.selectedCompany && value && this.selectedCompany.id === value.id) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.selectedCompany = value
|
||||||
|
// 处理默认显示的三个企业联系人
|
||||||
|
this.model.contactsList = []
|
||||||
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
|
this.selectedMailContact = null
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue(pick(this.model, 'contactsList'))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 企业必填校验
|
||||||
|
* @param rules
|
||||||
|
* @param value
|
||||||
|
* @param callback
|
||||||
|
*/
|
||||||
|
checkCompany(rules, value, callback) {
|
||||||
|
if (value.id && value.companyName) {
|
||||||
|
callback()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
callback('请选择成员单位')
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 在新增成功后重新获取联系人列表
|
||||||
|
*/
|
||||||
|
addContactsOneOk() {
|
||||||
|
this.$refs.selectMailContacts.getContactsList()
|
||||||
|
},
|
||||||
|
addMailContactsOk() {
|
||||||
|
this.$refs.selectContacts1.getContactsList()
|
||||||
|
this.$refs.selectContacts2.getContactsList()
|
||||||
|
this.$refs.selectContacts3.getContactsList()
|
||||||
|
},
|
||||||
|
validateContactRequired(rule, value, callback) {
|
||||||
|
if (value) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
callback('请选择企业联系人1')
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 校验企业联系人是否重复
|
||||||
|
* @param rule
|
||||||
|
* @param value
|
||||||
|
* @param callback
|
||||||
|
*/
|
||||||
|
validateContact(rule, value, callback) {
|
||||||
|
if (value) {
|
||||||
|
let contactsList = this.form.getFieldValue('contactsList')
|
||||||
|
let hasValueArr = contactsList.filter(tt => tt.contactsId === value)
|
||||||
|
if (hasValueArr.length <= 1) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
callback('请选择不同的联系人')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
callback()
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 添加联系人
|
||||||
|
* @param index
|
||||||
|
*/
|
||||||
|
handleAddContact(index) {
|
||||||
|
if (this.model.contactsList.length >= 10) {
|
||||||
|
this.$message.warn('最多添加十个企业联系人')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let obj = {
|
||||||
|
contactsId: undefined,
|
||||||
|
remarks: null
|
||||||
|
}
|
||||||
|
this.model.contactsList.splice(index + 1, 0, obj)
|
||||||
|
this.$forceUpdate()
|
||||||
|
let formData = this.form.getFieldValue('contactsList')
|
||||||
|
formData.splice(index + 1, 0, obj)
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue({ contactsList: formData })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 删除联系人
|
||||||
|
* @param index
|
||||||
|
*/
|
||||||
|
handleDelContact(index) {
|
||||||
|
if (this.model.contactsList.length === 1) {
|
||||||
|
this.$message.warn('最少需要一个企业联系人')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.model.contactsList.splice(index, 1)
|
||||||
|
let formData = this.form.getFieldValue('contactsList')
|
||||||
|
formData.splice(index, 1)
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue({ contactsList: formData })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 下拉框的搜索
|
||||||
|
filterOption(input, option) {
|
||||||
|
return (
|
||||||
|
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.charge-notice-no {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
/deep/ .ant-radio-wrapper {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
span.ant-radio + * {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
span {
|
||||||
|
vertical-align: bottom;
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-btn {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0 8px;
|
||||||
|
padding: 0;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.del-btn {
|
||||||
|
color: #ff4d4f
|
||||||
|
}
|
||||||
|
// 工作组选择对齐其他表单的样式
|
||||||
|
.custom-col {
|
||||||
|
/deep/ .ant-col-sm-4 {
|
||||||
|
width: calc(100% / 24 * 4.5);
|
||||||
|
}
|
||||||
|
/deep/ .ant-col-sm-20 {
|
||||||
|
width: calc(100% / 24 * 19.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,218 @@
|
|||||||
|
<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 :span="24">
|
||||||
|
<a-form-item label="项目名称" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||||
|
<a-input placeholder="请输入项目名称"
|
||||||
|
v-decorator="['projectName',validatorRules.projectName]"
|
||||||
|
:maxLength='50'
|
||||||
|
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="12">
|
||||||
|
<a-form-item label="负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<select-principal placeholder="请选择负责人"
|
||||||
|
v-decorator="['principalId',validatorRules.principalId]"
|
||||||
|
:maxLength='50'></select-principal>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row>
|
||||||
|
<a-col>
|
||||||
|
<a-form-item label="任务及目标" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||||
|
<a-textarea
|
||||||
|
placeholder="请输入任务及目标"
|
||||||
|
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||||
|
v-decorator="['missionAndObjectives']"
|
||||||
|
:maxLength='200'
|
||||||
|
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row>
|
||||||
|
<a-col>
|
||||||
|
<a-form-item label="备注" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||||
|
<a-textarea
|
||||||
|
placeholder="请输入备注"
|
||||||
|
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||||
|
v-decorator="['remarks']"
|
||||||
|
:maxLength='200'
|
||||||
|
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</a-spin>
|
||||||
|
</j-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import pick from 'lodash.pick'
|
||||||
|
import { httpAction } from '@api/manage'
|
||||||
|
import SelectPrincipal from '@comp/company/SelectPrincipal'
|
||||||
|
import { addZero } from '@/utils/util'
|
||||||
|
import {SafetyCenterProjectTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'SafetyCenterModule',
|
||||||
|
components: { SelectPrincipal },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: '操作',
|
||||||
|
width: 800,
|
||||||
|
visible: false,
|
||||||
|
confirmLoading: false,
|
||||||
|
form: this.$form.createForm(this),
|
||||||
|
model: {},
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 6 }
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 18 }
|
||||||
|
},
|
||||||
|
remarksLabelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 3 }
|
||||||
|
},
|
||||||
|
remarksWrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 21 }
|
||||||
|
},
|
||||||
|
validatorRules: {
|
||||||
|
projectName: {
|
||||||
|
rules: [{ required: true, message: '请输入项目名称' }],
|
||||||
|
validateTrigger: 'blur'
|
||||||
|
},
|
||||||
|
year: {
|
||||||
|
rules: [{ required: true, message: '请选择运行年份' }],
|
||||||
|
validateTrigger: 'change'
|
||||||
|
},
|
||||||
|
principalId: {
|
||||||
|
rules: [{ required: true, message: '请选择负责人' }],
|
||||||
|
validateTrigger: 'change'
|
||||||
|
},
|
||||||
|
checkMoney: {
|
||||||
|
rules: [{ required: false, validator: this.checkMoney }],
|
||||||
|
validateTrigger: 'blur'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 研究组的接口
|
||||||
|
url: {
|
||||||
|
add: '/SafetyCenter/add',
|
||||||
|
edit: '/SafetyCenter/edit'
|
||||||
|
},
|
||||||
|
// 项目组的接口
|
||||||
|
projectUrl: {
|
||||||
|
add: '/SafetyCenter/addProjectGroup',
|
||||||
|
edit: '/SafetyCenter/editProjectGroup'
|
||||||
|
},
|
||||||
|
// 项目类型,默认是研究组
|
||||||
|
projectType: SafetyCenterProjectTypeEnums.studyGroup.value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addZero,
|
||||||
|
add() {
|
||||||
|
this.edit({})
|
||||||
|
},
|
||||||
|
edit(record) {
|
||||||
|
// 有id就是项目组
|
||||||
|
if (this.$route.query.id) {
|
||||||
|
this.projectType = SafetyCenterProjectTypeEnums.projectGroup.value
|
||||||
|
} else {
|
||||||
|
this.projectType = SafetyCenterProjectTypeEnums.studyGroup.value
|
||||||
|
}
|
||||||
|
this.form.resetFields()
|
||||||
|
// 防止下拉选项出现问题
|
||||||
|
record.principalId = record.principalId || undefined
|
||||||
|
this.model = Object.assign({}, record)
|
||||||
|
this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue(pick(this.model,
|
||||||
|
'projectName',
|
||||||
|
'principalId',
|
||||||
|
'missionAndObjectives',
|
||||||
|
'remarks'
|
||||||
|
))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.$emit('close')
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
handleOk() {
|
||||||
|
if (this.confirmLoading) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.confirmLoading = true
|
||||||
|
const that = this
|
||||||
|
// 触发表单验证
|
||||||
|
this.form.validateFields((err, values) => {
|
||||||
|
if (!err) {
|
||||||
|
that.confirmLoading = true
|
||||||
|
let httpurl = ''
|
||||||
|
let method = 'post'
|
||||||
|
// 研究组用url,项目组用projectUrl
|
||||||
|
const urlObj = this.projectType === SafetyCenterProjectTypeEnums.studyGroup.value ? this.url : this.projectUrl
|
||||||
|
if (!this.model.id) {
|
||||||
|
httpurl += urlObj.add
|
||||||
|
} else {
|
||||||
|
httpurl += urlObj.edit
|
||||||
|
}
|
||||||
|
const formData = Object.assign(this.model, values)
|
||||||
|
formData.parentId = this.$route.query.id
|
||||||
|
console.log('表单提交数据', formData)
|
||||||
|
httpAction(httpurl, formData, method).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message)
|
||||||
|
that.$emit('ok')
|
||||||
|
that.close()
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.confirmLoading = false
|
||||||
|
}, 1000)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.confirmLoading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 下拉框的搜索
|
||||||
|
filterOption(input, option) {
|
||||||
|
return (
|
||||||
|
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
)
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.close()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.prompt-message {
|
||||||
|
color: red;
|
||||||
|
|
||||||
|
&-line2 {
|
||||||
|
padding-left: 2.7rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -404,7 +404,7 @@
|
|||||||
<template v-if="!isWasic">
|
<template v-if="!isWasic">
|
||||||
<a-col :xxl="8" :xl="12" :sm="24">
|
<a-col :xxl="8" :xl="12" :sm="24">
|
||||||
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
|
||||||
<!-- 起草组会议、海外会议费用默认0不可修改 -->
|
<!-- 起草组会议、海外会议、功能安全中心会议费用默认0不可修改 -->
|
||||||
<a-input placeholder="请输入会议费用"
|
<a-input placeholder="请输入会议费用"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
|
||||||
@@ -769,6 +769,7 @@ export default {
|
|||||||
const arr = [
|
const arr = [
|
||||||
MeetingTypeEnums.draftGroup.value, // 起草组会议
|
MeetingTypeEnums.draftGroup.value, // 起草组会议
|
||||||
MeetingTypeEnums.overseas.value, // 海外会议
|
MeetingTypeEnums.overseas.value, // 海外会议
|
||||||
|
MeetingTypeEnums.safetyCenter.value, // 功能安全中心会议
|
||||||
]
|
]
|
||||||
return arr.includes(this.meetingType)
|
return arr.includes(this.meetingType)
|
||||||
},
|
},
|
||||||
@@ -811,6 +812,14 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
// 是否功能安全中心来的
|
||||||
|
isSafetyCenterId() {
|
||||||
|
if (this.$route.query.safetyCenterId) {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -931,10 +940,11 @@ export default {
|
|||||||
// 后端需要的注册签到时间
|
// 后端需要的注册签到时间
|
||||||
this.newSignInTime = [this.model.startSignInTime, this.model.endSignInTime]
|
this.newSignInTime = [this.model.startSignInTime, this.model.endSignInTime]
|
||||||
|
|
||||||
// 起草组会议费用默认0 (海外会议同起草组)
|
// 部分会议费用默认0
|
||||||
const zeroCostscArr = [
|
const zeroCostscArr = [
|
||||||
MeetingTypeEnums.draftGroup.value, // 起草组会议
|
MeetingTypeEnums.draftGroup.value, // 起草组会议
|
||||||
MeetingTypeEnums.overseas.value, // 海外会议
|
MeetingTypeEnums.overseas.value, // 海外会议
|
||||||
|
MeetingTypeEnums.safetyCenter.value, // 功能安全中心会议
|
||||||
]
|
]
|
||||||
if (zeroCostscArr.includes(this.meetingType)) {
|
if (zeroCostscArr.includes(this.meetingType)) {
|
||||||
this.model.meetingCosts = '0.00'
|
this.model.meetingCosts = '0.00'
|
||||||
@@ -1052,6 +1062,11 @@ export default {
|
|||||||
formData.meetingType = '7'
|
formData.meetingType = '7'
|
||||||
formData.draftingGroupId = this.$route.query.draftingGroupProjectId
|
formData.draftingGroupId = this.$route.query.draftingGroupProjectId
|
||||||
}
|
}
|
||||||
|
// 如果是 功能安全中心 来的加上id和会议类型
|
||||||
|
if (this.isSafetyCenterId) {
|
||||||
|
formData.meetingType = MeetingTypeEnums.safetyCenter.value
|
||||||
|
formData.safetyCenterId = this.$route.query.safetyCenterId
|
||||||
|
}
|
||||||
// 转换召开时间
|
// 转换召开时间
|
||||||
formData.startTime = this.newConvokeTime[0]
|
formData.startTime = this.newConvokeTime[0]
|
||||||
formData.endTime = this.newConvokeTime[1]
|
formData.endTime = this.newConvokeTime[1]
|
||||||
@@ -1420,6 +1435,12 @@ export default {
|
|||||||
add: '/meeting/overseas/add',
|
add: '/meeting/overseas/add',
|
||||||
edit: '/meeting/overseas/edit'
|
edit: '/meeting/overseas/edit'
|
||||||
}
|
}
|
||||||
|
// 功能安全中心会议
|
||||||
|
case MeetingTypeEnums.safetyCenter.value:
|
||||||
|
return {
|
||||||
|
add: '/meeting/safetyCenterMeeting/add',
|
||||||
|
edit: '/meeting/safetyCenterMeeting/edit'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -186,8 +186,8 @@
|
|||||||
<a-input placeholder="请输入参会人" v-model="queryParam.companyContactName" :maxLength='50'></a-input>
|
<a-input placeholder="请输入参会人" v-model="queryParam.companyContactName" :maxLength='50'></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
<!-- 功能安全中心不显示审核 -->
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24" v-if="currentMeetingInfo.meetingType !== MeetingTypeEnums.safetyCenter.value">
|
||||||
<a-form-item label="审核">
|
<a-form-item label="审核">
|
||||||
<j-dict-select-tag v-model="queryParam.checkResult" placeholder="请选择"
|
<j-dict-select-tag v-model="queryParam.checkResult" placeholder="请选择"
|
||||||
dictCode="signup_status"/>
|
dictCode="signup_status"/>
|
||||||
@@ -208,7 +208,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24" v-if="!isSafetyCenter">
|
||||||
<a-form-item label="来款年份">
|
<a-form-item label="来款年份">
|
||||||
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.particularYear"></j-year-date>
|
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.particularYear"></j-year-date>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -227,29 +227,30 @@
|
|||||||
dictCode="guest_type"/>
|
dictCode="guest_type"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
<template v-if="!isSafetyCenter">
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
<a-form-item label="是否打包">
|
<a-form-item label="是否打包">
|
||||||
<j-dict-select-tag v-model="queryParam.pack" placeholder="请选择是否打包" @input="selectIdentity"
|
<j-dict-select-tag v-model="queryParam.pack" placeholder="请选择是否打包" @input="selectIdentity"
|
||||||
dictCode="yn"/>
|
dictCode="yn"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24" class="flex-width-zero">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24" class="flex-width-zero">
|
||||||
<a-form-item label="缴费方式">
|
<a-form-item label="缴费方式">
|
||||||
<j-dict-select-tag
|
<j-dict-select-tag
|
||||||
v-model="queryParam.payMode"
|
v-model="queryParam.payMode"
|
||||||
placeholder="请选择缴费方式"
|
placeholder="请选择缴费方式"
|
||||||
dictCode="meeting_pay_type"/>
|
dictCode="meeting_pay_type"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24" class="flex-width-zero">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24" class="flex-width-zero">
|
||||||
<a-form-item label="发票项目">
|
<a-form-item label="发票项目">
|
||||||
<j-dict-select-tag
|
<j-dict-select-tag
|
||||||
v-model="queryParam.invoiceProject"
|
v-model="queryParam.invoiceProject"
|
||||||
placeholder="请选择发票项目"
|
placeholder="请选择发票项目"
|
||||||
dictCode="invoice_project"/>
|
dictCode="invoice_project"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
</template>
|
||||||
<!-- 国际研讨会 且为 WASIC时显示 -->
|
<!-- 国际研讨会 且为 WASIC时显示 -->
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24" class="flex-width-zero" v-if="currentMeetingInfo.meetingType === '3' && currentMeetingInfo.isWasic">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24" class="flex-width-zero" v-if="currentMeetingInfo.meetingType === '3' && currentMeetingInfo.isWasic">
|
||||||
<a-form-item label="会议名称">
|
<a-form-item label="会议名称">
|
||||||
@@ -439,9 +440,9 @@
|
|||||||
<!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮 审核报名信息通过后才能审核凭证 审核通过后不显示 审核凭证按钮 -->
|
<!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮 审核报名信息通过后才能审核凭证 审核通过后不显示 审核凭证按钮 -->
|
||||||
<a @click="handleAudit(record)" v-if="(record.payMode === 1 || record.payMode === 2 ) && record.paymentRecord && record.checkResult !== 1"
|
<a @click="handleAudit(record)" v-if="(record.payMode === 1 || record.payMode === 2 ) && record.paymentRecord && record.checkResult !== 1"
|
||||||
v-has:[authorCode.auditRecord]="'attendance:auditCredentials'">审核凭证</a>
|
v-has:[authorCode.auditRecord]="'attendance:auditCredentials'">审核凭证</a>
|
||||||
<!-- 只有工作组会议与分标委会议理事会会议、起草组会议 才有审核报名信息-->
|
<!-- 只有工作组会议与分标委会议理事会会议、起草组会议、功能安全中心 才有审核报名信息-->
|
||||||
<a @click="handleAuditSignUp(record)"
|
<a @click="handleAuditSignUp(record)"
|
||||||
v-show="(['1', '5', '6', '7'].includes(currentMeetingInfo.meetingType)) && record.registerCheckResult === 0 "
|
v-show="(['1', '5', '6', '7', MeetingTypeEnums.safetyCenter.value].includes(currentMeetingInfo.meetingType)) && record.registerCheckResult === 0 "
|
||||||
v-has:[authorCode.auditSignUpInfo]="'attendance:auditSignUp'">审核报名信息</a>
|
v-has:[authorCode.auditSignUpInfo]="'attendance:auditSignUp'">审核报名信息</a>
|
||||||
<!-- 非成员报名被拒绝 无法编辑 -->
|
<!-- 非成员报名被拒绝 无法编辑 -->
|
||||||
<a @click="handleEdit(record)" v-if="record.registerCheckResult !== 2" v-has:[authorCode.edit]="'attendance:edit'">编辑</a>
|
<a @click="handleEdit(record)" v-if="record.registerCheckResult !== 2" v-has:[authorCode.edit]="'attendance:edit'">编辑</a>
|
||||||
@@ -469,7 +470,7 @@
|
|||||||
<!--设置对接人-->
|
<!--设置对接人-->
|
||||||
<batch-set-docker-modal ref="batchSetDockerModal" @ok="modalFormOk"></batch-set-docker-modal>
|
<batch-set-docker-modal ref="batchSetDockerModal" @ok="modalFormOk"></batch-set-docker-modal>
|
||||||
<!--详情-->
|
<!--详情-->
|
||||||
<project-detail-modal ref="projectDetailModal"></project-detail-modal>
|
<project-detail-modal ref="projectDetailModal" :meeting-type="currentMeetingInfo.meetingType"></project-detail-modal>
|
||||||
<!--审核-->
|
<!--审核-->
|
||||||
<audit-modal ref="auditModal" @ok="modalFormOk"></audit-modal>
|
<audit-modal ref="auditModal" @ok="modalFormOk"></audit-modal>
|
||||||
<!--设置资料状态--即嘉宾是否可以在企业端上传资料-->
|
<!--设置资料状态--即嘉宾是否可以在企业端上传资料-->
|
||||||
@@ -639,6 +640,56 @@ export default {
|
|||||||
scopedSlots: { customRender: 'action' }
|
scopedSlots: { customRender: 'action' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
// 功能安全中心表格
|
||||||
|
safetyCenterColumns: [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: '',
|
||||||
|
key: 'rowIndex',
|
||||||
|
width: 60,
|
||||||
|
align: 'center',
|
||||||
|
customRender: function (t, r, index) {
|
||||||
|
return parseInt(index) + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '参会单位',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'companyName',
|
||||||
|
scopedSlots: { customRender: 'htmlSlot' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '参会人员',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'companyContactName',
|
||||||
|
width: 160,
|
||||||
|
scopedSlots: { customRender: 'person' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '是否签到',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'checkIn_dictText',
|
||||||
|
width: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '身份',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'identity_dictText',
|
||||||
|
width: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '对接人',
|
||||||
|
align: 'center',
|
||||||
|
dataIndex: 'dockName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
align: 'center',
|
||||||
|
fixed: 'right',
|
||||||
|
width: 300,
|
||||||
|
scopedSlots: { customRender: 'action' }
|
||||||
|
}
|
||||||
|
],
|
||||||
// 海外会议表格
|
// 海外会议表格
|
||||||
overseasMeetingColumns: [
|
overseasMeetingColumns: [
|
||||||
{
|
{
|
||||||
@@ -814,6 +865,18 @@ export default {
|
|||||||
guestsUploadFileFlag: 'overseasMeetingSituation:guestsUploadFileFlag',
|
guestsUploadFileFlag: 'overseasMeetingSituation:guestsUploadFileFlag',
|
||||||
editBeforePackMoney: 'overseasMeetingSituation:editBeforePackMoney' // 编辑打包前金额
|
editBeforePackMoney: 'overseasMeetingSituation:editBeforePackMoney' // 编辑打包前金额
|
||||||
},
|
},
|
||||||
|
// 功能安全中心会议的参会情况的权限编码
|
||||||
|
safetyCenterMeetingCode: {
|
||||||
|
search: 'safetyCenterMeetingSituation:search',
|
||||||
|
add: 'safetyCenterMeetingSituation:add',
|
||||||
|
export: 'safetyCenterMeetingSituation:export',
|
||||||
|
batchDel: 'safetyCenterMeetingSituation:batchDel',
|
||||||
|
edit: 'safetyCenterMeetingSituation:edit',
|
||||||
|
delete: 'safetyCenterMeetingSituation:delete',
|
||||||
|
auditRecord: 'safetyCenterMeetingSituation:auditCredentials',
|
||||||
|
auditSignUpInfo: 'safetyCenterMeetingSituation:auditSignUp',
|
||||||
|
guestsUploadFileFlag: 'safetyCenterMeetingSituation:guestsUploadFileFlag'
|
||||||
|
},
|
||||||
disableMixinCreated: true,
|
disableMixinCreated: true,
|
||||||
// url: {
|
// url: {
|
||||||
// list: '/meeting/payMeetingSituation/page',
|
// list: '/meeting/payMeetingSituation/page',
|
||||||
@@ -886,6 +949,14 @@ export default {
|
|||||||
exportXlsUrl: '/meeting/overseasSituation/exportXls',
|
exportXlsUrl: '/meeting/overseasSituation/exportXls',
|
||||||
importExcelUrl: '/meeting/overseasSituation/importExcel'
|
importExcelUrl: '/meeting/overseasSituation/importExcel'
|
||||||
},
|
},
|
||||||
|
// 功能安全中心会议的url
|
||||||
|
safetyCenterMeetingUrl: {
|
||||||
|
list: '/meeting/safetyCenterMeetingSituation/page',
|
||||||
|
delete: '/meeting/safetyCenterMeetingSituation/delete',
|
||||||
|
deleteBatch: '/meeting/safetyCenterMeetingSituation/deleteBatch',
|
||||||
|
exportXlsUrl: '/meeting/safetyCenterMeetingSituation/exportXls',
|
||||||
|
importExcelUrl: '/meeting/safetyCenterMeetingSituation/importExcel'
|
||||||
|
},
|
||||||
// 当前的会议信息详情
|
// 当前的会议信息详情
|
||||||
currentMeetingInfo: {},
|
currentMeetingInfo: {},
|
||||||
meetingType: '',
|
meetingType: '',
|
||||||
@@ -909,6 +980,10 @@ export default {
|
|||||||
if (this.isOverseasMeeting) {
|
if (this.isOverseasMeeting) {
|
||||||
this.columns = this.overseasMeetingColumns
|
this.columns = this.overseasMeetingColumns
|
||||||
}
|
}
|
||||||
|
// 功能安全中心表格
|
||||||
|
if (this.isSafetyCenter) {
|
||||||
|
this.columns = this.safetyCenterColumns
|
||||||
|
}
|
||||||
// 为不同会议的参会情况去设置不同的权限编码
|
// 为不同会议的参会情况去设置不同的权限编码
|
||||||
this.setCodeByMeetingType(this.$route.query.meetingType)
|
this.setCodeByMeetingType(this.$route.query.meetingType)
|
||||||
// 获取会议详情
|
// 获取会议详情
|
||||||
@@ -974,6 +1049,10 @@ export default {
|
|||||||
this.signInQRCode = await this.generateQRCode(this.signInUrl)
|
this.signInQRCode = await this.generateQRCode(this.signInUrl)
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
// 是否功能安全中心
|
||||||
|
isSafetyCenter() {
|
||||||
|
return this.$route.query.meetingType === MeetingTypeEnums.safetyCenter.value
|
||||||
|
},
|
||||||
// 是否海外会议
|
// 是否海外会议
|
||||||
isOverseasMeeting () {
|
isOverseasMeeting () {
|
||||||
return this.$route.query.meetingType === MeetingTypeEnums.overseas.value
|
return this.$route.query.meetingType === MeetingTypeEnums.overseas.value
|
||||||
@@ -1011,6 +1090,9 @@ export default {
|
|||||||
// 海外会议
|
// 海外会议
|
||||||
case MeetingTypeEnums.overseas.value:
|
case MeetingTypeEnums.overseas.value:
|
||||||
return this.overseasMeetingUrl
|
return this.overseasMeetingUrl
|
||||||
|
// 功能安全中心会议
|
||||||
|
case MeetingTypeEnums.safetyCenter.value:
|
||||||
|
return this.safetyCenterMeetingUrl
|
||||||
// 为了解决控制台报错写的
|
// 为了解决控制台报错写的
|
||||||
default:return this.workGroupMeetingUrl
|
default:return this.workGroupMeetingUrl
|
||||||
}
|
}
|
||||||
@@ -1123,7 +1205,8 @@ export default {
|
|||||||
query: {
|
query: {
|
||||||
meetingType: this.currentMeetingInfo.meetingType,
|
meetingType: this.currentMeetingInfo.meetingType,
|
||||||
meetingId: this.$route.query.id,
|
meetingId: this.$route.query.id,
|
||||||
costBool: this.meetingCostBool
|
costBool: this.meetingCostBool,
|
||||||
|
safetyCenterId: this.currentMeetingInfo.safetyCenterId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -1142,7 +1225,8 @@ export default {
|
|||||||
id: record.id,
|
id: record.id,
|
||||||
meetingId: this.$route.query.id,
|
meetingId: this.$route.query.id,
|
||||||
meetingType: this.currentMeetingInfo.meetingType,
|
meetingType: this.currentMeetingInfo.meetingType,
|
||||||
costBool: this.meetingCostBool
|
costBool: this.meetingCostBool,
|
||||||
|
safetyCenterId: this.currentMeetingInfo.safetyCenterId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -1229,6 +1313,9 @@ export default {
|
|||||||
return '起草组会议'
|
return '起草组会议'
|
||||||
case MeetingTypeEnums.overseas.value:
|
case MeetingTypeEnums.overseas.value:
|
||||||
return '海外会议'
|
return '海外会议'
|
||||||
|
// 功能安全中心会议
|
||||||
|
case MeetingTypeEnums.safetyCenter.value:
|
||||||
|
return MeetingTypeEnums.safetyCenter.name
|
||||||
default:
|
default:
|
||||||
return '其他会议'
|
return '其他会议'
|
||||||
}
|
}
|
||||||
@@ -1335,6 +1422,10 @@ export default {
|
|||||||
case MeetingTypeEnums.overseas.value:
|
case MeetingTypeEnums.overseas.value:
|
||||||
this.authorCode = Object.assign({}, this.overseasMeetingCode)
|
this.authorCode = Object.assign({}, this.overseasMeetingCode)
|
||||||
break
|
break
|
||||||
|
// 功能安全中心会议
|
||||||
|
case MeetingTypeEnums.safetyCenter.value:
|
||||||
|
this.authorCode = Object.assign({}, this.safetyCenterMeetingCode)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 批量审核报名信息,只有参会方式是嘉宾的可以设置
|
// 批量审核报名信息,只有参会方式是嘉宾的可以设置
|
||||||
|
|||||||
@@ -28,28 +28,28 @@
|
|||||||
<!--个人信息end-->
|
<!--个人信息end-->
|
||||||
|
|
||||||
<!-- 不是国际研讨会的 -->
|
<!-- 不是国际研讨会的 -->
|
||||||
<div v-if="meetingType !== '3' ">
|
<!-- 功能安全中心不显示其他信息 -->
|
||||||
|
<div v-if="(meetingType !== '3') && (meetingType !== MeetingTypeEnums.safetyCenter.value)">
|
||||||
<!--行程信息begin-->
|
<!--行程信息begin-->
|
||||||
<template>
|
<div class="item-title">行程信息</div>
|
||||||
<div class="item-title">行程信息</div>
|
<a-row :gutter="24" class="flex-col">
|
||||||
<a-row :gutter="24" class="flex-col">
|
<a-col :xxl="8" :xl="12" :sm="24">
|
||||||
<a-col :xxl="8" :xl="12" :sm="24">
|
<label class="label">是否住酒店:</label><span>{{ model.checkInHotel_dictText }}</span>
|
||||||
<label class="label">是否住酒店:</label><span>{{ model.checkInHotel_dictText }}</span>
|
</a-col>
|
||||||
</a-col>
|
<!-- 抵达时间和离开时间 填写了才显示 -->
|
||||||
<!-- 抵达时间和离开时间 填写了才显示 -->
|
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.arrivalTime">
|
||||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.arrivalTime">
|
<label class="label">抵达时间:</label><span>{{ model.arrivalTime }}</span>
|
||||||
<label class="label">抵达时间:</label><span>{{ model.arrivalTime }}</span>
|
</a-col>
|
||||||
</a-col>
|
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.departureTime">
|
||||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.departureTime">
|
<label class="label">离开时间:</label><span>{{ model.departureTime }}</span>
|
||||||
<label class="label">离开时间:</label><span>{{ model.departureTime }}</span>
|
</a-col>
|
||||||
</a-col>
|
</a-row>
|
||||||
</a-row>
|
|
||||||
</template>
|
|
||||||
<!--行程信息end-->
|
<!--行程信息end-->
|
||||||
|
|
||||||
<!--其他会议的身份选择参会人才显示 缴费信息和邮寄信息 -->
|
<!--其他会议的身份选择参会人才显示 缴费信息和邮寄信息 -->
|
||||||
<!--缴费信息begin-->
|
<!--缴费信息begin-->
|
||||||
<template v-if="model.identity === 2">
|
<!-- 功能安全中心不显示缴费信息 -->
|
||||||
|
<template v-if="(model.identity === 2)">
|
||||||
<div class="item-title">缴费信息</div>
|
<div class="item-title">缴费信息</div>
|
||||||
<a-row :gutter="24" class="flex-col">
|
<a-row :gutter="24" class="flex-col">
|
||||||
<a-col :xxl="8" :xl="12" :sm="24">
|
<a-col :xxl="8" :xl="12" :sm="24">
|
||||||
@@ -270,6 +270,7 @@ import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
|||||||
import {getSingUpUserInfo} from '@api/incomeMeetingApi'
|
import {getSingUpUserInfo} from '@api/incomeMeetingApi'
|
||||||
import JImageUpload from '@comp/jero/JImageUpload'
|
import JImageUpload from '@comp/jero/JImageUpload'
|
||||||
import PreviewFile from '@comp/jero/PreviewFile'
|
import PreviewFile from '@comp/jero/PreviewFile'
|
||||||
|
import {MeetingTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -293,6 +294,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
MeetingTypeEnums,
|
||||||
model: {}, // 会议信息
|
model: {}, // 会议信息
|
||||||
meetingType: '' // 会议类型
|
meetingType: '' // 会议类型
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
<add-meeting-company @change="changeCompany" v-decorator="['companyId',validatorRules.companyId]"
|
<add-meeting-company @change="changeCompany" v-decorator="['companyId',validatorRules.companyId]"
|
||||||
placeholder="请选择参会企业"
|
placeholder="请选择参会企业"
|
||||||
full-company-info
|
full-company-info
|
||||||
|
:customListUrl="safetyCenterId ? companyList : ''"
|
||||||
|
:customListParams="safetyCenterId ? customListParams : {}"
|
||||||
:disabled="model.checkResult === 1"
|
:disabled="model.checkResult === 1"
|
||||||
:maxLength='50'>
|
:maxLength='50'>
|
||||||
</add-meeting-company>
|
</add-meeting-company>
|
||||||
@@ -25,8 +27,11 @@
|
|||||||
placeholder="请选择参会人"
|
placeholder="请选择参会人"
|
||||||
v-decorator="['companyContactId',validatorRules.companyContactId]"
|
v-decorator="['companyContactId',validatorRules.companyContactId]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
|
:can-add="!safetyCenterId"
|
||||||
:disabled="model.checkResult === 1"
|
:disabled="model.checkResult === 1"
|
||||||
:init-contacts="selectPerson"
|
:init-contacts="selectPerson"
|
||||||
|
:customListFn="safetyCenterId ? getContactsByCompanyBySafetyCenter : null"
|
||||||
|
:customListParams="safetyCenterId ? customListParams : {}"
|
||||||
@change="changeContact"
|
@change="changeContact"
|
||||||
ref="selectMailContacts"
|
ref="selectMailContacts"
|
||||||
@ok="addContactsOk"></select-contacts>
|
@ok="addContactsOk"></select-contacts>
|
||||||
@@ -170,7 +175,7 @@ import OtherMeetingForm from '@views/incomePayments/meetManage/OtherMeetingForm'
|
|||||||
import SeminarVipForm from '@views/incomePayments/meetManage/modules/SeminarVipForm'
|
import SeminarVipForm from '@views/incomePayments/meetManage/modules/SeminarVipForm'
|
||||||
import SeminarPartnerForm from '@views/incomePayments/meetManage/modules/SeminarPartnerForm'
|
import SeminarPartnerForm from '@views/incomePayments/meetManage/modules/SeminarPartnerForm'
|
||||||
import AddMeetingCompany from '@comp/company/AddMeetingCompany'
|
import AddMeetingCompany from '@comp/company/AddMeetingCompany'
|
||||||
import {getContactsById} from '@api/api'
|
import {getContactsByCompanyBySafetyCenter, getContactsById} from '@api/api'
|
||||||
import {getSingUpUserInfo, validateStandard, getMeetInfoById, getLinkTopics} from '@api/incomeMeetingApi'
|
import {getSingUpUserInfo, validateStandard, getMeetInfoById, getLinkTopics} from '@api/incomeMeetingApi'
|
||||||
import {judgeCompanyIsPackaged, judgeInternalEnterprise} from '../../../api/incomePaymentsApi'
|
import {judgeCompanyIsPackaged, judgeInternalEnterprise} from '../../../api/incomePaymentsApi'
|
||||||
import {httpAction} from '@api/manage'
|
import {httpAction} from '@api/manage'
|
||||||
@@ -306,6 +311,11 @@ export default {
|
|||||||
add: '/meeting/overseasSituation/add',
|
add: '/meeting/overseasSituation/add',
|
||||||
edit: '/meeting/overseasSituation/edit'
|
edit: '/meeting/overseasSituation/edit'
|
||||||
},
|
},
|
||||||
|
// 功能安全中心会议的url
|
||||||
|
safetyCenterMeetingUrl: {
|
||||||
|
add: '/meeting/safetyCenterMeetingSituation/add',
|
||||||
|
edit:'/meeting/safetyCenterMeetingSituation/edit'
|
||||||
|
},
|
||||||
title:'添加参会人',
|
title:'添加参会人',
|
||||||
// 当前参会企业是否是内部企业
|
// 当前参会企业是否是内部企业
|
||||||
isInternalEnterprise: false,
|
isInternalEnterprise: false,
|
||||||
@@ -314,7 +324,17 @@ export default {
|
|||||||
// 可选会议名称的数组
|
// 可选会议名称的数组
|
||||||
linkTopicsOptionArr: [],
|
linkTopicsOptionArr: [],
|
||||||
// WASIC可选会议的数组-前端写死
|
// WASIC可选会议的数组-前端写死
|
||||||
showTopicsArr: [...WasicTopicData]
|
showTopicsArr: [...WasicTopicData],
|
||||||
|
// 功能安全中心id
|
||||||
|
safetyCenterId: this.$route.query.safetyCenterId,
|
||||||
|
// 成员单位列表(功能安全中心单独的选择成员列表接口)
|
||||||
|
companyList: '/company/payCompanyManagement/listSafetyCenter',
|
||||||
|
// 需要带上当前项目id
|
||||||
|
customListParams: {
|
||||||
|
projectId: this.$route.query.safetyCenterId,
|
||||||
|
// 查询本级可选,传其他值是查上级
|
||||||
|
type: '2'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -360,10 +380,14 @@ export default {
|
|||||||
// 海外会议
|
// 海外会议
|
||||||
case MeetingTypeEnums.overseas.value:
|
case MeetingTypeEnums.overseas.value:
|
||||||
return this.overseasMeetingUrl
|
return this.overseasMeetingUrl
|
||||||
|
// 功能安全中心会议
|
||||||
|
case MeetingTypeEnums.safetyCenter.value:
|
||||||
|
return this.safetyCenterMeetingUrl
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getContactsByCompanyBySafetyCenter,
|
||||||
// 验证选择会议名称的情况
|
// 验证选择会议名称的情况
|
||||||
checkChoiceTopic(rules, value, callback) {
|
checkChoiceTopic(rules, value, callback) {
|
||||||
console.log(value)
|
console.log(value)
|
||||||
|
|||||||
@@ -115,6 +115,7 @@
|
|||||||
import JImageUpload from '@comp/jero/JImageUpload'
|
import JImageUpload from '@comp/jero/JImageUpload'
|
||||||
import {httpAction} from '@api/manage'
|
import {httpAction} from '@api/manage'
|
||||||
import {getSingUpUserInfo} from '@api/incomeMeetingApi'
|
import {getSingUpUserInfo} from '@api/incomeMeetingApi'
|
||||||
|
import {MeetingTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AuditModal',
|
name: 'AuditModal',
|
||||||
@@ -226,6 +227,13 @@ export default {
|
|||||||
// 批量审核报名信息
|
// 批量审核报名信息
|
||||||
checkSignUpBatch: '/meeting/draftGroupMeetingSituation/checkRegisterBatch',
|
checkSignUpBatch: '/meeting/draftGroupMeetingSituation/checkRegisterBatch',
|
||||||
},
|
},
|
||||||
|
// 功能安全中心会议url
|
||||||
|
safetyCenterMeetingUrl: {
|
||||||
|
// 审核凭证
|
||||||
|
check: '/meeting/safetyCenterMeetingSituation/check',
|
||||||
|
// 审核报名信息
|
||||||
|
checkSignUp: '/meeting/safetyCenterMeetingSituation/checkRegister'
|
||||||
|
},
|
||||||
// 审核结果选择
|
// 审核结果选择
|
||||||
checkBool: false,
|
checkBool: false,
|
||||||
// 是否是审核报名信息
|
// 是否是审核报名信息
|
||||||
@@ -359,6 +367,9 @@ export default {
|
|||||||
return this.councilMeetingUrl
|
return this.councilMeetingUrl
|
||||||
case '7':
|
case '7':
|
||||||
return this.draftGroupMeetingUrl
|
return this.draftGroupMeetingUrl
|
||||||
|
// 功能安全中心
|
||||||
|
case MeetingTypeEnums.safetyCenter.value:
|
||||||
|
return this.safetyCenterMeetingUrl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { httpAction } from '@api/manage'
|
import { httpAction } from '@api/manage'
|
||||||
|
import {MeetingTypeEnums} from '@/enums/commonEnums'
|
||||||
const requestUrlObj = {
|
const requestUrlObj = {
|
||||||
workGroupMeetingUrl: '/meeting/workGroupMeetingSituation/setGuestsUploadFile', // 工作组
|
workGroupMeetingUrl: '/meeting/workGroupMeetingSituation/setGuestsUploadFile', // 工作组
|
||||||
standardsMeetingUrl: '/meeting/payMeetingSituation/setGuestsUploadFile', // 标协会议
|
standardsMeetingUrl: '/meeting/payMeetingSituation/setGuestsUploadFile', // 标协会议
|
||||||
@@ -36,6 +37,7 @@ const requestUrlObj = {
|
|||||||
committeeMeetingUrl: '/meeting/committeeMeetingSituation/setGuestsUploadFile', // 分标委会议的url
|
committeeMeetingUrl: '/meeting/committeeMeetingSituation/setGuestsUploadFile', // 分标委会议的url
|
||||||
councilMeetingUrl: '/meeting/councilMeetingSituation/setGuestsUploadFile', // 理事会的url
|
councilMeetingUrl: '/meeting/councilMeetingSituation/setGuestsUploadFile', // 理事会的url
|
||||||
draftGroupMeetingUrl: '/meeting/draftGroupMeetingSituation/setGuestsUploadFile', // 起草组
|
draftGroupMeetingUrl: '/meeting/draftGroupMeetingSituation/setGuestsUploadFile', // 起草组
|
||||||
|
safetyCenterMeetingUrl: '/meeting/safetyCenterMeetingSituation/setGuestsUploadFile', // 功能安全中心url
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -68,6 +70,9 @@ export default {
|
|||||||
return requestUrlObj.councilMeetingUrl
|
return requestUrlObj.councilMeetingUrl
|
||||||
case 7:
|
case 7:
|
||||||
return requestUrlObj.draftGroupMeetingUrl
|
return requestUrlObj.draftGroupMeetingUrl
|
||||||
|
// 功能安全中心
|
||||||
|
case Number(MeetingTypeEnums.safetyCenter.value):
|
||||||
|
return requestUrlObj.safetyCenterMeetingUrl
|
||||||
// 为了解决控制台报错写的
|
// 为了解决控制台报错写的
|
||||||
default:return requestUrlObj.workGroupMeetingUrl
|
default:return requestUrlObj.workGroupMeetingUrl
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -215,6 +215,12 @@ export default {
|
|||||||
uploadFile: '/meeting/overseas/uploadFile',
|
uploadFile: '/meeting/overseas/uploadFile',
|
||||||
uploadCouncilFile: '/meeting/overseas/uploadCouncilFile',
|
uploadCouncilFile: '/meeting/overseas/uploadCouncilFile',
|
||||||
}
|
}
|
||||||
|
// 安全中心会议
|
||||||
|
case MeetingTypeEnums.safetyCenter.value:
|
||||||
|
return {
|
||||||
|
uploadFile: '/meeting/safetyCenterMeeting/uploadFile',
|
||||||
|
uploadCouncilFile: '/meeting/safetyCenterMeeting/uploadCouncilFile'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleOk() {
|
handleOk() {
|
||||||
|
|||||||
@@ -297,7 +297,10 @@ export default {
|
|||||||
pathMap.set('5','/incomePayments/meetManage/AttendanceCommitteeMeeting')
|
pathMap.set('5','/incomePayments/meetManage/AttendanceCommitteeMeeting')
|
||||||
pathMap.set('6','/incomePayments/meetManage/AttendanceCouncilMeeting')
|
pathMap.set('6','/incomePayments/meetManage/AttendanceCouncilMeeting')
|
||||||
pathMap.set('7','/incomePayments/meetManage/AttendanceDraftGroupMeeting')
|
pathMap.set('7','/incomePayments/meetManage/AttendanceDraftGroupMeeting')
|
||||||
|
// 海外会议
|
||||||
pathMap.set(MeetingTypeEnums.overseas.value,'/incomePayments/meetManage/AttendanceOverseasMeeting')
|
pathMap.set(MeetingTypeEnums.overseas.value,'/incomePayments/meetManage/AttendanceOverseasMeeting')
|
||||||
|
// 功能安全中心会议
|
||||||
|
pathMap.set(MeetingTypeEnums.safetyCenter.value,'/incomePayments/meetManage/AttendanceFunctionalSafetyCenter')
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: pathMap.get(record.meetingType+''),
|
path: pathMap.get(record.meetingType+''),
|
||||||
query: {
|
query: {
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
|
<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="handleDistribute(record)" v-has="'fileMaintenance:distribute'">分发</a>
|
||||||
<a @click="handleDownload(record)" v-has="'fileMaintenance:download'">下载</a>
|
<a @click="handleDownload(record)" v-has="'fileMaintenance:download'">下载</a>
|
||||||
<a @click="handleDelete(record.id)" v-has="'fileMaintenance:delete'">删除</a>
|
<a @click="handleDelete(record.id)" v-has="'fileMaintenance:delete'">删除</a>
|
||||||
</span>
|
</span>
|
||||||
@@ -79,6 +79,7 @@
|
|||||||
:project-type="projectType"
|
:project-type="projectType"
|
||||||
:is-batch="isBatchDistribute"
|
:is-batch="isBatchDistribute"
|
||||||
:record-id="dataId"
|
:record-id="dataId"
|
||||||
|
:file-id="fileId"
|
||||||
@ok="modalFormOk"></work-group-distribute-module>
|
@ok="modalFormOk"></work-group-distribute-module>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -158,6 +159,7 @@ export default {
|
|||||||
distributeModalVisible: false,
|
distributeModalVisible: false,
|
||||||
isBatchDistribute: false,
|
isBatchDistribute: false,
|
||||||
dataId: '', // 资料id,传给分发
|
dataId: '', // 资料id,传给分发
|
||||||
|
fileId: '', // 文件id, 单个分发时查询用
|
||||||
canOperate: true // 是否可操作(负责人B不可操作)
|
canOperate: true // 是否可操作(负责人B不可操作)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -184,6 +186,11 @@ export default {
|
|||||||
this.canOperate = this.$route.query.canOperate === 'true'
|
this.canOperate = this.$route.query.canOperate === 'true'
|
||||||
this.projectType = 4
|
this.projectType = 4
|
||||||
this.filters.projectType = 4
|
this.filters.projectType = 4
|
||||||
|
} else if (this.$route.query.hasOwnProperty.call(this.$route.query, 'safetyCenterId')) {
|
||||||
|
// 功能安全中心
|
||||||
|
this.filters.projectId = this.$route.query.safetyCenterId
|
||||||
|
this.projectType = 5
|
||||||
|
this.filters.projectType = 5
|
||||||
}
|
}
|
||||||
this.projectId = this.filters.projectId
|
this.projectId = this.filters.projectId
|
||||||
this.loadData()
|
this.loadData()
|
||||||
@@ -204,8 +211,9 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* 分发
|
* 分发
|
||||||
*/
|
*/
|
||||||
handleDistribute(id) {
|
handleDistribute(record) {
|
||||||
this.dataId = id
|
this.fileId = record.fileId
|
||||||
|
this.dataId = record.id
|
||||||
this.distributeModalVisible = true
|
this.distributeModalVisible = true
|
||||||
this.isBatchDistribute = false
|
this.isBatchDistribute = false
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ import {
|
|||||||
import EmailErrorMsgModal from '@views/projectManagement/modules/EmailErrorMsgModal'
|
import EmailErrorMsgModal from '@views/projectManagement/modules/EmailErrorMsgModal'
|
||||||
import { judgeEmailStatus } from '../../../api/incomePaymentsApi'
|
import { judgeEmailStatus } from '../../../api/incomePaymentsApi'
|
||||||
import { getAction } from "../../../api/manage";
|
import { getAction } from "../../../api/manage";
|
||||||
|
import {MeetingTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -237,6 +238,47 @@ export default {
|
|||||||
// scopedSlots: {customRender: 'text'}
|
// scopedSlots: {customRender: 'text'}
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
// 功能安全中心发布提醒 表头
|
||||||
|
safetyCenterColumns: [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: '',
|
||||||
|
key: 'rowIndex',
|
||||||
|
width: 60,
|
||||||
|
align: 'center',
|
||||||
|
customRender: function (t, r, index) {
|
||||||
|
return parseInt(index) + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '成员单位',
|
||||||
|
align: 'center',
|
||||||
|
width: 200,
|
||||||
|
dataIndex: 'companyName',
|
||||||
|
scopedSlots: {customRender: 'text'}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '企业联系人',
|
||||||
|
align: 'center',
|
||||||
|
width: 200,
|
||||||
|
dataIndex: 'contactsName',
|
||||||
|
scopedSlots: {customRender: 'text'}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '是否提醒',
|
||||||
|
align: 'center',
|
||||||
|
width: 200,
|
||||||
|
dataIndex: 'remind_dictText',
|
||||||
|
// scopedSlots: {customRender: 'text'}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '邮件提醒',
|
||||||
|
align: 'center',
|
||||||
|
width: 200,
|
||||||
|
dataIndex: 'mailRemind_dictText',
|
||||||
|
// scopedSlots: {customRender: 'text'}
|
||||||
|
},
|
||||||
|
],
|
||||||
model: {},
|
model: {},
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: {span: 24},
|
xs: {span: 24},
|
||||||
@@ -289,6 +331,12 @@ export default {
|
|||||||
this.filters.draftingGroupId = this.$route.query.draftingGroupProjectId
|
this.filters.draftingGroupId = this.$route.query.draftingGroupProjectId
|
||||||
this.newColumns = [...this.columns]
|
this.newColumns = [...this.columns]
|
||||||
this.remindType = 4
|
this.remindType = 4
|
||||||
|
} else if (this.$route.query.meetingType === MeetingTypeEnums.safetyCenter.value) {
|
||||||
|
// 功能安全中心
|
||||||
|
this.url.list = '/SafetyCenterSubitem/publishReminderList'
|
||||||
|
this.filters.projectId = this.$route.query.projectId
|
||||||
|
this.newColumns = [...this.safetyCenterColumns]
|
||||||
|
this.remindType = 5
|
||||||
} else {
|
} else {
|
||||||
// 列表需要工作组id参数
|
// 列表需要工作组id参数
|
||||||
this.filters.workingGroupId = this.$route.query.workingGroupProjectId
|
this.filters.workingGroupId = this.$route.query.workingGroupProjectId
|
||||||
@@ -344,6 +392,10 @@ export default {
|
|||||||
// 起草组用起草组的发布提醒
|
// 起草组用起草组的发布提醒
|
||||||
param.draftingGroupId = this.$route.query.draftingGroupProjectId
|
param.draftingGroupId = this.$route.query.draftingGroupProjectId
|
||||||
requestFun = draftGroupPublishRemind
|
requestFun = draftGroupPublishRemind
|
||||||
|
} else if (this.$route.query.meetingType === MeetingTypeEnums.safetyCenter.value) {
|
||||||
|
// 功能安全中心的发布提醒
|
||||||
|
param.safetyCenterId = this.$route.query.projectId
|
||||||
|
requestFun = draftGroupPublishRemind
|
||||||
} else {
|
} else {
|
||||||
// 工作组
|
// 工作组
|
||||||
param.workingGroupId = this.$route.query.workingGroupProjectId
|
param.workingGroupId = this.$route.query.workingGroupProjectId
|
||||||
|
|||||||
@@ -207,6 +207,12 @@ export default {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
|
},
|
||||||
|
// 单个分发时的文件Id
|
||||||
|
fileId: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@@ -265,7 +271,7 @@ export default {
|
|||||||
}
|
}
|
||||||
// 非批量上传的时候传当前选中的文件id
|
// 非批量上传的时候传当前选中的文件id
|
||||||
if(!this.isBatch) {
|
if(!this.isBatch) {
|
||||||
param.fileId = this.recordId
|
param.fileId = this.fileId
|
||||||
}
|
}
|
||||||
distributeMemberList(param).then(res => {
|
distributeMemberList(param).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
|||||||
Reference in New Issue
Block a user