update 起草组完善
This commit is contained in:
@@ -143,7 +143,8 @@ const copyDraftingGroup = (param) => postAction('/drafting/payDraftingGroup/copy
|
||||
const getWorkingGroupList = (param) => getAction('/drafting/payDraftingGroup/queryAllWorkingGroupsIdAndName', param)
|
||||
// 通过id获取起草组详情
|
||||
const getDraftingGroupById = (params) => getAction('/drafting/payDraftingGroup/queryById', params)
|
||||
|
||||
// 起草组会议的发布提醒
|
||||
const draftGroupPublishRemind = (param) => postAction('/meeting/draftGroupMeeting/publishReminder', param)
|
||||
export {
|
||||
getWorkingGroupById,
|
||||
getChargeNotice,
|
||||
@@ -219,4 +220,5 @@ export {
|
||||
copyDraftingGroup,
|
||||
getWorkingGroupList,
|
||||
getDraftingGroupById,
|
||||
draftGroupPublishRemind,
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
<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="'workGroupMeeting:search'">查询</a-button>
|
||||
v-has="'draftGroupMeeting:search'">查询</a-button>
|
||||
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
@@ -74,15 +74,15 @@
|
||||
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'workGroupMeeting:add'" v-if="canOperate">新增
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'draftGroupMeeting:add'" v-if="canOperate">新增
|
||||
</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议')"
|
||||
v-has="'workGroupMeeting:export'">导出
|
||||
v-has="'draftGroupMeeting:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workGroupMeeting:batchDel'" v-if="canOperate">
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'draftGroupMeeting:batchDel'" v-if="canOperate">
|
||||
批量删除
|
||||
</a-button>
|
||||
<a-button type="primary" @click="publishRemind" v-has="'workGroupMeeting:publish'" v-if="canOperate">发布
|
||||
<a-button type="primary" @click="publishRemind" v-has="'draftGroupMeeting:publish'" v-if="canOperate">发布
|
||||
</a-button>
|
||||
</div>
|
||||
<!-- /操作按钮区域-end-->
|
||||
@@ -114,11 +114,11 @@
|
||||
</template>
|
||||
|
||||
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
|
||||
<a @click="uploadFile(record,'1')" v-has="'workGroupMeeting:uploadCouncil'">会议纪要</a>
|
||||
<a @click="uploadFile(record,'2')" v-has="'workGroupMeeting:upload'">上传文件</a>
|
||||
<a @click="uploadFile(record,'1')" v-has="'draftGroupMeeting:uploadCouncil'">会议纪要</a>
|
||||
<a @click="uploadFile(record,'2')" v-has="'draftGroupMeeting:upload'">上传文件</a>
|
||||
<!-- <a @click="applyMsg">报名信息</a>-->
|
||||
<a @click="handleEdit(record)" v-has="'workGroupMeeting:edit'">编辑</a>
|
||||
<a @click="handleDelete(record.id)" v-has="'workGroupMeeting:delete'">删除</a>
|
||||
<a @click="handleEdit(record)" v-has="'draftGroupMeeting:edit'">编辑</a>
|
||||
<a @click="handleDelete(record.id)" v-has="'draftGroupMeeting:delete'">删除</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
|
||||
@@ -284,7 +284,8 @@ export default {
|
||||
query: {
|
||||
draftingGroupProject: record.draftingGroupProject,
|
||||
draftingGroupProjectId: record.id,
|
||||
canOperate: record.checkoutOperation === 1
|
||||
canOperate: record.checkoutOperation === 1,
|
||||
meetingType: '7'
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -32,6 +32,25 @@
|
||||
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 入会信息 -->
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">入会信息</div>
|
||||
</div>
|
||||
<a-spin :spinning="spinning">
|
||||
<a-row class="flex-col">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>报名链接:</label><span>{{ signUpHerfUrl }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label>报名二维码:</label><img class="qr-code" :src="signUpQRCode" alt="报名二维码"/><i class="copy primary-color"
|
||||
@click="copy(signUpHerfUrl)">复制</i>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-spin>
|
||||
<!-- /入会信息 -->
|
||||
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 查询区域-->
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">成员信息</div>
|
||||
@@ -137,6 +156,8 @@
|
||||
</template>
|
||||
|
||||
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
|
||||
<!-- 1.待审核 2.已通过 3.已驳回 -->
|
||||
<a @click="handleCheck(record)" v-if="record.checkResult === 1" v-has="'draftingGroupMember:edit'">审核</a>
|
||||
<a @click="handleEdit(record)" v-has="'draftingGroupMember:edit'">编辑</a>
|
||||
<a @click="handleDelete(record.id)" v-has="'draftingGroupMember:delete'">删除</a>
|
||||
</span>
|
||||
@@ -146,6 +167,8 @@
|
||||
|
||||
<project-detail-modal ref="projectDetail"></project-detail-modal>
|
||||
<drafting-group-member-unit-module ref="modalForm" @ok="modalFormOk"></drafting-group-member-unit-module>
|
||||
<!-- 审核弹框 -->
|
||||
<drafting-group-member-unit-check-module ref="draftingGroupMemberUnitCheckModule"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -159,6 +182,8 @@ import DraftingGroupMemberUnitModule from './modules/DraftingGroupMemberUnitModu
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN } from '../../store/mutation-types'
|
||||
import PreviewFile from '../../components/jero/PreviewFile'
|
||||
import {createQcCode} from '@api/incomeMeetingApi'
|
||||
import DraftingGroupMemberUnitCheckModule from '@views/draftingGroup/modules/DraftingGroupMemberUnitCheckModule'
|
||||
|
||||
// eslint-disable-next-line no-undef,no-unused-vars
|
||||
const Base64 = require('js-base64').Base64
|
||||
@@ -166,6 +191,7 @@ const Base64 = require('js-base64').Base64
|
||||
export default {
|
||||
name: 'DraftingGroupMemberUnitMaintenance',
|
||||
components: {
|
||||
DraftingGroupMemberUnitCheckModule,
|
||||
PageHeaderTitle,
|
||||
StatusSlot,
|
||||
ProjectDetailModal,
|
||||
@@ -174,12 +200,21 @@ export default {
|
||||
},
|
||||
mixins: [JeroListMixin],
|
||||
computed: {
|
||||
// 报名链接
|
||||
signUpHerfUrl() {
|
||||
return `${ window._CONFIG['singUpQRCodeURL'] }?id=${ this.$route.query.draftingGroupProjectId }`
|
||||
},
|
||||
importExcelUrl: function () {
|
||||
return `${ window._CONFIG['domianURL'] }/${ this.url.importExcelUrl }`
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
// 生成会议报名二维码
|
||||
this.signUpQRCode = await this.generateQRCode(this.signUpHerfUrl)
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
signUpQRCode: '',
|
||||
disableMixinCreated: true,
|
||||
draftingGroupProject: '',
|
||||
draftingGroupProjectId: '',
|
||||
@@ -338,6 +373,26 @@ export default {
|
||||
this.initWorkGroupData()
|
||||
},
|
||||
methods: {
|
||||
handleCheck (record) {
|
||||
this.$refs.draftingGroupMemberUnitCheckModule.open(record)
|
||||
},
|
||||
/*
|
||||
* 生成二维码
|
||||
* */
|
||||
generateQRCode(params) {
|
||||
return new Promise(resolve => {
|
||||
let code = ''
|
||||
createQcCode({ contact: params }).then(res => {
|
||||
if (res.success) {
|
||||
code = res.result
|
||||
} else {
|
||||
console.error('生成二维码失败')
|
||||
}
|
||||
}).finally(() => {
|
||||
resolve(code)
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 初始化起草组信息
|
||||
*/
|
||||
@@ -360,7 +415,29 @@ export default {
|
||||
this.spinning = false
|
||||
})
|
||||
},
|
||||
|
||||
/*
|
||||
* 复制地址
|
||||
* */
|
||||
copy(data) {
|
||||
// 存储传递过来的数据
|
||||
let OrderNumber = data
|
||||
// 创建一个input 元素
|
||||
// createElement() 方法通过指定名称创建一个元素
|
||||
let newInput = document.createElement('input')
|
||||
// 讲存储的数据赋值给input的value值
|
||||
newInput.value = OrderNumber
|
||||
// appendChild() 方法向节点添加最后一个子节点。
|
||||
document.body.appendChild(newInput)
|
||||
// 选中input元素中的文本
|
||||
// select() 方法用于选择该元素中的文本。
|
||||
newInput.select()
|
||||
// 执行浏览器复制命令
|
||||
// execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令
|
||||
document.execCommand('Copy')
|
||||
// 清空输入框
|
||||
newInput.remove()
|
||||
this.$message.success('复制成功')
|
||||
},
|
||||
handleAdd: function () {
|
||||
this.$refs.modalForm.draftingGroupId = this.draftingGroupProjectId
|
||||
this.$refs.modalForm.add()
|
||||
@@ -445,4 +522,37 @@ export default {
|
||||
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;
|
||||
}
|
||||
.ant-row {
|
||||
line-height: 3;
|
||||
|
||||
.ant-col {
|
||||
|
||||
label {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
span {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
<template>
|
||||
<j-modal
|
||||
:title="title"
|
||||
:width="width"
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<section class="check">
|
||||
<h3>报名信息</h3>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<label>参会企业:</label>
|
||||
<span>{{ model.chargeCompanyTemporaryName }}</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-row :gutter="24" v-for="item in model.payDraftingGroupSubItemContactsList" :key="item.id">
|
||||
<a-col :span="12">
|
||||
<label>姓名:</label>
|
||||
<span>{{ item.contactsTemporaryName }}</span></a-col>
|
||||
<a-col :span="12">
|
||||
<label>手机号:</label>
|
||||
<span>{{ item.phone }}</span></a-col>
|
||||
</a-row>
|
||||
</section>
|
||||
|
||||
<h3>审核</h3>
|
||||
|
||||
<a-form :form="form">
|
||||
<a-row :gutter="24">
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="审核" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['checkResult',validatorRules.checkResult]" placeholder="请选择审核结果"
|
||||
@change="changeCheck">
|
||||
<a-radio value="1">
|
||||
通过
|
||||
</a-radio>
|
||||
<a-radio value='2'>
|
||||
驳回
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="24" :sm="24" v-if="checkBool">
|
||||
<a-form-item label="审核说明" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
placeholder="请输入审核说明"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
:maxLength='200'
|
||||
v-decorator="['checkRemark',validatorRules.checkRemark]"
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="24" :sm="24" v-if="!checkBool">
|
||||
<a-form-item label="审核说明" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||
<a-textarea
|
||||
placeholder="请输入审核说明"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
:maxLength='200'
|
||||
v-decorator="['checkRemark']"
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
<template slot="footer">
|
||||
<a-button @click="handleCancel">关闭</a-button>
|
||||
<a-button type="primary" @click="handleOk" v-preventclick>确定</a-button>
|
||||
</template>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {postAction} from '@api/manage'
|
||||
|
||||
export default {
|
||||
name: 'DraftingGroupMemberUnitCheckModule',
|
||||
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: {
|
||||
checkRemark: {
|
||||
rules: [{required: true, message: '请输入审核说明'}],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
checkResult: {
|
||||
rules: [{required: true, message: '请选择审核结果'}],
|
||||
validateTrigger: 'change'
|
||||
}
|
||||
},
|
||||
url: {
|
||||
// 审核报名信息
|
||||
check: '/meeting/draftGroupMeetingSituation/checkRegister'
|
||||
},
|
||||
// 审核结果选择
|
||||
checkBool: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open(record) {
|
||||
console.log(record)
|
||||
this.form.resetFields()
|
||||
this.model = Object.assign({}, record)
|
||||
this.userList = []
|
||||
|
||||
this.visible = true
|
||||
},
|
||||
close() {
|
||||
this.$emit('close')
|
||||
this.visible = false
|
||||
this.model = {}
|
||||
},
|
||||
handleOk() {
|
||||
const that = this
|
||||
// 触发表单验证
|
||||
this.form.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
that.confirmLoading = true
|
||||
const formData = Object.assign({}, values)
|
||||
formData.id = this.model.id
|
||||
postAction(this.url.check, formData).then((res) => {
|
||||
if (res.success) {
|
||||
that.$message.success(res.message)
|
||||
that.$emit('ok')
|
||||
that.confirmLoading = false
|
||||
that.close()
|
||||
} else {
|
||||
that.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
that.confirmLoading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleCancel() {
|
||||
this.close()
|
||||
},
|
||||
/*
|
||||
* 选择审核结果
|
||||
* */
|
||||
changeCheck(e) {
|
||||
console.log(e)
|
||||
// 审核结果选择拒绝 审核说明必填
|
||||
if (e.target.value === '1') {
|
||||
this.checkBool = false
|
||||
} else if (e.target.value === '2') {
|
||||
this.checkBool = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.check {
|
||||
.ant-row {
|
||||
line-height: 3;
|
||||
|
||||
.ant-col {
|
||||
label {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
span {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.label {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.content {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
.color-999 {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.color-black {
|
||||
color: black;
|
||||
}
|
||||
</style>
|
||||
@@ -113,7 +113,7 @@ import { checkAssociatedProject } from '../../../utils/projectCheck'
|
||||
import { CalcAmountMixin } from '@/mixins/CalcAmountMixin'
|
||||
|
||||
export default {
|
||||
name: 'WorkingGroupMemberUnitModule',
|
||||
name: 'DraftingGroupMemberUnitModule',
|
||||
components: { CompanySelect, SelectContacts },
|
||||
mixins: [CalcAmountMixin],
|
||||
props: {
|
||||
@@ -411,6 +411,8 @@ export default {
|
||||
let method = 'post'
|
||||
if (!this.model.id) {
|
||||
httpurl += this.url.add
|
||||
// 通过添加成员来的,默认状态为通过
|
||||
values.checkResult = 2
|
||||
} else {
|
||||
httpurl += this.url.edit
|
||||
}
|
||||
|
||||
@@ -916,6 +916,7 @@ export default {
|
||||
formData.meetingType = '2'
|
||||
formData.standardsId = this.$route.query.standardsId
|
||||
}
|
||||
// 如果是起草组会议需要加上起草组id与会议类型
|
||||
if (this.isDraftGroupMeetType) {
|
||||
formData.meetingType = '7'
|
||||
formData.draftingGroupId = this.$route.query.draftingGroupProjectId
|
||||
|
||||
@@ -238,6 +238,12 @@ export default {
|
||||
uploadFile: '/meeting/councilMeeting/uploadFile',
|
||||
uploadCouncilFile: '/meeting/councilMeeting/uploadCouncilFile',
|
||||
}
|
||||
// 起草组会议
|
||||
case '7':
|
||||
return {
|
||||
uploadFile: '/meeting/draftGroupMeeting/uploadFile',
|
||||
uploadCouncilFile: '/meeting/draftGroupMeeting/uploadCouncilFile',
|
||||
}
|
||||
}
|
||||
},
|
||||
handleOk() {
|
||||
|
||||
@@ -85,7 +85,12 @@
|
||||
|
||||
<script>
|
||||
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
||||
import {publishRemind,commitePublishRemind,councilPublishRemind} from '@api/incomePaymentsApi'
|
||||
import {
|
||||
publishRemind,
|
||||
commitePublishRemind,
|
||||
councilPublishRemind,
|
||||
draftGroupPublishRemind
|
||||
} from '@api/incomePaymentsApi'
|
||||
import EmailErrorMsgModal from '@views/projectManagement/modules/EmailErrorMsgModal'
|
||||
import { judgeEmailStatus } from "../../../api/incomePaymentsApi";
|
||||
|
||||
@@ -244,7 +249,7 @@ export default {
|
||||
// 会议维护选中的会议
|
||||
selectedMetingList: [],
|
||||
newColumns: [],
|
||||
// 提醒类型 1 是工作组 2 是分标委 3是理事会
|
||||
// 提醒类型 1 是工作组 2 是分标委 3是理事会 4是起草组
|
||||
remindType:'',
|
||||
// 是否需要发邮件
|
||||
needMail: false,
|
||||
@@ -274,6 +279,11 @@ export default {
|
||||
//理事会成员的接口
|
||||
this.url.list = '/payCaseCouncilSubitem/payCaseCouncilSubitem/list'
|
||||
this.remindType = 3
|
||||
} else if (this.$route.query.meetingType === '7') {
|
||||
this.url.list = '/meeting/draftGroupMeetingSituation/publishReminderList'
|
||||
this.filters.draftingGroupId = this.$route.query.draftingGroupProjectId
|
||||
this.newColumns = [...this.columns]
|
||||
this.remindType = 4
|
||||
} else {
|
||||
// 列表需要工作组id参数
|
||||
this.filters.workingGroupId = this.$route.query.workingGroupProjectId
|
||||
@@ -325,6 +335,10 @@ export default {
|
||||
}else if(this.$route.query.meetingType === '6'){
|
||||
// 理事会的用理事会的发布提醒
|
||||
requestFun = councilPublishRemind
|
||||
} else if (this.$route.query.meetingType === '7') {
|
||||
// 起草组用起草组的发布提醒
|
||||
param.draftingGroupId = this.$route.query.draftingGroupProjectId
|
||||
requestFun = draftGroupPublishRemind
|
||||
} else {
|
||||
// 工作组
|
||||
param.workingGroupId = this.$route.query.workingGroupProjectId
|
||||
|
||||
@@ -234,6 +234,8 @@ export default {
|
||||
return '分标委会议'
|
||||
case '6':
|
||||
return '理事会会议'
|
||||
case '7':
|
||||
return '起草组会议'
|
||||
}
|
||||
} else {
|
||||
return ''
|
||||
|
||||
Reference in New Issue
Block a user