[update 功能安全中心] 列表、成员单位部分接口对接
This commit is contained in:
@@ -170,6 +170,10 @@ 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)
|
||||||
|
|
||||||
export {
|
export {
|
||||||
getWorkingGroupById,
|
getWorkingGroupById,
|
||||||
getChargeNotice,
|
getChargeNotice,
|
||||||
@@ -257,5 +261,7 @@ export {
|
|||||||
workingGroupEditAccount,
|
workingGroupEditAccount,
|
||||||
getAllDraftProjects,
|
getAllDraftProjects,
|
||||||
updatePackageEnterprise,
|
updatePackageEnterprise,
|
||||||
judgeCompanyIsPackaged
|
judgeCompanyIsPackaged,
|
||||||
|
|
||||||
|
getSafetyCenterById
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +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 }
|
||||||
|
|
||||||
// 会议类型
|
|
||||||
export const MeetTypeEnums = {
|
|
||||||
safetyCenter: { name: '功能安全中心', value: '8' },
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 参会人员身份类型
|
// 参会人员身份类型
|
||||||
@@ -67,4 +63,24 @@ export const PayMode = {
|
|||||||
remittance: { name: '汇款', value: 1 },
|
remittance: { name: '汇款', value: 1 },
|
||||||
onSitePayment: { name: '现场缴费', value: 2 },
|
onSitePayment: { name: '现场缴费', value: 2 },
|
||||||
pack: { name: '打包', value: 3 },
|
pack: { name: '打包', value: 3 },
|
||||||
|
}
|
||||||
|
|
||||||
|
// 会议类型
|
||||||
|
export const MeetingTypeEnums = {
|
||||||
|
workGroup: { name: '工作组会议', value: '1' },
|
||||||
|
standard: { name: '标协会议', value: '2' },
|
||||||
|
internationalSeminar: { name: '国际研讨会', value: '3' },
|
||||||
|
other: { name: '其他会议', value: '4' },
|
||||||
|
committee: { name: '分标委会议', value: '5' },
|
||||||
|
council: { name: '理事会会议', value: '6' },
|
||||||
|
draftGroup: { name: '起草会会议', value: '7' },
|
||||||
|
overseas: { name: '海外会议', value: '8' },
|
||||||
|
safetyCenter: { name: '功能安全中心会议', value: '9' }
|
||||||
|
}
|
||||||
|
|
||||||
|
// 功能安全中心-项目类型
|
||||||
|
export const SafetyCenterProjectTypeEnums = {
|
||||||
|
safetyCenter: { name: '功能安全中心', value: '1' },
|
||||||
|
studyGroup: { name: '研究组', value: '2' },
|
||||||
|
projectGroup: { name: '项目组', value: '3' }
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<page-header-title :img-for-icon="IconDraftingGruop"></page-header-title>
|
<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">
|
<a-card :bordered="false">
|
||||||
<!-- 查询区域-start -->
|
<!-- 查询区域-start -->
|
||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
@@ -64,12 +65,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<span slot="action" class="action-span-cell" slot-scope="text, record">
|
<span slot="action" class="action-span-cell" slot-scope="text, record">
|
||||||
<a @click="goUnderStudyProject(record)" v-has="'draftingGroup:underStudyProject'">在研项目</a>
|
<!-- 研究组可以点击在研项目显示项目组的信息 -->
|
||||||
|
<a @click="goUnderStudyProject(record)" v-has="'draftingGroup:underStudyProject'"
|
||||||
|
v-if="record.projectType === SafetyCenterProjectTypeEnums.studyGroup.value">在研项目</a>
|
||||||
<a @click="goFilesMaintenance(record)" v-has="'draftingGroup:fileMaintenance'">其他分发资料</a>
|
<a @click="goFilesMaintenance(record)" v-has="'draftingGroup:fileMaintenance'">其他分发资料</a>
|
||||||
<a @click="goConferenceMaintenance(record)" v-has="'draftingGroup:meetingMaintenance'">项目会议</a>
|
<a @click="goConferenceMaintenance(record)" v-has="'draftingGroup:meetingMaintenance'">项目会议</a>
|
||||||
<a @click="handleCopy(record.id)" v-has="'draftingGroup:copy'">复制</a>
|
<!--<a @click="handleCopy(record.id)" v-has="'draftingGroup:copy'">复制</a>-->
|
||||||
<a @click="handleEdit(record)" v-has="'draftingGroup:edit'">基本信息维护</a>
|
<a @click="handleEdit(record)" v-has="'draftingGroup:edit'">基本信息维护</a>
|
||||||
<a @click="handleDelete(record.id)" v-has="'draftingGroup:delete'">删除</a>
|
<a @click="handleDelete(record.id)" v-has="'draftingGroup:delete'"
|
||||||
|
v-if="record.projectType === SafetyCenterProjectTypeEnums.projectGroup.value">删除</a>
|
||||||
</span>
|
</span>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,10 +89,9 @@ import { JeroListMixin } from '@/mixins/JeroListMixin'
|
|||||||
import SelectPrincipal from '@comp/company/SelectPrincipal'
|
import SelectPrincipal from '@comp/company/SelectPrincipal'
|
||||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||||
import IconDraftingGruop from '@/assets/imgs/icon/icon_drafting_group.png'
|
import IconDraftingGruop from '@/assets/imgs/icon/icon_drafting_group.png'
|
||||||
import {copyDraftingGroup} from '@api/incomePaymentsApi'
|
|
||||||
import { getAction } from '@api/manage'
|
import { getAction } from '@api/manage'
|
||||||
import SafetyCenterModule from '@views/functionalSafetyCenter/modules/SafetyCenterModule'
|
import SafetyCenterModule from '@views/functionalSafetyCenter/modules/SafetyCenterModule'
|
||||||
import {MeetTypeEnums} from '@/enums/commonEnums'
|
import {MeetingTypeEnums, SafetyCenterProjectTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'FunctionalSafetyCenter',
|
name: 'FunctionalSafetyCenter',
|
||||||
@@ -96,6 +99,7 @@ export default {
|
|||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
SafetyCenterProjectTypeEnums,
|
||||||
IconDraftingGruop,
|
IconDraftingGruop,
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: { span: 24 },
|
xs: { span: 24 },
|
||||||
@@ -106,9 +110,9 @@ export default {
|
|||||||
sm: { span: 10 }
|
sm: { span: 10 }
|
||||||
},
|
},
|
||||||
url: {
|
url: {
|
||||||
list: '/FunctionalSafetyCenter/page',
|
list: '/SafetyCenter/page',
|
||||||
delete: '/FunctionalSafetyCenter/delete',
|
delete: '/SafetyCenter/delete',
|
||||||
deleteBatch: '/FunctionalSafetyCenter/deleteBatch'
|
deleteBatch: '/SafetyCenter/deleteBatch'
|
||||||
},
|
},
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
@@ -140,8 +144,7 @@ export default {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
queryParam: {},
|
queryParam: {},
|
||||||
lastQueryParam: {},
|
lastQueryParam: {}
|
||||||
operateData: [] // 进行操作权限校验时使用的数据
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -174,36 +177,8 @@ export default {
|
|||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
// 判断登录用户是否为负责人B 2021-10-13:修改为后端在列表字段返回checkoutOperation字段控制,1--可操作,2--不可操作
|
|
||||||
// if (this.dataSource.length > 0) {
|
|
||||||
// for (let index = 0; index < this.dataSource.length; index++) {
|
|
||||||
// this.checkWorkingGroupPrincipal(index).then((res) => {
|
|
||||||
// res.showOperate = true
|
|
||||||
// this.$set(this.dataSource, index, res)
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* 判断登录用户是否为负责人B
|
|
||||||
*/
|
|
||||||
// checkWorkingGroupPrincipal(index) {
|
|
||||||
// let item = this.dataSource[index]
|
|
||||||
// // (负责人B不可操作)
|
|
||||||
// return new Promise(resolve => {
|
|
||||||
// checkoutWorkingGroupPrincipal({ id: item.id }).then(res => {
|
|
||||||
// // 不可操作则置否
|
|
||||||
// if (res.success) {
|
|
||||||
// item.canOperate = true
|
|
||||||
// } else {
|
|
||||||
// item.canOperate = false
|
|
||||||
// }
|
|
||||||
// }).finally(() => {
|
|
||||||
// resolve(item)
|
|
||||||
// })
|
|
||||||
// })
|
|
||||||
// },
|
|
||||||
/**
|
/**
|
||||||
* 文件维护
|
* 文件维护
|
||||||
* @param record
|
* @param record
|
||||||
@@ -229,25 +204,10 @@ export default {
|
|||||||
projectName: record.projectName,
|
projectName: record.projectName,
|
||||||
projectId: record.id,
|
projectId: record.id,
|
||||||
canOperate: true,
|
canOperate: true,
|
||||||
meetingType: MeetTypeEnums.safetyCenter.value
|
meetingType: MeetingTypeEnums.safetyCenter.value
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* 复制
|
|
||||||
* @param id
|
|
||||||
*/
|
|
||||||
handleCopy (id) {
|
|
||||||
copyDraftingGroup({ id: id }).then(res => {
|
|
||||||
if (res.success) {
|
|
||||||
this.$message.success(res.message)
|
|
||||||
} else {
|
|
||||||
this.$message.warn(res.message)
|
|
||||||
}
|
|
||||||
}).finally(() => {
|
|
||||||
this.loadData()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* 成员维护
|
* 成员维护
|
||||||
* @param record
|
* @param record
|
||||||
@@ -275,9 +235,10 @@ export default {
|
|||||||
* 在研项目
|
* 在研项目
|
||||||
* @param record
|
* @param record
|
||||||
*/
|
*/
|
||||||
sgoUnderStudyProject(record) {
|
goUnderStudyProject(record) {
|
||||||
|
console.log(record)
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: '/functionalSafetyCenter/FunctionalSafetyUnderStudyProject',
|
path: '/functionalSafetyCenter',
|
||||||
query: {
|
query: {
|
||||||
title: record.projectName,
|
title: record.projectName,
|
||||||
id: record.id
|
id: record.id
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ import PublishRemindModal from '@views/projectManagement/modules/PublishRemindMo
|
|||||||
import UploadMeetFileModal from '@views/incomePayments/meetManage/modules/UploadMeetFileModal'
|
import UploadMeetFileModal from '@views/incomePayments/meetManage/modules/UploadMeetFileModal'
|
||||||
import '@/assets/less/TableExpand.less'
|
import '@/assets/less/TableExpand.less'
|
||||||
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
||||||
import {MeetTypeEnums} from '@/enums/commonEnums'
|
import {MeetingTypeEnums} from '@/enums/commonEnums'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'FunctionalSafetyCenterConferenceMaintenance',
|
name: 'FunctionalSafetyCenterConferenceMaintenance',
|
||||||
@@ -281,7 +281,7 @@ export default {
|
|||||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||||
query: {
|
query: {
|
||||||
safetyCenterId: currentId,
|
safetyCenterId: currentId,
|
||||||
meetingType: MeetTypeEnums.safetyCenter.value
|
meetingType: MeetingTypeEnums.safetyCenter.value
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -336,7 +336,7 @@ export default {
|
|||||||
query: {
|
query: {
|
||||||
id: record.id,
|
id: record.id,
|
||||||
meetingName: record.meetingName,
|
meetingName: record.meetingName,
|
||||||
meetingType: MeetTypeEnums.safetyCenter.value
|
meetingType: MeetingTypeEnums.safetyCenter.value
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<div class="part-title">
|
<div class="part-title">
|
||||||
<div class="part-title-text">项目信息</div>
|
<div class="part-title-text">项目信息</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 起草组信息区域-->
|
<!-- 信息区域-->
|
||||||
<a-spin :spinning="spinning">
|
<a-spin :spinning="spinning">
|
||||||
<div class="work-group-detail">
|
<div class="work-group-detail">
|
||||||
<div class="work-group-detail-item work-group-detail-item-small"
|
<div class="work-group-detail-item work-group-detail-item-small"
|
||||||
@@ -28,26 +28,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-spin>
|
</a-spin>
|
||||||
<!-- /起草组信息区域-->
|
<!-- /信息区域-->
|
||||||
|
|
||||||
<a-divider></a-divider>
|
|
||||||
|
|
||||||
<!-- 入会信息 -->
|
|
||||||
<div class="part-title">
|
|
||||||
<div class="part-title-text">入会信息</div>
|
|
||||||
</div>
|
|
||||||
<a-spin :spinning="spinning">
|
|
||||||
<a-row class="flex-col signUpInfo">
|
|
||||||
<a-col :xxl="8" :xl="12" :sm="24">
|
|
||||||
<label>报名链接:</label><span>{{ showSignUpHref }}</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(showSignUpHref)">复制</i>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
</a-spin>
|
|
||||||
<!-- /入会信息 -->
|
|
||||||
|
|
||||||
<a-divider></a-divider>
|
<a-divider></a-divider>
|
||||||
|
|
||||||
@@ -60,7 +41,7 @@
|
|||||||
<a-row>
|
<a-row>
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
<a-form-item label="成员单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item label="成员单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input placeholder="请输入成员单位" v-model="queryParam.chargeCompanyTemporaryName"
|
<a-input placeholder="请输入成员单位" v-model="queryParam.companyName"
|
||||||
:maxLength='50'></a-input>
|
:maxLength='50'></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -92,10 +73,10 @@
|
|||||||
v-if="canOperate">
|
v-if="canOperate">
|
||||||
<a-button type="primary" icon="import">导入</a-button>
|
<a-button type="primary" icon="import">导入</a-button>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
<a-button type="primary" icon="export" @click="handleExportXls('起草组成员')" v-has="'draftingGroupMember:export'">
|
<a-button type="primary" icon="export" @click="handleExportXls('功能安全中心成员')" v-has="'draftingGroupMember:export'">
|
||||||
导出
|
导出
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button type="primary" icon="download" @click="downTemplate('起草组成员导入模板')"
|
<a-button type="primary" icon="download" @click="downTemplate('功能安全中心成员导入模板')"
|
||||||
v-has="'draftingGroupMember:downTemplate'" v-if="canOperate">下载模板
|
v-has="'draftingGroupMember:downTemplate'" v-if="canOperate">下载模板
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'draftingGroupMember:batchDel'" v-if="canOperate">
|
<a-button type="danger" icon="delete" @click="batchDel" v-has="'draftingGroupMember:batchDel'" v-if="canOperate">
|
||||||
@@ -121,7 +102,7 @@
|
|||||||
@change="handleTableChange"
|
@change="handleTableChange"
|
||||||
class="j-table-force-nowrap">
|
class="j-table-force-nowrap">
|
||||||
|
|
||||||
<!-- 起草组名称-->
|
<!-- 名称-->
|
||||||
<template slot="projectName" slot-scope="text, record">
|
<template slot="projectName" slot-scope="text, record">
|
||||||
<j-ellipsis :value="text"
|
<j-ellipsis :value="text"
|
||||||
:length="18"
|
:length="18"
|
||||||
@@ -144,7 +125,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|
||||||
<project-detail-modal :project-type="ProjectTypeEnums.DRAFT_PRO.value" ref="projectDetail"></project-detail-modal>
|
<project-detail-modal ref="projectDetail"></project-detail-modal>
|
||||||
<safety-center-member-unit-module ref="modalForm" @ok="modalFormOk"></safety-center-member-unit-module>
|
<safety-center-member-unit-module ref="modalForm" @ok="modalFormOk"></safety-center-member-unit-module>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -152,12 +133,11 @@
|
|||||||
<script>
|
<script>
|
||||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||||
import {getDraftingGroupById} from '@api/incomePaymentsApi'
|
import {getSafetyCenterById} from '@api/incomePaymentsApi'
|
||||||
import ProjectDetailModal from '../../components/ProjectDetailModal'
|
import ProjectDetailModal from '../../components/ProjectDetailModal'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||||
import PreviewFile from '../../components/jero/PreviewFile'
|
import PreviewFile from '../../components/jero/PreviewFile'
|
||||||
import {createQcCode} from '@api/incomeMeetingApi'
|
|
||||||
import { ProjectTypeEnums } from '@/enums/commonEnums'
|
import { ProjectTypeEnums } from '@/enums/commonEnums'
|
||||||
import SafetyCenterMemberUnitModule
|
import SafetyCenterMemberUnitModule
|
||||||
from '@views/functionalSafetyCenter/modules/SafetyCenterMemberUnitModule'
|
from '@views/functionalSafetyCenter/modules/SafetyCenterMemberUnitModule'
|
||||||
@@ -175,26 +155,13 @@ export default {
|
|||||||
},
|
},
|
||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
computed: {
|
computed: {
|
||||||
// 小程序报名链接
|
|
||||||
signUpHerfUrl() {
|
|
||||||
return `${ window._CONFIG['singUpDraftTeamQRCodeURL'] }?id=${ this.$route.query.projectId }`
|
|
||||||
},
|
|
||||||
// 企业端报名地址
|
|
||||||
showSignUpHref(){
|
|
||||||
return `${ window._CONFIG['singInDraftHref'] }?id=${ this.$route.query.projectId }`
|
|
||||||
},
|
|
||||||
importExcelUrl: function () {
|
importExcelUrl: function () {
|
||||||
return `${ window._CONFIG['domianURL'] }/${ this.url.importExcelUrl }`
|
return `${ window._CONFIG['domianURL'] }/${ this.url.importExcelUrl }`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async mounted() {
|
|
||||||
// 生成会议报名二维码
|
|
||||||
this.signUpQRCode = await this.generateQRCode(this.signUpHerfUrl)
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
ProjectTypeEnums,
|
ProjectTypeEnums,
|
||||||
signUpQRCode: '',
|
|
||||||
disableMixinCreated: true,
|
disableMixinCreated: true,
|
||||||
projectName: '',
|
projectName: '',
|
||||||
projectId: '',
|
projectId: '',
|
||||||
@@ -205,7 +172,7 @@ export default {
|
|||||||
fieldName: 'projectName'
|
fieldName: 'projectName'
|
||||||
}, {
|
}, {
|
||||||
title: '负责人',
|
title: '负责人',
|
||||||
fieldName: 'principalName'
|
fieldName: 'principalId_dictText'
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
labelCol: {
|
labelCol: {
|
||||||
@@ -217,12 +184,12 @@ export default {
|
|||||||
sm: { span: 10 }
|
sm: { span: 10 }
|
||||||
},
|
},
|
||||||
url: {
|
url: {
|
||||||
list: '/drafting/payDraftingGroupSubitem/list',
|
list: '/SafetyCenterSubitem/list',
|
||||||
delete: '/drafting/payDraftingGroupSubitem/delete',
|
delete: '/SafetyCenterSubitem/delete',
|
||||||
deleteBatch: '/drafting/payDraftingGroupSubitem/deleteBatch',
|
deleteBatch: '/SafetyCenterSubitem/deleteBatch',
|
||||||
exportXlsUrl: '/drafting/payDraftingGroupSubitem/exportXls',
|
exportXlsUrl: '/SafetyCenterSubitem/exportXls',
|
||||||
importExcelUrl: '/drafting/payDraftingGroupSubitem/importExcel',
|
importExcelUrl: '/SafetyCenterSubitem/importExcel',
|
||||||
downTemplateUrl: '/drafting/payDraftingGroupSubitem/downloadExcelModel'
|
downTemplateUrl: '/SafetyCenterSubitem/downloadExcelModel'
|
||||||
},
|
},
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
@@ -247,73 +214,6 @@ export default {
|
|||||||
dataIndex: 'contactsTemporaryNameOne',
|
dataIndex: 'contactsTemporaryNameOne',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// title: '待确收金额',
|
|
||||||
// align: 'center',
|
|
||||||
// dataIndex: 'receivableAmount',
|
|
||||||
// width: 180,
|
|
||||||
// customRender: (text, record) => (
|
|
||||||
// <j-ellipsis value={ record.receivableAmount + '元' } length={ 15 }></j-ellipsis>
|
|
||||||
// )
|
|
||||||
// }, {
|
|
||||||
// title: '实收金额',
|
|
||||||
// align: 'center',
|
|
||||||
// dataIndex: 'paidAmount',
|
|
||||||
// width: 180,
|
|
||||||
// customRender: (text, record) => (
|
|
||||||
// <j-ellipsis value={ record.paidAmount + '元' } length={ 15 }></j-ellipsis>
|
|
||||||
// )
|
|
||||||
// }, {
|
|
||||||
// title: '标签名称',
|
|
||||||
// align: 'center',
|
|
||||||
// dataIndex: 'label',
|
|
||||||
// width: 100,
|
|
||||||
// scopedSlots: { customRender: 'text' }
|
|
||||||
// }, {
|
|
||||||
// // 2021-10-22需求变更新加
|
|
||||||
// title: '收费通知号',
|
|
||||||
// align: 'center',
|
|
||||||
// width: 280,
|
|
||||||
// dataIndex: 'chargeNoticeNo',
|
|
||||||
// scopedSlots: { customRender: 'text' }
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// title: '打包',
|
|
||||||
// align: 'center',
|
|
||||||
// fixed: 'right',
|
|
||||||
// width: 100,
|
|
||||||
// dataIndex: 'pack',
|
|
||||||
// scopedSlots: { customRender: 'status-pack' }
|
|
||||||
// },
|
|
||||||
// }, {
|
|
||||||
// title: '需要发票',
|
|
||||||
// align: 'center',
|
|
||||||
// fixed: 'right',
|
|
||||||
// width: 80,
|
|
||||||
// dataIndex: 'needInvoice',
|
|
||||||
// scopedSlots: { customRender: 'status-pack' }
|
|
||||||
// }, {
|
|
||||||
// title: '到账',
|
|
||||||
// align: 'center',
|
|
||||||
// fixed: 'right',
|
|
||||||
// width: 80,
|
|
||||||
// dataIndex: 'inAccount',
|
|
||||||
// scopedSlots: { customRender: 'status' }
|
|
||||||
// }, {
|
|
||||||
// title: '开票',
|
|
||||||
// align: 'center',
|
|
||||||
// fixed: 'right',
|
|
||||||
// width: 80,
|
|
||||||
// dataIndex: 'makeInvoice',
|
|
||||||
// scopedSlots: { customRender: 'status-bill' }
|
|
||||||
// }, {
|
|
||||||
// title: '邮寄',
|
|
||||||
// align: 'center',
|
|
||||||
// fixed: 'right',
|
|
||||||
// width: 80,
|
|
||||||
// dataIndex: 'mail',
|
|
||||||
// scopedSlots: { customRender: 'status-mail' }
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
dataIndex: 'action',
|
dataIndex: 'action',
|
||||||
@@ -337,33 +237,16 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// 初始化起草组信息
|
// 初始化信息
|
||||||
this.initWorkGroupData()
|
this.initData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/*
|
|
||||||
* 生成二维码
|
|
||||||
* */
|
|
||||||
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)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* 初始化起草组信息
|
* 初始化信息
|
||||||
*/
|
*/
|
||||||
initWorkGroupData() {
|
initData() {
|
||||||
this.spinning = true
|
this.spinning = true
|
||||||
this.projectName = this.$route.query.projectId || ''
|
this.projectName = this.$route.query.projectName || ''
|
||||||
this.projectId = this.$route.query.projectId || ''
|
this.projectId = this.$route.query.projectId || ''
|
||||||
this.filters.projectId = this.projectId
|
this.filters.projectId = this.projectId
|
||||||
this.importParam.projectId = this.projectId
|
this.importParam.projectId = this.projectId
|
||||||
@@ -371,7 +254,7 @@ export default {
|
|||||||
let param = {
|
let param = {
|
||||||
id: this.projectId
|
id: this.projectId
|
||||||
}
|
}
|
||||||
getDraftingGroupById(param).then(res => {
|
getSafetyCenterById(param).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.detail = res.result || {}
|
this.detail = res.result || {}
|
||||||
}
|
}
|
||||||
@@ -379,29 +262,6 @@ export default {
|
|||||||
this.spinning = false
|
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 () {
|
handleAdd: function () {
|
||||||
this.$refs.modalForm.projectId = this.projectId
|
this.$refs.modalForm.projectId = this.projectId
|
||||||
this.$refs.modalForm.add()
|
this.$refs.modalForm.add()
|
||||||
@@ -426,17 +286,7 @@ export default {
|
|||||||
let url = `${ window._CONFIG['onlinePreviewDomainURL'] }?url=${ encodeURIComponent(Base64.encode(fileFullUrl)) }`
|
let url = `${ window._CONFIG['onlinePreviewDomainURL'] }?url=${ encodeURIComponent(Base64.encode(fileFullUrl)) }`
|
||||||
window.open(url)
|
window.open(url)
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
// 2021 10 11 沟通后去掉了这个功能
|
|
||||||
// searchReset() {
|
|
||||||
// this.lastQueryParam = {
|
|
||||||
// paymentDate: new Date().getFullYear().toString()
|
|
||||||
// }
|
|
||||||
// this.queryParam = {
|
|
||||||
// paymentDate: new Date().getFullYear().toString()
|
|
||||||
// }
|
|
||||||
// this.loadData(1)
|
|
||||||
// },
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,178 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<page-header-title :is-level-one="false" :level-two-title="$route.query.title"></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 :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 :xl="6" :lg="7" :md="8" :sm="24">
|
|
||||||
<span class="table-page-search-submitButtons">
|
|
||||||
<a-button type="primary" icon="search" @click="searchQuery" v-has="'draftingGroup:underStudy: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="'draftingGroup:underStudy:add'">新增</a-button>
|
|
||||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'draftingGroup: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}"
|
|
||||||
@change="handleTableChange"
|
|
||||||
class="j-table-force-nowrap">
|
|
||||||
|
|
||||||
<template slot="text" slot-scope="text">
|
|
||||||
<j-ellipsis :value="text" :length="18"></j-ellipsis>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<span slot="action" class="action-span-cell" slot-scope="text, record">
|
|
||||||
<a @click="handleEdit(record)" v-has="'draftingGroup:underStudy:edit'">编辑</a>
|
|
||||||
<a @click="handleDelete(record.id)" v-has="'draftingGroup:underStudy:delete'">删除</a>
|
|
||||||
</span>
|
|
||||||
</a-table>
|
|
||||||
</div>
|
|
||||||
</a-card>
|
|
||||||
|
|
||||||
<safety-center-under-study-project-modal ref="modalForm" @ok="modalFormOk"></safety-center-under-study-project-modal>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
|
||||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
|
||||||
import { getAction } from '@api/manage'
|
|
||||||
import SafetyCenterUnderStudyProjectModal
|
|
||||||
from '@views/functionalSafetyCenter/modules/SafetyCenterUnderStudyProjectModal'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'FunctionalSafetyUnderStudyProject',
|
|
||||||
components: {SafetyCenterUnderStudyProjectModal, PageHeaderTitle },
|
|
||||||
mixins: [JeroListMixin],
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
labelCol: {
|
|
||||||
xs: { span: 24 },
|
|
||||||
sm: { span: 5 }
|
|
||||||
},
|
|
||||||
wrapperCol: {
|
|
||||||
xs: { span: 24 },
|
|
||||||
sm: { span: 10 }
|
|
||||||
},
|
|
||||||
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: 'text' }
|
|
||||||
}, {
|
|
||||||
title: '主要起草单位',
|
|
||||||
align: 'center',
|
|
||||||
dataIndex: 'draftCompany',
|
|
||||||
scopedSlots: { customRender: 'text' }
|
|
||||||
}, {
|
|
||||||
title: '项目进度',
|
|
||||||
align: 'center',
|
|
||||||
dataIndex: 'projectSchedule',
|
|
||||||
scopedSlots: { customRender: 'text' }
|
|
||||||
}, {
|
|
||||||
title: '操作',
|
|
||||||
align: 'center',
|
|
||||||
width: 180,
|
|
||||||
fixed: 'right',
|
|
||||||
dataIndex: 'bankAccountName',
|
|
||||||
scopedSlots: { customRender: 'action' }
|
|
||||||
}
|
|
||||||
],
|
|
||||||
url: {
|
|
||||||
list: '/drafting/payDraftingGroupResearchProject/list',
|
|
||||||
delete: '/drafting/payDraftingGroupResearchProject/delete',
|
|
||||||
deleteBatch: '/drafting/payDraftingGroupResearchProject/deleteBatch'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
loadData(arg) {
|
|
||||||
if (!this.url.list) {
|
|
||||||
this.$message.error('请设置url.list属性!')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
//加载数据 若传入参数1则加载第一页的内容
|
|
||||||
if (arg === 1) {
|
|
||||||
this.ipagination.current = 1
|
|
||||||
}
|
|
||||||
let params = this.getQueryParams()//查询条件
|
|
||||||
params.projectId = this.$route.query.id
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
}).finally(() => {
|
|
||||||
this.loading = false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
handleEdit: function (record) {
|
|
||||||
this.$refs.modalForm.projectId = this.$route.query.id
|
|
||||||
this.$refs.modalForm.edit(record)
|
|
||||||
this.$refs.modalForm.title = '编辑'
|
|
||||||
this.$refs.modalForm.disableSubmit = false
|
|
||||||
},
|
|
||||||
handleAdd: function () {
|
|
||||||
this.$refs.modalForm.projectId = this.$route.query.id
|
|
||||||
this.$refs.modalForm.add()
|
|
||||||
this.$refs.modalForm.title = '新增'
|
|
||||||
this.$refs.modalForm.disableSubmit = false
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="less">
|
|
||||||
@import '~@assets/less/common.less';
|
|
||||||
</style>
|
|
||||||
@@ -10,32 +10,6 @@
|
|||||||
cancelText="关闭">
|
cancelText="关闭">
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form :form="form">
|
<a-form :form="form">
|
||||||
<!-- 批量添加时显示) -->
|
|
||||||
<template v-if="isBatchAdd && model.projectIdList && model.projectIdList.length > 0">
|
|
||||||
<a-row v-for="(_, index) in model.projectIdList" :key="index + ''">
|
|
||||||
<!-- 对齐其他表单单独设置col样式 -->
|
|
||||||
<a-col :xl="21" :sm="20" class="custom-col">
|
|
||||||
<a-form-item :label="`起草组${index + 1}`" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
|
||||||
<a-select
|
|
||||||
:placeholder="`请选择起草组${index + 1}`"
|
|
||||||
show-search
|
|
||||||
v-decorator="[`projectIdList[${index}]`, {rules: [{ required: index === 0, validator: index === 0 ? validateProjectRequired : validateProject }],validateTrigger: 'change'}]"
|
|
||||||
:maxLength='50'
|
|
||||||
allowClear
|
|
||||||
:filter-option="filterOption"
|
|
||||||
>
|
|
||||||
<a-select-option v-for="item in projectList" :key="item.id" :value="item.id">
|
|
||||||
{{ item.projectName }}
|
|
||||||
</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :xl="3" :sm="4">
|
|
||||||
<a-button type="link" class="contact-btn" @click="handleAddProject(index)">添加</a-button>
|
|
||||||
<a-button type="link" class="contact-btn del-btn" @click="handleDelProject(index)">删除</a-button>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
</template>
|
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col>
|
<a-col>
|
||||||
<a-form-item label="成员单位" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
<a-form-item label="成员单位" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
||||||
@@ -49,13 +23,13 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<template
|
<template
|
||||||
v-if="model.payDraftingGroupSubItemContactsList && model.payDraftingGroupSubItemContactsList.length > 0">
|
v-if="model.contactsList && model.contactsList.length > 0">
|
||||||
<a-row v-for="(item, index) in model.payDraftingGroupSubItemContactsList" :key="index + ''">
|
<a-row v-for="(item, index) in model.contactsList" :key="index + ''">
|
||||||
<a-col :xl="12" :sm="24">
|
<a-col :xl="12" :sm="24">
|
||||||
<a-form-item :label="`企业联系人${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="`企业联系人${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<select-contacts :selected-company="selectedCompany"
|
<select-contacts :selected-company="selectedCompany"
|
||||||
:placeholder="`请选择企业联系人${index + 1}`"
|
:placeholder="`请选择企业联系人${index + 1}`"
|
||||||
v-decorator="[`payDraftingGroupSubItemContactsList[${index}].contactsId`, {rules: [{ required: index === 0, validator: index === 0 ? validateContactRequired : validateContact }],validateTrigger: 'change'}]"
|
v-decorator="[`contactsList[${index}].contactsId`, {rules: [{ required: index === 0, validator: index === 0 ? validateContactRequired : validateContact }],validateTrigger: 'change'}]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
:ref="`selectContacts${index}`"
|
:ref="`selectContacts${index}`"
|
||||||
@ok="addContactsOneOk"></select-contacts>
|
@ok="addContactsOneOk"></select-contacts>
|
||||||
@@ -66,7 +40,7 @@
|
|||||||
<a-form-item :label="`备注${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="`备注${index + 1}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input
|
<a-input
|
||||||
:placeholder="`请输入备注${index + 1}`"
|
:placeholder="`请输入备注${index + 1}`"
|
||||||
v-decorator="[`payDraftingGroupSubItemContactsList[${index}].remarks`]"
|
v-decorator="[`contactsList[${index}].remarks`]"
|
||||||
:maxLength='50'
|
:maxLength='50'
|
||||||
@change="e => {e.target.value = (e.target.value + '').trim()}">
|
@change="e => {e.target.value = (e.target.value + '').trim()}">
|
||||||
</a-input>
|
</a-input>
|
||||||
@@ -100,69 +74,14 @@ import pick from 'lodash.pick'
|
|||||||
import { httpAction } from '@api/manage'
|
import { httpAction } from '@api/manage'
|
||||||
import CompanySelect from '@comp/company/CompanySelect'
|
import CompanySelect from '@comp/company/CompanySelect'
|
||||||
import SelectContacts from '@comp/company/SelectContacts'
|
import SelectContacts from '@comp/company/SelectContacts'
|
||||||
import {getAllDraftProjects, getWorkingGroupListByNotCompany} from '@api/incomePaymentsApi'
|
import {getAllDraftProjects} from '@api/incomePaymentsApi'
|
||||||
// import { isRepeat } from '../../../utils/util'
|
|
||||||
import { addZero } from '@/utils/util'
|
import { addZero } from '@/utils/util'
|
||||||
import { money } from '@/utils/validate'
|
|
||||||
import { checkAssociatedProject } from '@/utils/projectCheck'
|
|
||||||
import { CalcAmountMixin } from '@/mixins/CalcAmountMixin'
|
import { CalcAmountMixin } from '@/mixins/CalcAmountMixin'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SafetyCenterMemberUnitModule',
|
name: 'SafetyCenterMemberUnitModule',
|
||||||
components: { CompanySelect, SelectContacts },
|
components: { CompanySelect, SelectContacts },
|
||||||
mixins: [CalcAmountMixin],
|
mixins: [CalcAmountMixin],
|
||||||
props: {
|
|
||||||
// 默认来款方式(收入合同新增工作组项目,来款方式默认为2--合同)
|
|
||||||
defaultChargeWay: {
|
|
||||||
type: Number,
|
|
||||||
required: false,
|
|
||||||
default: null
|
|
||||||
},
|
|
||||||
// 收入合同关联时传入的企业信息,不可修改
|
|
||||||
defaultChargeCompany: {
|
|
||||||
type: Object,
|
|
||||||
required: false,
|
|
||||||
default: () => {
|
|
||||||
return {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 是否可以修改来款企业
|
|
||||||
disabledChargeCompany: {
|
|
||||||
type: Boolean,
|
|
||||||
required: false,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
// 收入合同新增项目时带入合同号且不可修改
|
|
||||||
defaultContractNum: {
|
|
||||||
type: String,
|
|
||||||
requirde: false,
|
|
||||||
default: null
|
|
||||||
},
|
|
||||||
// 合同号是否可编辑
|
|
||||||
isContractNumDisabled: {
|
|
||||||
type: Boolean,
|
|
||||||
required: false,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
// 企业的签订联系人id,收入合同新增企业联系人、邮寄联系人默认为签订联系人
|
|
||||||
signedContactId: {
|
|
||||||
type: String,
|
|
||||||
required: false,
|
|
||||||
default: undefined
|
|
||||||
},
|
|
||||||
// 收入合同新增时为1
|
|
||||||
flag: {
|
|
||||||
type: Number,
|
|
||||||
requirded: false,
|
|
||||||
default: null
|
|
||||||
},
|
|
||||||
// 是否批量添加
|
|
||||||
isBatchAdd: {
|
|
||||||
type: Boolean,
|
|
||||||
required: false,
|
|
||||||
default: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: '操作',
|
title: '操作',
|
||||||
@@ -188,18 +107,10 @@ export default {
|
|||||||
sm: { span: 20 }
|
sm: { span: 20 }
|
||||||
},
|
},
|
||||||
validatorRules: {
|
validatorRules: {
|
||||||
projectId: {
|
|
||||||
rules: [{ required: true, message: '请选择项目' }],
|
|
||||||
validateTrigger: 'change'
|
|
||||||
},
|
|
||||||
chargeCompany: {
|
chargeCompany: {
|
||||||
rules: [{ required: true, validator: this.checkCompany }],
|
rules: [{ required: true, validator: this.checkCompany }],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
taxRate: {
|
|
||||||
rules: [{ required: true, message: '请选择税率' }],
|
|
||||||
validateTrigger: 'change', initialValue: '0.06'
|
|
||||||
},
|
|
||||||
contactsIdOne: {
|
contactsIdOne: {
|
||||||
rules: [{ required: true, message: '请选择企业联系人1' }],
|
rules: [{ required: true, message: '请选择企业联系人1' }],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
@@ -208,49 +119,22 @@ export default {
|
|||||||
rules: [{ required: false, validator: this.validateContact }],
|
rules: [{ required: false, validator: this.validateContact }],
|
||||||
validateTrigger: 'change'
|
validateTrigger: 'change'
|
||||||
},
|
},
|
||||||
mailContactsId: {
|
|
||||||
rules: [{ required: true, message: '请选择邮寄联系人' }],
|
|
||||||
validateTrigger: 'blur'
|
|
||||||
},
|
|
||||||
chargeWay: {
|
|
||||||
rules: [{ required: true, message: '请选择来款方式' }],
|
|
||||||
validateTrigger: 'change'
|
|
||||||
},
|
|
||||||
receivableAmount: {
|
receivableAmount: {
|
||||||
rules: [{ required: true, validator: this.checkMoney }],
|
rules: [{ required: true, validator: this.checkMoney }],
|
||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
},
|
|
||||||
contractNum: {
|
|
||||||
rules: [{ required: true, message: '请选择合同号' }],
|
|
||||||
validateTrigger: 'change'
|
|
||||||
},
|
|
||||||
charge: {
|
|
||||||
rules: [{ required: true, message: '请输入收费通知号' }],
|
|
||||||
validateTrigger: 'blur'
|
|
||||||
},
|
|
||||||
needInvoice: {
|
|
||||||
rules: [{ required: true, message: '请选择发票类型' }],
|
|
||||||
validateTrigger: 'change'
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
chargeWayType: null,
|
|
||||||
selectedCompany: null, // 当前选中的企业
|
selectedCompany: null, // 当前选中的企业
|
||||||
selectedContact1: null, // 编辑时的联系人
|
selectedContact1: null, // 编辑时的联系人
|
||||||
selectedContact2: null, // 编辑时的联系人
|
selectedContact2: null, // 编辑时的联系人
|
||||||
selectedContact3: null, // 编辑时的联系人
|
selectedContact3: null, // 编辑时的联系人
|
||||||
selectedMailContact: null, // 编辑时的邮寄联系人
|
selectedMailContact: null, // 编辑时的邮寄联系人
|
||||||
selectedChargeNotice: null, // 选中的收费通知号
|
|
||||||
projectId: null,
|
projectId: null,
|
||||||
projectList: [],
|
projectList: [],
|
||||||
disabledCompany: false, // 企业是否禁用
|
disabledCompany: false, // 企业是否禁用
|
||||||
isAssociatedContract: false, // 是否关联合同
|
|
||||||
// hasContactOne: false, // 是否选择联系人1
|
|
||||||
// hasContactTwo: false, // 是否选择联系人2
|
|
||||||
// hasContactThree: false, // 是否选择联系人3
|
|
||||||
url: {
|
url: {
|
||||||
add: '/drafting/payDraftingGroupSubitem/add',
|
add: '/SafetyCenterSubitem/add',
|
||||||
edit: '/drafting/payDraftingGroupSubitem/edit',
|
edit: '/SafetyCenterSubitem/edit'
|
||||||
batchAdd: '/drafting/payDraftingGroupSubitem/batchAdd'
|
|
||||||
},
|
},
|
||||||
// 默认的联系人数据
|
// 默认的联系人数据
|
||||||
defaultPayWorkingGroupSubItemContact: {
|
defaultPayWorkingGroupSubItemContact: {
|
||||||
@@ -263,30 +147,10 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
addZero,
|
addZero,
|
||||||
add() {
|
add() {
|
||||||
const obj = {}
|
this.edit({})
|
||||||
// 判断是否批量添加(工作组管理-批量新增成员单位)
|
|
||||||
if (this.isBatchAdd) {
|
|
||||||
// 获取当前年的工作组列表
|
|
||||||
this.loadCurrentYearProjectList()
|
|
||||||
// 默认一个项目
|
|
||||||
obj.projectIdList = [undefined]
|
|
||||||
}
|
|
||||||
this.edit(obj)
|
|
||||||
// 判断默认来款用途是否为合同(收入合同新增)
|
|
||||||
if (this.defaultChargeWay) {
|
|
||||||
this.loadWorkingGroupList()
|
|
||||||
this.chargeWayType = 2
|
|
||||||
}
|
|
||||||
// 判断是否存在默认合同号(收入合同新增)
|
|
||||||
if (this.defaultContractNum && this.defaultContractNum !== '') {
|
|
||||||
this.model.contractNum = this.defaultContractNum
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue(pick(this.model, 'contractNum'))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 获取当前年起草组列表
|
* 获取当前年功能安全中心列表
|
||||||
*/
|
*/
|
||||||
loadCurrentYearProjectList() {
|
loadCurrentYearProjectList() {
|
||||||
getAllDraftProjects({
|
getAllDraftProjects({
|
||||||
@@ -301,115 +165,43 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* 获取工作组列表
|
|
||||||
*/
|
|
||||||
loadWorkingGroupList() {
|
|
||||||
let param = {
|
|
||||||
companyId: this.defaultChargeCompany.id
|
|
||||||
}
|
|
||||||
getWorkingGroupListByNotCompany(param).then(res => {
|
|
||||||
if (res.success) {
|
|
||||||
this.workingGroupList = res.result
|
|
||||||
} else {
|
|
||||||
this.$message.warn(res.message)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
edit(record) {
|
edit(record) {
|
||||||
// 存在默认选中企业时显示默认企业
|
// 回显
|
||||||
if (this.defaultChargeCompany.hasOwnProperty.call(this.defaultChargeCompany, 'id')) {
|
record.chargeCompany = {
|
||||||
record.chargeCompany = {
|
id: record.companyId,
|
||||||
id: this.defaultChargeCompany.id,
|
companyName: record.chargeCompanyTemporaryName
|
||||||
companyName: this.defaultChargeCompany.companyName
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
record.chargeCompany = {
|
|
||||||
id: record.chargeCompanyId,
|
|
||||||
companyName: record.chargeCompanyTemporaryName
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 验证项目是否关联收入合同,项目来款、开票、邮寄、打包、关联合同后,企业不可更改
|
|
||||||
if (record.id) {
|
|
||||||
checkAssociatedProject(record.id).then(res => {
|
|
||||||
this.disabledCompany = this.disabledChargeCompany || res || (!!record.inAccount && record.inAccount !== 0) || (!!record.makeInvoice && record.makeInvoice !== 0) || (!!record.mail && record.mail !== 0)
|
|
||||||
this.isAssociatedContract = res
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
this.disabledCompany = this.disabledChargeCompany
|
|
||||||
}
|
}
|
||||||
// 回显选中的企业
|
// 回显选中的企业
|
||||||
this.selectedCompany = record.chargeCompany
|
this.selectedCompany = record.chargeCompany
|
||||||
this.companyChange(this.selectedCompany)
|
this.companyChange(this.selectedCompany)
|
||||||
this.form.resetFields()
|
this.form.resetFields()
|
||||||
record.contractNum = record.contractNum || undefined
|
|
||||||
this.model = Object.assign({}, JSON.parse(JSON.stringify(record)))
|
this.model = Object.assign({}, JSON.parse(JSON.stringify(record)))
|
||||||
// 是否存在从收入合同传入的签订联系人id
|
|
||||||
this.model.contactsIdOne = this.signedContactId || this.model.contactsTemporaryIdOne || undefined
|
|
||||||
this.model.contactsIdTwo = this.model.contactsTemporaryIdTwo || undefined
|
|
||||||
this.model.contactsIdThree = this.model.contactsTemporaryIdThree || undefined
|
|
||||||
// 是否存在从收入合同传入的签订联系人id
|
|
||||||
// this.model.mailContactsId = this.signedContactId || this.model.mailContactsTemporaryId || undefined
|
|
||||||
if (this.model.id) {
|
if (this.model.id) {
|
||||||
// 传给组件的init-contact值,需要id和name两个属性
|
// 传给组件的init-contact值,需要id和name两个属性
|
||||||
this.model.payDraftingGroupSubItemContactsList && this.model.payDraftingGroupSubItemContactsList.forEach(item => {
|
this.model.contactsList && this.model.contactsList.forEach(item => {
|
||||||
item.name = item.contactsTemporaryName
|
item.name = item.contactsTemporaryName
|
||||||
})
|
})
|
||||||
// this.selectedContact1 = {
|
|
||||||
// id: this.model.contactsTemporaryIdOne,
|
|
||||||
// name: this.model.contactsTemporaryNameOne
|
|
||||||
// }
|
|
||||||
// this.selectedContact2 = {
|
|
||||||
// id: this.model.contactsTemporaryIdTwo,
|
|
||||||
// name: this.model.contactsTemporaryNameTwo
|
|
||||||
// }
|
|
||||||
// this.selectedContact3 = {
|
|
||||||
// id: this.model.contactsTemporaryIdThree,
|
|
||||||
// name: this.model.contactsTemporaryNameThree
|
|
||||||
// }
|
|
||||||
this.selectedMailContact = {
|
|
||||||
id: this.model.mailContactsTemporaryId,
|
|
||||||
name: this.model.mailContactsTemporaryName
|
|
||||||
}
|
|
||||||
// // 是否需要显示联系人备注信息
|
|
||||||
// if (this.model.contactsTemporaryIdOne) {
|
|
||||||
// this.hasContactOne = true
|
|
||||||
// }
|
|
||||||
// if (this.model.contactsTemporaryIdTwo) {
|
|
||||||
// this.hasContactTwo = true
|
|
||||||
// }
|
|
||||||
// if (this.model.contactsTemporaryIdThree) {
|
|
||||||
// this.hasContactThree = true
|
|
||||||
// }
|
|
||||||
} else {
|
} else {
|
||||||
// 新增处理默认显示的三个企业联系人
|
// 新增处理默认显示的三个企业联系人
|
||||||
this.model.payDraftingGroupSubItemContactsList = []
|
this.model.contactsList = []
|
||||||
this.model.payDraftingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
this.model.payDraftingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
this.model.payDraftingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
}
|
}
|
||||||
this.chargeWayType = record.chargeWay
|
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue(pick(this.model, 'chargeCompany', 'contactsIdOne', 'contactsIdTwo', 'contactsIdThree', 'remarks', 'remarksOne', 'remarksTwo', 'remarksThree', 'payDraftingGroupSubItemContactsList'))
|
this.form.setFieldsValue(pick(this.model, 'chargeCompany', 'remarks', 'contactsList'))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
this.chargeWayType = null
|
|
||||||
this.selectedCompany = null
|
this.selectedCompany = null
|
||||||
// 清除选中联系人信息
|
// 清除选中联系人信息
|
||||||
this.selectedContact1 = null
|
this.selectedContact1 = null
|
||||||
this.selectedContact2 = null
|
this.selectedContact2 = null
|
||||||
this.selectedContact3 = null
|
this.selectedContact3 = null
|
||||||
this.selectedMailContact = null
|
this.selectedMailContact = null
|
||||||
// 清除企业、来款方式、合同号的限制
|
|
||||||
this.isAssociatedContract = false
|
|
||||||
this.disabledCompany = false
|
this.disabledCompany = false
|
||||||
// 清除联系人备注信息
|
|
||||||
// this.hasContactOne = false
|
|
||||||
// this.hasContactTwo = false
|
|
||||||
// this.hasContactThree = false
|
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.model = Object.assign({}, {})
|
this.model = Object.assign({}, {})
|
||||||
this.form.resetFields()
|
this.form.resetFields()
|
||||||
@@ -424,38 +216,22 @@ export default {
|
|||||||
this.form.validateFields((err, values) => {
|
this.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
that.confirmLoading = true
|
that.confirmLoading = true
|
||||||
// 收入合同新建项目手动赋值
|
// values.chargeCompanyTemporaryName = values.chargeCompany.companyName
|
||||||
if (this.defaultChargeWay === 2) {
|
values.companyId = values.chargeCompany.id
|
||||||
values.chargeWay = 2
|
|
||||||
}
|
|
||||||
if (this.flag === 1) {
|
|
||||||
values.flag = this.flag
|
|
||||||
}
|
|
||||||
values.chargeCompanyTemporaryName = values.chargeCompany.companyName
|
|
||||||
values.chargeCompanyId = values.chargeCompany.id
|
|
||||||
let httpurl = ''
|
let httpurl = ''
|
||||||
let method = 'post'
|
let method = 'post'
|
||||||
if (!this.model.id) {
|
if (!this.model.id) {
|
||||||
// 如果是批量添加,调用批量添加的接口
|
httpurl += this.url.add
|
||||||
httpurl += this.isBatchAdd ? this.url.batchAdd : this.url.add
|
|
||||||
// 通过添加成员来的,默认状态为通过
|
|
||||||
values.checkResult = 2
|
|
||||||
} else {
|
} else {
|
||||||
httpurl += this.url.edit
|
httpurl += this.url.edit
|
||||||
}
|
}
|
||||||
// 批量添加
|
|
||||||
if (Array.isArray(values.projectIdList)) {
|
|
||||||
// 过滤空
|
|
||||||
values.projectIdList = values.projectIdList.filter(item => !!item)
|
|
||||||
values.projectIds = values.projectIdList.join(',')
|
|
||||||
}
|
|
||||||
if (this.projectId) {
|
if (this.projectId) {
|
||||||
values.projectId = this.projectId
|
values.projectId = this.projectId
|
||||||
}
|
}
|
||||||
// 企业联系人信息中将没有值的去掉
|
// 企业联系人信息中将没有值的去掉
|
||||||
let haveValueContactArr = values.payDraftingGroupSubItemContactsList.filter(tt => tt.contactsId)
|
let haveValueContactArr = values.contactsList.filter(tt => tt.contactsId)
|
||||||
let obj = {
|
let obj = {
|
||||||
payDraftingGroupSubItemContactsList: haveValueContactArr
|
contactsList: haveValueContactArr
|
||||||
}
|
}
|
||||||
const formData = Object.assign(this.model, values, obj)
|
const formData = Object.assign(this.model, values, obj)
|
||||||
console.log('表单提交数据', formData)
|
console.log('表单提交数据', formData)
|
||||||
@@ -490,19 +266,14 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.selectedCompany = value
|
this.selectedCompany = value
|
||||||
// this.model.contactsIdOne = undefined
|
|
||||||
// this.model.contactsIdTwo = undefined
|
|
||||||
// this.model.contactsIdThree = undefined
|
|
||||||
// 处理默认显示的三个企业联系人
|
// 处理默认显示的三个企业联系人
|
||||||
this.model.payDraftingGroupSubItemContactsList = []
|
this.model.contactsList = []
|
||||||
this.model.payDraftingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
this.model.payDraftingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
this.model.payDraftingGroupSubItemContactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
this.model.contactsList.push(this.defaultPayWorkingGroupSubItemContact)
|
||||||
// this.model.mailContactsId = undefined
|
|
||||||
this.selectedMailContact = null
|
this.selectedMailContact = null
|
||||||
this.model.contractNum = undefined
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue(pick(this.model, 'contractNum', 'payDraftingGroupSubItemContactsList'))
|
this.form.setFieldsValue(pick(this.model, 'contactsList'))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -518,22 +289,6 @@ export default {
|
|||||||
}
|
}
|
||||||
callback('请选择成员单位')
|
callback('请选择成员单位')
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* 校验金额格式
|
|
||||||
* @param rules
|
|
||||||
* @param value
|
|
||||||
* @param callback
|
|
||||||
*/
|
|
||||||
checkMoney(rules, value, callback) {
|
|
||||||
if (value) {
|
|
||||||
if (money(value)) {
|
|
||||||
callback()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
callback('请输入合法的金额数字,最多2位小数,10位整数')
|
|
||||||
}
|
|
||||||
callback('请输入待确收金额')
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* 在新增成功后重新获取联系人列表
|
* 在新增成功后重新获取联系人列表
|
||||||
*/
|
*/
|
||||||
@@ -559,7 +314,7 @@ export default {
|
|||||||
*/
|
*/
|
||||||
validateContact(rule, value, callback) {
|
validateContact(rule, value, callback) {
|
||||||
if (value) {
|
if (value) {
|
||||||
let contactsList = this.form.getFieldValue('payDraftingGroupSubItemContactsList')
|
let contactsList = this.form.getFieldValue('contactsList')
|
||||||
let hasValueArr = contactsList.filter(tt => tt.contactsId === value)
|
let hasValueArr = contactsList.filter(tt => tt.contactsId === value)
|
||||||
if (hasValueArr.length <= 1) {
|
if (hasValueArr.length <= 1) {
|
||||||
callback()
|
callback()
|
||||||
@@ -569,65 +324,12 @@ export default {
|
|||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
},
|
},
|
||||||
validateProjectRequired(rule, value, callback) {
|
|
||||||
if (value) {
|
|
||||||
callback()
|
|
||||||
}
|
|
||||||
callback('请选择起草组1')
|
|
||||||
},
|
|
||||||
/**
|
|
||||||
* 校验工作组是否重复
|
|
||||||
* @param rule
|
|
||||||
* @param value
|
|
||||||
* @param callback
|
|
||||||
*/
|
|
||||||
validateProject(rule, value, callback) {
|
|
||||||
if (value) {
|
|
||||||
let projectIdList = this.form.getFieldValue('projectIdList')
|
|
||||||
let hasValueArr = projectIdList.filter(id => id === value)
|
|
||||||
if (hasValueArr.length <= 1) {
|
|
||||||
callback()
|
|
||||||
}
|
|
||||||
callback('请选择不同的起草组')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
callback()
|
|
||||||
},
|
|
||||||
/**
|
|
||||||
* 添加起草组
|
|
||||||
* @param index
|
|
||||||
*/
|
|
||||||
handleAddProject (index) {
|
|
||||||
this.model.projectIdList.splice(index + 1, 0, undefined)
|
|
||||||
this.$forceUpdate()
|
|
||||||
let formData = this.form.getFieldValue('projectIdList')
|
|
||||||
formData.splice(index + 1, 0, undefined)
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue({ projectIdList: formData })
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/**
|
|
||||||
* 删除起草组
|
|
||||||
* @param index
|
|
||||||
*/
|
|
||||||
handleDelProject (index) {
|
|
||||||
if (this.model.projectIdList.length === 1) {
|
|
||||||
this.$message.warn('最少需要一个起草组')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.model.projectIdList.splice(index, 1)
|
|
||||||
let formData = this.form.getFieldValue('projectIdList')
|
|
||||||
formData.splice(index, 1)
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue({ projectIdList: formData })
|
|
||||||
})
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* 添加联系人
|
* 添加联系人
|
||||||
* @param index
|
* @param index
|
||||||
*/
|
*/
|
||||||
handleAddContact(index) {
|
handleAddContact(index) {
|
||||||
if (this.model.payDraftingGroupSubItemContactsList.length >= 10) {
|
if (this.model.contactsList.length >= 10) {
|
||||||
this.$message.warn('最多添加十个企业联系人')
|
this.$message.warn('最多添加十个企业联系人')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -635,12 +337,12 @@ export default {
|
|||||||
contactsId: undefined,
|
contactsId: undefined,
|
||||||
remarks: null
|
remarks: null
|
||||||
}
|
}
|
||||||
this.model.payDraftingGroupSubItemContactsList.splice(index + 1, 0, obj)
|
this.model.contactsList.splice(index + 1, 0, obj)
|
||||||
this.$forceUpdate()
|
this.$forceUpdate()
|
||||||
let formData = this.form.getFieldValue('payDraftingGroupSubItemContactsList')
|
let formData = this.form.getFieldValue('contactsList')
|
||||||
formData.splice(index + 1, 0, obj)
|
formData.splice(index + 1, 0, obj)
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue({ payDraftingGroupSubItemContactsList: formData })
|
this.form.setFieldsValue({ contactsList: formData })
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -648,15 +350,15 @@ export default {
|
|||||||
* @param index
|
* @param index
|
||||||
*/
|
*/
|
||||||
handleDelContact(index) {
|
handleDelContact(index) {
|
||||||
if (this.model.payDraftingGroupSubItemContactsList.length === 1) {
|
if (this.model.contactsList.length === 1) {
|
||||||
this.$message.warn('最少需要一个企业联系人')
|
this.$message.warn('最少需要一个企业联系人')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.model.payDraftingGroupSubItemContactsList.splice(index, 1)
|
this.model.contactsList.splice(index, 1)
|
||||||
let formData = this.form.getFieldValue('payDraftingGroupSubItemContactsList')
|
let formData = this.form.getFieldValue('contactsList')
|
||||||
formData.splice(index, 1)
|
formData.splice(index, 1)
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.form.setFieldsValue({ payDraftingGroupSubItemContactsList: formData })
|
this.form.setFieldsValue({ contactsList: formData })
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 下拉框的搜索
|
// 下拉框的搜索
|
||||||
@@ -664,7 +366,7 @@ export default {
|
|||||||
return (
|
return (
|
||||||
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
)
|
)
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -110,8 +110,8 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
url: {
|
url: {
|
||||||
add: '/FunctionalSafetyCenter/add',
|
add: '/SafetyCenter/add',
|
||||||
edit: '/FunctionalSafetyCenter/edit'
|
edit: '/SafetyCenter/edit'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -156,8 +156,6 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
httpurl += this.url.edit
|
httpurl += this.url.edit
|
||||||
}
|
}
|
||||||
values.yearChargeA = values.yearChargeA ? Number(values.yearChargeA) : null
|
|
||||||
values.chargeA = values.chargeNoticeNoA ? 'a' : null
|
|
||||||
const formData = Object.assign(this.model, values)
|
const formData = Object.assign(this.model, values)
|
||||||
console.log('表单提交数据', formData)
|
console.log('表单提交数据', formData)
|
||||||
httpAction(httpurl, formData, method).then((res) => {
|
httpAction(httpurl, formData, method).then((res) => {
|
||||||
|
|||||||
@@ -1,183 +0,0 @@
|
|||||||
<template>
|
|
||||||
<j-modal
|
|
||||||
:title="title"
|
|
||||||
:width="width"
|
|
||||||
:visible="visible"
|
|
||||||
:confirmLoading="confirmLoading"
|
|
||||||
switchFullscreen
|
|
||||||
@ok="handleOk"
|
|
||||||
@cancel="handleCancel"
|
|
||||||
cancelText="关闭">
|
|
||||||
<a-spin :spinning="confirmLoading">
|
|
||||||
<a-form :form="form">
|
|
||||||
<a-row>
|
|
||||||
<a-col>
|
|
||||||
<a-form-item label="项目名称" :labelCol="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 :xl="12" :sm="24">
|
|
||||||
<a-form-item label="主要起草单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
|
||||||
<a-input placeholder="请输入主要起草单位"
|
|
||||||
v-decorator="['draftCompany', validatorRules.draftCompany]"
|
|
||||||
:maxLength='50'
|
|
||||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :xl="12" :sm="24">
|
|
||||||
<a-form-item label="项目进度" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
|
||||||
<a-input placeholder="请输入项目进度"
|
|
||||||
v-decorator="['projectSchedule', validatorRules.projectSchedule]"
|
|
||||||
:maxLength='50'
|
|
||||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
<a-row>
|
|
||||||
<a-col >
|
|
||||||
<!-- :xl="12" :sm="24"-->
|
|
||||||
<a-form-item label="过程文件" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
|
|
||||||
<j-upload file-type="all"
|
|
||||||
file-type-error-message="请上传过程文件"
|
|
||||||
:multiple="true"
|
|
||||||
:number="20"
|
|
||||||
:return-id="true"
|
|
||||||
v-decorator="['files', validatorRules.files]"
|
|
||||||
:trigger-change="true"></j-upload>
|
|
||||||
<div class="tip">最多只能添加20个文件,如果文件过多,请打包上传</div>
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
</a-form>
|
|
||||||
</a-spin>
|
|
||||||
</j-modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import pick from 'lodash.pick'
|
|
||||||
import { postAction } from '@api/manage'
|
|
||||||
import JUpload from '../../../components/jero/JUpload'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'SafetyCenterUnderStudyProjectModal',
|
|
||||||
components: { JUpload },
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
title: '操作',
|
|
||||||
width: 800,
|
|
||||||
visible: false,
|
|
||||||
confirmLoading: false,
|
|
||||||
form: this.$form.createForm(this),
|
|
||||||
model: {},
|
|
||||||
// 起草组id
|
|
||||||
projectId: '',
|
|
||||||
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: {
|
|
||||||
projectName: {
|
|
||||||
rules: [{ required: true, message: '请输入项目名称' }],
|
|
||||||
validateTrigger: 'blur'
|
|
||||||
},
|
|
||||||
draftCompany: {
|
|
||||||
rules: [{ required: true, message: '请输入主要起草单位' }],
|
|
||||||
validateTrigger: 'blur'
|
|
||||||
},
|
|
||||||
projectSchedule: {
|
|
||||||
rules: [{ required: true, message: '请输入项目进度' }],
|
|
||||||
validateTrigger: 'blur'
|
|
||||||
},
|
|
||||||
files: {
|
|
||||||
rules: [{ required: true, message: '请上传过程文件' }],
|
|
||||||
validateTrigger: 'change'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
url: {
|
|
||||||
add: '/drafting/payDraftingGroupResearchProject/add',
|
|
||||||
edit: '/drafting/payDraftingGroupResearchProject/edit'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
add() {
|
|
||||||
this.edit({})
|
|
||||||
},
|
|
||||||
edit(record) {
|
|
||||||
this.form.resetFields()
|
|
||||||
this.model = Object.assign({}, record)
|
|
||||||
this.visible = true
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.form.setFieldsValue(pick(this.model, 'projectName', 'draftCompany', 'projectSchedule', 'files'))
|
|
||||||
})
|
|
||||||
},
|
|
||||||
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) {
|
|
||||||
let httpurl = ''
|
|
||||||
if (!this.model.id) {
|
|
||||||
httpurl += this.url.add
|
|
||||||
} else {
|
|
||||||
httpurl += this.url.edit
|
|
||||||
}
|
|
||||||
values.projectId = this.projectId
|
|
||||||
const formData = Object.assign(this.model, values)
|
|
||||||
console.log('表单提交数据', formData)
|
|
||||||
postAction(httpurl, formData).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()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.tip{
|
|
||||||
color: #f5222d;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
Reference in New Issue
Block a user