Merge remote-tracking branch 'origin/branch20211008'
This commit is contained in:
+11
@@ -8,7 +8,18 @@
|
||||
<script>
|
||||
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
|
||||
import enquireScreen from '@/utils/device'
|
||||
window.addEventListener('message', function (event) {
|
||||
// 当监听到 需要修改样式的事件时 隐藏相应的元素
|
||||
if (event.data.hideDom) {
|
||||
//此处执行事件
|
||||
setTimeout(() => {
|
||||
document.getElementsByClassName('ant-layout-sider')[0].style.display = 'none'
|
||||
document.getElementsByClassName('ant-layout-header')[0].style.display = 'none'
|
||||
document.getElementsByClassName('tab-layout-tabs ant-tabs ant-tabs-top')[0].style.display = 'none'
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
})
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {getAction, postAction} from '@api/manage'
|
||||
import {getAction} from '@api/manage'
|
||||
|
||||
// 通过用户id获取用户信息
|
||||
const getUserInfo = (params) => getAction('/sys/user/queryById',params)
|
||||
@@ -8,8 +8,7 @@ const getMeetInfoById = (params) => getAction('/meeting/payMeeting/queryById',pa
|
||||
const getAllWorkProjects = () => getAction('/project/payWorkingGroup/listAll')
|
||||
// 通过id获取参会人详细信息
|
||||
const getSingUpUserInfo = (params) => getAction('/meeting/payMeetingSituation/queryById',params)
|
||||
// 会议管理上传会议资料
|
||||
const uploadMeetingFiles = (params) => postAction('/meeting/payMeeting/uploadFile',params)
|
||||
|
||||
// 生成会议二维码
|
||||
const createQcCode = (params) => getAction('/meeting/payMeeting/createBase64',params)
|
||||
// 收入合同的新增会员项目的查询
|
||||
@@ -20,7 +19,6 @@ export {
|
||||
getMeetInfoById,
|
||||
getAllWorkProjects,
|
||||
getSingUpUserInfo,
|
||||
uploadMeetingFiles,
|
||||
createQcCode,
|
||||
queryContractMemberProject
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ const getWorkingGroupById = (params) => getAction('/project/payWorkingGroup/quer
|
||||
// 判断工作组成员是否设置来款通知
|
||||
const getChargeNotice = (param) => getAction('/project/payWorkingGroupSubitem/getCharge', param)
|
||||
// 工作组会议的发布提醒
|
||||
const publishRemind = (param) => postAction('/meeting/payMeeting/publishReminder', param)
|
||||
const publishRemind = (param) => postAction('/meeting/workGroupMeeting/publishReminder', param)
|
||||
// 通过id获取收入合同信息
|
||||
const getRevenueContractById = (param) => getAction('/contract/payIncomeContract/queryById', param)
|
||||
// 收入合同审核
|
||||
@@ -70,6 +70,8 @@ const homePageStatistics = (param) => getAction('/statistics/principalPeople/fir
|
||||
const homePageDataStatistics = (param) => getAction('/home/dataStatistics', param)
|
||||
// 系统催款
|
||||
const sysReminders = (param) => postAction('/reminders/edit', param)
|
||||
// 检测企业审核是否通过
|
||||
const checkCompanyAduit = (param) => getAction('/payMailContract/payMailContract/check', param)
|
||||
|
||||
export {
|
||||
getWorkingGroupById,
|
||||
@@ -106,5 +108,6 @@ export {
|
||||
checkoutWorkingGroupPrincipal,
|
||||
homePageStatistics,
|
||||
homePageDataStatistics,
|
||||
sysReminders
|
||||
sysReminders,
|
||||
checkCompanyAduit
|
||||
}
|
||||
|
||||
@@ -125,8 +125,8 @@
|
||||
:dataSource="logisticsInfoList"
|
||||
class="j-table-force-nowrap"
|
||||
>
|
||||
<span slot="action" class="action-span-cell">
|
||||
<a @click="lookLogistics()">查看物流</a>
|
||||
<span slot="action" class="action-span-cell" slot-scope="record">
|
||||
<a @click="lookLogistics()" v-if="record.postStatus === 1">查看物流</a>
|
||||
</span>
|
||||
<!-- <p slot="expandedRowRender" slot-scope="record" style="margin: 0">-->
|
||||
<!-- {{ record.sendDate }}-->
|
||||
|
||||
@@ -12,6 +12,11 @@ NProgress.configure({ showSpinner: false }) // NProgress Configuration
|
||||
const whiteList = ['/user/login', '/user/register', '/user/register-result', '/user/alteration','/signUpEntrance','/signUpPage'] // no redirect whitelist
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
if (to.query.token) {
|
||||
Vue.ls.set(ACCESS_TOKEN, to.query.token, 7 * 24 * 60 * 60 * 1000)
|
||||
store.commit('SET_TOKEN', to.query.token)
|
||||
}
|
||||
|
||||
NProgress.start() // start progress bar
|
||||
|
||||
if (Vue.ls.get(ACCESS_TOKEN)) {
|
||||
|
||||
@@ -5,10 +5,9 @@ const hasPermission = {
|
||||
Vue.directive('has', {
|
||||
inserted: (el, binding, vnode)=>{
|
||||
// console.log('binding=====',binding.value)
|
||||
// console.log('binding=====args',binding)
|
||||
if(binding.arg){
|
||||
binding.value = binding.arg
|
||||
console.log( binding.value ,' binding.value =================')
|
||||
// console.log( binding.value ,' binding.value =================')
|
||||
}
|
||||
// console.log("页面权限控制----");
|
||||
//console.time()
|
||||
|
||||
+31
-34
@@ -28,17 +28,18 @@
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="签订单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<company-select placeholder="请选择签订单位"
|
||||
v-decorator="['signedCompany',validatorRules.signedCompany]"
|
||||
@change="handleSignedCompanyChange"></company-select>
|
||||
<a-input placeholder="请输入签订单位"
|
||||
v-decorator="['signedCompanyTemporaryName',validatorRules.signedCompanyTemporaryName]"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12" style="margin-bottom: 0">
|
||||
<a-form-item label="签订联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts placeholder="请选择签订联系人"
|
||||
:selected-company="selectedCompany"
|
||||
:init-contacts="selectedContact"
|
||||
v-decorator="['signedContactsId',validatorRules.signedContactsId]"></select-contacts>
|
||||
<a-input placeholder="请输入签订联系人"
|
||||
v-decorator="['signedContactsTemporaryName',validatorRules.signedContactsTemporaryName]"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
@@ -124,11 +125,10 @@
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同约定主要时点" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date placeholder="请选择合同约定主要时点"
|
||||
style="width: 100%;"
|
||||
v-decorator="['contractTimePoints']"
|
||||
:trigger-change="true"
|
||||
date-format="YYYY-MM-DD"/>
|
||||
<a-input placeholder="请输入合同约定主要时点"
|
||||
v-decorator="['contractTimePoints',validatorRules.contractTimePoints]"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -287,12 +287,12 @@ export default {
|
||||
rules: [{ required: true, message: '请输入合同名称' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
signedCompany: {
|
||||
rules: [{ required: true, message: '请选择签订单位' }],
|
||||
validateTrigger: 'change'
|
||||
signedCompanyTemporaryName: {
|
||||
rules: [{ required: true, message: '请输入签订单位' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
signedContactsId: {
|
||||
rules: [{ required: true, message: '请选择签订联系人' }],
|
||||
signedContactsTemporaryName: {
|
||||
rules: [{ required: true, message: '请输入签订联系人' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
principalId: {
|
||||
@@ -364,17 +364,17 @@ export default {
|
||||
let record
|
||||
record = res.result
|
||||
// 回显企业
|
||||
record.signedCompany = {
|
||||
id: record.signedCompanyTemporaryId,
|
||||
companyName: record.signedCompanyTemporaryName
|
||||
}
|
||||
// record.signedCompany = {
|
||||
// id: record.signedCompanyTemporaryId,
|
||||
// companyName: record.signedCompanyTemporaryName
|
||||
// }
|
||||
// 回显联系人
|
||||
this.selectedCompany = record.signedCompany
|
||||
record.signedContactsId = record.signedContactsTemporaryId
|
||||
this.selectedContact = {
|
||||
id: record.signedContactsTemporaryId,
|
||||
name: record.signedContactsTemporaryName
|
||||
}
|
||||
// this.selectedCompany = record.signedCompany
|
||||
// record.signedContactsId = record.signedContactsTemporaryId
|
||||
// this.selectedContact = {
|
||||
// id: record.signedContactsTemporaryId,
|
||||
// name: record.signedContactsTemporaryName
|
||||
// }
|
||||
this.model = Object.assign({}, record)
|
||||
// 回显负责人部门
|
||||
this.principalChange(this.model.principalId)
|
||||
@@ -383,7 +383,7 @@ export default {
|
||||
// 回显打包年份
|
||||
this.isPackage = this.model.pack === 1
|
||||
this.$nextTick(() => {
|
||||
this.form.setFieldsValue(pick(this.model, 'contractNum', 'contractName', 'signedCompany', 'signedContactsId', 'opening', 'principalId', 'departmentName', 'contractAmount', 'rate', 'noTaxAmount', 'contractDate', 'terminationDate', 'contractTimePoints', 'accountsReceivableAmount', 'amountReceived', 'outstandingAmount', 'accountStatus', 'contractPaymentTimes', 'pack', 'packYear'))
|
||||
this.form.setFieldsValue(pick(this.model, 'contractNum', 'contractName', 'signedCompanyTemporaryName', 'signedContactsTemporaryName', 'opening', 'principalId', 'departmentName', 'contractAmount', 'rate', 'noTaxAmount', 'contractDate', 'terminationDate', 'contractTimePoints', 'accountsReceivableAmount', 'amountReceived', 'outstandingAmount', 'accountStatus', 'contractPaymentTimes', 'pack', 'packYear'))
|
||||
this.confirmLoading = false
|
||||
})
|
||||
} else {
|
||||
@@ -402,8 +402,6 @@ export default {
|
||||
this.confirmLoading = true
|
||||
if (this.installmentList && this.installmentList.length > 0) {
|
||||
let formData = {}
|
||||
values.signedCompanyId = values.signedCompany.id
|
||||
delete values.signedCompany
|
||||
formData.installment = this.installmentList
|
||||
formData.contract = Object.assign(this.model, values)
|
||||
console.log('表单提交数据', formData)
|
||||
@@ -416,7 +414,6 @@ export default {
|
||||
postAction(url, formData).then(res => {
|
||||
if (res.success) {
|
||||
this.contractId = res.result.id
|
||||
this.edit(this.contractId)
|
||||
this.$message.success(res.message)
|
||||
// 跳转至支出合同list页面
|
||||
this.$router.push({
|
||||
@@ -603,11 +600,11 @@ export default {
|
||||
if (this.accountsReceivableNum !== null && this.amountReceivedNum !== null) {
|
||||
this.model.outstandingAmount = Number(this.accountsReceivableNum) - Number(this.amountReceivedNum)
|
||||
this.model.outstandingAmount = this.model.outstandingAmount.toFixed(2)
|
||||
if (this.model.outstandingAmount === 0) {
|
||||
if (Number(this.model.outstandingAmount) === 0) {
|
||||
this.model.accountStatus = '3'
|
||||
} else if (this.model.outstandingAmount > 0 && this.model.outstandingAmount < Number(this.accountsReceivableNum)) {
|
||||
} else if (Number(this.model.outstandingAmount) > 0 && Number(this.model.outstandingAmount) < Number(this.accountsReceivableNum)) {
|
||||
this.model.accountStatus = '2'
|
||||
} else if (this.model.outstandingAmount === Number(this.accountsReceivableNum)) {
|
||||
} else if (Number(this.model.outstandingAmount) === Number(this.accountsReceivableNum)) {
|
||||
this.model.accountStatus = '1'
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
</a-col>
|
||||
<a-col :xl="7" :lg="8" :md="9" :sm="24">
|
||||
<a-form-item label="来款状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-model="queryParam.chargeStatus" :options="incomePaymentsStatus" />
|
||||
<a-radio-group v-model="queryParam.chargeStatus" :options="incomePaymentsStatus"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="4" :lg="7" :md="8" :sm="24">
|
||||
@@ -65,7 +65,8 @@
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'revenueContract:add'">新增</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('收入合同')" v-has="'revenueContract:export'">导出</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('收入合同')" v-has="'revenueContract:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'revenueContract:batchDel'">批量删除</a-button>
|
||||
</div>
|
||||
<!-- 操作按钮区域-end-->
|
||||
@@ -108,12 +109,12 @@
|
||||
|
||||
<span slot="action" class="action-span-cell" slot-scope="text, record">
|
||||
<a @click="handleAudit(record.id)" v-if="record.status === 2" v-has="'revenueContract:aduit'">审核</a>
|
||||
<!-- v-has="'revenueContract:edit'"-->
|
||||
<a @click="handleEdit(record.id, record.contractNum)"
|
||||
v-if="record.status === 1 || record.status === 4">编辑</a>
|
||||
v-if="record.status === 1 || record.status === 4" v-has="'revenueContract:edit'">编辑</a>
|
||||
<a @click="handleArchive(record.id)" v-if="record.status === 3" v-has="'revenueContract:archive'">存档</a>
|
||||
<a @click="handleDelete(record.id)"
|
||||
v-if="record.status === 1 || record.status === 2 || record.status === 4" v-has="'revenueContract:delete'">删除</a>
|
||||
v-if="record.status === 1 || record.status === 2 || record.status === 4"
|
||||
v-has="'revenueContract:delete'">删除</a>
|
||||
<a :disabled="true" v-if="record.status === 5">已存档</a>
|
||||
</span>
|
||||
</a-table>
|
||||
|
||||
+31
-25
@@ -5,32 +5,37 @@
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<a-form :form="form">
|
||||
<a-form-item label="审核人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入审核人"
|
||||
v-decorator="['userName',validatorRules.userName]"
|
||||
:maxLength='50'
|
||||
:disabled="true"
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="审核" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['contractStatus', validatorRules.contractStatus]" @change="contractAuditStatuChange">
|
||||
<a-radio :value="3">通过</a-radio>
|
||||
<a-radio :value="4">拒绝</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-form-item label="拒绝说明" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="showExplainRemarks">
|
||||
<a-textarea
|
||||
placeholder="请输入拒绝说明"
|
||||
v-decorator="['explainRemarks', validatorRules.explainRemarks]"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
<a-form-item label="审核人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入审核人"
|
||||
v-decorator="['userName',validatorRules.userName]"
|
||||
:maxLength='50'
|
||||
:disabled="true"
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="审核" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['contractStatus', validatorRules.contractStatus]"
|
||||
@change="contractAuditStatuChange">
|
||||
<a-radio :value="3">通过</a-radio>
|
||||
<a-radio :value="4">拒绝</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-form-item label="拒绝说明" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="showExplainRemarks">
|
||||
<a-textarea
|
||||
placeholder="请输入拒绝说明"
|
||||
v-decorator="['explainRemarks', validatorRules.explainRemarks]"
|
||||
:auto-size="{ minRows: 3, maxRows: 6 }"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
<template slot="footer">
|
||||
<a-button @click="handleCancel">关闭</a-button>
|
||||
<a-button @click="handleOk" type="primary" v-preventclick :loading="confirmLoading">确定</a-button>
|
||||
</template>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
@@ -81,6 +86,7 @@ export default {
|
||||
// 触发表单验证
|
||||
this.form.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.confirmLoading = true
|
||||
values.contractId = this.contractId
|
||||
const formData = Object.assign(this.model, values)
|
||||
console.log('表单提交数据', formData)
|
||||
|
||||
@@ -1,191 +1,235 @@
|
||||
<template>
|
||||
<div>
|
||||
<page-header-title :is-level-one="false" :img-for-icon="IconImg" level-two-title="收入合同详情"></page-header-title>
|
||||
<a-card :bordered="false">
|
||||
<!-- 主体信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">主体信息</div>
|
||||
<a-spin :spinning="loading">
|
||||
<a-card :bordered="false">
|
||||
<!-- 主体信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">主体信息</div>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="mainInfoShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in mainInfoShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="mainInfoShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in mainInfoShowList" :key="index">
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 日期节点-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">日期节点</div>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="dateNodeShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in dateNodeShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 账款信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">账款信息</div>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="accountInfoShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in accountInfoShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 其他信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">其他信息</div>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="otherInfoShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in otherInfoShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 分期信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">分期信息</div>
|
||||
</div>
|
||||
<a-row class="detail" v-for="(item, index) in detailData.listInstallment" :key="item.id">
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.phaseName }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 日期节点-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">日期节点</div>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="dateNodeShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in dateNodeShowList" :key="index">
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段应收:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.accountsReceivableAmount }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 账款信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">账款信息</div>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段应收时间:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.accountsReceivableTime }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段实收:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.paidAmount }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段实收时间:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.paidTime }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="accountInfoShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in accountInfoShowList"
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 关联项目-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">关联项目</div>
|
||||
</div>
|
||||
<associated-project ref="associatedProject" :contract-id="$route.query.revenueId"
|
||||
:can-operate="false"></associated-project>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 存档信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">存档信息</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<template v-if="detailData.listArchive && detailData.listArchive.length > 0">
|
||||
<div class="detail-item" v-for="(item, index) in detailData.listArchive"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 其他信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">其他信息</div>
|
||||
<a-row>
|
||||
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.contractStatus_dictText }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
</div>
|
||||
<a-row class="detail">
|
||||
<template v-if="otherInfoShowList.length > 0">
|
||||
<a-col :xxl="6" :xl="8" :sm="12" class="detail-item" v-for="(item, index) in otherInfoShowList"
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 审核记录-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">审核记录</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<template v-if="detailData.listAudit && detailData.listAudit.length > 0">
|
||||
<div class="detail-item" v-for="(item, index) in detailData.listAudit"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 分期信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">分期信息</div>
|
||||
<a-row>
|
||||
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.contractStatus_dictText }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.explainRemarks }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
</div>
|
||||
<a-row class="detail" v-for="(item, index) in detailData.listInstallment" :key="item.id">
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.phaseName }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段应收:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.accountsReceivableAmount }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段应收时间:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.accountsReceivableTime }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段实收:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.paidAmount }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段实收时间:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.paidTime }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 关联项目-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">关联项目</div>
|
||||
</div>
|
||||
<associated-project ref="associatedProject" :contract-id="$route.query.revenueId" :can-operate="false"></associated-project>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 存档信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">存档信息</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<template v-if="detailData.listArchive && detailData.listArchive.length > 0">
|
||||
<div class="detail-item" v-for="(item, index) in detailData.listArchive"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.contractStatus_dictText }}</a-col>
|
||||
</a-row>
|
||||
<!-- 状态非已存档显示-->
|
||||
<template v-if="detailData.status < 5">
|
||||
<a-divider></a-divider>
|
||||
<!-- 编辑、审核、存档-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">操作</div>
|
||||
</div>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 审核记录-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">审核记录</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<template v-if="detailData.listAudit && detailData.listAudit.length > 0">
|
||||
<div class="detail-item" v-for="(item, index) in detailData.listAudit"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.contractStatus_dictText }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.explainRemarks }}</a-col>
|
||||
</a-row>
|
||||
<div class="operator-btn">
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="handleEdit(detailData.id, detailData.contractNum)"
|
||||
v-if="detailData.status === 1 || detailData.status === 4"
|
||||
v-has="'revenueContract:edit'">
|
||||
编辑
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="handleAudit(detailData.id)"
|
||||
v-if="detailData.status === 2"
|
||||
v-has="'revenueContract:aduit'">
|
||||
审核
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="handleArchive(detailData.id)"
|
||||
v-if="detailData.status === 3"
|
||||
v-has="'revenueContract:archive'">
|
||||
存档
|
||||
</a-button>
|
||||
</div>
|
||||
</template>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
</div>
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</a-card>
|
||||
</a-spin>
|
||||
|
||||
<revenue-contract-aduit-module ref="aduitForm" @ok="operatorOk"></revenue-contract-aduit-module>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import IconImg from '@/assets/imgs/icon/icon_revenue_contract.png'
|
||||
import PageHeaderTitle from '@/components/layouts/PageHeaderTitle'
|
||||
import { getRevenueContractById } from '../../../../api/incomePaymentsApi'
|
||||
import { archiveRevenueContract, getRevenueContractById } from '../../../../api/incomePaymentsApi'
|
||||
import AssociatedProject from './AssociatedProject'
|
||||
import RevenueContractAduitModule from './RevenueContractAduitModule'
|
||||
|
||||
export default {
|
||||
name: 'RevenueContractDetail',
|
||||
components: { PageHeaderTitle, AssociatedProject },
|
||||
components: { PageHeaderTitle, AssociatedProject, RevenueContractAduitModule },
|
||||
data() {
|
||||
return {
|
||||
IconImg,
|
||||
loading: false,
|
||||
detailData: {},
|
||||
// 主体信息
|
||||
mainInfoList: [
|
||||
@@ -290,13 +334,71 @@ export default {
|
||||
this.$refs.associatedProject.loadAssociatedProject()
|
||||
},
|
||||
methods: {
|
||||
initDetailData(id) {
|
||||
initDetailData() {
|
||||
this.loading = true
|
||||
let param = {
|
||||
id: id
|
||||
id: this.$route.query.revenueId
|
||||
}
|
||||
getRevenueContractById(param).then(res => {
|
||||
this.detailData = res.result
|
||||
this.detailData.pack = this.detailData.pack === 1 ? '是' : this.detailData.pack === 0 ? '否' : ''
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
operatorOk() {
|
||||
this.initDetailData()
|
||||
},
|
||||
/**
|
||||
* 编辑
|
||||
* @param id
|
||||
* @param contractNum
|
||||
*/
|
||||
handleEdit(id, contractNum) {
|
||||
this.$router.push({
|
||||
path: '/contractManagement/AddRevenueContract',
|
||||
query: {
|
||||
revenueId: id,
|
||||
contractNum: contractNum
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 审核
|
||||
* @param id
|
||||
*/
|
||||
handleAudit(id) {
|
||||
this.$refs.aduitForm.contractId = id
|
||||
this.$refs.aduitForm.open()
|
||||
},
|
||||
/**
|
||||
* 存档
|
||||
* @param id
|
||||
*/
|
||||
handleArchive(id) {
|
||||
console.log(id)
|
||||
let that = this
|
||||
this.$confirm({
|
||||
title: '存档',
|
||||
content: '确认存档?',
|
||||
onOk: function () {
|
||||
that.loading = true
|
||||
that.loading = false
|
||||
let param = {
|
||||
contractId: id,
|
||||
contractStatus: 5
|
||||
}
|
||||
archiveRevenueContract(param).then((res) => {
|
||||
if (res.success) {
|
||||
that.$message.success(res.message)
|
||||
that.initDetailData()
|
||||
} else {
|
||||
that.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
that.loading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -323,4 +425,12 @@ export default {
|
||||
.ant-divider-horizontal {
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.operator-btn {
|
||||
margin-top: 10px;
|
||||
|
||||
button {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -128,11 +128,10 @@
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同约定主要时点" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date placeholder="请选择合同约定主要时点"
|
||||
style="width: 100%;"
|
||||
v-decorator="['contractTimePoints']"
|
||||
:trigger-change="true"
|
||||
date-format="YYYY-MM-DD"/>
|
||||
<a-input placeholder="请输入合同约定主要时点"
|
||||
v-decorator="['contractTimePoints']"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -666,13 +665,13 @@ export default {
|
||||
this.model.outstandingAmount = Number(this.accountsReceivableNum) - Number(this.amountReceivedNum)
|
||||
this.model.outstandingAmount = this.model.outstandingAmount.toFixed(2)
|
||||
// 未收金额 === 0,已付全款状态
|
||||
if (this.model.outstandingAmount <= 0) {
|
||||
if (Number(this.model.outstandingAmount) === 0) {
|
||||
this.model.accountStatus = '3'
|
||||
// 未收金额 > 0 且 未收金额 < 应收金额,部分付款状态
|
||||
} else if (this.model.outstandingAmount > 0 && this.model.outstandingAmount < Number(this.accountsReceivableNum)) {
|
||||
} else if (Number(this.model.outstandingAmount) > 0 && Number(this.model.outstandingAmount) < Number(this.accountsReceivableNum)) {
|
||||
this.model.accountStatus = '2'
|
||||
// 未收金额 === 应收金额,未付款状态
|
||||
} else if (this.model.outstandingAmount === Number(this.accountsReceivableNum)) {
|
||||
} else if (Number(this.model.outstandingAmount) === Number(this.accountsReceivableNum)) {
|
||||
this.model.accountStatus = '1'
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
|
||||
@@ -255,6 +255,8 @@ export default {
|
||||
this.contranctInfo =Object.assign({},record)
|
||||
console.log(record,'meetingPerson')
|
||||
this.filters.companyId = record.signedCompanyId
|
||||
// 列表查询加入打包年份
|
||||
this.filters.packYear = record.packYear
|
||||
//记录合同id
|
||||
this.contractId = this.contranctInfo.id
|
||||
// 记录打包状态
|
||||
|
||||
@@ -492,6 +492,8 @@ export default {
|
||||
this.title = '编辑会议'
|
||||
// 修改会议类型 控制dom显示 编辑取接口查到的会议类型
|
||||
this.meetingType = record.meetingType + ''
|
||||
// 编辑根据接口返回的会议类型获取不同的会议url
|
||||
this.url = this.createUrlByMeetingType(this.meetingType)
|
||||
} else {
|
||||
this.title = '新增会议'
|
||||
// 如果是标协会会议需要显示酒店联系人
|
||||
@@ -503,6 +505,8 @@ export default {
|
||||
}
|
||||
// 新增取路由参数
|
||||
this.meetingType = this.$route.query.meetingType
|
||||
// 新增根据路由参数 会议类型更换不同的接口
|
||||
this.url = this.createUrlByMeetingType(this.meetingType)
|
||||
}
|
||||
console.log(this.model)
|
||||
// 召开时间回显
|
||||
@@ -696,6 +700,38 @@ export default {
|
||||
this.newSignInTime = dateString
|
||||
},
|
||||
/*
|
||||
* 根据会议类型返回不同的会议新增与编辑接口
|
||||
* */
|
||||
createUrlByMeetingType(meetingType){
|
||||
switch (String(meetingType)){
|
||||
// 工作组会议
|
||||
case '1':return {
|
||||
add:'/meeting/workGroupMeeting/add',
|
||||
edit:'/meeting/workGroupMeeting/edit'
|
||||
}
|
||||
// 标协会议
|
||||
case '2':return {
|
||||
add:'/meeting/standardsMeeting/add',
|
||||
edit:'/meeting/standardsMeeting/edit'
|
||||
}
|
||||
// 国际研讨会
|
||||
case '3':return {
|
||||
add:'/meeting/internalMeeting/add',
|
||||
edit:'/meeting/internalMeeting/edit'
|
||||
}
|
||||
// 其他会议
|
||||
case '4':return {
|
||||
add:'/meeting/otherMeeting/add',
|
||||
edit:'/meeting/otherMeeting/edit'
|
||||
}
|
||||
// 分标委会议
|
||||
case '5':return {
|
||||
add:'/meeting/committeeMeeting/add',
|
||||
edit:'/meeting/committeeMeeting/edit'
|
||||
}
|
||||
}
|
||||
},
|
||||
/*
|
||||
* 校验邀请码
|
||||
* */
|
||||
validateCode(rule, value, callback) {
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchQuery" icon="search" v-has="'attendance:search'">查询</a-button>
|
||||
<a-button type="primary" @click="searchQuery" icon="search" v-has:[authorCode.search]="'attendance:search'">查询</a-button>
|
||||
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
@@ -173,16 +173,16 @@
|
||||
<div class="table-operator">
|
||||
<!-- 变更去掉了此功能 暂时注释 2021-09-16 -->
|
||||
<!-- <a-button type="primary" icon="import" @click="importParticipant">导入参会人</a-button>-->
|
||||
<a-button type="primary" icon="plus" @click="addParticipant" v-has:[addPerson]="'attendance:add'">添加参会人</a-button>
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('会员项目')" v-has:[addPerson]="'attendance:export'">导出
|
||||
<a-button type="primary" icon="plus" @click="addParticipant" v-has:[authorCode.add]="'attendance:add'">添加参会人</a-button>
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('会员项目')" v-has:[authorCode.export]="'attendance:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'attendance:batchDel'">批量删除</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has:[authorCode.batchDel]="'attendance:batchDel'">批量删除</a-button>
|
||||
<!--当会议费用为0不需要合并开票 -->
|
||||
<!-- 变更将此功能添加到到账开票了 暂时注释 2021-09-16 -->
|
||||
<!-- <a-button type="primary" @click="batchInvoice" v-show="currentMeetingInfo.meetingCosts !== 0">合并开票</a-button>-->
|
||||
<!--只有国际研讨会才会有设置对接人-->
|
||||
<a-button type="primary" @click="batchSetDocker" v-if="currentMeetingInfo.meetingType === '3' "
|
||||
v-has="'attendance:batchSetDocker'">设置对接人
|
||||
v-has="'internalMeetingSituation:batchSetDocker'">设置对接人
|
||||
</a-button>
|
||||
</div>
|
||||
|
||||
@@ -242,14 +242,14 @@
|
||||
<span slot="action" slot-scope="text, record" class="action-span-cell">
|
||||
<!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮-->
|
||||
<a @click="handleAudit(record)" v-if="record.payMode === 1 && record.paymentRecord"
|
||||
v-has="'attendance:auditCredentials'">审核凭证</a>
|
||||
v-has:[authorCode.auditRecord]="'attendance:auditCredentials'">审核凭证</a>
|
||||
<!-- 只有工作组会议与分标委会议才有审核报名信息-->
|
||||
<a @click="handleAuditSignUp(record)"
|
||||
v-show="(currentMeetingInfo.meetingType === '1' || currentMeetingInfo.meetingType === '5') && record.registerCheckResult !== 1 "
|
||||
v-has="'attendance:auditSignUp'">审核报名信息</a>
|
||||
<a @click="handleEdit(record)" v-has="'attendance:edit'">编辑</a>
|
||||
v-has:[authorCode.auditSignUpInfo]="'attendance:auditSignUp'">审核报名信息</a>
|
||||
<a @click="handleEdit(record)" v-has:[authorCode.edit]="'attendance:edit'">编辑</a>
|
||||
<!--删除参会人需要判断改参会人是否与合同关联-->
|
||||
<a @click="handleDelete(record.id)" v-has="'attendance:delete'">删除</a>
|
||||
<a @click="handleDelete(record.id)" v-has:[authorCode.delete]="'attendance:delete'">删除</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
@@ -400,14 +400,112 @@ export default {
|
||||
scopedSlots: {customRender: 'action'}
|
||||
}
|
||||
],
|
||||
// 权限编码
|
||||
authorCode:{
|
||||
|
||||
},
|
||||
// 其他会议的参会情况的权限编码
|
||||
otherMeetingCode:{
|
||||
search:'otherMeetingSituation:search',
|
||||
add:'otherMeetingSituation:add',
|
||||
export:'otherMeetingSituation:export',
|
||||
batchDel:'otherMeetingSituation:batchDel',
|
||||
edit:'otherMeetingSituation:edit',
|
||||
delete:'otherMeetingSituation:delete',
|
||||
auditRecord:'otherMeetingSituation:auditCredentials',
|
||||
auditSignUpInfo:'otherMeetingSituation:auditSignUp'
|
||||
},
|
||||
// 分标委会议的参会情况权限编码
|
||||
committeeMeetingCode:{
|
||||
search:'committeeMeetingSituation:search',
|
||||
add:'committeeMeetingSituation:add',
|
||||
export:'committeeMeetingSituation:export',
|
||||
batchDel:'committeeMeetingSituation:batchDel',
|
||||
edit:'committeeMeetingSituation:edit',
|
||||
delete:'committeeMeetingSituation:delete',
|
||||
auditRecord:'committeeMeetingSituation:auditCredentials',
|
||||
auditSignUpInfo:'committeeMeetingSituation:auditSignUp'
|
||||
},
|
||||
// 工作组会议的参会情况的权限编码
|
||||
workGroupMeetingCode:{
|
||||
search:'workGroupMeetingSituation:search',
|
||||
add:'workGroupMeetingSituation:add',
|
||||
export:'workGroupMeetingSituation:export',
|
||||
batchDel:'workGroupMeetingSituation:batchDel',
|
||||
edit:'workGroupMeetingSituation:edit',
|
||||
delete:'workGroupMeetingSituationS:delete',
|
||||
auditRecord:'workGroupMeetingSituation:auditCredentials',
|
||||
auditSignUpInfo:'workGroupMeetingSituation:auditSignUp'
|
||||
},
|
||||
// 国际研讨会的参会情况的权限编码
|
||||
internalMeetingCode:{
|
||||
search:'internalMeetingSituation:search',
|
||||
add:'internalMeetingSituation:add',
|
||||
export:'internalMeetingSituation:export',
|
||||
batchDel:'internalMeetingSituation:batchDel',
|
||||
edit:'internalMeetingSituation:edit',
|
||||
delete:'internalMeetingSituation:delete',
|
||||
auditRecord:'internalMeetingSituation:auditCredentials',
|
||||
auditSignUpInfo:'internalMeetingSituation:auditSignUp',
|
||||
},
|
||||
// 标协会议的参会情况的权限编码
|
||||
standardsMeetingCode:{
|
||||
search:'standardsMeetingSituation:search',
|
||||
add:'standardsMeetingSituation:add',
|
||||
export:'standardsMeetingSituation:export',
|
||||
batchDel:'standardsMeetingSituation:batchDel',
|
||||
edit:'standardsMeetingSituation:edit',
|
||||
delete:'standardsMeetingSituation:delete',
|
||||
auditRecord:'standardsMeetingSituation:auditCredentials',
|
||||
auditSignUpInfo:'standardsMeetingSituation:auditSignUp'
|
||||
},
|
||||
disableMixinCreated: true,
|
||||
addPerson:'addPerson12',
|
||||
url: {
|
||||
list: '/meeting/payMeetingSituation/page',
|
||||
delete: '/meeting/payMeetingSituation/delete',
|
||||
deleteBatch: '/meeting/payMeetingSituation/deleteBatch',
|
||||
exportXlsUrl: '/meeting/payMeetingSituation/exportXls',
|
||||
importExcelUrl: '/meeting/payMeetingSituation/importExcel'
|
||||
// url: {
|
||||
// list: '/meeting/payMeetingSituation/page',
|
||||
// delete: '/meeting/payMeetingSituation/delete',
|
||||
// deleteBatch: '/meeting/payMeetingSituation/deleteBatch',
|
||||
// exportXlsUrl: '/meeting/payMeetingSituation/exportXls',
|
||||
// importExcelUrl: '/meeting/payMeetingSituation/importExcel'
|
||||
// },
|
||||
// 其他会议的url
|
||||
otherMeetingUrl:{
|
||||
list: '/meeting/ohterMeetingSituation/page',
|
||||
delete: '/meeting/ohterMeetingSituation/delete',
|
||||
deleteBatch: '/meeting/ohterMeetingSituation/deleteBatch',
|
||||
exportXlsUrl: '/meeting/ohterMeetingSituation/exportXls',
|
||||
importExcelUrl: '/meeting/ohterMeetingSituation/importExcel'
|
||||
},
|
||||
// 分标委会议的url
|
||||
committeeMeetingUrl:{
|
||||
list: '/meeting/committeeMeetingSituation/page',
|
||||
delete: '/meeting/committeeMeetingSituation/delete',
|
||||
deleteBatch: '/meeting/committeeMeetingSituation/deleteBatch',
|
||||
exportXlsUrl: '/meeting/committeeMeetingSituation/exportXls',
|
||||
importExcelUrl: '/meeting/committeeMeetingSituation/importExcel'
|
||||
},
|
||||
// 国际研讨会的url
|
||||
internalMeetingUrl:{
|
||||
list: '/meeting/internalMeetingSituation/page',
|
||||
delete: '/meeting/internalMeetingSituation/delete',
|
||||
deleteBatch: '/meeting/internalMeetingSituation/deleteBatch',
|
||||
exportXlsUrl: '/meeting/internalMeetingSituation/exportXls',
|
||||
importExcelUrl: '/meeting/internalMeetingSituation/importExcel'
|
||||
},
|
||||
// 标协会议的url
|
||||
standardsMeetingUrl:{
|
||||
list: '/meeting/standardsMeetingSituation/page',
|
||||
delete: '/meeting/standardsMeetingSituation/delete',
|
||||
deleteBatch: '/meeting/standardsMeetingSituation/deleteBatch',
|
||||
exportXlsUrl: '/meeting/standardsMeetingSituation/exportXls',
|
||||
importExcelUrl: '/meeting/standardsMeetingSituation/importExcel'
|
||||
},
|
||||
// 工作组会议的url
|
||||
workGroupMeetingUrl:{
|
||||
list: '/meeting/workGroupMeetingSituation/page',
|
||||
delete: '/meeting/workGroupMeetingSituation/delete',
|
||||
deleteBatch: '/meeting/workGroupMeetingSituation/deleteBatch',
|
||||
exportXlsUrl: '/meeting/workGroupMeetingSituation/exportXls',
|
||||
importExcelUrl: '/meeting/workGroupMeetingSituation/importExcel'
|
||||
},
|
||||
// 当前的会议信息详情
|
||||
currentMeetingInfo: {},
|
||||
@@ -423,6 +521,8 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 为不同会议的参会情况去设置不同的权限编码
|
||||
this.setCodeByMeetingType(this.$route.query.meetingType)
|
||||
// 获取会议详情
|
||||
const param = {
|
||||
id: this.$route.query.id
|
||||
@@ -488,6 +588,16 @@ export default {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
// eslint-disable-next-line
|
||||
url(){
|
||||
switch (this.$route.query.meetingType){
|
||||
case '1': return this.workGroupMeetingUrl
|
||||
case '2': return this.standardsMeetingUrl
|
||||
case '3': return this.internalMeetingUrl
|
||||
case '4': return this.otherMeetingUrl
|
||||
case '5': return this.committeeMeetingUrl
|
||||
}
|
||||
},
|
||||
// 报名链接
|
||||
signUpHerfUrl() {
|
||||
return `${window._CONFIG['singUpQRCodeURL']}?id=${this.$route.query.id}`
|
||||
@@ -616,6 +726,8 @@ export default {
|
||||
return '国际研讨会'
|
||||
case '4':
|
||||
return '其他会议'
|
||||
case '5':
|
||||
return '分标委会议'
|
||||
default:
|
||||
return '其他会议'
|
||||
}
|
||||
@@ -669,6 +781,19 @@ export default {
|
||||
newInput.remove()
|
||||
this.$message.success('复制成功')
|
||||
},
|
||||
/*
|
||||
* 通过会议类型设置权限编码
|
||||
* type 会议类型
|
||||
* */
|
||||
setCodeByMeetingType(type){
|
||||
switch (type){
|
||||
case '1':this.authorCode = Object.assign({},this.workGroupMeetingCode);break
|
||||
case '2':this.authorCode = Object.assign({},this.standardsMeetingCode);break
|
||||
case '3':this.authorCode = Object.assign({},this.internalMeetingCode);break
|
||||
case '4':this.authorCode = Object.assign({},this.otherMeetingCode);break
|
||||
case '5':this.authorCode = Object.assign({},this.committeeMeetingCode);break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -156,6 +156,41 @@ export default {
|
||||
// 审核报名信息
|
||||
checkSignUp:'/meeting/payMeetingSituation/checkRegister'
|
||||
},
|
||||
// 其他会议url
|
||||
otherMeetingUrl: {
|
||||
// 审核凭证
|
||||
check: '/meeting/ohterMeetingSituation/check',
|
||||
// 审核报名信息
|
||||
checkSignUp:'/meeting/ohterMeetingSituation/checkRegister'
|
||||
},
|
||||
// 工作组会议url
|
||||
workGroupMeetingUrl: {
|
||||
// 审核凭证
|
||||
check: '/meeting/workGroupMeetingSituation/check',
|
||||
// 审核报名信息
|
||||
checkSignUp:'/meeting/workGroupMeetingSituation/checkRegister'
|
||||
},
|
||||
// 分标委会议url
|
||||
committeeMeetingUrl: {
|
||||
// 审核凭证
|
||||
check: '/meeting/committeeMeetingSituation/check',
|
||||
// 审核报名信息
|
||||
checkSignUp:'/meeting/committeeMeetingSituation/checkRegister'
|
||||
},
|
||||
// 国际研讨会url
|
||||
internalMeetingUrl: {
|
||||
// 审核凭证
|
||||
check: '/meeting/internalMeetingSituation/check',
|
||||
// 审核报名信息
|
||||
checkSignUp:'/meeting/internalMeetingSituation/checkRegister'
|
||||
},
|
||||
// 标协会议url
|
||||
standardsMeetingUrl: {
|
||||
// 审核凭证
|
||||
check: '/meeting/standardsMeetingSituation/check',
|
||||
// 审核报名信息
|
||||
checkSignUp:'/meeting/standardsMeetingSituation/checkRegister'
|
||||
},
|
||||
// 审核结果选择
|
||||
checkBool:false,
|
||||
// 是否是审核报名信息
|
||||
@@ -172,6 +207,8 @@ export default {
|
||||
this.querySingUpUserInfo()
|
||||
// 控制行程信息显示 审核凭证不显示
|
||||
this.checkSignBool = signUp || false
|
||||
// 会议类型不同 url不同
|
||||
this.url = Object.assign({},this.createUrlByMeetingType(this.$route.query.meetingType))
|
||||
console.log(record)
|
||||
},
|
||||
close() {
|
||||
@@ -231,6 +268,18 @@ export default {
|
||||
}else if(e.target.value === '0'){
|
||||
this.checkBool = true
|
||||
}
|
||||
},
|
||||
/*
|
||||
* 根据会议类型不同的url
|
||||
* */
|
||||
createUrlByMeetingType(meetingType){
|
||||
switch (meetingType){
|
||||
case '1': return this.workGroupMeetingUrl
|
||||
case '2': return this.standardsMeetingUrl
|
||||
case '3': return this.internalMeetingUrl
|
||||
case '4': return this.otherMeetingUrl
|
||||
case '5': return this.committeeMeetingUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
<script>
|
||||
import JUpload from '@comp/jero/JUpload'
|
||||
import {uploadMeetingFiles} from '@api/incomeMeetingApi'
|
||||
import {httpAction} from '@api/manage'
|
||||
|
||||
export default {
|
||||
name: 'UploadMeetFileModal',
|
||||
@@ -59,6 +59,7 @@ export default {
|
||||
meetingFileIds:'',
|
||||
validatorRules: {
|
||||
},
|
||||
url:{}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -68,6 +69,8 @@ export default {
|
||||
edit(record) {
|
||||
this.form.resetFields()
|
||||
this.model = Object.assign({},record)
|
||||
// 根据会议类型返回不同的url
|
||||
this.url = Object.assign({},this.createUrlByMeetingType(record.meetingType +''))
|
||||
this.meetingId = record.id
|
||||
this.visible = true
|
||||
// 拿到已经上传的会议文件进行回显
|
||||
@@ -82,6 +85,35 @@ export default {
|
||||
this.$emit('close')
|
||||
this.visible = false
|
||||
},
|
||||
createUrlByMeetingType(meetingType) {
|
||||
switch (String(meetingType)) {
|
||||
// 工作组会议
|
||||
case '1':
|
||||
return {
|
||||
uploadFile: '/meeting/workGroupMeeting/uploadFile',
|
||||
}
|
||||
// 标协会议
|
||||
case '2':
|
||||
return {
|
||||
uploadFile: '/meeting/standardsMeeting/uploadFile',
|
||||
}
|
||||
// 国际研讨会
|
||||
case '3':
|
||||
return {
|
||||
uploadFile: '/meeting/internalMeeting/uploadFile',
|
||||
}
|
||||
// 其他会议
|
||||
case '4':
|
||||
return {
|
||||
uploadFile: '/meeting/otherMeeting/uploadFile',
|
||||
}
|
||||
// 分标委会议
|
||||
case '5':
|
||||
return {
|
||||
uploadFile: '/meeting/committeeMeeting/uploadFile',
|
||||
}
|
||||
}
|
||||
},
|
||||
handleOk() {
|
||||
const that = this
|
||||
// 触发表单验证
|
||||
@@ -91,7 +123,7 @@ export default {
|
||||
fileIds:values.fileIds,
|
||||
id:that.meetingId
|
||||
}
|
||||
uploadMeetingFiles(params).then(res => {
|
||||
httpAction(this.url.uploadFile,params,'post').then(res => {
|
||||
if(res.success){
|
||||
that.$message.success(res.message)
|
||||
that.$emit('ok')
|
||||
|
||||
@@ -92,6 +92,7 @@ import IconImg from '@/assets/imgs/icon/xin.png'
|
||||
import MailContractModal from './modules/MailContractModal'
|
||||
import { downloadFile } from '@/api/manage'
|
||||
import SelectPrincipal from '@/components/company/SelectPrincipal'
|
||||
import { checkCompanyAduit } from '../../api/incomePaymentsApi'
|
||||
|
||||
export default {
|
||||
name: 'ContractMail',
|
||||
@@ -203,10 +204,24 @@ export default {
|
||||
const com = Number(record.sendMethod) === 1 && 'ems' || 'shunfeng'
|
||||
window.open(`https://www.kuaidi100.com/chaxun?com=${ com }&nu=${ record.postNo }`)
|
||||
},
|
||||
handleAdd: function (id) {
|
||||
this.$refs.modalForm.add(id)
|
||||
this.$refs.modalForm.title = '邮寄'
|
||||
this.$refs.modalForm.disableSubmit = false
|
||||
handleAdd (id) {
|
||||
let param = {
|
||||
id: id
|
||||
}
|
||||
checkCompanyAduit(param).then(res => {
|
||||
if (res.success) {
|
||||
// 企业审核未成功不可进行邮寄操作
|
||||
if (res.result.indexOf('审核未成功') === -1) {
|
||||
this.$refs.modalForm.add(id)
|
||||
this.$refs.modalForm.title = '邮寄'
|
||||
this.$refs.modalForm.disableSubmit = false
|
||||
} else {
|
||||
this.$message.warn(res.result)
|
||||
}
|
||||
} else {
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
})
|
||||
},
|
||||
handleEdit: function (record) {
|
||||
this.$refs.modalForm.edit(record)
|
||||
|
||||
@@ -111,6 +111,12 @@ export default {
|
||||
width: 280,
|
||||
dataIndex: 'companyTemporaryName',
|
||||
scopedSlots: { customRender: 'projectName' }
|
||||
}, {
|
||||
title: '打包年份',
|
||||
align: 'center',
|
||||
width: 140,
|
||||
dataIndex: 'packYear',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '企业联系人',
|
||||
align: 'center',
|
||||
@@ -135,12 +141,6 @@ export default {
|
||||
width: 180,
|
||||
dataIndex: 'receiptExpense',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '打包年份',
|
||||
align: 'center',
|
||||
width: 140,
|
||||
dataIndex: 'packYear',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has:[authorCode.add]="'committeeMeeting:add'">新增</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议维护')" v-has:[authorCode.search]="'committeeMeeting:export'">导出</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('会议维护')" v-has:[authorCode.search]="'committeeMeeting:export'">导出</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has:[authorCode.batchDel]="'committeeMeeting:batchDel'">批量删除</a-button>
|
||||
<!--只有工作会议与分标委会议才有-->
|
||||
<a-button type="primary" @click="publishRemind" v-if="meetingType === '5' " v-has="'committeeMeeting:publish'">发布</a-button>
|
||||
@@ -293,6 +293,7 @@ export default {
|
||||
caseCommitteeId(){
|
||||
return this.$route.query.id ? this.$route.query.id : undefined
|
||||
},
|
||||
// eslint-disable-next-line
|
||||
url() {
|
||||
let meetingType = this.$route.query.meetingType + ''
|
||||
// 标协会议
|
||||
@@ -357,11 +358,13 @@ export default {
|
||||
* 参会情况
|
||||
* */
|
||||
toAttendance(record) {
|
||||
const that = this
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName
|
||||
meetingName: record.meetingName,
|
||||
meetingType:that.$route.query.meetingType + ''
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'workGroupMeeting:add'" v-if="canOperate">新增</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议维护')"
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议')"
|
||||
v-has="'workGroupMeeting:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workGroupMeeting:batchDel'" v-if="canOperate">批量删除</a-button>
|
||||
@@ -276,7 +276,8 @@ export default {
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||
query: {
|
||||
workingGroupProjectId: currentId
|
||||
workingGroupProjectId: currentId,
|
||||
meetingType:'1'
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -330,7 +331,8 @@ export default {
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName
|
||||
meetingName: record.meetingName,
|
||||
meetingType:'1'
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -273,7 +273,8 @@ export default {
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName
|
||||
meetingName: record.meetingName,
|
||||
meetingType:'3'
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
<!-- 操作按钮区域 -->
|
||||
<div class="table-operator">
|
||||
<a-button @click="handleAdd" type="primary" icon="plus" v-has="'otherMeeting:add'">新增</a-button>
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('会议管理')" v-has="'otherMeeting:export'">导出</a-button>
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('其他会议')" v-has="'otherMeeting:export'">导出</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'otherMeeting:batchDel'">批量删除</a-button>
|
||||
</div>
|
||||
|
||||
@@ -204,10 +204,10 @@ name: 'OtherMeeting',
|
||||
},
|
||||
url: {
|
||||
list: '/meeting/otherMeeting/page',
|
||||
delete: '/meeting/otherMeeting/page/delete',
|
||||
deleteBatch: '/meeting/otherMeeting/page/deleteBatch',
|
||||
exportXlsUrl: '/meeting/otherMeeting/page/exportXls',
|
||||
importExcelUrl: '/meeting/otherMeeting/page/importExcel',
|
||||
delete: '/meeting/otherMeeting/delete',
|
||||
deleteBatch: '/meeting/otherMeeting/deleteBatch',
|
||||
exportXlsUrl: '/meeting/otherMeeting/exportXls',
|
||||
importExcelUrl: '/meeting/otherMeeting/importExcel',
|
||||
},
|
||||
disableMixinCreated:true
|
||||
}
|
||||
@@ -278,7 +278,8 @@ name: 'OtherMeeting',
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName
|
||||
meetingName: record.meetingName,
|
||||
meetingType:'4'
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -152,9 +152,7 @@
|
||||
<a-row>
|
||||
<a-col :xl="12" :sm="24">
|
||||
<a-form-item label="资料" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-upload file-type="pdf"
|
||||
file-type-error-message="请pdf文件"
|
||||
:return-id="true"
|
||||
<j-upload :return-id="true"
|
||||
bizPath="payment"
|
||||
v-decorator="['files', validatorRules.files]"
|
||||
:trigger-change="true"></j-upload>
|
||||
|
||||
Reference in New Issue
Block a user