Commit 7e2557ee authored by ztf's avatar ztf

修改项目相关组件

parent df6251db
......@@ -17,7 +17,7 @@
}"
:dis-business="true"
:result-data="tableData"
@selectionChange="selectionChange"
@radio-current-change="radioCurrentChange"
/>
<div class="btns">
<el-button type="primary" class="submitBTN" :disabled="!isDisable" @click="tosubmit">确定</el-button>
......@@ -32,6 +32,10 @@ export default {
name: 'ExtICMPlanDocLinkAdd',
componentName: 'ICM相关联系单-添加',
props: {
parentTableData: {
type: Object,
default: () => {}
},
basicData: {
type: Object,
default: () => {}
......@@ -43,14 +47,14 @@ export default {
},
data() {
return {
selections: [],
selectRow: {},
searchForm: [],
tableData: []
}
},
computed: {
isDisable() {
return Boolean(this.selections.length)
return Boolean(this.selectRow.id)
},
queryParams() {
// 基本参数
......@@ -92,24 +96,25 @@ export default {
this.searchForm = searchForm
this.getData()
},
selectionChange(data) {
this.selections = data
radioCurrentChange(data) {
this.selectRow = data.row
console.log('this.selectRow', this.selectRow)
},
tosubmit() {
const params = {
sourceId: this.basicData.id, // 计划id
targetId: this.selections[0].id// 联系单id
}
if (this.selections && this.selections.length === 1) {
post('/ExtICMPlanDocLink/bindPlanAndDoc', params).then(res => {
if (res.items) {
this.$utils.showMessageSuccess('添加成功!')
this.$emit('completeEven')
}
})
} else {
this.$message.error('一次只能添加一个技术联系单')
}
// const params = {
// sourceId: this.parentTableData.id, // 计划id
// targetId: this.selectRow.id// 联系单id
// }
// if (this.selections && this.selections.length === 1) {
post(`/ExtICMPlanDocLink/bindPlanAndDoc?sourceId=${this.parentTableData.id}&targetId=${this.selectRow.id}`).then(res => {
if (res.items) {
this.$utils.showMessageSuccess('添加成功!')
this.$emit('completeEven')
}
})
// } else {
// this.$message.error('一次只能添加一个技术联系单')
// }
}
}
}
......
<template>
<div class="project">
<dee-as-com
:lay-config="layConfig"
:basic-data="projectObj"
/>
</div>
</template>
<script>
export default {
name: 'ChangeProjectState',
componentName: '修改项目状态333',
props: {
basicData: {
type: Object,
default: () => ({})
}
},
data() {
return {
}
},
computed: {
projectObj() {
return this.basicData && this.basicData.id ? this.basicData : { id: '' }
},
currentModelName() {
return this.basicData.subTypeName
},
layConfig() {
const configMap = {
'ExtProgram': { typeName: 'ExtProgram', layKey: 'updateState' },
'DxContext': { typeName: 'DxContext', layKey: 'updateState' },
'DxContextProject': { typeName: 'DxContextProject', layKey: 'updateState' }
}
return configMap[this.currentModelName] || {}
}
},
mounted() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
</style>
......@@ -2,7 +2,7 @@
<div class="project">
<dee-as-com
:lay-config="{
typeName: 'ExtProgram',
typeName: 'DxContextProject',
layKey: 'updateState'
}"
:form="form"
......@@ -26,8 +26,7 @@ export default {
},
data() {
return {
form: {},
subTypeName: this.basicData.subTypeName
form: {}
}
},
mounted() {
......@@ -35,7 +34,6 @@ export default {
},
methods: {
getInitData() {
const subTypeName = this.basicData.subTypeName
const id = this.basicData.id
const params = {
'searchItems': {
......@@ -48,7 +46,7 @@ export default {
'operator': 'AND'
}
}
post(`/${subTypeName}/search`, params).then(res => {
post(`/DxContext/search`, params).then(res => {
this.form = res.items.content[0]
})
},
......@@ -56,9 +54,10 @@ export default {
toSubmit() {
const id = this.form.id
const status = this.form.state
const subTypeName = this.subTypeName === 'ExtProgram' ? 'ExtProgram' : 'DxContext'
post(`/${subTypeName}/lifecycle/changeStatus?id=${id}&status=${status}&isValid=true`).then(res => {
this.$utils.showMessageSuccess('修改成功')
post(`/DxContextProject/lifecycle/changeStatus?id=${id}&status=${status}&isValid=true`).then(res => {
if (res.items) {
this.$utils.showMessageSuccess('修改成功')
}
this.$emit('completeEven')
})
},
......
<template>
<dee-as-com
:lay-config="{
typeName: 'ContactList',
layKey: 'ExtICMPlanDocLink-createContactList'
}"
:form="form"
@on-submit="toSubmit"
@on-cancel="cancel"
/>
</template>
<script>
import { post } from '@/utils/http'
export default {
name: 'ExtICMPlanDocLinkCreateContactList',
componentName: 'ICM详情-创建联系单-关联',
props: {
basicData: {
type: Object,
default: () => ([])
}
// form: {
// type: Object,
// default: () => {}
// }
},
data() {
return {
contactListId: null,
form: {}
}
},
mounted() {
console.log('basicData', this.basicData)
},
methods: {
// 创建技术联系单
async createContactList() {
const params = {
dxType: 'DxDocument',
...this.form,
subTypeName: 'ContactList'
}
console.log('params技术联系单的参数', params)
await post('/DxDocument/recursion', params).then(res => {
this.contactListId = res.items.id
})
},
// 计划关联技术联系单
relevancyContactList() {
post(`/ExtICMPlanDocLink/bindPlanAndDoc?sourceId=${this.basicData.id}&targetId=${this.contactListId}`).then(res => {
if (res.items) {
this.$utils.showMessageSuccess('添加成功!')
this.$emit('completeEven')
}
})
},
async toSubmit() {
await this.createContactList()
this.relevancyContactList()
},
cancel() {
this.$emit('cancel')
}
}
}
</script>
<style>
</style>
......@@ -2,8 +2,8 @@
<div class="project">
<dee-as-com
:lay-config="{
typeName: 'ExtProgram',
layKey: 'defaultCreate'
typeName: 'DxContextProject',
layKey: 'projectCreate'
}"
:form="form"
@on-submit="toSubmit"
......@@ -30,8 +30,13 @@ export default {
// eslint-disable-next-line vue/no-dupe-keys
form: {},
formData: this.basicData,
subTypeName: 'ExtProgram',
projectCategory: ''
projectCategory: '',
baseQuery: {
modelName: 'DxContextProject',
operator: 'AND',
state: 'edit',
subTypeName: 'DxContextProject'
}
}
},
watch: {
......@@ -42,77 +47,47 @@ export default {
console.log('监听项目分类', val)
if (val) {
this.projectCategory = val
// if (val === 'program') {
// this.projectCategory = 'program'
// } else if (val === 'project') {
// this.projectCategory = 'project'
// } else if (val === 'childProject') {
// this.projectCategory = 'childProject'
// }
}
}
}
},
methods: {
toSubmit() {
console.log('进来了')
if (this.projectCategory === 'program') {
console.log('是项目群')
const params = this.form
post('/ExtProgram/recursion', params).then(res => {
this.$utils.showMessageSuccess(`添加成功`)
this.$emit('completeEven')
})
} else if (this.projectCategory === 'project') {
console.log('是项目')
const id = this.form.extProgram.id
delete this.form.extProgram
delete this.form.dxType
const params = {
id: id,
extProgramProjectLinks: [{
operator: 'ADD',
target: {
subTypeName: 'DxContextProject',
dxType: 'project',
...this.form,
operator: 'ADD',
parentId: 0,
parentName: 'Root',
state: 'edit'
}
}],
operator: 'NO_CHANGE'
}
post('/ExtProgram/recursion', params).then(res => {
this.$utils.showMessageSuccess(`添加成功`)
this.$emit('completeEven')
})
} else if (this.projectCategory === 'childProject') {
console.log('是子项')
const parentId = this.form.extProject.id
delete this.form.extProgram
delete this.form.extProject
delete this.form.dxType
delete this.form.projectCategory
const params = {
parentId: parentId,
subTypeName: 'DxContextProject',
operator: 'ADD',
state: 'edit',
modelName: 'DxContextProject',
...this.form
}
const createParams = (category) => {
const params = { ...this.form, ...this.baseQuery }
let parentId = 0
switch (category) {
case 'program':
break
case 'project':
parentId = this.form.extProgram.id
delete params.extProgram
delete params.dxType
break
// this.form.subTypeName = 'DxContextProject'
// this.form.operator = 'ADD'
// const params = Object.assign(this.formData, this.form)
console.log('params', params)
post('/DxContextProject/recursion', params).then(res => {
case 'childProject':
parentId = this.form.extProject.id
delete params.extProgram
delete params.extProject
delete params.dxType
break
default:
return null
}
params.parentId = parentId
return params
}
const params = createParams(this.projectCategory)
console.log('params新建项目', params)
post('/DxContextProject/saveRecursionContext', params)
.then(res => {
this.$utils.showMessageSuccess(`添加成功`)
this.$emit('completeEven')
})
}
// .catch(error => {
// console.error('提交失败:', error);
// this.$utils.showMessageError(`添加失败`);
// });
},
cancel() {
this.$emit('cancel')
......
......@@ -2,15 +2,13 @@
<div class="project">
<dee-as-com
:lay-config="{
typeName: 'ExtProgram',
layKey: 'defaultEdit'
typeName: 'DxContextProject',
layKey: 'projectEdit'
}"
:form="form"
@on-submit="toSubmit"
@on-cancel="cancel"
/>
<!-- -->
</div>
</template>
......@@ -29,8 +27,12 @@ export default {
data() {
return {
form: {},
subTypeName: this.basicData.subTypeName,
projectCategory: ''
baseQuery: {
modelName: 'DxContextProject',
operator: 'AND',
state: 'edit',
subTypeName: 'DxContextProject'
}
}
},
mounted() {
......@@ -50,7 +52,6 @@ export default {
'operator': 'AND'
},
'openProps': [
{ 'name': 'extProgramProjectLinks', 'openProps': [{ 'name': 'target' }] },
{ 'name': 'header' },
{ 'name': 'managerOrg' },
{ 'name': 'manager' },
......@@ -58,58 +59,18 @@ export default {
{ 'name': 'extProgram' }
]
}
post(`/${this.subTypeName}/search`, params).then(res => {
post(`/DxContextProject/find/recursion`, params).then(res => {
this.form = res.items.content[0]
console.log('this.form', this.form)
})
},
toSubmit() {
if (this.subTypeName === 'ExtProgram') {
const params = { ...this.form, operator: 'MODIFY' }
post('/ExtProgram/recursion', params).then(res => {
this.$utils.showMessageSuccess(`编辑成功`)
this.$emit('completeEven')
})
} else if (this.subTypeName === 'DxContext') {
delete this.form.extProgram
delete this.form.extProject
delete this.form.dxType
delete this.form.projectCategory
delete this.form.extProgramProjectLinks
console.log(' this.form修改之后的', this.form)
const params = {
...this.form,
subTypeName: 'DxContext',
modelName: 'DxContext',
operator: 'MODIFY',
parentId: 0,
parentName: 'Root',
state: 'edit'
}
post('/DxContext/recursion', params).then(res => {
this.$utils.showMessageSuccess(`编辑成功`)
const params = { ...this.form }
console.log('params', params)
post('/DxContextProject/saveRecursionContext', params)
.then(res => {
this.$utils.showMessageSuccess(`修改成功`)
this.$emit('completeEven')
})
} else if (this.subTypeName === 'DxContextProject') {
console.log('是子项')
const parentId = this.form.parentId
delete this.form.extProgram
delete this.form.extProject
delete this.form.dxType
delete this.form.projectCategory
const params = {
parentId: parentId,
subTypeName: 'DxContextProject',
operator: 'MODIFY',
state: 'edit',
modelName: 'DxContextProject',
...this.form
}
post('/DxContextProject/recursion', params).then(res => {
this.$utils.showMessageSuccess(`编辑成功`)
this.$emit('completeEven')
})
}
},
cancel() {
this.$emit('cancel')
......
......@@ -2,7 +2,7 @@
* @Author: zhangtianfeng 3232807530@qq.com
* @Date: 2024-09-11 11:05:24
* @LastEditors: zhangtianfeng 3232807530@qq.com
* @LastEditTime: 2024-09-12 11:06:53
* @LastEditTime: 2024-10-16 09:15:46
-->
<template>
<div>
......@@ -45,8 +45,8 @@ export default {
immediate: true,
deep: true,
handler(val) {
console.log('项目群id', val)
if (val) {
// console.log('改变了', val)
this.getProjectList(val)
}
}
......@@ -59,7 +59,7 @@ export default {
'searchItems': {
'children': [],
'items': [{
'fieldName': 'id',
'fieldName': 'parentId',
'operator': 'EQ',
'value': programId
}
......@@ -69,22 +69,17 @@ export default {
'sortItem': [{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}],
openProps: [{
name: 'extProgramProjectLinks',
openProps: [{
name: 'target'
}]
}]
}
post(`/ExtProgram/search`, params).then((res) => {
post(`/DxContextProject/search`, params).then((res) => {
if (res.items.content) {
this.projectList = []
res.items.content.forEach(list => {
list.extProgramProjectLinks.forEach(item => {
this.projectList.push(item.target)
})
})
this.projectList = res.items.content
console.log('res.items.content', res.items.content)
// res.items.content.forEach(list => {
// list.extProgramProjectLinks.forEach(item => {
// this.projectList.push(item.target)
// })
// })
}
})
},
......@@ -93,6 +88,7 @@ export default {
const valObj = this.projectList.find((item) => { return item.name === val })
console.log('点击事件', valObj)
this.$emit('input', valObj.id)
console.log(' val.id', valObj.id)
}
}
}
......
......@@ -31,9 +31,8 @@ export default {
],
data() {
return {
//
currentValue: this.value ? this.value.number || this.value : null,
className: this.scope.row.subTypeName === 'ExtProgram' ? 'default' : 'link',
className: this.scope.row.parentId ? 'link' : 'default',
form: null
}
},
......@@ -52,13 +51,13 @@ export default {
},
methods: {
ToRelatedPage() {
if (this.form.subTypeName !== 'ExtProgram') {
if (this.form.parentId) {
const secretCode = this.form.secretCode
const name = this.form.name
const id = this.form.id
const pageNumber = '7cbdc38f-0122-4e78-b162-57601a33bb7a'
const title = '项目要素'
const type = this.form.projectCategory === '项目' ? '项目' : '子项'
const type = this.form.projectCategory === '项目' ? '项目' : '项目'
this.$router.push({
path: `/page/${pageNumber}/${id}?type=${type}&title=${title}&id=${id}&name=${name}&secretCode=${secretCode}`,
query: { name: name, id: id }
......
......@@ -59,7 +59,7 @@ export default {
id: this.$route.query.id,
componentType: 'formConfig',
formConfigType: 'page',
pageKey: this.$route.query.type === '项目' ? '79edd06e-3a7d-440e-bb4f-4b7691f7a641' : 'e32bab11-07c1-42b9-9ce7-d00d12c3b680'
pageKey: 'e32bab11-07c1-42b9-9ce7-d00d12c3b680'
}
}
},
......
......@@ -2,7 +2,7 @@
* @Author: zhangtianfeng 3232807530@qq.com
* @Date: 2024-08-29 11:42:37
* @LastEditors: zhangtianfeng 3232807530@qq.com
* @LastEditTime: 2024-09-12 18:59:27
* @LastEditTime: 2024-10-15 09:24:48
-->
<template>
<div>
......@@ -18,27 +18,19 @@
/>
</el-select> -->
<!--input输入-->
<el-input v-model="form.name" disabled placeholder="请输入" @input="handleChange" />
<img
v-if="showIcon"
class="icon"
src="/icons/c-add.png"
title="选择合同"
@click="handleClickOpen"
>
<dee-dialog
width="45%"
:title="`选择合同`"
:dialog-visible="dialogShow"
@handleClose="dialogShow = false"
>
<el-input v-model="form.name" placeholder="请输入" @input="handleChange" />
<img v-if="showIcon" class="icon" src="/icons/c-add.png" title="选择合同" @click="handleClickOpen">
<dee-dialog width="60%" class="projectContractResult" :title="`选择合同`" :dialog-visible="dialogShow" @handleClose="dialogShow = false">
<dee-as-com
:lay-config="{
typeName: 'ExtInComeContract',
layKey: 'projectContractResult'
}"
@radio-current-change="radioCurrentChange"
/>
<!-- dis-business
:result-data="tableData" -->
<div class="dialogBtn">
<el-button type="primary" @click="submit">确定</el-button>
<el-button type="default" @click="dialogShow = false">取消</el-button>
......@@ -50,17 +42,19 @@
</template>
<script>
// 选择当前项目群/项目下面的合同
// import { post } from '@/utils/http'
export default {
name: 'SelectProjectName',
componentName: '选择项目名称',
props: {
value: {
type: [Object, Array, String],
type: [Object, Array, String, Number],
default: () => null
},
form: {
type: Object,
default: () => {}
default: () => { }
}
},
data() {
......@@ -70,7 +64,8 @@ export default {
showIcon: false,
projectList: [],
showSelect: false,
selectRow: {}
selectRow: {},
tableData: []
}
},
watch: {
......@@ -87,40 +82,116 @@ export default {
}
}
}
// 'form.extProgram': {
// immediate: true,
// deep: true,
// handler(val) {
// if (val) {
// console.log('val所属项目', val)
// this.getData(val.id)
// // this.showIcon = val !== 'program'
// // this.showSelect = val === 'childProject'
// }
// }
// },
// 'form.extProject': {
// immediate: true,
// deep: true,
// handler(val) {
// if (val) {
// console.log('val所属项目', val)
// this.getData(val.id)
// // this.showIcon = val !== 'program'
// // this.showSelect = val === 'childProject'
// }
// }
// }
},
mounted() {},
mounted() { },
methods: {
handleClickOpen() {
this.dialogShow = true
},
handleChange(val) {
this.$emit('input', val)
console.log(this.form)
console.log('val', val)
console.log('this.form', this.form)
},
radioCurrentChange(data) {
this.selectRow = data.row
console.log('data.row', data.row)
},
submit() {
this.handleChange(this.selectRow.id)
this.$set(this.form, 'customUnit', this.selectRow.supplierName)
this.$set(this.form, 'totalBudget', this.selectRow.contractAmount)
this.handleChange(this.selectRow.name)
this.dialogShow = false
}
// getData() {
// const params = {
// 'pageFrom': 1,
// 'pageSize': 10,
// 'searchItems': {
// 'children': [],
// 'items': [
// {
// 'fieldName': 'state',
// 'operator': 'EQ',
// 'value': 'release'
// },
// {
// 'fieldName': 'state',
// 'operator': 'EQ',
// 'value': 'release'
// },
// {
// 'fieldName': 'checkOuted',
// 'operator': 'EQ',
// 'value': false
// },
// {
// 'fieldName': 'latest',
// 'operator': 'EQ',
// 'value': true
// }
// ],
// 'operator': 'AND'
// },
// 'openProps': [],
// 'sortItem': [
// {
// 'fieldName': 'modifyTime',
// 'sortOrder': 'desc'
// }
// ]
// }
// post('/ExtInComeContract/search', params).then(res => {
// if (res.items) {
// this.tableData = res.items.content
// }
// })
// }
}
}
</script>
<style lang="scss" scoped>
.select-project{
display: flex;
align-items: center;
justify-content: space-between;
.icon{
width: 15px;
height:15px;
margin-left: 6px;
cursor: pointer;
}
<style lang="scss" scoped>
.select-project {
display: flex;
align-items: center;
justify-content: space-between;
.icon {
width: 15px;
height: 15px;
margin-left: 6px;
cursor: pointer;
}
</style>
.projectContractResult{
height: calc(80%);
}
}
</style>
......@@ -59,7 +59,7 @@
<div
v-if="basicData&& basicData.businessObject &&basicData.businessObject.subTypeName&& basicData.businessObject.subTypeName==='ExtPlanFeedback'"
>
<div class="sub-title" style="padding-bottom:12px">计划反馈</div>
<!-- <div class="sub-title" style="padding-bottom:12px">计划反馈</div> -->
<dee-as-com
v-if=" isCheckTaskState && basicData.basicInfo.state==='BE_RESOLVED'"
:lay-config="{
......
......@@ -54,7 +54,7 @@ export default {
icon: '/images/navagations/task-icon.png',
total: res.items.todoTask + res.items.unClaimedTask,
name: '我的任务',
route: 'dee-task-center/workflow/task-center/newhome',
route: 'dee-task-center/workflow/task-center/home',
serverName: 'dee-task-center',
showMenu: false,
list: [
......@@ -94,7 +94,7 @@ export default {
this.$store.dispatch('menu/activeModel', {
appId: 'todoTask',
pageInfo: {
path: '/dee-task-center/workflow/task-center/newhome'
path: '/dee-task-center/workflow/task-center/home'
}
})
// this.$store.dispatch('app/toggleSideBar')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment