|
@@ -224,7 +224,7 @@
|
|
<el-form-item label="项目实际责任人" prop="realHeader"
|
|
<el-form-item label="项目实际责任人" prop="realHeader"
|
|
:rules="[
|
|
:rules="[
|
|
]">
|
|
]">
|
|
- <UserSelect size="medium" :readonly="true" :disabled="formReadOnly" :limit='1' :value="inputForm.realHeader" @getValue='(value) => {inputForm.realHeader = value}'></UserSelect>
|
|
|
|
|
|
+ <UserSelect size="medium" :readonly="true" :disabled="method === 'view'" :limit='1' :value="inputForm.realHeader" @getValue='(value) => {inputForm.realHeader = value}'></UserSelect>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
@@ -247,12 +247,12 @@
|
|
<el-tab-pane label="被服务单位" name="client">
|
|
<el-tab-pane label="被服务单位" name="client">
|
|
<span slot="label"><span style="color: red;border-top: 20px">*</span> 被服务单位</span>
|
|
<span slot="label"><span style="color: red;border-top: 20px">*</span> 被服务单位</span>
|
|
<el-row :gutter="15">
|
|
<el-row :gutter="15">
|
|
- <el-button type="primary" style="margin-bottom: 15px" size="mini" :disabled="status === 'audit' || status === 'taskFormDetail'" @click="openWorkClient">
|
|
|
|
|
|
+ <el-button type="primary" style="margin-bottom: 15px" size="mini" :disabled="method === 'view'" @click="openWorkClient">
|
|
新增被服务单位
|
|
新增被服务单位
|
|
</el-button>
|
|
</el-button>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row :gutter="15">
|
|
<el-row :gutter="15">
|
|
- <el-form :disabled="status === 'audit' || status === 'taskFormDetail'">
|
|
|
|
|
|
+ <el-form :disabled="method === 'view'">
|
|
<vxe-table
|
|
<vxe-table
|
|
border
|
|
border
|
|
show-overflow
|
|
show-overflow
|
|
@@ -281,12 +281,12 @@
|
|
<el-tab-pane label="客户联系人" name="contact">
|
|
<el-tab-pane label="客户联系人" name="contact">
|
|
<span slot="label"><span style="color: red;border-top: 20px">*</span> 客户联系人</span>
|
|
<span slot="label"><span style="color: red;border-top: 20px">*</span> 客户联系人</span>
|
|
<el-row :gutter="15">
|
|
<el-row :gutter="15">
|
|
- <el-button type="primary" style="margin-bottom: 15px" size="mini" :disabled="status === 'audit' || status === 'taskFormDetail'" @click="insertEvent('contact')">
|
|
|
|
|
|
+ <el-button type="primary" style="margin-bottom: 15px" size="mini" :disabled="method === 'view'" @click="insertEvent('contact')">
|
|
新增客户联系人
|
|
新增客户联系人
|
|
</el-button>
|
|
</el-button>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row :gutter="15">
|
|
<el-row :gutter="15">
|
|
- <el-form :disabled="status === 'audit' || status === 'taskFormDetail'">
|
|
|
|
|
|
+ <el-form :disabled="method === 'view'">
|
|
<vxe-table
|
|
<vxe-table
|
|
border
|
|
border
|
|
show-overflow
|
|
show-overflow
|
|
@@ -310,7 +310,7 @@
|
|
</vxe-table-column>
|
|
</vxe-table-column>
|
|
<vxe-table-column align="center" field="sex" title="性别" :edit-render="{name: '$select', options: $dictUtils.getDictList('sex')}">
|
|
<vxe-table-column align="center" field="sex" title="性别" :edit-render="{name: '$select', options: $dictUtils.getDictList('sex')}">
|
|
<template v-slot:edit="scope">
|
|
<template v-slot:edit="scope">
|
|
- <vxe-select :disabled="status === 'audit' || status === 'taskFormDetail'" v-model="scope.row.sex" placeholder="性别" clearable style="width: 100%;" transfer>
|
|
|
|
|
|
+ <vxe-select :disabled="method === 'view'" v-model="scope.row.sex" placeholder="性别" clearable style="width: 100%;" transfer>
|
|
<vxe-option
|
|
<vxe-option
|
|
v-for="item in $dictUtils.getDictList('sex')"
|
|
v-for="item in $dictUtils.getDictList('sex')"
|
|
:key="item.value"
|
|
:key="item.value"
|
|
@@ -364,6 +364,35 @@
|
|
</el-form>
|
|
</el-form>
|
|
</el-row>
|
|
</el-row>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
|
+ <el-tab-pane label="项目组成员" name="members">
|
|
|
|
+ <el-row :gutter="15">
|
|
|
|
+ <vxe-table
|
|
|
|
+ border
|
|
|
|
+ show-overflow
|
|
|
|
+ show-footer
|
|
|
|
+ :column-config="{resizable: true}"
|
|
|
|
+ ref="memberTable"
|
|
|
|
+ :key="tableKeyMembers"
|
|
|
|
+ class="vxe-table-element"
|
|
|
|
+ :data="inputForm.cwProjectMembersDTOList"
|
|
|
|
+ style=""
|
|
|
|
+ @cell-click=""
|
|
|
|
+ @edit-closed=""
|
|
|
|
+ highlight-current-row
|
|
|
|
+ >
|
|
|
|
+ <vxe-table-column min-width="120" align="center" field="name" title="姓名"></vxe-table-column>
|
|
|
|
+ <vxe-table-column min-width="120" align="center" field="officeName" title="部门"></vxe-table-column>
|
|
|
|
+ <vxe-table-column min-width="120" align="center" field="roleName" title="角色"></vxe-table-column>
|
|
|
|
+ <vxe-table-column min-width="120" align="center" field="mobile" title="手机号"></vxe-table-column>
|
|
|
|
+ <vxe-table-column min-width="120" align="center" field="status" title="状态">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span v-if="scope.row.status === '0'" style="color: #67C23A">正常</span>
|
|
|
|
+ <span v-else>移除</span>
|
|
|
|
+ </template>
|
|
|
|
+ </vxe-table-column>
|
|
|
|
+ </vxe-table>
|
|
|
|
+ </el-row>
|
|
|
|
+ </el-tab-pane>
|
|
<el-tab-pane label="附件" name="files">
|
|
<el-tab-pane label="附件" name="files">
|
|
<!-- 附件-->
|
|
<!-- 附件-->
|
|
<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
|
|
<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
|
|
@@ -508,6 +537,7 @@
|
|
import WorkClientService from '@/api/cw/workClientInfo/WorkClientService'
|
|
import WorkClientService from '@/api/cw/workClientInfo/WorkClientService'
|
|
import ContractInfoService from '@/api/cw/workContract/ContractInfoService'
|
|
import ContractInfoService from '@/api/cw/workContract/ContractInfoService'
|
|
import CwFinanceInvoiceService from '@/api/cw/invoice/CwFinanceInvoiceService'
|
|
import CwFinanceInvoiceService from '@/api/cw/invoice/CwFinanceInvoiceService'
|
|
|
|
+ import UserService from '@/api/sys/UserService'
|
|
export default {
|
|
export default {
|
|
name: 'ProjectRecordsForm',
|
|
name: 'ProjectRecordsForm',
|
|
props: {
|
|
props: {
|
|
@@ -564,13 +594,15 @@
|
|
realHeader: '',
|
|
realHeader: '',
|
|
clientContactsName: '',
|
|
clientContactsName: '',
|
|
reportType: '',
|
|
reportType: '',
|
|
- cwProjectClientContactDTOList: []
|
|
|
|
|
|
+ cwProjectClientContactDTOList: [],
|
|
|
|
+ cwProjectMembersDTOList: []
|
|
},
|
|
},
|
|
keyWatch: '',
|
|
keyWatch: '',
|
|
activeName: 'client',
|
|
activeName: 'client',
|
|
activeNameTop: 'project',
|
|
activeNameTop: 'project',
|
|
tableKey: '',
|
|
tableKey: '',
|
|
tableKeyClient: '1',
|
|
tableKeyClient: '1',
|
|
|
|
+ tableKeyMembers: '3',
|
|
visible: false,
|
|
visible: false,
|
|
invoiceList: [],
|
|
invoiceList: [],
|
|
invoiceForm: {
|
|
invoiceForm: {
|
|
@@ -608,6 +640,7 @@
|
|
contractInfoService: null,
|
|
contractInfoService: null,
|
|
cwFinanceInvoiceService: null,
|
|
cwFinanceInvoiceService: null,
|
|
projectReportService: null,
|
|
projectReportService: null,
|
|
|
|
+ userService: null,
|
|
created () {
|
|
created () {
|
|
this.enterpriseSearchService = new EnterpriseSearchService()
|
|
this.enterpriseSearchService = new EnterpriseSearchService()
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
@@ -615,6 +648,7 @@
|
|
this.contractInfoService = new ContractInfoService()
|
|
this.contractInfoService = new ContractInfoService()
|
|
this.cwFinanceInvoiceService = new CwFinanceInvoiceService()
|
|
this.cwFinanceInvoiceService = new CwFinanceInvoiceService()
|
|
this.projectReportService = new ProjectReportService()
|
|
this.projectReportService = new ProjectReportService()
|
|
|
|
+ this.userService = new UserService()
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
bus: {
|
|
bus: {
|
|
@@ -671,6 +705,7 @@
|
|
this.activeName = 'client'
|
|
this.activeName = 'client'
|
|
this.activeNameTop = 'project'
|
|
this.activeNameTop = 'project'
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
this.projectRecordsService = new ProjectRecordsService()
|
|
|
|
+ this.userService = new UserService()
|
|
this.inputForm = {
|
|
this.inputForm = {
|
|
id: '',
|
|
id: '',
|
|
createDate: '',
|
|
createDate: '',
|
|
@@ -705,7 +740,8 @@
|
|
planDate: [],
|
|
planDate: [],
|
|
realHeader: '',
|
|
realHeader: '',
|
|
clientContactsName: '',
|
|
clientContactsName: '',
|
|
- cwProjectClientContactDTOList: []
|
|
|
|
|
|
+ cwProjectClientContactDTOList: [],
|
|
|
|
+ cwProjectMembersDTOList: []
|
|
}
|
|
}
|
|
this.inputForm.id = id
|
|
this.inputForm.id = id
|
|
this.loading = false
|
|
this.loading = false
|
|
@@ -731,6 +767,19 @@
|
|
if (this.commonJS.isEmpty(this.inputForm.officeId)) {
|
|
if (this.commonJS.isEmpty(this.inputForm.officeId)) {
|
|
this.inputForm.officeId = JSON.parse(localStorage.getItem('user')).officeDTO.id
|
|
this.inputForm.officeId = JSON.parse(localStorage.getItem('user')).officeDTO.id
|
|
}
|
|
}
|
|
|
|
+ if (this.commonJS.isEmpty(this.inputForm.cwProjectMembersDTOList)) {
|
|
|
|
+ this.inputForm.cwProjectMembersDTOList = []
|
|
|
|
+ } else {
|
|
|
|
+ this.inputForm.cwProjectMembersDTOList.forEach((member, index) => {
|
|
|
|
+ this.userService.queryDetailById(member.userId).then(({data}) => {
|
|
|
|
+ member.name = this.commonJS.isEmpty(data.name) ? '' : data.name
|
|
|
|
+ member.mobile = this.commonJS.isEmpty(data.mobile) ? '' : data.mobile
|
|
|
|
+ member.officeName = this.commonJS.isEmpty(data.officeDTO) ? '' : this.commonJS.isEmpty(data.officeDTO.name) ? '' : data.officeDTO.name
|
|
|
|
+ member.roleName = this.commonJS.isEmpty(data.roleList) ? '' : data.roleList.map(role => { return this.commonJS.isEmpty(role.name) ? '' : role.name }).join(',')
|
|
|
|
+ this.tableKeyMembers = Math.random()
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ }
|
|
// if (this.formReadOnly) {
|
|
// if (this.formReadOnly) {
|
|
// this.method = 'view'
|
|
// this.method = 'view'
|
|
// }
|
|
// }
|
|
@@ -927,7 +976,8 @@
|
|
planDate: [],
|
|
planDate: [],
|
|
realHeader: '',
|
|
realHeader: '',
|
|
clientContactsName: '',
|
|
clientContactsName: '',
|
|
- cwProjectClientContactDTOList: []
|
|
|
|
|
|
+ cwProjectClientContactDTOList: [],
|
|
|
|
+ cwProjectMembersDTOList: []
|
|
}
|
|
}
|
|
this.$refs.uploadComponent.clearUpload()
|
|
this.$refs.uploadComponent.clearUpload()
|
|
this.$refs.inputForm.resetFields()
|
|
this.$refs.inputForm.resetFields()
|